SlideShare una empresa de Scribd logo
1 de 89
Descargar para leer sin conexión
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 Formais e Autômatos
                                                     P. Blauth Menezes

                      1       Introdução e Conceitos Básicos
                      2       Linguagens e Gramáticas
                      3       Linguagens Regulares
                      4       Propriedades das Linguagens Regulares
                      5       Autômato Finito com Saída
                      6       Linguagens Livres do Contexto
                      7       Propriedades e Reconhecimento das Linguagens
                              Livres do Contexto
                      8       Linguagens Recursivamente Enumeráveis e
                               Sensíveis ao Contexto
                      9       Hierarquia de Classes e Linguagens e Conclusões




Linguagens Formais e Autômatos - P. Blauth Menezes                              2
8 - Linguagens Recursivamente
        Enumeráveis e Sensíveis ao
                 Contexto
     8.1 Máquina de Turing
     8.2 Modelos Equivalentes à Máquina de Turing
     8.3 Hipótese de Church
     8.4 Máquina de Turing como Reconhecedor
     8.5 Propriedades das Linguagens Recursivamente
         Enumeráveis e Recursivas
     8.6 Gramática Irrestrita
     8.7 Linguagem Sensível ao Contexto
     8.8 Máquina de Turing com Fita Limitada

Linguagens Formais e Autômatos - P. Blauth Menezes    3
8 - Linguagens Recursivamente
 Enumeráveis e Sensíveis ao Contexto
Linguagens Formais e Autômatos - P. Blauth Menezes   4
8 Linguagens Recursivamente
  Enumeráveis e Sensíveis ao Contexto
◆    Ciência da Computação
     • conhecimento sistematizado relativo à computação

◆    Origem da Ciência da Computação: remota
     • antiga Grécia: III a.C - desenho de algoritmos por Euclides
     • Babilônia: estudos sobre complexidade e reducibilidade de
       problemas
     • início do século XX: pesquisas com o objetivo de definir
        ∗ modelo computacional suficientemente genérico
        ∗ capaz de implementar qualquer função computável

Linguagens Formais e Autômatos - P. Blauth Menezes                   5
◆    Alan Turing (1936) propôs um modelo
     • Máquina de Turing

     • aceito como uma formalização de
        ∗ procedimento efetivo
        ∗ algoritmo ou
        ∗ função computável

     • algoritmo
        ∗ seqüência finita de instruções
        ∗ podem ser realizadas mecanicamente
        ∗ em um tempo finito




Linguagens Formais e Autômatos - P. Blauth Menezes   6
◆    Alonzo Church (1936)
     • Hipótese de Church

            qualquer função computável pode ser processada por uma
                               máquina de Turing
           ∗ existe um procedimento expresso na forma de uma máquina de
             Turing capaz de processar a função

     • como a noção intuitiva de procedimentos não é matematicamente
       precisa
        ∗ impossível demonstrar formalmente se a máquina de Turing é,
          de fato, o mais genérico dispositivo de computação
        ∗ mostrado: todos os demais modelos propostos possuem, no
          máximo, a mesma capacidade computacional


Linguagens Formais e Autômatos - P. Blauth Menezes                        7
◆    Resumidamente, uma máquina de Turing
     • autômato
     • fita não possui tamanho máximo
     • pode ser usada simultaneamente como dispositivo de entrada, de
       saída e de memória de trabalho

◆    Linguagens Recursivamente Enumeráveis ou Tipo 0
     • aceitas por uma máquina de Turing
     • segundo a Hipótese de Church, a Classe das Linguagens
       Recursivamente Enumeráveis
        ∗ conjunto de todas as linguagens
        ∗ que podem ser reconhecidas mecanicamente
        ∗ em um tempo finito



Linguagens Formais e Autômatos - P. Blauth Menezes                      8
◆    Gramática Irrestrita
     • sem restrições sobre a forma das produções

     • mesmo poder computacional que o formalismo Máquina de Turing



◆    Conseqüência importante do estudo das linguagens
     recursivamente enumeráveis


          existem mais problemas não-solucionáveis do que problemas
                                solucionáveis




Linguagens Formais e Autômatos - P. Blauth Menezes                    9
◆    Classe das Linguagens Recursivamente Enumeráveis
     • inclui algumas para as quais é
        ∗ impossível determinar mecanicamente
        ∗ se uma palavra não pertence à linguagem

     • se L é uma destas linguagens, então
        ∗ para qualquer máquina de Turing M que aceita L
        ∗ existe pelo menos uma palavra w não pertencente a L que
        ∗ ao ser processada por M, a máquina entra em loop infinito

     • ou seja
        ∗ se w pertence a L, M pára e aceita a entrada
        ∗ se w não pertence a L, M pode parar, rejeitando a palavra ou
          permanecer processando indefinidamente


Linguagens Formais e Autômatos - P. Blauth Menezes                       10
◆    Linguagens Recursivas
     • subclasse da Classe das Linguagens Enumeráveis
       Recursivamente

     • existe pelo menos uma máquina de Turing que pára para qualquer
       entrada, aceitando ou rejeitando




Linguagens Formais e Autômatos - P. Blauth Menezes                  11
◆    Linguagens Sensíveis ao Contexto ou Tipo 1
     • aceitas por uma Máquina de Turing com Fita Limitada
        ∗ máquina de Turing com limitação no tamanho da fita (finita)
        ∗ exercício: diferença para o Autômato Finito?

◆    Gramática Sensível ao Contexto
     • em oposição a “livre do contexto”: lado esquerdo das produções
        ∗ pode ser uma palavra de variáveis ou terminais
        ∗ definindo um "contexto" de derivação

◆    Classe das Linguagens Sensíveis ao Contexto
     • contida propriamente na Classe das Linguagens Recursivas
     • classe especialmente importante
        ∗ inclui a grande maioria das linguagens aplicadas

Linguagens Formais e Autômatos - P. Blauth Menezes                      12
Universo de Todas as Linguagens

                                 Linguagens Enumeráveis Recursivamente


                                                 Linguagens Recursivas


                                        Linguagens Sensíveis ao Contexto

                                           Linguagens Livres do Contexto



                                                 Linguagens Regulares




Linguagens Formais e Autômatos - P. Blauth Menezes                         13
8 - Linguagens Recursivamente
 Enumeráveis e Sensíveis ao Contexto
     8.1 Máquina de Turing
         8.1.1 Noção Intuitiva
         8.1.2 Modelo
     8.2 Modelos Equivalentes à Máquina de Turing
     8.3 Hipótese de Church
     8.4 Máquina de Turing como Reconhecedor
     8.5 Propriedades das Linguagens Recursivamente
          Enumeráveis e Recursivas
     8.6 Gramática Irrestrita
     8.7 Linguagem Sensível ao Contexto
     8.8 Máquina de Turing com Fita Limitada

Linguagens Formais e Autômatos - P. Blauth Menezes    14
8.1 Máquina de Turing
◆    Noção de algoritmo não é matematicamente precisa
◆    Intuitivamente, deve possuir
     • descrição finita

     • passos
        ∗ discretos (em oposição ao contínuo)
        ∗ executáveis mecanicamente
        ∗ em um tempo finito




Linguagens Formais e Autômatos - P. Blauth Menezes      15
8 - Linguagens Recursivamente
 Enumeráveis e Sensíveis ao Contexto
     8.1 Máquina de Turing
         8.1.1 Noção Intuitiva
         8.1.2 Modelo
     8.2 Modelos Equivalentes à Máquina de Turing
     8.3 Hipótese de Church
     8.4 Máquina de Turing como Reconhecedor
     8.5 Propriedades das Linguagens Recursivamente
          Enumeráveis e Recursivas
     8.6 Gramática Irrestrita
     8.7 Linguagem Sensível ao Contexto
     8.8 Máquina de Turing com Fita Limitada

Linguagens Formais e Autômatos - P. Blauth Menezes    16
8.1.1             Noção Intuitiva
◆    Máquina de Turing (Alan Turing, 1936)
     • mecanismo simples

     • formaliza a idéia de uma pessoa que realiza cálculos

     • lembra os computadores atuais
        ∗ embora proposta anos antes do primeiro computador digital

◆    Modelo máquina de Turing
     • no mínimo, mesmo poder computacional

     • de qualquer computador de propósito geral



Linguagens Formais e Autômatos - P. Blauth Menezes                    17
◆    Ponto de partida de Turing
     • uma pessoa
     • com um instrumento de escrita e um apagador
     • realiza cálculos em uma folha de papel, organizada em quadrados

◆    Inicialmente, a folha de papel
     • contém somente os dados iniciais do problema

◆    Trabalho da pessoa: seqüências de operações simples
     •   ler um símbolo de um quadrado
     •   alterar um símbolo em um quadrado
     •   mover os olhos para outro quadrado
     •   fim dos cálculos
           ∗ representação satisfatória para a resposta desejada

Linguagens Formais e Autômatos - P. Blauth Menezes                   18
◆    Hipóteses aceitáveis
     • natureza bidimensional do papel não é essencial para os cálculos
        ∗ fita infinita organizada em quadrados

     • conjunto de símbolos: finito
        ∗ possível utilizar seqüências de símbolos




Linguagens Formais e Autômatos - P. Blauth Menezes                        19
◆    Hipóteses aceitáveis (pessoa)
     • conjunto de estados da mente durante o cálculo
        ∗ finito
        ∗ dois em particular: "estado inicial" e "estado final"

     • o comportamento, a cada momento, é determinado pelo
        ∗ estado presente
        ∗ símbolo para o qual sua atenção está voltada

     • pessoa é capaz de
        ∗ observar e alterar o símbolo de apenas um quadrado
        ∗ transferir sua atenção para um dos quadrados adjacentes




Linguagens Formais e Autômatos - P. Blauth Menezes                  20
8 - Linguagens Recursivamente
 Enumeráveis e Sensíveis ao Contexto
     8.1 Máquina de Turing
         8.1.1 Noção Intuitiva
         8.1.2 Modelo
     8.2 Modelos Equivalentes à Máquina de Turing
     8.3 Hipótese de Church
     8.4 Máquina de Turing como Reconhecedor
     8.5 Propriedades das Linguagens Recursivamente
          Enumeráveis e Recursivas
     8.6 Gramática Irrestrita
     8.7 Linguagem Sensível ao Contexto
     8.8 Máquina de Turing com Fita Limitada

Linguagens Formais e Autômatos - P. Blauth Menezes    21
8.1.2             Modelo
◆    Constituído de três partes
     • Fita, usada simultaneamente como dispositivo de
        ∗ entrada, saída e memória de trabalho

     • Unidade de Controle
       ∗ reflete o estado corrente da máquina
       ∗ possui uma unidade de leitura e gravação (cabeça da fita)
       ∗ acessa uma célula da fita de cada vez
       ∗ se movimenta para a esquerda ou para a direita

     • Programa, Função Programa ou Função de Transição
        ∗ define: estado da máquina
        ∗ comanda: leituras, gravações e sentido de movimento (cabeça)


Linguagens Formais e Autômatos - P. Blauth Menezes                   22
◆    Fita: finita à esquerda e infinita à direita
     • infinita: “tão grande quanto necessário”

     • dividida em células, cada uma armazenando um símbolo

◆    Símbolos podem
     • pertencer ao alfabeto de entrada

     • pertencer ao alfabeto auxiliar

     • ser "branco"

     • ser "marcador de início de fita"




Linguagens Formais e Autômatos - P. Blauth Menezes            23
• Inicialmente
        ∗ palavra a ser processada: células mais à esquerda (após o
          marcador de início de fita)
        ∗ demais células: "branco"


         marcador de                                         entrada
         início de fita                                                                  branco


      fita                              ❂            a   b      b       c        a   ß   ß   ...
cabeça
da fita                                                             unidade de
                                   controle                         controle




Linguagens Formais e Autômatos - P. Blauth Menezes                                                24
◆    Unidade de controle
     • número finito e predefinido de estados

     • cabeça da fita
        ∗ lê um símbolo de cada vez e grava um novo símbolo
        ∗ move uma célula para a direita ou para a esquerda

     • símbolo gravado e o sentido do movimento
        ∗ definidos pelo programa




Linguagens Formais e Autômatos - P. Blauth Menezes            25
Def: Máquina de Turing
                                           M = (Σ, Q, δ, q0, F, V, β, ❂)

     • Σ - alfabeto (de símbolos) de entrada
     • Q - conjunto de estados possíveis da máquina (finito)
     • δ - (função) programa ou função de transição (função parcial)
        ∗ suponha que Σ ∪ V e { β, ❂ } são conjuntos disjuntos
               δ: Q × (Σ ∪ V ∪ { β, ❂ }) → Q × (Σ ∪ V ∪ { β, ❂ }) × { E, D }
           ∗ transição da máquina: δ(p, x) = (q, y, m)

     •   q 0 - estado inicial: elemento distinguido de Q
     •   F - conjunto de estados finais: subconjunto de Q
     •   V - alfabeto auxiliar (pode ser vazio)
     •   β - símbolo especial branco
     •   ❂ - símbolo de início ou marcador de início da fita
