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 pode ou não parar parar num estado não final. 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 enumeráveis Departamento de Ciência de Computadores da FCUP MC Aula 22 1
Linguagens recursivas Uma linguagem diz-se recursiva ou decidível se existe uma máquina de Turing que a reconhece, isto é, uma que máquina pára para todos os dados e: num estado final se a palavra dada pertence à linguagem num estado não final se a palavra dada não pertence à linguagem. D: classe de linguagens recursivas Proposição 22.1. D SD. Dem. Se L D então existe uma MT M que a reconhece. E portanto em particular aceita L. Departamento de Ciência de Computadores da FCUP MC Aula 22 2
Decidibilidade e semi-decidibilidade Embora normalmente se use indiferentemente os termo recursiva/ decidível e recursivamente enumerável/semi-decidível os primeiros devem aplicar-se a linguagens e os segundos a propriedades dessas linguagens. Seja P uma propriedade sobre palavras e L uma linguagem, então: P é decidível {x P (x)} é recursiva L é recursiva x L é decidível P é semi-decidível {x P (x)} é r.e. L é r.e x L é semi-decidível Departamento de Ciência de Computadores da FCUP MC Aula 22 3
Máquinas de Turing e Autómatos Finitos Proposição 22.2. Se L é regular (L R) então L é recursiva. (L D). Dem. Seja L = L(A) e A = (S, Σ, δ, s 0, F ) um AFD então, e M = (S {s f }, Σ, Σ { }, δ M, s 0,, {s f }) δ M (s, a) = (s, a, ) se δ(s, a) = s δ M (s, ) = (s f,, ), se s F. Então M reconhece L. (Verifica!) Departamento de Ciência de Computadores da FCUP MC Aula 22 4
Máquinas de Turing e Autómatos de Pilha Proposição 22.3. recursiva. (L D). Se L é independente de contexto (L I C ) então L é Dem. (Ideia da demonstração) Dado um autómato de pilha P = (S, Σ, Γ, δ, Z 0, F ) que aceita L por estados finais constrói-se uma MT M que dado x, simula P com dados x: começa por colocar no fim dos dados, o símbolo Z 0, que representa o topo da pilha. Departamento de Ciência de Computadores da FCUP MC Aula 22 5
volta para trás e processa os dados: estando no estado s, para cada símbolo lido a, tem de verificar qual o símbolo do topo da pilha (fim direito dos caracteres não brancos) (Z), e se δ(s, a, Z) = (s, γ), escreve γ ao contrário a partir da posição em que Z estava, passa para o estado s e anda para trás para ler o próximo símbolo de entrada. Se γ = ɛ, apaga o último caracter (escreve um branco). quando terminar os dados e se estiver num estado final de P, muda para o estado (novo) final de M. Nota, que tem de se introduzir vários estados extra para percorrer a fita entre os dados e a pilha...e tem de se ir marcando os símbolos dos dados já lidos. Exercício 22.1. Termina a demonstração anterior... Departamento de Ciência de Computadores da FCUP MC Aula 22 6
Comparação dos modelos de computação Memória Acesso dados Modelo Gramáticas Linguagens Finita Fixo Autómatos Finitos Regulares R Ilimitada Topo da pilha Autómatos de Pilha Independentes de Contexto I C Ilimitada Sequencial (não restrito) Máquinas de Turing Tipo 0 SD R I C SD Departamento de Ciência de Computadores da FCUP MC Aula 22 7
Técnicas para escrever MTs Pode ser conveniente supor que o controlo finito e a fita tem alguma estrutura.isto não altera em nada o modelo da máquina de Turing básica. Múltiplas pistas Os símbolos da fita tem pistas, isto é, são tuplos de símbolos que a cabeça reconhece simultaneamente: [a,x]. Neste caso um dos símbolos pode servir de marca, sem se perder a informação de qual o símbolo que estava. Exemplo: Se cada célula com os dados for da forma [a, ], a Σ e os brancos [, ], durante o processamento podemos marcar as células com [a, X], X Γ, sem apagar o a... Controlo finito com memória finita Os estados podem ser da forma [s, A], onde A representa um (ou mais) símbolo de Γ que se pretende memorizado (por exemplo, para recordar o último símbolo lido).isto reduz o número de estados necessários e torna o seu significado mais expĺıcito. Departamento de Ciência de Computadores da FCUP MC Aula 22 8
Restrições/Extensões de MTs Várias modificações da máquina de Turing básica são possíveis sem que o modelo de computação obtido seja nem mais nem menos poderoso. Alfabeto Qualquer alfabeto pode ser codificado noutro com apenas dois símbolos. Aridade das funções que calculam Existem codificações bijectivas de N n em N. Para n = 2, p(x, y) = (x+y)(x+y+1) 2 + x Movimentos da cabeça {, } ou {,, } (esquerda/não mexe/direita) Tamanho da fita Duplamente infinita ou semi-infinita Departamento de Ciência de Computadores da FCUP MC Aula 22 9
Número e tipo de fitas múltiplas fitas de leitura/escrita; uma escrita de saída e uma fita de leitura/escrita; uma fita de leitura e múltiplas fitas de leitura/escrita; Determinísticas/Não determinísticas Outros modelos equivalentes Autómatos (determinísticos) de 2-pilhas Máquinas RAM: modelo abstracto de um computador com uma memória infinita Departamento de Ciência de Computadores da FCUP MC Aula 22 10
MTs com movimentos {,, } Se M 1 é uma MT com movimentos {, } também é uma MT com movimentos {,, }. Inversamente, seja M 2 = (S 2, Σ 2, Γ 2, δ 2, s 2,, F 2 ) uma MT com movimentos {,, }. Define-se M 1 com movimentos {, }.Quando a cabeça de M 2 fica parada, M 1 deve entrar num estado especial e movimentar-se uma célula para direita e outra para a esquerda, voltando à mesma célula de tal modo que simule o facto de M 2 não se mexer. M 1 = (S 1, Σ 1, Γ 1, δ 1, [s 2, X],, F 1 ) S 1 = {[s, X], [s, Y ] s S 2 }, F 1 = F 2 {X, Y }, Σ 1 = Σ 2, Γ 1 = Γ 2 δ 1 define-se por, a Γ 1, s S 2,: δ 1 ([s, X], a) = ([s, X], a, ), se δ 2 (s, a) = (s, a, ) δ 1 ([s, X], a) = ([s, X], a, ) se δ 2 (s, a) = (s, a, ) δ 1 ([s, X], a) = ([s, Y ], a, ) se δ 2 (s, a) = (s, a, ) δ 1 ([s, Y ], a) = ([s, X], a, ) Departamento de Ciência de Computadores da FCUP MC Aula 22 11
MTs com k fitas de leitura/escrita Uma máquina de Turing com k fitas, k > 1, consiste num controlo finito com k cabeças, uma para cada uma das k fitas. Num movimento, muda de estado escreve um símbolo em cada uma das células que estão debaixo de cada cabeça move cada cabeça, independentemente, para a esquerda ou para a direita ou não mexe Departamento de Ciência de Computadores da FCUP MC Aula 22 12
Inicialmente a sequência de entrada encontra-se na primeira fita e todas as outras estão em branco. Proposição 22.4. Se uma linguagem L é aceite por uma MT com k fitas, então L é aceite por uma MT com uma única fita. Dem. L = L(M 1 ) com k fitas.construímos M 2 com uma fita e 2k pistas:para cada uma das k fitas a primeira pista contém o conteúdo da fita correspondente de M 1 e a segunda está em branco excepto para a célula actualmente lida pela cabeça correspondente de M 1 Se k = 2 cabeça 1 X...... fita 1 a 1 a 2... a i... a m cabeça 2... X... fita 2 b 1 b 2... b i... b m Σ 2 ({X, } Σ 1 ) k Departamento de Ciência de Computadores da FCUP MC Aula 22 13
Para simular um movimento de M 1, M 2 tem de visitar, da esquerda para a direita, os k indicadores. Um estado de M 2 contém: o estado de M 1 o número de de indicadores (símbolos X) à direita da cabeça de M 2 :n i cada um dos k-símbolos de Γ 1 que estão a ser lidos por M 1 Quando n i = 0 então M 2 pode efectuar o movimento de M 1 : a cabeça de M 2 percorre a fita da esquerda para a direita, e sempre que encontra um indicador modifica o símbolo lido e movimenta o indicador de acordo com o movimento da cabeça correspondente em M 1. Quando já actualizou todos os indicadores, M 2 muda o estado correspondente a M 1. Se o novo estado de M 1 é um estado final, o de M 2 também o é. Departamento de Ciência de Computadores da FCUP MC Aula 22 14
Máquinas de Turing não determinísticas Uma máquina de Turing é não determinística (MTND) se dado um estado e um símbolo lido, existirem várias hipóteses para o movimento seguinte, δ (S Γ) (S Γ {, }) Uma MT não determinística aceita a sequência de entrada se existe uma sequência de escolhas de movimentos que conduza a um estado de aceitação (final). Uma MT ND não aceita os dados se nenhuma sequência de escolhas conduz a um estado final ou se não pára. Analogamente, definem-se os conceitos de função calculada ou linguagem reconhecida. Em contraste, as MT definidas anteriormente denominam-se determinísticas (MTD) Departamento de Ciência de Computadores da FCUP MC Aula 22 15
Passos de computação não-determinística Departamento de Ciência de Computadores da FCUP MC Aula 22 16
Equivalência entre MTND e MTD Proposição 22.5. Se L é aceite por uma máquina de Turing não determinística, M 1, então L é aceite por alguma máquina de Turing determinística, M 2. Dem. Temos de ter especial cuidado porque M 1 pode não parar. Para cada estado e símbolo de fita de M 1, existe um número finito de escolhas para o movimento seguinte. (transições) Estas escolhas podem ser numeradas 1, 2,... Seja r o número máximo de escolhas de um par estado-símbolo. Então qualquer sequência finita de escolhas pode ser representado por uma sequência de dígitos de 1 a r. Construímos M 2 com 3 fitas. 1. contém a sequência de entrada. 2. gera sequências de dígitos de 1 a r dum modo sistemático, as Departamento de Ciência de Computadores da FCUP MC Aula 22 17
mais curtas primeiro e entre de igual tamanho por ordem numérica: 1,...,r,11,...1r,...,21,...,2r,...,111,...,rrr,... 3. Para cada sequência gerada na segunda fita, M 2 copia a sequência de entrada para a terceira fita e simula M 1 nessa fita, usando a sequência da segunda fita para decidir os movimentos de M 1. Nota que cada sequência de escolhas corresponde a uma sequência de configurações de M 1. Departamento de Ciência de Computadores da FCUP MC Aula 22 18
Deste modo M 2 simula sucessivamente todas as sequências de k movimentos de M 1, k = 1, 2,... 1,2,11,12,21, 111,112,113,121,122,211,212,213,1111,... M 2 explora a árvore de configurações de M 2 em largura. 4. Se M 1 atinge um estado de aceitação, então M 2 aceita.se nenhuma sequência de escolhas conduz a M 1 aceitar, M 2 também não aceita. Nota que: é essencial a ordem porque são geradas as possíveis sequências de escolhas (em largura e não em profundidade) de modo a evitar a simulação de um conjunto de escolhas infinito... A máquina determinística executa num tempo exponencialmente maior do que a máquina não-determinística. não se sabe se existe uma simulação polinomial de MTND em MTD.. Departamento de Ciência de Computadores da FCUP MC Aula 22 19
Complexidade temporal duma MT O tempo de execução duma máquina de Turing M com dados w é o número de passos efectuados por M até parar. A complexidade temporal de M é a função T (n) = max { p } p é o número de passos efectuados por M até parar com dados w e w = n Claro que poderá ser T (n) =, para alguns valores de n! Especialmente importantes são: a classe de máquinas de Turing (determinísticas) para as quais T (n) é polinomial: Departamento de Ciência de Computadores da FCUP MC Aula 22 20
os problemas correspondentes podem ser eficientemente resolvidos por computador (classe P) classe de máquinas de Turing não-determinísticas para as quais T (n) é polinomial:os problemas correspondentes podem pelo menos ser resolvidos em tempo exponencial por computador (classe NP) Modelo de computação MTD k-fitas O(n 2 ) MTND O(c n ), c > 1 Simulação de n passos numa MTD 1 fita Não se sabe se as MTNDs têm de ser exponencialmente mais lentas que as MTD, em particular se P NP! Mais pormenores na disciplina de Complexidade... Departamento de Ciência de Computadores da FCUP MC Aula 22 21
Leituras [HMU00] (Cap 8.2.5,8.3.1-2,8.4,8.5.1) [Mor96] Referências [HMU00] John E. Hopcroft, Rajeev Motwani, and Jeffrey D. Ullman. Introduction to Automata Theory, Languages and Computation. Addison Wesley, 2nd edition, 2000. [Mor96] Nelma Moreira. Computabilidade: uma introdução. Technical report, Departamento de Ciência de Computadores da FCUP, 1996. Departamento de Ciência de Computadores da FCUP MC Aula 22 22