Jedną z najlepszych, najdokładniejszych i najbardziej zoptymalizowanych, bezpłatnych bibliotek FSM dostępnych online jest biblioteka AT&T FSM . Implementuje „fsmdifference” dokładnie tak, jak opisano, wymagając określonego FSM bez epsilon, aby zrobić różnicę. Jednym z pomysłów jest zminimalizowanie jednego lub obu systemów FSM przed wykonaniem różnicy, co może pomóc w niektórych przypadkach. (tzn. określanie nie jest tym samym, co minimalizowanie). Ten pakiet ma także „przybliżoną” lub „chciwą” minimalizację, która ma być możliwie szybsza niż pełna minimalizacja.
Jednak badając podobne problemy, uważam, że istnieje pewne uogólnienie lub konstrukcja FSM, które nie pojawiają się w literaturze, które mogą pomóc w rozwiązaniu tego problemu, unikając etapu determinacji, tj. Zasadniczo odwracając NFA bez tworzenia dodatkowego określonego FSM. Chodzi o to, aby przesuwać krawędzie NFA „równolegle” i śledzić zbiór węzłów, które są częścią bieżącego „superpaństwa” (zestawu stanów), podobnie jak w standardowym algorytmie determinującym. Następnie dopełnienie NFA akceptuje wtedy i tylko wtedy, gdy zbiór obecnych węzłów superpaństw „nie przyjmuje” (w przeciwieństwie do konstrukcji determinującej, która akceptuje „dowolną akceptację”).
Jednak nie widziałem tego wcześniej i nie widzę go za pomocą szybkiego wyszukiwania online. Istnieje wiele odniesień, które sugerują lub sugerują, że jedynym sposobem pracy z dopełnieniem NFA jest jego określenie.
Oto dwa „pobliskie” odniesienia, które mogą być przydatne w przypadku niektórych pomysłów. Chciałbym usłyszeć o / innych, którzy są „bliżsi”. Wspominasz, że pracujesz nad weryfikacją programu, która może być dziedziną, w której prowadzone są bardziej bezpośrednie badania problemu.
[1] Konstrukcja skrzyżowania niedeterministycznych automatów skończonych przy użyciu notacji Z Nazir Ahmad Zafar, Nabeel Sabir i Amir Ali
[2] Konstrukcje komplementacyjne dla niedeterministycznych automatów na nieskończonych słowach Orna Kupferman i Moshe Vardi