Máquinas de Turing 3
|
|
|
- Artur Graça Domingues
- 8 Há anos
- Visualizações:
Transcrição
1 Máquinas de Turing 3 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) Linguagens Aceitas/Reconhecidas por Máquinas de Turing (Recursivamente Enumeráveis) 1
2 Usos de uma MT como reconhecedor de linguagens (Visto) para calcular funções para processar problemas de decisão (procedimento) 2
3 MT como um processador de funções inteiras Tradicionalmente, os inteiros são representados em unário O inteiro i >= 0 é representado pela cadeia 0 i. Se a função tem k argumentos (i1, i2,..., ik) então esses inteiros são colocados na fita separados por 1 s como: 0 i1 1 0 i ik O inverso também é possível. Se a máquina pára (não importa se num estado final) com a fita consistindo de 0 m para algum m então dizemos que f(i1,i2,...ik) = m, onde f é uma função de k argumentos computados por essa MT. 3
4 MT que soma dois números naturais Consider the addition function a+b on non-negative integers Encode the input string on the tape as 0 a 10 b The Turing machine will halt with 0 a+b on the tape Processo: Read 0's and rewrite them on the tape moving right until the 1 is read Replace the 1 with a 0 (SHIFT), and continue moving right without changing the tape until a blank is found Move left and replace the 0 with a blank 4
5 5
6 6
7 MT para processar problemas de decisão Quando usamos a MT para decidir (responder T/F) alguma propriedade, depois que a máquina parar, olhamos na fita a procura do resultado 0/1 após a cadeia de entrada. 7
8 MT que decide se um número binário é par ou impar Fica em q0 enquanto par Fica em q1 enquanto impar Se Par - pára e escreve 0 Se Impar - pára e escreve 1 8
9 9
10 10
11 Exercícios 1) Construir uma MT que decida se uma seqüência de parênteses é bem formada. Escreve 0 se mal formada Escreve 1 se bem formada Dica: considere que a cadeia de parênteses é limitada por < e > para facilitar a checagem e separar a resposta, mas não será um ALL, pois deve escrever 0/1 após as guardas. Idéia: Procurem por um ) e substitua por X e em seguida voltar a esquerda procurando o ( mais próximo para substituir por X também. 2) Construir uma MT que dada uma cadeia w pertencente ao fecho de {0,1} duplique w. Quando a máquina parar a fita deve conter w#w sendo que # indica fim de w. 11
12 Lembrem que: MT para calcular funções: Se f(n) não é definida para todo n f(n) é função parcial; se sempre é definida é função total Se MT computa f(n) para todo n f(n) é recursiva (algoritmo que computa f(n)) sempre que f(n) é definida mas NÃO pára para aqueles n para os quais f(n) não é definida f(n) é parcialmente recursiva (ou recursivamente enumerável) MT para processar problemas de decisão: Quando consideramos a MT como procedimento, se ela pára para toda a entrada dizemos que o procedimento é um algoritmo. 12
13 Hierarquia das Classes de Máquinas e Linguagens L Recursivamente Enumeráveis/Máquinas de Turing que Reconhecem L L Recursivas/Máquinas de Turing que Decidem L L Livres de Contexto/Máquinas a Pilha não Determinísticas L Livres de Contexto Determinísticas/ Máquinas a Pilha Determinísticas L Regulares/Autômatos Finitos 13
14 Onde estão as LSC na figura anterior??? As LSC são reconhecidas por MT com fita limitada, mas na Teoria da Computabilidade o foco está nas MT que decidem e nas MT que reconhecem. Esta é a razão de serem menos comentadas. As LSC são um subconjunto próprio das L Recursivas. 14
15 Máquinas e Linguagens incluindo as LSC L Recursivamente Enumeráveis (tipo 0)/Máquinas de Turing que Reconhecem L L Recursivas/Máquinas de Turing que Decidem L L Sensíveis ao Contexto/Máquinas de Turing com Fita Limitada L Livres de Contexto/ Autômatos a Pilha não Determinísticos L Livres de Contexto Det/Autômatos a Pilha Determinísticos L Regulares/Autômatos L Regulares/AFinitos 15
16 Modelos Equivalentes Máquinas de Turing Determinísticas (MTD) são extremamente poderosas. Nós podemos simular outros modelos com elas e vice-versa. As variações são equivalentes, isto é, reconhecem a mesma classe de linguagens (seja ela recursiva/re). Uma variação simples é a MT que tem a habilidade de permanecer parada após a leitura. Como provamos que esta variação tem poder equivalente ao da MTD? Lembrem que para mostrar que 2 modelos são equivalentes mostramos que simulamos um pelo outro. Vamos ver outro exemplo em que a simulação ocorre com somente uma perda polinomial de eficiência 16
17 Máquinas de Turing com múltiplas fitas Inicialmente a entrada é escrita na primeira fita. As outras começam com branco. SIP a a b a b b _... b b b b b... b a a b a... As transições permitem acesso simultâneo a todas as fitas: : Q X k -> Q X k X {L,R} k Ex: (qi,a1,...,ak) = (qj,b1,b2,..., bk, L,R,L,R...) 17
18 Robustez Máquinas de Turing com múltiplas fitas são polinomialmente equivalentes a máquinas com uma fita (que são casos especiais da primeira). Teo 3.8 (Sipser) Toda MT com múltiplas fitas tem uma MT equivalente com uma única fita. A idéia é mostrar como simular M com k fitas em S com 1 fita. S simula o efeito das k fitas armazenando suas informações em uma sua fita, separando-as com # e marca as posições de suas cabeças com símbolos marcados (a. e b., por exemplo que são acrescidos ao alfabeto da fita): #w1.w2 wn#.#.#.# O que fazer quando a cabeça chega num #? 18
19 Existem mais modelos Equivalentes? Vamos ver um modelo computacional menos realista MT Não-Determinísticas que pode ser simulado com uma MT Determinística com uma perda exponencial de eficiência. 19
20 Computações (q,x) = {(q1,y1,d1),...,(qk,yk,dk)} Computação determinística Árvore de computação não-determinística tempo. Aceita se algum ramo alcança uma configuração de aceitação Nota: o tamanho da árvore é exponencial em sua altura 20
21 Descrição Alternativa SIP Uma máquina não-determinística tem dois estágios: um de advinhação da resposta e outro de verificação. É um modelo para capturar a noção de verificação em tempo polinomial (NP) e não um método para resolver problemas de decisão. 21
22 Exemplos (1) Uma MT não-determinística que checa se 2 vértices são conectados em um grafo simplesmente chuta um caminho entre eles. Após isto a MT necessita somente verificar se o caminho é válido. 22
23 Lembram que vimos 2 problemas no início do curso: O problema da Mesa (CICLO-HAMILTONIANO) O problema do Pacote (CAMINHO-HAMILTONIANO) (2) Para o problema de verificar se um grafo é hamiltoniano a MT chuta a lista de vértices no ciclo hamiltoniano. Se o grafo for hamiltoniano o próprio ciclo oferece toda a informação para verificar este fato. Se o grafo não for nenhuma lista de vértices vai enganar o verificador que facilmente verifica se a lista é válida. 23
24 A Hipótese de Church-Turing Noção Intuitiva de algorítmo Máquina de Turing que decide Lembrem que alguns problemas são parcialmente decidíveis, isto é, existe uma máquina de Turing que os reconhece 24
25 Estudar computação do ponto de vista teórico é sinônimo de caracterizar o que é ou não é computável. Para tanto, é preciso lançar mão de um modelo matemático que represente o que se entende por computação. Há diversos modelos (funções recursivas, algoritmos de Markov, etc.), mas iremos adotar um só: as Máquinas de Turing. 25
26 Alonzo Church conjecturou que todos os modelos razoáveis do processo de computação, definidos e por definir, são equivalentes (Tese de Church). Vamos primeiro trabalhar com a idéia intuitiva do que quer dizer computável, e para isso, introduzimos os conceitos de procedimento e de algoritmo. Depois voltaremos àtese de Church-Turing. 26
27 Procedimentos e Algoritmos Um procedimento (efetivo) é uma sequência finita de instruções, sendo uma instrução uma operação claramente descrita, que pode ser executada mecanicamente, (por um agente humano ou não) em tempo finito. Esse conceito corresponde à noção intuitiva de "receita", "roteiro ou "método". Um exemplo clássico de procedimento foi inventado entre 400 e 300 D.C. pelo matemático grego Euclides para encontrar o máximo divisor comum entre 2 inteiros positivos. 27
28 Exemplo de Procedimento Algoritmo de Euclides - Cálculo do máximo divisor comum (mdc) de dois inteiros positivos m e n. Passo 1: Adote como valores iniciais de x e y os valores m e n, respectivamente. Passo 2: Adote como valor de r o resto da divisão do valor de x pelo valor de y. Passo 3: Adote como o novo valor de x o valor de y, e como novo valor de y o valor de r. Passo 4: Se o valor de r é nulo, então o valor de x é o mdc procurado e o cálculo termina; caso contrário, volte a executar as instruções a partir do passo 2. 28
29 Esse exemplo ilustra as propriedades que vamos exigir um procedimento: de i) Descrição Finita. Utilizamos uma seqüência finita de palavras e símbolos para descrever o procedimento. ii) Todo procedimento parte de um certo número de dados pertencentes a conjuntos especificados de objetos (como m e n que são inteiros positivos), e espera-se que produza um certo número de resultados (como o valor final de x) que mantêm uma relação específica com os dados (função). iii) Supõe-se que exista um agente computacional - humano, mecânico, eletrônico, etc. - que executa as instruções do procedimento. 29
30 iv) Cada instrução deve ser bem definida, não ambígua. No exemplo, supõe-se que o agente saiba como calcular o resto da divisão inteira e haveria problemas se x e y pudessem ser inteiros quaisquer a menos que definíssemos o que seria o resto de divisão para inteiros não positivos. v) As instruções devem ser efetivas, isto é, devem ser tão simples que poderiam ser executadas, em princípio, por uma pessoa usando lápis e papel, num espaço finito de tempo (no exemplo, elas não o seriam caso x e y pudessem ser números reais quaisquer em representação decimal, possivelmente de comprimento infinito). 30
31 O conceito de procedimento é primitivo independentemente de sua representação. Formas de Representação de Procedimentos textual em língua natural diagrama de blocos pseudo-código Exemplos sobre Término de Procedimentos A seguir são apresentados alguns exemplos sobre a questão do término de procedimentos: como será visto, alguns procedimentos terminam quaisquer que sejam os valores dos dados de entrada e outros terminam apenas para alguns valores. 31
32 EXEMPLO 1 Algoritmo de Euclides: Calcula o máximo divisor comum entre dois inteiros positivos m e n início: m,n (1)x, y m, n (2) r resto (x, y) (3) x, y y, r Não (4)r = 0? Sim fim: x 32
33 Pergunta: Este procedimento termina quaisquer que sejam os valores dos dados de entrada? Mostrar isto, neste exemplo, equivale a provar a seguinte proposição: "Se no passo 2 do procedimento os valores de x e y são inteiros e positivos, então os passos 2, 3 e 4 serão executados apenas um número finito de vezes, com os cálculos terminando no passo 4". 33
34 Demonstração por indução sobre o valor de y: se y = 1, então após o passo 2, r = 0. Portanto, os passos 2, 3 e 4 são executados uma única vez e o cálculo termina no passo 4. Suponhamos que a proposição é verdadeira para qualquer x > 0 e qualquer y, com 1 y<k, e demonstraremos que ela é verdadeira para y = k. Por definição do resto da divisão de inteiros positivos, teremos, se y = k, após a execução do passo 2, 0 r<k. Se r = 0, então a execução termina, numa única vez. Se r > 0, com a execução dos passos 3 e 4, (continua >>>) 34
35 teremos x = k > 0 e y = r com 0<r<k, e a execução volta ao passo 2. Por hipótese de indução, os passos 2, 3 e 4 serão executados um número finito p de vezes, com os cálculos terminando no passo 4. Ao todo teremos, então, p+1 execuções para y = k. Notemos, ainda, que os valores iniciais x = m e y = n resultantes da execução do passo 1 satisfazem as condições da proposição acima (i.e. inteiros positivos). Conclui-se, então, que o Algoritmo de Euclides termina para quaisquer inteiros positivos m e n. 35
36 EXEMPLO 2: Procedimento para determinar o menor número perfeito que é maior do que um inteiro positivo m dado (k é perfeito se for igual à soma de todos os seus divisores, exceto o próprio k). Em outras palavras, dado m, deseja-se obter o primeiro número perfeito maior do que m. Idéia adotada: a partir de x = m + 1, de um em um, verifica-se se x é número perfeito, calculando-se e somando-se todos seus divisores. 36
37 início: m x m x, y, s x + 1, 1, 0 y < x? Não Sim resto(x,y)=0? Não Sim s s + y Pergunta: Este procedimento sempre termina? y y +1 Não s = x? Sim fim: x 37
38 Resposta: Apenas para certos valores de m. Por exemplo, se m = 4, então ele pára com x = 6, pois 5 1 e 6= Porém, no caso geral, a resposta não é conhecida, pois a existência ou não de um número infinito de números perfeitos é um problema em aberto. Se existirem infinitos números perfeitos, então a execução do procedimento termina para qualquer m; caso contrário, se K é o maior número perfeito, então o procedimento executa uma sequência infinita de cálculos para todo m K. 38
39 Conjecturas ainda não demonstradas O n-ésimo número perfeito tem n dígitos; Todos os números perfeitos são pares; Todos os números perfeitos terminam em 6 ou em 8, alternadamente; -- NP menores que = 6, 28, 496,
40 EXEMPLO 3: Cálculo de s = 0m i com m inteiro positivo. início: m x, s 0, 0 x = m? Sim Não s s + (x+1) + (x+2) x x + 2 Pergunta: Este procedimento sempre pára? fim: s 40
41 Resposta: Não. Termina apenas para valores pares de m, pois os valores da sequência são 0, 2, 4, 6,... Para valores ímpares, a igualdade x = m nunca é verdadeira e a execução do procedimento não termina. Note-se que todo procedimento é um método para o cálculo de alguma função, eventualmente não definida para certos argumentos. O exemplo 3 corresponde à função h que pode ser descrita como: h(m) = 0m I se m é par não definida se m é ímpar 41
42 Por outro lado, uma mesma função pode ser calculada por vários procedimentos distintos. É o caso do procedimento abaixo para o cálculo da mesma função h(m): início: m r resto (m, 2) r = 0 Não Sim x (m * (m + 1)) / 2 fim: x 42
43 Temos interesse especial nos procedimentos cuja execução termina para quaisquer valores dados. Algoritmos Def.: Algoritmos são procedimentos cuja execução termina para quaisquer valores dos dados de entrada. 1) O Algoritmo de Euclides é realmente um algoritmo; 2) Nada podemos afirmar sobre o procedimento que determina o menor número perfeito maior do que um inteiro positivo m dado; 3) O procedimento que efetua o cálculo do somatório não é um algoritmo. 43
44 Decidir se um procedimento é um algoritmo não é tarefa trivial! Caso contrário já saberíamos a resposta de várias conjecturas tais como a existência de um número infinito de números perfeitos e outras questões abertas da matemática. 44
45 Programas e Linguagens de Programação Vimos que um procedimento pode ser especificado por uma mistura de palavras e símbolos como fizemos para o algoritmo de Euclides, mas para ser executado em um computador usamos uma linguagem de programação (LP). Def: Uma LP é definida por um conjunto de símbolos sobre um alfabeto (léxico), e um conjunto de regras que especificam como compor esses símbolos (sintaxe) e quais são as ações associadas a elas (semântica). Def: Um programa é uma sequência de símbolos de uma LP que representa um ou mais procedimentos. 45
46 As LP têm características variadas, dependendo de sua finalidade. Há desde as muito simples, porém de grande interesse para a teoria da computação (ex. a linguagem da Máquina de Turing), como as de mais alto nível, usadas para propósito geral. Toda LP é capaz de representar todos os procedimentos efetivos, isto é, é universal? 46
47 Tese (hipótese) de CHURCH-TURING Qualquer procedimento pode ser representado em Linguagem de Turing (analogamente, pode ser computado por uma Máquina de Turing - MT). Em primeiro lugar, essa tese não pode ser demonstrada, devido à noção intuitiva de procedimento, por isto é mais adequado dizer que é uma hipótese. Uma maneira de negar a tese é encontrar um procedimento que não pudesse demonstradamente ser computado por uma Máquina de Turing. Isso não ocorreu, e devido ao grande número de dados experimentais, esta tese tem sido aceita pelos cientistas da computação. 47
48 Um outro fato notável que suporta a Tese de Church é que as várias tentativas independentes de formalizar o conceito de procedimento efetivo resultaram todos em formalismos demonstradamente equivalentes ao de Turing. Em segundo lugar, para responder a pergunta acima, bastaria estabelecer a equivalência entre a LP dada e a Linguagem de Turing. Uma vez equivalentes, a universalidade da LP estaria garantida. 48
49 Embora tedioso, esse processo é perfeitamente possível: (a) construir MT que simulem o comportamento de programas em LP; (b) construir programas em LP que executam a mesma função de um MT qualquer. Isso é demonstrado, em geral, através do uso de uma linguagem de complexidade intermediária, LI, entre MT e LP, de tal forma que se estabelece a equivalência entre MT e LI, e entre LI e LP. 49
50 Na verdade, a exigência para esta equivalência é que a LP contenha um conjunto mínimo de operações primitivas, como soma, subtração, teste de zero e repetição. Como as LP contêm um conjunto muito mais abrangente, a parte (b) acima é bastante facilitada. 50
51 Sumário Apresentamos os dois modelos principais de computação: MT Determinística e MT Nãodeterminística. A MTD pode ser simulada por uma MTND com uma perda exponencial de eficiência. Por isto que dizemos que a classe NP é a classe de todos os problemas de decisão solúveis por algoritmos não-determinísticos de tempo polinomial. N = não-determinístico P = polinomial A verificação é em tempo polinomial pois não contamos o tempo de adivinhação, que será exponencial! 51
52 Sumário A Hipótese de Church-Turing: MT Deterministicas que decidem são equivalentes a nossa noção intuitiva de algorítmos. Sabendo disto, podemos descrever usualmente algoritmos em pseudo-código ao invés de escrever em MT. 52
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)
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
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
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
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
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
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
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
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
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
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
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),
Aula 10: Tratabilidade
Teoria da Computação DAINF-UTFPR Aula 10: Tratabilidade Prof. Ricardo Dutra da Silva Na aula anterior discutimos problemas que podem e que não podem ser computados. Nesta aula vamos considerar apenas problemas
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.
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
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
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.
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
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
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?
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
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
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
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
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
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
Roteiro da segunda aula presencial - ME
PIF Enumerabilidade Teoria dos Números Congruência Matemática Elementar Departamento de Matemática Universidade Federal da Paraíba 29 de outubro de 2014 PIF Enumerabilidade Teoria dos Números Congruência
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 Problemas de Decisão
Linguagens Formais e Problemas de Decisão Mário S. Alvim ([email protected]) Fundamentos de Teoria da Computação (FTC) DCC-UFMG (2018/02) Mário S. Alvim ([email protected]) Linguagens Formais e Problemas
Conceitos Básicos. Vocabulário Cadeias Linguagens Expressões Regulares Problema X Linguagem
Conceitos Básicos Vocabulário Cadeias Linguagens Expressões Regulares Problema X Linguagem Alfabeto ou Vocabulário: Conjunto finito não vazio de símbolos. Símbolo é um elemento qualquer de um alfabeto.
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
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
1 Postulado de Church-Turing 1
1 Postulado de Church-Turing 1 Alguns modelos alternativos no estudo da computabilidade Turing: Máquina de Turing Gödel-Kleene: Funções recursivas Church: Cáluculo λ (funções definidas por termos λ) Post:
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
Computabilidade e Complexidade (ENG10014)
Sistemas de Informação Computabilidade e Complexidade (ENG10014) Profa. Juliana Pinheiro Campos E-mail: [email protected] Modelo de computação poderoso concebido pelo matemático britânico Alan Turing
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
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
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
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:
LINGUAGENS FORMAIS E AUTÔMATOS
LINGUGENS FORMIS E UTÔMTOS Introdução reve Histórico Em 1936, lan Turing (matemático) propôs a possibilidade de se construir um computador digital através da formalização de um procedimento em tempo finito.
LINGUAGENS FORMAIS E AUTÔMATOS
LINGUAGENS FORMAIS E AUTÔMATOS O objetivo deste curso é formalizar a idéia de linguagem e definir os tipos de sintaxe e semântica. Para cada sintaxe, analisamos autômatos, ue são abstrações de algoritmos.
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
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]
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
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
COMPUTABILIDADE 2. Indecidibilidade
Licenciatura em Ciências da Computação COMPUTABILIDADE 2. Indecidibilidade José Carlos Costa Dep. Matemática e Aplicações Universidade do Minho 15 de Novembro de 2011 José Carlos Costa DMA-UMinho 15 de
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
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
1 INTRODUÇÃO E CONCEITOS BÁSICOS
1 INTRODUÇÃO E CONCEITOS BÁSICOS Inicia com uma breve história do surgimento e do desenvolvimento dos conceitos, resultados e formalismos nos quais a Teoria da Computação é baseada. Formalização dos conceitos
INTRATABILIDADE e NP-COMPLETUDE
INTRATABILIDADE e NP-COMPLETUDE Sandro Santos Andrade Doutorado Multiinstitucional em Ciência da Computação UFBA/UNIFACS/UEFS Junho/2008 Grafos e Análise de Algoritmos Introdução Para alguns problemas
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
Curso de Engenharia de Computação - UTFPR Teoria da Computação - Prof. Celso Kaestner Lista de exercícios
Curso de Engenharia de Computação - UTFPR Teoria da Computação - Prof. Celso Kaestner Lista de exercícios 1. Escreva a expressão regular para as seguintes linguagens sobre o alfabeto {0, 1}: strings começando
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
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 Matemática Discreta para Ciência da Computação - P. Blauth Menezes
O REI MALIGNO E A PRINCESA GENEROSA: SOBRE BASES NUMÉRICAS E CRITÉRIOS DE DIVISIBILIDADE
O REI MALIGNO E A PRINCESA GENEROSA: SOBRE BASES NUMÉRICAS E CRITÉRIOS DE DIVISIBILIDADE ANA PAULA CHAVES AND THIAGO PORTO 1. Introdução Os temas centrais deste texto - bases numéricas e critérios de divisibilidade
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
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
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
a n Sistemas de Estados Finitos AF Determinísticos
a n Sistemas de Estados Finitos AF Determinísticos 1 Relembrando Uma representação finita de uma linguagem L qualquer pode ser: 1. Um conjunto finito de cadeias (se L for finita); 2. Uma expressão de um
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
Linguagens Formais e Autômatos. Apresentação do Plano de Ensino
Linguagens Formais e Autômatos Apresentação do Plano de Ensino Linguagens Formais e Autômatos LFA Código - CMP4145 Turma A01 Engenharia da Computação e Ciência da Computação Horário: Segunda, Terça e Quinta.
Compiladores. Análise lexical. Plano da aula. Motivação para análise lexical. Vocabulário básico. Estrutura de um compilador
Estrutura de um compilador programa fonte Compiladores Análise lexical () Expressões Regulares analisador léxico analisador sintático analisador semântico análise gerador de código intermediário otimizador
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]
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:
Primeira Lista de Exercícios 2005/1... Exercício 1 Desenhe Diagrama de Estados para Máquinas que Decidem as Linguagens:
UFLA Universidade Federal de Lavras Departamento de Ciência da Computação COM167 Teoria da Computação Prof. Rudini Sampaio Monitor: Rodrigo Pereira dos Santos Primeira Lista de Exercícios 2005/1 Exercício
Prof. Dr. Marcos Castilho. Departamento de Informática/UFPR. 22 de Fevereiro de 2018
22 de Fevereiro de 2018 Motivação O que é um computador? O que é um algoritmo? Para que serve um algoritmo? Quando um algoritmo é bom? A análise de um algoritmo depende do computador? Motivação Em teoria
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
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
Faculdade de Computação
UNIVERSIDADE FEDERAL DE UBERLÂNDIA Faculdade de Computação Disciplina : Teoria da Computação Professora : Sandra de Amo Solução da Lista de Exercícios n o 8 - Indecidibilidade Exercicio 1-5.5 do Livro
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
Linguagens Formais e Autômatos. Apresentação do Plano de Ensino
Linguagens Formais e Autômatos Apresentação do Plano de Ensino Linguagens Formais e Autômatos LFA Código - CMP4145 Turma C01 Engenharia da Computação e Ciência da Computação Horário: Terça e Sexta: 20:30
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 Formais e Autômatos. Apresentação do Plano de Ensino
Linguagens Formais e Autômatos Apresentação do Plano de Ensino Linguagens Formais e Autômatos LFA Código - CMP4145 Turma C01 Engenharia da Computação e Ciência da Computação Horário: Segunda e Quinta:
