macchine di turing e complessità - dis.uniroma1.itfiii/materiale_common/slide-m-old/turing... ·...

150
Macchine di Turing e Complessit` a Lucidi di Pierluigi Crescenzi,Universit` a di Firenze, adattati ed estesi da A.Marchetti Spaccamela A.A. 2012-2013 Pilu Crescenzi () IT A.A. 2012-2013 1 / 150

Upload: trinhtuong

Post on 24-Feb-2019

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Macchine di Turing e Complessita

Lucidi di Pierluigi Crescenzi,Universita di Firenze,adattati ed estesi da A.Marchetti Spaccamela

A.A. 2012-2013

Pilu Crescenzi () IT A.A. 2012-2013 1 / 150

Page 2: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Obiettivi e argomenti

ObiettiviFornire gli elementi di base delle teorie che sono di fondamentoall’informatica

CalcolabilitaComplessita

Programma

Macchine di TuringLa macchina di Turing universaleLimiti delle macchine di TuringLa tesi di Church-TuringRelazioni fra Linguaggi e Macchine di TuringLe classi di complessita P, NP, PSPACE

Pilu Crescenzi () IT A.A. 2012-2013 2 / 150

Page 3: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Contenuti del corso

Domanda principale: Cosa puo essere calcolato da un calcolatore equanto costa farlo?

Risposte

Tesi di Church-Turing: E calcolabile tutto cio che puo esserecalcolato da una macchina di Turing.

Esistono problemi che non possono essere risolti in modo algoritmicomediante una macchina di Turing.

Congettura P 6= NP: Esistono problemi che non possono essere risoltiin tempo polinomiale, ma per i quali e possibile verificare in tempopolinomiale la correttezza di una soluzione.

Intermezzo linguistico

Equivalenza tra grammatiche e modelli di calcolo

Pilu Crescenzi () IT A.A. 2012-2013 3 / 150

Page 4: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Macchine di Turing

() P.Crescenzi, UniFi 4 / 150

Page 5: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Macchine di Turing

Sono macchine astratte (modelli di calcolo) introdotte da A.M.Turingnel 1935 con lo scopo di

Dare una definizione formale del concetto di algoritmoStudiare i limiti del calcolo mostrando l’esistenza di problemi nonrisolubili

La macchina di Turing e un automa con testina di lettura/scrittura suun nastro bidirezionale potenzialmente illlimitato. Ad ogni passo dicalcolo

la macchina si trova in uno stato, appartenente ad un insieme finito, elegge un carattere sul nastrola funzione di transizione della macchina fa scrivere un carattere sulnastro, sposta eventualmente la testina di una posizione, porta lamacchina in un nuovo stato

() P.Crescenzi, UniFi 5 / 150

Page 6: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Definizione di una MdT

Alfabeto di lavoro Σ (� ∈ Σ)Grafo etichettato G = (V ,E )

V = {q0} ∪ F ∪ Q: insieme di stati

q0: stato inizialeF : insieme di stati finaliQ: insieme di altri stati

E ⊆ V × V : insieme di transizioniEtichette: l ((u, v)) =(σ1, τ1,m1), . . . , (σku,v , τku,v ,mku,v )

σi ∈ Σ: simbolo letto (i 6= j ⇒ σi 6= σj)τi ∈ Σ: simbolo scrittomi ∈ {R, L, S}: movimento della testina

Complemento bit a bit

() P.Crescenzi, UniFi 6 / 150

Page 7: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Rappresentazione tabellare di una MdT

5 colonne e 1 riga per ogni etichetta

Prima colonna: stato attualeSeconda colonna: simbolo lettoTerza colonna: nuovo statoQuarta colonna: simbolo da scrivereQuinta colonna: movimento testina

Esempio: MdT per il complemento bit a bit

stato simbolo stato simbolo movimento

q0 0 q0 1 R

q0 1 q0 0 R

q0 � q1 � L

q1 0 q1 0 L

q1 1 q1 1 L

q1 � q2 � R

() P.Crescenzi, UniFi 7 / 150

Page 8: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Calcolo con una macchina di Turing

Funzionamento della MdT

La macchina di Turing inizia il calcolo nello stato iniziale con la testinaposta sul primo carattere (quello piu a sinistra) dell’inputAd ogni passo sulla base dello stato e del carattere letto dalla testina lamacchina scrive un nuovo carattere, si sposta di una posizione (orimane ferma) e raggiunge un nuovo stato (eventualmente lo stesso)La macchina termina quando raggiunge uno stato finale oppure quandonon e definita la funzione di transizione

