Macchine di Turing Le macchine di Turing

Informatica teorica
Lez. n 7 – Macchine di Turing
Macchine di Turing
Prof. Giorgio Ausiello
Università di Roma “La Sapienza”
Informatica teorica
Lez. n 7 – Macchine di Turing
Argomenti della lezione
Î Definizione della macchina di
Turing
Î Riconoscimento e accettazione
di linguaggi
Î Macchine a più nastri
Prof. Giorgio Ausiello
Università di Roma “La Sapienza”
Informatica teorica
Lez. n 7 – Macchine di Turing
La macchina di Turing è un
automa che può leggere e
scrivere su un nastro bidirezionale
"potenzialmente" illimitato
Prof. Giorgio Ausiello
Università di Roma “La Sapienza”
Informatica teorica
Lez. n 7 – Macchine di Turing
Dato lo stato della macchina e
il carattere letto sul nastro,
la macchina passa in un nuovo
stato, scrive un carattere sul
nastro, sposta la testina a destra
o a sinistra
Prof. Giorgio Ausiello
Università di Roma “La Sapienza”
Informatica teorica
Lez. n 7 – Macchine di Turing
Le macchine di Turing:
Î forniscono una definizione
formale del concetto di
algoritmo
Î accettano tutti (e soli) i
linguaggi di tipo 0
Prof. Giorgio Ausiello
Università di Roma “La Sapienza”
Informatica teorica
Lez. n 7 – Macchine di Turing
Le macchine di Turing sono in
grado di simulare ogni altro
modello di calcolo ("tesi
di Church-Turing")
Prof. Giorgio Ausiello
Università di Roma “La Sapienza”
Informatica teorica
Lez. n 7 – Macchine di Turing
Modello di calcolo non “realistico”
ma
Î adatto a formalizzare il
riconoscimento dei linguaggi
formali
Î utile per definire concetti di
complessità computazionale
Prof. Giorgio Ausiello
Università di Roma “La Sapienza”
Informatica teorica
Lez. n 7 – Macchine di Turing
M = <Σ, b, K, q00, F, δ >
Σ
b
K
q00
F
δ
alfabeto del nastro
carattere speciale, spazio
(blank)
insieme finito di stati
stato iniziale
insieme di stati finali
funzione di transizione
Prof. Giorgio Ausiello
Università di Roma “La Sapienza”
Informatica teorica
Lez. n 7 – Macchine di Turing
Funzione di transizione
δ: K x Σbb → K x Σbb x
{destra, sinistra, immobile}
dove Σbb = Σ ∪ {b}
Può essere rappresentata con una
matrice o con un grafo di
transizione
Prof. Giorgio Ausiello
Università di Roma “La Sapienza”
Informatica teorica
Lez. n 7 – Macchine di Turing
(Disegno 7.1)
Prof. Giorgio Ausiello
Università di Roma “La Sapienza”
Informatica teorica
Lez. n 7 – Macchine di Turing
Varianti (tutte computazionalmente
equivalenti)
Î macchine a più nastri
Î macchine non deterministiche
Î macchine con alfabeto limitato
Î macchine con nastro
seminfinito
Prof. Giorgio Ausiello
Università di Roma “La Sapienza”
Informatica teorica
Lez. n 7 – Macchine di Turing
Configurazione di una macchina
Stringa appartenente al linguaggio
+
(Σbb)*..K..(Σbb)+
che rappresenta:
Î porzione finita del nastro che
contiene i caratteri diversi da b
Prof. Giorgio Ausiello
Università di Roma “La Sapienza”
Informatica teorica
Lez. n 7 – Macchine di Turing
Configurazione di una macchina
Î posizione della testina
Î stato corrente
Prof. Giorgio Ausiello
Università di Roma “La Sapienza”
Informatica teorica
Lez. n 7 – Macchine di Turing
disegno 7.2
Prof. Giorgio Ausiello
Università di Roma “La Sapienza”
Informatica teorica
Lez. n 7 – Macchine di Turing
La conoscenza di una
configurazione e della funzione di
transizione consente di
determinare la configurazione
successiva
Prof. Giorgio Ausiello
Università di Roma “La Sapienza”
Informatica teorica
Lez. n 7 – Macchine di Turing
Per convenzione all'inizio della
computazione il nastro contiene
l'input, il resto del nastro contiene
b, la testina è posizionata sul
primo carattere dell'input, la
macchina è nello stato iniziale
Configurazione iniziale:
stringa del tipo:
Prof. Giorgio Ausiello
Università di Roma “La Sapienza”
q00aabb
Informatica teorica
Lez. n 7 – Macchine di Turing
Il calcolo termina quando la
macchina entra in uno stato finale.
La testina può essere in un punto
qualunque del nastro
Configurazione finale:
stringa del tipo:
aab qFFb
Il calcolo termina anche se
nessuna regola di transizione è
applicabile
Prof. Giorgio Ausiello
Università di Roma “La Sapienza”
Informatica teorica
Lez. n 7 – Macchine di Turing
Se la funzione di transizione fa
passare dalla configurazione cii
alla configurazione cjj scriviamo
ci |— cj
Una computazione è una sequenza
eventualmente infinita di
configurazioni <c11,c22,...,cii, ci+1
i+1,...>
tali che:
c11 |— c22 |— .... |— cii |— ci+1
i+1|—....
Prof. Giorgio Ausiello
Università di Roma “La Sapienza”
Informatica teorica
Lez. n 7 – Macchine di Turing
Una computazione finita
c11 |— c22 |— .... |— cnn è massimale
se non esiste una configurazione c
tale che cnn |— c
In tal caso cnn è una configurazione
finale o una configurazione in cui
la funzione di transizione non è
definita
Prof. Giorgio Ausiello
Università di Roma “La Sapienza”
Informatica teorica
Lez. n 7 – Macchine di Turing
Riconoscimento e
accettazione di linguaggi
Prof. Giorgio Ausiello
Università di Roma “La Sapienza”
Informatica teorica
Lez. n 7 – Macchine di Turing
A differenza degli ASF e degli AP,
che rispettivamente riconoscono
i linguaggi di tipo 3 e di tipo 2,
le macchine di Turing non sono
sempre in grado di riconoscere
un linguaggio di tipo 0 ma in
alcuni casi possono solo ‘accettarlo’
Prof. Giorgio Ausiello
Università di Roma “La Sapienza”
Informatica teorica
Lez. n 7 – Macchine di Turing
Î Una macchina di Turing M
riconosce un linguaggio L se
per ogni x ∈ Σ* M è in grado di
stabilire se x ∈ L o no
Prof. Giorgio Ausiello
Università di Roma “La Sapienza”
Informatica teorica
Lez. n 7 – Macchine di Turing
Î Una macchina di Turing M
accetta un linguaggio L se per
tutte e sole le x ∈ L M è in
grado di stabilire tale
appartenenza, ma se x ∉ L M
non garantisce un
comportamento prestabilito
Prof. Giorgio Ausiello
Università di Roma “La Sapienza”
Informatica teorica
Lez. n 7 – Macchine di Turing
Una computazione massimale
<c00, c11,...., cnn> è accettante
(responso positivo) se c00 è
iniziale e cnn è finale
Prof. Giorgio Ausiello
Università di Roma “La Sapienza”
Informatica teorica
Lez. n 7 – Macchine di Turing
Una computazione massimale
<c00, c11,...., cnn> è rifiutante
(responso negativo) se c00 è
iniziale e cnn non è finale
Prof. Giorgio Ausiello
Università di Roma “La Sapienza”
Informatica teorica
Lez. n 7 – Macchine di Turing
Una computazione infinita non
corrisponde ad alcun responso
Prof. Giorgio Ausiello
Università di Roma “La Sapienza”
Informatica teorica
Lez. n 7 – Macchine di Turing
M=<Σ,b,K,q00,F,δ> riconosce
(decide) un linguaggio L se
per ogni x ∈ Σ* esiste q ∈ K
tale che q00x |—* α q β
+ e
con α ∈ (Σbb)* e β ∈ (Σbb)+
q ∈ F se e soltanto se x ∈ L
Prof. Giorgio Ausiello
Università di Roma “La Sapienza”
Informatica teorica
Lez. n 7 – Macchine di Turing
Un linguaggio accettato da una
macchina di Turing è detto
decidibile (secondo Turing)
Prof. Giorgio Ausiello
Università di Roma “La Sapienza”
Informatica teorica
Lez. n 7 – Macchine di Turing
M=<Σ,b,K,q00,F,δ> accetta un
linguaggio L se per tutte e sole
le x ∈ L esiste q ∈ F tale che
q00x |—* α q β
+
con α ∈ (Σbb)* e β ∈ (Σbb)+
Un linguaggio accettato da una
macchina di Turing è detto
semidecidibile (secondo Turing)
Prof. Giorgio Ausiello
Università di Roma “La Sapienza”
Informatica teorica
Lez. n 7 – Macchine di Turing
Nelle lezioni successive
mostreremo che:
Î I linguaggi semidecidibili sono
tutti e soli i linguaggi di tipo 0
Î La classe dei linguaggi decidibili
è strettamente contenuta in
quella dei linguaggi
semidecidibili
Prof. Giorgio Ausiello
Università di Roma “La Sapienza”
Informatica teorica
Lez. n 7 – Macchine di Turing
MT che accetta 0nn1nn (n≥1)
M=<{0,1},b,K,q00,{q44},δ>
Configurazione iniziale:
q000011
Prof. Giorgio Ausiello
Università di Roma “La Sapienza”
Informatica teorica
Lez. n 7 – Macchine di Turing
La MT marca via via con un X gli 0
e con un Y i corrispondenti 1 e
accetta se gli 0 e gli 1 sono in
numero uguale, rifiuta se sono in
numero diverso
Prof. Giorgio Ausiello
Università di Roma “La Sapienza”
Informatica teorica
Lez. n 7 – Macchine di Turing
(Disegno 7.3)
Prof. Giorgio Ausiello
Università di Roma “La Sapienza”
Informatica teorica
Lez. n 7 – Macchine di Turing
Macchine di Turing a più
nastri (o multinastro, MTM)
Prof. Giorgio Ausiello
Università di Roma “La Sapienza”
Informatica teorica
Lez. n 7 – Macchine di Turing
Macchina di Turing a k nastri
(k)>
Mkk=<Σ,b,Z00,K,q00,F,δ(k)
Σ
b
Z00
K
q00
F
alfabeto
carattere speciale blank
carattere speciale iniziale
insieme finito di stati
stato iniziale
insieme di stati finali
Prof. Giorgio Ausiello
Università di Roma “La Sapienza”
Informatica teorica
Lez. n 7 – Macchine di Turing
Macchina di Turing a k nastri
(k)>
Mkk=<Σ,b,Z00,K,q00,F,δ(k)
δ(k)
funzione di transizione
δ(k) : K x (Σbb)kk → K x (Σbb)kk x {d,s,i}kk
Prof. Giorgio Ausiello
Università di Roma “La Sapienza”
Informatica teorica
Lez. n 7 – Macchine di Turing
Configurazione:
q#α11↓ β11#α22↓ β22#....#αkk↓ βkk
q è lo stato;
αiiβii è il contenuto del nastro
i-esimo;
↓ indica la posizione della testina
su ciascun nastro
Prof. Giorgio Ausiello
Università di Roma “La Sapienza”
Informatica teorica
Lez. n 7 – Macchine di Turing
Configurazione iniziale:
q00#↓ β11#↓ Z00#....#↓ Z00
Configurazione finale:
q appartiene a F
Transizioni e computazioni:
analoghe alle normali MT
Prof. Giorgio Ausiello
Università di Roma “La Sapienza”
Informatica teorica
Lez. n 7 – Macchine di Turing
MTM ed MT hanno lo stesso potere
computazionale:
una MT può simulare una MTM e la
simulazione ha un costo
polinomiale
Prof. Giorgio Ausiello
Università di Roma “La Sapienza”
Informatica teorica
Lez. n 7 – Macchine di Turing
Data una MTM
(k)> a k nastri
M=<Σ,b,K,q00,F,δ(k)
esiste una MT che simula t passi di
Mkk in O(t22) passi usando un
alfabeto di cardinalità O((2|Σ|)kk)
Prof. Giorgio Ausiello
Università di Roma “La Sapienza”
Informatica teorica
Lez. n 7 – Macchine di Turing
Costruiamo una MT
M'=<Σ',b,K',q0'
0',F',δ'> con nastro
suddiviso in 2k tracce che simula M;
le k tracce di posto pari di M'
rappresentano i k nastri di M;
sulle k tracce di posto dispari di M'
con il marcatore "↓" indichiamo la
posizione della testina sul
corrispondente nastro di M
Prof. Giorgio Ausiello
Università di Roma “La Sapienza”
Informatica teorica
Lez. n 7 – Macchine di Turing
Per ogni passo di M, M' deve
eseguire un numero di passi
proporzionale alla distanza
(numero di caselle) tra i due
marcatori più lontani quindi se M
esegue t passi, M' ne può eseguire
O(t22)
Prof. Giorgio Ausiello
Università di Roma “La Sapienza”
Informatica teorica
Lez. n 7 – Macchine di Turing
Per ciò che riguarda la cardinalità
dell'alfabeto di M’ dobbiamo
codificare con un simbolo un vettore
di 2k simboli corrispondenti al
contenuto delle 2k tracce,
quindi
k-1 =
|Σ’| = 2kk(|Σ|+1)(|Σ|+2)k-1
O((2|Σ|)kk)
Prof. Giorgio Ausiello
Università di Roma “La Sapienza”
Informatica teorica
Lez. n 7 – Macchine di Turing
MTM che riconosce xcxRR
con x ∈ {a,b}
(disegno 7.4)
Prof. Giorgio Ausiello
Università di Roma “La Sapienza”
Informatica teorica
Lez. n 7 – Macchine di Turing
computazione con input bacab:
q00 #↓ bacab
q00 #b↓ acab
#↓ Z00
#b↓ b
|—
|—
q00 #ba↓ cab
#ba↓ b
|—
q11 #bac↓ ab
q11 #baca↓ b
q11 #bacab↓ b
q22 #bacab↓ b
#b ↓ a
# ↓ ba
# ↓ bba
# ↓ bba
|—
|—
|—
|—
Prof. Giorgio Ausiello
Università di Roma “La Sapienza”
Informatica teorica
Lez. n 7 – Macchine di Turing
computazione con input acb:
q00 # ↓ acb
q00 # a↓ cb
#↓ Z00
#a↓ b
q11 # ac↓ b
#↓ a
Prof. Giorgio Ausiello
Università di Roma “La Sapienza”
|—
|—