Vous êtes sur la page 1sur 28

Olá!

Eu sou a
Máquina de Turing.
Seja Bem Vindo!

Máquina de Turing
Prof. Marcus Belfort
Brasília/DF
professorbelfort@gmail.com
1
A verdadeira Máquina de Touring

2
Funcionamento da máquina
q0
È

x x y x y Ísímbolo

1 Íestado

Estado (q)
Tabela de Estados
1 2
x 2, y, Î 1, y, Í
Símbolo (s)
y 2, x, Í H, x, Î

Função de transição (δ)


Entrada (q, s) Saída (q´, s´, D)
1, y 2, x, Í

3
A cabeça (quadrado azul) começa no estado “q=1”, lendo o símbolo “s=y” na fita.
Funcionamento da máquina
q1
È

x x y x x
2

Estado (q)
Tabela de Estados
1 2
x 2, y, Î 1, y, Í
Símbolo (s)
y 2, x, Í H, x, Î

Função de transição (δ)


Entrada (q, s) Saída (q´, s´, D)
2, x 1, y, Í

4
Funcionamento da máquina
q2
È

x x y y x
1

Estado (q)
Tabela de Estados
1 2
x 2, y, Î 1, y, Í
Símbolo (s)
y 2, x, Í H, x, Î

Função de transição (δ)


Entrada (q, s) Saída (q´, s´, D)
1, y 2, x, Í

5
Funcionamento da máquina
q3
È

x x x y x
2

Estado (q)
Tabela de Estados
1 2
x 2, y, Î 1, y, Í
Símbolo (s)
y 2, x, Í H, x, Î

Função de transição (δ)


Entrada (q, s) Saída (q´, s´, D)
2, x 1, y, Í

6
Funcionamento da máquina
q4
È

x y x y x
1

Estado (q)
Tabela de Estados
1 2
x 2, y, Î 1, y, Í
Símbolo (s)
y 2, x, Í H, x, Î

Função de transição (δ)


Entrada (q, s) Saída (q´, s´, D)
1, x 2, y, Î

7
Funcionamento da máquina
q5
È

y y x y x
2

Estado (q)
Tabela de Estados
1 2
x 2, y, Î 1, y, Í
Símbolo (s)
y 2, x, Í H, x, Î

Função de transição (δ)


Entrada (q, s) Saída (q´, s´, D)
2, y H, x, Î

8
Funcionamento da máquina
q6
È

y x x y x
H

Estado (q)
Tabela de Estados
1 2
x 2, y, Î 1, y, Í
Símbolo (s)
y 2, x, Í H, x, Î

Função de transição (δ)


Entrada (q, s) Saída (q´, s´, D)
H, x Halt (parada)

9
Formalização da máquina
Rep. Significado Escopo
∑ Alfabeto de símbolos de entrada (∑ ⊃ s) {x, y}
Q Estados possíveis da máquina (Q ⊃ q) {1, 2, H}
q0 Estado inicial da máquina (Q ⊃ q0) 1
qf Estado final da máquina (Q ⊃ qf) H
D Direção de movimento da máquina {<, >)
δ Função de Transição Qx∑ÎQx∑xD

δ = Função de Transição
Entrada Produto carteziano de Q x ∑ par ordenado {q, s} {1, y}
Saída Produto carteziano de Q x ∑ x D terno ordenado {q, s, D} {2, y, >}
É chamada de “função parcial” porque pode haver entre os pares (q,s), no domínio da FT:
a) Pares que não são utilizados (nunca serão entrada da FT);
b) Pares que são utilizados, mas, não têm imagem no contradomínio (saída não especificada na FT)
10
Máquina de Turing (MT)
MT é uma 8-upla: M = (∑, Q, δ, q0, qf, A, ß, ™)
∑ Alfabeto de símbolos de entrada (conjunto finito)

Q Estados possíveis da máquina (conjunto finito)

δ Função de transição (parcial) (programa da MT*)

q0 Estado inicial da máquina Q ⊃ q0

F Conjunto de estados finais da máquina Q⊃F

V Alfabeto auxiliar (por exemplo: marcar leitura) (pode ser vazio: V={})

