Documente Academic
Documente Profesional
Documente Cultură
D.1 Decidabilitate
O mulime A este echipotent cu o mulime B dac exist f:AB, bijectiv.
O mulime infinit A este numrabil dac A este echipotent cu mulimea
numerelor naturale . O numerotare a mulimii A este o funcie bijectiv a: A,
astfel nct a(n) =def an, iar A = {ak | k}. Echivalent, o mulime este
numrabil dac exist o numerotare a sa.
Spunem c o mulime infinit i numrabil este -numrabil, iar o mulime
infinit i nenumrabil este -nenumrabil.
Propoziia D.1 O submulime infinit a unei mulimi -numrabile este numrabil.
Fie A -numrabil i B A. Exist numerotarea A = {ak | k } Construim
numerotarea:
b0 = aj, j = min{k | ak B}
bi = aj, j = min{k | ak B\
U {bq} },
i 1
q <i
e2 dac e A
e1 dac e A
Pentru x A:
Pentru x A:
Definiia D.1 Numim i,j mulimea programelor avnd ca intrare un tuplu din
i ca ieire un tuplu din
executabil n sens Turing: exist o main de calcul Turing care, pentru intrri valide,
calculeaz n timp finit ieirile programului. Convenim ca pentru un tuplu de intrare
invalid programul s nu se termine. Scriem (x) = , dac nu se termin pentru
tuplul x i P(x) = r, dac P se termin cu rezultatul r pentru datele x.
n ceea ce privete maina care execut programele, o s o imaginm ca
main virtual, caracteristic unui limbaj de programare imperativ, de exemplu un
limbaj asemntor cu C. Perspectiva pragmatic este corect deoarece, teoretic,
astfel de maini de calcul pot fi reduse la maini Turing.
Propoziia D.4 Mulimea i,j este numrabil.
Programele din i,j pot fi privite ca iruri de lungime finit, iruri formate cu
simbolurile unui alfabet finit . Notm *= U j j mulimea irurilor cu simboluri din ,
unde 0={}, fiind irul vid, iar j= {wx | wj-1, x}, pentru j1. Mulimea *
este -numrabil, pentru c putem construi numerotarea:
w0 =
wj = minlex{w *\
U {w k} },
j > 0,
k <j
unde minlex(M) desemneaz irul cel mai mic n ordine lexicografic din M. Fie
i,j* mulimea irurilor ce codific programe din i,j. Conform propoziiei (D.1)
mulimea i,j este numrabil. Conform echipotenei dintre i,j i i,j, rezult c
i,j este numrabil.
Definiia D.2 O funcie f: este calculabil (n sens Turing) dac exist
cel puin un program 1,1 astfel nct:
f(x), pentru x dom(f)
(x) =
, pentru x dom(f)
Propoziia D.6 Exist n Hom(,) funcii care nu sunt recursive, deci nu sunt
programabile (nu sunt calculabile, indiferent de maina de calcul folosit).
Demonstraia rezult direct din propoziiile (D.2), (D.3) i (D.5). Ca exemplu de
funcie necalculabil considerm funcia total
f: , f(n) =
Programul de mai sus nu poate fi generalizat pentru o mulime finit cu orice tip
de elemente. Bunoar, dac elementele mulimii A sunt funcii, egalitatea funciilor nu
poate fi decis mecanic. Prin urmare, nu orice mulime finit este recursiv.
Definiia D.5 O submulime A este recursiv-numrabil dac (alternativ):
a) Exist o funcie recursiv, f:
cu dom(f)=A.
Evident, Q produce toate valorile n pentru care P(n)=1, deci chiar mulimea A.
Propoziia D.9 Fie A o submulime recursiv-numrabil i B= \A recursivnumrabil. Atunci A este recursiv.
Cazul A finit este banal, pentru c orice mulime finit cu elemente din este
recursiv. Fie A infinit, iar QA i QB generatorii mulimilor A i, respectiv, B. Pentru c A
i B sunt infinite, orice apel al generatorilor QA i QB se termin n timp finit cu elemente
din cele dou mulimi. Construim programul P1,1
P(x){
static A = , B = ;
while(1) {
if(x A) return 1;
if(x B) return 0;
A = A {QA()};
B = B {QB()};
}
}
Q(){
static A = , n = 0;
while(1) {
for(m=0; m n; m++)
if(Pm(m) se termin n n uniti de timp m A)
{A = A {m}; return m;}
n++;
}
}
A nu este recursiv. Presupunem c A este recursiv. Atunci exist o funcie
recursiv total i, deci, un program R1,1 astfel nct R(n) = 1+Pn(n), dac nA, i
R(n) = 0, dac nA.
Deoarece 1,1 este numrabil (conform teoremei 3.4), exist m astfel nct
R=Pm. Programul R se termin pentru orice valoare din , inclusiv pentru m. Deci m A.
Avem R(m) = Pm(m) = 1 + Pm(m). Imposibil.
3. Fie mulimea B = \A, unde A este mulimea de la punctul (b). B nu este
recursiv i nici recursiv-numrabil.
S presupunem c B este recursiv-numrabil. Atunci, conform propoziiei (D.9)
A este recursiv. Imposibil. S presupunem c B este recursiv. Atunci conform
propoziiei (D.8) este recursiv-numrabil. Imposibil.
Definiia D.6 Fie T: {0,1} un predicat i MT ={n | T(n)=1} mulimea de
adevr a lui T. Predicatul T caracterizeaz o proprietate Prop a elementelor din .
recursiv-numrabil i nerecursiv;
T este nedecidabil (proprietatea Prop este nedecidabil) dac MT nu este
recursiv i nici recursiv-numrabil.
Exemplul D.1 Predicatul T:Grafuri {0,1}, care testeaz dac un graf finit
este aciclic este decidabil, programul de test constnd ntr-o parcurgere banal a
grafului.
Exemplul D.2 S demonstrm propoziia (3.6'), artnd c predicatul T care
testeaz dac un program oarecare PnP1,1 se termin pentru o valoare fixat x
este semi-decidabil.
Notm MT mulimea corespunztoare programelor care se termin n x.
Conform exemplului din propoziia (3.6) tim c MT nu este recursiv. S artm c
este recursiv-numrabil.
Construim generatorul Q:
La fiecare apel, generatorul rentoarce indicele unui program din P1,1 care se
termin pentru x. Rezult c predicatul T este semi-decidabil.
Exemplul D.3 Rezolvarea unei probleme poate fi imaginat ca un proces de
navigare ntr-un spaiu S=(Stri,Tranziii) al strilor problemei, ca cel din figura
3.1. Atunci cnd navigm ntr-un astfel de spaiu dorim s urmm o cale care, plecnd
din starea curent s, duce n mod cert spre o soluie.
Traiectorie de rezolvare
stare
iniial
ntr-o alt variant, mai practic, putem folosi o euristic pentru a evalua arcul
aparent cel mai promitor, fr a ne mai baza pe predicatul al crui calcul s-ar putea
s nu se termine ntr-un timp msurabil. Astfel de probleme apar n domeniul
inteligenei artificiale.
se poate citi: un program P1,1 are proprietatea Pow2, sau alternativ PPow2, dac
P(n) calculeaz n2.
S notm P=Q echivalena computaional a programelor P i Q, anume pentru
aceleai date de intrare programele fie produc aceleai rezultate fie nu se termin.
Definiia D.7 O proprietate Prop a programelor 1,1 este extensional
nebanal dac:
1. Nebanalitate: Prop i Prop 1,1.
2. Extensionalitate: pentru oricare programe P1,1 i Q1,1, astfel nct
P=Q, exist dubla implicaie PProp QProp. Cu alte cuvinte, dac un
program P are proprietatea Prop atunci orice program echivalent cu P are
proprietatea Prop.
Conform nebanalitii, proprietatea caracterizeaz o submulime proprie nevid
a programelor. Extensionalitatea reflect comportarea programelor independent de
factori intensionali cum ar fi timpul execuiei programului, numrul de instruciuni din
textul programului etc. Extensionalitatea se refer strict la relaia funcional P(i)=r
calculat de program. De exemplu, proprietatea Pow2 este extensional nebanal.
10
Pentru c Prop este extensional nebanal, nonstop poate fie s aparin lui
Prop, fie s nu aparin lui Prop. Din acest punct de vedere, alegerea lui nonstop
poate s par bizar. Aparent, n cazul nonstopProp, mulimea programelor P1,1
este divizat n dou submulimi: Prop=P={PP1,1 | (n P(n)=)}, ce conine
doar programele echivalente computaional cu nonstop i care prin extensionalitate
satisfac Prop, i programele din P1,1\P care se termin pentru cel puin o valoare
din i, nefiind echivalente cu nonstop, nu satisfac Prop.
Observaia de mai sus nu este corect. ntr-adevr, dac Prop =def {PP1,1 |
m P(m) P(m)=f(m)}, unde f(m) desemneaz o valoare ce depinde de m,
atunci n afara programelor din P n Prop sunt i acele programe din P1,1 care
calculeaz valori conforme cu f, inclusiv programele care calculeaz funcia f:.
Prin urmare, alegerea programului nonstop ca baz a demonstraiei nu afecteaz
generalitatea acesteia.
Caz 1. nonstopProp
Datorit extensionalitii lui Prop, toate programele echivalente computaional
cu nonstop sunt n Prop. De asemenea, datorit nebanalitii, exist cel puin un
program Q1,1 astfel nct QProp i, implicit, Qnonstop, deci Q se termin pentru
cel puin o valoare din .
Fie P1,1 un program oarecare. S artm c deciderea terminrii P(x),
pentru x fixat, se reduce la decidabilitatea lui Prop. Construim programul:
R(n){P(x); return Q(n);}
termin pentru orice n astfel nct TestProp(n)=1 dac programul Pn din P1,1 este n
rop i TestProp(n)=0 dac Pnrop.
11