Você está na página 1de 31

- 1 -

Teoria da Computao e Linguagens Formais - Simone Domingues Prado - Apostila 02



Cursos: Bacharelado em Cincia da Computao e
Bacharelado em Sistemas de InIormao
Disciplinas: (1493A) Teoria da Computao e Linguagens Formais,
(4623A) Teoria da Computao e Linguagens Formais e
(1601A) Teoria da Computao
Professora: Simone das Graas Domingues Prado
e-mail: simonedpIc.unesp.br
home-page: wwwp.Ic.unesp.br/~simonedp/discipl.htm




Apostila 02
Assunto: Linguagens Regulares



Objetivos:
Estudar os autmatos Iinitos
Estudar as expresses regulares
Estudar as gramaticas regulares
Estudar as linguagens regulares




Contedo:
1. Introduo
2. Autmato Finito Deterministico (AFD)
3. Autmato Finito no Deterministico (AFN)
4. Equivalncia de AFN e AFD
5. Reduo de estados de um autmato Iinito
6. Expresses Regulares
7. Gramatica Regular
8. Linguagens Regulares

- 2 -
Teoria da Computao e Linguagens Formais - Simone Domingues Prado - Apostila 02
1. Introduo


Segundo a Hierarquia de Chomsky, a Linguagem Regular trata-se de uma linguagem mais simples, sendo
possivel desenvolver algoritmos de reconhecimento ou de gerao de pouca complexidade, grande
eIicincia e de Iacil implementao.

O estudo das Linguagens Regulares ou tipo 3 (Hierarquia de Chomsky) sera visto atraves de varios
Iormalismos:
- Operacional ou reconhecedor uso dos autmatos Iinitos (deterministico, no deterministico)
- Axiomatico ou gerador gramatica regular
- Denotacional expresso regular





2. Autmato Finito Determinstico (AFD)


Um autmato e um modelo abstrato de um computador digital composto por uma Iita de entrada (que
contera a cadeia de entrada), uma Iita de saida (para mostrar a cadeia resultante), memoria auxiliar (que
armazena temporariamente simbolos do alIabeto) e unidade de controle. A cadeia a ser tratada Iica
armazenada na Iita de entrada de onde a unidade de controle l um simbolo por vez, pode mudar de estado
dependendo das Iunes de transies deIinidas e escreve na memoria e na Iita de saida.

O autmato Iinito e um reconhecedor de linguagens simples que no possui memoria auxiliar, no altera a
Iita (ela serve apenas para a leitura de simbolos), a unidade de controle anda na Iita somente em um
sentido (da esquerda para a direita) e a Iita tem comprimento limitado, do tamanho da cadeia a ser
analisada.

O autmato Iinito pode ser deterministico (AFD) e no deterministico (AFN). No AFD cada movimento e
determinado de uma unica Iorma, enquanto que no AFN existem varias possibilidades de transio para
um mesmo simbolo.



DeIinio 1
Um autmato finito determinstico e deIinido pela quintupla:
M ( Q, E, o, q
0
, F)


Onde: Q conjunto Iinito de estados
E alIabeto de entrada (ou conjunto Iinito de simbolos)
o Iuno de transio (ou Iuno programa) deIinida por o: Q x E Q
q
0
estado inicial ( q
0
e Q )
F conjunto de estados Iinais ( F e Q )
- 3 -
Teoria da Computao e Linguagens Formais - Simone Domingues Prado - Apostila 02
Exemplo 01
Dado o Autmato abaixo, especiIique sua quintupla.


Figura 01. Autmato exemplo 01

Q q
0
, q
1
, q
2
}
E 0, 1 }
estado inicial q
0

estado Iinal q
1

as Iunes de transies:
o(q
0
, 0) q
0
o(q
1
, 0) q
0
o(q
2
, 0) q
2
o(q
0
, 1) q
1
o(q
1
, 1) q
2
o(q
2
, 1) q
1
Portanto M ( q
0
, q
1
, q
2
}, 0, 1 }, o, q
0
, q
1
})



Exemplo 02
Desenhe o autmato sabendo que E a, b}, L w , w possui aa ou bb como subcadeia } e o autmato e
dado por M (q
0
, q
1
, q
2
, q
I
}, a, b }, o, q
0
, q
I
}), onde o o esta representado na tabela abaixo.

o a b
q
0
q
1
q
2

q
1
q
I
q
2

q
2
q
1
q
I

q
I
q
I
q
I



Figura 02. Autmato exemplo 02


Note que um autmato Iinito sempre para ao processar uma cadeia, ja que a entrada e Iinita e o conjunto
de estado tambem. Ele pode parar em duas ocasies: ao aceitar uma cadeia ou ao rejeita-la. Quando ele
termina de ler a cadeia e assume um estado Iinal a cadeia e aceita. Caso contrario, a cadeia e rejeitada.

- 4 -
Teoria da Computao e Linguagens Formais - Simone Domingues Prado - Apostila 02

DeIinio 2:
A linguagem associada a um autmato e o conjunto de todas as cadeias aceitas pelo autmato:
L(M) w e E* : o*(q
0
, w) e F)



DeIinio 3:
Dois Autmatos Finitos M
1
e M
2
so ditos equivalentes se, e somente se:
L(M
1
) L(M
2
)
Ou seja, reconhecem a mesma linguagem

Exemplo 03:
Construa autmatos para reconhecer a linguagem L w1 : w e 0,1}*}



M (q
0
, q
I
}, 0,1}, o, q
0
, q
I
}),
o(q
0
, 0) q
0
o(q
0
, 1) q
0
, q
I
}


M (q
0
, q
I
}, 0, 1 }, o, q
0
, q
I
}),
o(q
0
, 0) q
0
o(q
0
, 1) q
I

o(q
I
, 0) q
0

o(q
I
, 1) q
I




DeIinio 4:
A Iuno de transio (ou programa) estendida e denotada por:
o*: Q x E* Q


Exemplo 04:
Sabendo que M ( q
0
, q
1
, q
2
}, 0, 1 }, o, q
0
, q
2
}) e
o(q
0
, 0) q
0
o(q
1
, 0) q
0
o(q
2
, 0) q
2
o(q
0
, 1) q
1
o(q
1
, 1) q
2
o(q
2
, 1) q
1
Portanto, o*( q
0
, 011) q
2

Ja que o(q
0
, 0) q
0,
o(q
0
, 1) q
1
e

o(q
1
, 1) q
2
o(q
0
, !11) o(q
0
, "1)

o(q
1
, 1) q
2


Figura 03. Autmato exemplo 04

- 5 -
Teoria da Computao e Linguagens Formais - Simone Domingues Prado - Apostila 02

DeIinio 5:
Uma linguagem L e dita regular se, e somente se existe um autmato Iinito deterministico M, tal
que: L L(M).




Exemplo 05:
a) Considere a linguagem: L w , w possui um numero par de a e b}
Ma q
0
, q
1
, q
2
, q
3
}, a,b}, o, q
0
, q
0
})


Figura 04. Autmato exemplo 05(a)


b) Considere a linguagem: L w , w possui um numero impar de a e b}
Mb q
0
, q
1
, q
2
, q
I
}, a,b}, o, q
0
, q
I
})


Figura 05. Autmato exemplo 05(b)


- 6 -
Teoria da Computao e Linguagens Formais - Simone Domingues Prado - Apostila 02
3. Autmato Finito No Determinstico (AFN)



DeIinio 6:
Um autmato finito no determinstico e deIinido pela quintupla:
M ( Q, E, o, q
0
, F)


Onde: Q conjunto Iinito de estados
E alIabeto de entrada, conjunto Iinito de simbolos
o Iuno de transio ou Iuno programa deIinido por o: Q x E 2
Q

q
0
estado inicial ( q
0
e Q )
F conjunto de estados Iinais ( F e Q )

Obs: 2
Q
representa os subconjuntos de Q.

Em alguns livros cita-se que um AFN pode ter movimentos vazios. Um movimento vazio e uma transio
sem leitura de simbolo algum. Ai a Iuno transio e dada por: o: Q x E } 2
Q



Exemplo 06:
Considere a linguagem: L w , w possui aa ou bb como subcadeia }
O autmato Iinito no deterministico pode ser dado por:
M q
0
, q
1
, q
2
, q
I
}, a,b}, o , q
0
, q
I
}}
Onde
o(q
0
, a) q
0,
q
1
}

o(q
1
, a) q
I
}

o(q
I
, a) q
I
}

o(q
0
, b) q
0,
q
2
}

o(q
2
, b) q
I
}

o(q
I
, b) q
I
}




Figura 06. Autmato exemplo 06






- 7 -
Teoria da Computao e Linguagens Formais - Simone Domingues Prado - Apostila 02
Exemplo 07:
Considere a linguagem: L w , w possui aaa como suIixo }
O autmato Iinito no deterministico pode ser dado por:
M q
0
, q
1
, q
2
, q
I
}, a,b}, o , q
0
, q
I
}}
Onde
o(q
0
, a) q
0,
q
1
}

o(q
1
, a) q
2
}


o(q
0
, b) q
0
}