ß Símbolo especial “branco” (célula vazia)

™ Símbolo (marcador) de início de fita (limitador)

* δ: Q x (∑∪ V ∪ {ß, ™}) → Q x (∑∪ V ∪ {ß, ™}) x {e, d)


M: pode ser 7-upla ou 6-upla ou 5-upla ou 4-upla (variações que não incluem: A, ß, ™, qcorrente)
(dá
(dá no mesmo)
11
Teoria da Computação
(conceitos básicos)

• Procedimento:
– Seqüência finita de instruções que podem ser
executadas por um agente computacional.
• Procedimento efetivo:
– Descrição não ambígua de um procedimento.
Um procedimento efetivo pode executar uma
tarefa, computar uma função ou fazer uma
sequência de operações relacionadas.
• Algoritmo:
– Procedimento efetivo que especifica uma se-
qüência finita de operações.
12
Características da MT
• Idealizada, em 1936, pelo matemático britânico Alan Turing (1912-1954)
• É uma máquina abstrata, de memória infinita (ainda impossível de construir)
• stica na FT, cada par do domínio Î imagem única no contra-domínio.
É determinística:
• Está no nível da porta lógica (inúmeros passos para fazer uma operação simples)
• Como modelo formal de procedimento efetivo, algoritmo ou função computável:
– A descrição do algoritmo deve ser finita
– Deve consistir de passos:
• discretos
• executáveis mecanicamente
• em um tempo finito.
• A entrada para uma máquina de Turing é sempre uma cadeia de símbolos:
– Para entrar com um objeto diferente: deve-se representá-lo como uma cadeia
– Cadeias (ou palavras) podem facilmente representar:
• polinômios
• grafos
• gramáticas (linguagens)
• autômatos e
• qualquer combinação desses objetos.
• Resultaram em conceitos equivalentes (reforçando o trabalho de Alan Turing):
– Máquina de Post (Post - 1936)
– Funções Recursivas (Kleene - 1936)
– Máquina Norma (Bird – 1976)
13
– Autômato com Pilhas
Usos da MT
Existem três maneiras de abordar o estudo das MT
a) Processar Funções
• Funções computáveis
• (e suas propriedades)
b) Reconhecer Linguagens
• Linguagens que podem ser reconhecidas
• (e suas propriedades)
c) Solucionar Problemas
• Solucionáveis
• Não-solucionáveis
• Parcialmente solucionáveis (computáveis)
• Completamente insolúveis (não-computáveis)

14
Hipótese de Church
(ou Hipótese de Turing-Church)

• Apresentada, em 1936, por Alonzo Church:


– “A capacidade de computação de uma MT é o limite máximo que
qualquer dispositivo de computação pode atingir.”
– Ou seja: Qualquer outra forma de expressar algoritmos terá, no
máximo, a mesma capacidade computacional da MT (desconsideran-
do aspectos relacionados à velocidade de execução).
• Como a noção de algoritmo ou função computável é intuitiva, a
Hipótese de Church não é demonstrável.
• Supondo verdadeira a Hipótese de Church, pode-se afirmar que
para uma:
– Função Computável:
• É possível construir uma Máquina de Turing (ou formalismo
equivalente) que compute a função.
– Função Não-Computável:
• Não existe Máquina de Turing (ou formalismo equivalente) que
compute a função.
15
Extensões da Máquina de Turing

NÃO AUMENTAM O SEU PODER COMPUTACIONAL

• Não-Determinismo: (q, s) Î (q’, s’, D)1 ... (q’, s’, D)n


(uma entrada na Função de Transição leva a várias imagens no contradomínio)

• Múltiplas fitas e múltiplas cabeças

• Fita infinita de ambos os lados

Até hoje, não foi ainda inventado um computador capaz de resolver um problema que
a MT não possa resolver. Este fato mantém ainda válida a tese de Turing-Church.

