Ybadoo - Soluções em Software Livre
Turmas
2º Semestre de 2018

Questão 01

(Ramos, 2009) Uma linguagem formal é um conjunto, finito ou infinito, de cadeias de comprimento finito, formadas pela concatenação de elementos de um alfabeto finito e não-vazio. Analise as seguintes assertivas sobre linguagens formais.

  1. A palavra abccba pertence a linguagem formal L = {ω ∈ {a, b, c}* | ω = ωR e |ω| = 6}.
  2. A palavra aabbcc pertence a linguagem formal L = {aibjck | ijk}.
  3. A palavra abccba pertence a linguagem formal L = {ω ∈ {a, b, c}* | ω = ααR}.
  4. A palavra aabbcc pertence a linguagem formal L = {ω ∈ {a, b, c}* | ω = α2}.

A análise permite concluir que:

a. apenas as assertivas I e II estão corretas.

b. apenas as assertivas I e III estão corretas.

c. apenas as assertivas II e III estão corretas.

d. apenas as assertivas II e IV estão corretas.

e. apenas as assertivas III e IV estão corretas.

Questão 02

As cadeias produzidas pela expressão regular (a* + aa*)(a + ε) podem ser reconhecidas por um autômato finito determinístico, autômato finito não-determinístico ou autômato finito com movimentos vazios, contendo no mínimo:

a. 1 estado

b. 2 estados

c. 3 estados

d. 4 estados

e. 5 estados

Questão 03

