Sunteți pe pagina 1din 16

1

UNITATEA DE NVARE NR.5




LIMBAJUL

. LIMBAJUL POST-TURING. MAINI TURING




Cuprins

5.1. Obiectivele unitii de nvare nr. 5 .......................................................................................... 1
5.2. Indicaii metodice pentru unitatea de nvare nr. 5 ................................................................... 1
5.3. Limbajul ............................................................................................................................... 1
5.4. Limbajul Post-Turing ................................................................................................................. 4
5.5. Maini Turing ............................................................................................................................. 9
5.6. Tema de autoinstruire nr. 5 ...................................................................................................... 13
5.7. Testul de autoevaluare nr. 5 ..................................................................................................... 13
5.8. Comentarii i rspunsuri la testul nr. 5 de autoevaluare........................................................... 15
5.9. Lucrare de verificare pentru studeni ....................................................................................... 15
5.10. Bibliografie .............................................................................................................................. 16


5.1. Obiectivele unitii de nvare nr. 5

Dup ce vei parcurge aceast unitate de nvare, vei reui s:
cunoatei limbajele

i Post-Turing;
cunoatei noiunea de main Turing.


5.2. Indicaii metodice pentru unitatea de nvare nr. 5

Materialul trebuie parcurs n ordinea sa fireasc, prezentat n continuare. Se recomand
conspectarea i notarea ideilor principale, precum i consultarea bibliografiei pentru detalii i
informaii suplimentare.

Timpul minim pe care trebuie s-l acordai acestei uniti de nvare este de ore.


5.3. Limbajul



Pentru orice numr natural 0 n > , introducem limbajul
n
S , care lucreaz cu variabile ce sunt
cuvinte ntr-un alfabet A cu A n = . Instruciunile acestui limbaj sunt urmtoarele:

v sv se adaug la stnga cuvntului v litera s
v v

se terge ultima liter a lui v

; =
if v ends s goto L dac v se termin cu litera s , se face transfer la prima instruciune
din program cu eticheta L; n caz contrar, se trece la executarea
instruciunii urmtoare
2

Evident n instruciunile de mai sus trebuie s avem

, . La fel ca i n cazul
limbajului , variabilele diferite de variabilele de intrare se consider iniializate cu
(cuvntul vid, corespunztor lui 0), se folosesc macroinstruciuni etc. Diferena fa de S
const numai n aceea c variabilele sunt gndite ca avnd valori n A

, iar forma
instruciunilor difer, fiind acum adecvat lucrului cu cuvinte. Instruciunile din
n
S sunt
naturale pentru cuvinte i nenaturale pentru numere, aa cum instruciunile din S sunt
naturale pentru numere, dar nu i pentru cuvinte.

Definiia 1. Spunem c o funcie ( )
m
f A A

: este (parial) calculabil n
n
S dac este
calculat de un program n limbajul
n
S .

Observaie. Vom ntlni n continuare adeseori secvena:

if v ends
1
s goto
1
B
. . . . . . . . .
if v ends
n
s goto
n
B

pe care o vom scrie prescurtat: if v ends
i
s goto
i
B (1 i n ) i o vom numi filtru.

Prezentm cteva macroinstruciuni n limbajul
n
S , mpreun cu dezvoltrile corespunztoare
(se consider
1
)
n
A {s s } = , ..., :

if v goto L

if v ends
i
s goto L (1 i n )
v
[ ] A
v v



if v goto A
goto L

1
z s z

if z goto L
v v

z

v
[ ] A
if v ends
i
s goto
i
B (1 i n )

goto C

[ ]
i
B 1,...,

i
i
v v
v s v
i n
z s z
A

goto

[ ] C
if v ends
i
s goto
i
D (1 i n )

goto E

[ ]
i
D 1,...,
goto
i
z z
v s v i n
C




3

Teorem. Fie
m
f : N N (parial) calculabil n i
1 n
A {s s } = , .., , funcia
m
n
f A A
| |
|
\
: este (parial) calculabil n
n
S .

Fie P programul din S care calculeaz funcia f . Artm cum se construiete un program
Q n
n
S care simuleaz pas cu pas programul P , n sensul c orice modificare a valorii
variabilei v din n n S corespunde modificrii valorii variabilei v din
1
( )
n

n
1
( )
n

n
n
S .

Este suficient s nlocuim fiecare instruciune din S cu o macroinstruciune n
n
S care s o
simuleze:

- instruciunea if 0 v goto L este simulat de if v goto L;
- instruciunile 1 v v + i 1 v v vor fi simulate respectiv de macroinstruciunile
1 v v i 1 v v din
n
S , unde (presupunnd c n A avem
1 2
)
n
s s s < < ... < , 1 v
va fi "succesorul" lui v , iar 1 v va fi "predecesorul" lui v , definite analog ca pentru
numere.

Exemple. Dac S {a b c} = , , cu a b c < < , atunci: 1 1 1 baac bbaa bcaa bbcc = , = , = .

Rmne de artat c funciile
1 2
f f A A

, : definite prin
1
( ) 1 f x x = i
2
( ) 1 f x x = sunt
calculabile n
n
S .

Propoziia 1.
1
f este calculabil n
n
S .

Este suficient s producem un program care calculeaz aceast funcie:

[ ] B
if x ends
i
s goto
i
A (1 i n )

1
y s y
goto E
[ ]
i
A
1
1

i
x x
y s y i n
C

<

goto

[ ]
n
A x x



1
y s y
goto B
[ ] C
if x ends
i
s goto
i
D (1 i n )
goto E
[ ]
i
D 1

i
x x
y s y i n
C

goto



4

5.4. Limbajul Post-Turing

Fie
1 n
A {s s } = , ..., un alfabet format din n litere. Pe baza lui, vom introduce un nou limbaj:
limbajul Post-Turing
n
T .

Se folosete o band infinit, att la dreapta ct i la stnga, format din celule ce pot conine
fie o liter din A, fie un blanc (notat prin b sau
0
s ). Mai exist un cap de citire/scriere ce
poate explora la fiecare moment de timp o singur celul. ntotdeauna banda va conine
numai un numr finit de celule n care apar litere din A.

Instruciunile limbajului Post-Turing
n
T sunt urmtoarele:

print s n celula din dreptul capului de citire/scriere se scrie litera s
if s goto L
dac celula din dreptul capului de citire/scriere conine litera s , atunci se
face transfer la prima instruciune din program cu eticheta L; n caz contrar,
se trece la instruciunea urmtoare
right capul de citire/scriere este deplasat cu o poziie la dreapta
left capul de citire/scriere este deplasat cu o poziie la stnga

Prin configuraia benzii de intrare la un moment de timp oarecare nelegem coninutul ei,
mpreun cu poziia capului de citire/scriere; dac va apare numai o poriune din band, se va
considera c n celulele din dreapta i stnga sa apar numai blancuri. Pentru a indica poziia
capului de citire/scriere, vom figura ngroat (bold) simbolul din celula n dreptul cruia se
afl.

Configuraia iniial pentru un program n limbajul
n
T ce prelucreaz datele de intrare
1 m
x x A

, ..., este urmtoarea:



b
1
x
b
2
x ... b
m
x
b

unde, aa cum am convenit, poziia capului de citire/scriere este n stnga celulei ce conine
1
x .
Dac de exemplu
2
x = , atunci dup
1
x vor apare dou blancuri.
S observm c nu putem face distincie ntre aceast configuraie i cea cu 1 m+ intrri cu
1 m
x
+
= .

Exemplul 1. Fie
1 2 3
A {s s s } = , , i x A

. Urmtoarea schimbare de configuraie:



b x b
a
b x
1
s
1
s
b

este realizat de exemplu de programul urmtor, scris n limbajul
3
T :

[ ] A right

if
i
s goto A (1 3) i
5


print
1
s
right

print
1
s
[ ] B left

if
i
s goto B (1 3) i

Exemplul 2. Fie
1
A {s } = i x A

. Urmtorul program realizeaz schimbarea de


configuraie:

b x b
a
b x b x b

Vom folosi n afar de
1
s i
0
b s = un simbol auxiliar m A (numit marcaj):

[ ] A right
if b goto E
print m
[ ] B right

if
1
s goto B
[ ] C right

if
1
s goto C

print
1
s
[ ] D left

if
1
s goto D
if b goto D

print
1
s

if
1
s goto A

program ce necesit urmtoarele explicaii:

1) primele 3 instruciuni nlocuiesc primul
1
s cu m ;
2) urmtoarele 4 instruciuni determin deplasarea la dreapta peste toi
1
s , apoi peste b , apoi
peste toi
1
s ;
3) cele 4 instruciuni ce ncep cu cea etichetat cu D determin deplasarea la stnga peste
toi
1
s i b , pn la m ;
4) penultima instruciune nlocuiete pe m cu
1
s ;
5) ultima instruciune face transfer la prima, dar acum capul de citire/scriere este cu o poziie
mai la dreapta.

