Anda di halaman 1dari 26

1.

Funes Computveis
1.1

Algoritmos ou Procedimentos Efectivos

1.2

A mquina URM - Unlimited Register Machine

1.3

Funes computveis por URM

1.4

Predicados decidveis e problemas

1.5

Computabilidade noutros domnios

Teresa Galvo

LEIC - Teoria da Computao I

1.1

1.1 Algoritmos ou Procedimentos Efectivos

Quando queremos multiplicar 12 x 12 podemos desenhar no cho um


quadrado de 12 por 12 e contar os pequeno quadrados dentro dele. Ou ento:

12
12
24
12
144

E se pretendermos multiplicar 987654321 x 123456789 ?


Em primeiro lugar, virtualmente impossvel construir o rectngulo
apropriado. Mas mesmo que fosse construdo, exrcitos de pessoas
demorariam sculos a contar os pequenos quadrados e, no fim, quem iria
acreditar no resultado?

Teresa Galvo

LEIC - Teoria da Computao I

1.2

1.1 Algoritmos ou Procedimentos Efectivos (2)

O processo simblico de manipulao de dgitos de acordo com


certas regras simples baseado em propriedades da adio e da
multiplicao que se verificam para todos os nmeros.

Estes mtodos so designados por algoritmos ou procedimentos


efectivos.
Em geral, um algoritmo uma regra mecnica ou um procedimento
automtico para executar alguma operao matemtica.

Quando um algoritmo usado para calcular o valor de alguma fun


numrica, diz-se que essa funo computvel.

Teresa Galvo

LEIC - Teoria da Computao I

1.3

1.1 Algoritmos ou Procedimentos Efectivo

(3)

Exemplos:
Somar dois nmeros
Decidir se um nmero primo

Considere-se agora a funo:

g ( n) =
0

, se existir uma sequncia de exactamente n 7s


seguidos na expanso decimal de
, seno

Do ponto de vista matemtico, esta funo aceitvel. Mas ser


computvel ?

Teresa Galvo

LEIC - Teoria da Computao I

1.4

A demonstrao de Euclides
Existem infinitos nmero primos
Esta demonstrao mostra que qualquer que seja o nmero escolhido, existe sempre
um nmero primo maior do que ele. Escolhemos um nmero: N. Calculemos N!

N! divisvel por todos os nmeros at N. Se adicionarmos 1 a N!,


N! + 1 no mltiplo de 2 ( se dividirmos por 2 o resto 1)
N! + 1 no mltiplo de 3 ( se dividirmos por 3 o resto 1)
N! + 1 no mltiplo de 4 ( se dividirmos por 4 o resto 1)

N! + 1 no mltiplo de N ( se dividirmos por N o resto 1)

Por outras palavras, se N!+1 for divisvel por algum nmero diferente de 1 e de si
prprio, s o poder ser por um nmero superior a N. Ento ou el
nmero primo, ou os seus divisores primos so superiores a N.

De qualquer forma, tem que existir um nmero primo superior a N!


Teresa Galvo

LEIC - Teoria da Computao I

1.5

1.2 A mquina URM


Idealizao matemtica de um computador
Constituda por um nmero infinito de registos:
R1, R2, R3,
cada um dos quais contendo um nmero natural

Teresa Galvo

R1

R2

R3

R4

R5

R6

R7

...

r1

r2

r3

r4

r5

r6

r7

...

LEIC - Teoria da Computao I

1.6

1.2 A mquina URM

(2)

O contedo dos registos pode ser alterado atravs de instrues. Uma


sequncia finita de instrues designa-se por programa.

Instrues:

Zero

Z(n):

para cada n:

Rn

atribui o valor 0 ao contedo do registo Rn (rn := 0)

Sucessor

Tranferncia T(m,n): para cada m, n: rm


Rn
atribui o valor rm ao contedo do registo Rn (rn := rm)

Salto

Teresa Galvo

S(n):

para cada n:

rn+1
Rn
atribui o valor rn+1 ao contedo do registo Rn (rn := rn+1)

J(m,n,q): para cada m,n,q: se rm = rn, executa a instruo Iq

LEIC - Teoria da Computao I

1.7

Exemplo
I1 J(1,2,6)

R1

R2

R3

R4

...

I2 S(2)

...

...

...

...

I3 S(3)
I4 J(1,2,6)
I5 J(1,1,2)
I6 T(3,1)

Teresa Galvo

LEIC - Teoria da Computao I

1.8

Programa URM
P = I1, I2, , Is. Seja Ik uma instruo de P.

Define-se a instruo seguinte da forma:


Se Ik no uma instruo de salto a instruo seguinte Ik+1
, se rm = rn
Se Ik = J(m,n,q), a instruo seguinte I q
I
k + 1 , senao

O programa termina quando no existir instruo seguinte, i.e:


(i)

se k = s e Is uma instruo aritmtica,

(ii)

