Computabilidade e Complexidade (ENG10014)

Tamanho: px
Começar a partir da página:

Download "Computabilidade e Complexidade (ENG10014)"

Transcrição

1 Sistemas de Informação Computabilidade e Complexidade (ENG10014) Profa. Juliana Pinheiro Campos [email protected]

2 Modelo de computação poderoso concebido pelo matemático britânico Alan Turing em Usa uma fita infinita como sua memória ilimitada. Essa fita é dividida em células. Tem um cabeçote que pode ler/ escrever símbolos e mover-se sobre a fita. Inicialmente a fita contém apenas a cadeia de entrada e está em branco em todo o restante.

3

4 As MT podem tanto ler quanto escrever sobre a fita. O cabeçote pode se movimentar tanto para a esquerda quanto para a direita. Os estados de aceitação e rejeição fazem efeito imediatamente (entrou em um estado de aceitação ou rejeição, a entrada nem continua a ser lida, a computação termina)

5 Ex: MT M para reconhecer a linguagem L = {a n b n n >= 1} Indica que se o cabeçote está posicionado sobre um b na fita, esse b deve ser substituído por B e o cabeçote deve se mover para a esquerda (L).

6 Definição formal: Uma MT é uma 7-upla, (Q,, Γ, δ, q 0, q aceita, q rejeita ) onde: Q é um conjunto finito de estados é o alfabeto de entrada sem o símbolo branco Γ é o alfabeto de fita, onde Є Γ e Ϲ Γ δ: Q x Γ -> Q x Γ x {E, D} é a função de transição. Se a máquina está num estado q e o cabeçote está sobre uma célula da fita com símbolo a e se δ(q,a) = (r, b, E), a máquina escreve o símbolo b substituindo o a e vai para o estado r. E indica que o cabeçote se move para a esquerda. q 0 Є Q é o estado inicial. q aceita Є Q é o estado de aceitação e q rejeita Є Q é o estado de rejeição, onde q rejeita q aceita

7 Vamos usar nessa disciplina a definição: Uma MT é uma 6-upla, (Q,, Γ, δ, q 0, F) onde F é o conjunto de estados finais (F C Q). Computação em uma MT: É importante observar que a definição de MT não distingue os conceitos de programa e máquina. É como se a δ fosse o programa da MT que determina o símbolo a ser gravado, o sentido do movimento da cabeça e o novo estado.

8 Computação em uma MT: Uma MT recebe sua entrada sobre as n células mais à esquerda da fita e o restante da fita está em branco. A cabeça começa sobre a célula mais a esquerda da fita e a computação procede conforme as regras descritas pela função de transição. Se M em algum momento tenta mover seu cabeçote para a esquerda além da extremidade esquerda da fita, ela permanece no mesmo lugar. A computação continua até que ela entre em um estado de aceitação ou rejeição em cujo ponto ela para. Se nenhum desses ocorre, M continua para sempre.

9 Computação em uma MT: A medida que a MT computa, mudanças ocorrem no estado atual, no conteúdo atual da fita e na posição atual do cabeçote. A computação de uma máquina de Turing é dada por uma seqüência de descrições instantâneas (configurações) C1, C2,..., C k contendo cada uma um possível valor desses 3 itens.

10 Uma configuração é representada da seguinte forma: dado um estado q e duas cadeias u e v Γ*. uqv representa a configuração em que o estado atual é q, o conteúdo da fita é uv e a posição atual do cabeçote é o primeiro símbolo de v.

11 Exemplo: A figura abaixo representa MT com a configuração abcq 3 ac

12 Suponha que tenhamos a, b e c em Γ, assim como u e v em Γ* e os estados q i e q j. Digamos que a configuração: uaq i bv origina uq j acv se na função de transição δ(q i, b) = (q j, c, E); e uaq i bv origina uacq j v se na função de transição δ(q i, b) = (q j, c, D); q i bv origina q j cv se δ(q i, b) = (q j, c, E); uaq i é equivalente a uaq i

13 A configuração inicial da computação de uma MT sobre a entrada w é q0w. Uma MT M aceita a entrada w se uma sequencia de configurações C1, C2,..., Ck existe, onde: C1 é a configuração inicial de M sobre a entrada w Cada Ci origina Ci+1 Ck é uma configuração de aceitação (o estado da configuração é um estado final)

14 Uma linguagem aceita por uma MT é dita Turingreconhecível ou Linguagem recursivamente enumerável LRE (aceita alcançando estado final ou rejeita alcançando estado não final ou entrando em loop). Uma linguagem é Turing-decidível ou linguagem recursiva - LRec, se alguma máquina de Turing M a decide (pára para qualquer entrada, nunca entra em loop):

15 Definições alternativas (variantes) de MT: MT com marcador de início de fita; MT com fita infinita nas 2 direções; MT em que o cabeçote não se move em uma leitura/gravação; MT multifita; MT não determinísticas. O modelo original e suas variantes tem todos o mesmo poder computacional.

16 MT multifita: possui várias fitas, cada uma tem sua própria cabeça. inicialmente a entrada aparece sobre a fita 1, e as outras iniciam em branco. A δ permite ler, escrever e mover as cabeças em algumas ou todas as fitas simultaneamente. δ: Q x Γ k Q x Γ k x {E, D} k, sendo k o nº de fitas. δ(q i, a 1,..., a k ) = (q j, b 1,..., b k, E, D,..., E) significa que, se a máquina está no estado q i e as cabeças 1 a k estão lendo símbolos a 1 a a k, a máquina vai para o estado q j, escreve os símbolos b 1 a b k e direciona cada cabeça para mover para a esquerda ou direita, ou permanecer parada.

17 Toda MT multifita tem uma MT de 1 única fita equivalente.

18 MT não determinística: Em qualquer ponto em uma computação, a máquina pode proceder de acordo com várias possibilidades. A função de transição tem a forma: Q x Γ -> P(Q x Γ x {E, D}) A computação é uma árvore cujos ramos correspondem a diferentes possibilidades para a máquina. Se algum ramo leva ao estado de aceitação, a máquina aceita sua entrada.

19 Toda MT não determinística tem uma MT determinística equivalente (tenta todos os ramos da computação não determinística) Fita de entrada D x x # 0 1 x... Fita de simulação Fita de endereço

20 Terminologias para descrever MT: Descrição formal: especificação das 7 partes da MT Descrição de implementação: usa a língua natural escrita para descrever a maneira pela qual a MT move sua cabeça e a forma como ela armazena os dados sobre a fita. Descrição de alto nível: usa a língua natural para descrever um algoritmo, ignorando os detalhes de implementação.

21 Ex: Para L = {a n b n n >= 1} Descrição formal:

22 Descrição no nível de implementação: 1. Se w for cadeia vazia, rejeite. 2. Faça um zigue-zague ao longo da fita indo e voltando entre os a's e b's, marcando um de cada até que todos os a's tenham terminado. Se todos os b's tiverem sido marcados e alguns a's permanecem, rejeite. Se aparecer algum a após algum b, rejeite. 3. Quando todos os a's tiverem sido marcados, verifique a existência de algum simbolo remanescente. Se resta algum símbolo, rejeite; caso contrário, aceite.

23 Descrição de alto nível: 1. Se w for cadeia vazia, rejeite. 2. Verifique se existe um b para cada a em w. Se não existir, rejeite. Se existir algum a após algum b, rejeite. 3. Verifique se existe um a para cada b. Se não existir, rejeite. Caso contrário, aceite.

24 Vamos fixar um formato e uma notação para descrever MT (descrição de alto nível): A entrada para a MT é sempre uma cadeia. Se desejamos fornecer como entrada um objeto que não uma cadeia, primeiro temos que representar esse objeto como uma cadeia. A notação para a codificação de um objeto O na sua representação como cadeia é <O> e para vários objetos O1, O2,, On é <O1, O2,, On>. Descrevemos algoritmos de MT com um segmento indentado de texto dentro de aspas. A 1ª linha do algoritmo descreve a entrada para a máquina.

25 Ex: Considere a linguagem A: A = {<G> G é um grafo não-direcionado conexo}. Como <G> codifica o grafo G como uma cadeia? Considere uma codificação que é uma lista dos nós de G seguida de uma lista das arestas de G. <G> = (1,2,3,4) ((1,2), (2,3) (3,1), (1,4))

26 Descrição de alto nível de uma MT que decide A. M = Sobre a entrada <G>, a codificação de um grafo: 1. Selecione o primeiro nó de G e marque-o. 2. Repita o seguinte até que nenhum novo nó seja marcado 3. Para cada nó em G, marque-o, se ele estiver ligado por uma aresta a um nó que já esteja marcado. 4. Faça uma varredura em todos os nós de G para determinar se eles estão todos marcados. Se estiverem, aceite; caso contrário, rejeite.

27 Quando M recebe a entrada <G>, ela primeiro faz um teste para determinar se a entrada é uma codificação apropriada de algum grafo: M faz uma varredura na fita para ter certeza de que existem 2 listas e que elas estão na forma apropriada (a 1ª deve ser uma lista de nºs decimais e a 2ª, uma lista de pares de nºs decimais); a lista de nós não deve conter repetições; todo nó da lista de arestas deve também aparecer na lista de nós. Esse nível de detalhes não será necessário sempre, apenas se for solicitado.

28 Chegamos em um momento decisivo no estudo da teoria da computação. Continuamos a falar de MT, mas nosso verdadeiro foco a partir de agora é em algoritmos. A MT simplesmente serve como um modelo preciso para definição de algoritmo.

29 A definição de algoritmo Informalmente, um algoritmo é um conjunto finito de instruções bem definidas e não ambíguas para realização de uma tarefa. Aprendemos algoritmos para somar, subtrair, encontrar MDC, resolver equações de 2 grau, etc. A história a seguir relata como a definição precisa de algoritmo foi crucial para um importante problema matemático.

30 A definição de algoritmo Em 1900, o matemático David Hilbert proferiu uma agora-famosa palestra no Congresso internacional de matemáticos em Paris. Na sua apresentação, ele identificou 23 problemas matemáticos e colocou-os como um desafio para o século vindouro. O 10º problema de sua lista dizia respeito a algoritmo: conceber um algoritmo que verificasse se um polinômio tinha uma raiz inteira. Hoje sabemos que não existe nenhum algoritmo para essa tarefa, ela é algoritmicamente insolúvel.

31 A definição de algoritmo Provar que um algoritmo não existe requer a posse de uma definição clara de algoritmo e isso veio nos artigos de 1936 de Alonzo Church e Alan Turing. Para definir algoritmos eles apresentaram o lambda-calculo e as MT respectivamente. Essa conexão entre a noção informal e a precisa de algoritmo veio a ser chamada de tese de Church Turing.

32 Tese de Church (Church-Turing) A tese de Church afirma que qualquer função computável (algoritmo) pode ser processada por uma MT. Turing criou a MT como uma proposta de definição formal de algoritmo. Vários outros trabalhos (Máquina de Post e funções recursivas e outros mais recentes como máquina Norma e autômato com pilhas) resultaram em conceitos semelhantes ao de Turing.

33 Tese de Church (Church-Turing) O fato de todos esses trabalhos independentes gerarem o mesmo resultado em termos de capacidade de expressar computabilidade é um forte reforço na tese de Church, enunciada como: A capacidade de computação representada pela máquina de Turing é o limite máximo que pode ser atingido por qualquer dispositivo de computação

34 Tese de Church (Church-Turing) A tese de Church não é demonstrável, pois é fundamentada em uma noção intuitiva (não formal) de algoritmo. Ela é aceita como verdadeira, ou seja, é assumida como hipótese. Por isso é conhecida também como Hipótese de Church (ou Church- Turing).

35 A definição de algoritmo A tese de Church provê a definição de algoritmo necessária para resolver o 10º problema de Hilbert. Em 1970, Yuri Matijasevic mostrou que não existe um algoritmo para o problema. O problema de Hilbert é um problema de decisão. Um problema de decisão (PD) é uma questão que faz referencia a um conjunto finito de parâmetros e que, para valores específicos dos parâmetros, tem como resposta sim ou não. Ex: determinar se uma palavra w é gerada por uma gramática G.

36 A definição de algoritmo Instância para PD: questão obtida dando valores para os parâmetros.. Solução para PD: algoritmo que, para qualquer instancia do PD, determina SIM ou NÃO corretamente. Se um PD tem solução é dito ser decidível e um PD que não tem solução é indecidível.

37 A definição de algoritmo Uma linguagem é uma forma precisa de expressar problemas de decisão, permitindo um desenvolvimento formal adequado ao estudo da computabilidade. A solucionabilidade de um problema será estudada analisando-a como a investigação da existência de um algoritmo que determine se uma palavra pertence ou não à linguagem que traduz esse problema.

38 A definição de algoritmo Poderíamos representar o PD determinar se uma palavra w é gerada por uma gramática G com a seguinte linguagem que traduz esse problema: L = {<w, G> A palavra w é gerada pela gramática G} Essa linguagem contém as codificações de todas as gramáticas juntamente com todas as palavras que elas geram. O problema de testar se uma palavra w é gerada por uma gramática G é o mesmo que o problema de testar se <w, G> pertence à linguagem L.

39 A definição de algoritmo Podemos representar o problema de Hilbert como uma linguagem: D = {p p é um polinômio com uma raiz inteira} O 10º problema de Hilbert pergunta se a linguagem D é Turing-decidível. Podemos mostrar que D é Turingreconhecível (pára se p D, mas não para se p D ), mas não decidível. Vamos apresentar um problema D 1 análogo ao problema de Hilbert para polinômios que tem uma única variável.

40 A definição de algoritmo D 1 = {p p é um polinômio sobre x com uma raiz inteira} Aqui está a MT M 1 que reconhece D 1 : M 1 = sobre a entrada <p> que é a codificação de um polinômio sobre a variável x: 1. calcule o valor de p substituindo x sucessivamente pelos valores 0, 1, -1, 2, -2, 3, -3, Se em algum ponto o valor do polinômio resulta em 0, aceite.

41 A definição de algoritmo Se p tem uma raiz inteira, M 1 vai encontrá-la e aceitar. Se p não tem uma raiz inteira, M 1 vai rodar para sempre. Para o caso multivariável, podemos apresentar uma MT similar, M, que reconhece D. Nesse caso, M testa todas as possíveis valorações inteiras para suas variáveis. Tanto M 1 quanto M são reconhecedores, mas não decisores. É possível converter M 1 para ser um decisor, porque podemos calcular limitantes dentro dos quais as raízes de um polinômio de uma única variável têm que residir, e restringir a busca a esses limitantes. Para provar que D não é decidível, Yuri Matijasevic mostrou que é impossível calcular esses limitantes para polinômios multivariáveis.

42 Referências Sipser, M.; Introdução à Teoria da Computação. Ed. Thomson, ISBN: Diverio, T. A.; Menezes, P. B.. Teoria da Computação: Máquinas Universais e Computabilidade. Porto Alegre: Sagra Luzzato, Carnielli, W. A.; Epstein, R. L.; Computabilidade, funções computáveis, lógica e os fundamentos da matemática. 2.ed. São Paulo: Editora UNESP, Vieira, N. J.; Introdução aos Fundamentos da Computação: Linguagens e Máquinas. Ed. Thomson, ISBN:

Teoria da Computação

Teoria da Computação Ciência da Computação Teoria da Computação (ENG10395) Profa. Juliana Pinheiro Campos E-mail: [email protected] Máquinas Universais Máquinas Universais podem ser entendidas de duas formas: Se é capaz

Leia mais

Teoria da Computação. Capítulo 1. Máquina de Turing. Prof. Wanderley de Souza Alencar, MSc.

Teoria da Computação. Capítulo 1. Máquina de Turing. Prof. Wanderley de Souza Alencar, MSc. Teoria da Computação Capítulo 1 Máquina de Turing Prof. Wanderley de Souza Alencar, MSc. Pauta 1. Introdução 2. Definição de Máquina de Turing 3. Variações de Máquina de Turing 4. A Tese de Church-Turing

Leia mais

Computabilidade e Complexidade (ENG10014)

Computabilidade e Complexidade (ENG10014) Sistemas de Informação Computabilidade e Complexidade (ENG10014) Profa. Juliana Pinheiro Campos E-mail: [email protected] Decidibilidade O estudo da decidibilidade objetiva determinar a solucionabilidade

Leia mais

Apostila 06. Objetivos: Estudar a Computabilidade Estudar a Decidibilidade Estudar a Redutibilidade

Apostila 06. Objetivos: Estudar a Computabilidade Estudar a Decidibilidade Estudar a Redutibilidade Cursos: Bacharelado em Ciência da Computação e Bacharelado em Sistemas de Informação Disciplinas: (1493A) Teoria da Computação e Linguagens Formais, (4623A) Teoria da Computação e Linguagens Formais e

Leia mais

ECO026 TEORIA DA COMPUTAÇÃO. Prof: Rafael Santos Site:

ECO026 TEORIA DA COMPUTAÇÃO. Prof: Rafael Santos   Site: ECO026 TEORIA DA COMPUTAÇÃO Prof: Rafael Santos Email: [email protected] Site: http://sites.google.com/site/rafafic Máquinas de Turing Uma linguagem Turing-reconhecível (Linguagem recursivamente enumeravel),

Leia mais

Máquina de Turing Linguagens Sensíveis ao Contexto e Enumeráveis Recursivamente

Máquina de Turing Linguagens Sensíveis ao Contexto e Enumeráveis Recursivamente ESIN/UCPel 058814 Linguagens Formais e Autômatos TEXTO 5 Máquina de Turing Linguagens Sensíveis ao Contexto e Enumeráveis Recursivamente Prof. Luiz A M Palazzo Maio de 2007 0. Introdução A Ciência da Computação

Leia mais

Máquinas Universais. Máquina de Turing. Celso Olivete Júnior.

Máquinas Universais. Máquina de Turing. Celso Olivete Júnior. Máquinas Universais Máquina de Celso Olivete Júnior [email protected] http://www2.fct.unesp.br/docentes/dmec/olivete/ Roteiro Hipótese de Church - Máquinas Universais: Máquina de Máquina de : Noção

Leia mais

Marcos Castilho. DInf/UFPR. 16 de maio de 2019

Marcos Castilho. DInf/UFPR. 16 de maio de 2019 16 de maio de 2019 Motivação Quais são os limites da computação? O que é um Problema de decisão? Um problema de decisão é um conjunto de perguntas, cada uma das quais tem um SIM ou um NÃO como resposta.

Leia mais

Draft-v0.1. Máquinas de Turing Máquinas de Turing

Draft-v0.1. Máquinas de Turing Máquinas de Turing 13 Máquinas de Turing A necessidade de formalizar os processos algorítmicos levou, nas décadas 20 e 30 do século XX, a diversos estudos, entre os quais os de Post, Church e Turing, com vista a estudo formal

Leia mais

Teoria da Computação. Computabilidade e complexidade computacional

Teoria da Computação. Computabilidade e complexidade computacional Teoria da Computação Computabilidade e complexidade computacional 1 Computabilidade e Complexidade Computabilidade: verifica a existência de algoritmos que resolva uma classe de linguagens trata a possibilidade

Leia mais

Melhores momentos AULA PASSADA. Complexidade Computacional p. 136

Melhores momentos AULA PASSADA. Complexidade Computacional p. 136 Melhores momentos AULA PASSADA Complexidade Computacional p. 136 Configurações controle q 7 cabeça 1 0 1 1 0 1 1 1 fita de leitura e escrita Configuração 1 0 1q 7 1 0 1 1 1 Complexidade Computacional p.

Leia mais

Modelos de Computação Folha de trabalho n. 10

Modelos de Computação Folha de trabalho n. 10 Modelos de Computação Folha de trabalho n. 10 Nota: Os exercícios obrigatórios marcados de A a D constituem os problemas que devem ser resolvidos individualmente. A resolução em papel deverá ser depositada

Leia mais

PCC104 - Projeto e Análise de Algoritmos

PCC104 - Projeto e Análise de Algoritmos PCC104 - Projeto e Análise de Algoritmos Marco Antonio M. Carvalho Departamento de Computação Instituto de Ciências Exatas e Biológicas Universidade Federal de Ouro Preto 5 de dezembro de 2017 Marco Antonio

Leia mais

Teoria da Computação. Computabilidade

Teoria da Computação. Computabilidade Cristiano Lehrer Introdução O objetivo do estudo da solucionabilidade de problemas é investigar a existência ou não de algoritmos que solucionem determinada classe de problemas. Ou seja, investigar os

Leia mais

Máquina de Turing. Controle finito

Máquina de Turing. Controle finito Máquinas de Turing Máquinas de Turing podem fazer tudo o que um computador real faz. Porém, mesmo uma Máquina de Turing não pode resolver certos problemas. Estes problemas estão além dos limites teóricos

Leia mais

PCS3616. Programação de Sistemas (Sistemas de Programação) Máquinas de Turing

PCS3616. Programação de Sistemas (Sistemas de Programação) Máquinas de Turing PCS3616 Programação de Sistemas (Sistemas de Programação) Máquinas de Turing Escola Politécnica da Universidade de São Paulo Objetivos Familiarização com o funcionamento global de software de sistema computacional

