- Prof: Stefano Berardi
- PDF Version
Info Corso
Teoria
Macchina di Turing
The Church-Turing Thesis Utilizzata per definire un problema risolvibile
- nato per dare una definizione semplice di risolvibilitá
- un qualsiasi computer puó essere ridefinito con una
MdTequivalente
- un qualsiasi computer puó essere ridefinito con una
- unico accesso alla memoria
- come un nastro, legge dall’inizio fino alla fine
- lenta
- non é una architettura realmente implementabile
- come un nastro, legge dall’inizio fino alla fine
Caratterizzata da:
- controllo
- stati interni
- che definiscono comportamenti diversi
- stati interni
- memoria/tape
- testa di lettura
- alfabeto a scelta
- l’Input é finito
- la fine del Input é marcata con un simbolo speciale
A differenza degli Automi a Stati Finiti puó sovrascrivere, appunta per aiutarsi nell’esecuzione
- una macchina di turing puó simulare qualsiasi macchina a differenza di un DFA
La Macchina di Turing essendo estremamente semplice é ottima per lo studio della Calcolabilitá
Definizione Formale
MT 1936 7-tupla
- : insieme di stati
- : alfabeto di Input non contenente il simbolo di blank
- : alfabeto del nastro
- : funzione di transizione
- Left (<) / Right (>)
- Lo stato di rifiuto non viene inserito, é sottointeso a ogni Input non riconosciuto una transizione allo stato di rifiuto, bloccante
- Lo stato di
StayPuté simulabile muovendosi continuamente e , raddoppiando gli stati - Il nastro infinito a destra e sinistra si simula sulle celle pari e dispari su un nastro infinito solamente a destra
Grafi
-
Stringhe Uguali

-
Stringa di 0 di lunghezza 2n

Macchine Turing a piú registri
Con piú tapes diventa molto piú semplice controllare stringhe, ci si avvicina nel comportamente ad una macchina di Von Neumann Il primo nastro é l’Input, gli altri sono registri
- con simboli / tapes
- é
StayPut
Si puó simulare una MT a piú nastri con una MT ad un nastro solo
- perché? per semplificare la definizione di calcolo
- se un algoritmo a piú nastri é lineare su un nastro sará quadratico

Enumeratori
Sono TM che enumerano stringhe.
Si puó definire un enumeratore che enumeri un linguaggio se e solo se esiste una TM che riconosca (decida positivamente) il linguaggio Partiamo a dimostrare che se esiste un tale allora esiste una che riconosca il linguaggio enumerato
Possiamo definire su input :
- simula
- per ogni stringa enumerata da confrontala con
- se é uguale accetta, altrimenti continua con la simulazione di
Da questa costruzione si evince che accetta solo le stringhe enumerate da e quindi nel linguaggio , riconosce .
Ora si dimostra l’altra direzione. Se riconosce il linguaggio definiamo un enumeratore :
- ignora l’input
- ripeti per
- esegui per passi su
- se accetta, stampa la accettata
Questa macchina di turing simula su tutte le stringhe che appartengono a per passi di simulazione, non terminando mai. In questa simulazione sostanzialmente si simula in parallelo la macchina su tutte le stringhe possibili in input (per un numero di passi di computazione sempre maggiore), stampando tutte e sole le accettate da . Viceversa se una stringa appartiene ad questa viene accettata in un numero finito di passi da , e quindi dato abbastanza tempo la stamperá. Quindi enumera il linguaggio .
Decidibilità
Per un DFA possiamo definire una TM M che lo simula e verifica l’accettazione o meno dell’Input Decidable - Turing-recognizable
NFAconvertibiliRegExconvertibili
Definizioni
Sia un linguaggio definito sull’alfabeto , e quindi sottoinsieme di Allora :
- Decidibile, esiste una che decide
- : accetta
- : non accetta
- Positivamente Decidibile (riconoscibile)
- : accetta
- : non accetta o non termina
- Negativamente Decidibile
- : accetta o non termina
- : non accetta
Allora definiamo linguaggio complemento di Per i linguaggi complemento si scambiano decidibilitá positiva e decidibilitá negativa:
- decidibile decidibile
- positivamente decidibile negativamente decidibile
- negativamente decidibile positivamente decidibile
Esistono indebolimenti del decisore, ovvero decisori parziali
Teorema di Post
4.22 Linguaggio decidibile é positivamente e negativamente decidibile
- termina sempre
- é un decisore che simula e in parallelo
- il primo che termina decide
Riformulando
- un linguaggio é decidibile esattamente quando esso e il suo complemento sono positivamente decidibili
Si dimostra prima una direzione e poi l’altra della bi-implicazione
-
- Se é decidibile allora segue direttamente che e sono positivamente decidibili
- per definizione di decidibilitá e complemento di un linguaggio
- Se é decidibile allora segue direttamente che e sono positivamente decidibili
-
- Se e sono positivamente decidibili, definiamo e , decisori positivi di uno e dell’altro
- Si definisce , decisore di
- Su input :
- Esegui e sull’input in parallelo
- Se accetta, accept; se accetta, rifiuta
- Su input :
- Ogni stringa appartiene a o
- Segue che per qualsiasi input una tra e deve accettare
- termina quando una tra e accetta
- Segue che termina sempre, quindi é un decisore
- Inoltre accetta tutte le e rifiuta tutte le , quindi é un decisore per
- quindi é decidibile in quanto ne esiste un decisore
Mapping Reducible Language
Il Linguaggio é mapping reducible al linguaggio :
se esiste una funzione computazionale tale che:

Seguono i corollari:
- Se e é decidibile é decidibile
- si dimostra costruendo la funzione e poi eseguendo sull’input trasformato
- stessa dimostrazione per la decidibilitá positiva
- Se e non é positivamente decidibile non é positivamente decidibile
- Supponendo
-
- ma se fosse negativamente decidibile (quindi positivamente decidibile) allora per la proprietá di cui sopra sarebbe negativamente decidibile
- Ma non puó esserlo, altrimenti sarebbe decidibile per il Teorema di Post: contraddizione.
- Supponendo
Macchina di Turing Universale
- Simula su
- Se accetta, accetta; se rifiuta, rifiuta
Se cicla, cicla di conseguenza
La macchina universale é definita a partire da codificando in un alfabeto binario tutti i simboli di . La macchina é definita utilizzando un alfabeto , quindi un qualsiasi stato o simbolo di sará convertibile in una stringa binaria Nelle tape di tutti i simboli sono delimitati da #.
Queste codifiche sono utilizzate nelle 5 tape di , definite in questo modo:
- la funzione di transizione di , questa tape é read-only e qui sono listate tutte le transizioni di nella forma dove sono simboli di e sono o
- lo stato corrente di ,
- lo stato accettante di ,
- lo stato di rifiuto di ,
- la tape di simulazione di
La macchina universale procede leggendo lo stato corrente di e il simbolo che si trova sotto la testina di lettura di nella tape 5. Quindi scorre le quintuple nella prima tape, se non trova una corrispondenza rifiuta. Se trova una corrispondenza allora sovrascrive la tape 2 con il nuovo stato indicato dalla funzione di transizione e sovrascrive nella tape 5 con la nuova indicata dalla transizione e aggiungendo un divisore #. fatto questo simula il movimento a destra o a sinistra della testina di spostandosi nella direzione indicata fino ad un #.
Problemi Decibidili
- decidibile studiando i percorsi nel grafo delle transizioni
- automa che descrive la differenza simmetrica dei linguaggi
- si riduce a
- tempo di accettazione
- non c’é problema di fermata
Problemi Indecidibili
Per molti problemi si utilizza la tecnica della riduzione
- se un problema che sappiamo non decidibile si puó ridurre al problema che stiamo studiando allora anche questo non sará decibidile
-
Eguaglianza Chompsky
-
Accettazione
4.11Problema positivamente decidibileSi procede per diagonalizzazione utilizzando due
TMdi supporto e-
simulabile con una macchina di Turing universale
- macchina capace di simulare qualsiasi macchina utilizzando 5 tape
-
si osserva l’esecuzione che non termina Si prova utilizzando la tecnica della diagonalizzazione scoperta dal matematico Georg Cantor nel 1873
-
iniezione - suriezione (biezione)
- corrispondenza 1 a 1
-
prova che non esiste una enumerazione per un dato insieme di numeri
- per i Reali si cambia nella ennesima enumerazione la ennesima cifra dopo la virgola
- si trova cosí un numero che differisce per una cifra da tutti i numeri enumerati
- per i Reali si cambia nella ennesima enumerazione la ennesima cifra dopo la virgola
-
esistono infinite terne Si definiscono delle
MTdi supporto:
- supponiamo che
Hesista, e accetti seMaccettawe rifiuti altrimenti
Dprende in input una macchinaMe con un decisoreHche decideMcon input la propria descrizione , accetta seHrifiuta e viceversa, continua con altre macchine- diagonalizza infinite macchine
MAllora si procede diagonalizzando con applicato a
- diagonalizza infinite macchine
- dovrebbe rifiutare se accetta
- dovrebbe accettare altrimenti
- non puó terminare perché per terminare avrebbe bisogno di dare la risposta opposta di se stesso Abbiamo raggiunto una contraddizione
-
-
Immortalitá
4.23positivamente decidibile negativamente decidibile perT.Post- Falso per
4.11
- Falso per
-
Fermata
5.1Il problema della decisione per si riduce al problema della decisione per se sappiamo trasformare un decisore per in un decisore per-
Per contraddizione. Supponiamo esista una
TMche decida la fermata, definiamo unaTMche decide l’accettazione. Ma l’accettazione non é decidibile. Definiamo su input : -
Se accetta procedi, altrimenti rifiuta
-
Simula su , se accetta fa altrettanto, altrimenti rifiuta in quanto se accetta significa che termina, accettando o rifiutando. Se diverge non appartiene al linguaggio riconosciuto da e puó rifiutare. Per ció accetta tutte e sole le stringhe in , ovvero riconosciute da .
Ma questa é una contraddizione in quanto si dimostra che non é decidibile.
-
-
Decibidilitá dei Linguaggi di Chompsky Simboli, Produzioni, Terminali Un linguaggio definibile da una grammatica in forma normale di Chompsky é detto
context-freeSi dimostra che il numero di passi per derivare una stringa di lunghezza éQuesto implica che il problema é decidibile, anche se in tempo esponenziale
-
si scrivono sulla tape 2 tutte le deduzioni di lunghezza
-
si controlla la correttezza una ad una, se ne si trova una corretta e che corrisponde accettiamo, altrimenti continuiamo, se alche l’ultima non va bene rifiutiamo Per ridurre la complessitá si utilizza la programmazione dinamica
-
ci si appunta i risultati intermedi
-
-
Emptyness
5.2Si dimostra per assurdo, se esistesse si potrebbe risolvere l’accettazione-
si riduce a
- Per contraddizione. Supponiamo esista una tale che decida la emptyness, dato una stringa di input si modifica per accettare solo questa stringa. Definiamo , su input :
-
se rifiuta
-
altrimenti accetta Questa macchina decide il linguaggio che contiene la sola stringa .
Allora , su input :
- costruisce la modificata come specificato
- esegue su , se accetta allora rifiuta, e viceversa In questo modo abbiamo ridotto l’accettazione alla emptyness: rifiuta se e solo se accetta , e quindi il linguaggio riconosciuto da non é vuoto. Viceversa se rifiuta allora accetterá in quanto riconosciuta da é il linguaggio vuoto. Quindi decide l’accettazione. Contraddizione in quanto l’accettazione é non decidibile.
-
-
Equality
5.4Intesa tra dueMT-
se sapessi deciderla potrei decidere anche l’
Emptyness- In quanto é considerabile un caso particolare di
- tra una macchiana e la macchina che rifiuta sempre Anche per i reali:
-
calcoli diversi portano anche arrotondamenti diversi, per questo reali rigorosamente uguali possono risultare diversi
-
- e di conseguenza anche il < e il > Si dimostra per riduzioni:
-
- questo indica che non puó essere negativamente decidibile
- spostiamo al decidibilitá a
-
- questo indica che non puó essere positivamente decidibile Ora basta raggiungere queste conclusioni per chiudere la dimostrazione.
-
Definisco una macchina che implementa la funzione che riduce a
- se allora accetta
- rifiuta sempre
-
- prende e lo ignora
- esegue su e accetta se accetta
- rifiuta sempre
-
Definisco una Macchina che implementa la funzione che riduce a
- se allora non accetta
- accetta sempre
-
- prende e lo ignora
- esegue su e accetta se accetta
- accetta sempre
-
-
Corrispondenza di Post
PCP - 4.22Questo problema (domino) contiene la Macchina di Turing
- in quanto corrisponde alla visualizzazione della Configurazione di una TM
- visualizzando la storia del calcolo della macchina Si definisce un Modified Post Correspondance Problem:
Si decide che il primo elemento dell’insieme deve essere utilizzato all’inizio
-
sopra abbiamo passi di calcolo
-
sotto abbiamo passi di calcolo Questi domini rappresentano le funzioni di transizione attraverso le configurazioni della
TM -
-
compresi i pezzi dei singoli simboli, che si mantengono da un istante all’altro se non toccati dalla trasformazione di stato
-
- utilizzato quando lo stato deve spostarsi a destra oltre l’ultimo simbolo Si devono definire dei domino per l’accettazione, che faccia match: Per arrivare a questo accept:
-
-
- in quanto corrisponde alla visualizzazione della Configurazione di una TM
-
Tassellazione - Wang Tiles Wikipedia Solo negativamente decidibile
-
le tassellazioni aperiodiche sono utilizzate per la sintesi procedurale di texture, heightfields Si dimostra che non é positivamente decidibile in quanto
-
-
procedendo in maniera non deterministica, il caso di non-rifiuto indica che un albero della computazione ha per caso scelto la configurazione corretta per risolvere il problema della tassellazione
-
la computazione non deterministica si ferma solo in caso di rifiuto di tutti i rami non deterministici, quindi se la computazione non si ferma si dovrebbe accettare
-
-
Esistenza di un DFA equivalente
5.3
Configurazione di una TM
Recap