se Ik = J(m,n,q), rm = rn e q > s,

(iii)

se Ik = J(m,n,q), rm

rn e k = s.

A configurao final a sequncia r1,r2,r3,, aps a execuo de P.

Teresa Galvo

LEIC - Teoria da Computao I

1.9

Exerccio
Execute o programa anterior para a configurao inicial:
R1 R2 R3 R4 ...
8

E para a configurao inicial:


R1 R2 R3 R4
2

...

...
...

O que faz este programa?


Teresa Galvo

LEIC - Teoria da Computao I

1.10

Fim

R1

No

r3

Sim

r1 = r2 ?

r3 = r3+1

r2 = r2+1

No

r1 = r2 ?

Incio

Sim

Diagramas de Fluxo

Teresa Galvo

LEIC - Teoria da Computao I

1.11

1.3 Funes computveis em URM


Seja a1, a2, a3, uma sequncia infinita em |N e seja P um programa.
(i) P(a1,a2,a3,) a execuo de P para a configurao inicial a1,a2,a3,
(ii) P(a1,a2,a3,) significa que a computao P(a1,a2,a3,) pra (converge)
(iii) P(a1,a2,a3,) significa que a computao P(a1,a2,a3,) nunca pra
(diverge)
Considerando que todos excepto um nmero finito dos ai sero nulos, usaremos
a seguinte notao: P(a1,a2,,an).
Seja f uma funo de |Nn em |N.
Calcular o valor de f (a1,a2,,an) pode ser interpretado como a execuo do
programa P com a configurao inicial a1,a2,,an,0,0,, ou seja, P(a1,a2,,an).
O valor da funo ser o nmero r1 contido no registo R1.

Teresa Galvo

LEIC - Teoria da Computao I

1.12

1.3 Funes computveis em URM


Seja f uma funo parcial de |Nn em |N.
Definio

Seja P um programa e a1,a2,,an, b |N.

(i) A computao P(a1,a2,,an) converge para b se P(a1,a2,,a


e, na configurao
n)
final, b est em R1.
(ii) P URM-computa f se, para qualquer a1,a2,,an, b , P(a1,a2,,an) b se e s se
(a1,a2,,an) Dom (f) e f (a1,a2,,an) = b
Em particular P (a1,a2,,an) se e s se (a1,a2,,an) Dom (f) .

Definio
A funo f computvel por URM se existe um programa P que computa f.
A classe das funes computveis por
Teresa Galvo

designada por C .
LEIC - Teoria da Computao I

1.13

1.3 Funes computveis em URM

Dado um qualquer programa P e uma qualquer configurao inicial


a1,a2,,an,0,0,, existe uma nica funo n-ria que P computa, designada
por f P( n ) :

o nico b tal que P( a1 , a 2 ,K , a n ) b


f P( n ) ( a1 , a 2 ,K , a n ) =
indefinida

Teresa Galvo

se P( a1 , a 2 ,K , a n )
se P( a1 , a 2 ,K , a n )

LEIC - Teoria da Computao I

1.14

Exerccio

Mostre que, para cada instruo de transferncia T(m,n), existe um


programa sem instrues de transferncia que tem exactamente o
mesmo efeito que T(m,n).

Ou seja, as instrues de transferncia so redundantes, mas


convenientes.
Incio
I1 Z(n)
I2 J(m,n,5)
I3 S(n)
I4 J(1,1,2)

rn = 0
Sim

rm = rn ?

Fim

No

rn = rn + 1
Teresa Galvo

LEIC - Teoria da Computao I

1.15

Exerccios
Mostre que as seguintes funes so computveis, apresentando
programas URM que as calculem:

x 1 se x > 0
x & 1 =
se x = 0
0
1
x
se x par
f (x) = 2
indefinida se x impar

Teresa Galvo

LEIC - Teoria da Computao I

1.16

Teresa Galvo
LEIC - Teoria da Computao I
1.17

r3 = r3+1

r2 = r2+1

No

I1 J(1,4,9)
I2 S(3)
I3 J(1,3,7)
I4 S(2)
I5 S(3)
I6 J(1,1,3)
I7 T(2,1)

r2

r1 = r3 ?

Sim

R1

Sim

Fim

r3 = r3 +1

No

r1 = 0 ?

Incio

x 1 se x > 0
x & 1 =
se x = 0
0

Teresa Galvo
LEIC - Teoria da Computao I
1.18

r2 = r2+ 2

r3 = r3 + 1

No

r1 = r2 ?

Incio

1
x
f ( x ) = 2
indefinida

r3

R1

Fim

I1 J(1,4,6)
I2 S(3)
I3 S(2)
I4 S(2)
I5 J(1,1,1)
I6 T(3,1)

Sim

se x impar

se x par

1.4 Predicados e problemas decidveis

Dados dois nmeros x e y, queremos saber se verificam a