o(q
2
, a) q
I
}



Figura 07. Autmato exemplo 07




4. Equivalncia entre os autmatos AFD e AFN

Sabe-se que um autmato M
1
e equivalente a um autmato M
2
se , e somente se, L(M
1
) L(M
2
) pela
DeIinio 2. Ento se pode transIormar um AFN em AFD para que a linguagem lida pelo AFN seja do
tipo regular.

Seja M ( Q, E, o, q
0
, F) um AFN qualquer. Seja M` ( Q`, E, o`, q
0
~, F`) um AFD construido a partir
de M como segue:
Q` e o conjunto de todas as combinaes, sem repeties, de estado de Q as quais so
denotados por q
1
q
2
...q
n
~, onde q
j
pertence a Q para j em 1, 2, ..., n}. Note-se que a ordem
dos elementos no distingue mais combinaes. Por exemplo, q
1
q
2
~ q
2
q
1
~;
o` tal que o`(q
1
...q
n
~, a) p
1
...p
m
~ se e somente se, o(q
1
,...q
n
},a) p
1
, ..., p
m
}. Ou seja,
um estado de M` representa uma imagem dos estados de todos os caminhos alternativos de
M;
q
0
~ estado inicial;
F` conjunto de todos os estados q
1
q
2
...q
n
~ pertencentes a Q` tal que alguma componente q
j

pertence a F, para j em 1,2,...,n}.

Algoritmo

1. Crie um graIo G
d
com um vertice rotulado por q
0
~. IdentiIique-o como sendo o estado inicial.
2. Repita os seguintes passos ate que no Ialtem mais arestas:
a. Tome um vertice q
n1
, q
n2
, ..., q
nk
~ de G
d
que ainda no tenha aresta rotulada por a e E.
b. Compute as Iunes transies estendidas: o*(q
n1
,a), o*(q
n2
,a), ...., o*(q
nk
,a)
c. Produza q
m1
, q
m2
, ..., q
ml
~ como sendo a unio das Iunes transies estendidas calculadas
no passo anterior
d. Crie um vertice no Gd rotulado por q
m1
, q
m2
, ..., q
ml
~ , caso esse vertice no tenha sido criado.
e. Adicione a Gd a aresta de q
n1
, q
n2
, ..., q
nk
~ ate q
m1
, q
m2
, ..., q
ml
~ e rotule-a com o simbolo a
e E

- 8 -
Teoria da Computao e Linguagens Formais - Simone Domingues Prado - Apostila 02
3. Todo estado de Gd cujo rotulo contem algum qI e F (estados Iinais de AFN) e deIinido como sendo
um estado Iinal do AFD
4. se o AFN aceita a cadeia vazia, Iaa o estado inicial do AFD ser um estado Iinal.



Exemplo 08:
Considere o exemplo o autmato AFN do exemplo 07.
M q
0
, q
1
, q
2
, q
I
}, a,b}, o , q
0
, q
I
}}
o(q
0
, a) q
0,
q
1
}

o(q
1
, a) q
2
}

o(q
0
, b) q
0
}

o(q
2
, a) q
I
}


Para construir um AFD tem-se: M` Q`, a,b}, o` , q
0
~, F`}



vertice <q
0
> e simbolo a
o(q
0
~, a) <q
0,
q
1
>, ja que o(q
0
, a) q
0,
q
1
}
vertice q
0
~ e simbolo b
o(q
0
~, b) <q
0
>, ja que o(q
0
, b) q
0
}




vertice <q
0,
q
1
> e simbolo a
o(q
0,
q
1
~, a) <q
0,
q
1,
q
2
>, ja que o(q
0
, a) q
0,
q
1
} e o(q
1
, a) q
2
}


vertice <q
0,
q
1
> e simbolo b
o(q
0,
q
1
~, b) <q
0
>, ja que o(q
0
, b) q
0
}



vertice <q
0,
q
1,
q
2
> e simbolo a
o(q
0,
q
1,
q
2
~, a) <q
0,
q
1,
q
2,
q
f
>, ja que o(q
0
, a)q
0,
q
1
}, e o(q
1
, a)q
2
}

e o(q
2
, a) q
I
}

vertice <q
0,
q
1,
q
2
> e simbolo b
o(q
0,
q
1,
q
2
~, b) <q
0
>, ja que o(q
0
, b) q
0
}



- 9 -
Teoria da Computao e Linguagens Formais - Simone Domingues Prado - Apostila 02

vertice <q
0,
q
1,
q
2,
q
f
> e simbolo a
o(q
0,
q
1,
q
2,
q
I
~, a) <q
0,
q
1,
q
2,
q
f
>, ja que o(q
0
, a)q
0,
q
1
}, e o(q
1
, a)q
2
}

e o(q
2
, a) q
I
}


vertice <q
0,
q
1,
q
2,
q
f
> e simbolo b
o(q
0,
q
1,
q
2,
q
I
~, b) <q
0
>, ja que o(q
0
, b) q
0
}



F` q
0,
q
1,
q
2,
q
I
~}


Portanto o AFD, M` Q`, a,b}, o` , q
0
~, F`}, a partir de AFN e:

M` Q`, a,b}, o` , q
0
~, F`}
Q` q
0
~, q
0,
q
1
~, q
0,
q
1,
q
2
~, q
0,
q
1,
q
2,
q
I
~}
F` q
0,
q
1,
q
2,
q
I
~}
o`(q
0
~, a) q
0,
q
1
~
o`(q
0,
q
1
~, a) q
0,
q
1,
q
2
~
o`(q
0,
q
1,
q
2
~, a) q
0,
q
1,
q
2,
q
I
~
o`(q
0,
q
1,
q
2,
q
I
~, a) q
0,
q
1,
q
2,
q
I
~
o`(q
0
~, b) q
0
~
o`(q
0,
q
1
~, b) q
0
~
o`(q
0,
q
1,
q
2
~, b) q
0
~
o`(q
0,
q
1,
q
2,
q
I
~, b) q
0
~

O graIo:

Figura 08. Autmato exemplo 08



Exemplo 09:
Considere um AFN como segue:
M q
0
, q
1
, q
I
}, 0,1}, o , q
0
, q
I
}}
o(q
0
, 0) q
0,
q
I
}

o(q
I
, 0) q
1
}

o(q
1
, 1) q
1
}

o(q
0
, 1) q
I
}

o(q
I
, 1) q
1
}


Para construir um AFD tem-se: M` Q`, 0,1}, o` , q
0
~, F`}

- 10 -
Teoria da Computao e Linguagens Formais - Simone Domingues Prado - Apostila 02
Q` q
0
~}
vertice <q
0
> e simbolo 0
o`(q
0
~, 0) <q
0,
q
f
>, ja que o(q
0
, 0) q
0,
q
I
}
vertice <q
0
> e simbolo 1
o`(q
0
~, 1) <q
f
>, ja que o(q
0
, 1) q
I

Q` q
0
~, q
0,
q
I
~,

q
I
~ }
vertice <q
0,
q
f
> e simbolo 0
o`(q
0,
q
I
~, 0) <q
0,
q
1,
q
f
>, ja que o(q
0
, 0) q
0,
q
I
} e o(q
I
, 0) q
1
}


vertice <q
0,
q
f
> e simbolo 1
o`(q
0,
q
I
~, 1) <q
1,
q
f
>, ja que o(q
0
, 1) q
I
} e o(q
I
, 1) q
1
}


Q` q
0
~, q
0,
q
I
~,

q
I
~, q
0,
q
1,
q
I
~, q
1,
q
I
~ }
vertice <q
f
> e simbolo 0
o`(q
I
~, 0) <q
1
>, ja que o(q
I
, 0) q
1
}
vertice <q
f
> e simbolo 1
o`(q
I
~, 1) <q
1
>, ja que o(q
I
, 1) q
1
}


Q` q
0
~, q
0,
q
I
~,

q
I
~, q
0,
q
1,
q
I
~, q
1,
q
I
~, q
1
~ }
vertice <q
0,
q
1,
q
f
> e simbolo 0
o`(q
0,
q
1,
q
I
~, 0) <q
0,
q
1,
q
f
>, ja que o(q
0
, 0) q
0,
q
I
} e o(q
I
, 0) q
1
}


vertice <q
0,
q
1,
q
f
> e simbolo 1
o`(q
0,
q
1,
q
I
~, 1) <q
1,
q
f
>, ja que o(q
0
, 1) q
I
} , o(q
I
, 1) q
1
} e o(q
1
, 1) q
1
}


Q` q
0
~, q
0,
q
I
~,

q
I
~, q
0,
q
1,
q
I
~, q
1,
q
I
~, q
1
~ }

vertice <q
1,
q
f
> e simbolo 0
o`(q
1,
q
I
~, 0) <q
1
>, ja que o(q
1
, 0) } e o(q
I
, 0) q
1
}


vertice <q
1,
q
f
> e simbolo 1
o`(q
1,
q
I
~, 1) <q
1
>, ja que o(q
1
, 1) q
1
} e o(q
I
, 1) q
1
}