- Negativamente Decidibili
- Decidibili
- Positivamente Decidibili
- Né negativamente né positivamente decidibili
-
- se un programma accetta sempre
Complessità Temporale
Trattata nel corso di Algoritmi: Complessitá di un algoritmo Per lo studio della complessitá consideriamo la Macchina di Turing (1 registro)
- questo in quanto la complessitá varia anche in base all’architettura
Il tempo di calcolo della macchina é definito come
dove é il numero massimo di passi compiuti dalla macchina
Si utilizza la notazione asintotica o big-O Notation
Generalmente:
- classe dei linguaggi la cui appartenenza puó essere decisa velocemente
- classe dei linguaggi la cui appartenenza puó essere verificata velocemente
Non si é riuscita a provare l’esistenza di un singolo linguaggio che non sia in
Piú grande problema aperto: 
P
Teorema 7.8 Sia una funzione t.c. qualsiasi macchina multitape con tempo ha un equivalente in una macchina singletape
- chiaro riprendendo la simulazione di multitape in singletape
- un passo della simulazione singletape impiega al massimo passi
La classe di tempo Polinomiale é definito come
Non Determinismo
Teorema 7.11 Sia una funzione dove . Allora ogni TM singletape non deterministica con complessitá temporale ha una equivalente TM determinitistica , nel caso di una macchina multiregistro Per una TM deterministica a registro singolo si avrá sempre complessitá `2^{O(t(n))}^2 = 2^{O(t(n))}`
L’esplorazione dell’albero non deterministico é svolto utilizzando l’ordine lessicografico
- in profonditá
- questo é posto nell’address tape della macchina deterministica corrispondente
- a livello l’albero ha massimo nodi con numero di possibili figli
- il numero di passi necessari all’esplorazione dell’albero é
- profonditá dell’albero
-
Raggiungibilitá La soluzione banale non deterministica ha esponenziale
Con un algoritmo marcando i nodi man mano che vengono scoperti si raggiunge complessitá polinomiale
- rappresentando il grafo con liste di adiacenza la si puó stimare nel numero di archi
-
Algoritmo di Euclide , il
MCDtra due numeri Relativamente Primi é 1 quindi procediamo:I passi sono eseguiti ovvero proporzionali al numero di cifre nella rappresentazione binaria: quindi polinomiale
-
Grammatiche di Chompsky Per migliorare la complessitá si cerca di derivare tutte le sottostringhe di lunghezza crescente della stringa di input
- si memorizzano le soluzioni delle sottostringhe
- per ogni sottostringa la si divide in sottostringhe e si guarda la soluzione delle sottostringhe
- in una rappresentazione matriciale la soluzione si trova nella riga precedente
- ogni controllo richiede in quanto le sottostringhe sono sempre riconducibile ai siboli terminali Con questo algoritmo si raggiunge
- si memorizzano le soluzioni delle sottostringhe
NP
Un linguaggio é NP é deciso da un algoritmo non deterministico polinomiale Un NTM equivale a TM
- da tempo polinomiale a tempo esponenziale
Un linguaggio é NP se dispone di un verificatore in tempo polinomiale, detto allora polinomialmente verificabile
Def 7.18 Un verificatore é una macchina di turing tale che per un linguaggio :
-
- riguarda i dati del problema
- riguarda le istruzioni della
TM, un candidato di soluzione o almeno ci é legato in qualche maniera- potrebbe essere anche il cammino della macchina non deterministica
- la address tape nella simulazione deterministica di una macchina non deterministica
- si misura il tempo di un verificatore solo in funzione della lunghezza di
- un verificatore polinomiale esegue in tempo polinomiale secondo la lunghezza di
Prova 7.20 Il determinismo con certificato utilizzando é convertito in non determinismo trovando il in maniera non deterministica di lunghezza massima (dove questo é il polinomio di complessitá)
Si dimostra quindi che le due definizioni sono equivalenti in quanto é sempre possibile convertire un polinomiale in una polinomiale non deterministica e viceversa.
-
NP-completo Un linguaggio é se soddisfa le seguenti condizioni:
-
- si riduce in tempo polinomiale a Ci sono quindi due possibilitá che si escludono l’un l’altra:
- Tutti i problemi non sono polinomiali La classe descrive i problemi piú difficili in
-
Teorema di Cook-Levin Problemi in la cui complessitá é legata a quella dell’intera classe sono detti Il problema della soddisfatibilitá (satisfiability problem) fa parte di questa classe
- Una formula booleana é soddisfacibile se qualche assegnamento di 0 e di 1 fa si che la formula risulti 1
- é una formula booleana soddisfacibile
7.27
Questo teorema é implicato da
7.37: é é- NB - Per provare la si procede da al problema in particolare
-
Hamilton’s Path Percorso che percorre tutti il grafo a partire da arrivando in senza ripetizioni. Si percorre il grafo non deterministicamente
- si scartano tutti i rami in cui il primo nodo non é o non é l’ultimo
- si scartano i rami in cui ci sono ripetizioni Non conosciuto algoritmo in
-
Compositeness Un numero composto é un numero non primo. Esiste un algoritmo polinomiale per verificare se un numero é composto o meno ma non per trovare la sua scomposizione (o almeno non lo si é trovato) Quindi:
-
Clique
7.32Grafo non orientato, fornito un- si richiede un sottografo in cui 2 qualunque nodi distinti sono connessi di un arco Non si sa se esistono algoritmi polinomiali
É
Data una formula con clausole del tipo
-
Si definisce la riduzione per cui
-
genera la stringa , dove é un grafo non orientato
-
i nodi di sono raggruppati in triplette
-
gli archi di connettono tutti i nodi tranne:
- nodi della stessa tripletta
- due nodi contraddittori, come e Si dimostra che Quindi
-
Subset-Sum
7.56dove esistono tali cheSi dimostra facilmente che questo é definendone un verificatore polinomiale oppure una
TMnon deterministica polinomiale che lo definisca.é
La prova procede per riduzione polinomiale da a , convertendo elementi e strutture del problema che rappresentano variabili e clausole booleane.
Complessità Spaziale
8.1 Data la TM che termina sempre. Si dice complessitá spaziale di la funzione , dove é il massimo numero di celle di nastro che la passa su un qualsiasi input di lunghezza
Classi
8.2 Data . Le classi di complessitá spaziale e , sono definiti come:
- é decidibile da una TM deterministica in spazio
- é decidibile da una TM non deterministica in spazio
é la classe di linguaggi che sono decidibili in spazio polinomiale da una TM deterministica
Da 8.5 segue che
In sommario:
Questo perché:
- in quanto una macchina in passi puó esplorare al massimo celle di memoria
-
, una machina in puó eseguire passi senza ripetersi al massimo
f(n)\cdot 2^{O(f(n))} = \bigcup_k \textsc{time}(2^{n^k) , dopo di che é in loop
Qualsiasi di queste inclusioni potrebbero essere eguaglianze, ma non sono state trovate prove a riguardo.
Inoltre si definiscono le classi sottolineari:
E si dimostra:
Teorema di Savitch
8.5 Per qualsiasi funzione , dove ,
Il passaggio da non determinismo a determinismo per il tempo é piú impegnativo che per lo spazio, lo spazio é piú potente in quanto puó essere riutilizzato, al contrario del tempo.
- l’equivalente deterministico di una macchina non deterministica polinomiale ha:
- Tempo
- Spazio
Da questo teorema segue che in quanto il quadrato di un polinomiale é ancora polinomiale.
GG
Gioco Generalizzato della Geografia
- il gioco consiste nel spostarsi in un grafo i cui nodi sono nomi di cittá
- gli archi vanno da un cittá il cui nome finisce con una certa lettere a un nodo/cittá che inizia per data lettera
- ci sono due giocatori che partono da una data cittá
- a turno scelgono un arco da percorrere, perde chi non puó scegliere un arco entrante in un nodo giá visitato
Si dimostra che é definendo una funzione ricorsiva detta di Von Neumann una volta fissato il grafo
- vero se esiste una strategia vincente a partire da per il giocatore , che porta quindi ad una configurazione in cui non esiste una mossa per il giocatore che non violi le regole
Altro risultato della teoria é che é , quindi se si scoprisse un algoritmo in tempo polinomiale che risolva questo dimostrerebbe che:
- .
In quanto per il teorema di Savitch .
Questa ipotesi é ritenuta improbabile, anche se non si puó escludere.