в каждом из его состояний для любого входного символа функция
перехода содержит не более одного состояния: ∀a∈V, ∀q∈Q: либо δ(a, q)={r}, r∈Q, либо δ(a, q)=∅.
При построении компиляторов чаще всего
используют полностью определенный
детерминированный конечный автомат.
Алгоритм преобразования произвольного КА (M(Q, V, δ, q0, F)) в эквивалентный ему ДКА (M'(Q', V', δ', q0', F ')):
множество состояний Q' автомата М' строится из комбинаций всех состояний множества Q автомата М:
если q1, q2, …, qn, n>0 – состояния автомата M, 0 то всего будет 2n-1 состояний автомата М': [q1, q2, …, qm], 0 функция переходов δ' автомата М' строится так:
δ'(a, [q1, q2, …, qm])=[r1, r2, …, rk], где ∀0
q'0=[q0];
если f1, f2, …, fl, l>0 – конечные состояния автомата М, 0 тогда множество конечных состояний F' автомата М' строится из всех
состояний, имеющих вид […, fi,…], fi∈F.
После построения из ДКА необходимо удалить все недостижимые состояния – ни при какой входной цепочке ω∈V+ невозможен переход автомата из начального состояния q0 в состояние q.