Sei sulla pagina 1di 62

1.

8MACCHINEDITURING
LamacchinadiTuringe'unautomacontestina
discrittura/letturasunastrobidirezionale
"potenzialmente"illimitato.Adogniistantela
macchinasitrovainunostatoappartenentead
uninsiemefinitoeleggeuncaratteresulnastro.
Lafunzioneditransizioneinmodo
deterministico,fascrivereuncarattere,fa
spostarelatestinainunadirezioneonell'altra,fa
cambiarelostato.
LemacchinediTuring:

fornisconounadefinizioneformaledel
concettodialgoritmo
consentonoilriconoscimento,almeno
"parziale",dituttiilinguaggiditipo0

sonoingradodisimulareognilinguaggiodi
programmazioneedognialtromodellodi
calcolo("tesidiChurchTuring").

Def.MacchinadiTuring:
M=<,b,K,q0,F,>

b
K
q0
F

alfabetodisimboli
caratterespeciale,spaziobianco(blank)
insiemefinitodistati
statoiniziale
insiemedistatifinali
funzioneditransizione(parziale)

:K({b})K({b}){d,s,i}
d,s,iindicanospostamentoadestra,asinistrae
immobilita'dellatestina
b={b}

Possiamodefiniremoltevariantidimacchinedi
Turing(tuttecomputazionalmenteequivalenti)

macchineaunoopiu'nastri

macchinedeterministicheenon
deterministiche

macchineconalfabetolimitato

macchineconnastroseminfinito

macchinepercalcolarefunzioni

macchineperriconoscerelinguaggi

Configurazioniecomputazioni
NOTABENE.Ilnastro,puressendoinfinito,ha
unnumerofinitodicaratterib
Def.Configurazionediunamacchina:
porzionefinitadelnastrodiversadab+
posizionedellatestina+statocorrente
Rappresentazionediunaconfigurazione:stringa
appartenenteallinguaggio
(b)*.K.(b)+
Esempio
abbbbqiabbbbb
Laconoscenzadiunaconfigurazioneedella
funzioneditransizioneconsentedideterminare
laconfigurazionesuccessiva.

Normalmentesifal'ipotesicheall'iniziodella
computazioneilnastrocontengal'input,ilresto
delnastrocontengabelatestinasiasulprimo
caratteredell'input
Configurazioneiniziale:
stringaappartenenteallinguaggio
{q0}.(b)+
Configurazionefinale:
stringaappartenenteallinguaggio
(b)*.F.(b)+

Def.Relazioneditransizionepermacchinadi
Turing(|):relazionebinariasulle
configurazioni
ci|ci+1
Def.ComputazionepermacchinadiTuring:
sequenzaeventualmenteinfinitadi
configurazioni<c1,c2,...,ci,...>taliche:
c1|c2|....|ci|ci+1|....
Lanotazione
c1|*c2

indical'esistenzadiunacomputazionechedac1
portaac2tramiteunnumerofinito
(eventualmente0)ditransizioni.

Convenzione.Inognicomputazionepuo'
esisterealpiu'unaconfigurazionefinale;sela
macchinaraggiungeunaconfigurazionefinaleil
calcolotermina.
NOTABENE.Unacomputazioneinfinitanon
haconfigurazionifinali.
Def.Unacomputazionefinita
c1|c2|....|cn
e'massimalesenonesisteunaconfigurazionec
talechecn|c.
UnamacchinadiTuringMriconosceun
linguaggioLseperognix*Me'ingradodi
stabiliresexLono
UnamacchinadiTuringMaccettaun
linguaggioLsepertutteesolelexLMe'in

gradodistabiliretaleappartenenza,masexL
Mnongarantisceuncomportamento
prestabilito.

Def.Unacomputazionemassimale
<c0,c1,....,cn>e'accettantesec0e'inizialeecne'
finale.
Def.Unacomputazionemassimale
<c0,c1,....,cn>e'rifiutantesec0e'inizialeecn
none'finale.
Convenzioni.
Computazioneaccettante:responsoaffermativo
Computazionerifiutante:responsonegativo
Computazionenonterminante:nessunresponso
Def.M=<,b,K,q0,F,>riconosce(decide)un
linguaggioLseperognix*esisteqKtale
che
q0x|*qcon(b)*e(b)+ela
computazionecorrispondentee'massimale,

