UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO
CURSO: CIÊNCIA DA COMPUTAÇÃO
Prof.ª Danielle Casillo
� Proposta por Alan Turing em 1936;� É universalmente conhecida e aceita comoformalização de algoritmo;
Teoria da Computação 2
� Trata-se de um mecanismo simples que formaliza aidéia de uma pessoa que realiza cálculos;
� Possui, no mínimo, o mesmo poder computacional dequalquer computador de propósito geral;qualquer computador de propósito geral;
� Não constitui uma máquina, como definidaanteriormente, mas sim um programa para umamáquina universal.
Teoria da Computação 3
� O ponto de partida de Turing foi analisar a situaçãona qual uma pessoa, equipada com um instrumentode escrita e um apagador, realiza cálculos em umafolha de papel organizada em quadrados.
� Inicialmente, a folha de papel contém somente osdados iniciais do problema.
Teoria da Computação 4
� O trabalho da pessoa pode ser resumido emsequências de operações simples como segue:
� Ler um símbolo de um quadrado;
� Alterar um símbolo em um quadrado;
� Mover os olhos para outro quadrado;
� Quando é encontrada alguma representação satisfatóriapara a resposta desejada, a pessoa termina seus cálculos.
Teoria da Computação 5
� Para viabilizar esse procedimento, as seguinteshipóteses são aceitáveis:� A natureza bidimensional do papel não é umrequerimento essencial para os cálculos.
� É assumido que o papel consiste de uma fita infinitaorganizada em quadrados (células);organizada em quadrados (células);
� Conjunto de símbolos pode ser finito;� Conjunto de estados da mente da pessoa durante oprocesso de cálculo é finito.
� Existem dois estados em particular: estado inicial eestado final, correspondendo ao início e ao fim doscálculos, respectivamente;
Teoria da Computação 6
� Comportamento da pessoa a cada momento édeterminado somente pelo seu estado presente e pelosímbolo para o qual sua atenção está voltada;
� A pessoa é capaz de observar e alterar o símbolo de� A pessoa é capaz de observar e alterar o símbolo deapenas um quadrado de cada vez, bem como detransferir sua atenção somente para um dosquadrados adjacentes.
Teoria da Computação 7
� Variações sobre a Definição de Máquina de Turing.
� Diversas variações sobre a definição de Máquina deTuring são adotadas.
� Note-se que estas variações não alteram o podercomputacional do formalismo.
� As variações mais significativas estão nas característicasda fita e no movimento da cabeça como:
Teoria da Computação 8
� Inexistência do Marcador de Início de Fita.
� É frequente não incluir um marcador de início de fita.Assim, a célula mais à esquerda da fita contém oprimeiro símbolo da entrada (ou branco, se a entradaprimeiro símbolo da entrada (ou branco, se a entradafor vazia). Neste caso, ao definir uma função programa,deve-se tomar cuidado especial para controlar quando acabeça da fita atinge o fim da mesma;
Teoria da Computação 9
� Cabeça de Fita não se Move em umaLeitura/Gravação.
� Na função programa, é possível especificar,adicionalmente ao movimento para esquerda ou direita,adicionalmente ao movimento para esquerda ou direita,que a cabeça permaneça parada (na célula deleitura/gravação). O principal objetivo dessa variação éfacilitar a especificação da função programa, bem comoreduzir o número de transições necessárias.
Teoria da Computação 10
� Estado Final de Rejeição
� Pode ser definido um estado final de rejeição, paraexplicitar a condição de parada com rejeição da entrada.
Teoria da Computação 11
❂ a b b c a ß ß ...
controle
fita
cabeçada fita unidade de
controle
marcador deinício de fita brancoentrada
¤
� Fita:
� Usada simultaneamente como dispositivo de entrada,de saída e de memória de trabalho;
� É finita à esquerda e infinita (tão grande quantonecessário) à direita, sendo dividida em células, cadauma das quais armazenando um símbolo.
Teoria da Computação 12
controle controle
� Os símbolos podem pertencer:� Ao alfabeto de entrada� Ao alfabeto auxiliar� β branco� ¤ marcador de início de fita� ¤ marcador de início de fita
� Inicialmente, a palavra a ser processada ocupa ascélulas mais à esquerda, após o marcador de início defita, ficando as demais com branco.
Teoria da Computação 13
� Unidade de Controle
� Reflete o estado corrente da máquina.
� Possui um número finito e predefinido de estados.
� Possui uma unidade de leitura e gravação (cabeça dafita), a qual acessa uma célula da fita de cada vez.
� A cabeça da fita lê o símbolo de uma célula de cada vez egrava um novo símbolo. Após a leitura/gravação (agravação é realizada na mesma célula de leitura), acabeça move-se uma célula para a direita ou esquerda.
Teoria da Computação 14
� Programa ou Função de Transição.
� O programa comanda as leituras e gravações, o sentidode movimento da cabeça e define o estado da máquina.
� Programa é uma função que, dependendo do estadocorrente da máquina e do símbolo lido, determina osímbolo a ser gravado, o sentido do movimento dacabeça e o novo estado.
Teoria da Computação 15
� Definição - Máquina de Turing
� UmaMáquina de Turing é uma 8-upla:M =(∑∑∑∑, Q, ΠΠΠΠ, q0, F, V, β, ¤)
� ∑∑∑∑ alfabeto de símbolos de entrada;� Q conjunto de estados possíveis da máquina, o qual é finito;� ΠΠΠΠ programa ou função de transição: (é uma função parcial)� q0 estado inicial da máquina, tal que q0 é elemento de Q;� F conjunto de estados finais, tal que F está contido em Q;� V alfabeto auxiliar;� β símbolo especial branco;� ¤ símbolo especial marcador de início da fita.
Teoria da Computação 16
� Símbolo de início de fita ¤, ocorre exatamente umavez e sempre na célula mais à esquerda da fita,auxiliando na identificação de que a cabeça da fita seencontra na célula mais à esquerda da fita.
� A função programa ΠΠΠΠ , considera:A função programa ΠΠΠΠ , considera:� estado corrente� símbolo lido da fita
� Para determinar:� novo estado� símbolo a ser gravado� sentido de movimento da cabeça esquerda (E) e direita(D)
Teoria da Computação 17
� O programa pode ser representado como um grafofinito
ΠΠΠΠ(p, au) = (q, av, m)
(au, av, m)qp
Teoria da Computação 18
novo estado
símbolo lido
estado corrente
símbolo gravado
sentido do movimento
� O programa pode ser representado por uma Tabelade Transições
ΠΠΠΠ(p, au) = (q, av, m)
q0 qf
ΠΠΠΠ(p, au) = (q, av, m)
Teoria da Computação 19
Π ¤ … au … av … ß
p (q, av, m)
q
…
� O processamento de uma Máquina de Turing M=(∑∑∑∑,Q, ΠΠΠΠ, q0, F, V, β, ¤) para uma palavra de entrada wconsiste na sucessiva aplicação da função programa,a partir do estado inicial q0 e da cabeça posicionadana célula mais à esquerda da fita até ocorrer umana célula mais à esquerda da fita até ocorrer umacondição de parada.
� Processamento de M para a entrada w pode parar ouficar em loop infinito.
Teoria da Computação 20
� A parada pode ser de duas maneiras: aceitando ourejeitando a entrada w.
� As condições de parada são as seguintes:� Estado Final: A máquina assume um estado final: amáquina para, e a palavra de entrada é aceita;
� Função Indefinida: A função programa é indefinidapara o argumento (símbolo lido e estado corrente): amáquina para, e a palavra de entrada é rejeitada;
� Movimento Inválido: O argumento corrente da funçãoprograma define um movimento à esquerda e a cabeçada fita já se encontra na célula mais à esquerda: amáquina para, e a palavra de entrada é rejeitada.
Teoria da Computação 21
� Uma das abordagens do estudo das Máquinas deTuring ou das Máquinas Universais em geral é comoreconhecedores de linguagens, ou seja, dispositivoscapazes de determinar se uma dada palavra sobre ocapazes de determinar se uma dada palavra sobre oalfabeto de entrada pertence ou não a uma certalinguagem.
Teoria da Computação 22
� Linguagem Aceita por uma Máquina de Turing.Seja M = (∑∑∑∑, Q, ΠΠΠΠ, q0, F, V, β, ¤) uma Máquina de
Turing. Então:Então:
a) A linguagem aceita por M, denotada por ACEITA(M), é oconjunto de todas as palavras pertencentes a ∑∑∑∑ aceitas porM, ou seja:
ACEITA(M) = {wM ao processar w ∈∈∈∈ ∑∑∑∑ , pára em umestado qf ∈∈∈∈ F}
Teoria da Computação 23
b) A linguagem rejeitada por M, denotada por REJEITA(M),é o conjunto de todas as palavras de ∑∑∑∑ rejeitadas por M,ou seja:
REJEITA(M) = {wM ao processar w ∈∈∈∈ ∑∑∑∑ , pára emREJEITA(M) = {wM ao processar w ∈∈∈∈ ∑∑∑∑ , pára emum estado q ∉∉∉∉ F}
c) A linguagem para a qual M fica em loop infinito,denotada por LOOP(M) é conjunto de todas as palavrasde ∑∑∑∑ para as quais M fica processando indefinidamente.
Teoria da Computação 24
� Considere a linguagem: Duplo_Bal = {anbn | n ≥ 0},construa uma Máquina de Turing para essalinguagem.
� Passo 1: Construir o Grafo da Máquina de Turing
� Passo 2: Construir sua Tabela de Transição
� Passo 3: Escrever os elementos da Máquina de Turing
Teoria da Computação 25
Computação
Teoria da Computação 26
Teoria da Computação 27
Teoria da Computação 28
Tabela de transições
� MT_Duplo_Bal = ({a, b}, {q0, q1, q2, q3, q4}, П, q0, {q4},{A, B}, ß, ¤)
� Esta linguagem é um exemplo clássico e defundamental importância no estudo das linguagens,pois permite estabelecer analogia com linguagens quepossuem duplo balanceamento em sua estruturapossuem duplo balanceamento em sua estruturacomo, por exemplo:� Linguagens bloco-estruturadas do tipo BEGINnENDn,
como a linguagem de programação Pascal;� Linguagens com parênteses balanceados na forma (n)n,
como as expressões aritméticas, presentes na maioriadas linguagens de programação.
Teoria da Computação 29
Top Related