Vous êtes sur la page 1sur 178

Serie

e Au omaos
Numero
••

Ingu~g ns For ars

LivrosDidaticos

Paulo Blauth Menezes


1

e Automatos

Lingu~gens Formals

Iniormetice UFRGS
Prof. Philippe Olivier Alexandre Navaux Prof. Otacilio Jose Carollo de Souza Prof. Tiaralu Asmuz Oiverio Prof. Clesio Saraiva dos Santos Prof. Ricardo Au~usto da Luz Reis ProF Carla Maria-Oal Sasso Freitas UFRGS -Instituto de Informatica Av. Bento Goncalves, 9500 Bloco IV Bairro Agronomia Caixa Postal 15064 91501·970 Porto Alegre, RS Fone 00 55 (051) 316 6165 Fax 0055 (051) 3191576 e·mail: informat@infufrQs.or http://www.im.ufrgsJJr

Diretor

Vice·Diretor

Comissao Editorial

Endere~o

Paulo Blauth Menezes

e Automatos

Lingu~gens Formals

--

.ll=ttD
~~ra

(i::)

de Paulo fernando Blauth Menezes 1" edicao, 1997 • 2" edicao, 1998 • Y edicao, 2000

Direitos reservados para a lingua portuguesa:

EditoraSagraLuzzatto
Rua Joao Alfredo, 448 - Cidade Baixa 90050-230 - Porto Alegre, RS Ligue gratis 0800-51-2269 Fone (51) 227-5222 Fax 227-4438 internet: www.sagra-Iuzzatto.com.br atendimento@sagra-luzzatto.com.br

.t .
9,

t)DU

Editor:

Supcrvisao Editorial:

Darcy Loss Luzzatto Elisa Schein Wenzel Luzzatto Ilustracocs: Maria Lucia Menezes Capa: Carlos Alberto Gravina

Dados lnternacionais de Catalogacao na Publicacao (ClP) (Camara Brasileira do Livro, SP, Brasil)
Menezes, Paulo Fernando Blauth Linguagens formais e automates / Paulo Fernando Blauth Menezes .. - Porto Alegre: Instituto de Informatica da UFRGS : Editora Sagra Luzzatto, 2000. (Serie livros didaticos, numero 3) Bibliografia. 85-241-0554-2 I. Linguagens formais. 2. Automates. 3. Gramaticas, 4. Expressao regulares. 5. Algoritmos de reconhecimento. 6. Teoria da computacao. 1. Titulo, II. Serie.

It proibida

a reproducao total ou parcial desta obra sem a previa autorizacao desta Editora.

Prefacio da Ser'ie
A serie Livros Didaticos, do Instituto de Informatica da Universidade Federal do Rio Grande do SuI, e inspirada na ideia de desenvolver material didatico para disciplinas ministradas no Bacharelado em Ciencia da Cornputacao. Esse material e resultante da experiencia dos professores do Instituto de Informatica no ensino e na pesquisa. Em seus primeiros volumes, a serie era voltada para Materruitica da Computaciio e Processamento Paralelo. Foram publicados tres titulos: Fundamentos da Matematica Intervalar, Programando em Pascal XSC. Esses dois primeiros titulos foram resultado de pesquisas desenvolvidas dentro do Projeto ArIn Par - Aritrnetica Intervalar Paralela, financiado pelo ProTeM -CC CNPq (Fase II). 0 terceiro, Linguagens Formais e Autom.atos, foi 0 primeiro da ser ie que se voltou ao objetivo de suprir livros-texto para as disciplinas basicas dos cursos de Bacharelado em Ciencia da Computacao (ou Informatica). 0 conteudo desses livros e baseado no programa das disciplinas do Bacharelado em Ciencia da Cornputacao da UFRGS, sendo adotado, tarnbern, por diversas Universidades do Rio Grande do SuI e de outros estados.

o sucesso da exper iencia com esses livros, bern como a responsabilidade que cabe ao Instituto de Informatica na formacao de professores e pesquisadores em Cornputacao, conduziu a ampliacao da abrangencia e a inst.itucionalizacao da serie, que passa a ser de Livros Didaticos do Instituto de Informatica.
Neste novo enfoque, foi publicado a segunda edicao dos livros Linguagens Formais e Automatos e Projeto de Banco de Dados, de autoria, respectivamente, dos Professores Paulo Fernando Blauth Menezes e Carlos Alberto Heuser, e a primeira edicao do livro Teoria da Computacao: Mtiquinas Universais e Computabilidade, dos autores T'iaraju Asmuz Diverio e Paulo Fernando Blauth Menezes. Esses livros estiio tendo uma ampla aceitacao pela comunidade, fato comprovado pelas indicacoes como livrostexto em varias universidades do Pais, 0 que, em 2000, levou a publicacao da terceira edicao do livro Projeto de Banco de Dados e, agora, do livro Linguagens Formais e Automates.

Outros

titulos,

tarnbern

compreendendo

conteudos

de

disciplinas

de

Bacharelados em Ciencia da Cornputacao (ou Informatica) e de Bacharelados em Engenharia da Cornputacao, encontram-se em preparacao. Entre eles, destacamos:


• • • •

Arquitetura de Computadores Pessoais - Ratti Fernando Weber


Tabelas: Organizacao e Pesquisa - Clesio Saraiva

dos Santos e Paulo Weber Blauth

Alberto de Azeredo
Fundamentos Teoria Tecnicas das da Arquitetura Categorias de Computadores da - Raul Fernando - Paulo

e Ciencia

Comput.acao

Menezes e Edward
Digitais

Hermann

Haeusler
- Flauio Rech Wagner em manter nivel compativel no ambito do

para Computacao

Todos os livros tern em comum a preocupacao com a elevada qualidade do en sino e da pesquisa Instituto de Informatica da UFRGS.

desenvolvidos

Comissao Editorial da Serie Livros Didaticos Instituto de Informatica da UFRGS

Marco de 2000.

Para Maria Fernanda, Maria Lucia e Maria Luiza

Agradecimentos

A Maria Lucia Menezes pelas bem-humoradas automates usadas ao longo de todo 0 texto.

ilustracoes

de

Aos alunos de mestrado Julio Pereira Machado e Carlos Tadeu Queiroz de Morais e aos bolsistas de iniciacao cientifica Leonardo Penczek, Gustavo Link Federizzi, Karina Girardi Roggia e Guilherme de Campos Magalhaes pelas diversas contribuicoes para a viabilizacao de diversos trabalhos afins. Ao colega Prof. Tiaraju Diverio pelo apoio e incentivo recebidos para a viabilizacao deste e de outros trabalhos didaticos.

Pr-efacio do Autor
Linguagens Formais e Automates objetiva apresentar os conceitos basicos de Linguagens Formais. E baseado em experiencias letivas no Curso de Bacharelado em Ciencia da Cornputacao da UFRGS. E destinado, principalmente, como urn primeiro curso de Linguagens Formais e Automates, sendo auto-contido e podendo ser adotado como bibliografia basica, Possui urn texto simples e com diversas ilustracoes, exemplos detalhados e exercicios em niveis crescentes de raciocinio. A prime ira edicao tinha como principal objetivo suprir a necessidade de urn livro-texto didatico voltado para 0 Curso de Bacharelados em Ciencia da Cornputacao na UFRGS. Entretanto, foi uma grata surpresa verificar que 0 livro foi adotado em divers as inst.ituicocs em todo 0 Brasil, esgotando rapidamente, fazendo com que uma segunda edicao fosse antecipada em cerca de dois anos em relacao ao previsto. A segunda edicao seguiu a mesma estrutura da primeira e aprimorou pequenos, mas importantes detalhes. A aceitacao foi muito boa e a edicao tambem esgotou-se rapidamente. Com 0 objetivo de manter 0 custo do livro acessivel (fator importante para muitos estudantes), optou-se, para esta terceira edicao, fazer somente pequenas revisoes, mantendo, inclusive, as mesmas numeracoes (pag inas, secoes, etc.) da segunda edicao. Em contrapartida, foi desenvolvido e testado urn sistema de apoio ao ensino, via Internet, denominado de HyperAutomaton, que inclui uma serie de facilidades para alunos, professores e interessados em geral. Urn fato curioso e que este sistema e baseado em Automates Finitos com Saida, urn dos temas desenvolvidos pelo livro. U rna importante consoquencia e que as paginas HTML nao possuem links (estes estao codificados na funcao programa do automate), permitindo urn reuso imediato do material instrucional. Gradativamente, a partir do segundo semestre de 2000, cursos, exercicios, material de apoio, revisoes (edicoes anteriores e atual), etc., serao disponibilizados no seguinte endereco: http://teia.inf.ufrgs.br/ Agradeco os diversos cornentarios, contribuicoes e retornos recebidos de professores, alunos e interessados e destaco 0 meu interesse em continuar mantendo contato sobre este e outros assuntos correlatos.

Porto Alegre, Outubro de 1998

Prof. Dr. Paulo Blauth Menezes blauth@inf.ufrgs.br www.inf.ufrgs.br/-blauth

Indice
1 Introducao e Conceitos Basicos
I. I Introducao..

1
.. . .. 1 .... 5 13
. 16

1.2 Conjuntos, Relacoes e Funcoes


U L6gica ..

1.4 Tecnicas de Dernonstracao . 1.5 Alfabctos, Palavras, Linguagens e Grarnaticas 1.6 Exercfcios .. .

..................

21 27

2 Linguagens Regulares
2.1 Sistema de Estados Finitos ... 2.2 Automato Finito 2.3 Automate 2.4 Automate . .
.

31
32 ......... . .. .
.

33 .39 44 50

Finito Nao-Deterrninfsrico Finito com Movimentos Vazios

. .

2.5 Expressao Regular. 2.6 Grarnatica Regular.. 2.7 Propriedades das Linguagens Regulares .... 2.8 Minirnizacao de urn Automate Finito .. 2.9 Automate Finito com Saida 2.9.1 Maquina de Mealy 2.9.2 Maquina de Moore. 2. 10 Exercicios . . . . . ................................. . .

55 60
66

72 73 74 76 80

2.9.3 Equivalencia das Maquina de Moore e Mealy ...

3 Linguagens Livres do Contexto


3.1 Grarnatica Livre do Contexto 3.2 Arvore de Derivacao 3.3 AmbigUidade 3.4 Simplificacdo de Gramaticas Livres do Contexto 3.5 Formas Normais 3.5.1 Forma Normal de Chomsky 3.5.2 Forma Normal de Greibach ... 3.6 Recursao
.

85
. . , . . . 86 88 90 91 97 98
100

a Esquerda ..
. . . . . . . . . "...... . . . .

... 104 104 105 110 113 114 ........... 119 120 122 124

3.7 Automate com Pilha 3.7.1 Definicao do Automate com Pilha 3.7.2 Autornato com Pilha e Linguagens Livres do Contexto 3.7.3 Nurnero de Pilhas e
0

Poder Computaciona1... ...

3.8 Propriedades das Linguagens Livres do Contexto 3.9 Algoritmos de Reconhecimento 3.9.1 Automate com Pilha como Reconhecedor. 3.9.2 Algoritmo de Cocke-Younger-Kasami 3.9.3 Algoritmo de Early 3.10 Exercfcios

................................................ In

4 Linguagens Enumeravcis Recursivamente


4.1 Maquina de Turing.... 4.2 Modelos Equivalentes 11 Maquina de Turing 4.3 Hip6tese de Church........ 4.4 Maquinas de Turing como Reconhecedores .... 4.4.1 Linguagens Enumeraveis Recursivamente 4.4.2 Linguagens Recursivas 4.5 Gramatica Irrestrita .... .

e Sensiveis ao Contexto
. .. . .

131
133 '. 137 139 ..... 139 ... 140 ... 142 ...... 143 . 145

4.4.3 Propriedades das Linguagem Enurneraveis Recursivamente e Recursivas ..................................... .

4.6 Linguagem Sensfvel ao Contexto .. 4.7 Maquina de Turing com Fita Limitada 4.8 Exercfcios ...

145 ...... 147 .. 150

5 Hierarquia

de Classes de Linguagens e Conclusoes

153

6 Roferencias

159

Indice Remissivo

161

Linguagens Formats e Automatos


Teoria das Linguagens Formais foi originariamente desenvolvida na decada de 1950 com 0 objetivo de desenvolver teorias relacionadas com as linguagens naturais. Entretanto, logo foi verificado que esta teoria era importante para 0 estudo de linguagens artificiais e, em especial, para as linguagens originarias na Ciencia da Computacao. Desde entiio, 0 estudo das Linguagens Formais desenvolveu-se significativamente e com diversos enfoques, com destaque para aplicacoes em analise lexica e sintatica de linguagens de programacao, modelos de sistemas biologicos, desenho de hardware e relacionamentos com linguagens naturais. Recentemente, inclui-se a enfase no tratamento de linguagens nao-Iineares, como planares, espaciais e n-dimensionais. Linguagens Formais e AutOmatos objetiva apresentar os conceitos basicos de Linguagens Formais. E baseado em experiencias letivas no Curso de Bacharelado em Ciencia da Computacao da UFRGS. E destinado, principalmente, como urn primeiro curso de Linguagens Formais, sendo auto-contido e podendo ser adotado como bibliografia basica, Possui urn texto simples e com diversas ilustracoes, exemplos detalhados e exercicios em niveis crescentes de raciocinio.

Nos Rob6s
1
1.1

Isaac AsjmoV

Introducao e Conceitos Basicos


Irrtroducao

Teoria das Linguagens Formais foi originariamente desenvolvida na decada de 1950 com 0 objetivo de desenvolver teorias relacionadas com as linguagens naturais. Entretanto, logo foi verificado que esta teoria era import ante para 0 estudo de linguagens artificiais e, em especial, para as linguagens originarias na Ciencia da Cornputacao. Desde entao, 0 estudo das Linguagens Formais desenvolveu-se significativamente e com diversos enfoques, com destaque para aplicacoes em Analise Lexica e Sintatica de linguagens de programacao, modelos de sistemas biol6gicos, desenhos de circuitos e relacionamentos com linguagens naturais. Recentemente, incluise a enfase no tratamento de Linguagens Nao-Lineares, como Planares, Espaciais e n-Dimensionais.

.................................................................................................................................................................................

Linguagens Formais e Automates - P. Blauth Menezes

Sintaxe e Semantica
Linguagens Formais preocupa-se com os problemas sintaticos das linguagens. Assim, inicialmente, e importante introduzir os conceitos de sintaxe e sernantica de linguagens. Historicamente, no estudo do entendimento das linguagens de programacao, 0 problema sintatico foi reconhecido antes do problema semantico e foi 0 primeiro a receber um tratamento adequado. Adicionalmente, os problemas sintaticos sao de tratamento mais simples que os sernanticos. Como consequencia, foi dada uma grande enfase a sintaxe, ao ponto de levar a ideia de que as quest6es das linguagens de progr amacao resumiam-se as quest6es da sintaxe. Atualmente, a teoria da sintaxe possui construcoes maternaticas bem definidas e universalmente reconhecidas como, por exemplo, as Gramaticas de Chomsky. Uma linguagem de programacao (bem matematico) pode ser vista de duas formas: • • como qualquer modelo

como uma entidade livre, ou seja, sem qualquer significado associado; como uma entidade juntamente com uma interpretacao do seu significado.

A sintaxe trata das propriedades livres da linguagem como, por exemplo, a verificacao gramatical de programas. A sem/intica objetiva dar uma interpretacao para a linguagem como, por exemplo, um significado ou valor para um determinado programa. Conseqiientemente, a sintaxe basicamente manipula simbolos sem considerar os seus correspondentes significados. Note-se que, para resolver qualquer problema real, e necessario dar uma interpretacao semantica aos simbolos como, por exemplo, "estes simbolos representam os inteiros". Sintaticamente falando , nao existe uma nocao de programa "errado": neste caso, simples mente nao e um programa. Por outro lado, um program a sintaticamente valido ("correto"), pode nao ser 0 programa que 0 programador esperava escrever. Assim, a questao de considerar u m programa "correto" ou "errado" deve considerar se 0 mesmo model a adequadamente 0 comportamento desejado. Nem sempre os limites entre a sintaxe e a semantica sao claros. V m exemplo e a ocorrencia de um nome em um programa 0 qual pode ser tratado de forma igualmente facil como um problema sintatico ou semantico, Entretanto, a distincao entre sintaxe e semantica em linguagens artificiais e , em geral, 6bvia para a maioria dos problemas relevantes.

.................................................................................................................................................................................

1 - Introduciio e Conceitos Basicos

Abordagem
A abordagem desta publicacao e centrad a no tratamento sintatico de linguagens lineares abstratas com facil associacao as linguagens tipicas da Ciencia da Computacao. Os formalismos usados podem ser classificados nos seguintes tipos: a) Operacional. Define-se urn automate ou uma maquina abstrata, baseada em estados, em instrucoes primitivas e na especificacao de como cada instrucao modifica cada estado. Uma maquina abstrata deve ser suficientemente simples para nao permitir duvidas sobre a execucao de seu codigo. 'I'ambem e dito urn formalismo Reconhecedor, no sentido em que permite a analise de uma dada entrada para verificar se e "reconhecida" pela maquina. As principais maquinas definidas nesta publicacao sao Automate Finito, Automate com Pilha e Maquina de Turing; b) Axiomatico, Associam-se regras as componentes da linguagem. As regras permitem afirmar 0 que sera verdadeiro ap6s a ocorrencia de cada clausula considerando 0 que era verdadeiro antes da ocorrencia. A abordagem axiomatica que segue e sobre Gramaticas (Regulares, Livres do Contexto, Sensiveis ao Contexto e Irrestritas). Uma gramatica tambern e dita urn formalismo Gerador no sentido em que permite verificar se urn determinado elemento da linguagem e "gerado"; c) Denotacional. Tambem e denominado formalismo Funcional. Define-se uma funcao que caracteriza 0 conjunto de palavras admissiveis na linguagem. Em geral, trata-se de uma funcao construida a partir de funcoes elementares de forma composicional (horizontalmente) no sentido em que a linguagem denotada pela funcao pode ser determinada em termos de suas funcoes componentes. Nesta publicacao, a abordagem denotacional e restrita as Express6es Regulares. Como, a partir de uma expressao regular, e simples inferir ("gerar") as palavras da linguagem denotada, freqiientemente tambem e denominado, de forma nao muito precisa, como urn formalismo Gerador.

Organizaeao dos Capitulos e Carga Horaria Recomendada


A estruturacao e uma breve introducao dos capitulos desta publicacao e , resumidamente, a seguinte: a) Capitulo 1. Os demais t6picos deste capitulo introduzem conceitos basicos necessarios para 0 que segue. Note-se que a parte referente a Conjuntos, Relacoes, Funcoes, L6gica e Tecnicas de Dernonstracao objetiva realizar uma revisao e normalizacao de notacoes e, portanto, considera algum

.................................................................................................................................................................................

Linguagens Formais e Automatos - P. Blauth Menezes

conhecimento previo e nao esgota 0 ass unto. Caso 0 leitor domine adequadamente estes assuntos, recomenda-se passar diretamente para a seccao 1.5 - Alfabetos, Palavras, Linguagens e Gramaticas; b) Capitulo 2. As Linguagens Regulares e as nocoes de Automate Finito e Expressao Regular sao originarias de estudos biologicos de redes de neuronios e circuitos de chaveamentos. Mais recentemente, sao usadas para 0 desenvolvimento de Analisadores Lexicos (parte de urn compilador que identifica e codifica as unidades basicas de uma linguagens como variaveis, numeros, etc.), editores de textos, sistemas de pesquisa e atualizacao em arquivos (em geral, do tipo busca e substituicao de inforrnacoes nao cornplexas), linguagens simples de cornunicacao homern-maquina (como interface do sistema operacional) e maquiriamaquina (como protocolos de cornunicacao). Note-se que a analise lexica pode ser considerada como urn caso particular e simples de analise sint.atica; c) Capitulo 3. As Linguagens Livres do Contexto e as correspondentes nocoes de Gramatica Livre do Contexto e Automate com Pilha sao usadas principalmente para 0 desenvolvimento de Analisadores Sintaticos, uma import ante parte de urn compilador. Historicamente, 0 desenvolvimento de analisadores sintaticos era urn problema complexo, de dificil depuracao e com eficiencia relativamente baixa. Hoje, considerando 0 conhecimento ja adquirido relativo as Linguagens Livre do Contexto, 0 desenvolvimento de urn Analisador Sintatico e simples (assim como a sua depuracao) e somente uma pequena percentagem do tempo de processamento de urn compilador e gasto em tal atividade; d) Capitulo 4. As Linguagens Enumeraveis Recursivamente e Sensiveis ao Contexto e as correspondentes nocoes de Maquina de Turing (e eventuais variacoes/restr icoes deste modelo) e as Gramaticas Irrestritas e Sensiveis ao Contexto permitem explorar os limites da capacidade de desenvolvimento de reconhecedores ou geradores de linguagens. Ou seja, estudam a solucionabilidade do problema da existencia de algum reconhecedor ou gerador para determinada linguagem; e) Capitulo 5. Conclui os capitulos anteriores, classificando as diversas classes de linguagens em uma ordem hierarquica, denominada Hierarquia de Chomsky (ilustrada na Figura 1.1) e apresenta conclusoes gerais e perspectivas futuras.