seesolosexLalloraqF

Def.Unlinguaggioriconosciutodauna
macchinadiTuringe'dettodecidibile.

NOTABENE.None'dettocheunamacchina
diTuringpossasemprericonoscereun
linguaggio.
Def.M=<,b,K,q0,F,>accettaunlinguaggioL
sepertutteesolelexLesisteqFtaleche
q0x|*qcon(b)*e(b)+.
Inaltreparole:
UnlinguaggioLe'accettatodaunamacchina
diTuringMse:
L=L(M)={x|x*q0x|*qqF}
con(b)*,(b)+.
Def.Unlinguaggioaccettatodaunamacchinadi
Turinge'dettosemidecidibile.

NOTABENE.Seunlinguaggioe'decidibilee'
anchesemidecidibile.

Def.MacchinadiTuringtrasduttrice:ogni
configurazionefinalee'deltipoxbqy,dovexe'
ilcontenutodelnastroall'iniziodella
computazione
Def.Unamacchinatrasduttricecalcolala
funzionefsepertutteesolelexneldominiodi
definizionedifesisteqFtaleche:

q0x|*xbqf(x)
NOTABENE.SeDe'ildominioeD'il
codominiodellafunzionef,xedf(x)sono
rispettivamenterappresentazionideglielementi
diDeD'nell'alfabetodellamacchina.

Def.Unafunzione(parziale)fperlaqualeesiste
unamacchinadiTuringchelacalcolae'detta
calcolabilesecondoTuring(Tcalcolabile).

1.9MTMULTINASTRO(MTM)
Def.MacchinadiTuringaknastri:
Mk=<,b,Z0,K,q0,F,(k)>

b
Z0
K
q0
F

alfabeto
caratterespeciale,spaziobianco
caratterespeciale,iniziale
insiemefinitodistati
statoiniziale
insiemedistatifinali

(k) funzioneditransizione
:K(b)kK(b)k{d,s,i}k

Configurazioni,transizioniecomputazioni
Configurazione:
q#11#22#....#kk
qe'lostato;lastringaiiindicailcontenuto
elaposizionedellatestinasulnastroi.
ie'eventualmentevuotaeilprimocaratteredi
ie'ilcarattereattualmenteosservato
configurazionefinale:qappartieneaF
configurazioneiniziale:
q0#1#Z0#....#Z0

l'inputstasulprimonastroeglialtricontengono
ilcarattereZ0
transizioniecomputazioni:analoghialleMT

Esempidimacchineapiunastri:
- untrasduttoreconunnastrodiinput(sola
lettura),unnastrodioutput(solascrittura)e
unoopiunastridilavoro(letturaescrittura)
- unriconoscitoreconunnastrodiinput(sola
letturaeoneway)eunoopiunastridilavoro
(letturaescrittura)
Notabene.Lautomaapilapuoesserevisto
comeunamacchinadiTuringaduenastri,il
secondodeiqualiutilizzatoinmodoLIFO

EquivalenzatraMTMeMT
Strumentodilavoro:MTanastrosuddivisoin
tracce
seilnastrohahtraccelatestinapuo'
leggere/scriverehcaratteri
contemporaneamente
lacorispondenzatraMTanastrosuddiviso
intracceedunanormaleMTe'immediata
osservazione:
sesulletraccesonousatiglialfabeti
1,2,....,h,unaMTcorrispondentehaun
alfabetocon|||1|x|2|x....x|h|

Teorema.DataunaMTM
M=<,b,K,q0,F,(k)>aknastriesisteunaMTche
simulatpassidiMkinO(t2)passiusandoun
alfabetodicardinalita'O((2||)k)
Dim.
costruiamounaMTM'=<',b,K',q0',F','>con
nastrosuddivisoin2ktraccechesimulaM
poicostruiamounaMTM"equivalenteaM'
lektraccedipostoparidiM'rappresentanoik
nastridiM
sullektraccedipostodisparidiM'conil
carattere""indichiamolaposizionedelle
testinesuiknastridiM