Q` q
0
~, q
0,
q
I
~,

q
I
~, q
0,
q
1,
q
I
~, q
1,
q
I
~, q
1
~ }
vertice <q
1
> e simbolo 0
o`(q
1
~, 0) <>, ja que o(q
1
, 0) }


vertice <q
1
> e simbolo 1
o`(q
1
~, 1) <q
1
>, ja que o(q
1
, 1) q
1
}


Q` q
0
~, q
0,
q
I
~,

q
I
~, q
0,
q
1,
q
I
~, q
1,
q
I
~, q
1
~, ~}
vertice <> e simbolo 0
o`(~, 0) <>, ja que o(, 0) }


vertice <> e simbolo 1
o`(~, 1) <>, ja que o(, 1) }

Portanto, M` Q`, 0,1}, o` , q
0
~, F`}
Q` q
0
~, q
0,
q
I
~,

q
I
~, q
0,
q
1,
q
I
~, q
1,
q
I
~, q
1
~, ~}
F` q
I
~, q
0,
q
I
~, q
0,
q
1,
q
I
~}
o`(q
0
~, 0) q
0,
q
I
~
o`(q
0
~, 1) q
I
~

- 11 -
Teoria da Computao e Linguagens Formais - Simone Domingues Prado - Apostila 02
o`(q
0,
q
I
~, 0) q
0,
q
1,
q
I
~
o`(q
0,
q
I
~, 1) q
1,
q
I
~

o`(q
I
~, 0) q
1
~
o`(q
I
~, 1) q
1
~

o`(q
0,
q
1,
q
I
~, 0) q
0,
q
1,
q
I
~

o`(q
0,
q
1,
q
I
~, 1) q
1,
q
I
~

o`(q
1,
q
I
~, 0) q
1
~
o`(q
1,
q
I
~, 1) q
1
~

o`(q
1
~, 0) ~
o`(q
1
~, 1) q
1
~

o`(~, 0) ~
o`(~, 1) ~


Exemplo 10:
Considere um AFN como segue:
M q
0
, q
1
, q
2
, q
3
, q
I
}, 0,1}, o , q
0
, q
I
}}
o(q
0
, 0) q
1
}

o(q
1
, 0) q
0
}

o(q
2
, 0) q
3
}

o(q
3
, 0) q
2
}

o(q
0
, 1) q
2,
q
I
}

o(q
1
, 1) q
3,
q
I
}

o(q
2
, 1) q
0,
q
I
}

o(q
3
, 1) q
1,
q
I
}

Para construir um AFD tem-se: M` Q`, 0,1}, o` , q
0
~, F`}

Q` q
0
~}
vertice <q
0
> e simbolo 0
o`(q
0
~, 0) <q
1
>, ja que o(q
0
, 0) q
1
}
vertice <q
0
> e simbolo 1
o`(q
0
~, 1) < q
2,
q
f
>, ja que o(q
0
, 1) q
2,
q
I
}


Q` q
0
~, <q
1
>, q
2,
q
I
~}
vertice <q
1
> e simbolo 0
o`(q
1
~, 0) <q
0
>, ja que o(q
1
, 0) q
0
}
vertice <q
1
> e simbolo 1
o`(q
1
~, 1) < q
3,
q
f
>, ja que o(q
1
, 1) q
3,
q
I
}


Q` q
0
~, <q
1
>, q
2,
q
I
~, q
3,
q
I
~}
vertice <q
2,
q
f
> e simbolo 0
o`(q
2,
q
I
~, 0) <q
3
>, ja que o(q
2
, 0) q
3
}

e o(q
I
, 0) }


vertice <q
2,
q
f
> e simbolo 1
o`(q
2,
q
I
~, 1) <q
0,
q
f
>, ja que o(q
2
, 1) q
0,
q
I
} e o(q
I
, 1) }


Q` q
0
~, <q
1
>, q
2,
q
I
~, q
3,
q
I
~, q
3
~, q
0,
q
I
~}
vertice <q
3,
q
f
> e simbolo 0
o`(q
3,
q
I
~, 0) <q
2
>, ja que o(q
3
, 0) q
2
}

e o(q
I
, 0) }


vertice <q
3,
q
f
> e simbolo 1
o`(q
3,
q
I
~, 1) <q
1,
q
f
>, ja que o(q
3
, 1) q
1,
q
I
} e o(q
I
, 1) }


Q` q
0
~, <q
1
>, q
2,
q
I
~, q
3,
q
I
~, q
3
~, q
0,
q
I
~, q
2
~, q
1,
q
I
~}
vertice <q
3
> e simbolo 0
- 12 -
Teoria da Computao e Linguagens Formais - Simone Domingues Prado - Apostila 02
o`(q
3
~, 0) <q
2
>, ja que o(q
3
, 0) q
2
}
vertice <q
3
> e simbolo 1
o`(q
3
~, 1) < q
3,
q
f
>, ja que o(q
3
, 1) q
1,
q
I
}


Q` q
0
~, <q
1
>, q
2,
q
I
~, q
3,
q
I
~, q
3
~, q
0,
q
I
~, q
2
~, q
1,
q
I
~}
vertice <q
0,
q
f
> e simbolo 0
o`(q
0,
q
I
~, 0) <q
1
>, ja que o(q
0
, 0) q
1
}

e o(q
I
, 0) }


vertice <q
0,
q
f
> e simbolo
o`(q
0,
q
I
~, 1) <q
2,
q
f
>, ja que o(q
0
, 1) q
2,
q
I
} e o(q
I
, 1) }


Q` q
0
~, <q
1
>, q
2,
q
I
~, q
3,
q
I
~, q
3
~, q
0,
q
I
~, q
2
~, q
1,
q
I
~}
vertice <q
2
> e simbolo 0
o`(q
2
~, 0) <q
2
>, ja que o(q
2
, 0) q
3
}
vertice <q
2
> e simbolo 1
o`(q
2
~, 1) < q
0,
q
f
>, ja que o(q
2
, 1) q
0,
q
I
}

Q` q
0
~, <q
1
>, q
2,
q
I
~, q
3,
q
I
~, q
3
~, q
0,
q
I
~, q
2
~, q
1,
q
I
~}
vertice <q
1,
q
f
> e simbolo 0
o`(q
1,
q
I
~, 0) <q
0
>, ja que o(q
1
, 0) q
0
}

e o(q
I
, 0) }


vertice <q
1,
q
f
> e simbolo
o`(q
1,
q
I
~, 1) <q
3,
q
f
>, ja que o(q
1
, 1) q
3,
q
I
} e o(q
I
, 1) }

Portanto,
M` Q`, 0,1}, o` , q
0
~, F`}
Q` q
0
~, <q
1
>, q
2,
q
I
~, q
3,
q
I
~, q
3
~, q
0,
q
I
~, q
2
~, q
1,
q
I
~}
F` q
0,
q
I
~, q
1,
q
I
~, q
2,
q
I
~, q
3,
q
I
~}
o`(q
0
~, 0) q
1
~
o`(q
0
~, 1) q
2,
q
I
~

o`(q
1
~, 0) q
0
~
o`(q
1
~, 1) q
3,
q
I
~
o`(q
2
~, 0) q
2
~
o`(q
2
~, 1) q
0,
q
I
~

o`(q
3
~, 0) q
2
~
o`(q
3
~, 1) q
3,
q
I
~
o`(q
0,
q
I
~, 0) q
1
~

o`(q
0,
q
I
~, 1) q
2,
q
I
~
o`(q
1,
q
I
~, 0) q
0
~

o`(q
1,
q
I
~, 1) q
3,
q
I
~
o`(q
2,
q
I
~, 0) q
3
~

o`(q
2,
q
I
~, 1) q
0,
q
I
~

o`(q
3,
q
I
~, 0) q
2
~

o`(q
3,
q
I
~, 1) q
1,
q
I
~



Exemplo 11:
Considere um AFN como segue:
M q
0
, q
1
, q
2
, q
I
}, a,b}, o , q
0
, q
I
}}
o(q
0
, a) q
0,
q
1
}

o(q
1
, a) q
I
}

o(q
I
, a) q
I
}

- 13 -
Teoria da Computao e Linguagens Formais - Simone Domingues Prado - Apostila 02
o(q
0
, b) q
0,
q
2
}

o(q
2
, b) q
I
}

o(q
I
, b) q
I
}

Para construir um AFD tem-se: M` Q`, a,b}, o` , q
0
~, F`}

Q` q
0
~}
vertice <q
0
> e simbolo a
o`(q
0
~, a) < q
0
,

q
1
>, ja que o(q
0
, a) q
0,
q
1
}
vertice <q
0
> e simbolo b
o`(q
0
~, b) < q
0,
q
2
>, ja que o(q
0
, b) q
0,
q
2
}


Q` q
0
~, q
0
,

q
1
~, q
0,
q
2
~}
vertice <q
0,
q
1
> e simbolo a
o`(q
0,
q
1
~, a) < q
0
,

q
1 ,
q
f
>, ja que o(q
0
, a) q
0,
q
1
} e o(q
1
, a) q
I
}


vertice <q
0,
q
1
> e simbolo b
o`(q
0,
q
1
~, b) < q
0,
q
2
>, ja que o(q
0
, b) q
0,
q
2
} e o(q
1
, b) }