o trabalho que segue e baseado em expenencias letivas no Curso de Bacharelado em Ciencia da Computacao da Universidade Federal do Rio Grande do SuI. E destinado, principalmente, como urn primeiro curso de Linguagens Formais, sendo auto-contido e podendo ser adotado como bibliografia basica. Possui urn texto simples, exemplos detalhados e exercicios em niveis crescentes de raciocinio. Embora todos os conceitos

.................................................................................................................................................................................

1 - Introductio e Conceitos Basicos

Linguagens Enumeniveis Recursivamente ou Tipo 0 Linguagens Senslveis ao Contexto ou Tipo 1

Figura

L 1 Hierarquia

de Chomsky

necessarios sejam introduzidos, recomenda-se como pre-requisites conhecimentos basicos de 16gica, teoria dos conjuntos e algoritrnos. No caso de desenvolvimento de urn curso, a carga horaria recomendada varia de 45 a 90 horas,

1.2

Conjuntos, Relacoes e Funcoes


com os

No texto que segue e suposto que 0 leitor esta familiarizado conceitos basicos relativos a Teoria dos Conjuntos.

Conjuntos e Operaeoes sobre Conjuntos


Definieao 1.1 Conjunto.

Urn Conjunto e uma colecao de zero ou mais objetos distintos, denominados Elementos do conjunto. 0 Urn elemento e uma entidade basica a qual nao e definida formal mente. Relativamente ao relacionamento entre elementos e conjuntos, tem-se que: a) Se urn elemento a pertence a urn conjunto A denota-se por a contrario, a E A
E

A; caso

.~

~.i.,y!..'!:c:.!f.~'!.~ ..!..?~.r:!:?:~.~~~.~?~.~~~~ ..~.. .... :.!.!?:.'!:~.~.~~'!:.~~~~ : ~ .! .

b) Se todos os elementos de urn conjunto A tambem sao elementos de urn conjunto B, entao afirma-se que A esta contido em B ou que A e subconjunto de B e denota-se por A c B (ou ainda B contem A e B d A). Adicionalmente, se existe b E B tal que b It: A, entao afirma-se que A esta contido propriamente em B ou que A e subconjunto pr6prio de B e denota-se por A c B (ou ainda B content propriamente A e B ::> A) c) Os conjuntos A e B sao iguais se, e somente se, possuem elementos, ou seja, A = B se, e somente se, A ~ B e B ~ A os mesmos

Urn conjunto pode possuir urn numero finito ou infinito de elementos. Os conjuntos finitos podem ser denotados por extensiio, list an do todos os seus elementos entre chaves e em qualquer ordem como, por exemplo:
{a, b, c}

o conjunto sem elementos (ou seja, com zero elementos) e denominado conjunto vazio e e denotado por {} ou 0. Conjuntos (finitos ou infinitos) tam bern podem ser denotados por compreensiio na forma:
{a

I a E A e p(a) }

ou

{a

I p(a)}
ao conjunto A tal

a qual e interpret ada como:


"0 conjunto de todos os elementos apertencentes que pray e verdadeiro".

Quando e claro que a

A, pode-se denotar simples mente na forma:


{a I p(a)}

EXEMPLO 1 Conjuntos, Elementos.


,a) a
E

{b, a} e c It: {b, a}

b) {a, b}

= {b,

a}, {a, b} ~ {b, a} e {a, b} c {a, b, c}

c) Os seguintes conjuntos sao infinitos:


N

Z
(Q

n
IR

Conjunto Conjunto Conjunto Conjunto Conjunto

dos dos dos dos dos

Numeros Numeros Numeros Ntimeros Numeros

Naturais; Inteiros; Racionais; Irracionais; Reais.


= {x E Z

d) {1, 2, 3} = {x E N

I x » 0 e x < 4} e N

I x 2: O}
o

e) 0 conjunto dos mimeros pares pode ser denotado por compreensao como segue:
{y

I y=2xexE

N}

As principais operacoes sobre conjuntos sao as seguintes.

1 - Introductio e Conceitos Basicos

Definicao 1.2 Uniao, Interseceao, Partes, Produto Cartesiano. Sejam A e B conjuntos, Entiio:
a)

Diferenea, Complemento,

Conjunto das

Uniiio, A u B = {x AnB={x

I xE
I
XE

A ou AeXE

XE

B}

b) Lntersecciio .

B} B}

c)

Diferenca, A-B={x

I XE

AexE

d) Complemento. A operacao de complemento e definida em relacao a urn conjunto fixo UJ denominado conjunto universo. A' = {x
2A

I xE

UJ e x E A}

e) Conjunto das Partes.

= {S I

S ~ A}

f) Produto Cartesiano.

A x B = {(a, b) I a E A e b e B}

E usual denotar urn produto cartesiano de urn conjunto com ele mesmo como urn expoente. Por exemplo:
A x A = A2 Urn elemento de urn produto cartesiano denotado na forma (a, b) e denominado par ordenado e nao deve ser confundido com 0 conjunto {a, b}: em urn par ordenado, a ordem e importante, pois sao distinguidas as duas componentes. 0 conceito de par orden ado pode ser generalizado para n-upla ordenada, ou seja, com n > componentes.

EXEMPLO 2 Operacoes sobre Conjuntos. Suponha


0

universo N e sejam A = {O,1,2} e B = {2,3}. Entiio:

a) A u B = {O, 1, 2, 3}
b) An
c)

B = {2}

A - B = {O, 1 }

d) A' =

{X E

I x > 2}
o

e) 2B={0,{2},{3},{2,3}} f) A x B = {(O, 2), (0, 3), (1, 2), (1, 3), (2, 2), (2, 3)}

As seguintes propriedades das operacoes sobre conjuntos podem ser facilmente verificadas (suponha 0 universo UJ e os conjuntos A, B e C):

Linguagens Formais e Aut8matos - P. Blauth Menezes

a) Idempotencia,

Au A=A An A=A

b) Comutatividade.
AuB=BuA AnB=BnA
c) Associatividade.

A u (B u C) = (A u B)u C A n (B n C) = (A n B) n C

d) Distributividade.
A n (B u C) = (A n B) u (A n C) A u (B n C) = (A u B) n (A u C)
e) Duplo Complemento.

(A')' = A
f) Morgan.

(A u B)'= A' n B' (A n B)'= A' u B'

g) Universo

e Vazio.

Au A'= U A n A' = 0

Defini930 1.3 Relacao, Uma Relaciio (Binaria)

"

e um

subconjunto de um produto cartesiano.

Suponha os conjuntos A e B e a relacao R ~ A x B. Entao A e B sao denominados dominio e contra-dominic (ou codominio) de R, respectivamente. Um elemento (a, b) ERe usual mente denotado por aRb. Uma relacao R ~ Ax A (onde 0 dominio eo contra-domfnio coincidem) e dita uma relacao em A e, neste caso, e freqiientemente denotada por (A, R). Defini930 1.4 Relaeao Reflexiva, Simetrica, Antissimetrica, Transitiva. em A. Entao R e uma:

Sejam A um conjunto e R uma relacao

a) Relaciio Reflexiva, se, para todo a E A, a R a


b) Relaciio

Simetrica, se aRb, entao bRa


se aRb e bRa, entao a = b

c) Relaciio Antissimetrica,

d) Relaciio Transitiva, se aRb e b R c, entao aRc

l.:..!.'!:~:'~~.l!:~~~.~.g~~.c:.:!.~~~.!!.~~!~~~

~..

Note-se que uma relacao pode nao ser simetrica nem antissimetrica, ou seja, nao sao nocoes complementares. Adicionalmente, uma relacao pode ser simultaneamente simetrica e antissimetrica. EXEMPLO 3 Propriedades de Relacoes.

Considere urn conjunto nao vazio A. Entao: a) As relacoes (N, :5) e (2A, k;) sao reflexivas, antissimetricas b) As relacoes (Z, <) e (2A, c) sao transitivas; c) A relacao (CQ, =) e transitivas;

reflexiva, simetrica, antissimetrica


niio

e transitiva; antissimetrica e

d) A relacao ((1, 2), (2, 1), (2, 3)) nem transitiva.

e reflexiva,

simetrica,

Defini~o 1.5 Relacao de Ordem, Ordem Parcial, Ordem Total. Sejam A urn conjunto e R uma relacao em A. Entao R e uma: a) Relaciio de Ordem, se b) Relaciio de Ordem

c) Relaciio de Ordem b E A, ou aRb ou bRa.

e transitiva; Parcial, se e reflexiva, antissimetrica e transitiva; Total, se e uma relacao de ordem parcial e, para todo a,
0

EXEMPLO 4 Relaciio de Ordem, Ordem Parcial, Ordem Total. Considere urn conjunto nao vazio A. Entao: a) As relacoes (N, :5), (2A, c), (Z, «), (2A, c) e (CQ, =) sao de ordem; b) As relacoes (N, :5), (2A, k;) e (CQ,

=l

sao de ordem parcial;

c) A relacao (N, :5) e de ordem total. Definieao 1.6 Relaeao de Equivalencia, Sejam A urn conjunto e R uma relacao em A. Entao R Equioalencia se for reflexiva, simetrica e transitiva.

uma Relaciio de

Urn import ante result ado e que cada relacao de equivalencia induz urn particionamento do conjunto (em que a relacao e definida) em subconjuntos disjuntos e nao vazios denominados classes de equiualencia, EXEMPLO 5 Relaciio de Equiualencia. Considere a relacao R = {(a, b) E N2 I a MOD = b MOD onde MOD a operacao 2 2) e que result a no resto da divisao inteira. :It facil verificar que R e uma relacao de equivalencia, Portanto, R induz urn particionamento de N em dois subconjuntos: pares (resto zero) e impares (resto urn). 0 Frequentemente e desejavel estender uma relacao de forma a satisfazer determinado conjunto de propriedades.

.................................................................................................................................................................................

10

Linguagens Formais e Automates - P. Blauth Menezes

Definicao 1.7 Fecho de uma Relacao. Sejam R uma relacao e P um conjunto de propriedades. Entao, 0 Fecho de R em Relaciio ao P, denotado por FECHO-P(R), e a menor relacao que contem R e que satisfaz as propriedades em P. o Dois tipos de fecho de uma relacao sao especialmente trabalho que segue.
Defini~ao 1.8 Fecho Transitivo, Fecho Transitivo e Retlexivo.

import antes

no

Sejam R uma relacao em A. Entao: a) 0 fecho de R em relacao ao conjunto de propriedades {transitiva}, denominado Fecho Transitivo de R e denotado por R+, e definido como segue: a.L) Se (a, b) E R, entao (a, b) E R+; a.2) Se (a, b)
E

R+e (b, c)

R+, entao (a, c)

R+;

a.3) Os unicos elementos de R+sao os construidos como acima; b) 0 fecho de R em relacao ao conjunto de propriedades {transitiva, reflexiva}, denominado Fecho Transitivo e Refiexivo de R e denotado por R*, e tal que: R* = R+ u {(a, a)

I ae

A}

EXEMPLO 6 Fecho de um Grafo visto como uma Relaciio. Um grafo (direto) pode ser definido como uma relacao A (de arestas) em u m conjunto V (de vertices). Assim:
A = {(1, 2), (2, 3), (3, 4), (1, 5))

e um grafo em V= ( 1,~, 3, 4, 5) como ilustrado na Figura 1.2 (esquerda) onde 0 par orden ado que define uma aresta e representado por uma seta na qual as circunferencias de origem 'e de destino representam a primeira e a segunda componente do par, respectivamente. 0 fecho transitivo e reflexivo:
A* = {(1, 1), (1, 2), (1, 3), (1, 4), (1, 5), (2, 2), (2, 3), (2, 4), (3, 3), (3, 4), (4, 4), (5, 5))

e ilustrado na Figura 1.2 (direita) onde as arestas adicionadas pelo fecho sao representadas com um trace diferente. 0

Definieao 1.9 Funcao Parcial. Uma Funciio Parcial e uma relacao f entao b = c.
<;;; A

x B tal que se (a, b)

f e (a, c)

f,
0

Portanto, uma funcao parcial e uma relacao onde cada elemento do dominio esta relacionado com, no maximo, um elemento do contra-dominio.

1 - Introductio e Conceitos Basicos

11

Figura 1.2 Grafo (esquerda) e

correspondente

fecho transitivo

e reflexivo (dire ita)

Uma funcao parcial f !:: Ax B normalmente e denotada por f: A -7 B. Adicionalmente, (a, b) E f e usual mente denotado por f(a) = b. Se f(a) = b entao afirma-se que f esta definida para a e que b e imagem de a. 0 conjunto: {b E B I existe a E A tal que f(a) = b} e denominado conjunto imagem de fee denotado por f(A)ou Img(f).

Definicao 1.10 Funcao, Aplicaeao. Uma Funciio (Total) ou Aplicaciio e uma funcao parcial to do a E A existe b s B tal que f(a) = b. Portanto, uma funcao (total) e uma funcao parcial elementos do dominio. EXEMPLO 7 Funciio, Funciio Parcial. a) Funcao Identidade. Para um dado conjunto tal que, para todo a E A, idA(a)= a;
b) Adiciio nos naturais.

f: A

-7

Bonde

para
0

definida

para

todos os

A, a funcao (total) idA:A

-7

Ae

A operacao ad: N x N

-7

N tal que ad(a, b) = a + be uma

funcao (total);
r

c) Dioisiio nos reais. A operacao div:IRxIR -7 IR tal que div(x, y) = x/y e uma funcao parcial pois nao e definida para (x, 0), qualquer que seja x E IR. 0 Defini~ao 1.11 Composieao de Funeoes. Sejam f:A -7 Beg: B -7 C funcoes. A Composiciio de f e 9 e a funcao 9 tal que (g f)(a) = g(f(a)). f: A
-7

C
0

Portanto, a composicao de duas funcoes f: A -7 Beg: B -7 C e uma funcao 9 f: A -7 Conde (g f)(a) = g(f(a))e a aplicacao da funcao f ao elemento a e, na sequencia, da funcao 9 it imagem f(a).

12

Linguagens

Formais

e Automatos - P_ Blauth

Menezes

E.1(EMPLO 8 Composiciio de Funcoes. A composicao das funcoes ad: N x N --7 N (Exemplo 7) e quadrado:N funcao quadrado ad: N x N --7 N e, para (3,1) E N x N, tem-se que: (quadrado ad)(3,1) = quadrado(ad(3, = quadrado(4) 16 1)) = Ou seja, a composicao das funcoes resulta no quadrado da adicao.
Defini~ao 1.12 Funcao Injetora, Sobrejetora, Bijetora ou Isomorfismo.
0
--7

Nea

Uma funcao f: A a) Injetora

--7

B e dita:

se, para todo b e B, existe no maximo urn a E A tal que f(a)= b; se, para todo b
E

b) Sobrejetora

B, existe pelo menos urn a E A tal que f(a)= b;

c) Bijetora ou Isomorfismo Portanto, uma funcao e:

se e injetora e sobrejetora,

o
de, no maximo, de pelo menos e imagem de

a) Injetora se cada elemento do contra-dominio urn elemento do dominio; b) Sobrejetora se todo elemento do contra-dominio urn elemento do dominio;

e imagem e imagem

c) Bijetora ou isomorfismo se todo elemento do contra-dominio exatamente urn elemento do dominio.

E comum usar os termos injecao, sobrejecao e bijecao ao inves de funcao injetora, funcao sobrejetora e funcao bijetora, respectivamente. Adicionalmente, se existe urn isomorfismo (funcao bijetora) entre dois conjuntos, estes sao ditos conjuntos isomorfos.
+

EXEMPLO 9 Funciio Injetora, a) A funcao inclusao: N b) A funcao modulo: Z


--7

Sobrejetora,

Z tal que inclusaota) = a e injetora;

Bijetora, Isomorfismo.

--7

N tal que modulo(a) 1ale sobrejetora; =

c) A funcao f: Z --7 N tal que f(a)= 2a se a z 0 e f(a)= 12a1-1se a < 0 e bijetora, ou seja, e urn isomorfismo, Portanto, os conjuntos ZeN sao isomorfos, Notese que, os inteiros nao-negativos sao associados aos naturais pares e os inteiros negativos aos naturais impares. o

CanlinalidadedeCo~un~s
A cardinalidade de urn conjunto definida usando funcoes bijetoras.
Definieao 1.13 Cardinalidade

e uma medida de seu tamanho

ee

Finita, Infinita. por #A

A Cardinalidade

de urn conjunto A, representada

e:

.................................................................................................................................................................................

1 - Introduciio e Conceitos Basicos

13

a) Finita se existe uma bijecao entre Ae 0 conjunto {1,2, 3, ..., n}, para algum n E N. Neste caso, afirma-se que #A= n (como fica 0 caso em que n = O?); b) Infinita se existe uma bijecao entre A e urn subconjunto proprio de A.
0

Portanto, urn conjunto e finito (ou seja, possui uma cardinalidade finita) se for possivel representa-lo por extensao. Urn conjunto A e infinito se for possivel retirar alguns elementos de A e, mesmo assim, estabelecer uma bijecao com A. EXEMPLO 10 Cardinalidade de Z. A funcao I: Z -7 N tal que I(a) = 2a se a ~ 0 e I(a) = 12a 1-1 se a < 0 e bijetora. Clararnente, N e subconjunto proprio de Z. Entao Z e infinito. o

It importante destacar que nem todos os conjuntos infinitos possuem a mesma cardinalidade, 0 que contradiz a nocao intuitiva da maioria das pessoas. De especial interesse e 0 cardinal do conjunto dos numeros naturais N, denotado por ~o. 0 simbolo ~ (le-se "alef") e a primeira letra do alfabeto hebraico.
Defini~ao 1.14 Conjunto Contavel, Nao-Contavel, Urn conjunto infinito A e dito: a) Contauel ou Contavelmente lnfinito, se existe uma bijecao entre A e urn subconjunto infinito de N; b) Niio-Contiiuel , caso contrario.
A bijecao que define enumeraciio de A. Portanto, seus elementos como uma qualquer conjunto contavel
0

conjunto

se urn conjunto A e contavel e denominada urn conjunto e contavel se for possivel enumerar sequencia na forma ao, ar, a2, .... 0 cardinal de e ~ o.

EXEMPLO 11 Conjunto Contaoel, Ntio-Contauel. Os conjuntos Z e CQ sao contaveis. Os conjuntos fato, prova-se que 0 cardinal de n e lR e 2!(o.

e lR sao nao-contaveis.

De
0

1.3 L6gica
No texto que segue e suposto que 0 leitor esta familiarizado com os conceitos basicos relativos a Logica Booleana. Entende-se por L6gica Booleana como 0 estudo dos principios e metodos us ados para distinguir sentencas verdadeiras de falsas.

.~~

~.i.r:.?~c:.?~'!.~ ..!..~.I:.r::.?:f.~ ~~.~?'!!.f!.~~~ !!.!?:.~~.~.!'!.~r::.~~~~ ..:.. ..:..!.:.. l .

Defini~ao 1.15 Proposicao. a) Uma Proposiciio e uma sentenca declarativa verdadeiro ou (also (nao-verdadeiro); a qual possui valor logico

b) Considere um conjunto universo U. Uma Proposiciio Sobre [J e uma proposicao cujo valor logico depende de um elemento x E U consider ado. 0 Os valores logicos verdadeiro e falso sao usual mente denotados por V e F, respectivamente. Uma proposicao p a qual descreve alguma propriedade de um elemento x E U e usual mente denotada por p(x).Toda a proposicao p sobre U induz uma particao de U em duas classes de equivalencia, como segue: a) (x b)

I p(x)e verdadeira}, denominado conjunto verdade de p (x I p(x)e falsa}, denominado conjunto (alsidade de p
0

Defini~o 1.16 Tautologia, Contradicao. Seja puma proposicao sobre a) p e dita uma Tautologia b) P conjunto universo U. Entao: se p(x)e verdadeira para qualquer x E U

e dita

uma Contradicdo se p(x)e falsa para qualquer x E U 12 Proposiciio, Tautologia, Contradicao.

EXEMPLO

a) A sentenca 3 + 4 > 5 e uma proposicao; b) Para a proposicao n! < 10 sobre N, tem-se que (O, 1,2, 3) e (n E N In> 3) e 0 conjunto falsidade; c) A proposicao n + 1 > n sobre N d) A proposicao "2n e Impar"

e 0 conjunto

verdade

e uma tautologia; sobre N e uma contradicao.

Uma operaciio ou um operador sobre um conjunto A e uma funcao da forma op: An -t A. Portanto, um operador l6gico, tambem denominado conetivo (logico), e um operador sobre 0 conjunto das proposicoes. Uma proposicao que nao contern operadores e denominada proposiciio atomica ou simplesmente atomo. 0 conjunto de todas as proposicoes logicas e denotado por IP. Uma tabela verdade e uma tabela que descreve os valores logicos de uma proposicao em termos das possiveis combinacoes dos valores logicos das proposicoes componentes. Definieao 1.17 Operadores Logicos, Os seguintes Operadores ou Conetivos sobre 0 conjunto das proposicoes logicas IP sao definidos conforme a tabela verdade ilustrada abaixo: a) Negactio, Operador denotado pelo simbolo --, b) E. Operador denotado pelo simbolo /\ c) Ou. Operador denotado pelo simbolo v

.................................................................................................................................................................................

1 - Lntroduciio e Conceitos Basicos

15

d) Se-Enuio,

Operador denotado pelo simbolo ~ Operador denotado pelo simbolo


H

e) Se-Somente-Se.

p
V V F F

q
V F V F

...,p
F F V V

