Sunteți pe pagina 1din 25

6.

Decidibilidade, indecidibilidade e decidibilidade parcial


Nos captulos anteriores, j foram referidos diversos problemas decidveis. Apenas foi analisado um nico problema indecidvel ( (Exemplos ?) total)

A identificao dos problemas indecidveis uma das maiores aplicaes da Teoria da Computao, pois permite demonstrar os limites tericos dos computadores reais. Lembremos que um predicado (problema) M(x) decidvel se a sua funo caracterstica cM(x) dada por:
1 , se M (x) se verifica c M (x) = 0 , se M (x) nao se verifica
Mas a Teoria da Computao tem alguma aplicao ?!

for computvel. Um algoritmo para computar cM chamado procedimento de deciso para M(x)
Teresa Galvo LEIC - Teoria da Computao I 6.1

6.1 Problemas indecidveis em computabilidade


Suponhamos que um dado programa P calcula uma dada funo total. Ento, existe um ndice a tal que P = Pa. Alm disso, o valor a ( a ) est definido (pois a funo total). Questo: Ser que existe um procedimento geral que permita decidir se um qualquer programa com o nmero x converge, quando aplicado ao prprio x? Ou seja, os seguintes predicados so decidveis?

" Px (x) "

" x Wx "
x (x) est definida U (x, x) est definida

Teresa Galvo

LEIC - Teoria da Computao I

6.2

6.1 Problemas indecidveis em computabilidade


Teorema 1
Prova: O predicado

" x Wx " indecidvel.

Vamos supor que o predicado decidvel. 1 , se x Wx Ento, a funo caracterstica f (x) = 0 , se x Wx

computvel.

Nesse caso a funo Seja g = a

0 , se f( x ) = 0 g (x) = tambm computvel indefinido , se f( x ) = 1

g est definida em a ?

g est definida em a se e s se f (a) = 0 a Wa Mas


Wa = Dom (a ) = Dom (g)

Logo, g est definida em a se e so se a no pertence ao domnio de g (!!) A suposio sobre a computabilidade de f est errada, donde " x Wx " indecidvel.
Teresa Galvo LEIC - Teoria da Computao I 6.3

6.1 Problemas indecidveis em computabilidade


Corolrio: Existe uma funo computvel h tal que os problemas so ambos indecidveis.
x , se x Wx h (x) = Seja indefinida , se x Wx

" x Dom (h)"


" x Ran (h)"

Prova:

Esta funo computvel, pois Mas

h(x) x 1 ( U (x, x) ) e

computvel.

x Dom (h) x Wx x Ran (h)

Logo, pelo teorema anterior, podemos concluir que ambos os predicados so

Ou seja, no e x i s t e um procedimento geral que nos permita decidir se um nmero pertence ao domnio ou ao contradomnio de uma funo computvel.

Teresa Galvo

LEIC - Teoria da Computao I

6.4

6.1 Problemas indecidveis emcomputabilidade


E agora, o mais famoso exemplo de indecidibilidade:

O problema da paragem
O problema x (y) est definido indecidvel.
Informalmente: se o problema x (y) est definido fosse decidvel, tambm o seria o problema anterior (mais simples) , x (x) est definido. Mas o Teorema anterior diz-nos que este predicado no decidvel.

(ou

Px (y) ou

y Wx )

Prova: Seja g a funo caracterstica do predicado x (y) est definido:


1 , se x (y) esta definido g (x) = 0 , se x (y) nao esta definido

Se g computvel, tambm a funo f(x) = g(x,x). Mas f a funo caracterstica de " x Wx " , a qual j provmos que no computvel. Ento, g no computvel e x (y) est definido indecidvel
Teresa Galvo LEIC - Teoria da Computao I 6.5

6.1 Problemas indecidveis em computabilidade


