COMPUTABILIDADE. 1. Máquinas de Turing

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

Download "COMPUTABILIDADE. 1. Máquinas de Turing"

Transcrição

1 Licenciatura em Ciências da Computação COMPUTABILIDADE 1. Máquinas de Turing Ano letivo 2011/2012 José Carlos Costa Departamento de Matemática e Aplicações Universidade do Minho

2 Definição de máquina de Turing Definição 1.1 Uma máquina de Turing é um septeto T = (Q, A, T, δ, i, f, ): 1) Q é um conjunto finito não vazio, dito o conjunto de estados de T; 2) A é um alfabeto, chamado o alfabeto (de entrada) de T; 3) T A é um alfabeto, dito o alfabeto da fita de T, tal que Q T =. O conjunto T \ A é chamado o alfabeto auxiliar de T; 4) δ : Q T Q T {E, C, D} é uma função parcial, dita a função transição de T, indefinida em (f, t) para cada t T. Movimentos: E-esquerda; D-direita; C- centro (ausência de movimento); 5) i Q, dito o estado inicial de T; 6) f Q, chamado o estado final de T; 7) T \ A é um símbolo auxiliar, designado o símbolo branco. 1

3 Exemplo 1.2 O septeto T = ({1, 2, 3}, {a, b}, {a, b, }, δ, 1, 3, ) onde δ é a função parcial de {1, 2, 3} {a, b} em {1, 2, 3} {a, b} {E, C, D} tal que δ(1, ) = (2,, D) δ(2, a) = (2, a, D) δ(2, b) = (2, b, D) δ(2, ) = (3,, C) é uma máquina de Turing com: três estados (1, 2 e 3); alfabeto de entrada {a, b}; como único símbolo auxiliar; 1 e 3 como estados inicial e final. A função transição δ pode ser representada pela tabela δ a b 1 (2,, D) 2 (2, a, D) (2, b, D) (3,, C) Na tabela omite-se a linha referente ao estado final pois, por definição, numa máquina de Turing não existem transições a sair do estado final. 2

4 Fita e cursor de máquina de Turing Uma máquina de Turing T = (Q, A, T, δ, i, f, ) é dotada de uma: 1) fita dividida em células, infinita à direita e com uma célula inicial à esquerda. Cada célula tem uma letra de T e em cada instante o número de células não brancas (ou seja células onde não está escrito o símbolo branco ) é finito; 2) cabeça ou cursor (de leitura e escrita) posicionada em cada momento numa determinada célula da fita, que permite ler a letra da célula e eventualmente substituir essa letra por outra. Por exemplo, a figura a b b a q representa a fita de uma máquina de Turing em que nas 1 ā e 5 ā células está escrita a letra a, nas 3 ā e 4 ā células está escrito b e todas as outras estão em 3

5 branco. A seta indica que a cabeça está posicionada na 3 ā célula e a letra q por baixo da seta indica o estado atual da máquina de Turing. A cabeça pode efetuar movimentos determinados pela função transição. Assim, a igualdade δ(q, t) = (q, t, m) significa que, quando a máquina está no estado q com a cabeça posicionada numa célula onde está escrita a letra t: a máquina transita para o estado q, substitui a letra t pela letra t na fita e a cabeça efetua o movimento m (ou seja, move-se para a esquerda, para a direita ou não se move, conforme m seja E, D ou C). 4

6 Exemplo 1.3 Seja T = ({1, 2, 3}, {a, b}, {a, b, }, δ, 1, 3, ) a máquina de Turing cuja função transição δ é dada pela tabela δ a b 1 (2,, D) 2 (2, a, D) (2, a, D) (3,, C) Num dado momento, uma situação possível de fita e de cursor é, por exemplo, a a a b 2 que indica que a máquina está posicionada no estado 2 e o cursor está posicionado na 4 a célula onde está escrita a letra a. Dado que δ(2, a) = (2, a, D), no momento seguinte, a situação de fita e de cursor passará a ser a a a b 2 ou seja, apenas mudou a posição do cursor que se situa agora na 5 a célula. 5

7 Dado que δ(2, b) = (2, a, D), a situação posterior seria então a a a a 2 Note-se que neste passo houve uma alteração da letra na 5 a célula da fita mantendo-se ainda a máquina no estado 2. No próximo passo, usando a igualdade δ(2, ) = (3,, C) obtém-se a a a a 3 Como a máquina atingiu o estado 3, que é o estado final da máquina, não é possível efetuar mais passos. 6

8 Representação gráfica de máquinas de Turing A representação de máquinas de Turing é feita de forma análoga aos autómatos finitos. A única diferença é na representação das transições: δ(q, t) = (q, t, m) é representada por q t/t, m q que tem o seguinte significado: estando a máquina no estado q e lendo a letra t na fita, a máquina transita para o estado q, substitui a letra t por t e a cabeça efetua o movimento m. Por exemplo, o diagrama 1 /, D a/a, D b/b, D 2 /, C 3 representa a máquina de Turing do Exemplo 1.2. Esta máquina não é ainda fundamentalmente diferente de um autómato finito pois não substitui letras na fita por outras diferentes e, com excepção da transição para o estado final, o único 7

9 movimento que faz é para a direita. Veremos mais tarde que, de facto, esta máquina reconhece uma linguagem regular, ou seja, reconhece uma linguagem reconhecida por autómato finito. Um outro exemplo já mais sofisticado de máquina de Turing é apresentado a seguir. Exemplo 1.4 O diagrama a/a, D b/b, D 1 /, D /, C 3 2 /, D 4 5 b/, E 6 a/, D a/a, E b/b, E /, E descreve uma MT cujo alfabeto de entrada contém as letras a e b. Como veremos, esta MT reconhece a linguagem não regular {a n b n n N 0 }. 8

10 Configurações de uma máquina de Turing Seja T = (Q, A, T, δ, i, f, ) uma máquina de Turing. Uma configuração de T é um par ordenado (q, utv) onde q Q, u, v T, t T e: 1) q é o estado atual da máquina; 2) a palavra utv está escrita na fita o mais à esquerda possível (i.e., a 1 ā letra de utv ocupa a 1 ā célula) e todas as células após v estão preenchidas com ; 3) a cabeça está posicionada na célula ocupada pela letra t. Note-se que uma configuração representa a situação da fita e do cursor da MT num dado momento. Por esse facto, a configuração (q, utv) é também notada, por vezes, para cada n N, por (q, utv n ). 9

11 Por exemplo, a configuração (2, a bba) representa a situação a b b a 2 Esta configuração pode ser também representada, por exemplo, por (2, a bba ). Para uma palavra v T, utilizaremos a notação (q, uv), onde q Q e u T, para representar a configuração: (q, utv ) se t T e v T são tais que v = tv ; (q, u ) se v = ɛ. Assim, no exemplo acima a configuração (2, a bba) pode ser representada também por (2, a bba), ou por (2, a bba ), etc. 10

12 Computações numa máquina de Turing Sejam c 1 = (q 1, u 1 t 1 v 1 ) e c 2 = (q 2, u 2 t 2 v 2 ) duas configurações de T. Diz-se que: c 2 é uma computação direta a partir de c 1, e escreve-se c 1 T da configuração c 1 para a configuração c 2 num único passo. c 2, se T passa Assim, no Exemplo 1.3, a configuração (2, aaab) é uma computação direta a partir de (2, aaab) e poderíamos escrever (2, aaab) T (2, aaab). c 2 é uma computação a partir de c 1, e escreve-se c 1 T c 2, se T passa da configuração c 1 para a configuração c 2 em zero ou mais passos; ou seja, se c 1 = c 2 ou c 1 = c 2 para configurações c 1, c 2,..., c n. = c 1 T c 2 T c 3 c n 1 T c n Quando não houver ambiguidade em relação à máquina de Turing T que se está a considerar, simplificaremos as notações de T e de T omitindo a letra T. 11

13 Exemplo 1.5 Seja T a máquina de Turing 1 /, D a/b, D b/a, D 2 /, C 3 do Exemplo 1.2. A partir da configuração (1, aab) podem ser efetuadas em T, sucessivamente, as seguintes computações diretas Portanto (1, aab) (1, aab) (2, aab) (2, bab) (2, bbb) (2, bba ) (3, bba ). (3, bba ) é uma computação em T. 12

14 Linguagem aceite por uma máquina de Turing Seja T = (Q, A, T, δ, i, f, ) uma máquina de Turing. Uma configuração c = (q, utv) de T diz-se uma configuração de: paragem se δ não está definida em (q, t) ou, u = ɛ e δ(q, t) = (q, t, E) para alguns q Q e t T ; aceitação se q = f; rejeição se c é uma configuração de paragem e q f; ciclo se a partir de c não é possível computar uma configuração de paragem. Diz-se ainda que: (i, w) é a configuração inicial associada a uma palavra w A ; 13

15 uma palavra w A é aceite por T se existe uma computação de uma configuração de aceitação a partir da configuração inicial associada a w; ou seja, se existe uma computação (i, w) T (f, utv) para uma certa configuração de aceitação (f, utv). a linguagem aceite ou reconhecida por T, representada por L(T), é o conjunto das palavras aceites por T. Note-se que uma palavra w poderá não ser aceite por uma de duas razões: partindo da configuração inicial associada a w, a máquina de Turing pára numa configuração de rejeição; a máquina de Turing não pára (ou seja, a configuração inicial associada a w é uma configuração de ciclo); 14

16 Exemplo 1.6 Mostraremos neste exemplo como se pode construir uma máquina de Turing que reconhece a linguagem regular L = A abaa sobre o alfabeto A = {a, b}. Um autómato finito determinista que reconhece L é b a a, b a 1 2 b b a 3 4 Então, como se pode verificar sem grandes dificuldades, a seguinte máquina de Turing T reconhece L: a/a, D b/b, D a/a, D b/b, D 0 /, D 1 a/a, D 2 b/b, D 3 a/a, D 4 /, C 5 b/b, D 15

17 Verifiquemos, por exemplo, que T aceita a palavra aaba. Em T podem ser efetuadas as seguintes computações diretas (0, aaba) (1, aaba) (2, aaba) (2, aaba) (3, aaba) (4, aaba ) (5, aaba ). Dado que 5 é o estado final de T, a configuração (5, aaba ) é uma configuração de aceitação. Logo a palavra aaba é aceite por T. Pelo contrário, T não aceita a palavra abba. De facto, (0, abba) (1, abba) (2, abba) (3, abba) (1, abba) (2, abba ). Ou seja, atingiu-se uma configuração de rejeição pois a máquina parou num estado que não é o final e, portanto, a palavra abba não é aceite por T. 16

18 A construção do exemplo anterior pode ser generalizada para todas as linguagens regulares, o que mostra que a classe de linguagens reconhecidas por máquinas de Turing contém a classe das linguagens reconhecidas por autómatos finitos. Teorema 1.7 Toda a linguagem regular é reconhecida por uma máquina de Turing. No entanto, nem todas as linguagens reconhecidas por máquinas de Turing são regulares. Tal é o caso, por exemplo, da linguagem reconhecida pela máquina de Turing do Exemplo 1.4. Apresentaremos de seguida outra destas linguagens. Exemplo 1.8 Seja L = {u A u I = u} a linguagem não regular das palavras capicua sobre o alfabeto A = {a, b}. A seguinte máquina de Turing T reconhece a linguagem L 17

19 a/a, D b/b, D a/, D 2 /, D 0 1 b/, D /, C 5 /, E /, D /, E 3 b/, E 6 a/, E 4 /, D /, D a/a, E b/b, E 7 7 a/a, D b/b, D A máquina T aceita a palavra abba, como o mostra a seguinte computação (0, abba) (1, abba) (2, bba) (4, bb ) (2, bba ) (3, bba) (4, bb ) (1, bb ) (5, b ) (5, b ) (6, b ) (4, ) (1, ) (7, ). Analogamente, pode-se verificar que T aceita aba e não aceita aaba. 18

20 Note-se que a estratégia desta máquina T para verificar se u L, para uma dada palavra u A, é a de iterar o seguinte procedimento: procurar as letras nas extremidades da palavra em análise e verificar se são iguais. Se o forem, estas letras são substituídas pelo símbolo branco e este procedimento repete-se. A máquina parará por uma de três razões: 1) em algum passo do processo as letras inicial e final da palavra em análise são diferentes. Neste caso a palavra u (que não é uma capicua) não é aceite. 2) em algum passo do processo a palavra em análise é a palavra vazia. Neste caso a máquina atinge o estado final (a partir do estado 1) e, portanto, a palavra u (que é uma capicua de comprimento par) é aceite. 3) em algum passo do processo a palavra em análise é uma letra. Neste caso a máquina atinge o estado final (a partir dos estados 3 ou 6) e, portanto, a palavra u (que é uma capicua de comprimento ímpar) é aceite. 19

21 Composição sequencial de máquinas de Turing Sejam T 1 = (Q 1, A, T, δ 1, i 1, f 1, ) e T 2 = (Q 2, A, T, δ 2, i 2, f 2, ) duas máquinas de Turing com Q 1 Q 2 =. A composição sequencial de T 1 com T 2 é a MT T 1 T 2 = (Q 1 Q 2, A, T, δ, i 1, f 2, ) cuja função transição δ é definida por i) q Q 1 t T, se δ 1 (q, t) está definido, então δ(q, t) = δ 1 (q, t); ii) t T, δ(f 1, t) = (i 2, t, C); iii) q Q 2 t T, se δ 2 (q, t) está definido, então δ(q, t) = δ 2 (q, t). Informalmente, a máquina de Turing T 1 T 2 : i) atua como a máquina T 1 quando está posicionada num estado de Q 1 \ {f 1 }; ii) passa para i 2 sem alterar a situação da fita quando está posicionada em f 1 ; iii) atua como a máquina T 2 quando está posicionada num estado de Q 2. 20

22 Na representação de máquinas de Turing serão usadas as seguinte notações: 1) T 1 T 2 para representar a composição sequencial de T 1 com T 2. 2) T 1 a/a,c T 2 (onde a T ) para representar a composição sequencial condicional de T 1 com T 2 : isto é, a composição sequencial em que a condição ii) é substituída pela condição ii ) δ(f 1, a) = (i 2, a, C). a/a,c 3) q T 2 e q T 2 (onde q Q 1 e a T ) para representar a máquina de Turing que se comporta como T 1 até atingir o estado q e depois comporta-se como T 2 (no segundo caso o cursor tem que ler um a). a/a,c 4) T 1 e q T 1 q (onde q Q 2 e a T ) com um significado simétrico em relação ao do ponto anterior. As máquinas de Turing que apresentamos de seguida são frequentemente utilizadas para construir novas MTs, usando composição sequencial. As computações que realizam são úteis para fazerem parte de computações mais complexas. 21

23 Exemplo 1.9 (Cópia de palavras) Construamos uma máquina de Turing T copiar = (Q, A, T, δ, i, f, ) capaz de, ao partir da configuração inicial associada a uma palavra u, efetuar uma cópia de u na fita, colocando um símbolo branco entre o original e a cópia, ficando a cabeça posicionada na 1 a célula. Ou seja, T copiar deverá ser capaz de efetuar a seguinte computação (i, u) (f, u u) onde u A é uma palavra qualquer sobre o alfabeto de entrada. Admitamos que o alfabeto de entrada é A = {a, b} (para alfabetos mais genéricos constroem-se máquinas de Turing análogas) e que α e β são letras do alfabeto auxiliar (que vão estar associadas a a e b respetivamente). estratégia da máquina, indicada abaixo, é a de copiar uma letra de u de cada vez, substituindo as letras já copiadas pelo correspondente símbolo auxiliar. 22 A

24 a/a, D b/b, D a/a, D b/b, D /, D 0 1 /, E b/β, D 9 /, C 8 a/α, D 2 α/α, D β/β, D 6 /, D a/a, E b/b, E 5 /, D 3 /, E 7 /a, E 4 /b, E a/a, E b/b, E α/a, E β/b, E a/a, D b/b, D a/a, D b/b, D Por exemplo, em T copiar pode efetuar-se a seguinte computação (0, ba) (1, ba) (6, βa) (6, βa ) (7, βa ) (4, βa b) (5, βa b) (5, βa b) (1, βa b) (2, βα b) (3, βα b) (3, βα b ) (4, βα ba) (4, βα ba) (5, βα ba) (1, βα ba) (8, βα ba) (8, βa ba) (8, ba ba) (9, ba ba). 23

25 Exemplo 1.10 (Apagar letras) Construamos uma máquina de Turing T apagar = (Q, A, T, δ, i, f, ) que apague a letra que o cursor está a ler, ou seja, que faça a computação (i, utv) (f, uv) em que u (A { }), t A { } e v A. Admitamos que A = {a, b} e que o único símbolo auxiliar é. A máquina começa por substituir a letra t a apagar pelo símbolo branco, desloca o cursor para a última letra de v e move sucessivamente cada letra de v uma célula para a esquerda. 24

26 a/a, E a/, D b/, D /, D 0 1 a/a, D b/b, D /, E a/, E a/b, E b/a, E b/, E 4 /a, C /b, C b/b, E /, C Como exercício calcule, por exemplo, a sequência de computações em T apagar a partir de (0, babbaab). 25

27 Cálculo de funções com máquinas de Turing Seja T = (Q, A, T, δ, i, f, ) uma máquina de Turing e seja g : A T uma função parcial. Diz-se que T calcula g quando, para cada u A : se g está definida para u, então pode ser efetuada a computação (i, u) T (f, g(u)). se g não está definida para u, então não é possível computar uma configuração de aceitação a partir da configuração inicial associada a u. 26

28 Mais geralmente, para um natural k e uma função parcial em k variáveis g : (A ) k T, diz-se que T calcula g quando, para cada u 1,..., u k A : se g(u 1,..., u k ) está definida, então pode ser efetuada a computação (i, u 1 u k ) T (f, g(u 1,..., u k )). se g(u 1,..., u k ) não está definida, então não é possível computar uma configuração de aceitação a partir da configuração (i, u 1 u k ). Sejam k N, A e T alfabetos com A T e g : (A ) k T uma função parcial em k variáveis. Diz-se que g é uma função Turing-computável se existe uma máquina de Turing, de alfabeto de entrada A e alfabeto de fita contendo T, que calcula g. 27

29 Exemplo 1.11 (Concatenação de palavras) Seja A = {a, b} e seja conc : A A A a função de concatenação de duas palavras de A. Uma MT, T conc, que calcula esta função é obtida utilizando a máquina T apagar, que apaga a letra da célula apontada pelo cursor. Pretende-se que T conc realize a computação (i, u v) (f, uv) para cada u, v A. A ideia é que a máquina T conc, apresentada abaixo, /, D a/a, D b/b, D 0 1 /, C a/a, E b/b, E a/a, E b/b, E /, E T apagar 2 apague o símbolo branco que separa as palavras u e v. /, C 3 Logo a função de concatenação sobre o alfabeto {a, b} é Turing-computável. Em geral, prova-se que a função de concatenação sobre qualquer alfabeto é Turing-computável. 28

30 Funções numéricas podem também ser descritas por máquinas de Turing desde que se consiga representar os números através de palavras. Para funções envolvendo o conjunto N 0 dos inteiros não negativos, utilizaremos a representação unária no alfabeto {1}, em que n N 0 é representado pela palavra 1 n = 1 1. }{{} n vezes Seja T = (Q, {1}, T, δ, i, f, ) uma máquina de Turing e seja g : N k 0 N 0 uma função parcial. Diz-se que T calcula g quando, para n 1,..., n k N 0 : se g(n 1,..., n k ) está definida, então pode ser efetuada a computação (i, 1 n 1 1 n k ) T (f, 1 g(n 1,...,n k ) ). se g(n 1,..., n k ) não está definida, então não é possível computar uma configuração de aceitação a partir da configuração (i, 1 n 1 1 n k). 29

31 Exemplo 1.12 (Adição em N 0 ) Consideremos a função + : N 0 N 0 N 0 de adição em N 0. A seguinte máquina de Turing calcula + /, D 1/1, D 0 1 /, C 1/1, E 1/1, E /, E T apagar 2 /, C 3 onde T apagar é a máquina de Turing que apaga a letra lida pelo cursor. 30

32 Seja L uma linguagem sobre um alfabeto A. A função característica de L é a função χ L : A {0, 1} definida, para cada u A, por χ L (u) = 1 se u L 0 se u L. Exemplo 1.13 Sejam A = {a, b} e L = a b. A seguinte máquina de Turing calcula χ L. a/, E a/a, D b/b, D 3 b/, E /, D 4 /1, E /, D /, E /, D a/, E 7 5 a/, E b/, E b/, E /, D /0, E 31

33 A afirmação seguinte, enunciada pela primeira vez por Alonzo Church na década de 1930 e conhecida como tese de Church ou tese de Church-Turing, embora não seja um enunciado matemático preciso e, por isso, não possa ser provado é geralmente aceite como válido pois não há qualquer evidência de que esteja errado. Tese de Church Qualquer função que pode ser calculada por um processo algorítmico, por pessoas ou computadores, é Turing-computável. Variantes de máquinas de Turing O modelo de máquina de Turing que temos vindo a estudar admite várias alternativas possíveis. Consideraremos de seguida duas dessas alternativas. 32

34 1) Máquinas de Turing com mais do que uma fita Uma máquina de Turing com l fitas é um septeto T = (Q, A, T, δ, i, f, ) similar a uma MT usual, mas com l fitas independentes, cada uma com o seu cursor, em que a função transição δ é uma função parcial δ : Q T l Q T l {E, C, D} l. Uma configuração de T é um (l + 1)-tuplo ordenado (q, u 1 v 1,..., u l v l ) onde q Q e u i, v i T, em que: q é o estado atual de T; para cada i {1,..., l} a (i + 1)-ésima componente representa a situação da i-ésima fita e do cursor correspondente. 33

35 A configuração inicial associada a uma palavra u A é (i, u,,..., ). As noções de computação direta, computação, configuração de paragem (resp. de aceitação, de rejeição, de ciclo) são similares às noções correspondentes para máquinas de Turing usuais. Uma palavra u A é aceite por T se (i, u,,..., ) T (f, v 1 w 1,..., v l w l ) para alguns v 1,..., v l, w 1,..., w l T, ou seja, se existe uma computação de uma configuração de aceitação a partir da configuração inicial de u. A linguagem aceite ou reconhecida por T, é o conjunto das palavras L A formado pelas palavras aceites por T. 34

36 Exemplo 1.14 Seja A = {a, b} e seja T a seguinte MT sobre A com 2 fitas, (a, )/(a, a), (D, D) (b, )/(b, b), (D, D) (b, a)/(b, a), (C, E) (b, b)/(b, b), (C, E) (, )/(, ), (D, D) (, )/(, ), (C, C) 4 (, )/(, ), (E, E) (a, b)/(a, b), (E, D) 2 3 (b, )/(b, ), (C, D) (a, b)/(a, b), (E, D) (b, a)/(b, a), (E, D) A linguagem aceite por T é {a n b n n N}. efetuar-se a seguinte computação Por exemplo, em T pode (0, aabb, ) (1, aabb, ) (1, aabb, aabb ) (2, aabb, aabb) (2, aabb, aabb) (3, aabb, aabb) (3, aabb, aabb) (3, aabb, aabb) (4, aabb, aabb) (4, aabb, aabb ) (5, aabb, aabb ). 35

37 Sendo k N e g : (A ) k T uma função parcial em k variáveis, diz-se que T calcula g quando, para cada u 1,..., u k A : se g(u 1,..., u k ) está definida, então pode ser efetuada a computação (i, u 1 u 2 u k,,..., ) T (f, g(u 1,..., u k ), v 2 w 2,..., v l w l ) para alguns v 2,..., v l, w 2,..., w l T. se g(u 1,..., u k ) não está definida, então não é possível computar uma configuração de aceitação a partir da configuração (i, u 1 u k,,..., ). Teorema 1.15 As máquinas de Turing usuais e as máquinas de Turing com l fitas reconhecem as mesmas linguagens e calculam as mesmas funções. 36

38 2) Máquinas de Turing não-deterministas Uma máquina de Turing não-determinista é um septeto T = (Q, A, T, δ, i, f, ) definido de forma similar a uma máquina de Turing usual com excepção da função transição δ que é da forma δ : Q T P(Q T {E, C, D}). As noções de computação, de aceitação de palavras e linguagens, e de cálculo de funções são similares às correspondentes noções para as máquinas de Turing usuais. 37

39 A diferença entre as máquinas de Turing não-deterministas e as máquinas de Turing usuais é que a partir de uma dada configuração: nas máquinas de Turing usuais só pode ser efetuada, no máximo, uma computação direta; nas máquinas de Turing não-deterministas podem ser efetuadas, eventualmente, várias computações diretas. Teorema 1.16 As máquinas de Turing usuais e as máquinas de Turing não-deterministas reconhecem as mesmas linguagens e calculam as mesmas funções. 38

40 Linguagens recursivas e linguagens recursivamente enumeráveis Seja L A uma linguagem e seja T uma máquina de Turing com alfabeto de entrada A. Diz-se que: T aceita ou reconhece L se L = L(T); T decide L se a função característica χ L : A {0, 1} é calculada por T. Uma linguagem L diz-se: recursivamente enumerável se existe uma máquina de Turing que reconhece L; recursiva se existe uma máquina de Turing que decide L. 39

41 Proposição 1.17 Uma linguagem L A é recursiva se e só se existe uma máquina de Turing T (dita um algoritmo) que reconhece L e tal que a configuração inicial de qualquer palavra u L é uma configuração de rejeição. Demonstração: ( ) Se L é recursiva, então existe uma MT que decide L. A partir desta MT é fácil construir uma outra que reconheça L. ( ) A partir da configuração inicial associada a uma palavra u A atinge-se sempre uma configuração de paragem. Esta configuração é de aceitação se u L e é de rejeição se u L. Modifica-se então a máquina de Turing T de forma que: a partir de uma configuração de aceitação em T se escreva 1 na 2 ā célula da fita, deixando todas as outras células em branco e o cursor na 1 ā célula; a partir de uma configuração de rejeição em T se escreva 0 na 2 ā célula da fita, deixando todas as outras células em branco e o cursor na 1 ā célula; Esta nova MT calcula χ L, a função característica de L, donde L é recursiva. 40

42 Corolário 1.18 Todas as linguagens recursivas são recursivamente enumeráveis. São válidas ainda as seguintes propriedades. Proposição 1.19 Sejam L e K linguagens sobre um alfabeto A. i) Se L e K são recursivas (resp. recursivamente enumeráveis), então L K e L K são recursivas (resp. recursivamente enumeráveis). ii) Se L é recursiva, então L é recursiva. Demonstração: A ideia em i) é considerar máquinas de Turing T L e T K que decidam (resp. aceitem) L e K, respetivamente, e construir uma máquina de Turing com conjunto de estados Q L Q K (onde Q L e Q K são os conjuntos de estados de T L e T K respetivamente) e com duas fitas, que executa em simultâneo segundo T L e T K. A alínea ii) é imediata. 41

43 Teorema [Post, 1943] Uma linguagem L A é recursiva se e só se L e L são recursivamente enumeráveis. Seja A um alfabeto e sejam RE(A) o conjunto das linguagens recursivamente enumeráveis sobre A e T (A) o conjunto das máquinas de Turing de alfabeto de entrada A. O conjunto T (A) é numerável. Logo RE(A) também é numerável pois cada linguagem de RE(A) é reconhecida por uma máquina de Turing de T (A). O teorema seguinte mostra que as linguagens recursivamente enumeráveis formam uma ínfima parte do conjunto de todas as linguagens. Teorema 1.20 Existem linguagens não recursivamente enumeráveis sobre qualquer alfabeto A. Mais precisamente, o conjunto das linguagens não recursivamente enumeráveis sobre A tem o cardinal do contínuo. Demonstração: Basta notar que o conjunto RE(A) é numerável, enquanto que P(A ), o conjunto de todas as linguagens sobre A, tem o cardinal do contínuo. 42

44 Máquinas de Turing Universais Convenção Assume-se que existem dois conjuntos numeráveis Q = {q 0, q 1, q 2,...} e S = {s 0, s 1, s 2,...} tais que, para cada máquina de Turing, T = (Q, A, T, δ, i, f, ) se tem: Q Q, com f = q 0 ; T S, com = s 0. Diz-se que T é normalizada se todos os estados e todos os símbolos não brancos de T pertencem a alguma transição. Note-se que cada máquina de Turing é equivalente a alguma máquina de Turing normalizada. 43

45 Definição 1.21 (função codificadora) Define-se uma função injetiva c : T N {x, y} T c(t) que associa a cada máquina de Turing T (normalizada) uma palavra c(t) sobre o alfabeto {x, y}, chamada o código de T, da seguinte forma: 1) a cada q i Q, s i S e movimentos C, E, D é associada uma palavra sobre {x} da seguinte forma: c (s i ) = x i+1 c (q i ) = x i+1 c (C) = x c (E) = x 2 c (D) = x 3. Note-se que, em particular, c ( ) = c (s 0 ) = x e c (f) = c (q 0 ) = x. 44

46 2) cada transição e de uma máquina de Turing, descrita por δ(q, t) = (q, t, m) é codificada pela palavra c (e) = c (q)yc (t)yc (q )yc (t )yc (m)y. 3) cada máquina de Turing T é codificada pela palavra c(t) = c (q i )yc (e 1 )yc (e 2 ) yc (e k )y, onde q i é o estado inicial de T e e 1, e 2,..., e k são as transições de T numa ordem fixa previamente. Para além disso, cada palavra w = r 1 r 2 r n, onde cada r i S, é codificada por c(w) = yyc (r 1 )yc (r 2 ) yc (r n )y. Note-se que, devido ao prefixo yy de c(w), quando se tem uma sequência c(t)c(w), fica claro quando c(t) acaba. 45

47 Exemplo 1.22 Seja T a máquina de Turing i /, D a/b, D b/a, D p /, C f que percorre uma dada palavra sobre o alfabeto {a, b} trocando cada a por b e vice-versa. Suponhamos, para simplificar, que i = q 1, p = q 2 (e f = q 0 ), a = s 1, b = s 2 (e = s 0 ), e que as 4 transições são tomadas na ordem em que aparecem no grafo (da esquerda para a direita e de cima para baixo). A 1 a transição e 1, descrita por δ(i, ) = (p,, D), i.e., δ(q 1, s 0 ) = (q 2, s 0, D) é codificada por x 2 yxyx 3 yxyx 3 y, enquanto que T é codificada por x 2 }{{} c (q 1 ) y x 2 yxyx 3 yxyx 3 y }{{} c (e 1 ) y x 3 yx 2 yx 3 yx 3 yx 3 y }{{} c (e 2 ) 46 y x 3 yx 3 yx 3 yx 2 yx 3 y }{{} c (e 3 ) y x 3 yxyxyxyxy }{{} c (e 4 ) y.

48 Teorema 1.23 (Turing, 1936) Existe uma máquina de Turing T U sobre o alfabeto {x, y} tal que, para qualquer máquina de Turing T =(Q, A, T, δ, i, f, ) e qualquer palavra w A, T U simula o processamento de w por T, isto é, 1) T aceita w se e só se T U aceita c(t)c(w). Neste caso, se a saída para w em T é u, então a saída para c(t)c(w) em T U é c(u). 2) T entra em ciclo com w se e só se T U entra em ciclo com c(t)c(w). Uma máquina de Turing T U nas condições do Teorema anterior é chamada uma máquina de Turing universal. O comportamento de uma destas máquinas é exemplificado de seguida. Seja T a máquina do Exercício 1.26, /, D b/b, D q 1 q 2 a/b, E /, E b/b, E q 3 /, C q 0 47

49 Simularemos o processamento da palavra w = baa pela máquina T. Consideraremos uma máquina T U com 3 fitas: a 1 ā fita é a fita de entrada: é iniciada com a palavra c(t)c(w). Esta fita é também a de saída: se T aceita w, então T U aceita c(t)c(w) e o conteúdo final da 1 ā fita de T U é o código do conteúdo final da fita de T. a 2 ā fita é a que simula o funcionamento de T: contém o código do conteúdo da fita de T num dado instante. a 3 ā fita contém o código do estado atual da máquina T. Note-se que c(baa) = y 2 x 3 yx 2 yx 2 y. As 3 fitas de T U são portanto iniciadas como segue: c(t) c(baa) { }} { { }} { x x y x x y x y x x x y x y x x x y y y y y y x x x y x x y x x y 48

50 A máquina T U : começa por copiar c(baa) para a 2 ā fita (excepto o prefixo yy), escrevendo ainda xy como prefixo para representar o símbolo que está na 1 ā célula da fita de T; depois copia o xx, que codifica o estado inicial de T, para a 3 ā fita e apaga-o da 1 ā fita; coloca os cursores das 3 fitas na posição 2. x x y x y x x x y x y x x x y y y y y y x x x y x x y x x y x y x x x y x x y x x y x x A 3 ā fita indica que T está atualmente no estado q 1 e o cursor da 2 ā fita indica que o cursor da fita de T está a ler o símbolo. Assim, T U vai procurar na 1 ā fita o quíntuplo (de potências de x, separadas pelo símbolo y) que codifica a transição cujas duas primeiras componentes correspondem a estes dados. 49

51 Neste exemplo, por acaso, o cursor da 1 ā fita já está colocado na posição correspondente aos dados das outras fitas. Agora, o quíntuplo da 1 ā fita diz que: na máquina T o novo estado passa a ser o q 2, o símbolo deve ser mantido; o cursor deve mover-se para a direita. Logo, a máquina T U transforma as 3 fitas e o resultado é o seguinte: x x y x y x x x y x y x x x y y y y y y x x x y x x y x x y x y x x x y x x y x x y x x x Como resultado da próxima iteração, obter-se-ia x x y x y x x x y x y x x x y y y y y y x x x y x x y x x y x y x x x y x x y x x y x x x 50

52 e a seguir x x y x y x x x y x y x x x y y y y y y x x x y x x y x x y x y x x x y x x x y x x y x x x x O processo é iterado até que a máquina T U detete, na 3 ā fita, que a máquina T chegou ao estado final q 0. Então T U copia o conteúdo da 2 ā fita para a 1 ā (depois de apagar esta) e vai para o seu estado final. A situação final das 3 fitas seria a seguinte: x y x x x y x x x y x x y x y x x x y x x x y x x y x Portanto a situação final da fita da máquina T é bba. 51

53 De seguida apresenta-se exemplos concretos de uma linguagem não recursivamente enumerável e de uma linguagem recursivamente enumerável que não é recursiva. Seja NãoAutoAceite, também denotado por N AA, o seguinte subconjunto de {x, y} : onde NãoAutoAceite = NAA 1 NAA 2 NAA 1 = {w {x, y} w = c(t) e T não reconhece w} NAA 2 = {w {x, y} w c(t) para toda a máquina de Turing T }. Seja ainda AutoAceite o complemento AA = {x, y} \ NAA de NãoAutoAceite em {x, y}, ou seja, AutoAceite = {w {x, y} w = c(t) e T reconhece w}. 52

54 Teorema 1.24 NãoAutoAceite é uma linguagem não recursivamente enumerável. Demonstração: Suponhamos que existe uma máquina de Turing T 0 que aceita NAA, ou seja, T 0 aceita uma palavra w {x, y} se e só se w NAA. (1) Seja w 0 = c(t 0 ) e consideremos a questão: T 0 aceita w 0? Se T 0 aceita w 0, então w 0 NAA por (1). Como w 0 = c(t 0 ) e w 0 NAA, então w 0 NAA 1. Logo T 0 não aceita w 0, o que é uma contradição. Se T 0 não aceita w 0, então w 0 NAA 1 e portanto w 0 NAA. Logo T 0 aceita w 0 por (1), o que é uma contradição. Em ambos os casos atinge-se uma contradição. Por isso, a máquina T 0 não existe e NAA não é recursivamente enumerável. 53

55 A seguir mostra-se que a linguagem AA é reconhecida por máquinas de Turing, mas cada máquina dessas entra em ciclo pelo menos para uma entrada w AA. Teorema 1.25 A linguagem AutoAceite é recursivamente enumerável mas não é recursiva. Demonstração: Seja w {x, y}. Tem-se w AA w = c(t) e T aceita w, para alguma máquina T w = c(t) e T U aceita c(t)c(w), onde T U é uma MT universal w = c(t) e T U aceita wc(w). Constrói-se uma máquina de Turing T 1 (provar que existe) que rejeite w se w não é código de alguma MT e que deixe na fita wc(w) se w = c(t) para alguma máquina T. Então AA é reconhecida pela máquina T 1 T U. Portanto AA é recursivamente enumerável. Que AA não é recursiva é consequência do teorema anterior. De facto, se AA fosse recursiva, então AA = NAA seria também recursiva. 54

COMPUTABILIDADE 2. Indecidibilidade

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

Leia mais

Modelos Universais de Computação

Modelos Universais de Computação Modelos Universais de Computação 1 Equivalência entre Variantes de TM TM s definem naturalmente uma classe. Toda variante razoável de TM define a mesma classe de linguagens. (reforça a Tese Church-Turing)

Leia mais

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

Computação efectiva. Que linguagens podem ser reconhecidas por algum tipo de autómato? Computação efectiva Que linguagens podem ser reconhecidas por algum tipo de autómato? O que é ser computável? Que linguagens são computáveis? Existem linguagens que não são computáveis? Isto é, existem

Leia mais

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

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

Leia mais

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

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

Leia mais

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

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

Leia mais

Linguagens recursivamente enumeráveis

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

Leia mais

Aula 9: Máquinas de Turing

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

Leia mais

Aula 7: Autômatos com Pilha

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

Leia mais

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 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.

Leia mais

Linguaguens recursivamente enumeráveis

Linguaguens recursivamente enumeráveis Linguaguens 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,

Leia mais

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

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

Leia mais

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

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

Leia mais

TEORIA DAS LINGUAGENS 3. GRAMÁTICAS INDEPENDENTES DE CONTEXTO

TEORIA DAS LINGUAGENS 3. GRAMÁTICAS INDEPENDENTES DE CONTEXTO LICENCIATURA EM CIÊNCIAS DA COMPUTAÇÃO TEORIA DAS LINGUAGENS 3. GRAMÁTICAS INDEPENDENTES DE CONTEXTO José Carlos Costa Dep. Matemática e Aplicações Universidade do Minho Braga, Portugal 31 de Maio de 2010

Leia mais

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

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

Leia mais

Máquina de Turing. Controle finito

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

Leia mais

Teoria das Linguagens. Linguagens Formais e Autómatos (Linguagens)

Teoria das Linguagens. Linguagens Formais e Autómatos (Linguagens) Teoria das Lic. em Ciências da Computação Formais e Autómatos () Carla Mendes Dep. Matemática e Aplicações Universidade do Minho 2010/2011 Teoria das - LCC - 2010/2011 Dep. Matemática e Aplicações - Univ.

Leia mais

Teoria da Computação

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

Leia mais

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

Máquinas Universais. Departamento de Ciência de Computadores da FCUP MC Aula 23 1 Máquinas Universais Um modelo de computação diz-se universal se todo o problema efectivamente computável o for nesse modelo. Um modelo universal é suficientemente poderoso para se aceitar a si próprio:

Leia mais

Melhores momentos AULA PASSADA. Complexidade Computacional p. 136

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

Leia mais

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

Linguagem Universal. assim como a entrada ser processada por a. (b) A segunda fita de representa a fita de Linguagem Universal 1. Uma máquina de Turing representa um PC? Ou representa um possível problema que um PC pode resolver? 2. Uma máquina de Turing pode ser utilizada para simular uma de Turing máquina.

Leia mais

Máquinas de Turing: uma introdução

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

Leia mais

Problema A Codificação Símbolos Dado um inteiro n, n é N representação de inteiros 0,1,...,b - 1 numa base b Dado um grafo G, G é conexo?

Problema A Codificação Símbolos Dado um inteiro n, n é N representação de inteiros 0,1,...,b - 1 numa base b Dado um grafo G, G é conexo? 2 Linguagens Uma linguagem de programação, ou uma língua natural como o Português ou o Inglês, pode ser vista como um conjunto de sequências de símbolos, pertencentes a um conjunto finito. Em Português

Leia mais

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

S. C. Coutinho. Máquina de Turing Universal p. 1/22 Máquina de Turing Universal S. C. Coutinho Máquina de Turing Universal p. 1/22 Objetivo Descrever uma máquina de Turing U, capaz de simular qualquer outra máquina de Turing M. Para isto a máquina deve

Leia mais

Linguagens Regulares. Prof. Daniel Oliveira

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

Leia mais

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

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

Leia mais

Linguaguens recursivamente enumeráveis e recursivas

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

Leia mais

Linguagens Formais e Autômatos P. Blauth Menezes

Linguagens Formais e Autômatos P. Blauth Menezes Linguagens Formais e Autômatos P. Blauth Menezes blauth@inf.ufrgs.br Departamento de Informática Teórica Instituto de Informática / UFRGS Linguagens Formais e Autômatos - P. Blauth Menezes 1 Linguagens

Leia mais

Apostila 05 Assunto: Linguagens dos tipos 0 e 1

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

Leia mais

Faculdade de Computação

Faculdade de Computação UNIVERSIDADE FEDERAL DE UBERLÂNDIA Faculdade de Computação Disciplina : Teoria da Computação - 1 0 Semestre 007 Professora : Sandra Aparecida de Amo Solução da Lista de Exercícios n o 1 Exercícios de Revisão

Leia mais

Problemas Computáveis

Problemas Computáveis Indecidibilidade Problemas Computáveis Máquinas de Turing ou Problemas Computáveis ou Linguagens Recursivamente Enumeráveis LER (*) podem ser divididas em 2 classes: as MT que sempre param (Algoritmos),

Leia mais

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;

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; 1 Introdução 1 No texto que se segue vão ser apresentados resultados sobre não decidibilidade de alguns predicados (sobre os naturais). Para certos predicados vai ser apresentada uma prova de que não é

Leia mais

COMPILADORES. Revisão Linguagens formais Parte 01. Geovane Griesang

COMPILADORES. Revisão Linguagens formais Parte 01. Geovane Griesang Universidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES Revisão Linguagens formais Parte 01 geovanegriesang@unisc.br Legenda: = sigma (somatório) = delta ε = épsilon λ = lambda

Leia mais

Linguagens Formais - Preliminares

Linguagens Formais - Preliminares Linguagens Formais - Preliminares Regivan H. N. Santiago DIMAp-UFRN 25 de fevereiro de 2007 Regivan H. N. Santiago (DIMAp-UFRN) Linguagens Formais - Preliminares 25 de fevereiro de 2007 1 / 26 Algumas

Leia mais

Computabilidade e Complexidade (ENG10014)

Computabilidade e Complexidade (ENG10014) Sistemas de Informação Computabilidade e Complexidade (ENG10014) Profa. Juliana Pinheiro Campos E-mail: jupcampos@gmail.com Modelo de computação poderoso concebido pelo matemático britânico Alan Turing

Leia mais

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

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

Leia mais

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

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

Leia mais

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

Universidade Federal do Rio de Janeiro Departamento de Ciência da Computação Universidade Federal do Rio de Janeiro Departamento de Ciência da Computação Não são aceitas respostas sem justificativa. Explique tudo o que você fizer. Linguagens Formais o semestre de 999 Primeira Prova

Leia mais

Modelos de Computação

Modelos de Computação Modelos de Computação 2.ano LCC e LERSI URL: http://www.ncc.up.pt/~nam/aulas/0405/mc Escolaridade: 3.5T e 1P Frequência:Semanalmente serão propostos trabalhos aos alunos, que serão entregues nas caixas

Leia mais

Máquinas de Turing (MT)

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

Leia mais

Linguagens Formais e Autômatos P. Blauth Menezes

Linguagens Formais e Autômatos P. Blauth Menezes Linguagens Formais e Autômatos P. Blauth Menezes blauth@inf.ufrgs.br Departamento de Informática Teórica Instituto de Informática / UFRGS Linguagens Formais e Autômatos - P. Blauth Menezes 1 Linguagens

Leia mais

Aula 10: Decidibilidade

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

Leia mais

Máquina de Turing e máquina de Turing universal

Máquina de Turing e máquina de Turing universal Máquina de Turing e máquina de Turing universal Rodrigo Santos de Souza 1 Universidade Católica de Pelotas - UCPel Mestrado em Ciência da Computação Disciplina de Teoria da Computação Prof. Antônio Carlos

Leia mais

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

Expressões e Gramáticas Regulares e Autómatos Finitos Folha Prática Expressões e Gramáticas Regulares e Autómatos Finitos 1 Expressões e Gramáticas Regulares e Autómatos Finitos Expressões Regulares e Autómatos Finitos 1. Determine e implemente computacionalmente

Leia mais

LFA Aula 05. AFND: com e sem movimentos 05/12/2016. Linguagens Formais e Autômatos. Celso Olivete Júnior.

LFA Aula 05. AFND: com e sem movimentos 05/12/2016. Linguagens Formais e Autômatos. Celso Olivete Júnior. LFA Aula 05 AFND: com e sem movimentos vazios 05/12/2016 Celso Olivete Júnior olivete@fct.unesp.br www.fct.unesp.br/docentes/dmec/olivete/lfa 1 Na aula passada... Reconhecedores genéricos Autômatos finitos

Leia mais

Aula 10: Decidibilidade

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

Leia mais

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

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

Leia mais

Máquinas de Turing - Computabilidade

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

Leia mais

a n Sistemas de Estados Finitos AF Determinísticos

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

Leia mais

Variantes de Máquinas de Turing

Variantes de Máquinas de Turing Variantes de Máquinas de Turing 1 Máquinas de Turing Input-Output TM s Input/output (ou IO ou transdutoras) diferem de TM s reconhecedoras por terem um estado de parada neutro q halt, ao invés de estados

Leia mais

Turing e Complexidade

Turing e Complexidade (baseado em material da disciplina PCS2214) PMR2300 Escola Politécnica da Universidade de São Paulo Máquina de Turing Máquina de Turing: modelo mais poderoso de computador, proposto pelo inglês Alan M.

Leia mais

Máquina de Turing. Controle finito

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

Leia mais

Capítulo 2: Procedimentos e algoritmos

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

Leia mais

Linguagens livres de contexto e autômatos de pilha

Linguagens livres de contexto e autômatos de pilha Capítulo 6: Linguagens livres de contexto e autômatos de pilha José Lucas Rangel, maio 1999 6.1 - Introdução. Os aceitadores, ou reconhecedores, das linguagens livres de contexto são os chamados autômatos

Leia mais

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

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

Leia mais

Tópicos de Matemática. Teoria elementar de conjuntos

Tópicos de Matemática. Teoria elementar de conjuntos Tópicos de Matemática Lic. em Ciências da Computação Teoria elementar de conjuntos Carla Mendes Dep. Matemática e Aplicações Universidade do Minho 2010/2011 Tóp. de Matemática - LCC - 2010/2011 Dep. Matemática

Leia mais

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

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO Prof.ª Danielle Casillo Proposta por Alan Turing em 1936; É universalmente conhecida e aceita como formalização de algoritmo; Teoria

Leia mais

UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA

UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA Máquina de Turing Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado e Gomes da Costa yandre@din.uem.br Teoria da Computação Ciência da Computação

Leia mais

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

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

Leia mais

Aulas 10 e 11 / 18 e 20 de abril

Aulas 10 e 11 / 18 e 20 de abril 1 Conjuntos Aulas 10 e 11 / 18 e 20 de abril Um conjunto é uma coleção de objetos. Estes objetos são chamados de elementos do conjunto. A única restrição é que em geral um mesmo elemento não pode contar

Leia mais

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 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

Leia mais

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

GBC015: INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Teoria de Algoritmos: Computabilidade e Máquina de Turing GBC015: INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Teoria de Algoritmos: Computabilidade e Máquina de Turing Ilmério Reis da Silva ilmerio@ufu.br www.facom.ufu.br/~ilmerio/icc UFU/FACOM/BCC Funções Def. Função

Leia mais

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

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

Leia mais

Autómatos determísticos de k-pilhas

Autómatos determísticos de k-pilhas Autómatos determísticos de k-pilhas dados de entrada a a a3 an controlo finito (S, Σ, Γ, δ, Z, s 0, F ) δ (S Σ Γ k ) (S, (Γ ) k ) Departamento de Ciência de Computadores da FCUP MC Aula 3 Dados um estado

Leia mais

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

C : R I IN 0. tal que. C(α) = 0 sempre que α I {, ɛ} C(α + β) = C(α) + C(β) + 1. C(αβ) = C(α) + C(β) + 1. C(α ) = C(α) + 1. PROPOSIÇÃO: Para cada expressão regular α R I existe um autómato finito determinista D tal que L(α) = L D. Prova (esboço): Prova-se, por indução na complexidade das expressões regulares α R I que, para

Leia mais

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

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 Capítulo 9 Máquinas de Turing 9.1. A máquina de Turing (TM) padrão 9.2. Combinações de máquinas de Turing 9.3. A Tese de Turing ADC/TC/Cap.9/2009-10/LEI/DEIFCTUC 375 Linguagens regulares Autómatos finitos

Leia mais

Linguagens Formais e Autômatos P. Blauth Menezes

Linguagens Formais e Autômatos P. Blauth Menezes Linguagens Formais e Autômatos P. Blauth Menezes blauth@inf.ufrgs.br Departamento de Informática Teórica Instituto de Informática / UFRGS Linguagens Formais e Autômatos - P. Blauth Menezes 1 Linguagens

Leia mais

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

Apostila 01 Fundamentação da Teoria da Computação e Linguagens Formais Cursos: Bacharelado em Ciência da Computação e Bacharelado em Sistemas de Informação Disciplinas: (1493A) Teoria da Computação e Linguagens Formais, (4623A) Teoria da Computação e Linguagens Formais e

Leia mais

Linguagens Formais e Autômatos

Linguagens Formais e Autômatos Linguagens Formais e Autômatos (notas da primeira aula 1 Definições básicas 1.1 Conjuntos Definição 1. Um conjunto é uma coleção de objetos, denominados elementos. Notação 1. Para indicar que um elemento

Leia mais

UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA

UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA Máquina de Turing Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado e Gomes da Costa yandre@din.uem.br Teoria da Computação Ciência da Computação

Leia mais

Linguagens Formais e Autômatos 02/2016. LFA Aula 04 16/11/2016. Celso Olivete Júnior.

Linguagens Formais e Autômatos 02/2016. LFA Aula 04 16/11/2016. Celso Olivete Júnior. LFA Aula 04 Autômatos Finitos 16/11/2016 Celso Olivete Júnior olivete@fct.unesp.br 1 Classificação das Linguagens segundo Hierarquia de Chomsky Máquina de Turing Máquina de Turing com fita limitada Autômato

Leia mais

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

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

Leia mais

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

Universidade Federal de Uberlândia Mestrado em Ciência da Computação Universidade Federal de Uberlândia Mestrado em Ciência da Computação Solução da 1 a Prova de Teoria da Computação - 05/05/2010 Questão 1 (Valor = 7 pontos) Um número real é dito algébrico se é raiz de

Leia mais

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

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

Leia mais

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

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

Leia mais

1 INTRODUÇÃO E CONCEITOS BÁSICOS

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

Leia mais

Linguagens Formais e Problemas de Decisão

Linguagens Formais e Problemas de Decisão Linguagens Formais e Problemas de Decisão Mário S. Alvim (msalvim@dcc.ufmg.br) Fundamentos de Teoria da Computação (FTC) DCC-UFMG (2018/02) Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Formais e Problemas

Leia mais

14.1 Linguagens decidíveis ou Turing reconhecíveis

14.1 Linguagens decidíveis ou Turing reconhecíveis Linguagens decidíveis ou Turing reconhecíveis Problemas decidíveis para Linguagens Regulares Teorema Seja A linguagem A DFA é decidível A DFA = {A : A é um DFA e aceita } Dem Basta mostrar como construir

Leia mais

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

Teoria da Computação Exame 1 30 de Junho de 2003 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

Leia mais

Linguagens Formais e Autômatos (LFA)

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

Leia mais

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

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO TEORIA DA COMPUTAÇÃO Aula 02 Introdução à Teoria da Computação Prof.ª Danielle Casillo Linguagem: é uma forma precisa de expressar

Leia mais

Linguagens Formais e Autômatos P. Blauth Menezes

Linguagens Formais e Autômatos P. Blauth Menezes Linguagens Formais e Autômatos P. Blauth Menezes blauth@inf.ufrgs.br Departamento de Informática Teórica Instituto de Informática / UFRGS Linguagens Formais e Autômatos - P. Blauth Menezes 1 Linguagens

Leia mais

Teoria da Computação. Computabilidade e complexidade computacional

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

Leia mais

Teoria da Computação. Máquinas de Turing: variações

Teoria da Computação. Máquinas de Turing: variações Teoria da Computação Máquinas de Turing: variações 1 Máquina de Turing Modelo mais completo, feito com circuitos digitais http://aturingmachine.com 2 Máquina de Turing Modelo mais simplificado, feito com

Leia mais

Linguagens Livres de Contexto

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

Leia mais

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

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

Leia mais

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

Linguagens Formais. Aula 01 - Conceitos Básicos. Prof. Othon Batista Mestre em Informática Linguagens Formais Aula 01 - Conceitos Básicos Prof. Othon Batista Mestre em Informática Sumário Introdução à Linguagem Alfabeto Cadeias de Símbolos, Palavras Tamanho de Palavra Prefixo, Sufixo ou Subpalavra

Leia mais

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

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

Leia mais

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

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

Leia mais

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

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

Leia mais

Um alfabeto é um conjunto de símbolos indivisíveis de qualquer natureza. Um alfabeto é geralmente denotado pela letra grega Σ.

Um alfabeto é um conjunto de símbolos indivisíveis de qualquer natureza. Um alfabeto é geralmente denotado pela letra grega Σ. Linguagens O conceito de linguagem engloba uma variedade de categorias distintas de linguagens: linguagens naturais, linguagens de programação, linguagens matemáticas, etc. Uma definição geral de linguagem

Leia mais

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

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

Leia mais

Alfabeto, Cadeias, Operações e Linguagens

Alfabeto, Cadeias, Operações e Linguagens Linguagens de Programação e Compiladores - Aula 3 1 Alfabeto, Cadeias, Operações e Linguagens 1.Conjuntos Para representar um determinado conjunto é necessário buscar uma notação para representá-lo e ter

Leia mais

Dado um inteiro positivo n, definimos U(n) como sendo o conjunto dos inteiros positivos menores que n e primos com n. Não é difícil ver que a

Dado um inteiro positivo n, definimos U(n) como sendo o conjunto dos inteiros positivos menores que n e primos com n. Não é difícil ver que a Exemplo (U(n)) Dado um inteiro positivo n, definimos U(n) como sendo o conjunto dos inteiros positivos menores que n e primos com n. Não é difícil ver que a multiplicação módulo n é uma operação binária

Leia mais

Universidade Federal de Alfenas

Universidade Federal de Alfenas Universidade Federal de Alfenas Linguagens Formais e Autômatos Aula 15 Máquinas de Turing (parte 2) humberto@bcc.unifal-mg.edu.br Última Aula Uma Máquina de Turing (MT) possui: uma fita infinita para representar

Leia mais

Linguagens Formais e Autômatos Decidibilidade

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

Leia mais

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

Matemática Discreta para Ciência da Computação Matemática Discreta para Ciência da Computação P. Blauth Menezes blauth@inf.ufrgs.br Departamento de Informática Teórica Instituto de Informática / UFRGS Matemática Discreta para Ciência da Computação

Leia mais

SCC 205 Teoria da Computação e Linguagens Formais

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

Leia mais

IV Gramáticas Livres de Contexto

IV Gramáticas Livres de Contexto IV Gramáticas Livres de Contexto Introdução Definições de GLC 1 G = (Vn, Vt, P, S) onde P = {A α A Vn α (Vn Vt) + } 2 GLC ε - LIVRE : S ε pode pertencer a P, desde que: S seja o símbolo inicial de G S

Leia mais

Resolução Exe 2.12 Monolítico Recursivo

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

Leia mais