Automat Büchi

A Büchi automaton
Büchi z dwoma stanami, z których , a drugi Jego dane wejściowe to nieskończone słowa nad symbolami. . przyjmuje , gdzie Odrzuca nieskończone słowo .

W informatyce i teorii automatów deterministyczny automat Büchiego jest teoretyczną maszyną, która przyjmuje lub odrzuca nieskończone dane wejściowe. Taka maszyna ma zestaw stanów i funkcję przejścia, która określa, do jakiego stanu maszyna powinna przejść ze swojego obecnego stanu, gdy odczytuje następny znak wejściowy. Niektóre stany akceptują stany, a jeden stan jest stanem początkowym. Maszyna akceptuje dane wejściowe wtedy i tylko wtedy, gdy podczas odczytywania danych wejściowych przejdzie przez stan akceptacji nieskończenie wiele razy.

Niedeterministyczny automat Büchiego , później nazywany po prostu automatem Büchiego , ma funkcję przejścia, która może mieć wiele wyjść, prowadząc do wielu możliwych ścieżek dla tego samego wejścia; akceptuje nieskończone dane wejściowe wtedy i tylko wtedy, gdy akceptowana jest jakaś możliwa ścieżka. Deterministyczne i niedeterministyczne automaty Büchiego uogólniają deterministyczne automaty skończone i niedeterministyczne automaty skończone na nieskończone wejścia. Każdy z nich jest rodzajem ω-automatów . Automaty Büchi rozpoznają języki regularne ω , nieskończoną wersję słowną języków regularnych . Zostały nazwane na cześć szwajcarskiego matematyka Juliusa Richarda Büchiego , który wynalazł je w 1962 roku.

Automaty Büchiego są często używane w sprawdzaniu modeli jako teoretyczno-automatyczna wersja formuły w liniowej logice czasowej .

Definicja formalna

0 Formalnie deterministyczny automat Büchiego jest krotką A = ( Q , Σ, δ, q , F ), która składa się z następujących składowych:

  • Q jest skończonym zbiorem . Elementy Q nazywane są stanami A .
  • Σ jest skończonym zbiorem zwanym alfabetem A .
  • δ: Q × Σ → Q jest funkcją, zwaną funkcją przejścia A .
  • 0 q jest elementem Q , zwanym stanem początkowym A .
  • F Q jest warunkiem akceptacji . A akceptuje dokładnie te przebiegi, w których przynajmniej jeden z nieskończenie często występujących stanów jest w F .

0 W ( niedeterministycznym ) automacie Büchiego funkcja przejścia δ jest zastępowana relacją przejścia Δ, która zwraca zbiór stanów, a pojedynczy stan początkowy q jest zastępowany przez zbiór I stanów początkowych. Ogólnie rzecz biorąc, termin automat Büchiego bez kwalifikatora odnosi się do niedeterministycznych automatów Büchiego.

Aby zapoznać się z bardziej wszechstronnym formalizmem, zobacz także ω-automat .

Właściwości zamknięcia

Zbiór automatów Büchiego jest domknięty pod następującymi operacjami.

Niech i być automatami Büchi i będzie automatem skończonym .

  • Unia : Istnieje automat Büchi który rozpoznaje język
Jeśli , że wlog jest pusty jest rozpoznawany przez automat Büchi
  • Przecięcie : Istnieje automat Büchi, który rozpoznaje język
Dowód: automat Büchi rozpoznaje ZA gdzie
Z konstrukcji A' na słowie wejściowym w jeśli jest uruchamiany } A na w i jest uruchamiane z B na w . i akceptuje, jeśli r 'jest konkatenacją nieskończonej serii skończonych segmentów stanów 1 (stany z 1) i 2-stany (stany z trzecią składową 2) alternatywnie. Istnieje taki ciąg odcinków r', jeśli r' jest akceptowane przez A'.
  • Konkatenacja : Istnieje automat Büchi, który rozpoznaje język
Dowód: Jeśli założymy, , jest automat ⋅ gdzie
  • Jeśli zawiera pustego słowa, to istnieje automat Büchi, zamknięcie :
: automat Büchi, który rozpoznaje, konstruowany w dwóch konstruujemy automat skończony A 'taki, że A' również rozpoznaje, nadchodzących przejść do stanów początkowych A' Więc gdzie Zauważ, że ponieważ nie zawiera pustego łańcucha. Po drugie, skonstruujemy automat Büchi A”, który rozpoznaje, dodając pętlę z powrotem do stanu początkowego A'. L ( do gdzie
  • który rozpoznaje język
Dowód: Dowód jest przedstawiony tutaj .

Rozpoznawalne języki

Automaty Büchi rozpoznają języki regularne ω . Korzystając z definicji języka ω-regularnego i powyższych właściwości domknięć automatów Büchiego, można łatwo wykazać, że automat Büchi można skonstruować tak, że rozpoznaje dowolny dany język ω-regularny. Odwrotnie, zobacz konstrukcję języka regularnego ω dla automatu Büchi .

Deterministyczne i niedeterministyczne automaty Büchiego

Niedeterministyczny automat Büchiego, który rozpoznaje

Klasa deterministycznych automatów Büchi nie wystarcza do objęcia wszystkich języków omega-regularnych. W szczególności nie ma deterministycznego automatu Büchiego, który rozpoznaje język , 1 występuje wiele razy. Możemy wykazać przez zaprzeczenie, że taki deterministyczny automat Büchiego nie istnieje. Załóżmy, że deterministycznym automatem Büchiego, który ze końcowego akceptuje { . Tak więc A odwiedzi jakiś stan w po przeczytaniu jakiegoś skończonego przedrostka po literze. A akceptuje również słowo ω Dlatego dla niektórych po przedrostku automat odwiedzi jakiś stan w F . generowane słowo A odwiedzać jakiś stan w F nieskończenie często i słowo nie jest w Sprzeczność.

Klasę języków rozpoznawalną przez deterministyczne automaty Büchiego charakteryzuje następujący lemat.

Lemat: Język ω jest rozpoznawalny przez deterministyczny automat Büchiego, jeśli jest językiem granicznym jakiegoś języka regularnego .
Dowód: Każdy deterministyczny automat Büchiego A może być traktowany jako deterministyczny automat skończony A' i odwrotnie, ponieważ oba typy automatów są zdefiniowane jako 5-krotka tych samych składowych, tylko interpretacja warunku akceptacji jest inna. Pokażemy, że ZA } Słowo ω jest akceptowane przez A , jeśli zmusi A do odwiedzania stanów końcowych nieskończenie często. Zatem nieskończenie wiele skończonych przedrostków tego słowa ω będzie akceptowanych przez A' . Stąd jest językiem granicznym .

Algorytmy

Sprawdzanie modeli systemów o skończonych stanach często można przełożyć na różne operacje na automatach Büchiego. Oprócz operacji zamknięcia przedstawionych powyżej, poniżej przedstawiono kilka przydatnych operacji w zastosowaniach automatów Büchi.

Determinacja

Ponieważ deterministyczne automaty Büchiego są ściśle mniej wyraziste niż automaty niedeterministyczne, nie może istnieć algorytm wyznaczania automatów Büchiego. Ale twierdzenie McNaughtona i konstrukcja Safry dostarczają algorytmów, które mogą przetłumaczyć automat Büchi na deterministyczny automat Mullera lub deterministyczny automat Rabina .

Sprawdzanie pustki

Język rozpoznawany przez automat Büchi jest niepusty wtedy i tylko wtedy, gdy istnieje stan końcowy, który jest zarówno osiągalny ze stanu początkowego, jak i leży w cyklu.

Efektywny algorytm sprawdzający pustkę automatu Büchi:

  1. Rozważ automat jako graf skierowany i rozłóż go na silnie połączone składowe (SCC).
  2. Uruchom wyszukiwanie (np. przeszukiwanie w głąb ), aby znaleźć, które SCC są osiągalne ze stanu początkowego.
  3. Sprawdź, czy istnieje nietrywialny SCC, który jest osiągalny i zawiera stan końcowy.

Każdy z kroków tego algorytmu można wykonać w czasie liniowym w rozmiarze automatu, stąd algorytm jest wyraźnie optymalny.

Minimalizacja

Algorytm minimalizacji niedeterministycznego automatu skończonego również poprawnie minimalizuje automat Büchiego. Algorytm nie gwarantuje minimalnego automatu Büchiego [ wymagane wyjaśnienie ] . Jednak algorytmy minimalizacji deterministycznego automatu skończonego nie działają dla deterministycznego automatu Büchiego.

Warianty

Przejście od innych modeli opisu do niedeterministycznych automatów Büchiego

Z uogólnionych automatów Büchi (GBA)

00 Wiele zestawów stanów w stanie akceptacji można przetłumaczyć na jeden zestaw stanów za pomocą konstrukcji automatu, znanej jako „konstrukcja licząca”. Powiedzmy, że A = (Q,Σ,∆,q ,{F 1 ,...,F n }) jest GBA, gdzie F 1 ,...,F n są zbiorami akceptujących stanów, to odpowiednik automatu Büchiego to A' = (Q', Σ, ∆',q' ,F'), gdzie
  • Q' = Q × {1,...,n}
  • 00 q' = ( q ,1 )
  • ∆' = { ( (q,i), za, (q',j) ) | (q,a,q') ∈ ∆ i jeśli q ∈ F i wtedy j=((i+1) mod n) else j=i }
  • F'=F 1 × {1}

Z formuły logiki liniowej temporalnej

tutaj tłumaczenie formuły liniowej logiki czasowej na uogólniony automat Büchiego . Powyżej przedstawiono tłumaczenie z uogólnionego automatu Büchiego na automat Büchiego.

Z automatów Mullera

0000 Dany automat Mullera można przekształcić w równoważny automat Büchiego za pomocą następującej konstrukcji automatu. Załóżmy, że A = (Q,Σ,∆,Q ,{F ,...,F n }) jest automatem Mullera, gdzie F ,...,Fn zbiorami akceptujących stanów. Równoważnym automatem Büchiego jest A' = (Q', Σ, ∆',Q ,F'), gdzie
  • Q' = Q ∪ n i = 0 {i} × fa ja × 2 fa ja
  • ∆'= ∆ ∪ ∆ 1 ∪ ∆ 2 , gdzie
    • 1 = { ( q, za, (i,q',∅) ) | (q, a, q') ∈ ∆ i q' ∈ F i }
    • 2 = { ( (i,q,R), za, (i,q',R') ) | (q,a,q')∈∆ i q,q' ∈ F i i jeśli R=F i to R'= ∅ inaczej R'=R∪{q} }
  • fa'= n ja=0 {i} × fa ja × {fi ja }
A' zachowuje oryginalny zestaw stanów z A i dodaje do nich dodatkowe stany. Automat Büchiego A' symuluje automat A Mullera w następujący sposób: Na początku słowa wejściowego wykonanie A' następuje po wykonaniu A , ponieważ stany początkowe są takie same, a ∆' zawiera ∆. W jakiejś niedeterministycznie wybranej pozycji w słowie wejściowym A' decyduje o skoku do nowo dodanych stanów poprzez przejście w ∆ 1 . Fi Następnie przejścia w ∆ 2 próbują odwiedzić wszystkie stany i rosną R . Kiedy R staje się równe F i, Fi . jest resetowany do zbioru pustego i ∆ 2 próbuje raz po raz odwiedzać wszystkie stany stanów Tak więc, jeśli stany R = F i są odwiedzane nieskończenie często, to A' akceptuje odpowiednie wejście, podobnie jak A . Ta konstrukcja jest ściśle zgodna z pierwszą częścią dowodu twierdzenia McNaughtona .

Ze struktur Kripkego

Niech dana struktura Kripkego będzie zdefiniowana przez M = ⟨ Q , I , R , L , AP gdzie Q to zbiór stanów, I to zbiór stanów początkowych, R to relacja między dwoma stanami również interpretowana jako krawędź, L to etykieta stanu, a AP to zbiór zdań atomowych, które tworzą L .
Automat Büchi będzie miał następujące cechy:
, jeśli ( q , p ) należy do R i L ( p ) = a
i init q jeśli q należy do ja i L ( q ) = za .
Należy jednak zauważyć, że istnieje różnica w interpretacji między strukturami Kripkego a automatami Büchiego. Podczas gdy ta pierwsza wyraźnie określa polaryzację każdej zmiennej stanu dla każdego stanu, ta druga po prostu deklaruje bieżący zestaw zmiennych, które są prawdziwe lub nie. Nie mówi absolutnie nic o innych zmiennych, które mogą być obecne w modelu.

Linki zewnętrzne