Exercício 03.47

Desenvolva um Autômato Finito Não-Determinístico (AFN) sobre o alfabeto Σ = {x, y, z}, que reconheça a linguagem L = {w | w possui xyx ou yxz ou zzy como prefixo, xzzy ou yxxz ou zyyz como subpalavra e xzz ou yyx ou zyy como sufixo}.


Resposta

M = ({x, y, z}, {q0, q1, q2, q3, q4, q5, q6, q7, q8, q9, q10, q11, q12, q13, q14, q15, q16, q17, q18, q19, q20, q21, q22, q23, q24}, δ, q0, {q24})

δ x y z
q0 {q1} {q3} {q5}
q1 - {q2} -
q2 {q7, q8, q12} - -
q3 {q4} - -
q4 - - {q7, q9, q14}
q5 - - {q6}
q6 - {q7, q11, q15} -
q7 {q7, q8} {q7, q11} {q7, q14}
q8 - - {q9}
q9 - - {q10}
q10 - {q17, q20, q23} -
q11 {q12} - -
q12 {q13} - -
q13 - - {q17, q19, q22}
q14 - {q15} -
q15 - {q16} -
q16 - - {q17, q22}
q17 {q17, q18} {q17, q20} {q17, q22}
q18 - - {q19}
q19 - - {q24}
q20 - {q21} -
q21 {q24} - -
q22 - {q23} -
q23 - {q24} -
q24 - - -

Recomendamos

Clickarvore Vida de Programador Java Magazine