linguagens regulares — afn’s

25
Linguagens Regulares — AFN’s Regivan H. N. Santiago DIMAp-UFRN 1 de mar¸ co de 2007 Regivan H. N. Santiago (DIMAp-UFRN) Linguagens Regulares — AFN’s 1 de mar¸ co de 2007 1 / 25

Upload: others

Post on 08-May-2022

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Linguagens Regulares — AFN’s

Linguagens Regulares — AFN’s

Regivan H. N. Santiago

DIMAp-UFRN

1 de marco de 2007

Regivan H. N. Santiago (DIMAp-UFRN) Linguagens Regulares — AFN’s 1 de marco de 2007 1 / 25

Page 2: Linguagens Regulares — AFN’s

Automatos Finitos

1 Automatos FinitosAutomatos Finito Nao-DeterminısticosEquivalencia entre AFN’s e AFD’s

Regivan H. N. Santiago (DIMAp-UFRN) Linguagens Regulares — AFN’s 1 de marco de 2007 2 / 25

Page 3: Linguagens Regulares — AFN’s

Automatos Finitos Automatos Finito Nao-Determinısticos

Automatos Finito Nao-determinısticos

Ingenuamente, Nao determinismo significa uma escolha, por parte de umautomato, do proximo passo que ele ira executar. O programador informaapenas as opcoes de proximos passos que estao disponıveis para oautomato, e o mesmo faz a escolha. Ao contrario, num automatodeterminıstico, o programador tem que informar qual e o proximo passoque o automato deve seguir.

Regivan H. N. Santiago (DIMAp-UFRN) Linguagens Regulares — AFN’s 1 de marco de 2007 3 / 25

Page 4: Linguagens Regulares — AFN’s

Automatos Finitos Automatos Finito Nao-Determinısticos

Automatos Finito Nao-determinısticos

Definicao: Um automato finito nao determinıstico (afn) e definidocomo a quıntupla

M = 〈Q,Σ, δ, q0,F 〉

onde Q,Σ, qo e F sao definidos como para afd, mas

δ : Q × (Σ ∪ {λ}) → 2Q .

Observacao: Observe a presenca de λ como segundo argumento dafuncao de transicao. Esse tipo de transicao chama-se λ-transicao.Quando isso ocorrer significa que o automato mudara de estado semconsumir o sımbolo corrente.

Regivan H. N. Santiago (DIMAp-UFRN) Linguagens Regulares — AFN’s 1 de marco de 2007 4 / 25

Page 5: Linguagens Regulares — AFN’s

Automatos Finitos Automatos Finito Nao-Determinısticos

Automatos Finito Nao-determinısticos

Exemplo: O AFN abaixo reconhece cadeias de a’s de comprimento parnao nulo mais a cadeia aab.

Figura: Exemplo de afn.

Regivan H. N. Santiago (DIMAp-UFRN) Linguagens Regulares — AFN’s 1 de marco de 2007 5 / 25

Page 6: Linguagens Regulares — AFN’s

Automatos Finitos Automatos Finito Nao-Determinısticos

Automatos Finito Nao-determinısticos

Exemplo: O AFN abaixo reconhece cadeias da forma 0n0(10)m, m, n ≥ 0.

Figura: Exemplo de afn.

Observacao: δ(q0, 1) = δ(q1, 0) = δ(q2, 1) = ∅.

Regivan H. N. Santiago (DIMAp-UFRN) Linguagens Regulares — AFN’s 1 de marco de 2007 6 / 25

Page 7: Linguagens Regulares — AFN’s

Automatos Finitos Automatos Finito Nao-Determinısticos

Automatos Finito Nao-determinısticos

Exemplo: O AFN abaixo reconhece cadeias da forma: 0m1n2p, ondem, n, p ≥ 0.

Figura: Exemplo de afn.

Volta

Regivan H. N. Santiago (DIMAp-UFRN) Linguagens Regulares — AFN’s 1 de marco de 2007 7 / 25

Page 8: Linguagens Regulares — AFN’s

Automatos Finitos Automatos Finito Nao-Determinısticos

Estendendo a funcao de transicao dos AFN’s

Para estender a funcao de transicao, vale notar que dado um estado e umsımbolo o automato pode ir a mais (ou nenhum) estados, δ∗(qi ,w)resultara no conjunto de todos os estados possıveis que o automato naodeterminıstico pode chegar, tendo iniciado em qi e tendo lido wcompletamente, ou seja, sem interromper o caminho no grafo por falta dedefinicao para um sımbolo de entrada em w . Nesse caso, damos aseguinte definicao:

Definicao Seja M = 〈Q,Σ, δ, q0,F 〉 um afn. A funcao de transicaoestendida δ∗ : Q × Σ∗ → 2Q e tal que para todo qi ∈ Q e w ∈ Σ∗,δ∗(qi ,w) contem qj ∈ Q se existe, no grafo de transicao, um caminho deqi a qj rotulado por w .

Regivan H. N. Santiago (DIMAp-UFRN) Linguagens Regulares — AFN’s 1 de marco de 2007 8 / 25

Page 9: Linguagens Regulares — AFN’s

Automatos Finitos Automatos Finito Nao-Determinısticos

Estendendo a funcao de transicao dos AFN’s

A definicao recursiva, neste caso, e bem mais complexa que aqueladescrita para afd’s. A primeira dificuldade e com as λ-transicoes, pois seqj ∈ δ∗(qi ,w) e ha uma λ-transicao de qj a qk , entao qk ∈ δ∗(qi ,w). Anocao de λ-fecho de um estado q fornece todos os estados no automato,que podemos atingir a partir de q, sem consumir nenhuma entrada, ouseja, no maximo so usando λ-transicoes. Isto e o λ-fecho de um estadoq ∈ Q e o fecho de {q} com respeito a operacao unaria δλ : Q → ℘(Q)definida por δλ(q) = δ(q, λ).

Regivan H. N. Santiago (DIMAp-UFRN) Linguagens Regulares — AFN’s 1 de marco de 2007 9 / 25

Page 10: Linguagens Regulares — AFN’s

Automatos Finitos Automatos Finito Nao-Determinısticos

Estendendo a funcao de transicao dos AFN’s

Uma caracterizacao do λ-fecho de um estado e a seguinte:

λ-fecho(q) =n⋃

i=0

λ-fecho i (q),

onde n =|Q | −1 e

λ-fecho0(q) = {q}

λ-fecho i+1(q) =⋃

q′∈λ-fecho i (q)

δ(q′, λ).

Regivan H. N. Santiago (DIMAp-UFRN) Linguagens Regulares — AFN’s 1 de marco de 2007 10 / 25

Page 11: Linguagens Regulares — AFN’s

Automatos Finitos Automatos Finito Nao-Determinısticos

Exemplo de λ-fecho.

λ− fecho0(q0) = {q0}

λ− fecho1(q0) =⋃

q′∈λ−fecho0(q0)δ(q′, λ)

=⋃

q′∈{q0} δ(q′, λ)

= δ(q0, λ) = {q1}λ− fecho2(q0) =

⋃q′∈λ−fecho1(q0)

δ(q′, λ)

=⋃

q′∈{q1} δ(q′, λ)

= δ(q1, λ) = {q2}λ− fecho(q0) =

⋃2i=0 λ− fecho i (q0)

= λ− fecho0(q0) ∪ λ− fecho1(q0) ∪ λ− fecho2(q0)= {q0} ∪ {q1} ∪ {q2} = {q0, q1, q2}

Regivan H. N. Santiago (DIMAp-UFRN) Linguagens Regulares — AFN’s 1 de marco de 2007 11 / 25

Page 12: Linguagens Regulares — AFN’s

Automatos Finitos Automatos Finito Nao-Determinısticos

Estendendo a funcao de transicao dos AFN’s

Claramente, o λ− fecho e uma funcao de Q em ℘(Q) e pode sertrivialmente estendida para λ− Fecho : ℘(Q) → ℘(Q) da seguinte forma:

λ− Fecho(X ) =⋃q∈X

λ− fecho(q)

Assim, agora, podemos definir recursivamente δ∗ : Q × Σ∗ → 2Q como,

δ∗(q, λ) = λ-fecho(q)

and

δ∗(q,wa) =⋃

qi∈δ∗(q,w)

λ-Fecho(δ(qi , a)).

Regivan H. N. Santiago (DIMAp-UFRN) Linguagens Regulares — AFN’s 1 de marco de 2007 12 / 25

Page 13: Linguagens Regulares — AFN’s

Automatos Finitos Automatos Finito Nao-Determinısticos

Estendendo a funcao de transicao dos AFN’s

Considere o grafo de transicao da figura abaixo:

Figura: Exemplo de afn.

Suponha que queremos achar δ∗(q0, aa) e δ∗(q2, λ). Assim, se sairmos deq0 consumindo o primeiro “a” chegaremos a q1, consumindo o outro “a”chegaremos a q2, mas como existe uma λ-transicao de q2 a q0, tambem,podemos ir ao estado q0, sem necessidade de consumir nada. Portanto,

δ∗(q0, aa) = {q0, q2}.Regivan H. N. Santiago (DIMAp-UFRN) Linguagens Regulares — AFN’s 1 de marco de 2007 13 / 25

Page 14: Linguagens Regulares — AFN’s

Automatos Finitos Automatos Finito Nao-Determinısticos

Estendendo a funcao de transicao dos AFN’s

Agora, determinaremos δ∗(q0, aa) seguindo a definicao anterior:

δ∗(q0, λ) = {q0}

δ∗(q0, a) =⋃

qi∈δ∗(q0,λ) λ− Fecho(δ(qi , a))

=⋃

qi∈{q0} λ− Fecho(δ(qi , a))

= λ− Fecho(δ(q0, a))= λ− Fecho({q1})= λ− Fecho(q1)= {q1}

δ∗(q0, aa) =⋃

qi∈δ∗(q0,a)λ− Fecho(δ(qi , a))

=⋃

qi∈{q1} λ− Fecho(δ(qi , a))

= λ− Fecho(δ(q1, a))= λ− Fecho({q2})= λ− Fecho(q2)= {q0, q2}

Regivan H. N. Santiago (DIMAp-UFRN) Linguagens Regulares — AFN’s 1 de marco de 2007 14 / 25

Page 15: Linguagens Regulares — AFN’s

Automatos Finitos Automatos Finito Nao-Determinısticos

Linguagem Reconhecida por um AFN

Definicao linguagem, L, reconhecida ou aceita por um afn,M = 〈Q,Σ, δ, q0,F 〉, e definida como o conjunto de todas as cadeiasreconhecidas por M, no sentido dado anteriormente. Formalmente,

L(M) = {w ∈ Σ∗/ δ∗(q0,w) ∩ F 6= ∅}.

Regivan H. N. Santiago (DIMAp-UFRN) Linguagens Regulares — AFN’s 1 de marco de 2007 15 / 25

Page 16: Linguagens Regulares — AFN’s

Automatos Finitos Automatos Finito Nao-Determinısticos

Por que nao determinismo?

Nao determinismo e um conceito difıcil. Os computadores digitais saocompletamente determinısticos, seu estado em qualquer tempo e previstounicamente da entrada e do estado inicial. Portanto, e natural se indagarporque estudamos maquinas nao determinısticas. Estamos tentandomodelar sistemas reais, porque, entao, incluir tais caracterısticas, naomecanicas?

Regivan H. N. Santiago (DIMAp-UFRN) Linguagens Regulares — AFN’s 1 de marco de 2007 16 / 25

Page 17: Linguagens Regulares — AFN’s

Automatos Finitos Automatos Finito Nao-Determinısticos

Por que nao determinismo?

Muitos algoritmos determinısticos requerem que se faca uma escolha emalgum estagio. Um exemplo tıpico e um programa para “jogar”. Emgeneral, o melhor movimento nao e conhecido, mas pode ser encontradousando-se uma pesquisa exaustiva com backtracking. Segundo variasalternativas sejam possıveis, escolhemos uma e seguimo-la ate tornar-seclaro se ela e a melhor alternativa ou nao. Se nao voltaremos ao ponto daultima decisao e exploraremos as outras escolhas. Um algoritmo naodeterminıstico que pode fazer a melhor escolha seria capaz de resolver oproblema sem backtraking, mas um determinıstico pode simular naodeterminismo com algum trabalho extra. Por essa razao, maquinas naodeterminısticas podem servir como modelos de algoritmos de pesquisabacktracking.

Regivan H. N. Santiago (DIMAp-UFRN) Linguagens Regulares — AFN’s 1 de marco de 2007 17 / 25

Page 18: Linguagens Regulares — AFN’s

Automatos Finitos Automatos Finito Nao-Determinısticos

Por que nao determinismo?

Nao determinismo e, as vezes, util para se resolver facilmente umproblema. Compare o automato abaixo seguido por sua versaodeterminista “mais simples” para reconhecer a mesma linguagem, isto e,as cadeias da forma 0m1n2p.

Versao Nao-determinıstica

Figura: Exemplo de afn.

Regivan H. N. Santiago (DIMAp-UFRN) Linguagens Regulares — AFN’s 1 de marco de 2007 18 / 25

Page 19: Linguagens Regulares — AFN’s

Automatos Finitos Automatos Finito Nao-Determinısticos

Por que nao determinismo?

Versao Nao-determinıstica

Figura: Exemplo de afn.

Regivan H. N. Santiago (DIMAp-UFRN) Linguagens Regulares — AFN’s 1 de marco de 2007 19 / 25

Page 20: Linguagens Regulares — AFN’s

Automatos Finitos Automatos Finito Nao-Determinısticos

Por que nao determinismo?

Assim, nao determinismo nos permite solucoes naturais e “enxutas”para reconhecer certas linguagens.

Nao determinismo e um mecanismo efetivo para descrever,concisamente, algumas linguagens complicadas. Note que a definicaode uma gramatica envolve um elemento nao determinıstico. Porexemplo, nas producoes

S → aSb | λ,

podemos em qualquer substituir em uma cadeia contendo pelo menosuma ocorrencia da subcadeia S essa ocorrencia de S por aSb ou porλ, ou seja usar a primeira ou a segunda producao, o que nos permiteespecificar muitas cadeias diferentes usando somente duas regras.

Regivan H. N. Santiago (DIMAp-UFRN) Linguagens Regulares — AFN’s 1 de marco de 2007 20 / 25

Page 21: Linguagens Regulares — AFN’s

Automatos Finitos Automatos Finito Nao-Determinısticos

Por que nao determinismo?

Finalmente, existe uma razao tecnica para introduzir naodeterminismo. Como veremos adiante, certos resultados sao maisfacilmente estabelecidos para afn’s do que para afd’s. No que segueveremos que nao existe diferenca essencial entre esses dois tipos deautomatos (determinısticos e nao determinısticos).Consequentemente, permitindo nao determinismo, muitas vezes,conseguimos simplificar argumentos formais sem afetar a generalidadeda conclusao.

Regivan H. N. Santiago (DIMAp-UFRN) Linguagens Regulares — AFN’s 1 de marco de 2007 21 / 25

Page 22: Linguagens Regulares — AFN’s

Automatos Finitos Equivalencia entre AFN’s e AFD’s

Equivalencia entre AFN’s e AFD’s

Definicao Dois automatos sao equivalentes se eles reconhecem a mesmalinguagem

Proposicao Todo automato determinıstico esta associado a um naodeterminıstico que reconhece a mesma linguagem.Prova Dado um AFD qualquer, pode-se concluir um AFN equivalente daseguinte maneira:

Defina δN(q, a) = {δD(q, a)} e δN(q, λ) = ∅, para todoa ∈ Σ e q ∈ Q, onde δD e δN sao as funcoes de transicao do afde afn, respectivamente. O resto permanece inalterado.

Regivan H. N. Santiago (DIMAp-UFRN) Linguagens Regulares — AFN’s 1 de marco de 2007 22 / 25

Page 23: Linguagens Regulares — AFN’s

Automatos Finitos Equivalencia entre AFN’s e AFD’s

Equivalencia entre AFN’s e AFD’s

Proposicao Todo automato nao-determinıstico esta associado a umdeterminıstico que reconhece a mesma linguagem.

Prova Dado um AFN qualquer, pode-se concluir um AFD equivalente daseguinte maneira:

Regivan H. N. Santiago (DIMAp-UFRN) Linguagens Regulares — AFN’s 1 de marco de 2007 23 / 25

Page 24: Linguagens Regulares — AFN’s

Automatos Finitos Equivalencia entre AFN’s e AFD’s

Equivalencia entre AFN’s e AFD’s

1 Crie um grafo GD com vertice λ-fecho(q0). Identifique este verticecomo o vertice inicial.

2 Repita as seguintes etapas ate nao faltar mais arestas.

1 Tome qualquer vertice X , de GD , que nao tenha uma aresta com rotuloa saindo dele, para algum a ∈ Σ.

2 Compute δN(q, a), para todo q ∈ X , e gere a uniao de todos essesconjuntos de estados, em seguida faca o λ-fecho desse conjunto,gerando o conjunto Y ⊆ QN , isto e,

Y = λ-Fecho(⋃q∈X

δN(q, a)).

3 Crie um vertice para GD , rotulado com Y se ele ja nao existir.4 Adicione uma aresta de X para Y e rotule-a com a.5 Todo estado de GD cujo rotulo contem qualquer q ∈ FN e identificado

como um vertice final.

Regivan H. N. Santiago (DIMAp-UFRN) Linguagens Regulares — AFN’s 1 de marco de 2007 24 / 25

Page 25: Linguagens Regulares — AFN’s

Automatos Finitos Equivalencia entre AFN’s e AFD’s

Equivalencia entre AFN’s e AFD’s - Exemplo

Figura: AFD equivalente.Regivan H. N. Santiago (DIMAp-UFRN) Linguagens Regulares — AFN’s 1 de marco de 2007 25 / 25