Pentru
1 1
x s s = , se trece succesiv prin urmtoarele configuraii:

b
1 1
s s b
1
a
b m
1
s b
2
a 1
bms b b
3
a

1
bms b
1
s b
4
a
b m
1 1
s bs b
5
a
b
1
s
1 1
s bs b
1
a 1
bs m
1
bs b
2
a

1 1
bs mbs b
3
a
6

1 1
bs mbs
1
s b
4
a
1
bs m
1 1
bs s b
5
a
1
bs
1
s
1 1
bs s b
1
a
1 1
bs s b
1 1
s s b


Exemplul de mai sus arat necesitatea (sau cel puin utilitatea) folosirii unor simboluri
auxiliare (marcaje), pe lng simbolurile din
0
A {s } .

Definiie. Fie funcia parial ( )
m
f A A

: . Spunem c un program P n limbajul
n
T
calculeaz funcia f dac:

1) plecndu-se din configuraia iniial cu valorile de intrare
1 m
x x , ..., , programul se oprete

1
( )
m
f x x , ..., ;
2) la oprire, prin tergerea de pe band a simbolurilor ce nu sunt n A (adic
0
s b = sau
marcaje), rmne
1
( )
m
f x x , ..., .

Un program P n limbajul
n
T calculeaz strict pe f dac, n plus:

3) singurele simboluri prezente n instruciuni i pe band sunt
0 1 n
s s s , , ..., ;
4) cnd P se oprete, configuraia benzii este:

...... b
1
( )
m
f x x , ..,
b ......

Prezentm n continuare cteva macroinstruciuni ale limbajului
n
T , mpreun cu dezvoltrile
lor:

1) goto L :
if
i
s goto (0 ) L i n

2) right to next blank :

[ ] A right
if b goto E
goto A

3) left to next blank :

[ ] A left
if b goto E
goto A

4) move block right, care realizeaz schimbarea de configuraie:

b bloc b
a
b b bloc

unde blocul nu conine b :
7


[ ] C
left
if
i
s goto (0 )
i
A i n
[ ]
i
A

1

i
s
i n
C

right
print
left
goto

0
[ ] A
right
print b
left

5) erase a block :

[ ] A right
if b goto E
print b
goto A

n continuare vom demonstra c pentru orice funcie parial
m
f : N N i orice n , sunt
valabile implicaiile din figura 1, ceea ce arat c cele 3 moduri diferite n care s-a introdus
noiunea de calculabilitate sunt echivalente.


Figura 1. Echivalena ntre definiiile noiunii de calculabilitate

Teorema 1.
n
f este parial calculabil n
n n
S f este calculat strict de un program n
n
T .

Fie P un program n
n
S ce calculeaz funcia
n
f . Fie
1 k
z z , .., variabilele de lucru utilizate.
n P apar atunci variabilele
1 1 m k
x x z z y , .., , , .., , pe care le notm n aceast ordine cu
1 l
v v , ..., ;
deci 1 m k = + + .

evident
Teorema 1
Teorema 2
s-a artat
f parial calculabil
f
n
parial calculabil n S
n

f
n
calculat de un
program n T
n

f
n
calculat strict de
un program n T
n

8


La nceputul fiecrui pas, banda va avea urmtoarea configuraie:

1 1 m k
x b bx bz b bz byb ... .... b

n care apar valorile curente ale variabilelor de mai sus. Observm c acest lucru este
convenabil, ntruct configuraia iniial:

1 2 m
x bx b bx b .... b

corespunde iniializrii cu a variabilelor
1 k
z z y , ..., , .

Convenim c dac o macroinstruciune este urmat de un numr natural scris ntre paranteze,
atunci se consider c macroinstruciunea apare de acel numr de ori.

Instruciunile limbajului
n
S sunt simulate n
n
T astfel:

j i j
v s v :
right to next blank ( ) l
move block right ( 1 l j + )
right
print
i
s
left to next blank ( ) j

j j
v v

:
right to next blank ( ) j
left
if b goto A
move block right ( j )
right
goto E

[ ] A left to next blank ( 1) j
s
j i
v L if ends goto
right to next blank ( ) j
left
if
i
s goto A
right
left to next blank ( ) j
goto E
[ ] A left to next blank ( ) j
goto L

Programul Q se obine din P nlocuind fiecare instruciune a lui P cu secvena
corespunztoare n limbajul
n
T , iar la sfrit adugnd macroinstruciunea:

erase a block ( 1) l

