Expressões Regulares e Automatos Deterministicos, Notas de estudo de Informática
arnaldo-araujo-11
arnaldo-araujo-11

Expressões Regulares e Automatos Deterministicos, Notas de estudo de Informática

37 páginas
50Números de download
1000+Número de visitas
100%de 0 votosNúmero de votos
1Número de comentários
Descrição
Tutorial para aqueles que desejam aprofundar seus conhecimentos no estudo de Linguagens Formais e Teoria dos Automatos
80 pontos
Pontos de download necessários para baixar
este documento
Baixar o documento
Pré-visualização3 páginas / 37
Esta é apenas uma pré-visualização
3 mostrados em 37 páginas
Esta é apenas uma pré-visualização
3 mostrados em 37 páginas
Esta é apenas uma pré-visualização
3 mostrados em 37 páginas
Esta é apenas uma pré-visualização
3 mostrados em 37 páginas
[4 Faculdade de Ciências Cursos: Bacharelado em Ciência da Computação e Bacharelado em Sistemas de Informação Disciplinas: (14934) Teoria da Computação e Linguagens Formais, (46234) Teoria da Computação e Linguagens Formais e (1601A) Teoria da Computação Professora: Simone das Graças Domingues Prado e-mail: simonedp(O fe .unesp.br home-page: wwwp.fc.unesp.br/-simonedp/discipl.htm Apostila 02 Assunto: Linguagens Regulares Objetivos: = Estudar os autômatos finitos > Estudar as expressões regulares > Estudar as gramáticas regulares > Estudar as linguagens regulares Conteúdo: 1. Introdução 2. Autômato Finito Determinístico (AFD) 3. Autômato Finito não Determinístico (AFN) 4. Equivalência de AFN e AFD 5. Redução de estados de um autômato finito Expressões Regulares Gramática Regular Linguagens Regulares Exercícios 2 semestre de 2009. Simone Domingues Prado — Apostila 02 1. Introdução Segundo a Hierarquia de Chomsky, a Linguagem Regular trata-se de uma linguagem mais simples, sendo possível desenvolver algoritmos de reconhecimento ou de geração de pouca complexidade, grande eficiência e de fácil implementação. O estudo das Linguagens Regulares ou tipo 3 (Hierarquia de Chomsky) será visto através de vários formalismos: e Operacional ou reconhecedor — uso dos autômatos finitos (determinístico, não determinístico) e Axiomático ou gerador — gramática regular e Denotacional — expressão regular 2. Autômato Finito Determinístico (AFD) Um autômato é um modelo abstrato de um computador digital composto por uma fita de entrada (que conterá a cadeia de entrada), uma fita de saída (para mostrar a cadeia resultante), memória auxiliar (que armazena temporariamente símbolos do alfabeto) e unidade de controle. A cadeia a ser tratada fica armazenada na fita de entrada de onde a unidade de controle lê um símbolo por vez, pode mudar de estado dependendo das funções de transições definidas e escreve na memória e na fita de saída. O autômato finito é um reconhecedor de linguagens simples que não possui memória auxiliar, não altera a fita (ela serve apenas para a leitura de símbolos), a unidade de controle anda na fita somente em um sentido (da esquerda para a direita) e a fita tem comprimento limitado, do tamanho da cadeia a ser analisada. O autômato finito pode ser determinístico (AFD) e não determinístico (AFN). No AFD cada movimento é determinado de uma única forma, enquanto que no AFN existem várias possibilidades de transição para um mesmo símbolo. Definição 1 Um autômato finito determinístico é definido pela quintupla: M=(Q, £,5, qo, F) Onde: Q — conjunto finito de estados LL — alfabeto de entrada (ou conjunto finito de simbolos) 8 — função de transição (ou função programa) definida por 5: QxL > Q qo — estado inicial (go e Q) F — conjunto de estados finais (F e Q) 2 semestre de 2009. Simone Domingues Prado — Apostila 02 Exemplo 01 Dado o Autômato abaixo, especifique sua quintupla. Figura 01. Autômato — exemplo 01 Q=tgo, qr, q2) z=(0,1) estado inicial = qo estado final = qr as funções de transições: 5(go, 0) = go 5(qu, 0) = go 5(qo, 0) = q» (go, 1) = q q, D)=q> q, D=q Portanto M = (( qo, qu, q2), (0,1),8, qo, (qi) Exemplo 02 Desenhe o autômato sabendo que L= (a, b), L=( w | w possui aa ou bb como subcadeia ) e o autômato é dado por M=((qgo, q, qo, qr), ta, b 3, 3, qo, (gr)), onde o 6 está representado na tabela abaixo. õ b a —als, (80) (a) Lo b Figura 02. Autômato — exemplo 02 Note que um autômato finito sempre pára ao processar uma cadeia, já que a entrada é finita e o conjunto de estado também. Ele pode parar em duas ocasiões: ao aceitar uma cadeia ou ao rejeitá-la. Quando ele termina de ler a cadeia e assume um estado final — a cadeia é aceita. Caso contrário, a cadeia é rejeitada. 2 semestre de 2009. Simone Domingues Prado — Apostila 02 Definição 2: A linguagem associada a um autômato é o conjunto de todas as cadeias aceitas pelo autômato: L(M)= (we Z*:5*go, w) e F) Definição 3: Dois Autômatos Finitos M, e M são ditos equivalentes se, e somente se: L(M1) = L(M>) Ou seja, reconhecem a mesma linguagem Exemplo 03: Construa autômatos para reconhecer a linguagem L= (wl: w e (0,1)*) [1º a 1 . [o : [q (So) Haj— M=((go, qr), (0,1), 3, qo, (ar), M=((go, qr), (0,1 3,8, qo, tar), 5(go, 0) = go 5(go, 0) = qo 5(go, 1) = (go, gr) 5(go, 1) = qr (as, 0) = go das, 1) =qr Definição 4: A função de transição (ou programa) estendida é denotada por: 5* QxL* 5 Q Exemplo 04: Sabendo que M = (( qo, q, q2), (0,1 3,3, qo, (q>)) e 5(go, 0) = go 5(qn, 0) = qo (go, 0) = q» (go, D)=q 5a, D=q2 (q D=q Portanto, 5*( qo, 011) = q» Tá que &(go, 0) = qo, 5(go, 1) = qy e S(qy, 1) = qo 5(go, 011) = S(go, 11) = S(q, 1) = q2 Le 1 1 AHH fo NA Figura 03. Autômato — exemplo 04 2 semestre de 2009. Simone Domingues Prado — Apostila 02 Definição 5: Uma linguagem L é dita regular se, e somente se existe um autômato finito determinístico M, tal que: L=L(M). Exemplo 05: a) Considere a linguagem: L = ( w | w possui um número par de a e b) Ma = (( o, qu, qo, q3), tab), 8, go, (qo)) b ———(% a a a a b (de) —*( 5) b Figura 04. Autômato — exemplo 05(a) b) Considere a linguagem: L = ( w | w possui um número impar de a e b) Mb = (( qo, qu, q2, dr), (ab), 8, qo, (ar) a (a) a b| |b b b Figura 05. Autômato — exemplo 05(b) 2 semestre de 2009. Simone Domingues Prado — Apostila 02 3. Autômato Finito Não Determinístico (AFN) Definição 6: Um autômato finito não determinístico é definido pela quíntupla: M=(Q, £, 5, qo, F) Onde: Q — conjunto finito de estados L-— alfabeto de entrada, conjunto finito de símbolos 5 - função de transição ou função programa definido por d: QxL> 2º do — estado inicial (go e Q) F — conjunto de estados finais (F e Q) Obs: 2º representa os subconjuntos de Q. Em alguns livros cita-se que um AFN pode ter movimentos vazios. Um movimento vazio é uma transição sem leitura de símbolo algum. Aí a função transição é dada por: 5: Qx (LUIS 2º Exemplo 06: Considere a linguagem: L = (w | w possui aa ou bb como subcadeia ) O autômato finito não determinístico pode ser dado por: M= tí go, qu, d2; qr), tab), 3, qo, Car)) Onde S(go, a) = (qo, qn) Sa, a) = tar) S(ar, a) = (qr) S(go, b) = (g0,q2) (qo, b) = tao Sar, b) = tar) [Ja.b a A H dg L | | Figura 06. Autômato — exemplo 06 2 semestre de 2009. Simone Domingues Prado — Apostila 02 Exemplo 07: Considere a linguagem: L = (w | w possui aaa como sufixo ) O autômato finito não determinístico pode ser dado por: M= (qo, qi, q», qt, tab), 3, go, (ar)) Onde (go, a) = tgo, qn) (qr, a) = (qo) 5(go, b) = (go) 5(qo, a) = tar) [Ja (0) (8) (3) +69 a a f Figura 07. Autômato — exemplo 07 4. Equivalência entre os autômatos AFD e AFN Sabe-se que um autômato M, é equivalente a um autômato M> se, e somente se, L(M1) = L(M)>) pela Definição 2. Então se pode transformar um AFN em AFD para que a linguagem lida pelo AFN seja do tipo regular. SejaM =(Q, E, 5, qo, F) um AFN qualquer. Seja Mº =( Q”, L, 5º, , Fº) um AFD construído a partir de M como segue: Q? é o conjunto de todas as combinações, sem repetições, de estado de Q as quais são denotados por ...qn>, onde q; pertence a Q para j em (1, 2,...,n). Note-se que a ordem dos elementos não distingue mais combinações. Por exemplo, >= ; Ss” tal que 5(, a) = se e somente se, S((qu,...Qn),a) = (pi, ..., Pm). Ou seja, um estado de Mº representa uma imagem dos estados de todos os caminhos alternativos de M, estado inicial, FP conjunto de todos os estados pertencentes a Q” tal que alguma componente q; pertence a F, paraj em (1,2,...,n). Algoritmo 1. Crie um grafo Gg com um vértice rotulado por . Identifique-o como sendo o estado inicial. 2. Repita os seguintes passos até que não faltem mais arestas: a. Tome um vértice de Ga que ainda não tenha aresta rotulada por a E L. b. Compute as funções transições estendidas: 5*(qm,a), 5*(Qu>,a), ...., 3*(Qnsa) c. Produza como sendo a união das funções transições estendidas calculadas no passo anterior . Crie um vértice no Gd rotulado por , Caso esse vértice não tenha sido criado. e. Adicione a Gd a aresta de Qui, Qua, ..., Quk> até e rotule-a com o símbolo a ez 2 semestre de 2009. Simone Domingues Prado — Apostila 02 3. Todo estado de Gd cujo rótulo contém algum qf e F (estados finais de AFN) é definido como sendo um estado final do AFD 4. seo AFN aceita a cadeia vazia, faça o estado inicial do AFD ser um estado final. Exemplo 08: Considere o exemplo o autômato AFN do exemplo 07. M =(( go, q, q2, qr), tab), 3, go, tar)) (go, a) = tgo, qn) (qr, a) = (qo) 5(go, b) = (go) 5(qo, a) = tar) Para construir um AFD tem-se: Mº=(Q”, (ab),5”, , F") Cu) vértice e símbolo a S(, a) = , já que 5(go, a) = (qo, qr) vértice e símbolo b 5(, b) =, já que (go, b) = tqo) a Goa vértice e símbolo a 5(, a) = , já que S(go, a) = go, q) e S(qn, a) = (q2) vértice e símbolo b 5(, b) = , já que S(go, b) = tqo) b b vértice e símbolo a S(, a) = , já que (go, a)=(go, q1), e S(qr, a)=(q2) e (qo, a) = tar) vértice e símbolo b 5(, b) = , já que S(go, b) = (go) b —H(S30>) - CEso >) 2 cama O CCagaya,0> b b 2 semestre de 2009. Simone Domingues Prado — Apostila 02 vértice e símbolo a S( a) = , já que S(go, J=tgo, q1), e (qr, a)=(q2) e S(qo, a)= (qr) vértice e símbolo b S(, b) = , já que S(go, b) = (qo) b [55 b Fº = (, F'), a partir de AFN é: Mº=(Q”, (ab), 5”, , Fº) Q” = (, , , , a) = 5"(, a) = S'(, a) =, b) = 5(, b) = S(, b) = 3“( O grafo: [Ie a —+ —— | -— qOqlq?> 4 a2q [Et | b Figura 08. Autômato — exemplo 08 Exemplo 09: Considere um AFN como segue: M=t( go q1, qo), t0,1),8, go, (ar)) 5(go, 0) = (g0,q0) gr, 0) = (ar) (qu, 1) = an) 5(go, 1) = (ar) Sar, D)= (q) Para construir un AFD tem-se: M” = (Q”, (0,1),5”, , F”) 2 semestre de 2009. Simone Domingues Prado — Apostila 02 Q" = () vértice e símbolo O S(, 0) = e símbolo 1 5"(, 1) = , já que S(go, 1) = (ar Q” = (, , < qt> ) vértice e símbolo O 5"(, já que 3(go, 0) = tgo, qr) e S(ar, 0) = (q) vértice e símbolo 1 5'(, já que d(go, 1) = tar) e das, 1) = (qr) Q” = (, , < qr>, e simbolo O S(, 0) = , já que S(qe, 0) = tar) vértice e símbolo 1 5 (, já que S(ge, 1) = tqr) Q” = (, , < qe>, , , ) vértice e símbolo O S"(, 0) = , já que S(go, 0) = (go, ar) e das, 0) = tar) vértice e símbolo 1 5'(, 1) = , já que S(go, 1) = (ar 3 , S(as, 1) = (qi) e San, 1) = (qr) Q” = (, , < qe>, , , ) vértice e símbolo O S'(, já que S(qr, 0) = (A) e Sar, 0) = tar) vértice e símbolo 1 5'(, já que S(qr, 1)= tar) e das 1) = (qr) Q” = (, , < qr>, , ) vértice e símbolo O S(, 0) =, já que (qn, 0) = (A) vértice e símbolo 1 5(, 1) = , já que (qu, 1) = tqr) Q” = (, , < qe>, , , , ) vértice e símbolo O S'(, 0)=, já que S(A, 0) = (A) vértice <> e símbolo 1 S'(, 1) =, já que S(A, 1) = (A) Portanto, Mº = (Q”, (0,1), 5”, , F”) Q” = (, , < qr>, , , , ) Fº = ( , 0) = 5(, 1) = 2 semestre de 2009. Simone Domingues Prado — Apostila 02 5'(, 0) = 5(, 1) = (qe, 1) = 5(, 0) = 5"(, 1) = 5( 5( S'(, 0) = 5 (, 1)= S(, 0) = S(, D)= Exemplo 10: Considere um AFN como segue: M = tt qo, qu, q2, q3, qe), (0,1), 8, go, (qr )) S(go, 0) = tar) 5(qr, 0) = (go) S(ga, 0) = (q3) 5(q3, 0) = (qo) (go, D=tq, q) Sa, D=ta3 a) Sa D=tgo q) das, 1D)= tar, qo) Para construir um AFD tem-se: Mº = (Q”, (0,1), 8”, , Fº) Q" = () vértice e símbolo O 5"(, 0) = , já que 3(go, 0) = tqr) vértice e símbolo 1 S(, 1) =< q2, qr>, já que (go, 1) = (qo, qr) Q" = (, < qo, qr>) vértice e símbolo O 5(, 0) = , já que S(qn, 0) = tqo) vértice e símbolo 1 5( 1)=, já que S(qu, 1) = (gs, qo) Q" = (, , < qo. qr>, ) vértice e símbolo O 5'(, 0) = , já que d(qo, 0) = tqs) e (gr, 0) = (A) vértice e símbolo 1 S'(, já que d(go, 1) = tqo ar) e S(as, 1) = (A) Q” = (, , < qo, qr>, < q3, qr>, , e símbolo O S'(, já que d(qs, 0) = tg) e (gr, 0) = (A) vértice e símbolo 1 S'(, já que d(gs, 1) = tar, qr e Sar, D) = () Q" = (, , < qo, qr>, < ds, gr>, , , , e símbolo O 2 semestre de 2009. Simone Domingues Prado — Apostila 02 5"(, 0) = , já que d(qa, 0) = tqa) vértice e símbolo 1 5(, 1)=, já que S(qs, 1) = (qr, qo) Q” = (, , < qo. qr>, < qa, qr>, , , e símbolo O 5'(, 0) = , já que 3(go, 0) = tar) e (gr, 0) = (A) vértice e símbolo S"(, já que d(go, 1) = ta», qr) e Sar, D=(1) Q" = (, , < qo. qr>, < qa, qr>, , , e símbolo O 5(, 0) = , já que S(qo, 0) = (q3) vértice e símbolo 1 5(, 1)=< qo qr>, já que S(qo, 1) = (go, qr) Q" = (, , < qo. qr>, < qa, qr>, , , e símbolo O 5'(, 0) = , já que (qr, 0) = tqo) e (gr, 0) = (A) vértice e símbolo S'(, já que (qr, 1) = tas, qe e Sar, D) =) Portanto, Mº=(Q”, (0,1),5", , F”) Q" = (, , < qo. qr> < qa, qr>, , , , , 0) = 5(, 1) =< qo, qr> 5(, 0) = S(cq> D= 5(, 0) = S( 1D)=< qo qr> 5(, 0) = S( D)=< qa qr> 5"(, 0) = 5(, 1) = 5 (, 1) = 5" (, 1) = 5 (, 1) = , F) Q" = () vértice e símbolo a 5"(, a) =< qo, qu>, já que S(go, a) = (go, qu) vértice e símbolo b 5"(, b) =< qo, q2>, já que (go, b) = (go, q2) Q" = (, < qo, (>, < qo, q>) vértice e símbolo a S'(, a) =< qo, qr, qr>, já que S(go, a) = tqo, q1) e (qu, a) = (ar) vértice e símbolo b 5'(, b) =< qo, q2 >, já que 3(go, b) = (qo, q2) e (qu, b) = (A) Q” = (, < qo, qu>, < qo, q>> < qo, qr, qr>) vértice e símbolo a 5"(, a) =< qo, qu>, já que 3(go, a) = (go, q1) e S(qa, a) = (A) vértice e símbolo b 5'(, b) =< qo, q», dr >, já que S(go, b) = tgo, qo) e S(qo, b) = (ar) Q” = (, < qo, qu>, < qo, q2>, < qo, Qu, Qr>, < qo, Q2,qr>) vértice < qo, qr, qr >e símbolo a 5(, a)=< qo, qu, qr>, já que (go, a) = (go, q1), Su, a) = (qr) e S(qgs a) = (gr vértice < qo, q1, qr > e símbolo b 5( b)=< qo, q2, gr>, já que S(go, b) = (go. q2), (qu, b) = (A) e gr a) = (qr) Q” = (, < qo, qu>, < qo, q2>, < qo, Qu, dr>, < qo, Q2,qr>) vértice < qo, q2, qr >e símbolo a 5(< qo. q2,qt>, a)=< qo, qr, qr>, já que S(go, a) = (go. q1), (ga, a) = (A) e S(qs, a) = (ar) vértice < qo, q1, qr > e símbolo b 5(< qo, q2,qr>, b)=< qo, q», qr>, já que S(go, b) = (go, q2), 5(qo, b)= (qr e S(gr, a) = (qe) Portanto, Mº=(Q”, (ab), 5”, , Fº) Q” = (, < qo, qu>, < qo, >> < qo, Qi, Qr>, < go, qo, dr>) Fº = E , , , a) =< qo, qq> S'(, b) =< qo, q> 5(, a) =< qo, qu, qr> 5(, b)=< qo, qr > S"(, a) =< qo, qu> 5(, b) =< qo, q», qr> 5(< qo, qr,qr> a)=< qo, qr, qr> 5(< qo, qr,gr> b)=< qo, q2.qr> 5(< qo, q2,qr> a)=< qo, qr, qr> 2 semestre de 2009. Simone Domingues Prado — Apostila 02 5(< qo, q2.qr> b) =< qo, qo .qr> “14. 2 semestre de 2009. Simone Domingues Prado — Apostila 02 5. Redução de estados de um autômato finito Definição 07: Um autômato mínimo de uma Linguagem Regular L é um Autômato Finito Determinístico M=(Q, L, 8, qo, F) tal que L = L(M) e que, para qualquer outro Autômato Finito Determinístico M'=(Q”,L”,5”, qo, Fº) tal que L = L(M?), tem-se que 4Q” == HQ. Um autômato Finito a ser minimizado deve satisfazer aos seguintes pré-requisitos: 1. Deve ser Determinístico (AFD) 2. Não pode ter estados inacessíveis (não atingiveis a partir do estado inicial) 3. A função programa deve ser total (a partir de qualquer estado são previstas transições para todos os símbolos do alfabeto) Caso o autômato não satisfaça algum dos pré-requisitos, é necessário gerar um autômato equivalente: 1. gerar um AFD equivalente 2. eliminar os estados inacessíveis e suas correspondentes transições 3. para transformar a função transição em total, é suficiente introduzir um novo estado não-final d e incluir as transições não previstas, tendo d como estado destino. Por fim, incluir um ciclo em d para todos os símbolos do alfabeto. Algoritmo de minimização Suponha um AFD M = (Q, L, 8, qo, F) que satisfaz aos pré-requisitos de minimização. Os passos do algoritmo de minimização são os seguintes: 1. TABELA. Construir uma tabela relacionando os estados distintos, onde cada par de estados ocorre somente uma vez. 2. MARCAÇÃO DOS ESTADOS TRIVIALMENTE NÃO EQUIVALENTES. Marcar todos os pares do tipo (estado final, estado não-final), pois obviamente, estados finais não são equivalentes a não-finais. 3. MARCAÇÃO DOS ESTADOS NÃO EQUIVALENTES. Para cada par (qu, qv) não marcado e para símbolo a EX, suponha que S(qu, a) = pu e dq, a) = py e: a. Se pu =pyw então qu é equivalente a qy para o símbolo a e não deve ser marcado; b. Sepuápveo par (pu .pv) não estão marcados, então (qu ,qv) é incluído em uma lista a partir de (pu ,pv) para posterior análise; c. Sepuápveo par (pu py) estão marcados, então: e (qu,qv) não é equivalente e deve ser marcado e se (qu ,qv) encabeça uma lista de pares, então marcar todos pares da lista (recursivamente) as. 2 semestre de 2009. Simone Domingues Prado — Apostila 02 4. UNIFICAÇÃO DOS ESTADOS EQUIVALENTES. Os estados dos pares não marcados são equivalentes e podem ser unificados como segue: a. A equivalência de estados é transitiva, b. pares de estados não finais equivalentes podem ser unificados como um único estado não final, c. Pares de estados finais equivalentes podem ser unificados como um único estado final, d. Se algum dos estados equivalentes é inicial, então correspondente estado unificado é inicial 5. EXCLUSÃO DOS ESTADOS INÚTEIS. Por fim, os estados chamados inúteis devem ser excluídos. Um estado q é inútil se é não final e a partir de q não é possível atingir um estão final. Deve-se reparar que o estado d (se incluído) sempre é inútil. Exemplo 11: Considere um AFD como segue: M= tígo, qu, q2; q3, q4, 05), tab), Ô, qo, (go, q4, qs)) 5(go, a) = qo 5a, ) =qr Sa, a) = qu Ss, a) = qs 5(go, b) = qr 5(q, b) = qo (ga, b) = qs 5(q3, b) = qu 5(qu, a) =q3 5(qa, b) = q» das, a) = qo ds, b) = q3 Percebe-se que os pré-requisitos (1, 2 e 3) são satisfeitos. Então se pode fazer a minimização. Para construir um AFM tem-se: PASSO 1. TABELA Pode-se montar a tabela em qualquer formato, porém deve-se ater ao fato de combinar todos os pares. Veja algumas situações: Opção 01 o 1 2 3 4 Nesta apostila iremos adotar a Opção 01 2 semestre de 2009. Simone Domingues Prado — Apostila 02 PASSO 2. MARCAÇÃO DOS ESTADOS TRIVIALMENTE NÃO EQUIVALENTES. Marcar todos os pares do tipo (estado final, estado não-final), ou seja, Estados finais: (qo, qu, qs) Estados não finais: (qr, q, q3) Então, devem ser marcados, na tabela, os pares: (qdo, qu), (go, q2), (go, q3), tas, qu), (da, d2), (qu, q), tas, qu), (gs, qa), (gs. q3) PASSO 3. MARCAÇÃO DOS ESTADOS NÃO EQUIVALENTES Para isso, percorrem-se todos os pares não marcados na tabela, ou seja, tdo, qu, (go, qs), (au, do), tar, q3>, (gs, d2), (as, qui e verifica se são ou não equivalentes. Para o par: (go, q4) qo )=q Sqsa)=q; formao par (q>, q3), q» = q3 e o par não está marcado(3 .b)- aguarde na lista go bD=q Sqsb)=q formao par (q, q>), qi > q» eo par não está marcado(3.b)- aguarde na lista Para o par: (go, qs) 5(go, a) =q2 d(qs,a)=qz — forma o par (q>, q2), qo = q» e o par é descartado (3.a) So, bD=q Sqs bD)=q; formao par (q, q3), qi > q3 eo par não está marcado(3.b)- aguarde na lista Para o par: (qu, q2) Sqa)=q Sqa)=q formao par (qu, q4), q < qu e o par está marcado (3.3) - marca (qr, q) S(qu, b)=qo S(ga, b)=qs Como vai marcar (qi, q2) e o par (go, q4) estava esperando que (qi, q2) fosse marcado, então serão marcados os dois pares: (qu, q2) e (go. qu). Para o par: (qu, q3) q,a)=q d(q3,a)=qs —formao par (qu, qs), qi < qs e o par está marcado (3.a) — marca (qn, q3) S(qr, b)=qo S(qs, b)=qs 2 semestre de 2009. Simone Domingues Prado — Apostila 02 7. Como vai marcar (qi, q3) e o par (go, qs) estava esperando que (qr, q3) fosse marcado, então serão marcados os dois pares: (qu, q3) e (go. qs). do q | X qiX|X qgiX|X qgix|x|x|x qglxix|x|x Jo | q | qd | q | q gs ] Para o par: (q3, q2) q a) =qs Sqsa)=qs formao par (qa, qs), qs = qs e o par não está marcado(3 .b)- aguarde na lista q» b)=qs S(qs, bD)=qs formao par (gs, q4), qs q4 e o par não está marcado(3.b)- aguarde na lista Para o par: (qs, q4) Sqs )=q Sqsa)=q: formao par (q>, q3), q» é q3 e o par não está marcado(3 .b)- aguarde na lista gs. b=q: S(q, bD)=q> formao par (q3, q), q3 > q» e o par não está marcado(3.b)- aguarde na lista PASSO 4. UNIFICAÇÃO DOS ESTADOS EQUIVALENTES Foram verificados todos os pares e os pares (q3, q2) e (qs, q4) ficaram ser serem marcados. Portanto: (1) como (q, q2) não foi marcado, então q3 é equivalente a gp. Cria-se o estado q»: para unificá-los. (2) como (gs, q4) não foi marcado, então qs é equivalente a q4. Cria-se o estado qus para unificá-los. PASSO 5. EXCLUSÃO DOS ESTADOS INÚTEIS Serão excluídos os estados: q», q3, qu, qs Então: Mº=fígo, qu, q23, das), tab), à, go, (go, qus)) 5(go, a) = qas q, a) =qr 5(qas, a) = qas 5(go, b) = q (qn, b) = qo 5(qas, b) = qus Exemplo 12: Considere um AFD como segue: M=((go, qu, q2, q3, qa), (0,13, 8, go, (qa)) 5(go, 0) = qr 5a, 0) = q2 (qa, 0) = q 5(go, 1) =q3 5a, 1) = qu (qo, 1) = qu 5(q3, 0) = q S(qa, 0) = qu (gs, 1) = qu S(qu, 1) = qu S(gas, a) = qas S(gas, b) = qua 2 semestre de 2009. Simone Domingues Prado — Apostila 02 PASSO 1. TABELA o 1 2 3 4 PASSO 2. MARCAÇÃO DOS ESTADOS TRIVIALMENTE NÃO EQUIVALENTES. Marcar todos os pares do tipo (estado final, estado não-final), ou seja, Estados finais: q4 Estados não finais: (qo, qu, qo, q3) Então deve marcar na tabela os pares: (qa qo), (as, qu), (ga, qo), (ga, q3) PASSO 3. MARCAÇÃO DOS ESTADOS NÃO EQUIVALENTES Para isso deve percorrer todos os pares não marcados na tabela, ou seja, tão, qu, (go, 2), (do, q3), tar, qo), (au, q3), (qo, q3) e verificar se são não equivalentes. O par: (go, q1) So, 0)=q Sq,0)=q formao par (q, q2), qi q» eo par não está marcado(3.b)- aguarde na lista (go, 1)=q3 S(q, 1D)=qs — forma o par (qs, q4), q3 = qu e o par está marcado (3.a) — marcar (qo, qr) X o 1 3 2 4 O par: (qo, q2) 5(go, 0)=q S(q2,0)=q — forma par far, q1), q =q1 e o par é descartado (3.a) (go, 1)=q3 d(ga, D)=qs — forma o par (qs, q4), q3 = qu e o par está marcado (3.a) — marcar (qo, q2) x x 2 semestre de 2009. Simone Domingues Prado — Apostila 02 O par: (go, q3) So. 0)=q dq, 0)=q formao par (q, q>), q: q» eo par não está marcado(3.b)- aguarde na lista (go, 1)=q3 S(q3, D)=qs — forma o par (qs, qu), q3 = q4 e o par está marcado (3.a) — marcar (qo, q3) x 1 X 2 XxX 3 4 O par: tar, qo) q, 0)=q. S(q, 0)=q formao par (q> qi), q * qi eo par não está marcado(3.b)- aguarde na lista 5a, D)=qs S(q2, 1)=qs forma o par fqa, q4), qu =qu e o par é descartado (3.a) O par: (qr, q3) 5, 0)=q> d(q3,0)=qo — forma o par fqp, q2), qo =q» e o par é descartado (3.a) 5a, D)=qs d(q3, 1)=qa forma o par fqa, q4), qu =qu e o par é descartado (3.a) O par: (qo, q3) q. 0)=q dq 0)=q formao par (q, q2), qi > q» eo par não está marcado(3.b)- aguarde na lista 5(qo, 1)=qa d(q3, 1)=qa — forma o par fqa, q4), qu =qu e o par é descartado (3.a) PASSO 4. UNIFICAÇÃO DOS ESTADOS EQUIVALENTES Foram verificados todos os pares e os pares (q3, q2) e (qr, q») e (qr, q3) ficaram ser serem marcados. Portanto: (1) como (q, q2) não foi marcado, então q3 é equivalente a qp. (2) como (q, q2) não foi marcado, então q é equivalente a q». (3) como (q, q3) não foi marcado, então q é equivalente a q3. Então q é equivalente a q» que é equivalente a q3. Cria-se o estado qi>: para unificá-los. PASSO 5. EXCLUSÃO DOS ESTADOS INÚTEIS Serão excluídos os estados: qu, q», q3 Portanto: Mº = (go, qua, qu), (0,1), 8, go, tqu)) S(go, 0) = qua S(quas, 0) = quas S(qu, 0) = qu 5(go, 1) = quas 5(quas, 1) = qa (qa, 1) = qu 2 semestre de 2009. Simone Domingues Prado — Apostila 02 6. Expressões Regulares A expressão regular é uma maneira de descrever os conjuntos regulares. Usa-se a expressão regular em construção de compiladores, editores, sistemas operacionais, protocolos, etc. Trata-se de um formalismo denotacional, também considerado gerador, pois se pode inferir como construir (“gerar”) as palavras de uma linguagem. Uma expressão regular é definida a partir de conjuntos básicos e operações de concatenação e união. Definição 08: Uma Expressão Regular (ER) sobre um alfabeto X é definida como: a) D (lê-se phi) é uma ER e denota uma linguagem vazia b) À é uma ER e denota a linguagem contendo exclusivamente a palavra vazia, ou seja, (A) c) x ( símbolo do alfabeto X ) é uma ER e denota a linguagem contendo a palavra (x) d)seres são ER e denotam as linguagens Res, respectivamente, então d.1) (1) é uma ER d.2) (1+ s) é uma ER e denota a linguagem RU S d.3) (1. s) é uma ER e denota a linguagem RS= (uv [ue ReveS) d.4) r* é uma ER e denota a linguagem R* OBS: 1. a concatenação sucessiva (*) tem precedência sobre a concatenação (.) e a união (+) 2. a concatenação tem precedência sobre a união. Seres são ER e denotam as linguagens R e S, respectivamente, então a) L(r+s)=L(1)UL(s) b) L(r.s)=L(r).L(s) ou L(rs)=L(r)L(s) o) LCr)=LCr) & L(*)=CI(r))* Exemplo 13: SejaL=(a'b”|n>0,m>0) entãoL=(A,a,b,aa, bb, ab, aab...) Considere as Linguagens: Ly=(a) Lo = (b) Ly= (a |k>0) Lu=(b!|1>0) Ls=(ab!|k>0,1>0) As linguagens L, e L, são conjuntos sobre o L = (a,b) e por definição (8.c) é uma ER. As linguagens L; e Ly são obtidas por concatenação sucessiva, ou seja, L;= Ly eLly= Lo. e portanto são ER (definição 8.d.4). A linguagem Ls é uma ER obtida pela concatenação de L; e La (definição 8.d.3). Assim, L=(a'b”"|n>0,m > 0) pode ser denotada pela ER = a*b* 2 semestre de 2009. Simone Domingues Prado — Apostila 02 Outros exemplos de ER e suas linguagens: ER Linguagem representada aa Somente a cadeia aa ba* Cadeias que iniciam com b, seguida por zero ou mais a (atb)* Todas as cadeias sobre (a,b) (atb)*aa(a+b)* Todas as cadeias contendo aa como subcadeia a*ba*ba* Todas as cadeias contendo exatamente dois b (atb)*(aa+bb) Todas as cadeias que terminam com aa ou bb (a+A )(b+ba)* Todas as cadeias que não possuem dois a consecutivos As principais leis algébricas das ER são apresentadas a seguir. Sejam R,S, T três ER quaisquer. Então: (1) Associatividade: - daunião: (R+S)+T=R+(S+T) - da concatenação: (R.S).T=R.(S.T) (2) Comutatividade: - da união: R+S =S +R - da concatenação: não se aplica (3) Elemento neutro: - daunião: R+D=D+R=R - da concatenação: D.R=R.D=R (4) Distribuição da concatenação sobre a união: -ãesquerda: R.(S+T)=RS+RT -àdireita:(R+S).T =RT+S.T Teorema 01: Se r é uma Expressão Regular (ER), então L(1) é uma Linguagem Regular. Prova: Por definição, uma linguagem é Regular se, e somente se, é possível construir uma AF (determinístico ou não), que reconheça a linguagem. a) Base da indução: seja r uma ER com zero operador. Então se tem: r= O (linguagem vazia) r= À (linguagem contendo exclusivamente a palavra vazia, ou seja, (À)) 1=x(x E L) Com os Autômatos Finitos: Mi=((qo),D,ô, q; D) M=ttq),D,5,ge (dry) Ms = (go. qr), (x), ô3, go, (ar)) -2- 2 semestre de 2009. Simone Domingues Prado — Apostila 02 a) (6) M3 Figura 09. Base de indução b) Hipótese de Indução: Seja 1 uma ER com até n (n > 0) operadores. Suponha que é possível definir um AF que aceita a linguagem gerada por 1; c) Passo da Indução: Seja r uma ER com (n+1) operadores. Então r pode ser representada por um dos seguintes casos, onde ri e 1) possuem conjuntamente no máximo n operadores: r=n+ 1=n 12 r=n* Portanto por hipótese de indução é possível construir os autômatos: M=tQL,2,ô,90, (gn))e M=(Q2, Zo,d2, qo, (qo )) Tais que L(M1) = L(11) e L(M>) = L(15). Os AF's, que aceitam a linguagem L(1), para cada caso, são como segue: ebDr=1 + M=(Q/UQ, E U L2,8,9, (gr)) (vide Figura 10) c.2) 112 M=(01UQ,L U L2,8, qu, (qo )) (vide Figura 11) c.3) 1* M=(Q Ugo gr ),21,5,go (qr) (vide Figura 12) Ma A = e M2 Figura 10. Adição de expressões regulares — (sao) (car) ca02>) (earz> Figura 11. Multiplicação de expressões regulares 2 semestre de 2009. Simone Domingues Prado — Apostila 02 Figura 12. Concatenações sucessivas de expressões regulares 7. Gramática Regular Definição 09: Seja G=(V,T,P,S) uma gramática e sejam A e B elementos de V e w uma palavra de T*. Então G é uma: (a) Gramática Linear à Direita (GLD) se todas as regras de produção são da forma: A swB ou Asw (b) Gramática Linear à Esquerda (GLE) se todas as regras de produção são da forma: A sBw ou Asw (c) Gramática Linear Unitária à Direita (GLUD) se todas as regras de produção são como na linear à direita e, adicionalmente |w| So>ab, S; >Sab|S3,S; >a) Assim, G é uma GLE ()6=(8,A, B), (a, b),P,S) P=(S 54,4 >aB/A,B>Ab) Assim, G não é Linear Definição 10: Uma Gramática Regular é qualquer Gramática Linear 2 semestre de 2009. Simone Domingues Prado — Apostila 02 Teorema 02: Se L é uma linguagem gerada por uma Gramática Regular, então L é uma Linguagem Regular. Prova: Para mostrar que uma linguagem é regular, é suficiente construir um AF que a reconheça. Suponha G=(V, T, P,S) uma GLUD. Entãoo AFM= (Q,L,6, qo, F) com: Q=VuU tar) L=T qgo=Ss F=(qr) 5, como na tabela abaixo: Tipo de Produção Transição Gerada ASA KA, M=qr Asa A, a) =qr ASB SA, )=B AsaB XA,a)=B Simula as derivações de G, ou seja, L(G) = L(M). A demonstração que L(G) = L(M) é verdade de fato, está no número de derivações. Seja a elemento de (T | V)* e w elemento de T*, então: (a) base de indução. Suponha S >! a, então, se: (a 1)a=A, existe uma regra S > À e assim para o AFM, &(S, À) = gr (a.2)a=a, existe una regra S — a e assim para o AFM, &(S, a) = gr (a 3)a=A, existe uma regraS > A e assim para o AFM, d(S, A) =A (a 4)a=aA, existe uma regra S > aA e assim para o AFM, &(S, a) = A (b) hipótese de indução. Suponha que S >” a, n > 1, tal que, se: (bI)a=w, então 8*S, w) =qr (b2)a=wA, então 5*(S, w = A (c) passo da indução. Suponha que S >" q. Então ocorre a hipótese (D.2)eS >" wa >! a (c.1.) a. = wA, existe uma regra A > À e assim SHS, wi) =5(5*(S, w), 2) = S(A, 2) = q (c.2.) a. = wb, existe uma regra A > b e assim 5*(S, wb)=5(5* (S, w),b) = SA, b) = qr (c.3.) a = wB, existe uma regra A > B e assim ES, wN)=5(5*(S, w),))= SA, )=B (c.4.) a = wbB, existe uma regra A > bB e assim 5*(S, wb)=5(6* (S, w),b) = SA, b)=B 2 semestre de 2009. Simone Domingues Prado — Apostila 02
valeu bruna...
Esta é apenas uma pré-visualização
3 mostrados em 37 páginas