p"q
V F F F

_p v q
V V V F

p~q
V F V V

pHq
V F F V

Note-se que todos os operadores definidos aeima sao binaries e denotados de forma infixada (operador no meio dos operandos), exeetuando-se 0 de Negacao 0 qual e unario e denotado de forma prefixada. Os operadores proposicoes. 16gieos ~ e
H

induzem

importantes

relacoes

entre

Defini~o 1.18 Relaeao de Implicaeao, Equivalencia, As seguintes relacoes sao induzidas pelos operadores ~ e a) A relacao =::}, denominada Relacao Implicaciio, e definida pelo eonjunto:
{ (p, q)
E ]p2 H

sobre P:

de Implicaciio tautologia}

ou simplesmente

Ip~ I pH

e uma

b) A relacao <=>, denominada Relaciio de Equiualencia Equioalencia , e definida pelo conjunto:


{(p, q) E ]p2 q

ou simplesmente
0

e uma

tautologia}

E facil verifiear que


res pectiv amen te. EXEMPLO

=::} e <=> sao relacoes de ordem e de equivalencia,

13 Relaciio de Implicaciio,

Equioalencia.

Os seguintes pares de proposicoes perteneem as relacoes de implicacao ou de equivalencia, como pode ser verificado pelas tabelas verdade abaixo:
a) Adiciio . p=::}pvq b) Simplificaciio, p x q ee p e) Contraposiciio, p ~ q <=> -.q ~ -,p

}~
Reductio ao Absurdo.
p ~ q ~ (p /\ -,q) ~ F

l:.i.r::¥..L!:?:lf.~'.:.~!.?!?!!.?:!.~ :..~r:.~?'!!.c:.~~~!.~?:.1f:~~.!1.~'!:.~~~~ .. .. ..:.. :..l ~ .

d)

!l_

pvq V V V F

p -+ (p v q)

p/\g_ V F F F

(JJ_ A q)_ -+ p_ V V V V

V V F F

V F V F

V V V V

p V V F F

q V F V F

-,p F F V V

-,q_ F V F V

p~q V F V V

-,q ~-,p V F V V

(p -+ q) ~

(-,q -+ -,p)

V V V V

_p

-,q F V F V

p~q V F V V

P /\ -,q F V F F

((p /\ -so) ~

F)

(p ~ _ H1U>_ A -,q) -+ F) q)

v
V F F

v
F V F

V F V V

V V V V

1.4 'I'ecnicas de Demonsfraeao


Urn teorema e uma proposicao do tipo p ~ q a qual prova-se ser verdadeira sempre, ou seja, que p ~ q. As proposicoes p e q sao denominadas hipotese e tese, respectivamente. E usual denominar por coroltirio urn teorema que e uma consequencia quase direta de urn outro ja demonstrado (ou seja, cuja prova e trivial ou imediata). Adicionalmente, urn teorema auxiliar que possui urn result ado importante para a prova de urn outro e usual mente denominado por lema.

.................................................................................................................................................................................

1 - Introduciio e Conceitos Btisicos

17

Dado urn teorema a ser demonstrado, e fundamental, antes de iniciar a dernonstracao, identificar claramente a hipotese e a tese, Por exemplo, considere 0 seguinte teorema: a intersecciio distribui-se sobre a uniiio, ou seja,
A

n (8 u C) = (A n 8) u (A n C)

Uma reescrita identificando claramente a hipotese e a tese se A, 8 e C sao conjuntos quaisquer, enttio An (8 u C) = (A n 8) u (A n C)

e como segue:

E usual urn teorema ser apresentado na forma p (suponha que A e urn conjunto qualquer):

f-7

q como, por exemplo,

A Ii contrive! se, e somente se, existe uma [unciio bijetora entre A e 0 conjunto dos numeros pares Sugere-se como exercicio verificar que:

Assim, neste caso, deve ser demonstrada a "ida" e a "volta", ou seja, que: se um conjunto A Ii contaoel, entiio existe uma funcao bijetora entre A e 0 conjunto dos ruimeros pares
e

se existe uma [uncao bijetora entre A e 0 conjunto dos numeros pares, eniiio A Ii contrive! Para urn determinado teorema p ---7 q existem divers as tecnicas para provar (demonstrar) que, de fato, p::::} q. As seguintes tecnicas destacam-se: a) Direta;
b) Contraposicao;

c) Reducao ao absurdo; d) Ind ucao.

Prova Direta
A prooa direta simples mente pressup6e verdadeira a hipotese e, a partir desta, prova ser verdadeira a tese. EXEMPLO 14 Prova Direta. Considere
0

teorema: a intersecciio distribui-se sobre a uniiio, ou seja,

An (8 u C) = (A n 8) u (A n C)

18

Linguagens

Formais

e Autom.atos

- P. Blauth

Menezes

exemplificado acima. Inicialmente, • •

lembre-se que: de X tambern

por definicao, X= Yse, e somente se, X k Ye Y k X; por definicao, X k Y se, e somente se, todos os elementos sao elementos de Y.

Adicionalmente, e facil verificar, usando tabela verdade, que 0 operador logico A se distribui sobre 0 v, ou seja, para quaisquer proposicoes p, q e r, temse que: P A (q v r) ¢:::> (p
A

q)

(p

r)

Para provar que A n (8 u C) = (A n 8) u (A n C), deve-se provar que:


A (A

n (8 u C) k (A n 8) u (A n n 8) u (A n C) c A n (8 u

C) C)

Suponha que A, 8 e C sao conjuntos quaisquer. Caso 1. An (B u C) b (A n B) u (A n C). Suponha x E An (8 u C). Entao: definicao de interseccao X E An (8 u C) ~ definicao de uniao X E A A X E (8 u C) ~ distributividade do A sobre 0 v X E A A (x E 8 v X E C) ~ dofinicao de interseccao (x E A A X E 8) v (x E A A X E C) ~ definicao de uniao X E (A n 8) v x E (A n C) ~ x E (A n 8) u (A n C) Portanto, A n (8 u C) k (A n 8) u (A n C) Caso 2. (A n B) u (A n C) bAn (B u C). Suponha x E (A n 8) u (A n C). Entao: definicao de uniao definicao de interseccao distributividade do A sobre 0 v definicao de uniao definicao de interseccao (8 u C)
0

x E (A n 8) u (A n C) ~ x E (A n 8) v x E (A n C) ~
(x
E

A XE A A

8) v (x

A XE

C) ~

xE A xE A

(x E 8 v X E C) ~ X E (8 u C) ~
(8 u C) (A

An

Portanto,

n 8) u

(A

n C) k

An

Logo, A n (8 u C) = (A n 8) u (A n C)

~vaporConkapom~o
A prova por contraposiciio verificado no Exemplo 13: baseia-se no seguinte resultado,
0

qual foi

P -7 q
Para demonstrar seguinte teorema:

¢:::>

-,q

-7

-,p

EXEMPLO 15 Prova por Contraposiciio.

!...·..!.'!.~!~~.:':f.~~.~~!:.~.~f.~~~.B..~~!~?~ .. .. q
n!>n + 1 ~ n>2 pode-se, equivalentemente, demonstrar por contraposicao que:

~.

n~2 ~ n!~n+ 1 Note-se que e muito simples provar que n <::; 2 ~ testar para os casos n = 0, n = 1 e n = 2. n! <::; n + 1 pois e suficiente
0

Prova por Reducao aoAbsurdo


A proua por reductio ao absurdo ou simplesmente proua por absurdo baseia-se no seguinte resultado, 0 qual foi verificado no Exemplo 13: p~ q Ou seja, para demonstrar
¢::}

(p /\ -,q) ~ F

que p ~ q a tecnica consiste em supor a hip6tese a qual, em geral, e q /\ -,q. Note-se que, a tecnica de demonstracao denominada por contraexemplo, e uma demonstracao por absurdo. De fato, em uma demonstracac por absurdo, a construcao da contradicao q /\ -,q e, em geral, a apresentacao de um contra-exemplo.
p, supor a negacao da tese -,q e concluir uma contradicao

EXEMPLO 16 Proua por Reduciio ao Absurdo. Considere


0

seguinte teorema:

o eo

unico elemento neutro da adicao em

}Ii

ou seja, reescrevendo na forma de p ~ q: se 0 e elemento neutro da adicao em }Ii, entiio 0 e 0 unico elemento neutro da adiciio em Uma prova por reducao ao absurdo e como segue: a) Suponha que 0 eo elemento neutro da adicao em N e que nao e 0 unico elemento neutro da adicao em N. Seja e um elemento neutro da adicao em N tal que e 7c. 0; b) Entao: • • • como 0 e elemento neutro, para qualquer n E N, tem-se que n = 0 + n. Em particular, para n = e, tem-se que e = 0 + e; como e e elemento neutro, para qualquer n E N, tem-se que n = n + e. Em particular, para n = 0, tem-se que 0 = 0 + e; portanto, como e = 0 + e e 0 = 0 + e, pel a transitividade da igualdade temse que e = 0,0 que e uma contradicao, pois foi suposto que e 7c. O.
0

}Ii

Logo, e absurdo supor que

elemento neutro da adicao em N nao e unico.

.~

~!.'.:¥..r:.~¥.~~.~ ..~ ~~.~?~.c:.~?~!!.~~.'!.~.~.!!.~~.~~~~ ..!..?' r::.~!.~.. ..:..!.:.. I .


Prova por Inducao

A prova por inducao e de fundamental importancia neste trabalho, pois e usada com frequencia. A prova por inducao e usada em proposicoes que dependem dos numeros naturais. Definieao 1.19 Principio da Indueao Matematica, Seja p(n) uma proposicao sobre N. 0 Principio da Inductio segue: a) p(O) e verdadeira; b) Para qualquer kEN,
p(k)
--7

Matematica

e como

p(k + 1)e verdadeira;

c) Entao, para qualquer n E N, p(n) e verdadeira. Neste caso, p(O), p(k) e a proposicao p(k) --7 p(k + 1) denominam-se induciio, hip6tese de inductio e passo de induciio, respectivamente. base de
0

Em uma demonstr acao por inducao, deve-se demonstrar a base de inducao p(O) e, fixado urn k, supor verdadeira a hip6tese de inducao p(k) e demonstrar 0 passo de inducao. Na realidade, 0 principio da inducao maternatica pode ser aplicado a qualquer proposicao que dependa de urn conjunto para 0 qual exista uma bijecao com os naturais. EXEMPLO Considere 17 Prova por Inducao.
0

seguinte teorema: para qualquer n E fIi, tem-se que 1 + 2 + ... + n = (n2 + n)/2

Uma prova por inducao e como segue: a) Base de Induciio, Seja n = O.Entao:
(02 + 0)/2 = (0 + 0)/2 = 0/2 = 0

Portanto, 1 + 2 +

+ n = (n2 + n)/2 e verdadeira para n = O.Note-se que, 1 + 2 + ...


0

+ n = 0 +1 + 2 + + n (pois 0 e 0 elemento neutro da adicao) e, portanto, somat6rio ate n = 0 e perfeitamente definido; n = (n2 + n)/2

b) Hip6tese de Induciio, Suponha que, para algum n E N, tem-se que 1 + 2 + ... + c) Passo de Inductio, Prova para 1 + 2 + ... + n + (n + 1)
1+2+ (1 +2+ +n + (n + 1) = +n)+(n+1)=

(n2 + n)/2 + (n + 1) = (n2 + n)/2 + (2n + 2)/2 =

.!...-.. !.,!:~!:~~.l:';f.~~.~ ..~~~.~.:!.~~~ .. ~~!~~~ ~


(n2 + n + 2n + 2)/2

~~ .

((n2 + 2n + 1) + (n + 1))/2 = ((n + 1)2 + (n + 1))/2

Portanto, 1 + 2 + ... + n + (n + 1) = ((n + 1)2 + (n + 1))/2 Logo, para qualquer n EN, tem-se que 1 + 2 + ... + n = (n2 + n)/2

Na realidade, 0 principio da inducao matematica pode ser usado tambem em definicoes. Como exemplo, veja a Definicao 1.8. Uma definicao de uma construcao usando este principio e denominada definicao indutiva ou recursiva. Neste caso, afirma-se que a construcao e indutivamente ou recursivamente definida.

1.5 Alfabetos, Palavras, Linguagens e Gramaticas


o Dicionario Aurelio define linguagem como "0 usa da palavra articulada ou escrita como meio de expressao e cornunicacao entre pessoas". Entretanto, esta definicao nao e suficientemente precisa para permitir 0 desenvolvimento matematico de uma teoria sobre linguagens. Assim, faremos a seguir algumas definicoes formais necessar ias aos estudos posteriores.
Defini~o 1.20 Alfabeto. Urn Alfabeto e urn conjunto finito de Simbolos.

Portanto, urn conjunto vazio tam bern e considerado urn alfabeto. Urn simbolo (ou caractere) e uma entidade abstrata basica a qual nao e definida formalmente. Letras e digitos sao exemplos de simbolos frequenternente usados. Definicao 1.21 Palavra, Cadeia de Caracteres ou Sentenea, Uma Palavra, Cadeia de Caracteres ou Sentence sobre urn alfabeto e uma sequencia finita de simbolos (do alfabeto) justapostos. 0 A palavra vazia, representada pelo simbolo £, e uma palavra sem simbolo. Se I. representa urn alfabeto, entao I.* denota 0 conjunto de todas as palavras possiveis sobre I.. Analogamente, I.+ representa 0 conjunto de todas as palavras sobre I. excetuando-se a palavra vazia, ou seja, I.+ = I.* - {e}, Defini~ao 1.22 Tamanho ou Comprimento.

o Tamanho

ou Comprimento de uma palavra w, represent ado por mimero de simbolos que compoem a palavra.

I w],

eo
0

?!!:

I:.~'::~.z:.?:~.~~.~ ..~.:::!!.~~~.c:.~?~!!.!~.z:.~.~.!:'!.~~.:~~~ ..'!.?~.'!:.?:.i.~ ..:.. :.. ~ ..

Definir;ao 1.23 Prefixo, Swum, Subpalavra. Urn Prefixo (respectivamente, Sufixo) de uma palavra e qualquer sequencia de simbolos inicial (respectivamente, final) da palavra. Uma Subpalavra de uma palavra e qualquer sequencia de simbolos contigua da palavra. 0 EXEMPLO 18 Palaura, Prefixo, Sufixo. a) abcb e uma palavra sobre
b) Se
0

alfabeto {a, b, c}

l = {a, b}, entao P = {a, b, aa, ab, ba, bb, aaa,...} e l* = {E, a, b, aa, ab, ba, bb,

aaa,... } c) d)

I abcb I = 4 e I E I = 0
E,

a, ab, abc, abcb sao os prefixos da palavra abcb e respectivos sufixos;

E,

b, cb, bcb, abcb sao os

e) Qualquer prefixo ou sufixo de uma palavra Definir;ao 1.24 Linguagem Uma Linguagem Formal Formal,

uma subpalavra.

o
0

e urn conjunto

de palavras sobre urn alfabeto.

EXEMPLO 19 Linguagem. Suponha


0

alfabeto L = {a, b}. Entao:

a) 0 conjunto vazio e 0 conjunto formado pela palavra vazia sao linguagens sobre L (obviamente { };to {E }); b) 0 conjunto de palindromos (palavras que tern a mesma leitura da esquerda para a dire ita e vice-versa) sobre L e urn exemplo de linguagem infinita. Assim, E, a, b, aa, bb, aaa, aba, bab, bbb, aaaa, ... sao palavras desta linguagem. 0 Defini~ao 1.25 Concatenacao, A Concatenaciio e uma operacao binaria, definida sobre uma linguagem, a qual associa a cada par de palavras uma palavra formada pela justaposicao da primeira com a segunda. Uma concatenacao e denotada pela justaposicao dos simbolos que representam as palavras componentes. A operacao de concatenacao satisfaz as seguintes propriedades (suponha v, w, t palavras):
a) Associatividade. _ v(wt)

=
W

(vw)t

b) Elemento Neutro
lOW

a Esquerda e a Direita.
o

WE

Uma operacao de concatenacao definida sobre uma linguagem L nao e , necessariamente, fechada sobre L, ou seja, a concatenacao de duas palavras de L nao e, necessariamente, uma palavra de L.

.................................................................................................................................................................................

1 - lntroduciio e Conceitos Basicos

23

EXEMPLO 20 Concatenaciio. Considere a linguagem L de palfndromos sobre {a, b l- A concatenacao das palavras aba e bbb resulta na palavra ababbb a qual niio e palindromo. Portanto, a operacao de concatenacao niio e feehad a sobre L_ 0 Definieao 1.26 Concatenacao Sucessiva. A Concatenactio Sucessiua de uma palavra (com ela mesma), representada na forma de urn expoente wn onde w e uma palavra e n indica 0 numero de concatenacoes sucessivas, e definida indutivamente a partir da concatenacao binaria, como segue:
a)

Caso 1. Wf.£

wO = £ wn = wn-1w, para
b) Caso 2. w = £
wn

n>

wn

= £, para n > 0 e indefinida para n = 0 e


indefinida para
£0.

Note-se que a concatenacao sucessiva EXEMPLO 21 Concatenacao Sucessiua.

Sejam w uma palavra e a urn simbolo. Entiio:

w3
a5 an

= www
= aaa ...a

w1 =W

aaaaa (0 simbolo a repetido n vezes)

Definicao 1.27 Gramatica. Uma Gramatica e uma quadrupla ordenada G = (V, T, P, S) onde: V conjunto finito de simbolos uaruioeis ou ntio-terminais; T conjunto finito de simbolos terminais disjunto de V; P conjunto finito de pares, denominados regras de produciio tal que a primeira componente e palavra de (V uT)+ e a segunda componente e palavra de (V u T)*; elemento de V denominado uaruioel inicial. o S Uma regra de producao (ex, ~) e representada por ex -7 ~. As regras de producao definem as condicoes de geracao das palavras da linguagem. V rna sequencia de regras de producao da forma ex -7 ~1, ex -7 ~2, ... , ex -7 ~n (mesma componente no lado esquerdo) pode ser abreviada como uma unica producao na forma: ex -7
~1

I ~2 I ... I ~n

?1:

__I:!.~:!f..~.?:!f.~'.:.~ ..!':.?':.'!!:?:!.~ ~I!.~?'!':.c:.~~~ !!.!~.l!:t!:..!1.~'.:.~~~~ ..~.. ..: .. :.. ~ .

A aplicacao de uma regra de producao e denominado derivacao de uma palavra. A aplicacao sucessiva de regras de producao permite derivar as palavras da linguagem representada pela gramatica, Defini~o 1.28 Derivaeao. Seja G = (V, T, P, S) uma gramatica. Uma Deriuaciio e urn par da rel acao denotada por :::}com dominio em (V u T)+ e contra-dominic em (V u T)*. V m par (a., ~) e represent ado de forma infixada, como segue:
a.:::}~

A relacao :::}e indutivamente •

definida como segue:


-7 ~

para toda a producao da forma S simbolo inicial de G) tem-se que: S:::}~

(a primeira

componente

para todo

par a. :::} ~, onde ~ = ~u~v~w, se


~ :::} ~u~t~w

~v -7 ~t

e regra

de P entao:

Portanto, uma derivacao e a substituicao de uma subpalavra de acordo com uma regra de producao, Quando for desejado explicitar a regra de producao PEP que define a derivacao a. :::} ~, a seguinte notacao e us ada:
a. :::}p ~

Sucessivos passos de derivacao sao definidos como segue:


:::}*

fecho transitivo e reflexivo da relacao :::}, ou seja, zero ou rn ars passos de derivacoes sucessivos; fecho transitivo da relacao :::}, ou seja, urn ou mais passos de derivacoes sucessivos; exatos i passos de derivacoes sucessivos, onde i e urn n umer o natural.

:::}+

:::}i

Gramatica e considerado urn formalismo de geracao, pois permite derivar ("gerar") todas as palavras da linguagem que representa. Defini~ao1.29 Linguagem Gerada. Seja G = (V, T, P, S) uma gramatica, A Linguagem Gerada pela gramatica G, denot ada por L(G) ou GERA(G), e composta por todas as palavras de simbolos terminais derivaveis a partir do simbolo inicial S, ou seja:
L(G)={WE T*

I S:::}+w}
Gerada.

EXEMPLO 22 Gramatica,
V = {S, D} T={O,1,2, ...,9}

Deriuaciio, Linguagem

A gramatica G = (V, T, P, S) onde:

.................................................................................................................................................................................

1 - Introductio e Conceitos Basicos

25

P = (8 ~ D, 8 ~ D8, D ~ 0 11 1 ... 1 9)

gera, sintaticamente, 0 conjunto dos numeros naturais. Note-se que se distingue os zeros a esquerda. Por exemplo, distingue 123 de 0123 (sugere-se como exercicio 0 desenvolvimento de uma gramatica que nao distinga zeros a esquerda), Como ilustracao, uma derivacao do mimero 243 e como segue (existe mais alguma derivacao do mimero 243?):
8 ~ D8 ~ 28 ~ 2D8 ~ 248 ~ 24D ~ 243

Logo, pode-se indicar que: 8 ~* 243


8 ~+ 243 8 ~6 243

o
Gerada.

EXEMPLO 23 Gramatica, Deriuaciio, Linguagem A gramatica: G = ({ 8, X,Y,A,B, F), (a, b), P, 8), onde: P = { 8 ~ XV, X ~ XaA 1 XbB 1 F Aa ~ aA, Ab ~ bA, AY ~ Va, Ba ~ aB, Bb ~ bB, BY ~ Vb, Fa ~ aF, Fb ~ bF, FY ~ £ } gera a linguagem: {ww
1

We palavra de {a, b }* }