Linguagens Formais e Autômatos - P. Blauth Menezes                             26
◆    Símbolo de início de fita
     • ocorre exatamente uma vez e na célula mais à esquerda da fita

◆    Função programa
     • considera
        ∗ estado corrente
        ∗ símbolo lido da fita

     • determina
        ∗ novo estado
        ∗ símbolo a ser gravado
        ∗ sentido de movimento da cabeça (E e D)




Linguagens Formais e Autômatos - P. Blauth Menezes                     27
◆    Função programa interpretada como um diagrama
     • estados inicial e finais: como nos autômatos finitos
     • suponha a transição δ(p, x) = (q, y, m) )

                                                        (x, y, m)
                                      p                                    q




                          estado anterior                              novo estado

                                       símbolo lido            sentido do movimento

                                                     símbolo gravado

Linguagens Formais e Autômatos - P. Blauth Menezes                                    28
◆    Computação de uma máquina de Turing M, para uma
     palavra de entrada w
     • sucessiva aplicação da função programa
        ∗ a partir do estado inicial
        ∗ cabeça posicionada na célula mais à esquerda da fita
        ∗ até ocorrer uma condição de parada

     • processamento pode
        ∗ parar ou
        ∗ ficar processando indefinidamente (ciclo ou loop infinito)




Linguagens Formais e Autômatos - P. Blauth Menezes                     29
◆    Aceita a entrada w
     • atinge um estado final
        ∗ máquina pára
        ∗ w é aceita

◆    Rejeita a entrada w
     • função programa é indefinida para o argumento (símbolo lido e
       estado corrente)
        ∗ máquina pára
        ∗ w é rejeitada
     • argumento define um movimento à esquerda, e a cabeça da fita já
       se encontra na célula mais à esquerda
        ∗ máquina pára
        ∗ w é rejeitada

Linguagens Formais e Autômatos - P. Blauth Menezes                   30
◆    Definição formalmente do comportamento
     • necessário estender a definição da função programa

     • argumento: um estado e uma palavra

     • exercício




Linguagens Formais e Autômatos - P. Blauth Menezes          31
Def: Linguagens Aceita, Rejeitada, Loop
Linguagem Aceita ou Linguagem Reconhecida por M

                         ACEITA(M) ou L(M)
     • conjunto de todas as palavras de Σ* aceitas por M, a partir de q0

Linguagem Rejeitada por M

                                REJEITA(M)
     • conjunto de todas as palavras de Σ* rejeitadas por M, a partir de q0

Linguagem Loop de M

                                LOOP(M)
     • conjunto de todas as palavras de Σ* para as quais M fica
       processando indefinidamente a partir de q0


Linguagens Formais e Autômatos - P. Blauth Menezes                         32
◆    Cada máquina de Turing M sobre Σ
     • induz uma partição de Σ*

     • em classes de equivalência
        ∗ ACEITA(M), REJEITA(M) e LOOP(M)
        ∗ se um ou dois dos conjuntos for vazios?



                                                                            Σ*

          ACEITA(M)                                  REJEITA(M)   LOOP(M)




Linguagens Formais e Autômatos - P. Blauth Menezes                               33
Exp: Máquina de Turing: Duplo Balanceamento
                                                     L = { anbn  n ≥ 0 }

Máquina de Turing

          M = ({ a, b }, { q0, q1, q2, q3, q4 }, δ, q0, { q4 }, { A, B }, β, ❂)

é tal que

                             ACEITA(M) = L                   e   REJEITA(M) = ~L

e, portanto, LOOP(M) = ∅

     • qualquer palavra que não esteja na forma axbx é rejeitada




Linguagens Formais e Autômatos - P. Blauth Menezes                                 34
Exp: Máquina de Turing: Duplo Balanceamento
                                                                    (A, A, D)


                                                     (a, A, D)                  (b, B, E)
                                              q0                       q1                      q2


                                                      (❂, ❂, D)
                                                                    (a, a, D)               (a, a, E)
                                                                    (B, B, D)               (B, B, E)
                                                 (B, B, D)


                         (ß, ß, D)            q3        (B, B, D)



                                                 (ß, ß, D)



                                              q4



Linguagens Formais e Autômatos - P. Blauth Menezes                                                      35
δ            ❂                     a            b       A          B          β

   q 0 (q0, ❂, D) (q1, A, D)                                        (q3, B, D) (q4, β, D)

   q1                           (q1, a, D) (q2, B, E)               (q1, B, D)

   q2                            (q2, a, E)              (q0, A, D) (q2, B, E)

   q3                                                               (q3, B, D) (q4, β, D)

   q4




Linguagens Formais e Autômatos - P. Blauth Menezes                                      36
❂     a     a    b     b     ß ...         ❂   a    a    b    b   ß ...   ❂   A    a    b    b    ß ...

     q0                                              q0                                  q1


      ❂     A     a    b     b     ß ...         ❂   A    a    B    b   ß ...   ❂   A    a    B    b    ß ...

                       q1                                 q2                        q2


      ❂     A     a    B     b     ß ...         ❂   A    A    B    b   ß ...   ❂   A    A    B    b    ß ...

                 q0                                            q1                                  q1


      ❂     A    A     B     B     ß ...         ❂   A    A    B    B   ß ...   ❂   A    A    B    B    ß ...

                       q2                                 q2                                  q0


      ❂     A    A     B     B     ß ...         ❂   A    A    B    B   ß ...   ❂   A    A    B    B    ß   ß ...

                            q3                                          q3                                  q4



Linguagens Formais e Autômatos - P. Blauth Menezes                                                                  37
Obs: Máquina de Turing × Algoritmo
Foi afirmado que Máquina de Turing

     • é aceita como uma formalização do conceito de algoritmo

Entretanto, também é usual considerar como conceito de algoritmo

     • máquina de Turing que sempre pára para qualquer entrada

Nesse caso, uma máquina que eventualmente fica em loop infinito

     • não seria considerada um algoritmo




Linguagens Formais e Autômatos - P. Blauth Menezes                 38
8 - Linguagens Recursivamente
 Enumeráveis e Sensíveis ao Contexto
     8.1 Máquina de Turing
     8.2 Modelos Equivalentes à Máquina de Turing
     8.3 Hipótese de Church
     8.4 Máquina de Turing como Reconhecedor
     8.5 Propriedades das Linguagens Recursivamente
         Enumeráveis e Recursivas
     8.6 Gramática Irrestrita
     8.7 Linguagem Sensível ao Contexto
     8.8 Máquina de Turing com Fita Limitada



Linguagens Formais e Autômatos - P. Blauth Menezes    39
8.2 Modelos Equivalentes à Máquina
    de Turing
◆    Uma razão para considerar a máquina de Turing como
     o mais geral dispositivo de computação
     • todos os demais modelos e máquinas propostos

     • bem como as diversas modificações da máquina de Turing

     • possuem, no máximo, o mesmo poder computacional da máquina
       de Turing




Linguagens Formais e Autômatos - P. Blauth Menezes                  40
◆    Autômato com Múltiplas Pilhas
     • autômato com duas pilhas (citado no estudo das LLC)
        ∗ poder computacional é equivalente ao da máquina de Turing

     • maior número de pilhas: não aumenta a capacidade computacional

     • exercício
        ∗ definição formal: autômato com duas (múltiplas) pilhas
        ∗ equivalência deles ao modelo da máquina de Turing

     • como são necessárias duas pilhas, pode-se afirmar
        ∗ a estrutura de fita é mais expressiva do que a de pilha

◆    Máquina de Turing Não-Derminística
     • não aumenta o poder computacional da máquina de Turing

Linguagens Formais e Autômatos - P. Blauth Menezes                    41
◆    Máquina de Turing com Fita Infinita à Esquerda e à
     Direita
     • fita infinita dos dois lados não aumenta o poder computacional

     • pode ser facilmente simulada por uma fita tradicional
        ∗ células pares: parte direita da fita
        ∗ células ímpares: parte esquerda da fita



       ...              a-3              a-2         a-1   a1    a2   a3    ...

         ❂               a1              a-1         a2    a-2   a3   a-3   ...
Linguagens Formais e Autômatos - P. Blauth Menezes                                42
◆    Máquina de Turing com Múltiplas Fitas
     • k fitas infinitas à esquerda e à direita e k cabeças de fita

     • função programa
        ∗ dependendo do estado corrente e do símbolo lido em cada fita
        ∗ grava um novo símbolo em cada fita
        ∗ move cada cabeça independentemente
        ∗ assume um (único) novo estado

     • inicialmente
        ∗ palavra de entrada: armazenada na primeira fita
        ∗ demais: brancos




Linguagens Formais e Autômatos - P. Blauth Menezes                       43
◆    Máquina de Turing Multidimensional
     • fita tradicional
         ∗ substituída por uma estrutura do tipo arranjo k-dimensional
         ∗ infinita em todas as 2k direções

◆    Máquina de Turing com Múltiplas Cabeças
     • k cabeças de leitura e gravação sobre a mesma fita
        ∗ movimentos independentes

     • processamento depende
        ∗ estado corrente
        ∗ símbolo lido em cada uma das cabeças




Linguagens Formais e Autômatos - P. Blauth Menezes                       44
◆    Modificações combinadas sobre a Máquina de Turing
     • combinação de algumas ou todas as modificações
        ∗ não aumenta o poder computacional da máquina de Turing

     • exemplo, uma máquina de Turing
        ∗ não-determinística
        ∗ com múltiplas fitas
        ∗ múltiplas cabeças
        ∗ pode ser simulada por uma máquina de Turing tradicional




Linguagens Formais e Autômatos - P. Blauth Menezes                  45
8 - Linguagens Recursivamente
 Enumeráveis e Sensíveis ao Contexto
     8.1 Máquina de Turing
     8.2 Modelos Equivalentes à Máquina de Turing
     8.3 Hipótese de Church
     8.4 Máquina de Turing como Reconhecedor
     8.5 Propriedades das Linguagens Recursivamente
         Enumeráveis e Recursivas
     8.6 Gramática Irrestrita
     8.7 Linguagem Sensível ao Contexto
     8.8 Máquina de Turing com Fita Limitada



Linguagens Formais e Autômatos - P. Blauth Menezes    46
8.3 Hipótese de Church
◆    Objetivo do modelo abstrato de computação Máquina
     de Turing
     • explorar os limites da capacidade de expressar soluções de
       problemas

◆    Portanto, uma proposta de
     • definição formal da noção intuitiva de algoritmo

◆    Diversos outros trabalhos: equivalentes ao de Turing
     • Máquina de Post (Post - 1936)
     • Funções Recursivas (Kleene - 1936)
Linguagens Formais e Autômatos - P. Blauth Menezes                  47
◆    Forte reforço da Hipótese de (Turing-) Church
          "A capacidade de computação representada pela máquina de
           Turing é o limite máximo que pode ser atingido por qualquer
                            dispositivo de computação".

◆    Em outras palavras
     • qualquer outra forma de expressar algoritmos terá, no máximo, a
       mesma capacidade computacional da máquina de Turing

◆    Hipótese de Church não é demonstrável
     • algoritmo ou função computável: noção intuitiva




Linguagens Formais e Autômatos - P. Blauth Menezes                       48
8 - Linguagens Recursivamente
 Enumeráveis e Sensíveis ao Contexto
     8.1        Máquina de Turing
     8.2        Modelos Equivalentes à Máquina de Turing
     8.3        Hipótese de Church
     8.4        Máquina de Turing como Reconhecedor
               8.4.1 Linguagem Recursivamente Enumerável
               8.4.2 Linguagem Recursiva
     8.5        Propriedades das Linguagens Recursivamente
                Enumeráveis e Recursivas
     8.6        Gramática Irrestrita
     8.7        Linguagem Sensível ao Contexto
     8.8        Máquina de Turing com Fita Limitada

Linguagens Formais e Autômatos - P. Blauth Menezes           49
8.4 Máquina de Turing como
    Reconhecedor
◆    Classes de linguagens definidas a partir do
     formalismo máquina de Turing
     • Linguagens Recursivamente Enumeráveis

     • Linguagens Recursivas




Linguagens Formais e Autômatos - P. Blauth Menezes   50
◆    Classe das Linguagens Recursivamente Enumeráveis
     • existe uma máquina de Turing capaz de determinar
        ∗ se uma palavra w pertence à linguagem

     • entretanto, se w ∈ ~L, o algoritmo pode
        ∗ parar: w não pertence à linguagem
        ∗ ficar em loop infinito

◆    Classe das Linguagens Recursivas
     • existe pelo menos uma máquina de Turing que sempre pára, capaz
       de determinar se
        ∗ w ∈ L ou
        ∗ w ∈ ~L



Linguagens Formais e Autômatos - P. Blauth Menezes                 51
◆    Recursivas × Recursivamente Enumeráveis

                                                     ∈                ∈
        w                                                w
                              MT                             MT
                                                     ∉               ∉ ou
                                                                  LOOP




◆    Aparente contradição
                reconhecer o complemento de uma linguagem pode ser
                                   impossível,
                  mesmo que seja possível reconhecer a linguagem



Linguagens Formais e Autômatos - P. Blauth Menezes                          52
8 - Linguagens Recursivamente
 Enumeráveis e Sensíveis ao Contexto
     8.1        Máquina de Turing
     8.2        Modelos Equivalentes à Máquina de Turing
     8.3        Hipótese de Church
     8.4        Máquina de Turing como Reconhecedor
               8.4.1 Linguagem Recursivamente Enumerável
               8.4.2 Linguagem Recursiva
     8.5        Propriedades das Linguagens Recursivamente
                Enumeráveis e Recursivas
     8.6        Gramática Irrestrita
     8.7        Linguagem Sensível ao Contexto
     8.8        Máquina de Turing com Fita Limitada

Linguagens Formais e Autômatos - P. Blauth Menezes           53
8.4.1             Linguagem Recursivamente Enumerável

Def: Linguagem Recursivamente Enumerável ou Tipo 0
Uma linguagem aceita por uma máquina de Turing


Exp: Linguagem Recursivamente Enumerável
     • { anbn  n ≥ 0 }                                 já apresentado

     • { w  w tem o mesmo número de símbolos a e b }        exercício

     • { aibjck  i = j ou j = k }                           exercício




Linguagens Formais e Autômatos - P. Blauth Menezes                  54
◆    Considerando a Hipótese de Church
     • a máquina de Turing é o mais geral dispositivo de computação

     • então, a Classe das Linguagens Recursivamente Enumeráveis
        ∗ todas as linguagens que podem ser reconhecidas
          mecanicamente

◆    Linguagens Recursivamente Enumeráveis × Universo
     de todas as linguagens
     • classe de linguagens muito rica

     • entretanto, existem conjuntos que não são recursivamente
       enumeráveis
        ∗ não é possível desenvolver uma MT que os reconheça


Linguagens Formais e Autômatos - P. Blauth Menezes                    55
Teorema: Linguagem Não-Recursivamente Enumerável
Seja Σ = { a, b }
Suponha Xi o i-ésimo elemento na ordenação lexicográfica de Σ*
  •0-ε
  • 1-a
  •2-b
  • 3 - aa
  •…

Exercícios
  • é possível codificar todas as máquinas de Turing
  • como uma palavra sobre Σ de tal forma que
  • cada código represente uma única máquina de Turing
  • suponha o conjunto dos códigos ordenados lexicograficamente
  • suponha que Ti representa o i-ésimo código nesta ordenação

Linguagens Formais e Autômatos - P. Blauth Menezes                56
Então não é linguagem recursivamente enumerável

                                      L = { xi  xi não é aceita por Ti }

Prova: (por absurdo)
Suponha que L é recursivamente enumerável

     • existe uma máquina de Turing que aceita L
     • seja Tk a codificação desta máquina de Turing: ACEITA(Tk) = L

Assim

     • por definição de L, xk ∈ L sse xk não é aceita por Tk
     • como Tk aceita L, xk ∈ L sse xk é aceita por Tk

Contradição!!!

 Logo, L não é linguagem recursivamente enumerável
Linguagens Formais e Autômatos - P. Blauth Menezes                          57
Obs: Cardinal dos Problemas > Cardinal dos Algoritmos
Conjunto das condifições de todas as máquinas de Turing

     • isomorfo a um subconjunto infinito dos números naturais

Logo, é enumerável (infinitamente contável) o conjunto de todas

     • máquinas de Turing
     • linguagens recursivamente enumeráveis
     • problemas solucionáveis

Em contrapartida, o conjunto das linguagens que não são
recursivamente enumeráveis (problemas não-solucionáveis)

     • não-contável



Linguagens Formais e Autômatos - P. Blauth Menezes                58
Portanto, computacionalmente

            existem mais problemas do que algoritmos para resolvê-los.

Exemplo

                                             { f: N → N  f é função }

     • classe muito particular de problemas (linguagens)

     • prova-se: isomorfo a R (cardinal é 2ℵ )                  0




     • maior do que ℵ0 (cardinal do conjunto das máquinas de Turing)




Linguagens Formais e Autômatos - P. Blauth Menezes                       59
8.1.2             Linguagem Recursiva
Def: Linguagem Recursiva
Existe pelo menos uma máquina de Turing M

     • ACEITA(M) = L
     • REJEITA(M) = ~L

Linguagens Formais e Autômatos - P. Blauth Menezes   60
Exp: Linguagem Recursiva
     • { anbn  n ≥ 0 }

     • { anbncn  n ≥ 0 }

     • { w  w ∈ { a, b }* e tem o dobro de símbolos a que b }




Linguagens Formais e Autômatos - P. Blauth Menezes               61
8 - Linguagens Recursivamente
 Enumeráveis e Sensíveis ao Contexto
     8.1 Máquina de Turing
     8.2 Modelos Equivalentes à Máquina de Turing
     8.3 Hipótese de Church
     8.4 Máquina de Turing como Reconhecedor
     8.5 Propriedades das Linguagens Recursivamente
         Enumeráveis e Recursivas
     8.6 Gramática Irrestrita
     8.7 Linguagem Sensível ao Contexto
     8.8 Máquina de Turing com Fita Limitada



Linguagens Formais e Autômatos - P. Blauth Menezes    62
8.5 Propriedades das Linguagens
    Recursivamente Enumeráveis e
    Recursivas
◆    Algumas das principais propriedades
     • complemento de uma linguagem recursiva é recursiva

     • linguagem é recursiva sse a linguagem e seu complemento são
       linguagens recursivamente enumeráveis

     • Classe das Linguagens Recursivas está contida propriamente na
       Classe das Linguagens Recursivamente Enumeráveis


Linguagens Formais e Autômatos - P. Blauth Menezes                     63
Teorema: Complemento de uma Linguagem Recursiva é
         Recursiva
Se uma linguagem L sobre um alfabeto Σ qualquer é recursiva, então o
seu complemento ~L é recursiva

Prova: (direta)
Suponha L linguagem recursiva. Então existe M, máquina de Turing

     • ACEITA(M) = L

     • REJEITA(M) = ~L

     • LOOP(M) = ∅




Linguagens Formais e Autômatos - P. Blauth Menezes                 64
Seja

     • Inverte uma máquina de Turing que inverte ACEITA / REJEITA

     • M’ máquina de Turing resultante da composição de Inverte e M
        ∗ M’ aceita a linguagem ~L
        ∗ sempre pára para qualquer entrada

Portanto, o complemento de uma linguagem recursiva é recursiva


                                                             M'
     ∈                               ∈                       ∈              ∈
                   Inverte                                        Inverte
                                                     p   M
     ∉                               ∉                       ∉              ∉


Linguagens Formais e Autômatos - P. Blauth Menezes                              65
Teorema: Linguagem Recursiva × Recursivamente
         Enumerável
L é recursiva sse L e ~L são recursivamente enumeráveis

Prova:
(⇒ direta)
Suponha L linguagem recursiva. Então (teorema anterior)

     • ~L é recursiva

Como toda linguagem recursiva também é recursivamente enumerável

     • L e ~L são recursivamente enumeráveis




Linguagens Formais e Autômatos - P. Blauth Menezes                 66
(⇐ direta)
Suponha L linguagem tal que L e ~L são recursivamente enumeráveis
Então existem M1 e M2, máquinas de Turing, tais que

     • ACEITA(M1) = L
     • ACEITA(M2) = ~L

Seja M máquina de Turing resultante da composição

                      M                                   ∈                 ∈
                                                     M1

            w


                                                          ∈             ∉   ∉
                                                     M2       Inverte



Linguagens Formais e Autômatos - P. Blauth Menezes                              67
M                                   ∈                 ∈
                                                     M1

            w


                                                          ∈             ∉   ∉
                                                     M2       Inverte



     • composição não-determinista de M1 com M2
     • composição seqüencial de M1 com Inverte

Para qualquer palavra de entrada

     • M aceita se M1 aceita
     • M rejeita se M2 aceita

Logo, L é recursiva

Linguagens Formais e Autômatos - P. Blauth Menezes                              68
Teorema: Linguagens Recursivas ⊂ Recursivamente
         Enumeráveis
Prova: (direta)
Mostrar inclusão própria

     • existe pelos menos uma linguagem recursivamente enumerável
       que não é recursiva

Linguagem recursivamente enumerável que é não-recursiva

                                          L = { Xi  Xi é aceita por Ti }




Linguagens Formais e Autômatos - P. Blauth Menezes                          69
L é Recursivamente Enumerável                        (esboço da máquina de Turing)

     • M gera palavras X1, X2,… em ordem lexicográfica
        ∗ compara com w
        ∗ quando Xi = w, w é a i-ésima palavra na enumeração

     • M gera Ti, a i-ésima máquina de Turing (exercícios)

     • M simula Ti para a entrada w = Xi
        ∗ se w pertence a ACEITA(Ti), então w pertence a ACEITA(M)
        ∗ simulador: exercício

     • M aceita w sse Xi = w é aceita por Ti

Logo, L é recursivamente enumerável



Linguagens Formais e Autômatos - P. Blauth Menezes                              70
L não é Recursiva

Já foi visto

     • L é recursiva sse L e ~L são recursivamente enumeráveis

Complemento de L não é recursivamente enumerável

     • então L é não-recursiva




Linguagens Formais e Autômatos - P. Blauth Menezes               71
8 - Linguagens Recursivamente
 Enumeráveis e Sensíveis ao Contexto
     8.1 Máquina de Turing
     8.2 Modelos Equivalentes à Máquina de Turing
     8.3 Hipótese de Church
     8.4 Máquina de Turing como Reconhecedor
     8.5 Propriedades das Linguagens Recursivamente
         Enumeráveis e Recursivas
     8.6 Gramática Irrestrita
     8.7 Linguagem Sensível ao Contexto
     8.8 Máquina de Turing com Fita Limitada



Linguagens Formais e Autômatos - P. Blauth Menezes    72
8.6 Gramática Irrestrita
◆    Gramática Irrestrita
     • gramática sem qualquer restrição nas produções


Exp: Gramática Irrestrita: { anb nc n  n ≥ 0 }
                                                     G = ???




Linguagens Formais e Autômatos - P. Blauth Menezes             73
Exp: Gramática Irrestrita: { anb nc n  n ≥ 0 }
                                         G = ({ S, C }, { a, b, c }, P, S)

     • P = { S → abc  ε, ab → aabbC, Cb → bC, Cc → cc }

Derivação de aaabbbccc

                                S ⇒ abc ⇒ aabbCc ⇒ aaabbCbCc ⇒
                            aaabbCbcc ⇒ aaabbbCcc ⇒ aaabbbccc

     • C "caminha" na palavra até a posição correta para gerar c




Linguagens Formais e Autômatos - P. Blauth Menezes                           74
Teorema: Linguagem Recursivamente Enumerável ×
         Gramática Irrestrita
L é linguagem recursivamente enumerável sse L é gerada por uma
gramática irrestrita

     • (não será demonstrado)




Linguagens Formais e Autômatos - P. Blauth Menezes               75
8 - Linguagens Recursivamente
 Enumeráveis e Sensíveis ao Contexto
     8.1 Máquina de Turing
     8.2 Modelos Equivalentes à Máquina de Turing
     8.3 Hipótese de Church
     8.4 Máquina de Turing como Reconhecedor
     8.5 Propriedades das Linguagens Recursivamente
         Enumeráveis e Recursivas
     8.6 Gramática Irrestrita
     8.7 Linguagem Sensível ao Contexto
     8.8 Máquina de Turing com Fita Limitada



Linguagens Formais e Autômatos - P. Blauth Menezes    76
8.7 Linguagem Sensível ao Contexto
Def: Gramática Sensível ao Contexto
                                                     G = (V, T, P, S)

Qualquer regra de produção de P é da forma α → β

     • β é palavra de (V ∪ T)*

     • α é palavra de (V ∪ T)+ tal queα ≤ β
        ∗ excetuando-se, eventualmente, para S → ε
        ∗ neste caso, S não está no lado direito de qualquer produção




Linguagens Formais e Autômatos - P. Blauth Menezes                      77
◆    Portanto, em uma gramática sensível ao contexto
     • a cada etapa de derivação

     • tamanho da palavra derivada não pode diminuir
        ∗ excetuando-se para gerar a palavra vazia
        ∗ se esta pertencer à linguagem

◆    Observe (por quê?)
     • nem toda gramática livre do contexto é sensível ao contexto


Def: Linguagem Sensível ao Contexto, Linguagem Tipo 1
Linguagem gerada por uma gramática sensível ao contexto



Linguagens Formais e Autômatos - P. Blauth Menezes                   78
Exp: Linguagem Sensível ao Contexto: Palavra
     Duplicada
                                      { ww  w é palavra de { a, b }* }

                G = ({ S, X, Y, A, B, 〈aa〉, 〈ab〉, 〈ba〉, 〈bb〉 }, { a, b }, P, S)

Produções de P

     •   S → XY  aa  bb  ε,
     •    X → XaA  XbB  aa〈aa〉  ab〈ab〉  ba〈ba〉  bb〈bb〉,
     •    Aa → aA, Ab → bA, AY → Ya,
     •    Ba → aB, Bb → bB, BY → Yb,
     •    〈aa〉a → a〈aa〉, 〈aa〉b → b〈aa〉, 〈aa〉Y → aa,
     •    〈ab〉a → a〈ab〉, 〈ab〉b → b〈ab〉, 〈ab〉Y → ab,
     •    〈ba〉a → a〈ba〉, 〈ba〉b → b〈ba〉, 〈ba〉Y → ba,
     •    〈bb〉a → a〈bb〉, 〈bb〉b → b〈bb〉, 〈bb〉Y → bb
Linguagens Formais e Autômatos - P. Blauth Menezes                                79
Gera o primeiro w após X, e o segundo w após Y

     • a cada terminal gerado após X
        ∗ gerada correspondente variável
     • variável "caminha" na palavra até passar por Y
        ∗ deriva o correspondente terminal

     • para encerrar
        ∗ X deriva subpalavra de dois terminais
        ∗ e correspondente variável a qual "caminha" até encontrar Y
        ∗ quando é derivada a mesma subpalavra de dois terminais

     • se X derivar uma subpalavra de somente um terminal (e a
       correspondente variável) ?




Linguagens Formais e Autômatos - P. Blauth Menezes                     80
8 - Linguagens Recursivamente
 Enumeráveis e Sensíveis ao Contexto
     8.1 Máquina de Turing
     8.2 Modelos Equivalentes à Máquina de Turing
     8.3 Hipótese de Church
     8.4 Máquina de Turing como Reconhecedor
     8.5 Propriedades das Linguagens Recursivamente
         Enumeráveis e Recursivas
     8.6 Gramática Irrestrita
     8.7 Linguagem Sensível ao Contexto
     8.8 Máquina de Turing com Fita Limitada



Linguagens Formais e Autômatos - P. Blauth Menezes    81
8.8 Máquina de Turing com Fita
    Limitada


Linguagens Formais e Autômatos - P. Blauth Menezes   82
◆    Máquina de Turing com Fita Limitada
     • máquina de Turing

     • fita limitada ao tamanho da entrada

     • mais duas células
        ∗ marcadores de início e de fim de fita

◆    Não-Determinismo?
     • não é conhecido se aumenta o poder computacional




Linguagens Formais e Autômatos - P. Blauth Menezes        83
Def: Máquina de Turing com Fita Limitada (MTFL)
                                           M = (Σ, Q, δ, q0, F, V, ❂, ✝)

     • Σ - alfabeto (de símbolos) de entrada
     • Q - conjunto de estados (finito)
     • δ - (função) programa ou função de transição (parcial)

                       δ: Q × (Σ ∪ V ∪ { ❂, ✝ }) → 2Q×(Σ∪V∪{❂,✝})×{E,D}
           ∗ transição: δ(p, x) = { (q1, y1, m1),…,(qn, yn, mn) }

     •   q 0 - estado inicial: elemento distinguido de Q
     •   F - conjunto de estados finais: subconjunto de Q
     •   V - alfabeto auxiliar (pode ser vazio)
     •   ❂ - símbolo de início ou marcador de início da fita
     •   ✝ - símbolo de fim ou marcador de fim da fita

Linguagens Formais e Autômatos - P. Blauth Menezes                         84
Exp: Máquina de Turing com Fita Limitada: Palavra
     Duplicada
                                  L = { ww  w é palavra de { a, b }* }

A máquina de Turing com fita limitada

            M = ({ a, b }, { q0, q1,…, q9, qf }, δ, q0, { qf }, { X, Y }, ❂, ✝)

é tal que ACEITA(M) = L e REJEITA(M) = ~L

     • q 1, o início do primeiro w é marcado com um X

     • q 2 e q3 definem não-determinismos
        ∗ marcar com um Y o início do segundo w

     • q 5 a q11 verifica a igualdade das duas metades


Linguagens Formais e Autômatos - P. Blauth Menezes                                85
q0

                                                                 (❂, ❂, D)


                                                               q1

                                               (a, X, D)               (b, X, D)
                                                                                                                 (✝, ✝, E)
                                (a, a, D)                                                (a, a, D)
                                               q2                            q3
                                (b, b, D)                                                (b, b, D)

                                              (a, Y, E)                 (b, Y, E)

                                                                        (a, a, E)
                                                               q4
                                                                        (b, b, E)
                                                                 (X, X, D)


                                                               q5

                                                   (a, X, D)          (b, X, D)                      (Y, Y, D)


                                (a, a, D)                                                (a, a, D)
                                               q6                            q8                           q11           (Y, Y, D)
                                (b, b, D)                                                (b, b, D)
                                       (Y, Y, D)                                  (Y, Y, D)                     (✝, ✝, E)


                                (Y, Y, D)      q7                            q9          (Y, Y, D)         qf


                                              (a, Y, E)                 (b, Y, E)

                                              (Y, Y, E)        q10
                                              (a, a, E)
                                              (b, b, E)
                                                                 (X, X, D)




Linguagens Formais e Autômatos - P. Blauth Menezes                                                                                  86
Teorema: Linguagem Sensível ao Contexto × Máquina
         de Turing com Fita Limitada
L é uma linguagem sensível ao contexto sse
L é reconhecida por uma máquina de Turing com fita limitada

     • não será demonstrado




Linguagens Formais e Autômatos - P. Blauth Menezes            87
Linguagens Formais e Autômatos
                                                     P. Blauth Menezes

                      1       Introdução e Conceitos Básicos
                      2       Linguagens e Gramáticas
                      3       Linguagens Regulares
                      4       Propriedades das Linguagens Regulares
                      5       Autômato Finito com Saída
                      6       Linguagens Livres do Contexto
                      7       Propriedades e Reconhecimento das Linguagens
                              Livres do Contexto
                      8       Linguagens Recursivamente Enumeráveis e
                               Sensíveis ao Contexto
                      9       Hierarquia de Classes e Linguagens e Conclusões

Linguagens Formais e Autômatos - P. Blauth Menezes                              88
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                         89

Más contenido relacionado

La actualidad más candente

Aula 3 compiladores e interpretadores
Aula 3   compiladores e interpretadoresAula 3   compiladores e interpretadores
Aula 3 compiladores e interpretadoresLCCIMETRO
 
Lógica de Programação - Algoritmos
Lógica de Programação - AlgoritmosLógica de Programação - Algoritmos
Lógica de Programação - AlgoritmosRoney Sousa
 
Paradigmas de Linguagens de Programação - Escopo estático/dinâmico
Paradigmas de Linguagens de Programação - Escopo estático/dinâmicoParadigmas de Linguagens de Programação - Escopo estático/dinâmico
Paradigmas de Linguagens de Programação - Escopo estático/dinâmicoAdriano Teixeira de Souza
 
Teoria Lista Exercicios 1.0
Teoria Lista Exercicios 1.0Teoria Lista Exercicios 1.0
Teoria Lista Exercicios 1.0Thayse
 
O Surdo Na Escola Inclusiva Aprendendo Uma LíNgua Estrangeira (InglêS) Um Des...
O Surdo Na Escola Inclusiva Aprendendo Uma LíNgua Estrangeira (InglêS) Um Des...O Surdo Na Escola Inclusiva Aprendendo Uma LíNgua Estrangeira (InglêS) Um Des...
O Surdo Na Escola Inclusiva Aprendendo Uma LíNgua Estrangeira (InglêS) Um Des...asustecnologia
 
Gerenciamento da Qualidade de Software 5.pptx
Gerenciamento da Qualidade de Software 5.pptxGerenciamento da Qualidade de Software 5.pptx
Gerenciamento da Qualidade de Software 5.pptxRoberto Nunes
 
A língua portuguesa no mundo
A língua portuguesa no mundoA língua portuguesa no mundo
A língua portuguesa no mundoaDIRIANA SILVI
 
Aula 10 maquinade turing
Aula 10   maquinade turingAula 10   maquinade turing
Aula 10 maquinade turingwab030
 
A criança e a linguagem: o desenvolvimento da linguagem oral
A criança e a linguagem: o desenvolvimento da linguagem oralA criança e a linguagem: o desenvolvimento da linguagem oral
A criança e a linguagem: o desenvolvimento da linguagem oraldilmadosanjos
 
Gerenciamento de projetos, MPS.BR e qualidade em software
Gerenciamento de projetos, MPS.BR e qualidade em softwareGerenciamento de projetos, MPS.BR e qualidade em software
Gerenciamento de projetos, MPS.BR e qualidade em softwareelliando dias
 
09 hierarquia de classes e linguagens e conclusoes
09   hierarquia de classes e linguagens e conclusoes09   hierarquia de classes e linguagens e conclusoes
09 hierarquia de classes e linguagens e conclusoesComputação Depressão
 
Oficina - Alfabetizar em lingua Brasileira de Sinais
Oficina - Alfabetizar em lingua Brasileira de SinaisOficina - Alfabetizar em lingua Brasileira de Sinais
Oficina - Alfabetizar em lingua Brasileira de Sinaisandrea giovanella
 

La actualidad más candente (20)

MPS.BR
MPS.BRMPS.BR
MPS.BR
 
Aula 3 compiladores e interpretadores
Aula 3   compiladores e interpretadoresAula 3   compiladores e interpretadores
Aula 3 compiladores e interpretadores
 
Computacao Numérica
Computacao NuméricaComputacao Numérica
Computacao Numérica
 
Lógica de Programação - Algoritmos
Lógica de Programação - AlgoritmosLógica de Programação - Algoritmos
Lógica de Programação - Algoritmos
 
Paradigmas de Linguagens de Programação - Escopo estático/dinâmico
Paradigmas de Linguagens de Programação - Escopo estático/dinâmicoParadigmas de Linguagens de Programação - Escopo estático/dinâmico
Paradigmas de Linguagens de Programação - Escopo estático/dinâmico
 
Teoria Lista Exercicios 1.0
Teoria Lista Exercicios 1.0Teoria Lista Exercicios 1.0
Teoria Lista Exercicios 1.0
 
O Surdo Na Escola Inclusiva Aprendendo Uma LíNgua Estrangeira (InglêS) Um Des...
O Surdo Na Escola Inclusiva Aprendendo Uma LíNgua Estrangeira (InglêS) Um Des...O Surdo Na Escola Inclusiva Aprendendo Uma LíNgua Estrangeira (InglêS) Um Des...
O Surdo Na Escola Inclusiva Aprendendo Uma LíNgua Estrangeira (InglêS) Um Des...
 
Gerenciamento da Qualidade de Software 5.pptx
Gerenciamento da Qualidade de Software 5.pptxGerenciamento da Qualidade de Software 5.pptx
Gerenciamento da Qualidade de Software 5.pptx
 
Paradigmas do Ruby
Paradigmas do RubyParadigmas do Ruby
Paradigmas do Ruby
 
A língua portuguesa no mundo
A língua portuguesa no mundoA língua portuguesa no mundo
A língua portuguesa no mundo
 
Aula 10 maquinade turing
Aula 10   maquinade turingAula 10   maquinade turing
Aula 10 maquinade turing
 
A criança e a linguagem: o desenvolvimento da linguagem oral
A criança e a linguagem: o desenvolvimento da linguagem oralA criança e a linguagem: o desenvolvimento da linguagem oral
A criança e a linguagem: o desenvolvimento da linguagem oral
 
Introducing MDSD
Introducing MDSDIntroducing MDSD
Introducing MDSD
 
Gerenciamento de projetos, MPS.BR e qualidade em software
Gerenciamento de projetos, MPS.BR e qualidade em softwareGerenciamento de projetos, MPS.BR e qualidade em software
Gerenciamento de projetos, MPS.BR e qualidade em software
 
09 hierarquia de classes e linguagens e conclusoes
09   hierarquia de classes e linguagens e conclusoes09   hierarquia de classes e linguagens e conclusoes
09 hierarquia de classes e linguagens e conclusoes
 
Gerenciamento de Riscos
Gerenciamento de RiscosGerenciamento de Riscos
Gerenciamento de Riscos
 
Comunicação e linguagem
Comunicação e linguagemComunicação e linguagem
Comunicação e linguagem
 
Oficina - Alfabetizar em lingua Brasileira de Sinais
Oficina - Alfabetizar em lingua Brasileira de SinaisOficina - Alfabetizar em lingua Brasileira de Sinais
Oficina - Alfabetizar em lingua Brasileira de Sinais
 
Apostila Libras
Apostila LibrasApostila Libras
Apostila Libras
 
PHP 5.3 - Funções
PHP 5.3 - FunçõesPHP 5.3 - Funções
PHP 5.3 - Funções
 

Destacado

Máquinas de Turing
Máquinas de TuringMáquinas de Turing
Máquinas de TuringTania Arroyo
 
Artigo sobre jogo da imitação deTuring
Artigo sobre jogo da imitação deTuring Artigo sobre jogo da imitação deTuring
Artigo sobre jogo da imitação deTuring Renato Roque
 
Livro Mini-Curso de Haskell
Livro Mini-Curso de HaskellLivro Mini-Curso de Haskell
Livro Mini-Curso de HaskellMikeNandes
 
Algoritmo e lógica de programação
Algoritmo e lógica de programaçãoAlgoritmo e lógica de programação
Algoritmo e lógica de programaçãojose alisson
 