9

pentru a obine configuraia final yb b . Deci Q calculeaz strict pe
n
f .
Teorema 2. Dac
n
f este o funcie parial calculat de un program n
n
T , atunci f este
parial calculabil.

Demonstraia acestei teoreme o propunem ca tem de studiu individual.


5.5. Maini Turing

La fel ca n cazul programelor Post-Turing, vom folosi o band infinit att la dreapta ct i la
stnga, format din celule ce conin simboluri dintr-un alfabet T precum i simbolul b. La
fiecare moment de timp pe band se vor afla doar un numr finit de simboluri din T .
Alfabetul T conine o submulime A. Ne va interesa n continuare cum din cuvintele
1 m
x x A

, .., se poate obine un cuvnt y A

; simbolurile din T \ A se numesc tot marcaje.


Capul de citire/scriere poate explora de asemenea o unic celul. Deosebirea va consta n
faptul c trecerea de la o configuraie la alta nu se va mai realiza pe baza unor instruciuni, ci
pe baza unor aa numite stri ale mainii Turing.

Definiia 1. O main Turing este un quadruplu
1
( ) M K T q Q = , , , unde:
- K este alfabetul strilor;
- T este alfabetul mainii Turing;
-
1
q K este starea iniial;
- Q este o mulime finit de quadruple pe baza crora se trece de la o configuraie la alta.

O configuraie are forma:

unde ( ) T {b}

, , s T {b} este simbolul din dreptul capului de citire/scriere, iar q
este starea curent.

Prezentm n continuare forma quadruplelor din mulimea Q, mpreun cu schimbrile de
configuraie corespunztoare:











unde
i
q este starea din care se pleac,
j
s este simbolul explorat de capul de citire/scriere, iar
l
q este starea n care se ajunge; cele 3 forme de quadruple determin respectiv nlocuirea
simbolului
j
s explorat prin
k
s , deplasarea la dreapta i deplasarea la stnga a capului de
citire/scriere. Vom nota n continuare
0
s b = .
s
q
1)
( )
i j k l
q s s q , , ,


j
s
a

k
s

i
q
l
q
2)
( )
i j l
q s R q , , ,


k
i
s
q

j
s

a

j
l
s
q

k
s

3)
( )
i j l
q s L q , , ,


k
i
s
q

j
s

a

j
l
s
q

k
s

10



Configuraia iniial a benzii este urmtoarea:

b
1 2 m
x bx b bx ...
1
q

unde
1 2 m
x x x A

, , ..., .

Schimbrile de configuraie se fac conform quadruplelor din K . Maina Turing se oprete
dac se ajunge ntr-o configuraie de forma

j
s
i
q

i nici un quadruplu din Q nu ncepe cu ( )
i j
q s , .

Definiia 2. Spunem c M calculeaz funcia f parial de aritate m pe A

dac plecnd
de la configuraia iniial, M se oprete pentru
1
( ) ( )
m
m
x x A

, ..., dac i numai dac


1
( )
m
f x x , ..., este definit i, n plus, la oprire pe band se obine, tergndu-se toate
simbolurile ce nu sunt n A, tocmai
1
( )
m
f x x ,..., .

Definiia 3. Spunem c M calculeaz strict pe f dac n plus pe band apar tot timpul
simboluri din
0
A {s } , iar la oprire se ajunge n configuraia:
0
y s
i
q
cu
1
( )
m
y f x x = , ...., i
i
q K arbitrar.

Exemplu. Fie
1 2 3 1
(( ) 1 ) M q q q { } q Q = , , , , , unde:
1 0 2 2 2 2 0 3 3 3 3 0 1
( ) ( 1 ) ( 1 ) ( 1 ) ( 1 ) Q { q s R q q R q q s q q R q q s q } = , , , , , , , , , , , , , , , , , , ,
Cum
0
s b = , avem de exemplu:

b111a 11 1 a1 1 1 a111 111b a 1111 a 1111b a 11111 a
1 2 2 2 2 3 3 1
q q q q q q q q

Observaie. Aceast main Turing calculeaz funcia dat de ( ) 2 f x x = + ).
Alte reprezentri pentru o main Turing sunt cele sub form de tabel i sub form de graf, pe
care ne mrginim a le prezenta pentru exemplul considerat.


1
q
2
q
3
q
b
2
R q ,
3
1 q ,
1
1 q ,
1
2
R q ,
3
R q ,
1
1/R
b/1
b/1
b/R
stop
q
q
q
1/R
11




