[TC II] Trabalho - Computabilidade.pdf
-
Upload
alexandre-farb -
Category
Documents
-
view
15 -
download
6
Transcript of [TC II] Trabalho - Computabilidade.pdf
-
1
UNIVERSIDADE FEDERAL DO PAR
INSTITUTO DE TECNOLOGIA
FACULDADE DE ENGENHARIA DA COMPUTAO E
TELECOMUNICAES
Computabilidade
Belm
Abril/2015
-
2
Computabilidade
Alexandre Farias Baa - 201106840060
Trabalho apresentado disciplina Teoria
da Computao II, como requisito de
avaliao.
Professore: Jamir Fernandes.
Belm
Abril 2015
-
3
SUMRIO
1 - Introduo ....................................................................... 4
2 - O que computabilidade? .............................................. 4
3 - O que a computabilidade estuda?.................................... 4
4 - Primeiro Teorema da Incompletude ............................... 5
5 - Decidibilidade ................................................................ 5
6 - Linguagens Decidiveis.................................................... 7
7 - Problema da Parada ........................................................ 7
8 - Segundo Teorema da Incompletude ............................... 8
9 - Hiptese de Church ........................................................ 8
10 - Redutibilidade .............................................................. 9
11 Concluso .................................................................... 9
12 - Referncias Bibliogrficas ........................................... 10
-
4
1 Introduo
Este trabalho tem como objetivo dar uma viso geral sobre a Computabilidade,
analisando e explicando seus principais aspectos, alm de ter um apanhado nas Teorias
de Incompletude, ter uma viso de Decidibilidade (juntamente com a Mquina de
Turing), as linguagens que a utilizam e alm de problemas que envolvam deciso
(Problema da Parada).
2 - O que computabilidade?
Computabilidade a habilidade de resolver problemas de forma efetiva. um
tpico chave para o campo da Teoria da Computabilidade dentro da Lgica Matemtica
e para a Teoria da Computao dentro da Cincia da Computao. A computabilidade
de um problema intimamente ligada existncia de um algoritmo para resolver o
problema.
A figura abaixo ilustra como funciona o conceito de computabilidade:
Figura 1 - Hierarquia de Mquinas e Linguagens
3 - O que a computabilidade estuda?
Ela se concentra em determinar se um dado problema, escrito de maneira formal
como um algoritmo, solucionvel por um modelo computacional. Esta teoria difere-se
de outro ramo da teoria da computao chamado teoria da complexidade computacional
cujo enfoque se d no se determinado problema solucionvel ou no, e sim se estuda
-
5
a complexidade, diga-se tratabilidade de um problema computacional solucionvel em
um modelo de mquina universal.
Em resumo, a computabilidade estuda os seguintes itens:
- Questes de decidibilidade
- Modelos de computao
- Capacidade computacional
4 - Primeiro Teorema da Incompletude
O Primeiro Teorema da Incompletude tem o seguinte enunciado:
Qualquer teoria efetivamente gerada capaz de expressar a aritmtica elementar no pode ser tanto consistente quanto completa. Em particular, para qualquer teoria formal
consistente e efetivamente gerada que prova certa verdade da aritmtica bsica, existe
uma afirmao aritmtica que verdade, mas no demonstrvel na teoria
Ele produz uma proposio aritmtica verdadeira em N, mas no dedutvel de um
sistema natural de axiomas da aritmtica de primeira ordem. Mediante uma codificao
engenhosa de conceitos metamatemticos (noes de frmula, de deduo formal, de
dedutvel), mostrou que funes definidas recursivamente (o que hoje chamamos de
funes recursivas primitivas) podem ser representadas na aritmtica e, devido ao
aspecto recursivo das definies daqueles conceitos metamatemticos, foi possvel
produzir uma frmula que (do ponto de vista metamatemtico - ou da metalinguagem)
afirmava sua prpria indemonstrabilidade (algo como o cdigo de uma frmula para a qual no existe uma deduo formal) e que seria verdadeira em N.
5 - Decidibilidade
Antes de definir decidibilidade, necessrio algum conhecimento relativo a
mquinas de Turing.
Mquinas de Turing so modelos computacionais, ao se iniciar uma mquina de
Turing sobre uma entrada, trs resultados so possveis: aceitar a entrada, rejeitar ou
entrar em loop. Ao entrar em loop a mquina pode no estar, necessariamente, repetindo
os mesmos passos, mas pode acarretar comportamento simples ou complexo que nunca
leva a um estado de parada, ou seja, um estado que possa aceitar ou rejeitar a entrada.
As mquinas que nunca entram em loop so chamadas decisores porque essas sempre
tomam uma deciso de aceitar ou rejeitar. Um decisor que reconhece uma linguagem
decide essa linguagem.
-
6
Tabela 1 - Transio de Estados de uma Mquina de Turing
Figura 2 - Diagrama de Transio de Estados para a Mquina de Turing da Tabela 1
Um sistema lgico ou de teoria decidvel se um conjunto de todas as frmulas
vlidas bem-formadas no sistema so decidveis, o que significa dizer que existe um
algoritmo tal que, para toda frmula no sistema, o algoritmo capaz de decidir em
etapas finitas se uma frmula vlida no sistema ou no. Por exemplo, a lgica
proposicional decidvel porque existe um algoritmo construo da tabela verdade
tal que, para cada frmula que combina M frmulas atmicas, existe um nmero
mximo N = 2M
de etapas tal que, depois de compilar essas N etapas, o algoritmo
sempre decidir se a frmula vlida ou no. Uma maneira mais simples e intuitiva de
descrever decidibilidade como sendo uma tcnica para determinar o limite de
solubilidade de um problema.
Por outro lado, existem os problemas no decidveis, os quais so classificados
como algoritmicamente insolveis, o que demonstra que os computadores so limitados
de uma maneira muito fundamental em relao ao seu poder de solucionar problemas. O
interessante de saber se um problema algoritmicamente insolvel que o problema
pode ser simplificado ou alterado sem que voc tente, inutilmente, encontrar uma
soluo para ele.
-
7
6 - Linguagens Decidveis
Uma linguagem decidvel uma linguagem em que existe uma mquina de
Turing que, quando recebe uma cadeia de entrada aceita-a ou a rejeita, dessa forma, a
mquina de Turing sempre a decide.
Exemplo 1:
Neste exemplo ser testado o problema de aceitao referente a um AFD, ou
seja, se o mesmo aceita uma cadeia w. Para isso ser estabelecida uma linguagem Aafd
e sua decibilidade constatada aps o processo, ela esta definida como:
Aafd = { | B um AFD que aceita a cadeia de entrada w}
Algoritmo para a mquina de Turing M:
1- Simule o autmato B com respeito entrada w 2- Verifique se ela termina em um estado de aceitao, caso sim , aceita, seno,
rejeite.
Detalhes referentes simulao do AFD foram abstrados para no fugir ao
escopo, mas bom deixar claro que a maquina M faz verificaes de corretude da
entrada bem como realiza a simulao diretamente, fazendo registro de estados e
realizando as transies pertinentes descritas na funo de transio do AFD.
Na realidade tanto AFDs tal como o acima, um AFN ou expresso regular
poderiam ser computados por uma mquina de Turing pois todos eles podem ser
convertidos uns para os outros.
O prximo exemplo faz referencia ao chamado teste de vacuidade para a
linguagem de um autmato finito. Nela o objetivo verificar a aceitao ou no de
alguma cadeia por um AFD.
Exemplo 2:
Vafd = { | A um AFD e L(A) = }
Vafd decidvel ?
Algoritmo:
1- Marque o estado inicial A e v para 2. 2- Enquanto nenhum novo estado for marcado, marque qualquer estado que
possua uma transies chegando nele vindos de estados j macardos.
3- Se nenhum estado de aceitao estiver marcado, aceite, seno, rejeite.
7 - Problema da Parada
O problema da parada um problema de deciso sobre as propriedades de
programas de computadores em um determinado modelo Turing completo de
computao, por exemplo, todos os programas que podem ser escritos em uma
-
8
linguagem de programao que geral o suficiente para ser equivalente a uma mquina
de Turing. O problema determinar para uma dada entrada se o programa ir parar com
ela. Nesta rea de trabalho abstrata no h limitaes de memria ou tempo necessrio
para a execuo de um programa, pois podero ser necessrios tempo e espao
arbitrrios para o programa parar. A questo se o programa simplesmente poder parar
com uma certa entrada.
Por exemplo, em pseudo-cdigo, o programa:
enquanto Verdadeiro: continue
No para, pelo contrrio, entra em loop infinito. Por outro lado, o programa:
imprimir "Hello World!"
Para muito rapidamente.
Um programa mais complexo pode ser mais difcil de analisar, o programa pode
rodar por um tempo fixo e se ele no parar, no h um jeito de saber se o programa ir
parar eventualmente ou se ele ir continuar rodando para sempre. Turing provou que
no h um algoritmo que pode ser aplicado a qualquer programa arbitrrio, com uma
entrada, para decidir se o programa para ou no com esta entrada.
8 - Segundo Teorema da Incompletude
O Segundo Teorema da Incompletude enunciado da seguinte forma:
Para qualquer teoria formal efetivamente gerada T, incluindo verdades da aritmtica bsica e tambm certas verdades de demonstrabilidades formais, se T inclui afirmaes
de sua prpria consistncia, ento inconsistente.
Em poucas palavras, o segundo teorema diz que nenhum sistema
(suficientemente forte) pode provar a sua prpria consistncia, a no ser que o sistema
em si seja inconsistente.
O resultado do segundo teorema implica que, para provar a consistncia de um
sistema A, devemos faz-lo ou informalmente, ou atravs de argumentao em um
sistema B. Desta forma, obtemos apenas uma consistncia relativa para A, uma vez que
a consistncia de A agora depende da consistncia de B.
9 - Hiptese de Church
A Hiptese de Church tem o seguinte enunciado:
"A capacidade de computao representada pela Mquina de Turing o limite mximo
que pode ser atingido por qualquer dispositivo de computao"
Em outras palavras, a Hiptese de Church afirma que qualquer outra forma de
expressar algoritmos ter, no mximo, a mesma capacidade computacional da Mquina
-
9
de Turing. Como a noo de algoritmo ou funo computvel intuitiva, a Hiptese de
Church no demonstrvel.
Ela uma tese, no um teorema, porque no um resultado matemtico: ela
simplesmente afirma que um certo conceito informal (algoritmo) corresponde a um
certo objeto matemtico (mquina de Turing). No sendo uma instruo matemtica, a
hiptese de Church no pode ser provada. Supondo verdadeira a Hiptese de Church,
pode-se afirmar que para:
a) Funo Computvel: possvel construir uma Mquina de Turing (ou
formalismo equivalente) que compute a funo.
b) Funo No-Computvel: No existe Mquina de Turing (ou formalismo
equivalente) que compute a funo.
10 - Redutibilidade
A Redutibilidade nada mais do que um algoritmo para converter instncias de
um problema P para instncias de um problema P,ou seja a reduo deve transformar instncias de p1 que possui uma resposta sim em uma instncia de p2 que possui a mesma resposta.
Neste caso dizemos que P se reduz a P. Desta forma podemos garantir que resolver o problema P no mais difcil que resolver o problema P pois uma soluo para o problema P gera uma soluo para o problema P.
No caso da teoria da computabilidade, podemos afirmar que se um dado
problema P pode ser reduzido ao problema P e P um problema decidvel isto implica que P tambm decidvel, pois no caso poderamos utilizar uma soluo de P para resolver P. Da mesma maneira se P provado como insolvel e ele consegue ser
reduzido a P isso implica que P tambm insolvel o que nos d um poderoso mtodo para provar que um problema indecidvel, que no caso seria pegar um problema
conhecidamente indecidvel, como o problema da parada que ser explicado mais
adiante, e reduzi-lo ao problema em prtica. podemos tambm utilizar o conceito de
redutibilidade, na teoria da complexidade, para podermos provar que um determinado
problema P NP-Completo. Provamos que P NP-Completo se conseguirmos realizar
uma reduo em tempo polinomial do problema P para um outro problema P conhecidamente como NP-Completo, como o problema de SAT ou o problema da
cobertura de vrtice. Neste caso dizemos que P eficientemente redutvel ao problema
P.
11 - Concluso
A computabilidade mostra-se como uma pedra fundamental para resolvermos problemas relacionados ou a lgica matemtica ou a teoria da computao, sendo
importante para sabermos se um problema solucionvel ou no, graas a ela pde-se
desenvolver teoremas e tcnicas que ajudam a resolver problemas lgicos modernos.
-
10
12 - Referncias Bibliogrficas
Computabilidade, UNB, disponvel em:
Teoremas de Incompletude de Gdel, UFMG, disponvel em:
Decidibilidade, UFPE, disponvel em:
Algoritmos e Estrutura de Dados, Tiago A. E. Pereira, disponvel em:
Mquina de Turing, Universidade de Lisboa, disponvel em: