Sei sulla pagina 1di 215

Capitolo 8

Macchine di Turing: introduzione

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.

8.1 Problemi che i calcolatori non possono risolvere


Que s to paragrafo ha lo s copo di presentare informalme nte , s ulla base de lla pr ogr amma­
zione in C, la dimos trazione che un calcolatore non può ris olve re un pr oble ma spe cifico.
Il pr oble ma consiste ne llo s tabilire se la pr ima cosa che un pr ogramma in C s tampa è
326 Capitolo 8

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.

8.1.1 Programmi che s tampano “ Ciao, mondo”


La Figura 8.1 riproduce il pr imo pr ogr amma in C in cui si imbatte il lettore del clas-
• » t I v

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 ") ;
}

F ig u r a 8.1 II pr ogr amma di saluto di Ke r nighan e Ritchie .

Es is tono anche altri pr ogr ammi in grado di stampare C i a o , m o n d o , ma che lo facciano


è tutt’altro che ovvio. La Figura 8.2 ne illus tra un e s e mpio. Il pr ogr amma prende come
input n e cerca s oluzioni intere pos itive all'e qua zione x n + y n — z n. Se ne trova una,
s tampa C ia o , m o n d o . Se non e s is tono tre interi x , y t z che s oddis fano l’e quazione ,
la ricerca non ha mai fine c il pr ogr amma non arriva a s tampare la frase.
Per capire che cosa fa que s to pr ogramma, os s e rviamo in pr imo luogo che e x p è
una funzione aus iliar ia che calcola e s pone nziali. Il pr ogr amma deve e s aminare le tri­
ple (# , y, z) in un ordine tale da garantire chc ogni tripla di interi pos itivi ve nga pr ima o
poi e s aminata. Per organizzare ade guatame nte la ricerca, ricorriamo a una quarta var iabi­
le, t o t a l , che parte da 3 e ne l ciclo while è incre me ntata di un ’unità alla volta in modo
da raggiunge re qualunque inte ro finito. AlF inte m o del ciclo while dividia mo t o t a l in
tre interi pos itivi x , y e da ppr ima face ndo variare x da 1 a t o t a l - 2 , e poi, a ll’inte rno
de l ciclo for, face ndo variare y da I alla diffe re nza fra t o t a l e x , diminuita di uno. Il
rimane nte , che è compre s o tra 1 e t o t a l - 2 , viene ass egnato a 2 .

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+ + ;
}
}

F ig u r a 8.2 L'ultim o te ore ma di Fe rmar espresso come pr ogr amma di saluto.

Ne l ciclo più inte rno si ve rifica se x n + y n = Zn . Sc sì, il pr ogr amma s lampa C i a o ,


m o n d o ; in caso contrario non s tampa nulla.
Se ¡I valore di n letto dal pr ogr amma è 2, il pr ogr a mma trova c ombina zio ni di interi,
come t o t a l = 12, x = 3, y = 4 e z = 5, per cui x n + y n = z n . Di cons e gue nza, pe r
l’input 2, il pr ogr amma s tampa e ffe ttivame nte C i a o , m o n d o .
D'a ltr o canto, per qualunque inte ro n > 2, il pr ogr a mma non troverà mai una tripla di
interi pos itivi che s oddis fi x n + y" = z n, e dunque non potr à s tampare C ia o , m o n d o .
È interessante osservare che fino a qualche anno fa non si sapeva se il pr ogr amma avre bbe
s tampato C i a o , m o n d o pe r valori inte ri di n molto grandi. Fu Fe r mai a sostenere per
pr imo, tre ce nto anni fa. che non lo avre bbe fatto, os s ia che non e s is tono s oluzioni intere
a ll’e quazione x n + y" = z n se n > 2. Que s to e nunciato, noto come “ultimo te ore ma di
Fe r mat”, è stato dimos trato s olo di recente.
328 Capitolo 8

Perché devono esistere proble mi inde cidibili


Se è difficile dimos trare che un pr oble ma s pecifico, come il “proble ma ciao-
mondo” trattato qui, è inde cidibile , è invece molto facile capire le ragioni pe r cui
quas i tutti i proble mi de vono essere inde cidibili per un sistema di pr ogramma­
zione . Ricor diamo che per “pr oble ma” inte ndiamo l’apparte ne nza di una stringa
a un linguaggio. 11 nume ro di linguaggi diversi su un qualunque alfabeto di più
di un s imbolo non è nume rabile . In altre parole non esiste un modo di assegnare
interi ai linguaggi tale che ogni linguaggio corris ponda a un inte ro c ogni intero
sia assegnato a un unico linguaggio.
D'a ltr a parte i pr ogr ammi, essendo stringhe finite su un alfabe to finito (s oli­
tamente un sottoinsie me d e ll’alfabe to AS CII), sono nume r abili. Infatti i program­
mi pos s ono essere ordinati per lunghe zza, c i pr ogr ammi de lla stessa lunghe zza
pos s ono essere ordinati less icalmente . Di cons e gue nza si può parlare del pr imo
programma, del s econdo pr ogramma, e in generale de ll'i- e s imo pr ogramma per
un qualunque intero i.
Ne de duciamo che es istono infinitame nte me no pr ogrammi che proble mi.
Se s ce glie s s imo un lingua ggio a caso, quasi s icurame nte sarebbe un pr oble ma
inde cidibile . L’unica ragione per cui sembra che la maggior parte dei proble mi
sia de cidibile è che di rado s iamo interessati a proble mi scelti a caso; prefe ria­
mo piuttos to considerare proble mi s e mplici c ben strutturati, che effettivamente
s ono spesso de cidibili. Eppure anche tra i pr oble mi di cui ci interessiamo e che
pos s iamo e nunciare in te rmini chiari e concis i, ce ne sono molti inde cidibili; il
pr oble ma “ciao- mondo” è uno di questi.

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

8.1.2 Un ipote tico verificatore di ciao- mondo


L’impos s ibiltà di compie re la ve rifica di ciao- mondo si dimos tr a pe r assurdo. In altre
parole s upponiamo che esista un pr ogr amma, chc chiame r e mo H, che prende come input
un pr ogr amma P e un input I , e dice se P con input / s tampa C ia o , m o n d o . La
Figura 8.3 illus tra uno s che ma di H . In particolare l ’unic o output di H è la s tampa dei
due caratteri s ì oppure de i due caratteri n o . H fa se mpre o !’una o l’altra cosa.

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.

2. L’output a caratteri si ottie ne us ando p r i n t f , e non p u t e h a r ( ) o altre funzio ni


di output.

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

F ig u r a 8.4 H \ si comporta come t í. ma s tampa C i a o , m o n d o anziché n o .

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.

a) L'input è ridotto a P ome tte ndo I.

b) Il nuovo pr ogramma de te rmina che cosa farebbe P se l'in p u t fosse il s uo stesso


codice , cioè che cosa farebbe t í ^ ave ndo in input P sia come pr ogramma sia come
T.

Le modifiche che dobbiamo apportare ad H] per produrre il pr ogramma Jd2 s uggerito


ne lla Figura 8.5 sono le seguenti.

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

F ig u r a 8.5 H 2 si compor la come H ,, ma usa il suo input P s ia pe r P s ia pe r T.

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

F ig u r a 8 .6 Che cos a fa H 2 quando ha come input se stesso?

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

8.1.3 Rid ur r e un proble ma a un altro


Ab b ia m o ora un pr oble ma - un dato pr ogr amma con un dato input s tampa pe r pr ima c o­
sa C i a o , m o n d o ? - che s appiamo essere ir r is olvibile da un compute r. Un pr oble ma
che non può essere ris olto da un compute r è de tto indecidibile . Dar e mo la de finizione
for male de l te rmine “ inde c idibile ” ne l Paragrafo 9.3; per ora ne facciamo un us o infor ­
male . Suppo nia mo di vole r de te rminare se un qualche altro pr oble ma sia o no r is olvibile
da un compute r. Pos s iamo cercare di scrivere un pr ogr a mma per ris olve rlo, ma se non ci
r ius ciamo, potr e mmo tentare di dimos trare chc un s imile pr ogr amma non esiste.
Potr e mmo dimos trare l’inde c id ibilità di que s to nuovo pr oble ma con una te cnica s i­
mile a que lla us ata per il pr oble ma ciao- mondo: a s s umiamo che esista un pr ogr a mma in
grado di ris olve rlo e s viluppia mo un pr ogr amma parados s ale che deve fare due cose c on­
traddittorie . come il pr ogr amma I l 2. In re altà, dis pone ndo di un pr oble ma chc s appiamo
essere inde c idibile , non a bbia mo più bis ogno di dimos trare l’e s is te nza di una s ituazione
parados s ale . Bas ta mos trare che se pote s s imo risolvere il nuovo pr oble ma, allor a potr e m­
mo usare tale s oluzione pe r ris olve re il pr oble ma che g ià s appiamo essere inde c idibile .
La strategia è illus trata ne lla Figura 8.7; la te cnica è detta riduzione di P\ a Po.

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

Un compute r può davvero far lo?


Es a mina ndo un pr ogr amma come que llo de lla Figur a 8.2 potr e mmo chie de rci
se e ffe ttivame nte cerca controe s e mpi a ll’ultimo te ore ma di Fe rmat. In un tipico
compute r gli interi hanno lunghe zza pari a soli 32 bit; se il più piccolo controe-
s e mpio coinvolge s s e interi ne lT ordine dei milia r di, si produrre bbe un errore di
ove rflow pr ima di trovare la s oluzione . Si può s e nz’altro sostenere che un c o m­
pute r con una me mor ia ce ntrale di 128 me gabyte e un dis co di 30 gigabyte ha
“s olo” 25630128000000 stati ed è quindi un automa a stati finiti.
D ’altra parte, trattare i compute r come a utomi a stati finiti (o trattare il cer­
ve llo umano come un automa a stati finiti, motivo pe r cui s ono nati gli FA) è
inutile . Il nume r o di stati coinvolti è cos ì grande e i lim it i s ono così vaghi che è
impos s ibile trarre conclus ioni proficue . In effetti si può ragione volme nte pensare
che l’ins ie me di stati di un compute r s ia e s pandibile arbitrariame nte .
Per e s e mpio è pos s ibile rappresentare gli interi come liste di cifre di lun­
ghe zza arbitraria. Se la me mor ia ò ins ufficie nte , il pr ogr amma può s tampare la
richie s ta di s montare il dis co, s alvarlo e s os tituirlo con un dis co vuoto. Il c o mpu­
ter potre bbe man ma no s tampare richieste di s cambi tra tutti i dis chi che gli sono
necessari. Si tratterebbe di un pr ogr amma molto più comple s s o di que llo de lla
Figur a 8.2, ma la sua scrittura non andre bbe oltre le nostre capacità. Con s imili
e s pe die nti quals ias i pr ogr amma può ovviare alle lim it a zioni s ulla capacità de lla
me mor ia o s ulla dime ns ione de gli interi o di altri dati.

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.

2. Ve rifichiamo se x si trova in P 2 e diamo la stessa ris pos ta su w e P i.

Se w è in P i, allor a x è in P2. Dunque l’algor itmo dice s ì . Se w non è in P i , allor a x


non è in P 2, e l’algor itmo dice n o . Ne ll'un o o ne ll’altro caso dice comunque la ve rità su
w . Da to che abbiamo ipotizzato che non esista alcun algor itmo che de cide l’apparte ne nza
di una s tringa a P i, abbiamo una dimos tr azione pe r as s urdo che l’algor itmo di de cis ione
ipotizzato pe r P 2 non esiste; os s ia P 2 è inde cidibile .
334 Capitolo 8

L’im por ta nza de lla dire zione di una riduzione


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.

1. Se Q ha una funzione chia ma ta f o o , ne c a m bia mo il nome ins ie me con tutte le


chiamate a tale funzione . Ovvia me nte il nuovo pr ogr a mma Q i fa e s attame nte ciò
che fa Q.

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.

*! a) Dati un pr ogramma e un input, il pr ogramma te rmina (cioè non entra in un ciclo


infinito)?

b) Dati un pr ogramma e un input, il pr ogramma produce un output?

! c) Dati due programmi e un input, i programmi pr oducono lo stesso output per l'input
dato?

8.2 La macchina di Turing


La te oria de i pr oble mi inde cidibili non ha soltanto lo s copo di stabilire l'e s is te nza di
questi pr oble mi, un conce tto di per sé inte lle ttualme nte s timolante , ma anche di fornire
una guida ai programmatori su quanto è pos s ibile re alizzare me diante la pr ogr amma zio­
ne. La teoria ha anche importanti riflessi pragmatici ne lla trattazione di proble mi che,
sebbene de c idibili, richie dono cons ide re voli quantità di te mpo per essere risolti (come
ve dre mo nel Ca pitolo 10). Que s ti pr oble mi, detti “intr attabili”, te ndono a presentare ai
programmatori e ai proge ttis ti di sis te mi difficoltà maggiori rispetto ai pr oble mi inde c idi­
bili. Infatti, mentre i pr oble mi inde c idibili lo s ono di s olito pale s e me nte , e ne lla pratica
si cerca di ris olve rli di rado, i proble mi intrattabili si presentano ogni giorno. Inoltre es­
si si prestano fre que nte me nte a piccole modifiche nei re quis iti o a s oluzioni euris tiche .
11 proge ttis ta si trova quindi a dove r decidere se un pr oble ma apparte nga alla classe dei
pr oble mi intrattabili e, se sì, che cos a occorra fare.
Per dimos trare se un pr oble ma è inde cidibilc o intrattabile ci servono s trume nti ade ­
guati. La te cnica presentata nel Paragrafo 8.1 è utile pe r que s tioni relative a pr ogr ammi,
336 Capitolo 8

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.

8.2.1 La rice rca de lla s oluzione a tutte le domande mate matiche


Ag li inizi de l '9 0 0 il mate matico D. Hilbe rt si chie s e se fosse pos s ibile trovare un a lgo ­
r itmo in grado di s tabilire la ve rità o la fals ità di quals ias i pr opos izione mate matica. In
particolare si doma ndò se esistesse un modo per de te rminare la ve ridicità di una fo r mu­
la de l calcolo dei pre dicati del pr imo ordine applicata agli inte ri. Poiché il calcolo dei
pre dicati de l pr imo ordine per gli interi è s ufficie nte me nte pote nte da e s prime re e nunciati
come “la tal gr a mmatic a è a mbig ua ” oppur e “il tal pr ogr amma s tampa C i a o , m o n d o ”,
se Hilbe r t avesse avuto successo questi pr oble mi avre bbe ro g li algor itmi che ora s appiamo
non es is tono.
Ne l 1931 K. Gode i pubb lic ò il suo famos o te ore ma di incomple te zza. Egli de finì una
for mula ne l calcolo dei pre dicati applicata agli inte ri s e condo la quale la for mula stessa
non poteva essere né dimos tr ata nc confutata alPinte rno de l ca lc olo de i pre dicati. La te c­
nica di Gode i s omiglia alla cos truzione del pr ogr amma autocontraddittorio JJ2 presentata
ne l Paragrafo 8 .1.2, ma tratta funzioni s ugli interi anziché pr ogr ammi C.
Il calcolo de i predicati non era l’unic a nozione a dis pos izione de i mate matici come
mode llo di computazione unive rs ale . In effetti il calcolo de i pre dicati, essendo dic hiar a­
tivo piuttos to che computa zionale , dove va compe te re con una serie di notazioni, inclus e
le “funzio ni ricors ive pa r zia li” (una notazione s imile ai lingua ggi di pr ogr ammazione ) e
con altre notazioni analoghe . Ne l 1936 A.M. T uring propos e la macchina di T ur ing come
La macchina di T uring 337

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.

8.2.2 Notazione pe r la macchina di T uring


Pos s iamo rappresentare la ma cchina di T uring come ne lla Figura 8 .8 . La macchina cons i­
ste di un controllo Jìnito . che può trovarsi in uno stato, scelto in un ins ie me finito. C ’è un
nastro divis o in caselle, o celle ; ogni ce lla può contenere un s imbolo scelto in un ins ie me
finito.

B B X X X I. X /I B B

F ig u r a 8 .8 Una macchina di T uring.

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.

1. Ca mbia stato. Lo stato successivo può coincide re con lo stato corrente.

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.

La notazione formale che us e re mo per una macchina di T uring (T M, luring Machine ) è


s imile a que lla usata pe r gli automi a stati finiti o P DA. De s cr iviamo una T M come la
s e ttupla
M = (Q, Σ , F.<). 7?, F)
i cui compone nti hanno i seguenti s ignificati.

Q : l’ins ie me finito de gli stati del controllo.

Σ : l’ins ie me finito dei s imboli di input.

Γ : l’ins ie me comple to de i s imboli di nastro: Σ è s e mpre un s ottoins ie me di Γ.

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:

1. p , e le me nto di Q, è lo stato successivo


2. Y è il s imbolo di Γ scritto ne lla ce lla guardata, al pos to di qualunque s imbolo
vi fosse
3. D è una direzione. L o R - ris pe ttivame nte per “le ft” (s inis tra) e “r ight”
(destra) - , e s e gnala la dire zione in cui si muove la testina.

qo: lo stato iniziale del controllo; è un e le me nto di Q.

D: il s imbolo detto blank. Si trova in Γ ma non in Σ , cioè non è un s imbolo di input.


Inizialme nte il blank compare in tutte le ce lle tranne que lle (finite ) che conte ngono
i s imboli di input.

F: l ’ins ie me de gli stati f inali o accettanti, un s ottoins ie me di Q.


La macchina di T uring 339

8.2.3 De s crizioni is tantane e delle macchine di T uring


Per descrivere formalme nte che cosa fa una macchina di T uring dobbiamo s viluppare una
notazione per le configurazioni o descrizioni istantanee (ID. Instantaneous Descriptions ),
come que lla s viluppata per i PDA. Poiché in line a di pr incipio una TIVl ha un nastro
infinitame nte lungo, potre mmo pensare chc sia impos s ibile descrivere in te rmini concis i
le sue configurazioni. In realtà, dopo un nume ro finito di mosse, la T M può aver vis itato
solo un nume ro finito di celle, anche se il nume ro di celle visitate può crescere oltre
qualunque limite finito. Pe rciò in ogni ID esistono un prefisso c un suffisso infiniti di celle
che non sono mai state visitate. Tutte queste celle de vono contenere un blank oppure uno
dei s imboli di input, chc sono in nume ro finito. In una ID mos triamo dunque s olo le celle
tra il s imbolo diverso dal blank più a sinistra e que llo più a destra. In casi particolari,
quando la testina guarda uno dei blank in testa o in coda, anche un nume ro finito di blank,
a sinistra o a destra de lla porzione non bianca del nastro de v’essere inclus o ne lla ID.
Oltre al nastro dobbia mo rappresentare anche il controllo e la pos izione de lla testina.
A tal fine incorporiamo lo stato nel nastro e lo ponia mo imme diatame nte a sinistra de lla
ce lla guardata. Per e liminare ogni ambiguità ne lla stringa compos ta da nastro e stato,
dobbia mo assicurarci di non usare come stalo un s imbolo che sia anche un s imbolo di
nastro. In ogni caso, dal mome nto che l'ope razione de lla T M non dipe nde dai nomi de gli
stati, è facile cambiarli in modo chc non abbiano nulla in comune con i s imboli di nastro.
Us e re mo dunque la stringa X i X 2 · X¡.- iqXiX¿+\ · X n per rappresentare una ID in
cui:

1. q è lo stato de lla macchina di T uring

2 . la testina guarda !’¿- esimo s imbolo da sinistra

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.

De s criviamo le mos se di una macchina di T uring M = ( Q ^ , T , S . q o ,B , F ) me diante


la notazione I- . già usata per i P DA. Quando la T M M è implic ita us iamo s olo I- per
A1
denotare le mosse. Come al s olito F , o s olo l·- , indica zero, una, o più mosse de lla T M
M
M.
Supponia mo che S(q. X i) = (p. Y. L). cioè la pros s ima mos s a c verso sinistra. Allora

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

1. Se i - 1, allora M si muove verso il blank a s inis tra di X 1. In tal caso,

q X i ^ 2 · · · X n I- X 2 · · · Xn
M

2. Se i = n c Y = B , allor a il s imbolo B scritto su X n si unis ce alla s e que nza di


blank in coda e non compare ne lla ID seguente. Pe rciò

XyX‘>■■· X ri- i q X n X 1X 2 ■· ■X n-2pXn - 1

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.

1. Se i = n , allora la ce lla i 4 - 1- esima contie ne un blank e non faceva parte de lla ID


precedente. Abbia mo pe rciò

X 1 X 2 · · X n - IflXn H X 1X 2 · · · X n - y Y p B
|VÌ

2. Se %= I e Y = B , allor a il s imbo lo B scritto su X j si unis ce alla s e que nza infinita


di blank in testa e non compare ne lla ID seguente. Pe rciò,

^ 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 è

M = ({<?ο,4 ι , ί 2 ,<?3 , ^ ι } , { 0 , 1 } . { 0 ,1 ,X , Y . B } J . q 0,B..{q.y })


La macchina di T uring 341

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 }.

dove δ è data da lla tabe lla ne lla Figura 8.9.


Me ntre A l s volge la s ua computa zione , la por zione del nastro su cui è pass ata la
te s tina è s e mpre una s e que nza di s imboli descritta d a ll’e s pre s s ione regolare X* 0* Y* 1*.
In altre parole ci sono de gli 0 che s ono stati tras formati in A', s e guiti da 0 che non sono
stati tras formati. C i s ono poi de gli 1 che s ono stati tras formati in Y e 1 che non s ono stati
ancora tras formati. Pos s ono poi esserci altri 0 e 1.
Lo stato qo è lo stato inizia le ; M rie ntra in q0 ogni volta che ritor na allo 0 re s iduo più
a s inis tra. Se M si trova ne llo s taio qo c guarda uno 0, la re gola in alto a s inis tra ne lla
Figura 8.9 impo ne di andare ne llo stato q\ , tras formare lo 0 in A e muove r s i verso destra.
Ne llo stato q i, M continua a muove rs i verso destra su tutti gli 0 e le Y in cui si imbatte sul
nas tro, r ima ne ndo in q }. Se M le gge una A o una B . muore . Se inve ce le gge un 1 quando
si trova ne llo stato q-\, lo tras forma in Y , e ntra ne llo stato q-¿ e co minc ia a muove r s i verso
s inis tra.
Ne llo stato q%, M si muove verso s inis tra s ugli 0 e le F , r imane ndo in q2. Qua ndo
r aggiunge la A più a destra, che s e gna l’e s tre mità destra del blocco di 0 già tras formati in
X . M ritorna ne llo stato q0 e si muove verso destra. Pos s iamo individuar e due casi.

1. Se ora M vede uno 0, ripete il ciclo di abbiname nto appe na descritto.

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

QoOOll h X y 1O li h XOg 1I l h X q 2OY l h q2X 0 Y l h


X g 0O n H X X f l 1F l l· X X F y 1I I- X X q 2Y Y I- X q 2X Y Y l·
X X q 0Y Y l· X X Y q z Y h X X Y Y q t B I- X X Y Y B q 4B

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.

¢(,0010 h Xr 7l 010 H XOrjTi 10 h X y 2OFO h A2XO F O l·


X y 0OFO l· X X y 1F O l· X X F y 1O l· X X F O y 1B

Il comportame nto di M su 0010 è s imile a que llo su 0011 finche' ne lla ID X X F y 1O M


guarda l ’ultimo 0 per la pr ima volta. M deve pr ima muove rs i verso destra re s tando ne llo
stato y i, che la po na alla ID Ar X F O y 1I?. Ma ne llo stato A1 M non ha mosse sul s imbolo
di nastro B : di cons e gue nza M muore e non accetta l’input.

8.2.4 Dia gr a mmi di trans izione pe r le macchine di T uring


Pos s iamo rappresentare le trans izioni di una macchina di T uring graficame nte come ab­
bia mo fatto pe r i PDA. Un diagramma di transizione consiste in un ins ie me di nodi cor­
ris ponde nti agli stati de lla T M. Un arco dallo stato q allo stato p è etichettato da uno o
più ogge tti de lla for ma X / Y D , dove X e F s ono s imboli di nastro e D è una dire zione ,
L o R. In altre parole , ogni volta che d'(y, X) = (p, F , D), tr oviamo 1’ e tichetta X / F D
s u ll’arco da y a p. Nei diagr ammi la dire zione D è rappre se ntata graficame nte da <— per
“s inis tra” e —» pe r ‘destra” .
Come pe r altri tipi di diagr a mmi di trans izione , rappre s e ntiamo lo stalo inizia le con
la parola “Start” e una fre ccia chc entra in tale stato. Gli stati accettanti s ono se gnalati
dal doppio ce rchio. Dunque l’unica infor mazione s ulla T M chc non si ricava dire ttame nte
dal dia gr a mma è il s imbolo usato per il blank. Supponia mo che il s imbolo sia B , s alvo
indicazione contraria.

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 .

Una T M che compie tale ope razione c specificata da

M = ({io><7i>·· · ;<&>}> {0 ,1 ) .( 0 ,1 ,1 ? }, 5, c/ o,# )

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

η 4- 1 s imboli 1 con uno 0 cd n s imboli t í, las ciando m — n s imboli 0 sul nastro.


Poiché in que s to caso m > n, m —n = m — n.

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

F ig u r a 8.12 Tl d ia g r a m m a di tr a ns izione pe r la T M d e ll’Es c mpio 8.4.


346 Capilolo 8

Conve nzioni notazionali per le macchine di T uring


I s imboli usati normalme nte per le macchine di T uring s ono s imili a que lli già
visti per gli altri tipi di automa.

1. Lc pr ime lettere minus cole de ll'alfabe to indicano i s imboli di input.

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.

3. Le ultime lettere minus cole d d l'a lfa b e to indicano stringhe di s imboli di


input.

4. Le lettere greche indicano s tringhe di s imboli di nastro.

5. Le lettere q, p e que lle circostanti indicano gli stati.

8.2.5 II linguaggio di una macchina di T uring


Abbia mo descritto in te rmini intuitivi il modo in cui una macchina di Turing accetta un
lingua ggio. La stringa di input vie ne posta sul nastro e la testina parte dal s imbolo di input
più a sinistra. Se la T M entra in uno stato accettante, allora l’input è accettalo, altrime nti
no.
In te rmini formali, sia M = (Q, Σ , Γ. 6. B , F ) una macchina di T uring. Allor a
«I»

L (M ) è l’ins ie me di s tringhe w in Σ * tale che qow I αρβ per uno stato p in F e


qualunque s tringa di nastro a e β. Abbia mo ipotizzato que s ta de finizione nel discutere la
macchina di T uring d e ll’Es e mpio 8.2, chc accetta le stringhe de lla forma OriI n .
I linguaggi chc pos s iamo accettare us ando una macchina di T uring sono spesso de ­
nominati linguaggi ricorsivamente enumerabili o linguaggi RE (Recursively Enumera­
ble). Il te rmine “ricors ivame nte cnume rabile ” deriva da for malis mi computazionali che
prece dono cronologicame nte la macchina di T uring, ma che de finis cono la stessa classe
di linguaggi o funzioni aritme tiche . Vedre mo le or igini del te rmine in un excursus del
Paragrafo 9.2.1.

8.2.6 Le macchine di T uring e l ’arresto


Per le macchine di T uring si usa comune me nte un ’altra nozione di “acce ttazione ” : l’ac­
ce ttazione per arresto. Dir e mo che una T M si arresta se entra in uno stato q guardando un
s imbolo di nastro X c non ci sono mosse in questa s ituazione ; cioè 6(q. Ar ) è inde finito.
La macchina di T uring 347

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.

* a) L’ins ie me delle s tringhe con un nume r o uguale di 0 e di 1.

b) {<in bncn | n > 1 }.

c) {w w n I w è una qualunque stringa di 0 e 1 }.

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.

Ris ponde te ai seguenti quesiti con cos truzioni informali, ma chiare.

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 r cizio 8.2.5 Cons ide rate la seguente macchina di Turing:

M - ({¢ 0 , 7 i , Q2 ^Qf}· {0 ,1 }, {0. \ ,B } ,S ,q o ,B , {qf })

Descrivete in termini infor mali, ma chiari, il linguaggio L (M ) se S è specificata come


segue:
T ecniche di programmazione per le macchine di T uring 349

* a) 5 (9 0 ,0 ) = ( g i , l , f t ) ; % i , l ) = (q0, 0, R); ó(qí: D) = (qf , B , R )

b) ¿(í/ο,Ο) = (qo,B,R)·, 5(flo,l) = ^ ( ί ι , Ι ) = (<71, B.R); 6{qy, Ti) =


( ¢ / , B i R)

!c ) % o , 0 ) = (¢1 , 1 , R ); 6(qu l) = (¢2 , 0 . 1 ); ò'(g2 , l ) = (¢0 , 1 , ^ ) ; 5 (qi, B) =


(ϊ/,Ζ?, Tl).

8.3 Tecniche di programmazione per le macchine


di IYiring
Voglia mo ora chiarire come si può usare una ma cc hina di T uring pe r calcolare in modo
s imile a un calcolatore conve nzionale . L’obie ttivo e convince re il lettore che una T M
ha la stessa capacità di un tipico calcolatore . In particolare ve dre mo che la ma cc hina di
T uring è in grado di s volgere e labor azioni su altre macchine di T uring in modo analogo
al pr ogr amma del Paragrafo 8.1.2, che e s amina altri pr ogr ammi. Proprio ques ta capacità
“intros pe ttiva” de lle macchine di T ur ing e dei pr ogr ammi ci pe rmette di dimos trare che
certi pr oble mi s ono inde cidibili.
Per chiarire le pos s ibilità di una T M, presenteremo e s e mpi di inte rpre tazioni del na ­
stro c de l controllo finito. Que s ti e s pe die nti non e s te ndono il mode llo fondame ntale , ma
re ndono più comoda la notazione . In s e guito ce ne s e rvire mo per s imulare mode lli estesi
di ma c c hina di T uring con nuove caratteristiche - pe r e s e mpio più di un nastro - tramite
il mode llo fondame ntale .

8.3.1 Me moria nello stato


Il controllo può servire non s olo a rappresentare una pos izione ne l “pr ogr amma” di una
ma c c hina di T uring, ma anche a conservare una quantità finita di dati. Que s ta te cnica è
illus trata, ins ie me con il conce tto di tracce multiple , ne lla Figura 8.13. Il controllo non
cons is te unicame nte ne llo “stato” vero c proprio, ¢, ma anche in tre dati: A, B e C . Non
s ono richieste e s pans ioni al mode llo; è s ufficie nte cons ide rare lo stato come una e nnupla.
Ne l caso de lla Figura 8.13 lo stato è [q,A, B . C ]. Pos s iamo così descrivere le tr ans izioni
in modo più s is te matico, e s plicitando chiarame nte la strategia del pr ogramma.

Es e m p io 8 .6 De finia mo una T M

M = (Q, { 0 , 1 }, {0 , 1 , B }, δ, [¢0 , B J, { [a, , B]})

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.

b) Un dato che ricorda il pr imo s imbolo letto, O o L Un s imbolo B in que s ta c o mp o ­


ne nte s ignifica che non è stato le tto nessun s imbolo.

De finia mo la funzione di tr ans izione 6 pe r M .

1. ¿([(/eh B], a) = ([ r/i. a] , a , R ) p e r a = O o a = I . A ll’inizio q0 è lo stato di contr ollo


e B è il valore de lla por zione di dato. Il s imbolo le tto vie ne copiato ne lla s e conda
compone nte de llo stato, e d M si muove a destra e ntrando a llo stesso te mpo ne llo
stato <71.

2. a] , a ) = ([<71, a] , a , R ), dove a è il “co mple me nto” di a , cioè 0 se a = 1 e 1 se


a = 0. Ne llo stato q 1, M supera ogni s imbolo, 0 ο 1, dive rs o da que llo cons e rvato
ne llo stato, e prosegue verso destra.

3. <5([</i, a] , B ) = ([</1 . B\ ,B, R ) pe r a = ( ) o « = I. Se M raggiunge il pr imo blank,


entra ne llo stato acce ttante [^1 . B\ .
Tecniche di programmazione per le macchine di T uring 351

Notiamo che, in A l, ¿((<71, a ] ,a ) non è de finita pe r a = O o a = I. Di cons e gue nza, se


incontra pe r la s e conda volta il s imbolo conservato nel s uo controllo, M si fe rma senza
entrare ne llo stato accettante.

8.3.2 Tracce multiple


A volte è utile considerare il nastro di una macchina di T uring come se avesse più ‘’trac­
ce” . Og ni traccia può ospitare un s imbolo, e quindi l'alfabe to di nastro de lla T M consiste
in cnnuple , con una compone nte per ogni traccia. A titolo di e s e mpio, la ce lla guardata
dalla testina ne lla Figura 8.13 contie ne il s imbolo [ Χ,Υ.Ζ] , Anche l’impie go di trac­
ce multiple , come la me mor ia nel controllo, non estende le capacità delle macchine di
T uring. Si tratta soltanto di un modo per strutturare i s imboli di nastro.

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 )+ }

La macchina di T uring de s tinata allo s copo è

M = (Q . Σ ,Γ , ó, [qi,B], [B , B), {[ <&,B}})

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 .

Γ: l'ins ie me de i s imboli di nastro è {/ ? , *} x (0 . l, c . B } . La pr ima compone nte , o


traccia, può essere bianca (s imbolo Β) o “vis tata” (s imbolo *). Ci s e rviamo di *
per contrassegnare i s imbo li del pr imo e de l se condo gruppo di 0 e 1 , per poter
infine confe rmare chc la stringa a sinistra de lla c, segnale di me zzo, è uguale a
que lla a destra. La s e conda compone nte di un s imbolo di nastro reca il s imbolo di
nastro vero e proprio. Cos ì il s imbolo | Β, X ] corris ponde al s imbolo di nastro X ,
pe r X = OA .c .B .

Σ : 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\ .

8 . ¿([</5 , £?], [ Β,α] ) = ([<76 , B\ , [B, a], L). Qu e s t a d ir a m a z io n e c o p r e ilc a s o in


cui il s imbolo a s inis tra di c non è vis tato. M va ne llo stato qo e prosegue a
s inis tra in cerca di un s imbolo vistato.

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.

Es e mpio 8 .8 De finia mo una T M che r e alizzi la funzione “moltiplic a zione ” . La T M co­


mince rà con Om IOn I sul nastro e te rmine rà con 0™” . La strategia ris olutiva si articola in
quattro punti.

1. Il nastro os pita, in generale, una s tringa non vuota de lla forma Ot IOwIOfcn pe r un
certo k.

2. In un passo e lementare c ambia mo in B uno 0 del pr imo gr uppo e aggiungia mo n


volte 0 a ll’ultimo gruppo, produccndo una stringa de lla forma 0 t _ 110 " 1 0 ^fc+1^n .

3. L’esito ò di copiare in coda il gr uppo di n s imboli 0 pe r m volte, una pe r ogni


tras formazione di 0 in B ne l pr imo gruppo. Qua ndo il pr imo gruppo di 0 c stato
inte rame nte tras formato in blank, ne ll’ultimo gruppo ci sono mn s imboli 0 .
354 Capitolo 8

4. L’ultimo passo consiste ne l cance llare la seque nza iniziale IOn I.

Il cuore deH’algoritmo è una s ubroutine , che chiame re mo C o p y , destinata a eseguire il


passo (2), cioè a copiare in coda il blocco di n s imboli 0. Più esattamente C o p y tras forma
una ID di for ma 0m- fcIg iOn IO ^fc-1 " ne lla TD Om- fc Igs OriIOfcr'. Lc trans izioni di C o p y
s ono illus trate ne lla Figura 8.14. La s ubroutine contrass egna il pr imo 0 con X , si sposta
a destra ne llo stato g> fino a un blank, vi copia lo 0 e si sposta a sinistra ne llo stato <73 fino
alla A'. Il ciclo si ripete finché, ne llo stato q\ , trova un 1 anziché uno 0. A que l punto,
ne llo stato q.\ , ritras forma gli X in 0 e te rmina ne llo stato q-j.
La macchina di T uring comple ta per la moltiplic azione parte da llo stato qo. Per pr ima
cos a passa, in più mosse, dalla ID go0m 10” a^ a ID Om - 1 lg , 0 n l. Le trans izioni ne ­
cessarie sono illustrate ne lla Figura 8.15, a sinistra de lla chiamata di s ubroutine ; queste
trans izioni coinvolgono s olo gli stati qo e g«.
Ne lla Figura 8.15, a destra de lla chiamata alla s ubroutine , si ve dono gli stati da q7
a c¡i 2· Gli stati q 7 , q$ c q<j hanno lo s copo di riprendere il controllo dopo che C o p y ha
copiato un blocco di n s imboli 0 e si trova ne lla ID 0 m- fc Igs OrtIOfcn. Da questi stati la
T M giunge infine allo stalo go0 m- fc IOn IOfcr'. A que l punto ¡I ciclo ricomincia, c C o p y
vie ne chiamata di nuovo per copiare il blocco di n 0 .
Ne llo stato gg, però, la T M può rilevare che tutti gli m 0 s ono stati mutati in blank
(cioè k = ni). In tal caso avvie ne una trans izione allo stato g )0. Insieme a g n questo
stato tras forma in blank la s e que nza inizia le IOii I , per poi passare allo stato di arresto qr¿.
Ora la T M si trova ne lla ID g 12Or'm e il suo compito è te rminato.

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.2 U n ’ope razione frequente ne i programmi pe r macchine di T uring compor ­


ta uno “s littame nto” . In teoria vorre mmo creare una ce lla in più accanto alla pos izione
corrente de lla testina per collocarvi un s imbolo, ma non pos s iamo alterare il nastro in
questo modo. Dobbiamo allora spostare di una ce lla a destra il conte nuto di ogni ce lla a
destra de lla testina, pe r poi tornare alla pos izione corrente. Spie gate come realizzare que ­
sta ope razione . Suggerimento: lasciate un s imbolo speciale per contrassegnare il punto in
cui riportare la testina.

* 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 .

F ig u r a 8.15 II pr ogramma per la moltiplic a / ione impie ga la s ubroutine Co p y .


356 Capitolo 8

8.4 Estensioni alla macchina di Turing semplice