Q` q
0
~, q
0
,

q
1
~, q
0,
q
2
~, < q
0
,

q
1 ,
q
I
>}

vertice <q
0,
q
2
> e simbolo a
o`(q
0,
q
2
~, a) < q
0
,

q
1
>, ja que o(q
0
, a) q
0,
q
1
} e o(q
2
, a) }


vertice <q
0,
q
2
> e simbolo b
o`(q
0,
q
2
~, b) < q
0
,

q
2 ,
q
f
>, ja que o(q
0
, b) q
0,
q
2
} e o(q
2
, b) q
I
}


Q` q
0
~, q
0
,

q
1
~, q
0,
q
2
~, < q
0
,

q
1 ,
q
I
>, q
0
,

q
2 ,
q
I
~}

vertice < q
0
,

q
1 ,
q
f
>e simbolo a
o`(< q
0
,

q
1 ,
q
I
>, a) < q
0
,

q
1 ,
q
f
>, ja que o(q
0
, a) q
0,
q
1
}, o(q
1
, a) q
I
}

e o(q
I
, a) q
I
}
vertice < q
0
,

q
1 ,
q
f
> e simbolo b
o`(< q
0
,

q
1 ,
q
I
>, b) < q
0
,

q
2 ,
q
f
>, ja que o(q
0
, b) q
0,
q
2
}, o(q
1
, b) } e o(q
I
, a) q
I
}

Q` q
0
~, q
0
,

q
1
~, q
0,
q
2
~, < q
0
,

q
1 ,
q
I
>, q
0
,

q
2 ,
q
I
~}

vertice < q
0
,

q
2 ,
q
f
>e simbolo a
o`(< q
0
,

q
2 ,
q
I
>, a) < q
0
,

q
1 ,
q
f
>, ja que o(q
0
, a) q
0,
q
1
}, o(q
2
, a) }

e o(q
I
, a) q
I
}
vertice < q
0
,

q
1 ,
q
f
> e simbolo b
o`(< q
0
,

q
2 ,
q
I
>, b) < q
0
,

q
2 ,
q
f
>, ja que o(q
0
, b) q
0,
q
2
}, o(q
2
, b) q
I
} e o(q
I
, a) q
I
}

Portanto,
M` Q`, a,b}, o` , q
0
~, F`}
Q` q
0
~, q
0
,

q
1
~, q
0,
q
2
~, < q
0
,

q
1 ,
q
I
>, q
0
,

q
2 ,
q
I
~}

F` q
0,
q
I
~, q
1,
q
I
~, q
2,
q
I
~, q
3,
q
I
~}
o`(q
0
~, a) q
0
,

q
1
~
o`(q
0
~, b) q
0,
q
2
~

o`(q
0,
q
1
~, a) q
0
,

q
1 ,
q
I
~

o`(q
0,
q
1
~, b) q
0,
q
2
~

o`(q
0,
q
2
~, a) q
0
,

q
1
~

o`(q
0,
q
2
~, b) q
0
,

q
2 ,
q
I
~

o`( q
0
,

q
1 ,
q
I
~, a) q
0
,

q
1 ,
q
I
~
o`( q
0
,

q
1 ,
q
I
~, b) q
0
,

q
2 ,
q
I
~
o`( q
0
,

q
2 ,
q
I
~, a) q
0
,

q
1 ,
q
I
~
o`( q
0
,

q
2 ,
q
I
~, b) q
0
,

q
2 ,
q
I
~
- 14 -
Teoria da Computao e Linguagens Formais - Simone Domingues Prado - Apostila 02
5. Reduo de estados de um autmato finito



DeIinio 07:
Um autmato minimo de uma Linguagem Regular L e um Autmato Finito Deterministico
M (Q, E, o, q
0
, F) tal que L L(M) e que, para qualquer outro Autmato Finito Deterministico
M` (Q`, E`, o`, q
0`
, F`) tal que L L(M`), tem-se que #Q` ~ #Q.



Um autmato Finito a ser minimizado deve satisIazer aos seguintes pre-requisitos:
1. Deve ser Deterministico (AFD)
2. No pode ter estados inacessiveis (no atingiveis a partir do estado inicial)
3. A Iuno programa deve ser total (a partir de qualquer estado so previstas transies para todos os
simbolos do alIabeto)


Caso o autmato no satisIaa algum dos pre-requisitos, e necessario gerar um autmato equivalente:
1. gerar um AFD equivalente
2. eliminar os estados inacessiveis e suas correspondentes transies
3. para transIormar a Iuno transio em total, e suIiciente introduzir um novo estado no-Iinal d e
incluir as transies no previstas, tendo d como estado destino. Por Iim, incluir um ciclo em d
para todos os simbolos do alIabeto.



Algoritmo de minimizao

Suponha um AFD M (Q, E, o, q
0
, F) que satisIaz aos pre-requisitos de minimizao. Os passos do
algoritmo de minimizao so os seguintes:

1. TABELA. Construir uma tabela relacionando os estados distintos, onde cada par de estados ocorre
somente uma vez.

2. MARCAO DOS ESTADOS TRIVIALMENTE NO EQUIVALENTES. Marcar todos os
pares do tipo estado Iinal, estado no-Iinal}, pois obviamente, estados Iinais no so equivalentes
a no-Iinais.

3. MARCAO DOS ESTADOS NO EQUIVALENTES. Para cada par q
u
, q
v
} no marcado e
para simbolo a eE, suponha que o(q
u
, a) p
u
e o(q
v
, a) p
v
e:
a. Se p
u
p
v
, ento q
u
e equivalente a q
v
para o simbolo a e no deve ser marcado;
b. Se p
u
= p
v
e o par p
u
,p
v
} no esto marcados, ento q
u
,q
v
} e incluido em uma lista a
partir de p
u
,p
v
} para posterior analise;
c. Se p
u
= p
v
e o par p
u
,p
v
} esto marcados, ento:
- q
u
,q
v
} no e equivalente e deve ser marcado
- se q
u
,q
v
} encabea uma lista de pares, ento marcar todos pares da lista
(recursivamente)
- 15 -
Teoria da Computao e Linguagens Formais - Simone Domingues Prado - Apostila 02
4. UNIFICAO DOS ESTADOS EQUIVALENTES. Os estados dos pares no marcados so
equivalentes e podem ser uniIicados como segue:
a. A equivalncia de estados e transitiva;
b. pares de estados no Iinais equivalentes podem ser uniIicados como um unico estado no
Iinal;
c. Pares de estados Iinais equivalentes podem ser uniIicados como um unico estado Iinal;
d. Se algum dos estados equivalentes e inicial, ento correspondente estado uniIicado e inicial

5. EXCLUSO DOS ESTADOS INUTEIS. Por Iim, os estados chamados inuteis devem ser
excluidos. Um estado q e inutil se e no Iinal e a partir de q no e possivel atingir um esto Iinal.
Deve-se reparar que o estado d (se incluido) sempre e inutil.


Exemplo 11:
Considere um AFD como segue:
M q
0
, q
1
, q
2
, q
3
, q
4
, q
5
}, a,b}, o , q
0
, q
0
, q
4
, q
5
}}
o(q
0
, a) q
2
o(q
1
, a) q
1
o(q
2
, a) q
4
o(q
3
, a) q
5
o(q
0
, b) q
1
o(q
1
, b) q
0
o(q
2
, b) q
5
o(q
3
, b) q
4
o(q
4
, a) q
3
o(q
4
, b) q
2
o(q
5
, a) q
2
o(q
5
, b) q
3

Percebe-se que os pre-requisitos (1, 2 e 3) so satisIeitos. Ento se pode Iazer a minimizao.
Para construir um AFM tem-se:

PASSO 1. TABELA
Pode-se montar a tabela em qualquer Iormato, porem deve-se ater ao Iato de combinar todos os pares.
Veja algumas situaes:

Opo 01
q
0

q
1

q
2

q
3

q
4

q
5

q
0
q
1
q
2
q
3
q
4
q
5

Opo 02
q
0

q
1

q
2

q
3

q
4

q
5

q
0
q
1
q
2
q
3
q
4
q
5


Opo 03
q
5

q
4

q
3

q
2

q
1

q
0

q
0
q
1
q
2
q
3
q
4
q
5

Opo 04
q
5

q
4

q
3

q
2

q
1

q
0

q
0
q
1
q
2
q
3
q
4
q
5


Nesta apostila iremos adotar a Opo 01


- 16 -
Teoria da Computao e Linguagens Formais - Simone Domingues Prado - Apostila 02
PASSO 2. MARCAO DOS ESTADOS TRIVIALMENTE NO EQUIVALENTES.
Marcar todos os pares do tipo estado Iinal, estado no-Iinal}, ou seja,
Estados Iinais: q
0
, q
4
, q
5
}
Estados no Iinais: q
1
, q
2
, q
3
}
Ento, devem ser marcados, na tabela, os pares: q
0
, q
1
}, q
0
, q
2
}, q
0
, q
3
},
q
4
, q
1
}, q
4
, q
2
}, q
4
, q
3
},
q
5
, q
1
}, q
5
, q
2
}, q
5
, q
3
}

