Você está na página 1de 23

Teoria da Computação

Aula 11 – Máquinas de Turing – Definições

Universidade Federal de Pelotas


Centro de Desenvolvimento Tecnológico
Curso de Ciência da Computação
Curso de Engenharia da Computação
Objetivos

 Apresentar as definições formais de máquinas de Turing.


 Revisar a construção de MTs como reconhecedoras de
linguagens.
 Definir linguagens recursivas (decidíveis) e recursivamente
enumeráveis (reconhecíveis).
Definição de Máquina de Turing

Uma Máquina de Turing (determinística) é uma 8-upla: 𝑀 = (𝑄, Σ, Γ, 𝛿, 𝑞0, 𝛽, 𝐹, 𝜙)

𝑄 conjunto finito de estados possíveis da máquina;


Σ alfabeto de símbolos de entrada;
Γ alfabeto auxiliar;
𝛿 programa ou função de transição é uma função parcial
𝛿: 𝑄  𝑉 → 𝑄  𝑉  {𝐸, 𝐷}, onde 𝑉 = Σ ∪ Γ ∪ {𝛽, 𝜙}
𝑞0 estado inicial da máquina, tal que 𝑞0  𝑄;
𝛽 símbolo especial branco;
𝐹 conjunto de estados finais, tal que 𝐹 𝑄;
𝜙 símbolo especial marcador de início da fita.
Exemplo

 Defina uma máquina que aceite a linguagem L a seguir:


2𝑛
𝐿= 0 𝑛 ∈ℕ
Exemplo

 Defina uma máquina que aceite a linguagem L a seguir:


2𝑛
𝐿= 0 𝑛 ∈ℕ
 Estratégia
1. A fita deve ser varrida da esquerda para a direita marcando um
número par de 0’s;
2. Caso a fita contenha apenas um 0, a palavra deve ser aceita;
3. Caso a fita contenha uma quantidade ímpar de 0’s, maior que um,
a palavra deve ser rejeitada;
4. Retorne para a etapa 1.
Exemplo – Estratégia

2𝑛
𝐿= 0 𝑛 ∈ℕ

 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   ...
Exemplo – Estratégia

2𝑛
𝐿= 0 𝑛 ∈ℕ

 0 X 0 X 0 X 0 X 0 X 0 X 0 X 0 X   ...
Exemplo – Estratégia

2𝑛
𝐿= 0 𝑛 ∈ℕ

 0 X X X 0 X X X 0 X X X 0 X X X   ...
Exemplo – Estratégia

2𝑛
𝐿= 0 𝑛 ∈ℕ

 0 X X X X X X X 0 X X X X X X X   ...
Exemplo – Estratégia

2𝑛
𝐿= 0 𝑛 ∈ℕ

 0 X X X X X X X X X X X X X X X   ...
Exemplo – Diagrama de Estados
Exemplo – Definição Formal

𝑀= 𝑞0, 𝑞1, 𝑞2, 𝑞3, 𝑞4, 𝑞5 , 0 , 𝑋 , 𝛿, 𝑞0, 𝛽, {𝑞3}, 𝜙


Exemplo – Definição Formal

𝑀= 𝑞0, 𝑞1, 𝑞2, 𝑞3, 𝑞4, 𝑞5 , 0 , 𝑋 , 𝛿, 𝑞0, 𝛽, {𝑞3}, 𝜙

 𝛿(𝑞0, 𝜙) = (𝑞0, 𝜙, 𝐷)
Exemplo – Definição Formal

𝑀= 𝑞0, 𝑞1, 𝑞2, 𝑞3, 𝑞4, 𝑞5 , 0 , 𝑋 , 𝛿, 𝑞0, 𝛽, {𝑞3}, 𝜙

 𝛿(𝑞0, 𝜙) = (𝑞0, 𝜙, 𝐷)
 𝛿(𝑞0, 0) = (𝑞1, 0, 𝐷)
Exemplo – Definição Formal

𝑀= 𝑞0, 𝑞1, 𝑞2, 𝑞3, 𝑞4, 𝑞5 , 0 , 𝑋 , 𝛿, 𝑞0, 𝛽, {𝑞3}, 𝜙

 𝛿(𝑞0, 𝜙) = (𝑞0, 𝜙, 𝐷)  𝛿(𝑞2, 𝛽) = (𝑞5, 𝛽, 𝐸)


 𝛿(𝑞0, 0) = (𝑞1, 0, 𝐷)  𝛿(𝑞4, 0) = (𝑞2, 𝑋, 𝐷)
 𝛿(𝑞1, 0) = (𝑞2, 𝑋, 𝐷)  𝛿(𝑞4, 𝑋) = (𝑞4, 𝑋, 𝐷)
 𝛿(𝑞1, 𝑋) = (𝑞1, 𝑋, 𝐷)  𝛿(𝑞5, 0) = (𝑞5, 0, 𝐸)
 𝛿(𝑞1, 𝛽) = (𝑞3, 𝛽, 𝐸)  𝛿(𝑞5, 𝑋) = (𝑞5, 𝑋, 𝐸)
 𝛿(𝑞2, 0) = (𝑞4, 0, 𝐷)  𝛿(𝑞5, 𝛽) = (𝑞0, 𝛽, 𝐷)
 𝛿(𝑞2, 𝑋) = (𝑞2, 𝑋, 𝐷)