Como Estudar Sozinho em Casa
Como Estudar Sozinho em CasaComo Estudar Sozinho em Casa
Como Estudar Sozinho em CasaRichard Reinaldo
 
Paradigma Funcional - Caso de Estudo Haskell
Paradigma Funcional - Caso de Estudo HaskellParadigma Funcional - Caso de Estudo Haskell
Paradigma Funcional - Caso de Estudo HaskellSérgio Souza Costa
 
Autômatos Celulares
Autômatos CelularesAutômatos Celulares
Autômatos CelularesMarcelo Ramos
 
Ubuntu Touch - O Linux de bolso.
Ubuntu Touch - O Linux de bolso.Ubuntu Touch - O Linux de bolso.
Ubuntu Touch - O Linux de bolso.Alessandro Faria
 
Comunicação e Empregabilidade
Comunicação e EmpregabilidadeComunicação e Empregabilidade
Comunicação e Empregabilidademairamed
 
Algoritmo de euclides
Algoritmo de euclidesAlgoritmo de euclides
Algoritmo de euclideslizethkathe
 
Mysql para aplicações Web escaláveis
Mysql para aplicações Web escaláveisMysql para aplicações Web escaláveis
Mysql para aplicações Web escaláveisElton Minetto
 
Teoria da Computação
Teoria da ComputaçãoTeoria da Computação
Teoria da ComputaçãoAlefe Variani
 
Prática de laboratório utilizando views, stored procedures e triggers
Prática de laboratório   utilizando views, stored procedures e triggersPrática de laboratório   utilizando views, stored procedures e triggers
Prática de laboratório utilizando views, stored procedures e triggersDaniel Maia
 
Apostila Programando Para Web Com Php & My Sql
Apostila   Programando Para Web Com Php & My SqlApostila   Programando Para Web Com Php & My Sql
Apostila Programando Para Web Com Php & My Sqlrinaldocalixto2010
 

Destacado (20)

Máquinas de Turing
Máquinas de TuringMáquinas de Turing
Máquinas de Turing
 
Gabarito ano2008
Gabarito ano2008Gabarito ano2008
Gabarito ano2008
 
Artigo sobre jogo da imitação deTuring
Artigo sobre jogo da imitação deTuring Artigo sobre jogo da imitação deTuring
Artigo sobre jogo da imitação deTuring
 
Livro Mini-Curso de Haskell
Livro Mini-Curso de HaskellLivro Mini-Curso de Haskell
Livro Mini-Curso de Haskell
 
Algoritmo e lógica de programação
Algoritmo e lógica de programaçãoAlgoritmo e lógica de programação
Algoritmo e lógica de programação
 
Como Estudar Sozinho em Casa
Como Estudar Sozinho em CasaComo Estudar Sozinho em Casa
Como Estudar Sozinho em Casa
 
Haskell
HaskellHaskell
Haskell
 
Paradigma Funcional - Caso de Estudo Haskell
Paradigma Funcional - Caso de Estudo HaskellParadigma Funcional - Caso de Estudo Haskell
Paradigma Funcional - Caso de Estudo Haskell
 
Autômatos Celulares
Autômatos CelularesAutômatos Celulares
Autômatos Celulares
 
Ubuntu Touch - O Linux de bolso.
Ubuntu Touch - O Linux de bolso.Ubuntu Touch - O Linux de bolso.
Ubuntu Touch - O Linux de bolso.
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Comunicação e Empregabilidade
Comunicação e EmpregabilidadeComunicação e Empregabilidade
Comunicação e Empregabilidade
 
Turing seminar-2012
Turing seminar-2012Turing seminar-2012
Turing seminar-2012
 
Algoritmo de euclides
Algoritmo de euclidesAlgoritmo de euclides
Algoritmo de euclides
 
Mysql para aplicações Web escaláveis
Mysql para aplicações Web escaláveisMysql para aplicações Web escaláveis
Mysql para aplicações Web escaláveis
 
Algoritmo de Euclides
Algoritmo de EuclidesAlgoritmo de Euclides
Algoritmo de Euclides
 
Teoria da Computação
Teoria da ComputaçãoTeoria da Computação
Teoria da Computação
 
Prática de laboratório utilizando views, stored procedures e triggers
Prática de laboratório   utilizando views, stored procedures e triggersPrática de laboratório   utilizando views, stored procedures e triggers
Prática de laboratório utilizando views, stored procedures e triggers
 
Aula 02
Aula 02Aula 02
Aula 02
 
Apostila Programando Para Web Com Php & My Sql
Apostila   Programando Para Web Com Php & My SqlApostila   Programando Para Web Com Php & My Sql
Apostila Programando Para Web Com Php & My Sql
 

Similar a 08 linguagens recursivamente enumeraveis e sensiveis ao contexto

Aula 1 - Apresentação da disciplina e metodologia de trabalho. aspectos teori...
Aula 1 - Apresentação da disciplina e metodologia de trabalho. aspectos teori...Aula 1 - Apresentação da disciplina e metodologia de trabalho. aspectos teori...
Aula 1 - Apresentação da disciplina e metodologia de trabalho. aspectos teori...wab030
 
04 propriedades das linguagens regulares
04   propriedades das linguagens regulares04   propriedades das linguagens regulares
04 propriedades das linguagens regularesComputação Depressão
 
Mini-curso Processamento de linguagens naturais: pondo em prática
Mini-curso Processamento de linguagens naturais: pondo em prática Mini-curso Processamento de linguagens naturais: pondo em prática
Mini-curso Processamento de linguagens naturais: pondo em prática William Colen
 
Processamento Automático da Língua Portuguesa - Campus Party Br 6
Processamento Automático da Língua Portuguesa - Campus Party Br 6Processamento Automático da Língua Portuguesa - Campus Party Br 6
Processamento Automático da Língua Portuguesa - Campus Party Br 6William Colen
 

Similar a 08 linguagens recursivamente enumeraveis e sensiveis ao contexto (7)

03 linguagens regulares
03   linguagens regulares03   linguagens regulares
03 linguagens regulares
 
Aula 1 - Apresentação da disciplina e metodologia de trabalho. aspectos teori...
Aula 1 - Apresentação da disciplina e metodologia de trabalho. aspectos teori...Aula 1 - Apresentação da disciplina e metodologia de trabalho. aspectos teori...
Aula 1 - Apresentação da disciplina e metodologia de trabalho. aspectos teori...
 
04 propriedades das linguagens regulares
04   propriedades das linguagens regulares04   propriedades das linguagens regulares
04 propriedades das linguagens regulares
 
06 linguagens livres do contexto
06   linguagens livres do contexto06   linguagens livres do contexto
06 linguagens livres do contexto
 
05 automato finito com saida
05   automato finito com saida05   automato finito com saida
05 automato finito com saida
 
Mini-curso Processamento de linguagens naturais: pondo em prática
Mini-curso Processamento de linguagens naturais: pondo em prática Mini-curso Processamento de linguagens naturais: pondo em prática
Mini-curso Processamento de linguagens naturais: pondo em prática
 
Processamento Automático da Língua Portuguesa - Campus Party Br 6
Processamento Automático da Língua Portuguesa - Campus Party Br 6Processamento Automático da Língua Portuguesa - Campus Party Br 6
Processamento Automático da Língua Portuguesa - Campus Party Br 6
 

Más de Computação Depressão

Sd08 (si) sistemas de arquivos distribuídos
Sd08 (si)   sistemas de arquivos distribuídosSd08 (si)   sistemas de arquivos distribuídos
Sd08 (si) sistemas de arquivos distribuídosComputação Depressão
 
Sd02 (si) gerenciamento de entrada e saída
Sd02 (si)   gerenciamento de entrada e saídaSd02 (si)   gerenciamento de entrada e saída
Sd02 (si) gerenciamento de entrada e saídaComputação Depressão
 

Más de Computação Depressão (20)

Sd08 (si) sistemas de arquivos distribuídos
Sd08 (si)   sistemas de arquivos distribuídosSd08 (si)   sistemas de arquivos distribuídos
Sd08 (si) sistemas de arquivos distribuídos
 
Sd06 (si) exclusão mútua
Sd06 (si)   exclusão mútuaSd06 (si)   exclusão mútua
Sd06 (si) exclusão mútua
 
Sd05 (si) relógios e sincronização
Sd05 (si)   relógios e sincronizaçãoSd05 (si)   relógios e sincronização
Sd05 (si) relógios e sincronização
 
Sd04 (si) comunicação em sd
Sd04 (si)   comunicação em sdSd04 (si)   comunicação em sd
Sd04 (si) comunicação em sd
 
Sd03 (si) conceitos básicos de sd
Sd03 (si)   conceitos básicos de sdSd03 (si)   conceitos básicos de sd
Sd03 (si) conceitos básicos de sd
 
Sd02 (si) gerenciamento de entrada e saída
Sd02 (si)   gerenciamento de entrada e saídaSd02 (si)   gerenciamento de entrada e saída
Sd02 (si) gerenciamento de entrada e saída
 
Sd01 (si) sistemas de arquivos
Sd01 (si)   sistemas de arquivosSd01 (si)   sistemas de arquivos
Sd01 (si) sistemas de arquivos
 
Sd07 (si) eleição
Sd07 (si)   eleiçãoSd07 (si)   eleição
Sd07 (si) eleição
 
Ufbamat2013
Ufbamat2013Ufbamat2013
Ufbamat2013
 
Ufbaingles2013
Ufbaingles2013Ufbaingles2013
Ufbaingles2013
 
Ufbagab mat 2013
Ufbagab mat 2013Ufbagab mat 2013
Ufbagab mat 2013
 
Ufbagab ingles2013
Ufbagab ingles2013Ufbagab ingles2013
Ufbagab ingles2013
 
Ufbagab fis 2013
Ufbagab fis 2013Ufbagab fis 2013
Ufbagab fis 2013
 
Ufbafisqui2013
Ufbafisqui2013Ufbafisqui2013
Ufbafisqui2013
 
Ufbagab qui 2013
Ufbagab qui 2013Ufbagab qui 2013
Ufbagab qui 2013
 
Questesdetecnologia ano2002
Questesdetecnologia ano2002Questesdetecnologia ano2002
Questesdetecnologia ano2002
 
Questesdematemtica ano2003
Questesdematemtica ano2003Questesdematemtica ano2003
Questesdematemtica ano2003
 
Questesdematemtica ano2002
Questesdematemtica ano2002Questesdematemtica ano2002
Questesdematemtica ano2002
 
Questesdefundamentos ano2003
Questesdefundamentos ano2003Questesdefundamentos ano2003
Questesdefundamentos ano2003
 
Questesdefundamentos ano2002
Questesdefundamentos ano2002Questesdefundamentos ano2002
Questesdefundamentos ano2002
 