q
0

q
1
X
q
2
X
q
3
X
q
4
X X X
q
5
X X X
q
0
q
1
q
2
q
3
q
4
q
5



PASSO 3. MARCAO DOS ESTADOS NO EQUIVALENTES
Para isso, percorrem-se todos os pares no marcados na tabela, ou seja,
q
0
, q
4
}, q
0
, q
5
}, q
1
, q
2
}, q
1
, q
3
}, q
3
, q
2
}, q
5
, q
4
}
e veriIica se so ou no equivalentes.

Para o par: q
0
, q
4
}
o(q
0
, a) q
2
o(q
4
, a) q
3
Iorma o par q
2
, q
3
}, q
2
= q
3
e o par no esta marcado(3.b) aguarde na lista
o(q
0
, b) q
1
o(q
4
, b) q
2
Iorma o par q
1
, q
2
}, q
1
= q
2
e o par no esta marcado(3.b) aguarde na lista

Para o par: q
0
, q
5
}
o(q
0
, a) q
2
o(q
5
, a) q
2
Iorma o par q
2
, q
2
}, q
2
q
2
e o par e descartado (3.a)
o(q
0
, b) q
1
o(q
5
, b) q
3
Iorma o par q
1
, q
3
}, q
1
= q
3
e o par no esta marcado(3.b) aguarde na lista

Para o par: q
1
, q
2
}
o(q
1
, a) q
1
o(q
2
, a) q
4
Iorma o par q
1
, q
4
}, q
1
= q
4
e o par esta marcado (3.a) marca q
1
, q
2
}

o(q
1
, b) q
0
o(q
2
, b) q
5
....


Como vai marcar q
1
, q
2
} e o par q
0
, q
4
} estava esperando que q
1
, q
2
} Iosse marcado, ento sero
marcados os dois pares: q
1
, q
2
} e q
0
, q
4
}.

q
0

q
1
X
q
2
X !
q
3
X
q
4
! X X X
q
5
X X X
q
0
q
1
q
2
q
3
q
4
q
5


Para o par: q
1
, q
3
}
o(q
1
, a) q
1
o(q
3
, a) q
5
Iorma o par q
1
, q
5
}, q
1
= q
5
e o par esta marcado (3.a) marca q
1
, q
3
}

o(q
1
, b) q
0
o(q
3
, b) q
4
....
- 17 -
Teoria da Computao e Linguagens Formais - Simone Domingues Prado - Apostila 02
Como vai marcar q
1
, q
3
} e o par q
0
, q
5
} estava esperando que q
1
, q
3
} Iosse marcado, ento sero
marcados os dois pares: q
1
, q
3
} e q
0
, q
5
}.

q
0

q
1
X
q
2
X X
q
3
X !
q
4
X X X X
q
5
! X X X
q
0
q
1
q
2
q
3
q
4
q
5


Para o par: q
3
, q
2
}
o(q
2
, a) q
4
o(q
3
, a) q
5
Iorma o par q
4
, q
5
}, q
4
= q
5
e o par no esta marcado(3.b) aguarde na lista

o(q
2
, b) q
5
o(q
3
, b) q
4
Iorma o par q
5
, q
4
}, q
5
= q
4
e o par no esta marcado(3.b) aguarde na lista


Para o par: q
5
, q
4
}
o(q
5
, a) q
2
o(q
4
, a) q
3
Iorma o par q
2
, q
3
}, q
2
= q
3
e o par no esta marcado(3.b) aguarde na lista
o(q
5
, b) q
3
o(q
4
, b) q
2
Iorma o par q
3
, q
2
}, q
3
= q
2
e o par no esta marcado(3.b) aguarde na lista


PASSO 4. UNIFICAO DOS ESTADOS EQUIVALENTES
Foram veriIicados todos os pares e os pares q
3
, q
2
} e q
5
, q
4
} Iicaram ser serem marcados. Portanto:
(1) como q
3
, q
2
} no Ioi marcado, ento q
3
e equivalente a q
2
. Cria-se o estado q
23
para uniIica-los.
(2) como q
5
, q
4
} no Ioi marcado, ento q
5
e equivalente a q
4
. Cria-se o estado q
45
para uniIica-los.


PASSO 5. EXCLUSO DOS ESTADOS INUTEIS
Sero excluidos os estados: q
2
, q
3
, q
4
, q
5



Ento:
M` q
0
, q
1
, q
23
, q
45
}, a,b}, o , q
0
, q
0
, q
45
}}
o(q
0
, a) q
23
o(q
1
, a) q
1
o(q
23
, a) q
45
o(q
45
, a) q
23
o(q
0
, b) q
1
o(q
1
, b) q
0
o(q
23
, b) q
45
o(q
45
, b) q
23






Exemplo 12:
Considere um AFD como segue:
M q
0
, q
1
, q
2
, q
3
, q
4
}, 0,1}, o , q
0
, q
4
}}
o(q
0
, 0) q
1
o(q
1
, 0) q
2
o(q
2
, 0) q
1
o(q
0
, 1) q
3
o(q
1
, 1) q
4
o(q
2
, 1) q
4
o(q
3
, 0) q
2
o(q
4
, 0) q
4
o(q
3
, 1) q
4
o(q
4
, 1) q
4

- 18 -
Teoria da Computao e Linguagens Formais - Simone Domingues Prado - Apostila 02
PASSO 1. TABELA
q
0

q
1

q
2

q
3

q
4

q
0
q
1
q
2
q
3
q
4


PASSO 2. MARCAO DOS ESTADOS TRIVIALMENTE NO EQUIVALENTES.
Marcar todos os pares do tipo estado Iinal, estado no-Iinal}, ou seja,
Estados Iinais: q
4

Estados no Iinais: q
0
, q
1
, q
2
, q
3
}
Ento deve marcar na tabela os pares: q
4
, q
0
}, q
4
, q
1
}, q
4
, q
2
}, q
4
, q
3
}
q
0

q
1

q
2

q
3

q
4
X X X X
q
0
q
1
q
2
q
3
q
4



PASSO 3. MARCAO DOS ESTADOS NO EQUIVALENTES
Para isso deve percorrer todos os pares no marcados na tabela, ou seja,
q
0
, q
1
}, q
0
, q
2
}, q
0
, q
3
}, q
1
, q
2
}, q
1
, q
3
}, q
2
, q
3
}
e veriIicar se so no equivalentes.

O par: q
0
, q
1
}
o(q
0
, 0) q
1
o(q
1
, 0) q
2
Iorma o par q
1
, q
2
}, q
1
= q
2
e o par no esta marcado(3.b) aguarde na lista
o(q
0
, 1) q
3
o(q
1
, 1) q
4
Iorma o par q
3
, q
4
}, q
3
= q
4
e o par esta marcado (3.a) marcar q
0
, q
1
}

q
0

q
1
!
q
2

q
3

q
4
X X X X
q
0
q
1
q
2
q
3
q
4

O par: q
0
, q
2
}
o(q
0
, 0) q
1
o(q
2
, 0) q
1
Iorma o par q
1
, q
1
}, q
1
q
1
e o par e descartado (3.a)
o(q
0
, 1) q
3
o(q
2
, 1) q
4
Iorma o par q
3
, q
4
}, q
3
= q
4
e o par esta marcado (3.a) marcar q
0
, q
2
}

q
0

q
1
X
q
2
!
q
3

q
4
X X X X
q
0
q
1
q
2
q
3
q
4



- 19 -
Teoria da Computao e Linguagens Formais - Simone Domingues Prado - Apostila 02
O par: q
0
, q
3
}
o(q
0
, 0) q
1
o(q
3
, 0) q
2
Iorma o par q
1
, q
2
}, q
1
= q
2
e o par no esta marcado(3.b) aguarde na lista
o(q
0
, 1) q
3
o(q
3
, 1) q
4
Iorma o par q
3
, q
4
}, q
3
= q
4
e o par esta marcado (3.a) marcar q
0
, q
3
}

q
0

q
1
X
q
2
X
q
3
!
q
4
X X X X
q
0
q
1
q
2
q
3
q
4

O par: q
1
, q
2
}
o(q
1
, 0) q
2
o(q
2
, 0) q
1
Iorma o par q
2
, q
1
}, q
2
= q
1
e o par no esta marcado(3.b) aguarde na lista
o(q
1
, 1) q
4
o(q
2
, 1) q
4
Iorma o par q
4
, q
4
}, q
4
q
4
e o par e descartado (3.a)

O par: q
1
, q
3
}
o(q
1
, 0) q
2
o(q
3
, 0) q
2
Iorma o par q
2
, q
2
}, q
2
q
2
e o par e descartado (3.a)
o(q
1
, 1) q
4
o(q
3
, 1) q
4
Iorma o par q
4
, q
4
}, q
4
q
4
e o par e descartado (3.a)

O par: q
2
, q
3
}
o(q
2
, 0) q
1
o(q
3
, 0) q
2
Iorma o par q
1
, q
2
}, q
1
= q
2
e o par no esta marcado(3.b) aguarde na lista
o(q
2
, 1) q
4
o(q
3
, 1) q
4
Iorma o par q
4
, q
4
}, q
4
q
4
e o par e descartado (3.a)


PASSO 4. UNIFICAO DOS ESTADOS EQUIVALENTES
Foram veriIicados todos os pares e os pares q
3
, q
2
} e q
1
, q
2
} e q
1
, q
3
} Iicaram ser serem marcados.
Portanto:
(1) como q
3
, q
2
} no Ioi marcado, ento q
3
e equivalente a q
2
.
(2) como q
1
, q
2
} no Ioi marcado, ento q
1
e equivalente a q
2
.
(3) como q
1
, q
3
} no Ioi marcado, ento q
1
e equivalente a q
3
.
Ento q
1
e equivalente a q
2
que e equivalente a q
3
. Cria-se o estado q
123
para uniIica-los.

PASSO 5. EXCLUSO DOS ESTADOS INUTEIS
Sero excluidos os estados: q
1
, q
2
, q
3


Portanto:
M` q
0
, q
123
, q
4
}, 0,1}, o , q
0
, q
4
}}
o(q
0
, 0) q
123
o(q
123
, 0) q
123
o(q
4
, 0) q
4
o(q
0
, 1) q
123
o(q
123
, 1) q
4
o(q
4
, 1) q
4







