07 - linguagens sensiveis ao contexto e recursivamente enumeraveis

27
LINGUAGENS SENSÍVEIS AO CONTEXTO E RECURSIVAMENTE ENUMERÁVEIS Prof. Ronaldo R. Goldschmidt [email protected]

Upload: sebastiao007

Post on 24-Nov-2015

148 views

Category:

Documents


0 download

TRANSCRIPT

  • LINGUAGENS SENSVEIS AO CONTEXTO E RECURSIVAMENTE

    ENUMERVEIS

    Prof. Ronaldo R. Goldschmidt [email protected]

  • HIERARQUIA DE CHOMSKY

  • O formalismo da MT capaz de reconhecer as seguintes classes de

    linguagens:

    Classe das Linguagens Recursivamente Enumerveis Composta pelas linguagens L para as quais existe uma MT capaz de determinar se uma

    palavra w L. No entanto, se w ~L, o algoritmo pode:

    parar, identificando que a palavra no pertence a L

    ficar em loop infinito (processando indefinidamente)

    MQUINA DE TURING

    MT como Reconhecedor de Linguagens

  • O formalismo da MT capaz de reconhecer as seguintes classes de

    linguagens (cont.):

    Classe das Linguagens Recursivas Composta pelas linguagens L para as quais existe pelo menos uma MT que sempre pra, capaz de determinar se

    uma dada palavra w pertence ou no a L.

    MQUINA DE TURING

    MT como Reconhecedor de Linguagens

  • Classes de Linguagens reconhecidas pelo formalismo da MT:

    Linguagens Recursivamente Enumerveis

    Linguagens Recursivas

    A existncia destas duas classes contradiz a intuio da maioria das pessoas,

    pois estabelece que:

    Reconhecer o complemento de uma linguagem pode ser impossvel, mesmo

    que seja possvel reconhecer a linguagem.

    MQUINA DE TURING

    MT como Reconhecedor de Linguagens

  • Definio: Uma linguagem aceita por uma Mquina de Turing dita ser uma

    Linguagem Recursivamente Enumervel ou Linguagem Tipo 0.

    Exemplos: As linguagens L1={anbn | n 0}, L2={wcw | w {a,b}

    *} e

    L3={a2nbcn | n > 0} so recursivamente enumerveis. As respectivas MTs

    foram construdas anteriormente.

    Observao:

    Como, segundo a Hiptese de Church, a MT o mais geral dispositivo de

    computao, pode-se afirmar que a classe das linguagens recursivamente

    enumerveis representa todas as linguagens que podem ser reconhecidas

    (compiladas) mecanicamente. Trata-se, portanto, de uma linguagem muito

    rica. Existem, no entanto, conjuntos que no so recursivamente enumerveis,

    ou seja, linguagens para as quais no possvel desenvolver uma MT que as

    reconhea.

    LINGUAGENS RECURSIVAMENTE ENUMERVEIS

  • Exerccio 1 Mostre que as linguagens abaixo so recursivamente

    enumerveis:

    a) a*bb*(cc + d)

    b) {anbnck / n, k 0}

    c) {anbmck / n, m, k 0}

    d) {wwR | w {a,b}*}

    LINGUAGENS RECURSIVAMENTE ENUMERVEIS

  • Teorema: Existe pelo menos uma linguagem que no recursivamente

    enumervel.

    Demonstrao: (Menezes, 2005, p. 183)

    Observao sobre a cardinalidade do Conjunto dos Problemas e a

    cardinalidade do Conjunto dos Algoritmos (decorrente do teorema anterior):

    Existem mais problemas do que algoritmos para resolv-los.

    Demonstrao: (Menezes, 2005, p. 183)

    LINGUAGENS RECURSIVAMENTE ENUMERVEIS

  • LINGUAGENS RECURSIVAS

  • Definio: Uma linguagem L dita ser uma Linguagem Recursiva se existe pelo

    menos uma Mquina de Turing M tal que:

    ACEITA(M)=L

    REJEITA(M)=~L

    Observao: Uma linguagem recursiva se existe uma MT que aceita a

    linguagem e que sempre pra diante de qualquer entrada.

    Exemplos de Linguagens Recursivas:

    {anbn | n 0}

    {anbncn | n 0}

    {w | w {a, b}* e tem o dobro de smbolos a em relao ao nmero de bs}

    LINGUAGENS RECURSIVAS

  • Exerccio 2 Mostre que as linguagens abaixo so recursivas:

    a) abc(a + b + c)*

    b) {anbncn | n 0}

    c) {w | w {a, b}* e tem o dobro de as em relao ao nmero de bs}

    LINGUAGENS RECURSIVAS

  • Teorema (Complemento de uma Linguagem Recursiva Recursiva): Se uma

    linguagem L sobre um alfabeto qualquer recursiva, ento o seu

    complemento ~L tambm uma linguagem recursiva.

    Demonstrao: (Menezes, 2005, p. 185)

    Graficamente:

    PROPRIEDADES LINGUAGENS R.E. E RECURSIVAS

  • Teorema: Uma linguagem L sobre um alfabeto qualquer recursiva se, e

    somente se, L e ~L so recursivamente enumerveis.

    Demonstrao: (Menezes, 2005, p. 186)

    () Direta da definio de linguagem recursiva e do teorema anterior

    () Construo da MT abaixo a partir de M1 e M2 tais que ACEITA(M1) = L

    e ACEITA(M2) = ~L

    Graficamente:

    PROPRIEDADES LINGUAGENS R.E. E RECURSIVAS

  • Teorema: A classe das Linguagens Recursivas est contida propriamente na

    classe de Linguagens Recursivamente Enumerveis.

    Demonstrao: (Menezes, 2005, p. 187)

    PROPRIEDADES LINGUAGENS R.E. E RECURSIVAS

  • Definio: Uma gramtica irrestrita aquela sem quaisquer restries em suas

    produes.

    Exemplo:

    A linguagem {anbncn | n 0} gerada pela seguinte gramtica irrestrita:

    G=({S, C},{a, b, c}, P, S), onde:

    P={S abc | , ab aabbC, Cb bC, Cc cc}

    A palavra aaabbbccc pode ser derivada da seguinte forma:

    S abc aabbCc aaabbCbCc aaabbCbcc aaabbbCcc aaabbbccc

    A varivel C caminha na palavra at a posio correta para gerar um terminal c.

    Existe alguma outra derivao possvel?

    Indique uma derivao para a palavra aaaabbbbcccc.

    GRAMTICA IRRESTRITA

  • Teorema: L uma Linguagem Recursivamente Enumervel se, e somente se, L

    gerada por uma gramtica irrestrita.

    Exemplo:

    Como vimos, L = {anbncn | n 0} recursivamente enumervel.

    Do exemplo anterior, G = ({S, C},{a, b, c}, P, S), onde:

    P={S abc | , ab aabbC, Cb bC, Cc cc}

    G uma gramtica irrestrita tal que GERA(G) = L

    GRAMTICA IRRESTRITA

  • LINGUAGENS SENSVEIS AO CONTEXTO

  • Avanando na hierarquia de Chomsky, seguem as linguagens sensveis ao

    contexto (ou linguagem do tipo 1). Como esperado, so linguagens geradas

    por gramticas sensveis ao contexto.

    LINGUAGENS SENSVEIS AO CONTEXTO

    Tipo 1 Linguagens Sensveis ao Contexto

    Tipo 2 Linguagens Livres de Contexto

    Tipo 3 Linguagens Regulares

  • Definio: Uma gramtica G=(V,T,P,S) chamada Gramtica Sensvel ao

    Contexto se toda regra de produo de P for da forma: , onde:

    uma palavra de (VT)*

    uma palavra de (VT)+ tal que || ||, excetuando-se, eventualmente, para S . Neste caso, S no pode estar presente no lado direito de

    qualquer produo.

    Observao:

    Em uma gramtica sensvel ao contexto, a cada etapa da derivao, o tamanho da palavra derivada no pode diminuir, excetuando-se para gerar a

    palavra vazia, se esta pertencer linguagem.

    LINGUAGENS SENSVEIS AO CONTEXTO

    Gramtica Sensvel ao Contexto

  • Definio: Uma linguagem gerada por uma gramtica sensvel ao contexto

    dita ser uma Linguagem Sensvel ao Contexto ou Linguagem do Tipo 1.

    Exemplo: Considere a linguagem L = {ww | w palavra de {a,b}*}

    Seja a gramtica sensvel ao contexto (veja que G no livre de contexto)

    G=({S,X,Y,A,B,aa>,ab>,ba>,bb>}, {a, b}, P, S) na qual:

    P={S XY | aa | bb | ,

    X XaA | XbB | aa | ab | ba | bb,

    Aa aA, Ab bA, AY Ya, Ba aB, Bb bB, BY Yb

    a a, b b, Y aa

    a a, b b, Y ab

    a a, b b, Y ba

    a a, b b, Y bb}

    LINGUAGENS SENSVEIS AO CONTEXTO

    Gramtica Sensvel ao Contexto

  • Observao:

    Nem toda gramtica livre de contexto uma gramtica sensvel ao contexto.

    Ex: G=({S}, {a, b}, P, S), onde P={S aSb | }

    S produo, mas S ocorre do lado direito de outra produo S aSb

    LINGUAGENS SENSVEIS AO CONTEXTO

    Gramtica Sensvel ao Contexto

  • Uma Mquina de Turing com Fita Limitada (MTFL), M um 8-upla da forma

    M=(, Q, , q0, F, V, , ) na qual:

    um alfabeto de smbolos de entrada

    Q um conjunto de estados possveis da mquina, o qual finito

    uma funo programa: : Q x (V{, }) Q x (V{, }) x {E, D}

    uma funo parcial. Supondo (p,x) Q x V{ , }, resultando no conjunto

    {(q1, y1,m1), ..., (qn, yn,mn)} 2 Q x (V{, }) x {E, D}, ento:

    (p, x) = {(q1, y1,m1), ..., (qn, yn,mn)} uma transio da mquina

    q0 um elemento distinguido de Q, denominado estado inicial.

    F um subconjunto de Q, conjunto de estados finais

    V um alfabeto auxiliar (pode ser vazio)

    o smbolo de incio ou marcador de incio da fita.

    o smbolo de fim ou marcador de fim da fita.

    Definio Mquina de Turing com Fita Limitada (MTFL)

    LINGUAGENS SENSVEIS AO CONTEXTO

  • Seja M=(, Q, , q0, F, V, , ) uma MTFL; A Linguagem Aceita ou

    Linguagem Reconhecida por M, denotada por ACEITA(M) ou L(M) o

    conjunto de todas as palavras de * aceitas por M a partir do seu estado inicial

    q0.

    L(M)={w/*(q0,w)F}, onde

    * a Funo Programa Estendida

    Analogamente, a Linguagem Rejeitada por M:

    REJEITA(M)={w/*(q0,w)F ou *(q0,w) indefinida}

    Linguagens Aceita, Rejeitada e Loop

    A linguagem Loop de M, denotada por LOOP(M) o conjunto de todas as

    palavras de * para as quais M fica processando indefinidamente a partir do

    estado inicial q0.

    LINGUAGENS SENSVEIS AO CONTEXTO

  • Considere a linguagem: L = {ww | w palavra de {a, b}*}

    A MTFL M=(, Q, , q0, {qf},V, , ),

    onde :

    ={a,b},

    Q={q0, q1, ..., q9, qf}

    V = {X, Y},

    ilustrada ao lado tal que:

    ACEITA(M) = L

    e

    REJEITA(M) = ~L

    Portanto, LOOP(M)=)

    Exemplo: MTFL para Palavra Duplicada

    LINGUAGENS SENSVEIS AO CONTEXTO

  • L uma linguagem sensvel ao contexto se, e somente se, L reconhecida por

    uma Mquina de Turing com Fita Limitada.

    Demonstrao: Vide (Menezes, 2005, p. 191)

    Exemplo: A linguagem L (Palavra Duplicada) do exemplo anterior uma

    linguagem sensvel ao contexto pois reconhecida por uma MTFL.

    Teorema

    LINGUAGENS SENSVEIS AO CONTEXTO

  • Atividades Prticas

    Lista de Exerccios VI

    Leituras Recomendadas

    Cap. 8 Paulo Blauth Menezes

    Cap. 5 Marcus Ramos

    LINGUAGENS SENSVEIS AO CONTEXTO