O Problema da Paragem ( The Halting Problem) tem grandes implicaes prticas: No existe nenhum mtodo geral efectivo que permita averiguar se um dado programa, para um determinado conjunto de dados eventualmente pra. No existe nenhum procedimento efectivo que verifique se um programa tem ciclos infinitos. O problema indecidvel " x Wx " a chave para a demonstrao de muitos outros problemas indecidveis. Considere-se um dado problema M(x). Muitas vezes, a soluo deste problema conduz soluo do problema " x Wx " Ou seja, M(x) decidvel se e s se " x Wx " decidvel. Como j se provou que este problema indecidvel, M(x) tambm ser indecidvel. Diz-se, nesse caso, que " x Wx " reduzido ao problema M(x).
Teresa Galvo LEIC - Teoria da Computao I 6.6

6.1 Problemas indecidveis em computabilidade


Teorema
Prova: O problema " x = 0" indecidvel Considere-se a funo f definida por:
(f foi definida considerando que vai ser usado o Teorema s-m-n)

0 , se x Wx f (x, y) = indefinida , se x Wx

Defina-se agora

g x (y) f(x,y) .

f foi definida por forma que: g x = 0 x Wx

f computvel ( f (x, y) = 0 . U (x, x)), logo, pelo Teorema s-m-n existe uma funo total computvel k(x) tal que f (x, y) k(x) (y) ou seja, k(x) = g x Pela definio de f, temos Suponhamos que " x = 0" decidvel.
x Wx
k(x)

= 0

(*)

Logo a funo

1 , se x = 0 g (x) = 0 , se x 0

computvel.

Ento tambm a funo h(x) = g(k(x)) computvel. Mas de (*), ns temos que

1 , se x = 0 ; i.e. x Wx h (x) = 0 , se x 0 ; i.e. x W x

Do Teorema 1 vem que h no computvel, logo g no computvel e o predicado indecidvel.


Teresa Galvo LEIC - Teoria da Computao I 6.7

6.1 Problemas indecidveis em computabilidade


Na ltima aula vimos alguns problemas indecidveis em computabilidade:

" x e total"
Problema da Introspeco:

" x Wx "

(ou " Px (x) " ou x (x) est definida )

