folha 9 - Departamento de Ciência de Computadores

Propaganda
Departamento de Ciência de Computadores
FCUP
Modelos de Computação CC218
2013/2014
Folha Prática 9
1. Para cada uma das linguagens seguintes, defina um autómato de pilha que a reconheça, explicitando
em cada caso o critério de aceitação (ou por estados finais ou por pilha vazia). As quatro primeiras são
linguagens de alfabeto {0, 1} e as restantes {a, b, c}.
a) L1 = {0n 1m | m ≥ n ≥ 0}
b) L2 = {0n 1m | m ≥ n ≥ 0}?
c) L3 = {wtwR | w ∈ {0, 1}? , t ∈ {0, 1, ε}}
d) L4 = {x | x ∈ {0, 1}? e o número de 0’s em x é diferente do número de 1’s em x}
e) L5 = {ai bj ci | i, j ∈ N}
f) L6 = ({c}{c}? {a2n bn | n ≥ 1})? {c}{c}?
g) L7 = {ai bi+j cj | i ≥ 0, j ≥ 0}
2. Seja M um autómato de pilha cujo conjunto de estados é S = {q0 , q1 , q2 }, sendo q0 o estado inicial e
F = {q1 } o conjunto de estados finais. O alfabeto da pilha é Γ = {Z, B}, sendo Z o sı́mbolo inicial na
pilha. O alfabeto de entrada é Σ = {a, b, c} e as transições são:
δ(q0 , a, Z)
δ(q0 , b, Z)
δ(q0 , a, B)
δ(q1 , b, B)
δ(q2 , ε, Z)
=
=
=
=
=
{(q1 , Z)}
{(q0 , BZ)}
{(q1 , B)}
{(q2 , ε)}
{(q2 , ε)}
δ(q1 , a, Z)
δ(q0 , b, B)
δ(q1 , a, B)
δ(q2 , b, B)
=
=
=
=
{(q1 , Z), (q1 , ε)}
{(q0 , BB)}
{(q1 , B)}
{(q2 , ε)}
Seja N (M ) a linguagem aceite por M por pilha vazia e T (M ) a linguagem aceite por estados finais.
Recorde que N (M ) é o conjunto das sequências que levam o autómato da configuração inicial a pilha vazia
(por pop de Z, sendo completamente processadas) é a linguagem reconhecida pelo autómato por pilha
vazia. Do mesmo modo, T (M ) é o conjunto das sequências que levam o autómato da configuração inicial
a um estado final (sendo completamente processadas).
Usando a relação de mudança de configuração numa transição `M definida em S × Σ? × Γ? por
(s, αx, W γ) `M (s0 , x, βγ) se (s0 , β) ∈ δ(s, α, W ),
para s, s0 ∈ S, α ∈ Σ ∪ {ε}, x ∈ Σ? , W ∈ Γ, e β, γ ∈ Γ? , e as associadas `nM (mudança de configuração
em n passos) e `?M (mudança de configuração em zero ou mais passos, i.e., o fecho reflexivo e transitivo de
`M ), resolva as questões seguintes.
a) Mostre que qualquer palavra da linguagem descrita pela expressão aa? é aceite pelo autómato por estados
finais e por pilha vazia.
b) Mostre que qualquer palavra da linguagem descrita pela expressão bbaa? é aceite pelo autómato por
estados finais mas não por pilha vazia.
c) Mostre que nenhuma palavra da linguagem descrita pela expressao bbb? aa? b é reconhecida pelo autómato
por estados finais ou por pilha vazia.
d) Descreva informalmente N (M ) e T (M ) e comente a afirmação “T (M ) pode ser aceite por um autómato
finito determinı́stico mas N (M ) não”.
1
3. [?] Seja D = {1, 2, 3, 4, 5, 6, 7, 8, 9}, seja N = {0} ∪ (D? \ ({ε} ∪ {0}D? )) e seja L a linguagem das
expressões aritméticas de alfabeto {), (, +, *} ∪ D, assim definidas:
• x ∈ L qualquer que seja x ∈ N ;
• x+y ∈ L, x*y ∈ L, (x) ∈ L, quaisquer que sejam x, y ∈ L.
a) Apresente o autómato finito detrminı́stico mı́nimo que aceita a linguagem N de alfabeto D.
b) Apresente um autómato de pilha que reconheça N .
c) Justifique que L não pode ser reconhecida por um autómato finito.
d) Mostre que L pode ser reconhecida por um autómato de pilha: construa um autómato de pilha que
aceite L por estados finais e prove que, de facto, esse autómato aceita L.
4. [?] Seja L a linguagem de alfabeto Σ = {f, x, (, ), ,} definida indutivamente por: f(α,β) ∈ L,
quaisquer que sejam α, β ∈ L, e a palavra x ∈ L. Defina um autómato de pilha que reconheça L.
Para maior clareza, denote o sı́mbolo “,” do alfabeto de entrada por , .
5. [?] Seja L a linguagem das expressões regulares sobre Σ = {a, b}, a qual pode ser definida indutivamente, como uma linguagem de alfabeto {), (, +, ? , ε, ∅} ∪ Σ, por:
• ε ∈ L, a ∈ L, b ∈ L, ∅ ∈ L
• (r? ) ∈ L, (rs) ∈ L, e (r+s) ∈ L, quaisquer que sejam r, s ∈ L.
Para não confundir a palavra vazia com expressão ε, denote o sı́mbolo ε do alfabeto de entrada por ε .
a) Mostre que L não é uma linguagem regular.
b) Determine um autómato de pilha que reconheça L.
2
Download