Teoria Algébrica dos Autómatos

Propaganda
§0. Introdução
Ciência da Computação Teórica
construção de modelos teóricos de suporte à Computação
Teoria Algébrica dos Autómatos
2010-2011
Motivação
estudo de redes neuronais (biólogos)
Vı́tor Hugo Fernandes
Departamento de Matemática
circuitos eléctricos (engenheiros, aplicação em hardware)
FCT/UNL
fundamentos da Lógica (matemáticos)
gramáticas para linguagens naturais (linguistas)
Matemática
Álgebra, Combinatória, ...
c Estas notas são parcialmente baseadas em apontamentos do Prof. Dr. Mário Branco da Faculdade de Ciências da
!
Universidade de Lisboa e em apontamentos do Prof. Dr. Manuel Delgado da Faculdade de Ciências da Universidade do Porto.
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
1 / 134
!
Gödel
Tarski
Church
Post
Departamento de Matemática (FCT/UNL)
Turing
Thue
Chomsky
TAA 2010-2011
2 / 134
Monóides. Linguagens. Gramáticas
Monóide: (M, ·), em que
M é um conjunto não vazio
“·” é uma operação binária sobre M
Programa
associativa (i.e. (M, ·) é um semigrupo)
possui elemento neutro (identidade)
Monóides. Linguagens. Gramáticas
Linguagens Reconhecı́veis e Linguagens Racionais
Linguagem: L ⊆ A∗ , em que
Variedades de Monóides Finitos e Variedades de Linguagens
A é um conjunto finito (alfabeto)
A∗ = {(a1 , a2 , . . . , an ) | a1 , a2 , . . . , an ∈ A, n ∈ N0 }
Hierarquia de Chomsky: Gramáticas vs. Linguagens vs. Máquinas
n ≥ 1, (a1 , a2 , . . . , an ) " a1 a2 · · · an , palavra (não vazia) de A∗
n = 0, sequência vazia " 1 (ε ou λ), palavra vazia de A∗
Problemas de (in)decidibilidade
O conjunto A∗ munido da operação de concatenação,
(a1 a2 · · · am ) · (b1 a2 · · · bn ) = a1 a2 · · · am b1 a2 · · · bn
é um monóide com elemento neutro 1.
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
3 / 134
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
4 / 134
Linguagens Reconhecı́veis e Linguagens Racionais
Gramática (formal): G = (V , A, P, S), em que
V é um alfabeto (de sı́mbolos não terminais/variáveis)
A é um alfabeto, disjunto de V , (de sı́mbolos terminais)
P ⊆ (V ∪ A)∗ V (V ∪ A)∗ × (V ∪ A)∗ é um conjunto finito de
produções/regras de derivação (um elemento (α, β) ∈ P representa-se
por α → β)
S ∈ V é um elemento fixo designado sı́mbolo inicial/variável inicial/
axioma
G = (V , A, P, S), com
V = {"frase#, "sujeito#, "predicado#, "artigo#, "nome#, "verbo#, "complemento directo#}
A = {coelho, erva, raposa, come, o, a}, S = "frase# e P o conjunto das seguintes
produções: "frase# → "sujeito#"predicado#, "sujeito# → "artigo#"nome#,
"predicado# → "verbo#"complemento directo#, "complemento directo# → "artigo#"nome#,
"artigo# → o | a, "nome# → coelho | erva | raposa e "verbo# → come.
"frase#
Gramáticas Lineares à Direita/Esquerda (Tipo 3/Regulares)
Autómatos (finitos)
Exemplo
"frase#
Linguagens Racionais (Regulares)
∗
⇒
∗
⇒
o coelho come a erva
|
Linguagens Reconhecı́veis (por autómatos finitos). O Teorema de
Kleene
Monóide de Transições (de um autómato) e Monóide Sintáctico (de
uma linguagem)
Linguagens Reconhecı́veis (por monóides finitos)
a raposa come o coelho
a erva come a raposa
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
5 / 134
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
6 / 134
Hierarquia de Chomsky: Gramáticas vs. Linguagens vs.
Máquinas
Variedades de Monóides Finitos e Variedades de
Linguagens
Rac(A∗ ) = Rec(A∗ ) = L3 (A∗ ) ! L2 (A∗ ) ! L1 (A∗ ) ! L0 (A∗ ) ! 2A
∗
# Linguagens racionais/reconhecı́veis
# Autómatos finitos
Gramáticas algébricas/tipo 2 # Linguagens livres de contexto
# Autómatos de pilha
Gramáticas contextual/tipo 1 # Linguagens sensı́veis ao contexto
# Autómatos lineares limitados
Gramáticas quaisquer/tipo 0 # Linguagens recursivamente enumeráveis
# Máquinas de Turing
Gramáticas regulares/tipo 3
Variedades de Monóides Finitos (Pseudovariedades)
Variedades de Linguagens (reconhecı́veis)
O Teorema das Variedades de Eilenberg
Estrutura dos Monóides Finitos
Linguagens Livre de Estrela e Linguagens Testáveis por Pedaços
L1 (A∗ ) ! LR (A∗ ) ! L0 (A∗ )
Linguagens recursivas
# Máquinas de Turing que páram com qualquer input
$%
Decidibilidade
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
7 / 134
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
8 / 134
Problemas de (in)decidibilidade
Alguma Bibliografia
Problema da correspondência de Post (PCP)
Dadas duas sequências u1 , u2 , . . . , uk e v1 , v2 , . . . , vk de palavras sobre o
mesmo alfabeto, existe uma sequência de números naturais i1 , i2 , . . . , in ,
com n ≥ 1, tal que ui1 ui2 · · · uin = vi1 vi2 · · · vin ?
J. Berstel, Transductions and context-free languages, B. G. Teubner,
1979, e de Gruyter, 1990.
Exemplos:
J. E. Hopcroft e J. D. Ullman, Introduction to automata theory,
languages, and computation, Addison-Wesley Publ. Co., 1979.
A = {a, b}, u1 = a, u2 = aba3 , u3 = ab, v1 = a3 , v2 = ab, v3 = b
Tem solução: n = 4, i1 = 2, i2 = 1, i3 = 1, i4 = 3
(u2 u1 u1 u3 = aba6 b = v2 v1 v1 v3 )
J. E. Hopcroft, R. Motwani e J. D. Ullman, Introduction to automata
theory, languages, and computation, Addison-Wesley Publ. Co., 2006.
J. M. Howie, Automata and Languages, Clarendon Press, 1991.
J.E. Pin, Varieties of Formal Languages, Plenum, New-York, 1986.
A = {a, b}, u1 = ab, u2 = ba2 , u3 = aba, v1 = aba, v2 = a2 ,
v3 = ba2
Não tem solução!
M. Sipser, Introduction to the theory of computation, PWS Publ.
Co., 1a edição, 1997, e 2a edição, 2006.
S. Y. Yan, An introduction to formal languages and machine
computation, World Scientific, Singapore, 1998.
No entanto:
O PCP é INDECIDÍVEL!
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
9 / 134
§1. Monóides. Linguagens. Gramáticas
1.1 Semigrupos e Monóides
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
10 / 134
Definição.
Definição.
Um semigrupo é um par (S, α), em que S é um conjunto não vazio e α é
uma operação binária sobre S associativa, i.e. α é uma função de S × S
em S tal que α(α(a, b), c) = α(a, α(b, c)), para quaisquer a, b, c ∈ S.
Um monóide é um terno (M, ·, 1) em que (M, ·) é um semigrupo e 1 é um
elemento neutro de (M, ·), i.e. 1 ∈ M e 1 · a = a · 1 = a, para qualquer
a ∈ M.
Em linguagem aditiva, escrevemos (M, +, 0).
Proposição.
Habitualmente, usamos o sı́mbolo · (linguagem multiplicativa) ou +
(linguagem aditiva) para denotar a operação binária de um semigrupo.
Em linguagem multiplicativa a operação é designada por multiplicação e,
dados a, b ∈ S, escrevemos a · b, ou simplesmente ab, em vez de ·(a, b).
Em linguagem aditiva a operação é designada por adição e, dados
a, b ∈ S, escrevemos a + b em vez de +(a, b).
Com estas convenções, a associatividade traduz-se por (ab)c = a(bc), em
linguagem multiplicativa, e por (a + b) + c = a + (b + c), em linguagem
aditiva, para quaisquer a, b, c ∈ S.
Em geral, vamos usar a linguagem multiplicativa.
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
11 / 134
Um elemento neutro de um semigrupo (M, ·), quando existe, é único.
Efectivamente, se u e v são ambos elementos neutros de (M, ·), então
u = u · v (por v ser um elemento neutro) e u · v = v (por u ser um
elemento neutro), donde u = v .
O elemento neutro de um monóide também se designa por identidade.
Em geral, se não houver ambiguidade, representamos um semigrupo (S, ·)
por S e um monóide (M, ·, 1) por (M, ·) ou, simplesmente, por M.
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
12 / 134
Mais exemplos.
Sejam X um conjunto e T (X ) o conjunto de todas as funções de X
em X (de domı́nio e conjunto de chegada iguais a X ). Então
(T (X ), ◦) (operação de composição de funções: dados f , g ∈ T (X ),
então (f ◦ g )(x) = f (g (x)), para qualquer x ∈ X ) é um monóide
(cuja identidade é a função identidade: idX (x) = x, para qualquer
x ∈ X – a função identidade sobre X também se pode representar por
IX ou 1X , ou se não houver ambiguidade simplesmente por id, I ou
1). [Exercı́cio.]
Exemplos.
(Z, ·) e (Z, +) (multiplicação e adição usuais) são semigrupos e
(Z, ·, 1) e (Z, +, 0) são monóides;
(N0 , ·) e (N0 , +) (multiplicação e adição usuais) são semigrupos e
(N0 , ·, 1) e (N0 , +, 0) são monóides;
(N+ , ·) e (N+ , +) (multiplicação e adição usuais) são semigrupos e
(N+ , ·, 1) é um monóide, mas (N+ , +) não é um monóide;
Sejam n ∈ N e Xn = {1, 2, . . . , n} ⊂ N. Consideremos as seguintes
operações binárias sobre Xn :
x ∨ y = max{x, y }
Sejam X um conjunto e PT (X ) o conjunto de todas as funções
parciais de X em X , i.e. funções de domı́nio Y ⊆ X e conjunto de
chegada X . Dadas funções f , g ∈ PT (X ), definimos f ◦ g como
sendo a função de domı́nio
x ∧ y = min{x, y }
e
(máximo e mı́nimo para a ordem usual em N), para quaisquer
x, y ∈ Xn . Então (Xn , ∨) e (Xn , ∧) são dois monóides. [Exercı́cio.]
Dom(f ◦ g ) = g −1 (Im g ∩ Dom f ) = {x ∈ X | g (x) ∈ Dom f }
tal que (f ◦ g )(x) = f (g (x)), para qualquer x ∈ Dom(f ◦ g ). Então
(PT (X ), ◦) é um monóide de identidade idX . [Exercı́cio.]
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
13 / 134
!
1
2
2
3
6
4
"
3 4 5 6
6 1 2 4
"
3
6
4
1
5
2
=
!
=
!
1 2
5 −
"
=
1
5
2
5
3
3
4
2
5
3
6
1
"
;
Em PT 6 ,
!
1
2
2
−
3 4
5 −
" !
5 6
1 2
◦
5 3
3 −
que mais usalmente representamos por
!
" !
1 3 5 6
1 3 4 5
◦
2 5 5 3
3 6 1 2
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
6
4
!
1
5
3 4 5
3 2 −
3
3
4
2
"
TAA 2010-2011
14 / 134
Sejam S um semigrupo e x ∈ S. Dado n ∈ N+ , a potência x n denota o
produto x · · · x (n factores). Se S é um monóide, x 0 denota a identidade
de S, i.e. x 0 = 1.
Se X = {1, 2, . . . , n} então representamos também T (X ) por Tn e
PT (X ) por PT n .
Por exemplo:
Em T6 (ou em PT 6 ),
" !
2 3 4 5 6
1
◦
3 5 1 5 3
3
Departamento de Matemática (FCT/UNL)
6
−
"
Definição.
Seja S um semigrupo. Um elemento z ∈ S diz-se um zero de S se
z · s = s · z = z, para qualquer s ∈ S.
Proposição
O zero de um semigrupo S, quando existe, é único.
De facto, se z e z % são ambos zeros de S, temos z = z · z % (por z ser um
zero de S) e z · z % = z % (por z % ser um zero de S), donde z = z % .
O zero de um semigrupo S, quando existe, representa-se (em linguagem
multiplicativa) por 0 (não confundir com o elemento neutro de um
monóide em linguagem aditiva).
.
15 / 134
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
16 / 134
Exemplos.
Seja X um conjunto. A função vazia de PT (X ) (i.e. a função cujo
domı́nio é o subconjunto vazio, ∅, de X ) é o zero de (PT (X ), ◦);
Se X é um conjunto com pelo menos dois elementos distintos, então
(T (X ), ◦) não possui zero. [Exercı́cio.]
Seja S um semigrupo. Seja P(S) o conjunto das partes de S, i.e. o
conjunto de todos os subconjuntos de S. Definimos em P(S) uma
operação binária do seguinte modo: dados X , Y ∈ P(S),
Então (P(S), ·) é um semigrupo (o semigrupo das partes de S).
[Exercı́cio.] Este semigrupo admite como zero o elemento ∅
(subconjunto vazio de S). Além disso, se S é um monóide, então
(P(S), ·) é um monóide de identidade {1}.
Dados x ∈ S e Y ∈ P(S), escrevemos habitualmente xY em vez de
{x}Y e Yx em vez de Y {x}.
TAA 2010-2011
17 / 134
Se S é um semigrupo então S é um subsemigrupo de S.
Se M é um monóide então {1} e M são dois submonóides de M.
Sejam S um monóide [semigrupo] e F uma famı́lia não vazia de
submonóides [subsemigrupos] de S. Então
#
F = {x ∈ S | x ∈ T , para qualquerT ∈ F}
é um submonóide [ou vazio ou é um subsemigrupo] de S. Em particular,
se T1 , . . . , Tn , n ≥ 1, são submonóides [subsemigrupos] de S então
T1 ∩ · · · ∩ Tn é um submonóide [ou vazio ou é um subsemigrupo] de S.
Demonstração. [Exercı́cio.]
Sejam S um semigrupo e X um subconjunto não vazio de S. Então a
famı́lia FX = {T | T é subsemigrupo
de S e X$⊆ T } contém S, pelo que
$
é não vazia. Além disso,
X
⊆
F
,
pelo
que FX /= ∅ e,
X
$
consequentemente, FX é um subsemigrupo de S.
TAA 2010-2011
Tn é um submonóide de PT n ;
Para k ∈ {1, 2, . . . , n − 1}, Tk e PT k são subsemigrupos de PT n mas
não são submonóides de PT n (embora ambos sejam monóides);
SingPT n = {f ∈ PT n | | Im f | < n} é um subsemigrupo de PT n ,
mas não é um submonóide de PT n (nem possui qualquer outra
identidade, i.e. não é um monóide). [Exercı́cio.]
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
18 / 134
Definição.
Sejam S um semigrupo e X um subconjunto não vazio de S. Chamamos
subsemigrupo de S gerado
$ por X ao menor subsemigrupo de S que
contém X , ou seja, a {T | T é subsemigrupo de S e X ⊆ T }, que
representamos por 0X 1 ou por X + .
Proposição.
Departamento de Matemática (FCT/UNL)
Exemplos.
Seja n ∈ N+ . Consideremos o monóide PT n com a operação usual (i.e.
com a composição de funções parciais). Então:
X · Y = {x · y | x ∈ X e y ∈ Y } ∈ P(S).
Departamento de Matemática (FCT/UNL)
Definições.
Seja S um semigrupo. Um subconjunto não vazio T de S diz-se um
subsemigrupo de S se, para quaisquer x, y ∈ T , xy ∈ T , ou seja, se
T 2 (= TT ) ⊆ T .
Seja M um monóide. Um subsemigrupo T de M diz-se um submonóide de
M se 1 ∈ T (i.e. se o subsemigrupo T de M for um monóide com a
mesma identidade de M).
19 / 134
Se X = ∅ também representamos por X + o conjunto
$
{T | T é subsemigrupo de S e X ⊆ T }, que neste caso pode ser vazio.
Sejam M um monóide e X um subconjunto de M. Então a famı́lia
FX = {T | T é submonóide$de M e X ⊆ T } contém M, pelo que é não
vazia. Consequentemente, FX é um submonóide de S.
Observemos que se X = ∅ então X ∗ = {1}.
Definição.
Sejam M um monóide e X um subconjunto de M. Chamamos submonóide
de
a
$ S gerado por X ao menor submonóide de M que contém X , ou seja,
{T | T é submonóide de M e X ⊆ T }, que representamos por 0X 11 ou
por X ∗ .
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
20 / 134
Exemplo.
Proposição.
Sejam S um semigrupo e X um subconjunto não vazio de S. Então
%
X+ =
X n = {x1 x2 · · · xn | n ∈ N+ , x1 , x2 , . . . , xn ∈ X }.
Consideremos o monóide T3 e o seu subconjunto X = {a, b}, em que
n∈N+
Temos a2 =
!
1
3
a=
!
3
3
"
2
3
1
2
2
3
3
3
, ab =
!
"
1
2
e
2
2
b=
3
3
"
!
1
1
, ba =
2
1
!
3
3
1
1
"
2
3
.
3
3
"
, b 2 = b,
a3 = a2 , a2 b = a2 , aba = a, abb = ab, ba2 = a2 e bab = b, donde
X + = {a, b, a2 , ab, ba} e X ∗ = {1, a, b, a2 , ab, ba}.
Demonstração. [Exercı́cio.]
1
Proposição.
Sejam M um monóide e X um subconjunto de M. Então
%
X∗ =
X n = {1} ∪ X + .
1
a
b
a
n∈N0
aa
ab
ba
bb
aaa aab
aba abb
baa bab
bba bbb
b
aa
ab
ba
aaa
X aab
X
aba
X
X abb
baa
X bab
X
bb
X
Além disso, X + = XX ∗ = X ∗ X .
Definição.
Demonstração. [Exercı́cio.]
Um semigrupo [monóide] S diz-se gerado por um seu subconjunto X se
S = X + [S = X ∗ ]. Neste caso X diz-se um conjunto de geradores de S.
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
21 / 134
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
22 / 134
Definição.
Um semigrupo [monóide] S diz-se finitamente gerado se possui um
conjunto de geradores finito.
Definição.
Um monóide (G , ·, u) diz-se um grupo se todos os elementos de G são
invertı́veis, i.e. se para qualquer x ∈ G , existe x % ∈ G tal que
xx % = x % x = u.
Exemplos.
Seja S um semigrupo [monóide]. Como S + = S [S ∗ = S], se S é finito
então S é finitamente gerado.
O monóide
[semigrupo] T2 é gerado '
por
&
"
!
!
"
!
1 2
1 2
: a2 = 1 e ab = 12
X = a = 2 1 ,b = 1 1
2
2
"
, pelo que
T2 = {1, a, b, ab} = X + = X ∗ .
O monóide
[semigrupo] T3 é gerado por
&
!
"
!
"
!
X = a = 12 21 33 , b = 12 23 31 , c = 11
Sejam (G , ·, u) um grupo e x ∈ G . Então existe um único elemento
x % ∈ G tal que xx % = x % x = u. [Exercı́cio.] Este elemento é usualmente
denotado por x −1 .
Definição.
2
1
"'
3
. [Exercı́cio.]
3
O semigrupo (N+ , +) é gerado por X = {1}, pelo que é finitamente gerado.
Seja (S, ·) um semigrupo. Um subconjunto G de S diz-se um subgrupo de
S se, para algum elemento u ∈ G (necessariamente único), o terno
(G , ·, u) for um grupo.
O semigrupo (N+ , ·) não é finitamente gerado. [Exercı́cio.]
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
23 / 134
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
24 / 134
Observação.
Em T5 , por exemplo, os elementos
Seja (M, ·, 1) um monóide. Um subgrupo (G , ·, u) de M não tem
necessariamente que ter a mesma identidade que M, i.e. podemos ter
u /= 1.
O subconjunto
!
%
%
!
%
U(M) = {x ∈ M | (∃x ∈ M) xx = x x = 1}
é um subgrupo de M com a mesma identidade de M. Este subgrupo é
designado por subgrupo das unidades de M e é o maior (para a relação de
inclusão) subgrupo de M com a mesma identidade de M.
Definição.
Um elemento e de um semigrupo S diz-se idempotente se e 2 = e.
Exemplos.
Se (G , ·, u) é um subgrupo de um semigrupo S então u é idempotente.
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
25 / 134
Um semigrupo S gerado por um elemento a ∈ S (i.e. tal que {a} é um
conjunto de geradores de S) diz-se monogénico.
Teorema.
Seja S um semigrupo gerado por um elemento a. Então S é isomorfo a
(N+ , +) ou S é finito. Neste último caso, existem inteiros n ∈ N0 e
r ∈ N+ tais que an = an+r , S = {a, a2 , . . . , an+r −1 } e tem n + r − 1
elementos, G = {an , an+1 , . . . , an+r −1 } é um subgrupo de S e o único
idempotente de S é a identidade de G .
Demonstração. [Exercı́cio.]
Corolário
Todo o semigrupo finito possui pelo menos um idempotente.
TAA 2010-2011
2
2
2
3
3
3
3
4
4
2
4
5
5
5
"
5
1
1
1
2
1
3
3
4
1
5
5
"
e
são idempotentes, mas os elementos
e
!
1
1
2
3
3
2
4
4
5
4
"
não são idempotentes.
Exercı́cio.
Mostre que f é um idempotente de Tn se e só se Im(f ) ⊆ Fix(f ), em que
Fix(f ) = {i ∈ {1, . . . , n} | f (i) = i}.
Definições.
Sejam S e T dois semigrupos e ϕ : S −→ T uma função. Dizemos que ϕ
é um homomorfismo (ou simplesmente morfismo) de semigrupos se
ϕ(xy ) = ϕ(x)ϕ(y ), para quaisquer x, y ∈ S.
Se S e T forem monóides, dizemos que uma função ϕ : S −→ T é um
homomorfismo (ou simplesmente morfismo) de monóides se for um
homomorfismo de semigrupos e ϕ(1) = 1.
Um homomorfismo bijectivo ϕ : S −→ T diz-se um isomorfismo. Neste
caso, os semigrupos (ou monóides) S e T dizem-se isomorfos (S 3 T ).
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
26 / 134
Definição.
Sejam S um semigrupo. Um subconjunto I não vazio de S diz-se um ideal
[ideal direito, ideal esquerdo] de S se S 1 IS 1 ⊆ I [IS 1 ⊆ I , S 1 I ⊆ I ].
É fácil ver que um subconjunto I de um semigrupo S é um ideal se e só se
é simultaneamente um ideal esquerdo e um ideal direito. [Exercı́cio.]
Definição.
Sejam S um semigrupo e ρ uma relação de equivalência sobre S. Dizemos
que ρ é uma relação de congruência (ou simplesmente, uma congruência)
sobre S se, para quaisquer x, y ∈ S tais xρy e para qualquer z ∈ S, se tem
xzρyz e zxρzy .
Sejam S um semigrupo e ρ uma congruência sobre S. No conjunto
cociente S/ρ definimos uma operação binária do seguinte modo:
[x]ρ · [y ]ρ = [x · y ]ρ , para quaisquer x, y ∈ S.
Com esta operação, S/ρ é um semigrupo que designamos por semigrupo
cociente (de S por ρ). Além disso, se S é um monóide então o cociente
S/ρ é também um monóide de identidade [1]ρ .
Seja S um semigrupo. Definimos o monóide S 1 do seguinte modo:
Se S é um monóide então S 1 = S;
Se S não é um monóide então S 1 = S ∪ {1}, em que 1 /∈ S e sua
multiplicação resulta de estender a multiplicação de S definindo
1 · x = x · 1 = x, para qualquer x ∈ S 1 .
Departamento de Matemática (FCT/UNL)
1
5
1
2
"
!
27 / 134
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
28 / 134
Exemplos.
Sejam S um semigrupo e I um ideal de S. Definimos a relação binária ≡I
sobre S do seguinte modo: dados x, y ∈ S,
x ≡I y se e só se x = y ou x, y ∈ I .
Então ≡I é uma relação de congruência sobre S [Exercı́cio.] designada por
congruência de Rees (associada a I ). O conjunto cociente S/ ≡I denota-se
mais usualmente por S/I .
Sejam S e T dois semigrupos e ϕ : S −→ T um homomorfismo.
Definimos a relação binária ∼ϕ sobre S do seguinte modo: dados
x, y ∈ S,
x ∼ϕ y se e só se ϕ(x) = ϕ(y ).
Então ∼ϕ é uma relação de congruência sobre S [Exercı́cio.]
designada por congruência nuclear (associada a ϕ) ou núcleo de ϕ.
Observação.
Sejam S um semigrupo e ρ uma congruência sobre S. Então a função
Sejam S um semigrupo e P um subconjunto de S. Definimos a relação
binária ∼P sobre S do seguinte modo: dados x, y ∈ S,
ρ# : S
x
x ∼P y se e só se (∀s, t ∈ S 1 ) sxt ∈ P ⇔ syt ∈ P.
Então ∼P é uma relação de congruência sobre S [Exercı́cio.] designada por
congruência sintática de P.
A relação ∼P é a maior congruência de S que satura P (i.e. tal que P é
uma união de classes módulo ∼P ). [Exercı́cio.]
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
29 / 134
−→ S/ρ
8→ [x]ρ
é um homomorfismo sobrejectivo [Exercı́cio.] designado por projecção
canónica ou projecção natural.
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
30 / 134
1.2 Linguagens
Teorema.
Sejam S e T dois semigrupos e ϕ : S −→ T um homomorfismo. Seja
π =∼#ϕ a projecção canónica de S sobre S/ ∼ϕ . Então, existe um único
homomorfismo ϕ̄ : S/ ∼ϕ −→ T tal que ϕ = ϕ̄ ◦ π. Além disso, ϕ̄ é um
isomorfismo de S/ ∼ϕ sobre ϕ(S).
ϕ
S
o conjunto de todas as sequências finitas de elementos de A.
Em A+ definimos a operação binária · do seguinte modo:
(a1 , a2 , . . . , am ) · (b1 , b2 , . . . , bn ) = (a1 , a2 , . . . , am , b1 , b2 , . . . , bn )
T
com a1 , a2 , . . . , am , b1 , b2 , . . . , bn ∈ A e m, n ∈ N+ . Esta operação binária
é, claramente, associativa, pelo que o conjunto A+ forma assim um
semigrupo.
Usualmente, representamos uma sequência (a1 , a2 , . . . , an ) de A+ , n ≥ 1,
por
a1 a2 · · · an .
_
ϕ
π
Seja A um conjunto finito e não vazio.
Seja
A+ = {(a1 , a2 , . . . , an ) | a1 , a2 , . . . , an ∈ A, n ∈ N+ }
S / ~ϕ
Demonstração. [Exercı́cio.]
Em particular, uma sequência (a), com a ∈ A, é identificada com o
elemento a ∈ A, pelo que podemos considerar A como sendo um
subconjunto de A+ .
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
31 / 134
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
32 / 134
alfabeto ao conjunto A;
Na origem das designações anteriores está o resultado seguinte, que nos
garante que um homomorfismo de A+ [A∗ ] num semigrupo [monóide]
qualquer S fica definido conhecendo apenas as imagens das letras:
letras aos elementos de A;
Proposição.
Justificam-se deste modo as seguintes designações. Chamamos:
palavras (sobre o alfabeto A) aos elementos de A+ .
Representemos o monóide (A+ )1 por A∗ .
Observemos que o semigrupo A+ não possui elemento neutro, pelo que
para obter A∗ juntamos a A+ um novo elemento.
Ao elemento neutro 1 de A∗ (por vezes também representado por ε ou λ)
chamamos palavra vazia (visto ser usualmente interpretado como sendo a
sequência vazia).
Tendo em conta que consideramos A ⊂ A+ , então A+ e A∗ são
respectivamente o semigrupo gerado por A e o monóide gerado por A.
Definição.
Designamos A+ [A∗ ] por semigrupo [monóide] livre gerado por (/sobre/de
base) A .
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
33 / 134
Seja S um semigrupo [monóide] finito. Então existem um alfabeto e uma
congruência ρ sobre A+ [A∗ ] tal que S 3 A+ /ρ [S 3 A∗ /ρ].
Demonstração.
Tome-se A = S e considere-se
S
i
A+
π
ϕ
A+/~ϕ
[Exercı́cio.]
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
i
ϕ
A+ [A* ]
é comutativo, i.e. ϕ(a) = θ(a), para qualquer a ∈ A.
Demonstração. [No quadro.]
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
34 / 134
Definições.
Sejam A um alfabeto e u ∈ A∗ .
Chamamos conteúdo de u ao conjunto c(u) das letras do alfabeto A
que ocorrem em u (i.e. que formam a palavra u):
&
c(1) = ∅
c(u) =
c(a1 a2 · · · an ) = {a1 , a2 , . . . , an }, a1 , a2 , . . . , an ∈ A, n ≥ 1
Chamamos comprimento de u ao número de letras (não distintas
necessariamente) que ocorrem em u, i.e. ao comprimento de u como
sequência de elementos de A. O comprimento de u representa-se por
|u|. Temos:
&
|1| = 0
|a1 a2 · · · an | = n, a1 , a2 , . . . , an ∈ A, n ≥ 1
_
ϕ
S
Chamamos linguagem (formal) sobre um alfabeto A a qualquer
subconjunto de A∗ , i.e. a qualquer conjunto de palavras sobre A.
Proposição.
i
θ
A
Definição.
Seguidamente mostramos que todo o semigrupo [monóide] finito (a
finitude não é condição essencial) é, a menos de um isomorfismo, um
cociente de um semigrupo [monóide] livre:
A
Sejam A um alfabeto, S um semigrupo [monóide] e θ : A −→ S uma
função. Então, existe um e um só homomorfismo de semigrupos [de
monóides] ϕ : A+ −→ S [ϕ : A∗ −→ S] tal que, sendo i : A −→ A+
[i : A −→ A∗ ] a função definida por i(a) = a, para qualquer a ∈ A, o
diagrama
35 / 134
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
36 / 134
Dado a ∈ A, representamos por |u|a o número de ocorrências da letra
a na palavra u. Recursivamente, podemos definir

 |1|a = 0&
|v |a
se b /= a
, v ∈ A∗ , b ∈ A .
 |vb|a =
|v |a + 1 se b = a
Definições.
A um alfabeto e u, v ∈ A∗ . Dizemos que:
v é um factora de u se existem x, y ∈ A∗ tais que u = xvy ;
v é um sufixo (ou factor direito) de u se existe x ∈ A∗ tal que u = xv ;
v é um prefixo (ou factor esquerdo) de u se existe y ∈ A∗ tal que
u = vy ;
v é uma subpalavraa de u se existem a1 , a2 , . . . , an ∈ A e
u0 , u1 , . . . , un ∈ A∗ tais que v = a1 a2 · · · an e u = u0 a1 u1 a2 u2 · · · an un ;
Observações.
Sejam A um alfabeto e u, v ∈ A∗ . Então
1
c(uv ) = c(u) ∪ c(v );
2
|u|a = 0 se se só se a /∈ c(u), para qualquer a ∈ A;
3
|uv |a = |u|a + |v |a , para qualquer a ∈ A;
+
+
|u| = a∈c(u) |u|a = a∈A |u|a .
4
Departamento de Matemática (FCT/UNL)
a palavra u é o reverso da palavra u se tem as mesmas letras de u
mas por ordem inversa, i.e. temos
&
1=1
a1 a2 · · · an−1 an = an an−1 · · · a2 a1 , com a1 , a2 , . . . , an ∈ A, n ≥ 1 .
Observemos que uv = v u e u = u.
a
Usamos nestas duas designações a terminologia da Escola Francesa. Outros autores
usam as designações “subword” e “scattered subword” (“palavra dispersa“) para
“factor” e “subpalavra”, respectivamente.
TAA 2010-2011
37 / 134
Definições (operações sobre linguagens).
Sejam A um alfabeto e L e K duas linguagens de
Observação.
diferença: (L, K ) 8→ L \ K = {u ∈ A∗ | u ∈ L e u ∈
/ K }.
Usualmente, dada uma palavra u ∈ A∗ identificamos {u} com u. Por
exemplo, escrevemos Lu, u −1 L e u ∗ em vez de L{u}, {u}−1 L e {u}∗ ,
respectivamente.
complementação (em A∗ ): L 8→ A∗ \ L = {u ∈ A∗ | u ∈
/ L}.
produto (em P(A∗ )): (L, K ) 8→ L · K = {uv | u ∈ L e v ∈ K }.
fecho positivo: L 8→ L+ , em que L+ = ∅, se L = ∅, e L+ é o
subsemigrupo de A∗ gerado por L, i.e.
,
L+ = {u1 u2 · · · un | u1 , u2 , · · · , un ∈ L, n ≥ 1} = n∈N+ Ln , caso
contrário.
Exemplos.
Sejam A = {a, b, c}, L = {a, a3 , bac} e K = {1, a, a2 , ca}. Então:
a+ = {an | n ≥ 1} = {a, a2 , a3 , . . .};
A∗
fecho ou estrela: L 8→
em que
é o submonóide de
gerado
por L, i.e.
,
L∗ = {u1 u2 · · · un | u1 , u2 , · · · , un ∈ L, n ≥ 0} = n∈N0 Ln = {1} ∪ L+ .
Observemos que L+ e L∗ não são, em geral, livres sobre L.
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
38 / 134
cociente direito de L por K :
(L, K ) 8→ LK −1 = {u ∈ A∗ | (∃v ∈ K ) uv ∈ L}.
intersecção: (L, K ) 8→ L ∩ K = {u ∈ A∗ | u ∈ L e u ∈ K }.
L∗
TAA 2010-2011
cociente esquerdo de K por L:
(L, K ) 8→ L−1 K = {v ∈ A∗ | (∃u ∈ L) uv ∈ K }.
A∗ .
união: (L, K ) 8→ L ∪ K = {u ∈ A∗ | u ∈ L ou u ∈ K }
(também denotada por L + K ).
L∗ ,
Departamento de Matemática (FCT/UNL)
39 / 134
a∗ = {an | n ≥ 0} = {1, a, a2 , a3 , . . .};
(a3 )∗ = {(a3 )n | n ≥ 0} = {1, a3 , a6 , a9 , . . .};
{a2 , a3 }∗ = a∗ \ a [Exercı́cio.];
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
40 / 134
L−1 K = {1, a};
Exemplos.
K −1 L
Seja A = {a, b, c}. Notemos que A∗ = ({a} ∪ {b} ∪ {c})∗ = (a + b + c)∗ .
=
{a, a3 , bac, 1, a2 };
LK −1 = {a, a3 , bac, 1, a2 } (= K −1 L);
KL−1
= {1, a, c} (/=
Conjunto das palavras de A∗ que começam pela letra a:
L−1 K );
(ba2 )−1 {a2 , a2 ba, b 2 a2 b, ba5 b 2 , ba5 b 2 a2 , ba2 }
a+ (a3 )−1 = a∗ ;
a+ (a3 b)−1
aA∗ = a(a + b + c)∗ .
= {a3 b 2 , a3 b 2 a2 , 1};
Conjunto das palavras que começam e acabam pela letra a:
= ∅.
aA∗ a ∪ {a} = a(a + b + c)∗ a + a .
Um dos objectivos principais da Teoria das Linguagens formais é a
descrição finitária (i.e. por meio de uma expressão envolvendo um número
finito de sı́mbolos) de uma linguagem. Naturalmente, uma linguagem finita
pode ser descrita fazendo uma lista (finita) de todos os seus elementos. E
no caso de uma linguagem infinita? Por exemplo, certas linguagens podem
ser descritas por meio de uma expressão finitária envolvendo apenas letras
(i.e. linguagens formadas por uma palavra de uma só letra) e as operações
de união, produto e estrela (ditas expressões “racionais” ou “regulares”).
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
41 / 134
Conjunto das palavras w ∈ A∗ tais que |w |b = |w |c = 1 (b e c ocorrem uma
única vez em w ):
(A∗ bA∗ ∩ A∗ cA∗ ) \ (A∗ bA∗ bA∗ ∪ A∗ cA∗ cA∗ ) = a∗ ba∗ ca∗ + a∗ ca∗ ba∗ .
Conjunto das palavras onde não ocorre a letra a três vezes consecutivas:
A∗ \ A∗ a3 A∗ = (1 + a + a2 )((b + c)+ (1 + a + a2 ))∗ .
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
42 / 134
Proposição.
Definição.
Seja A um alfabeto. Definimos o conjunto Rat(A∗ ) como sendo o menor
conjunto R (para a relação de inclusão) de linguagens de A∗ (i.e.
R ⊆ P(A∗ )) que verifica as seguintes condições:
1
∅, {a} ∈ R, para qualquer a ∈ A;
2
R é fechado para as operações de união, produto e estrela, i.e., para
quaisquer L, K ∈ R,
L ∪ K , LK , L∗ ∈ R .
Uma vez que P(A∗ ) satisfaz as condições (1) e (2) da definição anterior, a
existência de Rat(A∗ ) está garantida, tendo-se
#
Rat(A∗ ) = {R ⊆ P(A∗ ) | R satisfaz (1) e (2)}.
No entanto, é mais útil a seguinte descrição recursiva:
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
43 / 134
,
Seja A um alfabeto. Então Rat(A∗ ) = n∈N0 Rn , em que Rn , n ∈ N0 , são
os conjuntos de linguagens de A∗ definidos recursivamente por:

 R0 = {∅} ∪ {{a} | a ∈ A}
Rn+1 = Rn ∪ {L ∪ K | L, K ∈ Rn } ∪ {LK | L, K ∈ Rn } ∪ {L∗ | L ∈ Rn },

n ∈ N0 .
Demonstração. [No quadro.]
Definição.
Seja A um alfabeto. Aos elementos de Rat(A∗ ) chamamos linguagens
racionais de A∗ (ou sobre A).
Assim, uma linguagem racional é uma linguagem que pode ser expressa a
partir do conjunto vazio e das letras do alfabeto usando um número finito
de vezes as operações de união, produto e estrela. Uma expressão deste
tipo diz-se uma expressão racional.
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
44 / 134
Proposição.
Seja A um alfabeto.
1.3 Gramáticas
1
A união de um número finito de linguagens racionais é uma
linguagem racional.
2
O produto de um número finito de linguagens racionais é uma
linguagem racional.
3
Para qualquer u ∈ A∗ , {u} ∈ Rat(A∗ ).
4
Qualquer linguagem finita é racional.
5
Se L ∈ Rat(A∗ ) então L+ ∈ Rat(A∗ ).
6
A, A+ , A∗ ∈ Rat(A∗ ).
Definição.
Uma gramática (formal) é um quádruplo ordenado G = (V , A, P, S), em
que:
V é um alfabeto, designado por alfabeto não terminal;
A é um alfabeto, disjunto de V , designado por alfabeto terminal;
P é um subconjunto finito de (V ∪ A)∗ V (V ∪ A)∗ × (V ∪ A)∗ ;
S é um elemento fixo de V , designado por sı́mbolo inicial, variável
inicial ou axioma.
Demonstração. [No quadro.]
Proposição.
Sejam A um alfabeto e L ∈ Rat(A∗ ). Então L = {u | u ∈ L} ∈ Rat(A∗ ).
Demonstração. [Exercı́cio.]
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
45 / 134
Observemos que um elemento de P ⊂ (V ∪ A)∗ V (V ∪ A)∗ × (V ∪ A)∗ é
da forma (α, β) em que:
α é uma palavra sobre o alfabeto V ∪ A onde ocorre pelo menos um
sı́mbolo não terminal (variável);
Aos elementos de V chamamos sı́mbolos não terminais ou variáveis.
Aos elementos de A chamamos sı́mbolos terminais.
Aos elementos de P chamamos produções ou regras de derivação (ou,
simplesmente, regras).
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
46 / 134
Exemplo.
G = ({S, T }, {a, b, c}, P, S), com
P
=
=
{(S, aSb), (S, 1), (aS, caTbc), (T , caT ), (T , bc)}
{S → aSb | 1, aS → caTbc, T → caT | bc}
β é uma palavra (qualquer) sobre o alfabeto V ∪ A.
é uma gramática.
Habitualmente, um elemento (α, β) ∈ P é representado por α → β ou, em
caso de ambiguidade, por α →
G β.
Abreviamos n regras de derivação do tipo α → β1 , α → β2 , . . . , α → βn
por α → β1 | β2 | · · · | βn ou por α → β1 + β2 + · · · + βn .
Em geral, usamos:
letras romanas maiúsculas para representar sı́mbolos não terminais –
S, T , U, X , Z , W , B, . . .;
letras romanas minúsculas para representar sı́mbolos terminais –
a, b, c, d, . . ..
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
Sejam α, β ∈ (V ∪ A)∗ . Dizemos que β deriva directamente de α se
existirem µ, ν ∈ (V ∪ A)∗ e uma regra de derivação δ → θ tais que
α = µδν
e
β = µθν.
Neste caso, ao par (α, β) chamamos derivação directa em G e
representamo-lo por α ⇒ β ou, em caso de ambiguidade, por α ⇒ β.
G
Assim, as derivações directas em G são da forma
µδν ⇒ µθν
em que δ → θ (é uma regra de derivação) e µ, ν ∈ (V ∪ A)∗ .
47 / 134
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
48 / 134
Seja n ∈ N+ . Uma derivação de comprimento (ou ordem ) n em G é uma
sequência (α0 , α1 , . . . , αn ) de n + 1 palavras de (V ∪ A)∗ tais que
αi ⇒ αi+1 (é uma derivação directa), para i ∈ {0, 1, . . . , n − 1}, e
representamo-la por α0 ⇒ α1 ⇒ · · · ⇒ αn−1 ⇒ αn .
Sejam α, β ∈ (V ∪ A)∗ . Dizemos que β deriva de α se α = β ou existir
uma derivação de comprimento n (n ∈ N+ ) da forma
α = α0 ⇒ α1 ⇒ · · · ⇒ αn−1 ⇒ αn = β.
Neste caso, dizemos que o par (α, β) é uma derivação em G e
∗
∗
representamo-lo por α ⇒ β ou, em caso de ambiguidade, por α ⇒ β.
Se (α, β) é uma derivação trivial, i.e. se α = β, dizemos que tem
0
comprimento zero e representamo-la por α ⇒ β ou, em caso de
0
ambiguidade, por α ⇒ β. Caso contrário (i.e. se existe uma derivação de
G
comprimento n ∈ N+ de α para β), dizemos também que o par (α, β) tem
n
+
comprimento n e representamo-lo por α ⇒ β ou α ⇒ β ou, em caso de
n
+
ambiguidade, por α ⇒ β ou α ⇒ β.
G
Uma regra de derivação é uma derivação (em particular, é uma
derivação directa).
Uma derivação directa é uma derivação de comprimento um.
∗
A relação binária ⇒ sobre (V ∪ A)∗ é o fecho reflexivo e transitivo da
∗
relação binária ⇒ sobre (V ∪ A)∗ , i.e. ⇒ é a menor (para a inclusão)
relação reflexiva e transitiva sobre (V ∪ A)∗ que contém a relação ⇒.
[Exercı́cio.]
Exemplos.
G
Departamento de Matemática (FCT/UNL)
Observações.
A motivação original para as gramáticas “independentes de contexto” foi a
descrição das linguagens naturais.
Consideremos a gramática G = (V , A, P, 0frase1) em que
V = {0frase1, 0sujeito1, 0verbo1, 0complemento directo1, 0artigo1,
0substantivo1, 0adjectivo1} ,
A = {o, lindo, feio, gato, rato, abelha, comeu}
G
TAA 2010-2011
49 / 134
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
50 / 134
e
P = {0frase1 → 0sujeito10verbo10complemento directo1,
0sujeito1 → 0artigo10substantivo10adjectivo1,
0complemento directo1 → 0artigo10substantivo1 | 0sujeito1,
0artigo1 → o,
0substantivo1 → gato | rato | abelha,
0adjectivo1 → lindo | feio,
0verbo1 → comeu} .
Observemos que as letras do alfabeto A são palavras da lı́ngua portuguesa.
Vamos calcular algumas derivações:
0frase1 → 0sujeito10verbo10complemento directo1
⇒ 0artigo10substantivo10adjectivo10verbo10complemento directo1
⇒ 0artigo10substantivo10adjectivo10verbo10artigo10substantivo1
⇒ o0substantivo10adjectivo10verbo10artigo10substantivo1
⇒ o gato0adjectivo10verbo10artigo10substantivo1
⇒ o gato feio0verbo10artigo10substantivo1
⇒ o gato feio comeu0artigo10substantivo1
⇒ o gato feio comeu o0substantivo1
⇒ o gato feio comeu o rato ,
∗
pelo que obtemos 0frase1 ⇒ o gato feio comeu o rato ;
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
0frase1
∗
⇒ 0artigo10substantivo10adjectivo10verbo10complemento directo1
⇒ 0artigo10substantivo10adjectivo10verbo10sujeito1
⇒ o0substantivo10adjectivo10verbo10sujeito1
∗
⇒ o gato lindo comeu0sujeito1
⇒ o gato lindo comeu0artigo10substantivo10adjectivo1
⇒ o gato lindo comeu o0substantivo10adjectivo1
∗
⇒ o gato lindo comeu o rato feio ,
∗
pelo que obtemos 0frase1 ⇒ o gato lindo comeu o rato feio .
∗
Temos ainda, por exemplo, 0frase1 ⇒ o abelha lindo comeu o gato . [Exercı́cio.]
Assim, embora as gramáticas “independentes de contexto” desempenhem
um papel importante em Linguı́stica, não são completamente adequadas
para descrever linguagens naturais: é preciso informação semântica para
que não se obtenham frases sem sentido.
51 / 134
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
52 / 134
Definição.
Linguagens de Programação. Por exemplo, o Pascal:
O alfabeto não terminal tem as variáveis
0programa1, 0cabeçalho1, 0bloco1, 0identificador1, 0letra ou número1, etc.
O alfabeto terminal tem as letras
A, B, C , . . . , Z , a, b, c, . . . , z, 0, 1, . . . , 9, :=, begin, end, if, for, etc.
As regras de derivação são do tipo:
0programa1 → 0cabeçalho10bloco1
0cabeçalho1 → program0identificador1 · · ·
0identificador1 → 0letra10letra ou número1
0letra ou número1 → 0letra1 | 0número1
etc.
O sı́mbolo inicial é 0programa1.
Consideremos a gramática G = ({S, T }, {a, b}, P, S), em que P é
constituı́do pelas seguintes regras de derivação: S → aTSb | ab | 1,
T → bSb | a, TS → bSb, aTSTb → aTb | aa, SbSb → SSb.
∗
∗
Então, temos por exemplo, S ⇒ ab, S ⇒ 1, TS ⇒ bSb ⇒ baTSbb, donde
∗
TS ⇒ baTSbb.
∗
Também, por exemplo, aabSaaaT ⇒ aabaabaaababb. [Exercı́cio.].
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
53 / 134
Seja G = (V , A, P, S) uma gramática. À linguagem sobre o alfabeto A
cujas palavras derivam da variável inicial,
∗
L(G ) = {u ∈ A∗ | S ⇒ u} ,
chamamos linguagem gerada por G .
Exemplos.
Consideremos a gramática G = ({S, T }, {a, b}, P, S) do (último) exemplo
anterior. Então 1, ab ∈ L(G ), mas aTSb ∈
/ L(G ). Também
(ab)2 ba2 b 2 ∈ L(G ). De facto,
S → aTSb ⇒ abSbSb ⇒ (ab)2 bSb ⇒ (ab)2 baTSb 2
⇒ (ab)2 baTb 2 ⇒ (ab)2 ba2 b 2 .
Seja G1 = ({S}, {a, b}, {S → aSb | 1}, S). Então
L(G1 ) = {an b n | n ∈ N0 }.
Departamento de Matemática (FCT/UNL)
[Exercı́cio.]
TAA 2010-2011
54 / 134
Definições.
Também para G2 = ({S, T }, {a, b}, {S → aTb | 1, T → aSb | 1}, S)
temos
L(G2 ) = {an b n | n ∈ N0 }. [Exercı́cio.]
Para G = ({S}, {a, b}, {S → aSb | ab}, S), temos
L(G ) = {an b n | n ∈ N+ }.
[Exercı́cio.]
A partir dos exemplos anteriores podemos concluir que duas gramáticas
distintas podem gerar a mesma linguagem.
Definição.
Dizemos que duas gramáticas G1 e G2 são equivalentes se L(G1 ) = L(G2 ).
Observação.
O problema da equivalência de gramáticas é indecidı́vel!
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
55 / 134
Seja G = (V , A, P, S) uma gramática. Dizemos que:
G é do tipo 0 ou não restringida se as suas regras de derivação são de
qualquer tipo, i.e. uma gramática do tipo 0 é simplesmente uma
qualquer gramática, de acordo com a definição considerada. A uma
linguagem gerada por uma gramática do tipo 0 (i.e. a qualquer
linguagem gerada por uma gramática) chamamos recursivamente
enumerável ou do tipo 0;
G é do tipo 1 ou contextual/dependente de contexto se as suas regras
de derivação são da forma
αX β → αγβ
(substituição de X por γ no contexto α&'β), com X ∈ V ,
α, β ∈ (V ∪ A)∗ e γ ∈ (V ∪ A)+ . É ainda permitida em P a regra
S →1,
desde S não ocorra na palavra da direita de nenhuma outra regra de
derivação de G . A uma linguagem gerada por uma gramática do tipo
1 chamamos dependente de contexto/contextual ou do tipo 1;
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
56 / 134
G é do tipo 2 ou algébrica/independente de contexto/livre de
contexto se as suas regras de derivação são da forma
X →α,
∗
com X ∈ V e α ∈ (V ∪ A) . A uma linguagem gerada por uma
gramática do tipo 2 chamamos independente de contexto/livre de
contexto/algébrica ou do tipo 2;
Observações.
Uma gramática do tipo 3 não pode ter simultâneamente regras do
tipo X → uY e B → Cv , com X , Y , B, C ∈ V e u, v ∈ A∗ .
Uma gramática G = (V , A, P, S) diz-se linear se as suas regras de
derivação são da forma
X → uYv ou X → u ,
com X , Y ∈ V e u, v ∈ A∗ .
G é linear à direita se as suas regras de derivação são da forma
X → uY ou X → u ,
com X , Y ∈ V e u ∈ A∗ ;
G é linear à esquerda se as suas regras de derivação são da forma
X → Yu ou X → u ,
com X , Y ∈ V e u ∈ A∗ ;
G é do tipo 3 ou regular se G for linear à direita ou linear à esquerda.
A uma linguagem gerada por uma gramática do tipo 3 chamamos
regular ou do tipo 3.
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
57 / 134
Há autores que definem uma gramática linear à direita admitindo
apenas regras de derivação da forma
X → aY ou X → a ou X → 1 ,
com X , Y ∈ V e a ∈ A. De modo análogo para gramáticas lineares à
esquerda.
Estas definições são equivalentes (no sentido de gerarem as mesmas
linguagens). De facto, podemos até eliminar as regras da forma
X → a, com X ∈ V e a ∈ A, da definição anterior.
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
58 / 134
Assim, dizemos que uma gramática G = (V , A, P, S) é super-regular (à
direita) se as suas regras de derivação são da forma
X → aY ou X → 1 ,
com X , Y ∈ V e a ∈ A.
Temos então:
Dados um alfabeto A e i ∈ {0, 1, 2, 3}, denotamos por Li (A∗ ) o conjunto
das linguagens do tipo i sobre o alfabeto A.
Atendendo às definições, temos de imediato que
Proposição.
Toda a gramática linear à direita é equivalente a uma gramática
super-regular (à direita).
(visto que toda a gramática é do tipo 0 e que toda a gramática do tipo 3
é também, claramente, do tipo 2).
Mais adiante mostraremos que:
L3 (A∗ ) ⊆ L2 (A∗ ) ⊆ L0 (A∗ )
e
L1 (A∗ ) ⊆ L0 (A∗ )
Teorema (Hierarquia de Chomsky).
Demonstração. [Exercı́cio.]
Para qualquer alfabeto A, temos
(Tenha em conta que é necessário “substituir/eliminar” todas as regras da
forma X → Y , com X , Y ∈ V – estas são designadas por triviais –, bem
como as da forma X → a1 a2 · · · an Y , com X , Y ∈ V , a1 , a2 , . . . , an ∈ A e
n ≥ 2, e ainda as da forma X → a1 a2 · · · an , com X ∈ V ,
a1 , a2 , . . . , an ∈ A e n ≥ 1.)
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
59 / 134
L3 (A∗ ) ⊆ L2 (A∗ ) ⊆ L1 (A∗ ) ⊆ L0 (A∗ ) .
Além disso, estas inclusões são em geral estritas, i.e., existe um alfabeto A
tal que
L3 (A∗ ) ! L2 (A∗ ) ! L1 (A∗ ) ! L0 (A∗ ) .
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
60 / 134
Seja G = (V , A, P, S) uma gramática. Para cada α ∈ (V ∪ A)∗ , definimos
Exemplos.
Seja G = ({S}, {a, b}, P, S), com P = {S → aSb | 1}. Como vimos atrás
L(G ) = {an b n | n ∈ N0 }, pelo que esta linguagem é algébrica (visto G ser
algébrica).
Sejam A um alfabeto (qualquer), a ∈ A e G = ({S}, A, P, S), com
P = {S → aS | 1}. Como G é uma gramática linear à direita, então L(G ) é
uma linguagem regular. Temos L(G ) = a∗ [Exercı́cio.], pelo que a∗ é uma
linguagem regular.
Sejam A um alfabeto (qualquer), a ∈ A e G = ({S, T }, A, P, S), com
P = {S → aSaT | a | 1, T → Ta | 1}. Temos L(G ) = a∗ [Exercı́cio.], pelo
que G , apesar de não ser uma gramática regular, gera uma linguagem
regular.
Seja G = ({S}, {a, b}, {S → aSbS | 1}, S). Então G é uma gramática
∗
algébrica e a linguagem L(G ) é usualmente denotada por D " 1 (linguagem de
Dyck restrita).
Interpretando a e b como sendo os parêntesis ( e ), respectivamente, então
∗
D " 1 é constituı́do pelas palavras de parêntesis “bem emparelhados”.
[Exercı́cio.]
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
61 / 134
∗
LG (α) = {w ∈ A∗ | α ⇒ w },
a que chamamos linguagem gerada por G a partir de α.
Observemos que L(G ) = LG (S).
Proposição.
Sejam G = (V , A, P, S) uma gramática algébrica, α1 , α2 , β ∈ (V ∪ A)∗ e
n
n ∈ N0 . Então α1 α2 ⇒ β se e só se existem β1 , β2 ∈ (V ∪ A)∗ e
n
n
n1 , n2 ∈ N0 tais que α1 ⇒1 β1 , α2 ⇒2 β2 , β = β1 β2 e n = n1 + n2 .
Além disso, nesta situação, as regras de derivação usadas na derivação
n
α1 α2 ⇒ β coincidem com as regras de derivação usadas nas derivações
n
n
α1 ⇒1 β1 e α2 ⇒2 β2 .
Demonstração. [No quadro.]
Corolário.
Sejam G = (V , A, P, S) uma gramática algébrica e α1 , α2 ∈ (V ∪ A)∗ .
Então LG (α1 α2 ) = LG (α1 )LG (α2 ).
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
Proposição.
Demonstração. [Exercı́cio.]
Seja G = (V , A, P, S) uma gramática algébrica tal que L(G ) /= ∅. Então
existe uma gramática algébrica equivalente a G em que todas as variáveis
são produtivas (i.e. sem variáveis improdutivas).
Proposição.
Sejam G = (V , A, P, S) uma gramática algébrica e X ∈ V . Então
%
LG (X ) =
LG (α),
Demonstração. [Esboço.]
Consideramos a gramática G1 = (V1 , A, P1 , S), em que
V1 = {X ∈ V | X é produtiva (em G )} e P1 = P ∩ V1 × (V1 ∪ A)∗ .
Observe-se que S ∈ V1 , visto que L(G ) /= ∅, e que P1 ⊆ V1 × (V1 ∪ A)∗ , donde
G1 é uma gramática algébrica.
[No quadro.]
Mostra-se que, para X ∈ V1 , LG (X ) ⊆ LG1 (X ) (donde LG (X ) = LG1 (X ), visto
que P1 ⊆ P). A partir desta inclusão resulta de imediato que G1 não tem
variáveis improdutivas e que é equivalente a G .
α∈PX
em que PX = {α ∈ (V ∪ A)∗ | X → α ∈ P}.
Demonstração. [No quadro.]
Definição.
Definição.
Seja G = (V , A, P, S) uma gramática. Dizemos que uma variável X ∈ V é
∗
produtiva se existir w ∈ A∗ tal que X ⇒ w . Caso contrário dizemos que X
é improdutiva.
Seja G = (V , A, P, S) uma gramática. Dizemos que um sı́mbolo
∗
x ∈ V ∪ A é acessı́vel se existirem α, β ∈ (V ∪ A)∗ tais que S ⇒ αxβ.
Caso contrário dizemos que x é inacessı́vel.
Departamento de Matemática (FCT/UNL)
62 / 134
TAA 2010-2011
63 / 134
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
64 / 134
Proposição.
Observação.
∗
Observe-se que se S ⇒ γ, com γ ∈ (V ∪ A)∗ , então todos os sı́mbolos que
ocorrem em γ são acessı́veis.
Proposição.
Toda a gramática algébrica é equivalente a uma gramática algébrica só
com sı́mbolos acessı́veis (i.e. sem sı́mbolos inacessı́veis).
Demonstração. [Esboço.]
Seja G = (V , A, P, S) uma gramática algébrica. Consideramos a gramática
G1 = (V1 , A1 , P1 , S), em que V1 = {X ∈ V | X é acessı́vel (em G)},
A1 = {a ∈ A | a é acessı́vel (em G)} e P1 = P ∩ V1 × (V1 ∪ A1 )∗ .
∗
Observe-se que S ∈ V1 , visto que S ⇒
1S1.
G
[No quadro.]
∗
∗
Mostra-se que, para α ∈ (V ∪ A)∗ , se S ⇒
α, então α ∈ (V1 ∪ A1 )∗ e S ⇒
α.
G
G1
Deste modo, prova-se que G1 não possui sı́mbolos inacessı́veis e, em particular,
que L(G ) ⊆ L(G1 ), donde L(G ) = L(G1 ), visto que P1 ⊆ P.
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
65 / 134
Exemplo.
Seja G = ({X , Y , Z , W , T }, {a, b, c}, P, X ), com
P = {X → aXb | YaZ | YaX | b, Y → YaZa | Xa | 1, Z → WbcZ ,
W → Zb | WcW | c, T → aX | aTb | 1}.
Seja G1 = (V1 , A, P1 , X ) a gramática sem variáveis improdutivas obtida a
partir de G de acordo com a construção considerada. Então
V1 = {X , Y , W , T } e
P1 = {X → aXb | YaX | b, Y → Xa | 1, W → WcW | c,
T → aX | aTb | 1}.
Seja G2 = (V2 , A2 , P2 , X ) a gramática sem sı́mbolos inacessı́veis obtida a
partir de G1 de acordo com a construção considerada. Então V2 = {X , Y },
A2 = {a, b} e P2 = {X → aXb | YaX | b, Y → Xa | 1}.
Construı́mos a partir de G a gramática G1 = (V1 , A, P1 , S) como na prova da
penúltima proposição. De seguida, construı́mos a partir de G1 a gramática
G2 = (V2 , A2 , P2 , S) como na prova da última proposição. Claro que G2 é
equivalente a G e G2 não tem sı́mbolos inacessı́veis (por construção).
[No quadro.]
Além disso, prova-se que G2 também não tem variáveis improdutivas.
Observação.
Se a partir de uma gramática algébrica G construirmos (pelo processo
descrito atrás) uma gramática algébrica G1 sem sı́mbolos inacessı́veis e a
partir de G1 construirmos (pelo processo descrito atrás) uma gramática
algébrica G2 sem variáveis improdutivas, não podemos garantir que G2 não
tenha sı́mbolos inacessı́veis.
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
66 / 134
Seja G1% = (V1% , A%1 , P1% , X ) a gramática sem sı́mbolos inacessı́veis
obtida a partir de G de acordo com a construção considerada. Então
V1% = {X , Y , Z , W }, A%1 = {a, b, c} e
P1% = {X → aXb | YaZ | YaX | b, Y → YaZa | Xa | 1, Z → WbcZ ,
W → Zb | WcW | c}.
Seja G2% = (V2% , A%1 , P2% , X ) a gramática sem variáveis improdutivas
obtida a partir de G1% de acordo com a construção considerada. Então
V2% = {X , Y , W } e
P2% = {X → aXb | YaX | b, Y → Xa | 1, W → WcW | c}.
A gramática G2% é equivalente a G mas, no entanto, possui sı́mbolos
inacessı́veis: W e c.
Seja L /= {1} uma linguagem algébrica. Então L \ {1} é gerada por uma
gramática algébrica sem variáveis improdutivas, sem sı́mbolos inacessı́veis
e sem regras da forma X → 1.
Vamos agora trocar a ordem das construções.
TAA 2010-2011
Demonstração. [Esboço.]
Proposição.
Assim, G2 é uma gramática (algébrica) equivalente a G sem variáveis
improdutivas e sem sı́mbolos inacessı́veis.
Departamento de Matemática (FCT/UNL)
Seja G = (V , A, P, S) uma gramática algébrica tal que L(G ) /= ∅. Então
existe uma gramática algébrica equivalente a G sem variáveis improdutivas
nem sı́mbolos inacessı́veis.
67 / 134
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
68 / 134
Demonstração. [Esboço.]
Seja G = (V , A, P, S) uma gramática algébrica tal que L(G ) = L.
Seja P " o conjunto de regras de derivação da forma X → x1 x2 · · · xn obtidas a
partir de alguma regra de derivação de P da forma X → y1 y2 · · · yn (X ∈ V e
∗
y1 , y2 , . . . , yn ∈ V ∪ A, n ≥ 1) do seguinte modo: para i ∈ {1, . . . , n}, se yi ⇒ 1
então xi ∈ {yi , 1}, caso contrário, xi = yi (apenas).
Seja P1 = P " \ {X → 1 | X ∈ V }. Observe-se que P \ {X → 1 | X ∈ V } ⊆ P1 .
Então a gramática G1 = (V , A, P1 , S) é algébrica e não tem regras de derivação
da forma X → 1.
Além disso, L(G1 ) = L(G ) \ {1} (= L \ {1} =
/ ∅). [Exercı́cio.]
Seja G2 = (V2 , A2 , P2 , S) a gramática obtida a partir de G1 usando a construção
da demonstração da proposição anterior (“eliminando” em primeiro lugar as
variáveis improdutivas e de seguida os sı́mbolos inacessı́veis). Então, G2 é
algébrica e não tem variáveis improdutivas nem sı́mbolos inacessı́veis. Além disso,
L(G2 ) = L(G1 ) = L \ {1} e, como P2 ⊆ P1 , então G2 não tem regras de derivação
da forma X → 1.
Corolário.
Uma linguagem L é algébrica se e só se a linguagem L \ {1} for algébrica.
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
69 / 134
Demonstração. [Esboço.]
Como 1 /∈ L /= ∅, então, pela proposição anterior, L = L \ {1} é gerada por uma
gramática algébrica G = (V , A, P, S) sem variáveis improdutivas, sem sı́mbolos
inacessı́veis e sem regras da forma X → 1.
Seja P1 o conjunto das regras de derivação da forma X → α, com
α ∈ (V ∪ A)∗ \ V , tais que existe Y ∈ V em que Y → α é uma regra de
∗
derivação de G (i.e. pertence a P) e X ⇒
Y.
G
∗
Observe-se que, uma vez que X ⇒
X , então P1 contém todas as regras não
G
triviais de P.
Além disso, a gramática G1 = (V , A, P1 , S) gera L e não possui variáveis
improdutivas, regras da forma X → 1 e nem regras triviais (mas pode ter
sı́mbolos inacessı́veis). [Exercı́cio]
Aplicando a contrução da prova da proposição do slide 56 (“eliminação” de
sı́mbolos inacessı́veis) à gramática G1 obtemos uma gramática G2 nas condições
do enunciado.
Definição.
Uma gramática G = (V , A, P, S) diz-se na forma normal de Chomsky se
as suas regras de derivação são da forma X → YZ ou X → a, com
X , Y , Z ∈ V e a ∈ A.
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
71 / 134
Demonstração. [Esboço.]
Se 1 /∈ L o resultado é trivial. Suponhamos então que 1 ∈ L.
Admitamos que L é algébrica. Se L /= {1}, pela proposição anterior L \ {1} é uma
linguagem algébrica. Se L = {1} então L \ {1} = ∅ e é gerada, por exemplo, pela
gramática (algébrica) ({S}, {a}, {S → S}, S), pelo que L \ {1} é uma linguagem
algébrica.
Reciprocamente, suponhamos que L \ {1} é uma linguagem algébrica e
consideremos uma gramática algébrica G = (V , A, P, S) tal que L(G ) = L \ {1}.
Seja então T um (novo) sı́mbolo (não terminal) tal que T /∈ V ∪ A e
consideremos a gramática (algébrica) G " = (V ∪ {T }, A, P ∪ {T → S | 1}, T ).
Então L(G " ) = L, pelo que L é algébrica. [Exercı́cio.]
Proposição.
Se L é uma linguagem algébrica tal que 1 /∈ L /= ∅, então L é gerada por
uma gramática algébrica sem variáveis improdutivas, sem sı́mbolos
inacessı́veis, sem regras da forma X → 1, com X ∈ V , e sem regras triviais
(i.e. da forma X → Y , com X , Y ∈ V ).
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
70 / 134
Teorema.
Toda a linguagem algébrica L tal que 1 /∈ L é gerada por uma gramática
na forma normal de Chomsky.
Demonstração. [Esboço.]
Se L = ∅ então é claro que L é gerada pela gramática ({S}, A, {S → SS}, S) que
está na forma normal de Chomsky.
Suponhamos então que L /= ∅. Atendendo à proposição anterior, L é gerada por
uma gramática algébrica (sem variáveis improdutivas nem sı́mbolos inacessı́veis)
sem regras da forma X → 1, X ∈ V , nem regras triviais.
Seja B o subconjunto de A constituı́do por todas as letras a ∈ A que ocorrem
numa componente direita de comprimento maior ou igual a dois de alguma regra
de G (note-se que eventualmente B = ∅).
Seja V1 = {Xa | a ∈ B} um (novo) conjunto de variáveis disjunto de V e
equipotente a B (i.e. com o mesmo número de elementos que B).
Consideremos então a gramática (algébrica) G1 = (V ∪ V1 , A, P1 , S), em que P1
é constituı́do pelas seguintes regras:
X → a, se X → a for um regra de G , com X ∈ V e a ∈ A;
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
72 / 134
X → X1 X2 · · · Xn , n ≥ 2, obtida a partir de uma regra de G da forma
X → x1 x2 · · · xn , com x1 , x2 , . . . , xn ∈ V ∪ A, substituindo os sı́mbolos a ∈ A
que ocorrem na componente direita por Xa , i.e.
&
xi , se xi ∈ V
Xi =
Xa , se xi = a ∈ B;
O conjunto V2 das variáveis de G2 é constituı́do pelas variáveis de G1 e pelas
(eventuais) novas variáveis exigidas na construção das regras de G2 .
Claramente G2 está na forma normal de Chomsky. Além disso, prova-se que G2 é
equivalente a G1 . [Exercı́cio.]
Xa → a, com a ∈ B.
Exemplo.
Prova-se que G1 é uma gramática (algébrica) equivalente a G . [Exercı́cio.]
Note-se que as regras de derivação de G1 são da forma X → X1 X2 · · · Xn , com
X , X1 , X2 , . . . , Xn variáveis e n ≥ 2, ou da forma X → a, com X uma variável e a
um sı́mbolo terminal.
De seguida, consideramos a gramática G2 = (V2 , A, P2 , S), em que P2 é
constituı́do pelas seguintes regras:
X → X1 X2 , se X → X1 X2 for um regra de G1 , com X , X1 , X2 ∈ V ∪ V1 ;
X → X1 Y1 , Y1 → X2 Y2 , . . . , Yn−3 → Xn−2 Yn−2 , Yn−2 → Xn−1 Xn , com
Y1 , Y2 , . . . , Yn−2 novas variáveis, se X → X1 X2 · · · Xn for um regra de G1 ,
com X , X1 , X2 , . . . , Xn ∈ V ∪ V1 e n ≥ 3.
TAA 2010-2011
73 / 134
§2. Linguagens Reconhecı́veis e Linguagens Racionais
2.1 Gramáticas Regulares vs. Linguagens Racionais
Teorema.
Sejam A um alfabeto e L uma linguagem de A∗ gerada por uma gramática
linear à direita [à esquerda]. Então L é uma linguagem racional.
Demonstração. [No quadro.]
Então G2 = ({S, Xb , Xc , Y1 , Y2 , Y3 }, {a, b, c}, P2 , S) está na forma normal de
Chomsky e é equivalente a G .
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
74 / 134
Demonstração. [Esboço.]
Vamos considerar apenas gramáticas lineares à direita.
A gramática G = ({S}, A, {S → S}, S) é linear à direita e L(G ) = ∅.
Dado a ∈ A, a gramática G = ({S}, A, {S → a}, S) é linear à direita e
L(G ) = {a}.
Sejam K e L duas linguagens de A∗ geradas por gramáticas lineares à direita
G1 = (V1 , A, P1 , S1 ) e G2 = (V2 , A, P2 , S2 ), respectivamente. Admitamos,
sem perda de generalidade, que V1 ∩ V2 = ∅.
Proposição.
Seja A um alfabeto.
A linguagem (vazia) ∅ é gerada por uma gramática linear à direita [à
esquerda].
Dado a ∈ A, a linguagem {a} é gerada por uma gramática linear à
direita [à esquerda].
Dadas duas linguagens K e L de A∗ geradas por gramáticas lineares à
direita [à esquerda], as linguagens K ∪ L, KL e L∗ são geradas por
gramáticas lineares à direita [à esquerda].
Departamento de Matemática (FCT/UNL)
P1 = {S → Xc SXb SXc | Xc Xb | a, Xb → b, Xc → c};
P2 = {S → Xc Y1 | Xc Xb | a, Y1 → SY2 , Y2 → Xb Y3 , Y3 → SXc ,
Xb → b, Xc → c}.
X → a, se X → a for um regra de G1 , com X ∈ V ∪ V1 e a ∈ A;
Departamento de Matemática (FCT/UNL)
Seja G = ({S}, {a, b, c}, {S → cSbSc | cb | a}, S).
Claramente, 1 /∈ L(G ) /= ∅.
Vamos construir uma gramática equivalente a G na forma normal de Chomsky,
usando o algoritmo da prova do teorema anterior:
TAA 2010-2011
75 / 134
Seja G = (V1 ∪ V2 ∪ {S}, A, P, S), onde S é uma nova variável (i.e.
S /∈ V1 ∪ V2 ∪ A) e P = {S → S1 | S2 } ∪ P1 ∪ P2 . Então G é uma
gramática linear à direita e L(G ) = K ∪ L. [Exercı́cio.]
Seja G = (V1 ∪ V2 , A, P, S1 ), com
P = {X → uY | (X → uY ) ∈ P1 } ∪ {X → uS2 | (X → u) ∈ P1 } ∪ P2 .
Então G é uma gramática linear à direita e L(G ) = KL. [Exercı́cio.]
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
76 / 134
2.2 Autómatos Finitos
Seja G = (V2 ∪ {S}, A, P, S), onde S /∈ V2 ∪ A é uma nova variável e
P = {S → S2 | 1} ∪ {X → uY | (X → uY ) ∈ P2 } ∪
{X → uS | (X → u) ∈ P2 }. Então G é uma gramática linear à direita
e L(G ) = L∗ . [Exercı́cio.]
Exemplo.
Representação gráfica de um autómato com quatro estados:
Para gramáticas lineares à esquerda é análogo. [Exercı́cio.]
Corolário.
Sejam A um alfabeto e L uma linguagem de A∗ . As seguintes afirmações
são equivalentes:
estados: 1,2,3,4
L é uma linguagem racional;
transições: (1, a, 1), (1, a, 2), (2, b, 1), (2, b, 2), (2, b, 4), (2, c, 3), (3, a, 4),
L é gerada por uma gramática linear à direita;
(3, b, 4) [também representadas por 1 −→ 1, 1 −→ 2, 2 −→ 1, . . ., 3 −→ 4]
L é gerada por uma gramática linear à esquerda.
estados iniciais: 1,2
a
a
b
b
• estados finais: 2,4
Por exemplo, a palavra a2 b 2 ca é reconhecida por este autómato:
a
a
b
b
c
a
1 −→ 1 −→ 2 −→ 2 −→ 2 −→ 3 −→ 4.
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
77 / 134
Definição.
Q é um conjunto a cujos elementos chamamos estados;
A é um alfabeto (i.e. um conjunto finito não vazio);
E é um subconjunto de Q × A × Q, a cujos elementos chamamos
transições (ou setas);
I e F são subconjuntos de Q a cujos elementos chamamos estados
iniciais e estados finais, respectivamente.
Dizemos que A é um autómato finito se o conjunto Q for finito.
Um autómato representa-se graficamente por meio de um diagrama,
chamado diagrama de estado, que consiste num conjunto de vértices e
setas (grafo), em que:
Os vértices representam os estados: 9
q ;
As setas representam as transições: etiquetamos com uma letra a
a
uma seta de um vértice p para um vértice q, p −→ q, se (p.a, q) for
uma transição;
TAA 2010-2011
TAA 2010-2011
78 / 134
Os estados iniciais são usualmente representados com uma seta “a
entrar”: →9
i ;
Os estados finais são usualmente representados com uma seta “a
sair” ou por um duplo cı́rculo: ←9
f ou 9
9
f ;
Um estado simultaneamente inicial e final pode ser representados por
↔9 .
Um autómato é um quı́ntuplo ordenado A = (Q, A, E , I , F ), em que:
Departamento de Matemática (FCT/UNL)
Departamento de Matemática (FCT/UNL)
79 / 134
Definições.
Seja A = (Q, A, E , I , F ) um autómato.
Duas transições (p, a, q) e (p % , b, q % ) dizem-se consecutivas se q = p % ;
Um caminho é uma sequência finita de transições consecutivas
(q0 , a1 , q1 ), (q1 , a2 , q2 ), . . . , (qn−2 , an−1 , qn−1 ), (qn−1 , an , qn ) que
an−1
a1
a2
a3
an
representamos por q0 −→
q1 −→
q2 −→
· · · qn−2 −→ qn−1 −→
qn :
q0 é a origem;
qn é a extremidade;
n é o comprimento;
a palavra a1 a2 · · · an−1 an é a etiqueta.
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
80 / 134
Uma transição é um caminho de comprimento um. Além disso,
convencionamos que um caminho de comprimento zero é da forma
1
q −→ q (etiquetado pela palavra vazia);
Se A for o autómato
então L(A) = a∗ .
Um caminho diz-se bem sucedido se tiver como origem um estado
inicial e como extremidade um estado final;
Uma palavra w ∈ A∗ diz-se reconhecida (ou aceite) pelo autómato A
se w for a etiqueta de algum caminho bem sucedido;
Ao conjunto de todas as palavras de A∗ reconhecidas por A,
Se A for o autómato
então L(A) = a+ .
Se A for o autómato
então L(A) = {a}.
Se A for o autómato
então L(A) = ∅.
∗
L(A) = {w ∈ A | w é reconhecida por A} ,
chamamos linguagem reconhecida por A.
Exemplos.
Definição.
Seja A um alfabeto. Uma linguagem L de A∗ diz-se reconhecı́vel se for
reconhecida por algum autómato finito.
Sendo A o autómato do slide 5, temos
L(A) = (a + b)∗ + (a + b)∗ (ca + cb) = (a + b)∗ (1 + ca + cb).
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
81 / 134
Lema da Estrela (/do Salto/da Repetição/“Pumping Lemma”)
Sejam A um alfabeto e L ⊆ A∗ uma linguagem reconhecı́vel. Então, existe
N ∈ N tal que qualquer palavra w de L de comprimento maior que N se
factoriza na forma w = xyz, em que:
x, z ∈ A∗ e y ∈ A+ ;
|xy | ≤ N;
xy ∗ z ⊆ L (i.e. xy n z ∈ L, para qualquer n ∈ N0 ).
Demonstração. [Esboço.]
Seja A = (Q, A, E , I , F ) um autómato finito tal que L(A) = L e tomemos
N = |Q| (note-se que N ∈ N, visto que A é finito).
Seja w = a1 a2 · · · ak ∈ L (a1 , a2 . . . , ak ∈ A) tal que |w | > N. Então, existe um
caminho bem sucedido etiquetado por w (note-se que N < k):
aN
ak
a1
a2
a3
→ q0 −→
q1 −→
q2 −→
· · · qN−1 −→
qN · · · qk−1 −→
qk →
Como N = |Q|, então os estados q0 , q1 , . . . , qN não são distintos dois a dois
(temos N + 1 ı́ndices), donde existem i, j ∈ {0, . . . , N} tais que i < j e qi = qj .
TAA 2010-2011
TAA 2010-2011
82 / 134
Tomemos x = a1 a2 · · · ai , y = ai+1 · · · aj e z = aj+1 · · · ak . Temos então w = xyz,
y /= 1 (pois i < j) e |xy | = j ≤ N. Além disso, para qualquer n ∈ N0 , xy n z
etiqueta um caminho bem sucedido em A (de origem q0 e extremidade qk ).
O resultado anterior permite mostrar que certas linguagens não são
reconhecı́veis.
Observamos que existem outros “lemas da estrela” para linguagens
reconhecı́veis, como também para linguagens algébricas, e outras.
Exemplo.
(Note-se que este lema é imediato se L for finita.)
Departamento de Matemática (FCT/UNL)
Departamento de Matemática (FCT/UNL)
83 / 134
Sejam A = {a, b} e L = {an b n | n ∈ N0 } ⊂ A∗ . Vimos já que L é uma linguagem
algébrica (cf. slide 52 do §1.).
Vamos usar o Lema da Estrela para mostrar que L não é reconhecı́vel.
Admitamos com vista a uma contradição que L é reconhecı́vel.
Seja N ∈ N nas condições do Lema da Estrela e tomemos w = aN b N . Então
|w | = 2N > N, pelo que w = xyz, para certos x, z ∈ A∗ e y ∈ A+ tais que
|xy | ≤ N e xy ∗ z ⊆ L. Como |xy | ≤ N então x = ar e y = as , para certos r ∈ N0
e s ∈ N+ tais que r + s = |xy | ≤ N. Assim, z = aN−r −s b N , pelo que, em
particular, aN−s b N = xz ∈ L, o que é uma contradição, visto que s ≥ 1.
Portanto, L não é reconhecı́vel.
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
84 / 134
Para cada (p, a) ∈ P, denotemos por p · a (ou simplesmente por pa) o
único elemento q ∈ Q tal que (p, a, q) ∈ E . Assim, está definida uma
função
ϕ: P
−→ Q
Definição.
Um autómato A = (Q, A, E , I , F ) diz-se determinista se verifica as
seguintes condições:
Possui um único estado incial: I = {i};
Para quaisquer estado p ∈ Q e letra a ∈ A, existe no máximo uma
transição da forma (p, a, q), i.e. para quaisquer p, q1 , q2 ∈ Q e a ∈ A,
se (p, a, q1 ), (p, a, q2 ) ∈ E então q1 = q2 :
Um autómato que não é determinista diz-se não determinista.
Proposição.
Seja A = (Q, A, E , I , F ) um autómato determinista. Seja
Seja A = (Q, A, E , I , F ) um autómato determinista. Para quaisquer
u, v ∈ A∗ e p ∈ Q, se pu e (pu)v estiverem definidos então p(uv ) também
está definido, tendo-se p(uv ) = (pu)v .
P = {(p, a) ∈ Q × A | (∃q ∈ Q) (p, a, q) ∈ E }.
Departamento de Matemática (FCT/UNL)
(p, a) 8→ ϕ(p, a) = p · a
Designa-se ϕ por função de transição de A e é usual representá-la
simplesmente por ·.
Claramente, um autómato determinista fica (também) definido pelo
quı́ntuplo (Q, A, ·, i, F ).
A função de transição de um autómato determinista A = (Q, A, E , I , F )
pode ser prolongada a palavras de A∗ do seguinte modo: para quaisquer
p ∈ Q, u ∈ A∗ e a ∈ A,
&
p·1=p
p · (ua) = (p · u) · a, se p · u e (p · u) · a estão definidos.
TAA 2010-2011
85 / 134
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
Demonstração.
Definição.
[Exercı́cio.] Sugestão: por indução no comprimento de v .
Um autómato A = (Q, A, E , I , F ) diz-se completo se, para quaisquer
p ∈ Q e a ∈ A, existe (pelo menos) uma transição da forma (p, a, q).
Exemplo.
Consideremos o seguinte autómato A:
Observação.
Num autómato determinista completo a função de transição tem domı́nio
Q × A.
Então
1 · b = 1, 1 · a = 2,
2 · a não está definido, 2 · b = 3
3 · a = 2 e 3 · b = 1.
Por exemplo, 1 · (bba) = (1 · (bb)) · a = ((1 · b) · b) · a =
= (1 · b) · a = 1 · a = 2.
Observe-se que L(A) = (b ∗ ab)∗ .
Definições.
Seja A = (Q, A, E , I , F ) um autómato. Um estado q ∈ Q diz-se:
acessı́vel se existe um caminho com origem num estado inicial e
a1
a2
an
extremidade q: I = i −→
q1 −→
· · · qn−1 −→
q
Observação.
Sejam A = (Q, A, ·, i, F ) um autómato determinista e u ∈
claramente,
A∗ .
co-acessı́vel se existe um caminho com origem em q e extremidade
a2
a1
an
· · · qn−1 −→
qn ∈ F .
q1 −→
num estado final: q −→
Então,
O autómato A diz-se acessı́vel [co-acessı́vel] se todos os seus estados são
acessı́veis [co-acessı́veis].
∗
L(A) = {u ∈ A | i · u está definido e i · u ∈ F }.
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
86 / 134
87 / 134
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
88 / 134
Exemplo.
Sejam A e A" , respectivamente, os seguintes autómatos:
Definição.
Dois autómatos A e A% dizem-se equivalentes se L(A) = L(A% ).
De agora em diante, salvo menção em contrário, vamos considerar apenas
autómatos finitos.
Proposição.
Todo o autómato é equivalente a um autómato acessı́vel e co-acessı́vel.
Demonstração. [Esboço.]
Seja A = (Q, A, E , I , F ) um autómato. Tomemos
Q " = {q ∈ Q | q é acessı́vel e co-acessı́vel em A} e consideremos o autómato
A" = (Q " , A, E ∩ Q " × A × Q " , I ∩ Q " , F ∩ Q " ) (que resulta de A suprimindo os
estados inúteis, i.e. que não são ou acessı́veis ou co-acessı́veis). Então A" é
acessı́vel e co-acessı́vel. [Exercı́cio.] Além disso, L(A" ) = L(A). [Exercı́cio.]
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
89 / 134
Proposição.
Todo o autómato é equivalente a um autómato completo.
Os estados acessı́veis de A são os 1,2,3,4,5,6,9 e 10 e os co-acessı́veis são os
1,2,3,6,8,9 e 10, pelo que os estados 1,2,3,6,9 e 10 são simultaneamente os
acessı́veis e co-acessı́veis em A.
O autómato A" é um autómato acessı́vel e co-acessı́vel equivalente a A.
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
90 / 134
Observação.
Se A for determinista [acessı́vel], então o autómato completo A% (da prova
da proposição anterior) é determinista [acessı́vel].
Demonstração.
Seja A = (Q, A, E , I , F ) um autómato e admitamos que A não é completo. Seja
p um novo estado (i.e. p /∈ Q) fixo. Consideremos o autómato A" que resulta de
“acrescentar” a A o estado p e todas as transições da forma (q, a, p), para
quaisquer q ∈ Q e a ∈ A tais que não exista em A uma transição da forma
(q, a, −), e ainda todas as transições da forma (p, a, p), com a ∈ A, i.e.
Proposição.
Todo o autómato é equivalente a um autómato determinista.
Demonstração. [Esboço.]
Seja A = (Q, A, E , I , F ) um autómato e admitamos que A não é determinista.
Consideremos o autómato (determinista) A" = (P(Q), A, ·, I , F) (note-se que I é
um elemento de P(Q), o conjunto dos estados de A" ), em que
F = {P ∈ P(Q) | P ∩ F /= ∅} e a função de transição está definida por
A" = (Q ∪ {p}, A, E " , I , F ), em que
E " = E ∪ {(q, a, p) | q ∈ Q, a ∈ A, ({q} × {a} × Q) ∩ E = ∅} ∪ {(p, a, p) | a ∈ A}.
Claramente, o autómato A" é completo e equivalente a A (note-se que p não é
co-acessı́vel).
(Se A é completo podemos tomar A" = A.)
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
91 / 134
P · a = {q ∈ Q | (∃p ∈ P) (p, a, q) ∈ E }
(note-se que ∅ · a = ∅), para quaisquer P ∈ P(Q) e a ∈ A.
O autómato A" (por construção) é determinista (e também completo). Além
disso, L(A" ) = L(A). [Exercı́cio.]
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
92 / 134
Proposição.
Todo o autómato é equivalente a um autómato determinista, completo e
acessı́vel.
Exemplos.
DCA(A)
A
Demonstração. [Esboço.]
Seja A = (Q, A, E , I , F ) um autómato. Consideremos o autómato (determinista)
DCA(A) = (Q" , A, ·, I , F " ), em que Q" = ∪n∈N0 Qn é o subconjunto de P(Q)
definido
por

 Q0 = {I }
Q1 = {I · a | a ∈ A}

Qn+1 = {P · a | P ∈ Qn \ (Q0 ∪ Q1 ∪ · · · ∪ Qn−1 ), a ∈ A} , n ∈ N+
(note-se que, uma vez que Q é finito, a partir de certa ordem os conjuntos Qn
são todos vazios), com P · a, para a ∈ A e P ∈ P(Q), definidos do mesmo modo
que na prova da proposição anterior, e F " = {P ∈ Q" | P ∩ F /= ∅}.
Então, o autómato DCA(A) é determista, completo, acessı́vel e equivalente a A.
[Exercı́cio.]
(autómato equivalente a A e a DCA(A))
DCA(B)
B
Observação.
No autómato DCA(A) o estado ∅, se existir, nunca é co-acessı́vel.
Podemos então suprimi-lo, obtendo assim um autómato equivalente a A
(e a DCA(A)), mas que pode não ser completo.
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
93 / 134
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
94 / 134
Observação.
Seja A = (Q, A, ·, i, F ) um autómato determinista completo.
Um autómato determinista, completo e acessı́vel (e até mesmo também
co-acessı́vel) pode possuir estados supérfluos, como mostra o seguinte
exemplo:
Para cada k ∈ N0 , definimos uma relação binária ∼k em Q do seguinte
modo: dados q, q % ∈ Q, q ∼k q % se e só se, para qualquer u ∈ A∗ tal que
|u| ≤ k, q · u ∈ F ⇔ q % · u ∈ F .
O autómato A é determinista,
completo, acessı́vel e
co-acessı́vel, mas os estados 4 e
5 desempenham o mesmo papel.
Definimos também a relação ∼= ∩k∈N0 ∼k sobre Q. Observemos que,
dados q, q % ∈ Q, q ∼ q % se e só se, para qualquer u ∈ A∗ ,
qu ∈ F ⇔ q % u ∈ F .
A
Claramente, ∼k , para qualquer k ∈ N0 , e ∼ são relações de equivalência
sobre Q.
B
O autómato B é determinista,
completo, acessı́vel e
co-acessı́vel. Além disso,
L(B) = L(A).
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
95 / 134
Dizemos que uma palavra u ∈ A∗ separa dois estados q e q % de A se ou,
qu ∈ F e q % u /∈ F , ou, qu /∈ F e q % u ∈ F (i.e. qu ∈ F se e só se q % u /∈ F ).
Dois estados q e q % de A dizem-se equivalentes (ou indistinguı́veis) se não
existir nenhuma palavra que os separe, ou seja se q ∼ q % .
Claramente:
Para qualquer k ∈ N0 , ∼k+1 ⊆∼k ;
Se F /= Q e F /= ∅, então ∼0 tem exactamente duas classes de
equivalência: F e Q \ F ;
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
96 / 134
Dados dois estados q e q % de A, se q ∼ q % então qu ∼ q % u, para
qualquer u ∈ A∗ .
Temos a seguinte definição recursiva das relações ∼k , k ∈ N0 :
Corolário.
Seja A = (Q, A, ·, i, F ) um autómato determinista completo tal que
n = |Q| ≥ 2. Então ∼=∼n−2 .
Proposição.
Para quaisquer q, q % ∈ Q, tem-se:
Demonstração.
q ∼0 q % se e só se q, q % ∈ F ou q, q % /∈ F ;
Para qualquer k ∈ N0 , as seguintes afirmações são equivalentes:
q ∼k+1 q % ;
q ∼k q % e, para qualquer a ∈ A, qa ∼k q % a;
q ∼0 q % e, para qualquer a ∈ A, qa ∼k q % a.
Se F = ∅ ou F = Q então ∼k = Q × Q, para qualquer k ∈ N0 , donde em
particular ∼=∼n−2 .
Admitamos então que F /= ∅ e F /= Q. Então, já vimos que |Q/∼0 | = 2.
Como ∼0 ⊇∼1 ⊇∼2 ⊇ · · · e Q é finito (pelo que possui um número finito de
relações binárias), então ∼k =∼k+1 , para algum k ∈ N0 . Seja k o menor número
natural nestas condições. Então, pelo corolário anterior,
∼0 "∼1 "∼2 " · · · "∼k−1 "∼k =∼k+1 =∼k+2 = · · · . Logo, temos
2 = |Q/∼0 | < |Q/∼1 | < · · · < |Q/∼k−1 | < |Q/∼ | ≤ n, donde k ≤ n − 2 e,
portanto, ∼n−2 =∼k =∼.
Demonstração. [Exercı́cio.]
Corolário.
Seja k ∈ N0 . Se ∼k =∼k+1 então ∼=∼k .
Definição.
Um autómato determinista e completo diz-se reduzido se for acessı́vel e
não tiver estados diferentes equivalentes, i.e. se ∼ for a relação identidade.
Demonstração. [No quadro.]
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
97 / 134
Seja A = (Q, A, ·, i, F ) um autómato determinista completo.
Definimos o autómato Ar = (Q/∼ , A, ·, [i]∼
em que
F % = {[q]∼ | q ∈ F } e a função de transição está definida por
Q/∼ × A −→ Q/∼
([q]∼ , a)
8→ [q]∼ · a = [q · a]∼
(observemos que esta função está bem definida visto que, como já
observámos, dados dois estados q e q % de A, se q ∼ q % então qu ∼ q % u,
para qualquer u ∈ A∗ , pelo que, em particular, qa ∼ q % a, para qualquer
a ∈ A).
Observemos ainda que, dados u ∈ A∗ e q ∈ Q, [q]∼ · u = [qu]∼ .
[Exercı́cio.]
Proposição.
Seja A = (Q, A, ·, i, F ) um autómato determinista, completo e acessı́vel.
Então Ar = (Q/∼ , A, ·, [i]∼ , F % ) é um autómato reduzido equivalente a A.
Demonstração. [No quadro.]
TAA 2010-2011
TAA 2010-2011
98 / 134
Exemplo.
, F % ),
Departamento de Matemática (FCT/UNL)
Departamento de Matemática (FCT/UNL)
99 / 134
Consideremos o autómato A:
Então, A é determinista,
completo e acessı́vel.
Determinemos a equivalência ∼.
Como F = {2, 4}, então
Q/∼0 = {F , Q \ F } = {{2, 4}, {1, 3, 5, 6}}.
Temos que p ∼1 q ⇔ (p ∼0 q, pa ∼0 qa, pb ∼0 qb).
Calculemos então pa e pb, com p ∈ Q:
Temos (com os estados finais representados a negrito):
p·x a b
p·x a b
1
1 2
e
2
4 3
3
5 1
4
4 5
5
5 6
6
6 4
Logo Q/∼1 = {{2, 4}, {1, 6}, {3, 5}}.
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
100 / 134
Definição.
Também p ∼2 q ⇔ (p ∼1 q, pa ∼1 qa, pb ∼1 qb) e temos (com cores diferentes a
representar elementos de diferentes classes-∼1 ):
p·x a b
p·x a b
p·x a b
e
e
2
4 3
1
1 2
3
5 1
4
4 5
6
6 4
5
5 6
Logo ∼2 =∼1 , pelo que ∼=∼1 e, portanto, o autómato reduzido Ar tem três
estados ({2, 4}, {1, 6} e {3, 5}):
Sejam A1 = (Q1 , A, ·, i1 , F1 ) e A2 = (Q2 , A, ·, i2 , F2 ) dois autómatos
deterministas, completos e acessı́veis. Uma aplicação ϕ : Q1 −→ Q2 diz-se
um morfismo de A1 em A2 , e representa-se por ϕ : A1 −→ A2 , se satisfaz
as seguintes condições:
(i) i1 ϕ = i2 ;
(ii) ϕ−1 (F2 ) = F1 (i.e. para qualquer q ∈ Q1 , q ∈ F1 ⇔ ϕ(q) ∈ F2 );
(iii) Para quaisquer q ∈ Q1 e a ∈ A, ϕ(q) · a = ϕ(q · a).
Dizemos que ϕ : A1 −→ A2 é um isomorfismo se for uma bijecção (de Q1
sobre Q2 ). Neste caso, dizemos também que A1 é isomorfo a A2 e
escrevemos A1 3 A2 .
Observação.
Nas condições da definição anterior, uma aplicação ϕ : Q1 −→ Q2 que
satisfaça a condição (iii) também satisfaz, mais geralmente, a condição
para quaisquer q ∈ Q1 e u ∈ A∗ , ϕ(q) · u = ϕ(q · u). [Exercı́cio.]
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
101 / 134
Exemplo.
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
102 / 134
Proposição.
Todo o morfismo de autómatos deterministas, completos e acessı́veis é
uma aplicação sobrejectiva.
Consideremos os autómatos
Demonstração.
Então ϕ : A1 −→ A2 definida por ϕ =
[No quadro.]
- 1 2 3.
122
Sejam A1 = (Q1 , A, ·, i1 , F1 ) e A2 = (Q2 , A, ·, i2 , F2 ) dois autómatos
deterministas, completos e acessı́veis e ϕ : A1 −→ A2 um morfismo. Seja q ∈ Q2 .
Como A2 é acessı́vel, então existe u ∈ A∗ tal que i2 · u = q. Logo,
q = i2 · u = ϕ(i1 ) · u = ϕ(i1 · u). Portanto, ϕ : Q1 −→ Q2 é sobrejectiva.
é um morfismo de A1 em A2 .
Proposição.
Sejam A1 = (Q1 , A, ·, i1 , F1 ) e A2 = (Q2 , A, ·, i2 , F2 ) dois autómatos
deterministas, completos e acessı́veis. Se existe um morfismo de A1 em A2
então é único e, neste caso, os autómatos A1 e A2 são equivalentes.
Proposição.
Sejam ϕ : A1 −→ A2 e ψ : A2 −→ A3 dois morfismos de autómatos
(deterministas, completos e acessı́veis). Então:
Demonstração.
A composição ψ ◦ ϕ : A1 −→ A3 é um morfismo de autómatos;
Se ϕ : A1 −→ A2 é um isomorfismo então a aplicação inversa ϕ−1 é
um ismorfismo de autómatos de A2 sobre A1 .
Demonstração. [Exercı́cio.]
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
103 / 134
Suponhamos que existe um morfismo ϕ : A1 −→ A2 . Seja q ∈ Q1 . Como A1 é
acessı́vel, então existe u ∈ A∗ tal que i1 · u = q. Como
ϕ(q) = ϕ(i1 · u) = ϕ(i1 ) · u = i2 · u, pelo que ϕ(q) está univocamente
determinado. Assim, ϕ é o único morfismo de A1 em A2 .
Por outro lado, para u ∈ A∗ , temos u ∈ L(A1 ) ⇔ i1 · u ∈ F1 ⇔ ϕ(i1 · u) ∈ F2 ⇔
ϕ(i1 ) · u ∈ F2 ⇔ i2 · u ∈ F2 ⇔ u ∈ L(A2 ), donde L(A1 ) = L(A2 ).
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
104 / 134
Recordemos que, dados um alfabeto A, L ⊆ A∗ e u ∈ A∗ , definimos o
cociente esquerdo de L por u como sendo o conjunto das palavras de A∗
que resultam das palavras de L “suprimindo-lhes” o prefixo u:
u −1 L = {v ∈ A∗ | uv ∈ L}.
É fácil verificar que, para quaisquer L, K ⊆ A∗ e u, v ∈ A∗ , tem-se:
(uv )−1 L = v −1 (u −1 L);
u −1 (K + L) = u −1 K + u −1 L;
u −1 (K ∩ L) = u −1 K ∩ u −1 L;
u −1 (K \ L) = u −1 K \ u −1 L
(cf. Exercı́cio 20 de §1.).
Seja L ⊆ A∗ . Consideremos o autómato (não necessariamente finito)
determinista e completo A(L) = (QL , A, ·, L, FL ) em que:
FL = {u −1 L | u ∈ L};
A função de transição está definida por
(u −1 L) · a = (ua)−1 L (= a−1 (u −1 L)), para quaisquer a ∈ A e u ∈ A∗ .
TAA 2010-2011
Como u = u1 ∈ L se e só se 1 ∈ u −1 L, com u ∈ A∗ , então podemos
também escrever FL = {K ∈ QL | 1 ∈ K }.
Para quaisquer u, v ∈ A∗ , (u −1 L) · v = (uv )−1 L. [Exercı́cio.] Donde,
para quaisquer K ∈ QL e u ∈ A∗ , K · u = u −1 K . Em particular, A(L)
é um autómato acessı́vel.
Lema.
Seja A = (Q, A, ·, i, F ) um autómato determinista e completo que
reconhece a linguagem L. Então, para qualquer u ∈ A∗ , o autómato
(determinista e completo) Au = (Q, A, ·, i · u, F ) reconhece u −1 L.
Demonstração. [No quadro.]
QL = {u −1 L | u ∈ A∗ } ⊆ P(A∗ );
Departamento de Matemática (FCT/UNL)
Observações.
L ∈ QL , visto que L = 1−1 L.
105 / 134
Proposição.
1 O autómato A(L) reconhece a linguagem L.
2
A linguagem L é reconhecı́vel se e só se QL é finito (i.e. A(L) é finito).
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
106 / 134
Proposição.
Demonstração.
1
[No quadro.]
2
Se QL é finito, tendo em conta a propriedade 1, é imediato que L é
reconhecı́vel. Reciprocamente, suponhamos que L é reconhecı́vel e tomemos
um autómato finito, determinista e completo A = (Q, A, ·, i, F ) que
reconhece L. Pelo lema anterior, para qualquer u ∈ A∗ , o autómato
Au = (Q, A, ·, i · u, F ) reconhece u −1 L. Como existem no máximo
(exactamente, se A for acessı́vel) |Q| autómatos da forma Au , então só
podem existir no máximo |Q| linguagens da forma u −1 L, com u ∈ A∗ . Logo,
QL é finito (|QL | ≤ |Q|).
Definição.
A(L) = ({Lq | q ∈ Q}, A, ·, L, {Lq | q ∈ F }), estando a função de
transição definida por Lq · a = Lq·a , para quaisquer q ∈ Q e a ∈ A;
2
A aplicação ϕ : Q −→ {Lq | q ∈ Q} definida por ϕ(q) = Lq , para
qualquer q ∈ Q, é um morfismo de A em A(L)
(logo A(L) é “menor” que A, atendendo à sobrejectividade de ϕ);
3
A(L) 3 Ar .
1. Seja q ∈ Q. Como A é acessı́vel, então existe u ∈ A∗ tal que q = iu. Pelo
lema anterior (slide 106), Lq = u −1 L ∈ QL . Além disso, se q(= iu) ∈ F ,
então u ∈ L, pelo que Lq ∈ FL . Reciprocamente, dado u ∈ A∗ e tomando
q = iu ∈ Q, tem-se u −1 L = Lq e, supondo adicionalmente que u ∈ L, então
q = iu ∈ F .
Esta terminologia deve-se ao seguinte resultado:
TAA 2010-2011
1
Demonstração. [Esboço.]
O autómato A(L) designa-se por autómato minimal de L.
Departamento de Matemática (FCT/UNL)
Seja L ⊆ A∗ uma linguagem reconhecı́vel e seja A = (Q, A, ·, i, F ) um
autómato finito, determinista, completo e acessı́vel que reconhece L. Para
cada q ∈ Q, seja Lq a linguagem reconhecida pelo autómato
Aq = (Q, A, ·, q, F ). Então:
107 / 134
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
108 / 134
Sejam q ∈ Q e a ∈ A. Tendo em conta a acessibilidade de A, tomemos
u ∈ A∗ tal que q = iu. Então, qa = i(ua), donde (pelo lema) Lq = u −1 L e
Lqa = (ua)−1 L. Logo, Lq · a = (u −1 )L · a = (ua)−1 L = Lqa .
2. [Exercı́cio.]
Exemplo.
3. Em primeiro lugar, suponhamos que A é um autómato reduzido. Mostremos
então que, neste caso, ϕ : A −→ A(L) é um isomorfismo. Atendendo a 2. e
à primeira proposição do slide 104, basta ver que ϕ é injectiva: sejam
q, q " ∈ Q tai que ϕ(q) = ϕ(q " ). Então, Lq = Lq" . Ora, dado u ∈ A∗ , temos
qu ∈ F ⇔ u ∈ Lq [Exercı́cio.], pelo que qu ∈ F ⇔ q " u ∈ F . Logo q ∼ q " e
portanto, como A é reduzido, q = q " . Donde A 3 A(L).
No caso geral, como Ar é um autómato finito, determinista, completo e
acessı́vel que também reconhece L, podemos considerar A(L) definido à
custa de Ar tal como em 1. e um morfismo de Ar em A(L) tal como em 2..
Como Ar é também reduzido, pelo que provámos inicialmente, podemos
concluir que Ar 3 A(L).
Atendendo a que dois autómatos finitos, deterministas, completos e
acessı́veis se forem isomorfos então ou são ambos reduzidos ou nenhum
deles o é [Exercı́cio.], temos de imediato:
Departamento de Matemática (FCT/UNL)
Corolário.
Se L ⊆ A∗ é reconhecı́vel então A(L) é um autómato reduzido.
TAA 2010-2011
109 / 134
Cálculo de u −1 L, com |u| = 2:
Sejam A = {a, b} e L = a∗ b ∗ (a + a2 )b + . Vamos calcular A(L). Para tal,
precisamos de calcular todos os cocientes esquerdos da forma u −1 L, com u ∈ A∗ .
Tendo em conta que (ux)−1 L = x −1 (u −1 L), para quaisquer u ∈ A∗ e x ∈ A,
podemos calcular os cocientes desejados por meio de uma sucessão (finita, porque
L é reconhecı́vel) de passos, começando por calcular x −1 L, com x ∈ A, e depois,
em cada passo, calcular x −1 K , com x ∈ A e K um cociente novo obtido no passo
imediatamente anterior. O processo termina quando num dado passo não se
obtêm novos cocientes.
Observemos que L = a∗ b ∗ ab + + a∗ b ∗ a2 b + .
Cálculo de u −1 L, com |u| = 1:
a−1 L = a∗ b ∗ ab + + b + + a∗ b ∗ a2 b + + ab + = L + b + = L1 (observe-se
que ab + ⊆ a∗ b ∗ ab + );
b −1 L = b ∗ ab + + b ∗ a2 b + = L2 .
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
110 / 134
Assim, visto que a palavra vazia pertence somente a L3 e a L6 (donde L3 e L6 são
os estados finais), temos
a−1 L1 = a−1 L + a−1 b + = a−1 L + ∅ = L1 ;
b −1 L1 = b −1 L + b −1 b + = L2 + b ∗ = L3 ;
a−1 L2 = b + + ab + = L4 ;
b −1 L2 = L2 .
A(L) = ({L, L1 , . . . , L7 }, A, ·, L, {L3 , L6 }),
cujo diagrama de estado é:
Cálculo de u −1 L, com |u| = 3:
a−1 L3 = b + + ab + = L4 ;
b −1 L3 = b −1 L2 + b −1 b ∗ = L2 + b ∗ = L3 ;
a−1 L4 = ∅ + b + = b + = L5 ;
b −1 L4 = b ∗ + ∅ = b ∗ = L6 .
Cálculo de u −1 L, com |u| = 4:
a−1 L5 = ∅ = L7 ;
b −1 L5 = b ∗ = L6 ;
a−1 L6 = ∅ = L7 ;
b −1 L6 = b ∗ = L6 .
Como a−1 ∅ = ∅ = a−1 ∅, então não se obtêm novos cocientes com |u| ≥ 5.
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
111 / 134
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
112 / 134
Dada uma linguagem L ⊆ A∗ reconhecı́vel, como determinar um autómato
reduzido que reconheça L?
Processo 1:
Calcular um autómato A que reconheça L;
Calcular DCA(A);
Calcular DCA(A)r (i.e. reduzir DCA(A)).
Processo 2: Calcular o autómato minimal A(L) de L.
Consideremos o autómato A = (Q, A, E , I , F ) tal que:
Observação.
Então L = L(A). [No quadro.]
Na lista de exercı́cios apresenta-se um terceiro processo (Exercı́cio §2.19).
Exemplo.
Teorema.
Toda a linguagem regular é reconhecı́vel.
Seja G = ({S, T , X , Y }, {a, b}, P, S), em que
P = {S → aS | bT | aX | aY | 1, X → bT , Y → 1, T → aX | aY }. Então G é
uma gramática super-regular e o autómato que lhe corresponde pela construção
da prova anterior é:
Q = V;
R = {(X , a, Y ) ∈ V × A × V | (X → aY ) ∈ P};
I = {S};
F = {X ∈ V | (X → 1) ∈ P}.
Demonstração. [Esboço.]
Seja A um alfabeto e seja L ⊆ A∗ uma linguagem regular. De acordo com o
corolário do slide 4, podemos supor que L é gerada por uma gramática linear à
direita. Tendo em conta a proposição do slide 50 de §1, existe então uma
gramática super-regular (à direita) G = (V , A, P, S) que gera L.
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
113 / 134
A:
L(A) = L(G )
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
114 / 134
Exemplo.
Teorema.
Toda a linguagem reconhecı́vel é regular.
Consideremos o autómato
Demonstração.
Seja A um alfabeto e seja L ⊆ A∗ uma linguagem reconhecı́vel. Então, existe um
autómato finito com um único estado inicial (por exemplo, um autómato
determinista) A = (Q, A, E , {i}, F ) que reconhece L.
Consideremos a gramática G = (V , A, P, S) tal que:
V = Q;
P = {p → aq | (p, a, q) ∈ E } ∪ {q → 1 | q ∈ F };
S = i.
A gramática G é, claramente, super-regular. Além disso, o autómato que se
obtém de G pela construção da prova do teorema anterior é precisamente A, pelo
que L(G ) = L(A) = L (atendendo à mesma prova).
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
115 / 134
A:
A gramática (super-regular) G tal que L(G ) = L(A),
que lhe corresponde pela construção da prova anterior,
é G = ({q1 , q2 , q3 }, {a, b}, P, q1 ), em que
P = {q1 → bq2 | aq3 , q2 → aq1 | bq3 | 1, q3 → aq2 | 1}.
Corolário. [Teorema de Kleene]
Uma linguagem é racional se e só se é reconhecı́vel.
Seja A = {a, b}. Vimos no exemplo do slide 11 (como aplicação do Lema
da Estrela) que a linguagem (algébrica) L = {an b n | n ∈ N0 } não é
reconhecı́vel. Tendo em conta o teorema do slide 38, a linguagem L
também não é regular. Assim, temos:
Corolário.
Seja A = {a, b}. Então L3 (A∗ ) ! L2 (A∗ ).
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
116 / 134
Definição.
2.3 Monóide de Transições e Monóide Sintático
Definições.
Sejam M e N dois monóides.
Dizemos que M divide N, e escrevemos M ? N, se existem um
submonóide N % de N e um homomorfismo sobrejectivo ϕ : N % −→ M.
Observemos que, se N for finito e M ? N então M também é finito.
Definimos o monóide dual de (M, ·) como sendo o monóide
M d = (M, ·d ), em que x ·d y = y · x, para quaisquer x, y ∈ M.
(I.e. M d tem os mesmos elementos de M mas a operação “tem a
ordem trocada”).
Definimos o produto directo de M por N como sendo o monóide
cujos elementos são os do produto cartesiano M × N e a operação
está definida (“coordenada a coordenada”) por
(a, b)(c, d) = (ac, bd), para quaisquer (a, b), (c, d) ∈ M × N.
De modo análogo, mais geralmente, se define o produto directo de
um “número qualquer” de monóides.
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
117 / 134
Observações.
Dados a1 , a2 . . . , an ∈ A, temos
ϕa1 a2 ···an−1 an = ϕan ◦ ϕan−1 ◦ · · · ◦ ϕa2 ◦ ϕa1 , pelo que o monóide de
transições M(A) é gerado por todas as funções ϕa , com a ∈ A.
Exemplo.
Consideremos o autómato A:
Departamento de Matemática (FCT/UNL)
3
3
3
3
3
3
3
= a2
= a2
=a
= ab
= a2
=b
TAA 2010-2011
Definição.
Ao submonóide M(A) = {ϕw | w ∈ A∗ } de T d (Q) chamamos monóide de
transições do autómato A.
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
118 / 134
Seja A = (Q, A, ·, i, F ) um autómato determinista completo. Então, a
linguagem L(A) (reconhecida por A) é reconhecida por M(A).
Demonstração. [Esboço.]
Sejam L = L(A) e Φ : A∗ −→ M(A) o epimorfismo canónico. Prova-se que
Φ−1 (Φ(L)) = L [Exercı́cio.], pelo que Φ (donde M(A)) reconhece L.
Proposição.
Seja L ⊆ A∗ . Então L é reconhecı́vel se e só se L é reconhecida por um
monóide finito.
por w , com w ∈ A∗ ):
2
3
3
3
3
3
1
Seja A = (Q, A, ·, i, F ) um autómato determinista completo.
Tendo em conta o prolongamento da função de transição ϕ : Q × A −→ Q
a A∗ , cada palavra w ∈ A∗ define uma função ϕw : Q −→ Q tal que
ϕw (q) = q · w , para qualquer q ∈ Q.
Uma vez que q · (uv ) = (q · u) · v , para quaisquer u, v ∈ A∗ e q ∈ Q,
então ϕuv = ϕv ◦ ϕu , para quaisquer u, v ∈ A∗ . Donde, a função
Φ : A∗ −→ T (Q)d definida por Φ(w ) = ϕw , para qualquer w ∈ A∗ , é um
homomorfismo.
Proposição.
Temos um homomorfismo sobrejectivo (epimorfismo) canónico
Φ : A∗ −→ M(A), w 8→ ϕw , com w ∈ A∗ .
Temos (representando ϕw também
1 2 3
1
a 2 3 3
a3 2
b 1 1 3
a2 b 3
a2 3 3 3
aba 2
ab 1 3 3
ab 2 1
ba 2 2 3
ba2 3
b2 1 1 3 = b
bab 1
Sejam A um alfabeto (finito), η : A∗ −→ M um morfismo de monóides e
L ⊆ A∗ uma linguagem. Dizemos que η reconhece L se existe P ⊆ M tal
que L = η −1 (P) (ou, equivalentemente, se L = η −1 (η(L)) [Exercı́cio.]).
Neste caso, também dizemos que M reconhece a linguagem L.
Donde,
-123.
M(A) = -{id =
123 -, .
.
123
,
b
a = -123
233 . = 113
- ,.
123
2
a = -233 ., ab = 123
133 ,
ba = 123
}.
223
119 / 134
Demonstração.
Se L é reconhecı́vel então L é reconhecida por um autómato finito, determinista e
completo A = (Q, A, ·, i, F ). Como Q é finito então M(A) ⊆ T (Q) é finito e,
pela proposição anterior, reconhece L.
Reciprocamente, suponhamos que L é reconhecida por um monóide M. Sejam
η : A∗ −→ M um homomorfismo e P ⊆ M tais que L = η −1 (P).
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
120 / 134
Consideremos o autómato determinista completo AM = (M, A, ·, 1M , P), em que
a função de transição está definida por m · a = m η(a) (multiplicação em M),
para quaisquer m ∈ M e a ∈ A. Como
Demonstração. [Esboço.]
1M · u ∈ P ⇔ 1M η(u) ∈ P ⇔ η(u) ∈ P ⇔ u ∈ η −1 (P) = L,
para qualquer u ∈ A∗ , então L(AM ) = L. Finalmente, se M for finito então AM é
finito e portanto L é reconhecı́vel.
Proposição.
Se o monóide M reconhece a linguagem L ⊆ A∗ então também reconhece
a linguagem A∗ \ L.
Demonstração. [Esboço.]
Como M reconhece L então existem um morfismo η : A∗ −→ M e P ⊆ M tais
que L = η −1 (P). Então η −1 (M \ P) = A∗ \ L [Exercı́cio.], pelo que M reconhece
A∗ \ L.
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
Proposição.
Sejam L1 ⊆ A∗ e L2 ⊆ A∗ duas linguagens reconhecidas pelos monóides
M1 e M2 , respectivamente. Então o monóide M1 × M2 reconhece as
linguagens L1 ∩ L2 e L1 ∪ L2 .
121 / 134
Para i ∈ {1, 2}, sejam ηi : A∗ −→ Mi um morfismo e Pi ⊆ Mi tais que
Li = η −1 (Pi ). Consideremos a função η : A∗ −→ M1 × M2 definida por
η(w ) = (η1 (w ), η2 (w )), para qualquer w ∈ A∗ . Então η é um morfismo
[Exercı́cio.] e tem-se η −1 (P1 × P2 ) = L1 ∩ L2 [Exercı́cio.] e
η −1 ((P1 × M2 ) ∪ (M1 × P2 )) = L1 ∪ L2 [Exercı́cio.].
Proposição.
Sejam A e B dois alfabetos e ϕ : A∗ −→ B ∗ um morfismo de monóides
livres. Seja L ⊆ B ∗ uma linguagem reconhecida por um monóide M.
Então a linguagem ϕ−1 (L) ⊆ A∗ também é reconhecida por M.
Demonstração.
Sejam η : A∗ −→ M um morfismo e P ⊆ M tais que L = η −1 (P). Então
ϕ−1 (L) = ϕ−1 (η −1 (P)) = (η ◦ ϕ)−1 (P), pelo que o morfismo η ◦ ϕ : A∗ −→ M
(e portanto M) reconhece ϕ−1 (L).
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
122 / 134
Proposição.
Sejam K e L duas linguagens de A∗ . Se o monóide M reconhece L então
também reconhece as linguagens K −1 L e LK −1 .
Seja L uma linguagem de A∗ . Recordemos que a congruência sintática ∼L
de L está definida por: dados u, v ∈ A∗ , u ∼L v se e só se, para quaisquer
x, y ∈ A∗ , xuy ∈ L ⇔ xvy ∈ L.
Demonstração. [Esboço.]
Definição.
Seja L uma linguagem de A∗ . Chamamos monóide sintático de L ao
monóide cociente M(L) = A∗ /∼L .
Sejam η : A −→ M um morfismo e P ⊆ M tais que L = η (P). Tomando
P " = {m ∈ M | (∃u ∈ K ) η(u)m ∈ P}, temos η −1 (P " ) = K −1 L [Exercı́cio.].
(Para LK −1 é análogo.)
∗
−1
Seja Rec(A∗ ) o conjunto das linguagens reconhecı́veis (i.e. reconhecidas
por autómatos finitos ou por monóides finitos). Recordemos que já vimos
(nas secções §2.1 e §2.2) que Rec(A∗ ) = Rat(A∗ ) = L3 (A∗ ).
Como resumo dos resultados anteriores, temos:
Teorema.
Seja A um alfabeto.
Rec(A∗ ) é uma álgebra de Boole.
Observemos que temos um epimorfismo canónico η : A∗ −→ M(L).
O resultado seguinte mostra que, no sentido da divisão de monóides, M(L)
é o menor monóide que reconhece L.
Proposição.
Sejam L uma linguagem de A∗ e M um monóide.
M(L) reconhece L.
M reconhece L se e só se M(L) ? M.
Se L ∈ Rec(A∗ ) e K ⊆ A∗ então K −1 L, LK −1 ∈ Rec(A∗ ).
Se ϕ : A∗ −→ B ∗ é um morfismo de monóides livres e L ∈ Rec(B ∗ )
então ϕ−1 (L) ∈ Rec(A∗ ).
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
123 / 134
Demonstração.
[No quadro.]
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
124 / 134
Corolário.
Seja L uma linguagem de A∗ . Sejam M e N dois monóides.
Proposição.
Sejam L uma linguagem de A∗ e A(L) = (QL , A, ·, L, FL ) o autómato
minimal de L. Então, o monóide sintático M(L) de L coincide, a menos de
um isomorfismo, com o monóide de transições M(A(L)) de A(L).
L é reconhecı́vel se e só se M(L) é finito.
Se M reconhece L e M ? N então N reconhece L.
Demonstração. [Exercı́cio.]
Demonstração.
Consideremos o epimorfismo canónico Φ : A∗ −→ M(A(L)) (w 8→ ϕw ). Tendo
em conta o teorema do slide 22 de §1., temos que A∗ /∼Φ é isomorfo a M(A(L))
(onde ∼Φ representa a congruência nuclear associada a Φ). Basta então mostrar
que ∼Φ =∼L : sejam u, v ∈ A∗ . Então,
Corolário.
Sejam L, L1 , L2 ∈ Rec(A∗ ) e K ⊆ A∗ . Temos:
M(A∗ \ L) = M(L);
u ∼Φ v
M(L1 ∩ L2 ) ? M(L1 ) × M(L2 ) e M(L1 ∪ L2 ) ? M(L1 ) × M(L2 );
M(K −1 L) ? M(L) e M(LK −1 ) ? M(L);
Se ϕ : B ∗ −→ A∗ é um morfismo de monóides livres então
M(ϕ−1 ) ? M(L).
Demonstração. [Exercı́cio.]
Departamento de Matemática (FCT/UNL)
⇔
⇔
⇔
⇔
⇔
⇔
(∀x ∈ A∗ ) ϕu (x −1 L) = ϕv (x −1 L)
(∀x ∈ A∗ ) (x −1 L) · u = (x −1 L) · v
(∀x ∈ A∗ ) (xu)−1 L = (xv )−1 L
(∀x ∈ A∗ ) {y ∈ A∗ | xuy ∈ L} = {y ∈ A∗ | xvy ∈ L}
(∀x, y ∈ A∗ ) xuy ∈ L ⇐⇒ xvy ∈ L
u ∼L v ,
como querı́amos demonstrar.
TAA 2010-2011
125 / 134
Exemplo.
2
+
Consideremos a linguagem L = a b (a + a )b sobre A = {a, b} do exemplo do
slide 37. Então (tendo em conta o cálculo do autómato A(L):
∗ ∗
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
126 / 134
§3. Variedades de Monóides e
Variedades de Linguagens: uma breve introdução
3.1 Variedades de Monóides Finitos
Definição.
Uma classe V de monóides finitos diz-se uma variedade de monóides
finitos (ou uma pseudovariedade de monóides) se for fechada para a toma
de submonóides, produtos directos e imagens homomorfas, i.e. se:
Se M ∈ V e N for um submonóide de M então N ∈ V;
), o monóide sintático M(L) de L é gerado (a menos de um isomorfismo) pelas
transformações
!
"
!
"
01234567
01234567
e b=
a=
23236667
11445777
TAA 2010-2011
Se M ∈ V e ϕ : M −→ N é um homomorfismo sobrejectivo então
N ∈ V.
Exemplo.
(estamos a identificar o estado L com 0 e os estados Li com i, para
i ∈ {1, 2, . . . , 7}).
Podemos verificar que M(L) possui 15 elementos. [Exercı́cio.]
Departamento de Matemática (FCT/UNL)
Se M, N ∈ V então M × N ∈ V;
A classe M constituı́da por todos os monóides finitos é, naturalmente, uma
pseudovariedade de monóides.
127 / 134
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
128 / 134
Definições.
Seja M um monóide. Dizemos que M é:
3.2 Variedades de Linguagens Reconhecı́veis
J-trivial se, para quaisquer x, y ∈ M,
MxM = MyM =⇒ x = y ;
R-trivial se, para quaisquer x, y ∈ M,
xM = yM =⇒ x = y ;
L-trivial se, para quaisquer x, y ∈ M,
Mx = My =⇒ x = y ;
Definição.
Uma classe de linguagens reconhecı́veis é uma função C que associa a cada
alfabeto (finito) A um conjunto A∗ C de linguagens reconhecı́veis de A∗ .
Definição.
Uma ∗-variedade de linguagens é uma classe de linguagens reconhecı́veis V
tal que, para qualquer alfabeto A:
H-trivial se, para quaisquer x, y ∈ M,
Mx = My ∧ xM = yM =⇒ x = y .
Um monóide finito H-trivial também se diz aperiódico.
A∗ V é uma álgebra de Boole (fechado para a união finita, intersecção
finita(1) e complementação);
Sejam J, R, L e A as classes de todos os monóides finitos J-triviais,
R-triviais, L-triviais e H-triviais (aperiódicos), respectivamente.
Observe-se que L ⊆ A e R ⊆ A. Além disso, J = L ∩ R. [Exercı́cio.]
Se ϕ : A∗ −→ B ∗ é um morfismo de monóides livres e L ∈ B ∗ V então
ϕ−1 (L) ∈ A∗ V;
Se L ∈ A∗ V e a ∈ A então a−1 L, La−1 ∈ A∗ V.
Proposição.
As classes J, R, L e A são pseudovariedades de monóides.
− − − − −−
(1)
Na realidade, não é necessário exigir o fecho para a intersecção visto que
resulta do fecho para a união e complementação: dado um conjunto X e dados
X1 , X2 ⊆ X , tem-se X1 ∩ X2 = X \ (X \ X1 ∪ X \ X2 ).
Demonstração. [Exercı́cio.]
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
129 / 134
Exemplo.
Tendo em conta o teorema do slide §2.50, a classe Rec que associa a cada
alfabeto A o conjunto Rec(A∗ ) das linguagens reconhecı́veis de A∗ é uma
∗-variedade de linguagens.
Recordemos que, dado um alfabeto A, definimos o conjunto Rat(A∗ ) das
linguagens racionais de A∗ como sendo o menor conjunto (para a relação
de inclusão) de linguagens de A∗ contendo as linguagens ∅ e {a}, com
a ∈ A, e fechado para as operações de união (finita), produto e estrela. De
acordo com o teorema do slide §2.50, Rat(A∗ ) forma uma álgebra de
Boole, pelo que podemos definir Rat(A∗ ) como sendo o menor conjunto de
linguagens de A∗ contendo as linguagens ∅ e {a}, com a ∈ A, e fechado
para as operações de Boole (finitas), para o produto e para a estrela.
Se nesta definição suprimirmos a operação estrela, obtemos o conjunto de
linguagens designadas por inteiras ou livre de estrela. Assim:
Definição.
Uma linguagem L de A∗ diz-se inteira ou livre de estrela se pertencer ao
menor conjunto A∗ StFr de linguagens de A∗ contendo as linguagens ∅ e
{a}, com a ∈ A, e fechado para as operações de união (finita), intersecção
(finita), complementação e produto.
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
131 / 134
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
130 / 134
Proposição.
A classe de linguagens reconhecı́veis StFr que associa a cada alfabeto A o
conjunto A∗ StFr das linguagens livres de estrela de A∗ é uma ∗-variedade
de linguagens.
Definição.
Uma linguagem L de A∗ diz-se testável por pedaços se puder ser obtida a
partir de linguagens da forma A∗ a1 A∗ a2 A∗ · · · A∗ an A∗ , com n ≥ 0 e
a1 , a2 , . . . , an ∈ A, usando um número finito de vezes as operações
booleanas (união finita, intersecção finita e complementação).
Proposição.
A classe de linguagens reconhecı́veis PiTe que associa a cada alfabeto A o
conjunto A∗ PiTe das linguagens testáveis por pedaços de A∗ é uma
∗-variedade de linguagens.
Observação.
Toda a linguagem testável por pedaços é livre de estrela. [Exercı́cio.]
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
132 / 134
3.3 O Teorema (das Variedades) de Eilenberg
3.4 Exemplos
Sejam V uma pseudovariedade de monóides e A um alfabeto. Denotamos
por A∗ V o conjunto das linguagens (reconhecı́veis) de A∗ cujo monóide
sintático pertence a V.
Proposição.
Nas condições anteriores, A∗ V é o conjunto das linguagens reconhecidas
por um monóide de V.
Exemplo.
Demonstração. [Exercı́cio.]
Proposição.
Seja V uma pseudovariedade de monóides. A função V que associa a cada
alfabeto A o conjunto A∗ V é uma ∗-variedade de linguagens.
Claramente, M −→ Rec, pela correspondência de Eilenberg.
Teorema. [Schützenberger]
Uma linguagem L de A∗ é livre de estrela se e só se o monóide sintático
M(L) é (finito e) aperiódico (i.e. M(L) ∈ A).
Corolário.
Se A −→ A pela correspondência de Eilenberg então A é a ∗-variedade de
linguagens livres de estrela (atrás denotada por StFr).
Demonstração. [Exercı́cio.]
Teorema. [Simon]
Uma linguagem L de A∗ é testável por pedaços se e só se o monóide
sintático M(L) é (finito e) J-trivial (i.e. M(L) ∈ J).
Teorema. [Eilenberg]
A correspondência V −→ V define uma bijecção entre pseudovariedades de
monóides e ∗-variedades de linguagens.
Corolário.
Se J −→ J pela correspondência de Eilenberg então J é a ∗-variedade de
linguagens testáveis por pedaços (atrás denotada por PiTe).
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
133 / 134
Departamento de Matemática (FCT/UNL)
TAA 2010-2011
134 / 134
Download