slides máquinas universais

Upload: valdinei-oliveira

Post on 19-Jul-2015

204 views

Category:

Documents


0 download

TRANSCRIPT

Trabalho de Teoria da ComputaoMquinas Universais

HISTRICOAlan Turing -Props Mquina de Turing em 1936Alan Turing nasceu em 1912, ele foi matemtico, lgico , criptoanalista e cientista da computao britnico. Foi influente no desenvolvimento da ciencia da computao e proporcionou uma formalizao do conceito de Algoritmo e computao com a mquina de turing, desempenhando um papel importante na criao do moderno computador. Emil Leon Post Props Maquina de Post em 1943 Emil Leon Post nascido em 1897, New York foi um matemtico e lgico. Ele mais conhecido por seu trabalho no campo que se tornou conhecida como teoria da computabilidade. O modelo computacional utilizando seqncia reescrita e desenvolvido por Post em 1920, mas publicado pela primeira vez em 1943. Richard Bird -Props Mquina Norma em 1976 Richard S. Bird nascido em 1943, um companheiro da Computao na Lincoln College em Oxford na Inglaterra, e ex-diretor do Laboraio de Computao da Universidade de Oxford. E autor de um livro Introduo Programao Funcional Usando Haskell e outros livros.

Maquinas universais

Conceito : se for possvel representar qualquer algoritmo como um programa . Evidncias: Interna e Externa. A mquina de Turing um dispositivo terico conhecido como mquina universal. Toda 'funo que seria naturalmente considerada computvel' pode ser computada por uma Mquina de Turing. Modelo abstrato de um computador.

Noo Intuitiva de Alan Turing

Ponto de partida Ler um smbolo Alterar um smbolo Mover os olhos FimFita

Branco

Marcador de incio da fita

Cabea da fita

Control e

Tipos de Mquinas Universais Mquina de Mealy Mquina de Moore Mquina de Post Mquina com Pilhas Mquina de Turing

Mquina de Mealy A Mquina de Mealy um Autmato Finito modificado de forma a gerar uma palavra de sada para cada transio. Definio: Uma Mquina de Mealy M Autmato Finito Determinstico com sadas associadas s transies. representada por uma 6-upla:

M = (, Q, , q0, F, ) : alfabeto de smbolos de entradas; Q: conjunto de estados possveis do autmato o qual finito; : funo programa ou funo de transio; q0: estado inicial do autmato tal que q0 elemento de Q; F: conjunto de estados finais tal que F est contido em Q; : alfabeto de smbolos de sada;

Mquina de Moore A Mquina de Moore possui uma segunda funo, que gera uma palavra de sada (que pode ser vazia) para cada estada da mquina. Definio: Uma Mquina de Moore M um Autmato Finito Determinstico com sadas associados aos estados. representada por uma 7-upla:

M = (, Q, , q0, F, , S) : alfabeto de smbolos de entradas; Q: conjunto de estados possveis do autmato o qual finito; : funo programa ou funo de transio; q0: estado inicial do autmato tal que q0 elemento de Q; F: conjunto de estados finais tal que F est contido em Q; : alfabeto de smbolos de sada; S: funo de sada:

Mquina de Post A Mquina de Post que usa uma estrutura de dados do tipo fila para entrada, sada e memria de trabalho. Estruturalmente, a principal caracterstica de uma fila que o primeiro valor gravador tambm o primeiro valor a ser lido (uma leitura exclui o dado lido). Basicamente na Mquina de Post o primeiro dado armazenado o primeiro a ser recuperado. A Mquina de Post consiste, basicamente, de duas partes: 1 Varivel X: Trata-se de uma varivel do tipo fila que utilizado como entrada, sada e memria de trabalho. 2 Programa: uma seqncia finita de instrues, representada como um diagrama de fluxos (espcie de fluxograma), onde cada vrtice uma instruo. As instrues podem ser de quatro tipos: Definio: Uma Mquina de Post uma tripla:

M = (, D, #) : alfabeto de smbolos de entradas; D: programa ou diagrama de fluxos construdos a partir de componentes elementares denominados partida, parada, desvio e atribuio; #: smbolos auxiliar;

Mquina com Pilhas A Mquina com Pilhas baseada na estrutura de dados do tipo pilha (o ltimo dado armazenado o primeiro a ser recuperado), aonde so necessrias pelo menos duas pilhas para simular o mesmo poder computacional de uma fita ou fila. Uma Mquina com Pilhas consiste, basicamente, de trs partes:1 Varivel X: Trata-se de uma varivel de entrada, similar da Mquina de Post, mas usada somente para entrada. 2 Varivel Yi: Trata-se de variveis do tipo pilha, e so utilizadas como memria de trabalho. 3 Programa: uma seqncia finita de instrues e representado como um diagrama de fluxos (espcie de fluxograma), onde cada vrtice uma instruo. As instrues podem ser de cinco tipos. Definio: Uma Mquina com Pilhas uma Dupla. M = (, D)

: alfabeto de smbolos de entradas; D: programa ou diagrama de fluxos construdos a partir de componentes elementares denominados partida, parada, desvio, empilha e desempilha;

Mquina de Turing consiste em: Uma Fita (Dividida em clulas, uma adjacente a outra) Um Cabeote (Leitura e escrita de smbolos na fita) Um Registrador (Armazena o estado da mquinade Turing)

Uma Tabela de Ao (Diz a mquina que smboloescrever e como mover o cabeote)

DefinioMquina de Turing com uma fita. Mais formalmente, uma mquina de Turing (com uma fita) usualmente definida como uma Tupla M = (Q,,,s,b,F,), onde: Q um conjunto finito de estados um alfabeto finito de smbolos o alfabeto da fita (conjunto finito de smbolos) s Q o estado inicial b o smbolo branco (o nico smbolo que se permite ocorrer na fita infinitamente em qualquer passo durante a computao) F C Q o conjunto dos estados finais

DefinioMquina de Turing com k fitasUma mquina de Turing com k fitas tambm pode ser descrita como uma 7-upla M = (Q,,1,2,...,k,s,b,F,), onde Q um conjunto finito de estados i,i = 1,...,k o alfabeto da fita i (conj. finito de smbolos) k o nmero de fitas s Q o estado inicial b o smbolo branco F C Q o conjunto dos estados finais

Mquina de Turing Mquina de Turing com "k" fitas no mais poderosa que uma mquina de Turing tradicional. Em uma mquina de Turing pode-se modelar qualquer computador digital.

Diferenas Entre os Tipos de Mquinas Universais

Moore X Mealy

Mquina de Mealy Mquina de MooreSada Gera uma palavra de sada para cada transio entre estado Gera uma palavra para cada estado da maquina (pode ser vazia). gera a palavra correspondente ao estado inicial,

Entrada vazia

No gera qualquer sada, pois no executa transio alguma.

Diferenas entre os tiposPrograma F(estado corrente, smbolo lido) = novo estado, smbolo a ser gravado, sentido de movimento da cabea Seqncia finita de Seqncia finita de comandos: comandos: Partida Partida Parada Parada Teste Desvio Atribuio Empilha Desempilha Fila Post Pilha Pilha

Estrutura de Dados Mquinas

Fita Turing

UtilizaoDe uma maneira geral, Mquinas Universais so utilizadas para resolver problemas computacionais. As Mquinas Universais utilizam algoritmos, que por sua vez, buscam a melhor maneira de resolver um determinado problema. Dentre as prioridades dos algoritmos, destacam-se o fato que: Finito e no-ambguo; Restrio somente a algoritmos naturais, ou seja, definidos sobre o conjunto dos nmeros naturais. Qualquer conjunto contvel pode ser equivalente ao dos naturais, atravs de uma codificao.

Variaes: Mquina simples: utilizada para permitir estudos de propriedades, sem a necessidade de considerar caractersticas no-relevantes, bem como permitir estabelecer concluses gerais sobre a classe de funes computveis; Mquina poderosa: utilizada para simular qualquer caracterstica de mquinas reais ou tericas, de tal forma que os resultados provados sejam vlidos para modelos aparentemente com mais recursos.

Mquina Norma Possui um conjunto de registradores naturais e somente trs instrues sobre os registradores: adio e subtrao do valor 1 e teste se o valor armazenado zero. Mesmo sendo extremamente simples, a Mquina Norma tem no mnimo o mesmo poder computacional que qualquer computador moderno, o que ilustrado pelos seguintes exemplos, com programas monolticos:

Mquina Norma Atribuio de um Valor Natural a um Registrador (A:=n): A:=0; A:=A+1; (Por exemplo, para n=3) A:=A+1; A:=A+1. Adio de Dois Registradores preservando o Contedo (A:=A+B usando C}: C:=0; at B=0 faa (A:=A+1; C:=C+1; B:=B-1); at C=0 faa (B:=B+1; C:=C-1).

Mquina de TuringO processo de funcionamento dessa mquina se divide em:

Fita, usada simultaneamente como dispositiva de entrada, sada e de memria de trabalho. Unidade de Controle, que reflete o estado corrente da mquina. Possui um cabeote de leitura/gravao capaz de acessar uma clula da fita de cada vez, movimentando-se para a direita e para a esquerda. Programa ou Funo de Transio, que define o estado da mquina e comanda as leituras, as gravaes e o sentido de movimento do cabeote.

Mquina de Turingb b a a & & &

...

Cabeote de Leitura e GravaoControle

Mquina de TuringUnidade de Controle

A unidade de controle possui um nmero finito e prdefinido de estados. O cabeote de leitura l um smbolo de cada vez e grava um novo smbolo na mesma clula. Aps, move-se uma clula para a direita ou para a esquerda. O smbolo a ser gravado e o sentido do movimento so definidos pelo programa.

O programa uma funo que, dependendo do estado corrente da mquina e do smbolo lido determina o novo estado, o smbolo a ser gravado e o sentido do movimento.

Mquina de TuringUnidade de Controle

(a1,a2,m)

pEstado Anterior

qNovo Estado

Smbolo Lido

Smbolo Gravado

Sentido do Movimento

Isto : (p, a1) = (q, a2, m)