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