Problema da Paragem:
(ou " Px (y) "

" y Wx "
ou " x (y) est definida )

Teresa Galvo

LEIC - Teoria da Computao I

6.8

6.1 Problemas indecidveis em computabilidade


Do Teorema anterior podemos concluir que existem limitaes inerentes correco de um programa. De facto, no existe um mtodo geral efectivo que permita verificar se um programa calcula a funo Zero. O seguinte corolrio mostra que a questo de saber se dois programas computam a mesma funo unria indecidvel. Corolrio Prova: O problema " x = y " indecidvel. Seja c um nmero tal que c = 0 Se f(x,y) a funo caracterstica de " x = y " ento a funo g(x) = f(x,c) a funo caracterstica de " x = 0 " Mas, pelo Teorema anterior, g no computvel, logo f tambm no. O predicado " x = y " indecidvel.
Teresa Galvo LEIC - Teoria da Computao I 6.9

6.1 Problemas indecidveis em computabilidade


Teorema Seja c um nmero qualquer. Os seguintes predicados so indecidveis: (a) Problema do Input
"c Wx "

(ou " Px (c) "

ou

"c Dom ( x )" )

(b) Problema do Output


"c E x "

(ou " c Ran ( x )" )

Prova: Usaremos o Teorema s-m-n para reduzir o problema " x Wx " a estes problemas. Considere-se a funo f(x,y) dada por: Seja g x (y) = f(x, y)
y , se x Wx f (x, y) = indefinida , se x Wx

g x a funo identidade ( y y ) se x Wx gx
Teresa Galvo

est indefinida se x Wx
LEIC - Teoria da Computao I 6.10

6.1 Problemas indecidveis em computabilidade


Ento, para qualquer c,

c Dom(g x ) c Ran(g x ) x Wx

Pelo Teorema s-m-n, existe uma funo computvel k tal que Para qualquer c,

k(x)

= gx

c Wk(x) c E k(x) x Wx

Seja g a funo caracterstica de "c Wx " Ento Seja g a funo caracterstica de "c E x " Ento Reduzimos
" x Wx "
1 , se c E k(x) ; i. e. x W x g ' ' (k(x)) = 0 , se c E k(x) ; i. e. x W x

1 , se c W k(x) ; i. e. x W x g' (k(x)) = 0 , se c W k(x) ; i. e. x W x

a cada um destes problemas, logo "c Wx " e

"c E x "

seriam decidveis se e s se " x Wx " o fosse.


Teresa Galvo LEIC - Teoria da Computao I 6.11

6.1 Problemas indecidveis em computabilidade


Teorema de Rice Seja B C1 e B , C1 . Ento o problema Prova

" x B " indecidvel.

Pela lgebra da decidibilidade, sabemos que " x B " decidvel se e s se " x C1 \ B " decidvel. Podemos assumir sem perda de generalidade que f B Escolhe-se uma funo g B Considere-se a funo
, se x Wx g(y) f (x, y) = indefinida , se x Wx

Como f computvel (Tese de Church), o Teorema s-m-n diz que existe um funo total computvel k(x) tal que f(x,y) = k(x) (y) Ento, vemos que:

x Wx x Wx

k(x) k(x)

= g

; i.e.

k(x)

= f ; i.e.

k(x)

Reduzimos o problema " x W x " Logo


Teresa Galvo

ao problema

" x B "

" x B "

indecidvel.
LEIC - Teoria da Computao I 6.12

6.1 Problemas indecidveis em computabilidade


Equaes Diophantine
Uma equao diophantine uma equao polinimial com coeficientes inteiros, para a qual so exigidas solues inteiras. Por exemplo:

x2 4 = 0
x2 y = 0

tem duas solues tem infinitas solues no tem solues

x= 2

{(0,0); (1,1); (2,4); ( 2,4);...}


(?) (?)

x2 2 = 0

5 x5 + 17 y17 177 = 0

x123666111222 + y123666111222 c123666111222 = 0

O problema de saber se uma qualquer equao diophantine tem solues inteiras indecidvel (!!)
Teresa Galvo LEIC - Teoria da Computao I 6.13

Predicados parcialmente decidveis


Apesar do predicado " x W x " ter uma funo caracterstica no funo relacionada com aquela computvel:
1 , se x W x f (x) = indefinida , se x W x

, a seguinte

Se continuarmos a associar o valor 1 resposta Sim, qualquer algoritmo para f dar a resposta Sim sempre que " x W x " e continua indefinidamente quando " x W x " Esse procedimento designado por procedimento de deciso parcial para o problema " x W x " e este problema diz-se parcialmente decidvel. Definio: Um predicado M(x) parcialmente decidvel se a funo f dada por
1 , se M ( x ) se verifica f (x) = ~ indefinida , se M ( x ) n a o se verifica

computvel. Esta funo designada por funo caracterstica parcial.

Teresa Galvo

LEIC - Teoria da Computao I

6.14

Exemplos de Predicados parcialmente decidveis


1. O problema da Paragem " Px (y) " parcialmente decidvel, pois a sua funo caracterstica parcial computvel:
1 , se Px ( y ) f (x, y) = ~ indefinida , sen a o

f computvel pela Tese de Church ou considerando que f(x, y) 1 ( U (x, y) ) 2. Qualquer predicado decidvel parcialmente decidvel; 3. Para qualquer funo computvel g(x) o problema " x Dom(g)" parcialmente decidvel, 1 (g (x)) ) pois a sua funo caracterstica parcial 4. O problema " x Wx " no parcialmente decidvel, pois a sua funo caracterstica parcial no computvel.
1 , se x W x f (x) = indefinida , se x W x

Se f for computvel, tem um ndice m. Ento vejamos o que acontece quando aplicamos f a m:

m Dom(f) m Dom ( m ) m Wm f (m) indefinido m Dom(f)


Teresa Galvo LEIC - Teoria da Computao I 6.15

Predicados parcialmente decidveis


Teorema
Um predicado M(x) parcialmente decidvel se e s se existe uma funo computvel g(x) tal que: M(x) verifica-se se e s se x Dom(g)

Prova:

a) Se M(x) parcialmente decidvel com funo caracterstica parcial f(x), ento pela prpria definio de f temos que M(x) verdade se e s se Fazemos ento g(x) f(x). Como f computvel, g computvel. b) Seja g uma funo computvel tal que M(x) se verifica se e s se x D o m ( g ) Queremos provar que M(x) parcialmente decidvel De facto, a funo caracterstica parcial deste predicado
1 , se x Dom (g) f (x) = indefinida , se x Dom (g)

x Dom(f)

definida por:

Esta funo computvel, pois g computvel e f(x) = 1 (g (x)) Logo, M(x) parcialmente decidvel.
Teresa Galvo LEIC - Teoria da Computao I 6.16

Predicados parcialmente decidveis


Teorema
Um predicado M(x) parcialmente decidvel se e s se existe um predicado decidvel R(x, y) tal que: M(x) se e s se y R( x , y) Prova: a) Se M(x) parcialmente decidvel tem um procedimento de deciso parcial dado pelo programa P. Defina-se um predicado R(x,y) por: R(x, y) P(x) em y passos Este predicado decidvel (ver aulas anteriores). Alm disso, M(x) verifica-se se e s se P(x) , ou seja, se e s se y R( x , y) b) Seja R(x, y) um predicado decidvel tal que: M(x) se e s se y R( x , y) Queremos provar que M(x) parcialmente decidvel.
menor y tal que R( x , y) se verifica , se existe y Considere-se a funo g( x ) y R( x , y) = , se y nao existe indefinido

Esta funo computvel: g( x ) = y (sg(c R ( x , y)) = 0) Logo, M(x) verifica-se se e s se x D o m ( g ) . Pelo teorema anterior, M(x) parcialmente decidvel.
Teresa Galvo LEIC - Teoria da Computao I 6.17

Predicados parcialmente decidveis


O Teorema anterior pode ser usado para estabelecer algumas propriedades dos predicados parcialmente decidveis que nos ajudam a reconhec-los.

Teorema:

Se M(x, y) um predicado parcialmente decidvel, ento tambm o o predicado y M( x , y)

Prova: Recorrendo ao teorema anterior, seja R(x, y, z) um predicado decidvel tal que M(x, y) se e s se z R( x , y, z) Ento, y M( x , y)
y z R( x , y, z)

y z Utilizando a tcnica de codificar o par de nmeros y, z pelo nico nmero u = 2 3

a pesquisa do par y, z, tal que R(x, y, z) reduz-se pesquisa do nmero u tal que R(x, (u)1, (u)2) ou seja,
y M( x , y) u R( x , (u) 1 , (u) 2 )

O predicado S ( x , u ) R ( x , ( u ) 1 , ( u ) 2 ) decidvel (por substituio) logo, pelo Teorema anterior, o predicado


Teresa Galvo

y M( x , y)

parcialmente decidvel.
LEIC - Teoria da Computao I 6.18

Predicados parcialmente decidveis


A repetida aplicao do Teorema anterior leva-nos ao Corolrio:

Corolrio:

Se M(x, y) parcialmente decidvel (y = y1, y2,...,ym), ento tambm o o predicado y 1 ... y m M ( x , y 1 , ... , y m ) Os seguintes predicados so parcialmente decidveis:

Exemplos: 1.

x E (n) y

(n fixo)

x E (n) z1 ... z n t (Py (z1 ,..., z n ) x em t passos) y


predicado decidvel Podemos ento aplicar o corolrio. 2.

Wx
Wx y t (Px (y) em t passos) predicado decidvel Podemos aplicar o corolrio.
LEIC - Teoria da Computao I 6.19

Teresa Galvo

Predicados parcialmente decidveis


Teorema:
Prova: Um predicado M(x) decidvel se e s se M(x) e no M(x) forem ambos parcialmente decidveis.

a) Se M(x) decidvel, tambm no M(x) decidvel e, nesse caso, M(x) e no M(x) so parcialmente decidveis, pois todos os predeicados decidveis so parcialmente decidveis. b) Sejam agora M(x) e no M(x) predicados parcialmente decidveis com procedimentos de deciso parcial F e G. Queremos provar que M(x) decidvel. F( x) M( x ) verifica - se
G( x ) ~ " nao M( x )" verifica - se

Alm disso,

F( x )

ou

G( x )

mas nunca ambos

O seguinte algoritmo permite decidir M(x): para um dado x, correr os programas F(x) e G(x) simultaneamente ou alternadamente um passo de cada. Se F(x) parou, M(x) verifica-se. Se G(x) parou no M(x) verifica-se. Logo M(x) decidvel.
Teresa Galvo LEIC - Teoria da Computao I 6.20

Predicados parcialmente decidveis


Prova alternativa da alnea b) Sejam M(x) e no M(x) predicados parcialmente decidveis Ento, existem predicados decidveis R(x, y) e S(x, y) tal que:
M( x ) y R( x, y)

~ n ~ o M( x ) y S( x , y) y (na o R( x , y)) a

~ Defina-se f( x) = y (R( x , y) ou (nao R( x , y)))


f (x) computvel e est definida para todo o x . Ento M( x ) R( x, f(x )) Como R( x, f(x)) decidvel, M(x) decidvel.

Teresa Galvo

LEIC - Teoria da Computao I

6.21

Predicados parcialmente decidveis


O seguinte Teorema fornece uma prova alternativa para o Problema da Paragem ser indecidvel. O predicado " Px ( y ) " (ou " y Wx " parcialmente decidvel . ou "

Corolrio:

(y) indefinida "

) no

Prova: O problema " Px ( y ) "

parcialmente decidvel, pois a funo computvel.

1 , se Px ( y ) f (x, y) = ~ indefinida , sen a o " Px ( y ) " " n ~ Px ( y ) " ao

Se o predicado " Px ( y ) " fosse parcialmente decidvel, pelo Teorema anterior, o Problema da Paragem seria decidvel, o que j vimos ser falso. Logo, o predicado " Px ( y ) " no parcialmente decidvel.

Teresa Galvo

LEIC - Teoria da Computao I

6.22

Predicados parcialmente decidveis


O resultado final deste captulo fornece um mecanismo til para provar que uma funo computvel.

Teorema:

Seja f(x) uma funo parcial. Ento f computvel se e s se o predicado " f ( x ) y " for parcialmente decidvel.

Prova:

a) Seja f uma funo computvel por um programa P. Ento, temos

f ( x ) y t (P( x ) y em t passos)
decidvel parcialmente decidvel Ento " f ( x ) y " tambm parcialmente decidvel.

Teresa Galvo

LEIC - Teoria da Computao I

6.23

Predicados parcialmente decidveis


Prova (cont.) b) Suponhamos agora que " f ( x ) y " parcialmente decidvel Queremos provar que f computvel Seja R (x, y, t) um predicado decidvel tal que f ( x ) y t R( x , y, t) Ento temos o seguinte algoritmo para computar f(x): Procurar um par de nmeros y, t, tais que R(x, y, t) se verifica. Se, e quando esse par for encontrado, f ( x ) y . Ento, pela Tese de Church, f computvel.

Teresa Galvo

LEIC - Teoria da Computao I

6.24

Predicados parcialmente decidveis


Prova alternativa (formal) de b) Como " f ( x ) y " parcialmente decidvel, seja R (x, y, t) um predicado decidvel tal que f ( x ) y t R( x , y, t) Ento y (f ( x ) y) y t R( x , y, t)
y t Seja z = 2 3

y (f ( x ) y) z R( x , (z) 1 , (z) 2 )

Seja S ( x , z ) R ( x , ( z ) 1 , ( z ) 2 ) Ento z S ( x , z ) z R ( x , ( z ) 1 , ( z ) 2 ) Logo,


" y (f (x ) y)"

S(x, z) decidvel (por substituio) parcialmente decidvel

parcialmente decidvel
g( x ) = z S( x , z)

Defina-se M ( x ) z R ( x , (z) 1 , (z) 2 ) e

g(x) computvel e M(x) verifica-se se e s se x Dom (g) e g( x) = z = 2 y 3t com


Teresa Galvo

y = (z) 1 e t = (z) 2

f (x) y

Logo, f computvel.
LEIC - Teoria da Computao I 6.25

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