In que s to paragrafo ve dre mo alcuni mode lli di calcolatore analoghi alle macchine di T u­
ring e con le stesse capacità di r iconos cime nto dei linguaggi de l mode llo di base di T M fin
qui trattato. Uno di essi, la macchina di T uring multinas tr o, è importante pe rché rispetto
al mode llo mononas tro facilita la s imulazione di un vero calcolatore (o di macchine di
T uring d'a ltr o tipo). Per quanto riguarda la capacità di riconos ce re linguaggi, i nastri in
più non aggiungono nulla.
Es a minia mo poi la macchina di T uring non de te rminis tica, un'e s te ns ione del mode llo
di base che può scegliere fra un ins ie me finito di mos s e in ogni s ituazione . Anche questa
es te ns ione fa cilita in certi casi la “pr ogr ammazione ” di una macchina di T uring senza
allargare i linguaggi de finibili ris pe tto al mode llo di base.

8.4.1 Macchine di T uring multinas tro


Una T M multinas tr o si presenta come suggerito da lla Figur a 8.16: ha un controllo finito
e un nume ro finito di nastri. Og ni nastro è divis o in ce lle , e ogni ce lla può contenere
un s imbolo d e ll’alfabe to, finito, di nastro. Comc pe r la T M mononas tro, l ’ins ie me dei
s imboli di nastro compre nde un blank e ha un s ottoins ie me , i s imboli detti di input, che
non contie ne il blank. L'ins ie me de gli stati compre nde uno stato inizia le e un ins ie me di
stati acce ttanti. Inizialme nte valgono queste condizioni.

1. L'input, una s e que nza finita di s imboli di input, si trova sul pr imo nastro.

2. Tutte Ic altre celle di ogni nastro conte ngono un blank.

3. Il controllo si trova ne llo stato inizia le .

4. La testina del pr imo nas tro è a ll’estremo s inis tro d e ll’input.

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

F ig u r a 8.16 Una macchina di T uring multinas tro.

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.

8.4.2 Equivale nza di macchine di T uring mononas tro e multinas tro


Ric or diamo che i linguaggi ricors ivame nte e nume rabili s ono, per de finizione , que lli ac­
cettati da una T M mononas tro. Ovviame nte le T M multinas tr o acce ttano tutti i linguaggi
ricors ivame ntc e nume rabili, perché una T M mononas tro è un caso particolare di T M mu l­
tinastro. Pos s iamo chie de rci allora se e s is tono linguaggi non ricors ivame nte e nume r abili,
ma accettati da una T M multinas tr o. La risposta è “no”, e lo prove re mo s pie gando comc
s imulare una T M multinas tro pe r me zzo di una T M mononas tro.

T e or e ma 8.9 Og ni linguaggio accettato da una T M multinas tr o è ricors ivame nte e nume ­


r a r le .
D IM O STR A ZIO N E La dimos trazione è illus trata ne lla Figura 8.17. Sia L un linguaggio
accettato da una T M con k nastri, M . Simulia mo M con una T M mononas tro Ar, il cui
358 Capitolo 8

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

Richiamo sulla finitezza


Confondere un valore che a ogni istante è finito con un insieme finito di valori è un
errore frequente. La costruzione da n a 1 nastro serve a illustrare la differenza. In
essa sfruttiamo le tracce del nastro per registrare le posizioni delle testine. Perché
non possiamo registrare le posizioni come interi nel controllo? Sbagliando, si
potrebbe ragionare così: dopo n mosse, le testine della TM devono trovarsi a
distanze inferiori a n dalle posizioni iniziali: dunque per ogni testina si deve
memorizzare un intero non più grande di n.
In realtà, anche se in ogni istante le posizioni sono espresse da numeri finiti,
l’insieme delle posizioni possibili in tutti gli istanti è infinito. Per poter rappresen
tare qualsiasi posizione, un componente dello stato deve poter registrare qualsiasi
intero. Questo componente imporrebbe all’insiem e degli stati di essere infinito,
sebbene in ogni istante solo un numero finito di essi sia possibile. La definizione
di m acchina di Turing richiede chc Yi ns i eme degli stati sia finito. Non è quindi
possibile memorizzare la posizione di una testina nel controllo finito.

8.4.3 Tempo di esecuzione e costruzione da n a un nastro


Introduciamo un concetto che diventerà importante in seguito: la “complessità in tempo”,
o “tempo di esecuzione”, di una macchina di Turing. Diciamo che il t empo di es ecuzi one
della TM Al sull'input w è il numero di passi che Al compie prima di arrestarsi. Se Al
non si arresta su t v, diciamo che il tempo di esecuzione è infinito. La compl essi t à i n t empo
della TM A l è la funzione T ( n ) , definita come il massimo, su tutti gli input w di lunghezza
n, del tempo di esecuzione di A l su w. Per una macchina di Turing che non si arresta su
tutti gli input. T ( n ) può essere infinito per alcuni η, o anche per tutti. Dedicheremo
particolare attenzione alle TM che si arrestano su tutti gli input, e in particolare a quelle
che hanno complessità in tempo polinomiale, a partire dal Paragrafo 10.1.
La costruzione del Teorema 8.9 può sembrare contorta. In effetti la TM mononastro
può avere tempi di esecuzione molto più lunghi di quella multinastro. D ’altra parte i tempi
di esecuzione delle due macchine sono commensurabili in senso debole: quello della TM
mononastro non supera il quadrato del tempo dell’altra. L’elevamento al quadrato, sep
pure non trascurabile, preserva la polinomialità del tempo di esecuzione. Nel Capitolo 10
prenderemo in considerazione due fatti.

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.

b) Nonostanic studi approfonditi, per molti problemi il tempo di esecuzione si può


360 Capitolo 8

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.

Dimostriamo ora che i tempi di esecuzione di una TM multinastro e della corrispondente


mononastro sono in rapporto quadratico.

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).

8.4.4 Macchine di Turing non deterministiche


Una m acchina di Turing n o n det er mi ni s t i ca (NTM, Nonde t enni ni s t i c Tur i ng Mac h i n e ) si
distingue da quella determ inistica nella funzione di transizione <5, che associa a ogni stato
q e a ogni simbolo di nastro X un insieme di triple:

Siqi X ) = { foi, Y i, D 1), (q2ì Y2, D2) , (qk, Yk, Dk))

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

F ig u ra 8.18 Sim ulazione di una NTM da parte di una D TM .

Per elaborare la ID corrente, M d compie quattro operazioni.

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 Λ/,γ.

2. Se lo stato non è accettante, e la com binazione stato-sim bolo permette k mosse,


M d copia la ID sul secondo nastro e fa k copie della ID in coda alla sequenza di
ID sul nastro 1.

3. M d modifica ognuna delle k ID secondo una delle k scelte di mossa chc Λ/.γ può
fare dalla ID corrente.
362 Capitolo 8

4. M o torna alla ID corrente contrassegnata in precedenza, cancella il contrassegno c


lo sposta alla successiva ID a destra. Tl ciclo ricom incia dal passo (1).

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.

Esercizio 8.4.2 Definiamo la funzione di transizione della TM non deterministica M =


({yo-¢ 1-(/2 }, { 0 ,1 ) ,( 0 , l , B } , 6 t q o , B , {<?2}):

ó 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

Elencate le ID raggiungibili dalla ID iniziale per i seguenti input:


Estensioni alla macchina di Turing semplice 363
\

* 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.

* a) Il linguaggio di tutte le stringhe di 0 e 1 contenenti una stringa di lunghezza 100,


ripetuta, anche non consecutivam ente. Formalmente questo linguaggio è l'insiem e
delle stringhe di 0 e I della forma w x y x z , con |z | = 100 e ?/;, y c z di lunghezza
arbitraria.

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.4 Considerate la m acchina di Turing non determ inistica

M = {{qo,<h,q2,qf}·. { 0 .1}; {0. 1, B},Ó, Qq, B, {(//})

Descrivete, informalmente ma chiaram ente, il linguaggio L ( M ) se <5 è definita dalle se


guenti regole: ó (q 0,Q) = {(g0, l , R ) , (g i,l.J S )} ; ó (q \ A ) = {(¢ 2 , 0 . / 1)}; <S(fl2 , l ) =
{(q 0 , l , R ) } \ 6 ( q x , B ) = { (q f , B , R ) } .

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.

1. Il primo nastro serve solo a conservare c leggere l'input. L’alfabeto di input è


formato dal simbolo che interpretiamo comc “togli dallo stack”, e dai simboli a
e b. chc interpretiamo come “metti a (o b) nello stack”.

2. Il secondo nastro rappresenta lo stack.

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.

8.5 Macchine di Turing ridotte


Abbiamo esaminato alcune generalizzazioni della macchina di Turing che non ne allar
gano la capacità di riconoscimento di linguaggi. Consideriamo ora esempi di TM appa
rentemente limitate, m a chc hanno esattamente la stessa capacità. La prima limitazione è
secondaria, ma utile in alcune costruzioni che vedremo in seguito: sostituiamo il nastro il
limitato nelle due direzioni con un nastro illimitato solo a destra. Inoltre vietiamo alla TM
di stampare un blank al posto del simbolo di nastro. Queste limitazioni hanno un pregio:
le ID sono formate solo da simboli diversi dal blank e cominciano sempre dall’estremo
sinistro dclFinput.
Esploriamo poi alcuni tipi di macchina di Turing multinastro chc sono automi a pila
generalizzati. Vincoliamo anzitutto i nastri a comportarsi come degli stack. Li trattiamo
poi solo come “contatori”: possono rappresentare solo un valore intero c la TM può di
stinguere soltanto tra un valore 0 e un valore diverso da 0. Dalla discussione si deduce che
esistono diversi tipi, molto semplici, di automa con le stesse capacità di un calcolatore. I
problemi indecidibili concernenti le macchine di Turing, chc studieremo nel Capitolo 9,
si applicano anche a questi semplici dispositivi.

8.5.1 Macchine di Turing con nastri semi-infiniti


Finora abbiamo permesso alla testina di una macchina di Turing di muoversi a sinistra o
a destra della posizione iniziale; in realtà è sufficiente permetterle di muoversi nell’area
a destra della posizione iniziale. Possiamo quindi supporre chc il nastro sia semi- inf init o,
cioè che non ci siano celle a sinistra della posizione iniziale. Nel prossimo teorema dim o
striamo che si può sempre costruire una TM con nastro scmi-iniinito capace di simularne
una con nastro illimitato in entrambe le direzioni, come il modello originale.
La costruzione impiega due tracce sul nastro semi-infinito. La traccia superiore rap
presenta la cella su cui si trova all’inizio la testina della TM originale e quelle alla sua
366 Capitolo 8

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.

Imponiamo un vincolo ulteriore alla m acchina di Turing: il divieto di scrivere un blank.


Questo semplice vincolo, insieme con il nastro semi-infinito, fa sì che in ogni istante il
nastro sia formato da un prefisso senza blank seguito da una serie infinita di blank. Inoltre
la sequenza di simboli diversi dal blank parte sempre dalla posizione iniziale nel nastro.
Nei Teoremi 9.19 e 10.9 vedremo perché è utile poter assumere che le ID abbiano questa
forma.

Teorema 8.12 Ogni linguaggio accettato da una TM M 2 è accettato anche da una TM


M y con i seguenti vincoli.

1. La testina di My non va mai a sinistra della posizione iniziale.

2. M y non scrive mai un blank.

DIMOSTRAZIONE II secondo vincolo non pone problemi: si definisce un nuovo simbolo


di nastro, B ', che funge da blank, ma non è il blank B .

a) Se in M 2 vale la regola ó2 ( q , X ) = ( p , B , D ) . Ia modifichiamo in òo(q. X ) =


(ρ ,Β',ΰ ).

b) Per ogni stato q definiamo ó i i q, B ' ) = S2(q, B ) .

11 primo vincolo è più impegnativo. Sia

M 2 = ( Q ‘¿, Σ , Γ 2,5 2, ¢/2- B , F 2)


Macchine di Turing ridotte 367

la TM AZ2 modificata in modo che non scriva mai il blank B . Costruiamo

AZ1 = (Q 1, Σ X { B } , r u S , , Q0^ B i B l F 1)

con le seguenti definizioni.

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.

Γ] : i simboli di nastro di M i sono coppie di simboli di F 2, cioè elementi di Γ 2 x F 2. I


simboli di input di M i sono coppie formate da un simbolo di input di M 2 nel primo
componente e un blank nel secondo, cioè coppie della forma [α. B] , dove a è in Σ.
Il blank di M 1 è formato da blank nei due componenti. Inoltre, per ogni simbolo
X in Γ 2 , c ’è una coppia [ X, *] in F j . Qui * è un nuovo simbolo, esterno a T2, che
serve a marcare l’estremo sinistro del nastro di AZ1.

^1: le transizioni di AZ1 sono definite come segue.

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

^ 1(Ig1L )JX , * ] ) =S 1 HqiU].. [X,* ]) = (\p,U],\Y,*],R)


368 Capitolo 8

Q ueslaregola spiega uno dei modi di trattare il marcatore *. Se M 2 si muove a


destra dalla posizione iniziale, a prescindere dal fatto chc provenga da sinistra
o da destra rispetto a quella posizione (in funzione del fatto che il secondo
componente dello stato di M i sia L o U ), M i deve muoversi a destra e puntare
alla traccia supcriore. Dunque M\ si troverà nella posizione rappresentata da
X i nella Figura 8.19.
5. Se ¿ 2 (9 . X ) = (P . Y , L ) , allora

*i([<7, L], [X, *]) = ¿1 ([,Ί, U] , [X, *]> = ([p, L\ , [Y. *], R )

Questa regola somiglia alla precedente, ma tratta il caso in cui M 2 va a si


nistra della posizione iniziale. My deve muoversi a destra rispetto al marca
tore, ma puntando alla traccia inferiore, cioè alla cella indicata da X- y nella
Figura 8.19.

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.

La dimostrazione del teorema è praticamente completa. Possiamo osservare, per induzio


ne sul numero di mosse di M 2, che My simula sul proprio nastro la ID di M 2, a patto di
rovesciare la traccia inferiore e giustapporla alla superiore. Notiamo anche chc M 1 entra
in uno stato accettante esattamente quando lo fa M 2. Perciò L(M\ ) = L ( M 2).

8.5.2 Macchine multistack


Consideriamo ora alcuni modelli computazionali fondati su generalizzazioni deM’automa
a pila. Esaminiamo in primo luogo che cosa succede se dotiamo un PDA di più di una
pila. DaH’Esempio 8.7 sappiamo che una macchina di Turing può accettare linguaggi chc
nessun PDA con una pila accetta. Scopriremoche i PDA con due stack accettano gli stessi
linguaggi delle macchine di Turing.
Consideriamo poi una classe di macchine dette '‘a contatori". Esse possono solamente
memorizzare un numero finito di interi (detti “contatori”) e scegliere fra mosse diverse a
seconda che uno dei contatori valga 0. Una macchina a contatori può solo sommare o
sottrarre 1 dai contatori e non è in grado di distinguere due valori differenti, diversi da
0. Di fatto un contatore è uno stack in cui si possono collocare solo due simboli: un
segnale di fondo-stack, che compare esclusivamente al fondo, e un altro simbolo, che si
può mettere e togliere.
Non svolgeremo una trattazione formale delle macchine multistack; il concetto è il
lustrato dalla Figura 8.20. Una macchina con Α,-stack è un PDA deterministico dotato di
k stack. Al pari di un PDA, esso riceve l’input da una sorgente anziché leggerlo su un
Macchine di Turing ridotte 369

Input A ccetta/rifiu ta

F ig u ra 8.20 Una macchina con tre stack.

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.

2. Il simbolo corrente di input, scelto in un alfabeto finito di input. In alternativa la


macchina multistack può fare una mossa su input e, in qualsiasi stato, però, non
può esserci una scelta fra una c-mossa e una mossa “normale” perche la macchina
c deterministica.

3. I simboli in cima a ciascuno stack.

In una mossa la macchina compie diverse operazioni.

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:

¿(<7, a , X l i X 2, . . . , X k ) = (p, 7 i , 72, · · · , I h )

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

e sostituire X i in cima all’i-esim o stack con la stringa 7 *, per ogni i = 1 , 2 , . . . , k . Le


macchine multistack accettano entrando in uno stato finale.
Aggiungiam o una caratteristica che semplifica il trattamento dcll'input da parte di
queste macchine deterministiche: assum iam o la presenza di un simbolo speciale $. detto
s egnal e di f i ne, che compare solo alla fine dell’input, ma non fa parte dell’input. La
presenza del segnale di fine permette di sapere quando tutto l'input è stato consumato. Nel
prossimo teorema vedremo che questo segnale semplifica la sim ulazione di una macchina
di Turing da parte di una macchina multistack. Notiamo chc la TM tradizionale non ne
ha bisogno perché il primo blank segnala la fine dell'input.

Teorema 8.13 Sc un linguaggio L è accettato da una macchina di Turing, allora L è


accettato da una macchina con due stack.

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.

5. Descriviam o ora come S simula una mossa di M .

(a) S conosce lo stato di M perché lo simula nel proprio controllo.


(b) S conosce il simbolo X che la testina di M sta guardando: è quello in cim a al
suo secondo stack. Si ha un’eccezione quando il secondo stack contiene solo
l'indicatore di fondo; ciò significa che M si è spostato su un blank ed S può
interpretare correttamente la situazione.
(c) Perciò S conosce la mossa successiva di Ai.
Macchine di Turing ridotte 371

(d) Il nuovo stato di M viene registrato in un componente del controllo di S al


posto del precedente.
(e) Sc M sostituisce X con Y e va a destra, S pone Y sul primo stack a rappre
sentare il fatto che ora Y è a sinistra della testina di M . X viene tolto dal
secondo stack di S . Ci sono due ecce/ioni.
i. Sc contiene solo l’indicatore di fondo (e quindi X è un blank), il secondo
stack non viene modificato: M si è spostato su un altro blank più a destra.
ii. Sc Y c un blank e il primo stack è vuoto, il primo stack rimane vuoto. Il
motivo è chc a sinistra della testina di M ci sono ancora solo blank.
(0 Se M sostituisce X con Y e va a sinistra, S toglie il simbolo in cim a al primo
stack (diciamo Z ) e sostituisce X con Z Y nel secondo stack. In questo modo
si tiene conto del fatto che il simbolo che era immediatamente a sinistra della
testina ora è sotto di essa. Si ha un’eccezione quando Z è il segnale di fondo;
M deve allora porre B Y sul secondo stack senza togliere nulla dal primo.

6. S accetta se il nuovo stato di M è accettante, altrimenti simula un’altra mossa di


M nello stesso modo.

8.5.3 Macchine a contatori


Ci sono due modi di vedere una mac c hi na a cont at ori .

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.

2. Una macchina multistack con i vincoli seguenti.

(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 .

Ci serviremo della definizione ( 1) di macchina a contatori, ma è chiaro che le due defi


nizioni sono equivalenti. Infatti uno stack X iZ 0 si può identificare con il valore i. Nella
definizione (2) possiamo distinguere un contatore nullo dagli altri perché vediamo Z q an
ziché X alla sommità dello stack. Non possiamo invece distinguere fra loro due contatori
non nulli perché entrambi hanno X in cima allo stack.

8.5.4 La potenza delle macchine a contatori


Per ciò che riguarda i linguaggi accettati da macchine a contatori, alcune osservazioni,
per quanto ovvie, sono degne di nota.

• Ogni linguaggio accettato da una macchina a contatori è ricorsivamcntc enumcra-


bile. Infatti una macchina a contatori è un caso speciale di macchina multistack, e
questa è un caso speciale di macchina di Turing multinastro, che per il Teorema 8.9
accetta solo linguaggi ricorsivamente enumerabili.

• Ogni linguaggio accettato da una macchina con un contatore è un CFL. Secondo


la Definizione (2) un contatore è uno stack; dunque una macchina con un conta
tore è un caso particolare di macchina con uno stack, cioè un PDA. I linguaggi
delle macchine monocontatore sono in effetti accettati da PDA deterministici, ma
la dimostrazione è sorprendentemente complessa. La difficoltà nasce dal fatto che
le macchine multistack e a contatori hanno un segnale $ alla fine dell'input. Un
PDA non deterministico può scommettere di aver letto l’ultimo simbolo di input
e di dover leggere $; quindi un PDA non deterministico privo del segnale di fine
input può chiaramente simulare un DPDA con quel segnale. La parte difficile, che
non tratteremo, c la prova chc un DPDA senza segnale può simulare un DPDA con
il segnale.

Le macchine a contatori danno un risultato sorprendente: due contatori sono sufficienti


per simulare una macchina di Turing, e quindi per accettare qualsiasi linguaggio ricor
sivamente enumerabile. Ce ne occupiamo ora, dimostrando dapprima che bastano tre
contatori, e poi simulandone tre con due soltanto.

Teorema 8.14 Ogni linguaggio ricorsivamente enumerabile è accettato da una macchina


con tre contatori.
M acchine di Turing ridotte 373

Partiamo dal Teorema 8.13, secondo cui ogni linguaggio ricorsivamente


d im o s t r a z io n e

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.

Per completare la costruzione dobbiamo predisporre i contatori in modo chc simulino le


condizioni iniziali degli stack con il solo simbolo iniziale della loro macchina. Questo
passo si compie aumentando il valore dei due contatori di una quantità pari al numero, fra
1 c r — 1, che corrisponde al simbolo iniziale.

Teorema 8.15 Ogni linguaggio ricorsivamente cnumerabilc è accettato da una macchina


con due contatori.
374 Capitolo 8

Scelta delle costanti nella simulazione da 3 a 2 contatori


Nella dimostrazione del Teorema 8.15 è fondamentale che 2, 3 e 5 siano numeri
primi distinti. Sc scegliessimo per esempio rn = 2*3J'4 fe, il valore m = 12
potrebbe rappresentare sia i = 0, j = I e k = 1, sia i = 2, j = 1 e k = 0. Non
potremmo quindi stabilire se i o k vale 0 e non potrem mo simulare fedelmente la
macchina a tre contatori.

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.

1. Sommare l a i, j o k . Per sommare I a i moltiplichiamo rn per 2. N ella di


mostrazione del Teorema 8.14 abbiamo visto come moltiplicare un contatore per
una costante r usando un secondo contatore. In modo analogo incrementiamo j
moltiplicando r n per 3, e A: moltiplicando rn per 5.

2. Stabilire quali tra i , j e k valgono 0. Per stabilire se i = 0 dobbiamo determinare


se rn è divisibile per 2. Copiamo rn nel secondo contatore e usiamo lo stato della
macchina a contatori per ricordare se abbiamo diminuito m per un numero di volte
pari o dispari. Quando ni diventa 0, se l'abbiam o diminuito un numero dispari di
volte, allora i = 0. Ripristiniamo ora rn copiando il secondo contatore nel primo.
Con la stessa tecnica verifichiamo se j = Ü stabilendo se rn c divisibile per 3, e
verifichiamo se k = 0 stabilendo se rn è divisibile per 5.

3. Sottrarre 1 da i-, j o k . A questo scopo dividiamo rn per 2, 3 o 5. La dimostrazione


del Teorema 8.14 spiega come dividere per una costante servendosi di un contatore
ausiliario. La macchina a tre contatori non può far scendere sotto lo 0 i suoi con
tatori; è quindi un errore, e la macchina simulatrice si arresta senza accettare, se rn
non è divisibile per la costante in esame.

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

* a) (OriI m I n > m > 1}.

b) (On I m I I < m < n } .

* ! 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)-

8.6 Le macchine di Turing e i computer


Confrontiam o ora la macchina di Turing e un com puter ordinario. Possono sembrare
modelli alquanto diversi, ma in effetti accettano esattam ente gli stessi linguaggi, ossia i
linguaggi ricorsivamente enum erabili. Poiché il concetto di “com puter ordinario” non è
definito in termini matematici precisi, la trattazione di questo paragrafo è necessariam en
te informale. Per quanto riguarda le capacità dei com puter ci affidiamo all’intuizione,
specialm ente quando i numeri coinvolti eccedono i limiti insiti nell’architettura di queste
m acchine (per esempio spazi di indirizzamento a 32 bit). Le affermazioni del presente
capitolo possono essere suddivise in due parti.

1. Un com puter può sim ulare una macchina di Turing.

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.

8.6.1 Simulazione di una macchina di Turing da parte


di un computer
Com inciam o a esaminare com e un com puter può simulare una macchina di Turing. Data
una particolare TM M , dobbiam o scrivere un program ma che agisce come M . Un aspetto
376 Capitolo 8

N a s tro a sin istra N a s tro a d estra


d e lla te stin a d e lla te stin a

Figura 8.21 Simulazione di una macchina di Turing tramite un comune 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

e altri dispositivi di memorizzazione, sono tutti finiti. E possibile simulare un nastro


infinito per mezzo di una quantità fissa di memoria?
Se non c 'è nessuna opportunità di sostituire i dispositivi di memorizzazione, allora è
effettivamente impossibile. In questo caso un com puter sarebbe un automa a stati finiti
e gli unici linguaggi che potrebbe accettare sarebbero linguaggi regolari. I computer
comuni hanno però dispositivi di m emoria rimovibili, come per esempio le unità “Zip".
In effetti il tipico disco fisso è rimovibile e può essere sostituito da un disco vuoto, ma per
il resto identico.
Dato che non esistono limiti evidenti al numero di dischi che possono essere usati,
assumiamo che siano disponibili tanti dischi quanti nc richiede il computer. Possiamo
perciò predisporre che i dischi siano sistemati in due pile, come suggerito nella Figu-
Le macchine di Turing e i computer 377

Il problema di alfabeti molto ampi


Il ragionamento del Paragrafo 8.6.1 diventa discutibile se il numero di simboli di
nastro è così grande che il codice di un simbolo non può stare in un disco. Ce ne
dovrebbero essere davvero molti, visto che per esempio un disco da 30 GB può
rappresentare 2240000000000 simboli. Anche il numero di stati potrebbe essere
così alto da non permetterci di rappresentarne uno neppure usando tutto il disco.
Per risolvere il problema si può anzitutto limitare il numero di simboli di
nastro. Possiamo codificare in binario qualsiasi alfabeto. Perciò ogni TM M può
essere simulata da un’altra TM M 1 con tre simboli di nastro: 0. 1 e t í . Però
M 1 ha bisogno di molti stati. Per simulare una mossa di M . deve percorrere il
nastro e ricordare nel controllo tutti i bit chc indicano il simbolo guardato da M .
Gli insiemi di stati diventano enormi e può darsi che il PC che simula M f debba
smontare e rimontare svariati dischi per decidere qual è lo stato di M ' e quale la
m ossa successiva. Nessuno vorrebbe usare un com puter così, e dunque i sistemi
operativi non hanno supporto per programmi di questo tipo. Si può comunque
programmare il com puter “grezzo" per dotarlo di questa capacità.
Per fortuna il problema di simulare una TM con un gran numero di stati o
simboli di nastro ammette un’altra soluzione. Vedremo nel Paragrafo 9.2.3 come
definire una TM a “programma memorizzato”. Questa TM. detta “universale” , ri
ceve sili nastro la funzione di transizione di un'altra TM. codificata in binario, e la
simula. La TM universale ha un ragionevole numero di stati e di simboli di nastro.
Simulando la TM universale, un computer ordinario può accettare qualunque lin
guaggio ricorsivamente enumerabile senza dover ricorrere alla simulazione di un
numero di stati che superi i limiti di memoria del disco.

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.

8.6.2 Simulazione di un computer da parte di una macchina


di Turing
Consideriamo ora il problema opposto: esistono funzioni che un computer comune può
svolgere e una macchina di Turing no? U n’importante domanda subordinata è: un com
puter può svolgere determinate funzioni più velocemente di una macchina di Turing? Nel
presente paragrafo dimostriamo che una TM può simulare un computer e nel Paragra
fo 8.6.3 proviamo che la simulazione può essere svolta in modo efficiente, nel senso chc
i tempi di esecuzione del computer e della TM su un dato problema sono separati “solo”
da un polinomio. Ricordiamo nuovamente al lettore che ci sono ragioni importanti per
considerare simili i tempi di esecuzione in rapporto polinomiale, mentre differenze espo
nenziali nei tempi di esecuzione sono “eccessive” . Riprenderemo la teoria dei tempi di
esecuzione polinomiali confrontati con quelli esponenziali nel Capitolo 10.
Per cominciare lo studio della simulazione di un computer da parte di una TM, diamo
un modello realistico, per quanto informale, di come opera un tipico computer.

a) Innanzitutto supporremo che la memoria di un computer consista di una sequenza


indefinitamente lunga di par ol e, ciascuna con un i ndi ri zzo. In un computer reale
le parole possono essere lunghe 32 oppure 64 bit, ma qui non porremo limiti di
lunghezza. Assumiamo che gli indirizzi siano gli interi 0, 1, 2, e così via. In un
computer reale i singoli byte sono numerati da interi consecutivi. Pertanto le parole
hanno indirizzi multipli di 4 o 8 , ma è una differenza irrilevante. In un computer
reale ci sarebbe inoltre un limite al numero di parole contenute nella “memoria” ;
dato chc vogliamo trattare il contenuto di un numero arbitrario di dischi o altri
dispositivi di memoria, assumeremo che da questo punto di vista non esista limite.

b) Supponiamo che il programma del computer sia memorizzalo in alcune parole di


memoria, ognuna delle quali rappresenta una semplice istruzione (come nel lin
guaggio macchina o assembly di un tipico computer). Ne sono esempi le istruzioni
che spostano i dati da una parola a un’altra o chc sommano una parola a un’altra.
Assumiamo che sia permesso !’“indirizzamento indiretto”, per cui un’istruzione
può fare riferimento a u n ’altra parola e usarne il contenuto comc indirizzo della
parola cui viene applicata l’operazione. Tale capacità, che ritroviamo in tutti i com
puter moderni, è necessaria per accedere a un array, per seguire i link di una lista o,
in generale, per compiere operazioni su puntatori.
Le macchine di Turing e i computer 379

c) Supponiamo che ciascuna istruzione tocchi un numero limitato (finito) di parole c


che ciascuna istruzione cambi il valore di non più di una parola.

d) Un computer tipico dispone di regist ri , che sono parole di memoria con un ac


cesso particolarmente rapido. Spesso ci sono limitazioni tali che operazioni come
l’addizione si svolgono solo nei registri. Qui non faremo queste restrizioni e per
metteremo che qualunque operazione venga svolta su qualunque paiola. Non si
terrà conto della velocità relativa delle operazioni su parole diverse: quando ci li
mitiamo a confrontare le capacità di riconoscimento di linguaggi dei com puter e
delle macchine di Turing, non è necessario. Anche se siamo interessati a tempi di
esecuzione a meno di un polinomio, le velocità relative di accessi a parole diverse
sono irrilevanti, dato chc le differenze costituiscono “solo” un fattore costante.

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.

1. Percorriamo il primo nastro alla ricerca di un indirizzo che corrisponda al numero


di istruzione sul nastro 2. Partiamo dal $ sul primo nastro e ci muoviamo verso
destra, confrontando ogni indirizzo con i contenuti del nastro 2. Il confronto di
indirizzi sui due nastri è facile, dato che ci basta muovere le testine verso destra, in
tandem, controllando che i simboli guardati siano sempre gli stessi.

2. Quando troviamo l’indirizzo dell’istruzione esaminiamo il suo valore. Assum ia


mo che quando una parola è un'istruzione i suoi primi bit rappresentano l'azione
380 Capitolo S

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.

3. Se l’istruzione richiede il valore di un indirizzo, esso ne farà parte. Copiam o tale


indirizzo sul terzo nastro e segnaliamo la posizione dell’istruzione usando una se
conda traccia del primo nastro (che non è rappresentata nella Figura 8.22), in modo
tale da poter tornare all’istruzione qualora sia necessario. Cerchiamo ora l’indiriz
zo di memoria sul primo nastro e copiamo il suo valore sul nastro 3, il nastro che
contiene l’indirizzo di memoria.

4. Eseguiamo l’istruzione o la parte di istruzione che si riferisce a questo valore. Non


possiamo trattare tutte le possibili istruzioni macchina, m a possiamo m ostrare un
campione dei tipi di azioni che potremmo svolgere con il nuovo valore.
Le macchine di Turing c i com puter 381

(a) Copiare il valore in un altro indirizzo. Otieniamo il secondo indirizzo dal


l'istruzione; lo troviamo collocandolo sul nastro 3 e cercandolo sul nastro 1,
come visto in precedenza. Dopo averlo trovato, copiamo il valore nello spazio
riservato al valore d ell’indirizzo. Sc c ’è bisogno di uno spazio maggiore per il
nuovo valore oppure il nuovo valore usa meno spazio del vecchio, cambiamo
lo spazio disponibile in questo modo.
i. Copiamo su un nastro ausiliario l’intero nastro non bianco a destra del
punto in cui va a porsi il nuovo valore.
ii. Scriviamo il nuovo valore usando uno spazio adeguato.
iii. Copiamo nuovamente il nastro ausiliario sul nastro 1, immediatamente a
destra del nuovo valore.
Può succedere, in un caso particolare, che l’indirizzo non compaia ancora sul
primo nastro perché non è stato usato dal com puter in precedenza. In tal caso
troviamo il punto nel primo nastro in cui dovrebbe stare, operiamo come sopra
per creare uno spazio adeguato, e vi memorizziamo sia l'indirizzo sia il nuovo
valore.
(b) Sommiamo il valore appena trovato al valore di un altro indirizzo. Torniamo
all’istruzione per localizzare l’altro indirizzo, che troveremo sul nastro I. Fac
ciamo una somma binaria del valore di tale indirizzo e del valore memorizzato
sul nastro 3. Percorrendo i due valori a partire dalle loro estremità a destra,
una TM può svolgere facilmente una somma con riporto. Sc per il risultato
ci volesse maggiore spazio, usiamo la tecnica descritta per creare spazio sul
nastro 1.
(c) L’istruzione è un “salto", cioè la direttiva di prendere la prossima istruzione
dall’indirizzo che è il valore memorizzato sul nastro 3. Copiamo semplice-
mente il nastro 3 sul nastro 2 e ricominciamo il ciclo-istruzione.

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.

8.6.3 Confronto dei tempi di esecuzione dei computer


e delle macchine di Turing
Dobbiamo ora affrontare il punto relativo al tempo di esecuzione di una macchina di
Turing che simula un computer. Come suggerito precedentemente, possiamo fare tre
importanti osservazioni.

• Il tempo di esecuzione ò un aspetto importante perche ci serviremo della TM non


solo per stabilire che cosa sia calcolabile in assoluto, ma anche quanto sia calco
labile con tanta efficienza da poter applicare una soluzione basata sull’uso di un
computer.

• 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.

• Abbiamo dunque bisogno di assicurarci che se un problema può essere risolto in


tempo polinomiale con un tipico computer, allora può essere risolto in tempo poli
nomiale da una m acchina di Turing, e viceversa. Data questa “equivalenza polino
miale", le nostre conclusioni su ciò che una macchina di Turing può o non può fare
con adeguala efficienza si applicano anche a un computer.

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

Teorema 8.17 Sc un computer:

1. ha solo istruzioni che aumentano la lunghezza massima delle parole di non più di
un’unità

2. ha solo istruzioni che una TM multinastro può eseguire su parole di lunghezza k in


0 ( k 2) passi o meno

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.

Partiamo dall’osservazione che il primo nastro (la memoria) della TM


d im o s t r a z io n e

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.

♦ Hn g u a g g i r i cor s i v ament e enume r abi l i : i linguaggi accettati dalle TM sono det


ti linguaggi ricorsivamente enumerabili (RE). I linguaggi RE sono dunque quelli
che possono essere riconosciuti o accettati da un qualunque tipo di dispositivo di
calcolo.

♦ Des c r i z i oni i st ant anee di u n a T M: possiamo descrivere la configurazione corrente


di una TM mediante una stringa di lunghezza finita che include tutte le celle del
nastro, dal simbolo diverso dal blank più a sinistra a quello più a destra. Lo stato e
la posizione della testina si indicano ponendo lo stato all’interno della sequenza dei
simboli di nastro, alla sinistra della cella guardata.

♦ Me m o r i a nel cont rol l o f i ni t o: per definire una TM per un particolare linguaggio,


conviene a volte pensare che lo stato abbia due o più componenti. Un componente
è quello del controllo, e ha lo stesso funzionamento di un normale stato. Gli altri
componenti contengono dati chc la TM deve ricordare.

♦ 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 dì Tur i ng mul t i nas t r o: un modello di TM esteso ha un numero fisso


di nastri, più grande di uno. Una mossa di questa TM è basata sullo stato e sul
vettore di simboli guardati dalle testine su ognuno dei nastri. In una m ossa la TM
multinastro cambia stato, soprascrive i simboli sulle celle guardate da ognuna delle
testine e sposta alcune o tutte le testine di una cella in una delle due direzioni.
Per quanto sia in grado di riconoscere determinati linguaggi più rapidamente della
convenzionale TM a nastro unico, la TM multinastro non riesce a riconoscere un
linguaggio che non sia RE.

♦ Mac c h i n e di Tur i ng non det er mi ni s t i che: la NTM ha un numero finito di scelte


della mossa seguente (stato, nuovo simbolo e movimento della testina) per ciascuno
stato e ciascun simbolo guardato. Accetta un input se una qualunque tra le diverse
sequenze di scelte porta a una ID con stato accettante. Per quanto apparentemente
più potente della TM deterministica, la NTM non è in grado di riconoscere un
linguaggio che non sia RE.

♦ 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 una mac c h i na di Tur i ng da par t e di un c omput er real e: è possibi


le simulare una TM per mezzo di un computer reale se accettiamo che esista una
riserva potenzialmente infinita di dispositivi di memoria rimovibili, come i dischi,
per simulare la porzione non bianca del nastro della TM. Poiché le risorse materiali
per produrre dischi non sono infinite, si tratta di un’argomentazione discutibile. Ma
dato che la quantità di memoria esistente nell’universo è sconosciuta e indubbia
mente vasta, ipotizzare una risorsa infinita, come il nastro delle TM, nella pratica è
realistico e generalmente accettato.

♦ 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

memorizza tutte le locazioni e il loro contenuto: registri, memoria centrale e altri


dispositivi di memoria. Di conseguenza possiamo essere certi che un compito non
eseguibile da una TM non può essere eseguito neppure da un computer reale.

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.

1. A. Church. “An undecidable problem in elementar}' number theory,” Ame r i c an J.


Mat h . 58 (1936), pp. 345-363.

2. P. C. Fischer. “Turing machines with restricted memory access,” Inf or mat i on an d


Cont r ol 9:4 (1966), pp. 364-379.

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.

4. J. Hartmanis. R. E. Steams, “On the computational complexity of algorithms,”