La posizione della testina quando la macchina raggiunge uno statofinale (spesso noi assumeremo che la testina si trova sul primocarattere del nastro

() P.Crescenzi, UniFi 8 / 150

Page 9: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Configurazioni minimali

La configurazione di una MdT specifica lo stato attuale, il contenutodel nastro e la posizione della testina

La rappresentazione : xqy e la configurazione in cui lo stato e q, ilnastro contiene la stringa xy e la testina si trova sul primo simbolo di y

Configurazione minimale:

Tutti i simboli a sinistra di x sono �Tutti i simboli a destra di y sono �Primo simbolo di x diverso da � (se |x | ≥ 1)Ultimo simbolo di y diverso da � (se |y | ≥ 1)

Configurazione iniziale: q0x

Configurazione finale o di accettazione: xqy con q ∈ F

Output: prefisso piu lungo di y senza �Configurazione di rigetto: se non esiste transizione da q leggendoprimo simbolo di y o leggendo � (se y = λ)

() P.Crescenzi, UniFi 9 / 150

Page 10: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Esempio: MdT per il complemento bit a bit

Partendo dalla configurazione iniziale q00101

1q0101

10q001

101q01

1010q0

101q10

10q110

1q1010q11010q1�1010q21010

q21010 finale con output 1010

Complemento bit a bit

() P.Crescenzi, UniFi 10 / 150

Page 11: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Produzioni tra configurazioni

C1 produce C2 se MdT puo passare da C1 a C2 con una singolatransizione (o un singolo passo di calcolo)

Una computazione di una MdT e una sequenza eventualmente infinitadi configurazioni C1,C2,C3,C4 . . . tale che la MdT per i = 1, 2, 3, . . .passa da Ci a Ci+1 con una singola transizione

La MdT termina o quando raggiunge una configurazione in cui lostato e finale oppure quando la funzione di transizione non e definita

() P.Crescenzi, UniFi 11 / 150

Page 12: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Esempio: MdT per il complemento bit a bit

Ci riferiamo alla MdT che complementa una stringa bit a bit

Esempio di produzione101q01 produce 1010q0

x = 101, y = 1 e etichetta transizione da q0 a q0 contiene (1, 0, R)

Esempio di non produzione1q0101 non produce 101q01

x = 1, y = 101 e etichetta transizione da q0 a q0 contiene le due triple(0, 1, R) e (1, 0, R)Proviamo ad applicare la prima tripla (0, 1, R): non soddisfatta lacondizione che la testina legga il carattere 0Proviamo ad applicare la seconda tripla (1, 0, R): non soddisfattecondizioni che il nastro a sinistra della testina sia 101 e che il nastro adestra della testina sia 1

() P.Crescenzi, UniFi 12 / 150

Page 13: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Complemento a due di un numero binario

Complemento a due di numero x rappresentato con n bit di cui ilprimo e segno: 2n − x

Esempio: x = 13, n = 5

Rappresentazione di x : 01101Complemento a due di x : 32− 13 = 19Rappresentazione di complemento a due di x : 10011

Metodo comunemente usato per rappresentare numeri con segno neicalcolatori

Vantaggi

Addizione e sottrazione implementate senza distinguere rispetto alsegnoLo zero ha un’unica rappresentazione (rappresentati numeri da −2n−1 a2n−1 − 1)

() P.Crescenzi, UniFi 13 / 150

Page 14: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Algoritmo per il Complemento a due di un numero

Sia x =∑n−1

i=0 2ixi

Complemento a due y di x : 2n −∑n−1i=0 2ixi

2n =∑n−1

i=0 2i + 1 =∑n−1

i=0 2i · 1 + 1 =∑n−1

i=0 2i (xi + xi ) + 1

y =∑n−1

i=0 2i (xi + xi ) + 1−∑n−1i=0 2ixi =

∑n−1i=0 2ixi + 1

Algoritmo

Complementare tutti i bit di xSommare 1

Esempio: x = 13 e n = 5

Rappresentazione binaria di x : 01101Complemento bit a bit: 10010Somma di 1: 10011

Algoritmo equivalente (esercizio)

Complementare tutti i bit a sinistra di 1 piu a destra

() P.Crescenzi, UniFi 14 / 150

Page 15: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

MdT per il Complemento a due di un numero

1 Raggiunge primo � a destra2 Trova e supera primo 1 a

sinistra

Se non esiste, terminaposizionando testina susimbolo piu a sinistra

3 Si sposta verso sinistra,complementando ogni bitincontrato, fino a raggiungere �

4 Si sposta a destra.

Complessita temporale: O(n) dove n e lunghezza input

n passi per 1Al piu n passi per 2Al piu n passi per 3

() P.Crescenzi, UniFi 15 / 150

Page 16: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Ordinamento di stringhe binarie

Data stringa binaria x , produrre stringa ordinata

Esempio: se x = 010101101, allora l’output e 000011111

Algoritmo

Cercare ripetutamente coppie di 0 e 1 non in ordine e invertirleEsempio: input 0101011

Prima coppia: 010101101⇒ 001101101Seconda coppia: 001101101⇒ 000111101Terza coppia: 000111101⇒ 000011111

Complessita temporale: O(n2) dove n e lunghezza input

Al piu 2n passi per ciascuna coppiaAl piu n/2 coppie

() P.Crescenzi, UniFi 16 / 150

Page 17: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

MdT per l’ordinamento

1 Cerca primo 1 a destra

Se non esiste, termina posizionando testina su primo simbolo

2 Cerca 0 che segue

Se non esiste, termina posizionando testina su primo simbolo

3 Complementa 0 e cerca 1 piu a sinistra

4 Complementa 1 e ricomincia

() P.Crescenzi, UniFi 17 / 150

Page 18: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Un linguaggio non regolare L = {0n1n}

Consideriamo l’insieme L = {0n1n : n ≥ 0}Esempio: 00001111 ∈ L mentre 0001111 6∈ LEsempio tipico di linguaggio non regolare

Problema: data stringa binaria x , x ∈ L?

AlgoritmoControllare ripetutamente se i due simboli alle estremita sono opposti

In tal caso cancellarli

Esempio: input 0001011

Primo controllo: 0001011⇒ 00101Seconda coppia: 00101⇒ 010Terzo controllo: 010⇒ x 6∈ L

Complessita temporale: O(n2) dove n e lunghezza input

Al piu 2n passi per ciascun controlloAl piu n/2 controlli

() P.Crescenzi, UniFi 18 / 150

Page 19: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Mdt per L = {0n1n}

1 Se simbolo piu a sinistra e 0, locancella e si sposta su simbolopiu a destra

Se simbolo piu a sinistra nonesiste, raggiunge lo statofinale (la stringa appartiene allinguaggio)

2 Se simbolo piu a destra e 1, locancella e si sposta su simbolopiu a sinistra

Nota beneSe le condizioni ai passi 1 e 2 precedenti non sono verificate allora none definita la transizione e la macchina si interrompe in uno stato nonfinale (e la stringa non appartiene al linguaggio)Input viene cancellato: Facile modificare MdT in modo che input siapreservato (esercizio)

() P.Crescenzi, UniFi 19 / 150

Page 20: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Macchina di Turing multi-nastro

Simile a MdT: usa k nastri con k ≥ 1

Ciascun nastro con propria testina

Istruzione specifica (oltre nuovo stato)

k simboli lettik simboli da scriverek movimenti delle k testine

Etichetta di una transizione

((σ1, . . . , σk), (τ1, . . . , τk), (m1, . . . ,mk))

Configurazione iniziale: input su primo nastro, rimanenti nastri vuoti

() P.Crescenzi, UniFi 20 / 150

Page 21: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Esempio: MdT multi-nastro per 0n1n

1 Scorre primo nastro verso destra fino a primo 1: per ogni 0, scrive un1 sul secondo nastro

2 Scorre primo nastro verso destra e secondo nastro verso sinistra: sesimboli letti non uguali, termina in stato non finale

3 Se legge � su entrambi i nastri, termina in stato finale

stato simboli stato simboli movimenti

q0 (0,�) q0 (�, 1) (R, R)q0 (1,�) q1 (1,�) (S, L)q1 (1, 1) q1 (�,�) (R, L)q1 (�,�) q2 (�,�) (S, S)

Numero di passi eseguiti: legge una sola volta ciascun simbolo

tT (n) ∈ O(n)

() P.Crescenzi, UniFi 21 / 150

Page 22: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

MdT e MdT multi-nastro

Risultato

Sono modelli equivalenti

In un verso: ovvioNell’altro verso: l’idea e rappresentare i nastri della macchina multi nastrosu porzioni del singolo nastro disponibile; le porzioni sono separate fra loroda un nuovo simbolo #. Pertanto ad ogni istante l’unico nastro ha la formacontenuto nastro 1 #contenuto nastro 2 #....

Concatenare contenuto dei k nastri, separati da #

Evidenziare simboli attualmente lettiRacchiudere tutto tra due estremita

Per ogni istruzione di MdT multi-nastro T , MdT T ′

Scorre i k nastri e “raccoglie” informazioni sui k simboli lettiApplica transizione, scorrendo i k nastri e applicando su ciascunoscrittura e spostamento

() P.Crescenzi, UniFi 22 / 150

Page 23: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Costo della simulazione

tT (n): numero massimo di passi eseguiti con input di lunghezza nOgni nastro usa al piu tT (n) celle

Spazio non puo essere superiore a tempo

Il singolo nastro usa al piu O(tT (n)) celle

Costante dipende da k

Per ogni passo di T , T ′

Esegue due scansioni per raccogliere informazioniPer ogni nastro, esegue due scansioni per l’eventuale scorrimento adestraEsegue numero di passi O(tT (n))

Quindi, tT ′(n) ∈ O(t2T (n))

Osservazione

sT (i , n): numero di celle usate sull’i-esimo nastro

Numero di celle usate sul singolo nastro:∑k

i=1 sT (i , n) + k + 1

() P.Crescenzi, UniFi 23 / 150

Page 24: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Definizione di sotto-macchina

Informalmente, stato s di T associato a MdT Ts tale che

“Entrando” in s, controllo passa a Ts

Ts viene eseguitaAl termine di Ts , controllo torna a T che esegue transizione da sleggendo simbolo lasciato da Ts

Formalmente, stato s di T associato a MdT Ts tale che, nellaconfigurazione uqv che produce w sx ,

T passa in wqs0 x (qs

0 stato iniziale di Ts)Esecuzione procede con Ts fino a yqs

f z (qsf stato finale di Ts)

T prosegue da configurazione y sz

() P.Crescenzi, UniFi 24 / 150

Page 25: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Esempio: moltiplicazione di numeri binari

Basata sul fatto che x × y = 2× x × y2

Raddoppia x tante volte quante possiamo dividere y per 2Se y ′ = y − 2blog yc > 0 aggiunge x × y ′, con stesso metodo

Piu precisamente (cinque nastri)1 Copia y su nastro 2 e inizializza moltiplicazione a 0 su nastro 32 Cancella 0 a sinistra su nastro 23 Se nastro 2 vuoto, copia nastro 3 su nastro 1 e termina.4 Copia nastro 1 su nastro 4 e nastro 2 su nastro 55 Raddoppia nastro 4 tante volte quanti sono simboli di nastro 5 meno 16 Somma nastro 4 a nastro 3 in nastro 3.7 Cancella 1 a sinistra di nastro 2 e torna al passo 2.

[Jflap]

() P.Crescenzi, UniFi 25 / 150

Page 26: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Prova del nove

Serve a verificare correttezza moltiplicazione (esempio:1902× 1964 = 3735528)

Procedura1 A: somma cifre primo fattore (esempio: 1 + 9 + 0 + 2 = 12 ≡ 3

(mod 9))2 B: somma cifre secondo fattore (esempio: 1 + 9 + 6 + 4 = 20 ≡ 2

(mod 9))3 C : somma cifre A× B (esempio: 3× 2 = 6 ≡ 6 (mod 9)).4 D: somma cifre risultato presunto (esempio:

3 + 7 + 3 + 5 + 5 + 2 + 8 = 33 ≡ 6 (mod 9)).5 Se C = D, la prova ha esito positivo, altrimenti ha esito negativo

(esempio: esito positivo)

Se esito negativo, allora moltiplicazione errata

Se esito positivo, risultato potrebbe essere errato

() P.Crescenzi, UniFi 26 / 150

Page 27: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

MdT per prova del nove

Possiamo ottenere la MdT che effettua la prova del nove componendo lediverse macchine che realizzano i passi dell’algoritmo precedente.

Input: axb=c

Funzionamento (usa Tdigitadder)1 Calcola somma s3 cifre di c2 Calcola somma s2 cifre di b3 Calcola somma s1 cifre di a4 Calcola prodotto modulo 9 di s1 per s2

5 Verifica se il risultato e uguale a s3

[Jflap]

() P.Crescenzi, UniFi 27 / 150

Page 28: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

La macchina di Turing Universale

() P.Crescenzi, UniFi 28 / 150

Page 29: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Codifica binaria di un alfabeto

Alfabeto utilizzato da odierni calcolatori

Codice ASCII a 8 bitCodice Unicode a 16 bit

Alfabeto binario non restrittivo rispetto a potere computazionale diuna MdT

Garantire successiva decodifica

Codifica di A, B e C: 0, 1 e 00, rispettivamenteSequenza 000 codifica di

AAA

AC

CA

Il codice di A e un prefisso del codice di C

() P.Crescenzi, UniFi 29 / 150

Page 30: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Codifica a lunghezza costante

Σ = {σ1, . . . , σn} con n > 2

k = dlog2 neCodifica cΣ(σi ) di σi : rappresentazione binaria di i − 1 con k bitCodifica cΣ(x) di stringa x = x1 · · · xm: cΣ(x1) · · · cΣ(xm)

Esempio

Alfabeto Σ = {a, b, c, d, e}k = dlog2 5e = 3cΣ(a) = 000, cΣ(b) = 001, cΣ(c) = 010, cΣ(d) = 011 e cΣ(e) = 100

Codifica di cade: 010000011100

Codifica di debba: 011100001001000

() P.Crescenzi, UniFi 30 / 150

Page 31: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Codifica di Huffman

Unisci ripetutamente simboli o gruppi di simboli con frequenza minima

1

0.4

a:0.2 b:0.2

0.6

0.4

c:0.2 d:0.2

e:0.2

0 1

0 1 0 1

0 1

Alfabeto Σ = {a, b, c, d, e}con simboli di ugualefrequenza

cH(a) = 00, cH(b) = 01,cH(c) = 100, cH(d) = 101 ecH(e) = 11

Codifica di cade:1000010111

Codifica di debba:10111010100

() P.Crescenzi, UniFi 31 / 150

Page 32: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Macchine di Turing con alfabeto binario

T : MdT con alfabeto di lavoro ΓT = {�} ∪ Σ con |Σ| > 2

T ′: MdT con alfabeto di lavoro ΓT ′ = {�, 0, 1} tale che

∀x , T (x) non termina ⇒ T ′(cΣ(x)) non termina∀x , T (x) termina in configurazione di rigetto ⇒ T ′(cΣ(x)) termina inconfigurazione di rigetto∀x , T (x) termina in configurazione finale e produce y ∈ Σ∗ ⇒T ′(cΣ(x)) termina in configurazione finale e produce cΣ(y)

T ′ come T : ogni singola transizione di T simulata con ≤ 3k − 2transizioni (dove k = dlog2 |Σ|e)

Leggere codifica di simbolo di ΣSostituire codifica con quella di altro simboloPosizionare in modo corretto la testina

() P.Crescenzi, UniFi 32 / 150

Page 33: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Esempio

MdT T con Γ = {�, a, b, c, d, e}T include

Transizione da p a s con tripla (b, c, S)Transizione da p a q con tripla (a, e, R)Transizione da p a r con tripla (d, a, L)

Grafo di T ′ include

() P.Crescenzi, UniFi 33 / 150

Page 34: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Codifica di una MdT

MdT universale simula qualunque altra MdT (con alfabeto binario) apartire da sua descrizione

Proposta la prima volta da Turing stessoRuolo importante nello sviluppo di calcolatori alla von NeumanRichiede codifica di MdT

Codifica simboli: 0 ⇒ Z, 1 ⇒ U e � ⇒ B

Codifica movimenti: L ⇒ L, S ⇒ S e R ⇒ R

Codifica stati: (i + 1)-esimo stato ⇒ rappresentazione binaria di i

Primo stato inizialeSecondo stato unico finale

Transizione codificata giustapponendo codifiche di suoi elementi

MdT codificata giustapponendo codifiche di sue transizioni

() P.Crescenzi, UniFi 34 / 150

Page 35: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Esempio

stato simbolo stato simbolo movimento codifica

q0 0 q0 1 R 0Z0UR

q0 1 q0 0 R 0U0ZR

q0 � q2 � L 0B10BL

q2 0 q2 0 L 10Z10ZL

q2 1 q2 1 L 10U10UL

q2 � q1 � R 10B1BR

Codifica MdT: 0Z0UR0U0ZR0B10BL10Z10ZL10U10UL10B1BR

stato simbolo stato simbolo movimento codifica

q0 � q2 � L 0B10BL

q0 1 q0 0 R 0U0ZR

q0 0 q0 1 R 0Z0UR

q2 � q1 � R 10B1BR

q2 1 q2 1 L 10U10UL

q2 0 q2 0 L 10Z10ZL

Codifica MdT: 0B10BL0U0ZR0Z0UR10B1BR10U10UL10Z10ZL

() P.Crescenzi, UniFi 35 / 150

Page 36: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

La MdT universale

Alfabeto: �, 0, 1, B, U, Z, L, R, S e ;

Tre nastri: l’input codificato sul primo nastro rappresenta la codificadi una MdT T e dall’input x ; la macchina simula T con input x

Funzionamento1 Copia su nastro 3 input x codificato con U e Z2 Inizializza nastro 2 con codifica stato iniziale3 In base a stato su nastro 2 e simbolo letto su nastro 3, cerca

transizione da applicare (se non esiste, rigetta)4 Applica transizione modificando nastro 3 e aggiornando nastro 2 con

nuovo stato5 Se nuovo stato e finale, termina in stato finale; altrimenti, torna a

Passo 3

() P.Crescenzi, UniFi 36 / 150

Page 37: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Terzo passo

Per realizzare il passo 3 dobbiamo cercare Operazione di “patternmatching”

1 Scorre nastri 1 e 2 fintanto che trova simboli ugualiSe non incontra simbolo diverso da 0 e 1 su entrambi i nastri

Posiziona testina di nastro 2 su primo simbolo e posiziona testinanastro 1 su primo simbolo transizione successiva e ricomincia

2 Posiziona testina nastro 2 su primo simbolo e verifica se simbolo sunastro 1 uguale a simbolo su nastro 3

Se si, sposta testina nastro 1 a destra e terminaAltrimenti, posiziona testina nastro 1 su primo simbolo transizionesuccessiva e torna a Passo 1

() P.Crescenzi, UniFi 37 / 150

Page 38: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Il grafo della MdT universale

Numero passi eseguiti da U proporzionale a quello di T

Per ogni stringa x di lunghezza n

Primo, quarto, quinto passo: numero passi lineareSecondo passo: numero passi costanteTerzo passo: numero passi quadratico (per “riavvolgere” nastro 2)

() P.Crescenzi, UniFi 38 / 150

Page 39: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Limiti delle macchine di Turing

() IT-03 39 / 150

Page 40: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Configurazioni

Specificano stato attuale, contenuto del nastro e posizione testinaxqy : configurazione in cui

Stato: qNastro: xy con � a sinistra e a destraTestina su primo simbolo di y

Configurazione iniziale: q0 xConfigurazione finale o di accettazione: q ∈ F

Output: prefisso piu lungo di y senza �Configurazione di rigetto: non esiste transizione da q leggendo primosimbolo di y (leggendo �, se y = λ)

Produzioni tra configurazioni

C1 produce C2 se MdT puo passare da C1 a C2 con una singolatransizione

() IT-03 40 / 150

Page 41: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Funzioni calcolabili e linguaggi decidibili

Funzione f : Σ∗ → Γ∗ calcolabile se ∃ MdT T tale che∀x ∈ Σ∗, ∃ sequenza C1, . . . ,Cn di configurazioni

C1: q0x (q0 stato iniziale)∀i , Ci produce Ci+1

Cn: configurazione di accettazione

Linguaggio L (sottoinsieme di Σ∗)χL : Σ∗ → {0, 1}: funzione caratteristica di L

χL(x) =

{1 se x ∈ L,0 altrimenti

L decidibile se e solo se funzione caratteristica calcolabile

Esempio: L = {1n : n = 2k}

() IT-03 41 / 150

Page 42: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Funzioni calcolabili e linguaggi decidibili

Che relazione esiste fra MdT e i linguaggi formali? Ricordiamo che

Linguaggio L su un alfabeto Σ e un sottoinsieme di Σ∗

χL : Σ∗ → {0, 1}: funzione caratteristica di L

χL(x) =

{1 se x ∈ L,0 altrimenti

L decidibile se e solo se la funzione caratteristica e calcolabile con unaMdT

Esempio: L = {1n : n = 2k}

Vedremo che e possibile caratterizzare la relazione fra MdT elinguaggi secondo la gerarchia di Chomsky,

() IT-03 42 / 150

Page 43: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Semplici proprieta

Se L e decidibile, allora Lc e decidibile

L decidibile sse ∃ mdT T con 1 stato finale che termina ∀x e cheaccetta sse x ∈ L

Se

Solo se

() IT-03 43 / 150

Page 44: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Semplici proprieta

Se L e decidibile, allora Lc e decidibile

L decidibile sse ∃ MdT T con 1 stato finale che termina ∀x e cheaccetta sse x ∈ L

Se

Solo se

() IT-03 44 / 150

Page 45: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Insiemi equi-cardinali

Insiemi A e B hanno stessa cardinalita se ∃ biezione f : A→ BN e N+ sono equi-cardinali

f : N+ → N tale che ∀n f (n) = n − 1

1 2 3 4 5 6 7 8 9 100 1 2 3 4 5 6 7 8 9

N e insieme P di numeri pari sono equi-cardinali

f : P → N tale che ∀n f (n) = n2

0 2 4 6 8 10 12 14 16 180 1 2 3 4 5 6 7 8 9

() IT-03 45 / 150

Page 46: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Insiemi numerabili

Insiemi equi-cardinali a insieme N

N+ e P sono numerabiliInsieme Z dei numeri interi

Simile a simulazione con nastro semi-infinitof : Z → N tale che ∀n

f (n) =

0 se n = 0,2n − 1 se n > 0,−2n altrimenti

0 1 -1 2 -2 3 -3 4 -4 50 1 2 3 4 5 6 7 8 9

() IT-03 46 / 150

Page 47: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Numeri razionali positivi

() IT-03 47 / 150

Page 48: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Numeri reali

Risultato

L’insieme dei numeri reali non e numerabile

Per assurdo

∀x d(x , i): i-esima cifra decimale di x

x = 0.8362719 . . .: d(x , 1) = 8, d(x , 2) = 3, d(x , 3) = 6 e cosı via

xdiag: ∀i , d(xdiag, i) = (d(f −1(i), i) + 1) mod 10

xdiag non puo apparire nell’enumerazione

() IT-03 48 / 150

Page 49: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Esistono linguaggi non decidibili

NotazioniΣ: alfabeto binarioL: insieme dei linguaggi su ΣT : insieme MdT con alfabeto Σ ∪ {�}D: insieme linguaggi decidibili in L

Risultato

T e Dsononumerabili

T e numerabileA ogni macchina di Turing corrisponde stringa su {0, 1, B, U, Z, L, R, S}Stringhe su alfabeto fissato numerabili: ordinamento lessicograficoSottoinsieme di insieme numerabile e numerabile

D e numerabileD non e piu che numerabile: per ogni L ∈ D esiste almeno una MdTche decide LD e almeno numerabile: Insieme di linguaggi Li contenenti solorappresentazione binaria di i

() IT-03 49 / 150

Page 50: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Risultato

L non e numerabile

Per assurdo: ∃f : L → N biettiva (poniamo Li = f −1(i))Numerazione σ0, σ1, σ2, . . . di stringhe su ΣLdiag: per ogni numero naturale i , σi ∈ Ldiag se e solo se σi 6∈ Li

0 1 00 01 10 11 000 · · ·L0 0 1 0 0 1 0 1 · · ·L1 1 1 1 0 0 0 0 · · ·L2 0 1 1 0 1 0 0 · · ·L3 0 0 0 0 0 0 0 · · ·L4 1 1 1 1 1 1 1 · · ·L5 1 1 1 1 0 0 1 · · ·

Ldiag = {0, 01, 11, . . .}Per ogni i , Ldiag differisce da Li per almeno una stringa

Risultato

Esistono linguaggi non decidibili

() IT-03 50 / 150

Page 51: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Problema della terminazione

Un importante esempio di linguaggio non decidibile

NotazioniC: insieme delle codifiche binarie di codifiche di MdT in TT (x): computazione di T con input x

Se T (x) termina in una configurazione finale: T (x) accettaSe T (x) termina in una configurazione di rigetto: T (x) rigetta

〈x1, . . . , xk〉: stringa ottenuta raddoppiando bit, concatenando eseparando con 01

〈0110, 1100〉: 001111000111110000

Problema della terminazione

Lstop = {〈cT , x〉 : cT ∈ C ∧ x ∈ Σ∗ ∧ T (x) termina}

Due tipi di stringhe in Lstop

〈cT , x〉 per cui T (x) accetta〈cT , x〉 per cui T (x) rigetta

Lstop non e decidibile

() IT-03 51 / 150

Page 52: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Lstop non e decidibile

Risultato

Lstop non e decidibile

Dimostrazione per assurdoEsiste Tstop tale che

Tstop(y)

{accetta se y ∈ Lstop

rigetta altrimenti

Definiamo Tdiag ∈ T in modo che

Tdiag(z)

{termina se z = cT e Tstop(〈cT , cT 〉) rigettanon termina altrimenti

Cosa fa Tdiag(cTdiag)?

Tdiag(cTdiag ) termina se e solo se Tstop(cTdiag , cTdiag ) rigetta se e solose 〈cTdiag , cTdiag 〉 6∈ Lstop se e solo se Tdiag(cTdiag ) non termina

Tstop non puo esistereLstop non e decidibile

() IT-03 52 / 150

Page 53: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Altri problemi indecidibili

La tesi di Church-Turing implica che la dimostrazione dellaindecidibilita del problema della terminazione non vale solo per lemacchine di Turing ma che il problema della terminazione di unaprogramma e indecidibile per ogni linguaggio di programmazione.Problemi indecidibili si incontrano in vari campi dell’informatica:

Decidere se un programma corretto, cio se calcola la funzione desiderataDati un programma, un input del programma ed una sua istruzione,decidere se l’istruzione sara eseguitaDecidere se una grammatica di tipo 2 e ambiguaDecidere se due grammatiche di tipo 2 sono equivalentiDecidere se un programma si ferma con input 0

() IT-03 53 / 150

Page 54: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Decidere se un programma si ferma con input 0

Sia Lstop−0 = {cT : T (0) termina}. Proviamo che Lstop−0 non e decidibile

“Riduciamo” Lstop a Lstop−0

Supponiamo di avere Tstop−0 che decide Lstop−0Costruiamo macchina Tstop che usa Tstop−0 per decidere Lstop

〈cT , x〉 ∈ Lstop se e solo se T (x) terminacT ∈ Lstop−0 se e solo se T (0) terminaEseguire Tstop−0 con input cT non serveEseguiamo Tstop−0 con input codifica di modifica T ′ di T chegarantisce che T ′(0) termina se solo se T (x) terminaT ′: con input z , cancella z , scrive x ed esegue T (x)

T (x) termina se e solo T ′(0) termina

Tstop

1 Con input 〈cT , x〉 calcola cT ′

2 Esegue Tstop−0 con input cT ′

3 Se Tstop−0 accetta, accetta; se Tstop−0 rigetta, rigetta

Tstop decide Lstop: assurdo

Tstop−0 non puo esistere

() IT-03 54 / 150

Page 55: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Lacc = {〈cT , x〉 : T (x) accetta}

Lacc non e decidibile

“Riduciamo” Lstop a Lacc

Supponiamo di avere Tacc che decide Lacc

Costruiamo macchina Tstop che usa Tacc per decidere Lstop

〈cT , x〉 ∈ Lstop se e solo se T (x) termina〈cT , x〉 ∈ Lacc se e solo se T (x) accettaEseguire Tacc con input 〈cT , x〉 non serve

T (x) potrebbe terminare senza accettare

Eseguiamo Tacc con input codifica di modifica T ′ di T che garantisceche T ′(x) accetta se solo se T (x) terminaT ′: con input z , esegue T (z) e se T (z) termina, allora accetta

T (x) termina se e solo T ′(x) accetta

Tstop

1 Con input 〈cT , x〉 calcola cT ′

2 Esegue Tacc con input 〈cT ′ , x〉3 Se Tacc accetta, accetta; se Tacc rigetta, rigetta

Tstop decide Lstop: assurdo

Tacc non puo esistere

() IT-03 55 / 150

Page 56: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Lempty = {cT : ∀x [T (x) non accetta]}

Lempty non e decidibile

“Riduciamo” Lacc a Lempty

Supponiamo di avere Tempty che decide Lempty

Costruiamo macchina Tacc che usa Tempty per decidere Lacc

〈cT , x〉 ∈ Lstop se e solo se T (x) accettacT ∈ Lempty se e solo, per ogni y , per cui T (y) rigettaEseguire Tempty con input cT non serve

Se rigetta sappiamo solo che esiste y per cui T (y) accetta

Eseguiamo Tempty con input codifica di modifica T ′ di T che garantisceche esiste z per cui T ′(z) accetta se solo se T (x) accettaT ′: con input z , se z 6= x rigetta, altrimenti esegue T con input z = x

T (x) accetta se e solo esiste z per cui T ′(z) accetta

Tacc

1 Con input 〈cT , x〉 calcola cT ′

2 Esegue Tempty con input cT ′

3 Se Tempty accetta, rigetta; se Tempty rigetta, accetta

Tacc decide Lacc: assurdo

Tempty non puo esistere

() IT-03 56 / 150

Page 57: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Osservazioni

Nelle riduzioni precedenti

L2: linguaggio di cui si vuole dimostrare la non decidibilita

L1: linguaggio di cui si conosce la non decidibilita

Data una stringa x di cui decidere l’appartenenza a L1

Abbiamo costruito una stringa x ′ tale che x ∈ L1 se e solo se x ′ ∈ L2

Da Lstop a Lstop−0: data 〈cT , x〉 abbiamo costruito cT ′ (T ′ con inputz , cancella z , scrive x ed esegue T (x))Da Lstop a Lacc: data 〈cT , x〉 abbiamo costruito 〈cT ′ , x〉 (T ′: con inputz , esegue T (z) e se T (z) termina, allora accetta)

Abbiamo costruito una stringa x ′ tale che x ∈ L1 se e solo se x ′ 6∈ L2

Da Lacc a Lempty: data 〈cT , x〉 abbiamo costruito cT ′ (T ′ con input z ,se z 6= x rigetta, altrimenti esegue T con input z = x)

In entrambi i casi, se L2 (e quindi Lc2) fosse decidibile, allora L1 sarebbe

decidibile

Assurdo

() IT-03 57 / 150

Page 58: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Riducibilita: definizione formale

L1 riducibile a L2 (L1 ≤ L2) se esiste riduzione f : {0, 1}∗ → {0, 1}∗,tale che, per ogni x , x ∈ L1 se e solo se f (x) ∈ L2

{0, 1}∗

L1

{0, 1}∗

L2

x ∈ L1 f (x) ∈ L2

y 6∈ L1 f (y) 6∈ L2

Dalle riduzioni “informali” segue che Lstop ≤ Lstop−0, Lstop ≤ Lacc eLacc ≤ Lc

empty

() IT-03 58 / 150

Page 59: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Riducibilita e decidibilita

Se L1 riducibile a L2 e L2 decidibile, allora L1 decidibile (e quindi, Lc1

decidibile)

Usiamo macchina che decide L2 per costruire macchina che decide L1

T1

Tf T2

qT10 x

qTf1 f (x)

qT20 f (x) q

T21 b

qT11 b

Se L1 riducibile a L2 e L1 non decidibile, allora L2 non decidibile

Se L1 riducibile a Lc2 e L1 non decidibile, allora L2 non decidibile

() IT-03 59 / 150

Page 60: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Esempio: Lreg = {cT : L(T ) e regolare}

Dimostriamo che Lstop−0 ≤ Lreg

A partire da cT dobbiamo costruire c ′T tale cheT (0) termina se solo se L(T ′) e un linguaggio regolare

{0, 1}∗: regolare{0n1n : n ≥ 0}: non regolare

Definiamo T ′ in modo che

Se T (0) termina allora L(T ′) = {0, 1}∗Se T (0) non termina allora L(T ′) = {0n1n : n ≥ 0}

T ′ con input y1 Se y ∈ {0n1n : n ≥ 0} accetta2 Altrimenti esegue T (0)3 Se T (0) termina, allora accetta

() IT-03 60 / 150

Page 61: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Auto-referenzialita

Nella dimostrazione, abbiamo costruito una macchina che usa la suastessa descrizione

E possibile?

Puo una macchina avere accesso alla sua propria codifica?Per scrivere la codifica di una macchina T dobbiamo definire unamacchina “piu potente” di T ?

Si: esistono macchine di Turing che possono stampare la propriacodifica

() IT-03 61 / 150

Page 62: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Costruire programmi che si auto-riproducono

Va bene Scrivi questa frase?

No: uso di auto-referenzialita

Applicare un programma P a una stringa (programma) Q

Scrivi due copie della frase che segue i due punti e

racchiusa tra virgolette, racchiudendo la seconda copia

tra virgolette:‘‘Scrivi due copie della frase che segue

i due punti e racchiusa tra virgolette, racchiudendo la

seconda copia tra virgolette:’’

P riproduce il suo argomento Q seguita da una versione di Q travirgolette

Q e (produce) il testo di P

() IT-03 62 / 150

Page 63: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Un programma Java che scrive se stesso

class P {

public static void main(String [] a) {

char quote = 34;

System.out.println(Q+quote+Q+quote);

}

static String Q = "frase";

}

Risultato: stampa di frase"frase"

Sufficiente assegnare a Q testo programma, fino al punto in cuiapparirebbe la frase

() IT-03 63 / 150

Page 64: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Un programma Java che scrive se stesso

class P {

public static void main(String [] a) {

char quote = 34;

System.out.println(Q+quote+Q+quote);

}

static String Q = "class P { ... String Q = ";

}

Risultato: stampa del codice stesso a eccezione dell’ultimo punto evirgola e dell’ultima parentesi graffa

Sufficiente modificare le due occorrenze dell’istruzione di stampa con

System.out.println(Q+quote+Q+quote+’;’+’}’);

Risultato: stampa esatta del codice stesso

() IT-03 64 / 150

Page 65: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

La tesi di Church-Turing

() IT-04 65 / 150

Page 66: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Altri modelli di calcolo oltre a MdT?

Le macchine di Turing rappresentano un modello di calcolo moltosemplice che permette

definire formalmente il concetto di algoritmo, di funzione calcolabile edi problema decidibilemostrare lesistenza di funzioni non calcolabili e problemi non decidibili

Che cosa ha portato Turing ad affrontare questi problemi?

Esistono altri modelli di calcolo piu potenti delle MdT (in grado dicalcolare funzioni che le MdT non sono in grado di calcolare)?

() IT-04 66 / 150

Page 67: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Un po’ di storia, Hilbert

1900: Al Secondo Congresso Internazionale di Matematica Hilbert formula23 problemi matematici per il XX secolo. Il secondo problema riguarda laconsistenza (cioe la non contraddittorieta ) della teoria logica dellaritmeticadei numeri naturali basata sugli assiomi introdotti da Peano nel 1889.1928: Hilbert riformula i problemi aperti riguardanti laritmetica:

LAritmetica e completa? Cioe e possibile dimostrare ogni asserzionevera?LAritmetica e consistente? Cioe siamo certi che non sia possibiledimostrare unasserzione e anche la sua negazione? Se cio fosse veroogni asserzione sarebbe dimostrabile, quindi per dimostrare laconsistenza e sufficiente dimostrare che esistono asserzionidellaritmetica non dimostrabili.LAritmetica e decidibile? Cioe esiste un algoritmo che consente didecidere se unasserzione e un teorema?

() IT-04 67 / 150

Page 68: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Un po’ di storia, il ruolo dei paradossi

I seguenti paradossi mostrano come possiamo fare affermazioni che nonsono ne ne false

Epimenide di Creta (VI sec. a. C.): Tutti i cretesi sono bugiardi.(questa affermazione non puo essere vera ma puo essere falsa; non eun vero paradosso)Eubulide di Mileto (IV sec. a. C.): Questa frase e falsa oppure io stomentendoBuridano (XIV sec.): Socrate dice: “Platone dice il falso” Platonedice: “Socrate dice il vero” (le due affermazioni congiunte sono unparadosso)Russell (XX sec.): Linsieme di tutti gli insiemi che non appartengono ase stessi, appartiene o no a se stesso?Russell: In un villaggio il barbiere rade tutti e soli coloro che non siradono da soli; chi e che rade il barbiere?Gonseth (XX sec.): In una biblioteca puo esistere un catalogo di tutti icataloghi bibliografici che non contengono se stessi?

() IT-04 68 / 150

Page 69: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Un po’ di storia, Godel

1931: Godel dimostra che l’aritmetica non puo essere al tempo stessocompleta e consistente. Idea della prova:

Rappresentare la logica (assiomi, regole d’inferenza, dimostrazioni eteoremi) all’interno dell’aritmetica mediante un procedimento diaritmetizzazione (o godelizzazione, cioe codificazione dell’apparatodella logica mediante numeri interi).Ricorrere allo stesso tipo di assurdita che si presentano nei classiciparadossi sfruttando l’autoreferenzialita e cioe creando un’asserzione wche afferma: w non e dimostrabile. Se w fosse falsa sarebbedimostrabile e, quindi se il calcolo non contraddittorio, w non puoessere falsa e deve essere vera. Ma se w e vera non e dimostrabilecontraddicendo se stessa. Quindi w e un esempio di asserzione vera manon dimostrabile.Conseguenze: l’aritmetica non completa o non e consistente (ma laconsistenza non e dimostrabile allinterno della teoria stessa).

() IT-04 69 / 150

Page 70: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Un po’ di storia, Turing

1935: Turing dimostra l’indecidibilita dellaritmetica

Definisce il concetto di algoritmo introducendo le macchine di Turing.Mostra che il problema della terminazione di una macchina di Turing eformulabile come un’asserzione dell’aritmetica (ancora mediante unagodelizzazione).Mostra che il problema della terminazione non e risolubile con lemacchine di Turing e quindi e indecidibile. Tale risultato implica chel’aritmetica stessa non e decidibile.

() IT-04 70 / 150

Page 71: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Un po’ di storia, Church Markov ed altri

Contemporaneamente a Turing Church ha introdotto un concetto dicalcolabilita (λ-definibilit) basato su un sistema algoritmico (λ-calcolo).Tale sistema e stato dimostrato equivalente alle macchine di Turing,dallo stesso Turing.Cio ha permesso di formulare la Tesi di Church-Turing: Ogni funzioneche sia dimostrata calcolabile con un qualunque modello di calcoloformale e calcolabile secondo TuringAbbiamo anche visto che esiste una corrispondenza fra funzionicalcolabili con MdT e il riconoscimento di linguaggi.Successivamente sono stati proposti molti modelli di calcolo (daMarkov, Kleene Post, e altri) basati su approcci diversi. Pero

Tutti i modelli proposti sono equivalenti alle MdTSulla base di questi risultati oggi e convinzione comune che non esistaun modello di calcolo piu potente delle MdT e che la tesi diChurch-Turing sia vera

() IT-04 71 / 150

Page 72: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Algoritmi di Markov

Un algoritmo di Markov e definito da un insieme finito e ordinato diregole di riscrittura

a→ b con a, b ∈ Σ∗

a⇒ b con a, b ∈ Σ∗ (regola finale)

Una regola e applicabile alla prima occorrenza della sua parte sinistra

Se xay ∈ Σ∗ e x non contiene a, allora a→ b (a⇒ b) puo essereapplicata producendo xby

Esecuzione di un algoritmo di Markov con input x1 current = x2 Scandisce le regole nell’ordine specificato3 Se nessuna regola e applicabile a current, termina con output

current4 Applica a current la prima regola applicabile producendo y : se la

regola e terminale, termina con output y , altrimenti current = y etorna al passo 2

() IT-04 72 / 150

Page 73: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Linguaggi di programmazione

Ogni programma scritto in Java puo essere tradotto in linguaggiomacchina

Compito dei compilatori

Se dimostriamo che esistono funzioni non calcolabili da un linguaggiomacchina, allora abbiamo che esistono funzioni non calcolabili da unprogramma Java

Modello di calcolo almeno potente quanto un linguaggio macchinaDimostrazione che ogni algoritmo realizzato in tale modello puo esseresimulato da una macchina di TuringDimostrazione che macchina di Turing puo essere simulata da unalgoritmo realizzato in tale modello

() IT-04 73 / 150

Page 74: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Random Access Machine

Ha un numero potenzialmente infinito di registri e un contatore diprogramma

Ogni registro e individuato da un indirizzo interoOgni registro puo contenere un numero intero arbitrariamente grande

n denota un intero, (n) denota il contenuto del registro il cuiindirizzo e n e [n] denota il contenuto del registro il cui indirizzo econtenuto nel registro il cui indirizzo e n

Programma RAMSequenza di istruzioni (eventualmente etichettate)

(n):=o1 operatore o2 oppure [n]:=o1 operatore o2 dove operatore e{+,−, ∗, /} e o1 e o2 possono essere m, (m) o [m]

if o1 operatore o2 goto etichetta dove operatore e {=, <>,<=, <}e o1 e o2 possono essere m, (m) o [m]

end

() IT-04 74 / 150

Page 75: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Esecuzione di un programma RAM

Inizialmente i primi n registri contengono n valori interi, tutti altriregistri contengono 0 e il contatore di programma e uguale a 0

A ogni passo, l’istruzione indicata dal contatore di programma vieneeseguita

Se l’istruzione non e if, il contatore di programma aumenta di 1Altrimenti, se la condizione non e verificata, il contatore di programmaaumenta di 1Altrimenti, il contatore di programma viene posto uguale all’indicedell’istruzione corrispondente all’etichetta

Istruzione end termina esecuzione

Output contenuto nel registro 0

() IT-04 75 / 150

Page 76: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Esempio

Decidere se una sequenza di 10 numeri interi e palindroma

(11) := 9 + 0

loop: if (11) <= (10) goto yes

if [10] <> [11] goto no

(10) := (10) + 1

(11) := (11) - 1

if 0 = 0 goto loop

yes: (0) := 1 + 0

end

no: (0) := 0 + 0

end

() IT-04 76 / 150

Page 77: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

La tesi Church-Turing

Una funzione f : Nn → N e calcolabile se e solo se f e Post-calcolabile see solo se f e Markov-calcolabile se e solo se f e ricorsiva se e solo se f eRAM-calcolabile

E calcolabile tutto cio che puo essere calcolatoda una macchina di Turing.

() IT-04 77 / 150

Page 78: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Linguaggi e Macchine di Turing

() Lucidi di P.Crescenzi, Unifi 78 / 150

Page 79: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Funzioni calcolabili e linguaggi decidibili

Che relazione esiste fra MdT e i linguaggi formali? Ricordiamo che

Linguaggio L su un alfabeto Σ e un sottoinsieme di Σ∗

χL : Σ∗ → {0, 1}: funzione caratteristica di L

χL(x) =

{1 se x ∈ L,0 altrimenti

L decidibile se e solo se la funzione caratteristica e calcolabile con unaMdT

Esempio: L = {1n : n = 2k}

Vedremo che e possibile caratterizzare la relazione fra MdT elinguaggi secondo la gerarchia di Chomsky,

() Lucidi di P.Crescenzi, Unifi 79 / 150

Page 80: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Semplici proprieta

Se L e decidibile, allora Lc e decidibile

L decidibile sse ∃ mdT T con 1 stato finale che termina ∀x e cheaccetta sse x ∈ L

Se

Solo se

() Lucidi di P.Crescenzi, Unifi 80 / 150

Page 81: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Linguaggi semi-decidibili

Un linguaggio L e semidecidibile se esiste MdT T ∈ T che con input x , sex ∈ L, allora T (x) termina in configurazione finale, altrimenti T (x) nontermina

Lstop e semi-decidibileDeriva da esistenza di MdT universale U

1 Verifica che input sia 〈cT , x〉2 Esegue U con input cT e x : se termina, termina in configurazione finale

() Lucidi di P.Crescenzi, Unifi 81 / 150

Page 82: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Lcstop non e semi-decidibile

L e decidibile se e solo se L e Lc sono semi-decidibiliDimostrazione

Solo se

Se L e decidibile, allora L e chiaramente semi-decidibileSe L e decidibile, allora Lc e decidibile e, quindi, semi-decidibile

Se

Siano T e T c due macchine di Turing che semi-decidono,rispettivamente, L e Lc

Tdec(x) simula T (x) e T c(x) in parallelo su due nastriPer ogni x ∈ Σ∗, T (x) termina oppure T c(x) terminaSe termina T (x), Tdec(x) termina in stato finale altrimenti termina inconfigurazione di rigetto

C

orollario: Lcstop non e semi-decidibile

() Lucidi di P.Crescenzi, Unifi 82 / 150

Page 83: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Generatore di un linguaggio

Generatore di un linguaggio L: MdT T che, con input λ, stampauna dopo l’altra tutte le (potenzialmente infinite) stringhe contenutein L (in un qualunque ordine e eventualmente con ripetizione)

L e semi-decidibile sse L ammette generatore

Se: esegue generatore fino a trovare stringa in inputSolo se: esegue visita in ampiezza di tutte le infinite computazioni coninput xi

() Lucidi di P.Crescenzi, Unifi 83 / 150

Page 84: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Ricordiamo la definizione di grammatica

Grammatica: quadrupla G = (V ,T , S ,P)

V : alfabeto di simboli non terminaliT : alfabeto di simboli terminaliS ∈ V : simbolo inizialeP: insieme di produzioni

x → y con x , y ∈ (V ∪ T )∗ e x contenente almeno un simbolo in V

Produzione x → y applicabile a stringa z se z = uxv : risultatow = uyv

w direttamente generabile da z

Frase z generabile da G se esiste sequenza finita di x0, . . . , xn taleche

x0 = Sxi direttamente generabile da xi−1

xn = z

Linguaggio generato da G : insieme di stringhe generabili da G

() Lucidi di P.Crescenzi, Unifi 84 / 150

Page 85: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

La gerarchia di Chomski

Tipo di linguaggio Tipo di produzioni

Tipo 0 α→ β con α ∈ (V ∪ T )∗V (V ∪ T )∗

e β ∈ (V ∪ T )∗

Contestuale α→ β con α ∈ (V ∪ T )∗V (V ∪ T )∗,β ∈ (V ∪ T )∗ e |β| ≥ |α|

Libero da contesto A→ β con A ∈ Ve β ∈ (V ∪ T )(V ∪ T )∗

Regolare A→ aB e A→ acon A,B ∈ V e a ∈ T

Obiettivo: determinare i corrispondenti modelli di calcolo

() Lucidi di P.Crescenzi, Unifi 85 / 150

Page 86: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Grammatiche regolari, tipo 3

Le produzioni sono

A→ a con A ∈ V e a ∈ TA→ aB con A,B ∈ V e a ∈ T

Esempio: linguaggio delle sequenze unarie di lunghezza pari

A→ 1BB → 1B → 1A

Produzione di 1111: A→ 1B →B→1A 11A→A→1B 111B →B→1 1111Ogni 1 prodotto da A si accoppia a un 1 prodotto da B

() Lucidi di P.Crescenzi, Unifi 86 / 150

Page 87: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

MdT di sola lettura e grammatiche regolari

Abbiamo visto che un linguaggio regolare e riconosciuto da un automa astati finitiOsserviamo che un automa a stati finiti e equivalente ad una macchina diTuring tale che

la testina e di sola lettura

ad ogni passo di calcolo la testina si sposta a destra

() Lucidi di P.Crescenzi, Unifi 87 / 150

Page 88: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Macchine di Turing non deterministiche

Grafo delle transizioni puo includere:

Arco uscente da q con etichetta contenente almeno due triple

〈σ, τ1,m1〉

e〈σ, τ2,m2〉

tali cheτ1 6= τ2

oppurem1 6= m2

Due o piu archi distinti uscenti da q con etichette contenenti ciascunaalmeno una tripla con lo stesso primo simbolo

() Lucidi di P.Crescenzi, Unifi 88 / 150

Page 89: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Albero delle computazioni e decidibilita

Computazione di mdT non deterministica: albero dellecomputazioni

Nodi: configurazioni della mdTArchi: produzione di una configurazione da parte di un’altra

Cammino (finito o infinito) dell’albero che parte dalla radice:cammino di computazione

Input x accettato da mdT: albero delle computazioni includealmeno un cammino di computazione accettante (cammino dicomputazione che termina in configurazione finale)

Linguaggio accettato da mdT: insieme delle stringhe accettate

() Lucidi di P.Crescenzi, Unifi 89 / 150

Page 90: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Un esempio

Consideriamo il seguente linguaggio:

L = {xx : x ∈ {0, 1}∗}

MdT non deterministica che accetta L1 Sposta testina di una posizione a destra.2 Se simbolo letto non e �, non deterministicamente sceglie di tornare a

passo 1 oppure di eseguire passo 3: altrimenti, termina in stato nonfinale

3 Sposta contenuto del nastro di una posizione a destra.4 Inserisce simbolo @ e posiziona testina su primo simbolo a sinistra5 Verifica se le due stringhe separate da @sono uguali: in tal caso,

termina in stato finale. Altrimenti, termina in stato non finale

() Lucidi di P.Crescenzi, Unifi 90 / 150

Page 91: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

q0010010

0q110010

q60@10010

@q810010

01q10010

q601@0010

@@q10010

010q1010

q6010@010

q6@@@

q12

0100q110

q60100@10

100@q810

01001q10

q601001@0

001@@q10

010010q1

() Lucidi di P.Crescenzi, Unifi 91 / 150

Page 92: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

MdT non deterministiche e MdT (deterministiche)

Le macchine non deterministiche non sono piu potenti delle macchinedeterministiche. InfattiPer ogni mdT non deterministica T , esiste mdT T ′ tale che L(T ) = L(T ′)

Idea: visita in ampiezza di albero delle computazioni

Idea: visita in ampiezza di albero delle computazioniUn nastro usato come coda: configurazioni di T inserite man mano chesono generate ed estratte per generarne di nuove (all’inizioconfigurazione iniziale)Un nastro usato per memorizzare configurazione estratta ed esaminarlaper generare configurazioni da essa prodotteT ′ estrae configurazione in testa alla coda: se e finale, termina in statofinale, altrimenti calcola configurazioni prodotte inserendole in coda

Coda vuota al momento di estrazione: termina in stato non finale

() Lucidi di P.Crescenzi, Unifi 92 / 150

Page 93: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Grammatiche di tipo 0 e macchine di Turing

Se un linguaggio L e di tipo 0 allora esiste una macchina di Turing nondeterministica a due nastri che semi-decide L

DimostrazioneMacchina di Turing non deterministica con due nastri che opera nelmodo seguente

1 Inizializza il secondo nastro con il simbolo iniziale S2 Sia φ il contenuto del secondo nastro. Per ogni produzione α→ β in

P, non deterministicamente applica (tante volte quanto e possibile) taleproduzione a φ, ottenendo la stringa ψ direttamente generabile da φ

3 Se il contenuto del secondo nastro e uguale a x (che si trova sul primonastro), termina nello stato qsi. Altrimenti torna al secondo passo

T accetta tutte e sole le stringhe che possono essere generate a partireda S

Non determinismo non necessario

() Lucidi di P.Crescenzi, Unifi 93 / 150

Page 94: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Grammatiche contestuali, tipo 1

Le produzioni sono

α→ β con |β| ≥ |α|Esempio: linguaggio delle sequenze del tipo 0n1n2n per n > 0

S → 012S → 0A12A1→ 1AA2→ B1221B → B10B → 000B → 00A

Produzione di 001122: S → 0A12→A1→1A 01A2→A2→B122

01B122→1B→B1 0B1122→0B→00 001122

Ogni forma sentenziale contiene un solo simbolo non terminale

Regola da applicare univocamente determinata

() Lucidi di P.Crescenzi, Unifi 94 / 150

Page 95: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Grammatiche di tipo 1 (contestuali) e MdT

Se un linguaggio L e contestuale allora esiste una macchina di Turing nondeterministica a tre nastri che decide L

Dimostrazione: come nel caso dei linguaggi di tipo 0Quando cerca di applicare (in modo non deterministico) una produzione,verifica se la stringa ottenuta ha lunghezza minore oppure ugualeall’input x

Se cosı non e, termina in stato non finale

Evitare di rimanere sempre in stringhe della stessa lunghezza a causadell’applicazione ciclica della stessa sequenza di produzioni

Numero di possibili stringhe distinte di lunghezza k, con 1 ≤ k ≤ |x |, epari a |N ∪ T |kMantiene sul terzo nastro un contatore inizializzato ogni volta che unastringa di lunghezza k viene generata sul secondo nastro per la primavoltaPer ogni produzione che viene applicata, se la lunghezza della stringagenerata non aumenta, allora il contatore viene incrementato di 1Se il contatore supera |N ∪ T |k , allora termina in stato non finale

() Lucidi di P.Crescenzi, Unifi 95 / 150

Page 96: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Osservazione

Nella dimostrazione precedente, le celle utilizzate da ognicomputazione su ogni singolo nastro e limitato dalla lunghezza dellastringa x di input

Ovvio per i primi due nastriIl terzo nastro contiene un contatore da 1 a, al massimo, |N ∪ T ||x|

Operando in aritmetica in base |N ∪ T |, anche questo contatorerichiede al piu un numero di celle limitato da |x |

() Lucidi di P.Crescenzi, Unifi 96 / 150

Page 97: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

La classe P

() IT-09 97 / 150

Page 98: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Complessita di un problema

Obiettivo: classificare i problemi dal punto di vista della lorocomplessita , cioe della quantita di risorse di calcolo che la lorosoluzione richiede

Risorse di interesse: Tempo e Memoria

Fra le due risorse la prima e la piu importante

Problemi trattabili e problemi intrattabili:

Trattabili: i problemi risolubili in tempo polinomiale con MdTIntrattabili quelli che sappiamo risolvere solo con algoritmi di costoesponenziale

() IT-09 98 / 150

Page 99: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Complessita temporale

MdT T con singolo nastro che termina per ogni input

Complessita temporaleFunzione f : N → Nf (n): max numero di passi eseguiti da T con input di lunghezza n

Analisi asintoticaf e g : funzioni da N in Nf = O(g(n)) se esistono c e n0 tali che, per n ≥ n0, f (n) ≤ cg(n)Esempio

f (n) = 1 + 10n + 7n2 + 22n6

f non e O(n5), f (n) = O(n6) e f (n) = O(2n)

() IT-09 99 / 150

Page 100: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Due osservazioni sulla complessita temporale

Dipende da modello di calcoloL = {0n1n : n ≥ 0}

Puo essere deciso da MdT con due nastri in tempo O(n)Non esiste MdT (con un nastro) che decide L in tempo O(n)Esiste MdT (con un nastro) che decide L in tempo O(n2)

Dipende da codifica utilizzata

Codifica unaria allunga rappresentazione di numero intero in modoesponenziale rispetto a codifica binariaEssendo input piu lungo, MdT ha piu tempo a disposizioneComplessita temporale O(n) con codifica unaria, puo voler direcomplessita temporale O(2n) con codifica binaria

() IT-09 100 / 150

Page 101: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

La classe P

Insieme dei linguaggi L per i quali esiste MdT che decide L in tempoO(nk) per qualche k ≥ 1

Robusta rispetto al modello di calcoloTutti i modelli “ragionevoli” possono simularsi tra di loro con unoverhead polinomiale

Varianti deterministiche di macchine di TuringAlgoritmi di MarkovMacchine di PostLinguaggi di programmazione di alto livello

Robusta rispetto alla codificaTutte le codifiche in base b > 1 sono polinomialmente correlate tra diloro

logb n = logc nlogc b

() IT-09 101 / 150

Page 102: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Tipi di problemi

Restringersi a problemi su linguaggi e restrittivo?EsempioDato un grafo G con pesi positivi sugli archi e due nodi A e B del grafo

Problema di decisione: Esiste un percorso da A a B?

Problema di ottimizzazione: qual e il percorso piu breve tra A a B?

Problema di enumerazione: quanti sono i percorsi diversi da A a B?

Problema di ricerca: dato x trova un percorso da A a B di lunghezzainferiore a x

() IT-09 102 / 150

Page 103: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Tipi di problemi

EsempioDato un grafo G con pesi positivi sugli archi e due nodi A e B del grafo

Problema di decisione: Esiste un percorso da A a B?L1(G ) = insieme dei grafi G per cui esiste un percorso da A a BProblema di ottimizzazione: qual e il percorso piu breve tra A a B?L2,y (G ) = insieme dei grafi G per cui esiste un percorso da A a B dilunghezza inferiore a yRisolvere il problema di decisione per diversi valori di y permette dirisolvere il problema di ottimizzazione

Dato un grafo G sia W la somma di tutti i pesi associati agli archi delgrafoDato che i pesi sono positivi il percorso piu breve e ha valore compresofra 0 e WEffettua una ricerca binaria fra 0 e W cercando il piu piccolo valore yper cui G appartiene a L2,y (G )

Ragionamenti analoghi si possono applicare ai problemi dienumerazione e di ricerca

() IT-09 103 / 150

Page 104: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Problemi in P

Algoritmi descritti mediante linguaggio di programmazione di altolivello

Spesso, in linguaggio naturale

Istanze del problema codificate in modo ragionevole

Numeri rappresentati in base b > 1Insiemi rappresentati come sequenze di elementi separati da simbolospeciale

Quando possibile, attraverso regole che generano l’insieme

Problemi in P considerati trattabili

Problemi fuori di P considerati intrattabili

Cinque algoritmi A1, . . . ,A5

10−9 secondi per eseguire un singolo passo

Dimensione Algoritmo/complessita

istanza n A1/n2 A2/n

3 A3/n5 A4/2n A5/3n

10 0.1 µs 1 µs 0.01 ms 1 µs 59 µs30 0.9 µs 27 µs 24.3 ms 1 s 2.4 giorni

50 2.5 µs 0.125 ms 0.31 s 13 giorni 2.3× 105 secoli

() IT-09 104 / 150

Page 105: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Esempio: numeri relativamente primi

Decidere se, dati due numeri a e b, essi sono relativamente primi

Algoritmo di EuclideGCD(a, b) = GCD(b, r) dove r = a mod b

int GCD(int a, int b) {

if (b == 0) {

return a;

} else {

return GCD(b, a % b);

}

}

() IT-09 105 / 150

Page 106: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Analisi di complessita

Al piu, sono necessarie log(b) chiamate ricorsive.

Siano (ak−1, bk−1), (ak , bk), (ak+1, bk+1) tre coppie successive

Dimostriamo che bk−1 ≥ bk + bk+1

ak = qbk + bk+1

ak ≥ bk + bk+1

bk−1 = akbk−1 ≥ bk + bk+1 ovvero bk−1 ≥ 2bk+1

b = b0 ≥ 2k/2bk per ogni k ≥ 2Numero di passi al piu log b

Complessita temporale di GCD logaritmica rispetto al valore dei duenumeri

Quindi, lineare rispetto alla loro codifica

Decidere se due numeri sono relativamente primi appartiene a P

() IT-09 106 / 150

Page 107: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Esempio: cammini minimi in un grafo

Decidere se, dato un grafo G , due nodi u e v di G e un intero k,esiste un cammino da u a v di lunghezza al piu k

Algoritmo basato su programmazione dinamica per calcolare lalunghezza del cammino minimo tra una qualunque coppia di nodi

Nodi numerati da 1 a nA[h][i ][j ]: lunghezza del cammino minimo da i a j passando solo pernodi di indice minore oppure uguale a hA[h + 1][i ][j ] = min{A[h][i ][h + 1] + A[h][h + 1][j ],A[h][i ][j ]}

Un cammino minimo da i a j , che non passi per nodi di indici maggioridi h + 1, passa per il nodo h + 1 oppure no

A[n][u][v ]: lunghezza del cammino minimo da u a v

Complessita temporale: O(n3)

() IT-09 107 / 150

Page 108: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Esempio: 2-SAT

X = {x1, x2, . . . , xn}: insieme di n variabili booleane

Formula booleana in forma normale congiuntiva (CNF)

Insieme di m clausole ciClausola ci : insieme di letterali {l1, l2, . . . , lki}Letterale l : variabile o negazione di variabile in X

Assegnazione di valori per X : τ : X → {true, false}Letterale l soddisfatto da τ : l = xh ∧ τ(xh) = true oppurel = ¬xh ∧ τ(xh) = false

Clausola ci soddisfatta da τ : almeno un suo letterale soddisfattoFormula CNF soddisfatta da τ : ogni clausola soddisfatta da τ

Decidere se, data una formula CNF con al piu due letterali perclausola, esiste un’assegnazione che la soddisfa

() IT-09 108 / 150

Page 109: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Algoritmo

1 Poni x = x1 e assegna a x il valore true

2 Dichiara tutte le clausole non soddisfatte e tutte le variabili cheappaiono nelle clausole, tranne x , non assegnate

3 Seleziona una clausola non soddisfatta {lh, lk}Se uno dei due letterali ha assegnato il valore true, dichiara la clausolasoddisfatta e ripeti questo passoSe uno solo dei due letterali ha assegnato il valore false, assegna ilvalore true all’altro, dichiara la clausola soddisfatta e ripeti questopassoSe entrambi i letterali hanno assegnato il valore false e x haassegnato il valore false, termina rifiutando, altrimenti assegna a x ilvalore false e torna al passo 2

4 Se vi sono clausole non soddisfatte, cancella quelle soddisfatte, poni xuguale a una variabile di quelle rimanenti, assegna true a x e va alpasso 2. Altrimenti, accetta.

() IT-09 109 / 150

Page 110: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Analisi di complessita e osservazioni

Per ogni variabile, (al piu) due volte dobbiamo scorrere (al piu) tuttele clausole

Complessita temporale: O(nm)2-SAT appartiene a P

Non funziona per k-SAT (ogni clausola contiene al piu k letterali)quando k ≥ 3 e, in generale, per SAT (nessun limite).

Formula DNF (forma normale disgiuntiva)

Clausola Ci soddisfatta da τ : ogni suo letterale soddisfattoFormula DNF soddisfatta da τ : almeno una clausola soddisfatta da τBanale verificare che una clausola non e soddisfacibile

Deve contenere una variabile e la sua negazione

DNF-SAT appartiene a P

() IT-09 110 / 150

Page 111: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Riducibilita polinomiale

L1 polinomialmente riducibile a L2 (L1 ≤p L2) se esiste funzione fcalcolabile in tempo polinomiale tale che

x ∈ L1 ↔ f (x) ∈ L2

Se L1 ≤p L2 e L2 appartiene a P, allora L1 appartiene a P

Riducibilita come strumento per dimostrare la trattabilita di unproblema

2-COLORABILITY: dato un grafo G = (N,E ), decidere se esiste unafunzione f : N → {1, 2} tale che f (u) 6= f (v) se (u, v) ∈ E2-COLORABILITY e polinomialmente riducibile a 2-SAT

Associare una variabile booleana xi a ogni nodo iAssociare le due clausole {xi , xj} e {¬xi ,¬xj} a ogni arco (i , j)Se queste due clausole sono soddisfatte, allora le due variabili xi e xjdevono avere assegnati diversi valori

2-COLORABILITY appartiene a P

() IT-09 111 / 150

Page 112: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

La classe NP

() IT-10 112 / 150

Page 113: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

SAT

Data una formula CNF, tale formula e soddisfacibile?

Non si conoscono algoritmi polinomiali che risolvono questo problema

Ma

Se una formula ϕ e soddisfacibileEsiste assegnazione τ che soddisfa ϕ|τ | e polinomiale in |ϕ|Esiste un algoritmo polinomiale che verifica se, effettivamente, τsoddisfa ϕ

Basta sostituire alle variabili i valori assegnati da τ e verificare che ogniclausola sia soddisfatta

() IT-10 113 / 150

Page 114: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

3-COLORABILITY

Dato un grafo G = (N,E ), esiste una funzione f : N → {1, 2, 3} taleche f (u) 6= f (v) se (u, v) ∈ E ?

Non si conoscono algoritmi polinomiali che risolvono questo problema

Ma

Se un grafo ϕ e 3-colorabileEsiste funzione f che colora con tre colori tutti i nodi|f | e polinomiale in |G |Esiste un algoritmo polinomiale che verifica se, effettivamente, f coloracon tre colori tutti i nodi (in modo corretto)

Basta verificare che, per ogni arco (u, v), f (u) 6= f (v)

() IT-10 114 / 150

Page 115: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

HAMILTONIAN PATH

Dato un grafo G = (N,E ), esiste un cammino che passi per tutti inodi una e una sola volta?

Non si conoscono algoritmi polinomiali che risolvono questo problema

Ma

Se un grafo ammette un cammino hamiltonianoEsiste una sequenza s di N nodi distinti u1, . . . , u|n| tale che ui−1 eadiacente a ui , per ogni i con 2 ≤ i ≤ n|s| e polinomiale in |G |Esiste un algoritmo polinomiale che verifica se, effettivamente, s uncammino che passa per tutti i nodi una e una sola volta

Basta verificare che i nodi della sequenza siano distinti e che, per ogni icon 2 ≤ i ≤ n, (ui−1, ui ) ∈ E

() IT-10 115 / 150

Page 116: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

PARTITION

Dato un insieme A di n numeri interi a1, . . . , an, esiste una partizionedi A in due sottoinsiemi A1 e A2 tale che la somma dei numeri in A1

sia uguale a quella dei numeri in A2?

Non si conoscono algoritmi polinomiali che risolvono questo problema

Ma

Se un insieme A ammette una partizione perfettaEsiste un sottoinsieme I dell’insieme {1, . . . , n} tale che∑

i∈I

ai =∑i 6∈I

ai

|I | e polinomiale in |A|Esiste un algoritmo polinomiale che verifica se, effettivamente, I e unapartizione perfetta

Basta verificare che∑

i∈I ai =∑

i 6∈I ai

() IT-10 116 / 150

Page 117: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

La classe NP

Insieme di tutti i linguaggi L per cui esiste un polinomio p e unamacchina di Turing V che opera in tempo polinomiale tali che, perogni x ,

x ∈ L⇔ ∃y [|y | ≤ p(|x |) ∧ T (x , y) accetta]

(y e detta essere un certificato)

Definizione alternativa: insieme di tutti i linguaggi L per i quali esisteuna macchina di Turing non deterministica che decide L in tempopolinomiale

Con input x , la macchina di Turing prova non deterministicamentetutte le stringhe di lunghezza al piu p(|x |)Se x ∈ L, la stringa y e la codifica di un cammino accettante dellamacchina non deterministica

SATISFIABILITY, 3-COLORABILITY, HAMILTONIAN PATH ePARTITION appartengono a NP

() IT-10 117 / 150

Page 118: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

P vs NP

Abbiamo visto che le MdT non deterministiche calcolano le stesse funzionicalcolabili con una MdT determinisitica. Infatti e possibile simulare unaMdT non deterministica con una macchina deterministica. Si noti perochela simulazione di un passo di calcolo della MdT non determinisitica puorichiedere l’esecuzione di molti passi da parte della MdT determinisitica.Infatti

P e contenuta in NP

Se x ∈ L, la stringa y e la codifica della computazione della macchinadeterministica T che, in tempo polinomiale, termina in stato finaleAlternativamente, una macchina di Turing deterministica e anche unamacchina di Turing non deterministica con grado di non determinismo 1

P e diversa da NP?

Domanda da un milione di dollariTrovare una prova e piu difficile che verificarla?Con risorse temporali di calcolo limitate, il non determinismo e piupotente del determinismo?

() IT-10 118 / 150

Page 119: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Linguaggi NP-completi

Intuitivamente, sono i problemi piu “difficili” in NP

Se uno solo di essi fosse in P, allora P sarebbe uguale a NP

Riducibilita come strumento per comparare la difficolta di dueproblemi

Se L1 ≤p L2 e se L1 non appartiene a P, allora L2 non appartiene a PL2 e almeno tanto difficile quanto L1

Linguaggio NP-completo: linguaggio L in NP tale che ogni altrolinguaggio L′ in NP e polinomialmente riducibile a L

Se L e NP-completo e L appartiene a P, allora P e uguale a NPPer risolvere la questione P vs NP possiamo

Mostrare che L non e in P (P diverso da NP)Mostrare che L e in P (P uguale a NP)

() IT-10 119 / 150

Page 120: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Dimostrare risultati di NP-completezza

Vogliamo dimostrare che un linguaggio L e NP-completo

Mostriamo che tutti i linguaggi in NP sono polinomialmente riducibili aLOppure

Conosciamo gia dei linguaggi NP-completiSufficiente trovare un linguaggio L′ NP-completo tale che L′ ≤p LPer la proprieta transitiva, questo implica che tutti i linguaggi in NPsono polinomialmente riducibili a L

Per usare la seconda strategia dobbiamo avere un primo linguaggioNP-completo

Teorema di Cook-Levin

SATISFIABILITY e NP-completo

() IT-10 120 / 150

Page 121: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

3-SAT

Ogni clausola contiene esattamente tre letterali distinti

Riduzione da SAT

Tecnica di riduzione per sostituzione localeAd ogni clausola c = {l0, . . . , lk−1} facciamo corrispondere insieme Dc

di nuove clausole (con eventuali nuove variabili) tale che a ogniassegnamento che soddisfa c corrisponde un’estensione che soddisfatutte le clausole in Dc (e viceversa)

k = 1: Dc = {{l0, y c0 , y

c1 }, {l0, y c

0 , yc1 }, {l0, y c

0 , yc1 }, {l0, y c

0 , yc1 }}

k = 2: Dc = {{l0, l1, y c0 }, {l0, l1, y c

0 }}k = 3: Dc = {c}k > 3:

Dc = {{l0, l1, y c0 }, {y c

0 , l2, yc1 }, {y c

1 , l3, yc2 }, . . .

. . . , {y ck−5, lk−3, y

ck−4}, {y c

k−4, lk−2, lk−1}

() IT-10 121 / 150

Page 122: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

3-COLORABILITY

Riduzione da 3-SATTecnica di riduzione per progettazione di componenti

Per ogni variabile, una componente (gadget) del grafo il cui scopo equello di modellare l’assegnazione di verita alla variabile (a sinistra) e,per ogni clausola, un gadget il cui scopo e quello di modellare lasoddisfacibilita della clausola (a destra)

Pilu Crescenzi

ITLC

C

149

Figura 6.1: riduzione da 3-SAT a 3-COLORABILITY.

T

F

N

tu

fu l0

l1

l2

ac

bc

dc gc

hc

T

l0 l1 l2 ac bc dc gc hc

1 2 2 1 3 2 3 22 1 2 2 1 3 2 31 1 2 2 1 3 2 32 2 1 1 2 3 2 31 2 1 1 2 3 2 32 1 1 2 3 1 2 31 1 1 2 3 1 2 3

Viceversa, supponiamo che esista una colorazione f del grafo con tre colori e definiamoun’assegnazione ! di verita alle variabili di X nel modo seguente: per ogni variabile u ! X,se f(tu) = 1, allora !(u) = true, altrimenti !(u) = false. Supponiamo, per assurdo,che tale assegnazione non soddisfi almeno una clausola c ! C, ovvero che tutti i letteralicontenuti in c non siano soddisfatti. Cio implica che tutti i nodi corrispondenti a taliletterali e contenuti nel gadget corrispondente a c sono colorati con il colore 2. Quindi,f(hc) = 3 e f(gc) = 2: cio implica che f(dc) "= 2 e, quindi, che f(ac) = 2 oppuref(bc) = 2, contraddicendo l’ipotesi che f sia una colorazione corretta del grafo. Inconclusione, abbiamo dimostrato che C e soddisfacibile se e solo se il grafo e colorabilecon tre colori e, quindi, che il linguaggio 3-SAT e riducibile in tempo polinomiale allinguaggio 3-COLORABILITY: quindi, quest’ultimo e NP-completo.

6.4.4 Cammino hamiltoniano

Dimostriamo che 3-SAT e polinomialmente riducibile a HAMILTONIAN PATH, facen-do uso della tecnica di riduzione per progettazione di componenti. A tale scopo, siaC = {c0, . . . , cm!1} un insieme di m clausole costruite a partire dall’insieme X di n va-riabili booleane {x0, . . . , xn!1}. Vogliamo costruire, in tempo polinomiale, un grafo G

Formula soddisfacibile se e solo se grafo colorabilel0 l1 l2 ac bc dc gc hc

1 2 2 1 3 2 3 22 1 2 2 1 3 2 31 1 2 2 1 3 2 32 2 1 1 2 3 2 31 2 1 1 2 3 2 32 1 1 2 3 1 2 31 1 1 2 3 1 2 3

() IT-10 122 / 150

Page 123: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

SUBSET SUM

Dato un insieme A di numeri interi e un numero intero s, esiste unsottoinsieme di A tale che la somma dei suoi numeri sia uguale a s?Riduzione da 3-SATTecnica di riduzione per progettazione di componentiEsempio: {x1, x2, x3}, {¬x1,¬x2, x3}, {¬x1, x2,¬x3}

Numero 1 2 3 1 2 3

p1 1 0 0 1 0 0n1 1 0 0 0 1 1p2 0 1 0 1 0 1n2 0 1 0 0 1 0p3 0 0 1 1 1 0n3 0 0 1 0 0 1

x1 0 0 0 1 0 0y1 0 0 0 1 0 0x2 0 0 0 0 1 0y2 0 0 0 0 1 0x3 0 0 0 0 0 1y3 0 0 0 0 0 1

s 1 1 1 3 3 3

() IT-10 123 / 150

Page 124: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

PARTITION

Riduzione da SUBSET SUM

Tecnica di riduzione per similitudine

Dato A e s, sia S la somma degli elementi di A

Definiamo A′ = A ∪ {an+1 = 3S − s, an+2 = 2S + s}Se esiste B ⊆ A la somma dei cui elementi e s

A′1 = B ∪ {an+1} ha somma s + (3S − s) = 3SA′2 = A− B ∪ {an+1} ha somma (S − s) + (2S + s) = 3SQuindi, A′1 e A′2 e una soluzione per PARTITION

Se esistono sottoinsiemi A′1 e A′2 di A′ di uguale somma

A′1 e A′2 hanno somma S+(3S−s)+(2S+s)2

= 3San+1 appartiene a A′1 oppure a A′2 (supponiamo A′1)Quindi, A′1 −{an+1} e un sottoinsieme di A la somma dei cui elementi es

() IT-10 124 / 150

Page 125: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

HAMILTONIAN PATH

Riduzione da 3-SAT

Tecnica di riduzione per progettazione di componenti

Gadget per variabile

Capitolo 6 – Le classi P e NP

ITLC

C150

Figura 6.2: il gadget associato alla variabile xi nella riduzione da 3-SAT a HAMILTONIAN PATH.

ui

p0i n0

i p1i n1

i· · · pm!1

i nm!1i

ui+1

tale che C e soddisfacibile se e solo se G include un cammino hamiltoniano. Per ognivariabile xi con 0 ! i < n, definiamo il gadget mostrato nella Figura ??, in cui il numerodi nodi inclusi nella diagonale del rombo e pari a due volte il numero delle clausole. Inparticolare, per ogni variabile xi, introduciamo in G un nodo ui e, per ogni variabile xi

e per ogni clausola cj, introduciamo in G due nodi pji e n

ji. Inoltre, per ogni variabile

xi, aggiungiamo a G gli archi (ui, p0i), (ui, nm!1

i ), (p0i , ui+1) e (nm!1

i , ui+1), dove ilnodo un e un nuovo nodo di G. Infine, per ogni variabile xi e per ogni clausola cj,aggiungiamo a G gli archi (pj

i, nji), (nj

i, pji) e (nj

i, pj+1i ) (ad eccezione, ovviamente, del-

l’arco (nm!1i , pm

i ) che non puo essere aggiunto in quanto il nodo pmi non esiste). Cio

completa la costruzione dei gadget che modellano l’assegnazione di verita alle variabili.Per ogni clausola cj, definiamo poi il gadget che modella la soddisfacibilita della clausolacome costituito da un solo nodo vj. I due insiemi di gadget sono collegati tra di loro nelmodo seguente (si veda la Figura ??). Se una variabile xi appare affermata nella clausolacj allora aggiungiamo un arco dal nodo p

ji al nodo vj e uno dal nodo vj al nodo n

ji (co-

me mostrato nella parte sinistra della figura). Viceversa, se una variabile xi appare negatanella clausola cj allora aggiungiamo un arco dal nodo n

ji al nodo vj e uno dal nodo vj al

nodo pji (come mostrato nella parte destra della figura). Intuitivamente, ogni cammino

hamiltoniano dovra decidere se visitare la diagonale del rombo di una variabile xi dasinistra verso destra oppure da destra verso sinistra: il primo caso corrisponde all’aver

() IT-10 125 / 150

Page 126: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Gadget per clausola: singolo nodoCollegamento tra i gadget

Pilu Crescenzi

ITLC

C

151

Figura 6.3: connessione tra gadget associati a variabili e gadget associati a clausole.

vj

· · · pji nj

i· · ·

vj

· · · pji nj

i· · ·

assegnato il valore true a xi e, quindi, alla possibilita di soddisfare tutte le clausole cj incui xi appare affermata, mentre il secondo caso corrisponde ad aver assegnato il valorefalse a xi e, quindi, alla possibilita di soddisfare tutte le clausole cj in cui xi appare ne-gata. Ancora una volta, e chiaro che la costruzione dell’istanza di HAMILTONIAN PATHpuo essere eseguita in tempo polinomiale. Dimostriamo ora formalmente che la formulabooleana e soddisfacibile se e solo se il grafo risultante dalla riduzione ammette un cam-mino hamiltoniano. Supponiamo che esista un’assegnazione ! di verita alle variabili diX che soddisfa C. Quindi, ! soddisfa cj per ogni clausola cj ! C: sia lj il primo deiletterali in cj a cui ! assegna il valore true e sia xi(j) la variabile corrispondente a lj.Possiamo costruire un cammino hamiltoniano in G nel modo seguente. Per ogni nodoui con 0 ! i ! n ! 1, distinguiamo i seguenti due casi.

1. !(xi) = true. In tal caso, includiamo nel cammino hamiltoniano l’arco (ui, p0i)

e l’arco (nm!1i , ui+1). Inoltre, per ogni j con 0 ! j ! m ! 1 tale che i "= i(j),

includiamo nel cammino gli archi (pji, n

ji) e, per ogni j con 0 ! j < m ! 1,

includiamo nel cammino gli archi (nji, p

j+1i ). Infine, per ogni j con 0 ! j ! m!1

tale che i = i(j), includiamo nel cammino gli archi (pji, vj) e (vj, nj

i). In altreparole, alle variabili il cui valore di verita e true facciamo visitare la diagonaledel corrispondente rombo da sinistra verso destra e, ogni qualvolta incontriamouna clausola il cui valore di verita e determinato da tale variabile, eseguiamo una“deviazione” passando per il nodo corrispondente alla clausola.

Se formula e soddisfacibile, allora esiste cammino che passa a sinistra(true) o a destra (false) e visita le clausole la prima volta che puoSe esiste cammino, allora assegnando true a passaggi a sinistra efalse a passaggi a destra ogni clausola e soddisfatta

Non sono possibili deviazioni senza ritorno immediato

() IT-10 126 / 150

Page 127: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Conclusione

Se esiste y tale che V (x , y) accetta, da y e dalla computazioneV (x , y) deriviamo un’assegnazione che soddisfa la formula

Viceversa, da un’assegnazione che soddisfa la formula possiamoricavare dal valore delle variabili che appaiono in Dy un certificato ytale che V (x , y) accetta

La costruzione richiede tempo polinomiale

Quindi L e polinomialmente riducibile a SATISFIABILITY

Poiche L e un qualunque linguaggio in NP, SATISFIABILITY eNP-completo

() IT-10 127 / 150

Page 128: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

La classe PSPACE

() IT-11 128 / 150

Page 129: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Complessita di spazio

Fino ad ora abbiamo considerato il tempo:

Data una funzione T : N → N, e una MdT deterministica M chericonosce il linguaggio L diciamo cheSe M decide L usando O(T (|x |)) tempo allora M ha complessitaTIME (T (|x |))P, NP sono classi basate sul tempo richiesto per il calcolo

Lo spazio e l’altra risorsa di interesse:Data una funzione T : N → N, e una MdT M che riconosce illinguaggio L diciamo cheSe M decide L usando O(T (|x |)) celle di memoria distinte sul nastrodi lavoro su input x ha complessita SPACE (T (|x |))

Nota: nella definizione precedente non contiamo le celle di memoriaper memorizzare l’input

() IT-11 129 / 150

Page 130: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

La classe PSPACE

SPACE (nk) Insieme dei linguaggi L per i quali esiste MdT che decideL in spazio O(nk) = cnk per qualche costante c , dove n indica ladimensione dell’input

Nota: Se S1(n) = O(S2(n)) allora SPACE (S1(n)) = SPACE (S2(n))

La classe PSPACE e definita come⋃

c≥1 SPACE (nc)

Vedremo dei teoremi che legano PSPACE con le atre classi;mostreremo che- P ⊆ PSPACE ⊆ EXPTIME- NP ⊆ PSPACE

() IT-11 130 / 150

Page 131: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Relazioni fra SPACE (T (n)) e TIME (T (n))

TIME (T (n)) ⊆ SPACE (T (n))

Se un linguaggio L puo essere deciso in tempo T (n) allora puo esseredeciso usando spazio T (n)

Banale: se la MdT esegue T (n) passi puo scrivere al massimo T (n)celle di memoria

Non e vero il contrario: SPACE (T (n)) ⊆ TIME (T (n)): Quicksortrichiede tempo O(n log n) ma spazio O(n)

Come corollario di TIME (T (n)) ⊆ SPACE (T (n)) segue cheP ⊆ PSPACE

() IT-11 131 / 150

Page 132: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Relazioni fra SPACE (T (n)) e TIME (T (n))

SPACE (T (n)) ⊆ TIME (2T (n))

Assumi che MdT possa decidere L in spazio SPACE (T (n)): con inputx la MdT si ferma sempre e o accetta (x ∈ L) o rifiuta (x 6∈ L)

Idea: la macchina non si puo trovare due volte nello stesso stato conla stessa configurazione del nastro di lavoro, perche : altrimenti lamacchina non si fermerebbe! Quindi il tempo e limitato da 2|C |, dove|C | e il numero di configurazioni

Sia una configurazione C della MdT la terna C= (stato, posizionetestina, Configurazione nastro lavoro)

La funzione di transizione ci porta da una configurazione C ad unaconfigurazione C ′

Ogni configurazione di una macchina che usa spazio T (n) puo esseredescritta usando cT (n) bit

Il numero di configurazioni possibili di una macchina che usa spazioT (n) e O(2T (n))

() IT-11 132 / 150

Page 133: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Relazioni fra PSPACE e NP

NP ⊆ PSPACE

E’ sufficiente mostrare per un linguaggio completo in NP che si puocalcolare con spazio polinomiale

Il teorema segue per ogni altro linguaggio in NP; infatti le riduzionipolinomiali in tempo usano spazio polinomiale

Proposizione: SAT e in PSPACE1 Sia data una formula con n variabili e m clausole2 Nella memoria di lavoro scrivi l’assegnazione in cui ogni variabile e 03 Verifica se l’assegnazione presente sul nastro di lavoro verifica la

formula e in questo caso termina (la fromula e soddisfacibile)4 Se l’assegnazione presente sul nastro di lavoro e quello in cui tutte le

variabili sono 1 allora termina (la formula non e soddisfacibile)altrimenti scrivi sul nastro di lavoro l’assegnazione successiva a quellacorrente e vai al passo 2

E’ facile vedere che la macchina si ferma in al piu O(2n) passi dicalcolo e usa spazio di lavoro O(n + m)

() IT-11 133 / 150

Page 134: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Una funzione in PSPACE

P ⊂ PSPACE ? Non lo sappiamo ma si crede che il contenimento siaproprio.Abbiamo visto che PSPACE include tutte le funzioni in NP. Oravediamo una funzione in PSPACE, ma che non sappiamo se sia in NP.

La funzione e motivata da un gioco fra due persone (Alice e Biagio) eutilizza una formula SAT in input:

Data una formula SAT ordiniamo le variabili come x1, x2, . . . , xnIl gioco e giocato da Alice e BiagioAlice fa la prima mossa e sceglie il valore di verita di x1

Biagio fa la seconda mossa e sceglie il valore di verita di x2

Il gioco prosegue con Alice che fissail valore di x3, poi Biagio fissa ilvalore di x4, Alice il valore di x5 e cosı viaAlice vince se alla fine la formula e soddisfatta; Biagio vince se laformula non e soddisfatta

Il gioco e cosı definito: Data una formula SAT esiste una strategiache permette ad Alice di vincere?

() IT-11 134 / 150

Page 135: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Esempio

Data la seguente formula chi vince?

(x1 ∨ x2) ∧ (¬x1 ∨ ¬x2)

Biagio vince. Infatti

Se Alice decide x1 = 1 allora Biagio decide x2 = 1 e la formula non esoddisfacibile

Se Alice decide x1 = 0 allora Biagio decide x2 = 0 e la formula non esoddisfacibile

In altre parole qualunque cosa decide Alice al primo passo esiste unascelta vincente per Biagio

() IT-11 135 / 150

Page 136: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Esempio

Data la seguente formula chi vince?

(x1 ∨ x2 ∨ ¬x3) ∧ (¬x1 ∨ ¬x2 ∨ x3) ∧ (x1 ∨ ¬x2 ∨ x3) ∧ (¬x1 ∨ ¬x2 ∨ ¬x3)

Alice vince. Infatti

Alice decide x1 = 1 allora Biagio decide x2 = 1 e qualunque cosadecida Alice sul valore di x3 la formula non e soddisfacibile e Biagiovince

Alice decide x1 = 0 allora Biagio decide x2 = 1 Alice sceglie x3 = 1 ela formula e soddisfacibile

Alice decide x1 = 0 allora Biagio decide x2 = 0 Alice sceglie x3 = 0 ela formula e soddisfacibile

() IT-11 136 / 150

Page 137: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

La condizione per cui Alice vince

Data la seguente formula chi vince?

(x1 ∨ x2 ∨ ¬x3) ∧ (¬x1 ∨ ¬x2 ∨ x3) ∧ (x1 ∨ ¬x2 ∨ x3) ∧ (¬x1 ∨ ¬x2 ∨ ¬x3)

Alice vince perche puo scegliere un valore per x1 che non permette aBiagio di vincere qualunque sia la scelta di x2

In altre parole Alice vince perche esiste una scelta per x1 tale che, perqualunque scelta di Biagio di x2, esiste una scelta di Alice di x3 che lepermette di soddisfare la formula.

Cioe esiste un valore per x1 tale che per ogni valore di x2 esiste unvalore di x3 tale che per ogni valore di x4 esiste un valore di x5 ....

In formula scriviamo ∃x1∀x2∃x3∀x4φ(x1, . . . , xn) e soddisfatta dove ∃vuol dire esiste e ∀ vuol dire per ogni

() IT-11 137 / 150

Page 138: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Formule booleane quantificate QSAT

Una formula booleana quantificata (FBQ) e una formula del tipo

Φ = (Q1x1)(Q2x2) . . . (Qnxn)φ(x1, x2 . . . xn)

dove xi sono variabili booleane e Qi e del tipo ∃xi oppure ∀xi

Φ e valida se φ e soddisfatta per tutti i quantificatori Qi

Ad esempio ∃x1∀x2∀x3φ(x1, x2, x3) e valida se esiste un valore per x1

tale che per ogni valore di x2 e per ogni valore di x3 la formula φ esoddisfatta

Problema QSAT : Data una FBQ Φ dove φ e una formula di SAT cichiediamo se e Φ valida?

() IT-11 138 / 150

Page 139: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

QSAT e in PSPACE

Mostriamo che esiste un algoritmo che solve QSAT e richiede spaziopolinomiale

Data una formula φ con n variabili e sufficiente considerare unalgoritmo che cicla attraverso tutti i 2n valori di verita ?

Problema: bisogna memorizzare molte informazioni durantel’enumerazione

Infatti con la formula ∃x1∀x2∀x3φ(x1, x2, x3) per risolvere il problemadobbiamo memorizzare i risultati per 2 bit di x1, 2 bit di x2 e cosı viaper un totale di 2n bit di spazio!

Un algoritmo banale richiede spazio esponenziale!

Soluzione: un algoritmo ricorsivo che riutilizza lo spazio

() IT-11 139 / 150

Page 140: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

QSAT e in PSPACE

Un algoritmo che richiede spazio polinomiale

Data Φ = (Q1x1)(Q2x2) . . . (Qnxn)φ(x1, x2 . . . xn), poni i = 1 eapplica la seguente procedura ricorsivaSe Qi = ∃

Poni xi = 0, esegui (Qi+1xi+1)(Qi+2xi+2) . . . (Qnxn)φ(. . . , 0, xi+1 . . . xn)Poni xi = 1, esegui (Qi+1xi+1)(Qi+2xi+2) . . . (Qnxn)φ(. . . , 1, xi+1 . . . xn)Se almeno una delle due chiamate ricorsive da 1 allora ritorna 1altrimenti ritorna 0

Se Qi = ∀Poni xi = 0, esegui (Qi+1xi+1)(Qi+2xi+2) . . . (Qnxn)φ(. . . , 0, xi+1 . . . xn)Poni xi = 1, esegui (Qi+1xi+1)(Qi+2xi+2) . . . (Qnxn)φ(. . . , 1, xi+1 . . . xn)Se ambedue le chiamate ricorsive danno 1 allora ritorna 1 altrimentiritorna 0

Nota: l’algoritmo riutilizza lo spazio per ciascuna attivazione ricorsiva

S(n) denota lo spazio richiesto per n variabiliS(n) = 2 + S(n − 1): 2 bits per memorizzare le risposte piu S(n − 1)per l’attivazione ricorsivaRisolvendo l’equazione di ricorrenza S(n) = O(n)() IT-11 140 / 150

Page 141: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

QSAT e in PSPACE

Un algoritmo che richiede spazio polinomiale

 

L’algoritmo visita il grafo in preordine: quando ha completato la visita dei

sottoalberi sinistro e destro allora calcola il valore del nodo che e ritornato al padre

() IT-11 141 / 150

Page 142: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Esempio

Un algoritmo che richiede spazio polinomiale

 

L’area grigia individua il sottoalbero parametro della attivazione ricorsiva: prima

attivazione albero completo

() IT-11 142 / 150

Page 143: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Esempio

Un algoritmo che richiede spazio polinomiale

 

L’area grigia individua il sottoalbero parametro della attivazione ricorsiva:

seconda attivazione

() IT-11 143 / 150

Page 144: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Esempio

Un algoritmo che richiede spazio polinomiale

 

L’area grigia individua il sottoalbero parametro della attivazione ricorsiva:

l’attivazione ricorsiva ritorna il valore 1 (in rosso nella figura)

() IT-11 144 / 150

Page 145: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Esempio

Un algoritmo che richiede spazio polinomiale

 

La procedura ricorsiva ritorna il valore 0 e questo permette il calcolo del valore

della funzione per il nodo etichettato da ∃ a sinistra

() IT-11 145 / 150

Page 146: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Esempio

Un algoritmo che richiede spazio polinomiale

 

L’area grigia individua il sottoalbero destro del etichettato da ∀ a sinistra

() IT-11 146 / 150

Page 147: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Esempio

Un algoritmo che richiede spazio polinomiale

 

Attivazione ricorsiva del sottoalbero sinistro di un nodo etichettato ∃

() IT-11 147 / 150

Page 148: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Esempio

Un algoritmo che richiede spazio polinomiale

 

Attivazione ricorsiva del sottoalbero destro di un nodo etichettato ∃; questo

permette di completare il calcolo della funzione per i due diretti ascendenti del

nodo (etichettati ∃ e ∀)() IT-11 148 / 150

Page 149: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

Esempio

Un algoritmo che richiede spazio polinomiale

 

E’ stata completato il calcolo del calcolo della funzione per il sottoalbero sinistro

della radice; attivazione ricorsiva del sottoalbero destro della radice

() IT-11 149 / 150

Page 150: Macchine di Turing e Complessità - dis.uniroma1.itfiii/materiale_common/slide-M-old/Turing... · Macchine di Turing e Complessit a Lucidi di Pierluigi Crescenzi,Universit a di Firenze,

QSAT e PSPACE completo

QBF e in PSPACE: quindi risolubile in spazio polinomiale

Si puo anche mostrare che e PSPACE completo: possiamo affermareche QBF e il piu difficile problema nella classe PSPACE

Ad esempio se si riuscisse a mostrare che QBF appartiene a NP alloratutti i problemi in PSPACE appartengono a NPNota: la riduzione di Cook usa tempo polinomiale e non funziona; civuole un’altra riduzionePer un problema in PSPACE possiamo usare tempo esponenziale per lariduzione

() IT-11 150 / 150