Anda di halaman 1dari 4

Minimizao de AFD

Origem: Wikipdia, a enciclopdia livre.


Broom icon.svg
As referncias deste artigo necessitam de formatao (desde dezembro de 2011). Por fav
or, utilize fontes apropriadas contendo referncia ao ttulo, autor, data e fonte de
publicao do trabalho para que o artigo permanea verificvel no futuro.
Em cincia da computao, mais especificamente no ramo da teoria dos autmatos, Minimizao
de AFD o processo de transformao de um dado autmato finito determinstico (AFD) em ou
tro equivalente que tenha um nmero mnimo de estados. Aqui, dois AFDs so ditos equiv
alentes se eles descrevem a mesma linguagem regular. Vrios algoritmos diferentes
que realizam essa tarefa esto descritos em livros-texto padres que abordam a teori
a dos autmatos.[1]

ndice [esconder]
1
AFD Mnimo
2
Estados Inalcanveis
3
Estados Indistinguveis
3.1
Algoritmo de Hopcroft
3.2
Algoritmo de Moore
3.3
Algoritmo de Brzozowski
4
Minimizao de AFN
5
Notas
6
Referncias
7
Links externos
AFD Mnimo[editar | editar cdigo-fonte]
Para cada linguagem regular passvel de ser aceita por um AFD, existe um AFD com u
m nmero mnimo de estados (e portanto com esforo mnmo de programao para cri-lo e use nico (embora possam ser dados nomes diferentes a estados).[2]
H trs classes de estados que podem ser removidos/mesclados ao AFD original sem afe
tar as linguagens que esse aceita:

Estados inalcanveis so aqueles estados impossveis de se alcanar a partir do estado de


inicial do AFD, para qualquer cadeia de entrada.
Estados mortos so quaisquer estados, exceto os de aceitao, cujas transies para todo c
aracter de entrada tem ele prprio como destino. Eles so tambm conhecidos como Estad
os Armadilha (Trap States) pois uma vez alcanados, no h escapatria.
Estados indistinguveis so estados indistintos entre si, para qualquer cadeia de en
trada.
A minimizao do AFD geralmente feita em trs passos, correpondentes s remoes/mesclage
dos estados relevantes. Como a eliminao dos estados indistinguveis o mais caro comp
utacionalmente, esse normalmente o ltimo passo a ser dado.
Estados Inalcanveis[editar | editar cdigo-fonte]
O estado p do AFD M=(Q, S, d, q0, F) inalcanvel se no existe qualquer cadeia w em ?
* tal que p=d(q0, w). Estados alcanveis podem ser obtidos pelo seguinte algoritmo:
let estados_alcancaveis:= {q0};
let novos_estados:= {q0};
do {
temp := conjunto vazio;
for each q in novos_estados do
for all c in ? do
temp := temp ? {p tal que p=d(q,c)};
end;
end;
novos_estados := temp \ estados_alcancaveis;
estados_alcancaveis := estados_alcancaveis ? novos_estados;
} while(novos_estados ? conjunto vazio);
estados_inalcancaveis := Q \ estados_alcancaveis;

Estados inalcanveis podem ser removidos do AFD sem afetar a linguagem que ele acei
ta.

Estados Indistinguveis[editar | editar cdigo-fonte]


Algoritmo de Hopcroft[editar | editar cdigo-fonte]
Um algoritmo para mesclar estados indistuinguveis do AFD, elaborado por Hopcroft
(1971). baseado no refinamento de partio, no qual estados do AFD so particionados e
m grupos, de acordo com seu comportamento. Esses grupos representam classes de e
quivalncia, como na relao de equivalncia Myhill Nerode, pela qual todo dois estados da
mesma partio so equivalentes se eles tm o mesmo comportamento para todas as sequncia
s de entrada. Isto , para todo dois estados p_1 e p_2 que pertencem mesma classe
de equivalncia da partio P, temos que para qualquer palavra de entrada w, ao seguir
-se as transies determinadas por w partindo dos estados p_1 e p_2, ambos os estado
s sero levados a estados de aceitao, ou ambos a estados de rejeio; no deveria ser pos
el a w levar p_1 a um estado de aceitao e p_2 a um estado de rejeio, ou vice-versa.
O seguinte pseudocdigo descreve o algoritmo:
P := {{todos estados de aceitao}, {todos estados de no-aceitao}};
Q := {{todos estados de aceitao}};
while (Q no-vazio) do
escolha e remova um conjunto A de Q
for each c in ? do
let X o conjunto de estados para o qual uma transio sobre c leva a um es
tado em A
for each conjunto Y in P para o qual X n Y no-vazio do
substitua Y em P pelos dois conjuntos X n Y e Y \ X
if Y est contido em Q
substitua Y em Q pelos mesmos dois conjuntos
else
adicione o menor dos dois conjuntos Q
end;
end;
end;
O algoritmo inicia com uma partio grossa: todo par de estados equivalentes de acor
do com relao Myhill-Nerode pertencem ao mesmo conjunto na partio, mas pares no-equiva
lentes ainda podem pertencer ao mesmo conjunto. O algoritmo gradualmente refina
a partio em um nmero maior de conjuntos menores, em cada passo dividindo conjuntos
de estados em pares de subconjuntos necessariamente no-equivalentes. A partio inici
al uma separao dos estados em dois subconjuntos de estados que claramente no tm o me
smo comportamento:estados de aceitao e estados de rejeio. O algoritmo ento repetidame
nte escolhe um conjunto A da partio atual e um smbolo de entrada c, e divide cada u
m dos conjuntos da partio em dois subconjuntos: o subconjunto de estados que leva
A atravs do smbolo de entrada c, e o subconjunto de estados que no leva a A. Como s
e sabe que A tem comportamento diferente dos outros conjuntos da partio, os subcon
juntos que levam a A tambm tm comportamentos diferentes dos subconjuntos que no lev
am a A. Quando nenhuma outra diviso desse tipo pode ser encontrada, o algoritmo t
ermina.
O tempo de execuo do algoritmo no pior caso O(ns\mbox{ }\log n), onde n o nmero de
estados e s o tamanho do alfabeto. Esse limite vem do fato que, para cada umas d
as ns transies do autmato, os conjuntos tomados de Q que contm o estado alvo da tran
sio tm tamanhos que decrescem relativamente entre si por um fator de dois ou mais,
ento cada transio participa em O(\log n) dos passos de diviso no algoritmo. A estrut
ura de dados do refinamento de partio permite que cada passo de diviso seja feito e
m tempo proporcional ao nmero de transies que participam dele.[3] Esse o melhor alg
oritmo conhecido para resolver o problema da minimizao de AFDs, e para certas dist
ribuies de entradas sua complexidade do caso-mdio ainda melhor, O(n\mbox{ }\log \lo
g n).[4]

Uma vez que o algoritmo de Hopcroft tenha sido usado para agrupar estados do AFD
de entrada em classe de equivalncia, o AFD mnimo pode ser construdo formando um es
tado para cada classe de equivalncia. Se S um conjunto de estados em P, s um esta
do em S, e c um caracter de entrada, ento a transio no AFD mnimo do estado para S, s
obre a entrada c, leva ao conjunto contendo o estado ao qual o autmato de entrada
levaria partindo do estado s, sobre a entrada c. O estado inicial do AFD mnimo o
conjunto que contm o estado inicial do AFD de entrada, e os estados de aceitao do
AFD mnimo so os conjuntos cujos membros so estados de aceitao no AFD de entrada.

Algoritmo de Moore[editar | editar cdigo-fonte]


O algoritmo de Moore para minimizao de AFD foi proposto por Moore (1956). Como o a
lgoritmo de Hopcroft, ele mantm uma partio que inicia separando os estados de aceit
ao dos estados de rejeio, e repetidamente refina a partio at que nenhum outro refina
to possa ser efetuado. Em cada passo, ele substitui a partio atual com o refinamen
to mais grosso das s + 1 parties, das quais uma a atual e as outras so as pr-imagens
da partio atual sob as funes de transio para cada um dos smbolos de entrada. O algo
mo termina quando essa substituio no muda a partio atual. A complexidade de tempo no
pior caso O(n^2s): cada passo do algoritmo pode ser executado em tempo O(ns) usa
ndo uma variante de radix sort para reordenar os estados tal que estados no mesm
o conjunto da nova partio sejam consecutivos na ordenao, e haja no mximo n passos j q
e todos menos o ltimo passo aumentam o nmero de conjuntos na partio. Os exemplos do
problema da minimizao de AFD que causam o comportamento do pior caso so os mesmos q
ue os para o algoritmo de Hopcroft. O nmero de passos que o algoritmo executa pod
e ser muito menor que n, ento em mdia (para s constante) seu desempenho O(n\mbox{
}\log n) ou at O(n\mbox{ }\log \log n) dependendo da distribuio aleatria sobre o autm
ato escolhido para modelar o comportamento do caso mdio do algoritmo.[4]
Algoritmo de Brzozowski[editar | editar cdigo-fonte]
Como Brzozowski (1963) observou, reverter as arestas de um AFD produz um AFN par
a a inversa da linguagem original, e convertendo este AFN para um AFD usando a c
onstruo do conjunto das partes padro (construindo apenas os estados alcanveis do AFD
convertido) leva a um AFD mnimo para a mesma linguagem invertida. Repetindo essa
operao inversa uma segunda vez produz um AFD mnimo para a linguagem original. A com
plexidade do pior caso do algoritmo de Brzozowski exponencial, j que h linguagens
regulares para as quais o AFD mnimo da inversa exponencialmente maior do que o AF
D mnimo da linguagem,[5] , no entanto o algoritmo normalmente tem um desempenho m
elhor do que o pior caso sugeriria.[4]
Minimizao de AFN[editar | editar cdigo-fonte]
Enquanto os procedimentos acima funcionam para AFDs, o mtodo de particionamento no
funciona para autmatos finitos no-determinsticos (AFNs). Encontrar um algoritmo de
tempo polinomial que minimize AFNs impossvel, a menos que P=NP.[6]
Notas[editar | editar cdigo-fonte]
Ir para cima ? Hopcroft, Ullman (1979)
Ir para cima ? Hopcroft, Motwani & Ullman (2001), Seco 4.4.3, "Minimization of DFA
's", p. 159.
Ir para cima ? Hopcroft (1971); Aho, Hopcroft & Ullman (1974)
? Ir para: a b c Berstel et al. (2010).
Ir para cima ? Por exemplo, a linguagem das cadeias binrias cujo n-simo smbolo um '
um' requer apenas n + 1 estados, mas sua inversa requer 2^n estados. Leiss (1981
) prov um AFD ternrio de n estados cuja inversa requer 2^n estados, o mximo possvel.
Para exemplos adicionais e observaes da conexo entre esses exemplos e a anlise de p
ior caso do algoritmo de Brzozowski, veja Cmpeanu et al. (2001).
Ir para cima ? Hopcroft, Motwani & Ullman (2001), Seco 4.4, Imagem rotulada "Minim
izing the States of an NFA", p. 163.
Referncias[editar | editar cdigo-fonte]
Aho, Alfred V.; Hopcroft, John E.; Ullman, Jeffrey D. (1974), "4.13 Partitioning
", The Design and Analysis of Computer Algorithms, Addison-Wesley, pp. 157 162.
Berstel, Jean; Boasson, Luc; Carton, Olivier; Fagnot, Isabelle (2010), "Minimiza

