Exercício 06.01

Desenvolva uma Expressão Regular (ER) sobre o alfabeto Σ = {a, b, c} e o Autômato Finito com Movimentos Vazios (AFε) correspondente, pelo Algoritmo de Thompson, que reconheça a linguagem L = {w | w possui ab como prefixo, bca como subpalavra e aca como sufixo}.


Expressão Regular (ER)

ER = (ab(a + b + c)*bca(a + b + c)*aca) +

          (abca(a + b + c)*aca) +

          (ab(a + b + c)*bcaca) +

          (abcaca)


Expressão Regular (ER) Simplificada

ER = ab(ε + (a + b + c)*b)c(ε + a(a + b + c)*)aca


Autômato Finito com Movimentos Vazios (AFε)

M = ({a, b, c}, {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, q25, q26, q27, q28, q29, q30, q31, q32, q33, q34, q35, q36, q37, q38, q39, q40, q41, q42, q43, q44}, δ, q0, {q44})

δ a b c ε
q0 - - - {q1}
q1 {q2} - - -
q2 - {q3} - -
q3 - - - {q4}
q4 - - - {q5, q18}
q5 - - - {q6}
q6 - - - {q7, q15}
q7 - - - {q8}
q8 - {q13} - {q9, q11}
q9 {q10} - - -
q10 - - - {q13}
q11 - - {q12} -
q12 - - - {q13}
q13 - - - {q14}
q14 - - - {q7, q15}
q15 - - - {q16}
q16 - - - {q17}
q17 - - - {q20}
q18 - - - {q19}
q19 - - - {q20}
q20 - - - {q21}
q21 - - {q22} -
q22 - - - {q23}
q23 - - - {q24, q37}
q24 {q25} - - -
q25 - - - {q26}
q26 - - - {q27, q35}
q27 - - - {q28}
q28 - {q33} - {q29, q31}
q29 {q30} - - -
q30 - - - {q33}
q31 - - {q32} -
q32 - - - {q33}
q33 - - - {q34}
q34 - - - {q27, q35}
q35 - - - {q36}
q36 - - - {q39}
q37 - - - {q38}
q38 - - - {q39}
q39 - - - {q40}
q40 {q41} - - -
q41 - - {q42} -
q42 {q43} - - -
q43 - - - {q44}
q44 - - - -

Recomendamos

Vida de Programador Revista LibreOffice Magazine Java Magazine