[TC II] Trabalho - Computabilidade.pdf

10
1 UNIVERSIDADE FEDERAL DO PARÁ INSTITUTO DE TECNOLOGIA FACULDADE DE ENGENHARIA DA COMPUTAÇÃO E TELECOMUNICAÇÕES Computabilidade Belém Abril/2015

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: