Computabilidade e Complexidade (ENG10014)
|
|
|
- Levi Carneiro Benke
- 7 Há anos
- Visualizações:
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
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
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
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
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
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),
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
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
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.
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
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
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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?
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
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)
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
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
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
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
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:
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
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
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
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
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
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:
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]
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
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
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
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
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
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
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
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
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
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
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]
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
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
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
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
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]
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
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
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
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
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:
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
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,
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
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
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
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
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
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
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
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
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
