Automatul lui Büchi

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare
Automat nedeterminist Büchi care recunoaște cuvinte infinite care conțin un număr finit de .

În informatică teoretică , un automat Büchi este un automat ω sau automat finit care operează pe cuvinte de lungime infinită, cu o condiție de acceptare particulară: o urmă are succes dacă și numai dacă trece de un număr infinit de ori pentru cel puțin o persoană care acceptă stare. Acest tip de automat este utilizat în mod obișnuit pentru verificarea modelului .

Acest tip de automat a fost definit de matematicianul Julius Richard Büchi [1] .

Definiție

Un automat Büchi pe un alfabet este un automat ω , unde este

  • este un set finit de stări ;
  • este ansamblul tranzițiilor ;
  • este ansamblul stărilor inițiale ;
  • este un set de stări finale sau terminale sau de acceptare .

Se presupune adesea că setul de stări inițiale este compus dintr-un singur element. O tranziție este compus dintr-o stare de pornire , o eticheta și o stare de sosire . Un calcul (numită și cale sau pistă ) este o serie infinită de tranziții consecutive:

Pentru , starea inițială este , eticheta sa este cuvântul infinit . Calculul are succes și cuvântul este acceptat (sau recunoscut de automat) dacă trece infinit de des printr-o stare terminală.

Se spune că un automat este determinist dacă îndeplinește următoarele două condiții:

  • are o singură stare inițială;
  • pentru fiecare stat și pentru fiecare literă , există cel mult o tranziție care începe de la și purtând eticheta .

Exemple

Exemplul 1

Automat Büchi care recunoaște cuvinte infinite care includ secvențe infinite de .

Automatul Büchi al cărui set de tranziții este afișat în figura din stânga.

Cuvântul infinit nu este acceptat deoarece singura piesă potrivită este iar singura stare care apare de un număr infinit de ori este , care nu acceptă. Pe de altă parte, cuvântul este acceptat deoarece pista îi corespunde , Și apare acolo de nenumărate ori și este o stare acceptantă. Mai general, automatul acceptă cuvinte infinite pe alfabetul din două litere Și , care conțin doar un număr finit de litere , și anume expresia regulată .

Automat Büchi care recunoaște infinitele cuvinte în care fiecare apariție este precedat de un număr egal de zero .

Exemplul 2

Un alt exemplu este automatul Büchi determinist din figura din dreapta; automatul are trei stări: , Și . Acest automat recunoaște infinitele cuvinte în care fiecare apariție a este precedat de un număr chiar nenul de apariții ale . Calculul pe un cuvânt al limbii acceptate începe în starea inițială și citește un număr par de (diferit de zero pentru că primul determină tranziția în ). Dacă un număr impar de , automatul este în stare altfel în stat (care acceptă și, prin urmare, trebuie să apară de mai multe ori în pistă). Tranziția în aduce din La stat iar secvența începe din nou.

Automatele Büchi deterministe sunt strict mai puțin expresive decât automatele Büchi nedeterministe [2] [3] . Cu alte cuvinte, există limbaje recunoscute de automatele Büchi nedeterministe care nu pot fi recunoscute de automatele Büchi deterministe.

Limbi recunoscute

Seturile de cuvinte infinite recunoscute de automatele Büchi corespund limbajelor ω-regulate , adică seturilor formei

unde Și sunt limbi regulate și i nu conțin cuvântul gol. Aceste limbi se mai numesc și Kleene ω- închiderea limbilor obișnuite [4] .

Pentru a obține formula generică pentru expresii regulate recunoscute de un automat Büchi, procedați după cum urmează. Având un automat Büchi, fie ansamblul cuvintelor finite recunoscute având ca stare inițială e ca stare finală, adică toate cuvintele reprezentate de etichetele de pe o pistă din la . Aceste limbi finite sunt regulate. Un cuvânt infinit este acceptat dacă există un calcul care trece de un număr infinit de ori printr-o stare terminală. Este această stare terminală prin care urma trece de un număr infinit de ori. Acest lucru este echivalent cu a spune