- 20 -
Teoria da Computao e Linguagens Formais - Simone Domingues Prado - Apostila 02
6. Expresses Regulares

A expresso regular e uma maneira de descrever os conjuntos regulares. Usa-se a expresso regular em
construo de compiladores, editores, sistemas operacionais, protocolos, etc.

Trata-se de um Iormalismo denotacional, tambem considerado gerador, pois se pode inIerir como
construir ('gerar) as palavras de uma linguagem.

Uma expresso regular e deIinida a partir de conjuntos basicos e operaes de concatenao e unio.



DeIinio 08:
Uma Expresso Regular (ER) sobre um alIabeto E e deIinida como:
a) u (l-se phi) e uma ER e denota uma linguagem vazia
b) e uma ER e denota a linguagem contendo exclusivamente a palavra vazia, ou seja, }
c) x ( simbolo do alIabeto E ) e uma ER e denota a linguagem contendo a palavra x}
d) se r e s so ER e denotam as linguagens R e S, respectivamente, ento
d.1) (r) e uma ER
d.2) (r s) e uma ER e denota a linguagem R S
d.3) (r . s) e uma ER e denota a linguagem RS uv , u e R e v e S}
d.4) r* e uma ER e denota a linguagem R*


OBS:
1. a concatenao sucessiva (*) tem precedncia sobre a concatenao (.) e a unio ()
2. a concatenao tem precedncia sobre a unio.

Se r e s so ER e denotam as linguagens R e S, respectivamente, ento
a) L( r s ) L( r ) L( s )
b) L( r . s ) L( r ) . L( s ) ou L( r s ) L( r ) L( s )
c) L(( r )) L( r )
d) L( r* ) ( L( r ) )*


Exemplo 13:
Seja L a
n
b
m
, n 0, m 0}, ento L , a, b, aa, bb, ab, aab ...}
Considere as Linguagens:
L
1
a}
L
2
b}
L
3
a
k
, k 0}
L
4
b
l
, l 0}
L
5
a
k
b
l
, k 0, l 0}
As linguagens L
1
e L
2
so conjuntos sobre o E a,b} e por deIinio (8.c) e uma ER.
As linguagens L
3
e L
4
so obtidas por concatenao sucessiva, ou seja, L
3
L
1
*
e L
4
L
2
*
e portanto so
ER (deIinio 8.d.4).
A linguagem L
5
e uma ER obtida pela concatenao de L
3
e L
4
(deIinio 8.d.3).
Assim, L a
n
b
m
, n 0, m 0} pode ser denotada pela ER a*b*
- 21 -
Teoria da Computao e Linguagens Formais - Simone Domingues Prado - Apostila 02
Outros exemplos de ER e suas linguagens:

ER Linguagem representada
aa Somente a cadeia aa
ba* Cadeias que iniciam com b, seguida por zero ou mais a
(ab)* Todas as cadeias sobre a,b}
(ab)*aa(ab)* Todas as cadeias contendo aa como subcadeia
a*ba*ba* Todas as cadeias contendo exatamente dois b
(ab)*(aabb) Todas as cadeias que terminam com aa ou bb
(a )(bba)* Todas as cadeias que no possuem dois a consecutivos


As principais leis algebricas das ER so apresentadas a seguir. Sejam R, S, T trs ER quaisquer. Ento:
(1) Associatividade:
- da unio: (R S) T R (S T)
- da concatenao: (R . S) . T R . (S . T)
(2) Comutatividade:
- da unio: R S S R
- da concatenao: no se aplica
(3) Elemento neutro:
- da unio: R u u R R
- da concatenao: u . R R . u R
(4) Distribuio da concatenao sobre a unio:
- esquerda: R . ( S T ) R.S R.T
- direita: (R S) . T R.T S.T




Teorema 01:
Se r e uma Expresso Regular (ER), ento L(r) e uma Linguagem Regular.


Prova:
Por deIinio, uma linguagem e Regular se, e somente se, e possivel construir uma AF (deterministico ou
no), que reconhea a linguagem.
a) Base da induo: seja r uma ER com zero operador. Ento se tem:
r u (linguagem vazia)
r (linguagem contendo exclusivamente a palavra vazia, ou seja, })
r x ( x e E )
Com os Autmatos Finitos: M
1
q
0
}, u , o
1
, q
I
, u }
M
2
q
I
}, u , o
2
, q
I
, q
I
} }
M
3
q
0
, q
I
}, x} , o
3
, q
0
, q
I
}}





- 22 -
Teoria da Computao e Linguagens Formais - Simone Domingues Prado - Apostila 02






Figura 09. Base de induo


b) Hiptese de Induo: Seja r uma ER com ate n (n ~ 0) operadores. Suponha que e possivel deIinir um
AF que aceita a linguagem gerada por r;

c) Passo da Induo: Seja r uma ER com (n1) operadores. Ento r pode ser representada por um dos
seguintes casos, onde r
1
e r
2
possuem conjuntamente no maximo n operadores:
r r
1
r
2

r r
1
r
2

r r
1
*
Portanto por hipotese de induo e possivel construir os autmatos:
M
1
Q
1
, E
1
, o
1
, q
01
, q
I1
}} e M
2
Q
2
, E
2
, o
2
, q
02
, q
I2
}}
Tais que L(M
1
) L(r
1
) e L(M
2
) L(r
2
).

Os AFs, que aceitam a linguagem L(r), para cada caso, so como segue:
c.1) r r
1
r
2
M Q
1
Q
2
, E
1
E
2
, o, q
0
, q
I
}} (vide Figura 10)
c.2) r r
1
r
2
M Q
1
Q
2
, E
1
E
2
, o, q
01
, q
I2
}} (vide Figura 11)
c.3) r r
1
*

M Q
1
q
0
, q
I
}, E
1
, o, q
0
, q
I
}} (vide Figura 12)


Figura 10. Adio de expresses regulares


Figura 11. Multiplicao de expresses regulares

qo q
I
qo q
I

M1 M2 M3
x
- 23 -
Teoria da Computao e Linguagens Formais - Simone Domingues Prado - Apostila 02

Figura 12. Concatenaes sucessivas de expresses regulares




7. Gramtica Regular



DeIinio 09:
Seja G (V, T, P, S) uma gramtica e sejam A e B elementos de V e w uma palavra de T*.
Ento G e uma:
(a) Gramatica Linear Direita (GLD) se todas as regras de produo so da Iorma:
A w B ou A w
(b) Gramatica Linear Esquerda (GLE) se todas as regras de produo so da Iorma:
A B w ou A w
(c) Gramatica Linear Unitaria Direita (GLUD) se todas as regras de produo so como na linear
direita e, adicionalmente ,w, 1
(d) Gramatica Linear Unitaria Esquerda (GLUE) se todas as regras de produo so como na
linear esquerda e, adicionalmente ,w, 1



Exemplo 14:
(a) G (S}, x, y}, P, S)
P S xyS, S x}
Assim, G e uma GLD

(b) G (S
1
, S
2
, S
3
}, a, b}, P, S
1
)
P S
1
S
2
ab, S
2
S
2
ab , S
3
, S
3
a }
Assim, G e uma GLE

(c) G (S, A, B}, a, b}, P, S)
P S A, A aB, , B Ab }
Assim, G no e Linear


DeIinio 10:
Uma Gramtica Regular e qualquer Gramatica Linear

- 24 -
Teoria da Computao e Linguagens Formais - Simone Domingues Prado - Apostila 02

Teorema 02:
Se L e uma linguagem gerada por uma Gramatica Regular, ento L e uma Linguagem Regular.