tion of Automata", Automata: from Mathematics to Applications, European Mathemat


ical Society
Brzozowski, J. A. (1963), "Canonical regular expressions and minimal state graph
s for definite events", Proc. Sympos. Math. Theory of Automata (New York, 1962),
Polytechnic Press of Polytechnic Inst. of Brooklyn, Brooklyn, N.Y., pp. 529 561.
Cmpeanu, Cezar; Culik, Karel, II; Salomaa, Kai; Yu, Sheng (2001), "State Complexi
ty of Basic Operations on Finite Languages", 4th International Workshop on Autom
ata Implementation (WIA '99), Lecture Notes in Computer Science, 2214, SpringerVerlag, pp. 60 70, doi:10.1007/3-540-45526-4_6.
Hopcroft, John (1971), "An n\mbox{ }\log n algorithm for minimizing states in a
finite automaton", Theory of machines and computations (Proc. Internat. Sympos.,
Technion, Haifa, 1971), New York: Academic Press, pp. 189 196
Hopcroft, John E.; Motwani, Rajeev; Ullman, Jeffrey D. (2001), Introduction to A
utomata Theory, Languages, and Computation (2nd ed.), Addison-Wesley.
Leiss, Ernst (1981), "Succinct representation of regular languages by Boolean au
tomata", Theoretical Computer Science 13 (3): 323 330, doi:10.1016/S0304-3975(81)8
0005-9.
Moore, Edward F. (1956), "Gedanken-experiments on sequential machines", Automata
studies, Annals of mathematics studies, no. 34, Princeton, N. J.: Princeton Uni
versity Press, pp. 129 153.
Links externos[editar | editar cdigo-fonte]
DFA minimization using the Myhill-Nerode theorem
Categorias: Teoria da computaoTeoria dos autmatos

Anda mungkin juga menyukai