pentru o stare inițială . Luând mulțimile pe toate stările inițiale și terminale, obținem formula dată [4] . Pentru a demonstra că, reciproc, toate limbile ω-regulate sunt recunoscute de automatele Büchi, folosim operațiile de închidere [5] .

Descrierea limbilor recognized-regulate recunoscute arată că cuvântul problemă este decisiv pentru automatele Büchi, deoarece este suficient să verificăm dacă cel puțin una dintre limbile obișnuite date de nu este gol.

Proprietăți de închidere

Limbile recunoscute de automatele Büchi sunt închise pentru o serie de operațiuni.

  • Unire : Lasă-i să fie Și două automate care recunosc limbile Și . Un automat care recunoaște unirea se obține prin unirea celor două automate. Presupunând că mulțimile de stări Și sunt disjuncte: automatul recunoaște unirea .
  • closure-închidere : pentru orice limbă obișnuită care nu conține șirul gol, limba ω este recunoscută de un automat Büchi. Este un automat cu stare finită pe care îl recunoaște . Dacă are o singură stare inițială și fără tranziție (adică cel mai simplu automat care poate fi construit). Ele pot fi adăugate la tranzițiile pentru fiecare tranziție din cu . Automatul Büchi astfel construit, cu o singură stare inițială care este și terminală, recunoaște .
  • Concatenare : pentru orice limbă obișnuită și orice limbă ω recunoscută de un automat Büchi, produsul celor două limbi este un limbaj recognized recunoscut de un automat Büchi.

Cele trei proprietăți anterioare arată că fiecare limbaj regular obișnuit este recunoscut de un automat Büchi.

  • Intersecție : Let Și două automate care recunosc limbile Și . Un automat care recunoaște intersecția este construit după cum urmează:

unde tranzițiile de copiați-le în Și pentru primele două componente și schimbați a treia componentă de la 0 la 1 când o stare de apare în prima componentă, de la 1 la 2 când apare o stare de apare în a doua componentă și revine la 0 imediat după aceea. Într-un calcul, un 2 apare infinit de des ca o a treia componentă dacă și numai dacă o stare de și o stare de apar infinit des în prima și a doua componentă. Prin urmare, alegerea ca terminal îi indică pe cei din obținem un automat Büchi cu comportamentul dorit.

Limbile recunoscute de automatele Büchi sunt închise în ceea ce privește complementarea. Richard Büchi a demonstrat acest lucru în 1962 [1] . Mai târziu, alte construcții ale automatului au fost date recunoscând limbajul complementar al unui limbaj ω [6] [7] [8] [9] .

Conexiune cu alte automate

