230 likes | 444 Views
Uma variação do Lema do Bombeamento. Reformularemos o enunciado do Lema de maneira a torná-lo mais facilmente aplicado em algumas situações. A reformulação permitirá o uso de um método de prova baseado num jogo contra o diabo. Variação do Lema.
E N D
Uma variação do Lema do Bombeamento • Reformularemos o enunciado do Lema de maneira a torná-lo mais facilmente aplicado em algumas situações. • A reformulação permitirá o uso de um método de prova baseado num jogo contra o diabo
Variação do Lema Teorema. Seja A um conjunto regular. Então a seguinte propriedade se dá sobre A: (P) Existe k≥0 tal que para quais_quer cadeias x,y,z com xyzA e |y|≥k, existem cadeias u,v,w tais que y=uvw, v≠ε, e para todo i≥0, a cadeia xuyivwzA
Negando (P) Teorema. Seja A um conjunto de cadeias e suponha que: (~P) Para todo k≥0 existem cadeias x,y,z com xyzA e |y|≥k, e para todas cadeias u,v,w tais que y=uvw, v≠ε, e existe i≥0, tal que cadeia xuyivwzA. Então A não é regular.
Jogando contra o diabo O diabo quer mostrar que A é regular e voçê que não! • Ele então pega k. • Você vai escolhe xyzA e |y|≥k. • Daí ele pega u,v,w tais que y=uvw, v≠ε, • Você mostra o i≥0, com xuyivwzA
Exemplo de Uso • No exercício 5 último foi pedido para mostrar que {x{a, b, c}* |x é palíndrome, i.e., x=rev(x)} não é regular. • Dado k do diabo basta escolher x= ε, y=ak e z=bak. Qualquer escolha u,v,w do diabo com, digamos |v|=m>0, basta escolher i=0 e xuv0wz=xuwz=ak_mbakA
Minimização de Estados remover estados inalcançáveis ou colapsando estados equivalentes. a b a a,b a,b b a a a b b a b b a a b
Um autômato mínimo b a a b b a a,b
Resumindo ... • dado M = (Q, å, d, s, F): • Livrar_se dos estados inalcançáveis, i.e. dos estados q tais que não existe cadeia xå * tal que d*(s,x)=q. • Colapse estados equivalentes
a,b a,b a,b a,b Mais exemplos a a,b a,b a,b a,b a,b b a,b a a a,b a,b b b a,b b a
Ainda mais exemplos a a a,b a,b b a,b a,b b a,b b a,b a
A Construção do Quociente • Como saber com segurança que dois estados podem ser colapsados • como fazer o colapso formalmente? • como determinar se mais colapsos podem ser feitos?
nunca colapsaremos um estado que rejeita com um que aceita: p=d*(s,x)F e q=d*(s,y)F colapsar p com q aceitar y ou rejeitar x. • o colapso de p e q implica no colapso de d(p,a) com d(q,a)
A equivalência • Logo, p e q não podem ser colapsados se d*(p,x)F e d*(q,x)F • Então definamos uma relação de equivalência ≈ sobre Q por: p ≈ q se, e somente se xå*(d*(p,x)Fd*(q,x)F)
não é difícil mostrar que de fato ≈ é uma relação de equivalência. • [p]:={q|q≈p} • p≈q sss [p]=[q]
O Autômato Quociente • Dado M, definamos M/≈ = (Q’,å, d’,s’, F’) onde: Q’={[p] | pQ} d’([p],a)=[d(p,a)] s’=[s] F’={[p] | pF}
Resultados Úteis Lema 1. Se p≈q, então d(p,a)≈d(q,a). Equivalentemente, se [p]=[q] então [d(p,a)]=[d(q,a)]. Lema2. pF sss [p]F’. Lema3. d’*([p],x)=[d*(p,x)]
Teorema. L(M/≈)=L(M) Prova. Para x å*, x L(M/≈) sssd’*(s’,x) F’ def. de aceita sss d’*([s],x) F’def. de s’ sss[d*(s,x)] F’ lema 3 sss d*(s,x) F lema 2 sssx L(M) def. de aceita qed
M/≈ não pode ser mais colapsado • Defina [p]~[q] sss xå*(d’*([p],x)F’d’*([q],x)F’)
[p]~[q] xå*(d’*([p],x)F’d’*([q],x)F’) xå*([d*(p,x)]F’[d*(q,x)]F’) lema 3 xå*(d*(p,x)Fd*(q,x)F’)lema 2 p≈q [p]=[q]
Algorítmo de Minimização 1. Escreva uma tabela dos pares {p,q}, inicialmente desmarcados 2. Marque{p,q} se pF e qF ou vice_versa. 3. Repita até que não poder mais: se existe um par desmarcado {p,q} tal que {d(p,a),d(q,a)} é marcado para algum aå, então marque {p,q}. 4. Quando acabar 3, p≈q sss {p,q} é desmarcado.
a 3 a,b b 0 b a,b b 1 2 5 4 a,b a,b a,b a,b Exemplo ■ ■ ■■ ■■ ■■ ■ 1 _ 2 _ _ 3 _ _ _ 4 _ _ _ _ 5 _ _ _ _ _ 0 1 2 3 4 a,b ■ ■ ■■
Q={{p,q} | p,qQ} ={{p,q} | p≠q} {{p} | pQ} logo existem ( )+n=(n2+n)/2. seja agora Δ: Q → Q Δ({p,q},a)={d(p,a),d(q,a)} eF ={{p,q} | pF, qF } X:= F repeat X’:=X; X:=X {{p,q}|a. Δ({p,q},a)X} until X=X’ X é o conjunto dos marcados Corretude do Algorítmo n 2
Corretude do Algorítmo X = {{p,q} | x*. Δ*({p,q},x}F} = {{p,q} | x*. d*(p,x)F,d*(q,x)F } = {{p,q} |(x*.(d*(p,x)Fd*(q,x)F ))} = {{p,q} | (p≈q)