Teoria da Computação Exame 1 30 de Junho de 2003

Documentos relacionados
printing problem: dado um programa e um valor arbitrários, o problema de determinar se sim ou não se vai obter como output do programa esse valor;

C : R I IN 0. tal que. C(α) = 0 sempre que α I {, ɛ} C(α + β) = C(α) + C(β) + 1. C(αβ) = C(α) + C(β) + 1. C(α ) = C(α) + 1.

Exercícios de Teoria da Computação Computabilidade

Linguagens Formais e Autômatos P. Blauth Menezes

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

Exercícios de Teoria da Computação Computabilidade

Autómatos de pilha e Gramáticas independentes de contexto

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

Autómatos de pilha e GIC

Teoria da Computação I

LINGUAGENS FORMAIS E AUTÔMATOS

Máquina de Turing. Controle finito

Exercícios de Teoria da Computação Computabilidade

Faculdade de Computação

Aulas Práticas. 1ª Aula Prática Perguntas sobre a Implementação de Funções Simples na Máquina URM...1

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

Universidade Federal do Rio de Janeiro Departamento de Ciência da Computação

As linguagens regulares são I.C Proposição Qualquer linguagem regular é independente de contexto.

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

Linguagens Formais e Autômatos P. Blauth Menezes

Linguagens Formais e Autômatos P. Blauth Menezes

Capítulo 2: Procedimentos e algoritmos

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

Autômatos Finitos e Não-determinismo

A. (Autómatos finitos determinísticos e não determinísticos AFD e AFND)

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

Aula 9: Máquinas de Turing

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

Linguagens Formais. Aula 01 - Conceitos Básicos. Prof. Othon Batista Mestre em Informática

Marcos Castilho. DInf/UFPR. 5 de abril de 2018

Expressões e Gramáticas Regulares e Autómatos Finitos

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

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

a * Minimização de AFD AFD equivalente, com o menor número de estados possível

LFA Aula 07. Equivalência entre AFD e AFND. Equivalência entre ER s e AF s Equivalência entre GR s e AF s. Linguagens Formais e Autômatos

UNIVERSIDADE FEDERAL DO ABC

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

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

Linguagens e Programação Automátos Finitos. Paulo Proença

Folha 2 Autómatos e respectivas linguagens

Teoria de Linguagens 2 o semestre de 2015 Professor: Newton José Vieira Primeira Lista de Exercícios Entrega: até 16:40h de 15/9.

Teoria da Computação I

Revisões de Conjuntos

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

Fundamentos da Teoria da Computação

Formas normais. Forma normal de Greibach (FNG) todas as produções são da forma

Teoria da Computação 19 de Abril de 2017 Teste 1A Duração: 1h30

Máquina de Turing. Controle finito

LR's: Lema do Bombeamento e Propriedades de Fechamento

CDI-II. Resumo das Aulas Teóricas (Semana 1) 2 Norma. Distância. Bola. R n = R R R

Apostila 05 Assunto: Linguagens dos tipos 0 e 1

Modelos Universais de Computação

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

Matemática Discreta - 07

Teoria da Computação

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

LFA Aula 08. Minimização de AFD Autômatos Finitos com saídas 25/01/2017. Linguagens Formais e Autômatos. Celso Olivete Júnior.

Capítulo 2. Conjuntos Infinitos

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

Curso: Ciência da Computação Turma: 6ª Série. Teoria da Computação. Aula 4. Autômatos Finitos

Apostila 02. Objetivos: Estudar os autômatos finitos Estudar as expressões regulares Estudar as gramáticas regulares Estudar as linguagens regulares

Lista 1 - Cálculo Numérico - Zeros de funções

Cálculo Numérico BCC760

Geometria Analítica retas equações e inclinações, distância entre dois pontos, área de triângulo e alinhamento de 3 pontos.

Universidade Federal de Alfenas

Aula 10: Decidibilidade

Os números primos de Fermat complementam os nossos números primos, vejamos: Fórmula Geral P = 2 = 5 = 13 = 17 = 29 = 37 = 41 = Fórmula Geral

Aula 10: Decidibilidade

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

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

MAP Primeiro exercício programa Método de Diferenças Finitas para solução de problemas de contorno de equações diferenciais ordinárias

ANÁLISE GRÁFICA E ANALÍTICA DA RETA DE EULER E TRÊS PONTOS NOTÁVEIS, EM TRIÂNGULOS NO ESPAÇO R 2

Matemática Discreta - 07

TEORIA DAS LINGUAGENS 3. GRAMÁTICAS INDEPENDENTES DE CONTEXTO

1 INTRODUÇÃO E CONCEITOS BÁSICOS

Universidade da Madeira Ano lectivo 2006/07-2º semestre Responsável: Prof. José Carmo

Os Limites da Computabilidade. Dois Conceitos Distintos. Tese de Church Turing. O Que É Computável? O Que É Possível De Ser Computado?

LINGUAGENS FORMAIS E AUTÔMATOS. Prova 2-10/06/ Prof. Marcus Ramos

Máquinas de Turing: uma introdução

Aula 7: Autômatos com Pilha

Teoria de Linguagens 2 o semestre de 2017 Professor: Newton José Vieira Primeira Lista de Exercícios Data de entrega: 19/9/2017 Valor: 10 pontos

Sabendo que f(x) é um polinômio de grau 2, utilize a formula do trapézio e calcule exatamente

Linguagens Formais e Autômatos

Linguagens Formais e Autômatos P. Blauth Menezes

IV Gramáticas Livres de Contexto

Teoria de Linguagens 1 o semestre de 2018 Professor: Newton José Vieira Primeira Lista de Exercícios Data de entrega: 17/4/2018 Valor: 10 pontos

Variedades Adicionais das Máquinas de Turing

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

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

Linguaguens recursivamente enumeráveis

Capítulo A máquina de Turing (TM) padrão Combinações de máquinas de Turing A Tese de Turing. ADC/TC/Cap.9/ /LEI/DEIFCTUC 375

Linguagens Formais e Problemas de Decisão

1 Postulado de Church-Turing 1

IBM1088 Linguagens Formais e Teoria da

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

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

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

Determinação de raízes de polinômios: Método de Briot-Ruffini-Horner

Fundamentos da Teoria da Computação

Introdução à Computação Gráfica

Transcrição:

Licenciatura em Engenharia Informática e de Computadores Teoria da Computação Exame 1 30 de Junho de 2003 I.1 a) Considere-se a gramática regular G = (V, I, P, S) onde V = {S, A, B, C, D}, I = {x, y} e P contém as produções S xa yc A xa yb B xb ya x C xd yc D yd xc y Demonstre-se agora que xyxxx L G : S xa xyb xyxb xyxxb xyxxx símbolo inicial S xa A yb B xb B xb B x I.1 b) A expressão regular obtém-se resolvendo o seguinte sistema de equações: S = xa + yc A = xa + yb B = xb + ya + x C = xd + yc D = yd + xc + y B = (x + yx y) x D = (y + xy x) y A = x yb C = y xd B = xb + yx yb + x D = yd + xy xd + y A = x y(x + yx y) x C = y x(y + xy x) y S = xx y(x + yx y) x + yy x(y + xy x) y A expressão regular pretendida é xx y(x + yx y) x + yy x(y + xy x) y. I.1 c) Considere-se a expressão regular (10 10 1 + 0) 10 10 1, ou a expressão equivalente (0 10 10 1) 0 10 10 1.

I.2 a) Comece-se por verificar se abc L A. δ (q 0, abc) = δ(q, c) = δ(q 0, c) δ(q 2, c) = = q δ (q 0,ab) δ (q 0, ab) = δ(q, b) = δ(q 1, b) δ(q 2, b) δ(q 3, b) = {q 0, q 2 } = {q 0, q 2 } q δ (q 0,a) δ (q 0, a) = δ(q, a) = δ(q 0, a) = {q 1, q 2, q 3 } q δ (q 0,ɛ) δ (q 0, ɛ) = {q 0 } Então δ (q 0, abc) F = {q 3 } = pelo que abc / L A. O autómato finito determinista equivalente a A que se obtém por aplicação do algoritmo estudado é D = (Q, I, δ, {q 0 }, F ) onde Q = 2 {q 0,q 1,q 2,q 3 }, I = {a, b, c}, F = {X {q 0, q 1, q 2, q 3 } : q 3 X} = {{q 3 }, {q 0, q 3 }, {q 1, q 3 }, {q 2, q 3 }, {q 0, q 1, q 3 }, {q 0, q 2, q 3 }, {q 1, q 2, q 3 }, {q 0, q 1, q 2, q 3 }} e δ : Q I Q é definida por δ a b c {q 0 } {q 1, q 2, q 3 } {q 1 } {q 0, q 2 } {q 3 } {q 2 } {q 1, q 2, q 3 } {q 3 } {q 0, q 1 } {q 1, q 2, q 3 } {q 0, q 2 } {q 3 } {q 0, q 2 } {q 1, q 2, q 3 } {q 0, q 3 } {q 1, q 2, q 3 } {q 1, q 2 } {q 1, q 2, q 3 } {q 0, q 2 } {q 3 } {q 1, q 3 } {q 0, q 2 } {q 3 } {q 2, q 3 } {q 1, q 2, q 3 } {q 0, q 1, q 2 } {q 1, q 2, q 3 } {q 0, q 2 } {q 3 } {q 0, q 1, q 3 } {q 1, q 2, q 3 } {q 0, q 2 } {q 3 } {q 0, q 2, q 3 } {q 1, q 2, q 3 } {q 1, q 2, q 3 } {q 1, q 2, q 3 } {q 0, q 2 } {q 3 } {q 0, q 1, q 2, q 3 } {q 1, q 2, q 3 } {q 0, q 2 } {q 3 } I.2 b) Obviamente o autómato D tem estados inúteis, nomeadamente, o estado. Logo é claro que existe um autómato finito D com menos estados do que D tal que L D = L D. Para obter D, começa-se por eliminar de D todos os estados inúteis. Por análise da tabela acima e tendo em conta que {q 0 } é o estado

inicial, facilmente se conclui que só são relevantes os estados {q 0 }, {q 1, q 2, q 3 }, {q 0, q 2 } e {q 3 }, e que todos estes são produtivos. Aplica-se agora o algoritmo de procura exaustiva de pares de estados distinguíveis. {q 1, q 2, q 3 } F {q 0, q 2 } F {q 3 } F abc F {q 0 } {q 1, q 2, q 3 } {q 0, q 2 } Começa-se por marcar como distinguíveis usando F os pares em que um dos estados é final, {q 1, q 2, q 3 } ou {q 3 }, e o outro não, {q 0 } ou {q 0, q 2 }. De seguida marca-se também o par formado por {q 1, q 2, q 3 } e {q 3 } usando abc pois o primeiro tem transições definidas para a, b e c e o segundo não. No passo iterativo nada mais é marcado. Em particular, o par formado por {q 0 } e {q 0, q 2 } não é marcado pois ambos têm apenas uma transição pelo símbolo a e ambas levam ao mesmo estado {q 1, q 2, q 3 }. Conclui-se que os estados {q 0 } e {q 0, q 2 } são equivalentes. Logo, tomando S = {{q 0 }, {q 0, q 2 }}, T = {{q 1, q 2, q 3 }} e R = {{q 3 }}, pode construir-se o autómato mínimo D = ({S, T, R}, {a, b, c}, δ, S, {T, R}) onde δ : {S, T, R} {a, b, c} {S, T, R} não total é definida por δ a b c S T T T S R R I.3 a) Considere-se o programa URM seguinte: 1. DEZ[5] 2. S[6] 3. S[2] 4. DIGN[2, 1, 3] 5. J[3, 5, 11] 6. PROD[3, 6, 3] 7. SUM[3, 4, 4] 8. PROD[5, 6, 6] 9. S[2] 10. J[1, 1, 3] 11. T[4, 1]

I.3 b) Pretende-se calcular o programa URM cujo número de Gödel é 2561, ou seja, γ 1 (2561). Toma-se 2561+1=2562 e converte-se em binário 101000000010. Da direita para a esquerda tem-se 1 zero até ao primeiro um, depois 7 zeros até ao segundo um, e finalmente 1 zero até ao último um. Logo o programa pretendido é C 1, C 2, C 3 onde C 1 = C 3 = β 1 (1) e C 2 = β 1 (7). Para calcular β 1 (1), note-se que 1 = 4 0 + 1 pelo que C 1 = C 3 = S[n] com n 1 = 0, ou seja, n = 1. Para calcular β 1 (7), note-se que 7 = 4 1 + 3 pelo que C 2 = J[m, n, q] com ξ(m, n, q) = π(π(m 1, n 1), q 1) = 1. Como 1 + 1 = 2 = 2 1 (2 0 + 1), tem-se que π(m 1, n 1) = 1 e q 1 = 0 pelo que q = 1. Para calcular m e n note-se de novo que 1 + 1 = 2 = 2 1 (2 0 + 1) e portanto tem-se m 1 = 1 e n 1 = 0, ou seja, m = 2 e n = 1. O programa pretendido é portanto S[1], J[2, 1, 1], S[1]. A função binária calculada pelo programa é caracterizada por { x + 3 se y = x + 1 λxy. x + 2 se y x + 1 II.1 a) Seja L a linguagem das sequências do alfabeto {0, 1} cujo número de 0 s é o dobro do número de 1 s, e suponha-se por absurdo que L é regular. Então existe um autómato finito determinista D = (Q, {0, 1}, δ, q o, F ) tal que L D = L. Considere-se então n = #Q e tome-se a sequência w = 0 2n 1 n L D. Como w = 2n + n = 3n n o lema da bombagem garante que existem sequências w 1, w 2 e w 3 tais que w = w 1 w 2 w 3, w 2 ɛ, w 1 w 2 n e w 1 w r 2 w 3 L D para qualquer r 0. Sendo w = w 1 w 2 w 3 e w 1 w 2 n facilmente se conclui que w 1 e w 2 só têm 0 s. Ter-se-á portanto w 1 = 0 i, w 2 = 0 j e w 3 = 0 k 1 n com i + j n, j 0 e i + j + k = 2n. Tome-se por exemplo r = 0. Então w 1 w 0 2 w 3 = w 1 w 3 = 0 i 0 k 1 n = 0 i+k 1 n L D = L, podendo-se concluir que i + k = 2n. Mas como também i + j + k = 2n deverá ter-se j = 0 o que contradiz j 0. Conclui-se que D não existe e portanto a linguagem L não é regular. II.1 b) Dada a gramática regular G = (V, I, P, S) pode construir-se um autómato finito não determinista A tal que L A = L G conforme um dos dois casos descritos de seguida. Se P não contém produções da forma X i, constrói-se A = (V, I, δ, S, F ) com F = {R V : R ɛ P } e define-se δ(r, j) = {T V : R jt P }

Se P contém produções da forma X i, constrói-se A = (V {X F }, I, δ, S, F ) com F = {R V : R ɛ P } {X F } e define-se { {T V : R jt P } se R j / P δ(r, j) = {T V : R jt P } {X F } se R j P II.1 c) Em geral, para obter a partir de A = (Q, I, δ, q 0, F ) um autómato finito não determinista A tal que L A = I \ L A, pode proceder-se da seguinte forma: 1. Começa-se por obter um autómato finito determinista D equivalente a A, tomando D = (2 Q, I, δ, {q 0 }, {X Q : X F }) onde se define δ (X, i) = q X δ(q, i). Obviamente, L D = L A. 2. Notando que a função δ é total, constrói-se o complementar de D, ou seja o autómato finito determinista D = (2 Q, I, δ, {q 0 }, {X Q : X F = }). Obviamente L D = I \ L D. 3. Sendo D determinista, basta agora formulá-lo como não determinista, obtendo A = (2 Q, I, δ, {q 0 }, {X Q : X F = }) com δ(x, i) = {δ (X, i)}. Claramente, L A = L D = I \ L D = I \ L A. II.2 a) A função definida por minimização a partir de λxy. 2y x é λx.µy.( 2y x = 0) Fixado x, µy.( 2y x = 0) define, se existir, o menor y tal que 2y x = 0, ou seja, 2y = x, e 2z x definido para 0 z < y. Esta última condição não levanta qualquer problema pois λxy. 2y x é uma função total. Então, obviamente, existe y tal que 2y = x se e só se x é par, caso em que necessariamente y = x/2. Logo, a função definida por minimização é precisamente { x/2 se x é par λx. indef se x é ímpar II.2 b) Dada a enumeração efectiva γ : P IN o dos programas URM, e denotando por φ n a função de 1 argumento calculada pelo programa γ 1 (n), tem-se que a sequência infinita φ 0, φ 1, φ 2,... é também uma enumeração das funções unárias computáveis. Usando o argumento diagonal de Cantor constróise a função f : IN o IN o da seguinte forma: { φk (k) + 1 se φ f(k) = k (k) 0 se φ k (k) Claramente, tem-se que f φ 0, f φ 1, f φ 2,.... Nomeadamente tem-se que f φ k pois f(k) φ k (k). Em particular, se φ k (k) então f(k) = φ k (k) + 1 φ k (k), e se φ k (k) então f(k) = 0 φ k (k). Conclui-se que f não é computável.