Automatele Büchi sunt echivalente cu automatele Muller , Rabin , Streett sau parity. Cu toate acestea, ele diferă prin concizie. De exemplu, automatele Büchi sunt exponențial mai concise decât automatele Rabin în următorul sens: există o familie de limbi pe alfabetul {0, 1, #}, recunoscut prin automatele Büchi nedeterministe de dimensiune O (n), dar fiecare automat Rabin nedeterminist care recunoaște același limbaj trebuie să fie de dimensiune cel puțin n! [10] .

Automatele Büchi nedeterministe reprezintă exact proprietățile logicii monadice de ordinul doi cu un succesor (S1S), numite și „proprietăți ω-regulate”. Logica S1S este strict mai expresivă decât logica timpului liniar.

Automate Co-Büchi

Există o dublă condiție pentru acceptarea automatelor Büchi: acestea sunt automatele co-Büchi . Condiția de acceptare devine: o urmă (sau calcul sau cale infinită) are succes dacă și numai dacă o stare care apare de un număr fals de ori este o stare de acceptare [11] .

Algoritmic

Logica temporală liniară și verificarea modelului

Automatele Buchi sunt utilizate în verificarea modelului, unde apar întrebări cu privire la proprietățile algoritmilor. De exemplu, cunoașterea dacă limbajul acceptat de un automat Büchi nedeterminist este gol este o proprietate care se decide în timp liniar [12] . O formulă logică în timp liniar (LTL) poate fi recunoscută de un automat Büchi, dar dimensiunea sa va fi exponențială în dimensiunea formulei LTL [13] . Această transformare poate fi utilizată pentru:

  • Decideți problema de satisfacție LTL. Această problemă este completă PSPACE .
  • Verificați cu verificarea modelului . Acesta este motivul pentru care este construit automatul Büchi echivalent cu formula LTL și se realizează produsul cu sistemul de verificat. Produsul este un automat Büchi și verificarea constă în testarea dacă limba acceptată este goală.
Transformarea unui automat Büchi generalizat într-un automat Büchi clasic.

Transformarea unei formule LTL într-un automat Büchi este de obicei prezentată cu un pas intermediar, numit automat Büchi generalizat , pentru care condiția de acceptare este mai generală. Un automat Büchi generalizat este ca un automat Büchi, cu excepția faptului că setul de stări terminale este înlocuit cu un set finit cu . Condiția de acceptare devine următoarea: o urmă are succes dacă și numai dacă pentru fiecare i trece de un număr infinit de ori pentru cel puțin o stare acceptantă de .

Exemplul verifică cuvintele alfabetului { , cr1, cr2} proprietatea care apare „infinit de des în secțiunea critică 1 și infinit deseori în secțiunea critică 2”. Scrisoarea corespunde unei secțiuni necritice, cr1 corespunde secțiunii critice 1 și cr2 secțiunii critice 2. este egal cu {{q 1 }, {q 2 }}: o execuție acceptantă trebuie să treacă infinit de des pentru q1 și infinit de des pentru q2. Aceasta corespunde cu ceea ce este descris de proprietate .

Ca prim pas, formula LTL este transformată într-un automat Büchi generalizat (ideea este că stările automatului sunt subseturile maxime de subformule ale formulei LTL). De exemplu, pentru proprietate scris în LTL cu (întotdeauna în viitorul cr1 și întotdeauna în viitorul cr2), automatul generalizat este dat de automatul din partea de sus a figurii. Acest automat se transformă într-un automat Büchi normal făcând o copie a automatului generalizat pentru fiecare subset . În exemplul din lateral, este copiat de două ori: prima copie corespunde cu {q 1 } și a doua cu {q 2 }. Odată întâlnit q 1 , trecem la a doua copie. Odată ce q 2 este satisfăcut, reveniți la prima copie. Automatul obținut este un automat Büchi clasic și condiția de acceptare este de a trece de un număr infinit de ori pentru q 1 sau q 2 '. Prin construcție, această condiție este echivalentă cu trecerea unei infinități de ori în q 1 și o infinitate de ori în q 2 în automatul generalizat.

Există algoritmi eficienți pentru construirea unui automat Büchi echivalent dintr-o formulă LTL [14] .

S1S și WS1S

Richard Büchi [1] a arătat că există echivalență, pentru fiecare limbaj infinit L, între:

  • L este definibil de o proprietate S1S ( logică monadică de ordinul doi cu un succesor);
  • L este definibil prin proprietăți WS1S (logică monadică de ordinul doi cu un succesor, numită „slab” (slab), și anume că cuantificarea portului de ordinul doi pe mulțimi finite);
  • L este recunoscut de un automat Büchi.

Echivalențele sunt eficiente: o formulă S1S se transformă într-un automat Büchi. Prin urmare, logica S1S (și WS1S) este decisă. Logica S1S are o complexitate neelementară [15] .

Notă

  1. ^ a b c ( EN ) Julius R. Büchi , Despre o metodă de decizie în aritmetică limitată de ordinul doi , Proc. Congres internațional de logică, metodă și filozofie a științei (1960) , Stanford University Press, 3 ianuarie 1962, pp. 1-12.
  2. ^ Christel Baier și Joost-Pieter Katoen, Principiile verificării modelelor (seria de reprezentare și minte) , ediția MIT Pressª, 31 mai 2008, p. 191 și p. 975, ISBN 978-0-262-02649-9 .
  3. ^ Farwer
  4. ^ a b Farwer , p. 6 .
  5. ^ Thomas , pp. 138-139 .
  6. ^ (EN) Robert McNaughton , Testarea și generarea de secvențe infinite de un automat finit , în Informații și control, vol. 9, 1966, pp. 521-530, DOI : 10.1016 / s0019-9958 (66) 80013-x .
  7. ^ (EN) AP Sistla, MY Vardi și P. Wolper, Problema de complementare pentru automatele Büchi cu aplicații la logica temporală , în Theoretical Computer Science , vol. 49, 1987, pp. 217-237, DOI : 10.1016 / 0304-3975 (87) 90008-9 .
  8. ^ (EN) Shmuel Safra, Despre complexitatea ω-automatelor, în Proc. 29 Simpozion IEEE privind fundamentele de informatică , White Plains, New York, octombrie 1988, pp. 319-327.
  9. ^ (RO) O. Kupferman și MY Vardi, Automatele slabe alternante nu sunt atât de slabe, în ACM Transactions on Computational Logic , Vol. 2, nr. 2, iulie 2001, pp. 408-429.
  10. ^ Farwer , p. 18, Teorema 1.30.
  11. ^ (EN) Guillaume Sadegh, Complementarea Büchi Automata (PDF), în Raport tehnic, vol. 0903, révision 2073, Le Kremlin-Bicêtre, Laboratoire de Recherche et Développement de l'Epita, mai 2009.
  12. ^ Christel Baier și Joost-Pieter Katoen, Principiile verificării modelelor (seria de reprezentare și minte) , ediția MIT Pressª, 31 mai 2008, p. 185, Th. 4.42 și p. 975, ISBN 978-0-262-02649-9 .
  13. ^ Christel Baier și Joost-Pieter Katoen, Principiile verificării modelelor (seria de reprezentare și minte) , ediția MIT Pressª, 31 mai 2008, p. 975, ISBN 978-0-262-02649-9 .
  14. ^ (EN) Paul și Denis Gastin Oddoux, Fast LTL to Büchi Automata Translation in Computer Aided Verification, Lecture Notes in Computer Science, Berlin, Heidelberg, Springer, 18 iulie 2001, pp. 53-65, DOI : 10.1007 / 3-540-44585-4_6 , ISBN 3-540-44585-4 . Adus pe 7 februarie 2018 .
  15. ^ (RO) Luke Ong - Automate, logică și jocuri: teorie și aplicație 1. Büchi Automata și S1S (PDF) pe cs.ox.ac.uk.

Bibliografie

  • ( EN ) Wolfgang Thomas, Automate on infinite objects , în Jan Van Leeuwen (ed.), Handbook of Theoretical Computer Science: Formal Models and Semantics , t. B, MIT Press, 1990, pp. 133-192, ISBN 0-262-72015-9 .
  • ( EN ) Berndt Farwer, ω-Automata , în Erich Grädel, Wolfgang Thomas și Thomas Wilke (ed.), Automate logics, and infinite games: A guide to current research ,, Lecture Notes in Computer Science , n. 2500, Springer-Verlag New York, Inc., 1 ianuarie 2002, pp. 3-22, ISBN 978-3-540-00388-5 .
  • ( EN ) Samuel Eilenberg, Cap. XIV. Comportamentul infinit al automatelor finite , în automate, limbi și mașini , matematică pură și aplicată , vol. A, Academic Press, 1974, pp. 379 -393, ISBN 978-0-12-234001-7 .

Alte proiecte