Top Banner

of 134

Mquinas de Turing - DECOM- .Alan Turing Alan Turing ©um dos “paisâ€‌da Computa§£o. • Seu

Sep 21, 2018

ReportDownload

Documents

vankien

  • Mquinas de Turing

    1

  • Alan Turing

    Alan Turing um dos pais da Computao.

    Seu modelo computacional a Mquina de Turinginspirou/anteviu o computador eletrnico, que veio algumas dcadas depois.

    Foi usado na quebra do sistema criptogrfico Nazi Enigma na WWII

    Inventou o Turing Test usado em IA

    Prmio Turing: Mais reconhecido prmio em Teoria da Computao

    2

  • Uma Mquina Pensante

    Objetivo inicial da Mquina de Turing: Um modelo capaz de computar qualquer coisa que um humano possa computar. Antes da inveno do computador eletrnico, o termo computador de fato referia-se a uma pessoa cujo trabalho seria efetuar clculos numricos !

    Como esse um objetivo filosfico, ele de fato no pode ser provado.

    Tese de Turing : Qualquer algoritmo pode ser executado por uma dessas mquinas.

    3

  • Uma Mquina Pensante

    Segundo Objetivo da Mquina de Turing: Um modelo que seja to simples que possa ser de fato usado para provar interessantes resultados epistemolgicos. Por exemplo, visava uma soluo para o 100. problema de Hilbert.

    Deixando o aspecto filosfico, o programa de Turing para quebrar o sistema de criptografia Enigma mostrou que ele era um verdadeiro hacker! A mquina de Turing de fato fcil de programar, mas no muito til na prtica

    4

  • 10o. Problema de Hilbert

    Obter um algoritmo que, dada uma equao Diofantina, determina, em um nmero finito de operaes, se existem ou no nmeros inteiros que satisfaam essa equao.

    Listado por Hilbert como um dos 10 problemas mais importantes da matemtica em 1900, s foi resolvido em 1970, por Matijasevic, Robinson, Davis e Putnam, que mostraram que tal algoritmo no existe.

    A prova original usa Mquinas de Turing. Uma prova mais simples foi dada posteriormente (Jones and Matijasevic, Journal of Symbollic Logic, 49(1984)) usando mquinas de registradores (Minsky e Lambek).

    5

  • Uma Mquina Pensante

    Imagine um computador humano super-organizado e obsessivo-compulsivo. O computador quer evitar erros e, por isso, escreve tudo o que faz, uma letra/nmero de cada vez. O computador segue um conjunto finito de regras, que ele examina cada vez que escreve um novo smbolo. Em cada instante apenas uma regra pode ser usada, evitando assim ambiguidade. Cada regra ativa uma nova regra, dependendo da letra/nmero que lido no momento. P. ex.:

    7

  • Uma Mquina PensanteEX: Programa Successor

    Exemplos de regras:

    If read 1, write 0, move right, repeat.

    If read 0, write 1, HALT!

    If read , write 1, HALT!

    Vejamos como isso seria executado sobre um pedao de papel que contenha o reverso da representao binria de 47:

    8

  • Uma Mquina PensanteEX: Programa Successor

    If read 1, write 0, go right, repeat.

    If read 0, write 1, HALT!

    If read , write 1, HALT!

    9

    1 1 1 1 0 1

  • Uma Mquina PensanteEX: Programa Successor

    If read 1, write 0, go right, repeat.

    If read 0, write 1, HALT!

    If read , write 1, HALT!

    10

    0 1 1 1 0 1

  • Uma Mquina PensanteEX: Programa Successor

    If read 1, write 0, go right, repeat.

    If read 0, write 1, HALT!

    If read , write 1, HALT!

    11

    0 0 1 1 0 1

  • Uma Mquina PensanteEX: Programa Successor

    If read 1, write 0, go right, repeat.

    If read 0, write 1, HALT!

    If read , write 1, HALT!

    12

    0 0 0 1 0 1

  • Uma Mquina PensanteEX: Programa Successor

    If read 1, write 0, go right, repeat.

    If read 0, write 1, HALT!

    If read , write 1, HALT!

    13

    0 0 0 0 0 1

  • Uma Mquina PensanteEX: Programa Successor

    If read 1, write 0, go right, repeat.

    If read 0, write 1, HALT!

    If read , write 1, HALT!

    14

    0 0 0 0 1 1

  • Uma Mquina PensanteEX: Programa Successor

    A sada do programa successor para a entrada 111101 000011 que a representao binria de 48.

    Analogamente, o resultado de successor com entrada 127 ser 128:

    15

  • Uma Mquina PensanteEX: Programa Successor

    If read 1, write 0, go right, repeat.

    If read 0, write 1, HALT!

    If read , write 1, HALT!

    16

    1 1 1 1 1 1 1

  • Uma Mquina PensanteEX: Programa Successor

    If read 1, write 0, go right, repeat.

    If read 0, write 1, HALT!

    If read , write 1, HALT!

    17

    0 1 1 1 1 1 1

  • Uma Mquina PensanteEX: Programa Successor

    If read 1, write 0, go right, repeat.

    If read 0, write 1, HALT!

    If read , write 1, HALT!

    18

    0 0 1 1 1 1 1

  • Uma Mquina PensanteEX: Programa Successor

    If read 1, write 0, go right, repeat.

    If read 0, write 1, HALT!

    If read , write 1, HALT!

    19

    0 0 0 1 1 1 1

  • Uma Mquina PensanteEX: Programa Successor

    If read 1, write 0, go right, repeat.

    If read 0, write 1, HALT!

    If read , write 1, HALT!

    20

    0 0 0 0 1 1 1

  • Uma Mquina PensanteEX: Programa Successor

    If read 1, write 0, go right, repeat.

    If read 0, write 1, HALT!

    If read , write 1, HALT!

    21

    0 0 0 0 0 1 1

  • Uma Mquina PensanteEX: Programa Successor

    If read 1, write 0, go right, repeat.

    If read 0, write 1, HALT!

    If read , write 1, HALT!

    22

    0 0 0 0 0 0 1

  • Uma Mquina PensanteEX: Programa Successor

    If read 1, write 0, go right, repeat.

    If read 0, write 1, HALT!

    If read , write 1, HALT!

    23

    0 0 0 0 0 0 0

  • Uma Mquina PensanteEX: Programa Successor

    If read 1, write 0, go right, repeat.

    If read 0, write 1, HALT!

    If read , write 1, HALT!

    24

    0 0 0 0 0 0 0 1

  • Uma Mquina Pensante

    Era difcil para os matemticos da poca acreditarem que qualquer algoritmo poderia ser executado em uma mquina to simples. Para quem j programou em assembly, isso muito mais fcil!

    Entretanto, diversas evidncias aceitao da Tese de Turing: entre elas, a prova da equivalncia entre Mquinas de Turing e o lambda-calculus de Church (no qual so baseadas as linguagens funcionais, como Haskell, ML e Lisp)!

    25

  • Mquina Turing

    Uma Mquina de Turing (TM) um dispositivo com uma quantidade finita de memria hard read-only(estados), e quantidade ilimitada1 de memria-fita read/write. No possui dispositivo de entrada separado. Supe-se que os dados de entrada esto na fita, no momento em que a TM comea a executar.

    Assim como um autmato, uma TM pode ser uma mquina input/output (como Transdutores de Estado Finito), ou uma mquina de deciso yes/no. Vamos comear c/ mquinas yes/no

    26

  • Mquina de Turing Exemplo de Mquina de Deciso

    O primeiro exemplo (adicionar 1 bit ao reverso de um string binrio) basicamente algo que pode ser feito por um Transdutor Finito (exceto quando ocorre overflow). Vejamos agora um exemplo de um nvel acima na hierarquia de linguagens.

    {bit-strings com mesmo nmero de 0s e 1s}

    uma linguagem livre de contexto

    31

  • Mquina de Turing Exemplo de Mquina de Deciso

    Essa uma verdadeira TM j que:

    A fita semi-infinita:

    A entrada est na fita no incio da execuo

    No h teste intrnsico de limite da fita esq. semelhante deteco de pilha vazia em PDAs

    truque similar introduzir $ como flag

    Toda regra inclui direo de movimento (R/L)

    Situaes que no podem ocorrer no so tratadas (tecnicamente indeterminadas)

    32

  • Mquina de Turing Exemplo de Mquina de Deciso

    {bit-strings com mesmo nmero de 0s e 1s}:

    Pseudocodigo:while (existe um 0 e um 1 na fita)

    marque esses dois smbolos

    if (todo smbolo estiver marcado)

    aceita

    else

    rejeita

    33

  • Exemplo de TM Conjunto de Instrues

    0. if read , go right (dummy move), ACEITAif read 0, write $, go right, goto 1 // $ indica incio da fitaif read 1, write $, go right, goto 2

    1. if read , go right, REJEITAif read 0 or X, go right, repeat (= goto 1) // pesquisa por 1if read 1, write X, go left, goto 3

    2. if read , go right, REJECTif read 1 or X, go right, repeat // pesquisa por 0if read 0, write X, go left, goto 3

    3. if read $, go right, goto 4 // pesquisa inicio da fitaelse, go left, repeat

    4. if read 0, write X, go right, goto 1 // similar ao passo 0if read 1, write X, go right, goto 2if read X, go right, repeatif read , go right, ACEITA

    34

  • Exemplo de TM Diagrama de Estados

    Essas instrues so usualmente expressas na forma de um diagrama de fluxo:

    35

    0

    1

    rej

    0$,R

    acc

    R21$,R

    0|XR

    1|XR

    3

    R

    0X,L

    1X,L 0|1|XL

    4

    $R

    XR

    0X,R

    1X,R

    R

  • TM - Notao

    Um arco do estado p para o estado q rotulado como

    ab,D significa que se estiver em p e o smbolo corrente na fita a, substitua-o por b e mova para a direo D, e para o estado q

    aD significa que se estiver em p e o smbolo corrente na fita a, no o altere e mova na direo D, e para o estado q

    a|b||z significa que se o smbolo corrente na fita for qualquer das alternativas, a ao a ser realizada a mesma.

    36

  • TM Notao de Configurao

    A prxima ao de uma TM completamente determinada pelo estado corrente e pelo smbolo lido; portanto podemos prever aes futuras se sabemos:

    1. o estado corrente2. o contedo corrente da fita3. a posio corrente da cabea de leituraUma notao til representar essa informao na forma de um

    nico string. O smbolo que representa o estado corrente intercalado no contedo da fita, entre a poro que est esq. da cabea de leitura e a que est sua d