Tr ans act i ons o f t he A MS 117 (1965), pp. 285-306.

5. S. C. Kleene, “General recursive functions of natural numbers,” Mat hemat i s c he


Ann al e n 112 (1936), pp. 727-742.

6 . M. L. Minsky, “Recursive unsolvability of Post's problem o f ‘tag’ and other topics


in the theory of Turing machines,” Annal s o f Mat hemat i c s 74:3 (1961), pp. 4 3 7 -
455.

7. E. Post, “Finite combinatory processes-formulation,” J. Sy mbol i c Logi c I (1936),


p p . 103-105.
388 Capitolo 8

8 . A. M. Turing, “On computable numbers with an application to the Rntscheidungs-


problem, P roc. Lo n do n Mat h. Soci et y 2:42 (1936), pp. 230-265. Vedi anche ibid.
2:43, pp. 544-546.
Capitolo 9

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:

• una data macchina di Turing accetta un dato input?

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.

9.1 Un linguaggio non ricorsivamente enumerabile


Ricordiam o che un linguaggio L è r i cor s i v ament e e nume r abi l e (RE) se L = L ( M ) per
una TM M . Nel Paragrafo 9.2 presenterem o i linguaggi “ricorsivi” , o “decidibili” , chc
non solo sono ricorsivamente enum erabili, ma sono accettati da una TM che si arresta
sempre, a prescindere dal fatto che accetti o no.
11 nostro obiettivo finale è dim ostrare !’indecidibilità del linguaggio form ato dalle
coppie ( M , w ) tali che:

1. M è una macchina di Turing (adeguatamente codificata in binario) con alfabeto di


input { 0 , 1 }

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.

9.1.1 Enumerazione delle stringhe binarie


Nel seguito dovremo assegnare numeri interi a tutte le stringhe binarie in modo che ciascu
na stringa corrisponda a un unico intero e ciascun intero corrisponda a un’unica stringa.
Se w è una stringa binaria, trattiamo 1?;; come un intero binario i. Chiameremo allora
w la ¿-esima stringa. In altre parole e è la prima stringa, 0 la seconda, 1 la terza, 0 0 la
quarta, 01 la quinta, e così via. Con questo criterio le stringhe risultano ordinate per lun
ghezza, con le stringhe di lunghezza uguale ordinate lessicograficamente. D ’ora in avanti
ci riferiremo alla ¿-esima stringa come u\ .

9.1.2 Codici per le macchine di Turing


11 prossimo obiettivo è ideare un codice binario per le macchine di Turing così che ogni
TM con alfabeto di input { 0 .1 } possa essere considerata come una stringa binaria. Poiché
ora sappiamo enumerare le stringhe binarie, potremo identificare le macchine di Turing
con gli interi e parlare della “ ¿-esima macchina di Turing Λ /,” . Per rappresentare una TM
M = ( Q, { 0 , 1 } ,Γ , à , q y , B , F ) come una stringa binaria, è necessario assegnare interi
agli stati, ai simboli di nastro e alle direzioni L cd 11.

• 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.

• Supporremo che i simboli di nastro siano X \ . X 2. . . . , X s per un certo s. X i sarà


sempre il simbolo 0, X 2 sarà 1 e X ¿ sarà B , il blank. Gli altri simboli di nastro
possono essere assegnati arbitrariamente agli altri interi.

• Ci riferiremo alla direzione L comc D i e alla direzione R comc D 2.

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 )

I codici per le regole sono, rispettivamente:


0100100010100
0001010100100
00010010010100
0001000100010010
Per esempio la prima regola può essere scritta come S(q\ , X 2) = (qz, X 1, D 2) in quanto
I = X 2, O = X i t R = D 2. Di conseguenza il suo codice è O1IO2IO3 IOi IO2, come
indicato sopra. Un codice per M è:

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

9.1.3 II linguaggio di diagonalizzazione


Nel Paragrafo 9.1.2 abbiamo codificato le macchine di Turing. Disponiamo quindi di
una nozione concreta di M u la “ /-esima macchina di Turing” : la TM M il cui codice è
Wu !’¿-esima stringa binaria. Molti interi non corrispondono a nessuna TM. Per esempio
11001 non comincia per 0 c 0010111010010100 ha tre 1 consecutivi. Se non è un
codice di TM valido, considereremo Mi come la TM con un unico stato e nessuna tran
sizione. In altre parole, per questi valori di ¿, Mt è la macchina di Turing che si arresta
immediatamente su qualunque input. Di conseguenza L ( M i ) è 0 sc Wi non è un codice
valido.
A questo punto possiamo dare una definizione fondamentale.

• Il linguaggio L,i , detto l i nguaggi o di di agonal i z z az i one , c l’insieme delle stringhe


Wi tali che w r non è in L ( M i ).

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.

9.1.4 Dimostrazione che L,i non è ricorsivamente enumerabile


Sfruttando il ragionamento riguardante i vettori caratteristici e la diagonale, dimostrere
mo ora in termini formali un risultato fondamentale sulle macchine di Turing: nessuna
macchina di Turing accetta Ld-
1II lettore può osservare chc la tabella reale è molto diversa da quella della figura. Poiché i numeri interi
bassi non possono rappresentare codici di TM validi, e di conseguenza rappresentano la TM banale che non
compie alcuna mossa. Ie prime righe della tabella sono in effetti formate interamente da 0.
394 Capitolo 9

D iagonale

F ig u ra 9.1 La tabella che rappresenta Γaccettazione di stringhe da parte delle macchine


di Turing.

Teorema 9.2 L d non è un linguaggio ricorsivamente enumerabile. In altre parole non


esiste alcuna macchina di Turing che accetta L d .

DIMOSTRAZIONE Supponiamo L d = L ( M ) per una TM M . Poiché L d è un linguaggio


sull’alfabeto {0, I }, M rientra nell’elenco di macchine di Turing chc abbiamo costruito,
dato che questo elenco include tutte le TM con alfabeto di input { 0 .1 }. Di conseguenza
esiste almeno un codice per M , poniamo i; ossia M = M i .
Chiediamoci ora se Wi è in L d .

• Se Wi è in L d, allora M i accetta W 1. Pertanto, per la definizione di La , Wi non è in


L d. poiché L d contiene solo le stringhe wj tali chc M 1 non accetta Wj .

• Analogamente, se w¿ non è in L d, allora M* non accetta Wi . Di conseguenza, per


la definizione di L d, w¿ è in L d .

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.

* a) L’insieme di tutte le io, tali che non è accettata da M ¿i.

b) L'insiem e di tutte le w¿ tali chc w^ i non è accettata da M 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.

9.2 Un problema indecidibile ma ricorsivamente


enumerabile
Abbiamo studiato un problema, il linguaggio di diagonalizzazione chc non viene ac
cettato da nessuna macchina di Turing. Il prossimo obiettivo consiste nel precisare la
struttura dei linguaggi ricorsivamente enumerabili (RE), ossia quelli accettati dalle TM.
suddividendoli in due classi. La prima, che corrisponde a ciò che consideriamo norm al
mente un algoritmo, dispone di TM che non solo riconoscono un linguaggio, ma segna
lano anche quando una stringa di input non appartiene al linguaggio. Una m acchina di
Turing di questo tipo finisce sempre per arrestarsi, che raggiunga o no uno stato accettante.
La seconda classe di linguaggi è costituita dai linguaggi RE che non sono accettati da
alcuna macchina di Turing con la garanzia di arrestarsi. Questi linguaggi sono accettati
in un modo “scomodo”: se l’input è nel linguaggio, prima o poi lo veniamo a sapere; in
caso contrario la macchina di Turing può girare per sempre, e non possiamo decidere che
l’input non verrà accettato. Comc vedremo, un esem pio di questo tipo di linguaggio è
l’insieme di coppie codificate ( M , w ) tali chc la TM M accetta l'input w.
396 Capitolo 9

9.2.1 Linguaggi ricorsivi


Diremo ri corsi vo un linguaggio L se L = L ( M ) per una m acchina di Turing M tale che:

1. se w è in L , allora M accetta (e dunque si arresta)

2. se w non è in L , allora M si arresta pur non entrando in uno stato accettante.

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

2. linguaggi ricorsivamente enumerabili ma non ricorsivi

3. linguaggi non ri corsivamente enumerabili (non RE).

Abbiamo collocato al suo posto il linguaggio non RE Ld e abbiamo inoltre indicato il


linguaggio L u , o “ linguaggio universale”, di cui dimostrerem o fra breve la non ricorsività,
sebbene si tratti di un RE.

9.2.2 Complementi di linguaggi ricorsivi e RE


Un modo efficace per dimostrare che un linguaggio appartiene al secondo cerchio del
la Figura 9.2 (vale a dire che è RE ma non ricorsivo) è lo studio del suo complemento.
M ostreremo che i linguaggi ricorsivi sono chiusi rispetto all’operazione di com plem enta
zione. Perciò se un linguaggio L è RE, ma il suo com plem ento L non lo è, L non può
essere ricorsivo. Infatti se L fosse ricorsivo, anche L sarebbe ricorsivo e dunque RE.
Dimostriamo ora quest'im portante proprietà di chiusura.

T eorem a 9.3 Se L è un linguaggio ricorsivo, lo è anche L.


Un problema indecidibile ma ricorsivamente enumerabile 397

F ig u ra 9.2 Relazione tra linguaggi ricorsivi, RF c non RE.

Sia L = L ( M ) per una TIVI M che si arresta sempre. Costruiamo


D IM O STR A ZIO N E
una TM M tale che L = L ( M ) secondo lo schema illustrato nella Figura 9.3. Come si
vede, M si comporta esattamente come M . Per formare M modifichiamo M nel modo
seguente.

1. Gli stati accettanti di M diventano stati non accettanti di M senza transizioni; in


questi stati M si arresta senza accettare.

2. M ha un nuovo stato accettante r ; non esiste alcuna transizione uscente da r .

3. Per ogni combinazione di uno stato non accettante e di un simbolo di nastro di


M tale che M non abbia alcuna transizione (cioè M si arresta senza accettare),
aggiungiamo una transizione verso lo stato accettante r .

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.

U n’altra importante proprietà del complemento di un linguaggio restringe ulterior


mente le possibili collocazioni di un linguaggio e del suo complemento nel diagramma
della Figura 9.2. Questa proprietà è enunciata nel prossimo teorema.

Teorem a 9.4 Se un linguaggio L e il suo complemento sono RE. allora L è ricorsivo.


Osserviamo che in questo caso, per il Teorema 9.3, anche L è ricorsivo.
398 Capitolo 9

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.

D IM O STR A ZIO N ELa dimostrazione è illustrata nella Figura 9.4. Siano L — L (M i) e


L = L ( M i ) . M i ed M 2 sono simulate in parallelo da una TM M . Possiamo trasformare
M in una TM a due nastri e poi convertirla in una TM a nastro singolo per facilitare la
simulazione. Un nastro di M simula quello di M i, l'altro simula il nastro di M 2. Gli stati
di M i ed M i sono componenti dello stato di M .
Se l'input w di M è in L , M\ accetta in un tempo finito, quindi M accetta c si arresta.
Sc w non è in L. allora è in L , dunque M 2 prima o poi accetta. A quel punto M si arresta
senza accettare. Di conseguenza M si arresta su tutti gli input, ed L ( M ) è esattamente L.
Poiché M si arresta sempre e L ( M ) = L , concludiamo che L c ricorsivo.

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.

2. Né L né L sono RE, cioè sono entrambi nel cerchio esterno.


Un problema indecidibile ma ricorsivamente enumerabile 399

A ccetta
w
R ifiuta

F ig u ra 9.3 Costruzione di una TM chc accetta il complemento di un linguaggio ricorsivo.

F ig u ra 9.4 Simulazione di due TM che accettano un linguaggio e il suo complemento.

3. L è RE ma non ricorsivo, cd L non è RE; uno si trova nel cerchio intermedio, l'altro
nel cerchio esterno.

4. L è RE ma non ricorsivo, ed L non è RE; il caso è analogo al punto (3), ma L ed L


sono invertiti.

A dimostrazione di quanto detto, il Teorema 9.3 esclude la possibilità che un linguaggio


( L o L ) sia ricorsivo e l’altro si trovi in una delle altre due classi. Il Teorema 9.4 esclude
la possibilità che entrambi siano RE ma non ricorsivi.

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.

9.2.3 II linguaggio universale


Nel Paragrafo 8.6.2 abbiamo già discusso in termini informali come utilizzare una m ac
china di Turing per simulare un computer caricato con un programma arbitrario. Una
singola TM può quindi essere usata comc un “computer a programma memorizzato” , che
legge un programma e i dati relativi da uno o più nastri su cui risiede l’input. In questo
paragrafo riproponiamo l’idea al più alto grado di formalità consentito dal considerare
una macchina di Turing come rappresentazione di un programma memorizzato.
Definiamo L u, il l i nguaggi o uni v er s al e , comc l’insieme delle stringhe binarie che
codificano, nella notazione del Paragrafo 9.1.2, una coppia ( M , w ), dove M c una TM
con alfabeto di input binario c w è una stringa in (0 + 1)* tale che w sia in L(M). In
altre parole L u è l’insieme delle stringhe che rappresentano una TM e un input da essa
accettato. Mostreremo che esiste una TM U, detta macchina di Turing universale, tale
che L u = L(U). Poiché l’input di U è una stringa binaria, U è in effetti una Mj chc
possiamo trovare nell'elenco delle macchine di Turing con input binario, sviluppato nel
Paragrafo 9.1.2.
Per semplicità descriviamo U come macchina di Turing multinastro, nello spirito della
Figura 8.22. Nel caso di U le transizioni di M sono memorizzate inizialmente sul primo
nastro insieme con la stringa w . Un secondo nastro sarà usato per contenere il nastro
simulato di M , ricorrendo allo stesso formato utilizzato per il codice di M . In altre parole
il simbolo di nastro X.¡ di M sarà rappresentato da O1 e i simboli di nastro saranno separati
da singoli I . Il terzo nastro di U contiene lo stato di M , con lo stato qt rappresentato da i
0. U è raffigurata nella Figura 9.5.
Descriviamo come opera U .

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

F ig u ra 9.5 Struttura di una m acchina di Turing universale.

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

Una TM universale più efficiente


Una simulazione efficiente di M da parte di U, che non imponga di “slittare”
simboli sul nastro, richiede di determinare in primo luogo il numero di simboli di
nastro usati da M . Sc il num ero di simboli è com preso tra 2k ~ 1 4- I e 2 k , U può
usare un codice binario a Ar-bit per rappresentarli univocamente. Una cella del na
stro di M può allora essere simulata da k celle di U. Per facilitare ulteriormente le
cose, U può riscrivere le transizioni di M applicando il codice binario a lunghez
za fissa anziché il codice unario a lunghezza variabile che abbiamo introdotto.

5. Se M non ha transizioni per lo stato simulato e il simbolo di nastro, non ci sarà


alcuna transizione in (4). M si arresta nella configurazione simulata e U deve fare
altrettanto.

6. Se M entra nel suo stato accettante, allora U accetta.

In questo modo U simula M su w. U accetta la coppia codificata ( M , ve) se e solo se M


accetta w.

9.2.4 Indecidibilità del linguaggio universale


Abbiamo individuato un problem a che è RE ma non ricorsivo: il linguaggio L u . Per
molti aspetti sapere chc L u ò indccidibilc (non è un linguaggio ricorsivo) vale più della
precedente scoperta che L,i non è RE. Il motivo è chc possiamo ridurre L u a un altro
problema P per dimostrare che non esiste alcun algoritmo in grado di risolvere P , a
prescindere dal fatto che P sia o no RE. La riduzione di L a a P b però possibile solo se
P non è RE. quindi non possiamo usare Ld per mostrare l’indecidibilità di quei problemi
che sono RE ma non ricorsivi. D ’altro canto, se vogliamo dimostrare chc un problema
non è RE, possiamo usare solo Ld', L u non serve, dato che è RE.

T eorem a 9.6 L u è RE ma non ricorsivo.


DIMOSTRAZIONE Nel Paragrafo 9.2.3 abbiamo dimostrato che L u è RE. Supponiamo chc
L u sia ricorsivo. Per il Teorema 9.3 anche L u , il complemento di L u , è ricorsivo. Se
abbiamo una TM M che accetta L u , possiamo costruire una TM che accetta Ld (grazie
al metodo illustrato sopra). Poiché sappiamo già che Ld non è RE, ne ricaviamo una
contraddizione con l’ipotesi che L u sia ricorsivo.
Supponiamo L ( M ) = L u . Come suggerito dalla Figura 9.6 possiamo modificare la
TM M in una TM M 1 chc accetta L,¡.
Un problema indecidibile ma ricorsivamente enumerabile 403

F igura 9.6 Riduzione di L,¡. a L u .

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,¡.

Di conseguenza Al ' accetta w se e solo se w è in L,;. Poiché sappiamo che per il


Teorema 9.2 A l ' non può esistere, concludiamo che L u non è ricorsivo.

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

ricorsivo. (Rileggete il riquadro “II problema dell'arresto” nel Paragrafo 9.2.4.)

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:

1. A(0, y ) = 1 per ogni y > 0

2. ,4(1,0) = 2

3. Λ( χ , 0) = X + 2 per x > 2

4. A(a; 4 -1 ,// + 1) = A ( A ( x , y + 1), y ) per ogni x > 0 e y > 0.

* a) Valutate .4(2, l ).

! b) Quale funzione di x è 4 (;r, 2)?

! c) Valutate A ( 4 , 3).

E sercizio 9.2.3 Descrivete in termini informali macchine di Turing multinastro che e n u ­


me r ano i seguenti insiemi di interi, nel senso che. a partire da nastri vuoti, stampano su
uno di essi la stringa IOn IOt2I · · · per rappresentare l’insieme { i i . i- ¿, ·}·

* a) L’insieme di tutti quadrati perfetti { 1 .4 .9 ,...} .

b) L’insieme di tutti i numeri primi { 2 ,3 , 5 , 7 , 1 1 , . . .}.

!! 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.4 Sia L i , L 2, . . . , L k una collezione di linguaggi sull’alfabeto Σ tali che:


1. per ogni i φ j , Li Π Lj = 0, ossia nessuna stringa appartiene a due linguaggi

2. L i U L 2 U ' · · U L k = Σ*, cioè ogni stringa si trova in uno dei linguaggi

3. ogni L i , p e r i = 1 , 2 , . . . ,k , è ricorsivamente enumerabile.


Dimostrate chc ognuno dei linguaggi dev’essere ricorsivo.

*! 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.

d) Chiusura di Kleene (star).

* e) Omomorfismo.

0 Omomorfismo inverso.

9.3 Problemi indecidibili relativi alle macchine


di Turing
Ci serviamo ora dei linguaggi L u ed L¿, di cui conosciamo lo st at us per quanto riguarda
la decidibilità e Tenumerabilita ricorsiva, per presentare altri linguaggi indccidibili o non
RE. In tutte le dimostrazioni applicheremo la tecnica della riduzione. 1 primi problemi in
decidibili di cui parliamo riguardano le macchine di Turing. La trattazione culmina nella
dimostrazione del “teorema di Rice”, secondo il quale qualsiasi proprietà non banale delle
macchine di Turing che dipenda solo dal linguaggio accettato dalla TM dev’essere inde
cidibile. Nel Paragrafo 9.4 studieremo alcuni problemi indecidibili che non riguardano le
macchine di Turing e i loro linguaggi.
406 Capitolo 9

9.3.1 Riduzioni

Abbiamo introdotto la nozione di riduzione nel Paragrafo 8.1.3. In generale, se abbiamo


un algoritmo per convertire le istanze di un problema P i in istanze di un problem a l \
che hanno la stessa risposta, allora diciam o che Pi si r i duce a P¿. Possiamo avvalerci di
questa dimostrazione per provare che P¿ è “difficile” almeno quanto Ρχ . Di conseguenza,
se P i non è ricorsivo, allora P¿ non può essere ricorsivo. Se Ρχ è non RE, allora P¿
non può essere RE. Come abbiamo detto nel Paragrafo 8.1.3, bisogna sempre ridurre un
problema diffìcile e noto a uno di cui si vuole dimostrare che è almeno altrettanto difficile,
mai il contrario.

Figura 9.7 Le riduzioni trasformano istanze positive in positive e istanze negative in


negative.

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

la riduzione in entrambi i modi. L’importanza delle riduzioni è sottolineata dal seguente


teorema, di cui vedremo numerose applicazioni.

Teorema 9.7 Se esiste una riduzione da P i a Po, allora:

a) se Pi è indecidibile, lo è anche P¿

b) se P\ è non RE, lo è anche P 2.

DIMOSTRAZIONE Supponiamo dapprima chc P 1 sia indecidibile. Se è possibile decidere


P2, allora possiamo combinare la riduzione da Pi a P 2 con l’algoritmo che decide P 2 per
costruire un algoritmo chc decide P i. L’idea è illustrata graficamente nella Figura 8.7.
Più in dettaglio, supponiamo di avere un’istanza tu di P i. Applichiamo a w l’algoritmo
che la converte in un’istanza x di P2. Applichiamo poi a x l'algoritm o che decide /¾. Se
l’algoritmo dice “sì”, allora x è in P 2. Poiché abbiamo ridotto P i a P2, sappiamo che la
risposta a tu per P i è “sì’', ossia w è in P 1. Analogamente, se x non è in P2, allora tu
non è in P 1, e qualunque risposta sia data alla domanda iiX è in P 2?” c anche la risposta
corretta a “tu è in P i T'.
Abbiamo così contraddetto l’ipotesi che Pi sia indecidibilc. Concludiamo che se P i
è indecidibile, allora anche P 2 è indecidibile.
Consideriamo ora la parte (b). Supponiamo che P| sia non RE e P 2 sia RE. Disponia
mo di un algoritmo che riduce P i a P 2, ma abbiamo solo una procedura per riconoscere
P2; in altre parole esiste una TM che dice “sì” se il suo input è in P 2, ma può non arrestar
si se il suo input non è in P2. Come per (a), tramite l’algoritmo di riduzione convertiamo
un ’istanza tu di P] in un’istanza x di P 2. Applichiamo poi a x la TM per P 2. Se x è
accettato, accettiamo w.
Questa procedura descrive una TM (che può anche non arrestarsi) il cui linguaggio è
Pi. Se tu è in P i , allora x è in P2, per cui questa TM accetterà tu. Se tu non è in P 1 , allora
X non è in P 2. La TM può arrestarsi o no, ma di certo non accetterà tu. Poiché abbiamo
presupposto che non esista nessuna TM per P i. abbiamo dimostrato per assurdo che non
esiste nessuna TM neanche per P 2; in altre parole, se P 1 è non RE. allora anche P 2 è non
RE.

9.3.2 Macchine di Turing che accettano il linguaggio vuoto


Come esempio di riduzioni che coinvolgono le macchine di Turing, studiamo due lin
guaggi, che chiameremo L e ed L nf,, composti da stringhe binarie. Sc tu è una stringa
binaria, allora rappresenta una TM M i nell’enumerazione del Paragrafo 9.1.2.
Sc L ( M i ) = 0, ossia M¿ non accetta alcun input, allora tu è in L fi. Quindi L e è il
linguaggio formato da tutte le TM codificate il cui linguaggio è vuoto. D’altro canto, se
L ( M i ) non è il linguaggio vuoto, allora w è in L ne. Dunque L nc è il linguaggio di tutti i
codici delle macchine di Turing che accettano almeno una stringa di input.
408 Capitolo 9

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.

Teorema 9.8 L nc è ricorsivamente enumerabile.

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

Figura 9.8 Costruzione di una NTM che accetta L ne .

Descriviamo le operazioni di M .

1. M riceve in input un codice di TM M i .

2. Impiegando la sua capacità non deterministica M “tenta” un input w che M i po


trebbe accettare.

3. M verifica se accetta w. Per questa parte M può simulare la TM universale U


che accetta L u .

4. Se M i accetta w , allora M accetta il proprio input, ossia M 1.

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.

Teorema 9.9 L ru: non è ricorsivo.

DIMOSTRAZIONE Seguiremo lo schema della dimostrazione data. Dobbiamo definire un


algoritmo che converte un input formato da una coppia codificata in binario ( M , w ) in
una TM M ' tale che L ( M t ) φ 0 se c solo se M accetta l’input w . La costruzione di M 1
è delineata nella Figura 9.9. Come vedremo, se M non accetta uk allora M t non accetta
nessuno dei suoi input; cioè L ( M t ) — 0. Se però M accetta w, allora M t accetta ogni
input, e di conseguenza L ( M t ) sicuramente non è 0.

W ► — Accet t a ► A ccetta
X ------- ►
M

AT

Figura 9.9 Schema della TM M 1 costruita da ( Μ, υ ή nel Teorema 9.9. M t accetta un


input arbitrario se c solo se M accetta w.

Definiamo M t affinché com pia le seguenti operazioni.

I . M t ignora il proprio input x , o meglio, lo sostituisce con la stringa che rappresenta


la TM M e la stringa di input w . Poiché M 1 è concepita per una specifica coppia
(M , «;), di lunghezza n , possiamo costruire M t in modo che abbia una sequenza di
stati <jo, «/i? · · · ?Qn, dove qo è lo stato iniziale.

(a) Nello stato q¿, p e r i = 0 ,1 , , n — I, M 1 scrive Γ ( i -+-1)-esim obit del codice


per ( M , w ) , va nello stato qi +\ e si muove verso destra.
(b) Nello stato qn , se necessario M t si muove verso destra rimpiazzando eventuali
simboli diversi dal blank (che formano la parte finale di x se tale input di M t
è più lungo di ri) con blank.
410 Capitolo 9

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.

1. Convertiamo (Al , w ) nella TM AT' come abbiamo visto sopra.

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.

A questo punto possiamo conoscere lo stato di L e. Sc L e fosse RE. allora per il


Teorema 9.4 sia L c sia L ne sarebbero ricorsivi. Dato chc per il Teorema 9.9 L ne non è
ricorsivo, concludiamo che:

T eorem a 9.10 L e non è RE.


Problemi indecidibili relativi alle macchine di Turing 411

Perché un problema e il suo complemento sono diversi


Intuitivamente sappiamo che un problema c il suo complemento sono in realtà
lo stesso problema. Per risolvere l’uno possiamo usare l’algoritmo dell'altro c
all’ultimo passo invertire l’esito: diciamo “sì” anziché “no”, e viceversa. Se il
problema e il suo complemento sono ricorsivi, l’intuizione è corretta.
Esistono però, come abbiamo visto in questo paragrafo, altri due casi. Il
primo è che né il problema né il suo complemento sono RE. I due problemi
risultano ancora simili in un certo senso, perché entrambi non risolvibili da alcun
tipo di TM. Il secondo, più interessante, esemplificato da L c ed L n e , si ha quando
l’uno è RE e l ’altro non RE.
Per il linguaggio che è RE possiamo definire una TM che prende un input
w e va in cerca di una ragione per cui w si trova nel linguaggio. Così, data una
TM M come input, per L ne avviamo la nostra TM alla ricerca di stringhe da lei
stessa accettate. Non appena ne troviamo una, accettiamo M . Se M è una TM
con un linguaggio vuoto, non siamo mai in grado di stabilire con certezza che
non sia in L nf,. Tuttavia non la accettiamo mai, ed è così che la TM deve reagire
correttamente.
D’altra parte, per il problema complemento L e , che non c RE, non c ’è modo
di accettare tutte le sue stringhe. Supponiamo di avere una stringa M che è una
TM il cui linguaggio è vuoto. Possiamo saggiare gli input della TM M ed è
possibile che non ne troviamo mai uno accettato da M . Eppure non possiamo
mai essere certi che non esista un input chc non abbiamo ancora provato ma chc
potrebbe essere accettato. Di conseguenza M non può mai essere accettata, anche
se dovrebbe esserlo.

9.3.3 II teorema di Rice e le proprietà dei linguaggi RE


Il fatto che linguaggi come L c ed L ne. siano indecidibili è un caso speciale di un teorema
molto più generale: tutte le proprietà non banali dei linguaggi RE sono indecidibili, nel
senso che è impossibile riconoscere per mezzo di una macchina di Turing le stringhe
binarie che rappresentano codici di una TM il cui linguaggio soddisfa la proprietà. Un
esempio di proprietà dei linguaggi RE è “il linguaggio è libero dal contesto”. Come
caso speciale del principio generale che tutte le proprietà non banali dei linguaggi RE
sono indecidibili, il problema se una data TM accetti un linguaggio libero dal contesto è
indecidibile.
Una propri et à dei linguaggi RE è semplicemente un insieme di linguaggi RE. Di
conseguenza la proprietà di “essere libero dal contesto” è in termini formali l’insieme di
4 12 Capitolo 9

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.

• Osserviamo che la proprietà vuota, 0, è diversa dalla proprietà di essere un linguag


gio vuoto {0 }.

Non possiamo riconoscere un insieme di linguaggi come i linguaggi stessi. La ragione


è chc il tipico linguaggio, essendo infinito, non può essere espresso come una stringa di
lunghezza finita chc possa essere l’input di una TM. Dobbiamo piuttosto riconoscere le
macchine di Turing chc accettano quei linguaggi; il codice della TM è finito anche se
il linguaggio che accetta c infinito. Di conseguenza, sc V è una proprietà dei linguaggi
RE, il linguaggio L p è l’insieme dei codici di macchine di Turing M i tali che L ( M i ) c
un linguaggio in V . Quando parliamo di decidibilità di una proprietà V , intendiamo la
dccidibilità del linguaggio L p .

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.

F ig u ra 9.10 Costruzione di M 1 per la dimostrazione del teorema di Rice.

M 1 è una TM a due nastri. Un nastro è usato per simulare M su w. Ricordiamo che


l’algoritmo che effettua la riduzione riceve come input M e w, e li usa nella definizione
Problemi indecidibili relativi alle macchine di Turing 413

delle transizioni di M ' . Di conseguenza la simulazione di M su w è incorporata in Af7;


la seconda TM non deve leggere le transizioni di M sui suoi nastri.
Se necessario, l’altro nastro di M ' viene usato per simulare M l sull’input x di M 1.
Anche qui Ie transizioni di M l sono note all’algoritm o di riduzione e possono essere
incorporate nelle transizioni di M ' . La TM M ' è costruita per operare nel modo seguente.

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 .

11 lettore può notare che la costruzione di M 1 da M e w può essere realizzata da un


algoritmo. Dato che tale algoritm o trasforma (Ai, w ) in una M 1 che è in L- p se e solo
se ( M , w ) è in L u, esso è una riduzione di L u a L- p, e dim ostra che la proprietà V è
indecidibile.
Non abbiamo ancora finito. Ci resta da considerare il caso in cui 0 è in V . Esam i
niamo allora la proprietà com plem ento V , l ’insieme dei linguaggi RE che non hanno la
proprietà V . Per quanto abbiamo visto sopra, V è indecidibile. M a poiché ogni TM accet
ta un linguaggio RE, L p , l’insieme di (codici per) macchine di Turing che non accettano
un linguaggio in V è uguale a L ^ , l’insiem e di TM che accettano un linguaggio in V .
Supponiam o che L p sia decidibile. Allora lo sarebbe anche L.p , perché il complemento
di un linguaggio ricorsivo è ricorsivo (Teorema 9.3).

9.3.4 Problemi sulle specifiche di macchine di Turing


Per il Teorema 9 .11 tutti i problemi sulle macchine di Turing che toccano solo i linguaggi
accettati sono indecidibili. Alcuni di questi problemi sono interessanti di per sé. Per
esem pio sono indecidibili i seguenti problemi.

1. Il linguaggio accettato da una TM è vuoto (come abbiam o appreso dai Teoremi 9.9
e 9.3)?

2. Il linguaggio accettato da una TM è finito?

3. Il linguaggio accettato da una TM è un linguaggio regolare?

4. 11 linguaggio accettato da una TM è un linguaggio libero dal contesto?


414 Capitolo 9

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?

a) L ( M ) contiene almeno due stringhe?

b) L ( M ) è infinito?

c) L ( M ) è un linguaggio libero dal contesto?

* 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.

b) L’insieme delle coppie (M i, M 2 ) tali che L (A ii) Π L ( M 2) = 0.

c) L’insieme delle triple (M i, M 2, M 3 ) tali che L ( M i ) = L ( M 2) L ( M s ) , cioè tali che


il linguaggio della prima TM è la concatenazione dei linguaggi delle altre due.
Esercizio 9.3.8 Dite se i seguenti insiemi sono ricorsivi, RE ma non ricorsivi, o non RE.
* a) L'insieme di tutti i codici di TM chc si arrestano su ogni input.

b) L’insieme di tutti i codici di TM che non si arrestano su nessun input.

c) L’insieme di tutti i codici di TM che si arrestano su almeno un input.

* d) L'insieme di tutti i codici di TM che non si arrestano su almeno un input.

9.4 II problema di corrispondenza di Post


In questo paragrafo cominciamo a ridurre problemi indccidibili sulle macchine di Turing
a problemi indecidibili su oggetti “reali’', cioè svincolati dall’astrazione della macchina
di Turing. Partiamo dal cosiddetto “problema di corrispondenza di Post” (PCP, Po s t ’s
Cor r e s ponde nc e Pr obl e m), che è ancora un problema astratto, ma si riferisce a stringhe
anziché a macchine di Turing. Intendiamo dimostrare che questo problema è indecidibile
e poi sfruttare il risultato per dimostrare che altri problemi sono indecidibili per riduzione
di PC P
Dimostriamo chc PCP è indecidibile riducendo L u a PCP. Per semplificare la prova
definiamo un PCP modificato e lo riduciamo al PCP originale. Quindi riduciamo L u al
PCP modificato. La catena di riduzioni è illustrata nella Figura 9.11. Poiché sappiamo
che L u è indecidibile, concludiamo che PCP è indecidibile.
416 Capitolo 9

un M PCP PCP
U un
alg o ritm o alg o ritm o

Figura 9.11 Riduzioni chc dimostrano Pindecidihilità del problema di corrispondenza di


Post.

9.4.1 Definizione del problema di corrispondenza di Post


U n’istanza del problema di corrispondenza di Post (PCP) consiste in due liste di stringhe
sullo stesso alfabeto Σ ; le due liste devono avere la stessa lunghezza. Generalmente
parleremo delle liste A e B, e scriveremo A -- . . . , tu*, e B = X\.x-¿, · ■· ,Xk, per
un intero k. Per ogni i la coppia x¿) si dice coppia corrispondente.
Diciamo che l’istanza di PCP ha soluzione se esiste una sequenza di uno o più interi
¿I, ¿ 2 ,.. · , i m che, interpretati come indici per le stringhe di A e B, producono la stessa
stringa. Formalmente Wil Wi2 Wim = Xt l Xi2 Xtm. In questo caso diciamo che la
sequenza ¿i, ¿2,. . . Am è una soluzione dell’istanza di PCP. Il problema di corrispondenza
di Post è definito così:

• data un’istanza di PCP, dire se ha una soluzione.

Lista A Lista B
i Wi Xi
1 1 111
2 10111 10
3 10 0

F ig u ra 9.12 U n’istanza di PCP.

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

II PCP come linguaggio


Per trattare la questione se un’istanza di PCP abbia una soluzione, dobbiamo
esprimere il problema come linguaggio. Poiché le istanze di PCP hanno alfa
beto arbitrario, il linguaggio corrispondente è di fatto una stringa su un alfabeto
(issato, che codifica le istanze di PCP così come nel Paragrafo 9 . 1.2 abbiamo co
dificato macchine di Turing con insiemi arbitrari di stati e di simboli di nastro. In
particolare, se l’alfabeto di un'istanza di PCP ha meno di 2 k simboli, possiamo
usare codici di k bit per ogni simbolo.
Poiché le istanze di PCP hanno tutte alfabeto finito, per ciascuna possiamo
fissare il valore di k. A questo punto possiamo codificare un’istanza impiegando
un alfabeto di tre simboli: 0. 1 c un simbolo “virgola” per separare le stringhe.
Collochiamo all’inizio del codice il numero k in binario seguito dalla virgola e
dalle coppie di stringhe, separate da virgole e codificate secondo un codice a k
bit.

Lista A Lista B
i Wi Xi
1 10 101
2 011 11
3 101 011

Figura 9.13 Un’altra istanza di PCP.

E sem pio 9.14 Ecco un’istanza senza soluzione. Prendiamo ancora Σ = {0 . 1 }, ma le


due liste sono quelle della Figura 9 . 13.
Supponiamo che l’istanza di PCP della Figura 9.13 abbia la soluzione ¿ i , ¿2, · · · <im,
per un m > 1. Affermiamo che ¿1 = 1. Infatti, se ¿1 = 2 , una stringa chc comincia per
W2 = O li dovrebbe coincidere con una che comincia per x¿ = 11. Ma ciò è impossibile
perché i primi simboli delle due stringhe sono, rispettivamente, 0 e 1. Analogamente non
è possibile che i\ = 3 perché in tal caso una stringa che comincia per = 101 dovrebbe
coincidere con una chc comincia per Xi = O li.
Se ¿1 = I, le due stringhe corrispondenti nelle liste A c B dovrebbero cominciare
così:
A: 1 0 · · ·
B: 101 · · ·

Consideriamo che cosa dev’essere ¿2·


418 Capitolo 9

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.

Se poniamo i 2 = 3, le stringhe corrispondenti, formate dalla lista di interi ¿1 , ¿3 , sono le


seguenti:

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

coppia de ll’istanza di MPCP ; questa coppia ha un * in più a ll’inizio di w\ , c pos s iamo


usarla per avviare la s oluzione di PCP. All’istanza di PCP aggiungiamo un’ultima coppia,
($, *$), che farà da coppia terminale nelle s oluzioni di PCP che imitano s oluzioni di
MP CP
De finiamo ora formalme nte la costruzione. Abbiamo un’istanza di MPCP con sequen­
ze A = «,'i. w 2 , . . . , Wk Q B = x i, X2 ; · · j ^k- Supponiamo che * c $ non siano elementi
de ll’alfabeto Σ di questa istanza. Cos truiamo un’istanza di PCP C = ?/0; y i , . . . , yk+i e
D = z 0, z i , . . . , z k+i.

1. Per i = 1 ,2 .. . . . k sia uguale a w it ma con un * dopo ogni s imbolo, e sia Zi


uguale a Xi, ma con un * prima di ogni s imbolo.

2. ?yo = *V l e Zq = z\ . La coppia di posto 0 è uguale a que lla di posto 1, salvo che


per il s imbolo * supplementare davanti alla stringa de lla prima lista. Notiamo che
la coppia di posto 0 è l ’unica, ne ll’istanza di PCP, in cui le due stringhe cominciano
per lo stesso s imbolo, così che ogni s oluzione deve cominciare dall'indice 0.

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

Figura 9.14 Cos truzione di u n ’istanza di PCP da un ’istanza di MPCP.

T e ore ma 9.17 MP CP si r iduc e a PCP.

DIMOSTRAZIONE II nucle o de lla prova è la costruzione definita sopra. Supponiamo per


pr ima cosa che ¿i,¿ 2 , · · , im sia una s oluzione a ll’istanza assegnata di MP CP con liste A
e B. Sappiamo allora chc WiWil Wi2 · · w¿m = x\ Xi i Xi2 x¿m. Sostituendo le w con le
y e le x con le 2 otte niamo due stringhe quas i uguali: Vvyi1Vi2 · · · y im e z\ zit Zi2 - · Zim.
Alla prima stringa manca un * a ll’inizio; alla seconda ne manca uno alla fine. Quindi

* 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

Abbiamo così dimos trato che 0, i \ , ¿2 ; · · · , im k + 1 è una s oluzione de ll’istanza di P CP


Dobbiamo ora dimostrare che, se l’istanza del PCP derivato ha una s oluzione, anche
l’istanza de ll’MP CP originale ha una s oluzione. Os s e rviamo che una soluzione de ll’i­
stanza di PCP deve cominciare con l’indice 0 e finire con l’indice k + 1, perché solo la
coppia di posto 0 è formata da stringhe che cominciano per lo stesso s imbolo, e solo la
coppia di posto (k 4- 1) è formata da stringhe che finis cono con lo stesso s imbolo. Perciò
pos s iamo scrivere così la s oluzione di PCP: 0 ,«i, i 2 , · · - , k, 4- 1.
Affe rmiamo che , i rn è una soluzione de ll’istanza di MPCP. Infatti se e limi­
niamo gli * e il S finale dalla stringa JJoVil Vi2 ' ' 'V tmVk+1 otte niamo w \ w t l w i 2 · - W i m .
Inoltre se e liminiamo gli * e il S da ZQZi1Zi2 - - - ZtmZk+ \ otte niamo x\ Xt iXi2 · - Xim-
Sappiamo che

VoVi l Vi 2 · · · V i mVk + 1 = Zozu Zi2 - - - z i m z k + 1

pe rciò de duciamo che

W i W i l Wi2 Wi m = X 1X i l X i 2 X im

Quindi da una s oluzione de ll’istanza di PCP ricaviamo una s oluzione de ll’istanza di


MPCP.
Ora è chiaro che la costruzione descritta prima del teorema è un algoritmo per con­
vertire un’istanza di MP CP con una s oluzione in un ’istanza di PCP con una s oluzione , e
un’istanza di MPCP senza s oluzioni in un’istanza di PCP senza s oluzioni. Esiste dunque
una riduzione di MPCP a PCP, a confe rma che se PCP fosse de cidibile lo sarebbe anche
MPCP.

9.4.3 Dimos trazione di inde c idibilità di P CP : finale


Comple tiamo la catena di riduzioni de lla Figura 9.11 riducendo L u a MPCP. Data una
coppia ( M i W) dobbiamo cioè costruire un ’istanza (/ 1 , 13) di MP CP tale che la T M M
accetta l’input w se e solo sc ( A B ) ha una soluzione.
Fulcro del ragionamento è il fatto che l ’istanza (A, B ) di MP CP s imula, nelle s oluzio­
ni parziali, la computazione di M su input w. Le s oluzioni parziali sono dunque formate
422 Capitolo 9

da prefissi della sequenza di ID di Μ: # οί # α· 2 # « 3 # · ·. dove a i è la ID iniziale di M


con input w, e a , l· ttj+ i per ogni i. La stringa presa dalla lista B sarà sempre di una ID
più avanti rispetto a que lla presa da .4. salvo che M entri in uno stato accettante. In quel
caso saranno dis ponibili le coppie con cui A può “raggiunge re” B e produrre infine una
s oluzione. Sc però M non entra in uno stato accettante, non c ’è modo di servirsene, c non
ci sono s oluzioni.
Per semplificare la costruzione de ll’istanza di MPCP ricorriamo al Teorema 8.12, se­
condo il quale pos siamo assumere che la T M non stampa mai blank e non si sposta mai
a sinistra della pos izione iniziale de lla testina. In questo modo ogni ID della macchina di
Turing è una stringa de lla forma α β , dove a e 3 sono stringhe di s imboli di nastro diversi
dal blank, e q è uno stato. ,3 può essere vuoto se la testina si trova sul blank imme diata­
mente a destra di a ; e vitiamo così di collocare un blank a destra de llo stato. I s imboli di
a e β corrispondono quindi esattamente al contenuto delle celle in cui si trovava l’input,
più tutte le celle verso destra già visitate dalla testina.
Sia M = (Q, Σ. Γ. δ, qo, B, F ) una T M che soddisfa il Teorema 8.12, e sia w 6 Σ *,
una stringa di input. Cos truiamo un ’istanza di MPCP. Per capire i motivi della scelta delle
coppie ricordiamo che la prima lista deve sempre trovarsi di una ID dietro la seconda, a
me no che M accetti.

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.

2. Ad ambedue le liste pos s iamo accodare s imboli di nastro e il separatore #. Le


coppie

Lis ta A Lista B
X X per ogni X in Γ
# #

permettono di “copiare” s imboli chc non contengono lo stato. La scelta di queste


coppie ci consente in effetti di estendere la stringa di A in accordo con que lla di B ,
copiando al contempo parti della ID precedente in coda alla stringa di B. Possiamo
in questo modo formare la ID successiva nella sequenza di mosse di M , in coda
alla stringa di B.

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 .

4. Se la ID in coda alla stringa di B ha uno stato accettante, dobbiamo completare la


soluzione parziale. A tale scopo la estendiamo con “ID ” che non sono vere ID di
A l, ma rappresentano quanto accadrebbe se lo stato accettante potesse consumare
i s imboli di nastro ai suoi due lati. Se q è uno stato accettante, per ogni X c Y ,
s imboli di nastro, esistono coppie:

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.

Es e m pio 9.18 Conve rtiamo in un ’istanza di MPCP la T M

Al = q2 ,q¿), {0 ,1 }, {0 ,1 , B},ó< q\ . B , {¢3})

dove <5 è definita da:


424 Capitolo 9

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.

Re gola Lis ta A Lis ta B Origine


( 1) # # g . o i#
(2 ) 0 0
1 1
# #
(3) QiO Ig 2 da<5(gi,0) = (g2,l,/ ? .)
Og il g200 da 6{qi, 1) = (g2.0 ,L )
Ig il g2J0 da <5(gi,l) = (g2,0 ,L )
0g, # g20 i # da 6 (q i , B ) = (g2,1 ,L )
ig i # g2n # da ò'(g i, B ) = (g2, 1, L)
Og2O g300 da Sfa- , 0) = (g3,0 ,L )
Ig 2O g3l0 d a % 2,0 ) = (g3,0 , L)
g2i Og1 da ò~(g2, 1) = (¢ 1 , 0 , / 2)
g2# Og2 # daS (q2.B ) = (g2, 0, R )
(4) Og3O ga
Og3I Qi
Ig3O Qi
ig 3i Qi
Ogs Qi
ig3 Qi
gjO Qi
¢3^ Qi
(5) g3## #

F ig ur a 9.15 Is tanza di MP CP costruita dalla T M M de ll’Es e mpio 9.18.

Os s e rviamo che M accetta l’input 01 tramite la sequenza di mosse

g ì 01 I- Ig 2I I- IOgi t" IgaOl l· g3 101

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 #

C ’è un solo modo di estendere la soluzione parziale: la stringa presa da A de v’essere un


prefisso del residuo t / iOl# . Dobbiamo quindi scegliere la coppia (</ i0 ,1q2), una delle
coppie che s imulano una mossa prese dalla regola (3). Ecco la s oluzione parziale:

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ì:

A: # <71O l # I <72 l# 1 0 i/ i # l ^ 2 0 1 # ^ 3 lOl# <7 3 Ol# <7:3l#


B: # 9 10 1# I ¢2 1 # I Og1 # 172 01 # 10 1 # ¢3 01 #<73 1# #

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 # #

T e ore ma 9.19 II problema di corris ponde nza di Post è inde cidibile .

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.

• M accetta w se e s olo se l’istanza derivata di MP CP ha una soluzione.

(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 .

(Se) Dobbiamo provare chc, se l’istanza di MPCP ha s oluzione , allora M accetta w.


Poiché lavoriamo su MP CP ogni s oluzione deve cominciare dalla prima coppia; una
s oluzione parziale comincia così:

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

dove X è una sequenza di ID di A l che rappresentano una computazione di A l su input w,


eventualmente seguita da # e da ll’inizio de lla ID successiva a. Il residuo y è il comple ­
tamento di a , un altro # e l'inizio de lla ID chc segue a , fino al punto in cui x termina in
a.
In particolare, finche' A l non entra in uno stato accettante, la soluzione parziale non è
una s oluzione: la stringa di B è più lunga di que lla di .4. Quindi, se c ’è una s oluzione , A l
deve a un certo punto entrare in uno stato accettante, cioè A l accetta w.

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 ).

c) A = (ab, a, be, c); B = (bc, ab, cn, a).

! 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.

! Es e rcizio 9.4.3 Supponiamo di limitare il PCP a un alfabeto di un s imbolo come Σ =


{0}. Anche questo caso ristretto del PCP è inde cidibile ?

! Es e rcizio 9.4.4 Un Post tag system è formato da un ins ie me di coppie di stringhe su


un alfabeto finito Σ e da una stringa iniziale . Se (u?, x ) è una coppia e y è una stringa
quals ias i su Σ , scriviamo w y h y x . In altri termini, in una mossa e liminiamo un prefisso
w dalla stringa “corrente” w y e aggiungiamo un suffisso x abbinato *
a w. Come per le
de rivazioni nelle grammatiche libere dal contesto, de finiamo F come zero o più passi di
K Dimos trate che, dato un insie me di coppie P e una stringa iniziale z, è inde cidibile se
z F e. Suggerimento: per ogni T M A l e input w, sia 2 la ID iniziale di A l con input w,
seguita da un s imbolo separatore # . Scegliete le coppie P tali che ogni ID di M diventi
prima o poi la ID che segue dopo una mossa di A l. Se A l entra in uno stato accettante,
fate in modo che la stringa corrente possa essere cancellata, cioè ridotta a c.
428 Capitolo 9

9.5 Altr i proble mi inde c idibili


Cons ide riamo ora alcuni altri proble mi di cui pos s iamo dimostrare l’indccidibilità. La
tecnica principale è la riduzione di PCP al problema che vogliamo dimostrare inde cidibile .

9.5.1 Proble mi re lativi a programmi


Partiamo da un ’osservazione: si può scrivere un programma, in un normale linguaggio di
programmazione , che accetta in ingresso un ’istanza di PCP e nc cerca le s oluzioni siste­
maticamente (per esempio per ordine di lunghe zza - nume ro di coppie - della s oluzione ).
Poiché PCP ammette alfabeti arbitrari dobbiamo codificare i s imboli de ll’alfabeto in bi­
nario o in un altro alfabeto fissato, comc descritto nel riquadro “Il PCP come linguaggio”
del Paragrafo 9.4.1.
Siamo liberi di scegliere che cosa fa il programma, per es e mpio arrestarsi o stampare
un frase, se e quando trova una s oluzione . In caso contrario il programma non esegue
mai l’azione prescelta. Dunque stabilire se un programma s tampa C ia o , m o n d o , se
si arresta, se chiama una certa funzione , se emette il “bip” de lla console, o se esegue
una qualsiasi azione non banale, sono tutti problemi inde cidibili. Esiste in effetti un
analogo del teorema di Rice per i programmi: qualsiasi proprietà non banale relativa
alle ope razioni di un programma (in contrasto con le proprietà lessicali o sintattiche del
programma stesso) è indccidibile .

9.5.2 Inde c idibilità de lF a mbiguità delle CF G


Se cons ide riamo le analogie fra programmi e macchine di Turing, le affe rmazioni del
Paragrafo 9.5.1 non sono sorprendenti. Spie ghiamo ora come ridurre PCP a un proble ma
del tutto estraneo ai calcolatori: la questione se una grammatica libera dal contesto sia
ambigua.
L’idea di base è di considerare stringhe chc rappresentano una sequenza di indici (in­
teri), al contrario, insieme con le stringhe corrispondenti costruite secondo una de lle liste
di un’istanza di PCP. Queste stringhe possono essere generate da una grammatica. Anche
l’analogo ins ie me di stringhe per l'altra lista ne ll’istanza di PCP può essere generato da
una grammatica. L’unione delle due grammatiche, con gli ovvi aggius tame nti, genera una
stringa usando le produzioni di cias cuna grammatica se e solo se l’istanza di PCP ha una
s oluzione . Perciò c’è una s oluzione se e solo se l’unione delle grammatiche è ambigua.
Precisiamo l’idea intuitiva. Supponiamo che l'is tanza di PCP sia formata dalle liste
A = ?/,'i. w o.. . . . Wk c D = x\ , X2 , - . . , Xk- Per la lista A cos truiamo una CF G con A
come unica variabile. I te rminali sono tutti i s imboli de ll'alfabe to Σ impie gati ne ll’is tanza
di PCP, oltre a un insieme dis tinto di s imboli indice « i, a ? . . . . . Oyc, che rappresentano le
scelte di coppie di stringhe in una s oluzione de ll’istanza di PCP. 11 s imbolo indice a¡
A ltri proble m i inde cidibili 429

rappresenta quindi la scelta di Wi dalia lista A o di Xi dalla lista D. Le pr oduzioni de lla


CF G per la lista A sono:

A —> W iA ay I W2A a2 | · · · | Ivk A ak \


W ìd] I W 2O2 I · · · I W k Cik
De note re mo con G a questa grammatica e con L a il suo linguaggio. Ci rife rire mo a un
s imile linguaggio L ,\ come al linguaggio per la lista A.
Os s e rviamo che le stringhe te rminali derivate da G a sono tutte quelle de lla forma
Wil Wh WirnCiim · (Iì-2°-m Per un w > l e una lista di interi * i , ì 2, · · · ; im \ 0 Sn' intero
varia tra 1 e k. Tutte le forme s e ntenziali di Ga hanno una sola A fra le stringhe (le
io) e i s imboli indice (gli a) fino al mome nto in cui us iamo una produzione scelta fra le
ultime k , chc non hanno A nel corpo. Gli alberi sintattici hanno la forma illus trata ne lla
Figura 9.16.

w . * a.
/2 · /2

vv.
Im a l.
m

F ig u r a 9.16 La forma degli alberi sintattici de lla grammatica G .4 .

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 -

B — X1S f l1 I X2B u 2 I · · · I XkBcik I


X 1 A 1 I X 2 Ci2 I · · · I Xfcflfc

De note re mo il linguaggio di questa grammatica con L e . Lc osservazioni già fatte per


G a si applicano anche a G d . In particolare una stringa terminale di L d ha una sola
derivazione, determinata dai s imboli indice in coda alla stringa.
Combinia mo infine i linguaggi c le grammatiche delle due liste a formare la gramma­
tica G a b per l’istanza di P CP Ecco i compone nti di G a b -

1. Le variabili A, B ed 5 ; S è il s imbolo iniziale .

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.

T e ore ma 9.20 II problema de ll’ambiguità di una CF G è inde cidibilc.

Abbiamo già quasi compiuto la riduzione di PCP al proble ma se una


D IM O S T R A Z IO N E
CF G sia ambigua; questa riduzione dimos tra che il proble ma de ll’ambiguità di una CF G
è indccidibile perché PCP è inde cidibile . Dobbiamo solo provare chc la costruzione è
corretta, cioè:

• G a b è ambigua se e s olo se l’istanza (.4. B ) di PCP ha una soluzione.

(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 '

iS —r- A —Tr 'IVi j A.(].ìj —V Wt ^ CL'/2 λ 4 A j .j f l 21. — - - ■ —^


Wi1Wi2 · · · Wim- I A d jm · · · Aj2Aj1 => Wi1Wi2 · · WimClim · · ‘ Ai2At1
_ J

S =$ B => Xi l B a il =*· Xi1Xi2B a i2ait = > · · · = >


x U X i ì ■ ■ ■^ i m - I B a i n ^ l ■ ■ · Aj2 A j 1 =*> X j 1X j 2 · · · X j m Aim · · · Oj2 A j l

Poiché ¿ i , ¿2j · · . , i m è una s oluzione , s appiamo chc W i 1 W i2 - ■ - W iin = X j 1X j2 ■· - X i r n .


Queste due derivazioni generano la stessa stringa te rminale. Trattandosi di due derivazioni
a sinistra, e distinte, della stessa stringa terminale de duciamo che G a b è ambigua.
Altri problemi indecidibili 431

(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.

9.5.3 II comple me nto di un linguaggio associato a una lista


Grazie a linguaggi liberi dal contesto come L a per una lista A pos s iamo dimos trare l’in­
de cidibilità di alcuni proble mi relativi ai CFL. Ulteriori prove di inde cidibilità per CF L
si ricavano dallo studio del linguaggio comple me nto La- Os s e rviamo che L a è formato
da tutte le stringhe sul l’alfabeto Σ U { αι ,α2 ,. . . , α& } che non sono in L a, dove Σ è
l’alfabeto di un’istanza di PCP e gli a-, sono s imboli distinti che rappresentano gli indici
delle coppie ne ll’istanza di PCP.
Gli elementi interessanti di L a sono le stringhe formate da un prefisso in Σ* otte nu­
to per concatenazione di stringhe de lla lista .4, seguito da un suffisso di s imboli indice
chc non combaciano con le stringhe scelte da A. Ma in L a ci sono anche molte strin­
ghe che sono semplicemente malformate , nel senso che non appartengono al linguaggio
de ll’espressione regolare Σ *(αι + «2 -I- - + a *)*·
Sos te niamo che L a è un CFL. A differenza di L a , non è facile scrivere una gr amma­
tica per L a , nía possiamo definire un PDA deterministico che lo accetta. La costruzione
è spiegala nel prossimo teorema.

T e ore ma 9.21 Se L a è il linguaggio per la lista A, L a è un linguaggio libero dal contesto.

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 -

1. Finché legge s imboli in Σ, P li mette sullo stack. Poiché tutte le stringhe in Σ*


sono in L a , P resta in stati accettanti.

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à.

T e ore ma 9.22 Siano G i e G 2 grammatiche libere dal contesto e sia R un’espressione


regolare. I problemi seguenti sono indccidibili.

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).

a) Siano L (G i) = L a e L (Gz ) = L r . Allora L ( G 1) Π L(Gz ) è l’insieme delle


s oluzioni di questa istanza di PCP L’intersezione è vuota se e solo se non ci sono
s oluzioni. Tecnicamente abbiamo ridotto 1}CP al linguaggio delle coppie di CFG
con intersezione vuota; abbiamo cioè dimostrato che il problema “l’intersezione di
due CFG è non vuota?” è indecidibile. Ma, come abbiamo detto introducendo la
dimostrazione, mostrare che il complemento di un problema è indecidibile equivale
a dimostrare che il problema stesso è indccidibile .

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.

c) Si ragiona come in (b), ma l i è l’espressione regolare (Σ U I)*.

d) Si deduce da (c) perché Σ U T è l'unico alfabeto di cui L a U L n può essere la


chiusura.

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.

f) Si ragiona come in (e), ma R è l’espressione regolare (Σ U / )* e L(Gy ) è L a U


Lb -

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.

Es e rcizio 9.5.2 Dimostrate che il linguaggio L a U L r è regolare se c solo se è l’insieme


di tutte le siringhe sul suo alfabeto, cioè se e solo se l’istanza (A , B) di PCP non ha
soluzioni. Provate così che è indecidibile stabilire se una CFG genera un linguaggio
434 Capitolo 9

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

Es e r cizio 9.5.3 E inde cidibile stabilire se il comple me nto di un CF L è un CFL. Da l­


l'Es e rcizio 9.5.2 si ricava che la questione se il comple me nto di un CFL sia regolare è
inde cidibile , ma non è la stessa cosa. Per provare l'ipote s i dobbiamo definire un nuovo
linguaggio che rappresenta le non- soluzioni di un'is tanza (.4, B ) di PCP. Sia L a b l ’in­
sieme delle stringhe della forma χ νφχ φι / φζ tali che valgano le condizioni 1- 3 e almeno
una delle condizioni 4- 7:

1. w e X sono stringhe s ull’alfabeto Σ de ll’istanza di PCP

2. y c z sono siringhe s ull’alfabeto degli indici 1 di questa istanza

3. # è un s imbolo assente sia da Σ sia da I

4. w Φ X n
5. y φ Zti

6. x R non è ciò che la stringa di indici y genera secondo la lista B

7. w non è ciò chc la stringa di indici z genera secondo la lista A.

Osservate chc L a b è formato da tutte le stringhe in Σ * # Σ * # / * # / * salvo che l ’istanza


( A B ) abbia una s oluzione, ma L a b è un CFL in ogni caso. Dimostrate che L a b è
un CF L se e solo se non ci sono s oluzioni. Suggerimento: per imporre l'uguaglianza
delle lunghezze di certe sottostringhe come suggerito ne ll'Es e rcizio 7.2.5(b), applicate la
tecnica de ll’omomorfis mo inverso de ll’Esercizio 9.5.2 e il le mma di Ogden.

9.6 Rie pilogo


Linguaggi ricorsivi e ricorsivamente enumerabili: i linguaggi accettati dalle mac­
chine di Turing sono detti ricorsivamente e nume rabili (RE). I linguaggi RE accettati
da una T M che si arresta sempre sono detti ricorsivi.

Complementi di linguaggi ricorsivi e RE: i linguaggi ricorsivi sono chiusi rispetto


alla comple me ntazione . e se un linguaggio e il suo comple me nto sono entrambi RE,
allora entrambi sono ricorsivi. Di conseguenza il comple me nto di un linguaggio RE
ma non ricorsivo non può essere RE.
Bibliografía 435

De cidibilità e inde cidibilità: “de cidibile ” è s inonimo di “ricorsivo”, anche se si


tende a usare “ricorsivo” per i linguaggi e “de cidibile ” per i problemi (chc sono
linguaggi interpretati comc domande ). Se un linguaggio non è ricorsivo, diciamo
“inde cidibile ” il problema espresso da tale linguaggio.

Il linguaggio Ld'. è l ’insieme delle stringhe di 0 e di 1 che, interpretate comc T M,


non sono nel linguaggio della T M stessa. 11 linguaggio La è un buon esempio di
linguaggio non RE, vale a dire non accettato da alcuna macchina di Turing.

Il linguaggio universale: il linguaggio Lu consiste delle stringhe che vengono in ­


terpretate come una T M seguita da un input per la T M. Una stringa è in L u se la
T M accetta l’input. L u è un buon esempio di un linguaggio RE ma non ricorsivo.

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.

3. N. Chomsky, M. P. Schutzenberger, “The algebraic theory o f context- free langua­


ges,” Computer Programming and Formal Systems (1963), North Holland. Amster­
dam, pp. 118- 161.

4. R. W. Floyd, “On ambiguity in phrase structure languages ” Communications o f the


A CM 5:10 (1962), pp. 526- 534.

5. S. Ginsburg, G. F. Rose, “Some recursively unsolvable proble ms in ALGOL- like


languages,” J. A CM 10:1 (1963), pp. 29- 47.

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.

7. E. Post, “A variant o f a recursively unsolvable problem,” Bulletin o f the AMS 52


(1946), pp. 264- 268.

8. H. G. Rice, “Classes o f recursively enumerable sets and their decision problems,”


Transactions o f the AMS 89 ( 1953), pp. 25- 59.

9. A. M. Turing, “On computable numbers with an application to the Entschcidungs-


problem,” Proc. London Math. Society 2:42 (1936), pp. 230- 265.
Capitolo 10

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.

• I problemi ris olvibili in te mpo polinomiale su un tipico computer coincidono con


que lli risolvibili in te mpo polinomiale su una macchina di Turing.

• 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.

In questo capitolo presentiamo la teoria de ll’“intrattabilità”, ossia le tecniche per dimo­


strare che un problema non è ris olvibile in tempo polinomiale . Parliamo da un problema
specifico: la questione se un'espressione boolcana possa essere soddisfatta, cioè se ha va­
lore vero per un certo assegnamento dei valori di verità TRUE (vero) e FALSE (falso) alle
sue variabili. Questo problema svolge per i problemi intrattabili la stessa funzione che L u
o PCP svolgono per i proble mi inde cidibili. Partiremo dal “teorema di Cook”, secondo
il quale la s oddis facibilità delle formule booleane non può essere decisa in tempo poli­
nomiale. Spiegheremo poi come ridurre questo proble ma a molti altri, di cui si dimostra
così Γ intrattabilità.
Poiché il tema è se i problemi possono essere risolti in tempo polinomiale , bisogna
cambiare il concetto di riduzione. Non basta più. infatti, un algoritmo che trasforma
le istanze di un problema in istanze di un altro. L’algoritmo stesso deve impiegare al
mass imo un te mpo polinomiale , altrimenti la riduzione non permette di concludere che il
438 Capitolo 10

proble ma di destinazione è intrattabile, per quanto il proble ma sorgente lo sia. Ne l primo


paragrafo introdurremo perciò la nozione di “riduzione polinomiale ”.
C ’è un’altra dis tinzione importante tra gli e nunciati che abbiamo ricavato nella teoria
de ll’inde cidibilità e que lli che ricaveremo con la teoria de ll’intrattabilità. Le dimos trazio­
ni di inde cidibilità illustrale nel Capitolo 9 sono incontrove rtibili; dipe ndono unicame nte
dalla de finizione di macchina di Turing e dalla mate matica usuale. Per contro, i risultati
sui proble mi intrattabili chc dare mo qui si fondano tutti su un’ipotesi non dimos trata, ma
fortemente creduta, la cosiddetta ipotesi 'P φ M V .
Essa afferma che la classe dei proble mi ris olvibili da T M non deterministiche che
operano in te mpo polinomiale include alme no alcuni proble mi che non possono esse­
re risolti da T M deterministiche operanti in tempo polinomiale (per quanto si accettino
gradi elevati del polinomio). Esistono letteralmente migliaia di proble mi che sembrano
appartenere a questa categoria, visto che possono essere risolti facilmente da una NT M
in te mpo polinomiale , mentre non conos ciamo nessuna DT M (o, in modo equivalente,
nessun programma tradizionale ) che li risolva in te mpo polinomiale . La teoria de ll’intrat­
tabilità ha una conseguenza importante: o quei proble mi hanno tutti s oluzioni polinomiali
dete rministiche, e la cosa ci c s fuggita per secoli, oppure nessuno ne ha, cioè richie dono
veramente un te mpo esponenziale.

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 .

10.1.1 Proble mi ris olvibili in te mpo polinomiale

Dire mo che una macchina di T uring M ha complessità in tempo T (n ) (o che ha te mpo di


esecuzione T (n )) se, a fronte di un input w di lunghe zza n , M si arresta dopo aver fatto
al mas s imo T (n ) mosse, a prescindere dal fatto chc accetti o no. La de finizione si applica
a qualunque funzione T (n ), come T (n ) = óOr r o T (n ) = 3n + 5n 4; ci occupe re mo
prevalentemente del caso in cui T (rì) è un polinomio in ??,. Dir e mo che un linguaggio L è
ne lla classe V se esiste un polinomio T (n ) tale che L = L ( M ) per una T M dete rministica
M di comple s s ità in te mpo T (n).
Le classi V ed A f V 439

Tra polinomiale ed e sponenziale


Ne lla trattazione introduttiva, e anche successivamente, ipotizziamo che tutti i
programmi impie ghino te mpo polinomiale (cioè 0 ( n h) per un intero k), o tempo
esponenziale (cioè 0 (2 cn) per una costante c > 0), o superiore. Ne lla pratica gli
algoritmi conosciuti per i proble mi comuni rientrano effettivamente in una delle
due categorie. Es is tono però tempi di esecuzione compres i tra polinomiale ed
esponenziale. Quando parliamo di esponenziale, inte ndiamo “qualunque te mpo
di esecuzione più grande di qualsias i polinomio".
Un esempio di funzione tra i polinomi e gli espone nziali è n log2” . Si tratta
di una funzione che cresce più velocemente di qualsiasi polinomio in n, dato chc
logre, diventa (per valori grandi di n) maggiore di qualunque costante k. D ’altra
parte n log2 n = 2^'°K2 ; per convincersene basta prendere il logaritmo di e n­
trambi i me mbri. Questa funzione cresce più lentamente di 2cn per qualunque
c > 0. In altre parole, per quanto piccola sia la costante pos itiva cn finirà per
essere maggiore di (Iog2 n ) 2.

10.1.2 Un esempio: l’algoritmo di Krus kaI


Il lettore conosce probabilmente diversi problemi che hanno s oluzioni efficienti, magari
per averli studiati in un corso di algoritmi e strutture dati. Questi proble mi sono general­
mente in 'P. Ne esamineremo uno: trovare un albero di copertura di peso minimo (MWST,
Minimum- Weight Spanning Tree) in un grafo.
In te rmini informali cons ide riamo i grafi comc diagrammi del tipo rappresentato nella
Figura 10.1. Ci sono nodi, qui numerati da 1 a 4, c lati tra alcune coppie di nodi. Ogni
lato ha un peso, che è un intero. Un albero di copertura è un sottoinsieme di lati tali
da connettere tutti i nodi, ma senza formare cicli. Un es empio di albero di copertura è
illustrato ne lla Figura 10.1; si tratta dei tre lati disegnati con un tratto più spesso. Un
albero di copertura si dice di peso minimo se il peso totale dei suoi lati è il più piccolo fra
tutti gli alberi di copertura.
Un noto algoritmo greedy , detto algoritmo di Krus kal1, serve a trovare un MWST . Ne
rias s umiamo le caratteristiche fondame ntali.

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:

(a) si seleziona il lato, che farà parte de ll’albero di copertura


(b) si riuniscono le due componenti connesse coinvolte, associando a ogni loro
nodo lo stesso numero identificativo de lla componente connessa.

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.

E possibile implementare quest’algoritmo (usando un computer, non una macchina


di Turing) e avere, per un grafo di m nodi ed e lati, un tempo di esecuzione 0 ( m -I-
Le classi V ed M 'P 441

d o g e ) . L’imple me ntazione più se mplice procede in e “turni”. Una tabella fornisce la


compone nte di ogni nodo a ogni istante. In tempo O(c ) s ce gliamo fra i lati restanti que llo
di peso più piccolo, e in te mpo O ( I) troviamo le compone nti dei due nodi uniti dal lato.
Se si trovano in compone nti diverse, in te mpo 0 (rn ) r iuniamo tutti i nodi che recano
que i valori, percorrendo la tabella dei nodi. Il te mpo totale impie gato daH'algoritmo è
0 (e (e -I- m )). Ques to te mpo di esecuzione è polinomiale ne lla “dime ns ione ” de ll’input,
che pos s iamo informalme nte considerare come la s omma di e ed m.
Se proviamo a tradurre queste idee nei termini di una macchina di Turing, ci troviamo
di fronte ad alcuni problemi.

• 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.

1. La differenza tra la dime ns ione come stringa di input di una T M e la dime n­


sione come input di un proble ma informale non è mai superiore a un fattore
piccolo, solitamente il logaritmo della dime ns ione de ll'input. Di conse guenza
quanto può essere fatto in te mpo polinomiale rispetto a una mis ura può essere
fatto in tempo polinomiale anche rispetto all'altra.
2. La lunghe zza di una stringa che rappresenta l'input è effettivamente una m i­
sura più precisa del nume ro di byte che un compute r deve leggere per ottenere
l’input. Per es empio, se un nodo è rappresentato da un intero, allora il nu­
mero di byte necessari per rappresentarlo è proporzionale al logaritmo de lla
dime ns ione de ll’intero, e non è “un byte per quals ias i nodo”, come potre mmo
immaginare in una s piegazione informale de lla dime ns ione de ll'input.
442 Capitolo 10

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.

1. Attribuiamo ai nodi gli interi da 1 a m .

2. Inizia mo la codifica con il valore di m in binario e il limite di peso W in binario


separati dalla 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.

3. Quando un lato viene selezionato in un passo, collochiamo i suoi due nodi su un


nastro e ne ce rchiamo le compone nti nella tabella dei nodi e compone nti. L'ope ra­
zione richiede te mpo 0 (n ).

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.

10.1.3 Tempo polinomiale non de te rminis tico


Ne llo s tudio de ll'intrattabilità una classe fondame ntale di proble mi è que lla dei proble mi
r is olvibili da una T M non deterministica in tempo polinomiale . In termini formali dire mo
che un linguaggio L è ne lla classe M V (polinomiale non dete rminis tica) se esiste una T M
non de te rminis tica M c una compless ità polinomiale in te mpo T (n ) tale che L = L (M )
e che, quando a M viene dato un input di lunghe zza n, in M non ci sono sequenze di
mosse più lunghe di T (n).
La prima osservazione è che V C A rV , dato che ogni T M deterministica è una T M
non dete rminis tica senza pos s ibilità di scelta fra mosse. Sembra però che j W conte n­
ga molti proble mi non in V . Intuitivame nte questo accade perché una NT M che opera
in te mpo polinomiale ha la capacità di congetturare un nume ro e s pone nziale di s olu­
zioni pos s ibili al proble ma e controllarne ciascuna in te mpo polinomiale , “in paralle lo”.
Os s e rviamo tuttavia:
444 Capitolo 10

Una variante de ll’accettazione non de te rminis tica


Abbiamo imposto alle NT M di arrestarsi in te mpo polinomiale in tutte le dira­
mazioni, a prescindere dal fatto che accettino o no. Avre mmo potuto imporre
il limite di tempo polinomiale T (n) solo sulle diramazioni che conducono al­
l’accettazione; cioè avre mmo potuto definire A rV come ins ie me dei linguaggi
accettali da NT M che accettano tramite alme no una sequenza di non più di T (rì)
mosse, per un polinomio T (n).
Avre mmo comunque ottenuto la stessa classe di linguaggi. Sape ndo infatti
che, se M accetta, lo fa in T (n) mosse, pos s iamo modificarla in modo che conti
fino a T (n ) su una traccia distinta del nastro e si arresti senza accettare se supera
T (n). La M modificata può compiere 0 ( T 2(n)) passi, ma T 2(n) è un polinomio
sc lo è T (r¿).
In effetti avre mmo potuto anche definire V per accettazione da parte di T M
che accettano in te mpo non supcriore a T (n), per un polinomio X(n ), ma che
possono non arrestarsi se non accettano. Con la stessa costruzione usata per le
NT M pos s iamo infatti modificare la DT M in modo che conti fino a T (n) e si
arresti se si eccede il limite . La DT M opererebbe in te mpo θ ( Τ 2(η)).

• la questione, tuttora aperta, se V — ArV , ossia se effettivamente tutto ciò chc


una NT M può fare in te mpo polinomiale possa essere fatto da una DT M in tempo
polinomiale , eventualmente di grado più elevalo, è una delle que s tioni più profonde
de lla matematica.

10.1.4 Un esemplare di ΛfV: il proble ma del commesso viaggiatore


Per avere un’idea della portata di A rV , cons ide riamo un es empio di proble ma che sembra
essere in A rV ma non in V : il problema de! commesso viaggiatore (TSP. T raveling Side­
sman Problem). L'input di T SP è uguale a que llo di MWST : un grafo con pesi interi sui
lati, come ne lla Figura 10.1, e un limite di peso W . La domanda è se il grafo abbia un
“circuito hamiltoniano” di peso totale non supcriore a W . Un circuito hamiltoniano è un
insieme di lati che connettono i nodi in un unico ciclo in cui ogni nodo figura una sola
volta. Os s e rviamo che il nume ro dei lati di un circuito hamiltoniano deve coincidere con
il nume ro di nodi del grafo.

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.

Quals ias i modo di risolvere il T SP comporta apparentemente l’esame di tutù i cicli


e il calcolo, per ognuno, del peso totale. In realtà si pos sono tralasciare alcune scelte
palesemente sbagliate; in ogni caso, se s iamo sfortunati ne ll’ordine in cui pre ndiamo
in esame i cicli, sembra necessario esaminarne un nume ro e s ponenziale pr ima di poter
conclude re che nessun ciclo rispetta il limite di peso W o di trovarne uno.
D ’altra parte, se avessimo un compute r non deterministico, potre mmo scegliere una
pe rmutazione dei nodi e computare il peso totale del ciclo corrispondente. Sc l'input
fosse di lunghe zza n, nessuna diramazione richiederebbe più di 0 (rì) passi. Su una NT M
multinas tro è possibile scegliere una pe rmutazione in 0 ( n 2) passi c calcolare il suo peso
totale in un te mpo analogo. Di conseguenza una NT M a nastro s ingolo può risolvere il
TSP in un te mpo massimo 0 ( n 4). La conclus ione è chc il T SP è in M V .

10.1.5 Riduzioni polinomia li


La tecnica principale chc adottiamo per dimostrare che un proble ma P2 non può essere
risolto in te mpo polinomiale (cioè chc P2 non è in V ) è la riduzione di un proble ma P\ ,
che si sa non essere in V , a P2.2 Il me todo è illustrato ne lla Figura 8.7, riprodotta come
Figura 10.2.

F ig ur a 10.2 Sche ma di riduzione.

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.

10.1.6 Proble mi NP- compIeti


Ci occupiamo ora di una famiglia di proble mi compos ta dai più noti candidati ad apparte­
nere a M V ma non a V . Sia L un linguaggio (proble ma). Diciamo che L è NP- completo
se i seguenti enunciati sono veri.

I. L è in M V .
Le classi V ed M V 447

2. Per ogni linguaggio L ' in M V esiste una riduzione polinomiale di L ' a L .

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.

T e ore ma 10.4 Sia P i un proble ma NP- completo e Po un proble ma in M V . Se esiste una


riduzione polinomiale di P\ a P-¿. allora P¿ è NP- completo.

Dobbiamo dimostrare che ogni linguaggio L in M V si riduce in te mpo