Como ilustracao, uma derivacao da palavra baba e como segue (existe mais alguma derivacao da palavra baba?): 8 ~ XY ~ XaAY ~ XaYa ~ XbBaYa ~ XbaBYa ~ XbaYba ~ FbaYba ~ bFaYba ~ baFYba ~ baba A gr amatica apresentada como segue: • • • gera
0

primeiro w ap6s Xeo segundo w ap6s Y,

a cada simbolo terminal gerado ap6s X, e gerada uma variavel correspondente; esta variavel "caminha" na palavra ate passar por Y, quando deriva 0 correspondente terminal; para encerrar, Xderiva a variavel F a qual "caminha" ate encontrar Y quando FY deriva a palavra vazia. Lembre-se e e 0 elemento neutro da concatenacao e, portanto, basba = baba. 0

Defini~o 1.30 Gramaticas Equivalentes. Duas gramaticas G1e G2sao ditas Gramaticas GERA(G1) GERA(G2). = Equivalentes se, e somente se,
0

No texto que segue, frequenternente sao usadas as seguintes convencoes:

.................................................................................................................................................................................

26

Linguagens Formais e Automates - P. Blauth Menezes

A, B, C, , S, T para simbolos variaveis; a, b, c, , S, t para simbolos terminais;


u, v, w, x, y, z para palavras de simbolos terminais;


a, ~,... para palavras de simbolos variaveis ou terminais.

'.:..!.r:.~:.~~.r:.!.~?~ ..<?~:!.c:.:~.~?~.!!.~~!~?.~

?!. .

1.6 Exercicios
1.1 Qual a relacao entre sintatica e semantic a? Linguagens Formais e as analises lexica,

1.2 Para A = {1}, B = { 1, 2} e C = { { 1}, 1}, discuta a validade das seguintes proposicoes:
a)

A c B,A <;;;; B,A E B, A = B

b) A c C, A <;;;; C, A E C, A = C

c) 1 E A,1 E C, {1} E A,{1} E C


1.3 Para A = {1, 2} e B = {{ 1 },{2}, 1, 2} determine cada urn dos seguintes itens:
a) b) c)
0

conjunto result ante em

Au B,A n B Bu 0, Bn 0 BuN,BnN,BuNuIR,(BuN)nIR Prove as seguintes propriedades (suponha que Ae B sao conjuntos): no Exercicio 1.14.

1.4

Sugestiio: verifique as propriedades apresentadas


a)

Idempotencia, Au A=A An A=A

b) Comutatividade.

AuB=BuA AnB=BnA
c)

Associatividade. A u (B u C) = (A u B) u C A n (B n C) = (A n B) n C

d) Distributividade.
A n (B u C) = (A n B) u (A n C) A u (B n C) = (A u B) n (A u C)
e) Duplo Complemento.

(A')' = A
f)

Morgan. (A u B)' = A' n B'

.?!?
(An 8)'
g)

!-:.i.'!:?~?:?e_~.~ ..!..?~·.'!:.?:!.~ ..~.~:f.~~~.?:~.~.~ ..:J::..!!.!~.~~.~.!!.~~.e_~~~ ..

= A' u

8'

[lniuerso e Y'azio. AuA'=U


A

A'

=0
a validade das

1.5 Referente as operacoes sobre conjuntos, discuta seguintes proposicoes (suponha que A e urn conjunto): a) A operacao diferenca e associativa e comutativa;

b) A operacao produto cartesiano e associativa e comutativa; c) 0 conjunto das partes do conjunto das partes de A eo conjunto das partes de A. 1.6 Exemplifique cada urn dos casos abaixo:

a) Relacao que nao e sirnetrica nem antissimetrica; b) Relacao que e simultaneamente 1.7 Determine
0

simetrica e antissimctr'ica.
0

fecho transitivo e
R={(1,

fecho transitivo e reflexivo da relacao

1), (1, 2), (2, 1)}

1.8 Suponha que sao conhecidos todos os trechos parciais que podem ser percorridos por urn carteiro (exemplo: da casa A para a casa 8). Usando a nocao de grafo como uma relacao e 0 conceito de fecho, como podemos representar todos os caminhos possiveis que 0 carteiro pode fazer? 1.9 Para cada item abaixo, justifique a sua resposta:

a) Toda funcao e uma funcjio parcial e vice-versa? Toda funcao parcial e uma relacao e vice-versa? b) Toda relacao de ordem e uma relacao de equivalencia e vice-versa? 1.10 0 conjunto vazio e uma relacao, funcao parcial ou funcao? 1.11 Seja f: A--78 uma funcao, Uma funcao g: 8 --7A e dita: • • inuersa inuersa

a esquerda de f se 9 f = idA; a direita de f se f 9 = idB.

Prove que: a) Se f e injetora, entao f tern inversa a esquerda; b) Se f e sobrejetora, entao f tern inversa a direita. 1.12 Prove que CQ e contavel,

.................................................................................................................................................................................

1 - Introductio e Conceitos Basicos

2:)

1.13 Prove que ~ e <=> sao relacoes de ordem e de equivalencia, respectivamente. A relacao ~ e de ordem parcial? E de ordem total? 1.14 Prove as seguintes equivalencias:
a) Idempotencia,

p x p ee p
p v p ee p
b) Comutatividade. p x q ee q x p p v q ee q v p c) Associatividade. p /\ (q /\ r) <=> (p /\ q) /\ r p v (q v r) <=> (p v q) v r

d) Distributividade. p /\ (q v r) <=> (p /\ q) V (p /\ r) p v (q /\ r) <=> (p v q) /\ (p V r)


e) Dupla negaciio . -,-,p <=> p
f)

Morgan.
-,(p /\ q) <=> -,p v -,q -,(p v q) <=> -,p /\ -,q

1.15 Prove que qualquer operador l6gico binario pode ser expresso usando somente os operadores -, e »: 1.16 Suponha que A(n)de nota 1 + 2+ ...+ n = ((2n+ 1)2)/8.Entao: a) Prove que se A(k) e verdadeiro verdadeiro; para
urn

kEN,

entao A(k + 1) tambem

b) Discuta a afirmacao: "portanto, por inducao, tem-se que A(n) e verdadeiro para qualquer n EN"; c) De fato, A(n)e verdadeiro para qualquer n E N? Prove a sua resposta. 1.17 Prove por inducao que, para qualquer n EN, tem-se que: 1+8+ ...+ n3 = (1+ 2+...+ n)2 Sugestiio: para verificar a base de inducao (n = 0), lernbre-se que zero elemento neutro da adicao, 1.18 Por que a "prova por inducao" que segue nao

e correta?

a) Proposictio, Dado um conjunto de n torcedores de futebol, se pelo menos um torcedor e Gremista, entao todos os demais torcedores tambem sao Gremistas;

.................................................................................................................................................................................

30

Linguagens Formais e Automatos - P. Blauth Menezes

b) "Pro va ". A propOSl~ao e trivial mente verdadeira para n = 1. 0 passo de inducao pode ser facilmente entendido pelo seguinte exemplo: • • • • • • suponha que a proposicao e verdadeira para n = 3; sej am T 1, T2, T 3 e T 4, quatro torcedores dos quais pelo menos urn e Gremista (suponha que e T1); supondo 0 conjunto {T1, T2, T3} e a hip6tese de que e verdadeiro para n = 3, entao T2 e T3 sao Gremistas; analogamente para {T 1, T2, T4}, tem-se que T2 e T4 sao. Gremistas; portanto, os quatro torcedores sao Gremistas! a generalizacao da construcao acima para k e k+ e a prova 1, desejada.

1.19 Desenvolva uma gramatica que gere a linguagem correspondente aos identificadores da linguagem Pascal (palavras formadas por uma ou mais letras ou digitos, as quais sempre iniciam por uma letra), Analogamente para os identificadores em Pascal com tamanho maximo de seis caracteres. 1.20 Desenvolva uma gramatica que gere express6es ar itrneticas com parenteses balanceados, dois operadores (representados por * e +) e urn operando (representado por x). Por exemplo, x, x*(x+x) e (((((x))))) sao express6es aritmeticas validas. 1.21 Desenvolva uma gramatica que gere a linguagem {anbncn

I n 2': 0 j.

Mem6rias
para Automatos Troco, Vendo e Alugo

MEMORIAS
PARA AUTOMATOS

Troco, vendo e alugO

Linguagens Regulares

o estudo das Linguagens Regulares ou Tipo 3, conforme sera visto ao longo deste capitulo, pode ser abordado atravos de formalismos:
• • • operacional ou reconhecedor: Automata Finito, 0 qual pode ser Deterministico, Nao-Deterministico ou com Movimentos Vazios; axiomatico ou gerador: Gramatica Regular; denotacional: Expressiio Regular.

Como introduzido no Capitulo 1 - Introducao e Conceitos Basicos, 0 formalismo Expressiio Regular tam bern pode ser considerado como urn formalismo gerador.

.!!:

~.i.'!:lf..l!.?:lf.~'!:.~ ..!..?I.-.'!!.?:!.~ ~.~l!.~?~'!:.f!.~?~ .. ..:..!.:.. 1!!?:.l!.~.~.!':!.~~:.':~~~ l .

De acordo com a Hierarquia de Chomsky, trata-se da classe de linguagens mais simples, sendo possivel desenvolver algoritmos de reconhecimento ou de geracao de pouca complexidade, grande eficiencia e de facil implementacao. Por simplicidade,
"sse".

no texto que segue, "se, e somente se," e abreviado por

2.1

Sistema de Estados Finitos

Urn Sistema de Estados Finitos e urn modelo mate matico de sistema com entradas e saidas discretas. Pode assumir urn numero finite e pre-definido de estados, Cada estado resume somente as inforrnacoes do passado necessar ias para determinar as acoes para a proxima entrada. Urn forte motivacional para de poderem ser associados construfdos.
0

estudo de Sistemas de Estados Finitos eo fato a diversos tipos de sistemas natura is e

Urn exemplo classico e de simples entendimento e urn elevador. Trata-se de urn sistema que nao memoriza as requisicoes anteriores. Cada "estado" sumariza as informacoes "andar corrente" e "direcao de movimento". As entradas para 0 sistema sao requisicoes pendentes. Analisadores Lexicos e Process adores de Texto (ou algumas ferramentas de Processadores de Texto) tambem sao exemplos de sistemas de estados finitos, onde cada estado, basicamente, memoriza a estrutura do prefixo da palavra em analise. Entretanto, nem todos os Sistemas de Estados Finitos sao adequados para serem estudados por esta abordagem. Urn contra-exemplo e 0 cerebro humano, Existem evidencias de que urn neuronic pode ser represent ado por urn numero finito de bits. 0 cerebro e composto por cerca de 235 celulas. Portanto, a principio, e possivel representa-lo por urn numero finito de estados, Entretanto, 0 elevado numero de combinacoes de celulas (e, conseqiientemente, de estados) determina uma abordagem pouco eficiente. Outro contr a-exemplo e 0 computador. Os estados determinados pelos process adores e mernorias podem ser representados como urn sistema de estados finitos. Entretanto, 0 estudo adequado da nocao de computabilidade exige uma memoria sem limite predefinido, Adiante, e apresentado urn outro formalismo de automate, a Maquina de Turing, mais adequado ao estudo da computabilidade. Note-se que, 0 estudo da computabilidade e solucionabilidade de problemas nao e urn dos objetivos desta publicacao,

.................................................................................................................................................................................

2 - Linguagens Regulares

33

Figura 2.1 Automate

finito como uma maquina

com controle finito

2.2

1\uto~atoFinJto

Urn Automate Finito Deterministico ou simples mente Automate Finito pode ser visto como uma maquina composta, basicamente, de tres partes: a) Fita. Dispositivo de entrada que contern a informacao a ser process ada; b) Unidade de Cantrale. Reflete 0 estado corrente da maquina. Possui uma unidade de leitura (cabeca da fita) a qual acessa uma celula da fita de cada vez e movimenta-se exclusivamente para a direita; c) Pragrama ou Funciio de Traneiciio, Funcao que comanda as leituras e define 0 estado da maquina. A fita e finita (a esquerda e a direita), sendo dividida em celulas, onde cada uma armazena urn simbolo. Os simbolos pertencem a urn alfabeto de entrada. Nao e possivel gravar sobre a fita (e nao existe mem6ria auxiliar). Inicialmente, a palavra a ser process ada (ou seja, a inforrnacao de entrada para a maquina) ocupa toda a fita. A unidade de controle possui urn numero finito e predefinido de estados. A unidade de leitura Ie 0 simbolo de uma celula de cada vez. Ap6s a leitura, a cabeca da fita move-se uma celula para a direita. Inicialmente, a cabeca est a posicionada na celula mais a esquerda da fita, como ilustrado na Figura 2.1.

o program a e uma funcao parcial que, dependendo do estado corrente e do simbolo lido, determina 0 novo estado do automate. Deve-se reparar que 0 Automate Finito nao possui mem6ria de trabalho. Portanto, para armazenar as informacoes passadas necessarias ao processamento, deve-se usar 0 conceito de estado.
Defini~o 2.1 AutOmato Finito Detenninistico. Urn Automata Finita Deterministico (AF) M e uma 5-upla:
M

(AFD) ou simplesmente Automata


Q, 0, qQ, F)

Finita

= (I"

.~

~.~'!:?~?:?~~.~.:~:.?~!!!:?:!.~ ..:.~:..~~~.~~.~.~~~~::~~ ..~.~~.~?.~.c:.~~~ ..

estado anterior

slrnbolo lido novo estado


Figura 2.2 Representacao da funcao program a como um grafo

Figura 2.3 Representacao

de um estado inicial (esq.) e final (dir.) como nodos de grafos

onde:

L
Q

alfabeto de simbolos de entrada; conjunto de estados possiveis do automate funciio programa ou funciio de transiciio:
8: QXL ~ Q

qual e finito;

qo
F

a qual e uma funcao parcial; estado inicial tal que qo e elemento de Q; conjunto de estados finais tal que Festa contido em

Q.

A funcao programa pode ser representada como urn grafo finito direto, como ilustrado na Figura 2.2. Neste caso, os est ados iniciais e finais sao represent ados como ilustrado na Figura 2.3.
W, W

o processamento de urn Automate Finito M,para uma palavra de entrada consiste na sucessiva aplicacao da funcao programa para cada sfmbolo de (da esquerda para a direita) ate ocorrer uma condicao de parada.

EXEMPLO 1 Automata Finito. Considere a linguagem: L1 = {w

I w possui

aa ou bb como subpalavra}

o Automate

Finito:

onde 81 e como abaixo, represent ada na forma de uma tabela, reconhece a linguagem L1.

,~:.. .~~!!.~~!!.:.'!:~ .. ~ .. !~?.1!:~~:'~~ !

~.

a
b

Figura 2.4 Grafo do Automate

Finito Determinfstico

automate pode ser represent ado pelo grafo ilustrado na Figura 2.4. 0 algoritmo apresentado usa os estados q1 e q2 para "memorizar" 0 simbolo anterior. Assim, q1 representa "simbolo anterior e a" e q2 represent a "simbolo anterior e b". Ap6s identificar dois a ou dois b consecutivos, 0 automate assume 0 est ado q, (final) e varre 0 sufixo da palavra de entrada, sem qualquer controle logico, somente para terminar 0 processamento. A Figura 2.5 ilustra 0 processamento do Automate Finito M1 para a entrada w = abba, a qual e aceita. 0 Note-se que urn Automate Finito sempre para ao processar qualquer entrada pois, como qualquer palavra e finita e como urn novo simbolo da entrada e lido a cada aplicacao da funcao programa, nao existe a possibilidade de ciclo (loop) infinito. A parada de urn processamento pode ser de duas maneiras: aceitando ou rejeitando uma entrada w. As condicoes de parada sao as seguintes: a) Ap6s processar 0 ultimo simbolo da fita, 0 Automate Finito assume urn estado final: 0 automato para e a entrada w e aceita; b) Ap6s processar 0 ultimo simbolo da fita, 0 Automate Finito assume urn estado nao-final: 0 automate para e a entrada w e rejeitada; c) A funcao programa e indefinida para 0 argumento (estado corrente e simbolo lido): a maquina para e a palavra de entrada w e rejeitada.

?!.?

~.i.'!:?z:.?:?~'!:.~ ..!..~.~.r::.?:!.~ ..~.~l!.~?'!!.c:.~~~ ..:..!.:.. !!.~~.z:.~.~ l ..~~'!:.I';~~~ .

Figura 2.5 Sequencia de processamento

Para definir formalmente 0 comportamento de urn Automate Finito (ou seja, dar semantica it sintaxe de urn Automate Finito), e necessario estender a definicao da funcao programa usando como argumento urn estado e uma palavra.
Definicao 2.2 Fun~ao Programa Estendida.

Seja M = (I, Q, 0, qo, F) urn Automate Programa Estendida denotada por:

Finito Deterministico.

A Funciio

Q_: QxI* ~ Q

e a funcao

program a 0: QxI ~ Q estendida para palavras e definida como segue: Q_(q, e) = q Q_(q, awl =' Q_(o(q, a), w)

e indutivamente
0

EXEMPLO 2 Funciio Programa Estendida. Considere 0 Automate Finito M1 = ({ a, b}, {qO, q1, q2, q-}, 01, qo, {ql}) definido no Exemplo 1. Entao, a funcao programa estendida aplicada it palavra abaa a partir do estado inicial qO e como segue: Q_(qo, abaa) = Q_(8(qo, a), baa) = Q_(q1, baa) = Q_(8(q1, b), aa) = Q_(% aa) = Q_(8(q2, a), a) = Q_(q1, a) = Q_(8(q1, a), e) = Q_(ql, e) = ql e, portanto, a palavra funcao estendida sobre abaa process a abaa funcao estendida sobre baa processa .b.aa funcao estendida sobre aa processa fta funcao estendida sobre a process a abaft funcao estendida sobre e: fim da inducao

e aceita.

2 . Linguagens

Regulares

';fl

Por simplicidade, no texto que segue, uma funcao programa 0 e a sua correspondente extensao Q sao ambas denotadas simplesmente por o. Esta simplificacao de notacao sera adotada em todas as definieoes de extensoes
subsequentes.

A linguagem aceita por urn Automate Finito M = (I, 0, 0, qo, F), denotada por ACEITA(M) ou L(M), eo conjunto de todas as palavras pertencentes a I* aceitas por M, ou seja:
ACEITA(M)

= {w I o(qO,

w)

F}

Analogamente, REJEITA(M) eo conjunto de todas as palavras pertencentes a I* rejeitadas por M. As seguintes afirmacoes sao verdadeiras:
• •
• •

ACEITA(M) n REJEITA(M) = 0

ACEIT A(M) u REJEIT A(M) = I* 0 complemento de ACEITA(M) e REJEITA(M) 0 complemento de REJEITA(M) e ACEITA(M)

Definicao 2.3 AutOmatos Finitos Equivalentes. Dois Automates e somente se: Finitos Ml e M2 sao ditos Automatos
ACEITA(Ml)

Finitos Equivalentes

se,

= ACEITA(M2)
Finito Deterministico

o
e uma
0

Defini~o 2.4 Linguagem Regular ou Tipo 3. Uma linguagem aceita por urn Automate Linguagem Regular ou Tipo 3. EXEMPLO 3 Automata Finito. Considere as linguagens:
{} e

I*

Os Automates Finitos:

onde 02 e 03 sao como abaixo, representadas na forma de uma tabela, sao tais que ACEITA(M2) = L2 e ACEITA(M3) = L3:

Relativamente aos automates M2 e M3, esclarecimento das seguintes questoes:

sugere-se,

como exercicio,

'

38

Linguagens Formais e Automates - P. Blauth Menezes

tJ

a,b
Finitos

Figura 2.6 Grafos dos Automates

b b

a
b b
Figura 2.7 Grafo do Automate

Finito Deterministico

a) Existe alguma diferenca

entre as funcoes 02 e 03?

b) 0 que, exatamente, diferencia M2 de M3? EXEMPLO 4 Automata Considere a linguagem: Finito.

14 = {w

I w possui

um mimero par de a e b}

o Automate

Finito: M4 = ({ a, b}, { qQ, q1, q2, Q3}, 04, QQ,( QQ})

ilustrado na Figura 2.7,

e tal

que ACEITA(M4)

= 14.

.................................................................................................................................................................................

2 - Linguagens Regulares

39

2.3

Automate Finito Nao-Determimstico

o nao-deterrninisrno e uma importante generalizacao dos modelos de maquinas, sendo de fundamental importancia no estudo da teoria da computacao e da teoria das lingua gens formais. Nem sempre a facilidade de nao-determinismo aumenta 0 poder de reconhecimento de linguagens de uma classe de automates. Por exemplo, conforme sera mostrado adiante, qualquer Automate Finito Nao-Deterministico pode ser simulado por urn Automate Finito Deterministico.
A facilidade de ruio-determinismo para automates finitos e interpretada como segue: a funcao programa, ao processar uma entrada composta pelo estado corrente e simbolo lido, tern como resultado urn conjunto de novos estados, Visto como uma maquina composta por fita, unidade de controle e

.................................................................................................................................................................................

40

Linguagens Formais e Automates - P. Blauth Menezes

