Teorema di McNaughton - Server users.dimi.uniud.it

Transcript

Teorema di McNaughton - Server users.dimi.uniud.it
Teorema di
McNaughton
Angelo
Montanari
Introduzione
Definizioni di
Base
Teorema di
McNaughton
Università degli Studi di Udine
Algoritmo di
Safra
Stati
Funzione di
Transizione
Stato iniziale
Condizione di
Accettazione
Corso di Verifica Automatica dei Sistemi:
Teoria e Applicazioni
Esempio
Dimostrazione
di correttezza
Teorema di McNaughton e algoritmo di Safra
Angelo Montanari (ed Elena Topan)
Teorema di
McNaughton
Angelo
Montanari
Introduzione
Definizioni di
Base
Riferimento bibliografico:
Teorema di
McNaughton
Algoritmo di
Safra
Stati
Funzione di
Transizione
Stato iniziale
Condizione di
Accettazione
Esempio
Dimostrazione
di correttezza
Dominique Perrin and Jean-Eric Pin. Infinite words :
automata, semigroups, logic and games (Chapter 1). Pure
and Applied Mathematics Series. Elsevier, 2004.
Teorema di
McNaughton
Introduzione
Angelo
Montanari
Introduzione
Definizioni di
Base
Teorema di
McNaughton
Algoritmo di
Safra
Stati
Funzione di
Transizione
Stato iniziale
Condizione di
Accettazione
Esempio
Dimostrazione
di correttezza
Data l’equivalenza tra automi di Rabin e automi di Muller
(deterministici), il teorema di McNaughton ammette due
formulazioni alternative: equivalenza tra automi di Büchi (non
deterministici) e automi di Muller (deterministici), la cui
dimostrazione è fornita nelle note al corso, ed equivalenza tra
automi di Büchi (non deterministici) e automi di Rabin
(deterministici).
Rabin ≡ Muller ≡ B üchi
↑ McNaughton (versione 1)
In questa lezione dimostreremo l’equivalenza tra automi di
Büchi e automi di Rabin.
B üchi ≡ Rabin
↑ McNaughton (versione 2)
Teorema di
McNaughton
Definizioni di Base
Angelo
Montanari
Introduzione
Definizioni di
Base
Teorema di
McNaughton
Algoritmo di
Safra
Stati
Funzione di
Transizione
Stato iniziale
Condizione di
Accettazione
• Automa di Büchi
è una quintupla A = (Q, A, ∆, I , F ) dove:
•
•
•
•
•
Q è un insieme di stati
A è un alfabeto
∆ ⊆ Q × A × Q è la relazione di transizione
I ⊆ Q è l’insieme degli stati iniziali
F ⊆ Q è l’insieme degli stati finali
Esempio
Dimostrazione
di correttezza
Una computazione σ si dice di successo se (e solo se):
In (σ) ∩ F 6= ∅
Nel seguito indicheremo con ∆(P, a), con P ⊆ Q e a ∈ A,
l’insieme degli stati raggiungibili via a a partire dagli stati in P.
Teorema di
McNaughton
Definizioni di Base
Angelo
Montanari
Introduzione
Definizioni di
Base
Teorema di
McNaughton
Algoritmo di
Safra
Stati
Funzione di
Transizione
Stato iniziale
Condizione di
Accettazione
Esempio
Dimostrazione
di correttezza
• Automa di Rabin
è una quintupla D = (Q, A, δ, i, Ω) dove Q e A sono
definiti come negli automi di Büchi, δ è la funzione di
transizione, i lo stato iniziale e
Ω = {(L1 , U1 ) , . . . , (Ln , Un )}
con Li , Ui ⊆ Q ∀i = 1, . . . n.
Una computazione σ si dice di successo se esiste j tale
che:
• In (σ) ∩ Lj = ∅
• In (σ) ∩ Uj 6= ∅
Teorema di
McNaughton
Angelo
Montanari
Teorema di McNaughton
Introduzione
Definizioni di
Base
Teorema di
McNaughton
Algoritmo di
Safra
Stati
Funzione di
Transizione
Stato iniziale
Condizione di
Accettazione
Teorema (McNaughton)
Un ω-linguaggio L ⊆ Aω è riconosciuto da un automa di Büchi
se e soltanto se è riconosciuto da un automa di Rabin.
La direzione da destra a sinistra è (quasi) immediata,
sfruttando l’equivalenza di automi di Büchi e S1S.
Esempio
Dimostrazione
di correttezza
Per dimostrare la direzione da sinistra a destra, si utilizza
l’algoritmo di Safra: un algoritmo che, a partire da un automa
di Büchi (non deterministico), costruisce un automa di Rabin
(deterministico) equivalente.
Teorema di
McNaughton
Angelo
Montanari
Introduzione
Definizioni di
Base
Teorema di
McNaughton
Algoritmo di
Safra
Stati
Funzione di
Transizione
Stato iniziale
Condizione di
Accettazione
Esempio
Dimostrazione
di correttezza
L’algoritmo di determinizzazione
classico non funziona - 1
L’algoritmo di determinizzazione per gli automi a stati finiti su
parole finite non funziona con le parole infinite. Ciò segue
immediatemente dall’inclusione stretta degli automi di Büchi
deterministici negli automi di Büchi nondeterministici. È, però,
utile capire dove la costruzione viene meno.
Sia α ∈ Aω una ω-parola riconosciuta dall’automa di Büchi A.
Dalla condizione di accettazione degli automi di Büchi segue
l’esistenza di uno stato f ∈ F , raggiungibile da uno stato i ∈ I ,
tale che
i −→α0 f −→α1 f −→α2 f · · ·
dove α = α0 · α1 · α2 · · ·
Ora sia B l’automa (deterministico) di Büchi
(P(Q), A, δ, {I }, F), dove δ(S, a) = ∆(S, a)(∈ P(Q)), con
S ⊆ Q, a ∈ A e F = {P : P ∩ F 6= ∅}.
Teorema di
McNaughton
Angelo
Montanari
L’algoritmo di determinizzazione
classico non funziona - 2
Introduzione
Definizioni di
Base
Teorema di
McNaughton
Algoritmo di
Safra
Stati
Funzione di
Transizione
Stato iniziale
Condizione di
Accettazione
Esempio
Dimostrazione
di correttezza
La computazione dell’automa di Büchi (deterministico) B su α
può essere espressa nel modo seguente:
I −→α0 S0 −→α1 S1 −→α2 S2 · · ·
dove f ∈ Si per ogni i ≥ 0.
Ciò non è, però, sufficiente, in generale, per garantire che la
computazione sia di successo perché, per ogni i ≥ 1, non vi è
alcuna garanzia che lo stato f presente in Si sia raggiungibile
dallo stato f presente in Si−1 .
Esempio. Si consideri il caso dell’automa di Büchi non
deterministico che riconosce il linguaggio
L = {α ∈ Aω . ∃<ω n α(n) = a}, con A = {a, b}.
Teorema di
McNaughton
Una possibile via d’uscita - 1
Angelo
Montanari
Introduzione
Definizioni di
Base
Teorema di
McNaughton
Per rimuovere il problema evidenziato, è necessario identificare
una sequenza
Algoritmo di
Safra
Stati
Funzione di
Transizione
Stato iniziale
Condizione di
Accettazione
I −→α0 S0 −→α1 S1 −→α2 S2 · · ·
che soddisfi le seguenti due condizioni:
Esempio
1
S0 ⊆ δ(I , α0 ) e, per ogni n ≥ 0, Sn+1 ⊆ δ(Sn , αn+1 )
Dimostrazione
di correttezza
2
per ogni n ≥ 0 e ogni q ∈ Sn+1 , esistono uno stato p ∈ Sn
e un cammino p −→αn+1 q in A che attraversa uno stato
finale.
Teorema di
McNaughton
Angelo
Montanari
Introduzione
Definizioni di
Base
Teorema di
McNaughton
Algoritmo di
Safra
Stati
Funzione di
Transizione
Stato iniziale
Condizione di
Accettazione
Esempio
Una possibile via d’uscita - 2
Per trovare tale cammino, costruiremo un automa (di Rabin)
che memorizza le occorrenze degli stati finali.
Gli stati dell’automa sono alberi orientati, i cui nodi vengono
etichettati con gli insiemi Si .
Si applica l’usuale algoritmo di determinizzazione con
l’avvertenza di aggiungere i nuovi stati finali incontrati come
etichetta di un nuovo figlio del nodo considerato.
Dimostrazione
di correttezza
Quando tutti gli stati nell’etichetta Si di un nodo hanno già
visitato uno stato finale (ossia quando tutti appaiono nei figli
del nodo), il nodo viene marcato e tutti i suoi discendenti
vengono rimossi.
Teorema di
McNaughton
Algoritmo di Safra
Angelo
Montanari
Introduzione
Definizioni di
Base
Teorema di
McNaughton
Algoritmo di
Safra
Stati
Funzione di
Transizione
Stato iniziale
Condizione di
Accettazione
Descriviamo formalmente l’algoritmo.
Sia A un generico automa di Büchi:
A = (Q, A, ∆, I , F )
dove |Q| = n.
Esempio
Dimostrazione
di correttezza
Costruiamo un automa di Rabin deterministico equivalente
D = (S, A, δ, i, Ω)
Teorema di
McNaughton
Stati -1
Angelo
Montanari
Introduzione
Definizioni di
Base
Gli stati dell’automa di Rabin sono alberi ordinati etichettati,
con alcuni nodi marcati.
Teorema di
McNaughton
Sia V = {1, 2, . . . , 2n}.
Algoritmo di
Safra
Stati
Funzione di
Transizione
Stato iniziale
Condizione di
Accettazione
Esempio
Dimostrazione
di correttezza
Uno stato è una quadrupla (T , f , e, M) dove:
• T ⊆ V è l’insieme dei nodi
• f : T → T ∗ è una funzione che mappa ogni nodo nella
sequenza ordinata dei suoi figli
• e : T → 2Q \ ∅ è una funzione che associa un’etichetta (un
sottoinsieme non vuoto di Q) ad ogni nodo
• M ⊆ T è l’insieme dei nodi marcati
Teorema di
McNaughton
Stati - 2
Angelo
Montanari
Introduzione
Ogni albero deve soddisfare le seguenti condizioni:
Definizioni di
Base
Teorema di
McNaughton
1
la radice dell’albero è 1
Algoritmo di
Safra
2
i nodi marcati devono essere foglie dell’albero
3
per ogni nodo v , l’unione delle etichette dei figli è un
sottoinsieme stretto dell’etichetta di v (e (v ))
4
se il nodo v non è un antenato del nodo w e il nodo w non è un
antenato del nodo v , allora e (v ) ∩ e (w ) = ∅
Stati
Funzione di
Transizione
Stato iniziale
Condizione di
Accettazione
Esempio
Dimostrazione
di correttezza
Indichiamo con Tn l’insieme di tutti gli alberi definiti in questo
modo. Esso costituirà l’insieme S degli stati dell’automa di
Rabin D.
Teorema di
McNaughton
Angelo
Montanari
Stati - 3
Proposizione
Introduzione
Definizioni di
Base
Teorema di
McNaughton
Un albero (T , f , e, M) ∈ Tn ha al più n nodi.
Sia:
Algoritmo di
Safra
Stati
Funzione di
Transizione
Stato iniziale
Condizione di
Accettazione
e (w )
w figlio di v
Per la condizione 3, tale insieme non può essere vuoto. Ne segue
immediatamente che:
X
X
|r (v ) |
1≤
|T | =
v ∈T
Esempio
Dimostrazione
di correttezza
[
r (v ) = e (v ) \
v ∈T
Inoltre, se v1 e v2 sono due nodi distinti, allora r (v1 ) ∩ r (v2 ) = ∅ (ciò
segue direttamente dalla condizione 4, se i due nodi non sono uno
l’antenato dell’altro; altrimenti, segue dalla definizione di r ).
Possiamo, quindi, concludere che gli insiemi r (v ) sono a due a due
distinti, da cui:
X
X
|T | =
1≤
|r (v ) | ≤ |Q| = n
v ∈T
v ∈T
Teorema di
McNaughton
Angelo
Montanari
Stati - 4
Definizione (Ordine esteso dei nodi in Tn )
Introduzione
Definizioni di
Base
Teorema di
McNaughton
Algoritmo di
Safra
Siano v1 e v2 due nodi che non sono uno un antenato dell’altro
e sia v il loro minimo antenato comune. Inoltre, siano v10 e v20 i
figli di v antenati rispettivamente di v1 e v2 . Diciamo che v1 è
a sinistra di v2 se v10 < v20 (i figli di ogni nodo sono ordinati).
Stati
Funzione di
Transizione
Stato iniziale
Condizione di
Accettazione
···
v
Esempio
Dimostrazione
di correttezza
···
v10
v20
··· ··· ···
··· ··· ···
v1
v2
Teorema di
McNaughton
Funzione di Transizione - 1
Angelo
Montanari
Introduzione
Definizioni di
Base
Teorema di
McNaughton
Algoritmo di
Safra
Sia R = (T , f , e, M) uno stato (albero) in Tn e sia a un
elemento dell’alfabeto A.
Lo stato δ (R, a) viene calcolato nel seguente modo:
1
si esegue la transizione dell’automa di Büchi su a per tutti
gli elementi dell’etichetta di ogni nodo e si cancellano gli
eventuali marcatori presenti, ottenendo l’albero
(T , f , e1 , M1 ), con M1 = ∅ e e1 (v ) = ∆(e(v ), a)
2
si aggiunge ad ogni nodo v un nuovo figlio, a destra
dell’ultimo figlio, con etichetta e1 (v ) ∩ F e si marca tale
nodo. Tale nodo è scelto in modo arbitrario fra i nodi
disponibili (assumiamo di scegliere il nodo più piccolo fra i
nodi disponibili).
Stati
Funzione di
Transizione
Stato iniziale
Condizione di
Accettazione
Esempio
Dimostrazione
di correttezza
Teorema di
McNaughton
Funzione di Transizione - 2
Angelo
Montanari
2
Introduzione
Definizioni di
Base
Teorema di
McNaughton
Algoritmo di
Safra
Stati
Funzione di
Transizione
Stato iniziale
Condizione di
Accettazione
Esempio
Dimostrazione
di correttezza
3
(continua) Formalmente, si sceglie una funzione iniettiva
da T in V \ T che associa a ogni nodo v un nodo v (dato
che T ha al più n elementi, ciò è sempre possibile). Sia
T = {v : v ∈ T } e sia (T2 , f2 , e2 , M2 ) l’albero cosı̀
definito:
T2 = T ∪ T
M2 = T
per ogni v ∈ T , f2 (v ) = f (v )v , f2 (v ) = ,
e2 (v ) = e1 (v ) e e2 (v ) = e1 (v ) ∩ F
nell’etichetta di ogni nodo v vengono eliminati gli stati che
appaiono nelle etichette dei nodi a sinistra di v .
Formalmente, si definisce una funzione e3 tale che, per
ogni nodo v ∈ T2 ,
[
e3 (v ) = e2 (v ) \
e2 (w )
w a sinistra di v
Teorema di
McNaughton
Funzione di Transizione - 3
Angelo
Montanari
Introduzione
4
si eliminano i nodi con etichetta vuota, aggiornando
coerentemente la funzione f e la marcatura. Formalmente,
si genera un albero (T4 , f4 , e4 , M4 ), dove
T4 = {v ∈ T2 : e3 (v ) 6= ∅}, M4 = M2 ∩ T4 , e4 (v ) è la
restrizione di e3 (v ) a T4 e, per ogni nodo v ∈ T4 , f4 (v ) è
ottenuta eliminando gli elementi di T2 \ T4
5
si marcano i nodi che hanno come etichetta l’unione delle
etichette dei loro figli, ovvero i nodi v ∈ T4 tali che
[
e(v ) =
e(w )
Definizioni di
Base
Teorema di
McNaughton
Algoritmo di
Safra
Stati
Funzione di
Transizione
Stato iniziale
Condizione di
Accettazione
Esempio
Dimostrazione
di correttezza
w figlio di v
e si eliminano tutti i discendenti.
Sia (T5 , f5 , e5 , M5 ) = δ (R, a) l’albero (in Tn ) cosı̀ ottenuto.
Teorema di
McNaughton
Stato iniziale
Angelo
Montanari
Introduzione
Definizioni di
Base
Teorema di
McNaughton
Algoritmo di
Safra
Stati
Funzione di
Transizione
Stato iniziale
Condizione di
Accettazione
Esempio
Dimostrazione
di correttezza
Tre casi:
• se I ∩ F = ∅, lo stato iniziale è un albero formato da un
nodo non marcato etichettato con I
• se I ⊆ F , lo stato iniziale è un albero formato da un nodo
marcato etichettato con I
• altrimenti, è un albero formato da un nodo non marcato
etichettato con I , con un figlio marcato etichettato con
I ∩F
Teorema di
McNaughton
Condizione di Accettazione
Angelo
Montanari
Introduzione
Definizioni di
Base
L’insieme Ω è definito nel seguente modo:
Ω = {(Lv , Uv ) |v ∈ V }
Teorema di
McNaughton
Algoritmo di
Safra
Stati
Funzione di
Transizione
Stato iniziale
Condizione di
Accettazione
Esempio
Dimostrazione
di correttezza
dove:
• Lv = {R ∈ Tn | v non è un nodo di R}
• Uv = {R ∈ Tn | v è un nodo marcato di R}
La computazione dell’automa D è pertanto di successo se
esiste un nodo v ∈ V tale che la computazione attraversa finite
volte gli stati in cui v non è presente e infinite volte almeno
uno stato in cui v è un nodo marcato.
Teorema di
McNaughton
Angelo
Montanari
Introduzione
Definizioni di
Base
Esempio - 1
Sia A l’automa di Büchi sull’alfabeto A = {a, b} che riconosce
tutte e sole le ω-parole con un numero finito, maggiore di 0, di
occorrenze del simbolo b:
Teorema di
McNaughton
a, b
a
Algoritmo di
Safra
Stati
Funzione di
Transizione
Stato iniziale
Condizione di
Accettazione
q1
Esempio
Dimostrazione
di correttezza
• Q = {q1 , q2 }
• A = {a, b}
• I = {q1 }
• F = {q2 }
b
q2
Teorema di
McNaughton
Esempio - 2
Angelo
Montanari
Introduzione
Definizioni di
Base
Per trovare l’automa di Rabin equivalente, eseguiamo
l’algoritmo descritto in precedenza.
Teorema di
McNaughton
Stato iniziale:
Algoritmo di
Safra
Stati
Funzione di
Transizione
Stato iniziale
Condizione di
Accettazione
Esempio
Dimostrazione
di correttezza
I ∩ F = ∅ ⇒ albero con un solo nodo non marcato, etichettato con
I = {q1 }.
Teorema di
McNaughton
Angelo
Montanari
Introduzione
Definizioni di
Base
Esempio - 3
Esecuzione dell’azione a sullo stato iniziale:
Teorema di
McNaughton
Algoritmo di
Safra
Stati
Funzione di
Transizione
Stato iniziale
Condizione di
Accettazione
Esempio
Dimostrazione
di correttezza
Eseguiamo la transizione dell’automa di Büchi per ogni stato
dell’etichetta e eliminiamo gli eventuali marcatori presenti. In questo
caso, l’albero non viene modificato. Allo stesso modo, i passi
successivi non modificano l’albero.
Teorema di
McNaughton
Angelo
Montanari
Esempio - 4
Introduzione
Definizioni di
Base
Teorema di
McNaughton
Algoritmo di
Safra
Stati
Funzione di
Transizione
Stato iniziale
Condizione di
Accettazione
Esempio
Dimostrazione
di correttezza
Esecuzione dell’azione b sullo stato iniziale:
Teorema di
McNaughton
Angelo
Montanari
Introduzione
Definizioni di
Base
Teorema di
McNaughton
Algoritmo di
Safra
Stati
Funzione di
Transizione
Stato iniziale
Condizione di
Accettazione
Esempio
Dimostrazione
di correttezza
Esempio - 5
Esecuzione dell’azione a sullo stato II :
Teorema di
McNaughton
Angelo
Montanari
Introduzione
Definizioni di
Base
Teorema di
McNaughton
Algoritmo di
Safra
Stati
Funzione di
Transizione
Stato iniziale
Condizione di
Accettazione
Esempio
Dimostrazione
di correttezza
Esempio - 6
Esecuzione dell’azione a sullo stato II :
Teorema di
McNaughton
Angelo
Montanari
Esempio - 7
Introduzione
Definizioni di
Base
Teorema di
McNaughton
Algoritmo di
Safra
Stati
Funzione di
Transizione
Stato iniziale
Condizione di
Accettazione
Esempio
Dimostrazione
di correttezza
Esecuzione dell’azione b sullo stato II :
Teorema di
McNaughton
Angelo
Montanari
Esempio - 8
Introduzione
Definizioni di
Base
Teorema di
McNaughton
Algoritmo di
Safra
Stati
Funzione di
Transizione
Stato iniziale
Condizione di
Accettazione
Esempio
Dimostrazione
di correttezza
Esecuzione dell’azione b sullo stato II :
Teorema di
McNaughton
Angelo
Montanari
Introduzione
Esempio - 9
Esecuzione dell’azione a sullo stato III :
Definizioni di
Base
Teorema di
McNaughton
Algoritmo di
Safra
Stati
Funzione di
Transizione
Stato iniziale
Condizione di
Accettazione
Esempio
Dimostrazione
di correttezza
I passi che vengono eseguiti dall’algoritmo sono analoghi a quelli
prodotti dall’esecuzione dell’azione a sullo stato II . Lo stato
risultante è lo stato III .
Teorema di
McNaughton
Angelo
Montanari
Esempio - 10
Introduzione
Definizioni di
Base
Teorema di
McNaughton
Algoritmo di
Safra
Stati
Funzione di
Transizione
Stato iniziale
Condizione di
Accettazione
Esempio
Dimostrazione
di correttezza
Esecuzione dell’azione b sullo stato III :
Teorema di
McNaughton
Angelo
Montanari
Esempio - 11
Introduzione
Definizioni di
Base
Teorema di
McNaughton
Algoritmo di
Safra
Stati
Funzione di
Transizione
Stato iniziale
Condizione di
Accettazione
Esempio
Dimostrazione
di correttezza
Esecuzione dell’azione b sullo stato III :
Teorema di
McNaughton
Esempio - 12
Angelo
Montanari
Introduzione
Definizioni di
Base
Teorema di
McNaughton
Algoritmo di
Safra
Stati
Funzione di
Transizione
Stato iniziale
Condizione di
Accettazione
Esempio
Dimostrazione
di correttezza
Automa risultante:
Teorema di
McNaughton
Esempio - 13
Angelo
Montanari
Introduzione
Definizioni di
Base
Teorema di
McNaughton
Algoritmo di
Safra
Stati
Funzione di
Transizione
Stato iniziale
Condizione di
Accettazione
Esempio
Dimostrazione
di correttezza
Condizione di accettazione:
L1 = ∅
L2 = {I , III }
L3 = {I , II }
U1 = ∅
U2 = {II }
U3 = {III }
F = {({I , III }, {II }) , ({I , II }, {III })}
Teorema di
McNaughton
Angelo
Montanari
Dimostrazione di correttezza - 1
Introduzione
Definizioni di
Base
Teorema di
McNaughton
Algoritmo di
Safra
Stati
Funzione di
Transizione
Stato iniziale
Condizione di
Accettazione
Esempio
Dimostrazione
di correttezza
Dimostriamo che l’automa di Rabin D, ottenuto tramite
l’esecuzione dell’algoritmo di Safra, è equivalente all’automa di
Büchi iniziale A.
Come primo passo, dimostriamo un lemma che prova una
proprietà fondamentale dell’algoritmo di Safra.
Teorema di
McNaughton
Dimostrazione di correttezza - 2
Angelo
Montanari
Introduzione
Lemma
Definizioni di
Base
• Sia u = a1 a2 · · · an una parola finita;
Teorema di
McNaughton
• sia R0 uno stato (albero) di D che contiene un nodo marcato v
etichettato con S0 ;
Algoritmo di
Safra
Stati
Funzione di
Transizione
Stato iniziale
Condizione di
Accettazione
Esempio
Dimostrazione
di correttezza
• per 0 < i ≤ n, gli stati Ri = δ(R0 , a1 · · · ai ) contengano il nodo
v con etichetta Si e tale nodo sia marcato solamente per i = n.
Teorema di
McNaughton
Dimostrazione di correttezza - 3
Angelo
Montanari
Introduzione
Definizioni di
Base
Teorema di
McNaughton
Algoritmo di
Safra
Stati
Funzione di
Transizione
Stato iniziale
Condizione di
Accettazione
Esempio
Dimostrazione
di correttezza
Lemma
Con le ipotesi di cui al lucido precedente, si ha che:
1
per 0 ≤ i ≤ n − 1, Si+1 è contenuto in δ(Si , ai+1 );
2
per ogni q ∈ Sn , esiste in A una computazione, etichettata
con u, che inizia in S0 , termina in q e visita almeno uno
stato finale.
Teorema di
McNaughton
Angelo
Montanari
Dimostrazione di correttezza - 4
Introduzione
Definizioni di
Base
Teorema di
McNaughton
Algoritmo di
Safra
Stati
Funzione di
Transizione
Stato iniziale
Condizione di
Accettazione
Esempio
Dimostrazione
di correttezza
Seguiamo passo passo l’esecuzione dell’algoritmo nello stato Ri
(relativamente al nodo v con etichetta Si ).
Al primo passo, si ottiene
Si+1 = δ(Si , ai+1 )
Al terzo passo vengono eventualmente soppressi alcuni stati di
Si+1 .
Il primo punto del lemma è dimostrato.
Teorema di
McNaughton
Angelo
Montanari
Dimostrazione di correttezza - 5
Introduzione
Definizioni di
Base
Teorema di
McNaughton
Per quanto riguarda il secondo punto, dimostriamo, per
induzione su i, che:
Algoritmo di
Safra
Stati
Funzione di
Transizione
Stato iniziale
Condizione di
Accettazione
Esempio
per ogni 0 ≤ i ≤ n − 1 e per ogni stato qi che compare
nell’etichetta di un discendente di v in Ri , esiste una
computazione di A, che legge la stringa a1 , · · · , ai , che inizia in
S0 , termina in qi e attraversa almeno uno stato finale.
Dimostrazione
di correttezza
i = 0 : v è marcato e deve pertanto essere una foglia di R0
(priva di discendenti). La tesi vale banalmente.
Teorema di
McNaughton
Angelo
Montanari
Dimostrazione di correttezza - 6
Introduzione
Definizioni di
Base
Teorema di
McNaughton
i > 0 : sia qi+1 uno stato che appare nell’etichetta di un
discendente di v in Ri+1 . Sono possibili due casi:
Algoritmo di
Safra
Stati
Funzione di
Transizione
Stato iniziale
Condizione di
Accettazione
• qi+1 ∈ δ(qi , ai+1 ) per qualche qi appartenente all’etichetta
di un diretto discendente di v in Ri (la tesi segue
dall’ipotesi induttiva).
Esempio
Dimostrazione
di correttezza
• altrimenti, qi+1 deriva da un’etichetta creata al secondo
passo dell’algoritmo (aggiunta di un figlio, a destra di tutti
gli altri, etichettato con e(v ) ∩ F ). Ne segue
immediatamente che qi+1 ∈ F , da cui la tesi.
Teorema di
McNaughton
Angelo
Montanari
Introduzione
Definizioni di
Base
Teorema di
McNaughton
Algoritmo di
Safra
Stati
Funzione di
Transizione
Stato iniziale
Condizione di
Accettazione
Esempio
Dimostrazione
di correttezza
Dimostrazione di correttezza - 7
Infine, dal momento che v è marcato in Rn , esso viene
necessariamente marcato nel quinto passo dell’algoritmo.
Ne segue che se q ∈ Sn , allora o q ∈ δ(Sn−1 , an ) ∩ F (Sn−1 è
l’etichetta di v in Rn−1 ) o q appartiene all’unione dei
δ(qn−1 , an ), dove qn−1 compare nell’etichetta di un discendente
di V in Rn−1 .
Nel primo caso, esiste un cammino, etichettato con u, che
inizia in S0 e finisce in q, che è uno stato finale.
Nel secondo caso, possiamo sfruttare la conclusione
dell’induzione precedente: esiste un cammino in A che inizia in
S0 e termina in qn−1 , etichettato con a1 · · · an−1 , che
attraversa almeno una volta uno stato finale. La tesi segue
immediatamente.
Teorema di
McNaughton
Angelo
Montanari
Dimostrazione di correttezza - 8
Introduzione
Definizioni di
Base
Sulla scorta del lemma precedente, siamo ora in grado di
dimostrare il Teorema di McNaughton.
Teorema di
McNaughton
Algoritmo di
Safra
Stati
Funzione di
Transizione
Stato iniziale
Condizione di
Accettazione
Esempio
Dimostrazione
di correttezza
Sia A = (Q, A, ∆, I , F ) un automa di Büchi e sia
D = (S, A, δ, i, F) il corrispondente automa di Rabin costruito
mediante l’algoritmo di Safra.
Dimostriamo che i due automi sono equivalenti, ossia che per
ogni ω-parola α in Aω :
esiste una computazione di successo di A su α
m
la computazione di D su α è di successo
Teorema di
McNaughton
Dimostrazione di correttezza - 9
Angelo
Montanari
Introduzione
Definizioni di
Base
Teorema di
McNaughton
Algoritmo di
Safra
Stati
Funzione di
Transizione
Stato iniziale
Condizione di
Accettazione
Esempio
Dimostrazione
di correttezza
⇐
Sia c una computazione di successo dell’automa D sulla
ω-parola α ∈ Aω
⇓
esiste un nodo v ∈ V tale che, da un certo punto in poi, c
visita solo stati dei quali v è un nodo e visita infinite volte
almeno uno stato in cui v è un nodo marcato.
Sia S0 = I . Per il lemma precedente, esistono una
fattorizzazione α = u0 u1 · · · e una sequenza di insiemi
Sn ⊆ Q tali che:
a. ∀n ≥ 0 Sn+1 ⊆ δ(Sn , un )
b. ∀n > 0 e ∀q ∈ Sn+1 esiste una computazione in A,
etichettata con un , che inizia in Sn , termina in q e visita
almeno uno stato finale
Teorema di
McNaughton
Angelo
Montanari
Dimostrazione di correttezza - 10
Introduzione
Definizioni di
Base
Teorema di
McNaughton
Al fine di poter applicare il lemma di König, costruiamo un
albero (N, r , p) dove:
Algoritmo di
Safra
Stati
Funzione di
Transizione
Stato iniziale
Condizione di
Accettazione
• N = {r } ∪ {(q, n)|q ∈ Sn , n ∈ N}
• tutti i nodi della forma (q, 0) hanno come padre r
Esempio
Dimostrazione
di correttezza
• ogni nodo della forma (q, n + 1) ha come padre un nodo
della forma (q 0 , n) tale che esiste un percorso in A,
etichettato con un , che parte in q 0 , termina in q e visita
almeno uno stato finale
Teorema di
McNaughton
Angelo
Montanari
Dimostrazione di correttezza - 11
r
Introduzione
Definizioni di
Base
Teorema di
McNaughton
(q1 , 0)
(q2 , 0)
...
(qk , 0)
...
...
...
Algoritmo di
Safra
Stati
Funzione di
Transizione
Stato iniziale
Condizione di
Accettazione
Esempio
Dimostrazione
di correttezza
(q 0 , n)
(
in A :
un
q 0 −−−−−
−−→ q
↑stato finale
(q, n + 1)
Teorema di
McNaughton
Angelo
Montanari
Introduzione
Definizioni di
Base
Teorema di
McNaughton
Dimostrazione di correttezza - 12
Ogni nodo ha un numero finito di figli, ma l’albero ha infiniti
nodi. Ne segue che, per il lemma di König, esiste almeno un
ramo infinito
Algoritmo di
Safra
Stati
Funzione di
Transizione
Stato iniziale
Condizione di
Accettazione
Esempio
⇓
Esiste un percorso infinito in A etichettato con α che parte da
I e attraversa infinite volte uno stato finale.
Dimostrazione
di correttezza
⇓
α è accettata da A
Teorema di
McNaughton
Dimostrazione di correttezza - 13
Angelo
Montanari
Introduzione
Definizioni di
Base
Teorema di
McNaughton
Algoritmo di
Safra
Stati
Funzione di
Transizione
Stato iniziale
Condizione di
Accettazione
Esempio
Dimostrazione
di correttezza
⇒
Sia c una computazione di successo dell’automa A.
Indichiamo con c(i) ∈ Q lo stato raggiunto da A al passo
i-esimo della computazione
a
a
0
1
c : c(0) −→
c(1) −→
c(2) · · ·
Esiste un unico percorso (iniziale) d in D etichettato nello
stesso modo. Indichiamo con d(i) ∈ S lo stato (albero)
dell’automa D raggiunto al passo i-esimo.
a
a
0
1
d : d(0)(= I ) −→
d(1) −→
d(2) · · ·
Ogni c(i) ∈ Q appartiene all’etichetta della radice
dell’albero d(i) (primo passo dell’algoritmo). Tale radice
non viene mai soppressa e risulta pertanto essere un
elemento fisso v0 di V .
Teorema di
McNaughton
Angelo
Montanari
Dimostrazione di correttezza - 14
Introduzione
Definizioni di
Base
Teorema di
McNaughton
Algoritmo di
Safra
Stati
Funzione di
Transizione
Stato iniziale
Condizione di
Accettazione
Esempio
Dimostrazione
di correttezza
• Se v0 compare marcato in un’infinità di stati/alberi d(i),
allora il percorso è di successo in D e la ω-parola α viene
accettata
• Altrimenti (v0 non viene marcato infinite volte), esiste un
numero intero n0 tale che n0 è il numero più grande per il
quale d(n0 ) ha la radice v0 marcata.
d : ···
d(n0 )
{· · · } v0
d(n0 + 1)
{· · · } v0
···
···
Teorema di
McNaughton
Dimostrazione di correttezza - 15
Angelo
Montanari
Introduzione
Definizioni di
Base
Teorema di
McNaughton
Sia m > n0 il più piccolo numero intero tale che c(m) = qf è
uno stato finale ripetuto infinite volte.
Algoritmo di
Safra
Stati
Funzione di
Transizione
Stato iniziale
Condizione di
Accettazione
· · · c(n0 )
· · · c(m) = qf
· · · c(k) = qf
···
· · · d(n0 )
· · · d(m)
· · · d(k)
···
Esempio
Dimostrazione
di correttezza
Teorema di
McNaughton
Angelo
Montanari
Introduzione
Definizioni di
Base
Teorema di
McNaughton
Algoritmo di
Safra
Stati
Funzione di
Transizione
Stato iniziale
Condizione di
Accettazione
Dimostrazione di correttezza - 16
Dato che qf è uno stato finale (dell’automa di Büchi di
partenza), allora esso compare in un figlio della radice di d(m)
(secondo passo dell’algoritmo):
· · · c(n0 )
· · · c(m) = qf
· · · c(k) = qf
···
· · · d(n0 )
· · · d(m)
· · · d(k)
···
{qf , · · · } v0
Esempio
Dimostrazione
di correttezza
···
{qf , · · · }
Teorema di
McNaughton
Angelo
Montanari
Introduzione
Definizioni di
Base
Dimostrazione di correttezza - 17
A partire da un qualche n1 ≥ m in poi, ogni stato c(n), con
n ≥ n1 , sarà presente in uno specifico figlio v1 della radice di
d(n):
Teorema di
McNaughton
· · · c(m) = qf
· · · c(n1 ) = q · · ·
· · · d(m)
· · · d(n1 ) · · ·
Algoritmo di
Safra
Stati
Funzione di
Transizione
Stato iniziale
Condizione di
Accettazione
{qf , · · · } v0
Esempio
{q, · · · }
v0
Dimostrazione
di correttezza
···
{qf , · · · }
···
{q, · · · } v1
···
Teorema di
McNaughton
Dimostrazione di correttezza - 18
Angelo
Montanari
Introduzione
L’esistenza di un tale nodo v1 può essere dimostrata nel
seguente modo:
Definizioni di
Base
Teorema di
McNaughton
Algoritmo di
Safra
1
Se lo stato c(n) è presente nell’etichetta di un nodo v , lo
stato c(n + 1) è anch’esso presente nell’etichetta di v al
passo successivo, a meno che non sia presente nella
etichetta di uno dei nodi a sinistra di v (in tal caso, esso
viene eliminato dall’etichetta di v durante l’applicazione
del terzo passo dell’algoritmo: eliminare gli stati presenti
nelle etichette dei nodi a sinistra del nodo considerato).
2
Tali spostamenti a sinistra possono essere effettuati
solamente un numero finito di volte.
3
Deve pertanto esistere un (eventualmente altro) figlio
della radice che non viene eliminato: v1 è tale figlio.
Stati
Funzione di
Transizione
Stato iniziale
Condizione di
Accettazione
Esempio
Dimostrazione
di correttezza
Teorema di
McNaughton
Angelo
Montanari
Dimostrazione di correttezza - 19
Introduzione
Definizioni di
Base
Teorema di
McNaughton
Algoritmo di
Safra
Stati
Funzione di
Transizione
Stato iniziale
Condizione di
Accettazione
Esempio
Dimostrazione
di correttezza
• Ora, se v1 viene marcato infinite volte, allora il percorso è
di successo in D
• Altrimenti, ripetiamo lo stesso procedimento sostituendo
v0 con v1 .
Dato che gli alberi hanno altezza finita, riusciamo sempre
a trovare un nodo marcato infinite volte.