Teoria da Computao e Linguagens Formais - Simone Domingues Prado - Apostila 02
Cursos: Bacharelado em Cincia da Computao e Bacharelado em Sistemas de InIormao Disciplinas: (1493A) Teoria da Computao e Linguagens Formais, (4623A) Teoria da Computao e Linguagens Formais e (1601A) Teoria da Computao Professora: Simone das Graas Domingues Prado e-mail: simonedpIc.unesp.br home-page: wwwp.Ic.unesp.br/~simonedp/discipl.htm
Apostila 02 Assunto: Linguagens Regulares
Objetivos: Estudar os autmatos Iinitos Estudar as expresses regulares Estudar as gramaticas regulares Estudar as linguagens regulares
Contedo: 1. Introduo 2. Autmato Finito Deterministico (AFD) 3. Autmato Finito no Deterministico (AFN) 4. Equivalncia de AFN e AFD 5. Reduo de estados de um autmato Iinito 6. Expresses Regulares 7. Gramatica Regular 8. Linguagens Regulares
- 2 - Teoria da Computao e Linguagens Formais - Simone Domingues Prado - Apostila 02 1. Introduo
Segundo a Hierarquia de Chomsky, a Linguagem Regular trata-se de uma linguagem mais simples, sendo possivel desenvolver algoritmos de reconhecimento ou de gerao de pouca complexidade, grande eIicincia e de Iacil implementao.
O estudo das Linguagens Regulares ou tipo 3 (Hierarquia de Chomsky) sera visto atraves de varios Iormalismos: - Operacional ou reconhecedor uso dos autmatos Iinitos (deterministico, no deterministico) - Axiomatico ou gerador gramatica regular - Denotacional expresso regular
2. Autmato Finito Determinstico (AFD)
Um autmato e um modelo abstrato de um computador digital composto por uma Iita de entrada (que contera a cadeia de entrada), uma Iita de saida (para mostrar a cadeia resultante), memoria auxiliar (que armazena temporariamente simbolos do alIabeto) e unidade de controle. A cadeia a ser tratada Iica armazenada na Iita de entrada de onde a unidade de controle l um simbolo por vez, pode mudar de estado dependendo das Iunes de transies deIinidas e escreve na memoria e na Iita de saida.
O autmato Iinito e um reconhecedor de linguagens simples que no possui memoria auxiliar, no altera a Iita (ela serve apenas para a leitura de simbolos), a unidade de controle anda na Iita somente em um sentido (da esquerda para a direita) e a Iita tem comprimento limitado, do tamanho da cadeia a ser analisada.
O autmato Iinito pode ser deterministico (AFD) e no deterministico (AFN). No AFD cada movimento e determinado de uma unica Iorma, enquanto que no AFN existem varias possibilidades de transio para um mesmo simbolo.
DeIinio 1 Um autmato finito determinstico e deIinido pela quintupla: M ( Q, E, o, q 0 , F)
Onde: Q conjunto Iinito de estados E alIabeto de entrada (ou conjunto Iinito de simbolos) o Iuno de transio (ou Iuno programa) deIinida por o: Q x E Q q 0 estado inicial ( q 0 e Q ) F conjunto de estados Iinais ( F e Q ) - 3 - Teoria da Computao e Linguagens Formais - Simone Domingues Prado - Apostila 02 Exemplo 01 Dado o Autmato abaixo, especiIique sua quintupla.
Exemplo 02 Desenhe o autmato sabendo que E a, b}, L w , w possui aa ou bb como subcadeia } e o autmato e dado por M (q 0 , q 1 , q 2 , q I }, a, b }, o, q 0 , q I }), onde o o esta representado na tabela abaixo.
o a b q 0 q 1 q 2
q 1 q I q 2
q 2 q 1 q I
q I q I q I
Figura 02. Autmato exemplo 02
Note que um autmato Iinito sempre para ao processar uma cadeia, ja que a entrada e Iinita e o conjunto de estado tambem. Ele pode parar em duas ocasies: ao aceitar uma cadeia ou ao rejeita-la. Quando ele termina de ler a cadeia e assume um estado Iinal a cadeia e aceita. Caso contrario, a cadeia e rejeitada.
- 4 - Teoria da Computao e Linguagens Formais - Simone Domingues Prado - Apostila 02
DeIinio 2: A linguagem associada a um autmato e o conjunto de todas as cadeias aceitas pelo autmato: L(M) w e E* : o*(q 0 , w) e F)
DeIinio 3: Dois Autmatos Finitos M 1 e M 2 so ditos equivalentes se, e somente se: L(M 1 ) L(M 2 ) Ou seja, reconhecem a mesma linguagem
Exemplo 03: Construa autmatos para reconhecer a linguagem L w1 : w e 0,1}*}
M (q 0 , q I }, 0,1}, o, q 0 , q I }), o(q 0 , 0) q 0 o(q 0 , 1) q 0 , q I }
M (q 0 , q I }, 0, 1 }, o, q 0 , q I }), o(q 0 , 0) q 0 o(q 0 , 1) q I
o(q I , 0) q 0
o(q I , 1) q I
DeIinio 4: A Iuno de transio (ou programa) estendida e denotada por: o*: Q x E* Q
- 5 - Teoria da Computao e Linguagens Formais - Simone Domingues Prado - Apostila 02
DeIinio 5: Uma linguagem L e dita regular se, e somente se existe um autmato Iinito deterministico M, tal que: L L(M).
Exemplo 05: a) Considere a linguagem: L w , w possui um numero par de a e b} Ma q 0 , q 1 , q 2 , q 3 }, a,b}, o, q 0 , q 0 })
Figura 04. Autmato exemplo 05(a)
b) Considere a linguagem: L w , w possui um numero impar de a e b} Mb q 0 , q 1 , q 2 , q I }, a,b}, o, q 0 , q I })
Figura 05. Autmato exemplo 05(b)
- 6 - Teoria da Computao e Linguagens Formais - Simone Domingues Prado - Apostila 02 3. Autmato Finito No Determinstico (AFN)
DeIinio 6: Um autmato finito no determinstico e deIinido pela quintupla: M ( Q, E, o, q 0 , F)
Onde: Q conjunto Iinito de estados E alIabeto de entrada, conjunto Iinito de simbolos o Iuno de transio ou Iuno programa deIinido por o: Q x E 2 Q
q 0 estado inicial ( q 0 e Q ) F conjunto de estados Iinais ( F e Q )
Obs: 2 Q representa os subconjuntos de Q.
Em alguns livros cita-se que um AFN pode ter movimentos vazios. Um movimento vazio e uma transio sem leitura de simbolo algum. Ai a Iuno transio e dada por: o: Q x E } 2 Q
Exemplo 06: Considere a linguagem: L w , w possui aa ou bb como subcadeia } O autmato Iinito no deterministico pode ser dado por: M q 0 , q 1 , q 2 , q I }, a,b}, o , q 0 , q I }} Onde o(q 0 , a) q 0, q 1 }
o(q 1 , a) q I }
o(q I , a) q I }
o(q 0 , b) q 0, q 2 }
o(q 2 , b) q I }
o(q I , b) q I }
Figura 06. Autmato exemplo 06
- 7 - Teoria da Computao e Linguagens Formais - Simone Domingues Prado - Apostila 02 Exemplo 07: Considere a linguagem: L w , w possui aaa como suIixo } O autmato Iinito no deterministico pode ser dado por: M q 0 , q 1 , q 2 , q I }, a,b}, o , q 0 , q I }} Onde o(q 0 , a) q 0, q 1 }
o(q 1 , a) q 2 }
o(q 0 , b) q 0 }
o(q 2 , a) q I }
Figura 07. Autmato exemplo 07
4. Equivalncia entre os autmatos AFD e AFN
Sabe-se que um autmato M 1 e equivalente a um autmato M 2 se , e somente se, L(M 1 ) L(M 2 ) pela DeIinio 2. Ento se pode transIormar um AFN em AFD para que a linguagem lida pelo AFN seja do tipo regular.
Seja M ( Q, E, o, q 0 , F) um AFN qualquer. Seja M` ( Q`, E, o`, q 0 ~, F`) um AFD construido a partir de M como segue: Q` e o conjunto de todas as combinaes, sem repeties, de estado de Q as quais so denotados por q 1 q 2 ...q n ~, onde q j pertence a Q para j em 1, 2, ..., n}. Note-se que a ordem dos elementos no distingue mais combinaes. Por exemplo, q 1 q 2 ~ q 2 q 1 ~; o` tal que o`(q 1 ...q n ~, a) p 1 ...p m ~ se e somente se, o(q 1 ,...q n },a) p 1 , ..., p m }. Ou seja, um estado de M` representa uma imagem dos estados de todos os caminhos alternativos de M; q 0 ~ estado inicial; F` conjunto de todos os estados q 1 q 2 ...q n ~ pertencentes a Q` tal que alguma componente q j
pertence a F, para j em 1,2,...,n}.
Algoritmo
1. Crie um graIo G d com um vertice rotulado por q 0 ~. IdentiIique-o como sendo o estado inicial. 2. Repita os seguintes passos ate que no Ialtem mais arestas: a. Tome um vertice q n1 , q n2 , ..., q nk ~ de G d que ainda no tenha aresta rotulada por a e E. b. Compute as Iunes transies estendidas: o*(q n1 ,a), o*(q n2 ,a), ...., o*(q nk ,a) c. Produza q m1 , q m2 , ..., q ml ~ como sendo a unio das Iunes transies estendidas calculadas no passo anterior d. Crie um vertice no Gd rotulado por q m1 , q m2 , ..., q ml ~ , caso esse vertice no tenha sido criado. e. Adicione a Gd a aresta de q n1 , q n2 , ..., q nk ~ ate q m1 , q m2 , ..., q ml ~ e rotule-a com o simbolo a e E
- 8 - Teoria da Computao e Linguagens Formais - Simone Domingues Prado - Apostila 02 3. Todo estado de Gd cujo rotulo contem algum qI e F (estados Iinais de AFN) e deIinido como sendo um estado Iinal do AFD 4. se o AFN aceita a cadeia vazia, Iaa o estado inicial do AFD ser um estado Iinal.
Exemplo 08: Considere o exemplo o autmato AFN do exemplo 07. M q 0 , q 1 , q 2 , q I }, a,b}, o , q 0 , q I }} o(q 0 , a) q 0, q 1 }
o(q 1 , a) q 2 }
o(q 0 , b) q 0 }
o(q 2 , a) q I }
Para construir um AFD tem-se: M` Q`, a,b}, o` , q 0 ~, F`}
vertice <q 0 > e simbolo a o(q 0 ~, a) <q 0, q 1 >, ja que o(q 0 , a) q 0, q 1 } vertice q 0 ~ e simbolo b o(q 0 ~, b) <q 0 >, ja que o(q 0 , b) q 0 }
vertice <q 0, q 1 > e simbolo a o(q 0, q 1 ~, a) <q 0, q 1, q 2 >, ja que o(q 0 , a) q 0, q 1 } e o(q 1 , a) q 2 }
vertice <q 0, q 1 > e simbolo b o(q 0, q 1 ~, b) <q 0 >, ja que o(q 0 , b) q 0 }
vertice <q 0, q 1, q 2 > e simbolo a o(q 0, q 1, q 2 ~, a) <q 0, q 1, q 2, q f >, ja que o(q 0 , a)q 0, q 1 }, e o(q 1 , a)q 2 }
e o(q 2 , a) q I }
vertice <q 0, q 1, q 2 > e simbolo b o(q 0, q 1, q 2 ~, b) <q 0 >, ja que o(q 0 , b) q 0 }
- 9 - Teoria da Computao e Linguagens Formais - Simone Domingues Prado - Apostila 02
vertice <q 0, q 1, q 2, q f > e simbolo a o(q 0, q 1, q 2, q I ~, a) <q 0, q 1, q 2, q f >, ja que o(q 0 , a)q 0, q 1 }, e o(q 1 , a)q 2 }
e o(q 2 , a) q I }
vertice <q 0, q 1, q 2, q f > e simbolo b o(q 0, q 1, q 2, q I ~, b) <q 0 >, ja que o(q 0 , b) q 0 }
F` q 0, q 1, q 2, q I ~}
Portanto o AFD, M` Q`, a,b}, o` , q 0 ~, F`}, a partir de AFN e:
Exemplo 09: Considere um AFN como segue: M q 0 , q 1 , q I }, 0,1}, o , q 0 , q I }} o(q 0 , 0) q 0, q I }
o(q I , 0) q 1 }
o(q 1 , 1) q 1 }
o(q 0 , 1) q I }
o(q I , 1) q 1 }
Para construir um AFD tem-se: M` Q`, 0,1}, o` , q 0 ~, F`}
- 10 - Teoria da Computao e Linguagens Formais - Simone Domingues Prado - Apostila 02 Q` q 0 ~} vertice <q 0 > e simbolo 0 o`(q 0 ~, 0) <q 0, q f >, ja que o(q 0 , 0) q 0, q I } vertice <q 0 > e simbolo 1 o`(q 0 ~, 1) <q f >, ja que o(q 0 , 1) q I
Q` q 0 ~, q 0, q I ~,
q I ~ } vertice <q 0, q f > e simbolo 0 o`(q 0, q I ~, 0) <q 0, q 1, q f >, ja que o(q 0 , 0) q 0, q I } e o(q I , 0) q 1 }
vertice <q 0, q f > e simbolo 1 o`(q 0, q I ~, 1) <q 1, q f >, ja que o(q 0 , 1) q I } e o(q I , 1) q 1 }
Q` q 0 ~, q 0, q I ~,
q I ~, q 0, q 1, q I ~, q 1, q I ~ } vertice <q f > e simbolo 0 o`(q I ~, 0) <q 1 >, ja que o(q I , 0) q 1 } vertice <q f > e simbolo 1 o`(q I ~, 1) <q 1 >, ja que o(q I , 1) q 1 }
Q` q 0 ~, q 0, q I ~,
q I ~, q 0, q 1, q I ~, q 1, q I ~, q 1 ~ } vertice <q 0, q 1, q f > e simbolo 0 o`(q 0, q 1, q I ~, 0) <q 0, q 1, q f >, ja que o(q 0 , 0) q 0, q I } e o(q I , 0) q 1 }
vertice <q 0, q 1, q f > e simbolo 1 o`(q 0, q 1, q I ~, 1) <q 1, q f >, ja que o(q 0 , 1) q I } , o(q I , 1) q 1 } e o(q 1 , 1) q 1 }
Q` q 0 ~, q 0, q I ~,
q I ~, q 0, q 1, q I ~, q 1, q I ~, q 1 ~ }
vertice <q 1, q f > e simbolo 0 o`(q 1, q I ~, 0) <q 1 >, ja que o(q 1 , 0) } e o(q I , 0) q 1 }
vertice <q 1, q f > e simbolo 1 o`(q 1, q I ~, 1) <q 1 >, ja que o(q 1 , 1) q 1 } e o(q I , 1) q 1 }
Q` q 0 ~, q 0, q I ~,
q I ~, q 0, q 1, q I ~, q 1, q I ~, q 1 ~ } vertice <q 1 > e simbolo 0 o`(q 1 ~, 0) <>, ja que o(q 1 , 0) }
vertice <q 1 > e simbolo 1 o`(q 1 ~, 1) <q 1 >, ja que o(q 1 , 1) q 1 }
Q` q 0 ~, q 0, q I ~,
q I ~, q 0, q 1, q I ~, q 1, q I ~, q 1 ~, ~} vertice <> e simbolo 0 o`(~, 0) <>, ja que o(, 0) }
vertice <> e simbolo 1 o`(~, 1) <>, ja que o(, 1) }
F` q 0, q I ~, q 1, q I ~, q 2, q I ~, q 3, q I ~} o`(q 0 ~, a) q 0 ,
q 1 ~ o`(q 0 ~, b) q 0, q 2 ~
o`(q 0, q 1 ~, a) q 0 ,
q 1 , q I ~
o`(q 0, q 1 ~, b) q 0, q 2 ~
o`(q 0, q 2 ~, a) q 0 ,
q 1 ~
o`(q 0, q 2 ~, b) q 0 ,
q 2 , q I ~
o`( q 0 ,
q 1 , q I ~, a) q 0 ,
q 1 , q I ~ o`( q 0 ,
q 1 , q I ~, b) q 0 ,
q 2 , q I ~ o`( q 0 ,
q 2 , q I ~, a) q 0 ,
q 1 , q I ~ o`( q 0 ,
q 2 , q I ~, b) q 0 ,
q 2 , q I ~ - 14 - Teoria da Computao e Linguagens Formais - Simone Domingues Prado - Apostila 02 5. Reduo de estados de um autmato finito
DeIinio 07: Um autmato minimo de uma Linguagem Regular L e um Autmato Finito Deterministico M (Q, E, o, q 0 , F) tal que L L(M) e que, para qualquer outro Autmato Finito Deterministico M` (Q`, E`, o`, q 0` , F`) tal que L L(M`), tem-se que #Q` ~ #Q.
Um autmato Finito a ser minimizado deve satisIazer aos seguintes pre-requisitos: 1. Deve ser Deterministico (AFD) 2. No pode ter estados inacessiveis (no atingiveis a partir do estado inicial) 3. A Iuno programa deve ser total (a partir de qualquer estado so previstas transies para todos os simbolos do alIabeto)
Caso o autmato no satisIaa algum dos pre-requisitos, e necessario gerar um autmato equivalente: 1. gerar um AFD equivalente 2. eliminar os estados inacessiveis e suas correspondentes transies 3. para transIormar a Iuno transio em total, e suIiciente introduzir um novo estado no-Iinal d e incluir as transies no previstas, tendo d como estado destino. Por Iim, incluir um ciclo em d para todos os simbolos do alIabeto.
Algoritmo de minimizao
Suponha um AFD M (Q, E, o, q 0 , F) que satisIaz aos pre-requisitos de minimizao. Os passos do algoritmo de minimizao so os seguintes:
1. TABELA. Construir uma tabela relacionando os estados distintos, onde cada par de estados ocorre somente uma vez.
2. MARCAO DOS ESTADOS TRIVIALMENTE NO EQUIVALENTES. Marcar todos os pares do tipo estado Iinal, estado no-Iinal}, pois obviamente, estados Iinais no so equivalentes a no-Iinais.
3. MARCAO DOS ESTADOS NO EQUIVALENTES. Para cada par q u , q v } no marcado e para simbolo a eE, suponha que o(q u , a) p u e o(q v , a) p v e: a. Se p u p v , ento q u e equivalente a q v para o simbolo a e no deve ser marcado; b. Se p u = p v e o par p u ,p v } no esto marcados, ento q u ,q v } e incluido em uma lista a partir de p u ,p v } para posterior analise; c. Se p u = p v e o par p u ,p v } esto marcados, ento: - q u ,q v } no e equivalente e deve ser marcado - se q u ,q v } encabea uma lista de pares, ento marcar todos pares da lista (recursivamente) - 15 - Teoria da Computao e Linguagens Formais - Simone Domingues Prado - Apostila 02 4. UNIFICAO DOS ESTADOS EQUIVALENTES. Os estados dos pares no marcados so equivalentes e podem ser uniIicados como segue: a. A equivalncia de estados e transitiva; b. pares de estados no Iinais equivalentes podem ser uniIicados como um unico estado no Iinal; c. Pares de estados Iinais equivalentes podem ser uniIicados como um unico estado Iinal; d. Se algum dos estados equivalentes e inicial, ento correspondente estado uniIicado e inicial
5. EXCLUSO DOS ESTADOS INUTEIS. Por Iim, os estados chamados inuteis devem ser excluidos. Um estado q e inutil se e no Iinal e a partir de q no e possivel atingir um esto Iinal. Deve-se reparar que o estado d (se incluido) sempre e inutil.
Exemplo 11: Considere um AFD como segue: M q 0 , q 1 , q 2 , q 3 , q 4 , q 5 }, a,b}, o , q 0 , q 0 , q 4 , q 5 }} o(q 0 , a) q 2 o(q 1 , a) q 1 o(q 2 , a) q 4 o(q 3 , a) q 5 o(q 0 , b) q 1 o(q 1 , b) q 0 o(q 2 , b) q 5 o(q 3 , b) q 4 o(q 4 , a) q 3 o(q 4 , b) q 2 o(q 5 , a) q 2 o(q 5 , b) q 3
Percebe-se que os pre-requisitos (1, 2 e 3) so satisIeitos. Ento se pode Iazer a minimizao. Para construir um AFM tem-se:
PASSO 1. TABELA Pode-se montar a tabela em qualquer Iormato, porem deve-se ater ao Iato de combinar todos os pares. Veja algumas situaes:
Opo 01 q 0
q 1
q 2
q 3
q 4
q 5
q 0 q 1 q 2 q 3 q 4 q 5
Opo 02 q 0
q 1
q 2
q 3
q 4
q 5
q 0 q 1 q 2 q 3 q 4 q 5
Opo 03 q 5
q 4
q 3
q 2
q 1
q 0
q 0 q 1 q 2 q 3 q 4 q 5
Opo 04 q 5
q 4
q 3
q 2
q 1
q 0
q 0 q 1 q 2 q 3 q 4 q 5
Nesta apostila iremos adotar a Opo 01
- 16 - Teoria da Computao e Linguagens Formais - Simone Domingues Prado - Apostila 02 PASSO 2. MARCAO DOS ESTADOS TRIVIALMENTE NO EQUIVALENTES. Marcar todos os pares do tipo estado Iinal, estado no-Iinal}, ou seja, Estados Iinais: q 0 , q 4 , q 5 } Estados no Iinais: q 1 , q 2 , q 3 } Ento, devem ser marcados, na tabela, os pares: q 0 , q 1 }, q 0 , q 2 }, q 0 , q 3 }, q 4 , q 1 }, q 4 , q 2 }, q 4 , q 3 }, q 5 , q 1 }, q 5 , q 2 }, q 5 , q 3 }
q 0
q 1 X q 2 X q 3 X q 4 X X X q 5 X X X q 0 q 1 q 2 q 3 q 4 q 5
PASSO 3. MARCAO DOS ESTADOS NO EQUIVALENTES Para isso, percorrem-se todos os pares no marcados na tabela, ou seja, q 0 , q 4 }, q 0 , q 5 }, q 1 , q 2 }, q 1 , q 3 }, q 3 , q 2 }, q 5 , q 4 } e veriIica se so ou no equivalentes.
Para o par: q 0 , q 4 } o(q 0 , a) q 2 o(q 4 , a) q 3 Iorma o par q 2 , q 3 }, q 2 = q 3 e o par no esta marcado(3.b) aguarde na lista o(q 0 , b) q 1 o(q 4 , b) q 2 Iorma o par q 1 , q 2 }, q 1 = q 2 e o par no esta marcado(3.b) aguarde na lista
Para o par: q 0 , q 5 } o(q 0 , a) q 2 o(q 5 , a) q 2 Iorma o par q 2 , q 2 }, q 2 q 2 e o par e descartado (3.a) o(q 0 , b) q 1 o(q 5 , b) q 3 Iorma o par q 1 , q 3 }, q 1 = q 3 e o par no esta marcado(3.b) aguarde na lista
Para o par: q 1 , q 2 } o(q 1 , a) q 1 o(q 2 , a) q 4 Iorma o par q 1 , q 4 }, q 1 = q 4 e o par esta marcado (3.a) marca q 1 , q 2 }
o(q 1 , b) q 0 o(q 2 , b) q 5 ....
Como vai marcar q 1 , q 2 } e o par q 0 , q 4 } estava esperando que q 1 , q 2 } Iosse marcado, ento sero marcados os dois pares: q 1 , q 2 } e q 0 , q 4 }.
q 0
q 1 X q 2 X ! q 3 X q 4 ! X X X q 5 X X X q 0 q 1 q 2 q 3 q 4 q 5
Para o par: q 1 , q 3 } o(q 1 , a) q 1 o(q 3 , a) q 5 Iorma o par q 1 , q 5 }, q 1 = q 5 e o par esta marcado (3.a) marca q 1 , q 3 }
o(q 1 , b) q 0 o(q 3 , b) q 4 .... - 17 - Teoria da Computao e Linguagens Formais - Simone Domingues Prado - Apostila 02 Como vai marcar q 1 , q 3 } e o par q 0 , q 5 } estava esperando que q 1 , q 3 } Iosse marcado, ento sero marcados os dois pares: q 1 , q 3 } e q 0 , q 5 }.
q 0
q 1 X q 2 X X q 3 X ! q 4 X X X X q 5 ! X X X q 0 q 1 q 2 q 3 q 4 q 5
Para o par: q 3 , q 2 } o(q 2 , a) q 4 o(q 3 , a) q 5 Iorma o par q 4 , q 5 }, q 4 = q 5 e o par no esta marcado(3.b) aguarde na lista
o(q 2 , b) q 5 o(q 3 , b) q 4 Iorma o par q 5 , q 4 }, q 5 = q 4 e o par no esta marcado(3.b) aguarde na lista
Para o par: q 5 , q 4 } o(q 5 , a) q 2 o(q 4 , a) q 3 Iorma o par q 2 , q 3 }, q 2 = q 3 e o par no esta marcado(3.b) aguarde na lista o(q 5 , b) q 3 o(q 4 , b) q 2 Iorma o par q 3 , q 2 }, q 3 = q 2 e o par no esta marcado(3.b) aguarde na lista
PASSO 4. UNIFICAO DOS ESTADOS EQUIVALENTES Foram veriIicados todos os pares e os pares q 3 , q 2 } e q 5 , q 4 } Iicaram ser serem marcados. Portanto: (1) como q 3 , q 2 } no Ioi marcado, ento q 3 e equivalente a q 2 . Cria-se o estado q 23 para uniIica-los. (2) como q 5 , q 4 } no Ioi marcado, ento q 5 e equivalente a q 4 . Cria-se o estado q 45 para uniIica-los.
PASSO 5. EXCLUSO DOS ESTADOS INUTEIS Sero excluidos os estados: q 2 , q 3 , q 4 , q 5
Ento: M` q 0 , q 1 , q 23 , q 45 }, a,b}, o , q 0 , q 0 , q 45 }} o(q 0 , a) q 23 o(q 1 , a) q 1 o(q 23 , a) q 45 o(q 45 , a) q 23 o(q 0 , b) q 1 o(q 1 , b) q 0 o(q 23 , b) q 45 o(q 45 , b) q 23
- 18 - Teoria da Computao e Linguagens Formais - Simone Domingues Prado - Apostila 02 PASSO 1. TABELA q 0
q 1
q 2
q 3
q 4
q 0 q 1 q 2 q 3 q 4
PASSO 2. MARCAO DOS ESTADOS TRIVIALMENTE NO EQUIVALENTES. Marcar todos os pares do tipo estado Iinal, estado no-Iinal}, ou seja, Estados Iinais: q 4
Estados no Iinais: q 0 , q 1 , q 2 , q 3 } Ento deve marcar na tabela os pares: q 4 , q 0 }, q 4 , q 1 }, q 4 , q 2 }, q 4 , q 3 } q 0
q 1
q 2
q 3
q 4 X X X X q 0 q 1 q 2 q 3 q 4
PASSO 3. MARCAO DOS ESTADOS NO EQUIVALENTES Para isso deve percorrer todos os pares no marcados na tabela, ou seja, q 0 , q 1 }, q 0 , q 2 }, q 0 , q 3 }, q 1 , q 2 }, q 1 , q 3 }, q 2 , q 3 } e veriIicar se so no equivalentes.
O par: q 0 , q 1 } o(q 0 , 0) q 1 o(q 1 , 0) q 2 Iorma o par q 1 , q 2 }, q 1 = q 2 e o par no esta marcado(3.b) aguarde na lista o(q 0 , 1) q 3 o(q 1 , 1) q 4 Iorma o par q 3 , q 4 }, q 3 = q 4 e o par esta marcado (3.a) marcar q 0 , q 1 }
q 0
q 1 ! q 2
q 3
q 4 X X X X q 0 q 1 q 2 q 3 q 4
O par: q 0 , q 2 } o(q 0 , 0) q 1 o(q 2 , 0) q 1 Iorma o par q 1 , q 1 }, q 1 q 1 e o par e descartado (3.a) o(q 0 , 1) q 3 o(q 2 , 1) q 4 Iorma o par q 3 , q 4 }, q 3 = q 4 e o par esta marcado (3.a) marcar q 0 , q 2 }
q 0
q 1 X q 2 ! q 3
q 4 X X X X q 0 q 1 q 2 q 3 q 4
- 19 - Teoria da Computao e Linguagens Formais - Simone Domingues Prado - Apostila 02 O par: q 0 , q 3 } o(q 0 , 0) q 1 o(q 3 , 0) q 2 Iorma o par q 1 , q 2 }, q 1 = q 2 e o par no esta marcado(3.b) aguarde na lista o(q 0 , 1) q 3 o(q 3 , 1) q 4 Iorma o par q 3 , q 4 }, q 3 = q 4 e o par esta marcado (3.a) marcar q 0 , q 3 }
q 0
q 1 X q 2 X q 3 ! q 4 X X X X q 0 q 1 q 2 q 3 q 4
O par: q 1 , q 2 } o(q 1 , 0) q 2 o(q 2 , 0) q 1 Iorma o par q 2 , q 1 }, q 2 = q 1 e o par no esta marcado(3.b) aguarde na lista o(q 1 , 1) q 4 o(q 2 , 1) q 4 Iorma o par q 4 , q 4 }, q 4 q 4 e o par e descartado (3.a)
O par: q 1 , q 3 } o(q 1 , 0) q 2 o(q 3 , 0) q 2 Iorma o par q 2 , q 2 }, q 2 q 2 e o par e descartado (3.a) o(q 1 , 1) q 4 o(q 3 , 1) q 4 Iorma o par q 4 , q 4 }, q 4 q 4 e o par e descartado (3.a)
O par: q 2 , q 3 } o(q 2 , 0) q 1 o(q 3 , 0) q 2 Iorma o par q 1 , q 2 }, q 1 = q 2 e o par no esta marcado(3.b) aguarde na lista o(q 2 , 1) q 4 o(q 3 , 1) q 4 Iorma o par q 4 , q 4 }, q 4 q 4 e o par e descartado (3.a)
PASSO 4. UNIFICAO DOS ESTADOS EQUIVALENTES Foram veriIicados todos os pares e os pares q 3 , q 2 } e q 1 , q 2 } e q 1 , q 3 } Iicaram ser serem marcados. Portanto: (1) como q 3 , q 2 } no Ioi marcado, ento q 3 e equivalente a q 2 . (2) como q 1 , q 2 } no Ioi marcado, ento q 1 e equivalente a q 2 . (3) como q 1 , q 3 } no Ioi marcado, ento q 1 e equivalente a q 3 . Ento q 1 e equivalente a q 2 que e equivalente a q 3 . Cria-se o estado q 123 para uniIica-los.
PASSO 5. EXCLUSO DOS ESTADOS INUTEIS Sero excluidos os estados: q 1 , q 2 , q 3
- 20 - Teoria da Computao e Linguagens Formais - Simone Domingues Prado - Apostila 02 6. Expresses Regulares
A expresso regular e uma maneira de descrever os conjuntos regulares. Usa-se a expresso regular em construo de compiladores, editores, sistemas operacionais, protocolos, etc.
Trata-se de um Iormalismo denotacional, tambem considerado gerador, pois se pode inIerir como construir ('gerar) as palavras de uma linguagem.
Uma expresso regular e deIinida a partir de conjuntos basicos e operaes de concatenao e unio.
DeIinio 08: Uma Expresso Regular (ER) sobre um alIabeto E e deIinida como: a) u (l-se phi) e uma ER e denota uma linguagem vazia b) e uma ER e denota a linguagem contendo exclusivamente a palavra vazia, ou seja, } c) x ( simbolo do alIabeto E ) e uma ER e denota a linguagem contendo a palavra x} d) se r e s so ER e denotam as linguagens R e S, respectivamente, ento d.1) (r) e uma ER d.2) (r s) e uma ER e denota a linguagem R S d.3) (r . s) e uma ER e denota a linguagem RS uv , u e R e v e S} d.4) r* e uma ER e denota a linguagem R*
OBS: 1. a concatenao sucessiva (*) tem precedncia sobre a concatenao (.) e a unio () 2. a concatenao tem precedncia sobre a unio.
Se r e s so ER e denotam as linguagens R e S, respectivamente, ento a) L( r s ) L( r ) L( s ) b) L( r . s ) L( r ) . L( s ) ou L( r s ) L( r ) L( s ) c) L(( r )) L( r ) d) L( r* ) ( L( r ) )*
Exemplo 13: Seja L a n b m , n 0, m 0}, ento L , a, b, aa, bb, ab, aab ...} Considere as Linguagens: L 1 a} L 2 b} L 3 a k , k 0} L 4 b l , l 0} L 5 a k b l , k 0, l 0} As linguagens L 1 e L 2 so conjuntos sobre o E a,b} e por deIinio (8.c) e uma ER. As linguagens L 3 e L 4 so obtidas por concatenao sucessiva, ou seja, L 3 L 1 * e L 4 L 2 * e portanto so ER (deIinio 8.d.4). A linguagem L 5 e uma ER obtida pela concatenao de L 3 e L 4 (deIinio 8.d.3). Assim, L a n b m , n 0, m 0} pode ser denotada pela ER a*b* - 21 - Teoria da Computao e Linguagens Formais - Simone Domingues Prado - Apostila 02 Outros exemplos de ER e suas linguagens:
ER Linguagem representada aa Somente a cadeia aa ba* Cadeias que iniciam com b, seguida por zero ou mais a (ab)* Todas as cadeias sobre a,b} (ab)*aa(ab)* Todas as cadeias contendo aa como subcadeia a*ba*ba* Todas as cadeias contendo exatamente dois b (ab)*(aabb) Todas as cadeias que terminam com aa ou bb (a )(bba)* Todas as cadeias que no possuem dois a consecutivos
As principais leis algebricas das ER so apresentadas a seguir. Sejam R, S, T trs ER quaisquer. Ento: (1) Associatividade: - da unio: (R S) T R (S T) - da concatenao: (R . S) . T R . (S . T) (2) Comutatividade: - da unio: R S S R - da concatenao: no se aplica (3) Elemento neutro: - da unio: R u u R R - da concatenao: u . R R . u R (4) Distribuio da concatenao sobre a unio: - esquerda: R . ( S T ) R.S R.T - direita: (R S) . T R.T S.T
Teorema 01: Se r e uma Expresso Regular (ER), ento L(r) e uma Linguagem Regular.
Prova: Por deIinio, uma linguagem e Regular se, e somente se, e possivel construir uma AF (deterministico ou no), que reconhea a linguagem. a) Base da induo: seja r uma ER com zero operador. Ento se tem: r u (linguagem vazia) r (linguagem contendo exclusivamente a palavra vazia, ou seja, }) r x ( x e E ) Com os Autmatos Finitos: M 1 q 0 }, u , o 1 , q I , u } M 2 q I }, u , o 2 , q I , q I } } M 3 q 0 , q I }, x} , o 3 , q 0 , q I }}
- 22 - Teoria da Computao e Linguagens Formais - Simone Domingues Prado - Apostila 02
Figura 09. Base de induo
b) Hiptese de Induo: Seja r uma ER com ate n (n ~ 0) operadores. Suponha que e possivel deIinir um AF que aceita a linguagem gerada por r;
c) Passo da Induo: Seja r uma ER com (n1) operadores. Ento r pode ser representada por um dos seguintes casos, onde r 1 e r 2 possuem conjuntamente no maximo n operadores: r r 1 r 2
r r 1 r 2
r r 1 * Portanto por hipotese de induo e possivel construir os autmatos: M 1 Q 1 , E 1 , o 1 , q 01 , q I1 }} e M 2 Q 2 , E 2 , o 2 , q 02 , q I2 }} Tais que L(M 1 ) L(r 1 ) e L(M 2 ) L(r 2 ).
Os AFs, que aceitam a linguagem L(r), para cada caso, so como segue: c.1) r r 1 r 2 M Q 1 Q 2 , E 1 E 2 , o, q 0 , q I }} (vide Figura 10) c.2) r r 1 r 2 M Q 1 Q 2 , E 1 E 2 , o, q 01 , q I2 }} (vide Figura 11) c.3) r r 1 *
M Q 1 q 0 , q I }, E 1 , o, q 0 , q I }} (vide Figura 12)
Figura 10. Adio de expresses regulares
Figura 11. Multiplicao de expresses regulares
qo q I qo q I
M1 M2 M3 x - 23 - Teoria da Computao e Linguagens Formais - Simone Domingues Prado - Apostila 02
Figura 12. Concatenaes sucessivas de expresses regulares
7. Gramtica Regular
DeIinio 09: Seja G (V, T, P, S) uma gramtica e sejam A e B elementos de V e w uma palavra de T*. Ento G e uma: (a) Gramatica Linear Direita (GLD) se todas as regras de produo so da Iorma: A w B ou A w (b) Gramatica Linear Esquerda (GLE) se todas as regras de produo so da Iorma: A B w ou A w (c) Gramatica Linear Unitaria Direita (GLUD) se todas as regras de produo so como na linear direita e, adicionalmente ,w, 1 (d) Gramatica Linear Unitaria Esquerda (GLUE) se todas as regras de produo so como na linear esquerda e, adicionalmente ,w, 1
Exemplo 14: (a) G (S}, x, y}, P, S) P S xyS, S x} Assim, G e uma GLD
(b) G (S 1 , S 2 , S 3 }, a, b}, P, S 1 ) P S 1 S 2 ab, S 2 S 2 ab , S 3 , S 3 a } Assim, G e uma GLE
(c) G (S, A, B}, a, b}, P, S) P S A, A aB, , B Ab } Assim, G no e Linear
DeIinio 10: Uma Gramtica Regular e qualquer Gramatica Linear
- 24 - Teoria da Computao e Linguagens Formais - Simone Domingues Prado - Apostila 02
Teorema 02: Se L e uma linguagem gerada por uma Gramatica Regular, ento L e uma Linguagem Regular.
Prova: Para mostrar que uma linguagem e regular, e suIiciente construir um AF que a reconhea. Suponha G ( V, T, P, S) uma GLUD. Ento o AF M Q, E , o , q 0 , F} com: Q V q I } E T q 0 S F q I } o, como na tabela abaixo: Tipo de Produo Transio Gerada A o(A, ) q I
A a o(A, a) q I
A B o(A, ) B A aB o(A, a) B Simula as derivaes de G, ou seja, L(G) L(M).
A demonstrao que L(G) L(M) e verdade de Iato, esta no numero de derivaes. Seja o elemento de (T V)* e w elemento de T*, ento: (a) base de induo. Suponha S 1 o, ento, se: (a .1.) o , existe uma regra S e assim para o AFM, o(S, ) q I
(a .2.) o a, existe uma regra S a e assim para o AFM, o(S, a) q I (a .3.) o A, existe uma regra S A e assim para o AFM, o(S, ) A (a .4.) o aA, existe uma regra S aA e assim para o AFM, o(S, a) A
(b) hipotese de induo. Suponha que S n o, n ~ 1, tal que, se: (b.1.) o w, ento o*(S, w) q I
(b.2.) o wA, ento o*(S, w) A
(c) passo da induo. Suponha que S n1 o. Ento ocorre a hipotese (b.2.) e S n wA 1 o (c.1.) o w, existe uma regra A e assim o*(S, w) o(o*(S, w),) o(A, ) q I (c.2.) o wb, existe uma regra A b e assim o* (S, wb) o(o* (S, w),b) o(A, b) q I (c.3.) o wB, existe uma regra A B e assim o* (S, w) o(o* (S, w),) o(A, ) B
(c.4.) o wbB, existe uma regra A bB e assim o* (S, wb) o(o* (S, w),b) o(A, b) B
- 25 - Teoria da Computao e Linguagens Formais - Simone Domingues Prado - Apostila 02 Exemplo 15: Considere a GLUD, G (S, A, B}, a,b}, P, S), onde P e: S aA A bB, B aA O AF M que reconhece a linguagem gerada por G e: M (S,A,B, q I }, a,b}, o , S, q I }), tal que o e dada na tabela abaixo: Produo Transio Gerada S aA o(S, a) A A bB o(A, b) B A o(A, ) q I
B aA o(B, a) A
Teorema 03: Se L e uma linguagem Regular, ento existe uma Gramatica Regular que gera L.
Prova: Se L e uma Linguagem Regular, ento existe um AFN M Q, E , o , q 0 , F} tal que L(M) L. A ideia central da demonstrao e construir uma GLD G a partir de M tal que L(G) L(M). Ento G (V, T, P, S) tal que: V Q S} e T E P e construido como segue:
Transio Tipo de Produo - S q 0
- q I
o( q i , a) q k q i a q k
Suponha w elemento de E* a) base de induo: seja w tal que seu comprimento seja zero (,w,0). Ento a cadeia vazia pertence linguagem L(M), logo q 0 e um estado Iinal e assim q 0
S q 0
b) hipotese de induo. Seja w tal que ,w, n (n > 1) e o*(q 0 , w) q. Ento b.1) q no e estado Iinal, ento S wq b.2) q e estado Iinal, ento S wq w
c) Passo de induo. Seja w tal que ,wa, n1 e o*(q 0 , wa) p. Ento o(o*(q 0 , w),a) p. Portanto ocorre somente a hipotese b.1 acima e se: c.1) p no e estado Iinal, ento S n wq 1 wap c.2) p e estado Iinal, ento S n wq 1 wap 1 wa
- 26 - Teoria da Computao e Linguagens Formais - Simone Domingues Prado - Apostila 02 Exemplo 16: Seja M (q 0, q 1, q 2 }, a,b,c}, o , q 0 , q 0, q 1, q 2 }) Ento G (q 0, q 1, q 2 , S}, a,b,c}, S, P), onde P e como a tabela abaixo:
Transio Tipo de Produo - S q 0
- Q 0
- Q 1
- Q 2
o( q 0 , a) q 0 Q 0 a q 0
o( q 0 , b) q 1 Q 0 b q 1
o( q 1 , b) q 1 Q 1 b q 1
o( q 1 , c) q 2 Q 1 c q 2
o( q 2 , c) q 2 Q 2 c q 2
8. Linguagens Regulares
Tm-se varios caminhos para descrever linguagens regulares: AFD, AFN, ER e gramaticas regulares. Algumas conexes entre esses conceitos Ioram deIinidas nesta apostila atraves de teoremas. Foram vistas as transIormaes de ER em Autmatos Finitos (4), Autmatos Finitos em Gramaticas Regulares (5), Gramaticas em Autmatos Finitos (3). As outras transIormaes podem ser encontradas nos livros de ReIerncia.
Existem algumas questes sobre linguagens regulares que necessitam analise: (1) Como determinar se uma linguagem e regular (2) Como veriIicar se uma linguagem regular e inIinita ou Iinita (ou ate mesmo vazia) (3) possivel analisar duas linguagens regulares e concluir se so iguais ou diIerentes (4) A classe das linguagens regulares e Iechada para operaes de unio, concatenao e interseco
- 27 - Teoria da Computao e Linguagens Formais - Simone Domingues Prado - Apostila 02
Lema do bombeamento
Se L e uma Linguagem regular, ento existe uma constante n tal que para qualquer palavra w de L onde , w , > n, w pode ser deIinida como w uvz onde , uv , s n, , v , > 1 e para todo i > 0, uv i z e palavra de L.
8.1. Linguagens regulares e no regulares
Para mostrar que uma linguagem e regular e suIiciente representa-la usando um dos Iormalismos apresentados (AF, ER, GR), ja a prova de que ela no e regular necessita analise caso a caso. Uma Iorma e usar o lema do Bombeamento.
Exemplo 17: Seja a linguagem L, no regular, sobre a,b} sendo que L w , w possui o mesmo numero de simbolos a e b}
A prova que L no e regular e usando o lema do bombeamento e por absurdo.
Suponha L regular, ento existe um AFD M com n estados que aceita L. Seja w a n b n
Pelo lema do bombeamento, w pode ser escrita como w uvz, so que e um absurdo, ja que como ,uv, s n, uv e composta exclusivamente por simbolos a . Neste caso, por exemplo, uv 2 z no pertence a L, pois no possui o mesmo numero de simbolos a e b.
Para n 4, w aabb 1 caso: u a, v a, z bb, ,uv, ,aa, 2 s 4, mas aa 2 bb no pertence a L 2 caso: u aa, v b, z b, ,uv, ,aab, 3 s 4, mas aab 2 b no pertence a L
8.2. Linguagem regular vazia, finita ou infinita
Teorema 04: Se L e uma linguagem Regular aceita por um AF M com n estados, ento L e: a.) vazia se, e somente se, M no aceita qualquer palavra w tal que , w , n b.) Iinita se, e somente se, M no aceita uma palavra w tal que n s , w , 2n c.) inIinita se, e somente se, M aceita uma palavra w tal que n s , w , 2n
Exemplo 18: Considere o autmato M (q 0, q 1, q 2 }, a,b}, o , q 0 ,
q 2 }) com as Iunes de transies deIinidas abaixo: o(q 0 , a) q 1 , o(q 1 , a) q 2 , o(q 2 , b) q 0 . A linguagem reconhecida pelo autmato M e inIinita, ja que o autmato aceita uma palavra w tal que n s , w , 2n, ou seja 3 s , w , 6 com w aabaa com comprimento 5. - 28 - Teoria da Computao e Linguagens Formais - Simone Domingues Prado - Apostila 02 8.3. Igualdade de linguagens
Teorema 05: Se M 1 e M 2 so autmatos Iinitos, ento existe um algoritmo para determinar se L(M 1 ) L(M 2 ).
Pela deIinio 3 viu-se que se conseguirmos encontrar M 1 e M 2 equivalentes, L(M 1 ) L(M 2 ). Ento existe um algoritmo para determinar se L(M 1 ) L(M 2 ) como os de reduo de estados, transIormao de AFN para AFD.
8.4. Operaes fechadas sobre as linguagens regulares
Teorema 06: A classe das linguagens regulares e Iechada para as seguintes operaes: unio, concatenao, complemento e interseco.
Diz-se que um conjunto e Iechado sobre uma operao se o elemento obtido coma aplicao da operao pertence ao conjunto.
8.4.1. Fechamento para a unio
Se L 1 e regular ento existe um AFD M 1 Q 1 , E 1 , o 1 , q 01 , F 1 }, tal que L(M 1 ) L 1
Se L 2 e regular ento existe um AFD M 2 Q 2 , E 2 , o 2 , q 02 , F 2 }, tal que L(M 2 ) L 2
Se Ior possivel construir um AFD M 3 , tal que L(M 3 ) (L 1 L 2 ) , ento L 1 L 2 e regular e a prova esta Ieita.
Seja M 3 Q 3 , E 3 , o 3 , q 03 , F 3 }, ento: Q 3 (q i , q j ); q i e Q 1 e q j e Q 2 } E 3 E 1 E 2
o 3 ((q i ,q j ),a) (o 1 (q i ,a), o 2 (q j ,a)) q 03 ( q 01 ,q 02 ) F 3 (q i ,q j ); q i e F1 ou q j e F2}
- 29 - Teoria da Computao e Linguagens Formais - Simone Domingues Prado - Apostila 02 Exemplo 19: L1 aw: w e a,b}*} L2 wa: w e a,b}*}
Ento M 1 q 0 , q 1 , q 2 }, a,b}, o 1 , q 0 , q 1 }} Com o 1 (q 0 , a) q 1 , o 1 (q 0 , b) q 2 , o 1 (q 1 , a) q 1 , o 1 (q 1 , b) q 1 , o 1 (q 2 , a) q 2 , o 1 (q 2 , b) q 2 .
Ento M 2 q 3 , q 4 }, a,b}, o 1 , q 3 , q 4 }} Com o 2 (q 3 , a) q 4 , o 2 (q 3 , b) q 3 , o 2 (q 4 , a) q 4 , o 2 (q 4 , b) q 3 .
Assim o M 3 Q 3 , E 3 , o 3 , q 03 , F 3 } sera Q 3 (q i , q j ); q i e Q 1 e q j e Q 2 } (q 0 , q 3 ), (q 0 , q 4 ), (q 1 , q 3 ), (q 1 , q 4 ), (q 2 , q 3 ), (q 2 , q 4 )} E 3 E 1 E 2 a, b} q 03 (q 1 ,q 3 ) F 3 (q i ,q j ); q i e F1 ou q j e F2} (q 1 , q 3 ) (q 1 , q 4 ), (q 0 , q 4 ), (q 2 , q 4 )}
o 3 ((q i ,q j ),a) (o 1 (q i ,a), o 2 (q j ,a)), ento se tem: o 3 ((q 0 , q 3 ), a) (o 1 (q 0 , a), o 2 (q 3 , a)) (q 1 , q 4 ) o 3 ((q 0 , q 3 ), b) (o 1 (q 0 , b), o 2 (q 3 , b)) (q 2 , q 3 ) o 3 ((q 0 , q 4 ), a) (o 1 (q 0 , a), o 2 (q 4 , a)) (q 1 , q 4 ) o 3 ((q 0 , q 4 ), b) (o 1 (q 0 , b), o 2 (q 4 , b)) (q 2 , q 3 ) o 3 ((q 1 , q 3 ), a) (o 1 (q 1 , a), o 2 (q 3 , a)) (q 1 , q 4 ) o 3 ((q 1 , q 3 ), b) (o 1 (q 1 , b), o 2 (q 3 , b)) (q 1 , q 3 ) o 3 ((q 1 , q 4 ), a) (o 1 (q 1 , a), o 2 (q 4 , a)) (q 1 , q 4 ) o 3 ((q 1 , q 4 ), b) (o 1 (q 1 , b), o 2 (q 4 , b)) (q 1 , q 3 ) o 3 ((q 2 , q 3 ), a) (o 1 (q 2 , a), o 2 (q 3 , a)) (q 2 , q 4 ) o 3 ((q 2 , q 3 ), b) (o 1 (q 2 , b), o 2 (q 3 , b)) (q 2 , q 3 ) o 3 ((q 2 , q 4 ), a) (o 1 (q 2 , a), o 2 (q 4 , a)) (q 2 , q 4 ) o 3 ((q 2 , q 4 ), b) (o 1 (q 2 , b), o 2 (q 4 , b)) (q 2 , q 3 )
8.4.2. Fechamento para a interseo
Se L 1 e regular ento existe um AFD M 1 Q 1 , E 1 , o 1 , q 01 , F 1 }, tal que L(M 1 ) L 1
Se L 2 e regular ento existe um AFD M 2 Q 2 , E 2 , o 2 , q 02 , F 2 }, tal que L(M 2 ) L 2
Se Ior possivel construir um AFD M 3 , tal que L(M 3 ) (L 1 L 2 ) , ento L 1 L 2 e regular. - 30 - Teoria da Computao e Linguagens Formais - Simone Domingues Prado - Apostila 02 Seja M 3 Q 3 , E 3 , o 3 , q 03 , F 3 }, ento: Q 3 (q i , q j ); qi e Q1 e qj e Q2} E 3 E 1 E 2
o 3 ((qi,qj),a) (o 1 (qi,a), o 2 (qj,a)) q 03 ( q 01 ,q 02 ) F 3 (qi,qj); qi e F1 e qj e F2}
Exemplo 20: L1 aw: w e a,b}*} e L2 wa: w e a,b}*}
Assim o M 3 Q 3 , E 3 , o 3 , q 03 , F 3 } sera Q 3 (q i , q j ); q i e Q 1 e q j e Q 2 } (q 0 , q 3 ), (q 0 , q 4 ), (q 1 , q 3 ), (q 1 , q 4 ), (q 2 , q 3 ), (q 2 , q 4 )} E 3 E 1 E 2 a, b} q 03 (q 1 ,q 3 ) F 3 (q i ,q j ); q i e F1 e q j e F2} (q 1 , q 4 )} o 3 ((q i ,q j ),a) (o 1 (q i ,a), o 2 (q j ,a)), como no exemplo anterior para unio.
8.4.3. Fechamento sobre concatenao
Se L 1 e regular ento existe um AFD M 1 Q 1 , E 1 , o 1 , q 01 , F 1 }, tal que L(M 1 ) L 1
Se L 2 e regular ento existe um AFD M 2 Q 2 , E 2 , o 2 , q 02 , F 2 }, tal que L(M 2 ) L 2
Se Ior possivel construir um AFD M 3 , tal que L(M 3 ) (L 1 . L 2 ) , ento L 1 . L 2 e regular.
Seja M 3 Q 3 , E 3 , o 3 , q 03 , F 3 }, ento: Q 3 Q1 Q2 E 3 E 1 E 2
q 03 q 01
F 3 F 2
o 3 (q i , a) o 1 (q i ,a) o 3 (q j , a) o 2 (q j ,a) o 3 (q k , ) q 03 , onde q k e F 1
Exemplo 21: Sejam L1 aw: w e a,b}*} e L2 wa: w e a,b}*}
Assim o M 3 Q 3 , E 3 , o 3 , q 1 , q 4 }} sera Q 3 q 0 , q 1 , q 2 , q 3 , q 4 } E 3 E 1 E 2 a, b}
o 3 (q 0 , a) q 1 , o 3 (q 0 , b) q 2 , o 3 (q 1 , a) q 1 , o 3 (q 1 , b) q 1 , - 31 - Teoria da Computao e Linguagens Formais - Simone Domingues Prado - Apostila 02 o 3 (q 2 , a) q 2 , o 3 (q 2 , b) q 2 . o 3 (q 3 , a) q 4 , o 3 (q 3 , b) q 3 , o 3 (q 4 , a) q 4 , o 3 (q 4 , b) q 3 , o 3 (q 1 , ) q 3
8.4.4. Fechamento sobre complemento
Seja uma linguagem regular sobre E*. Seja M Q,E ,o ,q 0 ,F}, um AFD tal que L(M) L. A ideia do que segue consiste em inverter as condies aceita/rejeita de M para reconhecer L`. Entretanto, como M pode rejeitar por indeIinio e necessario modiIicar o autmato, garantindo que somente ira parar ao terminar de ler todas a entrada. Assim, a inverso das condies aceita/rejeita pode ser obtida transIormando os estados Iinais em no Iinais e vice-versa.
A construo do AFD M` Q`,E` ,o` ,q 0` ,F`} tal que L(M`) L` e como segue Q` Q d} F` Q`- F o`e como o, com as seguintes transies adicionais, para todo a e E: o`(q,a) d se o(q,a) no e deIinida o`(d,a) d claramente o AFD M` construido acima e tal que L(M`) L`
Exemplo 22: L aw: w e a,b}*} Ento M q 0 , q 1 , q 2 }, a,b}, o , q 0 , q 1 }} Com o(q 0 , a) q 1 , o(q 0 , b) q 2 , o(q 1 , a) q 1 , o(q 1 , b) q 1 , o(q 2 , a) q 2 , o(q 2 , b) q 2 .
Ento M` Q`,E` ,o` ,q 0` ,F`} tal que L(M`) L` Q` Q d} q 0 , q 1 , q 2 , d} F` Q`- F q 0 , q 1 , q 2 , d} - q 1 } q 0 , q 2 , d} Com o`(q 0 , a) q 1 , o`(q 0 , b) q 2 , o`(q 1 , a) q 1 , o`(q 1 , b) q 1 , o`(q 2 , a) q 2 , o`(q 2 , b) q 2 , o`(d, a) d , o`(d, b) d .