~
a a

>
~

estado arterior

simbolo lido

G
Figura 2.8 Representacao

•••

conjuntode novos estados


como urn grafo

da funcao program a nao-deterministica

programa, pode-se afirmar que um Automate Nao-Deterministico assume um conjunto de est ados alternativos, como se houvesse uma multiplicacao da unidade de controle, uma para cada alternativa, processando independentemente, sem compartilhar recursos com as demais. Assim, 0 processamento de um caminho nao influi no estado, simbolo lido e posicao da cabeca dos demais caminhos alternativos. Defini~o 2.5 AutOmato Finito Nao-Determinfstico. Um Automate onde: Finito Niio-Deterministico M= (AFN) M

e uma

5-upla:

CL

Q, 8, qo, F)

I
Q

alfabeto de simbolos de entrada; conjunto de estados possiveis do automate funciio programa ou funciio de transiciio: 8: QxI ~ 20

qual

e finito;

qo F

a qual e uma funcao parcial; estado inicial tal que qo e elemento de Q; conjunto de estados finais tal que Festa contido em

Q.

Portanto, excetuando-se pel a funcao programa, as componentes I, Q, qO e F sao como na definicao do AFD. A funcao programa pode ser represent ada como um grafo finito direto, como ilustrado na Figura 2.8, supondo que: 8(q, a) = {p-, P2, ..., Pn}

o processamento de um Automate Finito Nao-Deterministico Mpara u m conjunto de estados, ao ler um simbolo, e a uniao dos resultados da funcao programa aplicada a cada estado alternativo. Para definir formalmente 0 comportamento de um Automate Finito Nao-Deterministico, e necessar io estender a definicao da funcao program a usando como argumento u m conjunto finito de estados e uma palavra ..

2 - Linguagens Regulares

41

Defini~o 2.6 Funeao Programa Estendida. Seja M = (2" Q, D, qo, F) um Automate Finito Nao-Deterministico. Programa Estendida de Mdenotada por:
~: 2QxL* ~2Q

A Fu.ncdo

e a funcao programa D: Q x 2, ~ definida como segue:


~(P, e) = P

20 estendida para palavras e e indutivamente o

~(P, awl

= ~(U

qe p

D(q, a), w)

Assim, tem-se que, para um dado conjunto de est ados {q1, q2,..., qn} e para um dado simbolo a:

A linguagem aceita por um Automate Finito Nao-Deterministico M= (2" Q,


D, qo, F), denotada por ACEITA(M) ou L(M), eo conjunto de todas as palavras pertencentes a 2,* tais que existe pelo menos um caminho alternativo que

aceita a palavra, ou seja:


ACEITA(M) = {w

I existe

D(qO, w) tal que q

F}

Analogamente, REJEITA(M) e 0 conjunto de todas as palavras pertencentes a 2,* rejeitadas por todos os caminhos alternativos de M(a partir de qo). EXEMPLO 5 Automate Considere a linguagem: Ls = {w Finito Niio-Deterministico.

I w possui

aa ou bb como subpalavra}

o Automate

Finito Nao-Deterministico:

onde DS e como abaixo, represent ada na forma de tabela (compare com Automate Finito Deterministico do Exemplo 1), e tal que ACEITA(MS) = LS:
DS qo q1 q2 qf a {qO,q1 } { qt} { qt}

b
{qO,q2} { qt} {qj}

automate pode ser representado pelo grafo ilustrado na Figura 2.9. 0 algoritmo apresentado realiza uma varredura sobre a palavra de entrada. A cada ocorrencia de a (ou b) uma alternativa e iniciada, para verificar se 0

42

Linguagens Formais e Aut8matos - P. Blauth Menezes

Figura 2.9 Grafo do Automate

Finito Nao-Determinfstico

Figura 2.10 Grafo do Automate Finito Nao-Deterministico

simbolo seguinte tambern e a (ou b). Assim, alternativos de processamento:


• • • 0 0 0

existem

tres

caminhos

ciclo em qo realiza uma varredura em toda a entrada; caminho qO/q1/q, garante a ocorrencia de aa caminho QO/Q2/q, gar ante a ocorrencia de bb Finite Niio-Deterministico.

EXEMPLO 6 Automata Considere a lingua gem:

Le =

{w

I w possui

aaa como sufixo}

o Automate

Finito Nao-Deterministico:
Me

= ({ a,

b), ( Qo, Q1, Q2, Qj), be, Qo, ( Qj))

ilustrado na Figura 2.10,

e tal •

que ACEITA(Me)

Le.

Embora a facilidade de nao-deterrnirrismo seja, aparentemente, urn significativo acrescimo ao Automate Finito, na realidade nao aumenta seu poder computacional. Assim, para cada AFN, e possivel construir urn AFD equivalente que realiza 0 mesmo processamento. 0 contrario tambem e verdadeiro.

.~..:..~.~'!:!t.~?:!t.:.'!:~ ..!!.:lf..~~?:.~'.:~
Teorema 2.7 Equivalencia entre AFD e AFN. A Classe dos Automates Finitos Deterministicos Automates Finitos Nao-Dete~ministicos.

~.

e equivalente a

Classe dos

IIova: A prova consiste em mostrar que, a partir de urn AFN Mqualquer, e possivel construir urn AFD M'que realiza 0 mesmo processamento (ou seja, M' simula M).A dernonstracao apresenta urn algoritmo para converter urn AFN qualquer em urn AFD equivalente. A ideia central do algoritmo e a construcao de estados de M'que simulem as diversas combinacoes de estados alternativos de M. 0 contrario (construir urn nao-determinfstico a partir de urn deterministico) nao necessita ser mostrado, pois decorre trivialmente das definicoes (por que"). Seja M= (I, Q, 0, qo, F) urn AFN qualquer. Seja M'= (I, Q', 0', (qo), F') urn AFD construido a partir de M como segue:
Q'

0'

(qo)
F'

conjunto de todas as combinacoes, sem repeticoes, de est ados de Q as quais sao denotadas por (qlq2 ...qn), onde qj pertence a Q, para i em (1, 2, ... n). Note-se que a ordem dos elementos nao distingue mais , combinacoes, Por exemplo, (quqv) = (qvqu); tal que c'i'(ql ...qn), a) = (Pl ...prn> se, e somente se, o({ ql, ..., qn), a) = {Pl, ..., Pm}. Ou seja, urn estado de M'representa uma imagem dos estados de todos os caminhos alternativos de M; est ado inicial; conjunto de todos os estados (ql~ ...qn) pertencentes a Q' tal que alguma componente qj pertence a F, para i em (1, 2, ..., n).

A demonstracao de que 0 AFD M'simula 0 processamento do AFN M e por inducao no tamanho da palavra. Deve-se mostrar que (suponha w uma palavra qualquer de I*): c'i'(qo), w) = (ql···qu) a) Base de induciio, Seja w tal que c'i'(qo), e) = (qo) o que sse o({ qn], w) = {ql, ... , qu}

I w I = O. Entao:
sse o({ qo}, e) = {qo}

e verdadeiro,

por definicao de funcao programa estendida;

b) Hip6tese de induciio, Seja w tal que c'i'(qo), w) = (ql···qu) c) Passo de Induciio, Seja w tal que c'i'(qo), wa)= (pl··.Pv)

I w I = n e n ~ 1. Suponha
o({qO}, w) = {ql, ... , qu}

verdadeiro que:

sse

I wa I = n + 1 e n ~ 1.
sse o({ qO}, wa)= {Pl, ... , Pv}

o que equivale, por hip6tese de inducao: c'i'(ql ..·qU). a) = (Pl"'Pv) o que sse O({ql' ... , qu}, a) ={Pl,
"'1

Pv}

e verdadeiro,

por definicao de c'i'.

Logo, M'simula Mpara qualquer entrada w pertencente a I*.

.................................................................................................................................................................................

44

Linguagens Formais e Automatos - P. Blauth Menezes

Figura 2.11 Grafo do AFD construido a partir de urn AFN

EXEMPLO 7 Constructio de um AFD a partir de um AFN. Considere 0 AFN Ms = ({ a, b), {qO, q1, q2, qil, 8s, qo, {qil) do Exemplo 6. 0 correspondente AFD Ms' = ({ a, b), Q', 8s', (qo), F') construido conforme 0 algoritmo apresentado na demonstracao do Teorema 2.7 e como segue:

= {(qo), (qj), (q2), (qt), (qOq1), (qOq2), ... , (qOq1q2qt)} F' = {(qt), (qoqt), (q1qt), ... , (qOq1q2qt)} 8s' e tal que (na tabela que segue sao explicit ados somente os estados para os quais a funcao programa e definida):
Q'

8s' (qo) (QOq1) (QOQ1Q2) (QOQ1Q~lf)

a
(qoq1) (QOQ1Q2) (QOQ1Q2Qt) (QOQ1Q2Qt)

b (qo) (Qo) (Qo) (Qo)

o grafo que represent a Ms' e ilustrado na Figura 2.11 onde os estados PO, P1, P2 e Pt denotam (Qo), (QOQ1), (QOQ1Q2) e (QOQ1Q2Qt), respectivamente. 0 2.4 Automato Finito com Movimentos Vazios

Movimentos vazios constituem uma generalizacao dos modelos de maquinas nao-determimstica. Urn movimento vazio e uma transicao sem leitura de simbolo algum da fita. Pode ser interpret ado como urn ruiodeterminismo interno ao automate 0 qual e encapsulado, ou seja, excetuandose por uma eventual mudanca de estados, nada mais pode ser observado sobre urn movimento vazio. Uma das vantagens dos Automates Finitos com Movimentos Vazios no estudo das linguagens formais e 0 fato de facilitar algumas construcoes e demonstracoes relacionadas com os automates.

.................................................................................................................................................................................

2 - Linguagens Regulares

45

G···
Figura 2.12 Representacao como urn grafo da funeao programa com movimentos vazios

No caso dos Automates Finitos, a facilidade de movimentos vazios nao aumenta 0 poder de reconhecimento de linguagens. Conforme sera. mostrado adiante, qualquer Automate Finito com Movimentos Vazios pode ser simulado por urn Automate Finito Nao-Deterministico. Defini~ao2.8 AutOmato Finito com Movimentos Vazios.

Urn Automata Finito Ntio-Deterministico e com Movimentos Vazios (AFN£) ou simplesmente Automate Finito com Movimentos Vazios (AF£) Me uma 5upla: M = (I, Q, 8, qo, F) onde:

I
Q

alfabeto de simbolos de entrada; conjunto de estados possiveis do automate funciio programa ou functio de transiciio:
8: Q x (I u ( e}) ~ 20

qual

e finito;

qO
F

a qual e uma funcao parcial; estado inicial tal que qo e elemento de Q; conjunto de estados finais tal que Festa contido em Q.

Portanto, excetuando-se pela funcao programa, as componentes I, Q, Fe qo sao como na definicao de AFN. Urn movimento vazio (ou transiciio vazia) e represent ado pel a aplicacao da funcao programa, em urn dado estado q ao simbolo especial e, ou seja, 8(q, e). A funcao programa com movimentos vazios pode ser interpretada como urn grafo finito direto, como ilustrado na Figura 2.12, supondo que: 8(q, e) = {Po}, 8(q, a1) = {P1 }, ... , 8(q, an) = {Pn}

o processamento de urn AFe e analogo ao de urn AFN. Adicionalmente, 0 processamento de uma transicao para uma entrada vazia tambern e naodeterministica. Assim, urn AFe ao processar uma entrada vazia assume simultaneamente os estados destino e origem. Ou seja, a origem de urn movimento vazio sempre e urn caminho alternativo.

.................................................................................................................................................................................

46

Linguagens Formais e Automates - P. Blauth Menezes

Figura

2.13 Grafo do Automate

Finito com Movimentos

Vazios

EXEMPLO 8 Automata Considere a linguagem: L7= (w

Finito com Movimentos

Vazios.

I qualquer

simbolo a antecede qualquer Vazios: (qQ, qr}, 07, qQ,(qj))

simbolo b)

o Automate

Finito com Movimentos M7=

ilustrado na Figura 2.13, tabela, e tal que ACEITA(M7) L7: =

({ a, b), onde 07 e

como abaixo, representada

na forma de

a {qQ}

{ qr)

(qj)

No que segue, e introduzida a funcao fecho vazio de um AF£ a qual resulta no conjunto de todos os estados atingiveis por zero ou mais movimentos vazios a partir de um deter min ado est ado (ou conjunto de estados). A seguir, e apresentada a funcao programa estendida onde um argumento e compos to por um conjunto finito de estados e uma palavra. A funcao programa estendida define formal mente 0 comportamento de um AFt.
Defini~o

2.9 Funeao Fecho Vazio, Fecho Vazio Estendida. Finito com Movimentos por:
-7 2Q

Seja M = (I, Q, 0, qQ,F) um Automato a) A Funciio Fecho Vazio denotada

Vazios.

FECHO-£: Q

e indutivamente

definida como segue:

FECHO-£(q)= {q}, se o(q, e) e indefinido; FECHO-£(q)= {q} U o(q, £) U (UpE 8(q,E) FECHO-£(p)),caso contrario, b) A Funciio Fecho Vazio Estendida denotada por: FECHO-£:2Q -72Q

e a funcao

fecho vazio estendida FECHO-£(q)

para conjunto de estados e

e tal

que:
0

FECHO-£(P)= UqEp

.~..:..!-:.~,!:~~?:~.~.,!:?.!!:.~{J_.z:.~?:.~~~

5!. . e0
fecho reflexivo e transitivo da funcao

Portanto, a funcao fecho vazio programa restrita a palavra vazia.

EXEMPLO 9 Funciio Fecho Vazio, Fecho Vazio Estendida. Considere


0

Automate Finito com Movimentos Vazios M7 do Exemplo 8. Entao:

FECHO-f(q,) = {q,} FECHO-f({ qQ, q,}) = {qQ, q,}

FECHO-f(qQ)

= {qQ,

q,}

Defini~o 2.10 Fun~aoPrograma Estendida. Seja M = (I" Q, D,qQ, F) um Automate Finito com Movimentos Vazios. A Funciio Programa Estendida de M denotada por:
~: 2QxI,* ~2Q

e a funcao

programa D:Q x (I, U {f}) ~ 20 estendida para um conjunto finito de est ados e para uma palavra e e indutivamente definida como segue:
~(P, f) = FECHO-f(P) ~(P, wa) = FECHO-f(R)

onde R = {r IrE

D(S, a) e S E ~(P, w)}

A linguagem aceita por um Automate Finito com Movimentos Vazios M = Q, D, qQ, F), denotada por ACEITA(M) ou L(M), e 0 conjunto de todas as palavras pertencentes a I,* tais que existe pelo menos um caminho alternativo que aceita a palavra, ou seja:
(I" ACEITA(M)

= {w

I existe q

D(qQ, w) tal que q

F}

Analogamente, REJEITA(M) e 0 conjunto de todas as palavras pertencentes a I,* rejeitadas por todos os caminhos alternativos de M (a partir de qQ). EXEMPLO 10 Funciio Programa Estendida.

Considere a linguagem:
La

= {w I w

possui como sufixo a ou bb ou eee}

o Automate

Finito com Movimentos Vazios:


Ma

= ({ a, b, e), {qQ,

ql, q2, q3, q4, qs, q6, qtl, Da, qQ, {qtl)

ilustrado na Figura 2.14, e tal que ACEITA(Ma) = La. Relativamente ao fecho vazio, tem-se que, por exemplo, FECHO-f({ qQ}) = {qQ, qi, q2, q4}. Exemplificando a funcao estendida, tem-se que:
~({ qQ), ab) = FECHO-f({ ~({ qQ), a) ~({ qQ), abb)= FECHO-f({

= FECHO-f({

r IrE D(S, b) e S E ~({ qQ), ab))), onde: r IrE D(S, b) e S E ~({ qQ), a))), onde: r IrE D(S, a) e S E ~({ qQ), f)})
qQ}) = {qQ, ql, q2, q4} tem-se que:

Como ~({qQ), f)} = FECHO-f({


~({ qQ), a) ~({ qQ), ~({ qQ),

= {qQ, qr, q2, q4, q,} ab) = { qQ, ql, q2, q3, q4 } abb)= {qQ, ql, q2, q3, q4, qtl

.................................................................................................................................................................................

48

Linguagens Formais e Automatos - P. Blauth Menezes

Figura

2.14 Grafo do Automate

Finito com Movimentos Vazios

Analogamente ao nao-deterrninisrno, a facilidade de movimentos vazios nao aumenta 0 poder computacional dos Automates Finitos. Assim, para cada AFe, e possfvel construir urn AFN que realiza 0 mesmo processamento. o contrario e trivialmente verdadeiro. Teorema 2.11 Equivalencia entre AFN e AFE. A Classe dos Automates Finitos com Movimentos Vazios Classe dos Automates Finitos Nao-Deterrninisticos.

equivalente

Prova: A prova consiste em mostrar que, a partir de urn AFe qualquer, e possivel construir urn AFN que realiza 0 mesmo processamento. A demonstracao apresenta urn algoritmo para converter urn AFe em urn AFN equivalente. A ideia central do algoritmo e a construcao de uma funcao programa sem movimentos vazios onde 0 conjunto de estados destino de cada transicao nao vazia e estendido com todos os estados possiveis de serem atingidos por transicoes vazias. 0 contrario (construir urn AFe a partir de urn AFN) nao necessita ser mostrado, pois decorre trivialmente das definicoes. Seja M = (1, Q, 0, qQ, F) urn AFe qualquer. Seja M' construido a partir de M como segue: 0'
F'

(1,

Q,

0', qQ, F') urn AFN

tal que 0': Q x 1~20 onde S'(q, a) = ~({ q}, a) conjunto de todos os est ados q pertencentes elemento do FECHO-e(q) pertence a F.

tal que algum

A demonstracao de que 0 AFN M' simula 0 AFe M tamanho da palavra e e sugerida como exercicio.

e feita

por inducao no
0

.................................................................................................................................................................................

2 - Linguagens

Regulares

49

Figura 2.15 Grafo do Aut6mato

Finito com Movimentos Vazios

Figura

2.16 Grafo do Automate

Finito Nao-Deterrnintstico

equivalente

EXEMPLO 11 Conetrucdo de um AFN a partir de um APE.

o Automate Finito com Movimentos Vazios M9 = ({ a, b}, {qQ, qr, q2}, 89, qQ, (q2 }), onde 89 e como segue:
89 a

representado pelo grafo ilustrado na Figura 2.15 (qual a linguagem aceita por M9?). 0 correspondente AFN M9' = ({ a, b}, {qQ, qr, q2}, 89', qQ, F') construido conforme 0 algoritmo da dernonstr acao do Teorema 2.11 e como segue (por simplicidade, FECHO-E e abreviado para FE) e e ilustrado na Figura 2.16:
F' = { qQ, q1, q2}, pois: FE(qQ) = {qQ, qr, q2} FE(Q1)={q1,q2} FE(Q2) = {Q2}

Na construcao de 89' note-se que:


~9(( QQ}, E) = {QQ, Q1, Q2} ~({ Q1 }, E) = {Q1, Q2} ~({ Q2}, E) = {Q2}

Assim, 89'

tal que:

f!?

!:_i.~:!f..~c:.l!.~::.~ ..!..?!?::.?:_i.~ ~r:.~?'!:.~~~~ ..~.. ...._; .. B..!~.r:.~.0!1.~'!:.~~'!.~ :P .. .


8g'(qo,a) = Qg({ qo}.a) = F£({ IrE 8(s, a) e S E Q({ qn ], £)}) =I qO,q1.q2} r 8g'(qo,b) = Qg({ qo}, b) = F£({ IrE 8(s, b) e S E Q({ qo},£)}) = {q1,q2} r 89'(q1,a) = Qg({ q-}, a) = F£({ IrE 8(s, a) e S E Q({ q-}, £)}) = {q2} r 89'(q1,b) = fu({ qll, b) = F£({ IrE 8(s, b) e SE Q({ qll, £)}) = {q1,q2} r 89'(q2,a) = fu({ q2}, a) = F£({r IrE 8(s, a) e S E Q({ q2}, £)}) = {q2} 89'(q2,b) = Qg({ q2}, b) = F£({ IrE 8(s, b) e S E Q({ Q2},£)}) e indefinida. r
0

2.5

Expr'essao Regular

Toda Linguagem Regular pode ser descrita por uma exprcssao simples, denominada Expressao Regular. Trata-se de urn formalismo denotacional, tarnbern considerado gerador, pois pode-se inferir como construir ("gerar") as palavras de uma linguagem. Uma Expressao Regular e definida a partir de conjuntos Oinguagens) basicos e operacoes de concatenacao e uniao. As Expressoes Regulares sao consideradas adequadas para a comunicacao homem x homem e, principalmente, para a cornunicacao homem x maquina. Definieao 2.12 Expressao Regular. Uma Expressiio Regular como segue: a) b)
(25

(ER) sobre urn alfabeto I. e indutivamente

definida

e uma

ER e denota a linguagem vazia; contendo exclusivamente a palavra

£ e uma ER e denota a linguagem vazia, ou seja, {£}

c) Qualquer simbolo x pertencente a I. e uma ER e denota contendo a palavra unitaria x, ou seja, {x} d) Se r e s sao ER e denotam as linguagens R e 5, respectivamente, d.I) (r+ s)

a linguagem entao:

ER e denota a linguagem R u 5

d.2) (rs) e ER e denota a lingua gem R5 = {uv I U ERe v E 5) d.3) (r*) e ER e de not a a linguagem R* A omissao de parenteses
convencoes:

o
usual, respeitando as seguintes ea

em uma ER

• •

a concatenacao sucessiva tern precedencia sobre a concatenacao uni ao; a concatenacao tern precedencia sobre a uniao. gerada por uma Expressao Regular r e representada

Urna linguagem L(r)ou GERA(r).

por

~ ..:..~.~,!:~~~[!.e.r:.~ ..

!!:.~?.~!~.~.~~

~.~ .

EXEMPLO 12 Expresstio Regular. Na tabela abaixo, sao apresentadas correspondentes linguagens: Express6es Regulares e as

Ex aa ba* (a + b)* (a + b)*aa(a + b)* a*ba*ba* (a + b)*(aa + bb) (a + £)(b + ba)* somente a palavra aa todas as palavras que iniciam por b, seguido por zero ou mais a todas as palavras sobre {a, b} todas as palavras contendo aa como subpalavra todas as palavras contendo exatamente dois b todas as palavras que terminam com aa ou bb todas as palavras que nao possuem dois a consecutivos

o
Os teoremas a seguir mostram que a classe das Express6es Regulares denota exatamente a classe das Linguagens Regulares. Teorema 2.13 Expressao Regular ~ Linguagem Regular. Se r e uma Expressiio Regular, entao GERA(r) e uma Linguagem Regular. Prova: Por definicao, uma linguagem e Regular se, e somente se, e possivel construir urn Automato Finito (Deterministico, Niio-Deterministico ou com Movimentos Vazios), que reconheca a linguagem. Assim, e necessario mostrar que, dada uma Expressiio Regular r qualquer, e possivel construir urn Automate Finito M tal que ACEITA(M) = GERA(r). Na construcao do correspondente AF£ M apresentada a seguir, a demonstracao de que ACEITA(M) = GERA(r) e por inducao no numero de operadores. a) Base de induciio, Seja r uma ER com zero operadores. Entiio r s6 pode ser da forma:
r=0 r=£ r = x (x pertencente a I)

Os Automates Finitos:
Ml = (0, {qQ}, 31, qQ, 0) M2 = (0, {qt}, 32, qt, (qt})

M3 = ({x}, {qQ, qt}, 8s, qQ, (qt}) ilustrados na Figura 2.17, aceitam as linguagens acima, respectivamente; b) Hip6tese de Inductio, Seja r uma ER com ate n > 0 operadores. Suponha que e possfvel definir urn Automate Finito que aceita a linguagem gerada por r:

.................................................................................................................................................................................

52

Linguagens Formais e Aut8matos

- P. Blauth Menezes

ER
r=0

AF corres ondente

r=e

Figura 2.17 Automates

finitos correspondentes

as Express6es

Regulares

corn zero operadores

ER

Automate Finito Corres ondente

Figura 2.18 Automates

finitos correspondentes

as Express6es

Regulares

corn n+ 1 operadores

.................................................................................................................................................................................

2 - Linguagens

Regulares

53

c) Passo de Lnducao, Seja r uma representada conjuntamente r = r1 + rz r = r1r2 r = r1* Portanto, por hip6tese

ER com n + 1 operadores.
casos, on de

Entao r pode ser


r1 e r2 possuem

por urn dos seguintes no maximo n operadores:

de inducao

possivel construir e M2=(L2,

os automates:

M1=(L1,01,81,qOl,{qtd) tais que ACEITA(M1) perda de exatamente = GERA(r1) generalidade, urn estado

02, 82, q02' (%}) Note-se que, sem possuem suponha

possivel assumir que M1 e M2 final (ver exercicios), Adicionalmente,

e ACEITA(M2)

= GERA(r2).

que os conjuntos de alfabetos e de estados dos dois automates (se nao forem disjuntos, e suficiente realizar uma simples Os Automates Finitos com Movimentos GERA(r) para cada caso sao como segue: Vazios que aceitam

sao disjuntos renomeacao). a linguagem

c.L)

(=

(1

+ (2· 0 automate:
M = (L1 u L2, 01 u 02 u (qO, qr}, 8, qo, {qtl) na Figura 2.18

ilustrado

tal que, a partir

do estado

inicial

cc.

realiza transicoes vazias para os estados qOl e q02. Assim, M1 e M2 processam de forma nao-determimstica e, portanto, e suficiente urn dos m6dulos aceitar a entrada para 0 automate M aceitar; c.2)
(=

(1(2. 0 automata:

M = (L1 UL2,

01 U02,

8, qOl' {%})

ilustrado na Figura 2.18, ao processar os m6dulos M1 e M2 em sequencia, aceita uma entrada se, e somente se, 0 prefixo pertencer a ACEITA(M1) c.3)
(=

sufixo pertencer

a ACEITA(M2);

(1*. 0 automate:

M = (L1, 01 u{ qo, qtJ, 8, qo, {qtl) ilustrado na Figura 2.18, e tal que a transicao vazia de qo para qt garante a aceitacao da palavra vazia e 0 cicIo de qtl para qOl permite o sucessivo processamento de M1 para assegurar 0 reconhecimento de duas ou mais concatenacoes sucessivas. 2.13, algumas podem gerar

o
possiveis resultados

E interessante
alteracoes indesejados, •

observar

que, na prova do Teorema do automate resultante

na construcao

como por exemplo (por que"):

no caso r = r1 + r2, nao introduzir os estados qo e qt e identificar ("unificar") os estados iniciais e finais de M1 com os correspondentes de M2;

.................................................................................................................................................................................

54

Linguagens Formais e Automates

- P. Blauth Menezes

ER a

Automate Finito corres ondente

a*

aa

bb

(aa + bb)

Figura 2.19 Express6es Regulares e os correspondentes

Automates Finitos

no caso r = r1*, nao introduzir 0 estado qf e manter % como 0 estado final do automate resultante. Neste caso, a transicao vazia que parte de qo teria % como imagem. 13 Construciio de urn AFE a partir de urna Expressiio Regular.

EXEMPLO

A construcao dos modulos de urn AFE que aceita a linguagem gerada pela ER a*(aa + bb) e como ilustrada na Figura 2.19 e 0 automate resultante e ilustrado na Figura 2.20 (por simplicidade, a identificacao dos estados e omitida). 0

.................................................................................................................................................................................

2 - Linguagens

Regulares

55

,J
!

Figura 2.20 Automate

finito resultante

o seguinte

teorema nao sera provado.

Teorema 2.14 Linguagem Regular ~ Expressao Regular. Se L e uma Linguagem que GERA(r) = L. Regular, entao existe uma Expressao Regular r tal
0

2.6

Gramafica Regular

Usando 0 conceito geral de gramaticas como introduzido no Capitulo 1 Introducao e Conceitos Basicos, e possivel definir Linguagens Regulares e Nao-Regulares (conforme sera visto adiante, e facil definir Linguagens NaoRegulares). Entretanto, e possivel estabelecer restricoes nas regras de producao, de tal forma a definir exatamente a Classe de Linguagens Regulares. Definieao 2.15 Gramaticas Lineares. Seja G = (V, T, P, S) uma gramatica palavra de T*. Entao G e uma: a) Gramatica Linear forma: b) Grarnatica da forma: Linear e sejam A e B elementos de V e w uma

a Direita

(GLD). Se todas as regras de producao sao da ou A~ w

A ~ wB

a Esquerda

(GLE). Se todas as regras de producao sao ou A~ w (GLUD). Se todas as regras adicionalmente, I w I ~ 1 (GLUE). de

A ~ Bw ,J c) Gramatica Linear Unitaria producao sao como na linear d) Gramatica Linear Unitaria producao sao como na linear

a Direita a direita e, a Esquerda

a esquerda e, adicionalmente, I w I ~ 1

Se todas as regras de
0

.................................................................................................................................................................................

56

Linguagens

Formais

e Autinnatos

P_

Blauth

Menezes

Note-se que, nas Grarnaticas Lineares, 0 lado dire ito de uma producao e constituido por, no maximo, uma variavel. Adicionalmente, esta variavel, se existir, sempre antecede (linear a esquerda) ou sucede (linear a direita) qualquer subpalavra de terminais, Teorema 2.16 Equivalencia das Gramaticas Lineares. Seja L uma linguagem,
L

Entao: GLD se, e somente se, GLE se, e somente se, GLUD se, e somente se, GLUE.

L L L

e gerada e gerada e gerada e gerada

por por por por

uma uma uma uma

Ou seja, as diversas formas das Gramaticas Lineares sao formalismos equivalentes. A demonstracao do teorema e sugerida como exercicio. Definicao 2.17 Gramatica Regular. Uma Gramatica Regular e qualquer Grarnatica Linear. Uma linguagem gerada por uma Gramatica por L(G) ou GERA(G)_ EXEMPLO 14 Gramatica Regular. Regular G

representada

A linguagem a(ba)*

gerada pelas seguintes Gramaticas Regulares:

a) Linear II Direita. G = ({ S, A), (a, b), P, S) onde P possui as seguintes regras de producao:
S --+ aA A --+ baA I
£

b) Linear II Esquerda, G = de producao:


S --+ Sba

({ S),

{a, b}, P, S) onde P possui as seguintes regras

Ia

c) Linear Unitaria II Direita. G = seguintes regras de producao:


S --+ aA

({ S,

A, B), (a, b), P, S) onde P pOSSUlas

A --+ bB B --+ aA


({ S, A),

d) Linear Unitaria II Esquerda. G seguintes regras de producao: S --+ Aa I a A --+ Sb EXEMPLO 15 Gratruiiica Regular.

(a, b), P, S) onde P possui as

A linguagem (a + b)*(aa + bb)

geradapelas

seguintes Gramaticas Regulares:

.•............•••.•............•..•••••••••......•.••••••••.......•••••..•......•••....•....•..•.••.......••••........•••••..........••.•........••••••...........•••••....••••••

2 - Linguagens

Regulares

57

a) Linear a Direita. G = de producao:


S -7 as I bS I A A -7 aa I bb

({ S, A), (a, b),

P, S) onde P possui as seguintes

regras

b) Linear a Esquerda. regras de producao: S -7 Aaa I Abb A-7 Aa I Ab I E

= ({ S, A), (a, b),

P, S) onde P possui

as seguintes

n Regulares

Os teoremas a seguir mostram que a Classe das Gramaticas denota exatamente a Classe das Linguagens Regulares. Teorema 2.18 Oramatica Regular Se L e uma linguagem Linguagem Regular.
-7

Linguagem Regular. Regular, entao L e uma

gerada por uma Grarnatica

Prova: Para mostrar que uma linguagem e Regular, e suficiente construir urn Automate Finito que a reconheca. Suponha G = (V, T, P, S) uma Gramatica Linear Unit aria a Direita. Entao 0 AFE M = (2:, Q, 8, qo, F) construido abaixo simula as derivacoes de G, ou seja, ACEITA(M) GERA(G): =

2:
Q

=T

= V u (qj) F = { qtl
qo = S

construida

como segue (suponha A e B variaveis e a terminal): Tipo da Producao A-7E A-7a A-7B A -7 aB Tr ansicao Gerada
8(A, 8(A, 8(A, 8(A,

E) = qf a) = qf E) = B a) = B

A demonstracao que, de fato, ACEITA(M) GERA(G) no numero de derivacoes, = e como segue (suponh a a. elemento de (T u V)*e w elemento de T*):
1 a) Base de induciio. Suponha que S ::::}o: Entao, se:

a.l) a.2) a.3) a.4)

uma regra S -7 E. Por construcao de M, 8(S, E)= qf uma regra S -7 a. Por construcao de M, 8(S, a) = qf a. = A, existe uma regra S -7 A. Por construcao de M, 8(S, E) = A a. = aA, existe uma regra S -7 aA. Por construcao de M, 8(S, a) = A
a.
::::}n a., n

= E, existe a. = a, existe

b) Hipotese de inductio, Suponha que S


b.L) a.

» 1 tal que, se:

b.2)

= w, entao ~(S, w) = qf a. = wA,entao ~(S, w) = A

I:.i.'!:?~?:?~~:.~ ..!..?:..'!!.?:!.~ ..~.~~.~?':::.c:.:~~!!.~~.~:.~.!':!.~'!:.~~~~ ..:..~:.. .

Figura 2.21 Automata

finito construido

a partir de uma Gramatica

Regular

c) Passo de Lnducao . Suponha que S =}n+1 a. Entao, obrigatoriamente somente a hip6tese b.2) acima e S =}n wA =} 1 a. Portanto, se: c.I) a = WE w, existe uma regra A = c.2) a = wb, existe uma regra A
li(S, wb)
--7

ocorre

E. Assim:

li(S, WE) 8(Q.(S, w), E) = 8(A, E) = qf =


--7

b. Assim:

8 (Q.(S, w), b)
--7

8(A, b)

qf

c.3) a = wB, existe uma regra A c.4l a

B. Assim:

li(S, WE) 8(Q.(S, w), E) = 8(A, E) = B =

= wbB, existe uma regra A


li(S, wb)

--7

bB. Assim:

8(Q.(S, w), b)

8(A, b)

EXEMPLO

16 Consiruciio de um AFE a partir de uma Grarruitica Regular. Linear Unitaria

Considere a seguinte Gramatica Exemplo 14:

a Direita, introduzida

no

G = ({ S, A, B), (a, b), P, S)

onde Petal
S
--7 --7 --7

que:
E

aA bB I aA

A
B

o AFE Mque

reconhece a linguagem gerada pela gramatica G e:


M = ({a, b), {S, A, B, qtl, 8,

s, (qtl)

o qual e ilustrado na Figura 2.21 e onde 8 e construida como segue:

.................................................................................................................................................................................

2 - Linguagens

Regulares

59

Produyao
8~ aA

Tr ansicao
8(8, a) = A 8(A, b) = B 8(A, e) = qf 8(B, a) = A
0

A~ bB A~£ B~ aA

Teorema 2.19 Linguagem Regular ~ Gramatica Regular. Se L e Linguagem Regular, entao existe G, Gramatica Regular que gera L. Prova: Se L e uma Linguagem Regular, entao existe urn AFD M= (I, Q, 8, qo, F) tal que ACEITA(M) = L. A ideia central da dernonstracao e construir uma Gramatica Linear a Direita G a partir de M tal que GERA(G) = ACEITA(M), ou seja, cuja derivacao simula a funcao programa estendida. Seja G = (V, T, P, 8) tal que:
V=Qu{8}

T=I
e P e construido como segue (suponha qj, qk elementos de Q, qf elemento de F e a elemento de D: Tr ansicao Producao

A dernonstracao que, de fato, GERA(G) = ACEITA(M) como segue (suponha w elemento de I*): a) Base de Inducao, Seja w tal que I w I producao. Se £ E ACEITA(M), ent.ao qo que qo ~ £ e producao, Logo:
8~

e no tamanho

da palavra,
qo

= O.Por definicao, tem-se que 8 ~

estado final e, por definicao, tem-se


£

qo ~

b) Hip6tese de Induciio. Seja w tal que I w I = n (n :2: 1) e .6.(qO, w) = q. Assim, se: b.I) q nao e estado final, ent.ao suponha que 8 ~ wq b.2) q e estado final, entao suponha que 8 ~ wq ~ import ante para 0 passo de inducao); c) Passo de Induciio, Seja w tal que
W

(este caso nao Entao:

I wa I = n + 1 e .6.(qO,wa) = p.

8(.6.(qo, w), a) = 8(q, a) = p

Portanto, obrigatoriamente ocorre somente a hipotese b.L) acima e, se:


c.L) p nao e estado final, entao 8 ~n wq ~ 1 wap c.2) p e estado final, entao 8 ~n wq ~ 1 wap ~ 1 wa 0

Linguagens

Formais

e Aut8matos

- P. Blauth

Menezes

Figura

2.22 Grafo do Autornato Finito Deterministico

EXEMPLO 17 Construcao de uma Gramatica Regular a partir de um AFD. Considere


0

Automate Finito Deterministico:

ilustrado na Figura 2.22. A correspondente Grarnatica Regular construida conforme 0 algoritmo da prova do Teorema 2.19 e:
G = ({ qo, ql, % S), (a, b, c), S, P)

onde P e como segue:

'I'ransicao

Producao
S -7 qo qo -7 E ql -7 E q2 -7 E

o(qo, a) = qo o(qO, b) = ql O(ql, b) = q1 0(q1,C)=q2 0(% c) = q2

qO -7 aqo qO -7 bq1 ql -7 bql ql q2


-7 -7

cq2 cq2
0

2.7

Propriedades das Linguagens Regulares

Uma das principais caracteristicas das Linguagens Regulares eo fato de serem representadas por formalismos de pouca complexidade, grande eficiencia e facil implementacao. Entretanto, por ser uma classe relativamente simples, e restrita e limitada, sendo facil definir Linguagens Nao-Regulares. Assim, algumas questoes sobre Linguagens Regulares necessitam ser analisadas: a) Como determinar se uma linguagem e Regular?

.................................................................................................................................................................................

2 - Linguagens Regulares

61

Figura

2.23 Traducao

dos formalismos

das Linguagens

Regulares

b) Como verificar se uma Linguagem mesmo vazia)? c) diferentes?

Regular e infinita ou finita (ou ate

E possivel analisar duas Linguagens Regulares e concluir se sao iguais ou

d) A Classe das Linguagens Regulares e fechada para operacoes de uni ao,


concatenacao e interseccao?

No estudo que segue, a analise de cada propriedade e desenvolvida para urn dos formalismos estudados. Para os demais formalismos, e suficiente traduzi-los usando os algoritmos apresentados nos correspondentes teoremas como ilustrado na Figura 2.23 (note-se que, a construcao de uma ER a partir de urn AFD nao foi provada),

o lema a seguir, conhecido por Lema do Bombeamento para as Linguagens Regulares, e util no estudo das propriedades. Resumidamente, a ideia basica e a seguinte:
• se uma linguagem e Regular, entao e aceita por urn Automate Finito Deterministico 0 qual possui urn nurnero finito e predefinido de n estados; se 0 auto rnato reconhece uma entrada W de comprimento maior ou igual a n, obrigatoriamente 0 automate assume algum estado q mais de uma vez e, portanto, existe urn ciclo na funcao programa que passa por q; logo, w pode ser dividida em tres subpalavras w = uvz tal que I uv I ~ n, I V I ~ 1 e onde v e a parte de w reconhecida pelo ciclo. Portanto, claramente uv'z, para qualquer i ~ 0, e aceita pelo automate (ou seja, e palavra da linguagem), executando 0 ciclo i vezes.

62

Linguagens

Formais

e Autbmatos

- P. Blautli

Menezes

Figura

2.24 Autcmato

Finito Deterministico

Lema 2.20 Bombeamento para as Linguagens Regulares. Se L

uma Linguagem Regular, entao:

existe uma cor-stante n tal que, para qualquer palavra w de L onde I w I 2 n, w pode ser definida como w = UVZ onde I uv I s; n, para todo i 2 0, uvz e palavra de L. Prova: Seja L uma Linguagem Regular. Entao:

Iv I

2 1 e,

existe urn AFD M = (I, Q, 8, qo, F) tal que ACEITA(M) = L seja n 0 cardinal de Q seja w = a1a2 ... am uma palavra de L tal que m 2 n suponha que 8(qO, ar) = qr, 8(q1, a2) = Q2, ... , 8(qm-1, am) = qm como m 2 n existem r, sonde 0 S; r < S S; n tais que:
qr = qs, 8(qo, a1 ... ar) = qr, 8(qr, ar+1···as) = qs e 8(qs, as+1···am) = qm

sejam u = a1 ...ar, V= ar+1 ... as e Z = as+1 ...am como r < s S; n, entao I v I 2 1 e I uv I S; n como qr = qs, entao v e reconhecida em urn cicIo. Portanto, uviz

e palavra

de L, para todo i 2 0

o
aceita?).

EXEMPLO 18 Bombeamento para as Linguagens Regulares. Considere 0 automate ilustrado na Figura 2.24 (qual a linguagem Exemplificando 0 Lema do Bombeamento, tem-se que:
n=4

no caso particular de w
qr = qs = q1 u = a, v = bb, Z = ba

= abbba, tem-se que:


o

Linguagens Regulares e Nao-Regulares


Para mostrar que uma determinada linguagem e Regular, e suficiente representa-Ia usando urn dos formalismos apresentados anteriormente (Automate Finito, Expressao Regular ou Gramatica Regular). Entretanto, a prova de que e Nan-Regular necessita ser desenvolvida para cada caso. Urn a ferramenta util e Lema do Bombeamento, como exemplificado a seguir.

.................................................................................................................................................................................

2 - Linguagens Regulares

63

EXEMPLO 19 Linguagem
A seguinte linguagem L = {w

Niio-Regular.

sobre {a, b) nao


0

e Regular:
de simbolos e a e b) Suponha que

I w possui
0

mesmo mimero

A prova que segue usa

e Regular.

Lema do Bombeamento que aceita L

e por

absurdo.

Entao:

existe urn AFD M com n estados seja w = anbn Pelo Lema do Bombeamento,

w pode ser definida como w = uvz onde:


de L

I uv I ~ n, I v I ~
para todo i ~ 0, o que

e,
e palavra

uv'z

e urn

absurdo,

pois, como

I uv I ~ n, uv e
uv2z

composta

exclusivamente

por a
0

simbolos a. Neste caso, por exemplo, mesma mirnero de simbolos a e b.

nao pertence

a L, pois nao possui

Operaeoes Fechadas
No texto que segue, denota
0

sobre Linguagens
determinada

Regulares
L sobre

para

uma

linguagem

I*, L'

seu camplemento

(sobre I*).

Teorema 2.21 Operacoes Fechadas sobre as Linguagens Regulares.


A Classe das Linguagens Regulares

e fechada

para

as seguintes

operacoes:

• •
• •

uni ao; concatenacao;


complemento; iriterseccao. de umao e concatenacao decorrem Regular (por que"), Nos demais casos, Regular sobre I*. Seja:

Prova: A prova referente aos casas trivialmente da definicao de Expressao tem-se que: a) Complemento.

Seja L uma Linguagem

M = (I, Q, 8, qQ, F)
urn AFD tal que ACEITA(M) = L. A ideia do que segue consiste em inverter as condicoes de ACEITA/REJEITA de M para reconhecer L'. Entretanto, como M pode Assim, do AFD: rejeitar a por inversao indefinicao, ira das

necessano ao terminar

modificar de ler pode

automata, a entrada. ser obtida

garantindo transformando

que somente os estados

parar

toda

condicoes finais

ACEITA/REJEITA

em nao-finais

e vice-versa.

A construcao

M' = (I, Q', 8', qQ, F')

