COMPUTABILIDADE. 1. Máquinas de Turing
|
|
- Maria do Loreto Padilha Azevedo
- 7 Há anos
- Visualizações:
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
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 maisModelos 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 maisComputaçã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 maisDraft-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 maisCapí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 maisTeoria 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 maisLinguagens 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 maisAula 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 maisAula 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 maisConceitos 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 maisLinguaguens 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 maisUNIVERSIDADE 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 maisModelos 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 maisTEORIA 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 maisCapí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 maisMá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 maisTeoria 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 maisTeoria 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 maisMá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 maisMelhores 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 maisLinguagem 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 maisMá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 maisProblema 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 maisS. 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 maisLinguagens 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 maisMá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 maisLinguaguens 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 maisLinguagens 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 maisApostila 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 maisFaculdade 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 maisProblemas 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 maisprinting 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 maisCOMPILADORES. 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 maisLinguagens 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 maisComputabilidade 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 maisMarcos 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 maisTeoria 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 maisUniversidade 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 maisModelos 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 maisMá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 maisLinguagens 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 maisAula 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 maisMá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 maisExpressõ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 maisLFA 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 maisAula 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 maisLinguagens 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 maisMá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 maisa 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 maisVariantes 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 maisTuring 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 maisMá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 maisCapí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 maisLinguagens 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 maisModelos 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 maisTó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 maisUNIVERSIDADE 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 maisUNIVERSIDADE 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 maisMá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 maisAulas 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 maisCurso 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 maisGBC015: 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 maisProcedimentos 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 maisAutó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 maisC : 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 maisCapí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 maisLinguagens 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 maisApostila 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 maisLinguagens 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 maisUNIVERSIDADE 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 maisLinguagens 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 maisSCC 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 maisUniversidade 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 maisIntroduçã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 maisTeoria 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 mais1 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 maisLinguagens 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 mais14.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 maisTeoria 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 maisLinguagens 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 maisUNIVERSIDADE 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 maisLinguagens 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 maisTeoria 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 maisTeoria 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 maisLinguagens 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 maisUniversidade 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 maisLinguagens 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 maisApostila 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 maisTeoria 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 maisTerceira 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 maisUm 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 maisECO026 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 maisAlfabeto, 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 maisDado 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 maisUniversidade 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 maisLinguagens 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 maisMatemá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 maisSCC 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 maisIV 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 maisResoluçã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