D IM O S T R A Z IO N E
polinomiale a P¿. Sappiamo che esiste una riduzione polinomiale di L a P 1 che impie ga
un te mpo polinomiale p ( n ) . Di cons eguenza una stringa w in L di lunghe zza n viene
convertita in una stringa a; in P i di lunghe zza mas s ima p{n).
Sappiamo inoltre chc esiste una riduzione polinomiale di P i a P¿; s upponiamo che
essa impie ghi un tempo polinomiale q(m ). La riduzione Iras fonna dunque x in una stringa
y in P2, impie gando un te mpo mas s imo </(p(«)). Pertanto la trasformazione di w in y
impie ga un te mpo mas s imo p (n ) + q (p (n )), che è polinomiale . Concludiamo che L è
r iducibile in tempo polinomiale a P¿. Dato che L è un linguaggio arbitrario in M V ,
abbiamo dimos trato che l’intera classe M V si riduce polinomialme nte a P-¿, cioè che P<¿
ò NP- completo.

C ’è un altro importante teorema da dimostrare in relazione ai problemi NP- completi:


se uno qualunque di essi è in V , allora tutta la classe M V è contenuta in V . Poiché s iamo
convinti che molti problemi in M V non sono in V , cons ide riamo la dimos trazione che un
proble ma è NP- completo equivalente alla dimos trazione che esso non ha alcun algoritmo
polinomiale , e quindi neppure una s oluzione pratica basata su computer.

T e ore ma 10.5 Se un proble ma NP- completo P è in V , allora V = M V .

Supponiamo chc P sia NP- completo e si trovi in V . Ogni linguaggio


d im o s t r a z io n e

L in M V si riduce allora in te mpo polinomiale a P . Sc P è in V , allora L c in V , come


discusso nel Paragrafo 10.1.5.
448 Capitolo 10

Proble mi NP- hard


Alcuni problemi L sono così "ar dui” (hard) che, sebbene sia possibile dimostrare
la condizione (2) della de finizione di NP- completezza (ogni linguaggio in M V
si riduce a L in tempo polinomiale ), non pos s iamo dimostrare la condizione (1):
che L è in M P . In questo caso chiameremo L NP- hard. In precedenza abbiamo
usato il termine informale “ intrattabile” in relazione a proble mi che sembrano
richiedere tempo esponenziale. L'us o di “intrattabile” in luogo di “NP- hard” è
generalmente accettabile, anche se in principio potrebbero esserci problemi che
richiedono tempo esponenziale pur non essendo NP- hard in senso formale.
Una dimos trazione che L è NP- hard basta per indicare che L richiede molto
probabilmente un tempo esponenziale o superiore. Se però L non è in JV'V , la sua
difficoltà non è utile a dimostrare chc tutti i proble mi NP- completi sono difficili.
In altre parole può valere V = A rV . anche se L richiede tempo esponenziale.

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.

* a) Modificate da IOa 25 il peso del lato (1 .3).

b) Modificate in 16 il peso del lato (2 ,4 ).

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

Altre nozioni di NP- completezza


11 vero obicttivo de llo studio de ll’NP- completezza è il Teorema 10.5, cioè l'ide n­
tificazione dei proble mi la cui appartenenza a V implic a V = A f V . La de finizio­
ne di "NP- comple to” usata finora, detta spesso Ka rp- compìe lezzo perché venne
utilizzata per la prima volta in un fondame ntale studio di R. Karp s ull’argomento,
è adatta a cogliere ogni proble ma chc pos s iamo ritenere soddisfi il Teorema 10.5.
Altre nozioni più ampie di NP- complete zza sono compatibili con il Teorema 10.5.
Per esempio Cook, nel suo studio originale sul tema, de finiva un proble ma P
come “NP- completo” se. dato un oracolo per il proble ma P , ossia un me ccanis mo
che in una unità di te mpo può rispondere a qualunque domanda s ull’appartenenza
di una data stringa a P. è pos s ibile riconoscere qualunque linguaggio in A fV in
te mpo polinomiale . Que s to tipo di NP- complctezza c detta Cook- completezza. In
un certo senso la Karp- comple tezza c il caso speciale in cui si pone a ll’oracolo
una sola domanda. La Cook- comple te zza però permette anche di “invertire” la
risposta; per e sempio si potrebbe porre all’oracolo una domanda e poi rispondere
il contrario di quanto dice l’oracolo. Una cons e gue nza de lla de finizione di Cook
è che anche i comple me nti dei proble mi NP- completi sarebbero NP- completi.
Us ando una nozione più ristretta de lla Karp- completczza, come effettivamente
facciamo, nel Paragrafo 11.1 s iamo in grado di operare un’importante dis tinzione
tra i proble mi NP- completi (nel senso di Karp) e i loro comple me nti.

(0 ,1 . 0), ( 1, 1 ,0 ), (1 ,1 ,1 ), ( 1 .0 , 1), (1 , 0 .0 ), e ritorno a (0 ,0 ,0 ). La Figura 10.3 non ha


alcun circuito hamiltoniano.

a) Dimostrate chc la Figura 10.3 non ha alcun circuito hamiltoniano. Suggerimento:


considerate che cosa succede quando un circuito hamiltoniano ipotetico passa at­
traverso il nodo centrale. Da dove può venire e verso dove può andare senza tagliar
via una parte del grafo dal circuito hamiltoniano?

b) Per quali valori di jì ed rn esiste un circuito hamiltoniano?

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.

I. L i = {(¢7./1, D) I G è una CFG (codificata), A e B sono variabili (codificate) d


G e gli ins ie mi di stringhe te rminali derivate da .4 e B sono ide ntici}.

2. L 2 = {(G ì, G 2) I G\ c G 2 sono CF G (codificate) c L ( G i ) = L ( G 2)).


450 Capitolo 10

F ig ur a 10.3 Un grafo con n — 2, m = 3.

Eseguite quanto segue e ris pondente al quesito posto.

* a) Dimos trate che L i è riducibile in tempo polinomiale a L->.

b) Dimos trate che L i è riducibile in tempo polinomiale a Li.

* c) Che cosa dicono (a) e (b) circa la pos s ibilità che L\ ed L-¿ siano NP- complcti?

Es e r cizio 10.1.6 In quanto classi di linguaggi, V ed ΛÍV hanno ciascuno determinate


proprietà di chiusura. Dimos trate che V è chius o rispetto alle seguenti operazioni:

a) inversione

* b) unione

*! c) concatenazione

! d) chius ura (star)

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

10.2 Un proble ma NP- completo


Presentiamo ora il pr imo proble ma NP- completo: decidere se un’espressione boolea-
na è s oddis facibile. Ne dimos triamo l’NP- complctezza riduce ndo e s plicitamente il lin­
guaggio di qualunque T M non de te rminis tica polinomiale in te mpo al proble ma de lla
s oddis facibilità.

10.2.1 II proble ma de lla s oddis facibilità


Lc espressioni booleane sono costruite a partire da:

1. variabili a valori boole ani, ossia 1 (vero) o 0 (fals o)

2. gli operatori binari Λ e V, che s ignificano AN D e OR logico di due espressioni

3. l’operatore unario chc s ignifica la negazione logica

4. parentesi per raggruppare operatori e operandi in modo da modificare , se necessa­


rio, l’ordine di precedenza predefìnito: prima ->, poi Λ, infine V.

Es e mpio 10.6 Un esempio di espressione booleana è x Λ - >(?/ V z ). La sottoespressione


y V z è vera se la variabile y o la variabile 2 ha valore vero, cd è fals a se le due variabili
sono false. La sottoesprcssione più ampia - >(y V z ) è vera quando y V 2 è falsa, ossia
quando sia y sia z s ono false. Se y ο z oppure entrambe s ono vere, allora - >(y V z) è
falsa.
Infine cons ide riamo l ’intera espressione. In quanto AN D logico di due sottoespres­
s ioni, essa è vera quando entrambe le sottoespressioni sono vere. Quindi x A - >(y V j ) è
vera quando x è vera, y è fals a e z è falsa. Cl

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.

F ha valore 0 s olo per il quarto assegnamento, in cui x = 0 Q y = 1. Quindi F è


s oddis facibile .

Il problema della soddis facibilità è così definito:

• un'espressione boole ana assegnata è s oddis facibile ?

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.

10.2.2 Rappre s e ntazione di is tanze di SAT


I s imboli in un’espressione boole ana sono Λ, V. le parentesi aperta e chius a, e i s imboli
che rappresentano le variabili. La s oddis facibilità di un ’espressione non dipende dai nomi
de lle variabili, ma solo dal fatto che due occorrenze di variabili rappresentino la stessa
variabile o due variabili diverse. Di cons e guenza pos s iamo presumere che Ie variabili
s iano X i,X 2 , · · · » anche se ne gli esempi continue re mo a usare nomi di variabili come y o
z . oltre a x . As s umiamo inoltre di rinominare le variabili in modo da usare gli indici più
Un problem a NP- completo 453

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.

1. I s imboli Λ, V, e ) sono rappresentati da se stessi.

2. La variabile x¡ è rappresentata dal s imbolo x seguito dalla rappresentazione binaria


di i.

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 )

Os s e rviamo che la lunghe zza de ll’espressione booleana codificala è pari a circa il


nume ro di pos izioni ne ll’espressione, contando 1 per ogni occorrenza di variabile. La
differenza si spiega con il fatto che se l’espressione ha m pos izioni, può avere O (ni)
variabili; le variabili richie dono quindi O(Io g m ) per la codifica. Quindi un'espressione
la cui lunghe zza è di m pos izioni può avere un codice lungo n = O (τη log m ) s imboli.
La differenza tra m e m log rn è senz’altro limitata da un polinomio. Perciò, finché
trattiamo la questione se un proble ma possa essere risolto in tempo polinomiale nella
lunghe zza del suo input, non c ’è bis ogno di distinguere tra la lunghe zza de lla codifica di
un’espressione e il nume ro di pos izioni ne ll’espressione stessa.

10.2.3 NP- completezza del proble ma SAT


Dimos triamo ora il teorema di Cook, secondo il quale SAT è NP- completo. Per dimo­
strare che un problema è NP- completo, dobbiamo in primo luogo provare che è in M V .
Dobbiamo poi dimostrare chc ogni linguaggio in M V si riduce al problema in questione.
454 Capitolo 10

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.

T e ore ma 10.9 (Teorema di Cook) SAT è NP- completo.


d im o s t r a z io n e La prima parte della dimos trazione , cioè provare che SAT è in A rV . è
facile.

1. Sfruttiamo il non de te rminis mo delle NT M per tentare assegnamenti di valori di


verità per l’espressione data E . Se la E codificata ha lunghe zza n, allora il te m­
po 0 ( n ) è sufficiente su una NT M multinas tro. Os s e rviamo che la NT M ha di­
verse scelte e alla fine del tentativo può raggiungere fino a 2” ID distinte. Ogni
diramazione rappresenta il tentativo di un diverso assegnamento di valori di verità.

2. Valutiamo E per l ’assegnamento di valori di verità T . Se E (T ) — 1. accettia­


mo. Os s e rviamo che questa parte è deterministica. Il fatto che altre diramazioni
della NT M possano non condurre a ll’accettazione non ha effetto sul risultato: per
accettare basta un solo assegnamento soddisfacente di valori di verità.

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:

1. a o è la ID iniziale di A l con input w

2. a o h αχ I- · · · h α&, dove k < p(·??.)

3. a/t è una ID con uno stato accettante

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

La strategia adottata può essere riassunta come segue.

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.

b) De s criviamo la sequenza di ID in termini di variabili booleane. creando la variabile


tjijA per rappresentare la proposizione X ¡j = A. Qui i e j sono interi ne ll'inte rvallo
da 0 a p(n) e A è un s imbolo di nastro oppure uno stato.

c) Es primiamo la condizione che la sequenza di ID rappresenta l’accettazione di un


input w scrivendo un’espressione booleana s oddisfacibile se e solo se M accetta w
con una sequenza di non più di p (n ) mosse. L’assegnamento soddisfacente è que llo
che “dice la verità” sulle ID; in altre parole x jìja è vero se e solo se X 13 = A. Per as­
sicurarci della correttezza de lla riduzione di L (M ) a SAT, scriviamo l'espressione
in modo tale che indichi le caratteristiche de lla computazione .

i. Avvio corretto. La ID iniziale è qoìv seguito da blank.


i/i Mossa successiva lecita (cioè la mossa rispetta le regole della T M). Ogni ID
successiva segue dalla precedente tramite una delle mosse lecite di M .
n i. T erminazione corretta. Esiste una ID con stato accettante.

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.

• In secondo luogo è opportuno assumere che tutte le computazioni durino esatta­


mente p(n) mosse (e abbiano perciò p(n) + I ID) anche se l'accettazione avviene
prima. Dunque facciamo sì che ogni ID con uno stato accettarne sia il proprio
successore. In altre parole, se o ha uno stato accettante, permettiamo la “mossa”
a l· tt. Perciò pos s iamo assumere chc, se esiste una computazione accettante, allo­
ra ttp(n) avrà una ID accettante. Que sto è ciò che si deve verificare per la condizione
“Terminazione corretta” .
456 Capitolo 10

La Figura 10.4 illustra una computazione polinomiale di M . Le righe corrispondono alla


sequenza di 1D; le colonne sono le celle del nastro usato ne lla computazione. Osserviamo
che il numero di celle nella Figura 10.4 è (p(n) + 1 )“. Inoltre il nume ro di variabili che
rappresentano ciascuna cella è finito e dipende solo da M ; è infatti la somma del numero
degli stati e dei simboli di nastro di M .

ID 0 1 ... ... p{n)


tt 0 Xoo Xoi Xq .p (h )
rti Xio X ll x I,p(n)

a-i X iJ- I X iJ+ 1


X iJ
°¿+l X i+1,.7-1 X j + 1J X i+ lJ + 1

ctIiM Xp(n).f) Xp(n), 1 Xp(n),p(n)

F ig ur a 10.4 Costruzione de ll’array di celle/ID.

Scriviamo ora un algoritmo per costruire un'espressione booleana E m ,w da M c tv. La


forma complessiva di E m ,w c S A N A F , dove S, N ed F sono espressioni indicanti
chc M comincia, si muove e termina correttamente.

Avvio corre tto

X 0O dev'essere lo stato iniziale qo di M , i simboli da Xo i a J5T0n devono formare ui


(dove n è la lunghezza di w), e i rimanenti Xo j devono essere il blank, ΰ. Quindi se
w = Oi0 2 · · · a „ :

S - VoOq0 Λ 2/01«, A Doi a2 A · A VOnan A )Ιο,η+1,Β A Vo, n+2 ,B A A Vo.p(n).B


Un problema NP-completo 457

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.

T e rminazione corre tta

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.

Mos s a successiva le cita

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.

1. I tre s imboli sopra di esso: X i.)- 1, X ij e X i,j+

2. La mossa scelta da M se uno dei s imboli è lo stato di a , .

Scriveremo N i come l ’A delle espressioni A¿j V B ij, dove j = 0 . 1 , . . . ,p (n ).

• L’espressione A iJ indica chc:

a) lo stato di o¿ c alla pos izione j (cioè X ij è lo stato)


b) M può scegliere una mossa, dove X ij è lo stato e X ì j +i è il s imbolo guar­
dato, che trasforma la sequenza di s imboli X i^- - [Xij X i_j+\ nella sequen­
za X i+] j- iX i+ i.jX i+ \ ,j+ i. Os se rviamo che, sc X ij è uno stato accettan­
te, esiste la “scelta” di non fare alcuna mossa, per cui tutte le ID successive
coincidono con que lla che per prima ha condotto a ll’accettazione.

• L’espressione B ij indica che:


458 Capitolo 10

a) lo stato di a¡ non è ne lla pos izione j (cioè X j non è uno stato);


h) se lo stato di 0 ¾ non è adiacente alla pos izione j (cioè X i j - 1 e X i j + 1 non
sono degli stati), allora X ì +i j = X ij -

Quando lo stato è adiacente alla pos izione j , la correttezza della pos izione j è
garantita da A ij - 1 o da A ij+ 1 .

B ij è la più facile da scrivere. Siano <71, q2, . . . , gli stati di M , e siano Z i i Z 2, . . . , Z r


i s imboli di nastro. Allora:

B ij - (ìJi.j—i.qi V V iJ- Is ii V · · · V V iJ- IlQm) V


(Vi,j+l,qi V Vi.j +l.in V · · V + ) V
((V ij.Zi V V · · V V iJ1Zr) A
{{Vi,j,Zi A V ( v i j , z 2 A 'f/j+i, 7.Z2 ) V · · · V {vij,zr A ?y;+ i . ?.z,.)))

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:

1. X ij è uno stato, ma X i j - 1 e X i j + 1 sono s imboli di nastro

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

X ij - iX ijX ij+ i = D q A e X i+ i'j- ìX i+ ijX i+ ij+ i = p D C . Os se rviamo che l’asse­


gname nto riflette il cambio di ID causato dalla mossa di M . 11 termine che esprime questa
pos s ibilità è

V i , j - \ , D Λ yi.j.q A yi.j + ΐ,Λ A Vi+ 1,j —l ,p A J/»+1,j.D A í/t+LJ + KC


Sc invece S(q. A ) contiene (p. (7, R) (la mossa è la stessa, ma la testina si muove verso
destra), l’assegnamento valido corrispondente è formato da X i j X i j X i j + i = Dq A e
X í + ijX¿ .i- ij+ i = D C p . Il termine per questo assegnamento valido è

V i , j - l , D A y*,j,q A Vi.j+l.A A y-i i l,j —l, D A l,j,C A Vi+l,j+l,p

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

Ni = (>l¿o V B o) A (i4ji V B h ) A — Λ (Α ίφ{η) V B iíP{n))


e dunque

Λ' = Aro Λ N i Λ · · · Λ Λ ρ(„)_ i


Se Λ/ ha molti stati ο s imboli di nastro, A ij e B i., possono essere molto grandi, ma
la loro dime ns ione è comunque una costante rispetto alla lunghe zza de ll’input w; in altre
parole la loro dime ns ione è indipende nte da n, la lunghe zza di w. Di conseguenza la
lunghe zza di Ni è 0 ( p ( n ) ) e la lunghe zza di N è θ ( ρ2(η )). L’aspetto più importante è
che pos s iamo scrivere N su un nastro di una T M multinas tro in un tempo proporzionale
alla sua lunghe zza e polinomiale in n, la lunghe zza di w.

Dimos tr a zione del te or e ma di Co ok: conclus ione

Abbiamo descritto la costruzione di

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

F ig u r a 10.5 Se SAT e in V , si può dimostrare che ogni linguaggio in M V si trova in V


tramite una DT M definita in questo modo.

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?

* a) .TA ( y V - <x) A (2 V - >?/).

b) (o’ V y ) A (- ι(.τ V z) V (~>z A

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).

d) G contiene alme no un nodo isolato, cioè un nodo senza lati adiacenti.

10.3 Un proble ma di s oddis facibilità vincolato


Inte ndiamo dimostrare Γ NP- completezza di un'a mpia gamma di proble mi, tra cui il TSP,
citato nel Paragrafo 10.1.4. In teoria proce diamo per riduzione polinomiale dal proble ma
SAT al proble ma in esame. Esiste però un importante proble ma inte rme dio, detto “3SAT ”,
molto più facile da ridurre ai proble mi tipici rispetto a SAT. Anche 3SAT è un proble ma
di s oddis facibilità di espressioni boole ane , ma per espressioni di forma molto regolare,
formate dalla congiunzione logica di claus ole, ognuna delle quali è la dis giunzione logica
di esattamente tre variabili, e ventualme nte negate.
In questo paragrafo pre s e ntiamo la te rminologia relativa alle espressioni booleane . R i­
duciamo poi la s oddis facibilità di un'espressione quals ias i alla s oddis facibilità di espres­
sioni ne lla forma di 3SAT. È interessante osservare che, se ogni espressione boole ana E
ha u n ’espressione equivalente F ne lla forma normale di 3SAT, la dime ns ione di F può
essere e spone nziale in que lla di E. Una riduzione in te mpo polinomiale di SAT a 3SAT
deve quindi essere più “scaltra” di una se mplice manipolazione algebrica. Dobbia mo con­
vertire ogni espressione E di SAT in un'espressione F ne lla forma normale di 3SAT. Non
occorre che F sia e quivale nte a E: basta che F sia s oddis facibile se e solo se E lo è.

10.3.1 Forme nor ma li di espressioni booleane


Dia mo tre de finizioni fondame ntali.

• 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.

Per abbreviare ulteriormente le espressioni adottiamo una notazione alternativa, in cui


trattiamo V come una s omma, c s criviamo + , e A come un prodotto. Per il prodotto
ricorriamo di solito alla gius tappos izione , senza operatore, come per la concate nazione
nelle espressioni regolari. Confomae me nte dire mo che una claus ola è una “ s omma di
letterali” e u n ’espressione in CNF un “prodotto di claus ole ”.
462 Capitolo 10

Es e mpio 10.10 Nella notazione compressa l’espressione (x V - >y) A (^ x V z ) sarà


scritta (x 4- y )(x 4- z ). L’espressione è in forma normale congiuntiva perché è il prodotto
(AND) delle clausole (x + y ) e (x 4- z).
L’espressione (x + y z )(x 4- y 4- z )(y 4- ) non è in CNF. È bensì il prodotto di tre
sottoespressioni: (x + y z ), (x 4- y 4- z) e (y 4- z ), ma solo Ie ultime due sono clausole.
La prima è la somma di un letterale e del prodotto di due letterali.
L’espressione x y z c in CNF. Ricordiamo che una claus ola può contenere anche un
solo letterale. L’espressione in esame è quindi il prodotto di tre clausole: (x ), (y ) e (z).

U n ’espressione si dice in form a normale k- congiuntiva (fc- CNF) se è il prodotto di


clausole, ognuna delle quali è la s omma di k letterali distinti. Per esempio (x + y )(y 4-
z )(z + a;) è in 2- CNF perché ognuna delle sue clausole ha esattamente due letterali.
Ogni vincolo sulle espressioni booleane dà luogo a un proble ma di s oddis facibilità
delle espressioni che lo soddisfano. Affronteremo quindi i due problemi seguenti.

• CSAT: una data espressione booleana in CNF è s oddisfacibile?

• ASAT: una data espressione booleana in À’- CNF è s oddis facibile ?

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.

10.3.2 Conversione in CNF di espressioni booleane


Due espressioni booleane si dicono equivalenti se danno lo stesso risultato per ogni asse­
gname nto di valori di verità alle variabili. Ovviame nte , se due espressioni sono e quivale n­
ti, o sono entrambe s oddis facibili o nessuna delle due lo è. Perciò un metodo promettente
per ricavare una riduzione polinomiale da SAT a CSAT consiste nel convertire espressioni
arbitrarie in espressioni equivalenti in CNF. Questa riduzione dimostrerebbe che CSAT è
NP- completo.
La questione non è però s e mplicis sima. È vero che pos siamo convertire in CNF
qualsiasi espressione, ma la riduzione può richiedere un tempo più che polinomiale .
In particolare può far crescere esponenzialmente la lunghe zza de ll’espressione, e quindi
richiedere te mpo esponenziale per generare il risultato.
Per fortuna convertire un’espressione booleana arbitraria in un'espressione in CNF è
solo uno dei modi di ridurre SAT a CSAT, e così provare che CSAT è NP- completo. In
realtà è sufficiente convertire un’istanza E di SAT in un'is tanza F di CSAT in modo che
F sia soddisfacibile se e solo se E lo è. Non è necessario chc E ed F siano e quivalenti.
Non è neppure necessario chc E ed F abbiano le stesse variabili; in generale, anzi, le
variabili di E saranno un sottoinsieme di quelle di F.
Un problema di s oddis facibilità vincolato 463

T rattame nto di input malfor ma ti


Tutti i linguaggi di cui abbiamo parlato - SAT, CSAT, 3SAT, e così via - sono
linguaggi su un alfabeto fissato, di 8 s imboli, le cui stringhe si possono a volte
interpretare come espressioni booleane. Una stringa che non possa essere inter­
pretala come espressione non può essere nel linguaggio di SAT. In modo s imile ,
se consideriamo espressioni di forma vincolata, una stringa che sia un'espressio­
ne boole ana ben formata, ma non della forma richiesta, non è nel linguaggio. Un
algoritmo di decisione per il proble ma CSAT. per esempio, risponde “no” a fronte
di un ’espressione boole ana s oddis facibile ma non in CNF.

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)

F ig ur a 10.6 Spostamento dei -> verso i letterali in fondo all'albe ro di un’espressione.

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.

T e ore ma 10.12 Pe r ogni espressione boole ana E esiste un’espressione equivalente F in


cui le ne gazioni compaiono solo nei letterali, cioè si applicano direttamente alle variabili.
Inoltre la lunghe zza di F è lineare nel nume ro di s imboli di E, ed F si costruisce da E in
te mpo polinomiale .

DIMOSTRAZIONE La dimos trazione è un'induzione sul nume ro di operatori (Λ, V e - 0 in


E . Dimos triamo l’esistenza di un’espressione equivalente F con lutti i - i nei letterali. Se
E contiene n > 1 operatori, F ne contiene al più 2 n — 1.
Poiché F si può scrivere us ando non più di una coppia di parentesi per operatore, e il
nume ro delle variabili di un’espressione può superare il nume ro di operatori al mas s imo
di uno. concludiamo che la lunghe zza di F è linearmente proporzionale a que lla di E. Ve­
dre mo inoltre che la costruzione di F è tanto semplice da richiedere te mpo proporzionale
alla sua lunghe zza, e quindi proporzionale alla lunghe zza di E.

b ase Se contiene un solo operatore, E dev'essere della forma - >x, a* V y o x A y. con x


e y variabili. In ogni caso E c già de lla forma desiderata e pos s iamo porre F = E . Sia
E sia F hanno un operatore, quindi vale la relazione “il nume ro di operatori di F è al più
doppio di que llo di E, me no 1”.

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

Ey ed F 2 abbiano rispettivamente a c b operatori. Allor a E ne ha a + b + 1. Per l’ipotesi


induttiva F i ne ha al mas s imo 2 a — 1 od F2 al mas s imo 2 b — I. Perciò F ha al mas s imo
2 a + 2 b — I operatori, cioè non più di 2(a + b + 1) — 1, ossia il doppio di F , me no 1.
Cons ide riamo ora il caso in cui E ha forma - 'Ey . A seconda de ll’operatore più esterno
di F i dis tinguiamo tre casi. Os s e rviamo che F i deve contenere un operatore; in caso
contrario F rientrerebbe nei casi di base.

1. F t = - F 2. Per la legge de lla doppia ne gazione , F = —>(—'F 2 ) e quivale a F 2.


Poiché F 2 ha me no operatori di F , si applica l ’ipotesi di induzione . Pos s iamo
quindi trovare una F equivalente a Eo y in cui i -1 figurano solo nei letterali. La
stessa F vale per F . Poiché il nume ro di operatori di F non supera il doppio del
nume ro di operatori di F 2, me no 1, non può superare neppure il doppio di que llo
di F , diminuito di I .

2. Ey = F 2 V F 3 . Per la legge di De Morgan, F = - (Eo V F 3 ) e quivale a


( - ( F 2)) Λ ( - ( F 3)). Sia - ( F 2) sia —( F j) hanno me no operatori di F ; per l’i­
potesi induttiva esistono espressioni equivalenti F2 ed Fi con tutti i - nei letterali.
Quindi F = (F 2) Λ ( F i) serve da equivalente di F . Affe rmiamo inoltre chc il
nume ro di operatori di F non è “troppo elevalo”. Sia a il nume ro di operatori di F 2
e b que llo di F j . Allor a F ha a + b + 2 operatori. Poiché - ( F 2) e —( F 3 ) hanno
rispettivamente a + 1 e b + 1 operatori, ed F 2 ed Fi sono ricavati da que lle espres­
s ioni, per ipotesi di induzione s appiamo che F 2 cd Fi hanno al più rispettivamente
2 (a + 1 ) — 1 e 2 (b + 1 ) - 1 operatori. Quindi F ha non più di 2 a + 2b + .'3 operatori.
Que s to numero è esattamente il doppio del nume ro di operatori di F , me no 1.

3. F i = F 2 Λ E i . In questo caso si procede comc in (2) applicando la seconda legge


di De Morgan.

10.3.3 NP- completezza di CSAT


Dobbiamo ora convertire in CNF un’espressione F formata da AND e OR di letterali.
Come già de llo, per produrre in te mpo polinomiale , a partire da F , un’espressione F
s oddis facibile se e solo se F è s oddis facibile , dobbiamo rinunciare alle tras formazioni che
preservano l ’e quivalenza e introdurre in F variabili che non figurano in E. Ci serviremo
di questa te cnica per dimostrare che CSAT è NP- completo; per chiarire la costruzione , ne
dare mo poi un esempio.

T e ore ma 10.13 CSAT è NP- completo.


466 Capitolo IO

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à.

a) F è in CNF ed è formata da non più di n claus ole.


b) F si può costruire da E in te mpo non supcriore a c\ E\ ¿.
c) Un assegnamento di valori di verità T per E rende E vera se e solo se c ’è
un’estensione S di T che rende F vera.

BASL Se E consiste di uno o due s imboli, è un letterale. Ma un letterale è una claus ola,
dunque E è già in CNF.

INDUZIONE As s umiamo che ogni espressione più breve di E si possa convertire in un


prodotto di claus ole in te mpo non superiore a eri2 per un’espressione di lunghe zza n. A
s econda de ll’operatore principale di E dis tinguiamo due casi.

Cas o I: E = E\ A E 2. Per l’ipotesi di induzione esistono due espressioni in CNF, F\


ed F ì, derivate rispettivamente da E\ ed E 2. Tutti e soli gli assegnamenti soddisfacenti
per E 1 si pos sono estendere ad assegnamenti soddisfacenti per F i , e lo stesso vale per E 2
ed F 2. Se nza perdere in ge ne ralità, as s umiamo che le variabili di Fi e quelle di F2 siano
Un problema di soddisfacibilità vincolato 467

d is g iu n le , tr anne che pe r le v a r ia b ili chc fig ur a no in E . Se d o b b ia m o intr odur r e nuo ve


v a r ia b ili in F i o in F 2, le s c e g lia m o dive r s e da lle altre .
S ia F = F i Λ F2. F 1 Λ F2 è c hia r a m e nte u n ’e s pr e s s ione in C N F se lo s o no F i e d F2.
Do b b ia m o dimos tr ar e che un as s e gna me nto d i va lo r i di ve r ità T pe r E si p u ò e s te nde r e a
un a s s e gna me nto s o ddis fac e nte pe r F se e s o lo se T s o d dis fa E.

(Se ) S u p p o n ia m o che T s oddis fi E. S ia T 1 c o m e T , m a lim it a t o a lle v a r ia b ili pr e s e nti


in E\ , e s ia T2 la s te s s a cos a r ife r ita a E 2. Pe r ipote s i di in d u zio n e , T 1 e T2 s i p o s s o no
e s te nde r e a d a s s e gna me nti S i e d S 2 c he s o d d is fa no r is pe ttiva me nte F i e d F2. De fin ia m o
S in a c c o r do co n S i e d S 2 s ulle r is pe ttive v a r ia b ili. P o ic h é le s ole va r ia b ili c o m u n i a
F 1 e d F2 s ono que lle di E , e d S i e d S 2 de vo no c o inc ide r e s u d i es s e se s o no e ntr a mbe
de finite , è s e mpr e p o s s ibile c os tr uir e S. Du n q u e S è u n ’e s te ns io ne d i T chc s o ddis fa F.

(S o lo s e ) N e ll’altr a d ir e zio ne , s ia S u n ’e s te ns ione d i T c he s o ddis fa F. S ia T 1 (r is pe t­


tiva me nte T2) c o m e T , m a lim it a t o a lle v a r ia b ili d i F 1 (ris p. E2). C o n S\ (r is p. S 2)
d e n o t ia m o S r is tr e tto a lle va r ia b ili d i F 1 (r is p. F2). Allo r a S i e u n ’e s te ns ione di T 1 e d S 2
u n ’e s te ns ione d i T2. P o ic h é F è l’A N D d i F 1 e d F 2, ne c e s s ar iame nte S i s o ddis fa F 1, e d
S 2 s o ddis fa F 2. Pe r ipote s i d i in d u z io n e , T 1 (r is p. T2) s o ddis fa E] (r is p. E 2). Du n q u e T
s o ddis fa E.

Ca s o 2: E = E i V E 2. Co m e ne l ca s o 1, r ic o r r ia m o a ll’ipote s i d i in d uzio n e pe r a ffe r mar e


l ’e s is te nza di due e s pr e s s ioni CN F , F i e d F 2, c o n le s e g ue nti pr opr ie tà.

1. U n as s e gna me nto di va lo r i di ve r ità pe r F 1 (ris p. E2) s o ddis fa F 1 (ris p. E 2) se e


s o lo s e si p uò e s te nde r e a u n a s s e g na me nto c he s o d d is fa F i (ris p. F 2).

2. Le va r ia bili d i F i e d F2 s ono d is g iunte , tr anne que lle pr e s e nti in E.

3. F i e d F2 s ono in CNF .

Pe r co s tr uir e F non p o s s ia m o fare s e m plic e m e nte Γ O R di F j e d F2 pe r c hé l ’e s ito non


s ar e bbe in CN F . Ric o r r ia m o d u n q u e a u n a c o s tr uzio ne p iù c o m p lic a t a , in cui s fr uttia ­
m o il fa tto che v o g lia m o s o lo pr e s e r vare la s o d d is fa c ib ilit à s e nza chie de r e l ’e q uiva le nza .
S u p p o n ia m o
^ i = g\ A g 2 A - · A gp
e d F2 == h\ A h2 A · · Λ h q, do ve le g e le h s ono c la us o le . In t r o d u c ia m o una nuo va
va r ia bile y. Sia

F = (y + g] ) A (y 4- g2) A · · · Λ (y + gv ) A (y + Zi1) Λ (y + /¿2) A · · · A (y + hq)

Do b b ia m o dimos tr a r e c he un a s s e gna me nto di va lo r i d i ve r ità T pe r E s o ddis fa E se e


s olo se T si p u ò e s te nde r e a un a s s e gna me nto S c he s oddis fa F .
468 Capitolo IO