·~

I:_i.~~~.l.l.c:.!f.~~.~ ..:..~.~.t~)Ir:.a.t~~_'_: .. ~!'!.l~t!:.~~~:.~~~~ ..l!.?'..!.~.c:._i.~ ..: ..E .


tal que ACEITA(M')
Q'=Qu{d} F' = Q' - F

L'

como segue (suponha a E Ie

q E Q):

8' e como 8, com as seguintes transicoes adicionais, para todo a E I: 8'(q, a) = d se 8(q, a) nao e definida
8'(d, a) = d

Claramente,

Automate Finito M' construido acima

tal que ACEITA(M')

= L'

b) Intersecciio, Sejam L1 e L2 Linguagens igualdade e valida:

Regulares.

Como a seguinte

e comoja foi verificado que a Classe das Linguagens Regulares e fechada para as operacoes de complemento e uniao, entao tambern e fechada para
a interseccao.

u
Regular

Investigacao se uma Linguagem

e Vazia,

Finita ou Infinita

o teorema a seguir mostra que existe urn algoritmo para verificar se uma Linguagem Regular represent ada por urn Automate Finito e vazia, finita ou infinita.
Teorema 2.22 Linguagem Regular Vazia, Finita ou Infinita. Se L e uma Linguagem Regular aceita por urn Automate Finito M= (I, Q, 8, F) com n estados (0 cardinal de Q en), entao L e: a) Vazia se, e somente se, Mnao aceita qualquer palavra w tal que b) Finita se, e somente se, Mnao aceita uma palavra w tal que n ~
qQ,

Iw I

<n

I w I < 2n

c) Infinita se, e somente se, Maceita uma palavra w tal que n ~ I w I < 2n Prova: lnfinita (e-). Process a Mpara toda a palavra w de comprimento n ~ I w I < 2n. Se 0 automate aceita alguma palavra entao L e infinita. De fato, se w E L e tal que n ~ I w I < 2n, entao, pelo Bombeamento, w = uvz onde I uv I ~ n, I v I ;?: 1 e, para todo i ;?: 0, uv'z e palavra de L. Logo, L e infinita. Infinita (~). Se L • •

e infinita,

entao obviamente existe w tal que I w

l > n. Assim:

se I w I < 2n, entao a prova esta completa; suponha que nao existe palavra de comprimento menor que 2n. Entao suponha que I w l > 2n mas de comprimento menor ou igual a qualquer outra palavra t tal que I t I ;?: 2n. Pelo Bombeamento, w = uvz onde I uv I s n, I v I ;?: 1 e, para todo i;?: 0, uv'z e palavra de L. Em, particular, 1 ~ I v I ~ n e uz e palavra de L, 0 que e urn absurdo, pois:

2 - Linguagens

Regulates

65

Figura

2.25 Automata

Finito Determinfstica

• •

se uz :::> 2n, entao contradiz a suposicao de que comprimento tal que I w l > 2n

e palavra

de menor

se uz < 2n, entao n ~ uz < 2n (pois uvz :::> 2n, 1 ~ v portanto, contradiz a suposicao de que nao existe w tal que n ~ 2n todas

I I ~ n) e, Iw I <

Vazia. Processa
rejeita simples usando

M para todas as palavras de comprimento menor que n. Se as palavras, a linguagem e vazia. 0 detalhamento da prova e
0 Bombeamento direta e

sugerida

como exercicio.

Finita.

Lembre-se

consequencia que:

do caso

on de L

infinita,

provado

acima.

(p

q)

<=}

(.....,p

.....,q)
n~

Ou seja, process a M para toda palavra w de comprimento automate rejeita todas as palavras, entao L e finita.

Iw I <

2n. Se 0
0

EXEMPLO 20 Linguagem Regular Infinita.


Considere 0 automate ilustrado na Figura 2.25 (qual a linguagem aceita?). Exemplificando 0 Teorema 2.22 onde a linguagem e infinita se, e somente se, o automate aceita uma palavra w tal que n ~ I w I < 2n, note-se que a menor palavra aceita cujo comprimento maior ou igual a 3 e aabaa a qual possrn comprimento 5. Ou seja, 3 ~ aabaa < 6. 0

Igualdade de Linguagens Regulares

o teorema
Automatos
linguagem.

a seguir Finitos

mostra

que existe urn algoritmo ou seja,

para verificar

se do is

sao

equivalentes,

se reconhecem

a mesma

Teorema 2.23 Igualdade de Linguagens Regulares.


Se M1 e M2 sao Automates Finitos, entao existe urn algoritmo se ACEITA(M1) = ACEITA(M2). Prova: Sejam M1 e M2 Automates = L2. Portanto, Finitos para determinar

tais que ACEITA(M1) = L1 e ACEITA(M2) Finito M3 tal que ACEITA(M3) =

possfvel construir

urn Automate

L30nde:

.•..•••••.......••••••••....•••.••••.•.....••..............••.............................•••..............•••••••....•.......•.•........••••••••......••••.....••••••.....••••..

66

Linguagens

Formais

e Autbmatos

. P. Blautli

Menezes

Claramente, L1 = L2 se, e somente se, L3 e vazia, Como visto no Teorema existe um algoritmo para verificar se uma Linguagem Regular e vazia.

2.22,
0

Eficiencia de urn Automate Finito como Algoritmo de

Reconhecimento
A implementacao de um simulador de Automate Finito (sugerida como exercicio) consiste, basicamente, em urn Deterministico algoritmo que

controla a mudanca de estado do automate a cada simbolo lido da entrada. Assim, 0 tempo de processamento necessar io para aceitar ou rejeitar e diretamente proporcional ao tamanho da entrada. Em termos de Complexidade (parte da Teoria da Cornputacao que estuda os recurs os necessaries ao processamonto), classe de algoritmos. Deve-se destacar que
0

este procedimento

pertence

mais

rapida

tempo de processamento

nao depende

do automate

possivel e a reducao do n umero de estados. Conforme e vis to adiante, existe urn algoritmo para construir 0 Automate Finito Deterministico minimo (com o menor numero de estados) de qualquer Linguagem Regular.

de reconhecimento. Ou seja, qualquer Automate Finito Deterministico que recoriheca a linguagem ter a a mesma eficiencia. Entretanto, uma oti miz acao

2.8
o

Mirrimizacao de urn Automate Finito


e
Finito equivalente com de Automate Minimo das solucoes praticas. do mirnero
0

objetivo da minimizacao gerar urn Automate menor nurnero de estados possivel. Esta definicao universalmente aceita e adotada na maioria Entretanto, em algumas aplicacoes especiais,

a minimizacao

de

estados nao implica necessariamente no menor custo de implernentacao. Urn exemplo tipico seria 0 desenho de circuitos eletronicos, quando pode ser desejavel introduzir estados interrnediarios em determinadas posicocs (do circuito), de forma a melhorar a eficiencia, ou simplesmente facilitar as ligacoes fisicas. Portanto, 0 algoritmo de miriimiz.acao nestes casos deve ser modificado, prevendo as variaveis especificas da aplicacao, Assim, dois na

o
geram

Automate
0

Finito Minimo que aceitam Automate

e unico
Minimo,

(a menos de isomorfismo), linguagem ao serem diferenciando-se,

automates identificacao

distintos mesmo

a mesma

minimizados sao isornorfos.

eventualmente,

dos estados.

Neste caso, os conjuntos

dos estados

2 - Linguagens

Regulares

Basicamente, 0 algoritmo de minimizacao unifica os estados equivalentes. Dois estados q e p sao ditos equivalentes se, e somente se, para qualquer palavra w pertencente a I*, 8(q, w) e 8(p, w) result am simultaneamente em estados finais, ou nao-finais, Ou seja, 0 processamento de uma entrada qualquer a partir de estados equivalentes gera, em qualquer caso, 0 mesmo resultado aceita/rejeita. Na definicao que segue, lembre-se que, para um dado conjunto A, # A denota 0 cardinal de A. Definicao 2.24 Automate Minimo. Um Automata Minima de uma Linguagem Regular L e um Automate Finito Deterministico M = (I, 0, 8, qo, F) tal que ACEITA(M) = L e que, para qualquer outro Automate Finito Deterministico M' = (I, 0', 8', qo', F') tal que ACEITA(M') = L, tem-se que #0' ~ #0_ o Definicao 2.25 Pre-Requisites do Algoritmo de Minimizaeao. deve satisfazer aos seguintes pre-

Urn Automate Finito a ser minimizado requisitos: a) Deve ser deterministico;

b) Nao pode ter estados inacessiveis (nao-atingtveis a partir do estado inicial); c) A funcao programa deve ser total (a partir de qualquer estado sao previstas transicoes para todos os simbolos do alfabeto), 0 Caso 0 automate nao satisfaca algum dos pre-requisites, gerar urn automate equivalente, como segue: e necess ar io

a) Gerar urn automate deterministico equivalente, usando os algoritmos introduzidos nas correspondentes dernonstracoes dos teoremas (de AF£ para AFN e de AFN para AFD); b) Eliminar os estados inacessiveis e suas correspondentes transicoes, Tratase de urn algoritmo relativamente simples e e sugerido como exercicio; c) Para transformar a funcao programa em total, e suficiente introduzir urn novo estado nao-final de incluir as transicoes nao-previstas, tendo d como estado destino. Por fim, incluir urn ciclo em d para todos os simbolos do alfabeto.

o algoritmo apresentado a seguir identifica os estados equivalentes por exclusao. A partir de uma tabela de estados, sao marcados os estados naoequivalentes, Ao final do algoritmo, as referencias nao-rnarcadas representam os estados equivalentes,

.................................................................................................................................................................................

68

Linguagens

Formais

e Automotos

- P. Bloutli Menezes

q1 q2

...
qn
d

qo

q1

...

qn-1

qn
de Aut6matos Finitos

Figura 2.26 Tabela de estados do algoritmo de minirnizacao

Definicao 2.26 Algoritmo de Minimizacao. Suponha urn Automato Finito Deterministico M = (I, a, 8, qQ, F) que satisfaz aos pre-requisites de mirrimizacao. Os pass os do Algoritmo de Minimieaciio sao os seguintes: a) Tabela. Construir uma tabela relacionando os estados distintos, onde cada par de estados ocorre somente uma vez, como ilustrado na Figura 2.26; b) Marcaciio dos estados triuialmente ruio-equ.iualentes , Marcar todos os pares do tipo {estado finaJ, estado nao-final}, pois, obviamente, estados finais nao sao equivalentes a nao-finais; c) Marcactio dos estados ruio-equ.ioalentes, Para cada par {qu, qv} naomarcado e para cada simbolo a E I, suponha que 8(qu, a) = Pu e 8(qv, a) = Pv e: • • • se Pu = Pv, eritao qu e equivalente a qy para 0 simbolo a e nao deve ser marcado; se Pu 1- Pv e 0 par {Pu, Pv} nao esta marcado, entao {qu, qv} e incluido em uma lista a partir de {Pu, Pv} para posterior analise; se Pu 1- Pv e 0 par {Pu, Pv} esta marcado, entao: • { qu, qv} nao e equivalente e deve ser marcado; • se {qu, qv} encabeca uma lista de pares, entao marcar todos os pares da lista (e, recursivamente, se algum par da lista encabeca outra Iista);

d) Unificacao dos estados equiualentes. Os estados dos pares nao-rnarcados sao equivalentes e podem ser unificados como segue: • a equivalencia de estados

e transitiva;

2 - Linguagens

Regulares

Figura

2.27 Automate

finito a ser minimizado

• • •

pares de estados nao-finais equivalentes podem ser unificados como urn unico estado nao-final; pares de estados finais equivalentes podem ser unificados como urn unico estado final; se algum dos estados equivalentes e inicial, entao 0 correspondente estado unificado e inicial;

e) Exclusiio dos estados inuteis . Por fim, os estados chamados inuteis devem ser excluidos. Urn estado q e inutil se e nao-final e a partir de q nao e possivel atingir urn est ado final. Deve-se reparar que 0 estado d (se incluido) sempre e inutil (0 algoritmo para excluir os estados inuteis e simples e e sugerido como exercicio). o EXEMPLO 21 Minimizactio. Considere 0 Automate Finito Deterministico ilustrado na Figura 2.27 (qual a linguagem aceita"). 0 automate satisfaz os pre-requisites de minirni zacao (e, conseqiientemente, nao e necessario incluir 0 estado d). Os passos do algoritmo sao como segue: a) Construcao da tabela, como ilustrado na Figura 2.28; b) Marcacao dos pares do tipo {estado final, estado nao-final}, Figura 2.28; como ilustrado na

c) Analise dos pares de est ado nao-marcados, onde a tabela resultante e ilustrada na Figura 2.29, sendo 0 simbolo (8) usado para representar os pares marcados neste etapa: c.L) Analise do par {qO, qa}:
5(qo, a)

q2

5(qo, b) = q1 5(q4, b) = q2

5(q4, a) = q3

70

Linguagens

Formais

e Aut6matos

- P. Blauth

Menezes

<l1 qz ct3
C\:I

X
X

X
X
qo <l1

X
X
q2

X
X
ct3 q4

C!5

Figura 2.28 Tabela de est ados e os pares do tipo (estados finais, estados nao-finais] marcados

Como {q1, q2} e {q2, q3} sao nao-marcados, entao {qQ, qa] nas listas encabecadas par {qr, q2} e {q2, q3 }; c.2) Analise do par {qQ, qs}:
8(qQ, a)

incluido

= q2

8(qQ, b) = q1 8(qs, b) = q3

8(qs, a) = q2

Como {q1, q3} e nao-rnarcado (e como {q2, q2} e trivialmente equivalente), entao {qQ, qs} e incluido na lista encabecada par {q1, q3}; c.3) Analise do par {q1, q2}:
8(q1, a)

= q1

8(q1, b)

= qQ

Como {q1, qa} e marcado, entao {q-, q2} tambern e marcado. Como {q1, q2} encabeca uma lista, a par {qQ, q4} tarnbern e marcado; c.4) Analise do par {q1, q3}:
8(q1, a) = q1 8(q3, a) = qs 8(q1, b) = qQ 8(q3, b) = q4

8(q2, a) = q4

8(q2, b) = qs

Como {q1, qs} bern como {qQ, q4} sao marcados, entao {q1, q3} t.ambern marcado. Como {q1, q3} encabeca uma lista, a par {qQ, qs} tambem e marcado;
8(q2, a) = q4 8(q3, a) = qs 8(q2, b) = qs 8(q3, b) = q4

c.5) Analise do par {q2, q3}:

Como {q4, qs} e nao-marcado, encabecada par {qa, qs };

entao {q2, q3}

incluido na lista

2...:.. l:.~~:!!.LI_~!f.':.':.~ ..!!-5!'.,!.!~.'.·.':::

!.~ .

~ ~

X
X

,,,,.'
Ii"""

{en q,}

®
®
X
'''''''''''''''''' ' ','

,,.,
s,,"'"

en
Cf+ q,

'" >'

{Cf1, q,}

Q9

®
qo

X
~

X
q2

X en
q4

{et, en}

Figura 2.29 Tabela de estadas resultante

b b

Figura

2.30 Automata

fin ita minima

c.6) Analise do par {qa, q5}:


8(q4, a) 8(q5, a)

= q3 = q2

8(q4, b) 8(q5, b)

=
=

q2 q3 q5}

Como {% q3} e nao-rnarcado, encabecada por {q2, q3}; d) Como os pares {q2, q3} e {q4, unificacoes podem ser feitas:
• • q5}

entao {qa,

incluido na lista as seguintes

sao nao-marcados,

q23 represent a a unificacao dos estados nao-finais q2 e q3; q45 representa a unificacao dos estados finais q4 e q5.

o Automate
2.30.

Minimo result ante possui quatro estados e e ilustrado na Figura


0

.................................................................................................................................................................................

72

Linguagens

Formais

e Automatos

- P_ Bloutli

Menezes

Os seguintes teoremas garantem que 0 Automato Minimo de uma linguagem e 0 construido pelo algoritmo de minimizacao apresentado e e unico, Os teoremas nao serao demonstrados. Teorema 2.27 Automate Minimo.

o Automate Finito Deterministico construido usando 0 algoritmo de minimizacao apresentado e 0 automate com menor mimero de estados para a Iinguagern. 0
Teorema 2.28 Unicidade do Automate Minimo.

o Automate Finito Deterministico minimo de uma linguagem menos de isornorfismo.

e unico, a

((t1~
--------CJ

k ew c
p

Ym
X

s
r

nu
f
t 0

2.9

Automate Finito com Saida

o conceito basico de Automate Finito possui aplicacoes restritas, pois a inforrnacao de saida e limitada a logica binaria aceita/rejeita. Sem alterar a classe de linguagens reconhecidas, e possivel estender a definicao de Automate Finito incluindo a geracao de uma palavra de saida, As saidas podem ser associ ad as as transicoes (Maquina de Mealy) ou aos estados (Maquina de Moore). Em ambas as maquinas, a saida nao pode ser lida, ou seja, nao pode ser usada como memoria auxiliar, e e como segue:

.................................................................................................................................................................................

2 - Linguagens

Regulares

73

• • •

e definida sobre um alfabeto especial, denominado Alfabeto de Saida (pode ser igual ao alfabeto de entrada); a saida e armazenada em uma fita independente da de entrada; a cabeca da fita de saida move uma celula para direita a cada simbolo gravado; 0 resultado do processamento do Automate Finito e 0 seu estado final (condicao de aceitaJrejeita) e a inforrnacao contida na fita de saida.

As Maquinas de Mealy e Moore sao modificacoes sobre 0 Automate Finito Deterrnimstico. A extensao da definicao, prevendo as facilidades de NaoDeterminismo e Movimentos Vazios, e sugerida como exercicio.

2.9.1

Maquina de Mealy

A Maquina de Mealy e um Automate Finito modificado de forma a gerar uma palavra de saida para cada transicao, Definieao 2.29 Maquina de Mealy. Urna Maquina de Mealy M e Automate associadas as transicoes. E representada
M

Finito Deterministico por uma 6-upla:

com saidas

(I,

Q, 8, qQ, F, L3.)

onde:

I
Q

alfabeto de simbolos de entrada; conjunto de estados possiveis do automate funciio programa ou [uncao de transiciio:
8: QxI ~ QXL3.*

qual e finito;

qo F
L3.

a qual e uma funcao parcial; estado inicial do automate tal que qO e elemento de Q; conjunto de estados finais tal que Festa contido em Q; alfabeto de simbolos de saida,

Portanto, as componentes I, Q, qo e F sao como no Automate Finito Deterministico. A funcao programa pode ser representada como um grafo finito direto como nos AFD, adicionando, na etiqueta de cada transicao, a saida associada, quando diferente da palavra vazia.

o processamento de uma Maquina de Mealy, para uma palavra de entrada W, consiste na sucessiva aplicacao da funcao programa para cada simbolo de W (da esquerda para a direita) ate ocorrer uma condicao de parada. A palavra vazia como saida da funcao programa indica que nenhuma gravacao e realizada e, obviamente, nao move a cabeca da fita de safda, Se todas as transicoes geram saida vazia, entao a Maquina de Mealy process a

.................................................................................................................................................................................

74

Linguagenn

Formais

e Auuunatos

- P. Blauth

Menezes

como se fosse urn Automate Finito. A definicao estendida de uma Maquina de Mealy e sugerida

formal da funcao como exercfcio.

programa

EXEMPLO 22 Maquina de Mealy.


Uma aplicacao comum e frequenternente recomendada para os automates com saida e 0 projeto de dialogo entre urn programa (de computador) eo seu usuario, • • Em Basicamente, urn dialogo pode ser de dois tipos:

comandado comandado qualquer

pelo programa; pelo usuario. caso, uma das principais dificuldades do projetista urn dialogo que trata

ea

visualizacao do conjunto de eventos e acoes que definam para as divers as situacoes possiveis.

adequado algumas

exemplo tipicas

que

segue

e uma dialogo

Maquina que cria

de Mealy e atualiza

situacoes simbologia • • (

de urn

arquivos.

A seguinte

e adotada

no grafo da funcao de transicao: fornecida pelo usuario (em urn teclado, por exernplo);

): entrada


" '': saida gerada pelo programa (em urn video, por exernplo); [ J: acao interna ao programa, sem cornunicacao com 0 usuar io; (. .. ): result ado de uma acao interna ao programa; e usado como entrada no grafo.

A Maquina de Mealy eM
na Figura portugues)

= (I, {qQ, q1, ., q8, qr }, 8, qQ, {ql}, ll} como ilustrada 2.31, onde I = II e represent am 0 conjunto de simbolos (palavras do validos no dialogo, Q

2.9.2

Maquina de Moore
de Moore possui uma segunda funcao, que gera uma palavra

A Maquina

de saida (que pode ser vazia) para cada estado da maquina,

Definicao 2.30 Maquina de Moore.


Uma Moquina associadas

de Moore Meum

Automate

Finito Deterministico

com saidas

aos estados.

represenotada M = (I, Q, 8.

por uma 7-upla:


QQ,

F, ll, 88)

onde:

I
Q

alfabeto de simbolos de entrada; conjunto de estados possiveis do automate [unciio programa ou [uncao de transiciio: 8: QxI
a qual e uma funcao parcial; de Q;

qual e finito;

~Q

qQ

estado inicial tal que qQ e elemento

T
2 - Linguagens Regulares

75

(qualquer info) "acao?"

(fim) "fim program a"

(nao) (fim) "operacao abandonada"

(sim)

(inclui info) "info "

'-------"arq

(sim) salvo"-----i [salva arq]


Figura 2_31 Grafo da Maquina

(nao) "arq nao salvo"-------' [abandon a arq]


de Mealy

F 6 8s

conjunto de estados finais tal que Festa contido em Q; alfabeto de simbolos de saida; [unciio de saida:
8S: Q ~ 6*

a qual e uma funcao total,

....•••............••••.••...........••.•..............•••...............•••••••••••.•.......•.•••••....•.....................••••..................•.•••••••...................•

76

Linguugens

Formais

e Autom.atos

- P_ Blautli

Menezes

Portanto, as componentes 2:, Q, 0, qo e F sao como no Automate Finito Deterministico e II e como na Maquina de Mealy. A funcao programa pode ser representada etiqueta como urn grafo a saida finito direto como nos AFD, diferente adicionando, da palavra na de cada estado, associ ada, quando vazia.

o
entrada

processamento w, consiste

de uma Maquina de Moore, para uma palavra de na sucessiva aplicacao da funcao program a para cada para a direita) ate ocorrer uma condicao de parada, gravacao e Se todos os estendida de da funcao de saida indica que nenhuma nao move a cabeca da fita de saida. programa

simbolo de A palavra realizada estados

(da esquerda

vazia resultado e, obviamente,

geram saida vazia, entao a Maquina

de Moore process a como se fosse

urn Automate uma Maquina

formal da funcao de Moore e sugerida como cxercicio.

Finito, A definicao

EXEMPL023
Urn exemplo desenvolvimento

Maquina de Moore.
comum de aplicacao do conceito Lexicos de Maquina de Moore ou tradutores e
0

de Analisadores

de compiladores

de

linguagens em geraL Basicamente, urn analisador lexico e urn Automate Finito (em geral, deterministicol que identifica os componentes basicos da linguagem como, por exemplo, numeros, identificadores, separadores, Uma Maquina de Moore como urn Analisador Lexico e como segue: • • • urn estado final e associado a cada unidade lexica; cada estado final possui uma saida (definida pela Funcao descreve ou codifica a unidade lexica identificada; para os demais estados (nao-finais) a saida gerada
et.c,

de Saida) que vaz ia. 0

e a palavra

2.9.3

Equivalencia das Maquina de Moore e Mealy

A equivalencia dos dois modelos de Automate Finito com Saida nao e valida para a entrada vazia, Neste caso, enquanto a Maquina de Moore gera a palavra correspondente ao estado qualquer saida, pois nao executa demais casos, a equivalencia inicial, a Maquina tr ansicao alguma. de Mealy Entretanto, nao gera para os

pode ser facilmente

mostrada.

Teorema 2.31 Maquina de Moore ~ Maquina de Mealy.


Toda Maquina de Moore pode ser simulada entradas nao vazias. Prova: qualquer. Suponha Seja: MO por uma Maquina uma de Mealy, para

(2:,

Q, OMO, qo, F, ll, os),

Maquina

de Moore

uma Maquina

de Mealy onde a funcao

OME e definida

como segue

(suponha

urn estado de Q e a urn simbolo de

D:

2 . Linguagene
•••••••••• 0

Regulares

77

••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••

ao

(ao,uo)
Figura 2.32 Sirnulacao da Maquina de Moore (acima) usando a Maquina (abaixo ) de Mealy

a) oME(qe,

a)

(OMO(qQ, a), 0s(qQ)OS(OMO(qQ, a), OS(OMO(q, a)))

a)))

b) OME(q, a)

= (OMO(q,

Em b), e construida a funcao programa da Maquina de Mealy, a partir das funcoes de transicao e de saida da Maquina de Moore. 0 estado ~ introduzido em a) e referenciado somente na prime ira transicao a ser executada. Seu objetivo e garantir a geracao da saida referente ao estado inicial CJo de Moore (lernbre-se que Mealy necessita executar a transicao para gerar a saida), como ilustrado na Figura 2.32. Uma inducao em n > 0, prova que, ao reconhecer a entrada a1 ... an, se MO passa pelos estados qQ, q1, ... , qn e gera as saidas UQ, U1, ... , Un entao ME passa pelos estados qe, qQ, q1, ... , qn e gera as saidas UQu1, ... , un. 0 Teorema 2.32 Maquina de Mealy ~ Maquina de Moore. Toda Maquina de Mealy pode ser simulada por uma Maquina de Moore. Prova: Suponha ME = (I, Q, OME, qQ, F, il), uma Maquina de Mealy qualquer. Seja S(OME) a imagem da funcao programa OME restrita a componente da palavra de saida (ou seja, 0 conjunto de todas as saidas possiveis de ME). A construcao da Maquina de Moore:

-.................................................................................................................................................................................

78

Linguagens Formais e Autbmatos

- P. Blauth Menezes

"""

Figura 2.33 Maquina de Moore (abaixo) que simula uma Maquina

de Mealy (acim a)

MO =

(L.,

(0

S(OME))

U { (qQ,

£) }, OMO, (qQ, e), F X S(OME), f" OS)

correspondente determina, em geral, urn maior numero de estados que a maquina ME que esta sendo simulada. Isto e necessar io, pois se divers as transicoes com saidas diferentes atingem urn mesmo estado, este necessita ser simulado por diversos estados, urn para cada simbolo de saida, ou seja, em Moore os estados sao construidos como urn par ordenado, onde a segunda componente representa a palavra de saida, como ilustrado na Figura 2.33. Assim, as funcoes da Maquina de Moore podem ser construidas a partir de OME onde a funcao programa OMO e como segue: • para a em

L., se OME(qQ, a) = (q,

u), entao:

OMO(qQ, e), a) = (q, u)

para b em L. e para q em 0, se OME(q, b) = (p, v), entao, qi em 0 tais que OME(qi, ail = (q, Ui), tem-se que:

para ai em L. e para

............._

---------_

.. -

.................................................................................................................................................................................

2 - Linguagens

Regulares

79

(a,a)
Figura 2.34 Grafo da Maquina

(~,£)
de Mealy

Figura 2.35 Grafo da correspondente

Maquina de Moore

OMO(q, Uj), b)

= (p,
0

v)

e onde a funcao de saida Os e tal que, para


Os(q,

estado (q, u) de MO:

u»)

=U

Uma inducao em n, prova que, ao reconhecer a entrada al ... an, se ME passa pelos estados qQ, qi, , qn e gera as saidas Ul, ... , Un entao MO passa pelos estados (qQ, E), (ql, u-), , (qn, un) e gera as saidas £, Ul, ... , Un. 0 EXEMPLO 24 Mtiquina de Moore Simulando uma Maquina de Mealy.

Considere a Maquina de Mealy ME = ({ a, B}, {q, p}, OME, q, {q, p}, (a, ~}) que compacta os brancos de um texto onde a representa um simbolo qualquer do texto e ~ 0 simbolo branco, como ilustrado na Figura 2.34 (na etiqueta de uma transicao, a primeira componente representa 0 simbolo lido e a segunda a palavra gravada).
({ a, ~), Q, OMO, (q, E), F, {a, ~},

A Maquina de Moore construida conforme a prova do Teorema 2.32 e MO = os) tal que Q = F = {q, p} x {e, a, ~}, ilustrada na Figura 2.35 onde a segunda componente de cada estado representa a saida. 0

l:.i.~:?~.~?~~.~ ..~..~~.t?.~':.?:~~::~ ..!..?':!.r:.~!.~ ..:..r:.: .. ~!~.~~!.~.~~':.':~~~ .

2.10 Exercicios
2.1 Sobre as Linguagens Regulares:

a) Qual a importancia do seu estudo? b) Exemplifique suas aplicacoes (para os diversos forrnalismos); c) Voce imagina algum tipo de linguagem cujo algoritmo de reconhecimento seja mais eficiente que 0 das Regulares? E menos eficiente? Explique a sua resposta. 2.2 Desenvolva Automates Finitos Deterministicos seguintes linguagens sobre 2: = {a, b): a) {w b) {w que recon hecarn as

I w possui aaa como subpalavra} I 0 sufixo de w e aa} I w possui I 0 quinto


nurnero par de a e impar de b ou w possui numero par de be simbolo da direita para a esquerda de w

c) {w I w possui numero impar de a e b) d) {w e) {w


impar de a}

e a}

2.3 Desenvolva Automates Finitos Nao-Deterministicos, com ou sem movimentos vazios, que reconhecam as seguintes linguagens: a) sobre
0

alfabeto 2: = { a, b,c):
{w

I aa ou bbe subpalavra

e eccee sufixo de w}

b) sobre

b.l) {W1W2W1 I W2 e qualquer e I W1 I = 3) b.2) {w I 0 decimo simbolo da direita para a esquerda de w e a} b.3) {w I w possui igual mimero de simbolos a e b e (qualquer prefixo de w possui, no maximo, dois a a mais que b ou qualquer prefixo de w possui, no maximo, dois b a mais que a)} 2.4 Desenvolva Expressoes e Gramaticas seguintes linguagens sobre 2: = {a, b): Regulares que gerem as

alfabeto 2: = { a, b):

a) {w I w tern no maximo urn par de a como subpalavra e no maximo urn par de b como subpalavra} b) {w c) {w

I qualquer par de a antecede qualquer I w nao possui aba como subpalavra}

par de b)

1
.................................................................................................................................................................................

2 - Linguagens

Regulares

81

2.5 Represente a seguinte linguagem baseada em unidades lexicas da linguagem de programacao Pascal (ou alguma outra de seu domrnio), usando os formalismos Automate Finito Deterministico, Expressao Regular e Gr arnatica Regular: {w I w e nurnero inteiro ou w e numero linguagem Pascal} 2.6 Descreva em palavras Express6es Regulares: a) (aa + b)*(a+ bb) b) (b + ab)*(E+ a) c) (aa + bb + (aa + bb)(ab+ ba)(aa+ bb))* 2.7 Aplique 0 algoritmo de traducao de formalismo para Automate Finito: a) (ab + ba)*(aa+ bb)* b) ab(abb*+ baa*)*ba
2.8

real ou w e identificador

da

as

linguagens

geradas

pelas

seguintes

de Expressao Regular

Aplique os algoritmos de traducao de formalismos apresentados e, a partir da Expressao Regular (b + E)( + bb)*, realize as diversas etapas ate a gerar a Gramatica Regular correspondente (ER -7 AFE -7 AFN -7 AFD -7
GR).

2.9

Minimize os Automates Finitos ilustrados na Figura 2.36.

2.10 Por que pode-se afirmar que urn Automate Finito Deterministico sempre para (ao processar qualquer entrada)? 0 mesmo pode ser afirmado para 0 nao-deterministico? E com movimentos vazios? Em particular, no caso do Automate Finito com Movimentos Vazios, analise para a seguinte situacao de ciclo (suponha que q e p sao estados do automate):
8(q, E) = p 8(p, E) = q

2.11 Complete a prova referente ao teorema: a classe dos Automates Finitos com Movimentos Vazios e equivalente a classe dos Automates Finitos NaoDeterministicos. 2.12 Demonstre a equivalencia dos quatro tipos de Gramaticas Lineares. das Express6es Regulares

2.13 Demonstre as seguintes propriedades (suponha que r, set sao Express6es Regulates):
a)

Comutatividade r+s=s+r

da Uniiio,

....
,

82

Linguagens

Formais

e Aut8matos

- P. Blauth

Menezes

Figura 2.36 Aut6matos

finitos a serem minimizados

b)

Associatiuidade

da Uniiio . da Concatenacao,

(r + s) + I = r + (s + I) c) Niio-Comutatiuidade

rs = sr pode nao ser satisfeita


d)

Associatiuidade
(rs)1 = rtst)

da Concatenacao.
(d Esquerda e d Direita) da Concatenaciio sobre a Uniao,

e)

Distributiuidade
I(r + s) = tr + Is (r + s)1 = rt + st

f) Dupla Concatenaciio Sucessiua. (r*)*

r*

g) Outras Propriedades da Concatenactio Sucessiua. (r + £)* = r* (r*s*)* = (r + s)*

2.14

Prove que as seguintes linguagens nao sao Regulares:

a) {ww I w
b) {anbn I n

palavra de {a, b }* }

> 0}

······t···············································

2 - Linguagens

Regulares

83

2.15 Desenvolva urn algoritmo que elimine os estados inacessiveis de urn Automate Finito Deterministico. Urn est ado e dito inacessivel se for naoatingivel a partir do estado inicial. 2.16 Desenvolva algoritmos mais otimizados que os apresentados (e compare a eficiencia) para determinar se uma Linguagem Regular e vazia, finita ou infinita, usando as seguintes sugest6es: a) Vazia, eliminando os estados inacessiveis; b) Finita, combinando os algoritmos Lema do Bombeamento; de minirnizacao e
0

apresentado

no

c) Infinita, analisando a funcao programa do automate minimizado. 2.17 Como pode ser verificada a equivalencia de dois automates, algoritmo de minimizacao? 2.18 Defina formalmente de Mealy e de Moore. a funcao programa usando
0

estendida para as Maquinas

2.19 Desenvolva uma Maquina de Mealy e uma de Moore que realize a conversao da representacao de valores monetarios de d6lares para reais. Por exemplo, dado 0 valor US$25,010.59 na fita de entrada, deve ser gravado 0 valor R$25,010,59 na fita de saida (atencao para 0 uso da virgula e do ponto nos dois valores). Adicionalmente, 0 automate deve verificar se a entrada e urn valor monetario valido.
2.20

Considere

exemplo de dialogo apresentado para a Maquina de Mealy:


0

a) Desenvolva uma Maquina de Moore que realize

mesmo process amen to;

b) Usando 0 algoritmo que demonstra a equivalencia dos dois modelos de automate com saida construa a Maquina de Moore equivalente; c) Escolha uma das maquinas, e amplie 0 dialogo prevendo: • operacoes de modificacao e exclusao de inforrnacoes; • facilidade de help (opcao que fornece ao usuario inforrnacoes de ajuda de como proceder no dialogo, no ponto em que se encontra). 2.21 Modifique a definicao das Maquinas de Mealy e de Moore, como segue:

a) A saida

e restrita

a urn simbolo ou

palavra vazia;

b) Nao possui estados finais. Estas modificacoes alteram


0

poder computacional das maquinas?

2.22 Modifique a definicao das Maquinas de Mealy e de Moore, incluindo as facilidades de: a) Nao-determi nisrno;

......
Linguagens Formais e Auiomatos - P. Blauth Menezes

b) Movimentos vazios. Para cada caso acima, em relacao a equivalencia dos dois tip os de maquina, como fica a restricao referente a palavra vazia? Modifique 0 algoritmo possua saida, como segue:
2.23

de minirniz acao,

prevendo que

automate

a) Minimizacao da Maquina de Mealy; b) Minimizacao da Maquina de Moore. Desenvolva urn programa em computador que simule de qualquer Automate Finito Deterministico, como segue:
2.24
0

processamento

• •

entrada: funcao de transicao b, estado inicial, conjunto de estados finais e as palavras a serem processadas; saida: condicao de parada ACEITA/REJEITA e identificacao do estado de parada.

2.25 Os seguintes algoritmos tambern sao sugeridos para implement acao em computador: a) Traducao de AFN para AFD; b) 'I'raducao de AF£ para AFN; c) Traducao de ER para AF£; d) 'I'raducao de GR para AF£ equivalente; e) Minimizacao de AFD. Desenvolva urn algoritmo que gere em ordem lexicografica todas as palavras representadas por:
2.26

a) Uma Expressiio Regular qualquer; b) Uma Gramatica Regular qualquer.

+ -+ -+ -+

-+

e:

-+

Linguagens Livres do Contexto

A Classe das Linguagens Livres do Contexto ou Tipo 2 corrtern propriamente a Classe das Linguagens Regulares. Seu estudo e de fundamental importancia na informatica pois: • compreende urn universo mais amplo de linguagens (comparativamente com as regulares) tratando, adequadamente, questoes como parenteses balanceados, construcoes bloco-estruturadas, entre outras, tipicas de linguagens de programacao como Pascal, C, Algol, etc.; os algoritmos reconhecedores e geradores que implementam as Linguagens Livres do Contexto sao relativamente simples e possuem uma boa eficiencia; exemplos tipicos de aplicacoes dos conceitos e resultados referentes as Linguagens Livres do Contexto sao analisadores sintaticos, tradutores de linguagens e process adores de texto em geral.

.................................................................................................................................................................................

86

Linguagens Formais e Aut8matos

- P. Blauth Menezes

estudo da Classe das Linguagens Livres do Contexto e desenvolvido a partir de urn formalismo axiomatico ou gerador (gr amatica) e urn operacional ou reconhecedor (automate), como segue: a) Gramatica Livre do Contexto. Gramatica onde as regras definidas de forma mais livre que na Grarnatica Regular; b) Automata Automate de producao e analoga tipo pilha sao it do (a qual

com Pilha. Automate


Finito, adicionando

cuja

estrutura

basica auxiliar

uma

memoria

pode ser lid a ou gravada)

e a facilidade

de nao-deterrninismo.

3.1

Grnmatica Livre do Contexto


a partir das Grarnaticas

As Linguagens Livres do Contexto sao definidas Livres do Contexto.

Definicao 3.1 Gran'J.aticaLivre do Contexto.


Uma Gramatica Livre do Contexto (GLC) G e uma gr amatica: G

(V, T, P, S) A ..... a,
0
0

com a restricao de que qualquer regra de producao de P e da forma onde A e uma variavel de V e a uma palavra de (V u T)*. Portanto, uma Gramatica Livre do Contexto e uma gramatica esquerdo das producoes contern exatamente uma variavel.

onde

lado

Definicao 3.2 Linguagem Livre do Contexto ou Tipo 2.


Uma linguagem gerada e dita Linguagem

Livre do Contexto (LLC) ou Tipo 2 se for


0

por uma Grarnatica

Livre do Contexto. se deve ao fato de representar a mais

o nome
dos simbolos sendo

"Livre do Contexto"

geral

classe de linguagens cuja producao e da forma A ..... a. Ou seja, em uma derivacao, a var iavel A deriva a sem depender ("Livre") de qualquer analise que antecedem Assim, 3.1. ou sucedem A ("Contexto") na palavra Regular ate
0

que esta do momento

derivada.

claramente, as classes

toda Linguagem de linguagens

e Livre

Contexto. A relacao entre e ilustrada na Figura

estudadas

EXEMPLO 1 Linguagem Livre do Contexto - Duplo Balanceamento.


Considere a linguagem:

A seguinte

Grarnatica

Livre do Contexto:

.................................................................................................................................................................................

3 - Linguagens

Liores do Contexto

f57

Universo de Todas as Linguagens

Linguagens

Livre do Contexto

Figura 3_1 Relacao entre as classes de linguagens

G1 =

P 1 = ( S ~ aSb I

({ S), (a, b), P1, S), onde:

's ~

E)

tal que GERA(G1) = L1. Por exemplo, a palavra aabb pode ser gerada pela seguinte sequencia de derivacao:
S ::::} aSb ::::} aaSbb ::::} aaebb = aabb

Esta linguagem e urn exemplo classico e de fundamental importancia no estudo das Linguagens Livres do Contexto, pois permite estabelecer analogia entre anbn e linguagens que possuem duplo balanceamento como, por exemplo: a) Linguagens bloco-estruturadas do tipo BEGINnENDn b) Linguagens com pareriteses balance ados na forma (n)n EXEMPLO 2 Linguagem Livre do Contexto - Express8es Aritmeticas.

A linguagem L2 gerada pela Gramatica Livre do Contexto abaixo e composta de express6es aritmet.icas contendo colchetes balanceados, dois operadores e urn operando: G2 = ({ E ), { +, *, [, ], x}, P2, E), onde: P2 = {E ~ E+E I E*E I [E] I x} Por exemplo, a expressao [x+x]*x pode ser gerada pela seguinte sequencia de derivacao: E ::::}E*E ::::}[E]*E ::::}[E+E]*E ::::}[x+E]*E ::::}[x+x]*E ::::}[x+x]*x

E possivel gerar a mesma expressao com outra sequencia de derivacao? Quantas sequencias distintas sao possiveis? 0