Leia mais

Capítulo 9: Linguagens sensíveis ao contexto e autômatos linearmente limitados.

Capítulo 9: Linguagens sensíveis ao contexto e autômatos linearmente limitados. Capítulo 9: Linguagens sensíveis ao contexto e autômatos linearmente limitados. José Lucas Rangel 9.1 - Introdução. Como já vimos anteriormente, a classe das linguagens sensíveis ao contexto (lsc) é uma

Leia mais

UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA

UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA Máquina de Turing Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado e Gomes da Costa [email protected] Teoria da Computação Ciência da Computação

Leia mais

UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA

UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA Máquina de Turing Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado e Gomes da Costa [email protected] Teoria da Computação Ciência da Computação

Leia mais

Linguagens Regulares. Prof. Daniel Oliveira

Linguagens Regulares. Prof. Daniel Oliveira Linguagens Regulares Prof. Daniel Oliveira Linguagens Regulares Linguagens Regulares ou Tipo 3 Hierarquia de Chomsky Linguagens Regulares Aborda-se os seguintes formalismos: Autômatos Finitos Expressões

Leia mais

Capítulo 8: O problema da parada. Decidibilidade e computabilidade. José Lucas Rangel Introdução.

Capítulo 8: O problema da parada. Decidibilidade e computabilidade. José Lucas Rangel Introdução. Capítulo 8: O problema da parada. Decidibilidade e computabilidade. José Lucas Rangel 8.1 - Introdução. Como observado no capítulo anterior, podemos substituir a definição informal de procedimento pela

Leia mais

Máquinas de Turing - Computabilidade

Máquinas de Turing - Computabilidade BCC244-Teoria da Computação Prof. Lucília Figueiredo Lista de Exercícios 03 DECOM ICEB - UFOP Máquinas de Turing - Computabilidade 1. Seja L uma linguagem não livre de contexto. Mostre que: (a) Se X uma

Leia mais

Introdução Maquinas de Turing universais O problema da parada. Indecidibilidade. Rodrigo Gabriel Ferreira Soares DEINFO - UFRPE.

Introdução Maquinas de Turing universais O problema da parada. Indecidibilidade. Rodrigo Gabriel Ferreira Soares DEINFO - UFRPE. DEINFO - UFRPE Julho, 2014 Motivação Introdução O que pode ser computado? E mais intrigantemente, o que não pode ser computado? Motivação Introdução O que pode ser computado? E mais intrigantemente, o

Leia mais

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo 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 como formalização de algoritmo; Teoria

Leia mais

Aula 9: Máquinas de Turing

Aula 9: Máquinas de Turing Teoria da Computação Aula 9: Máquinas de Turing DAINF-UTFPR Prof. Ricardo Dutra da Silva Uma máquina de Turing é uma máquina de estados finitos que pode mover o cabeçote em qualquer direção, ler e manipular

Leia mais

Teoria da Computação. Computabilidade e complexidade computacional

Teoria da Computação. Computabilidade e complexidade computacional Teoria da Computação Computabilidade e complexidade computacional 1 Computabilidade e Complexidade Computabilidade: verifica a existência de algoritmos que resolva uma classe de linguagens trata a possibilidade

Leia mais

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO Prof.ª Danielle Casillo Diferencia-se das máquinas de Turing e Post principalmente pelo fato de possuir a memória de entrada separada

Leia mais

Teoria da Computação. Máquinas Universais Máquina de Turing

Teoria da Computação. Máquinas Universais Máquina de Turing Máquinas Universais Máquina de Turing Cristiano Lehrer Máquina de Turing Proposta por Alan Turing, em 1936. Universalmente conhecida e aceita como formalização de algoritmo. Trata-se de um mecanismo simples

Leia mais

UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA

UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA Máquina de Turing Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado e Gomes da Costa [email protected] Teoria da Computação Ciência da Computação

Leia mais

I.2 Introdução a Teoria da Computação

I.2 Introdução a Teoria da Computação I.2 Introdução a Teoria da Computação O que é? Fundamento da Ciência da Computação Tratamento Matemático da Ciência da Computação Estudo Matemático da Transformação da Informação Qual sua importância?

Leia mais

Linguagens recursivamente enumeráveis

Linguagens recursivamente enumeráveis Linguagens recursivamente enumeráveis Uma palavra x Σ é aceite por uma máquina de Turing M ( x L(M)) se M iniciando com a palavra x na fita e no estado inicial, pára num estado final. Caso contrário, M

Leia mais

Máquinas de Turing 3

Máquinas de Turing 3 Máquinas de Turing 3 Exercícios Máquinas de Turing com Múltiplas Fitas Máquinas de Turing Não-deterministicas A Tese/Hipótese de Church-Turing Linguagens decidíveis por Máquinas de Turing (Recursivas)

Leia mais

Gramáticas Sensíveis ao Contexto (GSC) Linguagens Sensíveis ao Contexto (LSC) Autômatos Linearmente Limitados (ALL)

Gramáticas Sensíveis ao Contexto (GSC) Linguagens Sensíveis ao Contexto (LSC) Autômatos Linearmente Limitados (ALL) Gramáticas Sensíveis ao Contexto (GSC) Linguagens Sensíveis ao Contexto (LSC) Autômatos Linearmente Limitados (ALL) 1 Gramática Sensível ao Contexto Definição: Uma gramática G é sensível ao contexto se

