Introduzione agli Automi di Büchi:
Gli automi a stati finiti (automi regolari) rappresentano macchine che interagiscono con l’ambiente per un tempo finito (numero illimitato ma finito di interazioni).
Il comportamento corretto prevede la terminazione in uno stato di accettazione.
Non in tutti i sistemi o programmi la terminazione rappresenta un fatto positivo e necessario.
Si pensi a sistemi che non devono elaborare un risultato (sistemi trasformazionali) ma che devono mantenere in maniera continuativa l’interazione con un ambiente (sistemi reattivi).
Gli automi di Büchi descrivono macchine a stati finiti dove l’interazione tra ambiente e macchina non termina ma prosegue all’infinito.
Gli automi a stati finiti (automi regolari) possono essere visti come accettori di linguaggi finitari:
Gli automi di Büchi possono essere visti come accettori di :
:
Sintatticamente non c’è alcuna differenza tra gli automi di Büchi e gli Automi Regolari.
Un Automa di Büchi è una tupla
, dove
è l’alfabeto di input;
Q è l’insieme finito degli stati;
è lo stato iniziale;
è la
relazione di transizione;
è l’insieme degli stati finali.
Un automa B è deterministico sse
Come nel caso degli Automi Regolari l’LTS coincide con l’automa stesso. Cambia invece la nozione di comportamento (infinito e non più finito) e soprattutto quella di accettazione.
Un comportamento di B su una è un cammino infinito dell’LTS di B a partire dallo stato iniziale i cui archi siano etichettati (nell’ordine) da
.
Un comportamento è di successo se vi è almeno uno stato finale in F che occorre un numero infinito di volte nel cammino (accettazione alla Büchi).
In mancanza di terminazione il criterio di accettazione si basa sulla possibilità di circolare indefinitamente in cicli dell’automa che contengano almeno uno stato finale.
(Essendo finito il numero di stati i soli cammini infiniti sono quelli che attraversano un ciclo un numero infinito di volte)
Una è accettata da B se esiste un comportamento di successo di B su
.
Due esempi di automi di Büchi sull’alfabeto {a,b}.
riconosce il linguaggio
con parole in
con un numero finito di occorrenze di b.
riconosce il linguaggio
con parole in
con un numero infinito di occorrenze di b.
Si osservi che
non è deterministico;
è deterministico;
sono complementari.
I linguaggi possono esemplificare una proprietà degli Automi di Büchi.
Gli Automi di Büchi non sono determinizzabili (diversamente dagli automi regolari), ossia
Gli automi di Büchi non-deterministici sono più espressivi di quelli deterministici
La classe dei linguaggi accettati da automi di Büchi non-deterministici include strettamente quella dei linguaggi accettati da automi deterministici.
Ad esempio, è accettato da un automa deterministico ma per il suo complemento
non c’è nessun automa deterministico che lo possa accettare.
Dall’esempio si desume anche che la classe dei linguaggi di Büchi deterministici non è chiusa per operazione di complementazione.
I risultati principali sulla classe dei linguaggi accettati da Automi di Büchi (detti anche -linguaggi regolari) sono riportati di seguito:
La classe degli -linguaggi regolari è chiusa per:
Il problema del linguaggio vuoto per gli automi di Büchi è decidibile in tempo lineare nella taglia dell’automa.
Una caratterizzazione degli -linguaggi regolari è la seguente:
L è un -linguaggio regolare sse L è l’unione finita di insiemi di
-parole aventi la forma
dove sono insiemi regolari.
Si ricordi la costruzione dell’automa per l’intersezione di due linguaggi accettati da automi regolari.
L’automa intersezione è ottenuto mettendo in parallelo i due automi e sincronizzando la loro evoluzione:
Nel caso degli Automi di Büchi la verifica della condizione di accettazione è più laboriosa.
Non è corretto richiedere che uno stato finale delle due componenti sia raggiunto simultaneamente (sincronamente) un numero infinito di volte.
Le due componenti possono attraversare infinitamente spesso uno stato finale in modo scorrelato l’una dall’altra.
Idea: usare il passaggio del testimone. Quando una componente ha il testimone e parte da uno stato finale può cedere il testimone all’altra componente perché osservi anch’essa uno stato finale. Un numero infinito di passaggi del testimone garantisce il soddisfacimento della condizione di accettazione.
L’intersezione di
è l’automa
con
Negli automi regolari per risolvere il problema del vuoto si verifica l’esistenza di un cammino dallo stato iniziale ad uno stato finale nell’LTS (finito) dell’automa.
Banale problema di raggiungibilità in un grafo con numero di nodi ed archi finito.
Negli automi di Büchi basta verificare l’esistenza di un cammino nell’LTS (finito) dell’automa dallo stato iniziale ad un ciclo che contenga uno stato finale.
E’ ancora un problema di raggiungibilità in un grafo con numero di nodi ed archi finito per il quale esistono algoritmi efficienti di complessità lineare.
In Fig. 3 l’automa ammette linguaggio non vuoto perché lo stato finale si trova in un ciclo raggiungibile.
1. Introduzione ai metodi formali di specifica
2. Semantica dei formalismi di specifica
3. Astrazione e Bisimulazione debole
4. FSM: Macchine a Stati Finiti
5. FSM: Non-determinismo e succintezza
7. FSM e Parallelismo – seconda parte
8. FSM e Parallelismo – terza parte
9. Promela
10. Specifica e verifica in SPIN
11. Proprietà di liveness in SPIN
12. Specifica di proprietà in Logica Temporale Lineare
13. Comportamenti infiniti: Automi di Büchi
14. Model checking di LTL basato su automi
15. Specifica di sistemi real time: Automi Temporizzati
16. Proprietà degli Automi Temporizzati
17. Problemi di decisione negli Automi Temporizzati
18. Il sistema di verifica UPPAAL