Teorema 1. Orice funcie parial calculat de un program Post-Turing este calculat i de o
main Turing cu acelai alfabet.

Fie ( )
m
f A A

: calculat de un program P n
n
T unde
1 n
A {s s } = , ..., (putem presupune
c f este calculat strict de P ).
Fie
1 p
I I , ..., instruciunile lui P .
Este suficient s construim o main Turing M ce simuleaz pe P .
Fie
1 1 1 1
( )
p n
M {q q } {s s } q Q
+
= , ..., , , ... , , , unde Q va fi construit astfel nct vom ajunge n
starea i exact atunci cnd trebuie executat instruciunea
i
I . n acest scop, pentru fiecare
instruciune
i
I vom introduce unul sau mai multe quadruple, dup cum urmeaz:
- dac
i
I este print
k
s , introducem
1
( ) 0 1
i j k i
q s s q j n
+
, , , , = , , ...,
- dac
i
I este right introducem
1
( ) 0 1
i j i
q s R q j n
+
, , , , = , , ...,
- dac
i
I este left, introducem
1
( ) 0 1
i j i
q s L q j n
+
, , , , = , ,...,
- dac
i
I este if
k
s goto L introducem
1
( )
( ) 0 1
i k k r
i j j i
q s s q
q s s q j { n} j k
+
, , ,

, , , , , , ..., ,


unde r este fie numrul primei instruciuni din P etichetate cu L (dac o astfel de
instruciune exist), fie 1 p + (n caz contrar).

O variant de main Turing o constituie maina Turing quintupl, n care Q este format
din quintuple avnd una dintre urmtoarele dou forme (se precizeaz i schimbrile de
configuraie respective):




2)
( )
i j k l
q s s L q , , , ,
m
s
j
s a
m
s
k
s

i l
q q

i maina Turing quintupl va fi considerat determinist, deci nu exist dou quintuple ce
ncep cu aceeai pereche ( )
i j
q s , .

Teorema 2. Dac funcia parial f este calculat de o main Turing, atunci ea este
calculat i de o main Turing quintupl cu acelai alfabet.

Fie
1 1 1
( )
r n
M {q q } {s s } q Q = ,.., , , ..., , , maina Turing ce calculeaz pe f . Construim atunci
maina Turing quintupl
( )
1 2 1 1 r r n
M {q q q } {s s } q Q = , .., ,..., , ,..., , , , unde Q este construit
astfel:
- pentru fiecare ( )
i j l
q s R q , , , introducem ( )
i j j l
q s s R q , , , ,
1)
( )
i j k l
q s s R q , , , ,
j
s
m k
s s a
m
s


i l
q q
12

- pentru fiecare ( )
i j l
q s L q , , , introducem ( )
i j j l
q s s L q , , , ,
- pentru fiecare ( )
i j k l
q s s q , , , introducem ( )
i j k l
q s s R q , , , ,
- n plus introducem quintuplele: { , , , , ) | 1,..., , 0,..., }.
l r j j l
q s s L q l r j n
+
= =
Teorema 3. Dac funcia parial f este calculat de o main Turing quintupl, ea este
calculat i de un program Post-Turing.

Fie ( )
1 1 1 r n
M {q q } {s s } q Q = , ..., , , ...., , , o main Turing quintupl ce calculeaz funcia f .
Pentru fiecare 1 0 i r j n = , ..., , = , ..., asociem :

i
q a eticheta ( )
i i j
A q s ; , a eticheta
ij
B .

n programul Post-Turing pe care l construim, eticheta
i
A apare n faa filtrului:

[ ]
i
A if
j
s goto (0 )
ij
B j n .

Pentru fiecare ( )
i j k l
q s s R q , , , , introducem blocul:

[ ]
ij
B print
k
s
right

goto
l
A

iar pentru fiecare ( )
i j k l
q s s L q , , , , introducem blocul:

[ ]
ij
B print
k
s
left

goto
l
A

Pentru toate perechile ( )
i j
q s , care nu sunt la nceputul vreunui quadruplu din Q, introducem
instruciunea:

[ ]
ij
B goto E .
Programul Post-Turing cutat va fi cel obinut prin concatenarea tuturor blocurilor introduse
mai sus, cu singura restricie c programul ncepe cu filtrul etichetat cu
1
A .

Corolar. O funcie parial f este calculat de un program Post-Turing dac i numai dac
f este calculat de o main Turing.

