Automi a stati finiti su parole infinite - Riassunto
Fonte: raw/Automi a stati finiti su parole infinite.md
Punti chiave
- Automi di Büchi: automi che leggono parole infinite. Una parola e' accettata se durante una computazione uno stato finale viene visitato infinitamente spesso.
- Linguaggi omega-regolari: classe dei linguaggi riconosciuti da automi di Büchi non deterministici. Sono chiusi per unione, intersezione e complemento.
- DBA vs NBA: gli automi di Büchi deterministici sono meno espressivi di quelli non deterministici; in particolare non bastano per tutti i linguaggi omega-regolari.
- Automi di Muller: usano come condizione di accettazione una famiglia di insiemi di stati. Una run e' accettante se l'insieme degli stati visitati infinitamente spesso appartiene alla famiglia indicata.
- Congruenza e saturazione: strumenti tecnici usati per dimostrare proprieta di chiusura e caratterizzazioni dei linguaggi omega-regolari.
Concetti collegati
- Automi di Büchi
- Linguaggi omega-regolari
- Automi di Muller
Automi di Büchi
Un automa di Büchi e' un automa finito che legge parole infinite, cioe' elementi di $\Sigma^\omega$. E' centrale nella verifica di sistemi reattivi, perche questi sistemi producono computazioni non terminanti.
Condizione di accettazione
Una parola infinita e' accettata se esiste una run in cui almeno uno stato finale viene visitato infinitamente spesso.
Determinismo e non determinismo
Sulle parole finite DFA e NFA hanno lo stesso potere espressivo. Sulle parole infinite, invece, gli automi di Büchi deterministici (DBA) sono strettamente meno espressivi degli automi di Büchi non deterministici (NBA).
- Gli NBA riconoscono tutti i linguaggi omega-regolari.
- I DBA non sono chiusi per complemento e non riconoscono tutti gli omega-linguaggi riconoscibili da NBA.
Per recuperare determinismo pieno si usano condizioni di accettazione piu ricche, come Muller o Rabin.
Collegamenti
- Linguaggi omega-regolari
- Automi di Muller
- Automi di Rabin
- S1S
- Secondo teorema di Büchi
Automi di Büchi generalizzati
Un GNBA e' un automa di Büchi con piu insiemi di accettazione $F_1,\ldots,F_k$.
Una run e' accettante se visita infinitamente spesso almeno uno stato di ciascun insieme $F_i$.
Conversione in NBA
Un GNBA si trasforma in un NBA aggiungendo memoria finita che tiene traccia dell'insieme di accettazione attualmente da soddisfare.
Collegamenti
- Automi di Büchi
- Linguaggi omega-regolari
Linguaggi omega-regolari
I linguaggi omega-regolari estendono i linguaggi regolari alle parole infinite.
Definizione
Un omega-linguaggio puo essere definito come unione finita di espressioni del tipo: $$U\cdot V^\omega$$
dove $U$ e $V$ sono linguaggi regolari su parole finite e $V^\omega$ indica concatenazione infinita di parole di $V$.
Caratterizzazione
Sono esattamente i linguaggi riconosciuti da automi di Büchi non deterministici, e anche da automi di Muller.
Proprieta
Sono chiusi per: - unione; - intersezione; - complemento.
Collegamenti
- Automi di Büchi
- Automi di Muller
- Automi di Rabin
- S1S
Automi di Muller
Gli automi di Muller sono automi su parole infinite con una condizione di accettazione basata sull'insieme degli stati visitati infinitamente spesso.
Condizione di accettazione
Data una famiglia $\mathcal{F}\subseteq 2^Q$, una run e' accettante se: $$Inf(\rho)\in\mathcal{F}$$
Importanza
Gli automi di Muller deterministici sono abbastanza espressivi da riconoscere tutti gli omega-linguaggi regolari e sono chiusi per complemento in modo semplice: basta complementare la famiglia $\mathcal{F}$.
Collegamenti
- Automi di Büchi
- Automi di Rabin
- Linguaggi omega-regolari
- Giochi di parità
Approfondimento completo settimana 3 - Automi su parole infinite e Buchi
Questa e' la versione estesa e autocontenuta del capitolo 5. Il focus e': capire perche' servono automi su parole infinite, come funziona la condizione di Buchi, perche' NBA e DBA non hanno lo stesso potere, come si usano GNBA, emptiness, parole ultimamente periodiche e automi di Muller.
Di cosa parla davvero questo capitolo
I DFA/NFA dei capitoli precedenti leggono parole finite. Una parola finita ha un ultimo simbolo: quando la lettura termina, guardo se lo stato corrente e' finale.
Nei sistemi reattivi, pero', le computazioni non terminano:
- un server continua a rispondere;
- un protocollo continua a interagire;
- un controller continua a ricevere input;
- un sistema concorrente continua a fare passi.
Quindi servono automi che leggono parole infinite:
$$\alpha=\alpha(0)\alpha(1)\alpha(2)\ldots$$
Il punto delicato e':
se la parola non finisce mai, cosa significa "accettare"?
Gli automi di Buchi rispondono cosi':
una run e' accettante se visita stati finali infinitamente spesso.
La mappa del capitolo e':
- Parte I: parole infinite e notazione.
- Parte II: NBA, run infinite e condizione di Buchi.
- Parte III: linguaggi omega-regolari ed esempi base.
- Parte IV: operazioni $W^\omega$ e $\overrightarrow{W}$.
- Parte V: chiusure e GNBA.
- Parte VI: espressioni omega-regolari.
- Parte VII: emptiness, SCC e parole ultimamente periodiche.
- Parte VIII: complementazione e perche' non basta invertire finali.
- Parte IX: DBA vs NBA.
- Parte X: automi di Muller.
- Parte XI: esercizi, errori tipici e risposta orale.
0. Richiami minimi
NFA su parole finite. Un NFA accetta una parola finita se esiste una run che, dopo aver letto tutta la parola, finisce in uno stato finale.
Sistemi reattivi. Producono computazioni infinite. Per questo non basta una condizione sullo stato "alla fine".
LTL e model checking. Le formule temporali parlano spesso di proprieta' su computazioni infinite. Gli automi di Buchi saranno il ponte fra formule LTL e verifica automatica.
Parte I - Parole infinite
1. Omega-parole
Dato un alfabeto finito $A$, una parola infinita su $A$ e' una sequenza:
$$\alpha=\alpha(0)\alpha(1)\alpha(2)\ldots$$
dove:
$$\alpha(i)\in A$$
per ogni $i\ge 0$.
L'insieme di tutte le parole infinite su $A$ e':
$$A^\omega.$$
Useremo:
- $u,v,w\in A^\ast$ per parole finite;
- $\alpha,\beta,\gamma\in A^\omega$ per parole infinite.
2. Sottoparole e suffissi
Se:
$$n\le m,$$
allora:
$$\alpha(n,m)=\alpha(n)\alpha(n+1)\cdots\alpha(m-1)$$
e' una parola finita.
Il suffisso infinito da $n$ in poi e':
$$\alpha(n,\omega)=\alpha(n)\alpha(n+1)\alpha(n+2)\ldots$$
Questa notazione serve per parlare di cio' che accade "da un certo punto in poi".
3. Infinitamente spesso e finitamente spesso
Scriviamo:
$$\exists^\omega n.\ P(n)$$
per dire:
esistono infiniti indici $n$ tali che $P(n)$ vale.
E:
$$\exists^{<\omega} n.\ P(n)$$
per dire:
esistono solo finitamente molti indici $n$ tali che $P(n)$ vale.
Esempio:
$$\exists^\omega n.\ \alpha(n)=a$$
significa:
nella parola $\alpha$, la lettera $a$ compare infinitamente spesso.
4. L'insieme In(alpha)
Per una parola infinita $\alpha$, definiamo:
$$In(\alpha)=\{a\in A\mid \exists^\omega n.\ \alpha(n)=a\}.$$
Lettura:
$In(\alpha)$ contiene le lettere che compaiono infinitamente spesso in $\alpha$.
Poiche' $A$ e' finito e $\alpha$ e' infinita, $In(\alpha)$ non puo' essere vuoto: almeno una lettera deve ripetersi infinite volte.
Questa idea ritornera' negli automi di Muller, dove guardiamo gli stati visitati infinitamente spesso.
Parte II - Automi di Buchi non deterministici
5. Definizione di NBA
Un automa di Buchi non deterministico, NBA, e':
$$\mathcal{A}=(Q,A,\Delta,q_0,F).$$
Dove:
- $Q$ e' un insieme finito di stati;
- $A$ e' l'alfabeto;
- $\Delta\subseteq Q\times A\times Q$ e' la relazione di transizione;
- $q_0$ e' lo stato iniziale;
- $F\subseteq Q$ e' l'insieme degli stati finali.
La struttura sembra quella di un NFA. Cambia la semantica di accettazione.
6. Run su una omega-parola
Data una parola:
$$\alpha=\alpha(0)\alpha(1)\alpha(2)\ldots,$$
una run di $\mathcal{A}$ su $\alpha$ e' una sequenza infinita di stati:
$$\sigma=q_0q_1q_2\ldots$$
tale che per ogni $i\ge 0$:
$$(q_i,\alpha(i),q_{i+1})\in\Delta.$$
Quindi la run consuma un simbolo per ogni passo, ma non finisce mai.
7. Condizione di accettazione di Buchi
Una run e' accettante se visita stati finali infinitamente spesso:
$$In(\sigma)\cap F\ne\emptyset.$$
Equivalentemente:
$$\exists q\in F.\ \exists^\omega i.\ q_i=q.$$
Lettura:
almeno uno stato finale viene visto infinite volte lungo la run.
L'automa accetta $\alpha$ se esiste almeno una run accettante su $\alpha$.
8. Differenza con NFA su parole finite
In un NFA su parole finite:
conta dove sei quando la parola finisce.
In un NBA:
conta quali stati ricompaiono infinitamente spesso.
Uno stato finale in un NBA non significa "ho finito". Significa:
questo stato deve essere visitato ancora e ancora, senza limite.
9. Perche il non determinismo conta
Come negli NFA, l'NBA accetta se esiste una run accettante.
Questo e' cruciale. Il non determinismo puo' "indovinare" un punto della parola in cui iniziare un comportamento accettante.
Esempio che tornera':
parole con solo finitely many $a$.
Un NBA puo' indovinare l'ultima $a$ e poi controllare che da li' in poi compaiano solo $b$.
Un DBA, invece, non puo' indovinare: ha una sola run.
Parte III - Linguaggi omega-regolari
10. Definizione
Un linguaggio:
$$L\subseteq A^\omega$$
e' omega-regolare se esiste un automa di Buchi che lo riconosce.
In simboli:
$$L=L(\mathcal{A})$$
per qualche NBA $\mathcal{A}$.
11. Esempio: infinite occorrenze di a
Linguaggio:
$$L_{\infty a}=\{\alpha\in\{a,b\}^\omega\mid a\text{ compare infinitamente spesso}\}.$$
NBA, anzi anche DBA, semplice:
- stato $q_a$ finale quando l'ultimo simbolo letto e' $a$;
- stato $q_b$ non finale quando l'ultimo simbolo letto e' $b$.
Transizioni:
| stato | leggo $a$ | leggo $b$ |
|---|---|---|
| $q_a$ | $q_a$ | $q_b$ |
| $q_b$ | $q_a$ | $q_b$ |
Finale:
$$F=\{q_a\}.$$
La run visita $q_a$ infinitamente spesso se e solo se legge $a$ infinitamente spesso.
12. Esempio: finitely many a
Linguaggio:
$$L_{fin\,a}=\{\alpha\in\{a,b\}^\omega\mid a\text{ compare solo finitely many times}\}.$$
Un NBA puo' riconoscerlo cosi':
- finche' vuole, resta in una fase iniziale;
- a un certo punto indovina: "da qui in poi non compariranno piu' $a$";
- passa a uno stato finale che accetta solo $b$;
- se vede una $a$ dopo l'indovinata, quella run muore.
Se la parola ha davvero solo finite $a$, esiste una scelta corretta: indovinare dopo l'ultima $a$.
Se la parola ha infinite $a$, ogni scelta viene prima o poi smentita.
13. Linguaggio con vincolo fra due a
Negli appunti compare un esempio su:
$$A=\{a,b,c\}.$$
Vincolo:
fra due occorrenze consecutive di $a$ deve comparire un numero pari di simboli diversi da $a$.
L'idea dell'automa:
- prima di vedere $a$, si puo' leggere $b$ o $c$ liberamente;
- dopo una $a$, bisogna ricordare la parita' del numero di $b/c$ visti;
- una nuova $a$ e' permessa solo quando la parita' e' pari;
- se si viola il vincolo, quella run non puo' accettare.
Questo esempio serve a fissare un punto:
gli stati finali non indicano "terminazione", ma situazioni che devono ricorrere infinite volte o comunque rimanere compatibili con una run infinita.
Parte IV - Due operazioni su linguaggi finiti
14. Omega-chiusura $W^\omega$
Dato:
$$W\subseteq A^\ast,$$
definiamo:
$$W^\omega=\{\alpha\in A^\omega\mid \alpha=w_0w_1w_2\ldots,\ w_i\in W\}.$$
Lettura:
parole infinite ottenute concatenando infinitamente molte parole finite prese da $W$.
Esempio:
$$W=\{ab\}.$$
Allora:
$$W^\omega=(ab)^\omega=ababab\ldots$$
15. Chiusura vettoriale $\overrightarrow{W}$
Dato:
$$W\subseteq A^\ast,$$
definiamo:
$$\overrightarrow{W}=\{\alpha\in A^\omega\mid \exists^\omega n.\ \alpha(0,n)\in W\}.$$
Lettura:
parole infinite che hanno infinitamente molti prefissi appartenenti a $W$.
Esempio:
Se:
$$W=A^\ast a,$$
cioe' parole finite che terminano con $a$, allora:
$$\overrightarrow{W}$$
e' il linguaggio delle parole infinite con infinite occorrenze di $a$.
16. Perche queste operazioni sono importanti
Sono due modi diversi di descrivere infinito:
- $W^\omega$ divide la parola infinita in blocchi finiti;
- $\overrightarrow{W}$ guarda prefissi buoni che ricompaiono infinite volte.
Queste operazioni anticipano due idee:
- omega-regex;
- condizioni di accettazione basate su visite infinite.
Parte V - Chiusure e GNBA
17. Se V e' regolare, allora $V^\omega$ e' omega-regolare
Sia:
$$V\subseteq A^\ast$$
regolare.
Vogliamo riconoscere:
$$V^\omega.$$
Intuizione:
- uso un automa finito per riconoscere un blocco di $V$;
- quando raggiungo un finale, posso tornare all'inizio;
- devo farlo infinitamente spesso;
- quindi rendo l'inizio, o il punto di reset, finale nel senso di Buchi.
La run accettante passa infinitamente spesso dal punto di reset, cioe' riconosce infiniti blocchi di $V$.
18. Se V regolare e L omega-regolare, allora $V\cdot L$ e' omega-regolare
Qui:
$$V\subseteq A^\ast,\qquad L\subseteq A^\omega.$$
Il linguaggio:
$$V\cdot L$$
contiene parole infinite con un prefisso finito in $V$ seguito da una parola in $L$.
Costruzione intuitiva:
- una parte finita riconosce il prefisso in $V$;
- poi si passa all'NBA che riconosce $L$;
- l'accettazione dipende dalla parte infinita.
19. Unione
Se $L_1$ e $L_2$ sono omega-regolari, allora:
$$L_1\cup L_2$$
e' omega-regolare.
Con NBA, basta usare nondeterminismo:
- una run simula l'automa per $L_1$;
- un'altra simula l'automa per $L_2$;
- se una delle due ha una run accettante, la parola e' accettata.
20. Perche l'intersezione non e' il prodotto banale
Per parole finite, il prodotto per intersezione usa finali:
$$F_1\times F_2.$$
Per NBA non basta. Infatti, una parola deve far visitare:
- finali del primo automa infinitamente spesso;
- finali del secondo automa infinitamente spesso.
Ma queste visite non devono accadere nello stesso istante.
Esempio:
- il primo automa visita un finale nei tempi pari;
- il secondo nei tempi dispari.
Entrambi accettano, ma il prodotto potrebbe non visitare mai una coppia $(F_1,F_2)$ simultaneamente.
Serve una condizione piu' generale.
21. GNBA
Un Generalized Buchi Automaton, GNBA, ha una famiglia di insiemi finali:
$$\mathcal{F}=\{F_1,\ldots,F_k\}.$$
Una run e' accettante se visita ogni $F_i$ infinitamente spesso:
$$\forall i,\ \exists^\omega n.\ q_n\in F_i.$$
Quindi una GNBA puo' dire:
visita infinitamente spesso finali del primo tipo, del secondo tipo, ecc.
22. Intersezione tramite GNBA
Dati due NBA:
$$\mathcal{A}_1,\quad \mathcal{A}_2,$$
costruiamo il prodotto:
$$Q=Q_1\times Q_2.$$
La condizione GNBA e':
$$\mathcal{F}=\{F_1\times Q_2,\ Q_1\times F_2\}.$$
Lettura:
- visita infinitamente spesso stati in cui la prima componente e' finale;
- visita infinitamente spesso stati in cui la seconda componente e' finale.
Questo riconosce:
$$L(\mathcal{A}_1)\cap L(\mathcal{A}_2).$$
23. Da GNBA a NBA
GNBA e NBA hanno lo stesso potere espressivo.
Se:
$$\mathcal{F}=\{F_1,\ldots,F_k\},$$
costruiamo $k$ copie dell'automa. La copia corrente indica quale insieme finale stiamo aspettando.
Schema:
- nella copia 1 cerco una visita a $F_1$;
- quando la trovo, passo alla copia 2;
- nella copia 2 cerco $F_2$;
- ...
- dopo $F_k$, torno alla copia 1.
Se completo questo ciclo infinitamente spesso, ho visitato tutti gli $F_i$ infinitamente spesso.
La dimensione cresce di un fattore circa $k$.
Parte VI - Espressioni omega-regolari
24. Forma delle omega-espressioni
Una espressione omega-regolare ha forma finita:
$$\bigcup_{i=1}^n U_i\cdot V_i^\omega,$$
dove $U_i,V_i\subseteq A^\ast$ sono linguaggi regolari.
Lettura:
scelgo un prefisso finito in $U_i$, poi concateno infinitamente molti blocchi presi da $V_i$.
25. Da Buchi a omega-espressione
Dato un NBA:
$$\mathcal{A}=(Q,A,\Delta,q_0,F),$$
per ogni coppia di stati $s,s'$ definiamo:
$$W_{ss'}=\{w\in A^\ast\mid s\xrightarrow{w}s'\}.$$
Questo linguaggio e' regolare, perche' si riconosce con un automa finito che parte da $s$ e ha finale $s'$.
Se una run accettante visita infinitamente spesso uno stato finale $f$, allora:
- c'e' un prefisso che porta da $q_0$ a $f$;
- poi ci sono infiniti cicli da $f$ a $f$.
Quindi:
$$L(\mathcal{A})=\bigcup_{f\in F} W_{q_0f}\cdot (W_{ff})^\omega.$$
Questa formula e' una lettura potente:
una parola accettata ha un prefisso fino a un finale e poi ritorna infinitamente spesso a quel finale.
26. Da omega-espressione a Buchi
Per:
$$U\cdot V^\omega,$$
costruiamo:
- un automa finito per $U$;
- un automa per $V$;
- una struttura che, dopo il prefisso $U$, riconosce infiniti blocchi in $V$;
- una condizione di Buchi che forza il ritorno infinitamente spesso al punto di reset dei blocchi.
La chiusura per unione gestisce la somma finita:
$$\bigcup_i U_i\cdot V_i^\omega.$$
Quindi:
linguaggi omega-regolari = linguaggi riconosciuti da NBA = linguaggi descritti da omega-espressioni regolari.
Parte VII - Emptiness, lasso e parole ultimamente periodiche
27. Parole ultimamente periodiche
Una parola infinita e' ultimamente periodica se:
$$\alpha=u\cdot v^\omega$$
con:
$$u,v\in A^\ast,\qquad v\ne\varepsilon.$$
Lettura:
dopo un prefisso finito $u$, ripete per sempre lo stesso blocco $v$.
Questa forma si chiama anche lasso:
- $u$ = manico;
- $v$ = ciclo.
28. Ogni omega-regolare non vuoto contiene un lasso
Se un linguaggio omega-regolare non e' vuoto, contiene almeno una parola ultimamente periodica.
Intuizione da automi:
- una run accettante visita infiniti stati;
- gli stati sono finiti;
- qualche stato finale ricorre;
- fra due visite allo stesso stato finale c'e' un ciclo;
- quel ciclo puo' essere ripetuto per sempre.
Quindi se un NBA accetta qualcosa, accetta anche una parola del tipo:
$$u\cdot v^\omega.$$
29. Emptiness problem
Il problema di vuotezza chiede:
$$L(\mathcal{A})=\emptyset?$$
Per un NBA, la risposta e' no se e solo se esiste:
- uno stato finale $f\in F$;
- raggiungibile da $q_0$;
- che appartiene a un ciclo raggiungibile da se stesso.
Equivalentemente:
esiste una SCC raggiungibile che contiene almeno uno stato finale e ha un ciclo infinito.
30. Algoritmo di emptiness
Procedura:
- calcola gli stati raggiungibili da $q_0$;
- calcola le SCC del grafo delle transizioni;
- cerca una SCC raggiungibile che contiene uno stato finale;
- verifica che la SCC permetta una run infinita, cioe' contenga un ciclo.
Se esiste, il linguaggio non e' vuoto.
Se non esiste, il linguaggio e' vuoto.
Questa e' una riduzione a raggiungibilita' e SCC su grafo finito.
31. Perche emptiness e' centrale nel model checking
Nel model checking automata-theoretic si controlla spesso:
$$L(S)\cap L(\neg\varphi)=\emptyset.$$
Lettura:
non esiste un comportamento del sistema che violi la proprieta'.
Quindi l'emptiness degli automi di Buchi diventa il motore della verifica LTL.
Parte VIII - Complementazione
32. L'errore: invertire gli stati finali
Per DFA su parole finite, il complemento si ottiene invertendo finali e non finali.
Per NBA questo non funziona.
Perche'?
Un NBA accetta se:
esiste una run che visita $F$ infinitamente spesso.
La negazione e':
tutte le run non visitano $F$ infinitamente spesso.
Invertire $F$ controlla invece:
esiste una run che visita stati non finali infinitamente spesso.
Questa non e' la negazione corretta.
33. Esempio intuitivo del fallimento
Una parola puo' avere:
- una run che visita finali infinitamente spesso;
- un'altra run che visita non-finali infinitamente spesso.
Allora l'automa originale accetta, ma anche l'automa con finali invertiti potrebbe accettare.
Questo e' il problema del non determinismo.
34. Chiusura per complemento
Gli omega-linguaggi regolari sono chiusi per complemento, ma la costruzione e' molto piu' difficile rispetto al caso DFA.
Gli appunti introducono strumenti come:
- congruenze su parole finite;
- saturazione;
- comportamento rispetto a cammini che attraversano finali.
L'idea concettuale:
per complementare un NBA bisogna catturare globalmente tutte le run, non solo cambiare etichetta ai finali.
Per l'orale, la cosa fondamentale e' sapere:
- la classe e' chiusa per complemento;
- la costruzione non e' banale;
- invertire finali e non finali e' sbagliato.
35. Congruenza e saturazione, lettura leggera
Una congruenza su $A^\ast$ raggruppa parole finite che si comportano allo stesso modo rispetto alla concatenazione.
Dire che una congruenza satura un omega-linguaggio significa:
su ogni blocco del tipo $U\cdot V^\omega$, o tutto il blocco sta nel linguaggio, o nessuna parola rilevante del blocco lo attraversa parzialmente.
Il punto tecnico degli appunti e':
se una congruenza satura $L$, allora satura anche il complemento.
Questo permette di ragionare sul complemento con un numero finito di classi.
Parte IX - DBA vs NBA
36. Definizione di DBA
Un DBA e' un automa di Buchi deterministico:
- una sola transizione possibile per ogni stato e simbolo;
- una sola run per ogni parola;
- accettazione ancora basata su visite infinite a $F$.
37. NBA e DBA non hanno lo stesso potere
Sulle parole finite:
$$DFA \equiv NFA$$
come potere espressivo.
Sulle parole infinite:
$$DBA \subsetneq NBA.$$
Il non determinismo aggiunge potere espressivo.
38. Linguaggio "finitely many a"
Il linguaggio:
$$L_{fin\,a}=\{\alpha\mid a\text{ compare finitely many times}\}$$
e' riconoscibile da un NBA:
- indovina il punto dopo l'ultima $a$;
- da li' accetta solo $b$;
- resta in uno stato finale su $b$.
Ma non e' riconoscibile da un DBA.
Intuizione:
un deterministico non puo' sapere quando ha visto l'ultima $a$, perche' una nuova $a$ potrebbe sempre arrivare piu' avanti.
39. Complemento e DBA
Il complemento di "finitely many a" e':
$$L_{\infty a}=\{\alpha\mid a\text{ compare infinitely often}\}.$$
Questo e' riconoscibile da un DBA semplice, come visto prima.
Se i DBA fossero chiusi per complemento, allora anche "finitely many a" sarebbe DBA. Ma non lo e'. Quindi i DBA non sono chiusi per complemento come i DFA.
Per recuperare chiusure robuste in forma deterministica servono condizioni piu' ricche, come Muller o Rabin.
40. Caratterizzazione utile dei DBA
Gli appunti collegano i DBA a linguaggi del tipo:
$$\overrightarrow{W}$$
dove $W$ e' regolare.
Intuizione:
un DBA accetta se lungo la sua unica run incontra stati finali infinitamente spesso; quindi i prefissi che portano a finali formano un linguaggio regolare visto infinitamente spesso.
Questa caratterizzazione spiega perche' i DBA sono meno espressivi degli NBA.
Parte X - Automi di Muller
41. Perche introdurre Muller
Gli automi di Buchi guardano se almeno uno stato finale viene visitato infinitamente spesso.
Gli automi di Muller guardano l'intero insieme degli stati visitati infinitamente spesso.
Questo e' piu' espressivo e funziona meglio con determinismo.
42. Definizione
Un automa di Muller e':
$$\mathcal{A}=(Q,A,q_0,\delta,\mathcal{F})$$
dove:
$$\mathcal{F}\subseteq 2^Q.$$
Data una run:
$$\rho=q_0q_1q_2\ldots,$$
definiamo:
$$Inf(\rho)=\{q\in Q\mid \exists^\omega i.\ q_i=q\}.$$
La run e' accettante se:
$$Inf(\rho)\in\mathcal{F}.$$
43. Buchi come caso particolare di Muller
Un automa di Buchi con finali $F$ accetta se:
$$Inf(\rho)\cap F\ne\emptyset.$$
Questo si traduce in Muller ponendo:
$$\mathcal{F}=\{P\subseteq Q\mid P\cap F\ne\emptyset\}.$$
Quindi Buchi e' un caso particolare di Muller.
44. Complemento nei Muller automata
Per un automa di Muller deterministico, complementare e' semplice:
$$\mathcal{F}'=2^Q-\mathcal{F}.$$
Stessa struttura, stessa run unica, ma accetti gli insiemi ricorrenti che prima erano rifiutati.
Questo e' uno dei motivi per cui Muller e' utile:
mantiene determinismo ed e' chiuso per complemento in modo diretto.
45. Collegamento col capitolo 10
Nel capitolo 10, Buchi-Landweber usa automi deterministici di Muller per trasformare specifiche logiche in giochi.
Ora dovrebbe essere chiaro perche':
- servono parole infinite;
- serve determinismo;
- serve una condizione espressiva;
- Muller permette di parlare di insiemi ricorrenti.
Parte XI - Automata per fairness
46. Justice come proprieta' omega
Una condizione di justice dice:
se una transizione resta abilitata da un certo punto in poi, allora deve essere presa infinitamente spesso.
Questa e' una proprieta' su computazioni infinite, quindi e' naturale rappresentarla con automi di Buchi.
47. Stato critico della justice
Negli appunti, per una transizione $a_i$, si distingue:
- enabled: la transizione e' abilitata nello stato corrente;
- taken: la transizione e' stata presa.
Lo stato problematico e':
enabled ma non taken.
Se resto per sempre in una situazione in cui $a_i$ e' abilitata e non la prendo mai, violo justice.
Un automa di Buchi puo' avere come unico stato non finale proprio lo stato critico "enabled-not-taken". Accettare significa non restare per sempre bloccati in quella violazione.
48. Perche questo esercizio e' importante
Collega tre parti del corso:
- fairness dei Fair Transition Systems;
- automi su parole infinite;
- model checking LTL/automata-theoretic.
All'orale, se ti chiedono "perche servono gli automi di Buchi?", puoi rispondere anche:
perche' condizioni come fairness e liveness non parlano di una fine, ma di cio' che accade infinitamente spesso lungo una computazione.
Parte XII - Errori tipici
49. Pensare che finale significhi "ultimo stato"
Nelle parole infinite non c'e' ultimo stato.
Uno stato finale di Buchi deve essere visitato infinitamente spesso.
50. Confondere esiste una run con tutte le run
Un NBA accetta se esiste una run accettante.
Non richiede che tutte le run siano accettanti.
51. Usare il prodotto finito per l'intersezione
Il prodotto con finali $F_1\times F_2$ non basta, perche' le visite finali dei due automi possono non essere sincronizzate.
Serve GNBA o una costruzione equivalente.
52. Invertire i finali per complementare un NBA
Sbagliato. La negazione di "esiste una run buona" e' "tutte le run non sono buone", non "esiste una run che visita finali invertiti".
53. Pensare che DBA e NBA siano equivalenti
Sulle parole infinite il non determinismo aumenta il potere espressivo.
L'esempio standard e' "finitely many $a$": NBA si', DBA no.
54. Confondere Occ e Inf
$$Occ(\rho)$$
conta gli stati visitati almeno una volta.
$$Inf(\rho)$$
conta gli stati visitati infinitamente spesso.
Per Buchi/Muller conta $Inf$, non solo $Occ$.
Parte XIII - Mini-esercizi guidati
Esercizio 1: accettazione Buchi
Una run visita uno stato finale alle posizioni:
$$2,5,9,14,20,\ldots$$
ed esistono infinite posizioni di questo tipo. E' accettante?
Si'. Serve una visita finale infinitamente spesso, non periodica o regolare.
Esercizio 2: visite finite
Una run visita finali solo alle posizioni:
$$3,7,10.$$
Poi mai piu'. E' accettante?
No. Le visite finali sono finite.
Esercizio 3: infinite a
Costruisci un DBA per infinite occorrenze di $a$.
Soluzione:
- stato finale $q_a$ quando leggo $a$;
- stato non finale $q_b$ quando leggo $b$;
- su $a$ vado a $q_a$;
- su $b$ vado a $q_b$.
Esercizio 4: finitely many a
Perche' un NBA riconosce finitely many $a$?
Perche' puo' indovinare il punto dopo l'ultima $a$ e poi controllare che da li' in poi compaiano solo $b$.
Esercizio 5: emptiness
Un NBA ha uno stato finale raggiungibile, ma nessun ciclo che lo contiene. Il linguaggio e' non vuoto?
No. Per accettare bisogna tornare a un finale infinitamente spesso; serve un ciclo con finale raggiungibile.
Esercizio 6: GNBA
Un GNBA ha:
$$\mathcal{F}=\{F_1,F_2,F_3\}.$$
Che cosa deve fare una run accettante?
Deve visitare ciascuno dei tre insiemi $F_1,F_2,F_3$ infinitamente spesso.
Esercizio 7: Muller
Se:
$$Inf(\rho)=\{q_2,q_4\}$$
e:
$$\mathcal{F}=\{\{q_2,q_4\},\{q_1\}\},$$
la run e' accettante?
Si', perche' l'insieme degli stati visitati infinitamente spesso appartiene a $\mathcal{F}$.
Esercizio 8: Occ vs Inf
Per:
$$\rho=q_0,q_1,q_2,q_1,q_2,q_1,q_2,\ldots$$
calcola:
$$Occ(\rho),\qquad Inf(\rho).$$
Soluzione:
$$Occ(\rho)=\{q_0,q_1,q_2\},$$
$$Inf(\rho)=\{q_1,q_2\}.$$
Parte XIV - Mappa per l'orale
55. Percorso consigliato
Per rispondere bene:
- Parti dai sistemi reattivi: computazioni infinite.
- Spiega perche' NFA/DFA su parole finite non bastano.
- Definisci omega-parole e $A^\omega$.
- Definisci NBA.
- Spiega run infinita e condizione di Buchi.
- Sottolinea: accetta se esiste una run con finali infinitamente spesso.
- Fai l'esempio "infinite occorrenze di $a$".
- Fai l'esempio "finitely many $a$" e spiega il ruolo del non determinismo.
- Definisci linguaggio omega-regolare.
- Spiega $W^\omega$ e $\overrightarrow{W}$.
- Spiega perche' l'intersezione richiede GNBA.
- Spiega GNBA e conversione a NBA.
- Spiega omega-espressioni regolari.
- Spiega emptiness via SCC con finale raggiungibile.
- Spiega lasso/ultimately periodic.
- Spiega perche' la complementazione non e' invertire finali.
- Spiega DBA vs NBA.
- Chiudi con Muller e collegamento al capitolo 10.
56. Risposta orale pronta
Una risposta compatta:
Gli automi di Buchi estendono gli automi finiti alle parole infinite, che sono necessarie per modellare sistemi reattivi e computazioni non terminanti. La struttura di un NBA e' simile a quella di un NFA, ma cambia l'accettazione: una run infinita e' accettante se visita stati finali infinitamente spesso, cioe' se $In(\sigma)\cap F\ne\emptyset$. L'automa accetta una parola se esiste una run accettante.
I linguaggi riconosciuti da NBA sono gli omega-regolari. Si possono descrivere anche con espressioni omega-regolari del tipo $\bigcup_i U_iV_i^\omega$. L'emptiness e' decidibile cercando una SCC raggiungibile che contenga uno stato finale: se esiste, posso costruire un lasso $uv^\omega$ accettato. Le chiusure richiedono attenzione: l'unione e' semplice, l'intersezione richiede GNBA perche' le visite finali dei due automi non devono essere sincronizzate, e la complementazione non si ottiene invertendo i finali. Inoltre NBA e DBA non hanno lo stesso potere: per esempio "finitely many $a$" e' NBA ma non DBA. Per recuperare determinismo pieno si introducono condizioni piu' ricche, come Muller, che guardano l'insieme degli stati visitati infinitamente spesso.
57. Riassunto finale
Il capitolo 5 introduce il modo standard di ragionare sulle computazioni infinite:
$$ \text{parole infinite} \to \text{run infinite} \to \text{visite infinitamente spesso} \to \text{accettazione Buchi}. $$
La frase da ricordare e':
su parole infinite non accetto arrivando alla fine; accetto se il comportamento buono ricorre infinitamente spesso.
La catena tecnica e':
$$ \text{NBA} \leftrightarrow \text{omega-regolari} \leftrightarrow \text{omega-espressioni} \to \text{emptiness via SCC/lasso} \to \text{GNBA per intersezione} \to \text{Muller per determinismo e complemento}. $$