Anda di halaman 1dari 139

1.

Linguagens Regulares e Autmatos Finitos


EXA 858 Aspectos Tericos da Computao
Profa. Pmela M. Cndida Cortez
pamela@uefs.br
Departamento de Cincias Exatas DEXA
Universidade Estadual de Feira de Santana UEFS
2014.1
1 / 139
1
Motivao e Cronograma
2
Denies bsicas
3
Relembrando Prove que
4
Prova do algoritmo de Prim
5
Autmatos de Estados Finitos
6
Expresses Regulares
7
Linguagem Regular
8
Lema do bombeamento
9
Gramtica Linear a Direita
2 / 139
What do I desire? What if money was no object ...
font: http://www.youtube.com/watch?v=je3rQevW-cw
Michael Sandel: What Money Cant Buy
https://www.youtube.com/watch?v=GvDpYHyBlgc
Eduardo Marinho: O que a razo no alcana
www.youtube.com/watch?feature=endscreen&NR=1&v=U08cmyvhtFs
3 / 139
What do I desire? What if money was no object ...
font: http://www.youtube.com/watch?v=je3rQevW-cw
Michael Sandel: What Money Cant Buy
https://www.youtube.com/watch?v=GvDpYHyBlgc
Eduardo Marinho: O que a razo no alcana
www.youtube.com/watch?feature=endscreen&NR=1&v=U08cmyvhtFs
4 / 139
Gee, Brain. What are we going to do tonight?
font: http://www.code.org/teach
Mas como nada perfeito, mesmo no gostando, preciso escrever bem!
Dr. Kristin Sainani Stanford:
https://www.coursera.org/course/sciwrite
Prof. Dr. Valtecir Zucolotto USP: www.escritacientifica.com/
coursera Stanford: https://class.coursera.org/compilers
coursera Stanford: https://www.coursera.org/course/automata
5 / 139
Cronograma
Nota 1: Nota da 1 prova terica;
Nota 2: Nota da 2 prova terica;
Nota 3: Mdia aritmtica dos 2 trabalhos prticos.
Faltas:
nota 7 ? win : 3 nota < 7 && frequencia 75% ? nal : game over!
6 / 139
a course in theory is requiredGod knows why
Preface of Hopcroft et al., p. v
(...) we believe that the theoretical, mind-expanding exercises embodied in
the typical automata course retain their value, no matter how much the
student prefers to learn only the most immediately monetizable technology.
Preface of Sipser, p. xii
The best computer designs and applications are conceived with elegance in
mind. A theoretical course can heighten your asthetic sense and help you
build more beautiful systems.
7 / 139
Finite automata are a useful model for
1
Software for designing and checking the behavior of digital circuits;
2
The lexical analyser of a typical compiler, that is, the compiler
component that breaks the input text into logical units, such as
identiers, keywords, and punctuation;
3
Software for verifying systems of all types that have a nite number of
distinct states, such as communications protocols or protocols for
secure exchange of information.
font: Hopcroft et al., 2007, p. 2
1
Designing a new programming language for a specialized application?
What you learned about grammars in this course comes in handy;
2
Dealing with string searching and pattern matching? Remember nite
automata and regular expression;
3
Various application areas, such as modern cryptographic protocols,
rely on theoretical principles that you will learn here.
font: Sipser, M., 2012, p. xii
8 / 139
Introduo teoria dos Alfabetos
Alfabetos: conjunto nito de smbolos
alfabeto binrio: = 0, 1
alfabeto de letras minsculas: = a, b, , z
Cadeias: sequencia nita de smbolos pertencentes a um alfabeto
Por exemplo, 01101000111, 0011 e 1 so cadeias do alfabeto binrio.
Tamanho de uma cadeia ([w[): [0011[ = 4; [[ = 0.
Linguagens: conjunto (nito ou innito) de cadeias
Denio: L

uma linguagem sobre .


L = 0
n
1
n
[n 0 = , 01, 0011, 000111, ;
L = w[w tem o mesmo nmero de 0s e 1s =
, 01, 10, 0011, 1100, 0110, 1001, 0101, ;
L = w[w um nmero primo = 10, 11, 101, 111, 1011, ;
9 / 139
Introduo teoria das Linguagens Formais
Seja x = a
1
a
2
a
i
, y = b
1
b
2
b
j
.
Concatenao de x e y: xy = a
1
a
2
a
i
b
1
b
2
b
j
e [xy[ = i + j .
Concatenao de duas linguagens L
1
e L
2
: conjunto de todas as
cadeias obtidas concatenando qualquer elemento de L
1
com qualquer
elemento de L
2
:
L
1
L
2
= xy [ x L
1
e y L
2
;
Seja L
1
= a, b, c, L
2
= d, e.
L
1
L
2
= ad, ae, bd, be, cd, ce;
Concatenando a cadeia w com ela prpria n vezes:
w
n
= ww
n1
; w
0
= ;
Concatenando linguagem: L
0
= ; L
1
= L; L
n
= LL
n1
;
L = a
n
b
n
[ n 0; L
2
= LL = a
i
b
i
a
k
b
k
[ i , k 0
Unio de duas linguagens: L
1
L
2
= w [ w L
1
ou L
2
.
L
1
= a, b, c, L
2
= d, e. L
1
L
2
= a, b, c, d, e;
font: Hopcroft et al., 2007, p. 2832;
10 / 139
Introduo teoria das Linguagens Formais
Seja x = a
1
a
2
a
i
, y = b
1
b
2
b
j
.
Concatenao de x e y: xy = a
1
a
2
a
i
b
1
b
2
b
j
e [xy[ = i + j .
Concatenao de duas linguagens L
1
e L
2
: conjunto de todas as
cadeias obtidas concatenando qualquer elemento de L
1
com qualquer
elemento de L
2
:
L
1
L
2
= xy [ x L
1
e y L
2
;
Seja L
1
= a, b, c, L
2
= d, e. L
1
L
2
= ad, ae, bd, be, cd, ce;
Concatenando a cadeia w com ela prpria n vezes:
w
n
= ww
n1
; w
0
= ;
Concatenando linguagem: L
0
=
; L
1
= L; L
n
= LL
n1
;
L = a
n
b
n
[ n 0; L
2
= LL = a
i
b
i
a
k
b
k
[ i , k 0
Unio de duas linguagens: L
1
L
2
= w [ w L
1
ou L
2
.
L
1
= a, b, c, L
2
= d, e. L
1
L
2
= a, b, c, d, e;
font: Hopcroft et al., 2007, p. 2832;
11 / 139
Introduo teoria das Linguagens Formais
Seja x = a
1
a
2
a
i
, y = b
1
b
2
b
j
.
Concatenao de x e y: xy = a
1
a
2
a
i
b
1
b
2
b
j
e [xy[ = i + j .
Concatenao de duas linguagens L
1
e L
2
: conjunto de todas as
cadeias obtidas concatenando qualquer elemento de L
1
com qualquer
elemento de L
2
:
L
1
L
2
= xy [ x L
1
e y L
2
;
Seja L
1
= a, b, c, L
2
= d, e. L
1
L
2
= ad, ae, bd, be, cd, ce;
Concatenando a cadeia w com ela prpria n vezes:
w
n
= ww
n1
; w
0
= ;
Concatenando linguagem: L
0
= ; L
1
= L; L
n
= LL
n1
;
L = a
n
b
n
[ n 0; L
2
= LL = a
i
b
i
a
k
b
k
[ i , k 0
Unio de duas linguagens: L
1
L
2
= w [ w L
1
ou L
2
.
L
1
= a, b, c, L
2
= d, e. L
1
L
2
= a, b, c, d, e;
font: Hopcroft et al., 2007, p. 2832; 12 / 139
Introduo teoria das Linguagens Formais
Fecho estrela:

=
0

1

2
.
Fecho positivo de um alfabeto:
+
=

.
= 0, 1

= , 0, 1, 00, 01, 10, 11, ;


+
= 0, 1, 00, .
L

i =0
L
i
= L
0
L
1
L
2
L
3

uma linguagem para qualquer alfabeto ;


Complemento de uma linguagem:
L =

L.
L = w [ [w[ par; L = w [ [w[ mpar.
A linguagem vazia (L = ou L = ) diferente da cadeia vazia ;
A linguagem consistindo apenas da cadeia vazia (L = ) diferente
da linguagem vazia (L = ).
fonte: Bedregal et al., 2010, p. 1213;
13 / 139
Introduo teoria das Linguagens Formais
Fecho estrela:

=
0

1

2
.
Fecho positivo de um alfabeto:
+
=

.
= 0, 1

= , 0, 1, 00, 01, 10, 11, ;


+
= 0, 1, 00, .
L

i =0
L
i
= L
0
L
1
L
2
L
3

uma linguagem para qualquer alfabeto ;


Complemento de uma linguagem: L =

L.
L = w [ [w[ par;
L = w [ [w[ mpar.
A linguagem vazia (L = ou L = ) diferente da cadeia vazia ;
A linguagem consistindo apenas da cadeia vazia (L = ) diferente
da linguagem vazia (L = ).
fonte: Bedregal et al., 2010, p. 1213;
14 / 139
Introduo teoria das Linguagens Formais
Fecho estrela:

=
0

1

2
.
Fecho positivo de um alfabeto:
+
=

.
= 0, 1

= , 0, 1, 00, 01, 10, 11, ;


+
= 0, 1, 00, .
L

i =0
L
i
= L
0
L
1
L
2
L
3

uma linguagem para qualquer alfabeto ;


Complemento de uma linguagem: L =

L.
L = w [ [w[ par; L = w [ [w[ mpar.
A linguagem vazia (L = ou L = ) diferente da cadeia vazia ;
A linguagem consistindo apenas da cadeia vazia (L = ) diferente
da linguagem vazia (L = ).
fonte: Bedregal et al., 2010, p. 1213;
15 / 139
Is it a Language or a Problem?
Languages and problems are really the same thing:
given a string w

, decide whether or not w is in L.


When we care only about strings for their own sake, then we tend to
think of the set of strings as a language;
formal: formato da cadeia, pode no ter um signicado...
In theory of computation, we shall tend to assign semantics to the
strings:
think of strings as coding graphs, logical expressions, or even integers.
font: Hopcroft et al., 2007, p. 31;
16 / 139
Gramticas
Gera uma linguagem atravs de suas regras de produo.
Denio: Uma gramtica G denida como uma qudrupla
G = V, , S, P, onde
V o alfabeto no terminal ou alfabeto de varivel para a gramtica;
o alfabeto terminal para a gramtica;
S a varivel de incio (S V);
P um conjunto nito de produes: v w, onde v uma cadeia em
(V) com pelo menos 1 smbolo no terminal e w uma cadeia em
( V)

.
G = S, a, b, S, P, onde P dado por:
S aSb
S
17 / 139
Linguagem gerada pela gramtica
Denio: A linguagem L(G) o conjunto de cadeias terminais
derivveis do smbolo inicial:
L(G) = w[w

e S

w
Derivao: para w L(G), a derivao de w :
S w
1
w
2
w
n
w;
Formas sentenciais da derivao: S, w
1
, w
2
, , w
n
.
Contm variveis e objetos terminais.
Considere a gramtica G
1
= S, a, b, S, P, onde P dado por:
S aSb [
Qual a linguagem L(G
1
)?
18 / 139
Linguagem gerada pela gramtica
Encontrar uma gramtica que gere a linguagem L = a
n
b
n+1
[n 0.
Encontrar uma gramtica que gere a linguagem dos parnteses
casados.
a cadeia () bem formada;
se a cadeia A bem formada, ento a cadeia (A) tambm ;
se as cadeias A e B so bem formadas, ento a cadeia AB tambm .
G = S, (, ), S, P, onde P dado por:
S ()
S (S)
S SS
19 / 139
Linguagem gerada pela gramtica
Encontrar uma gramtica que gere a linguagem L = a
n
b
n+1
[n 0.
Encontrar uma gramtica que gere a linguagem dos parnteses
casados.
a cadeia () bem formada;
se a cadeia A bem formada, ento a cadeia (A) tambm ;
se as cadeias A e B so bem formadas, ento a cadeia AB tambm .
G = S, (, ), S, P, onde P dado por:
S ()
S (S)
S SS
20 / 139
Demonstrao e algoritmo
Teorema pode ser visto como um problema

Algoritmo a resoluo para o problema, se for demonstrado sua


corretude, funcionar para qualquer entrada!
Tautologia: sentena que sempre verdadeira
p p
Contradio: sentena que sempre falsa
p p
21 / 139
Denies
Axioma: armao suposta verdadeira, hiptese inicial;
Teorema: termo foi introduzido por Euclides, em Elementos, para
signicar armao que pode ser provada
1
;
Corolrio: teorema que consequncia quase direta de outro j
demonstrado;
Lema: teorema auxiliar importante para demonstrao de outro
teorema.
Teoria e Lei
Por que caram de fora?
So conceitos mais ligados a cincia experimental!
1
http://pt.wikipedia.org/wiki/Teorema
22 / 139
Denies
Axioma: armao suposta verdadeira, hiptese inicial;
Teorema: termo foi introduzido por Euclides, em Elementos, para
signicar armao que pode ser provada
1
;
Corolrio: teorema que consequncia quase direta de outro j
demonstrado;
Lema: teorema auxiliar importante para demonstrao de outro
teorema.
Teoria e Lei
Por que caram de fora?
So conceitos mais ligados a cincia experimental!
1
http://pt.wikipedia.org/wiki/Teorema
23 / 139
Teoria e Lei
Lei: hiptese com considervel nmero de evidncias, descreve um
fato observvel, por exemplo, Lei da Gravidade. Ela explica
por que os objetos caem?
Teoria: Teorias explicam! Mas diferente dos teoremas, podem ser
reformuladas, ou mesmo abandonadas. Ainda bem que Higgs
estava certo!
24 / 139
Deductive Proofs
Sequence of statements whose truth leads us from some initial statement,
called the hypothesis, to a conclusion statement.
Theorem: sin
2
+ cos
2
= 1.
1
hypothesis?
is an angle.
Theorem: Let x be a real number. Then x| = ,x| i x is an
integer.
1
hypothesis? x| = ,x|.
2
hypothesis? x is an integer.
font: Hopcroft et al., 2007, p. 13;
25 / 139
Deductive Proofs
Sequence of statements whose truth leads us from some initial statement,
called the hypothesis, to a conclusion statement.
Theorem: sin
2
+ cos
2
= 1.
1
hypothesis? is an angle.
Theorem: Let x be a real number. Then x| = ,x| i x is an
integer.
1
hypothesis? x| = ,x|.
2
hypothesis? x is an integer.
font: Hopcroft et al., 2007, p. 13;
26 / 139
Deductive Proofs
Sequence of statements whose truth leads us from some initial statement,
called the hypothesis, to a conclusion statement.
Theorem: sin
2
+ cos
2
= 1.
1
hypothesis? is an angle.
Theorem: Let x be a real number. Then x| = ,x| i x is an
integer.
1
hypothesis?
x| = ,x|.
2
hypothesis? x is an integer.
font: Hopcroft et al., 2007, p. 13;
27 / 139
Deductive Proofs
Sequence of statements whose truth leads us from some initial statement,
called the hypothesis, to a conclusion statement.
Theorem: sin
2
+ cos
2
= 1.
1
hypothesis? is an angle.
Theorem: Let x be a real number. Then x| = ,x| i x is an
integer.
1
hypothesis? x| = ,x|.
2
hypothesis? x is an integer.
font: Hopcroft et al., 2007, p. 13;
28 / 139
Deductive Proofs
Sequence of statements whose truth leads us from some initial statement,
called the hypothesis, to a conclusion statement.
Theorem: sin
2
+ cos
2
= 1.
1
hypothesis? is an angle.
Theorem: Let x be a real number. Then x| = ,x| i x is an
integer.
1
hypothesis? x| = ,x|.
2
hypothesis? x is an integer.
font: Hopcroft et al., 2007, p. 13;
29 / 139
Proof by Contradiction
H C (H C) F
Show that something known to be false follows logically from H and not C.
Theorem: Let S be a nite subset of some innite set U. Let T be
the complement of S with respect to U. Then T is innite.
1
S T = U and S T = , so [S[ +[T[ = [U[ (T is the complement)
2
n N [ [S[ = n (S is a nite subset)
3
p R [ [U[ = p (U is an innite set)
4
C : m N [ [T[ = m
5
[U[ = [S[ +[T[ = n + m, which contradicts 3.
30 / 139
Proof by Contradiction
H C (H C) F
Show that something known to be false follows logically from H and not C.
Theorem: Let S be a nite subset of some innite set U. Let T be
the complement of S with respect to U. Then T is innite.
1
S T = U and S T = , so [S[ +[T[ = [U[ (T is the complement)
2
n N [ [S[ = n (S is a nite subset)
3
p R [ [U[ = p (U is an innite set)
4
C : m N [ [T[ = m
5
[U[ = [S[ +[T[ = n + m, which contradicts 3.
31 / 139
Proof by Contradiction
H C (H C) F
Show that something known to be false follows logically from H and not C.
Theorem: Let S be a nite subset of some innite set U. Let T be
the complement of S with respect to U. Then T is innite.
1
S T = U and S T = , so [S[ +[T[ = [U[ (T is the complement)
2
n N [ [S[ = n (S is a nite subset)
3
p R [ [U[ = p (U is an innite set)
4
C : m N [ [T[ = m
5
[U[ = [S[ +[T[ = n + m, which contradicts 3.
32 / 139
Induo matemtica
Consiste em inferir uma lei geral a partir de instncias particulares.
Base de induo: vericar a proposio para o caso base;
Hiptese de induo: assumir que a proposio verdadeira para uma
dada entrada k;
Passo indutivo: provar que a proposio verdadeira para k + 1.
33 / 139
Prova do algoritmo de Prim
rvore geradora
de um grafo conexo G um sub-grafo acclico e conexo (ou seja, uma
rvore) que contm todos os vrtices de G.
Algoritmo de Prim: iniciando de um vrtice qualquer, a cada iterao i
selecionar a aresta de menor peso que liga um vrtice v qualquer em T
i
a
um vrtice u qualquer que no est em T
i
.
O algoritmo de Prim sempre conduz a uma rvore geradora mnima
(minimum spanning tree MST)?
Sim! Vamos provar por induo que cada uma das sub-rvores
T
i
, i = 0, , n 1 gerada pelo algoritmo de Prim parte de uma MST T.
Lembre-se que para provar por induo temos 3 passos:
font: Levitin, A., 2011, p. 318322;
34 / 139
Prova do algoritmo de Prim
1
Caso base: T
0
parte de alguma MST T.
2
Hiptese de induo: T
i 1
, gerada at a (i 1)-sima iterao do
algoritmo de Prim, parte de alguma MST T.
3
Passo indutivo: T
i
, gerada a partir de T
i 1
usando o algoritmo de
Prim, tambm parte de T.
Provar o caso base muito fcil:
T
0
composta por apenas um vrtice (qualquer vrtice);
a MST tem todos os vrtices do grafo original G;
portanto, T
0
parte de T.
Hiptese algo que assumimos como verdade, no se prova!
A questo : como provar o passo indutivo?
35 / 139
Prova do algoritmo de Prim
1
por contradio, assuma que T
i
no faz parte de nenhuma MST T;
2
T
i
= T
i 1
+ e
i
;
3
e
i
= (v, u) a aresta selecionada pelo algoritmo de Prim na iterao i ;
4
se adicionarmos e
i
a T, criaremos um ciclo (estamos assumindo por
contradio que e
i
/ T);
5
para resolver o ciclo, poderamos tirar alguma aresta de T
i 1
ou e
i
ou
(v

, u

), que a aresta que liga T


i 1
ao resto da rvore;
6
tirando (v

, u

) obteremos uma rvore T


p
[ T
i
T
p
e w
T
p
w
T
,
7
(pois e
i
a aresta de menor peso que liga T
i 1
a um vrtice que no
est em, T
i 1
);
8
isso contradiz 1, pois da denio de MST: w
T
p
w
T
;
9
portanto provamos por contradio que T, para ser uma MST, deve
ter T
i
como parte;
10
o que prova nosso passo indutivo, e assim terminamos tambm a
prova por induo
36 / 139
Autmatos de Estados Finitos
Dealing with string searching and pattern matching? Remember nite
automata and regular expression Sipser, M., 2012, p. xii
reconhece uma cadeia de entrada.
A execuo no termina quando se atinge um estado nal. preciso
completar a leitura da cadeia de entrada.
37 / 139
Autmatos de Estados Finitos
38 / 139
Autmatos de Estados Finitos
Denio: Um autmato nito determinstico (AFD) denido
como uma quntupla Q, , , q
0
, F, onde
Q um conjunto nito de estados;
o alfabeto de entrada;
a funo (total) de transio de estados (Q Q);
q
0
a varivel de incio (q
0
Q);
F o conjunto de estados de aceitao (F Q).
39 / 139
L
2
= w [ w a cadeia vazia ou w termina em zero
M
2
= q
0
, q
1
, 0, 1, , q
0
, q
0

40 / 139
L
2
= w [ w a cadeia vazia ou w termina em zero
M
2
= q
0
, q
1
, 0, 1, , q
0
, q
0

41 / 139
L
3
= w [ ???
M
3
= s, q
1
, q
2
, r
1
, r
2
, a, b, , s, q
1
, r
1

L
3
= w [ w starts and ends with the same symbol
42 / 139
L
3
= w [ ???
M
3
= s, q
1
, q
2
, r
1
, r
2
, a, b, , s, q
1
, r
1

L
3
= w [ w starts and ends with the same symbol
43 / 139
Todas as cadeias binrias com quantidade mpar de 1
/
s
M
4
= par , impar , 0, 1, , par , impar
44 / 139
Todas as cadeias binrias com quantidade mpar de 1
/
s
M
4
= par , impar , 0, 1, , par , impar
45 / 139
Todas as cadeias binrias contendo a sub-cadeia 001
M
5
= q, q
0
, q
00
, q
001
, 0, 1, , q, q
001

46 / 139
Todas as cadeias binrias contendo a sub-cadeia 001
M
5
= q, q
0
, q
00
, q
001
, 0, 1, , q, q
001

47 / 139
w no tem 1
/
s consecutivos e tem quantidade par de 0
/
s
48 / 139
w no tem 1
/
s consecutivos e tem quantidade par de 0
/
s
49 / 139
Funo de transio estendida
Denio:

: Q

Q denida recursivamente como:


Caso base:

(q, ) = q
Passo de induo:

(q, wx) = (

(q, w), x)
q Q, w

, x .

(q
0
, aab) = (

(q
0
, aa), b)
= ((

(q
0
, a), a), b)
= (((

(q
0
, ), a), a), b)
= (((q
0
, a), a), b)
= ((q
0
, a), b)
= (q
0
, b)
= q
1
50 / 139
Funo de transio estendida
Denio:

: Q

Q denida recursivamente como:


Caso base:

(q, ) = q
Passo de induo:

(q, wx) = (

(q, w), x)
q Q, w

, x .

(q
0
, aab) = (

(q
0
, aa), b)
= ((

(q
0
, a), a), b)
= (((

(q
0
, ), a), a), b)
= (((q
0
, a), a), b)
= ((q
0
, a), b)
= (q
0
, b)
= q
1
51 / 139
Funo de transio estendida
Denio:

: Q

Q denida recursivamente como:


Caso base:

(q, ) = q
Passo de induo:

(q, wx) = (

(q, w), x)
q Q, w

, x .

(q
0
, aab) = (

(q
0
, aa), b)
= ((

(q
0
, a), a), b)
= (((

(q
0
, ), a), a), b)
= (((q
0
, a), a), b)
= ((q
0
, a), b)
= (q
0
, b)
= q
1
52 / 139
Funo de transio estendida
Denio:

: Q

Q denida recursivamente como:


Caso base:

(q, ) = q
Passo de induo:

(q, wx) = (

(q, w), x)
q Q, w

, x .

(q
0
, aab) = (

(q
0
, aa), b)
= ((

(q
0
, a), a), b)
= (((

(q
0
, ), a), a), b)
= (((q
0
, a), a), b)
= ((q
0
, a), b)
= (q
0
, b)
= q
1
53 / 139
Funo de transio estendida
Denio:

: Q

Q denida recursivamente como:


Caso base:

(q, ) = q
Passo de induo:

(q, wx) = (

(q, w), x)
q Q, w

, x .

(q
0
, aab) = (

(q
0
, aa), b)
= ((

(q
0
, a), a), b)
= (((

(q
0
, ), a), a), b)
= (((q
0
, a), a), b)
= ((q
0
, a), b)
= (q
0
, b)
= q
1
54 / 139
Funo de transio estendida
Denio:

: Q

Q denida recursivamente como:


Caso base:

(q, ) = q
Passo de induo:

(q, wx) = (

(q, w), x)
q Q, w

, x .

(q
0
, aab) = (

(q
0
, aa), b)
= ((

(q
0
, a), a), b)
= (((

(q
0
, ), a), a), b)
= (((q
0
, a), a), b)
= ((q
0
, a), b)
= (q
0
, b)
= q
1
55 / 139
Funo de transio estendida
Denio:

: Q

Q denida recursivamente como:


Caso base:

(q, ) = q
Passo de induo:

(q, wx) = (

(q, w), x)
q Q, w

, x .

(q
0
, aab) = (

(q
0
, aa), b)
= ((

(q
0
, a), a), b)
= (((

(q
0
, ), a), a), b)
= (((q
0
, a), a), b)
= ((q
0
, a), b)
= (q
0
, b)
= q
1
56 / 139
Funo de transio estendida
Denio:

: Q

Q denida recursivamente como:


Caso base:

(q, ) = q
Passo de induo:

(q, wx) = (

(q, w), x)
q Q, w

, x .

(q
0
, aab) = (

(q
0
, aa), b)
= ((

(q
0
, a), a), b)
= (((

(q
0
, ), a), a), b)
= (((q
0
, a), a), b)
= ((q
0
, a), b)
= (q
0
, b)
= q
1
57 / 139
L
6
= ab, aabb, aaabbb
M
6
= q
0
, q
1
, , q
12
, a, b, , q
0
, q
2
, q
6
, q
12

58 / 139
L
6
= ab, aabb, aaabbb
M
6
= q
0
, q
1
, , q
12
, a, b, , q
0
, q
2
, q
6
, q
12

59 / 139
Autmato Finito No Determinstico
Denio: Um autmato nito no determinstico (AFN) denido
como uma quntupla Q, , , Q
0
, F, onde
Q um conjunto nito de estados;
o alfabeto de entrada;
atribui a cada par (q, x) um conjunto de prximos estados possveis
(Q 2
Q
);
Q
0
o conjunto de estados iniciais (Q
0
Q);
F o conjunto de estados de aceitao (F Q).
Denio:

: 2
Q

2
Q
denida recursivamente como:
Caso base:

(q, ) = q
Passo de induo:

(q

, wx) =

(q, x)[q

(q

, w)
q Q, w

, x .
60 / 139
Autmato Finito No Determinstico
Denio: Um autmato nito no determinstico (AFN) denido
como uma quntupla Q, , , Q
0
, F, onde
Q um conjunto nito de estados;
o alfabeto de entrada;
atribui a cada par (q, x) um conjunto de prximos estados possveis
(Q 2
Q
);
Q
0
o conjunto de estados iniciais (Q
0
Q);
F o conjunto de estados de aceitao (F Q).
Denio:

: 2
Q

2
Q
denida recursivamente como:
Caso base:

(q, ) = q
Passo de induo:

(q

, wx) =

(q, x)[q

(q

, w)
q Q, w

, x .
61 / 139
Autmato Finito No Determinstico
Uma cadeia w

aceita por um AFN M se existe pelo menos um


caminho que leva a um estado de aceitao.
Denio: Seja M = Q, , , Q
0
, F. A linguagem aceita ou reco-
nhecida por um AFN o conjunto de todas as cadeias aceitas por M:
L(M) = w[w

(Q
0
, w) F ,=
1
H 2 estados iniciais: q
0
e q
2
;
2
O AFD equivalente possui 2
|Q|
= 8 estados, nem todos atingveis.
62 / 139
Autmato Finito No Determinstico
Uma cadeia w

aceita por um AFN M se existe pelo menos um


caminho que leva a um estado de aceitao.
Denio: Seja M = Q, , , Q
0
, F. A linguagem aceita ou reco-
nhecida por um AFN o conjunto de todas as cadeias aceitas por M:
L(M) = w[w

(Q
0
, w) F ,=
1
H 2 estados iniciais: q
0
e q
2
;
2
O AFD equivalente possui 2
|Q|
= 8 estados, nem todos atingveis.
63 / 139
Cadeias binrias nas quais o antepenltimo smbolo 1.
M
7
= q
1
, q
2
, q
3
, q
4
, 0, 1, , q
1
, q
4

64 / 139
Cadeias binrias nas quais o antepenltimo smbolo 1.
M
7
= q
1
, q
2
, q
3
, q
4
, 0, 1, , q
1
, q
4

65 / 139
Converso de AFN para AFD
1
1 nico estado inicial: q
02
a unio dos estados iniciais;
2
funo de transio de estados: cada novo conjunto de estados
atingveis tambm so unidos em um nico estado.
a b
{q
0
, q
2
} {q
2
, q
1
} {q
0
, q
2
}
{q
2
, q
1
} {q
1
} {q
1
}
{q
1
} {q
1
} {q
1
}
a b
q
02
q
21
q
02
q
21
q
1
q
1
q
1
q
1
q
1
Qual tem maior poder computacional?
fonte: Rosa, J. L. G., 2010, I. Linguagens Regulares e Autmatos Finitos
66 / 139
Converso de AFN para AFD
1
1 nico estado inicial: q
02
a unio dos estados iniciais;
2
funo de transio de estados: cada novo conjunto de estados
atingveis tambm so unidos em um nico estado.
a b
{q
0
, q
2
} {q
2
, q
1
} {q
0
, q
2
}
{q
2
, q
1
} {q
1
} {q
1
}
{q
1
} {q
1
} {q
1
}
a b
q
02
q
21
q
02
q
21
q
1
q
1
q
1
q
1
q
1
Qual tem maior poder computacional?
fonte: Rosa, J. L. G., 2010, I. Linguagens Regulares e Autmatos Finitos
67 / 139
Converso de AFN para AFD
1
1 nico estado inicial: q
02
a unio dos estados iniciais;
2
funo de transio de estados: cada novo conjunto de estados
atingveis tambm so unidos em um nico estado.
a b
{q
0
, q
2
} {q
2
, q
1
} {q
0
, q
2
}
{q
2
, q
1
} {q
1
} {q
1
}
{q
1
} {q
1
} {q
1
}
a b
q
02
q
21
q
02
q
21
q
1
q
1
q
1
q
1
q
1
Qual tem maior poder computacional?
fonte: Rosa, J. L. G., 2010, I. Linguagens Regulares e Autmatos Finitos
68 / 139
Converso de AFN para AFD
1
1 nico estado inicial: q
02
a unio dos estados iniciais;
2
funo de transio de estados: cada novo conjunto de estados
atingveis tambm so unidos em um nico estado.
a b
{q
0
, q
2
} {q
2
, q
1
} {q
0
, q
2
}
{q
2
, q
1
} {q
1
} {q
1
}
{q
1
} {q
1
} {q
1
}
a b
q
02
q
21
q
02
q
21
q
1
q
1
q
1
q
1
q
1
Qual tem maior poder computacional?
fonte: Rosa, J. L. G., 2010, I. Linguagens Regulares e Autmatos Finitos
69 / 139
Exerccio
1
AFD que reconhece a linguagem composta por cadeias binrias que
terminam com o smbolo 1 e no tem 0

s consecutivos.
2
AFD equivalente ao AFN da gura abaixo:
70 / 139
Arcos-
Permite a mudana de estado sem consumir smbolo da cadeia terminal.
AF E = q
0
, q
1
, a, b, , q
0
, q
1
, onde dado por:
a b
q
0
{q
0
} {q
1
}
q
1
{q
1
}
Fecho-
Base: q fecho-(q);
Induo: se p fecho-(q) e (p, ) = r , ento r fecho-(q).
71 / 139
Arcos-
Algoritmo 1: Eliminando arcos-
1 /* encontrar o estado inicial do AFD equivalente: */;
2 q
0
D
= fecho-(q
0
) /* = q
0
, q
1
, q
2
*/;
3 superset = q
0
D
;
4 /* calcular as transies a partir do estado inicial */;
5 while !superset.is_empty do
6 S = superset.remove(0) /* = q
0
, q
1
, q
2
*/;
7 for x do
8 R =

|S|
i =1

E
(q
i
, x);
9 (S, x) =

|R|
i =1
fecho-(r
i
);
10 superset.add((S, x) S);
72 / 139
Eliminando arcos-

S = q
0
, q
1
, q
2

|S|
i =1

E
(q
i
, 0) = q
0

(S, 0) = fecho-(q
0
) = q
0
, q
1
, q
2

S = q
0
, q
1
, q
2

|S|
i =1

E
(q
i
, 1) = q
1

(S, 1) = fecho-(q
1
) = q
1
, q
2

S = q
0
, q
1
, q
2

|S|
i =1

E
(q
i
, 2) = q
2

(S, 2) = fecho-(q
2
) = q
2

S = q
1
, q
2

|S|
i =1

E
(q
i
, 1) = q
1

(S, 2) = fecho-(q
1
) = q
1
, q
2

73 / 139
Eliminando arcos-

S = q
0
, q
1
, q
2

|S|
i =1

E
(q
i
, 0) = q
0

(S, 0) = fecho-(q
0
) = q
0
, q
1
, q
2

S = q
0
, q
1
, q
2

|S|
i =1

E
(q
i
, 1) = q
1

(S, 1) = fecho-(q
1
) = q
1
, q
2

S = q
0
, q
1
, q
2

|S|
i =1

E
(q
i
, 2) = q
2

(S, 2) = fecho-(q
2
) = q
2

S = q
1
, q
2

|S|
i =1

E
(q
i
, 1) = q
1

(S, 2) = fecho-(q
1
) = q
1
, q
2

74 / 139
Eliminando arcos-

S = q
0
, q
1
, q
2

|S|
i =1

E
(q
i
, 0) = q
0

(S, 0) = fecho-(q
0
) = q
0
, q
1
, q
2

S = q
0
, q
1
, q
2

|S|
i =1

E
(q
i
, 1) = q
1

(S, 1) = fecho-(q
1
) = q
1
, q
2

S = q
0
, q
1
, q
2

|S|
i =1

E
(q
i
, 2) = q
2

(S, 2) = fecho-(q
2
) = q
2

S = q
1
, q
2

|S|
i =1

E
(q
i
, 1) = q
1

(S, 2) = fecho-(q
1
) = q
1
, q
2

75 / 139
Eliminando arcos-

S = q
0
, q
1
, q
2

|S|
i =1

E
(q
i
, 0) = q
0

(S, 0) = fecho-(q
0
) = q
0
, q
1
, q
2

S = q
0
, q
1
, q
2

|S|
i =1

E
(q
i
, 1) = q
1

(S, 1) = fecho-(q
1
) = q
1
, q
2

S = q
0
, q
1
, q
2

|S|
i =1

E
(q
i
, 2) = q
2

(S, 2) = fecho-(q
2
) = q
2

S = q
1
, q
2

|S|
i =1

E
(q
i
, 1) = q
1

(S, 2) = fecho-(q
1
) = q
1
, q
2

76 / 139
Eliminando arcos-
Importante: todos os estados que contm algum estado q F
E
, estado
de aceitao no AFD.
77 / 139
Minimizao de Estados
Denio: Um AFD M = Q, , , q
0
, F um autmato mnimo se
para qualquer outro autmato M

= Q

, q

0
, F

tal que
L(M) = L(M

) , [Q

[ > Q.
Para aplicar o algoritmo de minimizao, o autmato deve satisfazer os
seguintes pr-requisitos:
1
deve ser determinstico;
2
no deve ter estados inacessveis;
3
a funo de transio de estados deve ser total.
Obter tal autmato simples:
1
eliminar transies- e converter o AFN para AFD;
2
eliminar estados q[q ,= q
0
e (q

, x) ,= q, q

Q, x e suas
transies: (q, x), x ;
3
transformar em funao total, introduzindo um estado sumidouro
e incluindo transies no previstas para este estado.
78 / 139
Algoritmo de Minimizao
1
Construir a tabela de no-equivalncias de estados;
2
marcar estados obviamente no equivalentes: estados nais e no
nais;
3
marcar estados no equivalentes:
Seja (q, x) = p e (q

, x) = p

, para cada par q, q

;
q equivalente a q

para x se p = p

;
se p ,= p

e o par p, p

no est marcado, ento q, q

includo em uma
lista encabeada por p, p

para posterior anlise;


se p ,= p

e o par p, p

est marcado:
q, q

no equivalente e deve ser marcado;


se q, q

cabea de uma lista, marcar todos os elementos da lista;


4
unicar estados equivalentes: a equivalncia transitiva, portanto:
estados no nais equivalentes podem ser unicados como um nico
estado no nal;
estados nais equivalentes podem ser unicados como um nico estado
nal;
79 / 139
Algoritmo de Minimizao
4
unicar estados equivalentes: se algum dos estados equivalentes
inicial, ento o correspondente estado unicado inicial.
5
excluir estados inteis: q intil se no nal ou a partir de q
nenhum estado nal atingvel.
Considere o seguinte AFD que satisfaz as 3 condies do algoritmo de
minimizao:
80 / 139
Algoritmo de Minimizao
1
Construir da tabela de no-equivalncias de estados e
2
marcar estados obviamente no equivalentes: estados nais e no
nais:
3
marcar estados no equivalentes:
q
0
, q
3

(q
0
, a) = q
2
(q
0
, b) = q
1
(q
3
, a) = q
4
(q
3
, b) = q
2
q
1
, q
2
no est marcado criar lista: [q
1
, q
2
, q
0
, q
3
];
q
2
, q
4
no est marcado criar lista: [q
2
, q
4
, q
0
, q
3
];
81 / 139
Algoritmo de Minimizao
q
0
, q
5

(q
0
, a) = q
2
(q
0
, b) = q
1
(q
5
, a) = q
2
(q
5
, b) = q
4
q
1
, q
4
no est marcado criar lista: [q
1
, q
4
, q
0
, q
5
];
q
2
, q
2
obviamente equivalente;
q
1
, q
2

(q
1
, a) = q
1
(q
1
, b) = q
0
(q
2
, a) = q
3
(q
2
, b) = q
5
q
1
, q
3
est marcado marcar q
1
, q
2
;
q
1
, q
2
cabea da lista [q
1
, q
2
, q
0
, q
3
] marcar q
0
, q
3
;
q
1
, q
4

(q
1
, a) = q
1
(q
1
, b) = q
0
(q
4
, a) = q
5
(q
4
, b) = q
3
q
1
, q
5
est marcado marcar q
1
, q
4
;
q
1
, q
4
cabea da lista [q
1
, q
4
, q
0
, q
5
] marcar q
0
, q
5
;
82 / 139
Algoritmo de Minimizao
q
0
, q
5

(q
0
, a) = q
2
(q
0
, b) = q
1
(q
5
, a) = q
2
(q
5
, b) = q
4
q
1
, q
4
no est marcado criar lista: [q
1
, q
4
, q
0
, q
5
];
q
2
, q
2
obviamente equivalente;
q
1
, q
2

(q
1
, a) = q
1
(q
1
, b) = q
0
(q
2
, a) = q
3
(q
2
, b) = q
5
q
1
, q
3
est marcado marcar q
1
, q
2
;
q
1
, q
2
cabea da lista [q
1
, q
2
, q
0
, q
3
] marcar q
0
, q
3
;
q
1
, q
4

(q
1
, a) = q
1
(q
1
, b) = q
0
(q
4
, a) = q
5
(q
4
, b) = q
3
q
1
, q
5
est marcado marcar q
1
, q
4
;
q
1
, q
4
cabea da lista [q
1
, q
4
, q
0
, q
5
] marcar q
0
, q
5
;
83 / 139
Algoritmo de Minimizao
q
0
, q
5

(q
0
, a) = q
2
(q
0
, b) = q
1
(q
5
, a) = q
2
(q
5
, b) = q
4
q
1
, q
4
no est marcado criar lista: [q
1
, q
4
, q
0
, q
5
];
q
2
, q
2
obviamente equivalente;
q
1
, q
2

(q
1
, a) = q
1
(q
1
, b) = q
0
(q
2
, a) = q
3
(q
2
, b) = q
5
q
1
, q
3
est marcado marcar q
1
, q
2
;
q
1
, q
2
cabea da lista [q
1
, q
2
, q
0
, q
3
] marcar q
0
, q
3
;
q
1
, q
4

(q
1
, a) = q
1
(q
1
, b) = q
0
(q
4
, a) = q
5
(q
4
, b) = q
3
q
1
, q
5
est marcado marcar q
1
, q
4
;
q
1
, q
4
cabea da lista [q
1
, q
4
, q
0
, q
5
] marcar q
0
, q
5
;
84 / 139
Algoritmo de Minimizao
q
2
, q
4

(q
2
, a) = q
3
(q
2
, b) = q
5
(q
4
, a) = q
5
(q
4
, b) = q
3
q
3
, q
5
no est marcado criar lista: [q
3
, q
5
, q
2
, q
4
];
q
3
, q
5

(q
3
, a) = q
4
(q
3
, b) = q
2
(q
5
, a) = q
2
(q
5
, b) = q
4
q
2
, q
4
no est marcado adicionar lista:
[q
2
, q
4
, q
0
, q
3
, q
3
, q
5
];
85 / 139
Algoritmo de Minimizao
q
2
, q
4

(q
2
, a) = q
3
(q
2
, b) = q
5
(q
4
, a) = q
5
(q
4
, b) = q
3
q
3
, q
5
no est marcado criar lista: [q
3
, q
5
, q
2
, q
4
];
q
3
, q
5

(q
3
, a) = q
4
(q
3
, b) = q
2
(q
5
, a) = q
2
(q
5
, b) = q
4
q
2
, q
4
no est marcado adicionar lista:
[q
2
, q
4
, q
0
, q
3
, q
3
, q
5
];
86 / 139
Algoritmo de Minimizao
4
unicar estados equivalentes: estados no marcados.
unicao dos estados no nais: q
2
, q
4
;
unicao dos estados nais: q
3
, q
5
;
O autmato mnimo equivalente :
fonte: Rosa, J. L. G., 2010, I. Linguagens Regulares e Autmatos Finitos
87 / 139
L
6
= ab, aabb, aaabbb
M
6
= q
0
, q
1
, , q
9
, a, b, , q
0
, q
3
, q
6
, q
9

88 / 139
Minimizando...
M
8
= q
0
, 1a, 2a, 3a, 1b, 2b, q
f
, a, b, , q
0
, q
f

89 / 139
Linguagem Regular
Uma cadeia w

aceita por um AFD M se

(q
0
, w) F.
Denio: Seja M = Q, , , q
0
, F. A linguagem aceita ou reco-
nhecida por um AFD o conjunto de todas as cadeias aceitas por M:
L(M) = w[w

(q
0
, w) F
Denio: O complemento de L(M) o conjunto de todas as
cadeias para as quais M pra em um estado no nal:
L(M) =

L(M) = w

(q
0
, w) / F
90 / 139
Linguagem Regular
Denio: Uma linguagem chamada Linguagem Regular se
algum autmato nito a reconhece.
Reconhecer uma linguagem L signica aceitar todas as cadeias w L e
no aceitar todas as cadeias w / L.
FA: machine-like description
RE: algebraic description
Em geral, existe um nmero ilimitado de expresses regulares que denotam
a mesma linguagem.
r
1
r
2
L(r
1
) = L(r
2
)
font: Hopcroft et al., 2007, p. 85
91 / 139
Regular Expression (regex) some historical notes
And with the development of the Unix operating system in the 1970s
regular expressions began to be widely used in practical computing in
lexical analysis (lex) and text searching (ed and grep). Regular languages
also arose in dynamical systems theory in the early 1970s under the name
of soc systems.
From: Stephen Wolfram, A New Kind of Science
Notes for Chapter 6: Starting From Randomness
Section: The Notion of Attractors, page 958
http://www.wolframscience.com/reference/notes/958a
Was the rst model?
http://cstheory.stackexchange.com/questions/10104/
is-the-concept-of-the-turing-machine-derived-from-automata
92 / 139
Expresses Regulares
Denio: Seja um alfabeto. Ento
1
, e a, para todo a so expresses regulares primitivas;
2
Se r
1
e r
2
so expresses regulares, ento r
1
+ r
2
, r
1
r
2
a
, r

1
e (r
1
) so
expresses regulares;
3
Uma cadeia uma expresso regular sse pode ser derivada de
expresses regulares primitivas, aplicando a regra 2 um nmero nito
de vezes.
a
We shall avoid the dot as concatenation in regular expressions. In fact, UNIX
regular expressions use the dot representing any ASCII character.
Font: Hopcroft et al., 2007, p. 13
Seja = a, b, c
a cadeia (a + b)

(c c) uma expresso regular;


a cadeia (a + b)

(c c) no uma expresso regular.


93 / 139
Semntica de uma Expresso Regular
Denio: A linguagem L(r ), denotada por uma expresso regular
r , denida pelas seguintes regras:
1
L() = (linguagem vazia);
2
L() = (linguagem contendo um elemento: a cadeia vazia);
3
L(a) = a, a ;
4
Se r
1
e r
2
so expresses regulares, ento:
5
L((r
1
+ r
2
)) = L(r
1
) L(r
2
);
6
L(r
1
r
2
) = L(r
1
)L(r
2
);
7
L((r
1
)

) = (L(r
1
))

.
fonte: Bedregal et al., 2010, p. 5962;
94 / 139
Semntica de uma Expresso Regular
1
Escreva a expresso regular tal que sua semntica seja o conjunto de
cadeias que terminam em a ou bb.
2
r = (a + b)

(a + bb);
3
Qual a linguagem denotada por r = (aa)

(bb)

b?
4
L(r ) = a
2n
b
2m+1
[n, m 0;
5
Para = 0, 1, escreva a expresso regular tal que
L(r ) = w

[w tem pelo menos um par de 0s consecutivos.


6
r = (0 + 1)

00(0 + 1)

;
7
Qual a linguagem denotada por r = (1 + 01)

(0 + )?
8
L(r ) = w

[w no tem qualquer par de 0s consecutivos.


Regular Expressions in UNIX: Hopcroft et al., 2007, p. 109110;
95 / 139
Semntica de uma Expresso Regular
1
Escreva a expresso regular tal que sua semntica seja o conjunto de
cadeias que terminam em a ou bb.
2
r = (a + b)

(a + bb);
3
Qual a linguagem denotada por r = (aa)

(bb)

b?
4
L(r ) = a
2n
b
2m+1
[n, m 0;
5
Para = 0, 1, escreva a expresso regular tal que
L(r ) = w

[w tem pelo menos um par de 0s consecutivos.


6
r = (0 + 1)

00(0 + 1)

;
7
Qual a linguagem denotada por r = (1 + 01)

(0 + )?
8
L(r ) = w

[w no tem qualquer par de 0s consecutivos.


Regular Expressions in UNIX: Hopcroft et al., 2007, p. 109110;
96 / 139
Semntica de uma Expresso Regular
1
Escreva a expresso regular tal que sua semntica seja o conjunto de
cadeias que terminam em a ou bb.
2
r = (a + b)

(a + bb);
3
Qual a linguagem denotada por r = (aa)

(bb)

b?
4
L(r ) = a
2n
b
2m+1
[n, m 0;
5
Para = 0, 1, escreva a expresso regular tal que
L(r ) = w

[w tem pelo menos um par de 0s consecutivos.


6
r = (0 + 1)

00(0 + 1)

;
7
Qual a linguagem denotada por r = (1 + 01)

(0 + )?
8
L(r ) = w

[w no tem qualquer par de 0s consecutivos.


Regular Expressions in UNIX: Hopcroft et al., 2007, p. 109110;
97 / 139
Semntica de uma Expresso Regular
1
Escreva a expresso regular tal que sua semntica seja o conjunto de
cadeias que terminam em a ou bb.
2
r = (a + b)

(a + bb);
3
Qual a linguagem denotada por r = (aa)

(bb)

b?
4
L(r ) = a
2n
b
2m+1
[n, m 0;
5
Para = 0, 1, escreva a expresso regular tal que
L(r ) = w

[w tem pelo menos um par de 0s consecutivos.


6
r = (0 + 1)

00(0 + 1)

;
7
Qual a linguagem denotada por r = (1 + 01)

(0 + )?
8
L(r ) = w

[w no tem qualquer par de 0s consecutivos.


Regular Expressions in UNIX: Hopcroft et al., 2007, p. 109110;
98 / 139
Semntica de uma Expresso Regular
1
Escreva a expresso regular tal que sua semntica seja o conjunto de
cadeias que terminam em a ou bb.
2
r = (a + b)

(a + bb);
3
Qual a linguagem denotada por r = (aa)

(bb)

b?
4
L(r ) = a
2n
b
2m+1
[n, m 0;
5
Para = 0, 1, escreva a expresso regular tal que
L(r ) = w

[w tem pelo menos um par de 0s consecutivos.


6
r = (0 + 1)

00(0 + 1)

;
7
Qual a linguagem denotada por r = (1 + 01)

(0 + )?
8
L(r ) = w

[w no tem qualquer par de 0s consecutivos.


Regular Expressions in UNIX: Hopcroft et al., 2007, p. 109110;
99 / 139
Semntica de uma Expresso Regular
1
Escreva a expresso regular tal que sua semntica seja o conjunto de
cadeias que terminam em a ou bb.
2
r = (a + b)

(a + bb);
3
Qual a linguagem denotada por r = (aa)

(bb)

b?
4
L(r ) = a
2n
b
2m+1
[n, m 0;
5
Para = 0, 1, escreva a expresso regular tal que
L(r ) = w

[w tem pelo menos um par de 0s consecutivos.


6
r = (0 + 1)

00(0 + 1)

;
7
Qual a linguagem denotada por r = (1 + 01)

(0 + )?
8
L(r ) = w

[w no tem qualquer par de 0s consecutivos.


Regular Expressions in UNIX: Hopcroft et al., 2007, p. 109110;
100 / 139
Semntica de uma Expresso Regular
1
Escreva a expresso regular tal que sua semntica seja o conjunto de
cadeias que terminam em a ou bb.
2
r = (a + b)

(a + bb);
3
Qual a linguagem denotada por r = (aa)

(bb)

b?
4
L(r ) = a
2n
b
2m+1
[n, m 0;
5
Para = 0, 1, escreva a expresso regular tal que
L(r ) = w

[w tem pelo menos um par de 0s consecutivos.


6
r = (0 + 1)

00(0 + 1)

;
7
Qual a linguagem denotada por r = (1 + 01)

(0 + )?
8
L(r ) = w

[w no tem qualquer par de 0s consecutivos.


Regular Expressions in UNIX: Hopcroft et al., 2007, p. 109110;
101 / 139
Semntica de uma Expresso Regular
1
Escreva a expresso regular tal que sua semntica seja o conjunto de
cadeias que terminam em a ou bb.
2
r = (a + b)

(a + bb);
3
Qual a linguagem denotada por r = (aa)

(bb)

b?
4
L(r ) = a
2n
b
2m+1
[n, m 0;
5
Para = 0, 1, escreva a expresso regular tal que
L(r ) = w

[w tem pelo menos um par de 0s consecutivos.


6
r = (0 + 1)

00(0 + 1)

;
7
Qual a linguagem denotada por r = (1 + 01)

(0 + )?
8
L(r ) = w

[w no tem qualquer par de 0s consecutivos.


Regular Expressions in UNIX: Hopcroft et al., 2007, p. 109110;
102 / 139
L = w[w tem um nmero par de 0s e 1s
M = q
0
, q
1
, q
2
, q
3
, 0, 1, , q
0
, q
0
,
onde descrito pela tabela de transio:
0 1
q
0
q
2
q
1
q
1
q
3
q
0
q
2
q
0
q
3
q
3
q
1
q
2 103 / 139
Expresso Regular Equivalente
Caminhos que levam do estado inicial
a um estado de aceitao:
q
0
q
0
:
q
0
q
1
q
0
: (11)
q
0
q
2
q
0
: (00)
q
0
q
1
q
3
q
1
q
0
: (1001)
q
0
q
2
q
3
q
2
q
0
: (0110)
q
0
q
1
q
3
q
2
q
0
: (1010)
q
0
q
2
q
3
q
1
q
0
: (0101)
q
0
q
1
q
3
q
2
q
3
q
1
q
0
: (101101)
q
0
q
2
q
3
q
1
q
3
q
2
q
0
: (010010)
((11)

+ (00)

+ (1001)

+ (0110)

+ (0101)

+ (1010)

+
+(101101)

+ (010010)

104 / 139
Exerccio
1
Seja = a, b, c, d, e. Escreva uma expresso regular que denota a
linguagem composta por um nmero arbitrrio de a

s seguidos por:
um nmero arbitrrio de b

s ou (exclusivo) pela sub-cadeia ccde.


Escreva uma expresso regular que denota:
2
o conjunto de cadeias binrias contendo a sub-cadeia 001;
3
a linguagem composta por cadeias binrias que comeam e terminam
com o mesmo smbolo;
4
a linguagem composta por cadeias binrias que contm pelo menos
trs 1

s;
5
a linguagem reconhecida pelo autmato do exemplo de minimizao
de estados. Qual essa linguagem?
105 / 139
Linguagem Regular
Teorema: Uma linguagem regular sse alguma expresso regular a
descreve.
Vimos um exemplo de como obter a expresso regular equivalente (slide
anterior), e esse mtodo pode ser generalizado em uma prova construtiva
para esse Lema.
Devemos mostrar como construir um autmato nito para cada
expresso regular primitiva e operadores bsicos.
1
r = a, a . O seguinte AFN reconhece L(r ) = a:
2
r = . O seguinte AFN reconhece L(r ) = :
3
r = . O seguinte AFN reconhece L(r ) = :
Falta mostrar para os operadores bsicos, vamos fazer em separado,
provando que as linguagens regulares so fechadas sob as operaes de
unio, concatenao e estrela.
106 / 139
Linguagem Regular
Teorema: A classe das linguagens regulares fechada sob unio.
Considere dois autmatos nitos M
1
(L
1
) e M
2
(L
2
). Podemos combinar
esses autmatos em um nico autmato M(L) de forma que M adivinha
qual caminho deve seguir para reconhecer w L = L
1
L
2
.
107 / 139
Linguagem Regular
Teorema: A classe das linguagens regulares fechada sob unio.
Considere dois autmatos nitos M
1
(L
1
) e M
2
(L
2
). Podemos combinar
esses autmatos em um nico autmato M(L) de forma que M adivinha
qual caminho deve seguir para reconhecer w L = L
1
L
2
.
108 / 139
Linguagem Regular
Teorema: A classe das linguagens regulares fechada sob
concatenao.
Considere dois autmatos nitos M
1
(L
1
) e M
2
(L
2
). Podemos combinar
esses autmatos em um nico autmato M de forma que M aceita uma
cadeia w
1
w
2
sse M
1
aceita w
1
L
1
e M
2
aceita w
2
L
2
.
font: Sipser, M., 2012, p. 5963
109 / 139
Linguagem Regular
Teorema: A classe das linguagens regulares fechada sob
concatenao.
Considere dois autmatos nitos M
1
(L
1
) e M
2
(L
2
). Podemos combinar
esses autmatos em um nico autmato M de forma que M aceita uma
cadeia w
1
w
2
sse M
1
aceita w
1
L
1
e M
2
aceita w
2
L
2
.
font: Sipser, M., 2012, p. 5963
110 / 139
Linguagem Regular
Teorema: A classe das linguagens regulares fechada sob o
operador estrela.
Seja L
1
uma linguagem regular e N
1
= Q
1
, ,
1
, q
1
, F
1
um AFN que a
reconhece. Podemos construir um AFN N = Q, , , q
0
, F que reconhece
L

1
como segue:
1
q
0
o novo estado inicial;
2
Q = Q
1
q
0
;
3
F = F
1
q
0
;
4
(q, x) =

1
(q, x) q Q
1
, q / F
1

1
(q, x) q F
1
, x ,=

1
(q, x) q
1
q F
1
, x =
q
1
q = q
0
, x =
q = q
0
, x ,=
111 / 139
Linguagem Regular
Teorema: A classe das linguagens regulares fechada sob o
operador estrela.
Seja L
1
uma linguagem regular e N
1
= Q
1
, ,
1
, q
1
, F
1
um AFN que a
reconhece. Podemos construir um AFN N = Q, , , q
0
, F que reconhece
L

1
como segue:
1
q
0
o novo estado inicial;
2
Q = Q
1
q
0
;
3
F = F
1
q
0
;
4
(q, x) =

1
(q, x) q Q
1
, q / F
1

1
(q, x) q F
1
, x ,=

1
(q, x) q
1
q F
1
, x =
q
1
q = q
0
, x =
q = q
0
, x ,=
112 / 139
Linguagem Regular
Teorema: A classe das linguagens regulares fechada sob
interseco.
Seja N
1
= Q
1
,
1
,
1
, q
1
, F
1
um AFD que reconhece L
1
e
N
2
= Q
2
,
2
,
2
, q
2
, F
2
um AFD que reconhece L
2
. Podemos construir
um AFD N = Q, , , q
0
, F que reconhece L = L
1
L
2
como segue:
1
q
0
= (q
1
, q
2
);
2
Q = Q
1
Q
2
= (r
1
, r
2
)[r
1
Q
1
, r
2
Q
2
;
3
F = F
1
F
2
= (r
1
, r
2
)[r
1
F
1
, r
2
F
2
;
4
=
1

2
;
5
((r
1
, r
2
), x) = (
1
(r
1
, x),
2
(r
2
, x)), (r
1
, r
2
) Q, x .
font: Sipser, M., 2012, p. 4546
113 / 139
Exerccio
1
Prove que a classe das linguagens regulares fechada sob
concatenao. (Desenhos no valem pontos)
2
Explique a prova do seguinte Teorema: A classe das linguagens
regulares fechada sob o operador estrela. (A prova formal no vale
pontos, voc deve explicar com palavras e desenhos).
114 / 139
Identicando linguagens no regulares
Lema do bombeamento: Se L uma linguagem regular ento
existe um nmero n (tamanho do bombeamento) tal que toda cadeia
w L, [w[ n pode ser dividida em trs partes (w = xyz)
satisfazendo:
1
xy
i
z L, i 0;
2
[y[ > 0;
3
[xy[ n;
Prova: Seja M = Q, , , q
0
, F com [Q[ = n um AFD que reconhece L.
Se max[s[ [ s L < n, ento o teorema trivialmente satisfeito:
vlido para todas as cadeias [w[ n.
Mas se L for innita, ento existem cadeias w [ [w[ n.
Neste caso, pelo Princpio da Casa dos Pombos, h pelo menos 1
estado que est sendo visitado mais de uma vez;
ou seja, h um loop que podemos usar para bombear y.
115 / 139
Identicando linguagens no regulares
Lema do bombeamento: Se L uma linguagem regular ento
existe um nmero n (tamanho do bombeamento) tal que toda cadeia
w L, [w[ n pode ser dividida em trs partes (w = xyz)
satisfazendo:
1
xy
i
z L, i 0;
2
[y[ > 0;
3
[xy[ n;
Prova: Seja M = Q, , , q
0
, F com [Q[ = n um AFD que reconhece L.
Se max[s[ [ s L < n, ento o teorema trivialmente satisfeito:
vlido para todas as cadeias [w[ n.
Mas se L for innita, ento existem cadeias w [ [w[ n.
Neste caso, pelo Princpio da Casa dos Pombos, h pelo menos 1
estado que est sendo visitado mais de uma vez;
ou seja, h um loop que podemos usar para bombear y.
116 / 139
Identicando linguagens no regulares
Lema do bombeamento: continuao da prova
Para mostrar que todas essas cadeias pertencem a L, usaremos a funo de
transio estendida:
Seja q
r
o estado que est sendo visitado mais de 1 vez;

(q
0
, x) = q
r
;

(q
r
, y) = q
r
;

(q
r
, z) =

(q
0
, w) = q
f
para algum q
f
F;
Portanto, para algum q
f
F:

(q
0
, xz) = q
f
;

(q
0
, xyz) = q
f
;

(q
0
, xy
2
z) = q
f

1
i.e.:

(q
0
, xy
i
z) = q
f
, i 0;
2
[y[ > 0 (loop e arco-);
3
[xy[ n, pelo princpio da casa dos pombos, c.c., teramos y
m
, m > 1.
117 / 139
Lema do Bombeamento
O Lema do bombeamento estabele uma condio necessria, mas no
suciente, para uma linguagem ser regular.
No qualquer decomposio x, y, z que nos permite provar via Lema do
Bombeamento que uma linguagem regular , de fato, regular.
Aplicamos principalmente quando queremos mostrar que uma linguagem
no regular.
A propriedade das linguagens regulares, ser fechada para as operaes de
unio, concatenao, estrela e interseco, tambm auxilia na identicao
de linguagens no regulares.
Lembre da Denio: Uma linguagem chamada Linguagem Regular se
algum autmato nito a reconhece.
Logo, para provar que uma linguagem regular, basta mostrar um AFN
que a aceite.
118 / 139
Lema do Bombeamento
Exemplo: A linguagem L = a
i
[i par regular.
Portanto, para toda cadeia w L deve existir pelo menos uma
decomposio que satisfaz o Lema do Bombeamento.
1
Dena w = a
2k
, para algum k 1, e seja n = 2 o tamanho do
bombeamento;
2
seja a decomposio: x = , y = aa, z = a
2(k1)
(2 condies);
3
ao bombear y i -vezes, obtem-se: xy
i
z = (aa)
i
a
2(k1)
= a
2(i +k1)
,
que pertence a linguagem.
Mas nem toda decomposio permite que o bombeamento conduza a outra
cadeia de L:
1
Seja a decomposio: x = , y = a, z = a
2k1
;
2
ao bombear y i -vezes, obtem-se: xy
i
z = a
i
a
2k1
= a
i +2k1
, que no
tem a forma da cadeia para todo i par;
3
essa decomposio no respeita a condio: xy
i
z L, i 0.
119 / 139
Lema do Bombeamento
Exemplo: A linguagem L
1
= 0
k
1
k
[k 0 no regular.
1
Assuma L
1
regular e considere as seguintes decomposies da cadeia
w = 0
n
1
n
:
2
x = 0
nj
, y = 0
j
, z = 1
n
essa decomposio vlida para todo
1 < j n. Para i > 1, xy
i
z tem mais 0s que 1s, logo,
xy
i
z / L
1
, i > 1;
3
pode-se aplicar o mesmo raciocnio para x = , y = 0
j
, z = 0
nj
1
n
;
4
x = 0
nj
, y = 0
j
1
j
, z = 1
nj
. xy
i
z tem a mesma quantidade de 0s e
1s, mas para i > 1 haver 1s precedendo 0s. Logo, essa
decomposio tambm no vlida;
5
Cobrimos todas as possibilidades e nenhuma satisfaz as 3 condies do
Lema do Bombeamento, portanto a linguagem L
1
no regular.
120 / 139
Lema do Bombeamento
Exemplo: A linguagem
L
2
= w[w tem o mesmo nmero de 0s e 1s no regular.
1
Assuma L
2
regular e considere a cadeia w = (01)
n
:
2
a decomposio x = , y = 01, z = (01)
n1
satisfaz [xy[ n e [y[ > 0;
3
bombeando, temos: xy
i
z = (01)
i
(01)
n1
, que satisfaz
xy
i
z L
2
, i 0.
4
Mas considerando a cadeia w = 0
n
1
n
L
2
, a nica forma de manter
o mesmo nmero de 0s e 1s denindo:
5
x = 0
nj
, y = 0
j
1
j
, z = 1
nj
, que no satisfaz [xy[ n, j 1 e para
j = 0, [y[ 0.
6
Encontramos uma cadeia para a qual nenhuma decomposio satisfaz
as 3 condies simultaneamente.
121 / 139
Lema do Bombeamento
Exemplo: A linguagem
L
2
= w[w tem o mesmo nmero de 0s e 1s no regular.
1
Assuma L
2
regular e considere a cadeia w = (01)
n
:
2
a decomposio x = , y = 01, z = (01)
n1
satisfaz [xy[ n e [y[ > 0;
3
bombeando, temos: xy
i
z = (01)
i
(01)
n1
, que satisfaz
xy
i
z L
2
, i 0.
4
Mas considerando a cadeia w = 0
n
1
n
L
2
, a nica forma de manter
o mesmo nmero de 0s e 1s denindo:
5
x = 0
nj
, y = 0
j
1
j
, z = 1
nj
, que no satisfaz [xy[ n, j 1 e para
j = 0, [y[ 0.
6
Encontramos uma cadeia para a qual nenhuma decomposio satisfaz
as 3 condies simultaneamente.
122 / 139
Lema do Bombeamento
Exemplo: A linguagem L
3
= 1
k
2
[k 0 no regular.
1
[xy[ n [y[ n;
2
[xyz[ = n
2
(pois w L
3
, em particular w = 1
n
2
);
3
[xy
2
z[ n
2
+ n;
4
[y[ > 0 [xy
2
z[ > n
2
;
5
n
2
< [xy
2
z[ < (n + 1)
2
.
6
Logo, xy
i
z / L
3
, i = 2.
Exemplos: Sipser, M., 2012, p. 8082
123 / 139
Gramtica Linear
Denio: Uma gramtica G = V, , S, P linear se toda
produo em P da forma:
A xBy ou A xy
onde A, B V; x, y

.
Denio: Uma gramtica linear linear direita (GLD) se toda
produo em P da forma
A xB ou A x
onde A, B V; x . Note: que [x[ 1.
Analogamente, uma gramtica linear esquerda se toda produo da
forma:
A Bx ou A x
Toda gramtica regular linear direita ou linear esquerda.
124 / 139
Gramtica Linear
A gramtica G = S, A, B, a, b, S, P linear? regular?
S aA [ bB [
A Sa [
B Sb [
Descreva uma gramtica linear a direita capaz de gerar todas as
cadeias binrias.
G
1
= S, 0, 1, S, P, onde P dado por: S [ 0S [ 1S
JFLAP convert to grammar
125 / 139
Gramtica Linear
A gramtica G = S, A, B, a, b, S, P linear? regular?
S aA [ bB [
A Sa [
B Sb [
Descreva uma gramtica linear a direita capaz de gerar todas as
cadeias binrias.
G
1
= S, 0, 1, S, P, onde P dado por: S [ 0S [ 1S
JFLAP convert to grammar
126 / 139
Gramtica Linear
A gramtica G = S, A, B, a, b, S, P linear? regular?
S aA [ bB [
A Sa [
B Sb [
Descreva uma gramtica linear a direita capaz de gerar todas as
cadeias binrias.
G
1
= S, 0, 1, S, P, onde P dado por: S [ 0S [ 1S
JFLAP convert to grammar
127 / 139
Gramtica Regular
Conside a gramtica G = S, T, 0, 1, S, P, onde P dado por:
S [ 0S [ 1T
T 0T [ 1S
Qual a linguagem gerada por G?
L(G) = w[w tem um nmero par de 1s
Descreva uma gramtica linear a direita que gere a linguagem
L = a
m
b
n
c
p
, m 0, n 0, p 0
G = A, B, C, a, b, c, A, P, onde P dado por:
A aA [ B
B bB [ C
C cC [
128 / 139
Gramtica Regular
Conside a gramtica G = S, T, 0, 1, S, P, onde P dado por:
S [ 0S [ 1T
T 0T [ 1S
Qual a linguagem gerada por G?
L(G) = w[w tem um nmero par de 1s
Descreva uma gramtica linear a direita que gere a linguagem
L = a
m
b
n
c
p
, m 0, n 0, p 0
G = A, B, C, a, b, c, A, P, onde P dado por:
A aA [ B
B bB [ C
C cC [
129 / 139
Gramtica Regular
Conside a gramtica G = S, T, 0, 1, S, P, onde P dado por:
S [ 0S [ 1T
T 0T [ 1S
Qual a linguagem gerada por G?
L(G) = w[w tem um nmero par de 1s
Descreva uma gramtica linear a direita que gere a linguagem
L = a
m
b
n
c
p
, m 0, n 0, p 0
G = A, B, C, a, b, c, A, P, onde P dado por:
A aA [ B
B bB [ C
C cC [
130 / 139
Gramtica Regular
Teorema: Seja G = V, , S, P uma gramtica linear direita.
Ento L(G) uma linguagem regular.
A aB[aa
B abA[b
G

com apenas 1 pro-


duo sem varivel do
lado direito:
A aB[aaC
B abA[bC
C
substituir produes com mais de 1 terminal do lado direito:
A aB[aD
D aC
B aE[bC
E bA
C
131 / 139
Gramtica Regular
Teorema: Seja G = V, , S, P uma gramtica linear direita.
Ento L(G) uma linguagem regular.
A aB[aa
B abA[b
G

com apenas 1 pro-


duo sem varivel do
lado direito:
A aB[aaC
B abA[bC
C
substituir produes com mais de 1 terminal do lado direito:
A aB[aD
D aC
B aE[bC
E bA
C
132 / 139
Gramtica Regular
Teorema: Seja G = V, , S, P uma gramtica linear direita.
Ento L(G) uma linguagem regular.
A aB[aa
B abA[b
G

com apenas 1 pro-


duo sem varivel do
lado direito:
A aB[aaC
B abA[bC
C
substituir produes com mais de 1 terminal do lado direito:
A aB[aD
D aC
B aE[bC
E bA
C
133 / 139
Gramtica Regular
Teorema: Seja L uma linguagem regular, ento existe uma
gramtica linear direita G = V, , S, P, tal que L(G) = L.
Seja M = Q, , , q
0
, F um AFD tal que L(M) = L. Construiremos a
gramtica G como segue:
1
S = q
0
;
2
V = Q;
3
para cada transio (q
i
, x) = q
j
, adicionamos a P a produo:
q
i
xq
j
;
4
para cada estado nal q
j
F, adicionamos a P a produo: q
j
.
G pode gerar toda cadeia em L:
considere w = a
1
a
2
a
n
;
para M aceitar w, ele executa as seguintes transies:
134 / 139
Gramtica Regular
Teorema: Seja L uma linguagem regular, ento existe uma
gramtica linear direita G = V, , S, P, tal que L(G) = L.
Seja M = Q, , , q
0
, F um AFD tal que L(M) = L. Construiremos a
gramtica G como segue:
1
S = q
0
;
2
V = Q;
3
para cada transio (q
i
, x) = q
j
, adicionamos a P a produo:
q
i
xq
j
;
4
para cada estado nal q
j
F, adicionamos a P a produo: q
j
.
G pode gerar toda cadeia em L:
considere w = a
1
a
2
a
n
;
para M aceitar w, ele executa as seguintes transies:
135 / 139
Gramtica Regular
(q
0
, a
1
) = q
p
,
(q
p
, a
2
) = q
r
,
.
.
.
(q
t
, a
n
) = q
f
F.
Portanto, a seguinte derivao vlida:
q
0
a
1
q
p
a
1
a
2
q
r

a
1
a
2
a
n1
q
t
a
1
a
2
a
n
q
f
a
1
a
2
a
n
Inversamente, se w L, sua derivao tem a forma acima, e portanto:

(q
0
, a
1
a
2
a
n
) = q
f
Ou seja, toda cadeia gerada por G aceita por M.
fonte: Bedregal et al., 2010, p. 7476
136 / 139
Hierarquia de Chomsky Estendida
137 / 139
Para cada linguagem abaixo descreva uma GLD que a gere
1
L
1
= w [ w 0, 1

e
w tem exatamente trs 1s, no necessariamente consecutivos
2
L
2
= w [ w 0, 1

e w tem exatamente um 1 e quantidade


par de 0

s
3
L
3
= w [ w a, b

e
w comea e termina com o mesmo smbolo
4
L
4
o conjunto de todas as cadeias binrias contendo a sub-cadeia
001.
138 / 139
Bibliograa
BEDREGAL, B. R. C. et al. Introduo teoria das Linguagens
Formais, dos Autmatos e da Computabilidade. 1
a
edio.
Edunp FAPERN, 2010.
HOPCROFT, J. E. et al. Introduction to Automata Theory,
Languages, and Computation. (Chapters 14) 3rd ed. Addison
Wesley, 2007.
LEVITIN, A., Introduction to the design & analysis of algorithms
(Chapter 9) 3rd ed. Addison Wesley, 2011.
ROSA, J. L. G. Linguagens Regulares e Autmatos Finitos. Slides
de aula SCC-205, ICMC-USP.
SIPSER, M. Introduction to the Theory of Computation.
(Chapter 1) 3rd ed. Cengage Learning, 2012.
139 / 139