Configurações e Mudanças de Configurações

 A realização de uma transição em uma MT altera o estado


corrente, o conteúdo da fita e a posição do cabeçote da
fita.
 Uma configuração fornece uma descrição desses três
elementos em um determinado instante.
 Uma mudança de configuração mostra a relação (antes e
depois) entre duas configurações definida pela realização de
uma transição em uma MT.
Configurações e Mudanças de Configurações

 Dada uma MT 𝑀 = (𝑄, Σ, Γ, 𝛿, 𝑞0, 𝛽, 𝐹, 𝜙), com 𝑉 = Σ ∪  ∪


𝛽, 𝜙 .
– Uma configuração de 𝑀 é definida por:
𝑤 𝑞𝑖 𝑢 onde 𝑤, 𝑢 ∈ 𝑉 ∗ e 𝑞𝑖 ∈ 𝑄

– Uma mudança de configuração é definida por:


 Se 𝛿 𝑞𝑖 , 𝑏 = (𝑞𝑗 , 𝑐, 𝐸) então 𝑤𝑎 𝑞𝑖 𝑏𝑢 ⊢ 𝑤 𝑞𝑗 𝑎𝑐𝑢

 Se 𝛿 𝑞𝑖 , 𝑏 = (𝑞𝑗 , 𝑐, 𝐷) então 𝑤𝑎 𝑞𝑖 𝑏𝑢 ⊢ 𝑤𝑎𝑐 𝑞𝑗 𝑢

onde 𝑎, 𝑏, 𝑐 ∈ 𝑉, 𝑤, 𝑢 ∈ 𝑉 ∗ e 𝑞𝑖 , 𝑞𝑗 ∈ 𝑉
Configurações e Mudanças de Configurações

 Dada uma MT 𝑀 = (𝑄, Σ, Γ, 𝛿, 𝑞0, 𝛽, 𝐹, 𝜙), com 𝑉 = Σ ∪  ∪


𝛽, 𝜙 .
– Configuração inicial para w (Cw): 𝑞0 𝜙𝑤𝛽, onde 𝑤 ∈ Σ ∗
– Configuração de aceitação (Ca): 𝑤 𝑞𝑓 𝑢 , onde 𝑤, 𝑢 ∈ 𝑉 ∗ e 𝑞𝑓 ∈ 𝐹
– Configuração de rejeição (Cr):
 𝑤 𝑞𝑖 𝑎𝑢 , onde 𝑤, 𝑢 ∈ 𝑉 ∗ , 𝑎 ∈ 𝑉, 𝑞𝑖 ∉ 𝐹 e 𝛿 𝑞𝑖 , 𝑎 = 𝑖𝑛𝑑𝑒𝑓𝑖𝑛𝑖𝑑𝑜 ou
 𝑞𝑖 𝜙𝑢 , onde 𝑢 ∈ 𝑉 ∗ , 𝛿 𝑞𝑖 , 𝜙 = (𝑞𝑗 , 𝑎, E) e 𝑎 ∈ 𝑉
Linguagem aceita por uma Máquina de Turing

 Dada uma MT 𝑀 = (𝑄, Σ, Γ, 𝛿, 𝑞0, 𝛽, 𝐹, 𝜙), a linguagem aceita


por 𝑀 é definida por:

ACEITA 𝑀 = 𝑤 𝑤 ∈ Σ ∗ ∧ Cw ⊢ ⋯ ⊢ Ca

 Outras linguagens para M:


– REJEITA 𝑀 = 𝑤 𝑤 ∈ Σ ∗ ∧ Cw ⊢ ⋯ ⊢ Cr
– LOOP 𝑀 = 𝑤 𝑤 ∈ Σ ∗ ∧ Cw ⊢ ⋯
Linguagem
Recursiva x Recursivamente Enumerável

 Uma linguagem L é dita Recursivamente Enumerável (ou


Turing-Reconhecível) se existe uma Máquina de Turing M tal
que L = ACEITA(M).
 Uma linguagem L é dita Recursiva (ou Turing-Decidível) se
existe uma Máquina de Turing M tal que:
– L = ACEITA(M)
– Σ* – L = REJEITA(M)
– LOOP(M) = ∅
Hierarquia de Chomsky

Recursivamente
Enumeráveis

Recursivas

Sensíveis ao
Contexto

Livres de
Contexto

Regulares
Indicadores

 Você é capaz de:


– definir formalmente uma MT?
– descrever as mudanças de configuração de uma MT para uma
determinada entrada?
– identificar a linguagem aceita por uma MT?
– diferenciar linguagens recursivas e recursivamente enumeráveis?
Tarefa

 Fazer os exercícios 3 e 4 da Lista de Exercícios 5.

Você também pode gostar