Exercício 03.13

Desenvolva um Autômato Finito Não-Determinístico (AFN) sobre o alfabeto Σ = {a, b, c, d}, que reconheça a linguagem L = {w | w possui ab ou bcda ou bca como prefixo, dab ou acab ou cad como subpalavra e dad ou aba ou bbc como sufixo}.


Resposta

M = ({a, b, c, d}, {q0, q1, q2, q3, q4, q5, q6, q7, q8, q9, q10, q11, q12, q13, q14, q15, q16, q17, q18, q19, q20, q21, q22}, δ, q0, {q22})

δ a b c d
q0 {q1} {q2, q5} - -
q1 - {q7} - -
q2 - - {q3} -
q3 - - - {q4}
q4 {q7, q9, q10} - - -
q5 - - {q6} -
q6 {q7, q10, q14} - - -
q7 {q7, q10} {q7} {q7, q13} {q7, q8}
q8 {q9} - - -
q9 - {q15, q19, q20} - -
q10 - - {q11} -
q11 {q12} - - -
q12 - {q15, q19, q20} - -
q13 {q14} - - -
q14 - - - {q15, q16}
q15 {q15, q18} {q15, q20} {q15} {q15, q16}
q16 {q17} - - -
q17 - - - {q22}
q18 - {q19} - -
q19 {q22} - - -
q20 - {q21} - -
q21 - - {q22} -
q22 - - - -

Recomendamos

Copy Vida de Programador Java Magazine