Professional Documents
Culture Documents
A.A. 2014-2015
A.A. 2014-2015
A.A. 2014-2015
Esempi
Esempio: automa a stati finiti per un interruttore on/off
Push
Start
off
on
Push
h
t
A.A. 2014-2015
e
th
n
the
then
Concetti di base
Alfabeto: Insieme finito e non vuoto di simboli
Esempio: = {0, 1} alfabeto binario
Esempio: = {a, b, c, . . . , z} insieme di tutte le lettere
minuscole
Esempio: Insieme di tutti i caratteri ASCII
A.A. 2014-2015
Concetti di base
A.A. 2014-2015
Concetti di base
Linsieme di tutte le stringhe su e denotato da
= 0 1 2
Anche:
+ = 1 2 3
= + {}
Concatenazione: Se x e y sono stringhe, allora xy e la stringa
ottenuta rimpiazzando una copia di y immediatamente dopo una
copia di x
x = a1 a2 . . . ai , y = b1 b2 . . . bj
xy = a1 a2 . . . ai b1 b2 . . . bj
Esempio: x = 01101, y = 110, xy = 01101110
Nota: Per ogni stringa x
x = x = x
A.A. 2014-2015
Linguaggi
A.A. 2014-2015
Altri esempi
A.A. 2014-2015
Problemi
A.A. 2014-2015
Descrittori di insiemi
A.A. 2014-2015
Descrittori di insiemi
A.A. 2014-2015
[
L =
Li
i=0
[
L+ =
Li
i=1
A.A. 2014-2015
Esercizi
A.A. 2014-2015
h
t
A.A. 2014-2015
e
th
n
the
then
A.A. 2014-2015
q0
?q1
q2
1
q0
q1
q1
q0
0
0
q2
A.A. 2014-2015
q1
0, 1
Accettazione o riconoscimento
Un automa a stati finiti (FA) accetta o riconosce una stringa
w = a1 a2 an se esiste un cammino nel diagramma di transizione
che
1
q0
0
0
q2
q1
0, 1
x), a)
Induzione:
(q, xa) = ((q,
Formalmente, il linguaggio accettato da A e
0, w ) F }
L(A) = {w | (q
I linguaggi accettati da automi a stati finiti sono chiamati
linguaggi regolari
A.A. 2014-2015
Costruzione di un automa
Consideriamo il linguaggio dei numeri binari:
L = ({0} {1}{0, 1} ){.}{0, 1}+
A.A. 2014-2015
Costruzione di un automa
A.A. 2014-2015
Nota
Lo stato q5 ha la caratteristica di essere raggiunto, a partire dallo
stato iniziale, dalle stringhe che non sono nel linguaggio, pertanto
e uno stato di fallimento. Uno stato di questo tipo puo anche
essere sottinteso, tenendo comunque presente che fa parte
dellautoma deterministico.
Possiamo pertanto disegnare il diagramma di transizione nel modo
seguente:
Esempio
Start
q0
q1
0
0
0
0
q2
q3
1
A.A. 2014-2015
Esempio
? q0
q1
q2
q3
A.A. 2014-2015
0
q2
q3
q0
q1
1
q1
q0
q3
q2
Esercizi
A.A. 2014-2015
Esercizi
A.A. 2014-2015
q0
q1
q2
q0
q1
q0
(stuck)
q0
q1
0
A.A. 2014-2015
q0
q1
q2
q0
q2
(stuck)
0
A.A. 2014-2015
Esempio
L NFA visto prima
0, 1
Start
q0
q1
q2
e
({q0 , q1 , q2 }, {0, 1}, , q0 , {q2 })
dove e la funzione di transizione
q0
q1
?q2
0
{q0 , q1 }
A.A. 2014-2015
1
{q0 }
{q2 }
Esempio
Base:
(q, ) = {q}
Induzione:
[
xa) =
(q,
(p, a)
p(q,x)
0 , 00101)
Esercizio: Calcolare (q
Formalmente, il linguaggio accettato da un NFA A e
0 , w ) F 6= }
L(A) = {w | (q
A.A. 2014-2015
N (p, a)
pS
A.A. 2014-2015
Esempio
Costruiamo D dall NFA
0, 1
Start
q0
{q0 }
{q1 }
?{q2 }
{q0 , q1 }
?{q0 , q2 }
?{q1 , q2 }
?{q0 , q1 , q2 }
A.A. 2014-2015
q1
{q0 , q1 }
{q0 , q1 }
{q0 , q1 }
{q0 , q1 }
q2
{q0 }
{q2 }
{q0 , q2 }
{q0 }
{q2 }
{q0 , q2 }
Nota
Gli stati dellautoma D corrispondono a sottoinsiemi di stati
dellautoma N, ma avremmo potuto dare agli stati di D un nome
diverso, per esempio A F .
A
B
C
?D
E
?F
?G
?H
A.A. 2014-2015
0
A
E
A
A
E
E
A
E
1
A
B
D
A
F
B
D
F
0
0
{q0, q1}
{q0, q2}
0
1
A.A. 2014-2015
Start
q0
q1
0, 1
q2
0, 1
0, 1
0, 1
A.A. 2014-2015
qn
0
A
0,1
q0
q1 0,1 q2 0,1
0
0
B
C
D
E
q3
F
D
E
1
[q0]
[q0,q1]
[q0,q2]
[q0,q1,q2]
[q0,q3]
[q0,q1,q3]
[q0,q2]
[q
]
[q0,q1]
[q0,q3]
0
[q0,q1,q2] [q0,q2,q3] [q0,q1,q2,q3]
[q0,q1,q3] [q0,q2]
[q0,q1,q2]
[q0,q1,q3]
G [q0,q2,q3] [q0,q3]
H [q0,q1,q2,q3] [q0,q2,q3] [q0,q1,q2,q3]
0
1
[q0]
[q0,q1]
1
0
H 0
A.A. 2014-2015
A.A. 2014-2015
A.A. 2014-2015
Definizione ed esempio
Un -NFA e una quintupla (Q, , , q0 , F ) dove e una funzione
da Q ( {}) allinsieme dei sottoinsiemi di Q
: Q ( {}) 2Q
Esempio: Un -NFA che accetta numeri decimali con o senza segno
e una parte decimale opzionale.
A.A. 2014-2015
Esempio
La quintupla che definisce formalmente l-NFA :
E = ({A, B, C , D, E , F }, {., +, , 0, 1, . . . , 9} , A, {E , F })
dove la tabella delle transizioni per e
A
B
C
D
?E
?F
{B}
{E }
{E }
+,{B}
A.A. 2014-2015
{F }
{C }
{D}
{F }
1, . . . , 9
{D}
{D}
{F }
Epsilon-chiusura
A.A. 2014-2015
Esempio di epsilon-chiusura
Per esempio,
ECLOSE(1) = {1, 2, 3, 4, 6}
A.A. 2014-2015
xa) =
(q,
ECLOSE(p)
p((q,x),a)
Nota: Se I e un insieme
di stati, (I , a) e usato come
S
abbreviazione per pI (p, a)
Formalmente, il linguaggio accettato da un -NFA E e
0 , w ) F 6= }
L(E ) = {w | (q
0 , 5.6) per lNFA dei numeri decimali
Esercizio: calcolare (q
A.A. 2014-2015
Da -NFA a DFA
Dato un -NFA
E = (QE , , E , q0 , FE )
costruiremo un DFA
D = (QD , , D , qD , FD )
tale che
L(D) = L(E )
Dettagli della costruzione:
QD = {S : S QE e S = ECLOSE(S)}
qD = ECLOSE(q0 )
FD = {S | S QD e S FE 6= }
D (S, a) =
[
[
{ECLOSE(p) | p
(t, a)}
tS
A.A. 2014-2015
Un segno + o -, opzionale
un punto decimale
A.A. 2014-2015
Esempio
-NFA E
0,1,...,9
Start
q0 ,+,-
q1
0,1,...,9
q2
0,1,...,9
0,1,...,9
q3
.
q4
A.A. 2014-2015
q5
Esempio
DFA D corrispondente ad E
0,1,...,9
{q0, q }
1
+,-
{q }
1
0,1,...,9
0,1,...,9
{q , q }
1
.
Start
{q2}
0,1,...,9
{q3, q5}
0,1,...,9
A.A. 2014-2015
A.A. 2014-2015
Esercizi
A.A. 2014-2015
Esercizi
Costruire gli automi a stati finiti deterministici equivalenti ai
seguenti automi non deterministici:
A.A. 2014-2015