16
Composição da MT
• Fita infinita (à esquerda e à direita) dividida em células
– Usada simultaneamente como
• Dispositivo de entrada
• Dispositivo de Saída
• Memória de trabalho
– Pode ter um limitador à esquerda (marco de início: ™)
– Cada célula pode ter um símbolo (pertencente a um alfabeto finito)
• Unidade de Controle (com uma cabeça de leitura/escrita)
– Pode se movimentar
• Uma célula por vez
• À esquerda ou à direita
– Pode assumir um conjunto de estados (finitos) que dependem:
• Do estado atual (q)
• Do símbolo lido (s)
• Função de Transição: com base em q e s, comanda
– leituras e gravações
– sentido de movimento da cabeça e
– define o estado da máquina.
17
Funcionamento da MT

PREPARAÇÃO
Entrada inicial dos dados
1. Uma cadeia de símbolos é escrita na fita
– Pertencentes a um alfabeto finito (∑)
– Um símbolo (s) por célula (c)
2. As demais células estão em branco (ß)
Situação inicial da cabeça
1. Em um estado q (determinado)
2. Sobre uma célula c (determinada)
q0
È

x x y x y
1
18
Funcionamento da MT
PROCESSAMENTO: Executar até que ocorra uma CONDIÇÃO DE PARADA:
1. Cabeça: lê o símbolo da célula atual (s)
2. A Função de Transição (Programa de Transição) é chamada:
qAtual qNovo
sAtual FT sNovo
3. Cabeça: Direção
– Assume novo estado (pode ser igual ao anterior)
– Escreve novo símbolo na célula (pode ser igual ao anterior)
– Movimenta-se para a célula ao lado (Í ou Î)
4. Volta ao passo nº 1

A Função de Transição pode


ser representada como um grafo
(DIAGRAMA DE ESTADOS)

19
Funcionamento da MT

CONDIÇÃO DE PARADA
1. A máquina assume um estado final
– A cabeça pára
– A cadeia de símbolos de entrada é ACEITA!
2. A FT é indefinida para o argumento (q e s)
– A cabeça pára
– A cadeia de símbolos de entrada é REJEITADA!
3. A cabeça está no “início” da fita (™) e deve se mover à esquerda
– A cabeça pára
– A cadeia de símbolos de entrada é REJEITADA!
Atenção: o processamento pode nunca parar (loop infinito)

20
Representações da MT

∑ A,B, Æ
1 2
A B C ß
1 (2, B, D)
C,C, Å
Q 2 (3, ß, E) β,β,Å

3 (3, C, E) 3

Tabela de Transições Diagrama de Estados

Diagramas de Estados fornecem uma melhor visuali-


zação da máquina de Turing em relação às Tabelas
de Transições (ou de Estados ou de Ações).
21
Máquina de Turing Universal (MTU)
Cada Máquina de Turing (MT) resolve um problema!
Será que precisamos “criar” uma máquina para resolver cada problema?
Toda MT computa uma certa função computável parcial, a partir da cadeia dada formada
pelos símbolos do alfabeto. Neste sentido, ela comporta-se como um computador com um
programa fixo. No entanto, como Alan Turing descreveu, podemos codificar, em uma cadeia
de símbolos, a Tabela de Transição de qualquer outra MT. Para isto, essa máquina
(universal) deve conter na fita:
– o conjunto de instruções sobre o comportamento da MT a ser simulada (programa)
– o conteúdo da fita da MT a ser simulada (dados).
Como Turing mostrou, tal máquina de Turing é de fato possível e, como é capaz de
simular outras máquinas de Turing, ela é chamada de Máquina de Turing Universal (MTU).
Em outras palavras: a MTU contém não apenas dados, mas, também, programas
(instruções), tendo sido a base para o desenvolvimento da arquitetura de Von Neumann*.
Com essa codificação da Tabela de Transição como cadeias simbólicas (∑), torna-se
possível, a princípio, que Máquinas de Turing respondam questões sobre o
comportamento de outras Máquinas de Turing. Muitas dessas questões, no entanto, são
indecidíveis, o que significa que a função em questão não pode ser calculada por nenhuma
MT.
Por exemplo, Turing mostrou em seu artigo original que o problema de determinar se uma
MT, em particular, vai parar, em função de uma determinada entrada (ou para qualquer
entrada), conhecido como Problema da Parada, é indecidível. O Teorema de Rice mostra
que qualquer questão não-trivial sobre o comportamento ou saída de uma MT é
indecidível. (from Wikipedia, com adaptações)