Mai mult, am obinut c pentru orice funcie parial
m
f : N N, f este parial calculabil
f este calculat de o main Turing. Am obinut astfel o nou caracterizare a funciilor
parial calculabile i anume cu ajutorul mainilor Turing. Am obinut de asemenea un
argument n plus n sprijinul tezei lui Church.

13

Fie
1
( ) M K A q Q = , , , . Un cuvnt u A

este acceptat de M dac plecndu-se din


configuraia iniial

bu
1
q

maina se oprete. n mod corespunztor vom defini limbajul acceptat de maina Turing M
ca fiind:

( ) { | acceptat de } L M u A u M

= .

Fie
1 n
A {s s } = , ..., un alfabet cu n litere. Reamintim c fiecare u A

poate fi privit ca un
numr natural, notat ( )
n
u . Atunci pentru orice B A

introducem n mod natural


urmtoarea definiie: B este calculabil dac exist un algoritm care decide pentru orice
u A

dac u B sau u B (altfel spus, dac ( )


n
B N este sau nu calculabil).

Teorema 4. Exist M main Turing peste A cu ( ) L M necalculabil.

tim c mulimea
(1)
{ | ( ) }
x
K x N x = nu este calculabil. Funcia f definit prin
(1) (1)
( ) ( ) ( )
x
f x x x x = = , este parial calculabil. Atunci funcia
n
f A A

: este calculat
de o main Turing M peste alfabetul A. Deci ( )
n
f x M se oprete pentru intrarea x ;
ca urmare:

( )
1 1
( ) { | ( ) } { | ( ) } ( )
n n n
L M x A f x x N f x K

= = = .

Rezult c limbajul ( ) L M nu este calculabil.


5.6. Tema de autoinstruire nr. 5

Consultai bibliografia pentru:

1. a cunoate mai multe exemple de programe scrise n limbajul

;
2. a cunoate mai multe exemple de programe scrise n limbajul Post-Turing;
3. a cunoate mai multe exemple de maini Turing.


5.7. Testul de autoevaluare nr. 5

Rspunsurile la test se vor da n spaiul liber aflat n continuarea enunurilor!

1. Scriei dezvoltarea macroinstruciunii erase a block din limbajul T

.




14






2. Demonstrai c funcia

1 este calculabil n
n
S .




















3. Descriei o main Turing care s nlocuiasc ntr-un ir binar fiecare 0 cu 1 i fiecare 1
cu 0.























15

Rspunsurile la acest test se gsesc pe pagina urmtoare!




5.8. Comentarii i rspunsuri la testul nr. 5 de autoevaluare

1. Dezvoltarea macroinstruciunii erase a block n limbajul T

este urmtoarea:

[ ] A right
if b goto E
print b
goto A

2. Este suficient s scriem un program care calculeaz funcia

1:

[ ] B
if x ends
i
s goto
i
A (1 i n )
goto E
[ ]
i
A
1
1
1

i
x x
y s y i n
C

<

goto

1
[ ] A x x



if x goto
2
C
goto E
2
[ ] C
n
y s y
goto B
1
[ ] C if x ends
i
s goto
i
D (1 i n )
[ ]
i
D
1
1

i
x x
y s y i n
C

goto


3. O main Turing quintupl care nlocuiete ntr-un ir binar fiecare 0 cu 1 i fiecare 1 cu 0
este urmtoarea:

, 0,1,

, unde

, 0,1, ,

, 1,0, ,

.


5.9. Lucrare de verificare pentru studeni

1. Scriei un program n limbajul

i un program n limbajul Post-Turing care s


nlocuiasc ntr-un ir binar fiecare 0 cu 1 i fiecare 1 cu 0.

2. Descriei o main Turing care s realizeze incrementarea cu o unitatea a unui numr
binar dat.

3. Descriei o main Turing care s decid dac un ir binar este palindrom sau nu.


16

Rezolvrile, dar i dificultile ntmpinate, vor fi expediate prin email tutorelui.



5.10. Bibliografie

1. C. Calude "Complexitatea calculului aspecte calitative", Editura tiinific i
Enciclopedic, 1962.
2. M.D. Davis, R. Sigal, E.J. Weyuker "Computability, Complexity and Languages",
Academic Press (Morgan Kaufmann), 1994.
3. N.D. Jones "Computability and Complexity", MIT Press, 1997.
4. Christos H. Papadimitriou "Computational Complexity", Addison-Wesley, 1994.
5. C.P. Popovici, S. Rudeanu, H. Georgescu "Bazele informaticii", Vol.II, Tipografia
Universitii Bucureti, 1991.

S-ar putea să vă placă și