Prova:
Para mostrar que uma linguagem e regular, e suIiciente construir um AF que a reconhea.
Suponha G ( V, T, P, S) uma GLUD. Ento o AF M Q, E , o , q
0
, F} com:
Q V q
I
}
E T
q
0
S
F q
I
}
o, como na tabela abaixo:
Tipo de Produo Transio Gerada
A o(A, ) q
I

A a o(A, a) q
I

A B o(A, ) B
A aB o(A, a) B
Simula as derivaes de G, ou seja, L(G) L(M).

A demonstrao que L(G) L(M) e verdade de Iato, esta no numero de derivaes.
Seja o elemento de (T V)* e w elemento de T*, ento:
(a) base de induo. Suponha S
1
o, ento, se:
(a .1.) o , existe uma regra S e assim para o AFM, o(S, ) q
I

(a .2.) o a, existe uma regra S a e assim para o AFM, o(S, a) q
I
(a .3.) o A, existe uma regra S A e assim para o AFM, o(S, ) A
(a .4.) o aA, existe uma regra S aA e assim para o AFM, o(S, a) A

(b) hipotese de induo. Suponha que S
n
o, n ~ 1, tal que, se:
(b.1.) o w, ento o*(S, w) q
I

(b.2.) o wA, ento o*(S, w) A

(c) passo da induo. Suponha que S
n1
o. Ento ocorre a hipotese (b.2.) e S
n
wA
1
o
(c.1.) o w, existe uma regra A e assim
o*(S, w) o(o*(S, w),) o(A, ) q
I
(c.2.) o wb, existe uma regra A b e assim
o* (S, wb) o(o* (S, w),b) o(A, b) q
I
(c.3.) o wB, existe uma regra A B e assim
o* (S, w) o(o* (S, w),) o(A, ) B

(c.4.) o wbB, existe uma regra A bB e assim
o* (S, wb) o(o* (S, w),b) o(A, b) B







- 25 -
Teoria da Computao e Linguagens Formais - Simone Domingues Prado - Apostila 02
Exemplo 15:
Considere a GLUD, G (S, A, B}, a,b}, P, S), onde P e:
S aA
A bB,
B aA
O AF M que reconhece a linguagem gerada por G e: M (S,A,B, q
I
}, a,b}, o , S, q
I
}), tal que o e
dada na tabela abaixo:
Produo Transio Gerada
S aA o(S, a) A
A bB o(A, b) B
A o(A, ) q
I

B aA o(B, a) A





Teorema 03:
Se L e uma linguagem Regular, ento existe uma Gramatica Regular que gera L.


Prova:
Se L e uma Linguagem Regular, ento existe um AFN M Q, E , o , q
0
, F} tal que L(M) L. A ideia
central da demonstrao e construir uma GLD G a partir de M tal que L(G) L(M).
Ento G (V, T, P, S) tal que: V Q S} e T E
P e construido como segue:

Transio Tipo de Produo
- S q
0

- q
I

o( q
i
, a) q
k
q
i
a q
k


Suponha w elemento de E*
a) base de induo: seja w tal que seu comprimento seja zero (,w,0). Ento a cadeia vazia
pertence linguagem L(M), logo q
0
e um estado Iinal e assim q
0

S q
0


b) hipotese de induo. Seja w tal que ,w, n (n > 1) e o*(q
0
, w) q. Ento
b.1) q no e estado Iinal, ento S wq
b.2) q e estado Iinal, ento S wq w

c) Passo de induo. Seja w tal que ,wa, n1 e o*(q
0
, wa) p. Ento o(o*(q
0
, w),a) p.
Portanto ocorre somente a hipotese b.1 acima e se:
c.1) p no e estado Iinal, ento S
n
wq
1
wap
c.2) p e estado Iinal, ento S
n
wq
1
wap
1
wa


- 26 -
Teoria da Computao e Linguagens Formais - Simone Domingues Prado - Apostila 02
Exemplo 16:
Seja M (q
0,
q
1,
q
2
}, a,b,c}, o , q
0
, q
0,
q
1,
q
2
})
Ento G (q
0,
q
1,
q
2
, S}, a,b,c}, S, P), onde P e como a tabela abaixo:

Transio Tipo de Produo
- S q
0

- Q
0

- Q
1

- Q
2

o( q
0
, a) q
0
Q
0
a q
0

o( q
0
, b) q
1
Q
0
b q
1

o( q
1
, b) q
1
Q
1
b q
1

o( q
1
, c) q
2
Q
1
c q
2

o( q
2
, c) q
2
Q
2
c q
2




8. Linguagens Regulares

Tm-se varios caminhos para descrever linguagens regulares: AFD, AFN, ER e gramaticas regulares.
Algumas conexes entre esses conceitos Ioram deIinidas nesta apostila atraves de teoremas. Foram vistas
as transIormaes de ER em Autmatos Finitos (4), Autmatos Finitos em Gramaticas Regulares (5),
Gramaticas em Autmatos Finitos (3). As outras transIormaes podem ser encontradas nos livros de
ReIerncia.




Existem algumas questes sobre linguagens regulares que necessitam analise:
(1) Como determinar se uma linguagem e regular
(2) Como veriIicar se uma linguagem regular e inIinita ou Iinita (ou ate mesmo vazia)
(3) possivel analisar duas linguagens regulares e concluir se so iguais ou diIerentes
(4) A classe das linguagens regulares e Iechada para operaes de unio, concatenao e interseco


- 27 -
Teoria da Computao e Linguagens Formais - Simone Domingues Prado - Apostila 02

Lema do bombeamento

Se L e uma Linguagem regular, ento existe uma constante n tal que para qualquer palavra w de L
onde , w , > n, w pode ser deIinida como w uvz onde , uv , s n, , v , > 1 e para todo i > 0, uv
i
z e palavra
de L.




8.1. Linguagens regulares e no regulares

Para mostrar que uma linguagem e regular e suIiciente representa-la usando um dos Iormalismos
apresentados (AF, ER, GR), ja a prova de que ela no e regular necessita analise caso a caso. Uma Iorma e
usar o lema do Bombeamento.

Exemplo 17:
Seja a linguagem L, no regular, sobre a,b} sendo que
L w , w possui o mesmo numero de simbolos a e b}

A prova que L no e regular e usando o lema do bombeamento e por absurdo.

Suponha L regular, ento existe um AFD M com n estados que aceita L.
Seja w a
n
b
n

Pelo lema do bombeamento, w pode ser escrita como w uvz, so que e um absurdo, ja que como ,uv, s n,
uv e composta exclusivamente por simbolos a . Neste caso, por exemplo, uv
2
z no pertence a L, pois no
possui o mesmo numero de simbolos a e b.

Para n 4, w aabb
1 caso: u a, v a, z bb, ,uv, ,aa, 2 s 4, mas aa
2
bb no pertence a L
2 caso: u aa, v b, z b, ,uv, ,aab, 3 s 4, mas aab
2
b no pertence a L


8.2. Linguagem regular vazia, finita ou infinita


Teorema 04:
Se L e uma linguagem Regular aceita por um AF M com n estados, ento L e:
a.) vazia se, e somente se, M no aceita qualquer palavra w tal que , w , n
b.) Iinita se, e somente se, M no aceita uma palavra w tal que n s , w , 2n
c.) inIinita se, e somente se, M aceita uma palavra w tal que n s , w , 2n


Exemplo 18:
Considere o autmato M (q
0,
q
1,
q
2
}, a,b}, o , q
0
,

q
2
}) com as Iunes de transies deIinidas abaixo:
o(q
0
, a) q
1
, o(q
1
, a) q
2
, o(q
2
, b) q
0
.
A linguagem reconhecida pelo autmato M e inIinita, ja que o autmato aceita uma palavra w tal que
n s , w , 2n, ou seja 3 s , w , 6 com w aabaa com comprimento 5.
- 28 -
Teoria da Computao e Linguagens Formais - Simone Domingues Prado - Apostila 02
8.3. Igualdade de linguagens



Teorema 05:
Se M
1
e M
2
so autmatos Iinitos, ento existe um algoritmo para determinar se L(M
1
) L(M
2
).



Pela deIinio 3 viu-se que se conseguirmos encontrar M
1
e M
2
equivalentes, L(M
1
) L(M
2
). Ento existe
um algoritmo para determinar se L(M
1
) L(M
2
) como os de reduo de estados, transIormao de AFN
para AFD.



8.4. Operaes fechadas sobre as linguagens regulares



Teorema 06:
A classe das linguagens regulares e Iechada para as seguintes operaes: unio, concatenao,
complemento e interseco.


Diz-se que um conjunto e Iechado sobre uma operao se o elemento obtido coma aplicao da operao
pertence ao conjunto.



8.4.1. Fechamento para a unio

Se L
1
e regular ento existe um AFD M
1
Q
1
, E
1
, o
1
, q
01
, F
1
}, tal que L(M
1
) L
1

Se L
2
e regular ento existe um AFD M
2
Q
2
, E
2
, o
2
, q
02
, F
2
}, tal que L(M
2
) L
2


Se Ior possivel construir um AFD M
3
, tal que L(M
3
) (L
1
L
2
) , ento L
1
L
2
e regular e a prova esta
Ieita.