Leia mais

Linguagens Formais e Autômatos P. Blauth Menezes

Linguagens Formais e Autômatos P. Blauth Menezes Linguagens Formais e Autômatos P. Blauth Menezes [email protected] Departamento de Informática Teórica Instituto de Informática / UFRGS Linguagens Formais e Autômatos - P. Blauth Menezes 1 Linguagens

Leia mais

Teoria da Computação. Unidade 3 Máquinas Universais. Referência Teoria da Computação (Divério, 2000)

Teoria da Computação. Unidade 3 Máquinas Universais. Referência Teoria da Computação (Divério, 2000) Teoria da Computação Referência Teoria da Computação (Divério, 2000) 1 L={(0,1)*00} de forma que você pode usar uma Máquina de Turing que não altera os símbolos da fita e sempre move a direita. MT_(0,1)*00=({0,1},{q

Leia mais

Máquinas de Turing para construção: Foram encontrados dois modelos que se destacaram em nossas pesquisas.

Máquinas de Turing para construção: Foram encontrados dois modelos que se destacaram em nossas pesquisas. Máquina de Turing É um dispositivo imaginário que formou a estrutura para fundamentar a ciência da computação moderna. Seu inventor, o matemático Alan Mathison Turing, mostrou que a computação das operações

Leia mais

Decidibilidade. Mário S. Alvim Fundamentos de Teoria da Computação (FTC) DCC-UFMG (2018/02)

Decidibilidade. Mário S. Alvim Fundamentos de Teoria da Computação (FTC) DCC-UFMG (2018/02) Decidibilidade Mário S Alvim (msalvim@dccufmgbr) Fundamentos de Teoria da Computação (FTC) DCC-UFMG (2018/02) Mário S Alvim (msalvim@dccufmgbr) Decidibilidade DCC-UFMG (2018/02) 1 / 45 Decidibilidade:

Leia mais

ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO. Aula 25

ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO. Aula 25 ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO Aula 25 Cap 7.2 A classe P Profa. Ariane Machado Lima [email protected] 1 Cap 7.2 A classe P 2 Tempo polinomial e exponencial Ex: Máquina de tempo n 3 (tempo

Leia mais

SCC-5832 Teoria da Computação

SCC-5832 Teoria da Computação Teoria da Computação SCC-5832 Teoria da Computação João Luís Garcia Rosa 1 1 Departamento de Ciências de Computação Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo - São Carlos

Leia mais

Juliana Kaizer Vizzotto. Universidade Federal de Santa Maria. Disciplina de Teoria da Computação

Juliana Kaizer Vizzotto. Universidade Federal de Santa Maria. Disciplina de Teoria da Computação Universidade Federal de Santa Maria Disciplina de Teoria da Computação Quais são as capacidades e limitações fundamentais dos computadores? Funções Computáveis Algoritmo: descrição finitade uma computação

Leia mais

Linguagens Formais e Autômatos Decidibilidade

Linguagens Formais e Autômatos Decidibilidade Linguagens Formais e Autômatos Decidibilidade Andrei Rimsa Álvares Sumário Introdução A tese de Church-Turing Máquinas de Turing e problemas de decisão Máquina de Turing Universal O problema da parada

Leia mais

Teoria da Computação

Teoria da Computação Ciência da Computação Teoria da Computação (ENG10395) Profa. Juliana Pinheiro Campos E-mail: [email protected] Funções recursivas Os formalismos usados para especificar algoritmos podem ser classificados

Leia mais

Redutibilidade. Mário S. Alvim Fundamentos de Teoria da Computação (FTC) DCC-UFMG (2018/02)

Redutibilidade. Mário S. Alvim Fundamentos de Teoria da Computação (FTC) DCC-UFMG (2018/02) Redutibilidade Mário S. Alvim ([email protected]) Fundamentos de Teoria da Computação (FTC) DCC-UFMG (2018/02) Mário S. Alvim ([email protected]) Redutibilidade DCC-UFMG (2018/02) 1 / 46 Redutibilidade:

Leia mais

INE5317 Linguagens Formais e Compiladores AULA 3: Introdução a Teoria da Computação

INE5317 Linguagens Formais e Compiladores AULA 3: Introdução a Teoria da Computação INE5317 Linguagens Formais e Compiladores AULA 3: Introdução a Teoria da Computação bas eado em material produzido pelo prof Olinto Jos é Varela Furtado Ricardo Azambuja Silveira INE-CTC-UFSC E-Mail: [email protected]

Leia mais

Linguagens Formais e Autômatos. Autômatos Finitos Determinísticos (AFD)

Linguagens Formais e Autômatos. Autômatos Finitos Determinísticos (AFD) Linguagens Formais e Autômatos Autômatos Finitos Determinísticos (AFD) Cristiano Lehrer, M.Sc. Linguagens Regulares A teoria da computação começa com uma pergunta: O que é um computador? É, talvez, uma

Leia mais

Máquinas de Turing (MT)

Máquinas de Turing (MT) Linguagens Formais e Autômatos Máquinas de Turing (MT) Andrei Rimsa Álvares Material extraído do livro e slides do Prof. Newton Vieira (hcp://dcc.ufmg.br/~nvieira) Sumário Introdução Máquinas de Turing

Leia mais

ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO. Aula 18. Cap O Problema da Parada

ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO. Aula 18. Cap O Problema da Parada ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO Aula 18 Cap 4.2 - O Problema da Parada Profa. Ariane Machado Lima [email protected] 1 Nas últimas aulas Tese de Church-Turing Problemas computacionais descritos

Leia mais

Aula 10: Decidibilidade

Aula 10: Decidibilidade Teoria da Computação Aula 10: Decidibilidade DAINF-UTFPR Prof. Ricardo Dutra da Silva Definição 10.1. Um problema de decisão P é um conjunto de questões para as quais as respostas são sim ou não. Exemplo

Leia mais

Linguaguens recursivamente enumeráveis e recursivas

Linguaguens recursivamente enumeráveis e recursivas Linguaguens recursivamente enumeráveis e recursivas Uma linguagem diz-se recursivamente enumerável (r.e) ou semi-decidível se é aceite por uma máquina de Turing. SD: classe de linguagens recursivamente

Leia mais

A Tese de Church-Turing e Máquinas de Turing

A Tese de Church-Turing e Máquinas de Turing A Tese de Church-Turing e Máquinas de Turing Mário S. Alvim ([email protected]) Fundamentos de Teoria da Computação (FTC) DCC-UFMG (2018/02) Mário S. Alvim ([email protected]) A Tese de Church-Turing

Leia mais

SCC 205 Teoria da Computação e Linguagens Formais

SCC 205 Teoria da Computação e Linguagens Formais Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Ciências de Computação SCC 205 Teoria da Computação e Linguagens Formais Autômatos com pilha Lista 3 1. Dê um

Leia mais

Universidade Federal de Alfenas

Universidade Federal de Alfenas Universidade Federal de Alfenas Linguagens Formais e Autômatos Aula 13 Autômato com Pilha [email protected] Última aula Linguagens Livres do Contexto P(S*) Recursivamente enumeráveis Recursivas

Leia mais

Procedimentos e Algorítmos Programas e Linguagens de Programação Tese de Church-Turing Formas de Representação de Linguagens

Procedimentos e Algorítmos Programas e Linguagens de Programação Tese de Church-Turing Formas de Representação de Linguagens Procedimentos e Algorítmos Programas e Linguagens de Programação Tese de Church-Turing Formas de Representação de Linguagens 1 Introdução Estudar computação do ponto de vista teórico é sinônimo de caracterizar

Leia mais

INE5317 Linguagens Formais e Compiladores AULA 5: Autômatos Finitos

INE5317 Linguagens Formais e Compiladores AULA 5: Autômatos Finitos INE5317 Linguagens Formais e Compiladores AULA 5: Autômatos Finitos Ricardo Azambuja Silveira INE-CTC-UFSC E-Mail: [email protected] URL: www.inf.ufsc.br/~silveira As Linguagens e os formalismos representacionais

Leia mais

SCC Teoria da Computação e Linguagens Formais

SCC Teoria da Computação e Linguagens Formais SCC-0205 João Luís Garcia Rosa 1 1 Departamento de Ciências de Computação Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo - São Carlos http://www.icmc.usp.br/~joaoluis/ [email protected]

Leia mais

Capítulo 2: Procedimentos e algoritmos

Capítulo 2: Procedimentos e algoritmos Capítulo 2: Procedimentos e algoritmos Para estudar o processo de computação de um ponto de vista teórico, com a finalidade de caracterizar o que é ou não é computável, é necessário introduzir um modelo

Leia mais

Complexidade de Algoritmos. Edson Prestes

Complexidade de Algoritmos. Edson Prestes Edson Prestes A classe P consiste nos problemas que podem ser resolvidos em tempo Polinomial (Problemas tratáveis) A classe NP consiste nos problemas que podem ser verificados em tempo polinomial (Problemas

Leia mais

SCC Capítulo 3 Linguagens Sensíveis ao Contexto e Autômatos Limitados Linearmente

SCC Capítulo 3 Linguagens Sensíveis ao Contexto e Autômatos Limitados Linearmente SCC-505 - Capítulo 3 Linguagens Sensíveis ao Contexto e João Luís Garcia Rosa 1 1 Departamento de Ciências de Computação Instituto de Ciências Matemáticas e de Computação - Universidade de São Paulo http://www.icmc.usp.br/~joaoluis

Leia mais

Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Ciências de Computação

Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Ciências de Computação Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Ciências de Computação SCC-0505 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO Lista de Exercícios do Capítulo 3 Gramáticas

Leia mais

SCC Introdução à Teoria da Computação

SCC Introdução à Teoria da Computação SCC-0505 João Luís Garcia Rosa 1 1 Departamento de Ciências de Computação Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo - São Carlos http://www.icmc.usp.br/~joaoluis/ [email protected]

Leia mais

Linguagens Livres de Contexto

Linguagens Livres de Contexto Universidade Católica de Pelotas Centro Politécnico Bacharelado em Ciência da Computação 364018 Linguagens Formais e Autômatos TEXTO 4 Linguagens Livres de Contexto Prof. Luiz A M Palazzo Maio de 2011

Leia mais

Turing to Norma, uma ferramenta para auxiliar o estudo da equivalência entre Máquina de Turing e Máquina Norma

Turing to Norma, uma ferramenta para auxiliar o estudo da equivalência entre Máquina de Turing e Máquina Norma 4ª Jornada Científica e Tecnológica e 1º Simpósio de Pós-Graduação do IFSULDEMINAS 16, 17 e 18 de outubro de 2012, Muzambinho MG Turing to Norma, uma ferramenta para auxiliar o estudo da equivalência entre

Leia mais

Linguagens Formais e Autômatos Apresentação da Disciplina

Linguagens Formais e Autômatos Apresentação da Disciplina Linguagens Formais e Autômatos Apresentação da Disciplina Andrei Rimsa Álvares Computação Histórico da Computação O que pode ser computado? Ábaco China Aprox. 3500 a.c. Máquina de Babbage Inglaterra 1823

Leia mais

Resolução Exe 2.12 Monolítico Recursivo

Resolução Exe 2.12 Monolítico Recursivo Resolução Exe 2.12 Monolítico Recursivo Recursivo P R é R 1 onde R 1 def (se T1 então R 2 senão R 3 ) R 2 def F; R 3 R 3 def (se T2 então R 4 senão R 7 ) R 4 def G; R 5 R 5 def (se T1 então R 7 senão R

Leia mais

Máquina de Turing. Teoria da Computação. Teoria da Computação. Histórico da Computação:

Máquina de Turing. Teoria da Computação. Teoria da Computação. Histórico da Computação: UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA Pro. Yandre Maldonado - 1 Pro. Yandre Maldonado e Gomes da Costa [email protected] Teoria da Computação Ciência da Computação Ênase teórica:

Leia mais

Aula 10: Decidibilidade

Aula 10: Decidibilidade Teoria da Computação Segundo Semestre, 2014 Aula 10: Decidibilidade DAINF-UTFPR Prof. Ricardo Dutra da Silva Definição 10.1. Um problema de decisão P é um conjunto de questões para as quais as respostas

Leia mais

Máquinas de Turing. Juliana Kaizer Vizzotto. Disciplina de Teoria da Computação. Universidade Federal de Santa Maria

Máquinas de Turing. Juliana Kaizer Vizzotto. Disciplina de Teoria da Computação. Universidade Federal de Santa Maria Universidade Federal de Santa Maria Disciplina de Teoria da Computação Roteiro Definição Formal de Máquina de Turing Mais exemplos Definição Formal de Máquina de Turing Uma máquina de Turing é uma 7-upla,

Leia mais

Apostila 05 Assunto: Linguagens dos tipos 0 e 1

Apostila 05 Assunto: Linguagens dos tipos 0 e 1 Cursos: Bacharelado em Ciência da Computação e Bacharelado em Sistemas de Informação Disciplinas: (1493A) Teoria da Computação e Linguagens Formais, (4623A) Teoria da Computação e Linguagens Formais e

Leia mais

Linguagens Livres do Contexto. Adaptado de H. Brandão

Linguagens Livres do Contexto. Adaptado de H. Brandão Linguagens Livres do Contexto Adaptado de H. Brandão Linguagens Livres do Contexto Para as LLC, temos as Gramáticas Livres do Contexto; Linguagens Livres do Contexto Para as LLC, temos as Gramáticas Livres

Leia mais

Teoria da Computação. Máquinas Universais Máquina com Pilhas

Teoria da Computação. Máquinas Universais Máquina com Pilhas Máquinas Universais Máquina com Pilhas Cristiano Lehrer Introdução A Máquina com Pilhas diferencia-se das Máquinas de Turing e de Post principalmente pelo fato de possuir uma memória de entrada separada

Leia mais

Linguagens Formais e Autômatos (LFA)

Linguagens Formais e Autômatos (LFA) Linguagens Formais e Autômatos (LFA) Aula de 18/11/2013 Linguagens Recursivamente Enumeráveis, Complexidade (Custo) de Tempo/Espaço, Transdutores para exibir complexidade de Tempo/Espaço 1 Linguagens Recursivamente

Leia mais

Terceira Lista de Exercícios 2004/2...

Terceira Lista de Exercícios 2004/2... UFLA Universidade Federal de Lavras Departamento de Ciência da Computação COM162 Linguagens Formais e Autômatos Prof. Rudini Sampaio Monitor: Rodrigo Pereira dos Santos Terceira Lista de Exercícios 2004/2

Leia mais

Aula 7: Autômatos com Pilha

Aula 7: Autômatos com Pilha Teoria da Computação Segundo Semestre, 2014 Aula 7: Autômatos com Pilha DAINF-UTFPR Prof. Ricardo Dutra da Silva Vamos adicionar um memória do tipo pilha ao nossos autômatos para que seja possível aceitar

Leia mais

Máquinas de Turing: uma introdução

Máquinas de Turing: uma introdução Máquinas de Turing: uma introdução Nelma Moreira Armando Matos Departamento de Ciência de Computadores Faculdade de Ciências, Universidade do Porto email: {nam,acm}@ncc.up.pt 1996 Revisão: Maio 2001 1

Leia mais

Autômatos Finitos Determinís3cos (AFD)

Autômatos Finitos Determinís3cos (AFD) Linguagens Formais e Autômatos Autômatos Finitos Determinís3cos (AFD) Andrei Rimsa Álvares Material extraído do livro e slides do Prof. Newton Vieira (hcp://dcc.ufmg.br/~nvieira) Introdução Exemplos Sumário

Leia mais

Introdução à Teoria da Computação Exercícios

Introdução à Teoria da Computação Exercícios Introdução à Teoria da Computação Exercícios Livro: Michel Sipser, Introdução à Teoria da Computação 2ª Ed. Capítulo 07 Obs: Exercícios 7.7 e 7.20 estão apresentados em versões simplificadas. NP Dicas

Leia mais