Primeira Lista de Exercícios 2005/1... Exercício 1 Desenhe Diagrama de Estados para Máquinas que Decidem as Linguagens:

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

Aula 10: Decidibilidade

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

Máquinas Universais. Departamento de Ciência de Computadores da FCUP MC Aula 23 1

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

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

S. C. Coutinho. Máquina de Turing Universal p. 1/22

Aula 10: Decidibilidade

Problemas Computáveis

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

Computabilidade e Complexidade (ENG10014)

Modelos Universais de Computação

Faculdade de Computação

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

Universidade Federal de Uberlândia Mestrado em Ciência da Computação

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

Apostila 05 Assunto: Linguagens dos tipos 0 e 1

Melhores momentos AULA PASSADA. Complexidade Computacional p. 136

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

Linguagens Formais e Autômatos P. Blauth Menezes

Máquinas de Turing 3

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

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

Melhores momentos AULA PASSADA. Complexidade Computacional p. 205

Máquinas de Turing - Computabilidade

Aula 9: Máquinas de Turing

Universidade Federal de Alfenas

Linguagem Universal. assim como a entrada ser processada por a. (b) A segunda fita de representa a fita de

14.1 Linguagens decidíveis ou Turing reconhecíveis

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

Linguagens Formais e Problemas de Decisão

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

Linguagens Formais e Autômatos P. Blauth Menezes

Lema do Bombeamento para Linguagens Livres do Contexto

Técnicas de Extensão de MT

Faculdade de Computação

ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO

Máquinas de Turing: uma introdução

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

Capítulo 2: Procedimentos e algoritmos

Matemática Discreta para Ciência da Computação

Linguagens Formais e Autômatos P. Blauth Menezes

INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA

GBC015: INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Teoria de Algoritmos: Computabilidade e Máquina de Turing

Teoria da Computação 27 de Maio de 2015 Teste 2A Duração: 1h30

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

Máquina de Turing. Controle finito

Teoria da Computação 12 de Abril de 2018 Teste 1A Duração: 1h30

Análise I Solução da 1ª Lista de Exercícios

Máquinas de Turing (MT)

Linguagens recursivamente enumeráveis

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

Linguaguens recursivamente enumeráveis

Linguagens Formais e Autômatos Decidibilidade

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

2. DISCIPLINA REQUISITO (RECOMENDAÇÃO) 3. INDICAÇÃO DE CONJUNTO (BCC) Obrigatória TEORIA: 60 LABORATÓRIO: 30

Dedução Indução Contra-exemplos Contradição Contrapositiva Construção Diagonalização

INE5317 Linguagens Formais e Compiladores AULA 6: Propriedades das Linguagens Regulares

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

a n Sistemas de Estados Finitos AF Determinísticos

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

Teoria da Computação

Vamos estudar neste capítulo algumas características da classe das linguagens regulares sobre um alfabeto. Entre elas salientámos:

decomposição de Cholesky.

Teoria da Computação 31 de Maio de 2017 Teste 2A Duração: 1h30

Noção de Computabilidade

Máquina de Turing. Controle finito

Teoria da Computação Prof. Lucília Figueiredo Prova 03 - ENTREGA DIA 24/06/2015. (a) Descreva o programa da MT usando um pseudocódigo.

ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO

CT-200 Fundamentos de Linguagens Formais e Automata - Aula 01 - In...

Tipo m= matriz [ l i1 : l s1, l i2 : l s2 ] <tipo básico> m: mat

Espaço amostral Ω: Conjunto enumerável de todos os possíveis resultados de um experimento aleatório. um evento elementar. E = E[X j ] X j.

Capítulo 0: Conjuntos, funções, relações

Enumerabilidade. Capítulo 6

Universidade Federal de Alfenas

Capítulo 2. Conjuntos Infinitos. 2.1 Existem diferentes tipos de infinito

Máquinas de Turing 3

formais e autómatos Linguagens g recursivas e recursivamente enumeráveis Gramáticas não-restringidas

MT como calculadoras de funções parciais

Linguaguens recursivamente enumeráveis e recursivas

Universidade Federal de Alfenas

Complexidade de Tempo

Curso de Engenharia de Computação - UTFPR Teoria da Computação - Prof. Celso Kaestner Lista de exercícios

COMPUTABILIDADE 2. Indecidibilidade

Resolução Exe 2.12 Monolítico Recursivo

Computação efectiva. Que linguagens podem ser reconhecidas por algum tipo de autómato?

Capítulo 1: Alfabetos, cadeias, linguagens

MAC-4722 Linguagens, Autômatos e Computabilidade Lista L3

A Teoria Matemática que serviu como Base para Turing.

Apostila 01 Fundamentação da Teoria da Computação e Linguagens Formais

Propriedades das Linguagens Livres do Contexto

Fundamentos da Teoria da Computação

Luís Fernando Schultz Xavier da Silveira. 12 de maio de 2010

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

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

Teoria da Computação

CADERNO DE EXERCÍCIOS ALGORITMOS

MATRIZES E DETERMINANTES

UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA

MATRIZES - PARTE Mais exemplos Multiplicação de duas matrizes AULA 26

Transcrição:

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 1 Desenhe Diagrama de Estados para Máquinas que Decidem as Linguagens: a. M.T. det. com uma fita para L 1 = {a r b s c t r, s, t > 0 e (s+1) t = r-2}

b. M.T. det. com duas fitas para L 2 = {ww R w (0,1) *, onde w R é o reverso de w} c. Enumerador para L 3 = {10 * }, ou seja, todas as palavras iniciando em 1 e seguido de zero ou mais 0s.

% 3 8 4 8 Exercício 2 Obtenha a função f de correspondência entre os Naturais e os Racionais, conforme visto em sala. Obtenha a inversa de f. Justifique. Obs.) Vamos mostrar a função de correspondência entre IN e QP (racionais não negativos). Para QN (racionais negativos), a demonstração é análoga. O conjunto dos números racionais não negativos QP é enumerável, como mostra a função sobrejetora g: IN orma a espelhar a correspondência mostrada esquematicamente na figura abaixo: Nesta figura, os números naturais são dispostos em uma matriz infinita com linhas numeradas 0, 1, 2,..., e as colunas 1, 2, 3,.... Observe que, começando na posição (0,1) da matriz, os naturais são dispostos nas diagonais inversas, em seqüência, a partir de 0. Com este esquema, todo natural terá uma posição na matriz. Supondo que o par (linha i, coluna j) represente o número racional i/j, observe que cada racional possui múltiplas representações. Por exemplo, o número 0 tem inúmeras representações: 0/1, 0/2, 0/3, etc. O número 1: 1/1, 2/2, etc. A matriz representa uma função g tal que g(k) = i/j, onde k é o natural especificado na linha i, coluna j. Isto é suficiente para concluir que o conjunto QP é enumerável. Antes de determinar g, será determinada a função f: IN x IN {0}! " $#$ j) = k se g(k) = i/j. Observe, inicialmente, que f(i, j) = S + i, onde S é o primeiro natural da diagonal inversa em que se situa k (na linha 0). Para os elementos de uma diagonal inversa, i + j é constante e é exatamente a quantidade de números naturais dispostos na diagonal. Assim, S é a quantidade de números naturais já colocados antes da diagonal, que é:, * - +. / 1 465 2 7 ')( & = 0 0 5 8 = (i + j)(i + j 1) 9 2 Logo, f(i, j) = (i + j)(i + j 1) : 2 + i. A inversa desta função dá o par (i, j) para o qual g(k) = i/j, para cada natural k. Dado um número k, deve-se, assim, determinar i e j tais que k = (i + j)(i + j 1) ; 2 + i, ou seja, 2k 2i = (i + j)(i + j - 1). Veja que i +j deve ser o maior número natural tal que (i + j)(i + j 1) <>=?@BADCCEFHG designando-se por n o maior número natural tal que n(n 1) <>=?IGJKLKM$F!E NIO -se i através de i = k n(n 1) : =DKGKFPCKBQREJOGJKLKM$F!E NO -se j através de j = n i. S

S S Exercício 3 [3.6 Sipser] O Teorema 3.13 diz que uma linguagem é recursivamente enumerável se e somente se algum Enumerador a enumera. Porque não usamos na prova o seguinte algoritmo mais simples? (Como na prova do teorema, s 1, s 2, s 3,..., é uma lista das palavras de Σ * em ordem lexicográfica). E = Ignore a Entrada 1. Repita para i=1, 2, 3,... 1.1. Rode M com entrada s i 1.2. Se M aceita, imprima s i O problema está no passo (1.1), ao simular M sem colocar um limite no número de passos. Não foi dito que a M.T. M decide a linguagem, então a M.T. pode entrar em loop, já que a linguagem é recursivamente enumerável. Exercício 4 [3.14 Sipser] Mostre que a classe de linguagens decididas por Máquinas de Turing, ou seja, a classe de linguagens recursivas, é fechada sob as operações de: Sejam L 1 e L 2 linguagens recursivas, tais que existem M.T. s M 1 e M 2 que decidem L 1 e L 2, respectivamente. a. União Vamos construir uma M.T. M 3 que decide a linguagem L 3 = L 1 L 2. M 3 = Com entrada w: 1. Simule M 1 com entrada w. 2. Simule M 2 com entrada w. 3. Se M 1 ou M 2 aceitam, ACEITE. Senão, REJEITE. b. Intersecção Vamos construir uma M.T. M 4 que decide a linguagem L 4 = L 1 L 2. M 4 = Com entrada w: 1. Simule M 1 com entrada w. 2. Simule M 2 com entrada w. 3. Se M 1 e M 2 aceitam, ACEITE. Senão, REJEITE. c. Concatenação

S S Vamos construir uma M.T. M 5 que decide a linguagem L 5 = L 1 L 2. M 5 = Com entrada w = w 1 w 2 w 3...w n, onde n = w e w i é cada um dos caracteres de w: 1. Para i de 0 até n, faça: 1.1 Simule M 1 com entrada w 1 w 2...w i. 1.2 Simule M 2 com entrada w i+1...w n. 1.3 Se M 1 e M 2 aceitam, ACEITE. Senão, REJEITE. d. Estrela Vamos construir uma M.T. M 6 que decide a linguagem L 6 = L 1 *. M 6 = Com entrada w = w 1 w 2 w 3...w n, onde n = w e w i é cada um dos caracteres de w: 1. K GA @ 2. Senão, para i de 0 até n faça: 2.1 Simule M 1 com entrada w 1 w 2...w i. 2.2 Se M 1 aceita, então: 2.2.1 Simule M 6 com entrada w i+1...w n. 2.2.2 Se M 6 aceita, ACEITE. 3. REJEITE. S e. Complementação Vamos construir uma M.T. M 7 que decide a linguagem L 7 = 1 (complemento ou negação de L 1 ). M 7 = Com entrada w: 1. Simule M 1 com entrada w. 2. Se M 1 aceita, REJEITE. Senão, ACEITE. Exercício 5 [3.15 Sipser] Mostre que a classe de linguagens reconhecidas por Máquinas de Turing, ou seja, a classe de linguagens recursivamente enumeráveis, é fechada sob as operações de: Sejam L 1 e L 2 linguagens recursivamente enumeráveis, tais que existem M.T. s M 1 e M 2 que reconhecem L 1 e L 2, respectivamente. a. União Vamos construir uma M.T. M 3 que reconhece a linguagem L 3 = L 1 L 2.

S S M 3 = Com entrada w: 1. Para i = 1, 2, 3,..., faça: 1.1 Simule M 1 com entrada w por i passos. 1.2 Simule M 2 com entrada w por i passos. 1.3 Se M 1 ou M 2 aceitam, ACEITE. S b. Intersecção Vamos construir uma M.T. M 4 que reconhece a linguagem L 4 = L 1 L 2. M 4 = Com entrada w: 1. Para i = 1, 2, 3,..., faça: 1.1 Simule M 1 com entrada w por i passos. 1.2 Simule M 2 com entrada w por i passos. Se M 1 e M 2 aceitam, ACEITE. c. Concatenação Vamos construir uma M.T. M 5 que reconhece a linguagem L 5 = L 1 L 2. M 5 = Com entrada w = w 1 w 2 w 3...w n, onde n = w e w i é cada um dos caracteres de w: 1. Para k = 1, 2, 3,..., faça: 1.1 Para i de 0 até n, faça: 1.1.1 Simule M 1 com entrada w 1 w 2...w i por k passos. 1.1.2 Simule M 2 com entrada w i+1...w n por k passos. Se M 1 e M 2 aceitam, ACEITE. d. Estrela Vamos construir uma M.T. M 6 que reconhece a linguagem L 6 = L 1 *. M 6 = Com entrada w = w 1 w 2 w 3...w n, onde n = w e w i é cada um dos caracteres de w: 1. K GA @ 2. Para k = 1, 2, 3,..., faça: 2.1 Para i de 0 até n faça: 2.1.1 Simule M 1 com entrada w 1 w 2...w i por k passos. 2.1.2 Se M 1 aceita, então: 2.1.2.1 Simule M 6 com entrada w i+1...w n por k passos. 2.1.2.2 Se M 6 aceita, ACEITE. S Exercício 6 [3.16 Sipser] (!) Mostre que uma linguagem é recursiva se e somente se algum enumerador enumera a linguagem em ordem lexicográfica.

S ( = L 1. Seja L 1 uma linguagem recursiva. Logo, existe uma M.T. M que decide L 1, tal que L(M) Considere * = {s 1, s 2, s 3,...} uma lista de todas as palavras formadas pelo alfabeto ordem lexicográfica. Seja E um enumerador. E = Ignore a entrada: 1. Repita para i = 1, 2, 3,... 1.1 Simule M para cada entrada s 1, s 2, s 3,..., s i, seqüência esta já descrita. 1.2 Se alguma computação aceita, imprima o correspondente s i. ( Seja L 2 uma linguagem tal que existe um enumerador E, onde L(E) = L 2. Seja uma M.T. N com entrada w. Seja E um enumerador, onde L(E ) = L e L = L 2 {u u é uma palavra maior que w} e E imprime palavras em ordem lexicográfica. Vamos construir N. KBF N = Com entrada w: 1. Simule E. Cada vez que E imprime uma palavra w, compare-a com w. 2. Se w = w, ACEITE. 3. Se w < w, REJEITE. Logo, N decide L 2. Assim, L 2 é recursiva. Exercício 7 Prove pelo método da diagonalização que o conjunto das linguagens sobre o alfabeto {0,1} não é enumerável. Justifique todos os passos. Seja o conjunto das linguagens sobre o alfabeto G @ Vamos tomar L i tal que se uma palavra w sobre IKM$L$KBN K à linguagem L i, coloca-se um 1 na i-ésima posição da palavra B. Caso contrário, coloque um 0. A palavra B é a seqüência característica de L. A posição em que irá se colocar o 0 ou o 1 é a posição de w em ordem lexicográfica de *. Ex.: * = { BG G BG G G G BG G@ @ @ } L = { BG 1, 00, 01, 10,...} B = 1 0 1 1 1 1 0 0... Como B é infinita, vamos provar pelo método da diagonalização que B não é enumerável. Sabemos que existe a função f: B K -1 : L @

S Vamos construir um x tal que f(i) IGIOBMO L J Seja x = d 1 d 2 d 3.... Escolha para d i um dígito diferente do i-ésimo dígito de f(i). Então: x será diferente de f(1) no 1º dígito. x será diferente de f(2) no 2º dígito. x será diferente de f(3) no 3º dígito.... x será diferente de f(n) no nº dígito. Portanto, x não está na imagem de f. Contradição. E@