(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.

1. Per ogni variabile x in E 1, S(ar) = Sj (x).

2. S(y ) = 0. Questa scelta rende vere tutte le clausole di E derivate da E2.

3. Per ogni variabile x presente in E2 ma non in E| , S (x ) coincide con T (x ) se questo


è definito; altrimenti può valere arbitrariamente O o 1.

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:

T ( I) = T (2) < e per una costante e


T (n) < dn + c ma x o<i<n- i (T(?‘) + T (n — 1 — ?’)) per n > 3
Un problema di soddisfacibilità vincolato 469

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.

B AS E Per n = 1 scegliamo c maggiore o uguale a e.

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

T (i ) + T (n — i — 1) < n 2 — 2i(n —i) — 2 (n - i) + I (10.1)

Poiché n > 3 e 0 < t < n - 1, 2 i(n - i) è maggiore o uguale a n, e 2 (n — i) è


maggiore o uguale a 2. Quindi il membro destro di (10.1) è minore di ri2 — n per ogni
valore ammissibile di i. La parte ricorsiva della definizione di T (n) afferma allora che
T (n ) < dn + cri2 — cn. Scegliendo c > d deduciamo che T (n) < a i 2 è vera per n, e
questo completa l ’induzione. Perciò la costruzione di E da E richiede tempo 0 ( n 2).

Es e mpio 10.14 Applichiamo la costruzione del Teorema 10.13 a un'espressione sempli­


ce: E = x y + x (y + z). L’albero sintattico dell'espressione è illustrato nella Figura 10.7.
Presso ogni nodo è riportata l’espressione in CNF associata a quella rappresentata dal
nodo.
Le foglie corrispondono ai letterali; per ogni letterale l’espressione in CNF è una clau­
sola formata dal letterale stesso. Per esempio l’espressione in CNF associata alla foglia
contrassegnata da y è (y). Le parentesi sono superflue; le manteniamo nelle espressioni
in CNF per ricordare che trattiamo con prodotti di clausole.
Per un nodo AND la costruzione dell'espressione in CNF consiste nel formare il pro­
dotto (AND) di tutte le clausole delle due sottoespressioni. Quindi, per esempio, l’e­
spressione in CNF associata al nodo della sottoespressione x (y + z) è il prodotto di una
clausola per x , cioè (z), e delle due clausole per y -I- 2 , cioè (v -I- ?/)(£ + 2 ).3
Per un nodo OR dobbiamo introdurre una nuova variabile. La aggiungiamo a tutte le
clausole de ll’operando sinistro, e ne aggiungiamo la negazione alle clausole de ll’operan-
do destro. Consideriamo per esempio il nodo radice nella Figura 10.7. Esso è l'OR delle
•In que s to cas o par ticolar e , in c ui la s ottoes pres s ione y + z c di pe r sé una claus ola, non è neces s ario
compie r e Ia cos tr uzione ge ne rale pe r l’O R di e s pre s s ioni, e avr e mmo potuto s cegliere (y + z ) come pr odotto di
claus ole e quivale nte a y + z. In que s to e s e mpio ci atte nia mo alla re gola gene rale .
470 Capitolo IO

(u + X )(u + V )(u + X )(u + V + y ) (m + v + z )

(y + >· ) ( v + z )

(v ) (z )

F ig ur a 10.7 Trasformazione in CNF di un’espressione booleana.

espressioni x y e x (y + z ), le cui espressioni in CNF sono state calcolale come (x )(y ) e


(x )(v + y )(v + z ). Introduciamo la nuova variabile u, aggiunta senza negazione al primo
gruppo di clausole e negata al secondo. Il risultato è

F = (u + .r)(í¿· - r y )(« + χ )(ΰ + V + y )(u + v + z)

Secondo il Teorema 10.13 ogni assegnamento di valori di verità T che soddisfa E si


può estendere a un assegnamento S che soddisfa F. Per esempio l’assegnamento T (x ) =
0, T (y ) = I e T (z ) = 1 soddisfa E. Poss iamo estendere T a S aggiungendo S (u) = 1
e S (v ) = Oa S (x ) = 0, S (y ) = I e S (z ) = 1 derivate da T . Si può verificare che S
soddisfa F.
Osserviamo che nella scelta di S abbiamo dovuto porre S (u) = 1 perché T rende vera
solo la seconda parte di E , cioè x (y + z). Il prodotto di clausole (u + x )(u + y), derivato
dalla prima parte di E , diventa vero se S (u ) = 1. Possiamo invece scegliere qualsiasi
valore per v, dal mome nto che entrambi i me mbri di OR in y + z sono veri rispetto a T.

10.3.4 NP- completezza di 3SAT


De finiamo ora una classe ancora più ristretta di espressioni booleane, per la quale il
problema della s oddis facibilità è NP- completo. Ripe tiamo l’enunciato di 3SAT.
Un problema di soddisfacibilità vincolato 471

• Data un’espressione booleana E in forma di prodotto di clausole, ognuna delle


quali sia la s omma di tre letterali dis tinii, E è soddisfacibile?

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.

Teorema 10.15 3SAT è NP- completo.


DiMOSTRiVZIONE 3SAT c in H V perché SAT è in H V . Per dimostrare che è NP- completo,
riduciamo CSAT a 3SAT. Data un'espressione in CNF E = e\ A β2 A · A c,y., for­
miamo una nuova espressione F sostituendo ogni clausola e¿ nel modo chc descrivere­
mo. 11 tempo necessario per costruire F è lineare nella lunghezza di E, e vedremo che
un assegnamento di valori di verità soddisfa E se e solo se possiamo estenderlo a un
assegnamento che soddisfa F.

1. Se et è un letterale4, poniamo x , introduciamo due nuove variabili u e v. Sostituia­


mo (#) con le quattro clausole (x+ w+ tj)(x+ iti+ v)(a;- | - tt+ i?)(a: + u+ i7). Poiché
u e V compaiono in tutte le combinazioni, c’è un solo modo di soddisfare tutte le
clausole: rendere vera x. Di conseguenza lutti gli assegnamenti che soddisfano E ,
e solo que lli, si possono estendere ad assegnamenti che soddisfano F.

2. Sia t i la s omma di due letterali: (x -I- y ). Introduciamo la nuova variabile z e


sostituiamo c¿ con il prodotto di due clausole (:r + y + z)(x + 3/ + 2 ). Come nel
caso I, il solo modo per soddisfarle è soddisfare (x -I- y).

3. Se è la somma di tre letterali, c già nella forma richiesta per 3- CNF e possiamo
lasciarla in F così com’è.

4. Sia e.i = (x i -I- X2 + · · · + x m) per un m > 4. Introduciamo le nuove variabili


3/1 , 3/2 , . . . , IJrn- Z e sostituiamo e ¿ con il prodotto di clausole

(x‘i 4- X 2 4- 3/ i ) ( x 3 4- y \ + 2/ 2)(^4 4- 3/2 + 3/ 3) · · ■ MO 21


( X m—2 4" Vrn-A 4" U m - s ) (-Em-I 4- Xm 4 ÌJrn—'.i)
Un assegnamento T che soddisfa E deve rendere vero almeno un letterale di e, ; sia
x.j quel letterale (Xj può essere una variabile semplice o negata). Se dichiariamo
j/ ι , y 2, . . . , (jj -2 vere e ijj-y , yj+\ , . . . , Vm- 3 false, tutte le clausole di (10.2) risul­
tano vere. Perciò T può essere estesa in modo da soddisfarle. Viceversa, se in T
tutte le X sono false, non è possibile estendere T rendendo (10.2) vera. Infatti ci
sono m — 2 clausole, e ognuna delle m — 3 variabili y, che sia vera o falsa, può
rendere vera una sola clausola.
4Per c omodità tratte re mo i le tte rali comc var iabili no n negate, per e s e mpio x , ma le cos tr uzioni si applic ano
anche se alcuni o tutti i le tte rali s ono ne gati, come x.
472 Capitolo 10

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.

10.4 Altri proble mi NP- completi


Descriviamo ora schematicamente il processo per cui un problema NP- completo permet­
te di dimostrare che altri problemi sono NP- completi. Questo modo di scoprire nuovi
problemi NP- completi ha due effetti importanti.
A ltri problem i NP- completi 473

• 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.

10.4.1 Descrivere proble mi NP- completi


Ne l presentare nuovi problemi NP- completi adottiamo il seguente schema di definizione.

1. Il nome del problema, di solito accompagnato da un’abbreviazione come 3SAT o


TSP.

2. L'input del problema: che cosa si rappresenta, c come.

3. L'output richiesto: in quali circostanze l ’output d ev ’essere “ sì” ?

4. Il problema da cui si compie la riduzione per dimostrare l’NP- completezza.

Es e mpio 10.16 Ecco come descriviamo il problema 3SAT e la dimostrazione di NP-


completezza.
PROBLEMA: soddisfacibilità di espressioni in 3- CNF (3SAT).

INPUT: u n ’espressione booleana in 3- CNF.

OUTPUT: “ sì” se e solo se l ’espressione è soddisfacibile.

R ID U Z IO N E DA: CSAT.
474 Capitolo 10

10.4.2 II proble ma de gli ins ie mi indipe nde nti


Sia G un grafo non orientato. Un sottoinsieme I di nodi di G si dice un insieme indipen­
dente se nessuna coppia di nodi di I è collcgata da un lato di G. Un insieme indipendente
è massimale se ha almeno tanti nodi quanti ogni altro insieme indipendente.
Es e mpio 10.17 Ne l grafo della Figura 10.1 (v. Paragrafo 10.1.2) {1.4} c un insieme indi-
pendente massimale. Si tratta de ll’unico insieme indipendente di cardinalità due, perché
ogni altra coppia di nodi è unita da un lato. Perciò nessun insieme di tre o più elementi è
indipendente; per esempio {1.2,4} non è indipendente perché c ’è un lato fra I e 2. Quin­
di { 1 , 1} è un insieme indipendente massimale. È in effetti l’unico insieme indipendente
massimale del grafo in esame; in generale un grafo può averne più di uno. Ancora un
esempio per lo stesso grafo: { 1} è un insieme indipendente, ma non massimale.

Nel campo de ll’ottimizzazione combinatoria il problema de ll'ins ie me indipendente


massimale è spesso enunciato in questo modo: dato un grafo, trovare un insieme indi-
pendente massimale. Noi invece, come d'abitudine nella teoria dei problemi intrattabi­
li, vogliamo enunciarlo in termini “sì/no”. Dobbiamo perciò incorporare nell'enunciato
un limite inferiore ed esprimere il problema in questi termini: esiste nel grafo assegna­
to un insieme indipendente di dimensione pari almeno al limite dato? Ecco dunque la
definizione formale del problema.
P ROB LE M A: insieme indipendente (IS, Independent Set).
INPUT: un grafo G e un lim ite inferiore k, com preso fra 1 e il num ero di nodi di G.
OUTPUT: “sì” se c solo se G ha un insiem e indipendente di k nodi.
R ID U Z IO N E d a : 3SAT.
Come anticipato, dimostriamo chc IS è NP- completo per riduzione polinomiale da 3SAT.
Teorema 10.18 II problema de ll’insieme indipendente è NP- completo.
V P
d im o s t r a z io n e E facile vedere che IS è in Λ V: dato un grafo G e un intero k, scegliam o
k nodi arbitrari e verifichiam o se sono indipendenti.
Spieghiamo ora come ridurre 3SAT a IS. Sia E = ( ^ i )( 62 ) *· (c- m) un’espressione in
3- CNE A partire da E costruiamo un grafo G con 3m nodi, ai quali diamo i nomi [i,j],
con 1 < i < m e j = 1, 2 o 3. Il nodo [i,j] rappresenta il j- es imo letterale della clausola
La Figura 10.8 presenta il grafo G derivato dall’espressione in 3- CNF

( 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

Figur a 10.8 Costruzione di un insieme indipendente da un’espressione booleana


soddisfacibile. in 3- CNF.

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.

2. Dobbiamo impedire che i nodi chc rappresentano letterali complementari possano


far parte di un insieme indipendente. Perciò uniamo con un lato due nodi [¿i ,Ji] e
[ h ih ] se uno di questi rappresenta la variabile x c l'altro la variabile x. In questo
modo non possiamo sceglierli per lo stesso insieme indipendente.

Il limite k per il grafo G costruito da queste due regole è ni.


Non è difficile vedere che il grafo G e il limite k si possono determinare dall'espres­
sione E in tempo proporzionale al quadrato della lunghezza di E. La trasformazione da
E a G è quindi una riduzione polinomiale. Dobbiamo dimostrare chc si tratta di una
riduzione corretta di 3SAT a IS, cioè l’enunciato seguente.

• E è soddisfacibile se e solo se G ha un insieme indipendente di dimensione m,

(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

Sulla facilità dei proble mi sì/no


Potremmo sospettare che la versione sì/no di un problema sia più facile di quella
di ottimizzazione . Per esempio, può essere difficile trovare un insieme indipe n­
dente di dimensione massima, mentre verificare che ci sia un insieme indipenden­
te di dime ns ione k , per un valore piccolo di k, potrebbe essere semplice. Questo
è vero, ma la costante k potrebbe essere proprio la dimensione massima di un
insieme indipendente. In tal caso risolvere la versione sì/no equivale a trovare un
insieme indipendente massimale.
In effetti, per tutti i comuni problemi NP- completi, la versione sì/no e que l­
la di ottimizzazione sono equivalenti per complessità, a meno di un polinomio.
In un caso tipico, come IS, se avessimo un algoritmo polinomiale in tempo per
trovare gli insie mi indipendenti mas s imali, saremmo in grado di risolvere il pro­
blema sì/no trovando un insieme massimale e osservando se la sua dimensione è
almeno k. Poiché' dimostriamo che la versione sì/no è NP- complcta. anche l’altra
dev’essere intrattabile.
Possiamo fare il confronto anche ne ll'altro senso. Supponiamo che ci sia
un algoritmo polinomiale in tempo per la versione sì/no di IS. Se il grafo ha »
nodi, la dimensione de ll’insieme indipendente massimale è compresa fra 1 ed n.
Risolvendo IS per tutti i valori fra 1 ed n siamo certi di trovare la dimens ione di
un insieme indipendente massimale (anche se non l’insieme stesso) in un tempo
pari a n volte quello necessario per risolvere il problema una volta. Ricone ndo
alla ricerca binaria possiamo addirittura ridurre a Iog2 ri il fattore moltiplicativo.

un insieme indipendente di dimensione m , esso deve contenere esattamente un nodo per


ogni clausola.
Inoltre un insieme indipendente non può contenere nodi corrispondenti a una variabile
X e alla sua negala x. C ’è infatti un lato fra tutte le coppic di quei nodi. Pertanto un
insieme indipendente I di dimensione m genera un assegnamento di valori di verità T
che soddisfa E. Se il nodo corrispondente alla variabile x è in I, definiamo T (x ) = 1; se
il nodo associato a x è in / , definiamo T (x ) = 0. Se nessun nodo in T corrisponde a x o
a x , definiamo arbitrariamente T (x ). Il punto (2) discusso sopra spiega perché non si può
generare una contraddizione, cioè la compresenza in I dei nodi associati a , r e a x.
Sosteniamo che T soddisfa E . Infatti, per ogni clausola di E , 1 contiene un nodo
corrispondente a uno dei suoi letterali, e T assegna il valore vero a quel letterale. Perciò,
se esiste un insieme indipendente di dime ns ione m , E è soddisfacibile.
A ltri problem i NP- completi 477

(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.

E s e m p io 10.19 Applichiamo la costruzione del Teorema 10.18 al caso in cui

E = [X1 + Z2 + ®3)(2T + x I + ^ 4 )(^ 2 + x-s + £ 5 )(^ 3 + ¾ + ¾


II grafo ricavato da questa espressione è illustrato nella Figura 10 .8.1 nodi sono disposti in
quattro colonne corrispondenti alle quattro clausole. Per ogni nodo sono riportati il nome
(una coppia di interi) c il letterale associato. Ogni coppia di nodi ne lla stessa colonna,
corrispondenti a letterali in una clausola, è unita da un lato. Anche i nodi corrispondenti
a una variabile e alla sua negata sono uniti da un lato. Per esempio il nodo [3,1], che
corrisponde a X2 , è unito da lati ai nodi [1 , 2 ] c [2 , 2 ], corrispondenti a occorrenze di X2-
Un tratto più spesso indica i nodi, uno per colonna, che formano un insieme I. È
chiaro che essi formano un insieme indipendente. I quattro letterali in I sono ari, x ?, x ¿
e X4 . Possiamo definire un assegnamento di valori di verità T: T (Xi ) = I, T (x 2 ) = 1,
T (x ¿) = * &T (x 4 ) = 0 . Dobbiamo assegnare un valore anche a X5 , e pos siamo sceglierlo
arbitrariamente, per esempio T(Xrj ) = 0. Cos ì T soddisfa E , e l’insieme di nodi / indica
un letterale per ogni clausola, al quale T assegna il valore vero.

10.4.3 II proble ma della cope rtura per nodi


Un’altra classe rilevante di problemi di ottimizzazione combinatoria riguarda la “coper­
tura” di un grafo. Per esempio una copertura pe r lati è un insieme di lati tali che ogni
nodo è l’estremo di almeno un lato de ll’insieme. Una copertura per lati è minimale se
ogni altra copertura dello stesso grafo ha un nume ro di lati uguale o maggiore. Stabilire
se un grafo ha una copertura per lati di k elementi richiede tempo polinomiale , ma non lo
dimostreremo.
Proveremo invece che il problema della copertura pe r nodi è NP- completo. Una
copertura per nodi di un grafo è un insieme di nodi che contiene alme no un estremo di
478 Capitolo ¡O

Utilità degli ins ie mi indipe nde nti


Le applicazioni dei problemi NP- completi che presentiamo esulano dalla materia
di questo libro. La scelta dei problemi trattati nel Paragrafo 10.4 si deve a un
fondamentale lavoro di R. Karp s ull’NP- completezza, nel quale l'autore esamina
i problemi più importanti nel campo della ricerca operativa e dimostra che molti
sono NP- completi. Di qui la chiara indicazione che certi problemi “reali” possono
essere risolti mediante que lli astratti che abbiamo presentato.
Possiamo per esempio impiegare un algoritmo per la ricerca di insiemi indi-
pendenti allo scopo di programmare una sessione di esami. A ogni corso associa­
mo un nodo del grafo; uniamo due nodi con un lato se uno o più studenti seguono
i due corsi corrispondenti. Gli esami per quei due corsi non possono aver luogo
contemporaneamente. Se troviamo un insieme indipendente massimale, possia­
mo convocare gli esami dei corsi corrispondenti nella stessa data, senza causare
problemi a nessuno studente.

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.

o u t p u t : “ s ì” se e solo se G ha una copertura per nodi con non più di k nodi.


r id u z io n e DA: insieme indipendente.

Teorema 10.20 11 problema della copertura per nodi è NP- completo.


NC è chiaramente in N V . Sce gliamo un insieme di k nodi e verifichia­
d im o s t r a z io n e

mo che contenga almeno un estremo di ogni lato di G.


Per completare la dimostrazione, riduciamo IS a NC. Ci basiamo sul fatto, illustrato
dalla Figura 10.8. che il complemento di un insieme indipendente è una copertura per
nodi. Per esempio l’insieme dei nodi di tratto più sottile nella figura è una copertura per
nodi. Poiché i nodi con tratto spesso formano un insieme indipendente massimale, gli
altri formano una copertura minimale .
A ltri problem i NP- completi 479

Siano G e k gli elementi di un'istanza del problema dell'ins ieme indipendente. Se G


ha n nodi, siano G e Ti — k gli clementi dell'is tanza di NC che vogliamo costruire. La
trasformazione si può evidentemente compiere in tempo lineare. Sosteniamo che

• G ha un insieme indipendente di dimensione k se e solo se G ha una copertura per


nodi di dimensione n —k.

(Se) Sia N l’insieme dei nodi di G, e G la copertura per nodi di dimensione n — k.


Affe rmiamo che N — C è un insieme indipendente. Supponiamo il contrario, cioè che
ci siano due nodi v e w in N — C uniti da un lato di G. Poiché' né v né w sono in C, il
lato (v, w) di G non è coperto da C. Abbiamo quindi dimostrato per assurdo che N — G
è un insieme indipendente. Questo insieme ha chiaramente k nodi, e questa parte della
dimostrazione è conclusa.
(Solo se) Sia 1 un insieme indipendente di k nodi. Affe rmiamo che N - I è una copertura
per nodi con n — k nodi. Ragioniamo per assurdo. Se un lato (?;, 7x?) non è coperto da
N —I, sia V sia w sono in J; ma essi sono uniti da un lato, il che contraddice la definizione
di insieme indipendente.

10.4.4 II proble ma del circuito hamiltoniano orie ntato


Vogliamo dimostrare che il problema del commesso viaggiatore (TSP) è NP- completo
perché si tratta di un problema molto rilevante ne ll’ambito de ll’ottimizzazione combina­
toria. La migliore dimostrazione nota della sua NP- completezza è in realtà la prova che
un problema più semplice, il “problema del circuito hamiltoniano (HC)’\ è NP- completo.
P ROB LE M A: problema del circuito hamiltoniano (HC).
INPUT: un grafo non orientato G.

OUTPUT: “sì” se e solo se G ha un circuito hamiltoniano, cio è un ciclo c h e p a ssa p e r ogni


nodo di G e sa tta m e n te una volta.

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.

PROBLEMA: problema del circuito hamiltoniano orientato (DHC, Directed Hamiltonian


Circuit ).
480 Capitolo 10

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.

DIMOSTRAZIONE È facil e pr ovar e chc D H C è in Λ,ΛΡ : si scegl i e un ci cl o pot enzi al e e si ve ­


r ifica c he t ut t i i suoi ar chi s i ano pr esent i nel gr afo. Per r idur r e 3 S AT a DH C do bbi a mo c o ­
st r uir e un gr afo compl i cat o, c on “bl occhi ” , ci oè sot t ogr afi speci al i zzat i , che r appr es ent ano
le var iabil i e le cl ausol e del l ’i st anza di 3SAT.
Per avvi ar e la cos t r uzi one di u n ’i st anza di DH C a par t ir e da u n ’espr es s i one bool eana
in 3- CNF, p o ni a mo E = e.\ A e 2 Λ · · · Λ Cf¡, dove ogni cl ausol a Ci è la s o mma di tre
let t erali: e¿ = (α*ι -I- α ί2 + «¿ 3 ). Si a no Χχ . χ 2 , , x n le var iabil i di Ε. Per ogni cl ausol a
e per ogni var i abil e cos t r ui amo un bl occo, s ec ondo la Fi gur a 10.9.
Per ogni var i abil e de f i ni amo il sot t ogr afo H¡ illust r at o nel l a Fi gur a 10.9(a ). Il
nume r o r m è il pi ù gr ande fr a il nume r o di occor r enze di X i c quel l o di x ¡ in E . Fr a le due
col onne di nodi , denot at e da b e c, p o n i a mo ar chi, i n ent r ambe le di r ezi oni , fr a b¡j e c.xj .
Da ogni nodo b esce poi un ar co ver so il no do c. al l ivel l o sot t ost ant e. Da bij c ’è qui ndi
un ar co ver so Ci ,j +ì se j < m i . Si mmet r i cament e un ar co va da Cij a 1, per j < m¿.
Infi ne ci s ono un nodo s ommi t al e a, c on ar chi ver so i nodi ò,o c c¿0, e un no do di f ondo
di al qual e gi ungono due ar chi , da Iyitni c da Cim r
La st r ut t ur a del l ’int er o gr afo è del i neat a nel l a Fi gur a 10.9(b). Og n i e s a gono r appr e­
sent a un bl occo r el at ivo a una var i abi l e, st r ut t ur at o c o me la Figura 10.9(a ). I bl occhi s ono
legat i in f or ma di cicl o medi ant e ar chi dal no do di f o ndo di un bl occo al nodo s ommi t al e
del succes s i vo.
Su p p o n i a mo che ques t o gr afo abbi a un cir cuit o hami l t oni ano or ient at o e che il cir cuit o
par t a da αχ . Se il nodo s ucces s i vo è δι ο, es s o de v’esser e segui t o da αχο, al t r iment i Cm non
pot r ebbe far par t e del cir cui t o. Infat t i, se il cicl o andas s e da αχ a 610 a Cu , non pot r ebbe
pi ù r aggi unger e Cm, a ve ndo gi à usat o i suoi due pr edecessor i .
Se il ci cl o c omi nc i a c on A1 e b ì 0, de ve s cender e la “scal a” al t er nando i due iat i:

«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 ί· ··

Do b b i a mo far e u n ’os s er vazi one cr uci al e: pos s i amo int er pr et ar e il pr i mo or di ne di di s ces a,


dal c. al b sot t ost ant e, c o me l’as s egna zi one del val or e “ ve r o" al l a var i abi l e del bl occo del
Altri problemi NP-completi 481

(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 .

1. I due ver t ici successi vi nel ci cl o s ono s j e t j . Se il ci cl o va a Wj ed es ce, Vj r isul t a


i naccessi bi l e. Se at t r aver sa Wj e Vj ed esce, Uj r isult a i naccessi bi l e. Per ci ò deve
uscir e da Uj dopo aver at t r aver sat o t ut t i i sei nodi del bl occo.

2. I ver t ici c he s eguono Vj s ono Sj e Vj . Se il ci cl o non pr os egue da u- j, ques t o ri­


sul t a i naccessi bi l e. Se do po Uj il ci cl o pas s a a Wj , non può più passar e da t j . Il
r agi onament o “ inver t e” quel l o fondat o sul l ’i naccessi bi l i t à. Il nodo t j p uò esser e
r aggi unt o dal l ’est er no, ma se il ci cl o i ncl ude t j pi ù avant i , non pot r à pr osegui r e
per ché i due s uccessor i di t j s ono gi à appar si nel ci cl o. An c h e i n ques t o cas o,
qui ndi , il cicl o es ce da Uj . Os s e r vi a mo che Lj e Wj non s ono st at i at t r aver sat i, e
dovr a nno compar i r e pi ù avant i nel ci cl o.

3. 11 cir cuit o va di r et t ament e da Tj a u ¡. Se il ci cl o pr os egue c on Wj , t j non può


compar i r e nel ci cl o per ché i suoi successor i s ono gi à st ali usat i, c ome spi egat o al
punt o (2). In ques t o cas o, qui ndi , il ci cl o deve usci r e di r et t ament e da Uj ; r est ano
quat t r o nodi da aggi unger e al ci cl o pi ù t ardi.

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.

(Se ) Sup p o n i a mo che esist a un as s egnament o di val or i di ver it à T che s oddi s fa E . Co ­


s t r ui amo un cir cuit o hami l t oni ano or ient at o.

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.

3. In mo d o si mi l e, se il ci cl o cont i ene un ar co da Cip a b, p +1, c un alt r o ar co, non


i ncor por at o nel ci cl o, esce da cip per andar e a un I n modi f i c hi a mo il ci cl o facendol o
“devi ar e” at t r aver so t utti i sei nodi di Ij .

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 .

2. Per ci ò, se pens i a mo c he il cir cuit o s egua il cicl o dei bl occhi H , s econdo l o s c he ma


del l a Fi gur a 10.9(b), pos s i amo int er pr et ar e una devi azi one ver so Ij c ome se il cicl o
segui sse un ar co “in par al l el o” c on bip —* c¿,p+i o c on cip —> 6*,p+ 1.
484 Capitolo IO

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.

10.4.5 Circuiti hamiltoniani non orientati e TSP


Di mos t r ar e che il pr obl ema del cir cui t o hami l t oni ano non or ient at o e il pr obl e ma del
c o mme s s o vi aggi at or e s ono NP- compl et i è r el at i vament e facil e. Ab b i a mo gi à vi st o nel
Par agr afo 10.1.4 chc TS P è in MV . Poi c hé HC è un cas o speci al e di TSP, a n c h ’ess o si
t r ova in MV . Effet t ui amo qui ndi le r i duzi oni da D H C ad HC e da HC a TSP.
A Ilri problem i N P -com pleti 485

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

PROBLEMA: p roblem a del circu ito ham iltoniano non orientato.

INPUT: un gr afo non or ient at o G.

OUTPUT: “sì” se e sol o se G ha un cir cuit o hami l t oni ano.

RIDUZIONE DA: DHC .

Teorema 10.23 HC è NP- compl et o.


DIMOSTRAZIONE Ri dur r e mo DH C ad HC. Si a Gd un gr afo or ient at o. De not i a mo con Gu
il gr afo non or ient at o che do bbi a mo cost r uir e. Per ogni no do v di Gd poni a mo in G v i t re
nodi v (°)f t >W e I lat i di G u s ono i seguent i .

1. Per ogni nodo v di Gd poni a mo in G u i lati ( t · ^ . t / 1)) e ( ì / 1). t A2^).

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

v [a) t /i1}? u 1 ? X,i0)


lJ2 5 v [l ) ’ vc 2i 2) > v{0) ’ * · * ?
°*2 η i t° n/ W ; υ τι ? Vw
ί ;1

è 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,¡..

PROBLEMA: p roblem a del co m m esso viaggiatore.

INPUT: un gr afo non or ient at o G c on pesi int eri sui lat i, e un l imit e k .

OUTPUT: “sì” se e solo se in G c ’è un circuito h am ilto n ian o tale ch c la so m m a dei pesi


dei lati che lo co m pongono è m in o re o uguale a k .

RIDUZIONE DA: HG.

Te o r e ma 10.24 II pr obl ema del c o mme s s o vi aggi at or e è NP- compl et o.

DIMOSTRAZIONE Pr oc e di a mo per r i duzi one da HC. Da t o un gr afo G , cos t r ui amo un gr afo


pesat o G" c on gl i st essi nodi e lat i di G, ma con il pes o 1 su t ut t i i lat i. Il l imit e k è ugual e
al nume r o n di nodi di G. In G' c ’è un cir cuit o hami l t oni ano di pes o n se e sol o se in G
c ’è un cir cui t o hami l t oni ano.

10.4.6 Riepilogo dei problemi NP-completi


La Fi gur a 10.12 i ndi ca t ut t e le r i duzi oni compi ut e in ques t o capi t ol o. So no i ndi cat e anche
le r i duzi oni da tutti i pr obl emi , per e s e mpi o da TSP, a SAT. In r ealt à nel Te o r e ma 10.9
a bbi a mo r idot t o a S AT il l i nguaggi o di ogni ma c c hi na di Tur i ng non det er mi ni st i ca c pol i ­
nomi al e in t empo. An c h e se non l 'a bbi a mo det t o espl i ci t ament e, quest e T M ne c o mp r e n­
do no una c he r isol ve TSP, una c he r isol ve IS, c così vi a. Di c ons e guenza t ut t i i pr obl emi
NP- compl et i si pos s ono r idur r e l’u no al l ’alt ro in t empo pol i nomi al e e r appr esent ano, di
fat t o, aspet t i diver si del l o st esso pr obl ema.
488 Capitolo 10

F i g u r a 1 0 . 1 2 Ri duzi oni fr a pr obl emi NP- compl et i .

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 ?

b) Quant i lat i ha una k- cl ique i n f unzi one di k l

c) Di mos t r at e che C L I QU E c NP- compl et o r i ducendo il pr obl e ma del l a coper t ur a per


nodi a CLI QUE .
Altri problemi NP-completi 489

*! 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.

Figura 10.14 Un gr afo.

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.

* a) Il gr afo cont i ene un cir cuit o hami l t oni ano?

b) Qu a l è l ’i ns i eme i ndi pendent e pi ù gr ande?

c ) Qu a l è l a pi ù pi ccol a coper t ur a per nodi ?

d) Qu a l è la pi ù pi ccol a coper t ur a per lat i (vedi Par agr afo 10.4.3)?


Altri problemi NP-completi 491

e) Si p u ò col or ar e il gr afo c on due col or i ?

Esercizio 10.4.4 Di mos t r at e c he i s eguent i pr obl emi s ono NP- compl et i .


a) Il p r obl e ma de l l ’i s omor f i s mo di gr af i : dat i i gr afi Gi e G 2, Gi cont i ene una copi a
di G 2 c o me sot t ogr afo? Po s s i a mo ci oè t r ovar e un s ot t oi ns i eme dei nodi di Gi c he,
i ns i eme c on i lat i c he li uni s c ono in Gì , f or ma una copi a esat t a di G 2, a pat t o
di scegl i er e u n ’oppor t una cor r i s pondenza fr a i nodi di G 2 e quel l i del sot t ogr afo
di Gì ? Sugge r i me nt o: cer cat e una r i duzi one dal pr obl e ma del l a cl i que descr it t o
nel l ’Es er ci zi o 10.4.1.

! b) Il p r o bl e ma f e e dbac k e dg e : dat i un gr afo G e un int er o k , esist e un i ns i eme di k lati


di G t al e c he ogni ci cl o di G c ont enga a l me no uno di essi ?

! c) Il p r o bl e m a del l a p r o gr am m az i o n e l i neare i nt er a: dat o un i ns i eme di vi ncol i l inear i


del l a f or ma Σ Γ =ι αίχ ί - c ° ΣΓ=- ι a i x i — ^ ove S*' a i e c s ono cost ant i int er e,
c .Ti , :r 2, . . . , x n s ono var iabil i, esist e un a s s egna ment o di val or i int eri al l e var iabil i
che ver i fi ca t ulli i vi ncol i ?

! d) Il p r o bl e ma del l ’i ns i eme domi nant e : dat i un gr afo G e un int er o k , esist e un sot-


l oi ns i cmc S di k nodi di G t al e c he ogni no do o è in S o è adi acent e a un no do in
SI

e ) Il p r o bl e ma degl i i drant i : dat i un gr afo G, una di s t anza oí e un nume r o / di idr ant i,


p os s i a mo scegl i er e / nodi di G in mo d o c he nes s un no do si a dist ant e pi ù di d da un
i dr ant e (l a di s t anza è il nume r o di lat i da per cor r er e)?

*! 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

un nume r o p di “pr oces s or i ” , un “ l imit e di t e mp o ” t , e dei “ vi ncol i di pr e c e de nza ”


del l a f or ma T i < Tj t ra coppi e di compi t i , st abil it e se esist e una pi ani fi cazi one dei
compi t i t al e che:

1. a ogni c ompi t o è as s egnat o un ist ant e c ompr e s o fr a 1 e t


2. l o st esso ist ant e è as s egnat o al ma s s i mo a p compi t i
3. i vi ncol i di pr ec e de nza s ono r ispet t at i, ci oè a T¿ si as s egna un ist ant e che
pr ecede quel l o as s egnat o a T y se T i < T i .
492 Capitolo IO

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.

! d) Di mos t r at e che ques t o pr obl e ma è NP- compl et o: dat i un gr afo G e un int er o d, G


pos s i ede un al ber o di coper t ur a s enza nodi di gr ado maggi or e di d (il gr ado di un
no do n nel l ’al ber o di coper t ur a è il nume r o di lati del l 'al ber o chc ha nno n a un
es t r emo)?

1 0 .5 Ri e p i l o g o

Le cl assi V e d N V : V è for mat a da tutti i l i nguaggi o pr obl emi accet t at i da una


ma c c hi na di Tur i ng in t e mpo pol i nomi al e r ispet t o al l a l unghe zza del l 'i nput . N rV è
BibIiografiu 493

l a cl asse di l i nguaggi o pr obl emi accet t at i da T M non det er mi ni st i che c on un l i mi l e


pol i nomi al e sul t empo i mpi egat o in una s e que nza di scel t e no n det er mi ni st i che.

La ques t i one V = N ' P : non c not o sc V ed A rV s i ano la st essa cl asse di l i nguaggi


oppur e no, ma l ’opi ni one pi ù di ffus a è che esi st ano l i nguaggi i n N V che no n s ono
in V .

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.

Pr obl e mi NP- compl et i : un l i nguaggi o è NP- compl et o se è in N V e d esist e una


r i duzi one pol i nomi al e da ogni l i nguaggi o in N V al l i nguaggi o in ques t i one. Si a mo
convi nt i c hc nes s uno dei pr obl emi NP- compl et i sia in V . A suffr agar e ques t a lesi
si p u ò addur r e il fat t o c hc non è ancor a st at o t r ovat o un al gor i t mo pol i nomi al e per
uno qua l unque del l e mi gl i ai a di pr obl emi NP- compl et i conosci ut i .

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.

3. S. C. Co o k , “Th e compl exi t y o f t heor em- pr ovi ng pr ocedur es .” Thi r d A C M Sy m p o ­


s i um on Theor y o f Comput i ng (1971), AC M, Ne w Yor k, pp. 151- 158.

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.

6. R. M. Ka r p , “Reduci bi l i t y a mo n g combi nat or i al pr obl ems ,” in Compl exi t y o f Co m ­


put er Compul at i ons (R. E. Mi l l er , ed.), Pl e num Pr ess, Ne w Yor k, pp. 85- 104.
1972.

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.

9. J. D. Ul l ma n, “NP- compl et e s chedul i ng pr obl ems ,” J. Comput e r an d Sy st em Sc i e n­


ces 10:3 (1975), pp. 384- 393.
Capitolo 11

Altre classi di problemi

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

11.1.1 La classe dì linguaggi CO-ArP


Co - N V è l’i ns i eme dei l i nguaggi i cui compl ement i s ono i n N V . Ab b i a mo osser vat o
al l 'i ni zi o del Par agr afo 11.1 che il c ompl eme nt o di un l i nguaggi o in V è in V , e dunque
in N V . D'al t r a par t e si pens a che nes s un pr obl ema NP- compl et o abbi a il c ompl e me nt o in
N V , e qui ndi che nes s un pr obl ema NP- compl et o sia in co- .\ rV . Ana l oga me nt e si r it iene
c he i c ompl ement i dei pr obl emi NP- compl et i , che per defi ni zi one s ono in c o - N'P, non
s i ano in N V . lai Fi gur a 11.1 illust r a le r el azioni pr esunt e fra le cl assi V , N V e c o - NV.
Do b b i a mo per ò consi der ar e che se V doves s e risult ar e ugual e a N V , t ut t e e t re le cl assi
coi nci der ebber o.

Figura 11.1 Le pr esunt e r el azioni t ra co-N'P e alt re cl assi di l i nguaggi .

Es e mp i o 11,1 Cons i de r i a mo il c ompl e me nt o del l i nguaggi o SAT, chc c s e nz’alt r o un


me mb r o di co-N'P e che denot er emo c on US A T (da unsat isf iabl e, non soddi sfaci bi l e).
US AT c ompr e nde t ut t e le st r i nghe chc codi fi cano espr essi oni bool eane non soddi sfaci bi l i .
In USAT. per ò, ci s ono anche le st r i nghe c he non codi fi cano espr essi oni bool eane val ide
per ché nes s una di esse è in SAT. Si pens a che US AT non sia in N P , ma non esist e al cuna
di mos t r azi one in mer i t o.
Un alt ro e s e mpi o di pr obl ema che s upponi a mo esser e in co-N'P ma non i n N P è
TAUT, l ’i ns i eme di t ut t e Ie espr essi oni bool eane (codi fi cat e) che s ono t aut ol ogie, ci oè
498 Capitolo 11

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.

11.1.2 Problemi NP-completi e co- AÌV

Su p p o n i a mo che V φ N V . È ancor a possi bi l e chc la si t uazi one di c o - NV non sia quel l a


illust rat a dal l a Fi gur a 11.1 per ché N V e CO- Ai V pot r ebber o esser e ugual i , ma pi ù gr andi
di V . In alt re par ol e pot r e mmo scopr ir e che i pr obl emi c o me US AT e T AUT pos s ono
esser e risolt i in t empo pol i nomi al e non det er mi ni st i co (ci oè s ono in N V ), ma non in
t empo pol i nomi al e det er mi ni st i co. Il fat t o che non s i a mo r iuscit i a t r ovar e anche sol o
un pr obl ema NP- compl et o il cui c ompl eme nt o sia in N V è t ut t avia un i ndi zi o for t e che
N P Φ z o - NV , c ome pr over emo nel pr os s i mo t eor ema.

Te o r e ma 11.2 N V = co - N P se e sol o se esist e un pr obl ema NP- compl et o il cui c o m­


pl ement o è in N V .

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.

N V C co- ArP : s upponi a mo c he L sia in A P . Al l or a L è in c o - ArP . Co mb i n i a mo la


r i duzi one pol i nomi al e di L a P c on il pr esunt o al gor i t mo pol i nomi al e non det er mi ni st i co
per P per pr odur r e un al gor i t mo pol i nomi al e non det er mi ni st i co per L . Ne c ons egue che
per ogni L in N V anche L è in N V . D ’alt ra par t e L è in c o - NV per ché è il c ompl eme nt o
di un l i nguaggi o in A rP . Ab b i a mo dunque A rP C c o - NV.

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?

d) Tl pr obl ema NHAR TAUT: dat a un'es pr es s i one bool e a na E . esist e al ma s s i mo un


as s egnament o di val or i di ver it à c he l a r ende fal sa?

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

2 . f ~ 1 (x ) non può esser e c omput at a in t empo pol i nomi al e.

Di mos t r at e che il l i nguaggi o for mat o da coppi c di int eri (x , y ) t al e che

/ ’ (*) < 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

11.2.1 Macchine di Türing a spazio polinomiale

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

Fi g u r a 11.2 Un a T M a s pazi o pol i nomi al e.

De f i n i a mo V S (Pol y nomi al Sp ac e , s pazi o pol i nomi al e) c o mc la cl asse di t ut t i e soli


i l i nguaggi accet t at i da ma c c hi ne di Tur i ng det er mi ni st i che con l imit e pol i nomi al e sul l o
s pazi o. De f i ni a mo inolt r e M V S ( Nondet er mi ni s t i c Pol y nomi al Sp ac e , s pazi o pol i nomi al e
no n det er mi ni s t i co) c o me l a cl asse for mat a dai l i nguaggi accet t at i da T M non det er mi ni ­
st iche con l imit e pol i nomi al e sul l o s pazi o. Evi dent e ment e V S C M V S per che ogni T M
det er mi ni st i ca è un cas o speci al e di T M non det er mi ni st i ca. Di mos t r e r e mo il r isul t at o
s or pr endent e c he V S = M V S ?

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

11.2.2 Le relazioni di V S ed A'V S con altre classi


