Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
In que s to capitolo c a mbia mo de cis ame nte dire zione . Finora ci s iamo occupati soprattutto
di s e mplici classi di linguaggi e de i modi di utilizzarle in re lazione a pr oble mi circos crit
ti, come l’analis i di pr otocolli, la rice rca in testi e l'a na lis i s intattica di pr ogr ammi. Or a
c ominc ia mo a chiederci quali lingua ggi pos s ano essere de finiti me diante un dis pos itivo di
calcolo quals ias i. Ciò e quivale a chie de rs i che cos a può fare un calcolatore . Infatti pos
s iamo e s prime re quals ias i pr oble ma in modo formale come pr oble ma di riconos cime nto
de lle s tringhe di un lingua ggio, e d ’altra parte pos s iamo cons ide rare un calcolatore come
un dis pos itivo per “ris olve re pr oble mi” .
Suppone ndo noto il linguaggio C, cominc ia mo da un ragioname nto infor male che d i
mos tra l’es istenza di pr oble mi s pe cifici, ir r is olvibili da un calcolatore . Que s ti pr oble mi si
dicono “inde c idibili” . Pre s e ntiamo poi un mode llo formale , or mai ve ne rando, di calcola
tore: la macchina di T uring. Una macchina di T uring non s omiglia affatto a un PC. Se per
caso u n ’azie nda dovesse pensare di produrla e ve nde rla, ris ulte re bbe dis as tros ame nte le n
ta; e ppure da molto te mpo e r iconos ciuta come un mode llo pre cis o di que llo che quals ias i
dis pos itivo fis ico di calcolo può fare.
Ne l Ca pitolo 9 ci s e rvire mo de lla macchina di T uring per s viluppare una te oria dei
pr oble mi “inde c idibili” (pr oble mi che ne s s un calcolatore può risolvere). Dimos tre re mo
che certi pr oble mi, facili da e nunciare , s ono in re altà inde c idibili. Un e s e mpio? Stabilire
se una gr ammatica è ambigua. Ne ve dre mo però molti altri.
C i a o , m o n d o . Pos s iamo pensare che s imulando il pr ogr amma si possa s tabilire che
cosa fa, ma dobbia mo fare i conti con pr ogr ammi che impie gano un te mpo s traordina
riame nte lungo per produrre un output. Que s to pr oble ma - non sapere quando qualcos a
avverrà, se ma i avverrà - è la r agione pr incipale de lla nostra incapacità di stabilire chc co
sa fa un programma. Dimos trar e formalme nte che non esiste alcun pr ogramma in grado di
s volgere un certo compito è difficile , e pe r farlo dobbia mo s viluppare opportuni s trume nti
for mali. In que s to paragrafo s pie ghiamo l’ide a intuitiva su cui poggiano le dimos tr azioni
for mali.
s ico testo di Ke rnighan e Ritchie . E facile scoprire che il pr ogr amma s tampa C ia o ,
m o n d o e te rmina. Data la sua imme diate zza, oggi si è s oliti introdurre un lingua ggio di
pr ogr ammazione mos trando come scrivere un pr ogramma che s tampa C i a o , m o n d o .
m a i n ()
{
p r i n t f ( " C ia o , m o n d o \ n ") ;
}
1B. W. Kernighan. D. M. Ritchie, Tlie C Programming Ixmguage, 1978. Prentice-Hall, Englewood Cliffs,
NJ.
Problemi chc i calcolatori non possono risolvere 327
i n t e x p ( in t i , n)
/ * c a lc o la i e le v a t o a n * /
{
i n t a n s , j ,-
ans = 1 ;
f o r <j = 1 ; j < = n ; j+ + ) ans *= i ;
r e tu r n (a n s );
}
m a in ()
{
in t n, t o t a l, x , y , z;
s c a n f ( " % d ", &n) ;
to ta l = 3;
w h ile ( 1 ) {
f o r ( x = l ; x < = t o t a l - 2 ; x+ + )
f o r ( y = l ; y < = t o t a l - x - l ; y+ + ) {
z = to ta l - x - y ;
i f ( e x p ( x , n ) + e x p ( y , n ) == e x p ( z , n ) )
p r i n t f ( " C i a o , m o n d o \ n ") ;
}
t o t a l+ + ;
}
}
Il problema ciao- mondo consiste ne llo s tabilire se i pr imi 11 caratteri stampati da un dato
pr ogramma C, con un dato input, s ono C ia o , m o n d o . In seguito dire mo spesso, per
bre vità, che un programma s tampa C ia o , m o n d o per indicare che stampa queste due
parole come i pr imi 1 1 caratteri.
Sc i mate matici hanno impie gato 300 anni per risolvere una ques tione relativa a un
solo pr ogramma lungo 22 righe , il pr oble ma generale di dire se un pr ogramma dato, su un
input dato, stampa C i a o , m o n d o de v’essere veramente arduo. In effetti tutti i pr oble mi
che i mate matici non hanno s aputo risolvere possono essere tras formati ne lla domanda:
“il tal programma, con tale input, s tampa C ia o , m o n d o ? ” Sarebbe dunque notevole
se rius cis s imo a scrivere un pr ogramma in grado di e s aminare qualunque pr ogramma
P e input I per P , e dire se P , eseguito con 1 come input, s tampa C ia o , m o n d o .
Dimos tre re mo che un tale pr ogramma non esiste.
Problemi che i calcolatori non possono risolvere 329
Ve r ific a to r e
ciao-mondo
yf sì
H
X no
F ig u r a 8.3 U n ipote tico pr ogr a mma H che funge da ve rificatore di ciao- mondo.
Se un pr oble ma ha un algor itmo come IL che dice sempre in manie ra corretta se u n ’i
s tanza del pr oble ma riceve la ris pos ta “s ì” oppure “no ”, il pr oble ma è detto “de c idibile ” .
Ne gli altri casi il pr oble ma è “inde c idibile ” . Il nos tro obie ttivo è dimos trare che I I non
esiste, vale a dire che il pr oble ma ciao- mondo è inde cidibile .
Per dimos trare l’e nunciato pe r as s urdo, apporte re mo diverse modifiche ad II, fino a
giunge re a un altro pr ogr amma, de tto II¿, di cui pr ove re mo la non esistenza. Vis to che le
modifiche ad TI sono s e mplici tr as for mazioni che pos s ono essere applicate a qualunque
pr ogr amma C, l’unico e nunciato dubbio è l’esis tenza di H . Que s to è dunque l’assunto
che avre mo contradde tto.
Per facilitare la dis cus s ione impor r e mo alcuni vinc oli ai pr ogr ammi in C, tesi a re n
dere più s e mplice il compito di H. Se pos s iamo dimos trare che un “verificatore di ciao-
m o ndo ” non esiste per questi pr ogr ammi limitati, a ma ggior ragione non può esistere per
una classe di pr ogrammi più ampia. I vincoli s ono i seguenti.
1. L’output è a caratteri; non us iamo pacche tti grafici o qualunque altro me zzo per
ottenere un output che non sia for mato da caratteri.
As s umia mo ora che il pr ogr amma I I esista. La pr ima modifica cons is te nel mutare l’out
put n o , che rappresenta la ris pos ta di H quando il s uo pr ogr amma di input P non s tampa
330 Capitolo 8
C i a o , m o n d o comc pr imo output per l’input I. Non appe na H s tampa “n” , sappia-
mo che se guirà la lettera “o ” .~ Di cons e gue nza pos s iamo modificare qualunque is truzione
p r i n t f in H che s tampa “n” in modo che s tampi inve ce C i a o , m o n d o . Un'a ltr a istru
zione p r i n t f che s tampi una “o” , ma non la “n", vie ne omes sa. Ne risulta che il nuovo
pr ogramma, che chiame re mo H i, si comporta come Tl, tranne per il fatto chc s tampa
C ia o , m o n d o ogni volta che H stamperebbe n o . TTi è rappresentato ne lla Figura 8.4.
s ì
C ia o , mondo
La tras formazione successiva è un po' più complicata. Si tratta e s s e nzialme nte d e ll'in
tuizione chc pe rmis e ad Alan T uring di dimos trare il s uo ris ultato di inde cidibilità sulle
macchine di Turing. Da to che il nostro interesse è limitato a programmi che pre ndono
altri pr ogrammi comc input c ne dicono qualcos a, lim itia m o tí\ in due modi.
1. Per pr ima cosa tío legge l’intero input P e lo s alva in un array A, allocato a tale
scopo (ad e s e mpio tramite la funzione m a l l o c ) . ?
2. Poi TT2 s imula TTi . ma quando ti\ legge input da P o da T. TT2 legge dalla copia
salvata in A. Per tenere traccia di quanto H x ha letto di P e di 7. TT1 può servirsi di
due cursori che se gnano le pos izioni in A.
-È molto probabile che il programma metta n o in un’unica p r i n t f . ma potrebbe anche collocare la “n” in
una p r i n t f e la “o” in un'altra.
-*La funzione di sistema di UNIX m a lI o c alloca un blocco di memoria di dimensione specificata nella
chiamala. Si tratta di una funzione usata quando la quantità di memoria necessaria non può essere determinata
tinche non si esegue il programma, come nel caso di lettura di un input di lunghezza arbitraria. Di norma
m a l I o c viene chiamata più volte, a mano a mano che si legge Tinput e quindi si crea un progressivo bisogno
di spazio.
Problemi chc i calcolatori non possono risolvere 331
Si
Ci a o , mondo
A que s to punto pos s iamo dimos trare che H 2 non può esistere. Di cons e gue nza Η λ non
esiste, così come non esiste II. Il noc ciolo de l r agioname nto cons is te ne ll’imma gina r e chc
cos a fa II2 quando gli si dà se stesso come input, s ituazione illus trata ne lla F igur a 8 .6 .
Ric o r dia mo chc H 2, dato un qualunque pr ogr amma P come input, produce l'o utput s ì
se P s tampa C i a o , m o n d o quando gli vie ne dato se stesso come input. Inoltre I I 2
s tampa C i a o , m o n d o se P , dato se stesso corno input, non s tampa C i a o , m o n d o
come pr imo output.
SI
H
Ci a o , mondo
Suppo nia mo che Ho (il quadr alo ne lla Figura 8 .6 ) pr oduca l'o utput s ì . Allor a H 2 nel
quadr ato affe rma che il suo inpul H 2, quando riceve se stesso come input, s tampa C i a o ,
m o n d o come pr imo output. Eppur e abbia mo appe na ipotizzato che il pr imo output di H 2
in que s ta s ituazione sia s ì anziché C i a o , m o n d o .
Di cons e gue nza l'o utput di H 2 ne lla Figura 8 .6 dovre bbe essere C i a o , m o n d o , dato
che de v’essere uno de i due . Ma se H 2, rice ve ndo se stesso come input, s tampa pe r primo
C i a o , m o n d o , l’output de l quadr ato ne lla Figur a 8 .6 de v’essere s ì . Qua lunque sia
l'o utp ut ipotizza to di H 2, pos s iamo de durre che pr oduca inve ce l’altro.
Si tratta di una s ituazione parados s ale , c pos s iamo conclude r e che H2 non esiste.
Ab b ia m o quind i confutato l'ipote s i che H esista. In altre parole a bbiamo dimos trato che
ne s s un pr ogr amma H può dire o no se un dato pr ogr amma P con input I s tampa C i a o ,
m o n d o come pr imo output.
332 Capitolo 8
Si
'1
istanza
F ig u r a 8.7 Se s iamo in grado di ris olve re il pr oble ma 1\ , pos s iamo usare la s oluzione per
ris olve re il pr oble ma P 1.
Suppo nia mo di sapere che il pr oble ma P\ è inde cidibile , e s ia P 2 un nuovo pr oble ma di cui
vog lia mo dimos trare l’inde c idibilità. Ipo tizzia mo che esista un progr amma, rappre s e ntato
ne lla Figur a 8.7 da un r ombo e tiche ttato “de cis ione ” . U pr ogr a mma s tampa s ì o n o a
s e conda che l’is tanza del pr oble ma P 2 che gli fa da input si trovi o no nel lingua ggio del
pr oble ma stesso .4
Per dimos trare l’inde c id ib ilit à de l pr oble ma P 2 do bbia mo ide are una cos truzione , rap
presentata dal quadrato ne lla Figura 8.7. chc converta le is tanze di 1\ in is tanze di P 2 che
4Ricordiamo che un problema è in realtà un linguaggio. Quando abbiamo affrontato la questione di decidere
se un dato programma e un dato input danno comc prim o output C i a o , m o n d o , in effetti stavamo parlando
di stringhe consistenti in un programma sorgente in C seguito da un file (o più file) di input che il programma
legge. Questo insieme di stringhe e un linguaggio sull'alfabeto di caratteri ASCII.
Problemi che i calcolatori non possono risolvere 333
dia no la stessa ris posta. In altre parole qualunque s tringa ne l ling ua ggio 1\ vie ne conve r
tita in una s tringa nel ling ua g gio P 2, e qualunque s tringa s ull’alfabe to di I\ che non sia
ne l lingua ggio 1\ vie ne conve rtita in una s tringa che non è nel lingua ggio 7 ¾. Co n questa
cos truzione pos s iamo risolvere I\ nel modo seguente.
1. Data u n ’is tanza di P 1, cioè data una stringa w che può essere o no ne l lingua ggio
P i, a pplic hia mo l’algor itmo di cos truzione che produce una stringa x.
E un errore comune que llo di dimos trare che un pr oble ma P 2 è inde c id ibile ri
duc e ndo P 2 a un altro pr oble ma inde cidibile noto P i , os s ia pr ovando l’e nuncia to
“se P 1 è de cidibile , allor a P2 è de c idibile ". Tale e nunciato, pe r quanto s e nz'a ltr o
ve ro, c inutile pe rché po gg ia su u n ’ipote s i, “ Ρχ è de c idibile ” , fals a.
L’unic o modo per dimos trare l’inde c id ib ilit à di un nuovo pr oble ma Po è
ridurre a P2 un pr oble ma inde c idibile noto Pi- In que s to mo do dimos tr ia mo
l’e nunciato “ se P2 è de c idibile , allor a P\ è de c idibile ” . U contr onomina le di tale
e nuncia to è “se P 1 è inde c idib ile , allor a P2 è ind e c id ib ilc '’. Sape ndo che P x è
inde c id ib ile pos s iamo de durre che P 2 ò inde cidibile .
E s e m p io 8.1 Ap plic hia m o que s to me todo pe r mos trare chc la que s tione “il pr ogr a mma
Q con input y c hia ma la funzio ne f o o ? ” è inde c idibile . No tia mo che Q può non avere
la funzio ne f o o , nel qual cas o il pr oble ma è s e mplice ; i cas i critici si hanno quando Q
ha una funzio ne f o o , ma con input y può raggiunge r e o no una chiamata a f o o . Poiché
c onos c ia mo un s olo pr oble ma inde c idib ilc , il ruolo di P i ne lla Figur a 8.7 sarà affidato al
pr oble ma ciao- mondo. P2 sarà il proble ma de lla chiamata appe na de s critto. Sup po nia m o
che esista un pr ogr amma che ris olve que s to pr oble ma. Il nos tro c o mpilo cons is te nel
de finire un a lgor itmo che conve rta il pr oble ma ciao- mondo nel pr oble ma de lla chiamata.
In altre parole , dato un pr ogr a mma Q e il s uo input y, do bbia mo cos truire un pr o
g r a mma R e un input 2 tali che R , con input 2 , chia mi f 0 0 se e s olo se Q con input y
s tampa C i a o , m o n d o . La cos truzione non c difficoltos a.
2. Ag g iu n g ia m o a Q i una funzione f o o . Tale funzione non fa nie nte e non vie ne mai
chiamata. Il pr ogr amma che ne ris ulta è Q 2-
3. Mo d ific h ia m o Q 2 in modo tale che ricordi i pr imi 1 1 caratte ri che s tampa e li salvi
in un array globale A. Sia Q 3 il pr ogr amma ris ultante .
4. Mo d ific h ia m o Q¿ in modo che qua ndo esegue u n ’is tr uzione di output contr olli !'a r
ray A pe r vedere se ha s critto 11 o più caratteri e, in tal cas o, se i pr im i 1 1 s ono
propr io C i a o , m o n d o . Se è cos ì, il nuovo pr ogr a mma c hia m a la funzio ne ag
giunta al passo (2), de nomina ta f o o . Il pr ogr a mma ris ultante è R e l'in p u t ε è
uguale a y.
Lu macchina di T uring 335
Supponia mo che Q con input y s tampi C i a o , m o n d o come pr imo output. Allor a R , per
come è stato cos truito, c hia ma f o o . Ma se Q con input y non s tampa C i a o , m o n d o
come pr imo output, R non chia ma mai f o o . Sc pos s iamo decide re se R con input 2
c hia ma f o o , allora s appiamo anche sc Q con input y (r icor diamo che y — 2 ) s tampa
C i a o , m o n d o . Sape ndo che non esiste alcun algor itmo capace di decidere il pr oble ma
ciao- mondo. e che i quattro pas s i de lla cos truzione di R da Q potrebbe ro essere s volti da
un pr ogr amma che e diti il codice sorgente, il nostro as s unto s ull’esistenza di un ve rifi
catore del proble ma de lla chiamata è fals o. Tale pr ogramma non esiste e il pr oble ma è
inde cidibile .
8.1.4 Esercizi
Es e r c izio 8.1.1 De finite r iduzioni dal pr oble ma ciao- mondo a ognuno dei proble mi e le n
cali. Usate lo siile infor male di questo paragrafo per descrivere tras formazioni di pr o
gr amma plaus ibili e non tenete conto de i limiti reali impos ti dai compute r concre ti, come
la dime ns ione mas s ima di un file oppure la capacità de lla me moria.
! c) Dati due programmi e un input, i programmi pr oducono lo stesso output per l'input
dato?
ma non si può adattare con fa c ilità a pr oble mi di altro genere. Pe r e s e mpio sarebbe molto
difficile ridurre il pr oble ma ciao- mondo alla que s tione s ull’a mbiguità di una gr ammatica.
Ne segue che bis ogna ricos truire la te oria d e ll’inde c idibilità fondandos i non su pr o
g r a mmi in C o in altri ling ua g gi, be ns ì su un mode llo molto s e mplice di compute r, chia
ma to “mac china di T ur ing” . In s os tanza si tratta di un a utoma a stati finiti con un nastro di
lunghe zza infinita su cui p uò leggere o scrivere dati. Ris pe tto ai pr ogr ammi, la mac china
di T uring, come mode llo di c iò che può essere computato, ha il vantaggio de lla s e mpli
c ità pe rché è pos s ibile rappre s e ntarne pre cis ame nte la configur azione ricorre ndo a una
notazione s imile alle ID di un P DA. Anche un pr ogr amma C ha uno stato, for ma to dalle
var iabili re lative alle funzio ni chc s ono state chiamate in s e que nza, ma la notazione per
de s crive rlo è di gran lunga tr oppo comple s s a per pote rla usare in dimos trazioni for ma li.
Con la notazione de lle macchine di T ur ing dimos tre re mo che certi pr oble mi, appar e n
te me nte dis tanti dalla pr ogr a mma zione tr adizionale , s ono inde c idibili. Per e s e mpio nel
Paragrafo 9.4 mos tre re mo che il “Proble ma de lla Cor r is ponde nza di Post” , una s e mplice
que s tione che conce rne due se que nze di stringhe, è inde c idibile ; que s to pr oble ma pe r
me tte di dimos trare facilme nte l ’inde c idibilità di que s tioni riguardanti le gr ammatiche ,
pe r e s e mpio !’a mbiguità. In modo analogo, quando pre s e nte re mo i pr oble mi intrattabili,
ve dr e mo che alcune que s tioni appare nte me nte lontane da lla c omputa zione (pe r e s e mpio
la s oddis la c ibilità di for mule boole ane ) s ono intrattabili.
mode llo di computazione unive rs ale . Si tratta di un mode llo più s imile a un compute r che
a un pr ogramma, anche se i calcolatori e le ttronici, o anche e le ttrome ccanici, sarebbero
arrivati alcuni anni dopo (e T uring stesso si occupò de lla cos truzione di una ma cchina di
que s to tipo durante la s e conda guerra mondiale ).
E interessante notare che tutte le propos te di mode llo di computazione hanno la stessa
pote nza, cioè calcolano le stesse funzio ni o riconos cono gli stessi linguaggi. L’as s unto
indimos tr abile che qualunque modo generale di computare permette di computare s olo le
funzioni ricors ivc parziali (oppure ciò che le macchine di T uring o i compute r mode rni
pos s ono calcolare , il che è e quivale nte ) è detto ipotesi di Church (dal nome del logico A.
Chur ch) o tesi di Church- T uring.
B B X X X I. X /I B B
L'input, una stringa di lunghe zza finita formata da s imboli scelti d a ll 'alfabeto di input,
vie ne inizialme nte posto sul nastro. Tutte le altre ce lle , che si e s te ndono se nza lim iti a
sinistra e a destra, conte ngono a ll’inizio un s imbolo s pe ciale , detto blank. Il blank è un
simbolo di nastro, ma non di input; oltre ai s imboli di input e al blank, ci pos s ono essere
anche altri s imboli di nastro.
Una testina mobile è collocata su una de lle ce lle del nastro. Dir e mo chc la macchina
di T uring guarda que lla ce lla. A ll’inizio la testina si trova s ulla ce lla p iù a s inistra rispetto
a que lle che conte ngono l’input.
338 Capitolo 8
Una mossa de lla mac china di T uring è una funzione de llo stato de l controllo e del
s imbolo di nastro guardato dalla testina. In una mos s a la mac china di T uring compie tre
azioni.
2. Scrive un s imbolo di nastro ne lla ce lla che guarda. Que s to s imbolo s ostituisce
que llo che si trovava in pre ce de nza ne lla ce lla. Il nuovo s imbolo può essere lo
stesso chc si trova già ne lla ce lla.
3. Muove la tes tina verso sinis tra oppure verso destra. Ne l nos tro for ma lis mo richie
diamo un movime nto: la testina non può rimane re fe rma. Si tratta di una lim ita zio
ne che non incide s ulla capacità computazionale de lla macchina, dato che quals ias i
s e que nza di mosse con testina fìssa si può rias s ume re , ins ie me con la mos s a succes
siva de lla te stina, in un cambio di stato, un nuovo s imbolo di nas tro c un movime nto
a sinistra o a destra.
S: la funzione di transizione. Gli argome nti di S(q, X ) s ono uno stato q e un s imbolo
di nas tro X . Il valore di ó(q , X ) , se de finito, è una tr ipla (p, Y. D), dove:
3. X 1Xo X n è la porzione del nastro tra il s imbolo dive rs o dal blank più a sinistra
e que llo più a destra. Ecce zionalme nte , se la testina è a sinistra del s imbolo diverso
dal blank più a sinistra o a destra di que llo più a destra, allora un prefisso o suffisso
di X i A 2 · · X n sarà cos tituito da blank, c i sarà ris pe ttivame nte 1 o n.
A 1X 2 · · · X i - Iq X iX i^ · · X n h A 1A 2 · · · X l^ p X , - }Y X i+1 · · · A n
M
La notazione riflette il pas s aggio allo stato p e il fatto che ora la testina si trova s ulla cella
i — I. Ci sono due eccezioni importanti.
340 Capitolo 8
q X i ^ 2 · · · X n I- X 2 · · · Xn
M
Suppo nia mo ora che 5(q, X t ) = (p. Y, /?), cioè la pr os s ima mos s a è verso destra. Allor a
X 1 X 2 · · · X ^ 1g X.¿X i+ i · . · X n h X 1X 2 · · · X u i Y p X u i · · · X fl
M
La notazione riflette il fatto che la te s tina si è mos s a verso la ce lla i + 1. Ancora una volta
ci s ono due e cce zioni importanti.
X 1 X 2 · · X n - IflXn H X 1X 2 · · · X n - y Y p B
|VÌ
^ X 1X 2 - .- Xn I- p X , · - Xn
M
Es e m p io 8.2 De finia mo una mac china di T uring e ve diamo come si compor ta su un input
tipico. La T M che cos tr uiamo accetta il lingua ggio {0n l n | ri > 1}. Inizialme nte alla
ma c c hina vie ne data sul nas tro una s e que nza finita di 0 e 1, pre ce duta e seguita da blank.
La T M ca mbia in modo alte rnato uno 0 in X e un I in Y finché tutti gli 0 e gli 1 s ono
abbinati.
P iù pre cis ame nte , parte ndo da ll'e s tr e mità s inis tra de ll'input, ca mbia uno 0 in X e si
muove verso destra su tutti gli O e Y che vede finché arriva a un 1. Ca mbia I’ l in Y
e si muove verso sinistra, s ulle Y e gli 0, finché trova una X . A questo punto cerca
uno 0 imme diatame nte a destra; se ne trova uno, lo ca mbia in X e ripete il processo,
tr as for mando un 1 corris ponde nte in Y .
Se l’input cos tituito dai caratteri dive rs i dal bla nk non si trova in ( Γ Γ , la T M pr ima
o poi non ha una mos sa s ucce s s iva e te rmina s e nza accettare. Se invece conclude la
tr as for mazione di tutti gli 0 in X ne llo stesso giro in cui c a mbia l’ultimo I in Y , allora ha
s tabilito che l ’input è de lla for ma On I n e accetta. La s pe cifica for male de lla T M M è
Simbolo
Stato 0 1 A Y B
<7o (<Z1, X . R) — —
(q ^ y . R ) —
Qi (fI i , 0, R) (<h ,Y ,L ) —
( q i,Y ,R ) —
<12 ( q -2, 0, L) --
(q c ,X ,R ) (Q2 ,Y ,L) —
<13 — -- —
(q - ^ Y R ) (¢ 4 , D , R )
¢4 — -- — — —
F ig u r a 8.9 Una ma c c hina di T uring che acce tta (Or' I " | n > 1 }.
2. Se M vede una Y , tutti gli 0 s ono stati tras formati in A . Sc tutti gli 1 s ono stati
tras formati in Y , allora l’input era di for ma O71I r' e d M deve accettare. Di cons e
gue nza M entra ne llo stato q:i e c ominc ia a muove rs i verso destra, s ulle Y . Se il
pr im o s imbolo dive rs o da una Y che M vede è un blank, allor a il nume r o di 0 e di 1
era lo stesso; dunque M e ntra ne llo stato <74 e accetta. D ’altra parte, se M incontra
un altro 1, allora ci s ono troppi I ed M muore s e nza accettare. M muore anche se
incontra uno 0 (input de lla for ma s bagliata).
Pre s e ntiamo un e s e mpio di c omputa zione accettante da parte di M . Il suo input è 0011.
Inizia lme nte M si trova ne llo s tato q{) e guarda il pr imo 0, cioè la ID inizia le di M è
¢()0011. L’inte ra s e que nza di mos s e di M è:
342 Capitolo 8
Come s e condo e s e mpio cons ide r iamo che cosa fa M s ull'input 0010, che non si trova
ne l lingua ggio accettato.
Es e m p io 8.3 La Figura 8 .10 mos tra il diagr amma di trans izione per la macchina di T uring
de lPEs e mpio 8.2, la cui funzione di trans izione c stata data ne lla Figur a 8.9.
Es e m p io 8.4 Me nue oggi è più comodo pensare alle mac chine di T uring come a dis po
s itivi per riconos cere lingua ggi o, il che è e quivale nte , per risolvere pr oble mi, in origine
T uring cons ide rava la sua mac china come un calcolatore di funzio ni a valori interi. Nel
s uo s che ma gli interi erano rappresentati in codice unar io, come blocchi di un s ingolo ca
rattere, e la macchina computava c a mbia ndo le lunghe zze dei blocchi o cos true ndo nuovi
blocchi altrove sul nastro. In que s to s e mplice e s e mpio mos tre re mo come una macchina
di T uring può calcolare la funzione —, de tta rnonus o sottrazione propria c de finita da
n i — n = m a x (m — n. 0). In altre parole rn — n è rn — n se rn > ri e 0 se rn < n.
La macchina di T uring 343
Yl
( ) / 0 ^ Y/ Y ^
F ig u r a 8.10 Diagr amma di trans izione pe r una T M chc accetta s tringhe de lla for ma On 1n .
Poiché questa T M non viene usata per accettare l’input, abbiamo ome s s o il s e ttimo co m
pone nte, chc c l'ins ie me di stati accettanti. M parte con un nastro su cui è presente la
stringa di input Om IO" preceduta e seguita da blank. M si arresta con Om^ n sul nastro,
circondato da blank.
Lo schema di funzioname nto chc vie ne ripetuto è il seguente: M trova lo 0 re s iduo
più a sinistra e lo sostituisce con un blank. Si sposta allora verso destra, alla ricerca di un
1. Dopo aver trovato un I, continua a destra finché non arriva a uno 0 e lo s ostituisce con
un I. M torna allora verso sinistra ce rcando lo 0 più a sinistra: lo ide ntifica quando si
imbatte per la prima volta in un blank e poi muove di una ce lla verso destra. L’ite razione
si fe rma in uno dei casi seguenti.
1. Ce rcando uno 0 a destra M trova un blank. Allor a gli n 0 in 07" 10'" sono stati tutti
tras formati in 1 e n - f 1 de gli rn 0 sono stati tras formati in D. M sostituisce gli
344 Capitolo 8
2. Co minc ia ndo il cic lo, M non riesce a trovare uno 0 da mutare in un bla nk, dato che
i pr imi m 0 sono g ià stati tras formati in B. Allo r a n > m , e dunque m — n = 0.
M s ostituisce tutti gli I e 0 re s idui con B e finis ce con un nastro comple tame nte
vuoto.
La Figura 8 . 1 1 fornis ce le re gole de lla funzione di tr ans izione Ó, di cui abbia mo la rappre
s e ntazione grafica come diagr amma di trans izione ne lla Figur a 8 .12. Ecco un compe ndio
de l r uolo s volto da ognuno de i sette stati.
qo. è lo stato che dà avvio al ciclo c che lo inte rrompe quando è opportuno. Se M
guarda uno 0, il ciclo de v'essere ripe tuto. Lo 0 vie ne r impia zza to da B, la testina
si muove verso destra e si entra ne llo stato q\ . D'a ltr a parte, se M guarda 1, allora
sono state fatte tutte le pos s ibili c ombina zioni tra i due gr uppi di 0 sul nastro, ed M
va ne llo stato q$ pe r rie mpire il nas tro di blank.
<7i : in que s to stato M muove verso destra attraverso il blocco inizia le di 0, alla ricerca
de lF'l più a sinistra. Do po ave rlo trovato, M passa ne llo stato q-¿.
q-2\ M si muove verso destra s altando gli 1 finché non trova uno 0, che tras forma in
1, per poi volgersi a s inis tra ed entrare ne llo stato q¿. È anche pos s ibile che non
ci s iano 0 dopo il blocco di 1. In tal caso M trova un blank ne llo stato q2. Sia mo
nel cas o ( 1 ) descritto sopra: n s imboli 0 nel s e condo blocco sono stati usati per
cance llare n de gli m s imbo li 0 nel pr imo blocco, c la s ottrazione è comple ta. M
entra ne llo stato ¢4 , il cui s copo è convertire g li 1 sul nastro in blank.
q¿: M si muove verso s inis tra s altando gli 0 e gli 1 finché trova un blank. Qua ndo trova
B si muove verso destra e ritorna ne llo stato <70, dando nuovame nte avvio al ciclo.
q4\ qui la s ottrazione è comple ta, ma uno 0 non appaiato ne l pr imo blocco è stato
tras formato e rrone ame nte in un B . M si muove dunque verso sinis tra tras formando
gli I in B finché si imbatte in un B sul nastro. Ritr as for ma il B in 0 ed entra ne llo
stato <76, dove si arresta.
q$: si entra ne llo stato 55 a partire da qo quando tutti g li 0 del pr imo blocco s ono stati
tras formati in B. In que s to caso, descritto in (2), il ris ultato de lla s ottrazione è 0.
M tras forma tutti gli 0 e gli 1 re s idui in B ed entra ne llo stato q
qcy: l’unico s copo di que s to stato è permettere a M di arrestarsi quando ha finito il suo
lavoro. Se la s ottrazione fosse stata una s ubroutine di una funzione più comple s s a,
allora q$ avrebbe inizia to il passo success ivo de lla computazione più ampia.
La macchina di T uring 345
Sim b o lo
Stato 0 1 B
Qo (qò.B , lì) —
{q \ , 0, R ) ( f c , l , Λ) —
Qi
Q-2 [q - ,λh L ) (0 2 , 1, Λ ) (q4, B , L )
<73 (¢/3:0, L ) ( ® i,l,¿ ) (Qo- Ti, R)
¢4 (¢4 ,0 , L) (q ^ B ,L ) (¢6,0,7?,)
Qr, [Qó - B .R ) (qr>,B ,R) (to, B , Jl)
Qc, — — —
F ig u r a 8.11 Una ma c c hina di T ur ing che ca lc ola la funzio ne di s ottrazione propr ia.
BI B
1/ 1
I / B I / B
2. Le lettere maius cole , di s olito in pros s imità de lla fine d e ll’alfabe to, sono
usate per i s imboli di nastro che pos s ono essere o no s imboli di input.
Es e mpio 8.5 La macchina di T uring M de ll’Es e mpio 8.4 non è stata de finita pe r acce t
tare un linguaggio. L'a bbia mo vis ta piutlos to ne l suo as petto di calcolo di una funzione
aritme tica. Notiamo pe rò che M si arresta su tutte le s tringhe di 0 e 1 perché, a pre s cin
dere da quali s tringhe trova sul nas tro, finis ce per cance llare il s e condo gruppo di 0 , se
lo trova, a fronte del pr imo gruppo di 0. Di cons e gue nza deve raggiunge re lo stato qo e
arrestarsi.
Pos s iamo sempre assumere che una T M si arresti se accetta. In altre parole , s e nza
cambiare il linguaggio accettato, pos s iamo rendere S(q, X ) inde finito per ogni q accet
tante. In generale, senza s pe cificarlo e s plicitame nte ,
• as s umiamo che una T M si arresti sempre quando si trova in uno stato accettante.
Purtroppo non c sempre pos s ibile richiedere che una T M si arresti, anche se non ac
cetta. I linguaggi per cui esiste una macchina di T uring che pr ima o poi si arresta, in
dipe nde nte me nte d a ll’accettare o no, s ono delti ricorsivi, e ne s tudie re mo le pr opr ie tà a
partire dal Paragrafo 9.2.1. Le macchine di T uring che si arres tano sempre, a prescindere
dal fatto che acce ttino o no, s ono un buon mode llo di “a lgor itmo” . Se esiste un a lgo
r itmo per risolvere un dato pr oble ma, dic ia mo che il pr oble ma è “de cidibile ” . Le T M
che si arrestano sempre hanno dunque un posto importante ne lla teoria de lla de c idibilità
(Ca pitolo 9).
8.2.7 Esercizi
Es e rcizio 8.2.1 Scrivete le ID de lla macchina di T uring de lla Figura 8.9 quando il nastro
di input contie ne :
* a) 0 0
b) 000111
c) 00111.
! Es e rcìzio 8.2.2 De finite una macchina di T uring per ognuno de i seguenti lingua ggi.
Es e rcizio 8.2.3 De finite una mac china di T uring che pre nda come input un nume ro A7 e
vi aggiunga 1 in binario. Per la pre cis ione il nastro contie ne inizialme nte un $ s e guito da
N in binar io. All'in iz io la testina guarda il $ ne llo s talo qo. La T M dovre bbe arrestarsi
348 Capitolo 8
con N + 1 , in binario, sul nastro, guardando il s imbolo più a sinistra di N + I, ne llo stato
<7/ . Se necessario potete cance llare il $ nel corso del calcolo. Per e s e mpio e /oSlOOll r
$ (//1 0 1 0 0 e <7o $11 111 £ ¢ / 1 0 0 0 0 0 .
a) Scrivete le trans izioni de lla vostra macchina di T uring e spiegate lo scopo di cia
scuno stato.
b) Mostrate la s e que nza di ID de lla vostra T M quando le viene dato l’input $111.
Es e r cizio 8.2.4 In questo esercizio e s ploriamo l’e quivale nza tra la computazione di fun
zioni e il riconos cime nto di linguaggi per le macchine di Turing. Per s e mplicità cons ide
r iamo solo funzioni da interi non ne gativi a interi non ne gativi, ma le idee soggiace nti a
questo proble ma si applicano a quals ias i funzione computabile . Ecco le due de finizioni
cruciali.
• 11 grafo di una funzione / sia l'ins ie me di tutte le stringhe de lla forma [x, f(x)\ ,
dove X è un intero non ne gativo in binario e f { x ) è il valore de lla funzione / con
argome nto x, scritto in binario.
• Si dice che una macchina di T uring computa la funzione f se, partendo da un intero
non negativo x sul nastro, in binario, si arresta (in qualunque stato) con f (x ), in
binario, sul nastro.
a) Mos trate come, data una T M che computa / , si può costruire una T M che accetta
il grafo di / come linguaggio.
b) Mos trate come , data una T M che accetta il grafo di / , si può costruire una T M chc
computa f .
c) Si dice che una funzione è parziale se può essere inde finita su certi argome nti. Se
e s te ndiamo le idee di que s to es ercizio alle funzioni parziali, non richie diamo che
la T M che computa / si arresti qualora il suo input x sia uno degli interi per cui il
valore f (x ) non è de finito. Le vostre cos truzioni per le parli (a) e (b) sono valide se
la funzione / è parziale ? In caso negativo spiegate come modificare la cos truzione
in modo che funzioni.
Es e m p io 8 .6 De finia mo una T M
che ricorda nel controllo il pr imo s imbolo letto (Oo 1) e ve rifica che non r icompaia ne l
l’input. M accetta dunque il ling ua g gio U lt - I- 10*. Il riconos cime nto di un lingua ggio
350 Capitolo 8
F ig u r a 8.13 Una mac c hina di T ur ing con me mor ia ne l contr ollo e tracce multiple .
re golare come que s to non s frutta a fondo le capacità de lle mac chine di T ur ing, ma serve
da e s e mpio.
L’ins ie me de gli stati Q è {qo, q i } x (0 . L B ). Og n i s tato c compos to di due parti.
a) Una parte di controllo, q0 o </i, che indica che cosa sta face ndo la T M. Lo stato
di contr ollo q0 indica che M non ha ancora le tto il pr imo s imbolo; <71 indica che
l ’ha letto e sta ve rificando, s pos tandos i verso de s tra fino a una ce lla vuota, che que l
s imbolo non r icompaia altrove.
Es e mp io 8.7 Un impie go comune de lle tracce multiple è di destinarne una ai dati e una
s e conda a opportuni s e gnali. Pos s iamo “spuntare” i s imboli a mano a mano che li “us ia
mo” o marcare certe pos izioni con un segnale. Ne gli Es e mpi 8.2 e 8.4 ci s iamo vals i
di questa te cnica, pur se nza cons ide rare e s plicitame nte il nastro come divis o in tracce. In
questo e s e mpio ci s e rviamo di una s e conda traccia e s plicita per riconoscere un lingua ggio
non libe ro dal contesto:
L Wc.w — {w cw | u’ è in ( 0 + 1 )+ }
Q : l ’ins ie me de gli stati ò {<?i, q ?,. . . . q$} x {(), I, B ), cioè le coppie formate da uno
stato di controllo q¿ e da una compone nte di dati, 0, 1 o B . Ci s e rviamo nuovame nte
de lla me mor ia ne l controllo e facciamo in modo che lo stato ricordi un s imbolo di
input, 0 o I .
Σ : i s imboli di input sono [B, 0] c [7?, 1 ], che ide ntifichiamo ris pe ttivame nte , come
s piegato, con O e L
Capitolo 8
la funzione di trans izione δ è de finita dalle regole s e gue nti, in cui a e b pos s ono
valere 0 ο 1 .
1 . ό'([<3 , Β], [B, a] ) = ([ ¢2 - ®], K a] , R)· Ne llo stato inizia le M legge il s imbolo
a (che vale O o 1), lo de pone nel controllo, va ne llo stato di contr ollo q-¿,
“vis ta” il s imbolo appe na letto e si sposta a destra. Notia mo che il “vis to” si
ottiene cambiando da B a * il pr imo compone nte del s imbolo di nastro.
2 . ¿([<72,«] , [B, ò]) = ([<72, a] , [ B. &]. R). M si sposta verso destra in cerca del
s imbolo c. Ric or diamo che sia a sia b pos s ono valere, indipe nde nte me nte , 0
o 1 , ma non c.
3. ¿([</2 , a], [B, c]) = ([<73, o] , [ B,c ] ,.R). Qua ndo legge c , M pros egue verso
destra, ma cambia in q:i lo stato di controllo.
4. <5([<73,a] , [*,&]) — ([<73, a] , [*, 6], R). Ne llo stato <73, M prosegue, s upe rando
tutti i s imboli vis tati.
5. ¿([<73, α] , [B, a] ) = {{q\ . B\ , [*, a] , L ). Se il pr imo s imbolo non vis tato che M
trova coincide con que llo ne l controllo, lo vista, pe rché si abbina con il s im
bolo corris ponde nte ne l pr imo blocco di 0 e I. M va ne llo stato di controllo
<74, e limina il s imbolo dal controllo c c ominc ia a muove rs i verso sinistra.
6 . ¿([<74, B i, [*, 0.]) = ([<74, B], [ *,a ] .L). A l oltre pass a verso sinistra i s imboli
vis tati.
7. ¿([ (/ 4 , B\ , [B, <;]) = ([qs ,B\ ,[B,c],L). Qua ndo incontra il s imbolo c, M va
ne llo stato <75 e pros e gue verso sinistra. Ne llo stato <75, M deve prendere una
de cis ione , a s e conda chc il s imbolo imme diatame nte a sinistra di c sia o no
vis tato. Se è vis tato, M ha g ià e s aminato l’inte ro pr imo blocco di O e 1, que llo
a sinistra di c. De ve allora accertarsi che anche tutti gli O c gli 1 a destra di c
s iano vistati e, in tal caso, accettare. Se il s imbolo imme diatame nte a sinistra
di c non è vis tato, M trova il s imbolo non vis tato più a sinistra, lo me mor izza
e r icomincia il ciclo avviato in q\ .
9. ¿([ fle, B], [B , a] ) — ([<7^, B ], [ 7?.a] , L). Finché i s imboli non s ono vis tati. M
resta ne llo stato qo e si sposta a sinistra.
10. ¿([ ge, B\ , [ *,α] ) = ([ </i,£?] , [ *,a] , J?). Qua ndo trova il s imbolo vis tato, M
entra ne llo stato </1 e si sposta a destra pe r me morizzar e il pros s imo s imbolo
non vistato.
T ecniche di programmazione per le macchine di T uring 353
11. ó ([ ^ 5. B], [*, a ] ) = (fc/7, Bj, [ *, a] , 11). Or a M tratta il caso in cui da llo stato
<73 si è appe na spostata a sinistra di c e trova un s imbolo vistato. A l r icominc ia
a muove rs i verso destra entrando ne llo stato (¡γ.
12. <S([<77, B\ , [ /?, e]) = ({qs, B], [ B, c], R). Ne llo stalo q- , A l vede ce rtame nte c.
Allo stesso te mpo entra ne llo stato q$ e prosegue verso destra.
13. ¿([ t/s, B\ , [*, «] ) = ([ ρ8, B], [*, a] , R). A l si sposta ne llo stato oltre pas s an
do quals ias i 0 ο 1 vistato.
14. ó([q$, B\ , [B , B]) = ([<79, B] , [B . B], 11). Se raggiunge una ce lla vuota ne llo
stato q& senza incontrare alcuno 0 ο 1 non vis tato. A l accetta. Sc invece
incontra uno 0 o un 1 non vis tato, i blocchi pr ima e dopo c non coincidono:
A l si arresta senza accettare.
8.3.3 Subroutine
Come per i pr ogrammi in genere, convie ne pensare che una ma cchina di T uring sia un
ins ie me di parti, o “s ubroutine ”, che inte ragis cono. Una s ubroutine di una macchina di
T uring è un ins ie me di stati che e s e guono una procedura. In que s to ins ie me dis tinguia mo
uno stato inizia le e uno stato te mporane ame nte se nza mosse, che serve da stato di "r i
torno” pe r passare il controllo a un altro ins ie me , que llo che ha chiamato la s ubroutine .
Par liamo di “chiamata” a una s ubroutine quando c ’è una trans izione al suo stato inizia
le. Poiché la T M non ha modo di ricordare un “indir izzo di ritorno”, cioè lo stato in cui
andare al te r mine di una s ubroutine , se vogliamo chiamare una s ubroutine da stali diversi
dobbia mo fame p iù copie , con un nuovo ins ie me di stati per cias cuna. Le “chiamate ” por
tano agli stati inizia li di copie diverse de lla s ubroutine ; ogni copia “ritorna” a uno stato
diverso.
1. Il nastro os pita, in generale, una s tringa non vuota de lla forma Ot IOwIOfcn pe r un
certo k.
8.3.4 Esercizi
! Es e rcizio 8.3.1 Ride finite le macchine di T uring d e ll’Es crcizio 8.2.2 s fruttando le te cni
che di programmazione descritte nel Paragrafo 8.3.
* Es e rcizio 8.3.3 Scrivete una s ubroutine che sposti la testina di una T M dalla pos izione
corrente verso destra, s altando gli 0 fino a raggiunge re un I o un blank. Se la pos izione
corrente non contie ne uno 0, la s ubroutine deve arrestarsi. Potete assumere che i s imboli
di input s iano s olo 0, I e B (blank). Servitevi de lla s ubroutine per definire una T M che
accetta le stringhe di 0 e 1 che non hanno due 1 cons e cutivi.
Tecniche di programmazione per le macchine di T uring
1/1 -* ■ l/l
0/0 0/0
F ig u r a 8.14 La s ubroutine C o p y .
1. L'input, una s e que nza finita di s imboli di input, si trova sul pr imo nastro.
5. Le altre testine si trovano su ce lle arbitrarie. Poiché i nastri, eccetto il pr imo, so
no bianchi, la pos izione iniziale de lle loro testine è irrilevante: tutte Ic ce lle s ono
e quivale nti.
Una mos s a di una T M multinas tr o dipe nde dallo stato e dai s imboli letti da cias cuna
testina. In una mos s a la macchina compie tre ope razioni.
1. Il contr ollo entra in un nuovo stato, che può coincide re con que llo corrente.
2. Su ogni ce lla guardata da una te s tina viene scritto un nuovo s imbolo di nastro, che
può essere que llo già conte nuto ne lla cella.
3. Og ni te s tina si muove a sinis tra o a destra, oppure sta ferma. 1 movime nti s ono
indipe nde nti: testine diverse si pos s ono muovere in dir e zioni diverse o star ferme.
Estensioni alla macchina di T uring semplice 357
Non dare mo la de finizione formale de lle regole di trans izione , che s ono una ge ne r alizza
zione imme diata di que lle per le T M mononas tro, tranne che per la dire zione , che qui è
indicata dai s imboli L (s inis tra), R (destra) ed S (fe rma). Ne lla macchina mononas tro che
a bbiamo de finito la testina non può stare ferma: manca quindi il s imbolo S. Las ciamo al
lettore il compito di escogitare una notazione formale appropriata per le de s crizioni is tan
tanee de lla confìgurazionc di una T M multinas tro. Le macchine di T uring multinas tr o
acce ttano e ntrando in uno stato accettante come que lle mononas tro.
nastro è diviso in 2 k tracce. Metà delle tracce replicano i nastri di M ; ognuna delle restanti
ospita un marcatore chc indica la posizione corrente della testina del corrispondente nastro
di Al . Nella Figura 8.17 ipotizziamo k = 2. La seconda e la quarta traccia replicano il
contenuto del primo c del secondo nastro di A l ; la traccia 1 reca la posizione della testina
del nastro 1; la traccia 3 la posizione della testina del secondo nastro.
F ig u ra 8.17 Simulazione di una macchina di Turing con due nastri per mezzo di una
macchina di Turing mononastro.
Per simulare una mossa di M , la testina di N deve visitare i k marcatori. Per non smarrirsi,
iV deve tener conto di quanti marcatori stanno alla sua sinistra in ogni istante; il contatore
è conservato com e componente del controllo di Λτ. Dopo aver visitato ogni marcatore e
memorizzato, in una componente del controllo, il simbolo nella cella corrispondente, N
sa quali simboli di nastro sono guardati dalle testine di Al . Inoltre N conosce lo stato di
Ai , memorizzato nel suo controllo. Perciò Ar può stabilire la mossa successiva di M .
Ora N rivisita ogni marcatore, modifica il simbolo sulla traccia che rappresenta il
nastro corrispondente di M e sposta, se richiesto, ciascun marcatore a destra o a sinistra.
Infine cambia lo stato di M registrato nel suo controllo. A questo punto N ha simulato
una mossa di Al .
Gli stali accettanti di N sono quelli in cui è registrato uno stato accettante di Al . In
questo modo N accetta quando, e solo quando, Al accetta.
Estensioni alla macchina di Turing sem plice 359
a) La differenza fra tempo polinomiale e tassi di crescita più alti è lo spartiacque fra
problemi risolvibili e problemi irrisolvibili nella pratica con un calcolatore.
stimare solo a meno di un polinomio. Perciò nel valutare il tempo necessario per
risolvere un problema non è fondamentale distinguere fra una TM mononastro o
una multinastro.
Teorema 8.10 II tempo necessario alla TM mononastro N del Teorema 8.9 per simulare
n mosse della TM con k nastri M è 0 ( n 2 ).
DIMOSTRAZIONE Dopo n mosse di M i marcatori delle testine non possono essere distanti
fra loro più di 2n celle. Perciò, partendo dal marcatore più a sinistra, per trovarli tutti N
non deve spostarsi di più di 2 n celle a destra. A quel punto può tornare verso sinistra
modificando il contenuto dei nastri simulati di M e spostando i marcatori a sinistra o a
destra. Questa operazione non richiede più di 2 ri movimenti a sinistra, oltre a non più
di 2 k mosse nell’altra direzione per scrivere un marcatore X nella cella a destra (se una
testina di M si sposta a destra).
Quindi il numero di mosse che N deve fare per simulare una delle prime n mosse non
supera An 4- 2 k . Poiché k è una costante, indipendente dal numero di mosse simulate,
questo numero è 0 ( n ) . La simulazione di n mosse richiede non più di n volte quella
quantità, cioè 0 ( n 2).
dove A: c un intero linito. A ogni passo una NTM sceglie una delle triple come mossa.
Non può però scegliere lo stato da una tripla, il simbolo di nastro da u n’altra e la direzione
da una terza.
Il linguaggio accettato da una NTM M è definito in m odo analogo ad altri modelli
non deterministici già trattati, come gli NFA e i PDA: M accetta un input w se c ’è una
sequenza di scelte che conduce dalla ID iniziale con w comc input a una ID con stato
accettante. Come per gli NFA e i PDA, l’esistenza di scelte alternative che non portano a
uno stato accettante è irrilevante.
Le NTM non accettano linguaggi che non siano accettati anche da TM determ inisti
che (o DTM. se intendiamo sottolinearne il carattere deterministico). La dimostrazione
consiste nel costruire, per ogni NTM M n , una DTM M o che esam ina le ID raggiungibili
da M n per tutte le scelte possibili. Se M d ne trova una con stato accettante, entra in uno
Estensioni alla macchina di Turing sem plice 361
dei propri stati accettanti. M d deve procedere sistem aticam ente, collocando Ic nuove ID
in una coda anziché in uno stack, in modo da simulare in un tempo finito tutte le sequenze
di k mosse di M.\ , per k = 1 ,2 , —
Teorema 8.11 Se M À\< è una macchina di Turing non determ inistica, esiste una m acchina
di Turing determ inistica M d tale che L ( M v ) = L ( M d ) .
DIMOSTRAZIONE Costruiam o M d com e TM multinastro, secondo lo schema della Figu
ra 8.18. Il primo nastro di M d contiene una sequenza di ID di M,\ chc com prendono lo
stato di Mm- Una ID di Λ /γ ò contrassegnata come “corrente”, nel senso che le sue ID
successive sono in corso di elaborazione. Nella Figura 8 .18 la terza ID è m arcata da un x
e dal separatore di ID, *. Tutte le ID a sinistra della ID corrente sono già state elaborate e
si possono ignorare.
ausiliario
1. Esam ina lo stato e il sim bolo guardato della ID corrente. Nel controllo di M d sono
incorporate le scelte di mossa di Mjv per ogni stato e simbolo. Se lo stato nella ID
corrente è accettante, M d accetta e smette di simulare Λ/,γ.
3. M d modifica ognuna delle k ID secondo una delle k scelte di mossa chc Λ/.γ può
fare dalla ID corrente.
362 Capitolo 8
La fedeltà della simulazione dovrebbe essere evidente: M p accetta solo se scopre chc
M n può raggiungere una ID accettante. Dobbiamo però essere certi che se M n entra
in una ID accettante dopo una sequenza di n mosse, quella ID diventa prima o poi la ID
corrente di M d , che quindi accetta.
Sia τη il massimo numero di scelte di M n nelle sue configurazioni. Allora in M n
ci sono una ID iniziale, non più di r n ID raggiungibili in una mossa, non più di rn 2 ID
raggiungibili in due mosse, e così via. Dopo ri mosse, M n può aver raggiunto al massimo
I -I- rn + m 2 + ----- h m n ID. Questo numero non supera n m n .
M o esplora le ID di M n nell'ordine detto “in ampiezza” : prima tutte le ID raggiun
gibili in 0 mosse (la ID iniziale), poi quelle raggiungibili in una mossa, poi quelle in due
mosse, c così via. In particolare M L) fa diventare corrente, esaminandone le successive,
ogni ID raggiungibile in non più di n mosse prima di elaborarne una raggiungibile in più
di n mosse.
Di conseguenza la ID accettante di M n viene considerata da M o fra le prime m n " .
A noi imporla solo che M o elabori questa ID dopo un tempo finito; il limite che abbiamo
stabilito garantisce che prima o poi quella ID sarà elaborata. Perciò se M n accetta, accetta
anche Μ υ . Poiché abbiamo già notato che M o accetta solo sc M n accetta, concludiamo
che L ( M n ) = L ( M d ).
Si osservi che la TM determ inistica così costruita può impiegare un tempo esponen
zialmente più alto della TM non deterministica. Non sappiamo se questo rallentamento
esponenziale sia inevitabile. Il Capitolo 10 c dedicato proprio a questo problema c alle
conseguenze dell’eventuale scoperta di una simulazione più efficiente.
8.4.5 Esercizi
Esercizio 8.4.1 P ero g n i linguaggio dcll’Esercizio 8.2.2 descrivete, informalmente ma
chiaramente, una macchina di Turing multinastro che lo accetti. Cercate di avere tempi di
esecuzione proporzionali alla lunghezza dell'input.
ó 0 I B
Qo {(<?o,l, R)} { (9 i,0 , /?)} 0
Qi {(<7i,0, R), (</o,0. L)} {(¢ 1, 1. R), (¢0, L I ) } {(</2<B,R)}
<72 0 0 0
* a) Ol
b) Oli.
Esercizio 8.4.3 Per ognuno dei seguenti linguaggi definite, informalmente ma chiara
mente, una macchina di Turing non deterministica, eventualm ente multinastro, chc lo
riconosca. Cercate di utilizzare il non determ inism o per evitare le iterazioni e rispar
miare tempo (nel senso non determ inistico). In altre parole ideate una NTM con tante
diram azioni brevi.
b) Il linguaggio di tutte le stringhe della forma W i · · · # « 'n , per ogni n , tali che
ogni Wi è una stringa di 0 e L e per qualche j , Wj è l ’intero j in binario.
c) Il linguaggio di tutte le stringhe della stessa forma di (b), ma tali che, per alm eno
due valori di j , Wj è uguale a j in binario.
Esercizio 8.4.5 Considerate una TM non determ inistica con nastro infinito in ambedue le
direzioni. In un dato istante il nastro è com pletam ente bianco, tranne per una cella, che
contiene il simbolo $. La testina guarda una cella bianca e lo stato è q.
a) Scrivete le transizioni che fanno entrare la NTM nello stato p mentre guarda il $.
! b) Supponete ora che la TM sia determ inistica. Come fare per farle trovate il $ ed
entrare in p i
Esercizio 8.4.6 Definite la m acchina di Turing a due nastri descritta sotto, che accetta il
linguaggio delle stringhe di 0 e I con lo stesso num ero dei due simboli. Il primo nastro
contiene l ’input cd è percorso da sinistra a destra. Il secondo contiene gli 0 o gli 1 in
eccesso nella porzione di input già letta. Specificate gli stati e le transizioni, e lo scopo di
ogni stato.
364 Capitolo 8
Esercizio 8.4.7 In questi esercizi realizziamo uno stack mediante una speciale TM a tre
nastri.
3. Il terzo nastro è il nastro di output. Ogni simbolo tolto dallo stack dev’essere scritto
sul nastro di output, in coda a quelli scritti in precedenza.
La macchina deve partire con lo stack vuoto c compiere la sequenza di operazioni “togli”
e "m etti” specificata in input, leggendo da sinistra a destra. Se l’input chiede di togliere
da uno stack vuoto, la TM deve arrestarsi in uno stato di errore qe . Se l’intero input lascia
lo stack vuoto, la TM lo accetta entrando nello stato finale q ¡. Descrivete, informalmente
ma chiaramente, la funzione di transizione della TM. Dichiarate lo scopo di ogni stato.
Esercizio 8.4.8 Nella Figura 8.17 abbiamo visto un esempio della simulazione generica
di una TM a k nastri da parte di una TM mononastro.
* a) Supponete di usare quella tecnica per simulare una TM a cinque nastri con alfabeto
di nastro di sette simboli. Quanti simboli di nastro ha la TM mononastro?
* b) Un modo alternativo di simulare k, nastri con uno solo prevede l’uso di una (k - f 1)-
esima traccia per memorizzare le posizioni delle k testine, mentre le prime k tracce
simulano i k nastri nel modo ovvio. Si noti che nella (k + l)-esim a traccia si deve
fare attenzione a distinguere Ie testine e a trattare il caso in cui due testine sono nella
stessa posizione. Questo metodo riduce il numero di simboli di nastro necessari per
la TM mononastro?
c) Un altro modo di simulare k nastri con uno solo evita di memorizzare le posizioni
delle testine. La (A’-I-1)-esima traccia si usa per marcare una cella del nastro. A ogni
istante ciascun nastro simulato è collocalo sulla traccia corrispondente in modo che
la testina si trovi sulla cella marcata. Se la TM a k nastri sposta la testina del nastro
i , la TM simulante fa scorrere l’intera porzione non bianca dell’¿-esima traccia di
una cella nella direzione opposta, così che la cella marcata corrisponda sempre a
quella guardata dalPi-esim a testina della TM a k nastri. Questo metodo riduce il
numero di simboli di nastro della TM mononastro? Ha qualche difetto rispetto agli
altri metodi discussi?
! Esercizio 8.4.9 Una macchina di Turing a k testine è dotata di k testine sullo stesso nastro.
Ogni sua mossa dipende dallo stato e dal simbolo chc ogni testina guarda. In una mossa la
Macchine di Turing ridotte 365
TM cambia stato, scrive un nuovo simbolo su ogni cella guardata da una testina e sposta
ogni testina a sinistra o a destra, o la lascia ferma. Poiché più testine possono guardare la
stessa cella, assumiamo che le testine siano numerate da 1 a k c chc in una cella rimanga
scritto il simbolo della testina con il numero più alto. Dimostrate che i linguaggi accettati
dalle macchine di Turing a k testine sono quelli accettati dalle TM ordinarie.
Esercizio 8.4.10 Una macchina di Turing bi di mens i onal e ha il solito controllo a stati
finiti, ma il suo nastro è una griglia bidimensionale di celle, infinita in tutte le direzioni.
L’input è collocato su una riga, con la testina al suo estremo sinistro e il controllo nello
stato iniziale. La macchina accetta entrando in uno stato finale. Dimostrate che i linguaggi
accettati dalle macchine di Turing bidimensionali sono quelli accettati dalle TM ordinarie.
destra. La traccia inferiore rappresenta le celle a sinistra della posizione iniziale, in ordi
ne inverso. La disposizione è illustrata nella Figura 8.19. La traccia superiore rappresenta
le celle X (), X y i . . ., dove X o è la posizione di partenza della testina c X 1, Xo , e così via,
sono le celle alla sua destra. Le celle X - X o ,e così via, rappresentano le celle a sini
stra della posizione iniziale. 11 simbolo * nella cella più a sinistra della traccia inferiore
segnala la fine della traccia e impedisce che la testina “cada” accidentalmente dal bordo
sinistro del nastro semi-infinito.
*0 *1 *2 ...
* *- 2
. ..
Figura 8.19 Un nastro semi-infinito può simulare un nastro infinito nelle due direzioni.
AZ1 = (Q 1, Σ X { B } , r u S , , Q0^ B i B l F 1)
Qi : gli stati di M i sono {go, gì} U (Q 2 x { U, L }). Essi comprendono lo stato iniziale
go, un secondo stato gj e tutti gli stati di AZ2 con un secondo componente, di valore
U (superiore) o L (inferiore). Il secondo componente indica se AZ2 guarda la traccia
superiore o quella inferiore (vedi Figura 8.19). In altre parole U significa che la
testina di M 2 è sulla sua posizione iniziale o alla sua destra; L significa che è a
sinistra.
1. «h (go, [a, B ]) = (gl5 [«. *],/?) per ogni a in Σ. La prima mossa di M 1 colloca
il segno * sulla traccia inferiore della cella più a sinistra. Lo stalo diventa q\ e
la testina si sposta a destra perché non può andare a sinistra né restare ferma.
2. 5 i(g i, [ X, β ]) = ([g2, U], \ X, B\ ,L) per ogni X in T2- Nello stato q i , M 1
riproduce le condizioni iniziali di Ai2 riportando la testina alla posizione ini
ziale ed entrando nello stato [g2. Γ7], lo stato iniziale di AZ2, con la testina che
legge la traccia superiore di AZ1.
3. Se <52(g .X ) = (ρ, Y, D ), allora per ogni Z in F 2:
(a) ¿ ,( ( ,,i/] , [ X Z ) ) = ( [ p ,i/],[ y ,Z ] ,B )
(b) ¿1(1«, ¿I. [z, X!) = (Ip, ¿I, IZ, n Dì
dove D è la direzione opposta a D, cioè L se D = B., ed l ì se D = L. Se non
si trova al bordo sinistro, M 1 simula AZ2 sulla traccia opportuna: la superiore
se il secondo componente dello stato è U, Finferiore se è L. Notiamo chc
AZ1, quando opera sulla traccia inferiore, si muove nella direzione opposta
a quella di AZ2. Infatti la metà sinistra del nastro di AZ2 è stata ripiegata, e
quindi rovesciata, lungo la traccia inferiore del nastro di M 1.
4. Se ¿2(<7< X ) = (p, Y- l ì ), allora
*i([<7, L], [X, *]) = ¿1 ([,Ί, U] , [X, *]> = ([p, L\ , [Y. *], R )
F 1: gli stati accettanti h\ sono gli elementi di F 2 x { U, L } , ossia gli stati di M i il cui
primo componente è uno stato accettante di M 2. Nel momento in cui accetta, Ai1
può puntare alla traccia superiore o a quella inferiore.
Input A ccetta/rifiu ta
nastro o su uno stack come fa una TM. Una macchina multistack ha un controllo finito,
cioè uno stalo preso da un insieme finito; ha un alfabeto di slack finito, lo stesso per tutti
gli stack; ogni sua mossa dipende da tre elementi.
1. Lo stato di controllo.
a) Cambia stato.
b) Sostituisce i simboli in cima agli stack con stringhe di zero o più simboli. Le
stringhe sostituenti possono essere (e di solito sono) diverse da uno stack all’altro.
La tipica regola di transizione per una macchina con k stack ha quindi questa forma:
La interpretiamo così: nello stato q, con X i in cima alT ¿-esimo stack (per i = 1 , 2 , . . . . k ),
la macchina può consumare a (un simbolo di input o e) dall'input, passare allo stato p,
370 Capitolo 8
Si sfrutta il fatto chc due stack possono simulare il nastro di una mac
d i m o s t r a z i o n i *;
china di Turing; uno stack conserva ciò che sta a sinistra della testina, l'altro ciò che sta
a destra (sono escluse le stringhe infinite di blank oltre i simboli diversi dal blank più
a sinistra e più a destra). In dettaglio, sia L — L ( M ) per una TM M con un nastro.
Descriviamo le operazioni della macchina con due stack 5 .
1. S com incia con un indicatore di fondo stack su ogni stack. Questo indicatore può
essere il simbolo iniziale degli stack e non può com parire altrove. Nel seguito
diremo che “uno stack è vuoto” quando contiene solo l’indicatore di fondo.
2. Sia wS l’input di S . S copia w nel primo stack fermandosi quando legge il segnale
di fine dell’input.
3. S toglie, uno per volta, i simboli dal primo stack c li inserisce nel secondo. Ora il
primo stack è vuoto, mentre il secondo contiene w , con l’estremo sinistro in cima.
4. S entra nello stato iniziale (simulato) di M . 11 suo primo stack è vuoto, a rappresen
tare il fatto che a sinistra della cella guardata dalla testina di M ci sono solo blank.
11 secondo stack di S contiene w , a rappresentare il fatto che w occupa le celle del
nastro di M , quella guardata dalla testina e quelle alla sua destra.
1. Una macchina con la stessa struttura delle macchine multistack (Figura 8.20), ma
con un contatore al posto di ogni stack. I contatori memorizzano interi non negativi,
ma possiamo distinguere solo un valore nullo da uno non nullo. Dunque la mossa
di una macchina a contatori dipende dallo stato, dal simbolo di input e da quali
contatori, se cc nc sono, hanno valore nullo. In una mossa la macchina compie due
operazioni.
(a) C am biastato.
(b) Somma o sottrae 1 da un contatore. Poiché' un contatore non può diventare
negativo, la macchina non può sottrarre 1 da un contatore nullo.
(a) Ci sono due soli simboli di stack, che denoteremo Z 0 ( i ndi cat ore di f ondo
st ack) c X .
(b) A ll’inizio ogni stack contiene Z (>.
372 Capitolo 8
(c) Possiamo sostituire Z q solo con una stringa della forma X 1Z q per un i > 0.
(d) Possiamo sostituire X solo con X i per un i > 0. Il simbolo Z q può quindi
trovarsi soltanto in fondo agli stack; ogni altro sim bolo nello stack è X .
enumcrabilc è accettato da una macchina con due stack. Dobbiamo spiegare come si
simula uno stack tramite contatori. Supponiamo che la macchina a stack usi r — 1 simboli
di nastro. Possiamo identificarli con le cifre da I a r - I e trattare uno stack X y X 2 · · · X n
come un intero in base r. Lo stack, con la sommità a sinistra come al solito, sarebbe
dunque rappresentato dall’intero X n r n~ 1 + X n i r n ~'2 -1------- 1- X 2r + Xi -
Ci serviamo di due contatori per memorizzare gli interi che rappresentano i due stack.
Il terzo contatore serve a regolare gli altri due. In particolare serve a dividere o moltipli
care un numero per r.
Le operazioni su uno stack sono di tre tipi: togliere il simbolo alla sommità, scambiar
lo con un altro, immettere un nuovo simbolo. Una mossa della macchina con due stack
può richiedere più di un’operazione; in particolare la sostituzione del simbolo alla som
mità, X , con una stringa si divide nella sostituzione di X e nel successivo inserimento di
simboli. Descriviamo ora come svolgere queste operazioni su uno stack rappresentato da
un valore i . Notiamo chc per compiere un’operazione che richiede di contare fino a r, o
meno, si può usare il controllo della macchina multistack.
1. Per togliere un simbolo dallo stack dobbiamo sostituire i con i j r scartando l'even
tuale resto, che è l i . Partendo con il valore 0 nel terzo contatore, sottraiamo ripe
tutamente T da i sommando 1 al terzo contatore. Ci fermiamo quando il contatore
che valeva i raggiunge lo 0. Ora sommiamo ripetutamente 1 al contatore originale
sottraendo 1 dal terzo finché il terzo ritorna a 0. A questo punto il contatore che
valeva i vale i j r .
2. Per scambiare X con Y in cim a a uno stack rappresentato dai valore i , aumentiamo
o diminuiamo i di una quantità non più grande di r (ricordiamo chc in cim a allo
stack c ’è la cifra meno significativa n.d.r.). Sc Y > X sommiamo Y — A' a /; se
invece Y < X sottraiamo A' — Y da i.
3. Per immettere X in uno stack che vale i, dobbiamo sostituire i con ir + X . Mol
tiplichiamo prima per r. Per farlo, sottraiamo ripetutamente 1 da i sommando r al
terzo contatore (che parte sempre da 0). Quando il contatore originale diventa 0,
il terzo vale ir. Copiamo il terzo contatore in quello originale e riportiamo a 0 il
terzo, come nel punto (1). Infine sommiamo A" al contatore originale.
DIMOSTRAZIONE In virtù del teorema precedente dobbiamo solo mostrare come si sim u
lino tre contatori per mezzo di due. A questo scopo rappresentiamo i tre contatori, i, j
e k , con un solo numero intero, e cioè m = 2l3J 5fc. Un contatore memorizza questo
numero; Γ altro serve a moltiplicare o dividere m per uno dei tre numeri primi: 2, 3 e 5.
Per simulare la macchina con tre contatori dobbiamo svolgere tre operazioni.
8.5.5 Esercizi
Esercizio 8.5.1 Descrivete informalmente, ma chiaramente, le macchine a contatori che
accettano i linguaggi seguenti. In ciascun caso usate il m inor numero possibile di conta
tori, ma mai più di due.
L e macchine di Turing e i com puter 375
* ! c) [(I1Vck I i = j o i = k}.
!! d) [(I tV c k I i = j o i = k, o j = k } .
E sercizio 8.5.2 Lo scopo di questo esercizio è dim ostrare che una m acchina monostack
con segnale di fine input non è più capace di un PDA determ inistico. L $ c la conca
tenazione del linguaggio L con il linguaggio contenente la sola stringa $; quindi L$ è
l'insiem e delle stringhe w $ tali che w è in L. Dim ostrate che, se L$ è accettato da un
DPDA in cui S è il segnale di fine input e non com pare nelle stringhe di L , allora anche
L è accettato da un DPDA. Sugge r i me nt o : si tratta in realtà di dimostrare che i linguaggi
dei DPDA sono chiusi rispetto all’operazione L / n definita ncll’Esercizio 4.2.2. Dovete
modificare il DPDA P per L $ sostituendo ognuno dei suoi simboli di stack con tutte le
coppie (J£. 5 ) , dove S è un insieme di stati. A uno stack X i X 2 · · · X n in P corrisponde,
nel DPDA per L , lo stack ( X i . S\ ){X2, S 2) ( X n , Sn), dove ogni Si è l ’insieme degli
stati q tali che P accetta a partire dalla ID (q, a, X i X i + \ · · · X n)-
2. Una macchina di Turing può simulare un com puter in tem po pari al più a un
polinom io nel num ero di operazioni svolte dal computer.
di M è il suo controllo finito. Poiché esistono solo un numero finito di stati e un numero
finito di regole di transizione, il nostro programma può codificare gli stati come stringhe
di caratteri c usare una tabella di transizione che viene consultata per stabilire ciascu
na mossa. Analogamente i simboli di nastro possono essere codificati come stringhe di
caratteri di lunghezza fissa, visto che ne esiste solo un numero finito.
Una domanda importante si pone quando consideriam o come il nostro programma
debba simulare il nastro della macchina di Turing. Si tratta di un nastro che può diventare
infinitamente lungo, ma la memoria del computer, vale a dire la mem oria centrale, il disco
V
ra 8.21. Una pila contiene i dati nelle celle del nastro della macchina di Turing che sono
poste a una certa distanza a sinistra della testina; Taltra pila contiene i dati a una certa
distanza a destra della testina. Più in basso si scende nella pila, più i dati si allontanano
dalla testina.
Se la testina della TM si muove verso sinistra fino a raggiungere celle che non sono
rappresentate nel disco montato nel computer, allora il programm a stampa il messaggio
“cambio sinistro” . Il disco montato correntemente viene rimosso da un operatore e posto
in cim a alla pila destra. Il disco in cima alla pila sinistra viene montato nel computer e si
riprende la computazione.
Allo stesso modo, se la testina della TM raggiunge celle così lontane a destra da
non essere rappresentate nel disco montato, allora viene stampato il messaggio “cambio
destro” . L’operatore sposta in cima alla pila sinistra il disco montato correntemente e
378 Capitolo 8
monta nel computer ¡I disco in cima alla pila destra. Se il computer richiede di montare
un disco di una certa pila, ma questa è vuota, ciò significa che la TM c entrata in una
regione totalmente bianca del nastro. In questo caso l'operatore deve andare in magazzino
e procurarsi un nuovo disco da montare.
La Figura 8.22 suggerisce com e si potrebbe definire la macchina di Turing perché simuli
un computer. Tale TM usa diversi nastri, ma potrebbe essere convertita in una TM a nastro
unico usando la costruzione del Paragrafo 8.4.1. 11 primo nastro rappresenta l ’intera m e
moria del computer. Abbiamo usato un codice in cui gli indirizzi delle parole di memoria,
in ordine numerico, si alternano con i contenuti delle parole di memoria stesse. Sia gli
indirizzi sia i contenuti sono scritti in binario. I simboli marcatori * e # facilitano il rico
noscimento del termine degli indirizzi e dei contenuti, c indicano se una stringa binaria c
un indirizzo oppure un contenuto. Un altro marcatore, $, indica l’inizio della sequenza di
indirizzi e contenuti.
Il secondo nastro è il “contatore di istruzione” e contiene un unico intero in binario,
chc rappresenta una delle locazioni di memoria sul nastro I. Il valore memorizzato in
questa locazione sarà interpretato come la prossima istruzione da eseguire.
Il terzo nastro contiene un “indirizzo di memoria” o il suo contenuto dopo che esso è
stato individuato sul nastro 1. Per eseguire un’istruzione, la TM deve trovare il contenuto
di uno o più indirizzi di memoria che contengono dati usati nella computazione. In primo
luogo l’indirizzo desiderato viene copiato sul nastro 3 e confrontato con gli indirizzi sul
nastro 1 finché si ottiene una corrispondenza. Il contenuto di tale indirizzo viene copiato
sul terzo nastro e spostato ovunque ce ne sia bisogno, di solito in uno degli indirizzi bassi,
che rappresentano i registri del computer.
La TM simula il cicl o- ist ruzione del computer nel modo seguente.
A u siliario
Figura 8.22 Una macchina di Turing che simula un com puter ordinario.
da svolgere (per esem pio copia, somma, salto) e quelli rimanenti codificano un
indirizzo o più indirizzi coinvolti nell’operazione.
5. Dopo aver eseguito l ’istruzione e determinato che non si tratta di un salto, aggiun
giamo 1 al contatore di istruzione sul nastro 2 e ricom inciam o il ciclo-istruzione.
Ci sono molti altri dettagli relativi a questa simulazione. Dato che il computer deve leg
gere il suo input (la parola di cui sta verificando l’appartenenza a un linguaggio) da un
file, nella Figura 8.22 abbiamo suggerito un quarto nastro che contiene l’input simulato e
dal quale la TM può leggerlo.
Si rappresenta inoltre un nastro ausiliario. La simulazione delle istruzioni di un com
puter potrebbe effettivamente impiegare uno o più nastri ausiliari per svolgere operazioni
aritmetiche come la moltiplicazione.
Infine assumiamo che il com puter produca un output che indica se il suo input viene
accettato o no. Per tradurre quest’azione in termini eseguibili dalla macchina di Turing,
382 Capitolo 8
ipotizzeremo che esista un’istruzione del computer chc chiamiamo “accettare”, eventual
mente legata a una chiamata di funzione da parte del com puter per scrivere s ì su un file
di output. Quando simula l’esecuzione di quest’istruzione del computer, la TM entra in
un suo stato accettante e si arresta.
Se questa trattazione non è la dimostrazione formale e completa che una TM può
simulare un tipico computer, dovrebbe però fornire abbastanza dettagli per convincere il
lettore che una TM costituisce una valida rappresentazione delle capacità di un computer.
Di conseguenza in futuro useremo solo la macchina di Turing come rappresentazione
formale di quanto può essere computato da un qualunque tipo di dispositivo di calcolo.
• In genere si ritiene che lo spartiacque tra problemi t rat t abil i, ossia quelli che pos
sono essere risolti efficientemente, e int rat t abil i , ossia quelli che possono essere
risolti, ma non abbastanza velocemente da rendere fruibile la soluzione, si collo
chi tra quanto può essere computato in un tempo polinomiale c quanto richiede un
tempo di esecuzione maggiore di qualsiasi polinomio.
Ricordiamo che nel Paragrafo 8.4.3 abbiamo determinato che la differenza nel tempo di
esecuzione tra una TM a nastro unico e una TM multinastro è polinomiale, e in parti
colare quadratica. Di conseguenza basta mostrare che qualunque cosa il com puter è in
grado di fare, la può fare anche la TM multinastro descritta nel Paragrafo 8.6.2, in tempo
polinomiale rispetto al tempo richiesto dal computer. Sappiamo che la stessa conclusione
è quindi valida anche per una TM a nastro unico.
Lc macchine di Turing c i com puter 383
Prima di fornire la dim ostrazione che la macchina di Turing descritta può simulare n
passi di un computer in un tempo 0 (n 3), dobbiamo affrontare la questione della m olti
plicazione come istruzione di un computer. Il problema è che non abbiamo posto limiti
al numero di bit che possono essere contenuti in una parola. Se il computer dovesse par
tire con una parola contenente, per esempio, l'intero 2 c moltiplicarla per se stessa per ri
passi consecutivi, allora la parola conterrebbe il numero 2'2 . Per essere rappresentato,
questo numero richiede 2" 4- 1 bit; dunque il tempo impiegato dalla macchina di Turing
per simulare queste n istruzioni sarebbe al minimo esponenziale in n .
Una soluzione consiste nel richiedere che le parole mantengano una lunghezza m assi
ma fissa, poniam o 64 bit. Allora le moltiplicazioni (o altre operazioni) che producessero
una parola troppo lunga causerebbero l'arresto del computer, e la macchina di Turing non
10 simulerebbe oltre. Saremo più tolleranti e permetteremo chc il computer usi parole in
grado di crescere fino a qualunque lunghezza. Faremo però in modo che u n ’istruzione
possa produrre solo una parola che è più lunga di un bit rispetto al più lungo dei suoi
argomenti.
E sem pio 8.16 In conformità con la restrizione espressa sopra, la som ma è permessa, dato
che il risultato può essere di un solo bit più lungo della lunghezza massima degli addendi.
La moltiplicazione non è invece permessa, in quanto due parole di ?r?-bit possono avere un
prodotto di lunghezza 2 rn. Possiamo però simulare una m oltiplicazione di interi di m -bit
tramite una sequenza di m addizioni, inframmezzate da spostamenti del moltiplicando di
un bit a sinistra (il che è un’altra operazione che aumenta la lunghezza della parola solo di
un’unità). Di conseguenza possiamo ancora moltiplicare parole di lunghezza arbitraria,
ma il tempo impiegato dal com puter è proporzionale al quadrato della lunghezza degli
operandi.
Ipotizzando una crescita massima di un bit per ogni istruzione eseguita, siamo in
grado di dimostrare il rapporto polinomiale tra i due tempi di esecuzione. L’idea alla base
della dimostrazione consiste nel notare che dopo l’esecuzione di n istruzioni il numero di
parole presenti sul nastro di memoria della TM ò 0 ( n ) , e ogni parola richiede 0 ( n ) celle
della macchina di Turing per essere rappresentata. Perciò il nastro è lungo O (ri 2) celle e
la TM può localizzare il numero finito di parole necessario per un’istruzione in un tempo
O (ri2).
Dobbiamo però imporre alle istruzioni un altro vincolo. Anche se un’istruzione non
produce comc risultato una parola lunga, potrebbe impiegare molto tempo per calcolare il
risultato. Faremo quindi la supposizione aggiuntiva che una macchina di Turing multina
stro possa eseguire l’istruzione stessa, applicata a parole di lunghezza fino a k , in 0 ( k 2)
passi. Senz’altro le tipiche operazioni del computer, come l’addizione, lo spostamento e
11 confronto di valori, possono essere svolte in O( k ) passi della TM multinastro, e quindi
il vincolo imposto non è troppo rigido.
384 Capitolo 8
1. ha solo istruzioni che aumentano la lunghezza massima delle parole di non più di
un’unità
allora la macchina di Turing descritta nel Paragrafo 8.6.2 può simulare n passi del com
puter in 0 (n 3) dei suoi passi.
nella Figura 8.22 contiene inizialmente solo il programma del computer. Tl programma
può essere lungo, ma è fisso e di lunghezza costante, indipendente da n, il numero dei
passi di istruzione eseguiti dal computer. Esiste perciò una costante c, chc è la parola più
lunga o l’indirizzo più lungo tra quelli presenti nel programma. Inoltre esiste una costante
d , che è il numero di parole occupate dal programma.
Di conseguenza, dopo aver eseguito n passi, il computer non può aver creato alcuna
parola più lunga di r + n , e perciò non può aver creato o usato alcun indirizzo chc a sua
volta sia più lungo di c + n bit. Ciascuna istruzione crea al massimo un unico nuovo
indirizzo che prende un valore, per cui il numero totale di indirizzi dopo l’esecuzione di n
istruzioni è al massimo d + n . Dato che ciascuna combinazione indirizzo-parola richiede
al massimo 2(c + n ) + 2 bit, inclusi l’indirizzo, il contenuto c due simboli marcatori per
separarli, il numero totale di celle di nastro della TM occupate dopo che n istruzioni sono
state simulate è al massimo 2 (d + n )(c + n + 1 ) . Poiché c e d sono costanti, tale numero
di celle è 0 (n 2).
Sappiamo ora che ognuna delle ricerche di indirizzi, in numero fisso, coinvolte in
un’unica istruzione, può essere eseguita in un tempo 0 ( n 2). Dato chc le parole sono
0 ( n ) in lunghezza, il nostro secondo assunto indica che ognuna delle istruzioni stesse
può essere svolta dalla TM in un lempo 0 ( n 2). L'unico costo residuo c significativo di
un’istruzione riguarda il tempo impiegalo dalla TM per creare maggiore spazio sul suo
nastro allo scopo di contenere una parola nuova oppure una estesa. La tecnica impiegata
richiede di copiare al massimo 0 (n 2) dati dal nastro 1 al nastro ausiliario, e viceversa.
Perciò anch’essa richiede solo un tempo 0 ( n 2) per ogni istruzione del computer.
Il risultato è che la TM simula un passo del computer in 0 ( n 2) dei suoi passi. Di
conseguenza, come abbiamo sostenuto nell’enunciato del teorema, n passi del computer
possono essere simulati in 0 ( n 3) passi della macchina di Turing.
Come osservazione finale risulta chiaro che, a condizione di elevare al cubo il numero
di passi, una TM multinastro può simulare un computer. Sappiamo anche dal Paragra
fo 8.4.3 che una TM a nastro unico può simulare una TM multinastro elevando al quadrato
il numero dei passi. La conclusione è riassunta nel prossimo teorema.
Riepilogo 385
Teorema 8.18 IJn computer del tipo descritto nel Teorema 8.17 può essere simulato per
η passi da una macchina di Turing a nastro unico impiegando O ^ ) passi della macchina
di Turing.
8.7 Riepilogo
♦ La mac c h i na di Tur i ng : la TM è una macchina di calcolo astratta con la potenza
sia dei computer reali sia di altre definizioni matematiche per quanto riguarda ciò
che può essere calcolato. La TM consiste di un controllo a stati finiti e di un nastro
infinito diviso in celle. Ciascuna cella contiene un simbolo di nastro; i simboli di
nastro sono in numero finito. Una cella ò la posizione corrente della testina del
nastro. La TM compie mosse basate sul suo stato corrente e sul simbolo di nastro
nella cella guardata dalla testina. In una mossa la TM cam bia stato, soprascrive la
cella corrente con un simbolo di nastro e muove la testina di una cella verso sinistra
o verso destra.
♦ Accet t azi one d a par t e di una mac c hi na di Turi ng', la TM parte con l'input, una
stringa di lunghezza finita di simboli, sul nastro; il resto del nastro contiene il sim
bolo blank in ogni cella. Il blank c uno dei simboli di nastro e l'input è scelto da
un sottoinsieme dei simboli di nastro, tranne il blank, detti simboli di input. La TM
accetta il suo input se entra in uno stato accettante.
♦ Tr acce mul t i pl e: spesso è utile considerare i simboli di nastro come vettori con un
numero fisso di componenti. Possiamo visualizzare ciascun componente comc una
traccia distinta del nastro.
386 Capitolo 8
♦ Mac c h i n e di Tur i ng c on nast ro semi- inf init o: possiamo limitare una TM a un nastro
chc sia infinito solo verso destra e privo di celle a sinistra della posizione iniziale
della testina. Una TM di questo tipo può accettare qualunque linguaggio RE.
♦ Mac c h i n e mul t i st ack: possiamo limitare i nastri di una TM multinastro in modo che
si comportino come stack. L'input si trova su un nastro separato, che viene letto una
volta da sinistra verso destra, a imitazione della modalità di input per un automa a
stati finiti o un PDA. Una macchina a stack unico è in effetti un DPDA, mentre una
macchina a due stack può accettare qualunque linguaggio RE.
♦ Mac c h i n e a cont at ori : possiamo limitare ulteriormente gli stack di una macchina
multistack in modo che abbiano solo un simbolo diverso dall’indicatore di fondo.
Perciò ciascuno stack funziona come un contatore e permette di memorizzare un
intero non negativo c di verificare se l’intero memorizzato è 0, ma nient’altro. Una
macchina con due contatori è sufficiente per accettare qualunque linguaggio RE.
♦ Si mul az i one di un c omput er da par t e di una mac c hi na di Tur i ng: una TM può
simulare la memoria e il controllo di un com puter reale impiegando un nastro che
Bibliografìa 387
8.8 Bibliografía
La macchina di Turing è tratta da | 8 J. Per caratterizzare che cosa può essere computato,
all’incirca nello stesso periodo si fecero diverse proposte non fondate sulla nozione di
macchina. Segnaliamo i lavori di Church fi], Kleene 15] e Post |7J. Tutti questi studi
erano stati preceduti dai risultati di Godei [3], che in effetti aveva dimostrato chc un
computer non può rispondere a tutte le domande matematiche.
Lo studio delle macchine di Turing multinastro, in particolare la questione di comc il
loro tempo di esecuzione si confronti con quello di un modello a nastro unico, cominciò
con Hartmanis e Stearns [41. L’esame delle macchine multistack e a contatori è tratto da
[6 ], sebbene la costruzione presentata qui provenga da |2J.
L'impiego di ciao-mondo come surrogato per l’accettazione o l ’arresto da parte di una
macchina di Turing, descritto nel Paragrafo 8.1, è contenuto in note inedite di S. Rudich.
3. K. Godei, “Über formal unentscheidbare Siitze der Principia Mathematica und ver-
wandter Systcme,” Monat s hef t e Jiir Mat he mat i k u n d Phy s i k 38 (1931), pp. 173—
198.
Indecidibilità
Iniziam o questo capitolo ribadendo, nel contesto delle m acchine di Turing, il ragionam en
to svolto nel Paragrafo 8.1, in cui sostenevamo l ’esistenza di problemi chc non possono
essere risolti da un computer. La seconda “dim ostrazione” che abbiamo proposto com
porta una difficoltà: siamo stati costretti a ignorare i limiti concreti di cui soffre ogni
im plem entazione del C (o di qualunque altro linguaggio di program m azione) in un vero
computer. Questi limiti, com e la dim ensione dello spazio di indirizzamento, non sono
fondam entali. Al contrario, possiam o aspettarci che con il passare degli anni certe quanti
tà, per esem pio la dimensione dello spazio di indirizzamento e la capacità della m em oria
centrale, aum enteranno indefinitamente.
Concentrandoci sulla m acchina di Turing, che non conosce quelle restrizioni, pos
siamo cogliere meglio l’essenza delle capacità di un dispositivo di calcolo, se non oggi,
alm eno per il futuro. In questo capitolo diamo una dim ostrazione formale dell’esistenza
di un problem a, attinente alle macchine di Turing, chc nessuna m acchina di Turing può
risolvere. Poiché sappiamo dal Paragrafo 8 .6 chc le m acchine di Turing possono simulare
i com puter concreti, anche quelli non soggetti alle lim itazioni odierne, ragionerem o in
modo rigoroso sul fatto che il seguente problema:
• una macchina di Turing data accetta (il codice di) se stessa come input?
non può essere risolto da un computer, per quanto se ne allentino i limiti pratici.
Distinguiam o dunque i problem i che possono essere risolti da una macchina di Turing
in due classi: quelli per cui c ’è un al gor i t mo (cioè una m acchina di Turing che si arresta,
a prescindere dal fatto di accettare o no il suo input) e quelli chc vengono risolti solo da
m acchine di Turing chc possono girare per sempre su input non accettati. La seconda
forma di accettazione è problem atica. Per quanto a lungo la TM giri, non è infatti dato
sapere se l’input è accettato o no. Ci concentriam o dunque sulle tecniche per dimostrare
che un problem a è “indecidibile”, ossia che non ha un algoritmo, indipendentem ente dal
390 Capitolo 9
fatto che sia accettato o no da una m acchina di Turing che non si arresta su un certo input.
Dim ostriam o Γ indecidibilità del seguente problema:
Sfruttiam o allora il risultato di indecidibilità per presentare diversi altri problemi indecidi
bili. P erescm pio mostriamo che tutti i problemi non banali relativi al linguaggio accettato
da una m acchina di Turing sono indecidibili, così com e una quantità di problemi chc non
hanno nulla a che vedere con m acchine di Turing, programmi o computer.
2 . tu è una stringa di 0 e di 1
3. M accetta l ’input w.
Se questo problema, con input limitati all’alfabeto binario, è indecidibile, allora senz’al
tro è indecidibilc anche il problem a più generale, in cui le TM possono avere qualsiasi
alfabeto.
Il prim o passo consiste nel porre la questione com e problem a di appartenenza a un
particolare linguaggio. Perciò dobbiam o dare una codifica delle macchine di Turing che
usi solo 0 e 1, indipendentem ente dal numero di stati. Una volta ottenuta la codifica,
possiam o trattare qualunque stringa binaria come se fosse una m acchina di Turing. Se la
stringa non è una rappresentazione ben formata di una TM . possiam o pensarla com e la
rappresentazione di una TM priva di mosse. Di conseguenza possiam o considerare ogni
stringa binaria com e una TM.
L’obiettivo intermedio, che è anche l'argom ento di questo paragrafo, tocca il linguag
gio Ld , il “linguaggio di diagonalizzazione” , che consiste di tutte le stringhe w tali che Ia
TM rappresentata da w non accetta l’input w . Dim ostreremo che non c ’è alcuna TM chc
accetti L i . Ricordiamo che la non esistenza di una m acchina di Turing per un linguaggio
Un linguaggio non ricorsivamcnte enumerabile 391
è una proprietà più forte dell’indecidibilità del linguaggio (cioè della non esistenza di un
algoritmo o di una TM che si arresta sempre).
La funzione del linguaggio L,i è analoga aquella dcll’ipotetico programma H 2 del Pa
ragrafo 8.1.2, che stampa C i a o , m o n d o ogni volta che il suo input non stampa C i a o ,
m o n d o quando riceve se stesso come input. In termini più precisi, proprio come H 2 non
può esistere perché quando riceve se stesso come input la sua reazione è paradossale, Ld
non può essere accettato da una macchina di Turing. Infatti, se lo fosse, la TM in questio
ne entrerebbe in disaccordo con se stessa nel momento in cui dovesse ricevere come input
il proprio codice.
• Supponcm o che gli stati siano q i ,q 2, . . . , qr per un certo r. Lo stato iniziale sarà
sempre <71, e q2 sarà l'unico stato accettante. Avendo ipotizzato che la TM si ar
resti quando entra in uno stato accettante, non c ’è mai bisogno di più di uno stato
accettante.
Dato che per ogni TM M possiamo assegnare interi ai suoi stati e ai simboli di nastro
in molti modi diversi, per una TM ci sarà più di una codifica. Si tratta comunque di
392 Capitolo 9
un elemento irrilevante in quanto segue, perché mostreremo che nessuna codifica può
rappresentare una TM M tale che L ( M ) = Zri.
Una volta scelti gli interi che rappresentano stati, simboli e direzioni, possiamo codifi
care la funzione di transizione Supponiam oche una regola di transizione sia 6(q{. X j ) =
(q k , X i , D i n), per certi valori interi i , j , k , I ed m . Codifichiamo questa regola per mezzo
della stringa OtIOj IOfeIOi IOm. Poiché i , j , k, l ed rn valgono ciascuno almeno 1, nel
codice di una transizione non compaiono mai due o più 1 consecutivi.
Un codice per l’intera TM M consiste di tutti i codici delle transizioni in un ordine
fissato, separati da coppie di 1:
C 1I l C2Il- - C n- Xl l Cn
dove ognuna delle C è il codice di una transizione di M .
Esempio 9.1 C onsideriam olaT M
M - 1 } .{ 0 ; l , I 3 } , S , q i , B , {q2})
dove δ consiste nelle regole:
<*(t t .l ) = (<73,0,ñ)
< %3, 0 ) = (71, 1, R)
¿(<73,1) = (¢2,0, R)
S(Qz - B) = ( q $ , l , L )
01001000101001100010101001001100010010010100110001000100010010
Notiamo che esistono molti altri codici possibili di M . In particolare i codici per le quattro
transizioni possono essere elencati in 4! ordini diversi, producendo 24 codici per M .
Nel Paragrafo 9.2.3 dovremo codificare coppie costituite da una TM e da una stringa,
(M , w ) . Per tale coppia usiamo il codice di M seguito da 111, seguito a sua volta da w.
Poiché nessun codice valido di una TM contiene tre I in fila, possiamo essere certi che
la prima occorrenza di 111 separa il codice di M da w . Per esempio, se M fosse la TM
dell’Esempio 9.1 e w fosse 1011, allora il codice di ( M , w ) sarebbe la stringa mostrata
alla fine dell’Esempio 9.1, seguita da 1111011.
Un linguaggio non ricorsivamente enumerabile 393
In altre parole Ld consiste di tutte le stringhe w tali che la TM M con codice w non
accetta quando riceve w com e input.
La ragione per cui L,¡ è detto linguaggio di “diagonalizzazione” è chiarita dalla Fi
gura 9.1. La tabella indica per ogni i e j se la TM M 1 accetta la stringa di input Wj ; 1
significa “sì, accetta” e 0 significa “no, non accetta”.1 Possiamo interpretare !'¿-esima
riga comc il vet t ore carat t erist ico del linguaggio L ( M i )', in altre parole gli 1 in questa
riga indicano le stringhe che appartengono al linguaggio.
I valori sulla diagonale segnalano se M i accetta Wi . Per costruire Ld complemcntiamo
la diagonale. Per esempio, se la Figura 9.1 fosse la tabella corretta, allora la diagonale
compleméntala comincerebbe con 1 , 0 . 0 , 0 , . . . . Perciò Ld conterrebbe w\ = e, e non le
stringhe da w 2 a w 4, che sono 0, 1, 00, e via di seguito.
II metodo di complementare la diagonale per costruire il vettore caratteristico di un
linguaggio che non compare in nessuna riga è detto di agonal i zzazi one. Esso funziona
perché il complemento della diagonale è di per sé un vettore caratteristico chc descrive
l’appartenenza a un determinato linguaggio, e cioè a Ld- Questo vettore caratteristico
si trova in disaccordo con ogni riga della tabella nella Figura 9.1 in almeno una colon
na. Quindi il complemento della diagonale non può essere il vettore caratteristico di una
m acchina di Turing.
D iagonale
Poiché W i non può essere né non essere in L d, abbiamo una contraddizione con l’ipotesi
che M esista. In altre parole L d non è un linguaggio ricorsivamente enumerabile.
9.1.5 Esercizi
Esercizio 9.1.1 Scrivete le stringhe seguenti.
* a) W37.
Un problema indecidibile ma ricorsivamente enumerabile 395
b) W i 00.
Esercizio 9.1.2 Scrivete un codice possibile per la m acchina di Turing della Figura 8.9.
! Esercizio 9.1.3 Diamo due definizioni simili alla definizione di Ld- Impiegando un ra
gionamento analogo alla diagonalizzazione. mostrate in ambedue i casi che il linguaggio
non è accettato da una macchina di Turing. Osserviamo chc non è possibile sviluppare
un ragionamento basato sulla diagonale stessa, per cui bisogna trovare un’altra sequenza
infinita di punti nella matrice suggerita dalla Figura 9.1.
! Esercizio 9.1.4 Abbiamo considerato solo Ic macchine di Turing con alfabeto di input
{(). 1}. Supponiamo di voler assegnare un intero a tutte le m acchine di Turing, a prescin
dere dall’alfabeto di input. A rigor di termini questo non è possibile perché, mentre i nomi
degli stati e dei simboli di nastro che non sono simboli di input sono arbitrari, i simboli
di input sono significativi. Per esempio i linguaggi {0η 1η | n > 1} e {α"&" | n > 1},
per quanto in qualche modo simili, n o n sono lo stesso linguaggio e sono accettati da TM
diverse. Supponiamo tuttavia di avere un insieme infinito di simboli, J a 1, α·2 . ...} da cui
sono selezionati lutti gli alfabeti. M ostrate come si potrebbe assegnare un intero a tutte le
TM dotate di un insieme finito di tali simboli come alfabeto di input.
Una TM di questo tipo corrisponde alla nostra nozione informale di “algoritmo” : una
sequenza ben definita di passi che termina sempre e produce una risposta. Se consideria
mo il linguaggio L come un “problem a”, come succederà spesso, allora il problema L è
detto deci di bi l e se si tratta di un linguaggio ricorsivo, e i ndeci di bi l e se non si tratta di un
linguaggio ricorsivo.
L’esistenza o non esistenza di un algoritmo per risolvere un problema c sovente più
importante dell’esistenza di una TM che risolve il problema. Come detto, una macchina
di Turing senza garanzia di arresto non dà sufficienti informazioni per concludere che una
stringa non si trova nel linguaggio. In un certo senso, quindi, queste TM non risolvono
il problema. Di conseguenza la distinzione di problemi e linguaggi in due classi, ossia
i decidibili, che vengono risolti mediante un algoritmo, c gli indecidibili, è spesso più
importante della divisione tra linguaggi ricorsivamente enumerabili (quelli per cui c’è
una TM) c linguaggi non ricorsivamente enumerabili (chc non hanno alcuna TM). La
Figura 9.2 illustra la relazione fra tre classi di linguaggi:
1. Iinguaggiricorsivi
Poiché è garantito che M si arresta, Io stesso vale per M . Inoltre M accetta proprio le
stringhe che M non accetta. Di conseguenza M accetta L.
Perché “ricorsivo”
Oggi le funzioni ricorsive sono familiari ai programmatori, eppure non sembrano
avere nulla a che vedere con le macchine di Turing che si arrestano sempre. Per
di più il concetto opposto (non ricorsivo o indecidibile) si riferisce a linguaggi
chc non possono essere riconosciuti da nessun algoritmo, anche se siamo abituati
a pensare a “non ricorsivo” come riferito a computazioni così semplici da non
richiedere chiamate di funzioni ricorsive.
Il termine “ricorsivo” come sinonimo di “decidibile” risale alla matematica
precedente Pera dei computer. Allora era prassi servirsi di formalismi basati sulla
ricorsione (e non su iterazione o cicli) a sostegno del concetto di computazione.
Queste notazioni, di cui non ci occuperemo qui, sono affini ai linguaggi di pro
grammazione funzionali come LISP o ML. In quel senso, dire che un problema è
“ricorsivo” ha la connotazione positiva di “sufficientemente semplice da poterlo
risolvere con una funzione ricorsiva che termina sempre”. Questo c proprio il
significato odierno del termine in relazione alle macchine di Turing.
Il termine “ricorsivamente enumerabile” fa riferimento allo stesso campo
concettuale. Una funzione può elencare tutti gli elementi di un linguaggio in
un certo ordine; in altre parole li può "enumerare”. I linguaggi i cui elementi
possono essere elencati in un certo ordine sono gli stessi chc sono accettati da
una TM, anche sc la TM può girare per sempre su input che non accetta.
Possiamo riassumere i Teoremi 9.3 e 9.4 come segue. Delle nove possibilità di collo
care un linguaggio L e il suo complemento nel diagramma della Figura 9.2. solo quattro
sono consentite.
1. Sia L sia L sono ricorsivi, cioè si trovano entrambi nel cerchio interno.
A ccetta
w
R ifiuta
3. L è RE ma non ricorsivo, cd L non è RE; uno si trova nel cerchio intermedio, l'altro
nel cerchio esterno.
E sem pio 9.5 Consideriamo a titolo di esempio il linguaggio La , che non è RE. Perciò L,i
• V "‘"
non può essere ricorsivo. E però possibile che L ¿ sia non RE, o RE ma non ricorsivo. In
realtà Ld è RE ma non ricorsivo.
Ld è l’insieme delle stringhe Wi tali che M i accetta W{. Si tratta di un linguaggio
simile al linguaggio universale L u formato da tutte le coppie (M , w ) tali chc M accetta w .
400 Capitolo 9
Questo linguaggio, come mostreremo nel Paragrafo 9.2.3, è RE. Lo stesso ragionamento
dimostra che Ld è RE.
1. Esamina l’input per assicurarsi che il codice di M sia un codice legittimo per una
TM. Sc non è così, U si arresta senza accettare. Poiché si presuppone che i codici
non validi rappresentino la TM senza mosse, che non accetta alcun input, si tratta
di un’azione corretta.
2. Prepara il secondo nastro con l'input w nella sua forma codificata. Sul secondo na
stro scrive 10 per ogni 0 e 100 per ogni 1 di w . I blank sul nastro simulato di M , che
sono rappresentati da 1000. non compariranno sul nastro; tutte le celle oltre quelle
usate per w conterranno il blank di U. U sa comunque che, se dovesse cercare un
simbolo simulato di M c trovare il proprio blank, deve sostituire quest’ultimo con
la sequenza 1000 per simulare il blank di M.
3. Scrive 0, lo stato iniziale di M , sul terzo nastro e muove la testina del secondo
nastro verso la prima cella simulata.
Un problem a indecidibile ma ricorsivamente enumerabile 401
Ausiliario
Per sim ulare una m ossa di M , U percorre il prim o nastro alla ricerca di una tran
sizione Oi IUj IO1IOi IOm tale che O7 sia Io stato sul nastro 3 e Oj sia il sim bolo di
nastro di M collocato sul nastro 2 a partire dalla posizione guardata da U. Questa
è la transizione che M farebbe com e passo successivo. U deve fare tre cose.
(a) Trasform are il contenuto del nastro 3 in Ok , ossia sim ulare il cam biam ento di
stato di M . A tal fine U trasform a prim a in blank tutti gli 0 sul nastro 3, e poi
copia Ofc dal nastro 1 al nastro 3.
(b) Sostituire Oy sul nastro 2 con Oi, cioè trasform are il sim bolo di nastro di M .
Se c ’è bisogno di m aggiore o m inore spazio, cioè i φ L U si serve del nastro
ausiliario e della tecnica illustrata nel Paragrafo 8.6.2.
(c) Muove la testina del nastro 2 verso la posizione del successivo 1 a sinistra o
a destra, a seconda delle due opzioni: i n = 1 (m ossa verso sinistra) o i n = 2
(m ossa verso destra). Di conseguenza U sim ula il m ovim ento di M verso
sinistra o destra.
402 Capitolo 9
1. Data una stringa w in input, Al ' la trasforma in u;l 1 1w . Per esercizio si può scri
vere il programma di una TM che compie questo passo su un singolo nastro. Il
ragionamento a sostegno della fallibilità del programma consiste nell’uso di un se
condo nastro per copiare w e nella conversione della TM a due nastri in una a nastro
singolo.
2. A l ' simula Al sul nuovo input. Se nella nostra numerazione w è u?¿, allora Al '
determina se accetta w¿. Poiché Al accetta L u, accetterà se e solo se Al i non
accetta Wi ; quindi è in L,¡.
9.2.5 Esercizi
Esercizio 9.2.1 Mostrate che il problema dell’arrcsio, cioè l’insieme delle coppie (Al , w )
tali che Al si arresta (con o senza accettazione) quando riceve l’input v k è RE ma non
404 Capitolo 9
E sercizio 9.2.2 Nel riquadro “Perché ricorsivo” del Paragrafo 9.2.1 abbiamo ricordato la
nozione di “funzione ricorsiva”, in competizione con la macchina di Turing come modello
di “calcolabile”. In quest’esercizio esploriamo un esempio di notazione per le funzioni
ricorsive. Vn a f unzi one ri corsi va è una funzione F definita da un insieme finito di regole.
Ogni regola .specifica il valore della funzione F per determinati argomenti; la specifica
può servirsi di variabili, costanti intere non negative, la funzione successore (somma uno),
la funzione F stessa ed espressioni costruite per composizione di funzioni. Per esempio
la f unz i o ne di Ac k e r mann viene definita dalle regole seguenti:
2. ,4(1,0) = 2
3. Λ( χ , 0) = X + 2 per x > 2
* a) Valutate .4(2, l ).
! c) Valutate A ( 4 , 3).
!! c) L’insieme di tutti gli i tali chc M i accetta tu*. Sugge r i me nt o : non è possibile gene
rare questi i nell’ordine numerico perché questo linguaggio, cioè L¿, è RE ma non
ricorsivo. 1 linguaggi “RE ma non ricorsivi” si possono infatti definire come quelli
enum erabili, ma non nell’ordine numerico. P erpoterli enumerare dobbiamo simu
lare tutte le M i su Wi . Non possiamo però farne girare una per un tempo indefinito,
altrimenti non potremmo simulare nessuna M j con j φ i se M 1 non si arresta su
u?¿. Dobbiamo quindi istituire dei turni e fare in modo che nel turno k si provino
solo un numero finito di M*, e solo per un numero finito di passi. Possiamo così
completare ogni turno in un tempo finito. Se, per ogni TM M i e per ogni numero
di passi .%·, c ’è un turno in cui M i viene simulata per almeno s passi, prima o poi
scopriremo ogni Ai*·che accetta W1, e i entrerà nell’enumerazione.
Problemi indecidibili relativi alle macchine di Turing 405
*! Esercizio 9.2.5 Sia L ricorsivamente enumerabile c sia L non RE. Considerate il linguag
gio
V = {0?/; I vo è in L ) U { I w \ w non è in L}
Potete dire con certezza se V o il suo complemento sono ricorsivi, RE, o non RE?
Giustificate la risposta.
! Esercizio 9.2.6 Non abbiamo discusso le proprietà di chiusura dei linguaggi ricorsivi,
tranne che per la complementazione nel Paragrafo 9.2.2. Verificate se i linguaggi ricorsivi
e i linguaggi RE sono chiusi rispetto alle seguenti operazioni. Per dimostrare la chiusura
potete servirvi di costruzioni informali, purché chiare.
* a) Unione.
b) Intersezione.
c) Concatenazione.
* e) Omomorfismo.
0 Omomorfismo inverso.
9.3.1 Riduzioni
Come indicalo nella Figura 9.7 una riduzione deve trasform are qualsiasi istanza di P i che
ha una risposta affermativa (“sì”) in un'istanza di P- ¿ con una risposta affermativa (“sì”),
c ogni istanza di P i con una risposta negativa (“no”) in un’istanza di P^ con una risposta
negativa (“no”). Non è essenziale che ogni istanza di P 2 sia Timmagine di una o più
istanze di Ρχ : di fatto è normale che solo una piccola frazione di P¿ sia l’immagine della
riduzione.
In termini formali una riduzione da P i a p> è una macchina di Turing chc riceve u n 'i
stanza di Ρχ scritta sul nastro e si arresta con un’istanza di P> sul nastro. N ella pratica
descriverem o generalmente le riduzioni come se fossero programmi per computer che
ricevono in input un’istanza di Pi e producono com e output un’istanza di /¾- L’equi
valenza delle macchine di Turing e dei programmi per com puter permette di descrivere
Problemi indecidibili relativi alle macchine di Turing 407
a) se Pi è indecidibile, lo è anche P¿
Nel seguito sarà opportuno considerare le stringhe come le macchine di Turing che
rappresentano. Possiamo così definire i due linguaggi appena citati:
• L c = { M I L ( M ) = 0}
. L ne = { M I L ( M ) φ 0}
Osserviamo che L f, ed L ne sono entrambi linguaggi sull’alfabeto binario {0.1} e che sono
l'uno il complemento dell’altro. Vedremo che L ne è il “più facile” dei due linguaggi; è
RE ma non ricorsivo. Da parte sua L c è non RE.
DIMOSTRAZIONE Dobbiamo solo esibire una TM che accetta L ne . 11 modo più semplice
consiste nel descrivere una TM non deterministica M , il cui schema è rappresentato nella
Figura 9.8. Per il Teorema 8 .1 1 M può essere convertita in una TM deterministica.
T entativ o
w ► — Accet t a A ccetta
M. U
I
M per L
v ne
Descriviamo le operazioni di M .
In questo modo, se M i accetta anche solo una stringa, M la tenterà (tra tutte le altre, ov
viamente) e accetterà M i . Se però L ( M 1) - 0, nessun tentativo w porta all'accettazione
da parte di M¿, ed M non accetta M i . Di conseguenza L ( M ) = L n c .
Problemi indccidibili relativi alle macchine di Turing 409
Il passo successivo consiste nel dimostrare che L ne non è ricorsivo. A tal fine ridu
ciamo L u a L ne . In altre parole descriviam o un algoritm o che trasforma un input ( M , w )
in un output M t, il codice di un ’altra macchina di Turing, tale che w si trova in L ( M ) se
e solo se L ( M ' ) non è vuoto. Questo significa che M accetta w se c solo se M ' accetta
almeno una stringa. Il trucco è far sì che M ' ignori il suo input e simuli invece M su input
VJ. Se M accetta, allora M 1 accetta il proprio input; di conseguenza l’accettazione di w
da parte di M equivale a L ( M t ) non vuoto. Se L ne fosse ricorsivo, allora avremmo un
algoritm o che indica se M accetta o no w : costruiamo M t e verifichiamo se L ( M ' ) = 0.
W ► — Accet t a ► A ccetta
X ------- ►
M
AT
2. Quando Al ' raggiunge un blank nello stato q n, usa un’analoga serie di stati per
ricollocare la testina all’estremità sinistra del nastro.
3. Ricorrendo a stati aggiuntivi A l ' simula una TM universale U sul suo nastro cor
rente.
4. Se U accetta, allora accetta anche Al '. Se U non accetta mai, allora neanche M '
accetta mai.
La descrizione di Al ' dovrebbe convincere il lettore chc c possibile definire una macchina
di Turing capace di trasformare il codice di Al e la stringa w nel codice di A l '. In altre
parole esiste un algoritmo per effettuare la riduzione di L u a L ne . Vediamo inoltre chc
se M accetta w , allora AT' accetta qualsiasi input a; presente sul nastro all’inizio. Il fatto
che X sia stato ignorato è irrilevante; per la definizione di accettazione da parte di una
TM sappiamo che qualunque cosa sia collocata sul nastro prima di iniziare le operazioni
è quanto la TM accetta. Di conseguenza, se Al accetta w , allora il codice di M 1 si trova
In Ij TlC'
Viceversa, se M non accetta w , allora M ' non accetta mai. indipendentemente dalla
natura del suo input. Perciò in questo caso il codice di A l ' non si trova in L nc . Sia
mo riusciti a ridurre L u a L nc per mezzo dell’algoritmo che costruisce M 1 da M e w ;
possiamo concludere che. poiché L u non c ricorsivo, non lo è neanche L ne. L’esistenza
della riduzione è sufficiente a completare la dimostrazione. Per illustrare gli effetti della
riduzione portiamo avanti il ragionam ento di un altro passo. Se L ne fosse ricorsivo, allora
potremmo sviluppare un algoritmo per L u come segue.
2. Usiamo l’algoritmo ipotetico per L ne per segnalare se L ( A l ' ) = 0 o no. Nel primo
caso diciamo che AT non accetta w : sc L ( A f ) φ 0 diciamo che Al accetta w .
Dal Teorema 9.6 sappiamo che non esiste un tale algoritmo per L u . Abbiamo quindi
contraddetto l'ipotesi chc L ne sia ricorsivo, e concludiamo che L nc non è ricorsivo.
tutti i CFL. La proprietà di essere vuoto è Finsieme {0}, che consiste de! solo linguaggio
vuoto.
Una proprietà è banal e se è vuota (ossia non viene soddisfatta da nessun linguaggio)
o comprende tutti i linguaggi RE. Altrimenti è non banal e.
T eorem a 9.11 (Teorema di Rice) Ogni proprietà non banale dei linguaggi RE è indecidi
bile.
DIMOSTRAZIONE Sia V una proprietà non banale dei linguaggi RE. Per cominciare, sup
poniamo che 0 , il linguaggio vuoto, non sia in V\ ci occuperemo più tardi del caso oppo
sto. Dato che V è non banale, deve esistere un linguaggio non vuoto L che sia in V . Sia
Mt , una TM che accetta L.
Ridurremo L u a L p , dimostrando in questo modo che L p è indecidibile, dal momento
chc L u è indccidibile. L’algoritmo per la riduzione riceve in input una coppia ( M , w ) e
produce una TM M ' . Lo schema di M 1 c illustrato nella Figura 9.10; L ( M ' ) è 0 se M
non accetta w , c L ( M ' ) = L se M accetta vi.
1. Simula M su input w . Osserviam o che w non è l’input di M'\ M ' scrive invece M
e w su uno dei due nastri e sim ula la TM universale U su tale coppia come nella
dimostrazione del Teorema 9.8.
2. Se M non accetta w , allora M 1 non fa nient’altro. M ' non accetta mai il proprio
input x , per cui L ( M t ) = 0. Poiché assumiamo che 0 non sia nella proprietà V , ciò
significa che il codice di M 1 non è in L p .
3. Se M accetta w , allora M 1 com incia a simulare M l sul proprio input x . Perciò M '
accetterà esattamente il linguaggio L . Poiché L è in V , il codice di M 1 è in L p .
1. Il linguaggio accettato da una TM è vuoto (come abbiam o appreso dai Teoremi 9.9
e 9.3)?
11 Teorema di Rice non implica che tutto ciò che riguarda le TM sia indecidibile. Questioni
concernenti gli stati di una TM. e non il linguaggio da essa accettato, potrebbero per
esempio essere decidibili.
Esem pio 9.12 La questione se una TM abbia cinque stati è decidibile. L'algoritmo per
deciderla non fa altro che esaminare il codice della TM e contare il numero degli stati che
compaiono nelle transizioni.
Come ulteriore esempio, è decidibile l’esistenza di un input tale che una TM compia
almeno cinque mosse. Considerando chc, se una TM fa cinque mosse, le uniche celle
chc può guardare sono le nove intorno alla posizione iniziale della testina, l’algoritmo
risulta evidente. Possiamo simulare la TM per cinque mosse su tutti i nastri (in numero
finito) formati da non più di cinque simboli di input, preceduti e seguiti da blank. Sc una
qualsiasi di queste simulazioni non raggiunge una situazione di arresto, concludiamo che
la TM compie almeno cinque mosse su un input.
9.3.5 Esercizi
* Esercizio 9.3.1 Mostrate che l’insieme dei codici di macchine di Turing chc accettano
tutti gli input palindromi (eventualmente insieme con altri input) è indecidibile.
Esercizio 9.3.2 La Big Computer Corp. ha deciso di incrementare la sua fetta di mercato
in crisi fabbricando una versione high-tech della macchina di Turing, chiamata BWTM,
fornita di bel l s, campanelli, e whi st l es, fischietti. Fondamentalmente la BWTM è una
comune macchina di Turing, salvo il fatto che ogni stato della macchina è etichettato
come “stato campanello” o come “stato fischietto”. Ogni volta che la BWTM entra in un
nuovo stato suona il campanello o fischia, a seconda del tipo di stato. Dimostrate che è
indccidibile se una data BWTM M fischia su un dato input w .
Esercizio 9.3.3 Mostrate che il linguaggio dei codici per le TM M che, partite con il
nastro bianco, prima o poi scrivono un 1 sul nastro è indccidibile.
! Esercizio 9.3.4 Dal teorema di Rice sappiamo che nessuno dei problemi che seguono è
decidibile. Sono però ricorsivamente enumerabili oppure non RE?
b) L ( M ) è infinito?
* d) L ( M ) = ( L ( M ) ) r I
lì problema di corrispondenza di Posi 415
Esercizio 9.3.5 Sia L il linguaggio formato dalle coppie di codici di TM più un intero,
(M i, M 2 ; &), tali che L ( M i ) Π L ( M 2) contiene almeno k stringhe. Dimostrate chc L è
RE m a non ricorsivo.
Esercizio 9.3.6 Dimostrate che le seguenti questioni sono decidibili.
* a) L’insieme dei codici di TM M tali che, una volta partita con un nastro bianco, M
scrive prima 0 poi un simbolo diverso dal blank sul nastro. Sugger i ment o: se M ha
m stati, considerate le sue prime m transizioni.
! b) L’insieme dei codici di TM che non compiono mai una mossa verso sinistra.
! c) L’insieme delle coppie (M , w ) tali che la TM M , partita con input w , non visita
mai una cella di nastro più di una volta.
Esercizio 9.3.7 Dimostrate che i seguenti problemi non sono ricorsivamente enumerabili.
* a) L'insieme delle coppie ( M , w ) tali che la TM M , partila con input w , non si arresta.
un M PCP PCP
U un
alg o ritm o alg o ritm o
Lista A Lista B
i Wi Xi
1 1 111
2 10111 10
3 10 0
Esem pio 9.13 Sia Σ = {0 , 1}, e siano A e B le liste definite come nella Figura 9 . 12.
In questo caso PCP ha una soluzione. Per esempio, siano m = 4 , ?o — 2, ¿2 = 1,
h = I e ¿4 = 3 ; la soluzione è allora la lista 2 , 1, 1, 3 . Verifichiamo che sia una
soluzione concatenando le stringhe corrispondenti delle due liste nell’ordine indicato:
W2W\W\ IU3 = X2X1X1X3 — 101111110. Osserviamo che la soluzione non è unica: per
esem pio 2 , 1. 1 , 3 , 2 , 1, 1 , 3 è un’altra soluzione.
Il problema di corrispondenza di Post 417
Lista A Lista B
i Wi Xi
1 10 101
2 011 11
3 101 011
Soluzioni parziali
N ell’Esempio 9.14 abbiamo impiegato una tecnica molto comune per analizzare
istanze di PCP. Abbiamo considerato le possibili s ol uzi oni par zi al i , cioè sequenze
di indici ¿ i, i 2, . . . , i, tali che una fra WixWi2 wir e Xil Xi2 Xir sia prefisso
dell'altra, anche se le due stringhe non sono uguali. Notiamo che, se una sequen
za di interi è una soluzione, ogni suo prefisso è una soluzione parziale. Perciò
ragionare sulle soluzioni parziali permette di dedurre proprietà delle soluzioni
globali.
Notiamo d ’altra parte che, essendo PCP indecidibile, non esiste un algorit
mo che calcoli tutte le soluzioni parziali. Esse sono in numero infinito e, so
prattutto, non c ’è un limite supcriore alla differenza in lunghezza delle strin
ghe Wil Wi2 - - W i r e XixXi2 - - -Xi r , anche se formano una soluzione parziale
estendibile a globale.
1. Non può valere i 2 = 1 perché nessuna stringa che comincia per W\W\ = 1010 può
coincidere con una che comincia per ΧχΧχ = 101101: esse discordano alla quarta
posizione.
2 . Non può valere neppure i 2 = 2 perché nessuna stringa che comincia per w\w2 =
10011 può coincidere con una che comincia per x \ x 2 = 10111: esse differiscono
alla terza posizione.
3 . Solo i 2 = 3 è possibile.
A: 10101 · ··
B: 101011 - - -
Nulla in queste stringhe indica chiaramente che la lista 1,3 non si possa estendere a una
soluzione. Eppure siamo in grado di provare che non è possibile farlo perché siamo nella
stessa situazione di quando abbiamo scelto ¿1 = 1. La stringa presa dalla lista B è la
stessa della lista A, ma con un 1 in più alla fine. Siamo perciò obbligati a scegliere
¿3 = 3, ì\ = 3, e così via, per mantenere la corrispondenza. La stringa di A non può mai
raggiungere quella di B, e quindi non possiamo raggiungere una soluzione.
Il problem a di corrispondenza di Post 4 19
9.4.2 II P CP modificato
È facile ridurre L u a PCP se introduciamo prima una versione inte rmedia di PCP, che
chiamiamo problema di corrispondenza di Post modificato , o MPCP. In questa variante
imponiamo il vincolo aggiuntivo che la prima coppia delle liste A c B dev'essere la
prima anche ne lla soluzione. U n ’istanza di MP CP è data formalme nte da due liste, A =
UJi, u ’2 , · · · ,Wk e B — x\ , X2 , . . . ; Xki mentre una s oluzione è una sequenza di 0 o più
inte ri «i, Ì 2 , . · · , im tali che
W lWilW h · · W im = X i X i l X i i X im
Notiamo che la coppia (μ’ι ,χ ι ) deve trovarsi a ll’inizio de lle due stringhe, anche se
l ’indice 1 non è me nzionato in testa alla sequenza che forma la s oluzione . Inoltre , a diffe
renza di PCP. in cui la s oluzione deve contenere alme no un intero, la sequenza vuota può
essere s oluzione di MP CP se w\ = Xi (un caso del genere non è però molto interessante,
e non ne incontreremo ne l seguito).
Es e m pio 9.15 Pos s iamo interpretare le liste della Figura 9.12 come un’istanza di MPCP,
che pe rò non ha s oluzioni. Per dimos trarlo os serviamo che ogni s oluzione parziale deve
cominciare con l’indice 1 e le due stringhe relative de vono cominciare così:
A: 1 · ·
B: 1 1 1 · · ·
L’intero successivo non può essere né 2 né 3 perché sia w-¿ sia w¿ cominciano per 10 e si
avrebbe una dis cordanza alla terza pos izione . L’indice successivo deve quindi essere 1:
A: 11 · ·
B: 1 1 1 1 1 1 ···
Pos s iamo proseguire così indefinitame nte . Solo un altro 1 ne lla s oluzione evita la dis cor
danza. Tuttavia se pos s iamo scegliere solo l’indice I, la stringa di B sarà sempre tre volte
più lunga de lla stringa di A , ed esse non coincide ranno mai.
Un passo importante ne lla prova che PCP risulta inde cidibile è la riduzione di MP CP
a P CP Dimos tre re mo poi che MP CP è inde cidibile riduce ndo L n a MPCP. Avre mo allora
la prova che anche PCP è inde cidibile ; se fosse de cidibile , Io sarebbe anche MPCP. e
quindi anche Lu.
Data un ’is tanza di MP CP con alfabe to Σ , cos truiamo un ’istanza di P CP Introduciamo
un nuovo s imbolo, *, che ne ll’istanza di PCP si interpone fra i s imboli delle stringhe
de ll’is tanza di MPCP. Ma nelle stringhe di A gli * s eguono i s imboli di Σ , mentre in que lle
di B li precedono. C ’è un’eccezione: una nuova coppia, formata a partire dalla prima
420 Capitolo 9
3. y k+ 1 = S e z k+i = *$.
Es e mpio 9.16 Supponiamo che la Figura 9.12 sia un’istanza di MP CP L’istanza di PCP
costruita comc descritto è illustrata ne lla Figura 9 .14.
Lis ta C Lis ta D
i Vi Zi
0 *1* * 1 * 1*1
1 1* *1*1* 1
2 1*0*1*1*1* *1*0
3 1* 0 * *0
4 $ *s
* y m , V i -2 ■■ - V i m = Z 1Z Ì1 Zi 2 · · ■Z i r n *
Il problema di corrispondenza di Post 421
Poiché yo = *?/i &zo = ¿I pos s iamo rimediare alla mancanza del s imbolo * iniziale
sostituendo il primo indice con 0. Abbiamo ora
VoVi 1 Vi 2 · · · Vi m = ZoZit z i 2 · · · z im *
Per il s imbolo * finale pos s iamo accodare l’indice k + 1. Poiché y k+1 = $ e Zk+\ — *$
abbiamo:
V o V i1V i2 ' ' ' V itrlV k + ! = z O Z il Z i2 · · · Z im Z k Jr 1
W i W i l Wi2 Wi m = X 1X i l X i 2 X im
1. La prima coppia è:
Lis ta A Lista B
# #9o
Questa coppia, da cui deve partire ogni soluzione, secondo le regole di MPCP, avvia
la s imulazione di M su input w. All’inizio B precede A di una ID.
Lis ta A Lista B
X X per ogni X in Γ
# #
3. Per s imulare le mosse di M dis poniamo di coppie che le rispecchiano. Per ogni q
in Q - F (cioè q è uno stato non accettante), p in Q, e X , Y e Z in Γ abbiamo:
Il problem a di corrispondenza di Post 423
Lista A Lista B
QX Yp se S(q, X ) = (p, F, R)
ZqX pZY se S(q. X ) = (p, Y, L ); Z è un s imbolo di nastro arbitrario
q# Y p# se ó(q , £f) = (p, K i?)
Zq# pZY # se <J(g, B ) — ( p , Y, L)\ Z è un s imbolo di nastro
Come que lle del punto (2), queste coppie permettono di estendere la stringa di B
con la ID successiva, e di estendere la stringa di .4 in accordo con que lla di B. Lc
coppie si servono de llo stato per stabilire come cambia la ID corrente e generare
la successiva. 1 cambiame nti - nuovo stato, s imbolo di nastro e spostamento de lla
testina - si riflettono ne lla ID accodata alla stringa di B .
Lis ta .4 Lis ta B
XqY q
Xq q
qY q
5. Infine, dopo aver cons umato tutti i s imboli di nastro, lo stato accettante resta da
solo come ultima ID ne lla stringa di B. Il residuo delle due stringhe (il suffisso
de lla stringa di B chc si deve accodare alla stringa di A per uguagliarla) è </#. Per
completare la s oluzione us iamo T ultima coppia:
Lis ta .4 Lis ta B
<?# # #
Nel seguito scriveremo “coppie de lla regola (1), de lla regola (2)” , e così via, per riferirci
ai cinque tipi di coppie fin qui generate.
Qi <5(g¿,0) % ¿ , i) % i,B )
gì ( ¢ 2 4 , R) (g2 , o ; L) ÌQ2, L L )
Q-2 (¢ 3)0 , L ) (¢1,0.7?.) (g2 ,0 , R)
gs ---- — ----
e la stringa di input è w = 01. Per semplificare, osserviamo che M non scrive mai blank,
c quindi B non compare mai nelle ID. Possiamo pe rciò tralasciare le coppie relative a B .
La lista comple ta delle coppie è riportata nella Figura 9.15, corredata della spiegazione
de ll’origine di ogni coppia.
Cons ide riamo ora la sequenza di s oluzioni parziali che imita questa computazione di M
lì proble m a di corrispondenza di Posi 425
e porta a una soluzione. Come per ogni s oluzione di MP CP dobbiamo partire dalla prima
coppia:
A: #
B : # (/ ,0 1 #
A: # </i0
B-. # in 0 1 # l®
Pos s iamo estendere ulteriormente la s oluzione parziale me diante le coppie de lla regola (2)
fino ad avere lo stato ne lla seconda ID. La s oluzione parziale diventa:
.4 : #<7i 01 # l
B: # g i0 1 # l( fc l# 1
A questo punto possiamo usare un ’altra coppia de lla regola (3) per simulare una mossa;
la coppia appropriata è ( ^ l . Oyi ). Se nc ricava la s oluzione parziale:
A: # flf, 0 1 # l f t l
Β: # «ji 0 1 # l< f t l# 1 0 9l
Ora potre mmo usare le coppie de lla regola (2) per “copiare ” i tre s imboli successivi: #. 1
e 0. Ma spingersi tanto in là sarebbe un errore perché la mossa successiva di M sposta la
testina a sinistra, e lo 0 che precede lo stato serve alla successiva coppia de lla regola (3).
Perciò “copiamo” solo i due s imboli successivi, ottenendo una nuova s oluzione parziale:
A: # 9 l 0 1 # lg2 l # l
Β: # f t 0 1 # l © l # 10 i? i# l
La coppia de lla regola (3) da usare qui è (Oc/i # , ^ O 1# ) , che dà la s oluzione parziale
A: # f t 0 1 # l f t l # 1 0 q i #
B-. # 9 l 0 1 # l ( / 2 l # 1 0 yi # l ( 7 , 0 1 #
Pos s iamo ora usare un’altra coppia de lla regola (3), (l</ 2 0 , <7;i1 0 ), che porta a ll’accetta-
zionc:
A: # q i0 1 # lq 2 \ # 1 0 qi# lq20
Β: # q i0 l# lq 2l # W q i# ì q 20 l# q 3 l0
426 Capitolo 9
A questo punto ci serviamo di coppic de lla regola (4) per e liminare dalla ID tutti i s imboli
tranne 73 . Ci servono anche coppie de lla regola (2) per copiare s imboli. La s oluzione
parziale prosegue così:
Con il solo 73 nella ID pos s iamo usare la coppia ( 73 # # , # ) dalla regola (5) per comple
tare la s oluzione:
A: # 7 ιϋ 1 # ΐ7 21 # 1 0 7 ι# ΐ7 20 1 #7 3 ΐ01 # 7 3 0 1 # 7 3 ΐ# 7 3 # #
Β: # 7 i ü l # l 7 2l # 1 0 7 i # l 7 2 ü l # 7 : {1 0 1 # 7 3 ü l # 7 3 l # 7 3 # #
DIMOST RAZIONE La catena di riduzioni illustrata nella Figura 9.11 è quasi comple ta. La
riduzione di MPCP a PCP è stala dimostrata nel Teorema 9 .1 7 . La costruzione di questo
paragrafo spiega come ridurre L 11 a MPCP. Comple tiamo la prova di inde cidibilità di PCP
dimos trando la correttezza de lla costruzione , espressa dal seguente enunciato.
(Solo se) L’Es e mpio 9.18 presenta l’idea fondamentale. Se w è in L (M ) pos s iamo partire
dalla coppia de lla regola (1) e simulare la computazione di M su w. Ci se rviamo di una
coppia de lla regola (3) per copiare lo stato da ogni ID e simulare una mossa di M , e, se
necessario, delle coppie de lla regola (2) per copiare s imboli di nastro e il separatore #. Se
M raggiunge uno stato accettante, attraverso le coppie de lla regola (4) e infine attraverso
la coppia della regola (5), la stringa di A raggiunge que lla di B e forma una soluzione .
A: #
B: # 7 0 w #
Finché non ci sono stali accettanti ne lla s oluzione parziale, le coppic prese dalle regole (4)
e (5) sono inutili. Poss iamo trattare gli stati e uno o due s imboli adiacenti in una ID solo
con le coppie de lla regola (3); tutti gli altri s imboli di nastro e # sono trattati da coppie
de lla regola (2). Perciò, finché M non raggiunge uno stato accettante, tutte le s oluzioni
parziali sono de lla forma
11 problema di corrispondenza di Post 427
-4: X
Ti: x y
9.4.4 Esercizi
Es e rcìzio 9.4.1 Indicate quali, fra le seguenti istanze di PCP, hanno una s oluzione . Cia
scuna è presentata sotto forma de lle due liste A e B ; le ¿- esime stringhe di due liste si
corris pondono per i = 1 , 2 . . . .
*a ) A = (0 1 ,0 0 1 ,1 0 ); B = (0 1 1 ,1 0 ,0 0 ).
b) A = (0 1 ,0 0 1 ,1 0 ); B = (0 1 1 ,0 1 ,0 0 ).
! Es e r cizio 9.4.2 Abbiamo dimos trato che PCP è inde cidibile sotto l’ipotesi che l’alfabeto
Σ sia arbitrario. Dimostrate che PCP è inde cidibile anche limitando l’alfabeto a Σ =
{0 ,1 }, riduce ndolo a questo caso particolare.
w . * a.
/2 · /2
vv.
Im a l.
m
Pos s iamo anche osservare che ogni stringa te rminale derivabile da A in G a ha una sola
de rivazione . I s imboli indice al termine della stringa de te rminano univocame nte quale
produzione applicare a ogni passo. Solame nte due corpi di pr oduzioni te rminano infatti
con un dato s imbolo indice A —» WiAai e A —> Wiai. Dobbiamo usare la prima
produzione se il passo di de rivazione non è l'ultimo, e la seconda se è l'ultimo.
430 Capitolo 9
Cons ide riamo l’altra parte de ll’istanza assegnata di PCP, la lista B = .T1, x 2, . . . . a?*.
Per questa lista s viluppiamo un’altra grammatica, G d -
2. Le produzioni S —* A | B .
3. Tutte le produzioni di G a
4. Tutte le produzioni di G d -
Sos te niamo che G a b è ambigua se e solo se l'is tanza (A , B ) di PCP ha una s oluzione;
questa tesi è il nucle o del pros s imo teorema.
(Se) Supponiamo che Z1, i 2, . . . , im sia una s oluzione di questa istanza di P CP Cons ide
riamo le due seguenti de rivazioni in G a d '
(Solo se) Abbiamo già osservato che una stringa te rminale non può avere più di una
derivazione, né in G a né in G b - C ’è quindi un s olo caso in cui una stringa terminale ha
due de rivazioni a sinistra in G a b - una di esse comincia da S => .4 e continua con una
derivazione in G a - mentre l’altra comincia da S => B e continua con una derivazione
de lla stessa stringa in G d .
La stringa con due de rivazioni ha una coda di indici a¿m · · · cIh Ciil per un m > 1.
Questa coda è una soluzione de ll’istanza di PCP perché ciò chc precede la coda nella
stringa con due derivazioni è sia Wji Wh · Wim sia Xi1Xh · · Xim.
DIMOSTRAZIONE Sia Σ l’alfabeto delle stringhe ne lla lista ,4 = w i, w.'2; ,Wjc e sia I
l’ins ie me dei s imboli indice I — I a 1, 0 2, · · · , Ufc }· De s criviamo le operazioni del DP DA
P destinato ad accettare L a -
2. Quando legge un s imbolo indice in I, per es empio a¿, P toglie dallo stack per
verificare se i s imboli alla s ommità formano wf- , cioè la stringa corrispondente
rovesciata.
(a) Se la risposta è negativa, l'input letto fin qui, e ogni sua continuazione , è in
L a - P si sposta in uno stato accettante in cui cons uma il resto de ll’input senza
mutare lo stack.
432 Capitolo 9
(b) Se u ' f è stato tolto dallo stack, ina l’indicatore di fondo stack non è vis ibile ,
P accetta ricordando ne llo stato che ora si aspetta solo simboli di J e che
potrebbe ancora leggere una stringa in L a , che non deve accettare. P ripete il
passo (2) finché la que stione se l’input sia in L a non è risolta.
(c) Sc w f è stato tolto dallo stack e l ’indicatore di fondo stack è vis ibile , P ha
letto un elemento di L a , che non accetta. Ma poiché nessuna continuazione
de ll’input può essere in L a , P si sposta in uno stato in cui accetta ogni input
futuro senza modificare lo stack.
3. Se, dopo aver letto uno o più s imboli di I, P legge un altro s imbolo di Σ, l’input
non è di forma tale da poter essere in L a - Dunque P si sposta in uno stato in cui
accetta l’input corrente c ogni input futuro senza modificare lo stack.
Per dimostrare proprietà di inde cidibilità relative ai linguaggi liberi dal contesto, pos
s iamo servirci di L a , L b e dei loro comple me nti in vario modo. Ne l pross imo teorema
sono riassunte alcune di queste proprietà.
a) L ( G i ) D L ( G 2) = G?
b) L (G 1) = L (G 2) I
c) L ( G 1) = L (R)?
d) L (G i) = T * per un alfabeto T l
e) L ( G 1) C L ( G 2)?
O L ( B ) C L ( G 1)?
DIMOSTRAZIONE Ogni dimos trazione è una riduzione da P CP Mos triamo come trasfor
mare un’istanza (A, B ) di PCP in una questione relativa alle CF G e alle espressioni re
golari la cui risposta è “sì” se e solo se l ’istanza di PCP ha una soluzione. In alcuni casi
r iduciamo PCP alla questione così come l’abbiamo e nunciata nel teorema; in altri casi
al comple me nto. 1 due modi si e quivalgono perché se il comple me nto di un proble ma ò
inde cidibilc, il problema stesso non può essere de cidibile , dal mome nto che i linguaggi
ricorsivi sono chius i rispetto al comple me nto (Teorema 9.3).
De note re mo con Σ l’alfabeto delle stringhe di questa istanza e con T l'alfabe to dei
s imboli indice. Le riduzioni dipe ndono dal fatto chc L a , L# , L a ed L ^ hanno ciascuno
Altri problemi indecidibili 433
una CFG. Costruiremo le CFG o direttamente, come nel Paragrafo 9.5.2, o tramite il PDA
per i linguaggi complemento descritto nel Teorema 9.21 e la successiva trasformazione
del PDA in CFG (Teorema 6.14).
b) Dato che le CFG sono chiuse per unione possiamo costruire una CFG G i per L a U
L] j. Poiché (Σ U / )* è un insieme regolare, pos siamo senz'altro costruire una CFG
G -2 che lo genera. Vale L a U Lti = L a Π Lb- Quindi a L (G 1) mancano solo
le stringhe che rappresentano s oluzioni de ll’istanza di PCP. A L(Gz ) non manca
nessuna stringa in (Σ U 1)*. Dunque i loro linguaggi sono uguali se e solo se
l’istanza di PCP non ha soluzioni.
e) Sia G\ una CFG per (Σ U I)* e Gz una CFG per L a U L b - Allora L (Gi) C
L (Gz ) se e solo se L a U L b = (Σ U / )*, cioè se e solo se l’istanza di PCP non ha
s oluzioni.
9.5.4 Esercizi
Es e rcizio 9.5.1 Sia L l’insieme delle grammatiche libere dal contesto (codificate) G tali
che L (G) contiene alme no una palindroma. Dimostrate che L è indecidibile. Sugge
rimento: riducete PCP a L costruendo per ogni istanza di PCP una grammatica il cui
linguaggio contiene una palindroma se e solo se l’istanza di PCP ha una soluzione.
regolare. Suggerimento: supponete che PCP abbia una s oluzione e che la stringa wx
manchi da L a U L b - dove w è una stringa s ull'alfabe to Σ di questa istanza di PCP e x
è l'invers o de lla relativa stringa di simboli indice. Definite l’omomorfis mo /?(()) = w e
/¿(1) = x. Che cos’è 1i~1(L a U Per dimostrare che L a U Ln non è regolare,
sfruttate il fatto che gli insiemi regolari sono chiusi rispetto a omomorfis mo inverso e
comple me ntazione insieme al pumping lemma degli ins iemi regolari.
X
4. w Φ X n
5. y φ Zti
Teorema di Rice : qualunque proprietà non banale dei linguaggi accettati dalle mac
chine di Turing è inde cidibile. Un esempio: per il teorema di Rice è inde cidibile
l’insieme dei codici di macchine di Turing il cui linguaggio è vuoto. Si tratta in
effetti di un linguaggio non RE, sebbene il suo comple me nto, ossia l'ins ie me di
codici di T M chc accettano alme no una stringa, sia RE ma non ricorsivo.
Problema della corrispondenza di Post: si chiede se. date due lisie con lo stesso
numero di stringhe, sia possibile scegliere una sequenza di stringhe corrispondenti
dalle due liste e formare per concatenazione la stessa stringa. Il PCP è un importante
esempio di problema indccidibile . È inoltre utile come problema da ridurre a un
altro per provarne l'indccidibilità.
Problemi indecidibili sui linguaggi liberi dal contesto: per riduzione da PCP pos
s iamo mostrare l’indccidibilità di un numero di questioni sui CF L o le loro gram
matiche. Per esempio è inde cidibile se una CFG è ambigua, se un CFL è contenuto
in un altro, oppure se l’intersezione di due CF L è vuota.
9.7 Bibliografia
L'inde cidibilità del linguaggio universale è essenzialmente un risultato di Turing | 9J. an
che se nel suo lavoro è espressa in te rmini di computazione di funzioni aritmetiche e
arresto anziché in termini di linguaggi e accettazione per stato finale. Il Teorema di Rice
è tratto da IBJ.
L'indccidibilità del problema di corrispondenza di Post è dimostrata in [7J, sebbe
ne la dimostrazione fosse già stata tratteggiata da R.W. Floyd in una me moria inedita.
L’inde cidibilità dei Post tag system (definiti ne ll'Es crcizio 9.4.4) è tratta da [6],
Gli scritti fondame ntali s ull’inde cidibilità di questioni conccmcnti i linguaggi liberi
dal contesto sono fi 1 e f5J. L’inde cidibilità della questione se una CFG sia ambigua è
436 Capitolo 9
stata scoperta in studi indipendenti da Cantor [2], Floyd [4J, e Choms ky e Schutzenberger
[31.
1. Y. Bar- Hillel, M. Perles. E. Shamir, “On formal properties of simple phrase- strueturc
grammars,” Z. Phonetik. Sprachwiss. Kommunikationsforsch. 14(1961). pp. 143—
172.
2. D. C. Cantor, “On the ambiguity problem in Backus systems,” J. ACM 9:4 (1962),
p p . 477- 479.
6. M. L. Minsky, “Recursive uns olvability o f Post’s problem of ‘tag' and other topics
in the theory of Turing machine s ” Annals o f Mathematics 74:3 (1961), pp. 437-
455.
Problemi intrattabili
Dopo aver visto chc cosa è calcolabile, focalizziamo l'atte nzione su che cosa lo è in
modo efficiente. Ci occupiamo di problemi de cidibili e ci chie diamo quali possono essere
computati da macchine di Turing chc impie gano tempo polinomiale nella dimensione
de ll’input. Ripre ndiamo due punti importanti già introdotti nel Paragrafo 8.6.3.
• L'esperienza ha mostrato che la distinzione tra proble mi ris olvibili in tempo po
linomiale e problemi che richie dono un tempo esponenziale o maggiore è fonda-
mentale. I problemi concreti che richiedono tempo polinomiale sono quasi sempre
ris olvibili in un tempo accettabile, mentre que lli che richie dono tempo esponenziale
non possono generalmente essere risolti, fatta eccezione per istanze piccole.
10.1 Le classi V ed H V
In questo paragrafo pres entiamo i fondame nti de lla teoria del l’intrattabilità: le classi V
cd M V dei proble mi ris olvibili in te mpo polinomiale rispettivamente da T M de te rminis ti
che e non deterministiche, e la tecnica de lla riduzione polinomiale . De finiamo inoltre la
nozione di “NP- complete zza”, una proprietà di alcuni proble mi in H V che s ono alme no
tanto ardui (a me no di un polinomio rispetto al te mpo) quanto ogni altro proble ma in M V .
1. Per ciascun nodo si conserva la componente connessa di cui fa parte rispetto ai lati
delTalbcro selezionati finora. Inizialme nte nessun lato è selezionato, per cui ogni
nodo forma da solo una componente connessa.
1J. B. Kr us kal Jr., “On the s horte s t s pa nning s ubtre e of a gr aph and the tr ave ling s ale s man problem”,
Pme. AMS 7:1 ( 1956). pp. 48- 50.
440 Capitolo 10
F ig ur a 10.1 Un grafo; i tratti più spessi indicano un albero di copertura di peso minimo.
2. Si considera uno dei lati di peso minimo non ancora esaminati, scegliendolo arbi
trariamente. Se questo lato unisce due nodi in componenti connesse diverse:
Se invece il lato selezionato unisce due nodi della stessa componente, esso non
appartiene all’albero di copertura perché darebbe vita a un ciclo.
3. Si continua a considerare nuovi lati finché si sono esaminati tutti, o fino a quando
il numero di lati selezionati c pari al numero di nodi me no uno. Nel secondo caso
tutti i nodi devono già trovarsi in una componente connessa, e si può evitare di
esaminare altri lati.
Es e mpio 10.1 Nel grafo della Figura 10.1 consideriamo in primo luogo il lato (1 ,3 ),
che ha il peso più basso, 10. Poiché 1 e 3 sono inizialme nte in componenti diverse, lo
accettiamo e facciamo sì che 1 c 3 abbiano lo stesso nume ro di componente, per esempio
“componente 1”. Il lato successivo ne ll’ordine di peso è (2 ,3 ), con peso 12. Poiché 2
e 3 sono in componenti diverse, lo accettiamo e uniamo il nodo 2 alla "compone nte 1” .
Il terzo lato è (1 ,2 ), con peso 15. 1 c 2 però si trovano ora nella stessa componente,
per cui lo rifiutiamo e procediamo con il quarto, (3 ,4 ). Dato che 4 non si trova nella
“componente 1”, lo accettiamo. A questo punto abbiamo tre lati ne ll’albero di copertura
di un grafo di 4 nodi e possiamo quindi fermarci.
• Ne llo s tudio di algoritmi ci imbattiamo in “pr oble mi” chc richie dono una varietà di
forme di output, come la lista dei lati di un MWST . Trattando macchine di Turing,
pos s iamo considerare i proble mi solo come linguaggi, e l’unico output è “s ì” o
“no”, ossia accettazione o rifiuto. Per esempio il proble ma MWST potrebbe essere
espresso così: “dato il grafo G e l’intero W , G ha un albero di copertura di peso
non superiore a W T Dato che non chiede di determinare l’albero di copertura,
questo proble ma sembra più facile rispetto alla versione di MWST che abbiamo
studiato. Ma ne lla teoria de ll’intrattabilità vogliamo in genere dimostrare che un
proble ma è difficile , non facile, c il fatto che la versione s ì/no di un proble ma sia
difficile implica che è difficile anche la versione in cui si deve calcolare una risposta
comple ta.
• Sc pos s iamo considerare la “dime ns ione ” di un grafo come il nume ro dei suoi nodi
e lati, l’input di una T M è una stringa su un alfabeto finito. Di conseguenza gli
elementi del proble ma, come nodi e lati, devono essere adeguatamente codificati.
Ne segue chc gli input di una macchina di Turing sono di s olito più lunghi rispetto
alla “dime ns ione ” intuitiva del l’input. Ci sono però due ragioni per cui la differe nza
non è rilevante.
Es e mpio 10.2 Es aminiamo una pos s ibile codifica per i grafi e i limiti di peso che potrebbe
costituire l’input per il proble ma MWST . La codifica usa cinque s imboli: 0 ,1 , le parentesi
sinistra e destra, c la virgola.
3. Se esiste un lato tra i nodi i e j con peso w, collochiamo (i, j, w) nella codifica. Gli
interi i, j e w sono rappresentati in binario. L’ordine di i e j entro un lato e l'ordine
dei lati a ll’interno de lla codifica sono irrilevanti.
Una pos sibile codifica per il grafo de lla Figura 10.1 e il limite W = 40 è
100, 101000( 1, 10, 1111) ( 1, 11, 1010) ( 10, 11, 1100) ( 10, 100. 10100) ( 11, 100. 10010)
Se rappresentiamo gli input del proble ma MWST come ne ll’Es e mpio 10.2, un input di
lunghe zza n può rappresentare al mas s imo ( )( n / log n) lati. Se i lati sono pochi, il nume ro
di nodi m può essere e s pone nziale in ri. Ma se il nume ro di lati e non è alme no n i — 1, il
grafo non può essere connesso, e dunque non avrà alcun MWST , indipende nte mente dai
lati. Di conseguenza, se il nume ro di nodi non è alme no una ccrta frazione di n f lo g n ,
non c ’è bis ogno di eseguire l’algoritmo di Kruskal; diciamo se mplicemente “no, non
esiste alcun albero di copertura di questo peso”.
Perciò, se abbiamo un limite superiore, espresso come funzione di m ed a, al tempo
di esecuzione de ll’algoritmo di Krus kal. per es empio il limite 0 (e (m . + e )) s viluppato
in precedenza, pos siamo sostituire per prude nza sia m sia a con n, e dire che il te mpo
di esecuzione, come funzione de lla lunghe zza di input n, è 0 ( n ( n + r?)), cioè 0 ( n 2).
In effetti c ’è u n ’imple mcntazione migliore dcH’algoritmo di Kruskal che richiede tempo
0 ( n log n ), ma in questa sede non ce ne occupiamo.
Dobbiamo tener conto che us iamo una macchina di Turing come mode llo di compu
tazione, mentre l’algoritmo descritto è destinato a essere realizzato in un linguaggio di
programmazione con strutture dati come gli array e i puntatori. Affe rmiamo però di poter
implementare que lla versione deH’algoritmo di Krus kal su una T M multinas tro in O ( r r )
passi. De s criviamo l'impie go dei nastri supplementari.
I. Un nastro me morizza i nodi e i loro numeri di compone nte correnti. La lunghe zza
de lla tabe lla è 0 ( n ) .
Le classi V c d .V P 443
2. Me ntre percorriamo i lati sul nastro di input un altro nastro contiene il peso del
lato che al mome nto c il più piccolo tra i lati che non sono marcati come “usati”.
Pos s iamo impiegare una seconda traccia del nastro di input per indicare i lati se
le zionati come lati residui di minor peso nei passi precedenti del l’algoritmo. La
ricerca del lato residuo di peso minimo richiede te mpo 0 (n ) , perche ciascun lato
viene preso in considerazione una sola volta e i confronti di peso pos sono essere
fatti percorrendo, da destra a sinistra, i numeri binari.
4. Un nastro contiene le due compone nti, i e j , che de vono essere riunite quando si
scopre chc un lato colle ga due compone nti precedentemente non connesse. Percor
riamo la tabella di nodi e compone nti, e a ogni nodo chc si trova nella compone nte i
as s ociamo j come nuovo nume ro di componente. Anche que s t’operazione richiede
te mpo 0 (n ) .
Il lettore dovrebbe essere in grado di completare da s olo il ragioname nto per cui un passo
può essere eseguito in te mpo 0 ( n ) su una T M multinas tro. Poiché il nume ro di passi è
al mas s imo n , concludiamo chc un te mpo 0 (r i2) è sufficiente per una T M multinastro.
Sfruttiamo ora il Teorema 8.10, secondo il quale tutto ciò che una T M multinas tro può fare
in $ passi può essere fatto da una T M a nastro s ingolo in 0 ( s 2) passi. Di conseguenza,
se la T M multinastro fa 0 (r i2) passi, pos siamo costruire una T M a nastro s ingolo che fa
altrettanto in θ ( ( η 2)2) = Θ(η Λ) passi. Concludiamo che la versione sì/no del proble ma
MWST , ossia “il grafo ha un MWST di peso totale non superiore a WT' , è in V.
Es e mpio 10.3 II grafo della Figura 10.1 ha un solo circuito hamiltoniano: il ciclo (1 ,2 .4 ,
3 . 1). Il suo peso totale c 15 + ‘20 + 18 + 10 = 63. Pertanto, se W è 63 o più, la risposta
è “sì” ; se W < 63 la risposta è “no”.
Lc classi V ed M V 445
Il T SP per grafi di quattro nodi è ingannevolme nte s emplice, dato che non pos sono
mai esistere più di due circuiti hamiltoniani diversi, salvo che per il nodo iniziale c per la
dire zione in cui li percorriamo. In grafi di rn nodi il nume ro di cicli distinti cresce come
0 (m l), il fattoriale di rn, che è più di 2<:,n per qualunque costante c.
Supponiamo di voler dimostrare l’e nunciato “se P 2 è in V . allora lo è anche P i”. Poiché
sosteniamo che Py non è in V , potre mmo allora affermare che neanche P2 c in V . La
2U a ffe r m a zio ne non è d e l tutto ve ra. In r e altà ipotizziamo che P i no n s ia in P in base a un in d izio m o lt o
forte : il fatto che Ρχ è “NP - comple to” , un conce tto chc tratte re mo ne l Par a gr afo 10.1.6. Dim o s t r ia m o chc anche
P-2 è “ NP - c omple to ". e a b b ia m o cos ì l' in d iz io chc P i no n è in V .
446 Capilolo IO
s emplice esistenza de ll’algoritmo etichettato “Cos truzione ” ne lla Figura 10.2 non basta
però a dimostrare l’enunciato.
Supponiamo, per es empio, chc quando riceve in input un’istanza di P 1 di lunghe zza
in, l’algoritmo produca una stringa di output di lunghe zza 2m, che viene passata a ll’al
goritmo ipotetico in tempo polinomiale per P 2 . Se l’algoritmo di decisione impie ga un
te mpo 0 ( n k ), su un input di lunghe zza 2m il suo te mpo di esecuzione sarebbe 0 (2 k m),
chc è esponenziale in m . Di conseguenza, quando a ll’algoritmo di decisione per P i viene
dato un input di lunghe zza m, esso impie ga un te mpo e s ponenziale in rn. Si tratta di dati
perfettamente coerenti con la s ituazione in cui P 2 è in P e P 1 non è in V.
Anche se l’algoritmo che costruisce un’istanza di P2 da un’istanza di P produce
sempre un'is tanza polinomiale nella dime ns ione de ll’input, non è detto che si giunga alla
conclus ione desiderata. Per es e mpio s upponiamo chc l’istanza di P> costruita sia della
stessa dime ns ione , rn, de ll’istanza P i, ma che l’algoritmo di costruzione impie ghi un
te mpo esponenziale in rn, poniamo 0 ( 2 m ). Un algoritmo di decisione per P2 che impie ga
te mpo polinomiale 0 ( n k ) su input di lunghe zza n comporta l’esistenza di un algoritmo
di decisione per P 1 chc impie ga tempo 0 (2 m + m k ) su input di lunghe zza m . Que sto
limite sul te mpo di esecuzione considera il fatto che bis ogna compie re la traduzione a P 2
oltre a risolvere l'is tanza di P 2. Anche qui è possibile che P 2 sia in P e Pi no.
Il vincolo che dobbiamo porre alla traduzione da P1 a P 2 è che richieda un tempo
polinomiale ne lla lunghe zza de ll'input. Os s erviamo che se la traduzione impie ga tempo
0 (m P) su input di lunghe zza m , l ’istanza di P 2 non può essere più lunga del nume ro di
passi compiuti, cioè al mas s imo cm? per una costante c. Possiamo ora dimostrare che se
P 2 è in V , lo è anche P\ .
Per la dimos trazione s upponiamo di poter decidere l’appartenenza a Po di una stringa
di lunghe zza n in tempo 0 ( n k ). Allora pos siamo decidere l’appartenenza a P i di una
stringa di lunghe zza rn in te mpo 0 ( m J + (cm,J )fc); il termine rnJ corrisponde al tempo
per la traduzione e il termine (cmP)k al te mpo per decidere l’istanza risultante di P2.
Se mplificando l’espressione ve diamo che P 1 può essere risolto in te mpo 0 ( m J + c m ik ).
Poiché c, j c k sono costanti, il tempo è polinomiale in rn, c de duciamo che P 1 è in V .
Per questi motivi, ne lla teoria del l’intrattabilità useremo solo riduzioni polinomiali.
Una riduzione da P 1 a P 2 è polinomiale se il te mpo impie gato è un polinomio nella
lunghe zza de ll'is tanza di P i . Ne segue che la lunghe zza de ll’istanza di P 2 è un polinomio
ne lla lunghe zza de ll’istanza di P 1.
I. L è in M V .
Le classi V ed M V 447
Come vedremo, un esempio di proble ma NP- completo e il proble ma del commes s o viag
giatore, introdotto nel Paragrafo 10.1.4. Poiché si ritiene chc V φ M V , e che in parti
colare tutti i proble mi NP- completi sono in M V — V , cons ide riamo la dimos trazione di
NP- complctczza di un proble ma come la dimos trazione che que l problema non è in V .
Dimos tre re mo che un primo proble ma, detto SAT (abbreviazione di boolean satisfia
bility, s oddis facibilità boole ana), è NP- completo provando che il linguaggio di ogni NT M
con te mpo polinomiale ha una riduzione polinomiale a SAT. Se dis poniamo di alcuni pro
ble mi NP- completi, pos s iamo dimostrare l' NP- completezza di un nuovo proble ma r idu
cendo a questo uno di que lli noti tramite una riduzione polinomiale . Il teorema che segue
spiega perché una riduzione di questo tipo serve a dimostrare che il proble ma d ’arrivo è
NP- completo.
10.1.7 Esercizi
Es e rcizio 10.1.1 Determinate l’MWST del grafo ottenuto modificando ipesi nella Figu
ra 10.1 come indicato qui sotto.
Es e rcizio 10.1.2 Qual è il circuito hamiltoniano di peso minimo del grafo ottenuto ag
giunge ndo alla Figura 10.1 un lato di peso 19 tra i nodi 1 e 4?
Es e rcizio 10.1.3 Supponiamo che esista un problema NP- complcto con una soluzione
deterministica che impie ga un tempo 0 ( n log·^,l). Os s e rviamo chc questa funzione si col
loca tra i polinomi c gli e sponenziali, e non si trova in nessuna delle due classi di funzioni.
Che cosa potremmo dire del te mpo di esecuzione di un problema arbitrario in M V l
Es e rcizio 10.1.4 Considerale i grafi i cui nodi sono i punti a coordinate intere di un cubo
a n dime ns ioni di lato ni, cioè i vettori (¿ i, ¿2 , . . . , i„), dove ogni è compreso tra 1 ed
m . Due nodi sono uniti da un lato se e solo se differiscono di uno in esattamente una
dime ns ione . Per esempio il caso n = 2 e m = 2 è un quadrato, n = 3 e m = 2 è un cubo,
mentre n = 2 e m = 3 è il grafo rappresentato nella Figura 10.3. Alcuni di questi grafi
hanno un circuito hamiltoniano e aliri no. Per esempio il quadrato ne ha evidentemente
uno, così come il cubo, sebbene non tanto evidente. Un ciclo è (0 .0 ,0 ), (Ü, 0 .1 ), (0 .1 ,1 ),
Le classi V ed A V 449
Es e r cizio 10.1.5 Supponete di avere una codifica delle grammatiche libere dal conteste
in un alfabeto finito fissato. Considerate i due linguaggi seguenti.
* c) Che cosa dicono (a) e (b) circa la pos s ibilità che L\ ed L-¿ siano NP- complcti?
a) inversione
* b) unione
*! c) concatenazione
e) omomorfis mo inverso
* f) comple me ntazione .
Es e r cizio 10.1.7 Anche M V è chius o rispetto a ognuna delle ope razioni elencate per
V ne ll’Es ercizio 10.1.6, con l ’eccezione (presunta) de lla comple me ntazione al punto
(f). Non è noto se M V sia chius o rispetto alla comple me ntazione o no: questo pun
to verrà discusso più avanti nel Paragrafo 11.1. Dimos trate che i punti da (a) a (e)
de ll’Es e rcizio 10.1.6 valgono anche per MV.
Un problem a NP- completo 451
Un assegnamento di valori di verità per una data espressione boole ana E assegna i
valori vero o falso a ognuna delle variabili presenti in E . Il valore dell'espres sione E
rispetto a un assegnamento di valori di verità T , denotato come E ( T ) , è il risultato de lla
valutazione di E con ciascuna variabile x sostituita dal valore T (x ) (vero o falso) che T
assegna a x .
Un assegnamento di valori di verità T soddisfa l’espressione boole ana E se E (T ) =
1, cioè se rende vera l'espressione E. Un ’espressione boole ana E si dice soddisfacibile
se esiste alme no un assegnamento di valori di verità T che soddis fa E .
Es e mpio 10.7 L’espressione x Λ - >(y V z) de ll’Es e mpio 10.6 è s oddis facibile . Abbiamo
visto che l’assegnamento di valori di verità T de finito da T (x ) = 1, T (y ) = Oe T (z ) — 0
la soddisfa, in quanto rende vero (1) il valore de ll’espressione. Abbiamo inoltre osservato
452 Capitolo IO
che T è Yunico assegnamento di valori di verità chc s oddis fa l’espressione, perché le altre
sette combinazioni di valori per le tre variabili danno a ll’espressione il valore fals o (0).
Come ulteriore e s e mpio cons ide riamo l’espressione E = x A (- cc V y) A -<y.
Sos te niamo che E non è s oddis facibile . Poiché esistono solo due variabili, il nume ro di
as segnamenti di valori di verità è 22 = 4; il lettore può facilme nte provarli tutti e verificare
che E ha sempre valore 0. Pos s iamo però anche ragionare in altro modo. E è vera s olo se
tutti e tre i te rmini compos ti per me zzo di Λ sono veri. Ciò s ignifica che .τ dev'essere vera
(per il pr imo termine) e y de v’essere falsa (per l ’ultimo termine). Ma rispetto a questo
as segnamento di valori di verità il termine me diano - >x V y è falso. Di cons e guenza E
non può essere verificata ed è quindi ins oddis facibile .
Abbiamo visto un e s e mpio in cui un'espressione ha un solo assegnamento di valori
di verità soddisfacente e un e se mpio in cui non ne ha nessuno. Ci sono anche molti
e sempi in cui un'espressione ha più di un assegnamento soddisfacente. Per esemplificare
cons ide riamo F = x V - >y. 11 valore di F è 1 per tre assegnamenti:
1. T 1 ( X ) = I t T l (V ) = I
2. T2(X) = I, T2( V ) = O
3. T 3(x ) = 0. T3(y ) = 0.
In genere denoteremo con SAT il proble ma della s oddis facibilità. Enunciato come lin
guaggio, il proble ma SAT è l’ins ie me delle espressioni boole ane (codificate) soddisfaci-
bili. Le stringhe che non sono codi fiche valide per un’espressione boole ana o che sono
codilichc per espressioni booleane non s oddis facibili non apparte ngono a S AT.
bassi. Per esempio non useremo x 5 se nella stessa espressione non compaiono anche le
variabili da :ri a x±.
Dal mome nto che in un’espressione booleana può esserci, in linea di principio, un nu
mero infinito di s imboli, dobbiamo ideare un codice con un alfabeto finito per rappresen
tare espressioni con un nume ro arbitrariamente grande di variabili. Solo allora possiamo
parlare del SAT come di un “proble ma”, ossia come di un linguaggio su un alfabeto fisso
formato dalle codi fiche delle espressioni booleane s oddis facibili. De s criviamo il codice
di cui faremo uso.
L’alfabeto per il proble ma/linguaggio SAT ha quindi solo otto s imboli. Tutte le istanze di
SAT sono stringhe su questo alfabeto finito.
Es e mpio 10.8 Cons ide riamo l’espressione x A - >(y V z) tratta da ll’Es empio 10.6. Il
primo passo da compiere nella codifica è sostituire le variabili con x dotati di indici.
Essendoci tre variabili, adope riamo a?i, x-¿ e :r;!. Possiamo scegliere liberamente quale fra
x , y e z sostituire con ognuna delle a;,·. Poniamo x = X1, y = x% e z = £ 3 . L’espressione
diventa dunque Xi A ~·(χ·2 V £ 3 ). L’espressione codificata è:
x l A - ι(χ10 V x l l )
Per la seconda parte ci se rviamo pr ima di una riduzione polinomiale da un altro proble ma
NP- completo. poi del Teorema 10.5. Ma per ora non conos ciamo alcun proble ma NP-
comple to da ridurre a SAT. Pertanto T unica strategia dis ponibile consiste nel ridurre ogni
proble ma in A f V a SAT.
La valutazione può essere fatta facilme nte in te mpo 0 ( n 2) su una NT M multinas tro.
Di conseguenza l’intero riconos cime nto di SAT da parte de lla NT M multinas tro richie
de te mpo 0 ( n 2). La conversione in una NT M a nastro s ingolo può elevare il te mpo al
quadrato, per cui un te mpo 0 ( r í[) è sufficiente su una NT M a nastro singolo.
Dobbiamo ora dimostrare la parte difficile: se L è un quals ias i linguaggio in A fV ,
esiste una riduzione polinomiale di L a SAT. Possiamo assumere chc esistano una NT M
a nastro s ingolo A l e un polinomio p (n ) tale chc M non impie ga più di p(n) passi su
un input di lunghe zza n, lungo qualunque diramazione . Oltre a ciò, le restrizioni del
Teorema 8.12, chc abbiamo dimos trato per le DT M, valgono anche per le NT M. Quindi
pos s iamo assumere che A l non scriva mai un s imbolo blank e non muova mai la testina a
sinistra de lla sua pos izione iniziale .
Perciò, se A l accetta un input w e | ?/;| = n , esiste una sequenza di mosse di A l tale
che:
4. ciascun a¿ è formato soltanto da s imboli diversi dal blank (tranne il caso in cui a,;
finisce con uno stato e un blank) e si estende dalla pos izione iniziale de lla testina
(cioè il s imbolo di input più a sinistra) verso destra.
Un problema NP- completo 455
a) Cias cun a¿ può essere scritto come una sequenza di s imboli X ìq X ìì - „).
Uno di questi è uno stato e gli altri sono s imboli di nastro. Come sempre as s umiamo
che gli stati e i s imboli di nastro siano dis giunti, per cui possiamo stabilire quale
X 11 è lo stato, e dunque dove si trova la testina. Os s e rviamo che non c’è motivo di
rappresentare i s imboli a destra dei primi p(n) s imboli sul nastro (contando lo stato
abbiamo così una ID di lunghe zza p (n ) — 1) perché questi non possono influenzare
una mossa di M se questa si arresta entro p(n) mosse.
Prima di definire come si costruisce l'espressione boole ana, dobbiamo precisare alcuni
punti.
• In primo luogo abbiamo specificato che una ID te rmina dove comincia la coda
infinita di blank. Quando si s imula una computazione polinomiale è più opportuno
considerare tutte Ic ID come aventi la stessa lunghe zza. p(n) + 1. Perciò in una ID
può essere presente una coda di blank.
Data la codifica di M e dato w, pos siamo senz’altro scrivere S in un tempo 0 (p (r ¿)) sul
secondo nastro di una T M multinastro.
Avendo ipotizzato che una ID accettante si ripeta per sempre, l’accettazione da parte di
M equivale a trovare uno stato accettante in a p(n). Ricordiamo che per ipotesi la NT M
A l, se accetta, lo fa entro p(n) passi. Di conseguenza F è l'OR delle espressioni Fj, per
j = 0 , 1 , . . . ,p(rc), dove Fj afferma che X v(n).j è uno stato accettante. In altre parole
F jQ y¡>(n),j,a\ V yp(n),j,a-2 V · · · V >dove o i , (>2, · . . , Ok sono tutti gli stati
accettanti di M . Quindi
F = F0 V F 1 V V Fv(n)
Os s e rviamo che ogni Fi impie ga un nume ro costante di s imboli, che dipende da Ni,
ma non dalla lunghe zza n de ll'input w. Perciò F ha lunghe zza θ (ρ(«.)). Inoltre il tempo
per scrivere F, data una codifica di M e l’input w, è polinomiale in ri; in realtà F può
essere scritta in un tempo Q(p (n )) su una T M multinastro.
Assicurarsi che le mosse di M s iano corrette è la parte di gran lunga più complicata.
L’espressione Ar sarà l’AND delle espressioni N i , per ¿ = 0 , 1 , . . . ,ρ(η) — 1, e ogni N i.
sarà definita in modo da garantire che a ¿+1 sia una delle ID che possono seguire Cti in M .
Per spiegare come si scrive N i, osserviamo anzitutto il s imbolo X- i+i.j nella Fig. 10.4. E
sempre possibile determinare X i+ i.j dai seguenti dati.
Quando lo stato è adiacente alla pos izione j , la correttezza della pos izione j è
garantita da A ij - 1 o da A ij+ 1 .
Le prime due righe garantis cono che B ii è vera quando lo stalo di a.¿ è adiacente alla
pos izione j. Le prime tre righe ins ie me garantis cono chc, se lo stato di è alla pos izione
j , allora B lj è falsa, e quindi N i è vera solo se A iJ è vera, cioè se la mossa è lecita.
Sc lo stato dista alme no due pos izioni da jf, le due ultime righe indicano che il s imbolo
non deve cambiare . L’ultima riga affe rma che X j = X ì +i j spe cificando che e ntrambi
de vono essere Z j o Z¿, e così via.
Es is tono due importanti casi particolari: j = O e j = p (n ). Ne l primo caso non ci
sono variabili V ij- ι ,χ , ne ll’altro non ci sono variabili yij+\ ,χ . Sappiamo pe rò che la
testina non si muove inai a sinistra de lla sua pos izione iniziale , e s appiamo che non ha il
te mpo di raggiungere più di p (n ) celle a destra del punto da cui è partita. Di cons e guenza
pos s iamo e liminare certi te rmini da B i0 e Las ciamo la s e mplificazione al lettore.
Cons ide r iamo ora le espressioni A ijt chc ris pe cchiano le pos s ibili re lazioni tra gli
e le me nti del rettangolo 2 x 3 di s imboli ne ll’array de lla Figura 10.4: X iJ - X j , X iJ+ 1,
X ì +i j e . Dire mo che un as s egnamento di s imboli a queste variabili
è v alido se:
2. c ’è una mossa di M per effetto de lla quale X ij- \ X ijX ij+ \ diventa
X i+ y j- .X i +y jX i+ ij+ ,
Il nume ro di assegnamenti validi alle sei variabili è quindi finito. Sia A il un OR di te rmini,
un tonnine per ogni ins ie me delle sei variabili che for ma un assegnamento valido.
Per e s e mpio s upponiamo che una mos s a di M de rivi dal fatto che ó(q, A) contie
ne (p, C\ L). Sia D un s imbolo di nastro di M . Un as segnamento valido sarà dunque
Un problem a NP- completo 459
Ajj è l ’OR di tutti i termini validi. Nei casi speciali j = O e j = p(n) bisogna
apportare alcune modifiche per tener conto che le variabili y ijz non esistono per j < Oo
j > p (n ), comc abbiamo fatto per B jj . Infine
E m ,w = S Λ A' A F
come una funzione sia di M sia di w, ma solo S (la parte “avvio corretto”) dipende da ?/;,
e solo in modo diretto (w è sul nastro della ID iniziale ). Le altre par ti, N ed F , dipe ndono
solo da M e da n, la lunghe zza di ?/>.
Quindi per ogni NT M M che gira in un tempo polinomiale p(n) pos s iamo ideare un
algoritmo che prende un input w di lunghe zza n e produce E m ,w II tempo di esecuzione
del l’algoritmo su una T M deterministica multinas tro è θ ( ρ2(η )), c pos s iamo convertire
Ia T M in una T M a nastro s ingolo che impie ga un te mpo 0 ( p d( n ) ) . L'output de ll'algor it
mo è un’espressione boole ana E m ,w soddis facibile se e solo se M accetta tv entro p(n)
mosse.
460 Capitolo 10
Per sottolineare l’importanza del Teorema di Cook 10.9, ve diamo come applicargli
il Teorema 10.5. Supponiamo che esista una T M dete rminis tica in grado di riconoscere
le istanze di SAT in te mpo polinomiale , poniamo q(n). Allor a ogni linguaggio accettato
da una NT M A f in te mpo polinomiale p(n) sarebbe accettato in tempo polinomiale dalla
DT M schematizzata ne lla Figura 10.5. L’input w di A f viene convertito in un’espressione
booleana E m ,w , che viene passata al verificatore di SAT. Il nuovo algoritmo dà per w la
stessa risposta del verificatore su E m ,w -
Convertitore
in tempo
w M.w SI
polinomiale
per M
10.2.4 Esercizi
Es e r cizio 10.2.1 Quanti assegnamenti di valori di verità s oddisfacenti hanno le seguenti
espressioni booleane? Quali sono in SAT?
Es e r cizio 10.2.2 Sia G un grafo di quattro no d i:l, 2, 3 e 4. Sia X jj, per 1 < i < j <
4, una variabile propos izionale la cui interpretazione è “esiste un lato tra i nodi i e f\
Quals ias i grafo su questi nodi può essere rappresentato da un assegnamento di valori di
verità. Per e s e mpio il grafo de lla Figura 10.1 e rappresentato dichiarando falsa *14 e
vere le altre cinque variabili. Quals ias i proprietà del grafo che riguardi solo l ’esistenza
o la non esistenza di lati si può esprimere come un’espressione booleana vera se e solo
se l’assegnamento di valori di verità alle variabili descrive un grafo con que lla proprietà.
Scrivete le espressioni per le seguenti proprietà.
* a) G ha un circuito hamiltoniano.
b) G è connesso.
Un problem a di s oddis facibilità v incolino 461
c) G contiene una clique di dime ns ione 3, ossia un ins ie me di tre nodi tale chc ogni
coppia di quei nodi c unita da un lato (cioè un triangolo nel grafo).
• Un letterale è una variabile o una variabile negata. Ne sono es empio x e - >y. Per
risparmiare spazio scriveremo spesso y in luogo di ->?/.
• Una clausola è la dis giunzione logica (OR) di uno o più letterali. Ne s ono e se mpio
x , X V y, e X V y V z.
• Un'es pre ssione boole ana si dice in form a normale congiuntiva, o CNF ( Conjuncti
ve Norm al Form), se è la congiunzione logica (AN D) di una o più clausole.
Vedremo che CSAT, 3SAT e ^SAT per ogni k maggiore di 3 sono NP- completi. Esistono
invece algoritmi in tempo lineare per ISAT e 2SAT.
La riduzione di SAT a CSAT si articola in due tempi. Dapprima tutti i ->vengono spinti
verso il basso de ll'albe ro del l’espressione finché le ne gazioni si applicano solo a singole
variabili. L’espressione boole ana diventa un AND e OR di letterali. Questa trasforma
zione produce un’espressione equivalente e richiede un tempo al più quadratico nella
lunghe zza de ll’espressione. Un programma concreto, con strutture dati ben congegnate,
impie ga un tempo lineare.
In un secondo tempo s criviamo un'espressione composta di AND e OR di letterali
comc prodotto di clausole, cioè in CNF. Riconcndo a nuove variabili pos siamo compiere
la trasformazione in un te mpo polinomiale nella lunghe zza dell'espressione data. In ge
nerale la nuova espressione F non è equivalente a que lla originale E , ma è s oddisfacibile
se e solo se lo è E. Più esattamente, se T è un assegnamento di valori di verità che rende
E vera, esiste un 'estensione S di T che rende F vera. Diciamo che S è un'estensione di
T se assegna gli stessi valori di T alle variabili di T : S può assegnare un valore anche a
variabili assenti da T .
11 primo passo consiste ne llo spingere i -> sotto gli Λ e gli V. Ci servono tre regole.
1. ->( E A F’) => - >(£") V Questa regola, una delle leggi di DeMorgcm,
permette di spostare i -> sotto gli Λ, e ha l’effetto di mutare un Λ in V.
2. - ι (Ε V F') => - '(E) A ~ '(F). L’altra legge di DeMorgan sposta il -> sotto l’V, con
l’effetto di mutare l’V in Λ.
3. - >(- >(£)) => E. La legge della doppia negazione cance lla una coppia di -> applicati
alla stessa espressione.
Es e mpio 10.11 Cons ide riamo l’espressione E = - >^(- >(;r + y ))(x + y ) j. Abbiamo qui
mescolato le due notazioni, con l’operatore -> e s plicito quando l’espressione da negare
464 Capitolo 10
Espressione Re gola
• " ( H * + :?/))(* + 1/))
- >(^(x +y )) -I- - >(x + y) (D
x + y + - >(x + y) (3)
& + y + (- · (*))» (2)
x + y + xy (3)
non è una s e mplice variabile. La Figura 10.6 illustra i passi che spostano in basso i
de ll’espressione E fino ad applicarli direttamente ai letterali.
L’ultima espressione, equivalente a ll’originale, è una combinazione di letterali con
AN D e OR. Potre mmo se mplificarla ancora e ridurla a x + y, ma questo non incide s ul
l’ipotesi che ogni espressione si può riscrivere in modo chc i -> figurino solo nei letterali.
INDUZIONE Supponiamo chc l’e nunciato sia vero per tutte le espressioni con me no opera
tori di E . Se il suo operatore di live llo più alto non è E dev'essere de lla forma Εχ V E 2
ο Εχ A E 2. In entrambi i casi l’ipotesi induttiva si applica a E i e a essa dice che
esistono due espressioni e quivale nti, rispettivamente F\ ed F2, in cui i -> figurano s olo nei
letterali. Quindi F = F\ V F¿ o F = (F i ) A (F2) è equivalente a E. Supponiamo che
Un problem a di s oddis facibilità vincolato 465
Descrivere algoritmi
Formalme nte il te mpo di esecuzione di una riduzione è que llo necessario a ese
guirla su una macchina di Turing mononas tro, ma gli algoritmi di questo tipo
sono inutilme nte comple s s i. Sappiamo che i proble mi r is olvibili in te mpo poli
nomiale su compute r ordinari, su T M multinas tro, o su T M mononas tro s ono gli
stessi, anche se il grado dei polinomi può variare. Perciò, nel descrivere algoritmi
sofisticati per ridurre un proble ma NP- completo a un altro, s tabiliamo di misurare
i tempi rispetto a imple me ntazioni efficienti su un normale computer. In questo
modo pos s iamo tralasciare dettagli sul trattamento dei nastri per mettere in luce
le idee algoritmiche più importanti.
DIMOSTRAZIONE Spie ghiamo come rid u rre SAT a CSAT in te mpo polinomiale . Ap p li
chiamo anzitutto il me todo del Teorema 10.12 per convertire un ’is tanza di SAT in u n ’e
spressione E con tutti i - nei letterali. Spie ghiamo poi come trasformare E in un'espres
sione F in CNF in tempo polinomiale e provare che F è s oddis facibile se e s olo se lo è
E . F si costruisce per induzione s ulla lunghe zza di E e soddisfa una proprietà più forte
di que lla che ci serse. Dimos tr iamo, per induzione sul nume ro di s imboli presenti in E
(la sua “lunghe zza”), l ’e nunciato seguente.
• Esiste una costante c tale che, se E è un’espressione boole ana di lunghe zza n in cui
i -> compaiono solo nei letterali, c ’è un’espressione F con le seguenti proprietà.
BASL Se E consiste di uno o due s imboli, è un letterale. Ma un letterale è una claus ola,
dunque E è già in CNF.
3. F i e d F2 s ono in CNF .
(Solo se) Supponiamo che T soddisfi E. Come nel caso 1, sia T1 (risp. T2) come Γ, ma
limitato alle variabili di E i (risp. E 2). Poiché E = E 1 V E 2, T soddisfa E| o T soddisfa
E 2. Supponiamo che soddisfi E 1. Allora T1, cioè T ristretto alle variabili di E i , si può
estendere a .Si, che soddisfa F i. Cos tmiamo S t estensione di T , in modo che soddisfi
l'espressione E definita sopra.
Per la regola I, S rende vere tutte le clausole derivate dalle g. Per la regola 2, cioè
rassegnamento per y, S rende vere tutte le clausole derivate dalle h. Quindi S soddisfa
E.
Se T non soddisfa E 1, ma soddisfa E 2, si procede allo stesso modo, pone ndo S (y ) =
1 nella regola 2. Inoltre S (x ) deve coincidere con S 2(.τ) dove questa è definita, mentre
la scelta di S (x ) per variabili presenti solo in S i è arbitraria. Concludiamo che anche in
questo caso S soddisfa E.
(Se) Supponiamo di estendere l’assegnamento di valori di verità T per E a un assegna
mento 5 per E, e che S soddisfi E . Secondo il valore di verità assegnato a y, ci sono due
casi. Poniamo anzitutto S (y ) = 0. In questo caso tutte le clausole di E derivate dalle li
sono vere. D’altra parte y non è d’aiuto per le clausole della forma (y + gì), e quindi S
deve rendere vere tutte le y¿. In sostanza S rende vera E 1.
Più esattamente, sia S 1 come S. ma ristretto alle variabili di E 1. Allora S i soddisfa
E 1. Per l’ipotesi di induzione T 1, cioè T ristretto alle variabili di E 1, deve soddisfare E 1.
Infatti S 1 estende T i, e T deve soddisfare E, cioè E 1 V E 2, perché T 1 soddisfa F\ .
Dobbiamo trattare anche il caso S(y ) — 1, che però è simmetrico a que llo appena
svolto, ed è quindi lasciato al lettore. Concludiamo che T soddisfa E quando S soddisfa
E.
Dobbiamo ora dimostrare che il tempo necessario per costruire E da E è al massimo
quadratico in n, la lunghezza di E. In qualunque caso, sia la separazione di E in E 1 ed E 2
sia la costruzione di E da E 1 ed F2 richiedono un tempo lineare rispetto alla dimensione
di E. Sia dn un limite superiore al tempo richiesto per costruire E 1 ed E 2 da E sommato
al tempo per costruire E da E i ed E2, nel caso 1 o nel caso 2. Il tempo T (n ) richiesto
per costruire E da un’espressione E di lunghe zza n è quindi dato da un'e quazione di
ricorrenza:
Dobbiamo ancora determinare il valore della costante c che consente di provare T (n) <
cn2. Le clausole di base per T (I) e per T (2) corrispondono ai casi in cui E consiste in
uno o due s imboli, cioè in un un letterale. Non si ha quindi ricorsione. e la procedura
richiede tempo pari a e. La clausola ricorsiva sfrutta ¡I fatto che E è composta da E\ ed
E 2, legate dall’operatore Λ o da V, e lunghe rispettivamente ¿ e n —ί — 1. Nel complesso
la conversione di E in F comporla due passi: scomporre E in E i ed Ε· 2, c trasformare
E i ed E 2 in F. Sappiamo che ognuno di questi richiede al massimo un tempo dn, più le
trasformazioni ricorsive di E i in F\ c di E 2 in E2.
Dobbiamo dimostrare per induzione su n l ’esistenza di una costante c tale che, per
ogni ri, T (ri) < cri2.
Supponiamo vero l’enunciato per lunghezze inferiori a n. Allora T (i) < et2
IN D U Z IO N E
e T (n — i — 1) < c(n — i — I) 2. Quindi
(y + >· ) ( v + z )
(v ) (z )
Pur essendo solo una piccola parte delle espressioni in CNF, quelle in 3- CNF sono abba
stanza complesse da rendere NP- completa la verifica di soddisfacibilità, come dimostra il
prossimo teorema.
3. Se è la somma di tre letterali, c già nella forma richiesta per 3- CNF e possiamo
lasciarla in F così com’è.
Abbiamo così mostrato come ridurre ogni istanza E di CSAT a un’istanza F di 3SAT
in modo che F sia soddisfacibile se e solo se E è soddisfacibile. È chiaro che il tempo
impiegato dalla costruzione è lineare rispetto alla lunghezza di E, perché in nessuno dei
quattro casi svolti una clausola si espande di un fattore maggiore di 32/3 (il rapporto dei
numeri di s imboli nel caso 1) ed è facile determinare i s imboli di F in tempo proporzionale
al loro numero. Poiché CSAT è NP- completo, ne segue che lo stesso vale per 3- SAT.
10.3.5 Esercizi
Es e rcizio 10.3.1 Trasformate in 3- CNF le seguenti espressioni booleane.
* a) x y + x z.
b) wx y z + u + v.
c) w x y 4- x uv .
Es e rcizio 10.3.2 De finiamo il problema 4TA- SAT: data un’espressione booleana E, sta
bilire se E è soddisfatta da almeno quattro assegnamenti di valori di verità. Dimostrate
che 4TA- SAT è NP- completo.
Es e rcizio 10.3.3 In questo esercizio definiamo una famiglia di espressioni in 3- CNF. L’e
spressione En ha n variabili: x i,x - ¿,.. . , x n . Per ogni insieme di tre interi distinti fra 1 ed
7?,, En contiene le clausole (x i + X 2 +x- .i) e (r r T + ^- l- j^). Stabilite se En è soddisfacibile
per:
*! a) Ti = 4
!! b) n = 5.
Es e rcizio 10.3.4 Ideate un algoritmo polinomiale in tempo che risolva il problema 2SAT,
cioè la soddisfacibilità di espressioni booleane in CNF con due letterali per clausola.
Suggerimento: se uno dei due letterali di una clausola è falso, l’altro de v’essere vero.
Partite da un’ipotesi sul valore di verità di una variabile ed esplorate le conseguenze per
le altre.
• Scoprire che un problema è NP- completo indica che ci sono poche chance di trovare
un algoritmo efficiente per risolverlo. Siamo invece incoraggiati a cercare per via
euristica soluzioni parziali, appros simazioni o altri modi per aggirare il problema.
Possiamo procedere così senza temere che la soluzione giusta ci sia sfuggita.
• Ogni nuovo problema NP- completo P che si aggiunge a ll’elenco avvalora la tesi
che tutti i problemi NP- completi richiedono un tempo esponenziale. La fatica spesa
nella ricerca di un algoritmo polinomiale per P è in realtà rivolta inconsciamente a
dimostrare che V = A ÍV . Proprio il peso crescente dei tentativi falliti da parte di
tanti abili scienziati e matematici per dimostrare qualcosa di equivalente a V = A iV
ci convince che questa uguaglianza è poco plausibile, e che invece ogni problema
NP- completo richiede tempo esponenziale.
Tn questo paragrafo incontreremo diversi problemi NP- completi relativi ai grafi, spesso
presenti nella soluzione di questioni di rilevanza pratica. Tratteremo del problema del
commesso viaggiatore (TSP. Traveling Salesman Problem) chc abbiamo già incontrato
nel Paragrafo 10.1.4. Dimostreremo che una sua versione più semplice, ma altrettanto
importante, detta proble ma del circuito hamiltoniano (HG), è NP- completa; questo dimo
stra anche che il più generale TSP è NP- completo. Presentiamo alcuni altri problemi di
“copertura” di grafi, come il “problema de lla copertura per nodi”, in cui si cerca il più
piccolo insieme di nodi chc “copre” tutti i lati, che comprende cioè almeno un estremo di
ogni lato.
R ID U Z IO N E DA: CSAT.
474 Capitolo 10
( X 1 + X 2 + Χ·λ){Χ\ + Χ2 + ^ 4 ) ( ^ 2 + + £ 5)(^3 + *4 + X $)
Le colonne rappresentano le clausole. Spiegheremo tra breve come sono stati scelti i lati.
La costruzione di G si fonda s ull’impie go dei lati per imporre che ogni insieme in
dipendente di m nodi rappresenti un modo di soddisfare l’espressione E. Questa idea si
articola in due punti fondamentali.
A ltri problemi NP- completi 475
1. Vogliamo far sì che si possa scegliere un solo nodo per ogni clausola. A tal fine
uniamo con un lato tulte le coppie di nodi nella stessa colonna. I lati di questo tipo
sono ([ ¿,I] . [¿,2]), ([*. 1], [ i 3]) e ([-¿. 2]· [ì , 3]), per ogni come ne lla Figura 10.8.
(Se) Osserviamo in primo luogo che un insieme indipendente non può contenere due nodi
della stessa clausola, cioè [ i ji] e [i- .j^] per j\ / j 2 . Quc s to dipe nde dalla presenza di lati
fra coppie di quei nodi, come si vede dalle colonne nella Figura 10.8. Se dunque esiste
476 Capitolo 10
(Solo se) Supponiamo che esista un assegnamento T chc soddisfa E. Poiché T rende vera
ogni clausola di E , per ognuna di esse c ’è alme no un letterale vero rispetto a T . Se ciò
vale per due o tre letterali in una clausola, ne scegliamo uno in modo arbitrario. Formiamo
un insieme I di rn nodi scegliendo per ogni clausola il nodo abbinato al letterale prescelto.
Affe rmiamo chc / è un insieme indipendente. Se un lato unisce due nodi derivati dalla
stessa clausola (le colonne nella Figura 10.8), quei nodi non possono trovarsi entrambi in
I perché abbiamo scelto un solo nodo per clausola. Se un lato unisce una variabile c Ia sua
negata, i suoi estremi non possono trovarsi entrambi in T perché abbiamo scelto solo nodi
corrispondenti a letterali veri rispetto a T . T può assegnare il valore vero a i o a x , ma
non a entrambi. Concludiamo che sc E è soddisfacibile, G ha un insieme indipendente di
dimensione m.
C ’è quindi una riduzione polinomiale di 3SAT a IS. Per il Teorema 10.5, IS è NP-
complcto dato chc lo stesso vale per 3SAT.
ogni lato. Diciamo che è minimale se ogni altra copertura per nodi dello stesso grafo ha
un numero di nodi uguale o maggiore.
Le coperture per nodi sono strettamente legate agli insiemi indipendenti. Il comple
mento di un insieme indipendente è una copertura per nodi, e viceversa. Perciò, a patto
di formulare opportunamente la versione sì/no del problema della copertura per nodi, la
riduzione da IS è molto semplice.
P ROB LE M A: il problema della copertura per nodi (NC, Node Cover).
IN P U T : un grafo G e un limite superiore k, compreso fra 0 e il numero di nodi di G meno
uno.
Osserviamo che HC è un caso speciale del TSP, in cui i pesi dei lati sono tutti pari a 1.
Ridurre HC a TSP in tempo polinomiale è quindi molto semplice: assegniamo il peso 1 a
ogni lato del grafo.
La dimostrazione di NP- completezza di HC è molto difficile. Introdurremo una va
riante di HC in cui i lati hanno una direzione (sono cioè orientati) e sono chiamati archi.
Un circuito hamiltoniano deve percorrere gli archi nella giusta direzione. Riduciamo
3SAT alla variante orientata di HC; ridurremo questa alla versione non orientata in un
secondo tempo.
in p u t : un gr afo or ient at o G.
OUTPUT: “sì ” se e sol o se esist e i n G un ci cl o or ient at o chc pas s a per ogni no do esat t a
ment e una vol t a.
RIDUZIONE DA: 3 S AT .
Te o r e m a 1 0 . 2 1 II pr obl e ma del cir cui t o hami l t oni ano or ient at o è NP- compl et o.
«i . cí o, b u , C u , . . . , b 1m i j ' - I mi i
Se il ci cl o c omi nc i a con G1, c ] 0, la scal a vi ene per cor sa in un or di ne in cui , a ogni l ivel l o,
il n o do c pr ecede il nodo b:
Gi }Ci0;6i0j^i 1,611 ί· ··
(c)
F i g u r a 1 0 . 9 El ement i per la di mos t r azi one che il pr obl e ma del cir cuit o hami l t oni ano è
NP- compl et o.
482 Capitolo I O
gr afo i n e s a me , e il s ec ondo or di ne, da un b al c sot t ost ant e, c o me as s egnazi one del val or e
“ fal so” .
Do p o aver at t r aver sat o H i , il ci cl o pr ocede in « 2 , do ve si deve scegl ier e fr a 620 c ^ 20 ·
Co m e a bbi a mo spi egat o per H u c ompi ut a quest a pr i ma scel t a, il r est o del c a mmi n o in
Η ·2 è obbl i gat o. In gener al e, al l ’i ngr es so in H¿ pos s i a mo scegl i er e se andar e a sinist r a o
a dest r a. In segui t o non a bbi a mo scel t a, se vogl i a mo evit ar e di r ender e i naccess i bi l e un
nodo (ci oè i r r aggi ungi bi l e nel cir cui t o hami l t oni ano or i ent at o), per ché i suoi pr edecessor i
nel gr afo s ono gi à stati usat i.
Ne l segui t o convi ene consi der ar e la scel t a di andar e da a* a b Ì0 c o me l ’as s egna ment o
di “ver o” a e quel l a di andar e da a t a c¿o c o me l’as s egnar l e il val or e “fal so” . Per ci ò il
gr afo del l a Fi gur a 10.9(b) ha esat t ament e 2 n cir cuit i hami l t oni ani or ient at i, cor r i spondent i
ai 2 " as s egnament i di val or i di ver it à al l e n var iabil i.
La Fi gur a 10.9(b ) è per ò sol o l o schel et r o del gr afo abbi nat o al l ’espr es s i one in 3- CNF
E . Pc r o gn i cl ausol a ej i nt r oduci amo il sot t ogr afo I j r ipr odot t o nel l a Fi gur a 10.9(c ). Se
un ci cl o ent r a in I j da Tj , deve usci r ne da u j ; se ent r a da S j , de ve uscir e da Vj i se ent r a da
Lj , deve usci r e da u 'j . Per pr ovar l o os s er vi amo chc se il ci cl o, r aggi unt o I j , non es ce dal
no do sot t ost ant e quel l o di ent r at a, uno o pi ù nodi r isul t ano i naccessi bi l i e non pos s ono far
par t e del ci cl o. Sfr ut t ando la s i mmet r i a pos s i a mo t rat t are sol o il cas o in cui Tj è il pr i mo
nodo di I j nel cicl o. Di s t i ngui a mo t re si t uazi oni .
Per compl et ar e la cost r uzi one del gr afo G da u n ’es pr es s i one E , do bbi a mo col l egar c gli
Lj agl i H i . Si a X 1, var i abil e non negat a, il pr i mo let t erale del l a cl aus ol a Cj . Sc e gl i a mo un
no do Ci p, con p c ompr es o fr a 0 e - 1, non ancor a usat o per al l acciar si a uno dei bl occhi
1. Ag g i u n g i a mo gl i ar chi da cip a Tj e da Uj a bi p +y. Se il pr i mo let t er ale del l a cl ausol a
Altri problemi NP-completi 483
e.j è x- i, ci oè una var i abil e negat a, cer chi amo un bip non ancor a usat o. Col l e ghi a mo bip a
Tj e Uj a c-ì p +ì .
Per il s ec ondo e il t er zo let t erale di e.j oper i amo al l o st esso mo d o , con u n ’eccezi one.
Per il s ec ondo us i amo i nodi s ¡ e v ¡, per il t er zo i nodi t j e Wj . In quest o mo d o ogni
Ij ha t re col l egament i ai bl occhi H chc r appr esent ano le var iabil i del l a cl ausol a e.j. Il
col l egament o der i va da un nodo c e r it or na al no do b sot t ost ant e se il let t erale non è
negat o, pr ovi ene da un nodo b e r it or na al no do c sot t ost ant e se è negat o. Af f e r mi a mo che
• il gr afo G cost r uit o in ques t o mo d o ha un cir cuit o hami l t oni ano or ient at o se e sol o
se l ’espr essi one E è soddi sfaci bi l e.
1. Co mi n c i a mo dal c a mmi n o che at t r aver sa sol o gli H , ci oè i gr afi del l a Fi gur a 10.9(b ),
s ec ondo l’as s egnament o T . 11 ci cl o va dunque da a , a b,o se T ( X i) = I, e da a, a
Qo se T ( X i ) = 0.
2. Se il ci cl o cost r uit o fin qui per cor r e un ar co da b,p a Ci.p+i ed esist e un alt ro ar co
da bij, a un Ij non ancor a i ncl uso nel cicl o, i nt r oduci amo una “devi azi one” che
c ompr e nde i sei nodi di Ij e r it or na a c,:,p+i . Il nuovo ci cl o non cont er r à pi ù l ’ar co
btp —> Cj)P+1 , ma per cor r e ancor a i suoi est r emi.
Poi ché T s oddi s fa E , il c a mmi n o or i gi nal e cost r uit o al pas s o (1) deve i ncl uder e a l me no
un ar co che, al passo (2) o (3), per met t e di inser ir e il bl occo Ij per ogni cl ausol a e.j. Tut t i
gli I j ve ngono così i ncl usi nel ci cl o, c he di vent a un cir cuit o hami l t oni ano or ient at o.
(Sol o s e) Sup p o ni a mo che il gr afo G abbi a un cir cuit o hami l t oni ano or ient at o. Do b b i a
mo pr ovar e che E è soddi sfaci bi l e. Ri pet i amo due punt i impor t ant i r icavat i dal l ’anal isi
condot t a fin qui .
1. Se un cir cuit o hami l t oni ano ent r a in I j da r ¡, Sj o t j , deve usci r ne, r ispet t ivament e,
da Uj , Vj o Wj .
Se i gnor i amo le devi azi oni negl i Tj il cir cuit o hami l t oni ano d e v ’esser e uno dei 2n cicli
possibi l i us a ndo sol o gl i H¡, quel l i r icavat i dal l a scel t a di passar e da ogni a» a ^ o a c»o·
Og n i scel t a cor r i s ponde a un as s egna ment o di val or i di ver it à al l e var iabil i di E . Se una
di ques t e scel t e pr oduce un cir cui t o hami l t oni ano che c ompr e nde gl i I j . l’as s egnament o
cor r i s pondent e s oddi s fa E .
Infat t i, se il ci cl o va da a¿ a bto, pos s i a mo devi ar e ver so I j sol o se nel l a j - es i ma
cl ausol a x, c ompa r e c o me let t er ale. Se il cicl o va da a , a C1Q, pos s i amo devi ar e ver so
I j sol o se x ¡ c ompa r e nel l a j - es i ma cl ausol a c o me let t er ale. Per ci ò, se tutti i bl occhi Ij
pos s ono esser e incl usi, al l or a l’as s egna ment o r ende ver o a l me no uno dei t re let t erali di
ogni cl ausol a, ed E è soddi sfaci bi l e.
Esempio 10.22 Di a mo un e s e mpi o mol t o s empl i ce del l a cos t r uzi one del Te o r e ma 10.21
a par t ir e dal l ’espr es s i one i n 3- CNF E = ( x i + # 2 + # 3 )(^ 1 + 2^2 + ^ 3 )- H gr afo r isul t ant e
è illust r at o nel l a Fi gur a 10.10. Pe r c hi a r e zza gli ar chi c he col l egano i bl occhi di t i po TT a
quel l i di t ipo T s ono punt eggi at i , ma non c ’è di ffer enza c on quel l i a t rat t o cont i nuo.
Il bl occo in alt o a sinist r a cor r i s ponde a x- ¡. Poi ché £1 c ompa r e una vol t a negat a e
una vol t a no, la “scal a” ha un sol o disl ivel l o, e ci s ono qui ndi due r i ghe di b e c. In
f ondo a sinist r a ve di a mo il bl occo per £ 3 , che c ompa r e due vol t e, ent r ambe non negat e.
Oc c or r ono qui ndi due ar chi dist int i c-3 P —* 63 ^ + 1 , di cui ci s er vi amo per uni r e i bl occhi
1 1 e 1 - ,2a r appr esent ar e gli i mpi eghi di x $ nel l e due cl ausol e. Per ques t o mot i vo il bl occo
per Xz vuol e t re r i ghe di b e c.
Cons i de r i a mo il bl occo / 2, chc cor r i s ponde al l a cl aus ol a (icY + + x- ¿). Per il pr i mo
let t er al e, x f , uni a mo a r -2 e u-> a ,. Per il s ec ondo, f a c c i a mo lo st esso c on 620 ,
.s-2, V2 e c.‘)\ . Il t er zo let t er al e, no n e s s endo negat o, si l ega a un c e al b sot t ost ant e. Un i a mo
ci oè 031 a t 2 c IO2 a &32 -
Un o degl i as s egnament i soddi sfacent i è = I , X 2 — 0, x-3 = 0. Co n ques t o
as s e gna me nt o la pr i ma cl ausol a è soddi sfat t a dal s uo pr i mo let t er ale x\ , la s ec onda dal
s e c ondo l et t er al e, ci oè X 2 . Pos s i a mo i ndi vi duar e un cir cui t o hami l t oni ano che c ompr e nde
gl i ar chi a\ — ò10, a 2 —» C20 e (¿3 —» 030 - Il ci cl o copr e la pr i ma cl ausol a de vi a ndo da
Hi a l \ . Us a ci oè l’ar co Ci o —> r i , at t r aver sa tutti i nodi di 1 1 e r it or na a &n . La s econda
cl ausol a è coper t a dal l a devi azi one da H 2 a />, chc par t e dal l 'ar co 620 - 1· ^ 2 < at t r aver sa
12 e t or na a C21 . L’int er o ci cl o hami l t oni ano è evi denzi at o dai tratti pi ù spessi (cont i nui o
punt eggi at i ) e dal l e fr ecce pi ù gr andi nel l a Fi gur a 10.10.
F i g u r a 1 0 . 1 0 Es e m p i o di c o s t r uzi o ne di ci r cui t o h a mi l t o n i a n o
486 Capitolo 10
2. Se in Gd c ’è un ar co v — w , p o ni a mo in G u il l at o w ^ ).
Lo s c he ma dei lati è illust r at o nel l a Fi gur a 10.11, chc c ompr e nde il l at o cor r i spondent e
al l 'ar co v —» w .
F i g u r a 10.11 Gl i ar chi i n Gd s ono sost it uit i i n G u da lati che uni s cono un no do di i ndi ce
2 a un no do di i ndi ce 0 .
È evi dent e c he la cost r uzi one di G u da Gd può compi er s i in t empo pol i nomi al e. Do b b i a
mo di most r ar e c he
• G u ha un cir cuit o hami l t oni ano se e sol o se Gd ha un cir cuit o hami l t oni ano or i en
t at o.
Altri problemi NP-completi 487
(Sc ) Si a t 'i , v-2 , , v n , t :j un cir cuit o hami l t oni ano or ient at o. Cer t ament e
è un ci r cui t o hami l t oni ano non or ient at o di Gu, ot t enut o per cor r endo ver so il bas s o ogni
c ol onna c sal t ando al l a s ommi t à del l a successi va s egue ndo un ar co di Gd.
(Sol o se) Os s e n i a mo che ogni no do t>(1) di Gu ha due sol i lat i adi acent i . In un cir cuit o
hami l t oni ano ess o deve qui ndi aver e o c o me pr edeces s or e i mmedi at o c l’alt r o
c o me s ucces s or e i mmedi at o. Per ci ò gli api ci dei nodi in un cir cuit o hami l t oni ano di Gn
de vono segui r e lo s c he ma 0 , 1 , 2 , 0 , 1 , 2 , . . . o il s uo oppos t o 2 , 1 , 0 , 2 , 1 , 0 , . . . Poi c hé i
due s c he mi cor r i s pondono ad at t r aver sar e il cicl o nel l e due di r ezi oni , pos s i amo suppor r e
che l o s c he ma sia 0 , 1 , 2 , 0 , 1 , 2 , . . . I lat i del ci cl o che uni s cono un nodo c on api ce 2 a
uno c on api ce 0 cor r i s pondono ad ar chi di Gd e ve ngo no per cor si nel l a di r ezi one del
l ’ar co. Qui ndi da un cir cuit o hami l t oni ano non or ient at o di Gu r i cavi amo un cir cuit o
hami l t oni ano or ient at o di G,¡..
INPUT: un gr afo non or ient at o G c on pesi int eri sui lat i, e un l imit e k .
10.4.7 Esercizi
* Es e r c i zi o 10.4 .1 Un a k- cl ique di un gr afo G è un i ns i eme di k nodi di G t ale c he ogni
coppi a di suoi nodi è uni t a da un l at o. Un a 2- cl ique è qui ndi una c oppi a di nodi col l egat i
da un l at o, e una 3- cl ique è un t r i angol o. De f i ni a mo il pr obl ema CLI QUE : dat o un gr afo
G e una cost ant e k , G ha una k- cl iquel
a) Qua l è il pi ù gr ande val or e di k per cui il gr afo G nel l a Fi gur a 10.1 s oddi s fa
C LI QUE ?
*! Es e r c i zi o 10 .4 .2 Un pr obl ema di col or azi one è così definit o: dat i un gr afo G e un int er o
k., pos s i amo assegnar e a ogni nodo un col or e scel t o fr a k i n mo d o che nes s un lat o abbi a
gli est r emi del l o st esso col or e? Il gr afo del l a Fi gur a 1 0 . 1. per es empi o, si può col or ar e
con t re col or i, as s egnando ¡I r osso ai nodi I e 4, ¡I ver de al 2 e il bl u al 3. In gener al e, se un
gr afo cont i ene una k- cl ique, non pos s i amo usar e me no di k col or i (ma pos s ono ser vir ne
pi ù di k ).
Figura 10.13 Un a par t e del l a cost r uzi one che di mos t r a P NP- compl et ezza del pr obl ema
di col or azi one.
In quest o eser ci zi o s pi eghi amo una par t e del l a cost r uzi one per di most r ar e che il pr obl e
ma del l a col or azi one è NP- compl et o. Por t at el a a t er mi ne. La r i duzi one par t e da 3SAT.
Suppo ni a mo di aver e un'es pr es s i one in 3- CNF con n var iabil i. La r i duzi one t r asfor ma
l ’espr essi one in un gr afo, di cui una par t e è illust rat a nel l a Fi gur a 10.13. Co me si vede a
sinist r a, ci s ono n + 1 nodi c o ,Ci , . . . , c n che f or mano una (n - f l )- cl ique. Tut t i quest i
nodi de vono aver e col or i diver si. Chi a me r e mo c 3 il col or e as segnat o al nodo c j .
Per ogni var iabil e X 1 ci s ono due nodi , cor r i spondent i a X 1 e x ¡. Es s i sono unit i da un
lat o, e non pos s ono qui ndi aver e l o st esso col or e. Og n i nodo x.¿ è inolt re col l egat o a Cj
per ogni j di ver so da 0 e da i . Ne cons egue che X 1 o deve aver e il col or e Co, e Tal t r o il
col or e Si può pensar e che quel l o col or at o Co sia ver o e l 'al t r o fal so. In quest o mo do la
col or azi one cor r i sponde a un as s egnament o di val or i di ver it à.
Per compl et ar e l a cost r uzi one dovet e di segnar e una par t e di gr afo per ogni cl ausol a
490 Capitolo ¡O
del l ’es pr es s i one. De v ’esser e pos s i bi l e col or ar e l ’int er o gr afo us ando sol o i col or i da c(l a
Cn se e sol o se ogni cl ausol a è ver a r ispet t o al l ’as s egna ment o cor r i s pondent e al l a scel t a dei
col or i. Il gr afo r icavat o si p uò qui ndi col or ar e c on n + 1 col or i se e sol o se l ’espr es s i one
dat a è soddi sfaci bi l e.
Esercizio 10.4.3 No n occor r e un gr afo e nor me per r ender e mol t o difficil e r isol ver e “a
ma n o ” quest i oni NP- compl et e. Cons i der at e il gr afo del l a Fi gur a 10.14.
*! f) Il p r obl e ma del l a semi - cl i que: dat o un gr afo G c on un nume r o par i di ver t ici, esist e
una cl i que (vedi Es er ci zi o 10.4.1) for mat a da met à dei nodi di G? Sugger i ment o:
r i ducet e C L I QUE a ques t o pr obl ema. Do ve t e scopr i r e c o me aggi unger e nodi in
mo d o da r egol ar e la di me ns i one del l a cl i que pi ù gr ande.
!! g) Il p r obl e ma del l a pi ani f i cazi one a t empi uni t ari : dat i k, “compi t i ”
Ti , T 2, . . . , T k
Uh ) Il pr obl e ma del l a coper t ur a esat t a: dat i un i ns i eme S e una fami gl i a di sot t oi nsi emi
di S , S i , S 2 , . . . , S n , esist e un'al t r a fami gl i a T C {S i , S ¿ . . . . , S n } t ale c he ogni
el ement o x di S si t r ovi esat t ament e in un me mb r o di T ?
U i) II pr obl e ma del l o z ai n o : dat a una list a di k int eri 1-1 , 1 2 , , i k >è possi bi l e ripart irli
in due i nsi emi le cui s o mme c oi nci dono? No t a: a pr i ma vist a può s embr ar e che
ques t o pr obl ema sia in V , se si p e ns a che gli int eri s i ano pi ccol i ; in effet t i, se i l or o
val or i s ono limit at i da un pol i nomi o in k , esist e un al gor i t mo in t empo pol i nomi al e.
In gener al e, per ò, in una list a di k int eri r appr esent at i in codi ce bi nar i o, di l unghe zza
t ot ale par i a n , pos s ono esser ci val or i quasi es ponenzi al i i n n .
Esercizio 10.4.5 Un c am m i n o hami l t oni ano in un gr afo G c una per mut azi one ??i , n o , . . . ,
n k di t ut t i i nodi t ale che. per ogni i — 1 , 2 , . . . , k — 1, esist e un lat o da Ui a n i +1. Un
c am m i n o hami l t oni ano ori ent at o è lo st esso per gr afi or ient at i: d c v ’esser ci un ar co da n ,
a n i + i . Os s e r vi a mo che quest a defi ni zi one è sol o l egger ment e pi ù debol e di quel l a di cir
cui t o hami l t oni ano. Sc si r i chi edesse a nc he l’esi st enza di un l at o o ar co da n k a r i i , Ic due
defi ni zi oni coi nci der ebber o. Il pr obl ema del c a mmi n o hami l t oni ano (or i ent at o) c hi ede se
un gr afo (or i ent at o) pos s i ede a l me no un c a mmi n o hami l t oni ano (or i ent at o).
* a) Di mos t r at e che il pr obl e ma del c a mmi n o hami l t oni ano or ient at o è NP- compl et o.
Sugger i ment o: fat e una r i duzi one da DHC . Scegl i et e un nodo e sdoppi at el o in mo d o
c he i due nodi r isult ant i s i ano gli est r emi di un c a mmi n o hami l t oni ano or ient at o e
c he quel c a mmi n o esist a se e sol o se il gr afo or i gi nal e ha un cir cuit o hami l t oni ano
or ient at o.
b) Di mos t r at e chc il pr obl e ma del c a mmi n o hami l t oni ano non or ient at o è NP- compl et o.
Sugger i ment o: adat t at e la cos t r uzi one del Te o r e ma 10.23.
*! c) Di mos t r at e che ques t o pr obl ema è NP- compl et o: dat i un gr afo G e un int er o k , G
pos s i ede un al ber o di coper t ur a c on al ma s s i mo k fogl i e? Sugger i ment o: fat e una
r i duzi one dal pr obl e ma del c a mmi n o hami l t oni ano.
1 0 .5 Ri e p i l o g o
Ri duzi oni pol i nomi al i ·, se è possi bi l e t r asfor mar e in t empo pol i nomi al e i st anze di
un pr obl e ma in i st anze di un s ec ondo pr obl ema c hc ha la me de s i ma r i spost a, sì o
no, di c i a mo che il pr i mo pr obl e ma e r i duci bi l e in t empo pol i nomi al e al s econdo.
I pr obl emi NP- compl et i di soddi sf aci bi l i t à: il t eor ema di Co o k ha i ndi cal o il pr i mo
pr obl e ma NP- compl et o, ci oè se u n ’espr es s i one bool eana sia soddi sfaci bi l e, r i du
c e ndo tulti ì pr obl emi in N V al pr obl ema S AT in t e mpo pol i nomi al e. Il pr obl ema
r i mane NP- c ompl ei o a nc he se si vi ncol a l 'es pr es s i one a consi st er e in un pr odot t o
di cl aus ol e, ci as cuna for mat a da t re soli let t erali. Que s t o è il pr obl ema 3SAT.
Al t ri pr obl emi NP- compl et i : si c onos c e una vast a g a mma di pr obl emi NP- compl et i .
Di ci as cuno si di mos t r a Γ ΝΡ - compl et ezza t r amit e una r i duzi one pol i nomi al e da
un pr obl e ma NP- c ompl et o gi à not o. Ab b i a mo fat t o r i duzi oni per di mos t r ar e NP-
compl et i i seguent i pr obl emi : i ns i eme i ndi pendent e, coper t ur a per nodi , ver si o
ni or ient at a e no del pr obl ema del cir cuit o hami l t oni ano. pr obl ema del c o mme s s o
vi aggi at or e.
1 0 .6 Bi b l i o g r a f i a
Il concet t o di NP- c ompl et ezza c o me pr ova c he un pr obl e ma non può esser e r isol t o in t e m
po pol i nomi al e, cosi c o me la di mos t r azi one che SAT, CS AT e 3 S AT s ono NP- compl et i , si
deve a Co o k [3J. In gener e si at t r ibuisce ugual e i mpor t anza a un s ucces s i vo st udi o di Ka r p
| 6J, il qual e di mos t r ò c he ΓNP- c ompl et ezza non è sol o un f e no me n o cir coscr it t o, ma è
c o mu n e a mol t i t ra i pi ù difficili pr obl emi di combi nat or i a c he er ano st at i st udiat i per anni
nel c a mp o del l a r icer ca oper at i va e in alt re di sci pl i ne. Og n i pr obl e ma di cui si c d i mo
st rat a Γ ΝΡ - compl et ezza nel Par agr af o 10.4 der i va da quel l avor o: i ns i eme i ndi pendent e,
coper t ur a per nodi , ci r cui t o hami l t oni ano e TSP. Vi si t r ovano inol t r e svar iat i pr obl emi
cit at i negl i eser ci zi : cl i que, f e e dbac k edge , zai no, col or azi one c coper t ur a esat t a.
494 Capitolo 10
Il l ibr o di Ga r e y e J ohns on [4] c ompe ndi a una gr ande mol e di mat er ial e su q ua n
t o s a ppi a mo ci r ca i pr obl emi NP- compl et i e casi special i pol i nomi al i . In [5] s ono r ac
colt i art icoli su c o me appr os s i mar e l a s ol uzi one di un pr obl ema NP- compl et o in t empo
pol i nomi al e.
Al t r i cont r ibut i al l a t eor ia del l ’NP- compl et ezza mer i t ano un r i conos ci ment o. Lo st u
di o del l e cl assi di l i nguaggi definit e dal t empo di es ecuzi one di macchi ne di Tur i ng pr ese
le mos s e da Har t mani s e St ear ns [8J. Co b h a m [2] fu il pr i mo a isol ar e il concet t o di cl asse
V , in cont r appos i zi one agl i al gor it mi c on uno speci fi co t e mpo di es ecuzi one pol i nomi al e,
c o me 0 ( n 2). Di Le vi n [ 7J s egnal i amo la scoper t a i ndi pendent e, per quant o successi va,
del l’i dea di NP- compl et ezza.
L’NP- compl et ezza del l a pr ogr a mma zi one l inear e int er a, cit at a nel l ’Es er ci zi o 10.4.4(c ),
c ompa r e in [1], così c o me in not e inedit e di J. Gat hen e M. Si evcki ng. L’NP- compl et ezza
del l a pi ani fi cazi one a t empi di es ecuzi one unit ar i (Es er ci zi o 10.4.4(g)) è di scussa in [9].
1. I. Bor os h. L. B. Tr eybi g, “ Bo u nds on posit ive int egr al sol ut ions of l i ncar Di ophan-
t ine equat i ons,” Pr oc eedi ngs o f t he A MS 55 (1976), pp. 299- 304.
2. A. Co b h a m, “Th e int r insic comput at i onal difficul t y o f funct i ons,” Proc. 1964 Co n
gress f o r Logi c, Mat hemat i c s , an d t he Phi l os ophy o f Sc i ence, Nor t h Hol l a nd, Am
st er dam, pp. 24- 30.
4. M. R. Gar ey, D. S. J ohns on, Comput er s an d Int ract abil it y: a Gui de t o t he Theor y
o f NP- Compl et enes s , H. Fr e e ma n, Ne w Yor k, 1979.
5. D. S. Ho c h b a u m (e d.), Appr oxi mat i on Al gor i t hms f o r NP- Har d Pr obl ems , P WS
Publ i s hi ng Co ., 1996.
7. L. A. Le vi n, “ Uni ver s al sor t ing p r obl e ms ” Pr obl emi Per edachi Inf onriat sii 9:3
(1973), pp. 115- 1 16.
8. J. Har t mani s , R. E. St ear ns, “On t he comput at i onal compl exi t y o f al gor i t hms,”
Tr ans act i ons o f t he A MS 117 (1965), pp. 285- 306.
La st or ia dei pr obl emi int rat t abili non si esaur i sce c o n A rV . Mol t e alt re cl assi di pr obl emi
s embr ano int rat t abili o s ono int er essant i per r agi oni di ver se. Al c une quest i oni che le
r i guar dano, c o me la quest i one V = A ' V , r i mangono irrisolt e.
Co mi nc e r e mo s t udi ando una cl asse st r et t ament e col l egat a a ? e d A rV : la cl asse dei
compl ement i dei l i nguaggi M V , det t a “c o - MV '. Se V = M V , al l or a CO- ArV è ugual e a
ent r ambe per ché V è chi us a r ispet t o al l a c ompl ement azi one. Si r it iene i nvece c he c o- MV
sia di ver sa da a mbe due e che nes s un pr obl ema NP- compl et o sia in CO- ArV .
Cons i de r er e mo qui ndi la cl asse V S . for mat a da tutti i pr obl emi chc pos s ono esser e
risolt i da una mac c hi na di Tur i ng i mpi e ga ndo una quant i t à di nast r o pol i nomi al e nel l a
l unghe zza del l ’input . Que s t e T M pos s ono r ichieder e t empo es ponenzi al e, pur ché si mu o
vano ent r o un'ar ea l imit at a del nast r o. Di ver s ament e dal cas o del t empo pol i nomi al e,
pos s i amo di most r ar e che il non det er mi ni s mo non aument a la pot enza del l e T M qua ndo
ci si l imit a a uno s pazi o pol i nomi al e. Ovvi a me nt e V S i ncl ude A rV , ma non s a ppi a mo se
coi nci de con M V o c on V . Ci aspet t i amo chc non val ga nes s una del l e due uguagl i anze, e
des cr i ver emo un pr obl ema compl et o per 'P S che s embr a non esser e in A rV .
Ci oc c upe r e mo poi degl i al gor i t mi r andomi zzat i e di due cl assi di l i nguaggi c he si
col l ocano t ra V ed M V . La pr i ma è la cl asse TZV dei l i nguaggi “pol i nomi al i r a ndo m”,
che ha nno un al gor i t mo in t empo pol i nomi al e basat o sul “ l anci o del l a monet i na” , os
sia, i n pr at ica, su un gener at or e di numer i casual i. L'al gor i t mo conf er ma l ’appar t enenza
del l ’i nput al l i nguaggi o oppur e r i s ponde “non s o” . Se l’i nput è nel l i nguaggi o, c ’è una
pr obabil it à maggi or e di Ü che l ’al gor i t mo r i sponda “sì ” . Es e gue ndol o pi ù vol t e, pos s i amo
deci der e cor r et t ament e l ’appar t enenza con una pr obabil i t à t endent e a 1.
An c h e la s econda cl asse, det t a Z V V (Zero- error Probabi l i st i c Pol y nomi al , pol i no
mi al e pr obabil i st i co con er r or e nul l o), r icor r e al l a r a ndomi zza zi one . Gl i al gor i t mi per i
l i nguaggi appar t enent i a quest a cl asse, per ò, di cono “sì , l’input è nel l i nguaggi o” o p p u
496 Capitolo 11
r e “ no, non e ’è” . 11 t e mpo di es ecuzi one pr evist o è pol i nomi al e, ma ci pos s ono esser e
es ecuzi oni c he i mpi egano t empo super i or e a qual si asi l imit e pol i nomi al e.
Per col l egar e fra l or o quest i concet t i e s a mi ni a mo un pr obl ema i mpor t ant e: la ver ifica
di pr imal i t à. Mol t i sist emi cr it t ogr afici si bas ano su due el ement i :
1. la capaci t à di scopr i r e vel ocement e gr andi numer i pr i mi (per per met t er e una c o mu
ni cazi one t ra ma c c hi ne non sogget t a a i nt er cet t azione da par t e di t er zi)
2. l ’ipot esi c he ci vogl i a un t empo es ponenzi al e per s compor r e un nume r o int er o i n fat
t ori pr i mi , se il t empo vi ene mi sur at o c omc f unzi one del l a l unghezza ri del l 'i nt er o
scrit t o in bi nar i o.
Ve dr e mo c he la ver ifica di pr i mal i t à appar t i ene sia a MV sia a co- MV1, ed è per ci ò
i mpr obabi l e r iuscir e a di mos t r ar e c he è un pr obl ema NP- compl et o. È un peccat o, per ché
l e di mos t r azi oni di NP- compl et ezza s ono la pr ova pi ù c o mu n e c he un pr obl ema r i chi ede
c on ogni pr obabil i t à un t e mpo es ponenzi al e. Ve dr e mo inol t r e c he la ver ifica di pr i mal i t à
è nel l a cl asse 7ZV. Si t rat t a di una ci r cost anza for t unat a, per che nel l a pr at ica i sist emi
cr it t ogr afici basat i sui numer i pr i mi us ano effet t i vament e un al gor i t mo nel l a cl asse 7ZV
per t r ovar li. D ’al t r onde è una ci r cost anza negat i va, per ché dà ul t er ior e pes o al l ’ipot esi
c he non s ar emo in gr ado di di most r ar e l a NP- c ompl c t ezza del l a ver ifica di pr imal i t à.
11 .1 Co m p l e m e n t i d e i l i n g u a g g i i n MV
La cl asse dei l i nguaggi in V è chi us a r ispet t o al l a c ompl e me nt a zi one (si veda I’Rser ci-
zi o 10.1.6). Per di most r ar l o, s upponi a mo che L si a in V c chc M sia una T M per L.
Modi f i c hi a mo M in mo d o che accet t i L\ i nt r oduci amo un nuovo st at o accet t ant e η e fac
c i a mo andar e in q la nuova T M qua ndo M si ar r est a in uno st at o non accet t ant e; r endi amo
non accet t ant i gli stati accet t ant i di M . A quest o punt o la T M modi fi cat a accet t a L i m
pi ega ndo lo st esso t empo di T M, con la possi bi l e aggi unt a di una mos s a . Di c ons e gue nza
L è in V se lo è L .
No n è not o s t MV sia chi us a r ispet t o al l a c ompl ement a zi one . Si r it iene che non l o sia,
e i n par t icol ar e ci aspet t i amo che, se un l i nguaggi o L è NP- compl et o, il suo c ompl e me nt o
n o n sia i n MV .
l D i r e c e n t e è s t at a a n n u n c i a t a l a s c o p e r t a c h c l a ve r i f i c a d i p r i ma l i t à a p p a r t i e n e a V (s i v e d a i n p r o p o
s i t o h t t p : / / w w w . c s e . i i t k . a c . i n / u s e r s / m a n i n d r a / i n d e x . h c m l ) . Qu e s t o n u o v o r i s ul t a t o n o n
i n v a l i d a l e c o n s i d e r a z i o n i s v o l t e q u i e n e l P a r a g r a f o 1 1 . 5 ; c o n f e r m a a n z i l ’i p o t e s i c h c il p r o b l e m a n o n s i a
NP - c o m p l c t o . I n pa r t i c o l a r e n o n s e n e p u ò d e d u r r e u n a l g o r i t mo e f f i c i e n t e p e r f a t t o r i zza r e n u m e r i p r i mi . [ N. d . T . |
Complementi dei linguaggi in ArP 497
s ono ver e per ogni as s egna ment o di val or i di ver it à. Os s e r vi a mo c he un'es pr es s i one E
è una t aut ol ogi a se e sol o se - >E è i nsoddi sfaci bi l e. Di c ons e gue nza T AUT e UvSAT
s ono col l egat e: se u n ’espr essi one bool eana E è i n TAUT, ->E è in USAT, c vi cever sa.
Os s e r vi a mo che US AT cont i ene anche st r i nghe che non r appr es ent ano espr essi oni val i de,
ment r e t ut t e le st r i nghe in T AUT s ono espr essi oni val i de.
DIMOSTRAZIONE (Sol o se) Se N V e c o - NV s ono ugual i , ogni pr obl ema NP- compl et o
L , t r ovandosi in N P , è anche in c o - NV. Dat o c he il c ompl e me nt o di un pr obl ema in
CO- ArP è in N V , il c ompl e me nt o di L è in N V .
(Se ) Si a P un pr obl ema NP- compl et o il cui c ompl eme nt o P è in N V . Per ogni l i nguaggi o
L in N V esist e dunque una r i duzi one pol i nomi al e di L a P . La st essa r i duzi one è anche
una r i duzi one pol i nomi al e di L a P . Di mos t r i a mo che N V = c o - NV pr ovando che
ci as cuna è cont enut a nel l 'al t r a.
co- ArP C A rP : s upponi a mo che L sia in c o - NV. Esi st e al l or a una r i duzi one pol i nomi al e
di L a P per ché P è NP- compl et o ed L è in A rP . Es s a è cont empor aneament e anche
una r i duzi one di L a P. Poi ché P è i n A rP . c o mbi ni a mo la r i duzi one con l’al gor i t mo
pol i nomi al e non det er mi ni st i co per P per di most r ar e c he L è in N P .
Problemi risolvibili in spazio polinomiale 499
11.1.3 Esercizi
Es e r c i zi o 11.1.1 Di t e se i seguent i pr obl emi s ono in N V e in co-N'P, e descr i vet e il
c o mpl e me nt o di ognuno di essi. Se il pr obl ema o il s uo c ompl e me nt o s ono NP- compl et i ,
di most r at el o.
* a) Tl pr obl ema TRUE- SAT: dat a un'es pr es s i one bool ea na E , ver a q ua ndo t ut t e le va
r iabil i ha nno val or e ver o, esist e un alt ro as s egna ment o di val or i di ver it à che la
r ende ver a?
b) 11 pr obl ema FALSE- SAT: dat a u n ’espr es s i one bool eana E , fal sa qua ndo t ut t e le sue
var iabil i ha nno val or e fal so, esist e un alt ro as s egna me nt o di val or i di ver it à chc la
r ende fal sa?
c) Il pr obl ema DOUBLE- SAT: dat a u n ’es pr es s i one bool eana E , esi st ono a l me no due
as s egnament i di val or i di ver it à che la r endono ver a?
Es e r c i zi o 11.1.2 Sup p o n i a mo che esist a una f unzi one / , bi uni voc a sul l ’i ns i eme degl i
int eri a n- bit , t ale che:
1 . f ( x ) può esser e comput at a in t empo pol i nomi al e
/ ’ (*) < y
s ar ebbe i n (N P Π co- ArV) — V .
11.2 P r o b l e m i r i s ol vi bi l i i n s p a zi o p o l i n o mi a l e
Es a mi n i a mo or a una cl asse di pr obl emi che i ncl ude NP c c he si r it iene sia pi ù a mpi a ,
anche se non è cer t o. Que s t a cl asse è defi ni t a a mmet t e ndo che una ma c c hi na di Tur i ng usi
uno s pazi o pol i nomi al e nel l a di me ns i one del l ’input , a pr esci nder e dal t empo. Ini zi al ment e
di s t i nguer emo t ra i l i nguaggi accet t at i da T M det er mi ni st i che e quel l i accet t at i da T M
non det er mi ni st i che c on un l imi t e pol i nomi al e sul l o s pazi o, ma ve dr e mo pr est o che le due
cl assi di l i nguaggi in r eal t à coi nci dono.
Es i s t ono pr obl emi P compl et i r ispet t o al l o s pazi o pol i nomi al e, nel s ens o che tut ti i
pr obl emi in quest a cl asse s ono r iducibil i a P in tempo pol i nomi al e. Di c ons e gue nza , se
P è in V o i n N V , tut ti i l i nguaggi accet t at i da T M c on l imit e pol i nomi al e sul l o s pazi o
s ono r i spet t i vament e in V o N'P. Da r e mo un e s e mpi o di quest i pr obl emi : le “f or mul e
bool ea ne c on quant ifi cat or i” .
500 C u p ito Io ll
La Fi gur a 1 1.2 illust ra una ma c c hi na di Tur i ng c on l imit e pol i nomi al e sul l o s pazi o. Esi st e
un pol i nomi o p ( n ) t ale che la ' P M. a fr ont e di un i nput w di l unghe zza n , non visit a mai
pi ù di p (n ) cel l e del nast r o. Per il Te o r e ma 8.12 pos s i a mo pr es umer e che il nast r o sia
semi- infinit o e chc la T M non si spost i mai a sinist r a del l a pr i ma cel l a di i nput .
i nput w —
n cel l e
^ — cel l e vi s i t at e - - - - - - - - - - - - - -
p (n ) cel l e
2 Qu c s t a c l a s s e è t a l vo l t a d e n o m i n a t a P S P A C E . Da t o c h e n o n u s e r e m o p i ù A rV S d o p o a v e r d i mo s t r a t o
l ’e q u i v a l e n z a V S — A rP S , n o i p r e f e r i a m o i n v e c e l a s i gl a PS p e r d e n o t a r e l a c l a s s e di p r o b l e m i r i s ol t i i n
s p a z i o p o l i n o m i a l e d e t e r mi n i s t i c o ( o n o n d e t e r mi n i s t i c o ).
Problemi risolvibili in spazio polinomiale 501
t l +p (n ) + + p ( n ) ) 5t P («) + ...
Pos s i a mo r icor r er e al Te or e ma 1 1.3 per conver t i r e una T M c on l imit e pol i nomi al e sul
l o s pazi o in una equi val ent e che si ar r est a s empr e do po aver fat t o al ma s s i mo un nume r o
es ponenzi al e di mos s e. Infat t i, s a pe ndo chc la T M accet t a ent r o un nume r o es ponenzi al e
502 Capitolo 11
‘ I n effet t i l a r e g o l a g e n e r a l e d e s u n t a d a l Te o r e m a 8 . 1 0 n o n è r a f f e r m a / i o n e p i ù for t e c h e p o s s i a m o f a r e .
Da t o c h e q u a l s i a s i n a s t r o u s a s o l o 1 + p ( n ) c e l l e , l e t e s t i ne s i mu l a t e n e l l a c o n v e r s i o n e d a mu l t i n a s t r o a m o n o
n a s t r o p o s s o n o a l l o n t a n a r s i f r a l o r o al m a s s i m o di 1 + p{rì ) c e l l e . Di c o n s e g u e n z a mo s s e de l l a T M
Λ /-2 mu l t i n a s t r o p o s s o n o e s s e r e s i mu l a t e i n 0 ^ p ( n ) c p ( n ^ p a s s i , c h e è m e n o di O ^ c 2 p ^n ^ , c o m e a b b i a m o
a f f e r ma t o p r i m a .
Problemi risolvibili in spazio polinomiale 503
B OOL E AN F UNC T I ON r e a c h {I , J , m )
I D : I , J ; I NT : m ;
B E GI N
I F (m = = I ) T HE N / * b a s e * / B E GI N
v e r i f i c a s e I == J o
s e I può d i v e n t a r e J i n una mossa;
R E T UR N T R UE i n c a s o p o s i t i v o ,
F ALS E a l t r i m e n t i ;
E ND;
E LS E / * p a s s o i n d u t t i v o * / B E GI N
F OR o g n i I D K DO
I F ( r e a c h ( Ι , Κ , m / 2 ) AND
r e a c h ( K , J , m / 2 ) ) T HE N
R E T UR N T R UE ;
RETURN F AL S E ;
END;
E ND;
È i mpor t ant e osser var e c hc r e ac h , s e bbe ne chi ami se st essa due vol t e, c o mp i e le c hi a
mat e in s e que nza , e dunq ue i n ogni ist ant e sol o u n a di ess e è at t iva. Cos i , se par l i amo
da uno s t ack f r ame [Zi , .J\ .r n], a ogni ist ant e c ’è sol o una chi amat a [I2 ^ h ^ r i ¡ 2 ], una
[ / 3 , J :i,m / 4 \ , una [/ 4 , J 4 . r a / 8 ], e così vi a, fi nché a un cer t o punt o il t er zo ar goment o
di vent a I e r e ac h può appl i car e il pas s o di bas e s e nza ul t er ior i chi amat e r icor sive, r e ac h
ver i fi ca se / = J oppur e I h J , r est i t uendo TRUE se a l me no u n a del l e due è ver a e
F ALS E i n c as o cont r ar i o. Da t o un val or e i ni zi al e m del n ume r o di mos s e , la Fi gur a 1 1.4
illust r a l o st ack del l a D T M D c on t ut t e l e possibil i chi amat e at t ive a r e ac h .
Se p uò s embr ar e che s i ano possi bi l i mol t e chi amat e a r e ac h e c he il nast r o del l a Fi g u
r a 11.4 pos s a di vent ar e mol t o l ungo, di mos t r er emo c he non pot r à esser e “t r oppo l ungo ’’.
Se si par t e da un nume r o di mos s e par i a rn, sul nast r o ci pos s ono esser e a ogni ist ant e sol o
Iog 2 rn st ack f r ame. Poi c hé il Te o r e ma 11.4 gar ant i sce c he l a N T M Ar non p uò far e pi ù di
c p ( » ) mo s s e , m può aver e un val or e i ni zi al e non maggi or e. Di c ons e gue nza il nume r o di
/| Ji m I 2 J2 m /2 U jA m/8
Fi g u r a 11.4 II nast r o di una D T M che s i mul a una N T M medi ant e chi amat e r icor sive a
r e ac h .
3. m = c i +P(n ).
Ab b i a mo gi à di most r at o chc non ci s ono ma i pi ù di Iog2 m c hi amat e r icor sive at t ive nel l o
st esso mome nt o, ci oè una con t er zo a r goment o τ η , una c on r r i / 2 , una c on i n / 4, e così vi a,
fi no a I. Di c ons e gue nza non ci s ono pi ù di Iog2 m fr ame sul l o st ack, e Iog2 m è 0 ( p ( n ) ) .
Gl i st ack f r ame oc c upa no ci as cuno uno s pazi o 0 ( p ( n ) ) . Infat t i ognuna del l e due I D
r i chi ede di scr i ver e sol o I + p (n ) cel l e, e se si scr ive r n in bi nar i o a bbi a mo bi s ogno di
Iog2 c l +P("> = 0 ( j } ( n ) ) cel l e. Di c ons e gue nza l ’int er o st ack fr ame, for mat o dal l e due
I D e da un i nt er o, oc c upa uno s pazi o 0 ( p ( n ) ) .
Poi c hé D ha al ma s s i mo θ ( ρ ( η ) ) st ack f r ame, l o s pazi o compl es s i vo è O (p 2 Μ ) .
Que s t o s pazi o è un pol i nomi o se l o è p {n ), e pos s i amo concl uder e che L ha una DT M
c on l imit e pol i nomi al e sul l o s pazi o.
In concl us i one pos s i amo aggi unger e le cl assi a s pazi o pol i nomi al e al qua dr o del l e
r el azi oni fr a cl assi ^i compl es s i t à . 11 di a gr a mma compl et o è illust r at o nel l a Fi gur a 1 1.5.
Un problema completo per V S 505
1 1 .3 U n p r o b l e m a c o mp l e t o p e r VS
In ques t o par agr afo pr es ent i amo il pr obl ema del l e “ for mul e bool eane con quant ificat or i”
e di mos t r i amo che è compl et o per V S .
11.3.1 PS-completezza
Di r e mo che un pr obl ema P è compl et o p e r V S (PS- compl et o) se:
1. P c ' m V S
Si not i che. s ebbene ci oc c upi a mo di s pazi o pol i nomi al e (e non di t empo), l a condi zi one
per la PS- compl et ezza è anal oga a quel l a per la NP- compl et ezza: la r i duzi one de v'e s
ser e compi ut a in t empo pol i nomi al e. La r agi one è che vogl i amo saper e che V = V S
se un pr obl ema PS- compl et o doves s e risult ar e in V , e che A rV = V S se un pr obl e
ma PS- compl ct o è i n A f V . Se la r i duzi one r i chi edesse sol o uno s pazi o pol i nomi al e, la
506 Capitolo 11
di me ns i one del l ’out put pot r ebbe esser e es ponenzi al e nel l a di me ns i one del l 'i nput , e non
p o t r e mmo di most r ar e il pr os s i mo t eor ema. Da l mo me n t o che cons i der i amo r i duzi oni in
t e mpo pol i nomi al e, ot t eni amo le r el azi oni desi der at e.
a) Se P è in V , al l or a P = P S .
b) Se P è in A rP , al l or a Λ rV = P S .
DIMOSTRAZIONE Di mos t r i a mo (a). Sa p p i a mo che per ogni L in P S esist e una r i duzi one
in t e mpo pol i nomi al e di L a P . Si a q (n ) il t empo i mpi egat o dal l a r i duzi one. Sup p o n i a mo
inol t r e chc P sia in P , e qui ndi abbi a un al gor i t mo che r i chi ede un t empo pol i nomi al e
Pi n ).
Da t a una st r inga w , di cui vogl i a mo ver ificar e l ’appar t enenza a L, pos s i amo ser vir ci
del l a r i duzi one per conver t ir l a in una st r inga x c he è in P se e sol o se w è in L . Poi c hé la
r i duzi one i mpi ega un t empo <7(| w| ), la st r inga x non può esser e pi ù l unga di q (| u ’| ). Po s
s i a mo ver ificar e l ’appar t enenza di x a P in t empo p(| r r | ), c he è p ( g ( M) ) > un pol i nomi o
in | w| . Co nc l udi a mo che esist e un al gor i t mo in t empo pol i nomi al e per L.
Ci a s c un l i nguaggi o L in P S è qui ndi anche in V . Poi ché P è cont enut o in P S ,
de du c i a mo c he se P è in P . al l or a P = P S . La di mos t r azi one di (b), dove p c in A rP i è
del t ut t o si mi l e e d è l asciat a al l et t or e.
1. 0 (fal se), I (t r ue), e una qual si asi var iabil e s ono QBF .
con la sol a coppi a at t or no a E , omet t endo quel l e r el at ive a ogni quant ificat or e l ungo
l a cat ena, in ques t o mo d o : ( Vx ) ( By ) ( Vz ) ( F ) .
Es e mp i o 11.8 Nel l a QB F del l 'equazi one (11.1) ogni occor r enza di ci as cuna var i abil e è
vi ncol at a, in quant o si t r ova nel l a por t at a di un quant ificat or e per la var i abil e. Per e s e mpi o
Ia por t at a del l a var iabil e y quant i fi cat a in ( B y )(x y ) è l’es pr es s i one x y . Du n q u e in ques t o
cas o l ’occor r enza di y è vi ncol at a. L’us o di x in x y ò l egat o al quant ificat or e (Va ·), la cui
por t at a è l’int er a espr essi one.
Il val or e di una QB F che non ha var iabil i l iber e è 0 oppur e 1 (ci oè ver o o fal so).
Pos s i a mo cal col ar e ¡I val or e del l a QB F per i nduzi one sul l a l unghe zza n del l ’espr es s i one.
BASE Sc l’es pr es s i one ha l unghe zza I , può esser e s ol o una cost ant e 0 ο I , per ché se fosse
una var i abil e s ar ebbe l iber a. 11 val or e del l ’es pr es s i one coi nci de c on l ’es pr es s i one st essa.
i n d u z i o n eSu p p o ni a mo di aver e u n ’espr essi one s enza var iabil i l iber e di l unghezza n > 1
e di saper val ut ar e una qual si asi es pr es s i one di l unghe zza infer i or e, pur ché non abbi a
var iabil i l iber e. Un a QB F di ques t o t ipo può aver e sci f or me.
(a ) No n ha nno var iabil i l iber e per ché u n ’occor r enza l iber a di una var iabil e in E 0
o E i non p uò esser e x , e s ar ebbe qui ndi l iber a in E .
Il val or e del l ’espr es s i one di pe nde dai val or i del l e due espr essi oni l egat e d a l l ' OR: (By ) (Oy )
e (V^)(- >0 + 2 ); Eo ha val or e 1 se una del l e due es pr es s i one val e 1. Per val ut ar e (By )(Oy )
do bbi a mo sost it uir e y = 0 e y = 1 nel l a sot t oespr essi one 0y , e cont r ol l ar e c he a l me no
una del l e sot t oespr essi oni così ot t enut e abbi a il val or e 1. Si a 0 Λ 0 sia O A l h a nno val or e
0, per cui (By )(Oy ) ha val or e O.6
For t unat ament e (Vz )(- O + z ) ha val or e 1. c o me si ve de sost i t uendo pr i ma 2 = 0
e poi z = 1. Poi ché —0 = 1, le due espr essi oni c he d o bb i a mo val ut ar e s ono I V O e
I V I . Av e n d o ent r ambe val or e 1, s a ppi a mo che (V^ )(- O + z ) ha val or e 1. Pos s i a mo or a
c oncl uder e c hc Eo , ci oè !’Eq u a zi o n e (11.2), ha val or e 1.
Do b b i a mo inol t r e ver ificar e c he anche E ] , ot t enut a sost i t uendo x = 1 nel l ’Equazi o-
nc (11.1), val ga 1:
L'Es pr e s s i one (By )(I y ) ha val or e 1. c o me si vede sost i t uendo y = I. Di c ons e gue nza
E 1, ovver o l ’Eq ua zi o ne (11.3), ha val or e 1. Co n c l u di a mo che l 'i nt er a es pr es s i one, ci oè
l ’Eq ua zi o ne ( 11. 1). ha val or e 1.
i n gr ado di gener ar e, in t empo pol i nomi al e, u n ’es pr es s i one i ndi cant e che l a T M accet t a
il s uo i nput . Qu a n d o t r at t iamo un l imit e pol i nomi al e sul l o s pazi o, il nume r o del l e I D in
una c omput a zi one può esser e es ponenzi al e nel l a di me ns i one del l ’i nput , e non pos s i amo
scr iver e in t empo pol i nomi al e u n ’es pr es s i one bool eana per i ndi car e la cor r et t ezza del l a
c omput a zi one . For t unat ament e a bbi a mo un l i nguaggi o pi ù espr essi vo, e la di sponi bi l i t à
dei quant ificat or i ci per met t e di scr iver e una QB F di l unghe zza pol i nomi al e che i ndi ca
che la T M c on l imit e pol i nomi al e sul l o s pazi o accet t a il s uo i nput .
Da l Te o r e ma 11.5 pr e ndi a mo Ia t ecni ca r icor siva per es pr i mer e il fat t o che una I D può
di vent ar ne un'al t r a in un nume r o el evat o di mos s e. In alt re par ol e, per dir e che la I D I
può di vent ar e la I D J in r n mos s e , di c i a mo che esist e una I D K t ale che 1 di vent a K in
m / 2 mos s e e K di vent a J in alt re m / 2 mos s e. Il l i nguaggi o del l e for mul e bool eane con
quant ifi cat or i ci per met t e di dir l o c on un'es pr es s i one di l unghe zza pol i nomi al e, anc he se
m è es ponenzi al e nel l a l unghe zza del l 'i nput .
Pr i ma di pr oceder e al l a di mos t r azi one che ogni l i nguaggi o in V S è r i duci bi l e in t empo
pol i nomi al e a QBF , do bbi a mo di most r ar e chc QB F è in V S . An c h e quest a par t e del l a
di mos t r azi one del l a PS- compl et ezza non è i mmedi at a: la i s ol i amo c o mc t eor ema a sé
st ant e.
Te o r e m a 1 1 . 1 0 QBF è i n V S .
Nel Par agr afo 1 1 .3.3 a bbi a mo descr it t o una pr ocedur a r icor siva per va
d i m o s t r a z i o n e
l ut ar e una QB F F . Pos s i a mo i mpl ement ar l a per me zzo di uno st ack me mor i zza t o sul
nast r o di una ma c c hi na di Tur i ng, c o me a bbi a mo fat t o nel l a di mos t r azi one del Te or e
ma 11.5. Sup p o n i a mo chc F sia di l unghe zza n . Cr e i a mo un r ecor d di l unghezza 0 ( n )
per F , c he cont i ene F st essa e lo s pazi o per la sot t oespr essi one di F che s t i amo t r at t ando.
Du e e s e mpi pr esi dal l e sei f or me possibil i di F chi ar i r anno il pr oces s o di val ut azi one.
2. Su p p o n i a mo che F = ( 3 x ) ( F ) . Op e r i a mo al l or a c o me s egue.
(e ) Sos t i t ui amo il r ecor d per E q c on un r ecor d per Εχ , e val ut i amo r i cor si vament e
E 1.
(f) Res t i t ui amo c o me val or e di F il val or e r est it uit o da E 1l .
La s c i a mo al let t or e il compi t o di descr i ver e i passi da c ompi er e nei casi in cui F ha una
del l e alt re quat t r o possibil i f or me: F 1 F 2, ~ >E, ( E ) oppur e ( Vz ) ( E ) . Il cas o di bas e, in cui
F è una cost ant e, ci obbl i ga a r est it uir e quel l a cost ant e s enza for mar e alt ri r ecor d.
Os s e r vi a mo chc in ogni cas o a dest r a del r ecor d per un'es pr es s i one di l unghe zza rn
ce ne sar à uno per u n ’es pr es s i one di l unghezza i nfer i or e a m . An c h e se do bbi a mo s pes s o
val ut ar e due sot t oespr essioni di ver se, le val ut i amo una per vol t a. Per t ant o nel cas o ( ! ) non
a bbi a mo ma i s i mul t aneament e sul nast r o il r ecor d per F 1, o per una s ua sot t oespr essi one,
e quel l o per E 2 , o per una s ua sot t oespr essi one. Lo st esso val e per E q e d E\ nel cas o (2).
Per ci ò, se par t i amo c on u n ’es pr es s i one di l unghe zza n , sul l o st ack non ci pos s ono
mai esser e pi ù di n r ecor d. Inol t r e la l unghezza di ogni r ecor d è 0 ( n ) . Qui ndi l ’i nt er o
nast r o non di vent a ma i pi ù l ungo di 0 ( n z ). Ab b i a mo or a una cost r uzi one per una T M
con l imit e pol i nomi al e sul l o s pazi o c he accet t a QBF ; il s uo l imit e in s pazi o è quadr at i co.
Os s e r vi a mo c he ques t ’al gor i t mo i mpi ega di nor ma un t empo es ponenzi al e in n , per cui
non è pol i nomi al e in t empo.
pol i nomi al e i n n . As s u mi a mo che t ut t e le var iabil i pr opos i zi onal i i n di ver se ID- var iabil i
s i ano dist int e, ossi a c he nes s una var i abil e pr opos i zi onal e appar t enga a due di ver se ID-
var iabil i. Sc il nume r o di ID- var i abi l i è pol i nomi al e, anc he il nume r o t ot ale di var iabil i
pr opos i zi onal i è pol i nomi al e.
Co nvi e ne ser vir si del l a not azi one ( 3 7 ) , dove I è una ID- var i abi l e, per denot ar e (3,- ci )
(3 ^ 2 ) · · · ( 3 Xt ì i), dove x \ , .T2, . . . , x m s ono t ut t e le var iabil i pr oposi zi onal i nel l a ID- var i a
bi l e I . Ana l oga me nt e ( V/ ) st a per il quant ifi cat or e V appl i cat o a t ut t e l e var iabil i pr opos i
zi onal i in I .
La QB F for mat a da w ha la f or ma
( 3 I 0 ) ( 3 I f ) ( S Λ N Λ È?)
dove:
1. Io c I f s ono ID- var iabil i che r appr es ent ano r i spet t i vament e la I D inizial e e quel l a
final e
4. F è u n ’espr essi one c he i ndi ca “t er mi nazi one cor r et t a”, ci oè Tf è una I D accet t ant e.
Os s e r vi a mo che, ment r e l ’int er a espr es s i one non ha var iabil i l iber e, le var iabil i di Z0 s ono
l iber e in 5 , quel l e di Tf s ono l iber e i n F , e d ent r ambi i gr uppi di var iabil i s ono liber i i n
N.
Av v i o c o r r e t t o
S è l’A N D l ogi co di let t erali; ogni l et t er ale è una del l e var iabil i di Io. S ha il let t er ale
ijjA se la j - es i ma pos i zi one del l a I D i ni zi al e con i nput w è A , al t r iment i ha il let t er ale
VjA- Qui ndi , se w = α·\ α- ι * · · a „, al l or a y 0qo, y ì a i , y 2a2, · .,V n a n c t ut t e le yj B , per
j -- η + l , r¿ + 2 , . . . ,p ( n ) , c o mp a i o no s enza negazi one, ment r e t ut t e le alt re variabili di
Io s ono negat e. As s u mi a mo c he q 0 sia l o st at o i nizi al e di M e B sia il s uo bl ank.
Te r m i n a / i o n e c o r r e t t a
Per esser e una I D accet t ant e, I f deve aver e uno st at o accet t ant e. Scr i vi amo per ci ò F c o me
l ’OR l ogi co del l e var iabil i y j A, scel t e t ra le var iabil i pr opos i zi onal i di I f per le qual i A è
uno st at o accet t ant e. La pos i zi one j è ar bit r ar ia.
Un problema completo per P S 513
Mo s s a l eci t a
1. { P , Q ) ¿ ( I , K ) e ( P , Q ) ¿ ( K , J )
5 14 Capitolo 11
2. N i ( R Q ) è vera.
In alt ri t er mini Ar¿ (/. Λ' ) e N { ( K , J ) s ono ver e e non ci int er essa saper e se Ar¿ (P, Q) è
ver a per alt ri mot i vi . Ec c o una QB F per N 2 i (I , J ) :
N 2i ( L J ) = (3IO(VP)(VQ) (Wi(P1Q) V
(- .(/ = R A K = Q ) A - >(K = P A J = Q ) ) )
Os s e r vi a mo chc è possibi l e scr iver e Ar2,: nel l o st esso t empo che occor r e per scr iver e N 1,
pi ù un t empo aggi unt i vo 0 (p (n )).
Per compl et ar e la cost r uzi one di N , dobbi a mo definir e N m per il più pi ccol o rn che
sia una pot enza di 2 e che sia maggi or e o ugual e a c 1+p<-n \ il nume r o pi ù el evat o possibil e
di mos s e che la T M M può far e pr i ma di accet t ar e un input w di l unghezza n . Do b b i a mo
appl i car e il pas s o indut t ivo descr it t o sopr a per un nume r o di vol t e par i a l og2(c 1+p^n ^), o
0 ( p ( n ) ) . Poi ché ci ascun us o del pas s o indut t ivo i mpi ega t empo 0 ( p ( n ) ) , conc l udi amo
che N può esser e cost r uit a in t empo θ ( ρ 2 (η )).
Co n c l u s i o n e de l l a d i mo s t r a zi o n e del Te o r e m a 11.11
(3I 0 )(3 I f ) ( S A N A F )
in t empo pol i nomi al e in | w| . Inol t r e a bbi a mo spiegat o per ché ognuna del l e espr essi oni $ ,
N ed F è ver a se e sol o se le sue var iabil i l iber e r appr esent ano le I D I 0 e I f , che s ono
r ispet t ivament e la I D inizial e e quel l a accet t ant e di una comput azi one di M su input w
con Io l· Tf . Qui ndi quest a QBF ha val or e 1 se e sol o se M accet t a w.
11.3.5 Esercizi
Es e r c i zi o 11.3.1 Compl et at e Ia di most r azi one del Te or e ma 11.10 t r at t ando i seguent i
casi:
a) F = Fy F 2
b) F = ( V x ) ( E )
c) F = - (F )
d) F = ( E ) .
Classi di linguaggi basale sulla randomi¿¿azione 515
Es e r c i zi o 11.3 .2 Di most r at e che il seguent e pr obl ema è PS- compl et o: dat a un'es pr es
si one r egol ar e E , E è equi val ent e a Σ *, dove Σ è l 'i ns i eme di si mbol i che c ompa i ono
in E l Sugger i ment o: i nvece di r idur r e QBF a quest o pr obl ema, può risult are pi ù facil e
di most r ar e l a r i duzi one al pr obl ema di un l i nguaggi o ar bit r ar io in V S . Per ogni T M con
l imit e pol i nomi al e sul l o spazi o, di most r at e chc, dat o un input w, si può cost r uir e in t empo
pol i nomi al e u n ’espr essi one r egol ar e che gener a t ut t e le st r inghe che non s ono s equenze
di I D del l a T M che c onduc ono al l ’accet t azi one di w.
Es e r c i zi o 1 1.3.3 II gi oco det t o Sh anno n Swi t chi ng Gam e si svol ge su un gr afo G con due
nodi t er minal i *· e t , t ra due giocat or i, che c hi amer emo S HOR T e CUT. Ogni gi ocat or e,
a par t ir e da S HORT, si al t er na nel l a sel ezi one di un ver t ice di G, di ver so da s e t , che
r i mane in s uo possesso (i no al l a fine del l a part it a. S HOR T vi nce se sel ezi ona un i ns i eme
di nodi che, con s e t , for ma un c a mmi n o in C da s a t . C UT vi nce se tutti i nodi s ono stati
sel ezionat i e S HOR T non ha compl et at o un c a mmi no da s a t . Di most r at e che il seguent e
pr obl ema è PS- compl et o: dat o G , S HOR T può vi ncer e i ndi pendent ement e dal l e scelt e di
CUT?
1 1 .4 Cl a s s i di l i n g u a g g i b a s a t e s ul l a r a n d o m i z z a z i o n e
Pas s i amo or a a due cl assi di l i nguaggi definit i per me zzo di ma c c hi ne di Tur i ng che pos
s ono ser vir si di numer i casual i nel l a comput azi one. 1 l i nguaggi di pr ogr ammazi one più
diffusi cons ent ono di scr iver e al gor it mi che sfr ut t ano un gener at or e di numer i casual i. La
f unzi one r a n d ( ), o una funzi one dal nome si mi l e, che r est it uisce un numer o appar en
t ement e “casual e” o i mpr edi ci bi l e, es egue in r ealt à un al gor i t mo specifi co che può esser e
r ipet ut o, anche se è mol t o difficil e r il evar e uno s c he ma nel l a s equenza di numer i pr odot t i.
Un s empl i ce es empi o (che in pr at ica non si us a) può consist er e nel l ’el evar e al quadr at o
l’int er o pr ecedent e nel l a s equenza e pr ender e i bit medi ani del r isult at o. I numer i pr odot t i
da una t ale pr ocedur a meccani ca s ono det t i ps eudo casual i .
In quest o par agr afo defi ni r emo un t ipo di mac chi na di Tur i ng che model l a la ge ne
r azi one di numer i casual i e il l or o i mpi ego negl i al gor it mi. Def i ni r emo poi due cl assi di
l i nguaggi . VSV e Z V V , che si ser vono in modi diver si di quest o gener e di casual it à e di
un vi ncol o pol i nomi al e sul t empo. È int er essant e osser var e che le due cl assi s embr ano
i ncl uder e poco più di V , ma le di ffer enze s ono impor t ant i . Tn par t icol ar e vedr emo nel Pa
r agr afo 1 1.5 che al cune del l e quest i oni pr incipal i sul l a s i cur ezza i nfor mat i ca r i guar dano
in realt à la r el azi one di quest e cl assi con V cd M V .
7 N o n f o r n i r e mo l a p r o v a di q u e s t a a f f e r m a z i o n e . Pe r u n a d i m o s t r a z i o n e c u n ’a n a l i s i d e l t e m p o m e d i o di
e s e c u z i o n e p e r Qu i c k s o r t , r i m a n d i a m o a D . E . Kn u t h t TJie Art of Comput er Pr ogr ammi ng , Voi. IH: Soni ng and
Searching. Ad d i s o n - We s l e y , 1 9 7 3 .
Classi di linguaggi basate sulla randomizzazione 517
e ha nno la funzi one di “nast r i ausil iar i” . Ch i a me r e mo ques t o model l o mac c hi na di Tur i ng
r andomi zzat a.
Nast r i ausiliari
Es e m p i o 1 1 . 1 2 Pos s i a mo i mpl ement ar e la ver si one r andomi zzat a del Qui cks or t su una
T M r andomi zzat a. Il punt o cr uci al e è il pr oces s o r icor sivo i n cui si pr ende una sot t ose
q ue nza (c hc i pot i zzi amo me mor i zza t a in cel l e consecut i ve sul nast r o di input e del i mi t at a
da mar cat or i al l e due est r emi t à), si scegl i e a cas o un pivot e si di vi de la s ot t os equenza in
due s ot t osequenze. De s c r i vi a mo il succeder si del l e oper azi oni .
3. Per cor r i amo la s ot t os equenza del i mi t at a sul nast r o 1, c opi a ndo sul nast r o 4 gli
el ement i che non s ono pi ù gr andi del pivot .
4. Per cor r i amo nuova ment e la s ot t osequenza sul nast r o 1, c opi a ndo sul nast r o 5 gli
el ement i pi ù gr andi del pivot .
6. Se una del l e due sot t o- sot t osequenze, o ent r ambe, ha pi ù di un el ement o, la (o le)
or di ni amo r i cor si vament e con l o st esso al gor i t mo.
Os s e r vi a mo che quest a i mpl ement azi one del Qui cks or t i mpi ega un t empo O( n l o g n ) ,
a nche se il di sposi t i vo di cal col o è una T M mul t inast r o e non un comput er convenzi onal e.
L’e s e mpi o è int er essant e non t ant o per il t empo di es ecuzi one quant o per l 'i mpi ego dei
bit casual i sul s econdo nast r o per gener ar e il compor t ament o cas ual e del l a macchina di
Tur i ng.
di un i nput w, do bbi a mo consi der ar e tutti i cont enut i possibi l i del nast r o casual e. E pos
sibil e che M accet t i un i nput con det er mi nat e st r i nghe casual i e l o rifiut i c on alt r e; anzi ,
se l a T M r andomi zzat a deve oper ar e c on maggi or effi ci enza r ispet t o a una det er mi ni st i ca,
è essenzi al e che cont enut i diver si del nast r o casual e i nduc ano compor t ament i di ver si .8
xOs s c r v i a m o c h e I a T M r a n d o m i z z a t a de s c r i t t a n e l l ' F .s e m p i o 1 1 . 1 2 n o n r i c o n o s c e u n l i n g u a g g i o , m a o p e r a
l i na t r a s f o r ma z i o n e d e l l ’i n p u t . Tl t e m p o di e s e c u z i o n e , a d i f f e r e n za d e l r i s ul t at o, d i p e n d e d a l c o n t e n u t o d e l na s t r o
casual e.
Classi di linguaggi basate sulla randomizzazione 519
Es e m p i o 1 1 . 1 3 La t abel l a del l a Fi gur a 11.7 r i pr oduce l a f unzi one di t r ansi zi one di una
T M r andomi zza t a Al . M usa sol o un nast r o di i nput e il nast r o cas ual e. Il s uo c ompor t a
me nt o è s empl i ci s s i mo: no n c a mbi a mai un s i mbol o sui nast r i e mu o v e le t est ine sol t ant o
ver so dest r a (di r ezi one R) oppur e le ma nt i ene fer me (di r ezi one S). An c h e se non a bbi a mo
defi ni t o una not azi one f or mal e per le t r ansi zi oni di una T M r andomi zzat a, le voci del l a
t abel l a dovr ebber o esser e chi ar e: ogni r iga cor r i s ponde a un o st at o e ogni c ol onna a una
coppi a di s i mbol i X W dove X è il s i mbol o vist o sul nast r o di i nput e Y è il s i mbol o vist o
sul nast r o cas ual e. L’e l ement o q l J V D E si gni fi ca c he la T M ent r a nel l o st at o q, scr i ve U
sul nast r o di i nput e V sul nast r o cas ual e, mu o v e la t est ina di i nput in di r ezi one D e quel l a
del nast r o cas ual e in di r ezi one E .
00 Ol 10 11 BO BI
-► Qu qi OORS q30 \ S R q210RS q^l ì SR
Qi Q1OORS q.] BOS S
(12 q210RS q4BOS S
<13 q- .i00RR q:il l R R q4B 0 S S r/4 B I S S
*<il
Co nc l udi a mo che è possi bi l e cal col ar e la pr obabil it à con cui una T M r andomi zzat a
accet t a una st r inga assegnat a. Ch e la st r inga sia nel l i nguaggi o o no di pende da c o me vi ene
definit a Γ“appar t enenza” al l i nguaggi o di una T M r andomi zzat a. Ne i pr ossi mi par agr afi
da r e mo due di ver se defi ni zi oni di accet t azi one, o gnuna del l e qual i c onduc e a una cl asse
di l i nguaggi di ffer ent e.
3. Esi st e un pol i nomi o T ( n ) t ale che se l 'i nput w è di l unghe zza n , t ut t e le e s ec uzi o
ni di M , i ndi pendent ement e dai cont enut i del nast r o cas ual e, si ar r est ano dopo al
ma s s i mo T ( n ) passi.
Classi di linguaggi basate sulla randomizzazione 521
Nel l a defi ni zi one di 'JZV ci s ono due quest i oni i ndi pendent i . 1 punt i (1) e (2) defi ni s co
no una ma c c hi na di Tur i ng r andomi zza t a di t ipo speci al e, a vol t e denomi nat a al gor i t mo
Mont e c ar l o. A pr esci nder e dal t empo di es ecuzi one, si può dir e che una T M r a ndomi z
zat a è "Mo nt e c a r l o” se accet t a c on pr obabil i t à 0 oppur e con pr obabi l i t à super i or e a 1/2,
s enza casi i nt er medi . 11 punt o (3) r i guar da sol o il t empo di es ecuzi one, che non di pende
dal fat t o che l a T M sia "Mo nt e c a r l o ” o no.
Es e mp i o 11.15 Des c r i vi amo in t er mi ni i nfor mal i una T M r andomi zza t a c he è sia pol i
nomi al e sia Mont ecar l o, e dunque accet t a un l i nguaggi o in T ZV. Ui n p u t sar à int er pr et at o
c o me un gr afo, e la do ma n d a è se il gr afo cont enga un t r i angol o, ossi a t re nodi le cui
c oppi e s ono connes s e da lat i. Gl i input con un t r i angol o s ono nel l i nguaggi o, gli alt ri no.
L ’al gor i t mo Mont ec ar l o scegl i e r i pet ut ament e e a cas o un l at o ( x ,y ) e un nodo z ,
di ver s o da x c y . Ogn i scel t a vi ene fat t a l eggendo nuovi bit sul nast r o casual e. Per ogni
y e 2 sel ezi onat i , la T M ver ifica se l’i nput cont i ene i lat i ( x , z ) e (y , z ), e se è così
di chi ar a c he il gr afo di i nput ha un t r i angol o.
In t ot ale ve ngono compi ut e k scel t e di un lat o c di un nodo; la T M accet t a se una di
esse r isul t a un t r i angol o: al t r iment i si fer ma s enza accet t ar e. Se il gr afo non ha t r iangol i,
nes s una del l e k scel t e r isult er à un t r i angol o. La condi zi one (1) del l a defi ni zi one di 7Z V è
qui ndi soddisfat t a: se l ’i nput non è nel l i nguaggi o, la pr obabi l i t à di accet t azi one è 0 .
522 Capitolo 11
( 3 \k
( Π ·4 )
qua ndo non a vr e mmo dovut o (un f al s o posi t i v o). Di c ons e gue nza do bbi a mo di st i nguer e
la T M r andomi zzat a dal l ’al gor i t mo c he us i amo per deci der e se w è in L . No n è possi bi l e
evit ar e del t ut t o i falsi negat i vi , s ebbene si pos s a r idur r e la pr obabil i t à di incor r er vi ent r o
l imit i pr efì ssat i, r i pet endo pi ù vol t e la ver ifica.
Per e s e mpi o, se vogl i amo una pr obabi l i t à su un mi l i ar do di fal so negat i vo, pos s i amo
esegui r e una ver ifica t r ent a vol t e. Se W è in L, la pr obabi l i t à c he t ut t e e t r ent a le ver i
fiche non por t i no all’accet t azi one no n s uper a 2 - 30, c he è me n o di I O- 9, ci oè una su un
mi l i ar do. In gener al e, se vogl i a mo che la pr obabil i t à di falsi negat i vi sia mi nor e di c > 0,
do bbi a mo esegui r e la ver ifica l og2 ( l / c ) vol t e. Que s t o nume r o è una cost ant e se l o è c.
Poi ché u n ’es ecuzi one del l a T M r andomi zzat a M i mpi ega t empo pol i nomi al e (a s s umi a
mo c he L sia i n TZV), s a ppi a mo chc anche la r i pet i zi one del l a ver ifica r i chi ede t e mpo
pol i nomi al e. Le concl us i oni di ques t o r agi onament o si pos s ono enunci ar e in f or ma di
t eor ema.
Te o r e ma 11.16 Se L è in TZV, al l or a per ogni cost ant e c > 0 pi ccol a a pi acer e, esist e un
al gor i t mo pol i nomi al e r andomi zza t o chc r i s ponde al l a d o ma n d a se un input w è in L , non
pr oduce falsi posit ivi, e pr oduce falsi negat ivi c on una pr obabil i t à non maggi or e di c.
524 Capitolo 11
11.4.6 La classe Z V V
La s ec onda cl asse di l i nguaggi l egal a al l a r a ndomi zza zi one è del l a pol i nomi al e pr obabi l i
st i ca con errore nul l o, o Z V V . Es s a è basat a su T M r andomi zza t e c he si ar r est ano s empr e
con un t e mpo me di o di ar r est o c he è un pol i nomi o nel l a l unghe zza del l 'i nput . Que s t e T M
accet t ano ent r ando in u n o st at o accet t ant e (e ar r est andosi in quel punt o) e r ifi ut ano un i n
put se si ar r est ano s enza aver accet t at o. La defi ni zi one del l a cl asse Z V V è qui ndi mol t o
s i mi l e a quel l a di V , s al vo per il fat t o c he Z V V per met t e al cas o di infl uir e sul c o mp o r
t ament o del l a T M, e c he il t empo di es ecuzi one mi s ur at o è quel l o me di o anzi c hé quel l o
r el at ivo al cas o peggi or e.
Un a T M c he dà s empr e la r ispost a cor r et t a, ma il cui t e mpo di es ecuzi one var i a a
s ec onda dei val or i dei bit casual i , è det t a ma c c hi na di Tur i ng Las Vegas o al gor i t mo La s
Ve ga s . Po s s i a mo dunq ue cons i der ar e Z V V c o me la cl asse dei l i nguaggi accet t at i da
ma c c hi ne di Tur i ng La s Ve ga s c on t empo me di o di es ecuzi one pol i nomi al e.
Te o r e ma 11.18 V C Z V P .
Te o r e m a 11.19 TZV C M V .
526 Capitolo 11
DIMOSTRAZIONE Sup p o ni a mo di aver e una T M Mont ecar l o M i con l imit e pol i nomi al e
sul t empo per un l i nguaggi o L . Pos s i a mo cost r uir e una T M non det er mi ni st i ca M 2 per L
con l o st esso l imit e di t empo. Og n i vol t a che Mi es a mi na un bit casual e per la pr i ma vol t a,
M 2 scegl i e, in mo do non det er mi ni st i co, ent r ambi i val or i possibil i di quel l o speci fi co bit ,
e li scr ive su un nast r o c he s i mul a il nast r o casual e di M\ . M 2 accet t a qua ndo e sol o
qua ndo M\ accet t a.
Si a w in L. Al l or a, dat o che M\ ha a l me no il 5 0 % di pr obabil i t à di accet t ar e w , deve
esist er e una s equenza di bit sul nast r o cas ual e che por t a al l ’accet t azi one di w . M 2 scegl i e
rà, fr a le alt re, quel l a s equenza di bit , e qui ndi accet t er à per quel l a scel t a. Qui ndi w è in
L ( M 2). Se per ò w non è in L, nes s una s equenza di bit casual i por t a M i all’accct t azi one,
e per ci ò nes s una s equenza di scel t e i nduce M 2 ad accet t ar e. Di c ons eguenza w non è in
L ( M 2).
La Fi gur a 11.8 illust ra la r el azi one t ra le classi che a bbi a mo int r odot t o c le alt re classi
"vi c i ne ” .
11.5 Co mp l e s s i t à e n u m e r i p r i m i
In ques t o par agr afo e s a mi ne r e mo un pr obl ema par t i col ar e: ver ificar e se un int er o è pr i
mo . Il pr obl e ma è i nt er essant e anzit ut t o per ché, c o me s pi e gher emo, i numer i pr i mi e la
ver ifi ca di pr i mal i t à s ono c omponent i essenzi al i nei si st emi di s i cur ezza per i comput er .
Mos t r e r e mo poi c hc i numer i pr i mi s ono sia in M V sia i n c o - MV. Infi ne di s cut er emo un
al gor i t mo r andomi zza t o c on cui si di mos t r a che s ono a nc he in V S P.
I met odi pi ù c o muni per aument a r e la s i cur ezza nei c omput e r si f onda no sul 1’ipot esi
che sia difficil e fat t or izzar e un nume r o , ci oè t r ovar e i fat t ori pr i mi di un nume r o c ompos t o.
In par t icol ar e i si st emi basat i sui cosi ddet t i codi ci R S A (dal l e i nizial i degl i i nvent or i del l a
t ecni ca, os s i a R. Ri ves t , A. Sha mi r c L. Ad l e ma n ) us a no nume r i int er i, per e s e mpi o di 128
bit , c he s o no il pr odot t o di due pr i mi , ci as cuno di ci r ca 64 bit . Pr es ent i amo due s i t uazi oni
in cui i numer i pr imi ha nno una f unzi one i mpor t ant e.
Cr i t t o g r a f i a a c h i a v e p u b b l i c a
Vogl i a mo compr ar e un l ibr o in una l ibr er ia on- l ine. Il vendi t or e c hi ede il nume r o del l a
nost r a car t a di cr edi t o, ma è r i schi oso inser ir l o in un mo dul o e t r asmet t er l o per t el efono
oppur e vi a Int er net : qua l c uno pot r ebbe esser e in ascol t o sul l a l i nea o int er cet t ar e pacchet t i
dur ant e il l or o per cor so.
Per evit ar e c he un mal i nt enzi onat o l egga il nume r o del l a car t a di cr edi t o, il sit o di
vendi t a i nvi a al br ows er una chi ave k , per e s e mpi o il pr odot t o di due numer i pr i mi con
l unghe zza t ot al e di 128 bit , gener at o a ques t o s c opo dal c omput er del l a l ibr er ia vir t ual e.
II nost r o br ows er appl i ca una f unzi one y = /f c (z), c he us a sia la chi ave k sia i dat i x
da cr it t ogr afar e. La f unzi one / , c he fa par t e del l o s c he ma R S A, è pubbl i ca, e qui ndi
not a a nc he a pot enzi al i spi e. Si r it iene per ò c he non sia possi bi l e, s enza conos cer e la
s c ompos i zi one in fat t ori di k , cal col ar e la f unzi one i nver s a /¿Γ1, per la qual e x = f j 71 (?/),
in un t e mpo infer ior e a un es ponenzi al e nel l a l unghe zza di k .
Di c ons e gue nza , anc he se una s pi a vede y e c onos c e / , non p uò r ecuper ar e x , chc in
ques t o c as o è il nume r o di car t a di cr edi t o, s enza pr i ma scopr i r e k e s compor l o in fat t ori
528 Capitolo 1I
pr i mi . D ’alt ra par t e la l ibr er ia vi r t ual e, c he c onos c e l a s c ompos i zi one i n fat t ori del l a
chi ave k , avendol a gener al a, può appl i car e faci l ment e /¡¡Γ1 e ot t ener e x da y .
De s c r i vi a mo il cont est o per cui s ono st at i svi l uppat i i codi ci R S A. Si vuol e “ fi r mar e”
un me s s a ggi o el et t r oni co in mo d o c he i dest inat ar i pos s a no i ndi vi duar e c on facil it à il
mi t t ent e e c he non sia possi bi l e “fal si fi car ne” la fi r ma. I mma g i n i a mo di vol er fi r mar e un
me s s a ggi o x = “Mi i mp e gno a pagar e $1 0 a Sal l y Le e ” , ma di vol er i mpedi r e c he Sal l y, o
una t er za per s ona, pos s a c ompor r e un me s s a ggi o si mi l e fi r mat o a nost r a i nsaput a.
A t al fine s cegl i amo una chi ave k , di cui sol o noi c onos c i a mo i fat t ori pr i mi , e la
pubbl i c hi a mo, per e s e mpi o sul nost r o sit o We b , in mo d o che c hi unque pos s a appl i car e
la f unzi one / ¾ a un mes s aggi o. Se vogl i a mo fi r mar e il me s s a ggi o x e spedi r l o a Sal l y,
c al col i amo y = /¿~ 1(a:) e l e i nvi a mo y . Sal l y r ecuper a dal sit o f k , la chi av e p ubbl i c a, c on
cui cal col a x = f k {y ). Vi e ne così a s aper e c on cer t ezza c he ci s i a mo i mpegnat i a pagar l e
$ 10.
Se ne ghi a mo di aver i nvi at o il me s s a ggi o y , Sal l y p uò affer mar e davant i a un gi udi ce
c he sol o noi c onos c i a mo la f unzi one , e che s ar ebbe i mpos s i bi l e per lei, o per un'al t r a
per s ona, scopr ir l a. Du n q u e sol o noi pos s i a mo aver cr eat o y . Il si s t ema si f onda sul l ’i
pot esi , pr obabi l e ma non di most r at a, chc è t r oppo difficil e s compor r e in fat t ori pr i mi il
pr odot t o di due numer i pr i mi gr andi .
Re q u i s i t i c o n c e r n e n t i l a c o mp l e s s i t à de l l a ve r i f i c a di p r i ma l i t à
Si r it iene che le due si t uazi oni descr it t e sopr a s i ano adeguat e e si cur e, nel s ens o c he ci
vuol e davver o un t empo es ponenzi al e per s compor r e in fat t ori il pr odot t o di due numer i
pr i mi gr andi . La t eor ia del l a compl es s i t à st udiat a qui e nel Capi t ol o 10 ha un dupl i ce
i mpi e go nel l o st udi o del l a s i cur ezza e del l a cr it t ogr afia.
1. La cos t r uzi one di chi avi pubbl i che r i chi ede la capaci t à di t r ovar e vel ocement e n u
mer i pr i mi gr andi . Un r isul t at o f ondament al e del l a t eor ia dei numer i af f er ma che
l a pr obabi l i t à che un nume r o di ri bit sia un nume r o pr i mo è nel l ’or di ne di I / n .
Per ci ò, se aves s i mo un me t odo pol i nomi al e in t e mpo (r ispet t o a n , non al val or e
del nume r o pr i mo) per ver ificar e se un nume r o di n bit è un nume r o pr i mo, p o
t r e mmo scegl i er e numer i a cas o, esami nar l i e fer mar ci q ua ndo ne a bbi a mo t r ovat o
uno pr i mo. Que s t o me t odo pr oduce un al gor i t mo La s Vega s pol i nomi al e in t empo
per scopr i r e numer i pr i mi , dat o c he il nume r o me d i o di numer i chc d o bbi a mo es a
mi nar e pr i ma di i ncont r ar e un pr i mo di n bit è ci r ca n . Per e s e mpi o, se vogl i a mo
pr i mi di 64 bit , do bb i a mo ver ificar e in i nedi a ci r ca 64 int er i, anche se in un cas o
sfor t unat o pot r e mmo dover ne ver ifi car e un n ume r o i ndefi ni t ament e ma ggi or e . Pur
t r oppo s embr a che non esist a un al gor i t mo che gar ant i sce un t e mpo pol i nomi al e per
Complessità e numeri primi 529
2. La s i cur ezza del l a cr it t ogr afì a basat a su R S A di pe nde dal l a ma n c a n za di un met odo
gener al e e pol i nomi al e i n t empo (r ispet t o al nume r o di bit del l a chi ave) per s c o m
por r e i n fat t ori un nume r o, i n par t icol ar e un nume r o di cui si sa che è il pr odot t o di
due numer i pr i mi gr andi . Sa r ebbe bel l o pot er di mos t r ar e c he l’i ns i eme dei pr i mi ,
o a l me no l ’i ns i eme dei numer i compos t i , è NP- compl et o. In ques t o cas o, infat t i,
un al gor i t mo pol i nomi al e c he s c o mp o ne in fat t ori pr over ebbe c he P — ΛrP per ché
pr odur r ebbe un al gor i t mo in t empo pol i nomi al e per quei due l i nguaggi . Pur t r oppo
ve dr e mo nel Par agr afo 11.5.5 c he sia i numer i pr i mi sia i numer i compos t i s ono in
N P . In quant o c ompl eme nt i l ’u n o del l ’al t r o, se u no dei due fosse NP- compl et o
nc cons egui r ebbe che Λ rP = c o - ΛÍ P , cos a di cui dubi t i amo. Inol t r e il fat t o che
l ’i ns i eme dei numer i pr i mi è in 7Z P si gni fi ca c he . se pot es s i mo di mos t r ar e che i
numer i pr i mi s ono NP- compl et i , pot r e mmo c oncl uder e c he ' R P = M P : u n ’alt ra
s i t uazi one i mpr obabi l e.
l e c omuni pr opr iet à al gebr i che: e commut at i va e associ at i va, 1 è l ’ident it à, 0 è l ’el ement o
neut r o, e la mol t i pl i cazi one è dist r ibut iva r ispet t o al l a s o mma . La di vi si one per val or i non
nul l i è pi ù compl es s a, e l’esi st enza di inver si di int er i mo du l o p di pende dal fat t o che p
sia o no un nume r o pr i mo. In gener al e, se x è un int er o modul o p, ossi a 0 < x < p, al l or a
.T- 1 , o 1 / x , è quel numer o y t ale che x y = 1 modul o p.
1 2 3 4 5 6
2 4 6 1 3 5
3 6 2 5 1 4
4 1 5 2 6 3
5 3 1 6 4 2
6 5 4 3 2 1
Es e mp i o 11.22 Nel l a Fi gur a 11.9 ve di a mo la t abel l a di mol t i pl i cazi one per int er i non
nul l i mo dul o il numer o pr i mo 7. L’el ement o sul l a r i ga i e sul l a col onna j è il pr odot t o
i j modul o 7. Os s e r vi a mo chc ogni int er o non nul l o ha un i nver so; 2 e 4 s ono ci as cuno
l ’i nver so del l ’al t r o, così c o me 3 c 5, ment r e 1 e 6 s ono i pr opr i inver si. In alt re par ol e
2 x 4 , 3 x 5 , I X 1 e 6 X 6 s ono tutti I . Di c ons e guenza pos s i amo di vi der e per qual si asi
nume r o non nul l o x / y cal col ando y ~ ] e mol t i pl i cando poi x x y - 1. Pe r e s e mp i o 3 / 4 =
3 X 4 - 1 = 3 x 2 = 6.
1 2 3 4 5
2 4 0 2 4
3 0 3 0 3
4 2 0 4 2
5 4 3 2 1
Conf r ont i a mo quest o cas o con la t abel l a di mol t i pl i cazi one mo du l o 6. In pr i mo l uogo
os s er vi amo che sol o I e 5 h an no un i nver so; ci as cuno è il pr opr i o inver so. Es i s t ono
inol t r e numer i diver si da 0, ma il cui pr odot t o è 0, c o me 2 e 3. Si t rat t a di una si t uazi one
che non si ver ifica mai nel l a c o mu n e ar it met ica degl i int er i e nel l ’ar it met ica modul o un
nume r o pr i mo.
Un'a l t r a di ffer enza fr a la mol t i pl i cazi one modul o un nume r o pr i mo e quel l a mo dul o
un nume r o c ompos t o si r ivel a mol t o i mpor t ant e per le ver i fi che di pr imal it à. Il gr ado di
Complessità c numeri primi 531
un nume r o a modul o p è la pi ù pi ccol a pot enza posit iva di a ugual e a 1. Enunc i a mo , s enza
di most r ar l e, al cune pr opr iet à impor t ant i .
Es e mp i o 11.23 Ri cons i der i amo la t abel l a del l a mol t i pl i cazi one modul o 7 nel l a Fi gur a
1 1.9. Il gr ado di 2 è 3, dat o che 22 = 4 e 2,J = I. Il gr ado di 3 è 6. dat o che 3 2 — 2,
3 3 = 6, 34 = 4, 3° = 5 e 36 = 1. Co n cal col i anal oghi si s copr e c he 4 ha gr ado 3, 5 ha
gr ado 6. 6 ha gr ado 2, e 1 ha gr ado 1.
v D a n o n c o n f o n d e r e c o n ! ' “ u l t i mo t e o r e ma d i F c r m a t ” , c h e a s s e r i s c e l a n o n e s i s t e n za di s o l u zi o n i i nt e r e a
X n + y n = z n per n > 3.
532 C a p ito lo ll
c hc c il pr odot t o dei val or i x 2' per i qual i a,j = 1. Poi ché nel pas s o (1) a bbi a mo cal
col at o i (no n pi ù di ri) val or i x 2J , ognuno dei qual i è un n ume r o di n bit , pos s i a mo
cal col ar e il l or o pr odot t o in un t e mpo 0 ( n 3 ).
DI MOS TR AZI ONE Des c r i vi a mo un al gor i t mo non det er mi ni st i co in t e mpo pol i nomi al e per
i numer i compos t i .
1. Da t o un nume r o di n bit s cegl i amo un pr esunt o fat t or e / di non pi ù di ri bit , evi t ando
di scegl i er e / = I o / = p . Que s t a par t e è non det er mi ni st i ca. Og n i possi bi l e
val or e di / c ompa r e in una s e que nza di scel t e. 11 t empo r ichiest o per una qua l unque
s e que nza di scel t e è O( n ) .
Ri c onos cer e i numer i pr i mi con una N T M è pi ù diffì cil e. Se pos s i amo i ndovi nar e un
mot i vo (un fat t or e) per cui un nume r o non è pr i mo, e ver ificar e c he la scel t a è cor r et t a,
c o me pos s i a mo “ i ndovi nar e” una r agi one per cui un nume r o è pr i mo? L'al gor i t mo non
det er mi ni st i co in t empo pol i nomi al e si f onda sul fat t o (affer mat o ma non pr ovat o) che se
p è un nume r o pr i mo, al l or a esist e un nume r o x c ompr e s o t ra I c p — 1 che ha gr ado p — L
Ab b i a mo vist o ncl l ’Es e mp i o 11.23 che per il nume r o pr i mo p = 7 i numer i 3 e 5 ha nno
a mb e d u e gr ado 6.
Pos s i a mo scegl ier e faci l ment e un nume r o x sfr ut t ando il non det er mi ni s mo di una
N T M, ma non è chi ar o c o me ver ificar e c he x ha gr ado p — 1. Infat t i, se appl i chi amo dir et
t ament e la defi ni zi one di “gr ado” , do bb i a mo ver ificar e che x 2, ar !, . . . , x p~'2 non val gono
1. Que s t o r i chi ede l ’es e c uzi one di p - 3 mol t i pl i cazi oni , e qui ndi un t empo a l me no 2 ’\
se p è un nume r o di n bit .
Un a st r at egia mi gl i or e i mpi e ga un'al t r a pr opr iet à me nzi ona t a ma non di most r at a: il
gr ado di x mo dul o un pr i mo p è un di vi sor e d i p — 1. Qu i n di se c onos c i a mo i fat t ori pr i mi
di p — l 10, è sufficient e ver ificar e c hc φ 1 per ogni q fat t or e pr i mo di p — 1.
Il nume r o di quest e ver i fi che è 0 ( n ) , così che pos s i a mo esegui r l e t ut t e c on un al gor i t mo
in t e mpo pol i nomi al e. Nat ur al ment e non è facil e fat t or izzar e p — 1 in numer i pr i mi , ma
pos s i a mo scegl i ere in mo d o non det er mi ni st i co i fat t ori pr i mi di p - 1 e:
b) ver ificar e che ogni fat t or e sia pr i mo us ando r i cor si vament e l’al gor i t mo non det er
mi ni st i co in t empo pol i nomi al e che a bbi a mo definit o.
I det t agl i del l ’al gor i t mo e la di mos t r azi one che è non det er mi ni st i co e in t empo pol i no
mi al e si t r ovano nel l a di mos t r azi one del pr os s i mo t eor ema.
1. Sc e gl i a mo una list a di pr esunt i fat t ori (q i .q o · qic). le cui r appr esent azi oni bi
nar i e non super i no in t ot al e 2n bit , e nes s uno dei qual i abbi a pi ù di n — I bit . Lo
st esso nume r o pr i mo p uò appar i r e pi ù di una vol t a, dat o c he p — 1 può aver e un
fat t or e pr i mo el evat o a una pot enza ma ggi or e di I ; per e s e mpi o se p = 13. i fat t ori
pr i mi di p — 1 = 12 f or ma no la list a ( 2 , 2 . 3 ) . Que s t a par t e è non det er mi ni st i ca e
ogni di r amazi one r i chi ede un t e mpo Ο(η,).
2. Mol t i pl i chi amo i q t ra l or o e ver i fi chi amo se il pr odot t o è p — 1. Que s t a par t e non
r i chi ede un t empo ma ggi or e di 0 ( n 2) ed è det er mi ni st i ca.
Infi ne do bbi a mo ver ificar e che ques t o al gor i t mo non det er mi ni st i co i mpi eghi un t empo
pol i nomi al e. Og n i pas s o, t r anne quel l o r icor sivo (3), r i chi ede un t empo non super i or e
a 0 ( n 4) in ogni di r amazi one non det er mi ni st i ca. Be n c h é la r i cor si one sia compl i cat a,
pos s i a mo r appr esent ar e le chi amat e r icor sive con l’al ber o del l a Fi gur a 11.11. Al l a r adice
st a il nume r o pr i mo p di n bit c he vogl i a mo es ami nar e. 1 suoi figli s ono i q ¡, gli ipot et ici
fat t ori di p - 1 da noi scel t i, di cui do bbi a mo st abil ir e se s ono pr i mi . Sot t o ogni ^ si
t r ovano gli ipot et ici fat t ori di qj — 1 c he do bbi a mo ver ificar e, e così vi a, fino a numer i di
non pi ù di 2 bit , che s ono le fogl i e del l ’al ber o.
5 36 Capi t ol o 1 1
Ra d i c e
Livello 1
Livello 2
Fi g u r a 11.11 Le chi amat e r i cor si ve del l ’al gor i mo del Te o r e ma 11.26 f or ma no un al ber o
di al t ezza e l ar ghezza ma s s i ma n.
Poi c hé il pr odot t o dei figli di ogni n o do è mi nor e del val or e del no do st esso, il pr odot t o
dei val or i dei nodi a ogni l ivel l o di pr ofondi t à dal l a r adi ce è al ma s s i mo p. 11 l avor o r i chi e
st o per un n o do di val or e i , es cl us o il l avor o svol t o nel l e c hi amat e r i cor si ve, è al ma s s i mo
a O0Sa *)4> do ve a ^ una cost ant e; a bbi a mo infat t i st abil it o c he ques t o l avor o è del l ’or di
ne di gr a nde zza del l a quar t a pot enza del nume r o di bit necessar i per la r appr es ent azi one
bi nar i a di i.
Per dar e un l imit e s uper i or e al l avor o necessar i o a ogni l ivel l o, do bbi a mo ma s s i mi zza
r e l a s o mma ^ - a (Iog2 (i j )) , c on il vi ncol o che il pr odot t o · · non super i p. Poi ché
la quar t a pot enza è una f unzi one conves s a, il ma s s i mo si ot t iene q ua ndo il val or e è c o n
cent r at o in uno degl i i j . Se iy — p t no n ci s ono alt ri i j , la s o mma è a (l o g 2 ρ )Λ. Que s t o è
al ma s s i mo αη Λ, dat o c he n è il nume r o di bit del l a r appr es ent azi one bi nar i a di p. Qui n di
Io g2 p non s uper a n.
Co n c l u di a mo che il l avor o r i chi est o a ogni l ivel l o è al ma s s i mo 0 ( n 4 ). Da t o che
ci s ono al ma s s i mo n livel l i, un l avor o 0 ( n r’) è suffi ci ent e i n ogni di r amazi one del l a
pr ocedur a n o n det er mi ni st i ca c he ver ifi ca se p sia pr i mo o no.
11.5.6 Esercizi
Es e r c i zi o 11.5.1 Cal col at e mo du l o 13:
a) 1 1 + 9
Riepilogo 537
* b) 9 - 1 1
c) 5 X 8
* d) 5/8
e) 58.
Es e r c i zi o 11.5.2 Ne l Par agr afo 11.5.4 a bbi a mo affer mal o che, per la ma ggi or par t e dei
val or i di x compr es i t ra 1 e 5 60. x 560 = l mo dul o 561. Scegl i et e al cuni val or i di x e
ver ificat e l’e qua zi one . Ri cor dat e di es pr i mer e pr i ma 560 in bi nar i o e poi cal col at e x 2’
mo du l o 561 per var i val or i di j , per evit ar e di far e 559 mol t i pl i cazi oni , c o me spi egat o nel
Par agr afo 11.5.3.
* a ) Qual i s ono i r esi dui quadr at i ci mo du l o 7? Pot et e usar e la t abel l a del l a Fi gur a 11.9.
11.6 Ri e p i l o g o
Al gor i t mi r ando m izzat i e mac c hi ne di Tur i ng: mol t i al gor i t mi sfr ut t ano l a casual it à.
In un comput er r eal e si us a un gener at or e di numer i cas ual i c he s i mul a il “l anci o
del l a mone t a ”. Un a ma c c hi na di Tur i ng può pr odur r e un compor t a me nt o sogget t o al
cas o se le vi ene dat o un nast r o aggi unt i vo s u cui vi ene scrit t a una s e que nza cas ual e
di bit .
Re l azi oni t ra cl assi di l i nguaggi : la cl asse c o - 'JZV è l ’i ns i eme dei c ompl e me nt i dei
l i nguaggi in TZV. So n o not e le seguent i r el azi oni di i ncl us i one: V C Z V V C
(7Z P Π co- TZV). Inol t r e TZV C A f V , e per ci ò co- TZV C c o - Ai P.
/ numer i pr i mi e d TZV: i numer i compos t i s ono in T ZV. L ’al gor i t mo pol i nomi al e
r a ndomi zza t o per ver ificar e se un nume r o è c ompos t o è usat o per la gener azi one di
numer i pr i mi gr andi , o a l me no di numer i gr andi con una pr obabi l i t à ar bi t r ar i ament e
pi ccol a di esser e compos t i .
11.7 Bi b l i o g r a f i a
La r el azi one [2] ha dat o i ni zi o al l o st udi o del l e cl assi di l i nguaggi definit i da l imit i sul l o
s pazi o in una ma c c hi na di Tur i ng. I pr i mi pr obl emi PS- compl et i s ono descr it t i da Ka r p
[4] i n un l avor o che e s a mi na l’i mpor t anza del l a NP- c ompl et ezza . Ne a bbi a mo t rat t o la
P S - compl et ezza del pr obl e ma enunci at o nel l ’Es er ci zi o 11.3.2, os s i a se u n ’es pr es s i one
r egol ar e sia equi val ent e a Σ *.
Bibliografía 539
La PS- compl et ezza del l e f or mul e bool eane con quant ifi cat or i è cont enut a in un l avor o
ma i pubbl i cat o di L.J . St ockmeycr . La PS- compl et ezza del gi oco di Sha nno n (Es er ci
zi o 11.3.3) è t rat t a da 11J.
La di mos t r azi one che i numer i pr i mi s ono in λ Í V si deve a Pr at t [9], La pr es enza
N
dei numer i compos t i i n TZV f u pr ovat a per la pr i ma vol t a da Ra bi n [1ÜJ. E int er essant e
not ar e che nel l o st esso per i odo ve nne pubbl i cat a una di mos t r azi one che i numer i pr i mi
s ono in V , a c ondi zi one c he u n ’ipot esi, no n di most r at a ma gener al ment e r it enut a val i da,
det t a ipot esi est esa di Ri e ma n n . sia ver a [6],
Nume r o s i libri per met t ono di appr ofondi r e le c onos c e nze sui t emi pr esent at i in quest o
capi t ol o. [7] t rat t a gli al gor i t mi r andomi zzat i , compr es i quel l i per l a ver ifica di pr i mal i t à;
[5J è un r i fer i ment o per gli al gor i t mi di ar i t met i ca modul a r e ; [3] e [8] t r at t ano di ver se alt re
cl assi di compl es s i t à non cit at e qui .
8. C. H. Papadi mi t r i ou. Comput at i onal Compl exi t y , Addi s on- Wes l e y, Re a di ng MA.
1994.
10. M. O. Ra bi n. “Pr obabi l i st i c al gor i t hms,” in Al gor i t hms a n d Compl exi t y : Recent
Resul t s a n d Ne w Di r ect i ons (J. F. Tr a ub1 e d.), pp. 21- 39, Ac a de mi c Pr es s . Ne w
Yor k, 1976.