Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
A.A. 2011-2012
Automi
Generalit sugli Automi
In informatica teorica e in matematica discreta, un automa un dispositivo di
calcolo ideale, o un suo modello in forma di macchina sequenziale, creato per
eseguire un particolare compito, di solito costituito da operazioni elementari semplici.
Il dispositivo automa pu trovarsi in diverse configurazioni pi o meno
complesse caratterizzate primariamente da una variabile che appartiene ad un
determinato insieme di stati, e che evolve in base agli stimoli od ordini ricevuti in
ingresso schematizzati da simboli appartenenti ad un determinato alfabeto.
Quando l'automa si trova in un dato stato, esso pu accettare solo un sottoinsieme
dei simboli del suo alfabeto. L'evoluzione di un automa parte da un particolare stato
detto stato iniziale. Un sottoinsieme privilegiato dei suoi stati detto insieme degli
stati finali o marcati.
Politecnico di Bari
G. Piscitelli
pag. 2 di 48
Automi
In teoria dei sistemi un automa si definisce anche come un sistema dinamico
(evolve nel tempo), discreto (nella scansione del tempo e nella descrizione del suo
stato) e invariante (il sistema si comporta alla stessa maniera indipendentemente
dall'istante di tempo in cui agisce).
Nel corso della storia della teoria dei linguaggi e degli automi, gli automi sono
andati arricchendosi, come testimoniano la macchina di calcolo di Turing e gli automi
di Chomsky per le varie costruzioni del linguaggio naturale.
In realt molto pochi degli automi proposti sono impiegati nellelaborazione dei
linguaggi di programmazione. E nel seguito ci si limiter a tali automi.
Politecnico di Bari
G. Piscitelli
pag. 3 di 48
Automi
Automi e linguaggi
Gli automi sono spesso utilizzati per descrivere linguaggi formali, e per questo
sono chiamati accettori o riconoscitori di un linguaggio.
Nella sua forma pi generale un automa riconoscitore costituito da 3 parti:
-
il nastro dingresso
lunit di controllo
la memoria ausiliaria.
a1 a2 a3.....ai.....an
nastro d'ingresso
testina d'ingresso
(sola lettura)
unit di
controllo
memoria ausiliaria
Politecnico di Bari
testina di memoria
(lettura e scrittura)
G. Piscitelli
pag. 4 di 48
Automi
Il nastro dingresso suddiviso in caselle, ciascuna contenente un simbolo (o
stimolo o carattere) dellalfabeto dingresso . A volte simpone che la stringa
dingresso sia delimitata a sinistra e a destra da due simboli riservati alla
delimitazione, detti marca dinizio () e marca di fine ().
Lautoma opera in istanti discreti: esso legge il simbolo sottostante la testina (o
cursore) dingresso, che pu muoversi, rispetto al nastro, di una posizione verso
sinistra o destra.
Lunit di controllo dotata, al suo interno, di una quantit finita di memoria (si
dice che ha un numero finito di stati, nel qual caso lautoma si dice a stati finiti),
mentre
la memoria ausiliaria ha, in generale, una capacit illimitata; anche essa pu
essere immaginata come un nastro, contenente simboli di un alfabeto di memoria. A
differenza del nastro dingresso, la memoria ausiliaria pu essere letta e scritta e
quindi pu funzionare come deposito (o contenitore) di risultati intermedi determinati
dal programma dellunit di controllo.
La posizione di memoria a cui si accede quella posta sotto la testina di memoria,
che pu scorrere avanti o indietro a secondo del controllo.
Politecnico di Bari
G. Piscitelli
pag. 5 di 48
Automi: il funzionamento
Un automa esamina la stringa sul nastro dingresso compiendo una serie di mosse;
ogni mossa dipende dai simboli presenti sotto le testine e dallo stato dellunit di
controllo.
Ogni mossa consiste in:
G. Piscitelli
pag. 6 di 48
Automi: la configurazione
Una configurazione dellautoma definita da:
- la porzione di nastro dingresso alla destra della testina dingresso,
- lo stato dellunit di controllo;
- la posizione della testina di memoria ed il contenuto di questultima.
Lautoma, allorigine, viene posto nella configurazione iniziale:
- la testina dingresso sul simbolo che segue la marca dinizio ();
- lunit di controllo in un particolare stato detto stato iniziale;
- la memoria contiene linformazione iniziale.
Attraverso una serie di mosse (computazione) la configurazione dellautoma
evolve.
Politecnico di Bari
G. Piscitelli
pag. 7 di 48
Automi: la configurazione
Una configurazione finale se lunit di controllo in uno stato finale e la
testina dingresso posta sulla marca di fine ().
A volte, in alternativa, la configurazione finale se la memoria si trova in una
particolare condizione (ad es. vuota).
Una stringa (o parola) x accettata dallautoma se esso, partendo dalla
configurazione iniziale con x sul nastro dingresso, pu eseguire almeno una
sequenza di mosse che lo porta in una configurazione finale.
Linsieme delle stringhe accettate dallautoma costituisce il linguaggio accettato
(o riconosciuto o definito) da esso.
Lautoma si ferma o perch ha raggiunto una configurazione finale o perch la
mossa non definita, nel qual caso la stringa non accettata.
Allo schema prima illustrato di automa appartiene la macchina di Turing, che pu
assumere diverse varianti e che accettata come formalizzazione di ogni procedura di
calcolo.
Politecnico di Bari
G. Piscitelli
pag. 8 di 48
Automi e indeterminismo
Il cambiamento che si produce con le mosse, e quindi lautoma,
deterministico se in ogni configurazione ammessa non pi di una mossa per
ciascun simbolo in input, mentre non deterministico se in almeno una
configurazione sono possibili pi mosse alternative in corrispondenza dello stesso
simbolo o anche se lalfabeto dei simboli prevede il simbolo vuoto .
Un automa non deterministico un modo astratto di rappresentare un algoritmo
che pu procedere per tentativi, esaminando due o pi percorsi alternativi.
Che tipo di computazione quella di un automa non deterministico?
Una computazione parallela. Infatti, in corrispondenza di un simbolo a cui
corrispondono pi mosse alternative, la macchina splitta in pi copie quante sono le
alternative e ogni copia, in parallelo con le altre, procede separatamente. Se incontra
unaltra alternativa, splitta ancora. Se il prossimo simbolo in input non previsto in
nessuna delle transizioni in uscita dallo stato corrente di una copia della macchina,
questultima muore assieme a tutta la computazione corrispondente.
Se una delle copie della macchina si trova in uno stato finale alla fine della stringa
dingresso, lautoma non deterministico accetta la stringa.
In corrispondenza del simbolo vuoto , lautoma si suddivide in diverse copie, una
per ciascun simbolo , ed una ferma allo stato corrente.
Politecnico di Bari
G. Piscitelli
pag. 9 di 48
Politecnico di Bari
G. Piscitelli
pag. 10 di 48
Politecnico di Bari
G. Piscitelli
pag. 11 di 48
A0 ::= a A 1|
A 1 ::= b A 1 | c A 1 | d A 2
A 2 ::= e A 1 | f A 3
A 3 ::=
Politecnico di Bari
G. Piscitelli
pag. 12 di 48
Q = {q0,...,qn}
FQ
(stringa valida)
Politecnico di Bari
G. Piscitelli
pag. 13 di 48
Esempio.
Dato il linguaggio
q0
q1
q2
a
q0
q2
q2
b
q1
q2
q2
Politecnico di Bari
G. Piscitelli
pag. 14 di 48
Esempio.
Automa che riconosce gli identificatori.
a,....,z
q0
0,....,9
q2
0,....,9
a,....,z
a,....,z
q1
0,....,9
Politecnico di Bari
pag. 15 di 48
Esempio.
q2
0
q0
q3
0U
q4
0U
q1
0U
stato presente
Politecnico di Bari
carattere letto
0
.......
q0
q2
q1
.......
q1
----
q1
q1
q1
.......
q1
q3
q2
----
----
.......
----
q3
q3
q4
q4
.......
q4
----
q4
q4
q4
.......
q4
----
G. Piscitelli
pag. 16 di 48
Automa minimo
In generale esistono infiniti automi equivalenti (che, cio, accettano lo stesso
linguaggio), differenti per il numero degli stati.
Un risultato teorico utile che, a meno di un isomorfismo (cio a meno di una
ridenominazione degli stati), unico il riconoscitore minimo o automa minimo
(rispetto alla cardinalit |Q| dellinsieme degli stati) di un linguaggio L.
Algoritmo di minimizzazione da un automa generico M allautoma minimo M.
Definite 2 generiche relazioni sullinsieme Q degli stati di M, si dice che:
- la relazione p equivalente a q (e si scrive p q) se e solo se, per ogni stringa x, o
entrambi gli stati (p, x) e (q, x) sono finali, o nessuno dei 2 lo ; ovviamente si
ha p p.
- la relazione r distinguibile da q (e si scrive r q) se esiste una stringa x per cui
(r, x)F e (q, x)F, o viceversa.
Per minimizzare lautoma si determinano le classi di equivalenza1 della relazione .
Una classe di equivalenza linsieme di tutti gli stati equivalenti fra di loro.
Politecnico di Bari
G. Piscitelli
pag. 17 di 48
Automa minimo
Esempio
0
q2
1
q4
0
1
q0
q3
0
1
1
q1
q5
1
[0,1]
[2,3]
[4]
1
0
a) automa originale
[5]
b) automa minimo
Politecnico di Bari
G. Piscitelli
pag. 18 di 48
rivelatore
retro
presenza
frontale
CHIUSA
presenza
frontale
retro
entrambe
APERTA
nessuna
presenza
Politecnico di Bari
G. Piscitelli
pag. 19 di 48
Politecnico di Bari
G. Piscitelli
pag. 20 di 48
In un NFSA sono consentite - mosse. In altre parole, esistono transizioni che non
consumano simboli.
Un NFSA accetta una stringa x, se e solo se esiste un cammino dallo stato iniziale
ad uno stato finale tale che ogni arco sia etichettato con i simboli in x
Politecnico di Bari
G. Piscitelli
pag. 21 di 48
Politecnico di Bari
G. Piscitelli
pag. 22 di 48
Politecnico di Bari
G. Piscitelli
pag. 23 di 48
Politecnico di Bari
G. Piscitelli
pag. 24 di 48
Politecnico di Bari
G. Piscitelli
pag. 25 di 48
AUTOMI A PILA
testina d'ingresso
(sola lettura)
unit di
controllo
testina di memoria
(lettura e scrittura)
Ak
.
.
..
.
.
A1
memoria ausiliaria
Un automa a pila pu essere pensato come un automa finito, esteso con un nastro
illimitato usato come pila.
Politecnico di Bari
G. Piscitelli
pag. 26 di 48
Automi a pila
Il movimento della testina unidirezionale verso destra. Ad ogni mossa lautoma
pu avanzare con la testina, cambiare stato e fare unoperazione push o pop.
Lautoma inizia il calcolo (configurazione iniziale) nello stato q0, con il solo
simbolo Z0 in fondo alla pila e la testina dingresso posizionata sul primo simbolo
della stringa x sul nastro dingresso.
Le mosse possibili sono:
se, nello stato q0, legge un simbolo (ad es. una a o una b) esegue una push(A)
(oppure push(B));
se, nello stato q0, legge un particolare simbolo (ad es. una c) passa allo stato q1;
se, nello stato q1, legge un simbolo a (oppure b) e in cima alla pila trova A
(oppure B), esegue una pop;
in ogni altro caso si ferma rigettando la stringa.
Perch lautoma termini di leggere, il nastro dingresso deve essere delimitato dalla
marca di fine .
La stringa accettata se, dopo la lettura di , lo stato q2 o, in alternativa, se la
pila vuota o presente solo Z0, sul quale non si pu eseguire n push n pop.
NOTA BENE. La testina sul nastro di ingresso pu anche non spostarsi.
Questa situazione e' espressa dicendo che la testina legge sul nastro di ingresso.
Politecnico di Bari
G. Piscitelli
pag. 27 di 48
Nastro
a
A
A
A
A
b
b
B
B
c
c
c
b
b
b
b
a
a
a
a
a
Stato
controllo
q0
q0
q0
q1
q1
q1
q2
Si noti come leffetto di una mossa dipende, oltre che dal simbolo in ingresso, dal
contenuto del top dello stack e dallo stato dellunit di controllo.
Si noti ancora che il carattere Z0 di fondo della pila non viene toccato durante la
computazione, quasi che esso fosse inamovibile sul fondo.
Politecnico di Bari
G. Piscitelli
pag. 28 di 48
Politecnico di Bari
G. Piscitelli
pag. 29 di 48
un alfabeto di input
Politecnico di Bari
G. Piscitelli
pag. 30 di 48
Politecnico di Bari
G. Piscitelli
pag. 31 di 48
G. Piscitelli
pag. 32 di 48
G. Piscitelli
pag. 33 di 48
Politecnico di Bari
G. Piscitelli
pag. 34 di 48
G. Piscitelli
pag. 35 di 48
Politecnico di Bari
G. Piscitelli
pag. 36 di 48
Politecnico di Bari
G. Piscitelli
pag. 37 di 48
G. Piscitelli
pag. 38 di 48
G. Piscitelli
pag. 39 di 48
Politecnico di Bari
G. Piscitelli
pag. 40 di 48
Macchina di Turing
Il massimo livello di complessit di un automa raggiunto dalla macchina di
Turing, modello che generalizza gli automi a pila (e a fortiori gli automi a stati finiti).
Ha una capacit computazionale che si presume essere la massima: si dimostra
infatti che essa equivalente, ossia in grado di effettuare le stesse elaborazioni di
tutti gli altri modelli di calcolo di pi ampia portata.
Di conseguenza si consolidata la convinzione che per ogni problema calcolabile
esista una MdT in grado di risolverlo: questa la cosiddetta congettura di ChurchTuring, la quale postula in sostanza che per ogni funzione calcolabile esista una
macchina di Turing equivalente, ossia che l'insieme delle funzioni calcolabili coincida
con quello delle funzioni ricorsive.
Per le sue caratteristiche, il modello della MdT un efficace strumento teorico che
viene largamente usato nella teoria della calcolabilit e nello studio della complessit
degli algoritmi.
Politecnico di Bari
G. Piscitelli
pag. 41 di 48
Macchina di Turing
Per definire in modo formalmente preciso la nozione di algoritmo
preferenzialmente oggi si sceglie di ricondurlo alle elaborazioni effettuabili con
macchine di Turing.
Della MdT vengono considerate molteplici varianti. Noi consideriamo una variante
piuttosto semplice che possiamo chiamare macchina di Turing deterministica a un
nastro e con istruzioni a cinque campi.
Esistono numerose altre varianti della MdT.
Politecnico di Bari
G. Piscitelli
pag. 42 di 48
(1/3)
Politecnico di Bari
G. Piscitelli
pag. 43 di 48
(2/3)
Ogni passo dell'evoluzione viene determinato dallo stato attuale s nel quale la
macchina si trova e dal carattere c che la testina di I/O trova sulla casella del nastro
su cui posizionata e si concretizza nell'eventuale modifica del contenuto della
casella, nell'eventuale spostamento della testina di una posizione verso destra o verso
sinistra e nell'eventuale cambiamento dello stato.
Quali azioni vengono effettuate ad ogni passo viene determinato dalla istruzione,
che supponiamo unica, che ha come prime due componenti s e c; le altre tre
componenti dell'istruzione forniscono nell'ordine il nuovo stato, il nuovo carattere
e una richiesta di spostamento verso sinistra, nullo o verso destra.
Politecnico di Bari
G. Piscitelli
pag. 44 di 48
(3/3)
Politecnico di Bari
G. Piscitelli
pag. 45 di 48
(1/2)
Politecnico di Bari
G. Piscitelli
pag. 46 di 48
(2/2)
Se
, la corrispondente quintupla
pu considerarsi come
l'istruzione che viene eseguita quando la macchina si trova nello stato s e la testina
di I/O legge a sulla casella sulla quale posizionata; essa comporta la scrittura del
carattere b, la transizione allo stato t e:
quando m = -1 lo spostamento della testina di una posizione a sinistra,
quando m = 0 nessuno spostamento della testina,
quando m = +1 lo spostamento della testina di una posizione a destra.
Politecnico di Bari
G. Piscitelli
pag. 47 di 48
G. Piscitelli
pag. 48 di 48