Seja M
3
Q
3
, E
3
, o
3
, q
03
, F
3
}, ento:
Q
3
(q
i
, q
j
); q
i
e Q
1
e q
j
e Q
2
}
E
3
E
1
E
2

o
3
((q
i
,q
j
),a) (o
1
(q
i
,a), o
2
(q
j
,a))
q
03
( q
01
,q
02
)
F
3
(q
i
,q
j
); q
i
e F1 ou q
j
e F2}




- 29 -
Teoria da Computao e Linguagens Formais - Simone Domingues Prado - Apostila 02
Exemplo 19:
L1 aw: w e a,b}*}
L2 wa: w e a,b}*}

Ento M
1
q
0
, q
1
, q
2
}, a,b}, o
1
, q
0
, q
1
}}
Com o
1
(q
0
, a) q
1
,
o
1
(q
0
, b) q
2
,
o
1
(q
1
, a) q
1
,
o
1
(q
1
, b) q
1
,
o
1
(q
2
, a) q
2
,
o
1
(q
2
, b) q
2
.

Ento M
2
q
3
, q
4
}, a,b}, o
1
, q
3
, q
4
}}
Com o
2
(q
3
, a) q
4
,
o
2
(q
3
, b) q
3
,
o
2
(q
4
, a) q
4
,
o
2
(q
4
, b) q
3
.

Assim o M
3
Q
3
, E
3
, o
3
, q
03
, F
3
} sera
Q
3
(q
i
, q
j
); q
i
e Q
1
e q
j
e Q
2
} (q
0
, q
3
), (q
0
, q
4
), (q
1
, q
3
), (q
1
, q
4
), (q
2
, q
3
), (q
2
, q
4
)}
E
3
E
1
E
2
a, b}
q
03
(q
1
,q
3
)
F
3
(q
i
,q
j
); q
i
e F1 ou q
j
e F2} (q
1
, q
3
) (q
1
, q
4
), (q
0
, q
4
), (q
2
, q
4
)}

o
3
((q
i
,q
j
),a) (o
1
(q
i
,a), o
2
(q
j
,a)), ento se tem:
o
3
((q
0
, q
3
), a) (o
1
(q
0
, a), o
2
(q
3
, a)) (q
1
, q
4
)
o
3
((q
0
, q
3
), b) (o
1
(q
0
, b), o
2
(q
3
, b)) (q
2
, q
3
)
o
3
((q
0
, q
4
), a) (o
1
(q
0
, a), o
2
(q
4
, a)) (q
1
, q
4
)
o
3
((q
0
, q
4
), b) (o
1
(q
0
, b), o
2
(q
4
, b)) (q
2
, q
3
)
o
3
((q
1
, q
3
), a) (o
1
(q
1
, a), o
2
(q
3
, a)) (q
1
, q
4
)
o
3
((q
1
, q
3
), b) (o
1
(q
1
, b), o
2
(q
3
, b)) (q
1
, q
3
)
o
3
((q
1
, q
4
), a) (o
1
(q
1
, a), o
2
(q
4
, a)) (q
1
, q
4
)
o
3
((q
1
, q
4
), b) (o
1
(q
1
, b), o
2
(q
4
, b)) (q
1
, q
3
)
o
3
((q
2
, q
3
), a) (o
1
(q
2
, a), o
2
(q
3
, a)) (q
2
, q
4
)
o
3
((q
2
, q
3
), b) (o
1
(q
2
, b), o
2
(q
3
, b)) (q
2
, q
3
)
o
3
((q
2
, q
4
), a) (o
1
(q
2
, a), o
2
(q
4
, a)) (q
2
, q
4
)
o
3
((q
2
, q
4
), b) (o
1
(q
2
, b), o
2
(q
4
, b)) (q
2
, q
3
)




8.4.2. Fechamento para a interseo

Se L
1
e regular ento existe um AFD M
1
Q
1
, E
1
, o
1
, q
01
, F
1
}, tal que L(M
1
) L
1

Se L
2
e regular ento existe um AFD M
2
Q
2
, E
2
, o
2
, q
02
, F
2
}, tal que L(M
2
) L
2


Se Ior possivel construir um AFD M
3
, tal que L(M
3
) (L
1
L
2
) , ento L
1
L
2
e regular.
- 30 -
Teoria da Computao e Linguagens Formais - Simone Domingues Prado - Apostila 02
Seja M
3
Q
3
, E
3
, o
3
, q
03
, F
3
}, ento:
Q
3
(q
i
, q
j
); qi e Q1 e qj e Q2}
E
3
E
1
E
2

o
3
((qi,qj),a) (o
1
(qi,a), o
2
(qj,a))
q
03
( q
01
,q
02
)
F
3
(qi,qj); qi e F1 e qj e F2}


Exemplo 20:
L1 aw: w e a,b}*} e L2 wa: w e a,b}*}

Assim o M
3
Q
3
, E
3
, o
3
, q
03
, F
3
} sera
Q
3
(q
i
, q
j
); q
i
e Q
1
e q
j
e Q
2
} (q
0
, q
3
), (q
0
, q
4
), (q
1
, q
3
), (q
1
, q
4
), (q
2
, q
3
), (q
2
, q
4
)}
E
3
E
1
E
2
a, b}
q
03
(q
1
,q
3
)
F
3
(q
i
,q
j
); q
i
e F1 e q
j
e F2} (q
1
, q
4
)}
o
3
((q
i
,q
j
),a) (o
1
(q
i
,a), o
2
(q
j
,a)), como no exemplo anterior para unio.



8.4.3. Fechamento sobre concatenao

Se L
1
e regular ento existe um AFD M
1
Q
1
, E
1
, o
1
, q
01
, F
1
}, tal que L(M
1
) L
1

Se L
2
e regular ento existe um AFD M
2
Q
2
, E
2
, o
2
, q
02
, F
2
}, tal que L(M
2
) L
2


Se Ior possivel construir um AFD M
3
, tal que L(M
3
) (L
1
. L
2
) , ento L
1
. L
2
e regular.

Seja M
3
Q
3
, E
3
, o
3
, q
03
, F
3
}, ento:
Q
3
Q1 Q2
E
3
E
1
E
2

q
03
q
01

F
3
F
2

o
3
(q
i
, a) o
1
(q
i
,a)
o
3
(q
j
, a) o
2
(q
j
,a)
o
3
(q
k
, ) q
03
, onde q
k
e F
1


Exemplo 21:
Sejam L1 aw: w e a,b}*} e L2 wa: w e a,b}*}

Assim o M
3
Q
3
, E
3
, o
3
, q
1
, q
4
}} sera
Q
3
q
0
, q
1
, q
2
, q
3
, q
4
}
E
3
E
1
E
2
a, b}

o
3
(q
0
, a) q
1
,
o
3
(q
0
, b) q
2
,
o
3
(q
1
, a) q
1
,
o
3
(q
1
, b) q
1
,
- 31 -
Teoria da Computao e Linguagens Formais - Simone Domingues Prado - Apostila 02
o
3
(q
2
, a) q
2
,
o
3
(q
2
, b) q
2
.
o
3
(q
3
, a) q
4
,
o
3
(q
3
, b) q
3
,
o
3
(q
4
, a) q
4
,
o
3
(q
4
, b) q
3
,
o
3
(q
1
, ) q
3




8.4.4. Fechamento sobre complemento

Seja uma linguagem regular sobre E*. Seja M Q,E ,o ,q
0
,F}, um AFD tal que L(M) L. A ideia do que
segue consiste em inverter as condies aceita/rejeita de M para reconhecer L`. Entretanto, como M pode
rejeitar por indeIinio e necessario modiIicar o autmato, garantindo que somente ira parar ao terminar
de ler todas a entrada. Assim, a inverso das condies aceita/rejeita pode ser obtida transIormando os
estados Iinais em no Iinais e vice-versa.

A construo do AFD M` Q`,E` ,o` ,q
0`
,F`} tal que L(M`) L` e como segue
Q` Q d}
F` Q`- F
o`e como o, com as seguintes transies adicionais, para todo a e E:
o`(q,a) d se o(q,a) no e deIinida
o`(d,a) d
claramente o AFD M` construido acima e tal que L(M`) L`

Exemplo 22:
L aw: w e a,b}*}
Ento M q
0
, q
1
, q
2
}, a,b}, o , q
0
, q
1
}}
Com o(q
0
, a) q
1
,
o(q
0
, b) q
2
,
o(q
1
, a) q
1
,
o(q
1
, b) q
1
,
o(q
2
, a) q
2
,
o(q
2
, b) q
2
.

Ento M` Q`,E` ,o` ,q
0`
,F`} tal que L(M`) L`
Q` Q d} q
0
, q
1
, q
2
, d}
F` Q`- F q
0
, q
1
, q
2
, d} - q
1
} q
0
, q
2
, d}
Com o`(q
0
, a) q
1
,
o`(q
0
, b) q
2
,
o`(q
1
, a) q
1
,
o`(q
1
, b) q
1
,
o`(q
2
, a) q
2
,
o`(q
2
, b) q
2
,
o`(d, a) d ,
o`(d, b) d .

Você também pode gostar