22 (*o nome é de origem alemã e a pronú


pronúncia correta é: nóiman)
iman)
Teste de Turing
“O Teste de Turing é um teste proposto por Alan Turing, em uma
publicação de 1950, chamada "Computing Machinery and Intelligence"
cujo objetivo era determinar se um programa de computador é ou não
inteligente. O programa é inteligente se a pessoa que participa no teste
não for capaz de dizer se foi o programa ou um ser humano que
respondeu às suas perguntas.
O teste consiste em uma conversa entre dois humanos e um
computador, todos os três tentando parecer humanos. Os participantes
são colocados em ambientes isolados. Se um árbitro não puder
identificar, de maneira definitiva, qual dos participantes é o computador,
então, se diz que o computador passou no teste com sucesso. A fim de
testar a inteligência do programa de computador, e não simplesmente a
sua habilidade em transformar palavras em sons, a conversa é limitada a
um canal de texto, como um teclado e tela de computador.
Existem alguns programas inteligentes que "conversam em
Português", criados com o objetivo de passar no Teste de Turing,
conversando com os usuários como se fossem pessoas de verdade, tais
como o Sete Zoom e o Ed Outromundo.” (from Wikipedia)

23
Questão de prova

24
A Máquina de Turing (Tm) é um modelo matemático que tem sido estudado
para a descrição de procedimentos computacionais. Acerca desse
modelo e dos conceitos a ele relacionados, julgue os itens que se
seguem.
a) Um procedimento é uma seqüência possivelmente infinita de instruções
que podem ser executadas por um agente computacional, seja ele
humano ou não.
b) Todo problema que pode ser computado por uma máquina de Turing
tem uma solução computacional descrita por um algoritmo.
c) Um algoritmo é um procedimento efetivo que pára, após um número
finito de passos, produzindo resultados finais, para todos os valores
possíveis de seus argumentos.
d) Se L representa a linguagem aceita por uma Tm, então Tm pára em
todas as sentenças de L.
e) Os programas escritos em linguagem de Turing podem ser traduzidos
para equivalentes em outra linguagem, tendo somente as operações
primitivas de soma, subtração, teste de zero e um comando de
repetição.

Polícia Federal - Perito Criminal (Área 3) - Informática (CESPE)/1997


25
Linguagem Universal
Durante o design de uma linguagem de programação é importante
saber se ela pode representar todos os procedimentos efetivos, isto é,
se a linguagem é universal. Está fora do escopo deste texto fazer uma
discussão pormenorizada desta questão, mas devemos considerar os
seguintes fatos:
– Em primeiro lugar, é aceita universalmente a chamada Tese de Church[12],
segundo a qual qualquer procedimento pode ser representado em
linguagem de Turing; apesar de a literatura informar que esta tese não
pode ser demonstrada, pois não há uma definição formal de procedimento,
o volume de evidências empíricas, que abrangem todos os procedimentos
já formulados, faz com que se aceite esta tese.
– Em segundo lugar, pode-se provar com rigor formal que os programas
escritos em linguagem de Turing podem ser "traduzidos" em programas
equivalentes em outras linguagens de programação, contanto que estas
contenham certos conjuntos mínimos de operações primitivas como, por
exemplo, soma, subtração, teste de zero, e um mecanismo para indicar
cálculos repetitivos (comando de repetição). Em geral, as linguagens de
programação incluem um número de operações maior do que o citado
acima, tornando o trabalho de programação mais conveniente, e resultando
numa execução mais rápida de certas operações que poderiam ser
programadas através das operações básicas.
http://www.hottopos.com/videtur28/elie.htm

26
Links relacionados
Universidade Federal do Rio Grande do Sul - Departamento de Informática

Universidade de Coimbra - Departamento de Engenharia Informática

Wikipedia - Turing Machine

Wikipedia - Máquina de Turing Universal

Wikipedia - Teste de Turing

27
Fim

28

Vous aimerez peut-être aussi