08 linguagens recursivamente enumeraveis e sensiveis ao contexto

  • 1. 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
  • 2. Linguagens Formais e Autômatos P. Blauth Menezes 1 Introdução e Conceitos Básicos 2 Linguagens e Gramáticas 3 Linguagens Regulares 4 Propriedades das Linguagens Regulares 5 Autômato Finito com Saída 6 Linguagens Livres do Contexto 7 Propriedades e Reconhecimento das Linguagens Livres do Contexto 8 Linguagens Recursivamente Enumeráveis e Sensíveis ao Contexto 9 Hierarquia de Classes e Linguagens e Conclusões Linguagens Formais e Autômatos - P. Blauth Menezes 2
  • 3. 8 - Linguagens Recursivamente Enumeráveis e Sensíveis ao Contexto 8.1 Máquina de Turing 8.2 Modelos Equivalentes à Máquina de Turing 8.3 Hipótese de Church 8.4 Máquina de Turing como Reconhecedor 8.5 Propriedades das Linguagens Recursivamente Enumeráveis e Recursivas 8.6 Gramática Irrestrita 8.7 Linguagem Sensível ao Contexto 8.8 Máquina de Turing com Fita Limitada Linguagens Formais e Autômatos - P. Blauth Menezes 3
  • 4. 8 - Linguagens Recursivamente Enumeráveis e Sensíveis ao Contexto Linguagens Formais e Autômatos - P. Blauth Menezes 4
  • 5. 8 Linguagens Recursivamente Enumeráveis e Sensíveis ao Contexto ◆ Ciência da Computação • conhecimento sistematizado relativo à computação ◆ Origem da Ciência da Computação: remota • antiga Grécia: III a.C - desenho de algoritmos por Euclides • Babilônia: estudos sobre complexidade e reducibilidade de problemas • início do século XX: pesquisas com o objetivo de definir ∗ modelo computacional suficientemente genérico ∗ capaz de implementar qualquer função computável Linguagens Formais e Autômatos - P. Blauth Menezes 5
  • 6. Alan Turing (1936) propôs um modelo • Máquina de Turing • aceito como uma formalização de ∗ procedimento efetivo ∗ algoritmo ou ∗ função computável • algoritmo ∗ seqüência finita de instruções ∗ podem ser realizadas mecanicamente ∗ em um tempo finito Linguagens Formais e Autômatos - P. Blauth Menezes 6
  • 7. Alonzo Church (1936) • Hipótese de Church qualquer função computável pode ser processada por uma máquina de Turing ∗ existe um procedimento expresso na forma de uma máquina de Turing capaz de processar a função • como a noção intuitiva de procedimentos não é matematicamente precisa ∗ impossível demonstrar formalmente se a máquina de Turing é, de fato, o mais genérico dispositivo de computação ∗ mostrado: todos os demais modelos propostos possuem, no máximo, a mesma capacidade computacional Linguagens Formais e Autômatos - P. Blauth Menezes 7
  • 8. Resumidamente, uma máquina de Turing • autômato • fita não possui tamanho máximo • pode ser usada simultaneamente como dispositivo de entrada, de saída e de memória de trabalho ◆ Linguagens Recursivamente Enumeráveis ou Tipo 0 • aceitas por uma máquina de Turing • segundo a Hipótese de Church, a Classe das Linguagens Recursivamente Enumeráveis ∗ conjunto de todas as linguagens ∗ que podem ser reconhecidas mecanicamente ∗ em um tempo finito Linguagens Formais e Autômatos - P. Blauth Menezes 8
  • 9. Gramática Irrestrita • sem restrições sobre a forma das produções • mesmo poder computacional que o formalismo Máquina de Turing ◆ Conseqüência importante do estudo das linguagens recursivamente enumeráveis existem mais problemas não-solucionáveis do que problemas solucionáveis Linguagens Formais e Autômatos - P. Blauth Menezes 9
  • 10. Classe das Linguagens Recursivamente Enumeráveis • inclui algumas para as quais é ∗ impossível determinar mecanicamente ∗ se uma palavra não pertence à linguagem • se L é uma destas linguagens, então ∗ para qualquer máquina de Turing M que aceita L ∗ existe pelo menos uma palavra w não pertencente a L que ∗ ao ser processada por M, a máquina entra em loop infinito • ou seja ∗ se w pertence a L, M pára e aceita a entrada ∗ se w não pertence a L, M pode parar, rejeitando a palavra ou permanecer processando indefinidamente Linguagens Formais e Autômatos - P. Blauth Menezes 10
  • 11. Linguagens Recursivas • subclasse da Classe das Linguagens Enumeráveis Recursivamente • existe pelo menos uma máquina de Turing que pára para qualquer entrada, aceitando ou rejeitando Linguagens Formais e Autômatos - P. Blauth Menezes 11
  • 12. Linguagens Sensíveis ao Contexto ou Tipo 1 • aceitas por uma Máquina de Turing com Fita Limitada ∗ máquina de Turing com limitação no tamanho da fita (finita) ∗ exercício: diferença para o Autômato Finito? ◆ Gramática Sensível ao Contexto • em oposição a “livre do contexto”: lado esquerdo das produções ∗ pode ser uma palavra de variáveis ou terminais ∗ definindo um "contexto" de derivação ◆ Classe das Linguagens Sensíveis ao Contexto • contida propriamente na Classe das Linguagens Recursivas • classe especialmente importante ∗ inclui a grande maioria das linguagens aplicadas Linguagens Formais e Autômatos - P. Blauth Menezes 12
  • 13. Universo de Todas as Linguagens Linguagens Enumeráveis Recursivamente Linguagens Recursivas Linguagens Sensíveis ao Contexto Linguagens Livres do Contexto Linguagens Regulares Linguagens Formais e Autômatos - P. Blauth Menezes 13
  • 14. 8 - Linguagens Recursivamente Enumeráveis e Sensíveis ao Contexto 8.1 Máquina de Turing 8.1.1 Noção Intuitiva 8.1.2 Modelo 8.2 Modelos Equivalentes à Máquina de Turing 8.3 Hipótese de Church 8.4 Máquina de Turing como Reconhecedor 8.5 Propriedades das Linguagens Recursivamente Enumeráveis e Recursivas 8.6 Gramática Irrestrita 8.7 Linguagem Sensível ao Contexto 8.8 Máquina de Turing com Fita Limitada Linguagens Formais e Autômatos - P. Blauth Menezes 14
  • 15. 8.1 Máquina de Turing ◆ Noção de algoritmo não é matematicamente precisa ◆ Intuitivamente, deve possuir • descrição finita • passos ∗ discretos (em oposição ao contínuo) ∗ executáveis mecanicamente ∗ em um tempo finito Linguagens Formais e Autômatos - P. Blauth Menezes 15
  • 16. 8 - Linguagens Recursivamente Enumeráveis e Sensíveis ao Contexto 8.1 Máquina de Turing 8.1.1 Noção Intuitiva 8.1.2 Modelo 8.2 Modelos Equivalentes à Máquina de Turing 8.3 Hipótese de Church 8.4 Máquina de Turing como Reconhecedor 8.5 Propriedades das Linguagens Recursivamente Enumeráveis e Recursivas 8.6 Gramática Irrestrita 8.7 Linguagem Sensível ao Contexto 8.8 Máquina de Turing com Fita Limitada Linguagens Formais e Autômatos - P. Blauth Menezes 16
  • 17. 8.1.1 Noção Intuitiva ◆ Máquina de Turing (Alan Turing, 1936) • mecanismo simples • formaliza a idéia de uma pessoa que realiza cálculos • lembra os computadores atuais ∗ embora proposta anos antes do primeiro computador digital ◆ Modelo máquina de Turing • no mínimo, mesmo poder computacional • de qualquer computador de propósito geral Linguagens Formais e Autômatos - P. Blauth Menezes 17
  • 18. Ponto de partida de Turing • uma pessoa • com um instrumento de escrita e um apagador • realiza cálculos em uma folha de papel, organizada em quadrados ◆ Inicialmente, a folha de papel • contém somente os dados iniciais do problema ◆ Trabalho da pessoa: seqüências de operações simples • ler um símbolo de um quadrado • alterar um símbolo em um quadrado • mover os olhos para outro quadrado • fim dos cálculos ∗ representação satisfatória para a resposta desejada Linguagens Formais e Autômatos - P. Blauth Menezes 18
  • 19. Hipóteses aceitáveis • natureza bidimensional do papel não é essencial para os cálculos ∗ fita infinita organizada em quadrados • conjunto de símbolos: finito ∗ possível utilizar seqüências de símbolos Linguagens Formais e Autômatos - P. Blauth Menezes 19
  • 20. Hipóteses aceitáveis (pessoa) • conjunto de estados da mente durante o cálculo ∗ finito ∗ dois em particular: "estado inicial" e "estado final" • o comportamento, a cada momento, é determinado pelo ∗ estado presente ∗ símbolo para o qual sua atenção está voltada • pessoa é capaz de ∗ observar e alterar o símbolo de apenas um quadrado ∗ transferir sua atenção para um dos quadrados adjacentes Linguagens Formais e Autômatos - P. Blauth Menezes 20
  • 21. 8 - Linguagens Recursivamente Enumeráveis e Sensíveis ao Contexto 8.1 Máquina de Turing 8.1.1 Noção Intuitiva 8.1.2 Modelo 8.2 Modelos Equivalentes à Máquina de Turing 8.3 Hipótese de Church 8.4 Máquina de Turing como Reconhecedor 8.5 Propriedades das Linguagens Recursivamente Enumeráveis e Recursivas 8.6 Gramática Irrestrita 8.7 Linguagem Sensível ao Contexto 8.8 Máquina de Turing com Fita Limitada Linguagens Formais e Autômatos - P. Blauth Menezes 21
  • 22. 8.1.2 Modelo ◆ Constituído de três partes • Fita, usada simultaneamente como dispositivo de ∗ entrada, saída e memória de trabalho • Unidade de Controle ∗ reflete o estado corrente da máquina ∗ possui uma unidade de leitura e gravação (cabeça da fita) ∗ acessa uma célula da fita de cada vez ∗ se movimenta para a esquerda ou para a direita • Programa, Função Programa ou Função de Transição ∗ define: estado da máquina ∗ comanda: leituras, gravações e sentido de movimento (cabeça) Linguagens Formais e Autômatos - P. Blauth Menezes 22
  • 23. Fita: finita à esquerda e infinita à direita • infinita: “tão grande quanto necessário” • dividida em células, cada uma armazenando um símbolo ◆ Símbolos podem • pertencer ao alfabeto de entrada • pertencer ao alfabeto auxiliar • ser "branco" • ser "marcador de início de fita" Linguagens Formais e Autômatos - P. Blauth Menezes 23
  • 24. • Inicialmente ∗ palavra a ser processada: células mais à esquerda (após o marcador de início de fita) ∗ demais células: "branco" marcador de entrada início de fita branco fita ❂ a b b c a ß ß ... cabeça da fita unidade de controle controle Linguagens Formais e Autômatos - P. Blauth Menezes 24
  • 25. Unidade de controle • número finito e predefinido de estados • cabeça da fita ∗ lê um símbolo de cada vez e grava um novo símbolo ∗ move uma célula para a direita ou para a esquerda • símbolo gravado e o sentido do movimento ∗ definidos pelo programa Linguagens Formais e Autômatos - P. Blauth Menezes 25
  • 26. Def: Máquina de Turing M = (Σ, Q, δ, q0, F, V, β, ❂) • Σ - alfabeto (de símbolos) de entrada • Q - conjunto de estados possíveis da máquina (finito) • δ - (função) programa ou função de transição (função parcial) ∗ suponha que Σ ∪ V e { β, ❂ } são conjuntos disjuntos δ: Q × (Σ ∪ V ∪ { β, ❂ }) → Q × (Σ ∪ V ∪ { β, ❂ }) × { E, D } ∗ transição da máquina: δ(p, x) = (q, y, m) • q 0 - estado inicial: elemento distinguido de Q • F - conjunto de estados finais: subconjunto de Q • V - alfabeto auxiliar (pode ser vazio) • β - símbolo especial branco • ❂ - símbolo de início ou marcador de início da fita Linguagens Formais e Autômatos - P. Blauth Menezes 26
  • 27. Símbolo de início de fita • ocorre exatamente uma vez e na célula mais à esquerda da fita ◆ Função programa • considera ∗ estado corrente ∗ símbolo lido da fita • determina ∗ novo estado ∗ símbolo a ser gravado ∗ sentido de movimento da cabeça (E e D) Linguagens Formais e Autômatos - P. Blauth Menezes 27
  • 28. Função programa interpretada como um diagrama • estados inicial e finais: como nos autômatos finitos • suponha a transição δ(p, x) = (q, y, m) ) (x, y, m) p q estado anterior novo estado símbolo lido sentido do movimento símbolo gravado Linguagens Formais e Autômatos - P. Blauth Menezes 28
  • 29. Computação de uma máquina de Turing M, para uma palavra de entrada w • sucessiva aplicação da função programa ∗ a partir do estado inicial ∗ cabeça posicionada na célula mais à esquerda da fita ∗ até ocorrer uma condição de parada • processamento pode ∗ parar ou ∗ ficar processando indefinidamente (ciclo ou loop infinito) Linguagens Formais e Autômatos - P. Blauth Menezes 29
  • 30. Aceita a entrada w • atinge um estado final ∗ máquina pára ∗ w é aceita ◆ Rejeita a entrada w • função programa é indefinida para o argumento (símbolo lido e estado corrente) ∗ máquina pára ∗ w é rejeitada • argumento define um movimento à esquerda, e a cabeça da fita já se encontra na célula mais à esquerda ∗ máquina pára ∗ w é rejeitada Linguagens Formais e Autômatos - P. Blauth Menezes 30
  • 31. Definição formalmente do comportamento • necessário estender a definição da função programa • argumento: um estado e uma palavra • exercício Linguagens Formais e Autômatos - P. Blauth Menezes 31
  • 32. Def: Linguagens Aceita, Rejeitada, Loop Linguagem Aceita ou Linguagem Reconhecida por M ACEITA(M) ou L(M) • conjunto de todas as palavras de Σ* aceitas por M, a partir de q0 Linguagem Rejeitada por M REJEITA(M) • conjunto de todas as palavras de Σ* rejeitadas por M, a partir de q0 Linguagem Loop de M LOOP(M) • conjunto de todas as palavras de Σ* para as quais M fica processando indefinidamente a partir de q0 Linguagens Formais e Autômatos - P. Blauth Menezes 32
  • 33. Cada máquina de Turing M sobre Σ • induz uma partição de Σ* • em classes de equivalência ∗ ACEITA(M), REJEITA(M) e LOOP(M) ∗ se um ou dois dos conjuntos for vazios? Σ* ACEITA(M) REJEITA(M) LOOP(M) Linguagens Formais e Autômatos - P. Blauth Menezes 33
  • 34. Exp: Máquina de Turing: Duplo Balanceamento L = { anbn  n ≥ 0 } Máquina de Turing M = ({ a, b }, { q0, q1, q2, q3, q4 }, δ, q0, { q4 }, { A, B }, β, ❂) é tal que ACEITA(M) = L e REJEITA(M) = ~L e, portanto, LOOP(M) = ∅ • qualquer palavra que não esteja na forma axbx é rejeitada Linguagens Formais e Autômatos - P. Blauth Menezes 34
  • 35. Exp: Máquina de Turing: Duplo Balanceamento (A, A, D) (a, A, D) (b, B, E) q0 q1 q2 (❂, ❂, D) (a, a, D) (a, a, E) (B, B, D) (B, B, E) (B, B, D) (ß, ß, D) q3 (B, B, D) (ß, ß, D) q4 Linguagens Formais e Autômatos - P. Blauth Menezes 35
  • 36. δ ❂ a b A B β q 0 (q0, ❂, D) (q1, A, D) (q3, B, D) (q4, β, D) q1 (q1, a, D) (q2, B, E) (q1, B, D) q2 (q2, a, E) (q0, A, D) (q2, B, E) q3 (q3, B, D) (q4, β, D) q4 Linguagens Formais e Autômatos - P. Blauth Menezes 36
  • 37. a a b b ß ... ❂ a a b b ß ... ❂ A a b b ß ... q0 q0 q1 ❂ A a b b ß ... ❂ A a B b ß ... ❂ A a B b ß ... q1 q2 q2 ❂ A a B b ß ... ❂ A A B b ß ... ❂ A A B b ß ... q0 q1 q1 ❂ A A B B ß ... ❂ A A B B ß ... ❂ A A B B ß ... q2 q2 q0 ❂ A A B B ß ... ❂ A A B B ß ... ❂ A A B B ß ß ... q3 q3 q4 Linguagens Formais e Autômatos - P. Blauth Menezes 37
  • 38. Obs: Máquina de Turing × Algoritmo Foi afirmado que Máquina de Turing • é aceita como uma formalização do conceito de algoritmo Entretanto, também é usual considerar como conceito de algoritmo • máquina de Turing que sempre pára para qualquer entrada Nesse caso, uma máquina que eventualmente fica em loop infinito • não seria considerada um algoritmo Linguagens Formais e Autômatos - P. Blauth Menezes 38
  • 39. 8 - Linguagens Recursivamente Enumeráveis e Sensíveis ao Contexto 8.1 Máquina de Turing 8.2 Modelos Equivalentes à Máquina de Turing 8.3 Hipótese de Church 8.4 Máquina de Turing como Reconhecedor 8.5 Propriedades das Linguagens Recursivamente Enumeráveis e Recursivas 8.6 Gramática Irrestrita 8.7 Linguagem Sensível ao Contexto 8.8 Máquina de Turing com Fita Limitada Linguagens Formais e Autômatos - P. Blauth Menezes 39
  • 40. 8.2 Modelos Equivalentes à Máquina de Turing ◆ Uma razão para considerar a máquina de Turing como o mais geral dispositivo de computação • todos os demais modelos e máquinas propostos • bem como as diversas modificações da máquina de Turing • possuem, no máximo, o mesmo poder computacional da máquina de Turing Linguagens Formais e Autômatos - P. Blauth Menezes 40
  • 41. Autômato com Múltiplas Pilhas • autômato com duas pilhas (citado no estudo das LLC) ∗ poder computacional é equivalente ao da máquina de Turing • maior número de pilhas: não aumenta a capacidade computacional • exercício ∗ definição formal: autômato com duas (múltiplas) pilhas ∗ equivalência deles ao modelo da máquina de Turing • como são necessárias duas pilhas, pode-se afirmar ∗ a estrutura de fita é mais expressiva do que a de pilha ◆ Máquina de Turing Não-Derminística • não aumenta o poder computacional da máquina de Turing Linguagens Formais e Autômatos - P. Blauth Menezes 41
  • 42. Máquina de Turing com Fita Infinita à Esquerda e à Direita • fita infinita dos dois lados não aumenta o poder computacional • pode ser facilmente simulada por uma fita tradicional ∗ células pares: parte direita da fita ∗ células ímpares: parte esquerda da fita ... a-3 a-2 a-1 a1 a2 a3 ... ❂ a1 a-1 a2 a-2 a3 a-3 ... Linguagens Formais e Autômatos - P. Blauth Menezes 42
  • 43. Máquina de Turing com Múltiplas Fitas • k fitas infinitas à esquerda e à direita e k cabeças de fita • função programa ∗ dependendo do estado corrente e do símbolo lido em cada fita ∗ grava um novo símbolo em cada fita ∗ move cada cabeça independentemente ∗ assume um (único) novo estado • inicialmente ∗ palavra de entrada: armazenada na primeira fita ∗ demais: brancos Linguagens Formais e Autômatos - P. Blauth Menezes 43
  • 44. Máquina de Turing Multidimensional • fita tradicional ∗ substituída por uma estrutura do tipo arranjo k-dimensional ∗ infinita em todas as 2k direções ◆ Máquina de Turing com Múltiplas Cabeças • k cabeças de leitura e gravação sobre a mesma fita ∗ movimentos independentes • processamento depende ∗ estado corrente ∗ símbolo lido em cada uma das cabeças Linguagens Formais e Autômatos - P. Blauth Menezes 44
  • 45. Modificações combinadas sobre a Máquina de Turing • combinação de algumas ou todas as modificações ∗ não aumenta o poder computacional da máquina de Turing • exemplo, uma máquina de Turing ∗ não-determinística ∗ com múltiplas fitas ∗ múltiplas cabeças ∗ pode ser simulada por uma máquina de Turing tradicional Linguagens Formais e Autômatos - P. Blauth Menezes 45
  • 46. 8 - Linguagens Recursivamente Enumeráveis e Sensíveis ao Contexto 8.1 Máquina de Turing 8.2 Modelos Equivalentes à Máquina de Turing 8.3 Hipótese de Church 8.4 Máquina de Turing como Reconhecedor 8.5 Propriedades das Linguagens Recursivamente Enumeráveis e Recursivas 8.6 Gramática Irrestrita 8.7 Linguagem Sensível ao Contexto 8.8 Máquina de Turing com Fita Limitada Linguagens Formais e Autômatos - P. Blauth Menezes 46
  • 47. 8.3 Hipótese de Church ◆ Objetivo do modelo abstrato de computação Máquina de Turing • explorar os limites da capacidade de expressar soluções de problemas ◆ Portanto, uma proposta de • definição formal da noção intuitiva de algoritmo ◆ Diversos outros trabalhos: equivalentes ao de Turing • Máquina de Post (Post - 1936) • Funções Recursivas (Kleene - 1936) Linguagens Formais e Autômatos - P. Blauth Menezes 47
  • 48. Forte reforço da Hipótese de (Turing-) Church "A capacidade de computação representada pela máquina de Turing é o limite máximo que pode ser atingido por qualquer dispositivo de computação". ◆ Em outras palavras • qualquer outra forma de expressar algoritmos terá, no máximo, a mesma capacidade computacional da máquina de Turing ◆ Hipótese de Church não é demonstrável • algoritmo ou função computável: noção intuitiva Linguagens Formais e Autômatos - P. Blauth Menezes 48
  • 49. 8 - Linguagens Recursivamente Enumeráveis e Sensíveis ao Contexto 8.1 Máquina de Turing 8.2 Modelos Equivalentes à Máquina de Turing 8.3 Hipótese de Church 8.4 Máquina de Turing como Reconhecedor 8.4.1 Linguagem Recursivamente Enumerável 8.4.2 Linguagem Recursiva 8.5 Propriedades das Linguagens Recursivamente Enumeráveis e Recursivas 8.6 Gramática Irrestrita 8.7 Linguagem Sensível ao Contexto 8.8 Máquina de Turing com Fita Limitada Linguagens Formais e Autômatos - P. Blauth Menezes 49
  • 50. 8.4 Máquina de Turing como Reconhecedor ◆ Classes de linguagens definidas a partir do formalismo máquina de Turing • Linguagens Recursivamente Enumeráveis • Linguagens Recursivas Linguagens Formais e Autômatos - P. Blauth Menezes 50
  • 51. Classe das Linguagens Recursivamente Enumeráveis • existe uma máquina de Turing capaz de determinar ∗ se uma palavra w pertence à linguagem • entretanto, se w ∈ ~L, o algoritmo pode ∗ parar: w não pertence à linguagem ∗ ficar em loop infinito ◆ Classe das Linguagens Recursivas • existe pelo menos uma máquina de Turing que sempre pára, capaz de determinar se ∗ w ∈ L ou ∗ w ∈ ~L Linguagens Formais e Autômatos - P. Blauth Menezes 51
  • 52. Recursivas × Recursivamente Enumeráveis ∈ ∈ w w MT MT ∉ ∉ ou LOOP ◆ Aparente contradição reconhecer o complemento de uma linguagem pode ser impossível, mesmo que seja possível reconhecer a linguagem Linguagens Formais e Autômatos - P. Blauth Menezes 52
  • 53. 8 - Linguagens Recursivamente Enumeráveis e Sensíveis ao Contexto 8.1 Máquina de Turing 8.2 Modelos Equivalentes à Máquina de Turing 8.3 Hipótese de Church 8.4 Máquina de Turing como Reconhecedor 8.4.1 Linguagem Recursivamente Enumerável 8.4.2 Linguagem Recursiva 8.5 Propriedades das Linguagens Recursivamente Enumeráveis e Recursivas 8.6 Gramática Irrestrita 8.7 Linguagem Sensível ao Contexto 8.8 Máquina de Turing com Fita Limitada Linguagens Formais e Autômatos - P. Blauth Menezes 53
  • 54. 8.4.1 Linguagem Recursivamente Enumerável Def: Linguagem Recursivamente Enumerável ou Tipo 0 Uma linguagem aceita por uma máquina de Turing Exp: Linguagem Recursivamente Enumerável • { anbn  n ≥ 0 } já apresentado • { w  w tem o mesmo número de símbolos a e b } exercício • { aibjck  i = j ou j = k } exercício Linguagens Formais e Autômatos - P. Blauth Menezes 54
  • 55. Considerando a Hipótese de Church • a máquina de Turing é o mais geral dispositivo de computação • então, a Classe das Linguagens Recursivamente Enumeráveis ∗ todas as linguagens que podem ser reconhecidas mecanicamente ◆ Linguagens Recursivamente Enumeráveis × Universo de todas as linguagens • classe de linguagens muito rica • entretanto, existem conjuntos que não são recursivamente enumeráveis ∗ não é possível desenvolver uma MT que os reconheça Linguagens Formais e Autômatos - P. Blauth Menezes 55
  • 56. Teorema: Linguagem Não-Recursivamente Enumerável Seja Σ = { a, b } Suponha Xi o i-ésimo elemento na ordenação lexicográfica de Σ* •0-ε • 1-a •2-b • 3 - aa •… Exercícios • é possível codificar todas as máquinas de Turing • como uma palavra sobre Σ de tal forma que • cada código represente uma única máquina de Turing • suponha o conjunto dos códigos ordenados lexicograficamente • suponha que Ti representa o i-ésimo código nesta ordenação Linguagens Formais e Autômatos - P. Blauth Menezes 56
  • 57. Então não é linguagem recursivamente enumerável L = { xi  xi não é aceita por Ti } Prova: (por absurdo) Suponha que L é recursivamente enumerável • existe uma máquina de Turing que aceita L • seja Tk a codificação desta máquina de Turing: ACEITA(Tk) = L Assim • por definição de L, xk ∈ L sse xk não é aceita por Tk • como Tk aceita L, xk ∈ L sse xk é aceita por Tk Contradição!!! Logo, L não é linguagem recursivamente enumerável Linguagens Formais e Autômatos - P. Blauth Menezes 57
  • 58. Obs: Cardinal dos Problemas > Cardinal dos Algoritmos Conjunto das condifições de todas as máquinas de Turing • isomorfo a um subconjunto infinito dos números naturais Logo, é enumerável (infinitamente contável) o conjunto de todas • máquinas de Turing • linguagens recursivamente enumeráveis • problemas solucionáveis Em contrapartida, o conjunto das linguagens que não são recursivamente enumeráveis (problemas não-solucionáveis) • não-contável Linguagens Formais e Autômatos - P. Blauth Menezes 58
  • 59. Portanto, computacionalmente existem mais problemas do que algoritmos para resolvê-los. Exemplo { f: N → N  f é função } • classe muito particular de problemas (linguagens) • prova-se: isomorfo a R (cardinal é 2ℵ ) 0 • maior do que ℵ0 (cardinal do conjunto das máquinas de Turing) Linguagens Formais e Autômatos - P. Blauth Menezes 59
  • 60. 8.1.2 Linguagem Recursiva Def: Linguagem Recursiva Existe pelo menos uma máquina de Turing M • ACEITA(M) = L • REJEITA(M) = ~L Linguagens Formais e Autômatos - P. Blauth Menezes 60
  • 61. Exp: Linguagem Recursiva • { anbn  n ≥ 0 } • { anbncn  n ≥ 0 } • { w  w ∈ { a, b }* e tem o dobro de símbolos a que b } Linguagens Formais e Autômatos - P. Blauth Menezes 61
  • 62. 8 - Linguagens Recursivamente Enumeráveis e Sensíveis ao Contexto 8.1 Máquina de Turing 8.2 Modelos Equivalentes à Máquina de Turing 8.3 Hipótese de Church 8.4 Máquina de Turing como Reconhecedor 8.5 Propriedades das Linguagens Recursivamente Enumeráveis e Recursivas 8.6 Gramática Irrestrita 8.7 Linguagem Sensível ao Contexto 8.8 Máquina de Turing com Fita Limitada Linguagens Formais e Autômatos - P. Blauth Menezes 62
  • 63. 8.5 Propriedades das Linguagens Recursivamente Enumeráveis e Recursivas ◆ Algumas das principais propriedades • complemento de uma linguagem recursiva é recursiva • linguagem é recursiva sse a linguagem e seu complemento são linguagens recursivamente enumeráveis • Classe das Linguagens Recursivas está contida propriamente na Classe das Linguagens Recursivamente Enumeráveis Linguagens Formais e Autômatos - P. Blauth Menezes 63
  • 64. Teorema: Complemento de uma Linguagem Recursiva é Recursiva Se uma linguagem L sobre um alfabeto Σ qualquer é recursiva, então o seu complemento ~L é recursiva Prova: (direta) Suponha L linguagem recursiva. Então existe M, máquina de Turing • ACEITA(M) = L • REJEITA(M) = ~L • LOOP(M) = ∅ Linguagens Formais e Autômatos - P. Blauth Menezes 64
  • 65. Seja • Inverte uma máquina de Turing que inverte ACEITA / REJEITA • M’ máquina de Turing resultante da composição de Inverte e M ∗ M’ aceita a linguagem ~L ∗ sempre pára para qualquer entrada Portanto, o complemento de uma linguagem recursiva é recursiva M' ∈ ∈ ∈ ∈ Inverte Inverte p M ∉ ∉ ∉ ∉ Linguagens Formais e Autômatos - P. Blauth Menezes 65
  • 66. Teorema: Linguagem Recursiva × Recursivamente Enumerável L é recursiva sse L e ~L são recursivamente enumeráveis Prova: (⇒ direta) Suponha L linguagem recursiva. Então (teorema anterior) • ~L é recursiva Como toda linguagem recursiva também é recursivamente enumerável • L e ~L são recursivamente enumeráveis Linguagens Formais e Autômatos - P. Blauth Menezes 66
  • 67. (⇐ direta) Suponha L linguagem tal que L e ~L são recursivamente enumeráveis Então existem M1 e M2, máquinas de Turing, tais que • ACEITA(M1) = L • ACEITA(M2) = ~L Seja M máquina de Turing resultante da composição M ∈ ∈ M1 w ∈ ∉ ∉ M2 Inverte Linguagens Formais e Autômatos - P. Blauth Menezes 67
  • 68. M ∈ ∈ M1 w ∈ ∉ ∉ M2 Inverte • composição não-determinista de M1 com M2 • composição seqüencial de M1 com Inverte Para qualquer palavra de entrada • M aceita se M1 aceita • M rejeita se M2 aceita Logo, L é recursiva Linguagens Formais e Autômatos - P. Blauth Menezes 68
  • 69. Teorema: Linguagens Recursivas ⊂ Recursivamente Enumeráveis Prova: (direta) Mostrar inclusão própria • existe pelos menos uma linguagem recursivamente enumerável que não é recursiva Linguagem recursivamente enumerável que é não-recursiva L = { Xi  Xi é aceita por Ti } Linguagens Formais e Autômatos - P. Blauth Menezes 69
  • 70. L é Recursivamente Enumerável (esboço da máquina de Turing) • M gera palavras X1, X2,… em ordem lexicográfica ∗ compara com w ∗ quando Xi = w, w é a i-ésima palavra na enumeração • M gera Ti, a i-ésima máquina de Turing (exercícios) • M simula Ti para a entrada w = Xi ∗ se w pertence a ACEITA(Ti), então w pertence a ACEITA(M) ∗ simulador: exercício • M aceita w sse Xi = w é aceita por Ti Logo, L é recursivamente enumerável Linguagens Formais e Autômatos - P. Blauth Menezes 70
  • 71. L não é Recursiva Já foi visto • L é recursiva sse L e ~L são recursivamente enumeráveis Complemento de L não é recursivamente enumerável • então L é não-recursiva Linguagens Formais e Autômatos - P. Blauth Menezes 71
  • 72. 8 - Linguagens Recursivamente Enumeráveis e Sensíveis ao Contexto 8.1 Máquina de Turing 8.2 Modelos Equivalentes à Máquina de Turing 8.3 Hipótese de Church 8.4 Máquina de Turing como Reconhecedor 8.5 Propriedades das Linguagens Recursivamente Enumeráveis e Recursivas 8.6 Gramática Irrestrita 8.7 Linguagem Sensível ao Contexto 8.8 Máquina de Turing com Fita Limitada Linguagens Formais e Autômatos - P. Blauth Menezes 72
  • 73. 8.6 Gramática Irrestrita ◆ Gramática Irrestrita • gramática sem qualquer restrição nas produções Exp: Gramática Irrestrita: { anb nc n  n ≥ 0 } G = ??? Linguagens Formais e Autômatos - P. Blauth Menezes 73
  • 74. Exp: Gramática Irrestrita: { anb nc n  n ≥ 0 } G = ({ S, C }, { a, b, c }, P, S) • P = { S → abc  ε, ab → aabbC, Cb → bC, Cc → cc } Derivação de aaabbbccc S ⇒ abc ⇒ aabbCc ⇒ aaabbCbCc ⇒ aaabbCbcc ⇒ aaabbbCcc ⇒ aaabbbccc • C "caminha" na palavra até a posição correta para gerar c Linguagens Formais e Autômatos - P. Blauth Menezes 74
  • 75. Teorema: Linguagem Recursivamente Enumerável × Gramática Irrestrita L é linguagem recursivamente enumerável sse L é gerada por uma gramática irrestrita • (não será demonstrado) Linguagens Formais e Autômatos - P. Blauth Menezes 75
  • 76. 8 - Linguagens Recursivamente Enumeráveis e Sensíveis ao Contexto 8.1 Máquina de Turing 8.2 Modelos Equivalentes à Máquina de Turing 8.3 Hipótese de Church 8.4 Máquina de Turing como Reconhecedor 8.5 Propriedades das Linguagens Recursivamente Enumeráveis e Recursivas 8.6 Gramática Irrestrita 8.7 Linguagem Sensível ao Contexto 8.8 Máquina de Turing com Fita Limitada Linguagens Formais e Autômatos - P. Blauth Menezes 76
  • 77. 8.7 Linguagem Sensível ao Contexto Def: Gramática Sensível ao Contexto G = (V, T, P, S) Qualquer regra de produção de P é da forma α → β • β é palavra de (V ∪ T)* • α é palavra de (V ∪ T)+ tal queα ≤ β ∗ excetuando-se, eventualmente, para S → ε ∗ neste caso, S não está no lado direito de qualquer produção Linguagens Formais e Autômatos - P. Blauth Menezes 77
  • 78. Portanto, em uma gramática sensível ao contexto • a cada etapa de derivação • tamanho da palavra derivada não pode diminuir ∗ excetuando-se para gerar a palavra vazia ∗ se esta pertencer à linguagem ◆ Observe (por quê?) • nem toda gramática livre do contexto é sensível ao contexto Def: Linguagem Sensível ao Contexto, Linguagem Tipo 1 Linguagem gerada por uma gramática sensível ao contexto Linguagens Formais e Autômatos - P. Blauth Menezes 78
  • 79. Exp: Linguagem Sensível ao Contexto: Palavra Duplicada { ww  w é palavra de { a, b }* } G = ({ S, X, Y, A, B, 〈aa〉, 〈ab〉, 〈ba〉, 〈bb〉 }, { a, b }, P, S) Produções de P • S → XY  aa  bb  ε, • X → XaA  XbB  aa〈aa〉  ab〈ab〉  ba〈ba〉  bb〈bb〉, • Aa → aA, Ab → bA, AY → Ya, • Ba → aB, Bb → bB, BY → Yb, • 〈aa〉a → a〈aa〉, 〈aa〉b → b〈aa〉, 〈aa〉Y → aa, • 〈ab〉a → a〈ab〉, 〈ab〉b → b〈ab〉, 〈ab〉Y → ab, • 〈ba〉a → a〈ba〉, 〈ba〉b → b〈ba〉, 〈ba〉Y → ba, • 〈bb〉a → a〈bb〉, 〈bb〉b → b〈bb〉, 〈bb〉Y → bb Linguagens Formais e Autômatos - P. Blauth Menezes 79
  • 80. Gera o primeiro w após X, e o segundo w após Y • a cada terminal gerado após X ∗ gerada correspondente variável • variável "caminha" na palavra até passar por Y ∗ deriva o correspondente terminal • para encerrar ∗ X deriva subpalavra de dois terminais ∗ e correspondente variável a qual "caminha" até encontrar Y ∗ quando é derivada a mesma subpalavra de dois terminais • se X derivar uma subpalavra de somente um terminal (e a correspondente variável) ? Linguagens Formais e Autômatos - P. Blauth Menezes 80
  • 81. 8 - Linguagens Recursivamente Enumeráveis e Sensíveis ao Contexto 8.1 Máquina de Turing 8.2 Modelos Equivalentes à Máquina de Turing 8.3 Hipótese de Church 8.4 Máquina de Turing como Reconhecedor 8.5 Propriedades das Linguagens Recursivamente Enumeráveis e Recursivas 8.6 Gramática Irrestrita 8.7 Linguagem Sensível ao Contexto 8.8 Máquina de Turing com Fita Limitada Linguagens Formais e Autômatos - P. Blauth Menezes 81
  • 82. 8.8 Máquina de Turing com Fita Limitada Linguagens Formais e Autômatos - P. Blauth Menezes 82
  • 83. Máquina de Turing com Fita Limitada • máquina de Turing • fita limitada ao tamanho da entrada • mais duas células ∗ marcadores de início e de fim de fita ◆ Não-Determinismo? • não é conhecido se aumenta o poder computacional Linguagens Formais e Autômatos - P. Blauth Menezes 83
  • 84. Def: Máquina de Turing com Fita Limitada (MTFL) M = (Σ, Q, δ, q0, F, V, ❂, ✝) • Σ - alfabeto (de símbolos) de entrada • Q - conjunto de estados (finito) • δ - (função) programa ou função de transição (parcial) δ: Q × (Σ ∪ V ∪ { ❂, ✝ }) → 2Q×(Σ∪V∪{❂,✝})×{E,D} ∗ transição: δ(p, x) = { (q1, y1, m1),…,(qn, yn, mn) } • q 0 - estado inicial: elemento distinguido de Q • F - conjunto de estados finais: subconjunto de Q • V - alfabeto auxiliar (pode ser vazio) • ❂ - símbolo de início ou marcador de início da fita • ✝ - símbolo de fim ou marcador de fim da fita Linguagens Formais e Autômatos - P. Blauth Menezes 84
  • 85. Exp: Máquina de Turing com Fita Limitada: Palavra Duplicada L = { ww  w é palavra de { a, b }* } A máquina de Turing com fita limitada M = ({ a, b }, { q0, q1,…, q9, qf }, δ, q0, { qf }, { X, Y }, ❂, ✝) é tal que ACEITA(M) = L e REJEITA(M) = ~L • q 1, o início do primeiro w é marcado com um X • q 2 e q3 definem não-determinismos ∗ marcar com um Y o início do segundo w • q 5 a q11 verifica a igualdade das duas metades Linguagens Formais e Autômatos - P. Blauth Menezes 85
  • 86. q0 (❂, ❂, D) q1 (a, X, D) (b, X, D) (✝, ✝, E) (a, a, D) (a, a, D) q2 q3 (b, b, D) (b, b, D) (a, Y, E) (b, Y, E) (a, a, E) q4 (b, b, E) (X, X, D) q5 (a, X, D) (b, X, D) (Y, Y, D) (a, a, D) (a, a, D) q6 q8 q11 (Y, Y, D) (b, b, D) (b, b, D) (Y, Y, D) (Y, Y, D) (✝, ✝, E) (Y, Y, D) q7 q9 (Y, Y, D) qf (a, Y, E) (b, Y, E) (Y, Y, E) q10 (a, a, E) (b, b, E) (X, X, D) Linguagens Formais e Autômatos - P. Blauth Menezes 86
  • 87. Teorema: Linguagem Sensível ao Contexto × Máquina de Turing com Fita Limitada L é uma linguagem sensível ao contexto sse L é reconhecida por uma máquina de Turing com fita limitada • não será demonstrado Linguagens Formais e Autômatos - P. Blauth Menezes 87
  • 88. Linguagens Formais e Autômatos P. Blauth Menezes 1 Introdução e Conceitos Básicos 2 Linguagens e Gramáticas 3 Linguagens Regulares 4 Propriedades das Linguagens Regulares 5 Autômato Finito com Saída 6 Linguagens Livres do Contexto 7 Propriedades e Reconhecimento das Linguagens Livres do Contexto 8 Linguagens Recursivamente Enumeráveis e Sensíveis ao Contexto 9 Hierarquia de Classes e Linguagens e Conclusões Linguagens Formais e Autômatos - P. Blauth Menezes 88
  • 89. 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 89