propriedade x mltiplo de y
1 se x multiplo de y
f ( x, y ) =
0 se x no mltiplo de y

O predicado (propriedade) x mltiplo de y efectivamente


decidvel ou decidvel se a funo f computvel.

Teresa Galvo

LEIC - Teoria da Computao I

1.19

1.4 Predicados e problemas decidveis


Seja M (x) = M (x1,x2,,xn) um predicado n-rio de nmeros naturais.
M (x ) : | N n

|B

|B =

n
Defina-se funo caracterstica: c M ( x ) : | N

1 se M( x ) se verifica
cM ( x ) =
0 se M( x ) no se verifica

{na~ o,

sim }

{0,1}
sim 1
no 0

Definio
O predicado M(x) decidvel se a funo c M ( x ) computvel;
M(x) indecidvel se M(x) no decidvel.

Teresa Galvo

LEIC - Teoria da Computao I

1.20

Exemplos
Os seguintes predicados so decidveis:

" x y"

0 se x = y
c M ( x, y ) =
1 se x y

I1 Z(3)
I2 J(1,2,4)
I3 S(3)
I4 T(3,1)

" x = 0"

1
cM (x) =
0

I1 J(1,2,3)
I2 J(1,1,4)
I3 S(2)
I4 T(2,1)

Teresa Galvo

se x = 0
se x 0

LEIC - Teoria da Computao I

1.21

O gira-discos perfeito
A tartaruga tinha um amigo, o caranguejo, que comprou um gira-discos convencido
que tinha a capacidade de reproduzir qualquer som - era o gira-discos perfeito.
A tartaruga tentou-o convencer que isso no podia ser, mas no o conseguiu. Um
dia levou-lhe um disco chamado No posso ser tocado pelo gira-discos I.
Quando o caranguejo o tentou ouvir, aps algumas notas o gira-discos comeou a
vibrar e, depois de um altssimo POP, desfez-se em milhares de pedaos.
O caranguejo, muito irritado, foi queixar-se ao vendedor do gira-discos que lhe
forneceu outro mais potente e mais caro. Quando contou a novidade tartaruga,
esta escreveu ao fornecedor dos gira-discos e obteve toda a informao sobre a
forma como eles eram construdos. Maldosamente, ela fabricou um novo disco
chamado No posso ser tocado pelo gira-discos II. Mais uma vez, o gira-discos
perfeito se desfez em mil pedaos.

Teresa Galvo

LEIC - Teoria da Computao I

1.22

O gira- discos perfeito (cont.)


O caranguejo, desesperado, pensou em obter um gira-discos de baixa
fidelidade, que no seria capaz de captar nem de reproduzir os sons que o iriam
destruir, mas esse gira-discos estaria longe de ser perfeito.
Mas ento, para qualquer gira-discos X a tartaruga fabricaria um disco
chamado No posso ser tocado pelo gira-discos X.

Mas os sons encontram-se gravados no disco! Os sons existem


(so verdadeiros), apesar de no poderem ser reproduzidos
(provados) em nenhum gira-discos.

Teresa Galvo

LEIC - Teoria da Computao I

1.23

Um isomorfismo
Gira-discos
Gira-discos de baixa fidelidade
Gira-discos de alta fidelidade
Gira-discos perfeito
Modelo do gira-discos
Disco
Disco tocvel
Disco intocvel
Som
Som reproduzvel
Som irreproduzvel

Teresa Galvo

Sistema axiomtica de TN
Sistema axiomtico fraco
Sistema axiomtico forte
Sistema axiomtico completo
axiomas e regras do sistema
Expresso do sistema
Teorema do sistema
No-teorema do sistema
Afirmao verdadeira de TN
Teorema interpretado
Afirmao verdadeira que no
um teorema

LEIC - Teoria da Computao I

1.24

1.5 Computabilidade em outros Domnios


O modelo URM definido apenas para nmeros naturais.
As noes de computabilidade e decidibilidade podem ser estendidas a outros
domnios atravs de uma codificao:
Uma codificao de um domnio D de objectos uma funo explcita e injectiva:

: D |N
Diz-se que o objecto d D est codificado pelo nmero natural
Seja

(d ) .

f : D D .

f codificada pela funo

f : |N |N

f = o f o 1

f computvel se f uma funo computvel de nmeros naturais

Teresa Galvo

LEIC - Teoria da Computao I

1.25

Exemplo
Considere-se o domnio

Z/ . Uma codificao explcita dada por:

2n se n 0
(n) =
- 2 n-1 se n< 0

Seja f ( x ) = x 1 em

Z/

-1

(m) =

m
2
m+1

se m par
se m mpar

f : | N | N dada por

se x = 0
1

f (x) = x 2 se x > 0 e x par


x + 2 se x mpar

f computvel por URM. Ento x-1 computvel em

Teresa Galvo

Z/

LEIC - Teoria da Computao I

1.26

Anda mungkin juga menyukai