ilnastrodiM'all'iniziodellacomputazionesi
presentacontutteletraccedispari"vuote"
trannelaprima
persimularelafunzioneditransizionediMche
e'deltipo:
(k)(qi,i1,..,ik)=<qj,j1,..,jk,zj1,..,zjk>
la'deve:
rintracciareleposizionideimarcatori,
scrivereespostareimarcatori,
cambiarestato
quindiperognipassodiM,M'deveeseguireun
numerodipassiproporzionalealladistanza
(numerodicaselle)traiduemarcatoripiu'
lontani

dopotpassiduemarcatoripossonoessersi
allontanatidialpiu'O(t)caselle
seMeseguetpassi,M'neesegueO(t2)
M"esegueglistessipassidiM'
percio'cheriguardalacardinalita'dell'alfabeto
diM"abbiamodacodificareconunsolo
alfabetostringhedi2ksimbolicosi'composte:
k
simboli appartengonoa {b,}
1
simbolo appartienea
{b}
k1 simboli appartengonoa {b,Z0}
|"|=2k(||+1)(||+2)k1=O((2||)k)

Esempio.MTMperriconoscerexcxRcon
x{a,b}
usiamo2nastri:unodiinput
monodirezionaleasolaletturaeunodi
lavorocheusiamocomepila
durantelascansionedix,finoac,xviene
copiatasulnastrodilavoro
durantelascansionedixRsiconfrontanoi
carattericonquellisulnastrodilavoro
configurazioneinizialedellaMTM:
q0#z#Z0

3stati:

q0
q1
q2

perscandirex
perscandirexR
statofinale

copiaturainiziale:
(q0,a,Z0)=<q0,a,A,d,d>
(q0,b,Z0)=<q0,b,B,d,d>
copiaturaaregime:
(q0,a,b)=<q0,a,A,d,d>
(q0,b,b)=<q0,b,B,d,d>
passaggiodallacopiaturaallaverifica:
(q0,c,b)=<q1,c,b,d,s>

verificapositiva:
(q1,a,A)=<q1,a,A,d,s>
(q0,b,B)=<q1,b,B,d,s>
accettazione:
(q1,b,b)=<q2,b,b,i,i>
computazioneconinputbacab:
q0 #bacab
#Z0
q0 #bacab
#Bb
q0 #bacab
#BAb
q1 #bacab
#BA
q1 #bacab
#BA
q1#bacabb
#bBA
q2 #bacabb
#bBA

|
|
|
|
|
|

computazioneconinputacb:
q0 #acb
#Z0
q0 #acb
#ab
q1 #acb
#a

|
|

Esempio.MTMperriconoscerexxRcon
x{a,b}
usiamo3nastri:unodiinputmonodirezionalee
duedilavoro
copiamolastringasuiduenastridilavoro
poiscandiamoiduenastriinsensocontrarioed
effettuiamoiconfronti
configurazioneinizialedellaMTM:
q0#w#Z0#Z0
copiaturainiziale:
(q0,a,Z0,Z0)=<q0,a,A,A,d,d,d>
(q0,b,Z0,Z0)=<q0,b,B,B,d,d,d>
copiaturaaregime:

(q0,a,b,b)=<q0,a,A,A,d,d,d>
(q0,b,b,b)=<q0,b,B,B,d,d,d>

terminedellacopiatura:
(q0,b,b,b)=<q0,b,b,b,i,s,s>
riposizionamentodellatestina:
(q0,b,A,A)=<q0,b,A,A,i,s,i>
(q0,b,B,A)=<q0,b,B,A,i,s,i>
(q0,b,A,B)=<q0,b,A,B,i,s,i>
(q0,b,B,B)=<q0,b,B,B,i,s,i>
finedelriposizionamentodellatestina:
(q0,b,b,A)=<q1,b,b,A,i,d,i>
(q0,b,b,B)=<q1,b,b,B,i,d,i>
verifica:
(q1,b,A,A)=<q1,b,A,A,i,d,s>
(q1,b,B,B)=<q1,b,B,B,i,d,s>
(q1,b,b,b)=<q2,b,b,b,i,i,i>

1.10MTNONDETERMINISTICHE
(MTND)
Def.MacchinadiTuringnondeterministica:
M=<,b,K,q0,F,N>

b
K
q0
F

alfabetodisimboli
caratterespeciale,spaziobianco
insiemefinitodistati
statoiniziale
insiemedistatifinali

N funzioneparzialeditransizione
N:KbP(Kb{d,s,i})

LamacchinadiTuringnondeterministicapuo'
eseguirepiu'transizioni.
Def.Gradodinondeterminismodiuna
macchinaM
(M)=max|N(qi,j)|
Unacomputazioneeseguitadaunamacchina
nondeterministicapuo'essererappresentatacon
unalberodicomputazionideterministiche.
nodi: configurazioni
archi: transizioni
NOTABENE.Ilgradodinondeterminismo
coincideconilmassimonumerodifiglidiun
nododell'alberodicomputazione

PossiamoutilizzaremacchinediTuringnon
deterministicheperaccettarelinguaggi.
Def.UnaMTNDaccettaunastringase
nell'alberodicomputazionee'possibiletrovare
almenounramochecorrispondeaduna
computazionedeterministicaaccettante(cioe',
almenounafogliadell'alberocorrispondeaduna
configurazionefinale).

EquivalenzatraMTeMTND
LeMTNDsonopiu'"efficienti"manonpiu'
potenticomputazionalmentedelleMT
Teorema.Dataunamacchinanon
deterministicaMcongradodinondeterminismo
desisteunaMTM'equivalentechesimulak
passidiMinO(kdk)passi
Dim.
L'alberodicomputazionediMvienevisitatoin
ampiezzadaM'(perche'noninprofondita'?)
M'ha3nastri
nastro1:contienel'input

nastro2:vieneusatopergenerare,inordine
lessicografico,tuttelesequenzefinitecomposte
dacifrecompresetra1ed
nastro3:nastrodilavoro

perognisequenzageneratasulnastro2,M'
copial'inputsulnastro3
letransizionidiogniinsiemeN(q,)sono
numerateda1ad
ognisequenzadilunghezzassulnastro2e'
incorrispondenzaconunacomputazionedi
Mdispassi
glisnumeridiognisequenza(compresitra1
ed)sonousatiperscegliereadognipasso
unatransizionetraledpossibili

es.ses=4ed=2elasequenzae'2122M'
sceglieperlaprimamossalaseconda
transizionedisponibile,perlasecondamossa
laprima,ecc....

Sesuqualchefogliadell'alberodi
computazionediMc'e'unostatofinale,
alloraM'loraggiungeintempofinito
altrimentiM'nonraggiungemaiunostato
finale.
SeMterminainkpassiM'habisognodi
k
O(

jdj)=O(kdk)passi
j=0

NOTABENE.Unamacchinanon
deterministicapuo'"risolvere"unproblema(ad
esempio,accettareunlinguaggio)intempo
polinomialerispettoallalunghezzadellastringa
mentrelasimulazioneeffettuatadauna
macchinadeterministicarichiedetempo
esponenziale.
Problemaaperto.Esisteunasimulazionepiu'
efficiente?E'possibilesimulareunamacchinadi
Turingnondeterministicaconuna
deterministicaintempopolinomiale?
Perdimostareche

k
O( jdj)=O(kdk)passi

j=0
sipuo'procederecomesegue.
Osserviamoinnanzituttoche

d =(d
j

j=0

k+1

1)/(d1)

Derivandosiottiene:
k

jd

j1

=(kdk+1(k+1)dk+1)/(d1)2

j=1
equindi
k

jd =O(kd )
j

j=1

1.11LINGUAGGIDITIPO0EMT
Teorema.UnlinguaggioLe'semidecidibilese
esolosee'unlinguaggiodiTipo0
Dim.
i)Tipo0>MT
Innanzituttomostriamocome,datoun
linguaggioL,generatodaunagrammaticaGdi
tipo0,possiamodefinireunaMTcheloaccetta.
Inrealta',persemplificareladimostrazione
utilizzeremounaMTNDMcon2nastrima
sappiamocheesistecomunqueunaMTM'adun
solonastrochepuo'simulareM.

LamacchiaMoperanelseguentemodo:
partendodall'assiomaSlamacchinaapplicavia
via,inmodonondeterministico,tuttele
produzioniapplicabili.Dopoaverapplicatouna
produzione,oltreaproseguirenell'applicazione
delleproduzioni,inmodonondeterministico
essaeffettuaunaverificapercontrollaresela
formadifraseottenutae'costituitadasoli
terminalieseessacoincideconlastringada
generarex.IntalcasoMterminainunostato
finale.
I2nastrivengonoutilizzatinelseguentemodo:
N1contienelastringaxchedeveessere
accettata,
N2contieneleformedifrasecheviavia
vengonoderivateechedevonoessere
confrontateconlastringax.

ii)MT>Tipo0
Supponiamooradiavereunamacchinadi
TuringMcheaccettaunlinguaggioL.
Mostriamocomesipuo'costruireuna
grammaticaGdiTipo0.
SelamacchinaaccettaLvuoldireche,pertutte
esolelexL,essarealizzalacomputazioneq0x
|*aqFbconunopportunoqFF(per
semplicita'supporremocheesistaununicostato
finaleqFF).Incorrispondenzadellamacchina
MlagrammaticaGe'cosi'definita.
Ilsuoalfabetononterminalee'costituitoda
alcunisimboliausiliari,dasimboli
corrispondentiaglistatidiMedasimboliche
rappresentanoilcontenutodiduepiste:
quellasuperiorecontienecaratteriidi{b},
quellainferiorecaratteri'jdi{b}.Tali
simbolisonodunquedeltipo:

'j

Lagrammaticaoperanelseguentemodo:
1. introducelostatoinizialeq0
2. generaunaqualsivogliastringaxdisulle
duepiste
3. generaunnumeroarbitrariodibadestraea
sinistradixsulleduepiste
4. simulaMsullapistainferiore
5. selapistainferioreunaconfigurazione
finalee,solointalcaso,trasformalaforma
difraseottenutafinoranellastringaxchee
tuttorapresentesullapistasuperiore.
Vediamolaformadellevarieproduzioni.
S A1q0A2

i
A2
i A2|
b

A3 b A3
b
A1 b

Aquestopuntoabbiamoformedifrasedeltipo:
b
b
ai1
b ..... b q0 ai1

ain b b
b
ain b b . b A3

Pereffettuarelasimulazionedellamacchina
avremo,perogniregoladitransizione,unaseriedi
produzionicherealizzano,sullapistainferiore,le
stessetrasformazioni.Adesempio,in
corrispondenzadellaregoladitransizione
d(qk,i)=(qh,l,d)
avremoleregolediproduzione

j
qk
i

l qh

perognijin{b}.

Infineperilpasso5abbiamo:
qFA4A5perognistatofinaleqF

i A4j
perognijineiin{b}.
b

i A4perogniiin{b}.
eanalogamenteperA5.Infine
A1A4
A5A3

Teorema.IlinguaggidiTipo1sonodecidibili.
Dim.
Datocheleformedifrasenonpossono
diminuiredilunghezzabastageneraretuttele
formedifraseinordinedilunghezzacrescentee
confrontarequelledisoliterminaliconlastringa
dariconoscere.
Teorema.TuttiesoliilinguaggidiTipo1sono
riconoscibiliconmacchinediTuring
nondeterministichechefannousodinastro
limitatolinearmentenellalunghezzadelle
stringheiningresso(LinearBoundedAutomata,
LBA)
Dim.Lasciatacomeesercizio.