Innanzi t ut t o le r el azioni V C V S e j\ rV C JKrV S dovr ebber o esser e evi dent i . La r agi o­
ne è c he se una T M fa sol o un nume r o pol i nomi al e di mos s e , al l or a usa non pi ù di un
nume r o pol i nomi al e di cel l e; in par t icol ar e il nume r o ma s s i mo di cel l e c he può visit ar e
cor r i s ponde al nume r o di mo s s e pi ù uno. Un a vol t a di most r at o V S = A·r'PS , ve dr e mo che
effet t i vament e le t re cl assi f or ma no una cat ena r ispet t o al cont eni ment o: V C M V C V S .
Un a pr opr i et à ess enzi al e del l e T M c on l imit e pol i nomi al e sul l o s pazi o è che pos s o­
no far e sol o un nume r o es ponenzi al e di mos s e pr i ma di dover r ipet er e una 1D. Que s t a
pr opr i et à ci ser ve per di mos t r ar e alt r e pr opr iet à int er essant i di V S . e per di mos t r ar e c he
V S cont i ene sol o l i nguaggi r icor sivi, ci oè l i nguaggi c on al gor i t mi . Os s e r vi a mo che nel l a
defi ni zi one di V S ο ΛrV S non si r i chi ede che l a T M si ar r est i. È possi bi l e che la T M
c o mp i a cicli per pet ui s enza l asciar e un'a r e a del nast r o di di me ns i one pol i nomi al e.

Te o r e ma 11.3 Se M è una T M (det er mi ni st i ca o non det er mi ni st i ca) c on l imi t e pol i ­


nomi al e sul l o s pazi o, e p (n ) è il s uo l imi t e pol i nomi al e sul l o s pazi o, al l or a esist e una
cost ant e c t ale che, se A l accet t a u n i nput w di l unghe zza n , l o fa ent r o c 1+p (n ) mos s e.

DI MOSTRAZI ONE II concet t o di f ondo è c he Al deve r ipet er e una I D pr i ma di super ar e le


c 1+p(” ) mos s e. Se M r ipet e una I D e poi accet t a, deve esist er e una s equenza pi ù br eve
di I D c he c o nduc e all "accet t azi one. In alt re par ol e, se a F β F 3 F η, dove a è la I D
Sc

i ni zi al e, β è la I D r ipet ut a e 7 c l a I D accet t ant e, al l or a a F β F η è una s e que nza pi ù