(Ramos, 2009) Considere a linguagem L = {ω ∈ {a, b, c, d}*, definida informalmente como segue.

  1. Para cada símbolo a presente na cadeia ω, deverá existir uma subcadeia bbb situada imediatamente à direita do mesmo;
  2. Para cada símbolo c presente na cadeia ω, a subcadeia situada imediatamente à direita do mesmo deverá ser diferente de bbb.

São exemplos de sentenças pertencentes a linguagem L: cbb, abbbcabbb, bbabbbcbb.

Qual função de transição (δ) corresponde ao autômato finito determinístico que reconheça a linguagem L.

M2 = ({a, b, c, d}, {q0, q1, q2, q3, q4, q5, q6}, δ2, q0, {q0, q4, q5, q6})

a.

Tabela com a função de transição de M2
δ2abcd
q0q1q0q4q0
q1-q2--
q2-q3--
q3-q0--
q4q1q5q4q0
q5q1q6q4q0
q6q1q0q4q0

b.

Tabela com a função de transição de M2
δ2abcd
q0q1q0q4q0
q1q1q2q4q0
q2q1q3q4q0
q3q1q0q4q0
q4q1q5q4q0
q5q1q6q4q0
q6q1-q4q0

c.

Tabela com a função de transição de M2
δ2abcd
q0q1q0q4q0
q1-q2--
q2-q3--
q3-q0--
q4q1q5q4q0
q5q1q6q4q0
q6q1-q4q0

d.

Tabela com a função de transição de M2
δ2abcd
q0q1q0q4q0
q1q1q2q4q0
q2q1q3q4q0
q3q1q0q4q0
q4q1q5q4q0
q5q1q6q4q0
q6q1q0q4q0

e.

Tabela com a função de transição de M2
δ2abcd
q0q1q0q4q0
q1-q2--
q2-q3--
q3-q0--
q4q1q5q4q0
q5q1q6q4q0
q6----

Questão 04

Como alternativa para a representação dos conjuntos regulares, visando obter maior concisão e facilidade de manipulação, Kleene desenvolveu, na década de 1950, a notação das expressões regulares. Considere a existência de uma expressão regular sobre o alfabeto {a, b, c} a qual represente a maior linguagem que satisfaça simultaneamente às seguintes condições:

  1. Cada uma de suas sentenças deve conter exatamente três símbolos a – nem mais, nem menos;
  2. O primeiro e o segundo símbolo a de cada sentença devem estar separados por pelo menos um símbolo, que não seja a;
  3. O segundo e o terceiro símbolo a de cada sentença devem estar separados por uma quantidade par, diferente de zero, de símbolos que não sejam a.

Qual expressão regular satisfaz as condições exigidas:

a. ER = (b + c)* a (b + c)* a (bb + bc + cb + cc)* a (b + c)*

b. ER = (b + c)* a (b + c)+ a (bb + bc + cb + cc)+ a (b + c)*

c. ER = a (b + c)+ a (bb + bc + cb + cc)+ a

d. ER = a (b + c)+ a (b + c)+ (b + c)+ a

e. ER = a (b + c)+ a (b + c)* a

Questão 05

(Ramos, 2009) Apesar do elevado interesse prático que recai sobre os autômatos finitos determinísticos, uma vez que eles servem como base para a construção de programas extremamente eficientes, do ponto de vista teórico há também um interesse muito grande pelos autômatos finitos não-determinismos, devido à maior facilidade com que eles permitem a demonstração de certos teoremas. Do ponto de vista prático, os autômatos finitos não-determinismos são, muitas vezes, mais intuitivos do que os correspondentes autômatos finitos determinísticos, o que os torna, geralmente, mais adequados para a análise e especificação de linguagens regulares. Considere a linguagem L = {ω ∈ {a, b, c}* | se o primeiro símbolo de ω é a, então o terceiro deve ser b e o último deve ser c}. São sentenças de L: abbacc, acbbbc, cba, aabc. Não são sentenças de L: aaa, abba, aabccb. Desenvolva um autômato finito não-determinístico que reconheça as sentenças da linguagem L.

M5 = ({a, b, c}, {q0, q1, q2, q3, q4, q5}, δ5, q0, {q4, q5})

Grafo com a função de transição de M5
Grafo com a função de transição de M5
Tabela com a função de transição de M5
δ5abc
q0{q1}{q4}{q4}
q1{q2}{q2}{q2}
q2-{q3}-
q3{q3}{q3}{q3, q5}
q4{q4}{q4}{q4}
q5---

Questão 06

(Ramos, 2009) Da mesma forma como ocorre com as expressões regulares, os autômatos finitos também possibilitam a formalização das linguagens regulares. No entanto, diferentemente daquela notação, que constituem dispositivos de geração de sentenças, os autômatos finitos são dispositivos de aceitação de sentenças. Apresente um autômato finito determinístico equivalente ao autômato finito não-determinístico apresentado a seguir.

M6 = ({a, b, c}, {q0, q1, q2, q3, q4}, δ6, q0, {q0, q2, q4})

Grafo com a função de transição de M6
Grafo com a função de transição de M6
Tabela com a função de transição de M6
δ6abc
q0{q1, q3}{q3}-
q1-{q2}{q4}
q2-{q1}-
q3--{q1}
q4--{q4}

M6r = ({a, b, c}, {q0, q1, q2, q3, q4, q5, q6}, δ6r, q0, {q0, q2, q3, q4})

Grafo com a função de transição de M6r
Grafo com a função de transição de M6r
Tabela com a função de transição de M6r
δ6rabc
q0q1q6-
q1-q4q2
q2-q4q3
q3--q3
q4-q5-
q5-q4q3
q6--q5

Questão 07

(Ricarte, 2008) O método da construção de subconjuntos é um procedimento sistemático que converte um autômato finito com movimentos vazios num autômato finito determinístico. O princípio associado a esse método é criar novos estados, no autômato finito determinístico, que estejam associados a todas as possibilidades de estados originais em um dado momento da análise da sentença no processo de reconhecimento. Para cada estado original, essas possibilidades incluem o estado do autômato finito com movimentos vazios e todos os estados que podem ser atingidos a partir dele com transições pela string vazia. Converta, usando o método da construção de subconjuntos, o autômato finito não-determinístico com movimentos vazios apresentado a seguir para um autômato finito determinístico.

M7 = ({a, b, c}, {q0, q1, q2, q3, q4}, δ7, q0, {q4})

Grafo com a função de transição de M7
Grafo com a função de transição de M7
Tabela com a função de transição de M7
δ7abcε
q0{q0}--{q1}
q1-{q1}-{q2}
q2--{q2}{q1, q3}
q3-{q3}-{q2, q4}
q4{q4}---

M7r = ({a, b, c}, {q0, q1, q2, q3, q4}, δ7r, q0, {q0, q1, q2, q3, q4})

Grafo com a função de transição de M7r
Grafo com a função de transição de M7r
Tabela com a função de transição de M7r
δ7rabc
q0q1q2q4
q1q1q2q4
q2q3q2q4
q3q3--
q4q3q2q4

Questão 08

(Ricarte, 2008) Em geral, a aplicação do método da construção de subconjuntos produz autômatos com estados redundantes, ou seja, estados que poderiam ser combinados em um único estado sem alterar a linguagem que é reconhecida. Minimize, se possível, o número de estados do autômato finito determinístico resultante da Questão 07.

M8 = ({a, b, c}, {q0, q1, q2}, δ8, q0, {q0, q1, q2})

Grafo com a função de transição de M8
Grafo com a função de transição de M8
Tabela com a função de transição de M8
δ8abc
q0q0q1q1
q1q2q1q1
q2q2--