3.8CALCOLABILITA'SECONDO
TURING(TCALCOLABILITA')
Comeabbiamogia'vistolemacchinediTuring
ciconsentonodidefinire
linguaggidecidibiliosemidecidibili
funzioni(totalioparziali)calcolabili
NOTABENE.ContemporaneamenteaTuring
ancheAlonzoChurchhaintrodottounconcetto
dicalcolabilita'(
definibilita')basatosuun
sistemaformale(
calcolo).
Talesistemae'statodimostratoequivalente,
dallostessoTuring.Cio'hapermessodi
formularelacosiddettaTesidiChurchTuring:
"Ognifunzionecomputabileconqualunque
approccioformalee'Tcomputabile"

Tuttiiformalismidefinitisuccessivamente
hannoconfermatolaTesidiChurchTuring.

MacchinadiTuringuniversale
NOTABENE.E'possibiledescrivereuna
macchinadiTuringconunastringadicaratterie
forniretaledescrizionecomeinputadun'altra
macchinadiTuring.
Esistonovarimodididescrivereunamacchina
diTuringconunastringa:

possiamofornirelasequenzadellequintuple
checostituisconolafunzioneditransizione
##d1##d2##...##dn
incuie'presentelaquintupla
qi#j#qh#k#tlseesoloseesistelaregola
ditransizione(qi,j)=(qh,k,tl);

possiamosfruttareilfattocheogni
macchinadiTuringpuo'essererealizzata

comecomposizionedialcunemacchine
elementariefornireladescrizionediuna
macchinacomesequenzaditalimacchine.

SiaDMladescrizionedellamacchinaM.
Teorema.EsisteunamacchinadiTuringU,con
statoiniziale(dettamacchinadiTuring
universale)q0U,che,dataunaqualunque
descrizioneDM,realizzalacomputazione
q0UDM#x|*qfU,conqfUstatofinale,see
soloselamacchinaM,constatoinizialeq0,
realizzalacomputazioneq0x|*qfconqf
statofinale
Dim.
Lamacchinanonfacheeseguireunaperunale
trasformazionirichiestedallequintupledella
macchinaMcontenuteinDM.Altermine
cancelladalnastroladescrizioneDM.

NOTABENE.PossiamointerpretarelaMT
universalecome
uncalcolatoreeDMexcomeun
programmaeisuoidati
uninterpretediunlinguaggiodi
programmazione.

3.9ILPROBLEMADELLA
TERMINAZIONE(HALTINGPROBLEM)
Dimostriamooral'esistenzadiunafunzioneche
none'calcolabileconunaMT.Inquantosegue
assumiamochelemacchinediTuringsiano
macchineadunnastro,deterministichecon
alfabeto={0,1}.
DataunaMTM=<,b,K,q0,F,>siaDMla
codificadiMin.Perx*definiamoil
predicatodellaterminazione
h(DM,x) =1seMconinputxtermina
=0seMconinputxnontermina
Teorema.Ilpredicatodellaterminazionedelle
macchinediTuringnone'Tcalcolabile.

NOTABENE.Invecee'Tcalcolabileil
predicato:
h(DM,x) =1seMconinputxtermina
=indefinito,altrimenti

Dim.
Supponiamocheilpredicatosiacalcolabile,
esistacioe'unamacchinadiTuringHche
calcolah.CostruiamolamacchinaH'che
calcolailpredicato
h'(DM)

=1seMconinputDMtermina
=0seMconinputDMnontermina

H'none'altrochelacomposizionedidue
macchine:laprimaconinputDMfornisce
DMbDM,lasecondae'lamacchinaHcheprende
ininputecalcolailpredicatodella
terminazione.InaltreparoleH'e'lamacchina
cheverificaseunaMTterminaquandoleviene
fornitoininputilpropriocodice.
PossiamooracostruireunanuovamacchinaH"
cheprendeininputDMecalcolalafunzione:

h"(DM)

=0seh'(DM)=0
=indefinitoaltrimenti

H",cioe',terminacon1seH'sie'fermatacon0
esimetteaciclare,seH'sie'fermatacon1
Cosaaccadeorasecalcoliamoh"(DH"):
h"(DH")

=indefinitaseh"(DH")e'definita
=0seh"(DH")e'indefinita

Inognicasoabbiamounacontraddizione.
Quindinonpuo'esisterelamacchinaH.