br eve di I D che c onduc e al l ‘accct t azi one.
Il r agi onament o per cui c de ve esist er e poggi a sul fat t o che, se l o s pazi o usat o dal l a
T M è l imit at o, c ’c sol o un nume r o l imit at o di I D. In par t icol ar e, sia t ¡I nume r o di s i mbol i
di nast r o di A l e sia s il nume r o di st at i di A l . Se si us ano sol o p (n ) cel l e di nast r o, il
n u me r o di I D di ver se di M è al ma s s i mo s p (n )t p(n \ Pos s i a mo infat t i scegl i er e uno degl i
•s st at i, col l ocar e la t est ina su una qua l unque del l e p (n ) pos i zi oni di nast r o, e r i empi r e le
p (n ) cel l e c on una qual si asi del l e s equenze di s i mbol i di nast r o.
Po n i a mo c = s + 1 e c ons i der i a mo l ’es pans i one bi nomi al e di (t. +

t l +p (n ) + + p ( n ) ) 5t P («) + ...

Os s e r vi a mo che il s e c ondo t er mi ne è al me no t ant o gr ande quant o s p (n )t p(n\ il che di ­


mos t r a c he è a l me no ugual e al nume r o di I D possi bi l i di M . Co n c l udi a mo l a
di mos t r azi one os s er vando c he se A l accet t a w di l unghe zza ·??., lo fa c on una s e que nza di
mos s e c he non r ipet e una I D. Per ci ò A l accet t a c on una s e que nza di mos s e c he non è pi ù
l unga del nume r o di I D dist int e, c he è C1 .

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

di mos s e , pos s i a mo cont ar e quant e mos s e s ono st at e lat t e c ar r est ar e la T M se ha fat t o un


nume r o suffi ci ent e di mos s e s enza accet t ar e.

Te o r e ma 11.4 Se L è un l i nguaggi o i n V S (r i spet t i vament e A rV S ) . al l or a L è accet t al o


da una T M det er mi ni st i ca (r i spet t i vament e non det er mi ni st i ca), con l imit e pol i nomi al e
sul l o s pazi o, chc si ar r est a do p o aver fat t o al pi ù cq^ mos s e , per un pol i nomi o q (n ) e
una cost ant e c > 1 .

DIMOSTRAZIONE Di mos t r e r e mo l’enunci at o per le T M det er mi ni s t i che; lo st esso r agi o­


na me nt o val e per le N T M. Sa p p i a mo c he L è accet t at o da una T M Af1 che ha un l imit e
pol i nomi al e p (n ) sul l o s pazi o. Al l or a, per il Te or e ma 11.3, se accet t a w lo fa in non
pi ù di t ·1+ P ( M) passi.
De f i ni a mo una nuova T M AZ2 dot at a di due nast r i. Sul pr i mo nast r o AZ2 s i mul a AZ1,
sul s e c ondo cont a in bas e c fi no a c 1+p 0 M! ). Se M 2 r aggi unge ques t o nume r o, si ar r est a
s enza accet t ar e. Per ci ò Ai2 us a 1 cel l e sul s ec ondo nast r o. Ab b i a mo i pot i zzat o
che M i non i mpi eghi pi ù di p(| t t ;| ) cel l e, per cui a nc he M 2 non us a pi ù di p(| u'| ) cel l e sul
pr i mo nast r o.
Se conver t i amo AZ2 in una T M AZ3 a nast r o s i ngol o, pos s i a mo esser e cert i c he AZsnon
us a pi ù di 1 + p ( n ) cel l e di nast r o, su qual si asi i nput di l unghe zza η. M 3 può i mpi egar e
il quadr at o del t empo di es ec uzi one di AZ2, ma non pi ù di O( c 2p0 1) ) . 3 p at 0 c he M3 non
c ompi e più di dc 2p(n’ mos s e per una cost ant e d, pos s i a mo scegl i er e q (n ) = 2 p (n ) +
Iogc d. AZ3 fa dunque al ma s s i mo Cq^ passi . Poi c hé AZ2 si ar r est a s empr e, a nc he AZ3 fa
l o st esso. Da l mo me nt o che M 1 accet t a L , lo f anno anc he AZ2 ed AZ3. Di c ons e gue nza
AZ3 s oddi s fa l ’enunci at o del t eor ema.

11.2.3 Spazio polinomiale deterministico e non deterministico


Se il confr ont o t ra V ed M V s embr a difficil e, sor pr ende c he lo st esso confr ont o t ra V S ed
N V S sia i nvece facil e: quest e due cl assi di l i nguaggi infat t i c oi nci dono. La di mos t r azi o­
ne consi st e nel s i mul ar e una T M non det er mi ni st i ca c on un l imit e pol i nomi al e sul l o s pazi o
p (n ) medi ant e una T M det er mi ni st i ca c on l imit e pol i nomi al e sul l o s pazi o 0 ( p 2 ( n ) ) .
11 nocci ol o del l a pr ova consi st e nel ver ificar e, in mo d o r icor sivo e det er mi ni st i co, se
una N T M N può passar e dal l a I D Z al l a I D J in non pi ù di m mos s e. Un a D T M D t ent a
s i s t emat i cament e t ut t e le I D i nt er medi e K per cont r ol l ar e se da Z p u ò passar e a K in m / 2
mos s e e da A' a J in alt re m / 2 mos s e. Su p p o n i a mo ci oè chc esist a una f unzi one r icor siva
r e a c h (I . J , m ) che deci de se Z r .7 i n r n mos s e al ma s s i mo.
Λ

‘ 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

Tr at t i amo il nast r o di D c o me u n o st ack in cui s ono col l ocat i gl i ar goment i del l e


chi a mal e r i cor si ve di r e ac h . Un o St ac k f r am e i D cont i ene [ l .J .m ] . La Fi gur a 11.3
pr esent a u no s c he ma del l ’al gor i t mo es egui t o da r each.

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;

Fi g u r a 11.3 La f unzi one r i cor si va r each ver i fi ca se da una I D si p uò passar e a u n ’alt ra


ent r o un nume r o fissat o di mos s e.

È 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

4Pe r st ack f r ame i n t e n d i a m o u n ’a r c a d e l l o s t a c k d e s t i n a t a a i da t i di u n a c h i a m a t a d i f u n z i o n e .


504 Capitolo 11

/| 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 .

st ack f r ame è al più Iog2 αρ(·η\ che è 0 ( p ( n ) ) . Di s p o n i a mo or a degl i el ement i essenzi al i


su cui basar e la di mos t r azi one del s eguent e t eor ema.

Te o r e ma 11.5 (Teor ema di Sav i t ch) V S = A rV S .

DIMOSTRAZIONE È evi dent e che V S C Λ rV S , dat o che ogni D T M è anche una N T M .


Do b b i a mo per ci ò di most r ar e sol t ant o che A f V S C V S , ci oè c he, se L è accet t at o da
una N T M N c on l imit e pol i nomi al e sul l o s pazi o p (n ), per un pol i nomi o p (n ), al l or a
L è accet t at o anche da una D T M D con l imit e pol i nomi al e sul l o s pazi o q (n ), per un
alt r o pol i nomi o q (n ). In effet t i di mos t r er emo che q (n ) può esser e scel t o di un or di ne di
gr a ndezza par i al quadr at o di p (n ).
Per il Te o r e ma 11.3 pos s i a mo as s umer e i nnanzi t ut t o che se Ar accet t a, lo fa in non più
di c 1+p(n ) passi per una cost ant e c. Da t o un input w di l unghezza n , D scopr e c o me si
compor t a N a fr ont e di un i nput w p o ne ndo r i pet ut ament e sul nast r o la t ripla [J0 , J. m ] e
c hi a ma ndo r e ac h con quest i ar goment i , dove:

1. l o è la I D inizial e di N con i nput w

2. J è una qual si asi I D accet t ant e c he us a al pi ù p (n ) cel l e di nast r o; le di ver se J s ono


enumer at e si s t emat i cament e da D medi ant e un nast r o ausil iar io

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

Fi g u r a 11.5 Rel azi oni not e t ra cl assi di l i nguaggi .

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

2. ogni l i nguaggi o L in V S è r iducibil e a P in t empo pol i nomi al e.

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.

Te o r e ma 11.6 Si a P un pr obl e ma PS- compl et o.

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.

11.3.2 Formule booleane con quantificatori


Pr es ent i amo or a un pr obl ema P compl et o per P S . Pr i ma per ò do bbi a mo chiar ir e i t er mini
in cui si defi ni sce ques t o pr obl e ma , det t o “for mul e bool eane con quant ifi cat or i” (QBF ,
Quant i f i ed Bo o l e an For mul as ).
Un a f or mul a bool eana c on quant ifi cat or i è u n ’es pr es s i one bool eana con l 'aggi unt a
degl i oper at or i V (“per ogni ” ) ed 3 (“es i s t e"). L’es pr es s i one ( Vx ) ( E ) si gni fi ca che E è
ver a q ua ndo t ut t e le occor r enze di x in E s ono sost it uit e da 1 (ver o), e che è alt r et t ant o
ver a q ua ndo t ut t e le occor r enze di x s ono sost it uit e da 0 (fal so). L'es pr es s i one ( Bx ) ( E )
si gni fi ca c he E è ver a q ua ndo t ut t e le occor r enze di x s ono sost it uit e da I o q ua ndo t ut t e
le occor r enze di x s ono sost it uit e da 0, oppur e in ent r ambi i casi .
Per sempl i fi car e la des cr i zi one a s s umi a mo chc nes s una QB F cont enga due o pi ù q u an ­
t ificat ori (V o 3) per la st essa var i abi l e x . Que s t a r est r i zione non è essenzi al e e cor r i s pon­
de appr os s i mat i vament e a i mpedi r e che due di ver se funzi oni di un pr ogr a mma pos s ano
usar e la st essa var i abil e l ocal e.5 Le f o n n u l e bool e ane con quant if i cat ori s ono definit e
f or mal ment e c o me segue.
5 Ne i p r o g r a m m i c ne l l e f o r m u l e b o o l e a n e c o n q u a n t i f i c a t o r i è s e m p r e p o s s i b i l e r i n o mi n a r e u n o d e i d u e u s i
di s t i nt i d e l l o s t e s s o n o m e d e l l a v a r i a b i l e . P e r i p r o g r a m m i n o n c ’è a l c u n a r a g i o n e di e vi t a r e il r e i m p i e g o d e l l o
s t e s s o n o m e l o c a l e , m a ne l l e Q B F è o p p o r t u n o i m p o r r e c h e c i ò n o n a c c a d a .
Un problema completo per 'PS 507

1. 0 (fal se), I (t r ue), e una qual si asi var iabil e s ono QBF .

2. Se E e d F s ono QBF , l o s ono anche ( F ) , - ‘( E ) , ( E ) A ( F ) e ( E ) V (F) , che


r appr esent ano una E t ra par ent esi , la negazi one di E , l’A N D di E ed F , e l ' OR
di E ed F. Le par ent esi super fl ue pos s ono esser e el i mi nat e s econdo le r egol e di
pr ecedenza consuet e: NOT, poi AN D, infine OR . Di nor ma s egui r emo l o st ile “arit ­
met i co” per A N D e OR , dove A N D è r appr esent at o dal l a gi us t appos i zi one (nes s un
oper at or e) e OR è r appr esent at o dal + . Qui ndi s cr i ver emo s pes s o ( F ) ( F ) in l uogo
di ( E ) Λ (F), e ( E ) + ( F ) in l uogo di ( E ) V ( F ) .

3. Se F è una QBF s enza quant ificat or i per la var i abi l e x , al l or a ( Vx ) ( F ) e ( Bx ) ( F )


s ono Q B F Di r e mo che la por t at a (s cope) di x è l ’espr essi one E . Int ui t i vament e
X è definit a sol o ent r o E , così c o me la por t at a di una var i abil e in un pr ogr a m­
ma si est ende al l a f unzi one in cui è di chiar at a. Le par ent esi pr i ma e do po E (ma
no n pr i ma e do p o il quant i fi cat or e) pos s ono esser e el i mi nat e se non c ’è ambi gui t à .
Per evit ar e un ecces s o di par ent esi le une dent r o le alt r e, s cr i ver emo una cat ena di
quant ificat or i c o me

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.7 Ec c o un e s e mpi o di QBF :

(\ f x )((3y )(x y ) + (Vz)(- r r + z )) ( 11.1)


Par t i amo dal l e var iabil i x e y , l e connet t i amo con A N D c appl i chi amo il quant ificat or e
(By ) per pr odur r e la sot t oespr essi one ( 3 y )(x y ). Ana l oga me nt e cos t r ui amo l’espr essi o­
ne bool eana - >x - r 2 e appl i chi amo il quant ificat or e (Vz) ot t enendo la sot t oespr essi one
(Vz ) (- IX 4- z). Co mbi n i a mo poi Ic due espr essi oni con OR ; non s er vono par ent esi per che'
+ ( OR ) ha la pr ecedenza pi ù bas s a. Infi ne appl i chi amo il quant ifi cat or e (Vx) per pr odur r e
l a QB F final e.

11.3.3 Valutazione di formule booleane con quantificatori


Do b b i a mo ancor a defi ni r e in t er mi ni for mal i il significat o di una Q B K Se per ò l eggi amo
V c o me “per ogni ” e d 3 c o me “esist e”, pos s i amo far cene u n ’i dea. La QB F d e H’Es em-
pi o 11.7 affer ma che per ogni x (ci oè I = O o x = 1) esist e un y t ale che sia x sia y
s ono ver e, oppur e per ogni 2 , - >x + z è ver a. Per di most r ar e che l’enunci at o è val i do,
os s er vi amo che se x = 1 pos s i a mo scegl ier e y = 1 e r ender e ver a x y . Se x = 0, al l or a
—i.T -I- z è ver a per a mbe due i val or i di z.
Se una var i abil e x si t r ova nel l a por t at a di un quant ifi cat or e per x , di r emo che l’occor -
r enza di x è vi ncol at a. Negl i alt ri casi di r emo c he è l ibera.
508 Capitolo 11

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.

1. L’es pr es s i one è del l a f or ma ( E ) . Qui n di E è di l unghe zza n — 2 e s i amo in gr ado


di val ut ar l a. 11 s uo val or e è 0 o I. Il val or e di ( E ) è l o st esso.

2. L’es pr es s i one è del l a f or ma - <E. Qui ndi E è di l unghe zza n — 1 c p uò esser e


val ut at a. Sc E = 1, al l or a ~<E = 0, c vi cever sa.

3. L’espr es s i one è del l a f or ma E F . Al l or a sia E sia F s ono pi ù br evi di n . per cui


pos s ono esser e val ut at e. Il val or e di E F è 1 se sia E sia F ha nno val or e 1, e 0 se
una del l e due val e 0.

4. L’espr es s i one c del l a f or ma E + F . Al l or a sia E sia F s ono pi ù br evi di n , per cui


pos s ono esser e val ut at e. II val or e di E + F è I sc E oppur e F ha val or e L c 0 se
ent r ambe s ono 0.

5. Se l ’espr essi one c del l a f or ma ( Vr ) ( F ) , in pr i mo l uogo sost i t ui amo t ut t e le oc ­


cor r enze di X in E con 0, e ot t eni amo l ’es pr es s i one F 0; sost i t ui amo poi ogni o c ­
cor r enza di X in E c on 1, ot t enendo !’es pr es s i one F i . Os s e r v i a mo c h e Fo ed F 1
s oddi s f ano due condi zi oni .

(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 .

(b) Ha n n o l unghe zza n — 6, e s ono qui ndi pi ù br evi di n .

Val ut i amo Fo ed F i . Se ent r ambe ha nno val or e I, al l or a ( Vx ) ( F ) ha val or e 1;


al t r iment i ha val or e 0. Os s e r vi a mo che la r egol a r i specchi a l 'i nt er pr et azi one “ per
ogni a;” di (Vx).
Un problema completo per P S 509

6. Se l’es pr es s i one è ( B x ) ( E ) , pr oc e di a mo c o me nel punt o (5), cos t r uendo Εχ, cd E\


e val ut andol e. Se Eq o E i ha val or e I. al l or a ( B z ) ( E ) ha val or e 1; al t r iment i ha
val or e 0. Os s e r vi a mo c hc la r egol a r i specchi a l’i nt er pr et azi one “esist e x " di (3 x ) .

Es e mp i o 11.9 Val ut i amo la QB F del l ’Equa zi o ne (11.1). Es s a è del l a f or ma ( Vx ) ( E ) .


Do b b i a mo qui ndi val ut ar e pr i ma E q , c he è:

(Hy )(Oy ) + (Vs ) (- >0 + 2 ) (11.2)

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:

(By)(Iy) + (V^)(- >1 + z ) (11.3)

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.

11.3.4 PS-completezza del problema QBF


Pos s i a mo or a defi ni r e il p r o bl e ma del l e f or mul e bo ol e ane con quant i f i cat ori : dat a una
Q B F E pr i va di var iabil i l iber e, E val e 1? De n o t e r e mo ques t o pr obl ema c on QBF , e
cont i nuer emo a i mpi egar e lo st esso ac r oni mo anc he per i ndi car e “ for mul a bool e ana con
quant i fi cat or i ” . Il cont est o dovr e bbe el i mi nar e ogni ambi gui t à .
Di mos t r e r e mo che il pr obl e ma QB F è c ompl et o per P S . La di mos t r azi one c o mbi na
i dee t rat t e dai t eor emi 10.9 e 11.5. Da l Te o r e ma 10.9 pr e ndi a mo l’i dea di r appr esent ar e
la c omput a zi one di una T M t r ami t e var iabil i l ogi che, o gnuna del l e qual i i ndi ca se una
cer t a cel l a ha un cer t o val or e in un dat o mo me nt o . Ne l cas o di t e mpo pol i nomi al e, per ò,
c o me nel Te o r e ma 10.9, il n ume r o di var iabil i r il evant i è pol i nomi al e. Si a mo st at i dunq ue
6 Ab b i a m o l at t o u s o d e l l a n o t a z i o n e a l t e r n a t i v a p e r A N D e O R p e r c h é n o n p o s s i a m o u t i l i zza r e l a g i u s t a p p o -
s i z i o n e e + p e r l e e s p r e s s i o n i c h c c o i n v o l g o n o 0 e 1 s e n z a r e n d e r e l e e s p r e s s i o n i s i mi l i a n u m e r i di p i ù c i f r e o a
u n a s o m m a a r i t me t i c a . Co n f i d i a m o c h c il l et t or e a c c e t t i e n t r a m b e l e n o t a z i o n i c o m e r a p p r e s e n t a n t i d e g l i s t es s i
o p e r a t o r i l o gi c i .
510 C a p ito la li

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.

1. Su p p o n i a mo che F = F 1 + Fz- Op e r i a mo al l or a c o me s egue.

(a ) Po n i a mo Fi in un r ecor d a sé, a dest r a di quel l o per F .


(b) Val ut i amo ri cor s i vament e Fi .
(c ) Se il val or e di F 1 è 1, r est i t ui amo il val or e I per F .
(d) Se il val or e di F i è 0, sost i t ui amo il s uo r ecor d c on un r ecor d per F 2 e
val ut i amo r i cor si vament e F2.
(e) Res t i t ui amo c o me val or e di F il val or e r est it uit o da F 2.

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.

(a ) Fo r mi a mo l ’es pr es s i one F o sost i t uendo 0 a ogni occor r enza di x e col l ochi a­


mo F 0 in un s uo r ecor d, a dest r a di quel l o per F .
(b) Val ut i amo ri cor s i vament e F 0.
Un problema completo per V S 5 11

(c) Se il val or e di E q è 1, r est i t ui amo 1 c o me val or e di F .


(d) Se il val or e di Eq è 0, f o r mi a mo E 1 sost i t uendo l a z i n E .

(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.

Pa s s i a mo or a alla r i duzi one da un l i nguaggi o ar bit r ar io L in V S al pr obl e ma QBF .


Vo r r e mmo usar e var iabil i pr opos i zi onal i i j ì j a c o me nel Te o r e ma 10.9 per asser ir e che la
ji- esima pos i zi one nel l ’¿- esima I D è A . Per ò, dat o che esist e un nume r o es ponenzi al e
di I D, per un i nput w di l unghe zza n non pot r e mmo neppur e scr iver e quel l e var iabil i in
t e mpo pol i nomi al e i n n . Sfr ut t i amo i nvece i quant ificat or i per far sì c he lo st esso i ns i eme
di var iabil i r appr esent i mol t e I D di ver se. L’i dea è s vi l uppat a nel l a di mos t r azi one c he
s egue.

Te o r e m a 1 1 .1 1 II pr obl ema QB F è PS- compl et o.

DI MOSTRAZI ONE Si a L in V S , accet t at o da una T M det er mi ni st i ca M che us a al ma s s i mo


uno s pazi o p (n ) su i nput di l unghe zza n . Per il Te o r e ma 11.3 s a ppi a mo c he esist e una
cost ant e c t ale che M accet t a i n non pi ù di c 1+p^n ^ mos s e un i nput di l unghe zza ri. De ­
s cr i ver emo or a c o me , a par t ir e da un input w di l unghe zza n , si pos s a cost r uir e in t empo
pol i nomi al e una QBF E s enza var iabil i l iber e e c on val or e 1 se e sol o se w è in L ( M ) .
Per for mar e E dovr e mo int r odur r e un nume r o pol i nomi al e di ID- v ar i abi l i , ci oè i nsi e­
mi di var iabil i del t ipo y ¡ A ' , V j a i ndi ca che l a j - es i ma pos i zi one del l a I D r appr esent at a ha
il s i mbol o A , con j c ompr e s o fr a 0 e p (n ). Il s i mbol o A è un s i mbol o di nast r o oppur e
uno st at o di M . Di c ons e gue nza il nume r o di var iabil i pr opos i zi onal i in una ID- var i abi l e è
512 Capitolo 11

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

2. S è u n ’espr essi one chc i ndi ca “avvi o cor r et t o” , ci oè I q è pr opr i o la I D i nizi al e di


M c on i nput w

3. N è u n ’espr essi one c he i ndi ca “mo s s a lecit a” , ci oè M pas s a da / 0 a / /

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

Una costruzione inefficiente


A pr i ma vist a si s ar ebbe t ent at i di cost r uir e N 2i da N i s econdo una st r at egia divi-
de et i mpe r a: se T F J in Ti o me n o mos s e, al l or a deve esist er e una I D K per cui
in i mos s e o me n o si ha 7 F K e K F J . Se per ò s cr i vi amo la for mul a c he espr i ­
me ques t o concet t o, per e s e mpi o Ν·α(Τ, J ) = (3/\ ' )(,Yi (7. K ) Λ N i ( K , J ) ) , la
l unghezza del l ’espr es s i one r addoppi a, c ome i. Per espr i mer e t ut t e le pos s i bi ­
li comput azi oni di A l , i d e v ’esser e es ponenzi al e in n . Impi e ghe r e mmo qui ndi
t r oppo t empo per scr iver e Ar, c he r isul t er ebbe di l unghe zza es ponenzi al e.

Mo s s a l eci t a

L’espr es s i one N c cost r uit a r i cor si vament e in mo d o da r addoppi ar e il nume r o di mos s e


consi der at e a ggi unge ndo sol o O (p (n )) s i mbol i al l ’espr essi one i n cost r uzi one e i mpi e ga n­
do sol o un t empo 0 ( p ( n ) ) per scr iver e l’espr essi one. De f i ni a mo l ’abbr evi azi one I = .7,
dove I c J s ono ID- var i abi l i , c o me A N D l ogi co del l e espr essi oni che uguagl i ano le va­
r iabili cor r i spondent i di I e J . In alt re par ol e, se I consi st e nel l e var iabil i i/j A e J nel l e
var iabil i Zj A, al l or a I = J c l’A N D del l e espr essi oni ( i j j a Zj a + (y J À){z J À)) , con j che
var i a da 0 a p [ n ), e c on A c he è un s i mbol o di nast r o o uno st at o di Al .
Cos t r ui amo or a le espr essi oni J ) , per i = 1 , 2 . 4 , 8 , · · a i ndi car e c he I h J in
i o me n o mos s e. In quest e espr essi oni sol o Ic var iabil i pr opos i zi onal i del l e ID- var i abi l i 1
e J s ono l iber e; t ut t e le alt re s ono vi ncol at e.

BAS E Per i = I , N i ( I , J ) affer ma che I = J oppur e I F J . Ab b i a mo appena vist o c o me


espr i mer e la condi zi one I = J . Per la condi zi one I F J r i nvi amo il let t ore al l a di s cus ­
s i one nel l a s ezi one “Mo s s a successi va l ecit a” del l a di mos t r azi one del Te or e ma 10.9, dove
vi ene t rat t at o lo st esso pr obl ema (una I D s egue da quel l a chc la pr ecede). L’espr essi one
A’i è l’OR l ogi co di quest e due espr essi oni . Os s e r vi a mo chc è possi bi l e scr iver e N i in
t empo 0 ( p ( n ) ) .

i n d u z i o n eCos t r ui amo Ν·α ( Ι , J ) a par t ir e da N i . Ne l r i quadr o “ Un a cost r uzi one ineffi­


ci ent e” sot t ol i nei amo che la s ol uzi one i mmedi at a, c on l’us o di due copi e di N i per cost r ui­
re A' 2 ¿, non r ispet t a i l imit i di s pazi o e di t empo necessar i . 11 mo d o cor r et t o di scr iver e N 2i
i mpi ega una sol a copi a di N i nel l ’espr es s i one, pas s ando ent r ambi gli ar goment i (I . K ) e
( K . J ) al l a st essa espr essi one. In alt re par ol e N- 2 ì {I . J ) user à u n ’uni ca sot t oespr essi one
Ar¿ (P, Q) . Scr i vi amo ( / , J ) per affer mar e che esist e una I D K t ale che per t ut t e le I D
P e Q val e una del l e seguent i condi zi oni :

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

Ab b i a mo illust rat o c o me t r asfor mar e l’i nput w in una QBF

(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 .

11.4.1 Quicksort: un esempio di algoritmo randomizzato


"Qui cks or t ” è un nol o al gor i t mo di or di nament o, di cui des cr i vi amo in sint esi il f unzi ona­
ment o. Da t a una s equenza di el ement i a i , a ? , . . . , a n da or di nar e, ne s cegl i amo uno, per
5 16 Capitolo 11

e s e mpi o a i , e di vi di amo l a s e que nza in due par t i: gl i el ement i par i ad «i o pi ù piccol i e


gl i el ement i pi ù gr andi . L’el ement o sel ezi onat o è det t o pivot . Sc egl i endo u n ’oppor t una
r appr es ent azi one dei dat i, pos s i a mo r ipar t ir e in t empo 0 (n ) una s equenza di l unghe zza n
in due s equenze le cui l unghe zze s omma t e da nno ancor a n . Pos s i a mo poi or di nar e s epa­
r at ament e, in mo do r icor sivo, la s e que nza degl i el ement i piccol i (mi nor i o ugual i al pi vot )
e quel l a degl i el ement i gr andi (maggi or i del pi vot ); il r isul t at o sar à una s equenza or di nat a
di tutti gl i n el ement i .
Co n un p o ’ di for t una il pivot r isul t er à esser e un n ume r o a met à del l a s equenza or di na­
t a. La l unghe zza del l e sot t olist e sar à al l or a vi ci na a n j 2. Se a ogni pas s o s i a mo for t unat i,
do p o ci r ca Iog2 n livelli di r i cor si one avr e mo s e que nze di l unghe zza 1, ovvi a ment e già
or di nat e. Di c ons e gue nza il l avor o t ot al e si c o mp o n e di 0 ( l o g n ) livelli, ci as cuno di cost o
0 ( n ) , per un t empo c ompl es s i vo 0 ( n l og n ).
No n è det t o per ò c he t ut t o va da così l iscio. Per e s e mpi o, se la s e que nza è or di nat a in
par t enza, la scel t a del pr i mo el ement o pr oduce una s ot t os equenza di un sol o el ement o con
gli el ement i rest ant i nel l a s ot t os equenza degl i el ement i gr andi . In quest o c as o Qui cks or t
si compor t a in mo d o mol t o si mi l e al l ’or di nament o per s el ezi one e i mpi ega un t empo
pr opor zi onal e a ri 2 per or di nar e gli n el ement i .
Per ci ò l e mi gl i or i i mpl ement azi oni del Qui cks or t non s cel gono il pivot in una pos i ­
zi one speci fi ca del l a s e quenza , ma in una pos i zi one cas ual e. Og n u n o degl i n cl ement i
ha qui ndi pr obabil i t à l / n di esser e scel t o c o me pivot . Il t empo me di o di es ec uzi one
del Qui cks or t r andomi zza t o è 0 ( n l og n ). Ma poi ché r i mane una pr obabil i t à, per quant o
pi ccol a, che ogni scel t a del pivot pr enda l’el ement o pi ù gr ande o il pi ù pi ccol o, il t empo
di es ecuzi one del Qui cks or t nel cas o peggi or e è ancor a 0 ( n 2). Nonos t ant e ci ò, Qui cks or t
è il met odo pr efer it o in mol t e appl i cazi oni (per e s e mpi o vi ene usat o nel c o ma n do s o r t
di UNI X) per ché il s uo t empo me di o di es ecuzi one è mi gl i or e r ispet t o ad alt re sol uzi oni ,
anc he in confr ont o a quel l e c he nel cas o peggi or e s ono 0 (n l og n ).

11.4.2 Un modello di macchina di Turing con randomizzazione


Per r appr esent ar e in t er mi ni ast rat t i in una ma c c hi na di Tur i ng la capaci t à di c ompi er e
scel t e casual i i n mo d o anal ogo a un p r ogr a mma che c hi a ma una o pi ù vol t e un ge ne ­
r at or e di numer i casual i , r i cor r i amo al l a var iant e di una T M mul t i nast r o illust rat a nel l a
Fi gur a 11.6. 11 pr i mo nast r o cont i ene l’input , s ec ondo la pr assi per le T M mul t i nast r o.
An c h e il s ec ondo nast r o cont i ene i ni zi al ment e s i mbol i di ver si dal bl ank. L’int er o nast r o
è in effet t i occupat o da O e 1, ci as cuno scel t o a cas o e in mo d o i ndi pendent e; la pr o­
babil it à di scegl ier e O è 1/2, c lo st esso val e per I. Il s ec ondo nast r o sar à de nomi nat o
nast ro cas ual e. Il t er zo nast r o e i successi vi , se ve ngono usat i, s ono i ni zi al ment e bi anchi

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

Fi g u r a 11.6 Un a ma c c hi na di Tur i ng i n gr ado di usar e numer i “gener at i ” cas ual ment e.

Se l ’i dea di pr epar ar e la T M c on un nume r o infinit o di 0 e 1 scelt i a cas o non par e


r eal ist ica, si può pens ar e a una T M equi val ent e il cui s ec ondo nast r o sia i ni zi al ment e
bi anco. Qu a n d o la s econda t est ina guar da un bl ank, ha l uogo un “l anci o di monet i na”
i nt er no e la T M scr ive i mme di a t a me nt e uno 0 o un 1 sul l a cel l a, che vi r i mane per s empr e.
In ques t o mo d o non si c ompi e al cun l avor o pr i ma di avvi ar e la T M r andomi zzat a, t ant o
me n o un l avor o infinit o, ma il s ec ondo nast r o s embr a coper t o di 0 e 1 scelt i a cas o per ché
i bit casual i c ompa i ono do vunq ue si t r ovi la t est ina del s econdo nast r o.

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 .

1. Sup p o ni a mo c he l a s ot t os equenza da di vi der e abbi a l unghe zza r o. Per scegl i er e un


nume r o casual e t ra 1 e d r o occor r ono cir ca O(I o g m ) nuovi bit casual i sul s econdo
5 18 Capitolo 11

nast r o; l’m- cs i mo el ement o del l a s ot t osequenza di vent a il pivot . Os s e r vi a mo che


non s empr e s i amo in gr ado di scegl ier e ogni int er o t ra 1 ed m con la st essa pr obabi ­
lit à, per ché m può non esser e una pot enza di 2. Tut t avi a, se pr endi amo [2 Iog2 mi\
bit dal nast r o 2, li cons i der i amo c o me un nume r o c ompr es o fra O c cir ca n i 2, pr en­
di a mo il r est o del l a di vi si one per m e a ggi ungi a mo 1, a vr e mo tutti i numer i t ra 1
e d m con una pr obabil i t à di scel t a abbas t anza vi ci na a l / m , c ome r ichiest o per il
f unzi onament o cor r et t o del Qui cks or t .

2. Co p i a mo ¡I pivot sul nast r o 3.

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 .

5. Co p i a mo il nast r o 4 e poi il nast r o 5 nel l o s pazi o sul nast r o 1 c he pr i ma cont eneva


la sot t osequenza del imi t at a. Col l oc hi a mo un mar cat or e t ra le due s equenze.

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.

11.4.3 II linguaggio di una macchina di Türing randomizzata


Di sol it o cons i der i amo il l i nguaggi o accet t at o da una ma c c hi na di Tur i ng (o da un F- A o
da un P DA) anc he se è l ’i ns i eme vuot o oppur e l 'i ns i eme di t ut t e le st r inghe sul l 'al fabet o
di input . Ne l t rat t are ma c c hi ne di Tur i ng r andomi zzat e bi s ogna usar e una cer t a caut el a in
mer i t o al concet t o di accet t azi one; è anc he possi bi l e che una T M r andomi zzat a non accet t i
al cun l i nguaggi o. Qu a n d o e s a mi ni a mo le oper azi oni di una T M r andomi zzat a M a fr ont e
V

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

Se appl i c hi a mo a una T M r a ndomi zza t a il cr it er io di accet t azi one per st at o final e,


c o me in quel l e t r adi zi onal i , ogni i nput w ha una pr obabi l i t à di esser e accet t at o par i al l a
fr azi one dei possibil i cont enut i del nast r o cas ual e chc por t a a H’accet t azi one. Poi c hé il
nume r o dei possibi l i cont enut i del nast r o è infinit o, il cal col o del l a pr obabil i t à r i chi ede
una cer t a cur a. Da l mo me n t o che ogni s e que nza di mo s s e che por t a al l ’accet t azi one visit a
sol o una por zi one finit a del nast r o cas ual e, la pr obabil it à di una par t icol ar e conf i gur azi one
è finit a e ugual e a 2 ~m , se rn è il nume r o di cel l e del nast r o cas ual e c he s ono st at e visit at e
e che ha nno i nfl uenzat o a l me no una mo s s a del l a T M. Un e s e mpi o illust rerà il cal col o in
un cas o s empl i ce.

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

Fi g u r a 11.7 La f unzi one di t r ansi zi one di una ma c c hi na di Tur i ng r andomi zzat a.

Ri a s s umi a mo il compor t a ment o di A l su una st r inga di i nput w di 0 e I. Ne l l o st at o


i ni zi al e qo, M guar da il pr i mo bit cas ual e e s vol ge una ver ifi ca su u,\ a s econda c he il bit
cas ual e sia 0 o 1.
Se è 0, A l ver ifica se w consi st e in un sol o s i mbol o, 0 o I, event ual ment e r ipet ut o.
In ques t o cas o Al non l egge nes s un alt r o bit cas ual e, ma mant i ene f er ma la t est ina del
s e c ondo nast r o. Se il pr i mo bit di w è 0, A l pas s a al l o st at o q\ , i n cui si mu o v e ver so
dest r a s opr a ogni 0, ma muor e se ve de un 1. Se A l r a ggi unge il pr i mo bl ank sul nast r o
di input ment r e si t r ova nel l o st at o q i, pas s a al l o st at o accet t ant e q±. Ana l oga me nt e , se il
pr i mo bit di w è 1, e il pr i mo bit cas ual e è 0, Al pas s a al l o st at o q2, dove cont r ol l a se tutti
gli alt ri bit di w s ono 1. Se è così , accet t a.
520 Capitolo 11

Cons i de r i a mo or a che cos a fa M se il pr i mo bit cas ual e è I. M confr ont a w c on il


s ec ondo bit caus al e e con quel l i successi vi , accet t ando sol o se le due st r inghe coi nci dono.
Di c ons e gue nza dal l o st at o q0, se l egge 1 sul s econdo nast r o, A l pas s a al l o st at o q:i. Nel
far l o A l muo v e l a t est ina del nast r o cas ual e ver so dest r a s opr a un nuovo bit casual e,
ment r e la t est ina del nast r o di i nput vi ene mant enut a f er ma, per cui tutti i s i mbol i di w
s ar anno confr ont at i c on i bit casual i . Ne l l o st at o ¢ 3 , M confr ont a i due nast r i, s pos t ando
ver so dest r a le due t est ine. Se a un cer t o punt o i s i mbol i non coi nci dono, M muor e s enza
accet t ar e; se i nvece r aggi unge un bl ank sul nast r o di i nput , accet t a.
Ca l c ol i a mo or a la pr obabil i t à di accet t azi one di cert i i nput . In pr i mo l uogo cons i der i a­
mo un i nput o mo ge n e o , ci oè for mat o c on un sol o s i mbol o, c o me 0' per i > I. Il pr i mo bit
cas ual e sar à 0 con pr obabil i t à 1/2. In ques t o cas o Ia ver i fi ca di omogenei t à dà esit o posit i­
vo c Oi vi ene accet t at o. D'al t r a par t e c 'è una pr obabil i t à 1/2 che il pr i mo bit casual e sia 1.
In ques t o cas o 0' sar à accet t at o se e sol o se i bit casual i dal s ec ondo a i r (¿ + 1 )- esi mo s ono
t ut t i 0, il che accade con pr obabi l i t à 2~ \ Per t ant o la pr obabi l i t à t ot ale di accet t azi one di
Ui è
- 4- - 2- i = - +
2 2 2
Cons i de r i a mo or a il cas o di un input et er ogeneo w , ci oè un i nput for mat o sia da 0 sia
da 1, c o me 00101. L’input non vi ene accet t at o se il pr i mo bit cas ual e è 0. Se il pr i mo
bit cas ual e è 1 , la sua pr obabi l i t à di accet t azi one è 2~ \ dove i è la l unghe zza del l ’i nput .
Per ci ò la pr obabil i t à t ot ale di accet t azi one di un input et er ogeneo di l unghezza i è
Per e s e mpi o la pr obabil it à di accet t azi one di 00101 è 1/64.

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.

11.4.4 La classe TZV


L'e s s e nza del l a pr i ma cl asse di l i nguaggi , chi amat a 'JZV (da “r a ndo m pol ynomi al ” , ossi a
pol i nomi al e cas ual e), è che per esser e in TZ'P un l i nguaggi o L d e v ’esser e accet t at o da una
T M r andomi zzat a Al nel s ens o chc or a defi ni amo.

1. Se w non è in L , al l or a la pr obabi l i t à che A l accet t i w è 0.

2. Se w è i n L , al l or a la pr obabil i t à che M accet t i w è a l me no 1/2.

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

Non determinismo e caso


Tr a una T M r andomi zzat a e una T M non det er mi ni st i ca ci s ono anal ogi e super ­
ficiali. Pos s i a mo i mma gi na r e le scel t e non det er mi ni st i che di una N T M c o mc
gover nat e da un nast r o con bit casual i : ogni vol t a che l a N T M ha una scel t a, c o n­
sul t a il nast r o casual e c scegl i e da ndo la st essa pr obabi l i t à a t ut t e le opzi oni . Se
per ò i nt er pr et i amo una N T M in ques t o mo do , la r egol a di accet t azi one è piut t ost o
di ver sa da quel l a per 7Z V : un i nput vi ene rifiut at o se la sua pr obabil it à di accet t a­
zi one è 0 , e vi ene accet t al o se la pr obabil i t à è qual si asi val or e maggi or e di 0 , per
quant o pi ccol o.

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.14 Cons i de r i a mo la T M r andomi zzat a del l ’Es e mp i o 11.13. Es s a soddi s fa


cer t ament e la condi zi one (3) per ché il s uo t empo di es ecuzi one è C)(n ), i ndi pendent e­
ment e dai cont enut i del nast r o cas ual e. Per ò non accet t a nes s un l i nguaggi o nel s ens o
r ichiest o dal l a defi ni zi one di T ZV. Infat t i, ment r e gl i i nput omoge ne i c o me 000 s ono a c ­
cet t at i c on pr obabil i t à mi ni ma 1/2 e per ci ò s oddi s fano il punt o ( 2 ), esi st ono alt ri input ,
c o me 0 0 1 , accet t at i c on una pr obabi l i t à c he non è né 0 né al me no 1/ 2 ; per e s e mpi o 001 è
accet t at o c on pr obabi l i t à 1/16.

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

Su p p o n i a mo che il gr afo abbi a n nodi e d e lat i. Se c ’è a l me no u n t r i angol o, la pr oba ­


bil it à c he i s uoi t re nodi s i ano sel ezi onal i in u n ’e s ec uzi one è ( 2 ) ( —L ) . Infat t i t re degl i
c lati s ono nel t r i angol o, e se uno di essi vi ene scel t o, la pr obabi l i t à che anc he il t er zo
n o do ve nga sel ezi onat o è 1 / ( 7 1 — 2). Si t raila di una pr obabi l i t à bas s a, ma l 'es per i ment o è
r ipet ut o k vol t e. La pr obabi l i t à c he a l me no uno dei k es per i ment i pr oduca il t r i angol o è:

( 3 \k
( Π ·4 )

Se c o n do una not a a ppr os s i ma zi one , per pi ccol i val or i di x , (1 — x ) k è ci r ca c ~ k x ,


do ve e = 2.7 18 · · · è la bas e dei l ogar i t mi nat ur al i. Di c o ns e gue nza , se s c egl i amo k in
mo d o c he, per e s e mpi o, k x = 1 , e ~ h'J: sar à si gni fi cat i vament e mi nor e di 1 / 2 e 1 — e ~ kx
sar à s i gni fi cat i vament e ma ggi o r e di 1/2, pi ù pr eci s ament e ci r ca 0.63. Per ci ò pos s i a mo
scegl i er e k = e (n — 2 ) / 3 per gar ant i r e c he la pr obabi l i t à di accet t azi one di un gr afo c on
un t r i angol o s e c ondo l ’Eq u a zi o n c 11.4 sia a l me no 1/2. L'a l gor i t mo descr it io è dunq ue
Mont ec a r l o.
Do b b i a mo or a cons i der ar e il t e mpo di es ec uzi one del l a T M. Si a e sia n non s uper ano
la l unghe zza del l ’i nput , e si è scel t o c hc k non sia ma ggi or e del quadr at o del l a l unghe zza ,
per ché è pr opor zi onal e al pr odot t o di e cd n . Og n i t ent at ivo s candi s ce l’i nput al ma s s i ­
mo quat t r o vol t e (per scegl i er e il l at o e il nodo , e poi per cont r ol l ar e la pr es enza di due
ul t er ior i lat i), e d è qui ndi l i near e r ispet t o al l a l unghe zza del l 'i nput . Per t ant o la T M si
ar r est a do p o un t e mpo al ma s s i mo c ubi c o nel l a l unghe zza del l ’i nput , ci oè la T M ha un
t e mpo di es e c uzi one pol i nomi al e e s oddi s fa qui ndi la t er za e ul t i ma c ondi zi one per cui un
l i nguaggi o è in 'JZV.
Conc l udi c i mo che il l i nguaggi o dei gr afi con un t r i angol o è nel l a cl asse T Z V . Da t o che
s ar ebbe pos s i bi l e far e una r i cer ca si st emat i ca di tut ti i possi bi l i t r i angol i , il l i nguaggi o è
a nc he i n V . Co m e a bbi a mo det t o al l ’i ni zi o del Par agr afo 11.4, è difficil e t r ovar e e s e mpi
in T Z V - V .

11.4.5 Riconoscimento di linguaggi in IZV


Su p p o n i a mo or a di aver e una ma c c hi na di Tur i ng Mont e c a r l o M c hc r i conos ce un l i n­
gua ggi o L in t e mpo pol i nomi al e. Ab b i a mo una st r i nga w e vo gl i a mo saper e se è in L . Se
e s e gui a mo M su L us a ndo una monet i na o un alt r o di sposi t i vo c he gener i numer i casual i
per s i mul ar e la cr eazi one di bit casual i , s a ppi a mo che:

1. se w n o n è in L , l ’e s e c uzi one non condur r à al l a s ua accet t azi one

2 . se w è in L , esist e a l me no il 5 0 % di pr obabi l i t à chc sia accet t at o.

Se per ò c ons i de r i a mo il r isul t at o di un'e s e c uzi o ne c o me defi ni t i vo, a vol t e r i fi ut er emo w


q u a n do a v r e mmo dovut o accet t ar l o (un f al s o negat i v o), anc he se no n accet t er emo ma i
Classi di linguaggi basate sulla randomizzazione 523

Il ruolo di 1/2 nella definizione di TZV


Ab b i a mo definit o TZV i mp o ne ndo c he la pr obabi l i t à di accet t ar e una st r inga w in
L sia a l me no 1/2, ma a v r e mmo pot ut o usar e una qua l unque cost ant e c ompr es a
t ra 0 e 1, est r emi escl usi . Il Te o r e ma 11.16 affer ma che, r i pet endo l’es per i ment o
fat t o da M per un c ongr uo nume r o di vol t e, pos s i a mo el evar e a pi aci ment o la pr o­
babil it à di accct t azi one, fino a 1 escl uso. La t ecni ca per di mi nui r e la pr obabil i t à
di non accet t azi one di una st r inga in L chc a bbi a mo usat o nel Par agr afo 11.4.5 ci
per met t er à , dat a una T M r andomi zzat a con una pr obabi l i t à ma ggi or e di 0 di a c ­
cet t ar e w in L, di aument ar e quest a pr obabil it à fino a 1/2. r i pet endo l ’es per i ment o
per un nume r o fisso di vol t e.
Cont i nuer e mo a r i chi eder e 1/2 c o me pr obabil i t à di accet t azi one nel l a defi ­
ni zi one di T ZV, ma do bbi a mo esser e cons apevol i che qua l unque pr obabil i t à non
nul l a è adeguat a. Per al t r o un c a mbi o del l a cost ant e modi fi ca il l i nguaggi o defi ni ­
t o da una par t icol ar e T M r andomi zzat a. Ne l l ’Es e mp i o 11.14 a bbi a mo vist o che,
a bbas s ando l a pr obabil i t à r ichiest a a 1/16, la st r inga 0()1 s ar ebbe nel l i nguaggi o
del l a T M r andomi zzat a.

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.

11.4.7 Relazioni tra IZV e Z V V


Un a s empl i ce r el azi one l ega le due cl assi r andomi zzat e a ppe na definit e. Pr i ma di e n u n ­
ciar e il r el at ivo t eor ema do bb i a mo per ò es ami nar e i c ompl ement i del l e cl assi. Do vr e bbe
esser e chi ar o c he se L è i n Z V V l o è a nc he L . Infat t i, se L è accet t at o da una T M AT
La s Vega s c on t empo me di o pol i nomi al e, al l or a L è accet t at o da una var i ant e di AT in cui
t r as for mi amo l ’accet t azi one in ar r est o s enza accet t azi one, ment r e se A l si ar r est a s enza
accet t ar e, pa s s i a mo a uno st at o accet t ant e e ci ar r est i amo.
No n c i nvece ovvi o c he 7Z V sia chi us a r ispet t o al l a c ompl e me nt a zi one , in quant o la
defi ni zi one del l e ma c c hi ne di Tur i ng Mont ecar l o t rat t a in mo d o di ver so accet t azi one c
r ifiut o. Di c ons e gue nza def i ni amo la cl asse CO- Tt V c o me l ’i ns i eme dei l i nguaggi L tali
c he L sia in TZV \ ci oè co- TZV r appr esent a i compl ement i dei l i nguaggi in T Z V .

Te o r e m a 1 1 . 1 7 Z V V = TZV Π co- TZV.

DIMOSTRAZIONE In pr i mo l uogo di mos t r i amo TZV Π c o - W C Z V V . Si a L un l in­


gua ggi o in TZV Π co- TZV. Al l or a c 'è una T M Mont e c a r l o per L e una per L , ci as cuna
c on t empo di es ecuzi one pol i nomi al e. Si a p (n ) un pol i nomi o s uffi ci ent ement e gr ande da
l imit ar e il t e mpo di es e c uzi one di a mbe du e le ma c c hi ne . De f i ni a mo una T M La s Vega s
AT per L.

1. Es e gu i a mo I a T M Mont ecar l o per L ; se accet t a, al l or a Al accet t a e si ar r est a.

2. In cas o cont r ar i o e s e gui a mo l a T M Mont ec ar l o per L . Se l a T M accet t a, al l or a AT


si ar r est a s enza accet t ar e. Al t r i ment i A l r it or na al pas s o (1).

Ov vi a me n t e Al accet t a un i nput t v sol o se quest o si t r ova in L e l o rifiut a sol o se non si


t r ova i n L . 11 t empo di e s e c uzi one di un t ur no (es ec uzi one dei passi 1 e 2) è 2p (n ). La
Classi di linguaggi basate sulla randomizzazione 525

pr obabi l i t à che un t ur no r isol va la ques t i one è a l me no 1/2. Infat t i, se w è in L , al l or a il


pas s o (1) ha il 5 0 % di pr obabi l i t à di condur r e al l ’accet t azi one da par t e di M , e se w non
è in L , il pas s o (2) ha il 5 0 % di pr obabi l i t à di condur r e al r ifiut o da par t e di M . Qui n di il
t e mpo me di o di es ecuzi one di M non è maggi or e di

2P(«) + 22p(7t) + \ ‘2p^ + g2P(n) + · ' · = 4 P(n)

Cons i de r i a mo or a l 'i nver s o: a s s umi a mo che L sia in Z V V c di mos t r i amo c he L è sia


in TZV sia in c o - TZV. Sa p p i a mo c he L è accet t at o da una T M La s Ve ga s M\ c on un t e mpo
me di o di e s ec uzi one che è un pol i nomi o p (n ). Cos t r ui a mo una T M Mont ec ar l o T M M 2
per L . M 2 s i mul a M\ per 2p (n ) passi . Se My accet t a dur ant e ques t o int er val l o di t e mpo,
10 f a anc he M 2; al t r iment i M 2 rifiut a.
Su p p o n i a mo che l ’i nput w di l unghe zza n non sia in L . Al l or a Ai 1 non accet t er à w ,
e per ci ò non lo far à neppur e M 2. Sup p o n i a mo che ?/; sia i n L . Pr i ma o poi Mi accet t er à
s i cur ament e w , ma non è det t o che l o facci a ent r o 2p (n ) passi .
No i a f f e r mi a mo per ò che la pr obabi l i t à che Mi accet t i w ent r o 2p (n ) passi è a l me no
1/2. Su p p o n i a mo che la pr obabi l i t à di accet t azi one di w da par i e di M\ ent r o il t empo
2p { n ) sia una cost ant e c < 1 / 2 . Al l or a il t empo me di o di es ec uzi one di M\ su i nput w è
a l me no (1 — c )2p (n ,), dat o che 1 — c è l a pr obabi l i t à c he Μχ i mpi eghi pi ù di 2p ( n ) . Se
c < 1 / 2 , al l or a 2( 1 - c) > 1, e il t empo me di o di es ecuzi one di M i su w è ma ggi or e di
p (n ). Ab b i a mo così cont r addet t o l’ipot esi che M\ abbi a un t empo me di o di es ec uzi one
no n super i or e a p (n ), e per ci ò c onc l udi a mo che la pr obabi l i t à c he M 2 accet t i è a l me no
1/2. Di c ons e gue nza M 2 è una T M Mont ecar l o con l imi t e pol i nomi al e sul t empo, il che
di mos t r a c he L è i n T ZV.
Per di most r ar e che a nc he L è in co- 7Z V . us i a mo es s enzi al ment e l a st essa cos t r uzi one,
c o mp l e me nt a ndo per ò il r isul t at o di M 2. In alt re par ol e, per accet t ar e L f a c c i a mo sì che
M 2 accet t i q ua ndo M\ r ifiut a ent r o un t e mpo 2p (n ), ment r e M 2 rifiut a nel cas o oppos t o.
In ques t o mo d o M 2 è una T M Mont ecar l o con l imit e pol i nomi al e sul t empo per L .

11.4.8 Relazioni con le classi V ed M V


11 Te o r e ma 11.17 i ndi ca che Z V V C TZV. Pos s i a mo col l ocar e quest e cl assi t ra V cd M V
gr azi e a due s empl i ci t eor emi .

Te o r e ma 11.18 V C Z V P .

DIMOSTRAZIONE Un a T M det er mi ni st i ca con l imit e pol i nomi al e sul t empo è a nc he una


T M La s Vega s c on l imit e pol i nomi al e sul t empo, che non r icor r e al l a possibil it à di c o m­
pier e scel t e casual i .

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 ” .

Fi g u r a 11.8 Rel azi oni di Z V P e d 'JZV con alt re cl assi.


Complessità e numeri primi 527

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.

11.5.1 L’importanza della verifica di primalità


Un nume r o int er o p è pr i mo se gl i uni ci int eri c he l o di vi dono s enza r est o s ono 1 e il
n ume r o st esso. Se un nume r o i nt er o non è pr i mo, di c i a mo c he è compos t o. Og n i nume r o
c ompos t o può esser e scrit t o c o me pr odot t o di numer i pr i mi in mo d o uni co, s al vo c he per
l’or di ne dei fat t ori.

Es e m p i o 1 1 . 2 0 I numer i pr i mi pi ù bassi s ono 2, 3, 5, 7, 11, 13 e 17. L’int er o 504 è


c ompos t o e la s ua s c ompos i zi one in fat t ori è 2 ,! x 3 2 x 7.

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 .

Fi r me c on chi ave pubbl i ca

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

i pr i mi ; c o me ve dr e mo nel Par agr afo 1 1.5.4 esist e i nvece un al gor i t mo Mont ec a r l o


in t e mpo pol i nomi al e.

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.

11.5.2 Introduzione all’aritmetica modulare


Pr i ma di es ami nar e gl i al gor i t mi per r i conoscer e l ’i ns i eme dei nume r i pr i mi , pr es ent i amo
le nozi oni fondament al i del l ’ar i t met i ca modul ar e, ossi a le c o muni oper azi oni ar i t met i che
es egui t e mo dul o un int er o, s pes s o un nume r o pr i mo. Si a p un int er o. Gl i int eri m o dul o p
s ono 0 , 1 , . . . , p — 1.
Po s s i a mo defi ni r e s o mma e pr odot t o modul o p su ques t o i ns i eme di p int er i e s e gue ndo
il nor ma l e cal col o e cons i der ando il r est o del l a di vi s i one per p del r isul t at o. La s o mma è
mol t o s empl i ce per ché il r isul t at o o è mi nor e di p , e no n do bb i a mo far e al t r o, o è c o m­
pr es o fr a p e 2p — 2, nel qual cas o bast a sot t rarre p per ot t ener e un int er o nel l ’int er val l o
0 . 1 , . . . ,jp — 1. La s o mma modul ar e r ispet t a le nor mal i pr opr i et à al gebr i che: è c o m mu ­
t at iva, associ at i va, e ha 0 c o me ident it à. La sot t r azi one è ancor a l’inver so del l a s o mma ;
pos s i a mo cal col ar e la di ffer enza modul a r e x — y sot t r aendo c o me s empr e e a ggi unge n­
do p se il r isul t at o è mi nor e di 0. L’oppos t o di x , ci oè —x , coi nci de con 0 — x c o me
nel l ’ar i t met i ca or di nar i a. Qui ndi —0 = 0, e se x φ 0, —x coi nci de c on p — x .

Es e m p i o 11.21 Po n i a mo p — 13. Al l or a 3- f- 5 = 8 e 7 + 10 = 4. Infat t i nel l ’ar i t met i ca


or di nar i a 7 + 10 = 17, c he non è infer i or e a 13. Per ci ò sot t r ai amo 13 per ot t ener e il
r isul t at o cor r et t o, 4. 11 val or e di —5 mo dul o 13 è 13 — 5, ci oè 8. La di ffer enza 1 1 — 4
mo dul o 13 è 7, ment r e la di ffer enza 4 — LI è 6. Infat t i nel l 'ar i t met i ca or di nar i a 4 - 1 1 =
—7, e a ggi unge ndo 13 ot t eni amo 6.

La mol t i pl i cazi one mo du l o p vi ene svol t a mol t i pl i cando c o me si fa con i numer i or di ­


nar i e pr e nde ndo poi il r est o del r isul t at o di vi so per p. An c h e la mol t i pl i cazi one s oddi s fa
530 Capitolo 11

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

Fi g u r a 11.9 Mol t i pl i cazi one mo dul o 7.

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

Fi g u r a 11.10 Mol t i pl i cazi one mo dul o 6.

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 .

• Sc p c un numer o pr i mo, al l or a a p _1 = 1 modul o p. Que s t o enunci at o è det t o


t eorema di Fer mat .9

• Il gr ado di a modul o un nume r o pr i mo p è s empr e un di vi sor e di p — 1.

• Sc p è un numer o pr i mo, esist e s empr e un a di gr ado p - I modul o p .

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.

11.5.3 La complessità del calcolo in aritmetica modulare


Pr i ma di t rat t are le appl i cazi oni del l’ar it met ica modul ar e al l a ver ifica di pr imal it à, do b­
bi a mo st abilir e al cune pr opr iet à r el at ive al t empo di cal col o del l e oper azi oni essenzi al i .
Sup p o n i a mo di vol er effet t uar e cal col i nel l ’al gebr a modul o un nume r o pr i mo p , dove la
r appr esent azi one binar ia di p è l unga n bit , ovver o p è del l 'or di ne di gr andezza di 2n .
Co me s empr e il t empo di es ecuzi one di un cal col o è dat o in t er mini di n , l a l unghezza
del l ’i nput , anzi ché in t er mi ni di p , il “val or e” del l ’i nput . Per e s empi o, poi ché cont ar e
fino a p r i chi ede un t empo 0 ( 2 " ) , un cal col o che compor t i p passi non sar à in t empo
pol i nomi al e c o me funzi one di n .
Pos s i a mo cer t ament e s omma r e due numer i modul o p in un t empii O( n ) c on un c o m­
put er o con una T M mul t inast r o. Do b b i a mo s empl i cement e s omma r e i numer i bi nar i, e
se il r isult at o è maggi or e o ugual e a p , sot t rarre p . Ana l oga me nt e pos s i amo mol t ipl icar e
due numer i in un t empo 0 ( n 2) con un comput er o con una ma c c hi na di Tur i ng. Do p o
aver mol t ipl icat o i numer i nel mo do cons uet o e aver ot t enut o un r isult at o di non più di 2 n
bit , di vi di amo per p c t eni amo il r est o.
Cal col ar e una pot enza del nume r o x è pi ù compl i cat o per ché l’esponent e pot r ebbe a
sua vol t a esser e es ponenzi al e in ri. Co me vedr emo, un pas s o i mpor t ant e è l 'el evament o
di X al l a pot enza p — 1. Da t o che p — 1 ò del l 'or di ne di 2n , se mol t i pl i cassi mo x per se
st esso p — 2 vol t e c o mp i r e mmo 0 ( 2 " ) mol t i pl i cazi oni . An c h e se ogni mol t i pl i cazi one
coi nvol ge sol o numer i di ri bit e può esser e effet t uat a in un t empo 0 ( n 2), il t empo t ot ale
sar à 0 ( n 22 ” ), che non è pol i nomi al e in ri.
Pos s i a mo per ò sfrut t are la r icor sione per cal col ar e x ν~ λ (oppur e ogni alt ra pot enza di
X fino a p ) in un t empo pol i nomi al e r ispet t o a n .

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

1. Ca l c ol i a mo le pot enze x , x 2, x 4 . x * , . . . c on es ponent e mi nor e o ugual e a p — 1,


c he s ono al ma s s i mo ri. Og n i val or e è un nume r o di n bit , cal col at o i n un t empo
0 ( n 2) el evando al quadr at o il val or e pr ecedent e del l a s e que nza . Il cost o t ot al e è
qui ndi 0 ( n 3).

2. Tr o vi a mo la r appr es ent azi one bi nar i a di p —l , c i o è p —1 = αη - \ · · ·αι ί ζ0. Pos s i a mo


scr iver e
p — 1 = (io + 2t t i + 4ü 2 + · · · + 2 ” 1Qn - I

dove ogni a.j è 0 oppur e 1. Qui n di

j- V ~ 1 — ^."ο+2< ϊ ι —4a 2H- - f 2 " 1Cin i

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 ).

Qui n di l’int er o cal col o di .Tp- 1 r i chi ede un t empo 0 ( η ).

11.5.4 Verifica di primalità in tempo polinomiale randomizzato


Cons i de r i a mo or a c o me i mpi egar e un cal col o r a ndomi zza t o per t r ovar e numer i pr i mi
gr andi . Pi ù pr eci s ament e di mos t r er emo c he il l i nguaggi o dei numer i compos t i è in T ZV.
Il met odo usat o in pr at ica per gener ar e numer i pr i mi di n bit consi st e nel pr ender e a cas o
un nume r o di n bit e appl i car e un nume r o el evat o di vol t e, di c i a mo 50, il met odo Mo n t e ­
car l o per r i conoscer e i numer i compos t i . Se a l me no un es per i ment o i ndi ca c he il nume r o
è c ompos t o, s a ppi a mo che non è un nume r o pr i mo. Se nes s un es per i ment o i ndi ca che è
c ompos t o, la pr obabil i t à c he l o sia non super a 2~ o0. Qui n di pos s i a mo affer mar e c on una
cer t a fi duci a che il nume r o è pr i mo, e fondar e le oper azi oni su quest o.
No n da r e mo l’al gor i t mo compl et o, e di s cut er emo i nvece u n ’i dea c he f unzi ona , t r anne
che i n un nume r o mol t o rist ret t o di casi . Ri c or di a mo il t eor ema di Fer mat : se p è pr i mo
al l or a x p~ l modul o p è s empr e 1. È inol t r e un fat t o c he se p è un nume r o c ompos t o, ed
esist e un qual si asi x per il qual e χ ρ~ λ modul o p non è 1, al l or a per al meno la met à dei
val or i di x nel l ’int er val l o da 1 a p — 1 val e x p~ l φ 1.
Qui n di pos s i a mo ut i l i zzar e la s eguent e pr ocedur a c o me met odo Mont ecar l o per i
nume r i compos t i .

1. Pr e ndi a mo un nume r o x a cas o nel l ’int er val l o da I a p — 1.

2. Ca l c ol i a mo x p~ ] mo dul o p. Os s e r vi a mo che, se p è un nume r o di ri bit , il cal col o


r i chi ede un t empo 0 ( n 3), c o me a bbi a mo vist o al l a fine del Par agr afo 11.5.3.
Complessità e numeri primi 533

Fattorizzare in tempo polinomiale randomizzato


L’al gor i t mo del Par agr afo 11.5.4 r ivel a che un nume r o è compos t o, ma non di ­
ce c o me fat t or izzar l o. Si r it iene che non ci sia mo do di fat t or izzar e un numer o
in t empo pol i nomi al e anche r i cor r endo al caso, e n e mme n o in medi a. Se que ­
st a as s unzi one fosse er r at a, le appl i cazi oni pr esent at e nel Par agr afo 11.5.1 non
sar ebber o sicur e e non do vr e mmo usar l e.

3. Se x p 1 Φ 1 modul o p , accet t i amo: p è compos t o. Al t r i ment i ci ar r est iamo s enza


accet t ar e.

Se p è pr i mo, al l or a a *- 1 = 1. Qui ndi ci ar r est er emo s empr e s enza accet t ar e; quest o


è uno dei r equisit i di un met odo Mont ecar l o: se l’input non è nel l i nguaggi o, non va
mai accet t at o. Per quasi tutti i numer i compos t i , a l meno la met à dei val or i di x soddi sfa
x p- 1 φ \ Per t ant o avr emo a l me no il 5 0 % di pr obabil it à di accet t ar e a ogni es ecuzi o­
ne del l ’al gor i t mo, e quest o è un alt ro r equisit o di un al gor i t mo per pot er esser e di t ipo
Mont ecar l o.
Quel l a appena descr it t a pot r ebbe esser e la di most r azi one che i numer i compost i s ono
in 7Z V , se non fosse per l’esi st enza di un pi ccol o i ns i eme di numer i compost i c. per i
qual i = 1 modul o c per la maggi or par t e degl i x nel l ’int er val l o da I a c - 1, in
par t icol ar e per gli x che non condi vi dono un fat t ore pr i mo con c. Quest i numer i , det t i
numer i di Car mi chael , r i chi edono un’alt ra ver ifica pi ù compl es s a (che non des cr i vi amo)
per scopr ir e che s ono numer i compos t i . Il pi ù pi ccol o nume r o di Car mi chael è 561. Ci ò
significa che x 560 = 1 modul o 561 per t utti gli x che non s ono divisibil i per 3, 11 o 17,
anche se 501 = 3 x l l x l 7 è evi dent ement e un nume r o compos t o. Pos s i amo qui ndi ,
s enza dar ne la di most r azi one compl et a, enunci ar e un t eor ema.

Te o r e ma 11.24 L’i ns i eme dei numer i compost i è in TZV.

11.5.5 Verifiche di primalità non deterministiche


Es a mi ni a mo un alt ro risult at o int er essant e e significat ivo l egat o alle ver ifiche di pr imal it à:
il l i nguaggi o dei numer i pr i mi è in M V Π Co - ArV . Per t ant o il l i nguaggi o dei numer i c o m­
post i, compl ement o dei pr i mi , è in N V Π c o - NV. Se ne deduce che è i mpr obabi l e che
i numer i pr imi o i numer i compos t i si ano NP- compl et i , per ché in quest o cas o a vr e mmo
l’inat t esa uguagl i anza N V = c o - NV.
Un a par t e è sempl i ce: i numer i compos t i sono ovvi ament e in N V , qui ndi i pr i mi s ono
in co- ÀrV . Pr over emo innanzit ut t o quest a pr opr iet à.
534 Capitolo 11

Te o r e ma 11.25 L’i ns i eme dei numer i compos t i è i n A f V .

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 ) .

2. Di vi di a mo p per / e ver i fi chi amo se il r est o è 0. Se sì , accet t i amo il r isul t at o.


Que s t a par t e è det er mi ni st i ca e può esser e compl et at a in t empo 0 { n 2) su una T M
mul t i nast r o.

Se p è c ompos t o deve aver e a l me no un fat t or e / di ver so da 1 e p . Da t o che la N T M


scegl i e tutti i numer i di l unghe zza fino a n bit , in qual che di r a ma zi one scegl ier à / . Que s t a
di r a ma zi one por t a al l 'accet t azi one. Ne l l ’alt r o s ens o, l’accet t azi one da par t e del l a N T M
i mpl i ca chc è st at o t r ovat o un fat t or e di p di ver so da 1 o da p st esso. Qui ndi la N T M
descr it t a accet t a il l i nguaggi o for mat o da tut ti e sol i i numer i compos t i .

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:

a) ver ificar e che il l or o pr odot t o sia p — 1


10Os s e r v i a m o c h e , s e p è p r i mo , al l or a p — 1 non è mai p r i m o , t r a nne c h c nel c a s o p o c o i nt e r e s s a nt e p = 3.
Il m o t i v o è c h e t ut t i i p r i mi , e c c e t t o 2 . s o n o d i s p a r i .
Complessità e numen primi 535

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.

Te o r e ma 11.26 L’i ns i eme dei numer i pr i mi è in M T .

DIMOSTRAZIONE Si a p un nume r o di n bit . Se n no n è pi ù gr ande di 2 (ci oè p è 1, 2 o 3)


r i s pondi amo di r et t ament e al l a do ma n d a : 2 e 3 s ono pr i mi , ment r e I non l o è. Al t r i ment i
pr oc edi amo.

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.

3. Se il pr odot t o b p — 1, ver i fi chi amo r i cor si vament e se ogni nume r o c pr i mo us ando


l ’al gor i t mo descr it t o.

4. Se i q s ono tutti pr i mi , s cegl i amo un val or e di x c cont r ol l i amo se Φ- 1 per


ogni qj . Ques t a ver ifica gar ant i sce c he x ha gr ado p — 1 mo du l o p per che, se così
non fosse, il s uo gr ado dovr ebbe di vi der e a l me no un ( p - 1 ) / ¾, e a bbi a mo appena
vist o c he non è ver o. Os s e n i a mo c he ogni x el evat o a una qual si asi pot enza del
s uo gr ado de v’esser e 1. Per gli el evament i a pot enza si può appl i car e un met odo
efficient e c o me quel l o descr it t o nel Par agr afo 11.5.3. Ci s ono qui ndi al ma s s i mo k
el evament i a pot enza, ci oè s e nz’alt r o me n o di n , o gnu no dei qual i può esser e svol t o
in un t empo 0 ( n 3), c on un t e mpo t ot ale O (ri4) per ques t o pas s o.

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.

Or a s a ppi a mo che sia i pr i mi sia il l or o c ompl e me nt o s ono in A f V . Se l ’uno o Pal t r o


fos s e NP- c ompl et o, al l or a per il Te o r e ma 11.2 a v r e mmo una di mos t r azi one c he A rV =
c o - A'V.

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.

Es e r c i zi o 11.5.3 Un i nt er o x c ompr e s o t ra 1 e p — 1 si di ce un r es i duo quadr at i co mo dul o


p se esist e un int er o y c o mp r e s o fr a 1 e p — 1 t ale chc y 2 = x .

* 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.

b) Qual i s ono i r esidui quadr at i ci mo du l o 13?

! c ) Di mos t r at e che se p è pr i mo, il nume r o dei r esi dui quadr at i ci mo dul o p è ( p —


1 ) / 2 , ci oè esat t ament e met à degl i int er i non nul l i mo dul o p s ono r esidui quadr at i ci .
Sugger i ment o: es ami nat e i risult at i dei punt i (a ) c (b). Ne emer ge uno s c he ma
c he spi eghi per qual e r agi one ogni r esi duo quadr at i co è il quadr at o di due numer i
di ver si ? Un int er o p u ò esser e il quadr at o di t re numer i diver si se p è pr i mo?

11.6 Ri e p i l o g o

La cl as s e c o - ArV : un l i nguaggi o è in c o - N V se il s uo c o mpl e me nt o è i n N V . Tut t i


i l i nguaggi in V s ono s e n z’alt r o in c o - N V , ma è pr obabi l e c he esi st ano l i nguaggi in
N V c he non s ono i n c o - NV, e vi cever sa. In par t icol ar e non s embr a c he i pr obl emi
NP- compl et i si ano in c o - NV.

La cl as s e V S : un l i ngua ggi o è in V S (s pazi o pol i nomi al e) se è accet t at o da una


T M det er mi ni st i ca per la qual e esist e un pol i nomi o p ( n ) t ale c he , dat o un i nput di
l unghe zza n , la T M non us a pi ù di p ( n ) cel l e del nast r o.

La cl as s e N V S : pos s i a mo defi ni r e l ’accet t azi one da par t e di una T M non det er mi ­


nist ica il cui us o del nast r o è l imi t at o da u n a f unzi one pol i nomi al e del l a l unghe zza
del l ’i nput . La cl asse di l i nguaggi cor r i s pondent e è det t a N V S . Per il t eor ema di
Savi t ch s a ppi a mo che V S = N V S . In par t icol ar e una N T M con l imit e di s pazi o
p ( n ) può esser e s i mul at a da una D T M in s pazi o p 2 ( n ) .
538 Capitolo 11

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 .

La cl as s e TZP: un l i nguaggi o è accet t at o in t e mpo pol i nomi al e r a ndomi zza t o se


esist e una ma c c hi na di Tur i ng r a ndomi zza t a a t e mpo pol i nomi al e che ha a l me no il
5 0 % di pr obabi l i t à di accet t ar e un i nput se è nel l i nguaggi o. Se l’i nput non è nel
l i nguaggi o, al l or a la T M non accet t a mai . La T M, o un al gor i t mo, c he si compor t a
in ques t o mo d o è det t a “Mont ec a r l o” .

La cl as s e Z V V ' . un l i nguaggi o è nel l a cl asse pol i nomi al e pr obabi l i st i ca a er r or e


nul l o se è accet t at o da una ma c c hi na di Tur i ng r a ndomi zza t a che pr ende s empr e
la deci s i one cor r et t a sul l ’appar t enenza al l i nguaggi o. La T M deve aver e un t empo
me di o di e s ec uzi one pol i nomi al e; il cas o peggi or e p uò esser e maggi or e di qual si asi
pol i nomi o. Un a T M o un al gor i t mo che si c ompor t a no i n ques t o mo d o s ono det t i
“La s Ve ga s ” .

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 N P : sia i numer i pr i mi sia il c ompl e me nt o del l i nguaggi o dei


pr i mi (i numer i c ompos t i ) s ono in A i V . Du n q u e è i mpr obabi l e c he i numer i pr i mi o
quel l i compos t i s i ano NP- compl et i . Poi ché esi st ono i mpor t ant i s chemi cr it t ogr afici
che si ba s a no sui numer i pr i mi , una t ale di mos t r azi one s ar ebbe una pr ova evi dent e
del l a l or o s i cur ezza.

/ 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 .

1. S. Ev e n , R. E. Tar j an, “A combi nat or i al pr obl em wh i c h is compl et e for pol ynomi al


s pace” , J. A C M 23:4 ( 1976), pp. 710- 719.

2. J. Har t mani s , P. M. Le wi s II, R. E. St ear ns, “ Hi er ar chi es of me mo r y l i mi t ed c o m­


put at i ons,” P roc. Sixt h An n u al I E E E Sy mpo s i um on Swi t chi ng Ci rcui t Theor y an d
Logi c al De s i gn (1965), pp. 179- 190.

3. J. E. Ho p c r o f L J. D. Ul l ma n. Int roduct i on t o Aut omat a Theor y , Language s , an d


Comput at i on. Addi s on- Wes l ey. Re a di ng MA, 1979.

4. R. M. Ka r p , “Reduci bi l i t y a mo n g combi nat or i al pr obl e ms ”, in Compl exi t y o f Co m ­


put er Comput at i ons (R. E. Mi l l er , e d.), Pl e num Pr es s , Ne w Yor k, 1972, pp. 85- 104.

5. D. E. Knut h, The Ar t o f Co m p ut e r Pr ogr ammi ng, Vol. II: Semi nume r i c al Al go r i ­


t hms , Addi s on- We s l e y, Re a di ng MA , 1997 (t er za edi zi one).

6. G. L. Mi l l er , “ Ri e ma n n 's hypot hes i s and t est s for pr i mal i t y” , J. Co mp ut e r an d


Sy st em Sci ences 1 3 ( 1 9 7 6 ) , pp. 300- 317.

7. R. Mo t wa n i , P. Ra gh a v a n , Ran d o m i z e d Al gor i t hms , Ca mbr i dge Uni v. Pr es s , 1995.

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.

9. V. R. Pr at t , “Ever y pr i me has a succi nct cer t ificat e” , S I A M J. Comput i ng 4:3 ( 1975),


pp. 214- 220.

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.