{'fraction_non_alphanumeric': 0.01863932898415657, 'fraction_numerical': 0.0, 'mean_word_length': 5.509090909090909, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Siphon extraction for deadlock control in flexible manufacturing systems by using Petri nets

Siphons can be used to characterise deadlock states and solve deadlock problems in Petri nets that model flexible manufacturing systems. This article presents a novel deadlock prevention policy for Petri nets using siphon extraction. At each iteration, a siphon extraction algorithm finds a maximal deadly marked siphon, classifies the places in it, and decides a necessary siphon from the classified places. Accordingly, the deadlock prevention policy adds a proper control place (CP) to make each necessary siphon marked or max-controlled until the controlled system is live. By adopting the classification of places, deciding necessary siphons, and adding the proper CPs, the proposed deadlock prevention policy avoids a complete siphon enumeration, adds a small number of CPs, and leads to a liveness-enforcing supervisor with a simple structure compared with closely related approaches in the literature. Finally, a case study shows its appealing behavioural permissiveness.