CAPÍTULO 2 AUTÓMATOS FINITOS

Documentos relacionados
Modelos de Computação -Folha de trabalho n. 2

LRE LSC LLC. Autômatos Finitos são reconhecedores para linguagens regulares. Se não existe um AF a linguagem não é regular.

Hierarquia de Chomsky

Apostila 02 - Linguagens Regulares Exercícios

Teoria de Linguagens 2 o semestre de 2014 Professor: Newton José Vieira Primeira Lista de Exercícios Entrega: até 16:40h de 23/10.

Faculdade de Computação

Teoria da Computação. Unidade 3 Máquinas Universais (cont.) Referência Teoria da Computação (Divério, 2000)

3.3 Autómatos finitos não determinísticos com transições por ε (AFND-ε)

Autômato Finito. Prof. Yandre Maldonado e Gomes da Costa. Prof. Yandre Maldonado - 1

Aula 4: Autômatos Finitos Autômatos Finitos Não-Determinísticos

Linguagens Formais e Autômatos (LFA)

Recordando produtos notáveis

Linguagens Formais e Autômatos (LFA)

Escola Secundária/2,3 da Sé-Lamego Ficha de Trabalho de Matemática A Ano Lectivo 2011/12 Distribuição de probabilidades 12.º Ano

3 Teoria dos Conjuntos Fuzzy

Aula 27 Integrais impróprias segunda parte Critérios de convergência

Exemplos de autómatos finitos

MATRIZES. 1) (CEFET) Se A, B e C são matrizes do tipo 2x3, 3x1 e 1x4, respectivamente, então o produto A.B.C. (a) é matriz do tipo 4 x 2

Algoritmos em Grafos: Circuitos de Euler e Problema do Carteiro Chinês

Lic. Ciências da Computação 2009/10 Exercícios de Teoria das Linguagens Universidade do Minho Folha 6. δ

Introdução à Integral Definida. Aula 04 Matemática II Agronomia Prof. Danilene Donin Berticelli

UNIVERSIDADE FEDERAL DE PERNAMBUCO. Resumo. Nesta aula, utilizaremos o Teorema Fundamental do Cálculo (TFC) para o cálculo da área entre duas curvas.

Os números racionais. Capítulo 3

EQUAÇÃO DO 2 GRAU. Seu primeiro passo para a resolução de uma equação do 2 grau é saber identificar os valores de a,b e c.

Integral. (1) Queremos calcular o valor médio da temperatura ao longo do dia. O valor. a i

Conjuntos Numéricos. Conjuntos Numéricos

Área entre curvas e a Integral definida

Linguagens Formais Capítulo 5: Linguagens e gramáticas livres de contexto

Objetivo. Conhecer a técnica de integração chamada substituição trigonométrica. e pelo eixo Ox. f(x) dx = A.

Fundamentos de Matemática I EFETUANDO INTEGRAIS. Licenciatura em Ciências USP/ Univesp. Gil da Costa Marques

Adriano Pedreira Cattai

16.4. Cálculo Vetorial. Teorema de Green

Bhaskara e sua turma Cícero Thiago B. Magalh~aes

Aula 5: Autômatos Finitos Remoção de Não-Determinismo

IFRN Campus Natal/Central. Prof. Tibério Alves, D. Sc. FIC Métodos matemáticos para físicos e engenheiros - Aula 02.

E m Física chamam-se grandezas àquelas propriedades de um sistema físico

(x, y) dy. (x, y) dy =

Funções do 1 o Grau. Exemplos

4. Teorema de Green. F d r = A. dydx. (1) Pelas razões acima referidas, a prova deste teorema para o caso geral está longe

Introdução ao estudo de equações diferenciais

Material envolvendo estudo de matrizes e determinantes

8 é possível preencher o quadriculado inicial de exatamente duas maneiras distintas.

Teorema Fundamental do Cálculo - Parte 2

Exercícios. setor Aula 25. f(2) = 3. f(3) = 0. f(11) = 12. g(3) = 14. Temos: 2x 1 = 5 x = 3 Logo, f(5) = 3 2 = 9

Material Teórico - Módulo Teorema de Pitágoras e Aplicações. Algumas demonstrações do Teorema de Pitágoras - Parte 2. Nono Ano

A Lei das Malhas na Presença de Campos Magnéticos.

Capítulo III INTEGRAIS DE LINHA

FUNÇÕES. Mottola. 1) Se f(x) = 6 2x. é igual a (a) 1 (b) 2 (c) 3 (d) 4 (e) 5. 2) (UNIFOR) O gráfico abaixo. 0 x

Resolução: a) o menor valor possível para a razão r ; b) o valor do décimo oitavo termo da PA, para a condição do item a.

Análise Sintática I: Analisadores Descendentes com Retrocesso

3. Cálculo integral em IR 3.1. Integral Indefinido Definição, Propriedades e Exemplos

Elementos de Análise - Lista 6 - Solução

V ( ) 3 ( ) ( ) ( ) ( ) { } { } ( r ) 2. Questões tipo exame Os triângulos [ BC Da figura ao lado são semelhantes, pelo que: BC CC. Pág.

Potencial Elétrico. Evandro Bastos dos Santos. 14 de Março de 2017

Sistems Lineres Form Gerl onde: ij ij coeficientes n n nn n n n n n n b... b... b...

Resolução Numérica de Sistemas Lineares Parte I

Aos pais e professores

Transcrição:

Teori d Computção Cpítulo 2. Autómtos Finitos CAPÍTULO 2 AUTÓMATOS FINITOS 2.. Introdução 45 2.2.Aceitdores determinísticos 46 2.3. A rte de construir DFA s 59 2.4. Lingugens regulres 75 2.5. Autómtos finitos não-determinísticos (DFAs) 83 2.6 Equivlênci entre DFA s e NFAs 85 2.7. Redução do número de estdos em Autómtos Finitos 97 2.8 Aplicção dos DFAs n usc de texto 5 2.9 Autómtos trnsdutores 7 Máquins de Mely 8 Máquins de More 9 Biliogfi 2 Apêndice: Softwre de utómtos finitos 2 JFLAP Deus ex-máquin LEI/DEI/FCTUC/29/@ADC Documento de trlho 43

Teori d Computção Cpítulo 2. Autómtos Finitos LEI/DEI/FCTUC/29/@ADC Documento de trlho 44

Teori d Computção Cpítulo 2. Autómtos Finitos 2.. Introdução No Cp. estudámos s noções ásics de lingugens, grmátics e utómtos. Podem-se definir muits lingugens prtir de um mesmo lfeto, conform s regrs prticulres de cominção dos crcteres do lfeto. Por exemplo prtir do lfeto = {, } e usndo notção de conjuntos poderemos definir s lingugens L = { n m n,m >= } que pertencem s cdeis :,,,, ou lingugem L 2 = { n n n >= } que pertencem s cdeis:,,,,, ou ind L 3 = {,} * compost por qulquer cdei de s e s,incluindo.. Qunts lingugens se podem definir com este lfeto? As lingugens podem ser definids por um grmátic, que indic como se formm s cdeis de crcteres. Conhecids s sus produções é fácil derivr cdeis d lingugem. Pode-se gor pôr o prolem o contrário: dd um cdei de crcteres, como ser se pertence um dd lingugem? Se cdei for pequen pode ser reltivmente simples, por inspecção visul, decidir se pertence ou não. Ms pr um cdei grnde de um grmátic mis elord, não é fácil decidir. É qui que entrm os utómtos finitos. Vimos no Cp. um utómto ceitdor d cdei pi. Se fosse possível construir um utómto que ceitsse tods s cdeis de um dd lingugem (e só esss), então pr se ser se um cdei pertence um lingugem stri dá-l ler o utómto. Se ele prsse no estdo ceitdor depois de concluir su leitur, cdei pertenceri à lingugem. Cso contrário não pertenceri. Infelizmente não é possível desenhr um utómto pr um qulquer lingugem. Há lingugens pr s quis ind hoje não é possível decidir se um cdei lhe pertence ou não. Num mesmo lfeto pode-se definir um número infinito de lingugens, cd um dels com crcterístics própris. Felizmente pr lgums clsses de lingugens é possível construir utómtos finitos ceitdores: é o cso por exemplo ds lingugens regulres, cujs proprieddes veremos mis à frente. Por gor st-nos ser que é possível construir um utómto finito ceitdor pr um lingugem regulr. LEI/DEI/FCTUC/29/@ADC Documento de trlho 45

Teori d Computção Cpítulo 2. Autómtos Finitos Teremos ssim Figur 2... Lingugens L Grmátics G Germ s cdeis de L Autómtos Reconhecem s cdeis de L Figur 2... Relção entre lingugens, grmátics e utómtos. Existem outrs clsses de lingugens, que não regulres, pr s quis é possível tmém construir utómtos ceitdores, nturlmente distintos dos ds lingugens regulres. Vemos ssim que há diferentes clsses de lingugens e diferentes clsses correspondentes de utómtos. Pr s lingugens regulres, s mis simples, constroem-se utómtos finitos determinísticos, os utómtos tmém mis simples. Qundo um utómto é usdo pr reconhecer um lingugem, é mis excto chmr-lhe ceitdor. No entnto usremos com frequênci o termo utómto, distinguindo-se su função de ceitdor dentro do contexto em que é usdo. Como veremos existem utómtos que não são ceitdores, isto é, não são construídos pr ceitr ou não um lingugem, ms ntes pr executrem sore s cdeis de crcteres um dd operção (como liás já vimos no Cp. ). 2.2. Aceitdores determinísticos Um ceitdor determinístico define-se como um estrutur mtemátic e desenh-se como um grfo. Exemplo 2.2.. LEI/DEI/FCTUC/29/@ADC Documento de trlho 46

Teori d Computção Cpítulo 2. Autómtos Finitos Por exemplo o grfo seguinte represent um ceitdor determinístico. O seu lfeto é ={,}. Início q q q 2 Figur 2.2. Grfo de um ceitdor determinístico. Vejmos como funcion. O utómto está no estdo inicil, q, e present-se-lhe à entrd um cdei de s e s, com por exemplo. Ele vi ler os crcteres d esquerd pr direit, isto é > > >. As rests representm s trnsições de estdo qundo o utómto lê o crácter etiquet d rest. Estndo em q e lendo, trnsit pr q. Estndo em q 2 e lendo, trnsit pr q 2, isto é, fic onde está. Lendo gor, estndo em q, trnsit pr q 2. Lendo depois trnsit pr q 3 e í fic, porque não há mis nd pr ler. O estdo q tem um form especil. Ele é o estdo ceitdor. Se o utómto, prtindo do estdo inicil, leu cdei e terminou no estdo ceitdor, então ceit ess cdei. Poderemos ver outrs que tmém ceit. Por exemplo,,, etc. Se estiver em q e prece um, vi pr o ceitdor; se estiver em q e prece um, mntém-se no ceitdor. Se estiver em q 2 e prece um, vi pr o ceitdor. Então conclui-se que qulquer cdei que termine num é ceite pelo utómto: de fcto qulquer que sej o seu penúltimo estdo, o seu último será sempre o ceitdor de ele ler pens mis um. Ms há cdeis de outro tipo, como por exemplo, que tmém, são ceites. Se depois do último precem dois zeros seguidos (e mis nd) ele termin tmém no estdo ceitdor. Portnto o utómto ceit s cdeis que terminm num ou em depois do último. LEI/DEI/FCTUC/29/@ADC Documento de trlho 47

Teori d Computção Cpítulo 2. Autómtos Finitos Note-se que em cd estdo o ceitdor determinístico se exctmente o que deve fzer, porque tido lhe é dito: de cd estdo há dus rests definindo s dus trnsições possíveis, um pr cd crácter do lfeto. Esss dus trnsições podem ser iguis, com contece no estdo q 2. Pode-se simplificr o grfo colocndo pens um rest com dus etiquets, com o n figur seguinte. Início q q q 2, Figur 2.2.2 Grfo do mesmo ceitdor d Fig. 2.2. Se tivéssemos um lfeto com três crcteres (por exemplo {,,c}, então de cd estdo terim que prtir sempre três rests explicitmente definids (ind que pudessem ser iguis). Um ceitdor determinístico não tem qulquer cpcidde de decidir em qulquer circunstânci, dí o nome de determinístico. Consequentemente tods s trnsições possíveis têm que estr explicitmente definids. A função de trnsição é por isso um função totl, isto é, está explicitmente definid pr todos os vlores do seu domínio. Note-se que est definição que estmos doptr não é seguid por todos os utores. Alguns dmitem que possm existir trnsições não definids. Nestes, se precer à entrd, num ddo estdo, um crácter pr o qul não estej explicitmente definid um trnsição, o DFA morre, isto é, pss um estdo não ceitdor e não si mis de lá, quisquer que sejm os crcteres seguintes n cdei lid (mis trde chmremos rtoeir este estdo). Vimos que um utómto finito determinístico é fcilmente definido e descrito por um grfo. Tem cinco prtes: um conjunto de estdos, um conjunto de regrs pr trnsitr entre eles, um lfeto de entrd que define os crcteres ceitáveis à entrd, um estdo inicil, um estdo finl. Veremos csos que têm vários estdos finis. Pr definir formlmente o utómto, usremos tods esss cinco prtes que compõem um quinteto. LEI/DEI/FCTUC/29/@ADC Documento de trlho 48

Teori d Computção Cpítulo 2. Autómtos Finitos Definição 2.2. Aceitdor determinístico Um ceitdor determinístico (usremos o crónimo df-, de deterministic finite ccepter) é definido pelo quinteto M=(Q,,, q, F ) em que : Q: é o conjunto finito de estdos internos : lfeto de entrd (conjunto finito de crcteres) : Qx Q é função totl chmd função de trnsição q Q é o estdo inicil F Q é o conjunto de estdos finis ou ceitdores Um função é totl qundo é definid pr todos os vlores possíveis dos seus rgumentos; cso contrário diz-se prcil. Ao dizer-se que função de trnsição é totl, tendendo á su definição, isso quer dizer que el tem que estr definid pr tods s cominções possíveis de um estdo e um crácter do lfeto, isto é, pr todos os elementos do produto crtesino Qx. Exemplo 2.2.2. O interruptor do Cp. Retomemos qui o exemplo do interruptor do Cp.. Se definirmos lingugem ds sequêncis de Press(P) tis que o interruptor fic ligdo pós su plicção (prtindo do estdo inicil F), teremos P, PPP, PPPPP, etc., ou sej, um número ímpr de ccionmentos do interruptor. Agor poderemos definir o utómto como um ceitdor dess lingugem, colocndo dupl circunferênci no estdo A. P F A P Aplicndo-lhe definição 2. vê-se que Figur 2.2.3 Grfo do interruptor do Cp.. LEI/DEI/FCTUC/29/@ADC Documento de trlho 49

Teori d Computção Cpítulo 2. Autómtos Finitos Q, conjunto de estdos internos: {F, A}, lfeto de entrd: {P}, função de trnsição: F P A; A P F q, é o estdo inicil: F F, o estdo finl: {A} Exemplo 2.2.3. Sej o utómto d Fig. 2.2.4. 2 3 4 Figur 2.2.4. Autómto do exemplo 2.2.3 Aplicndo-lhe de igul modo definição 2. vê-se que: Q, conjunto de estdos internos: {,2,3,4}, lfeto de entrd: {,}, função de trnsição: 2; 4, 2 3, etc. q, é o estdo inicil: F, o estdo finl: {4} Neste cso função de trnsição tem muitos elementos. Usndo um tel especific-se mis fcilmente. Note-se que pelo fcto de função de trnsição der totl, tel tem que ter tods s céluls preenchids. Neste cso pr cd estdo existem dus rests possíveis, um pr e outr pr. LEI/DEI/FCTUC/29/@ADC Documento de trlho 5

Teori d Computção Cpítulo 2. Autómtos Finitos Tel 2.2.. Tel de trnsições do DFA d Fig. 2.2.3. Se estdo ctul é e entrd ctul é o estdo seguinte será 2 4 2 4 2 3 3 3 3 4 4 4 4 4 Qul será lingugem ceite por este utómto? O estdo 4 tem um crcterístic: se o utómto lá chegr, nunc mis de lá si, e por isso chm-se estdo rtoeir, ou rmdilh (trp) ou poço. A figur seguinte reduz o esquem gerl de um utómto que vimos no Cp. o cso prticulr de um df. Note-se que um df não tem nem dispositivo de memóri nem cdei de síd. Tem pens dispositivo de leitur e unidde de controlo. Conforme o conteúdo ctul d célul lid, dá-se ou não um trnsição de estdo dentro d unidde de controlo. LEI/DEI/FCTUC/29/@ADC Documento de trlho 5

Teori d Computção Cpítulo 2. Autómtos Finitos cdei de entrd q q 2 q Figur 2.2.5. O esquem de um DFA. Note-se usênci de qulquer dispositivo de memóri. A trnsição de um estdo pr outro depende do estdo ctul (ntes d trnsição) e do crácter lido à entrd no instnte ctul. crácter de entrd estdo ctul estdo seguinte, movid, símolo n síd (cso tenh) Figur 2.2.6. A função de trnsição de um DFA. Tel 2.2.2 Um utómto represent-se por um grfo em que os vértices (nós) representm os estdos e s rests orientds têm como etiquets os crcteres lidos n cdei de entrd. Há três tipos de vértices, indicdos n Tel 2.2.2., o ldo Símolo q i q q f Significdo Estdo norml Estdo inicil Estdo ceitdor (ou finl) [*] crácter Arest LEI/DEI/FCTUC/29/@ADC Documento de trlho 52

Teori d Computção Cpítulo 2. Autómtos Finitos Exemplo 2.2.4 início q q q 2 Figur 2.2.7 DFA do exemplo 2.2.4. Temos um utómto com três estdos, um de cd tipo. O lfeto do utómto é = {,}. Lendo com tenção s etiquets ds rests pode-se escrever seguinte tel de trnsições. O DFA pode-se ssim definir formlmente como M= (Q, S,,,q,F) com Q = {q,q,q 2 }, = {,}, F = {q 2 } e é definid pel Tel 2.2.4. Tel 2.2.3. Função de trnsição do exemplo 2.2.4. Entrds Estdos q q q 2 q q q 2 q q q Qul será lingugem ceite pelo utómto? Um om desfio pr o leitor... No Cpítulo 3 estudremos s expressões regulres, um técnic de especificção de lingugens que tem um álger própri muito dequd pr deduzir definição d lingugem prtir de um DFA qulquer. Neste momento poderemos fzer o seguinte procedimento heurístico: -colocmo-nos no estdo ceitdor e vemos como lá poderemos chegr, LEI/DEI/FCTUC/29/@ADC Documento de trlho 53

Teori d Computção Cpítulo 2. Autómtos Finitos -depois ndmos pr trás e em cd estdo vemos o mesmo. Até que se consig visulizr mentlmente lingugem do utómto. Cheg-se o estdo finl prtir de q com um, ou sej, com (****). Cheg-se q com um depois de : (***). De modo que sempre que um cdei termine em, termin no estdo ceitdor. Se terminr em não ceit cdei. Ms ceit se terminr em,, ou qulquer número pr de zeros precedido de. Poderemos definir formlmente lingugem de um utómto finito. Definição 2.2.2. Lingugem de um DFA Ddo um DFA qulquer, M, lingugem L ceite (ou reconhecid) por M é o conjunto de tods s cdeis que, começndo ser lids no estdo inicil, fzem com que o utómto lcnce um dos estdos finis depois de tod cdei ter sido lid. Escreve-se L(M) pr dizer que L é lingugem ceite ou reconhecid por M. Que lingugens ceitm os seguintes utómtos? Exmplo 2.2.5 Início q q Fig. 2.2.8. Exemplo 2.2.6 Início q q Fig. 2.2.9. Exemplo 2.2.7 LEI/DEI/FCTUC/29/@ADC Documento de trlho 54

Teori d Computção Cpítulo 2. Autómtos Finitos, q q q 2 Fig. 2.2. Um DFA pode ser definido pel explicitção d função de trnsição e, prtir del, fcilmente se desenh o seu grfo. Exemplo 2.2.8 Sej o DFA M = ({q, q, q 2 }, {,},, q, {q 2 }) cuj função de trnsição é seguinte: (q, ) = q Tel de trnsições (q, ) = q 2 (q, ) = q (q, ) = q 2 q q q 2 q q q 2 q 2 q 2 q 2 (q2, ) = q 2 (q2, ) = q 2 Ns trnsições precem três estdos q, q 2 e q 3. O grfo do utómto desenh-se grficndo s trnsições, depois de se desenhrem os seus três estdos. Otémse ssim Fig. 2.2.. q q Fig. 2.2. q 2 Será possível simplificr este DFA, isto é, encontrr um outro com menos estdos que ceite mesm lingugem (e só mesm)?, LEI/DEI/FCTUC/29/@ADC Documento de trlho 55

Teori d Computção Cpítulo 2. Autómtos Finitos Veremos em cpítulos posteriores lgoritmos pr simplificr utómtos, reduzindo o mínimo possível o número de estdos. Neste momento poderemos pens olhr com tenção pr o DFA e verificr o que ele fz. Se precer um, no estdo inicil, vi pr o ceitdor q 2. Se estiver em q e prece um, trnsit pr q 2 ; e se estiver em q 2 e precer um, mntém-se í. Portnto qulquer que sej o seu estdo se precer um n cdei de entrd, ele ceit-: su lingugem é portnto o conjunto de tods s cdeis em {,}* que contenhm pelo menos um. O utómto seguinte ceit ess lingugem. Fig. 2.2.2. Grfo equivlente o q d Fig. 2.2.. q 2, Função de trnsição estendid cdeis de crcteres, * N definição do DFA função de trnsição é definid de tl form que el é ctivd por um crácter. Se quisermos clculr trnsição do DFA de um configurção inicil pr outr configurção pós um conjunto de trnsições, seri interessnte dispor de um form de representção sucint, compct, que exprimisse ess trnsição slto resultnte d leitur de um conjunto de crcteres ou de um cdei complet. Pode-se estender noção de trnsição com esse ojectivo. Em vez de escreve-se *, em que o sterisco quer dizer pós um certo número de trnsições. A função de trnsição estendid é ssim definid por *: Q * Q LEI/DEI/FCTUC/29/@ADC Documento de trlho 56

Teori d Computção Cpítulo 2. Autómtos Finitos em que - o seu segundo rgumento é um cdei em vez de um crácter, e - o seu vlor de síd dá o estdo do utómto depois de ler (su)cdei. Por exemplo, se tivermos num utómto tl que (q, ) = q e (q, ) = q 2 então *(q, )=q 2 Representndo por grfos, teremos Fig. 2.2.3. q q q 2 ) Função de trnsição q q 2 * ) Função de trnsição estendid Figur 2.2.3. Ilustrção d função de trnsição estendid. Em ) grfo norml; em ) grfo compctdo usndo um trnsição estendid. A função de trnsição estendid pode definir-se recursivmente do modo seguinte: (i) *(q, )= q (ii) *(q,w)= ( * (q, w), ) pr todo o q Q, w *,. Pr o exemplo nterior teremos : * (q, )= ( * (q, ), ) *(q, )= * (q, )= ( *(q, ), )= (q, )=q *(q, )= ( q, )=q 2 LEI/DEI/FCTUC/29/@ADC Documento de trlho 57

Teori d Computção Cpítulo 2. Autómtos Finitos Definição 2.2.2.Lingugens de um DFA (definição forml) A lingugem L ceite (ou reconhecid) por um DFA M =(Q,,, q, F) é o conjunto de tods s cdeis em ceites por M, i.e., L(M) = {w * : *(q, w) F } A função de trnsição e * são funções totis (definids pr todos os elementos do seu domínio). Em cd psso define-se um e um só movimento, e por isso o utómto se chm determinístico, não podendo fzer escolhs. Um utómto process tods s cdeis em *, ceitndo-s ou não. Qundo não ceit um cdei, pár num estdo não ceitdor. O conjunto ds cdeis em que isso se verific constitui o complemento d lingugem L(M), que se pode definir formlmente por Complem(L(M)) = {w * : *(q, w) F } Consideremos os utómtos d Fig. 2.2 4, diferentes pens n identificção do estdo finl. O primeiro reconhece, como vimos, lingugem ds cdeis em {,}* que tenhm pelo menos um. O segundo ceit, no mesmo lfeto, s cdeis que tenhm pens s. Isto é, lingugem do segundo é o complemento d lingugem do primeiro: se um cdei só tem s não tem nenhum, e se tem pelo menos um não contém só s. q q q q,, Figur. 2.2.4. Autómtos complementres no lfeto {,}. LEI/DEI/FCTUC/29/@ADC Documento de trlho 58

Teori d Computção Cpítulo 2. Autómtos Finitos Repre-se que o estdo não ceitdor do primeiro utómto é o estdo ceitdor do segundo; e o estdo ceitdor do primeiro é o estdo não ceitdor do segundo. De fcto,: - se um cdei é ceite pelo primeiro não o pode ser pelo segundo: um cdei que termine no estdo ceitdor do primeiro tem que terminr no estdo não ceitdor do segundo; - e se um cdei é recusd pelo primeiro tem que ser ceite pelo segundo: se um cdei termin no estdo não ceitdor do primeiro tem que terminr no estdo ceitdor do segundo. Pr este utómto com dois estdos, é fácil de ver relção entre os utómtos de lingugens complementres. Será ssim no gerl? De fcto é. Se um utómto M ceit um lingugem L(M), então o complemento de L será reconhecid pelo utómto que se otém de M invertendo neste função dos estdos: os não ceitdores pssm ceitdores e os ceitdores pssm não ceitdores. 2.3. A rte de construir DFA s Os exemplos de utómtos que vimos té qui precem simples, e su construção (em grfo) é reltivmente expedit. Csos há em que é em mis difícil oter um solução simples (n medid do possível) e proprid pr um dd função. A expertise pr desenhr DFAs depende mis d rte prendid e treind do que de um teori sofisticd. Vejmos um exemplo: Exemplo 2.2.9 Pridde individul Desenhr um utómto que, no lfeto ={,}, ceite tods s cdeis com um número ímpr de s. LEI/DEI/FCTUC/29/@ADC Documento de trlho 59

Teori d Computção Cpítulo 2. Autómtos Finitos Podemos começr desenhr estdos e rests, por tenttiv e erro, té que consigmos, com mis ou menos remendos, um solução. Se o conseguirmos, muito provvelmente oteremos um utómto confuso, com mis estdos do que o necessário, difícil de interpretr por outrem. Em vez disso, pensemos num ordgem mis sistemátic, prtindo de um lgoritmo mentl pr folh de ppel. Em primeiro lugr quntos estdos terá que ter o nosso utómto? Lemremo-nos do significdo de um estdo: o utómto cheg lá depois de um certo número de trnsições resultntes d leitur de um cdei. O estdo contém por isso históri té um certo ponto d cdei. Or num prolem qulquer, o que deve memorizr o utómto? Apens informção mínim pr ser cpz de responder o que se lhe pede: neste cso lemrr-se d pridde do número de s entrdos té o momento. Se for pr deve estr num certo estdo, se não for deve estr noutro. O estdo que corresponde ímpr deve ser ceitdor porque se não há mis nd pr ler, cdei deve ser ceite porque entrou té o momento um número ímpr de s. Temos então (pelo menos) dois estdos: Pr (P) e Ímpr (I), que podemos desde já desenhr. P I Figur 2.3.. Os estdos do utómto de pridde individul Se o DFA está em P e lê n entrd, o que contece? Se está em P, é porque té o momento entrou um número pr de s. Se gor entr mis um, pss ímpr, nturlmente. E então desenhe-se trnsição correspondente: (P,)=I. E se lê um zero estndo em P? Como nd lhe é pedido em relção os zeros, é-lhe perfeitmente indiferente e por isso deve mnter-se em P. Logo (P,)=P. Temos então, pr já, LEI/DEI/FCTUC/29/@ADC Documento de trlho 6

Teori d Computção Cpítulo 2. Autómtos Finitos P I Figur 2.3.2. Trnsições prtir de P Fç-se de seguid o mesmo rciocínio pr o estdo I. Ele está lá porque entrou um número ímpr de s. Entrndo mis um, fic um número pr, e por isso (I,)=P. Pel mesm rzão de cim, (I,)=I. Tods s trnsições possíveis estão gor identificds. O estdo ceitdor tmém. Flt pens identificr o estdo inicil, onde o DFA deve estr ntes de inicir leitur d cdei, ou sej, qundo entrrm zero s e zero s. Or zero é número pr, e por isso P é o estdo inicil, pelo que se lhe coloc setinh. Concluímos ssim o desenho do DFA requerido n Fig. 2.3.3 P I Figur 2.3.3 Autómto de pridde de s completo. Simulndo o seu funcionmento verific-se que cumpre su missão. E se quiséssemos um DFA que ceitsse, no mesmo lfeto, tods s cdeis com um número pr de s? Fcilmente se otém, seguindo o mesmo lgoritmo mentl, o utómto d Fig. 2.3.4. Figur 2.3.4. Autómto de um número pr de s. Notem-se s semelhnçs e diferençs reltivmente o nterior. P I LEI/DEI/FCTUC/29/@ADC Documento de trlho 6

Teori d Computção Cpítulo 2. Autómtos Finitos Fic o leitor desfido verificr que os utómtos seguintes ceitm, ind no lfeto ={,}, s cdeis com um número ímpr de zeros e um número pr de zeros. P I P I ) ) Figur 2.3.5. Autómtos de pridde de zeros. ) ímpr, ) pr Exemplo 2.3.2 Pridde de grupo Desenhr um DFA que no lfeto ={,} ceite tods s cdeis com um número ímpr de s e um número ímpr de s. Temos qui um situção mis complicd porque impridde é exigid simultnemente os dois crcteres do lfeto. A primeir questão, e decisiv: quntos estdos deve ter o utómto? Ele tem que ser identificr situção de pridde entre tods s situções de pridde possíveis. E quis são? Tendo em cont que temos que medir simultnemente pridde de s e de s, els são: - número pr de s e número pr de s; - número pr de s e número ímpr de s; - número ímpr de s e número pr de s; - número ímpr de s e número ímpr de s. LEI/DEI/FCTUC/29/@ADC Documento de trlho 62

Teori d Computção Cpítulo 2. Autómtos Finitos Não hvendo mis nenhum situção relevnte pr o cso, concluímos que qutro estdos serão suficientes; chmem-se PP, PI, IP, II, sendo ceitdor o II. PP PI IP II Figur 2.3.6. Os estdos necessários pr o exemplo 2.3.6. Se o utómto está em PP é porque leu té o momento um número pr de s e um número pr de s, se estão em PI, leu um número pr de s e um número ímpr de s; etc. Clculemos gor s sus trnsições. Estndo em PP, té í leu um número pr de s e um número pr de s. Se prece gor um, fic um número ímpr de zeros e um número pr de s e por isso tem que trnsitr pr IP. Se pelo contrário prece um, fic um número ímpr se s e um número pr de zeros e vi ssim pr PI. Podemos então desenhr s rests que prtem de PP. Figur 2.3.7. Trnsições prtir de PP PP PI IP II Se o DFA está em PI (pr s ímpr s), se lê pss PP e se lê pss II. Figur 2.3.8. Trnsições prtir de PI PP PI IP II LEI/DEI/FCTUC/29/@ADC Documento de trlho 63

Teori d Computção Cpítulo 2. Autómtos Finitos É gor fácil de ver que o utómto completo é representdo pelo grfo seguinte. O estdo inicil (zero s e zero s) é PP porque zero é um número pr. PP PI Figur 2.3.9. Grfo completo do exemplo 2.3.2. IP II Exemplo 2.3.3. Desenhr o utómto ceitdor d lingugem compost por tods s cdeis com um número ímpr de s e um número ímpr de s. Se quisermos o DFA que ceit s cdeis com um número impr de s e um número pr de s (IP), st mudr o estdo ceitdo no utómto nterior, otendo-se PP PI Figur 2.3.. Grfo completo do exemplo 2.3.3. IP II E juntndo s dus condições, ímpr-ímpr ou ímpr-pr, otém-se o utómto com dois estdos finis: LEI/DEI/FCTUC/29/@ADC Documento de trlho 64

Teori d Computção Cpítulo 2. Autómtos Finitos PP PI Figur 2.3.. Grfo do DFA ceitdor de II ou de IP IP II Exemplo 2.2.3. Contgem de sequêncis (corrids) de crcteres. Desenhe-se um DFA que em ={,} ceite tods s cdeis que tenhm corrids de três ou mis s. Um corrid de três é. No cso temos um corrid de 4.Portnto,, pertencem à lingugem, ms,, não pertencem. A questão qui é mis complicd do que simples pridde. O utómto tem que ser cpz de contr um corrid de três s : zero, um, dois, três. Como pode contr? Tem que ter memóri pr isso (contr tem memóri implícit). A memóri de um DFA só existe nos estdos, e por isso pr contr té três são precisos qutro estdos que chmremos,, 2 e 3. O número do estdo é o número de s seguidos contdos té í. 2 3 Figur 2.3.2. Como contr 3 s. Serão estes qutro estdos suficientes? É o que vmos ver. LEI/DEI/FCTUC/29/@ADC Documento de trlho 65

Teori d Computção Cpítulo 2. Autómtos Finitos Se depois de 3 s vier um qurto, cdei continu ceite. De fcto depois d corrid de três s cdei é ceite independentemente do que contecer prtir dí, venhm mis s ou mis s. Por isso pode-se colocr um rest do estdo 3 pr si mesmo com ou com. Por outro ldo, se cdei começ por,,, o utómto cont sempre zero s e por isso existe um rest de pr com. Temos pr já Fig. 2.3.3., 2 3 Figur 2.3.3. E o utómto já vi tomndo form. E se prece? Interessm-nos s corrids de s. Se prece um temos um corrid de um, ms se de seguid prece um ele nul corrid, origndo o reinício d contgem. Quer isso dizer que do estdo se volt o estdo se precer um n entrd. Se prece este último orig de igul modo o reinício d contgem. Teremos portnto completo o grfo do utómto n Fig. 2.3.4., 2 3 Figur 2.3.4. DFA que cont corrids de 3 ou mis s. LEI/DEI/FCTUC/29/@ADC Documento de trlho 66

Teori d Computção Cpítulo 2. Autómtos Finitos Fic o leitor desfido encontrr um qulquer cdei com um corrid de três s que não sej ceite por este utómto. Se em vez de um corrid de três tivéssemos um corrid de qutro ou cinco, o utómto teri um form semelhnte, com cinco ou seis estdos, respectivmente. Se em vez de corrids de s quiséssemos corrids de, stri trocr os s pelos s e os s pelos s ns rests do grfo., 2 3 4 Figur 2.3.5. DFA ceitdor ds cdeis com corrids de qutro ou mis s. Exemplo 2.3.4. Desenhr o utómto que ceit no mesmo lfeto {, } qulquer cdei que tenh um corrid de três s ou um corrid de três s. A situção qui complicou-se um pouco. Vejmos o prolem por prtes. Pr corrids de três s, semos como fzer. No utómto respectivo, qundo surge um, reinici-se contgem com retorno o estdo. Ms gor qundo prece um dus coiss têm que contecer: por um ldo nulção d contgem de s e por outro ldo o início d contgem de s. Pr corrids de três s tmém semos como fzer. E de modo nálogo, qundo prece um por um ldo nul-se contgem de s e por outro ldo inici-se contgem de s. Pr inicir, cri-se um estdo inicil. Se prece um, inici-se contgem de s, se for um, inici-se contgem de s, como n Fig.2.3.6. Os nomes dos estdos form lterdos pr os relcionr com su função: cheg 2 depois de um corrid de dois s e cheg 2 depois de um corrid de dois s. LEI/DEI/FCTUC/29/@ADC Documento de trlho 67

Teori d Computção Cpítulo 2,. Autómtos Finitos 2 3, 2 3 Figur 2.3.6. A cminho d solução do exemplo 2.3.4 Agor vmos à corrid de s e qundo prece lá um trnsit-se pr o estdo correspondente um, ou sej,., 2 3, Figur 2.3.7. A cminho d solução do exemplo 2.3.4 2 3 Finlmente, n corrid de s procede-se de modo semelhnte qundo prece um e otémse o utómto d Fig. 2.3.8 que complet resolução do exemplo. 2 3 2 3 Figur 2.3. 8. Autómto completo do exemplo 2.3.4: ceit corrids de três ou mis s ou corrids de três ou mis s LEI/DEI/FCTUC/29/@ADC Documento de trlho 68

Teori d Computção Cpítulo 2. Autómtos Finitos Exemplo 2.2.4 Detecção de um su cdei de crcteres Pretende-se um utómto que ceite tods s cdeis no lfeto {,} que contenhm su cdei. Por exemplo,, pertencem est lingugem; ms e não pertencem. A primeir tref é determinr quis os estdos que o utómto deve ter. Ele tem que reconhecer. Pode ind não ter encontrdo nenhum dos crcteres d sequênci, ou pode já ter encontrdo um, dois ou os três. São por isso necessários pelo menos qutro estdos. Chmem-se Nd,,,. O Nd será o estdo inicil. Inicido, se lê um isso não lhe interess e deix-se ficr. Se lê um, então pode ser o primeiro d sequênci procurd e por isso trnsit pr o estdo de já ter lido um ; o estdo. Se de seguid lhe prece um outro, está no om cminho e trnsit pr o estdo. Ms se em vez do lhe prece um, então não leu um número suficiente de zeros e tem que reinicir o escrutínio, voltndo ssim o estdo inicil. Estmos n Fig. 2.3.9 Figur 2.3.9.Início d resolução do exemplo 2.2.4. Ini Estndo em se prece então preceu e cdei deve ser desde já ceite, independentemente do que contecer depois, trnsitndo por isso pr o estdo ceitdor e não sindo de lá mis. Este último requisito lcnç-se colocndo um rest de pr si mesmo, sej com sej com., Ini Figur 2.3.2. DFA que reconhece su-cdei. LEI/DEI/FCTUC/29/@ADC Documento de trlho 69

Teori d Computção Cpítulo 2. Autómtos Finitos Contgem em módulo n. A contgem em módulo n é um contgem de números inteiros cíclic que se inici em zero e volt zero n pssos à frente. Por exemplo contgem módulo 3 é,, 2,,, 2,. A tel seguinte ilustr contgem em módulo pr números inteiros positivos e negtivos. Tel 2.3.. Contgem em módulo. N Contgem dos números inteiros positivos e negtivos - -9-8 -7-6 -5-4 -3-2 - 2 3 4 5 6 7 8 9 M ó d u l o 2 5 2 3 4 2 3 4 2 3 4 2 3 4 6 2 3 4 5 2 3 4 5 2 3 4 5 2 3 4 7 4 5 6 2 3 4 5 6 2 3 4 5 6 2 3 2 3 4 5 6 7 8 9 2 3 4 5 6 7 8 9 2 2 3 4 5 6 7 8 9 2 3 4 5 6 7 8 9 Exemplo 2.2.5. Desenhr um utómto que sej cpz de contr em módulo 2. Sem perd de generlidde considerremos pens os números positivos. Os números contr são codificdos em inário, ={, }, ou sej, teremos Tel 2.3.2. Tel 2.3.2 Contgem em módulo 2 N 2 3 4 5 6 7 8 9 Código Mod2 LEI/DEI/FCTUC/29/@ADC Documento de trlho 7

Teori d Computção Cpítulo 2. Autómtos Finitos A contgem em módulo dois tem dois resultdos possíveis: ou. Por isso o utómto só necessit de dois estdos, o (pr contr ) e o (pr contr ). O número contr está codificdo em inário, inicindo-se su leitur d esquerd pr direit: o DFA lê, por exemplo, pel ordem -------. Isto quer dizer que o LSB (Lest Significnt Bit) é o lido mis à direit, e só é conhecido no fim d leitur. O DFA cont com qulquer número de its: só qundo cdei c se conhece o seu tmnho. Inicilmente está no estdo. Se prece um, mntém-se no estdo ; se prece um, cont e por isso vi pr o estdo. Figur 2.3.2. Início d construção do DFA contdor em módulo 2 Estndo no estdo, se prece um (leu té gor, modulo 2 dá ), trnsit pr o estdo. Se prece um (leu té gor =3, modulo 2 dá ) mntém-se no estdo. Figur 2.3.22. Continução d construção do DFA contdor em módulo 2 Estndo no estdo depois de ler : se prece (=5, mod2(5)=) vi pr o estdo ; se prece (=4, mod2(4)=), mntém-se no estdo. Estndo no estdo depois de ler : se prece () vi pr o estdo ), se prece () mntém-se no estdo. Pr que o DFA estej completo, flt definir o estdo ceitdor, que depende d lingugem especificd: - se forem s cdeis que em módulo 2 dêem zero, o estdo finl será o estdo - se forem s cdeis que em módulo 2 dêem um, o estdo finl será o estdo. Neste cso teremos Fig. 2.3.23. LEI/DEI/FCTUC/29/@ADC Documento de trlho 7

Teori d Computção Cpítulo 2. Autómtos Finitos Figur 2.3.23. DFA d lingugem L(M)={w {,}* : mod2(w)=} Exemplo 2.2.6. Desenhr o DFA cpz de contr os números inteiros (não negtivos) correctmente em módulo 4. A contgem módulo 4 tem qutro vlores possíveis:,, 2, 3. Qutro estdos serão em princípio suficientes. O nome do estdo é o vlor d contgem que lhe corresponde. A leitur d cdei é feit d esquerd pr direit. No início temos o estdo inicil. Aprece, mntém-se no estdo ; prece, vi pr o estdo. Estndo no estdo (depois de ler ): prece () vi pr o estdo 2, prece () vi pr o estdo 3. Figur 2.3.24. Construção do DFA contdor em módulo 4. 3 2 Estndo no estdo 2 (depois de ler ): prece ( ) vi pr o estdo, prece (=5, mod4(5)=) vi pr o estdo. Estndo no estdo 3 (depois de ler ): prece (=6, mod4(6)=2) vi pr o estdo 2, prece (=7, mod4(7)=3) vi pr o estdo 3. LEI/DEI/FCTUC/29/@ADC Documento de trlho 72

Teori d Computção Cpítulo 2. Autómtos Finitos 3 2 Figur 2.3.25. DFA contdor em módulo 4. Se continurmos veremos que o utómto não se engn. O estdo finl será determindo pel lingugem requerid. Se for por exemplo 2, el será compost pels cdeis (ináris, em que o LSB é o primeiro à direit) que vlem 2 em módulo 4. É curioso verificrmos est periodicidde, qundo cdei inári é lid d direit pr esquerd. E se fosse lid d esquerd pr direit? Exemplo 2.2.7. Contgem módulo 7 Neste cso precisremos de um utómto com 7 estdos,,2,3,4,5,6,7, sendo o estdo inicil. Estndo em : se prece mntém-se em zero, se prece vi pr. Estndo em (lido ): com () vi pr 2, com () vi pr 3. Estndo em 2 (lido ): com () vi pr 4, com () vi pr 5. 2 3 Figur 2.3.26. Construção do DFA contdor em módulo 7. 6 4 5 LEI/DEI/FCTUC/29/@ADC Documento de trlho 73

Teori d Computção Cpítulo 2. Autómtos Finitos Continundo, Estndo em 3 (lido ): com () vi pr 6, com () vi pr. Estndo em 4 (lido ): com (=8, 8mod7=) vi pr, com (=9, 9mod7=2) vi pr 2. Estndo em 5 (lido ): com (=, mod7=3) vi pr 3, com (=, mod7=4) vi pr 4. 2 3 6 5 4 Flt pens definir o que contece no estdo 6. Estndo em 6 (lido ): com (=2, 2mod7=5) vi pr 5, com (=3, 3mod7=6) vi pr 6. 2 3 Figur 2.3.27. Continução d construção do DFA contdor em módulo 7. 6 5 4 Testemos o DFA pr : =64+32+6+4+=7 7mod7=5; dá certo. LEI/DEI/FCTUC/29/@ADC Documento de trlho 74

Teori d Computção Cpítulo 2. Autómtos Finitos =52+28+32+8+2+=683, 683mod7=4; confere. Em resumo, num o estrtégi de projecto de um DFA: - A primeir e decisiv operção é determinr qunto estdos terá o DFA e qul função de cd um. - A etiquet que triuímos cd estdo deve exprimir função do estdo. - Depois colocmo-nos dentro de cd estdo e imginmo-nos ler cdei de entrd e imitr o DFA. 2.4. Lingugens regulres Qulquer DFA reconhece um lingugem. Tl firmção é fácil de provr: um lingugem é um conjunto de cdeis. Um DFA ceit sempre lgum cdei, mesmo que sej cdei nul, como é o cso do utómto seguinte, em ={,}:, Figur 2.4.. DFA ceitdor d lingugem L={ }, só com cdei vzi. E dd um lingugem qulquer, definid por um conjunto de cdeis, existirá sempre um DFA, utómto finito determinístico, que reconheç? Nem sempre. Há um fmíli de lingugens em que tl contece sempre: s lingugens regulres. Um lingugem L diz-se regulr se e só se existir um DFA M que reconheç, ou sej, L=L(M) A fmíli ds lingugens regulres é compost por tods s lingugens que são ceites por lgum DFA. LEI/DEI/FCTUC/29/@ADC Documento de trlho 75

Teori d Computção Cpítulo 2. Autómtos Finitos E como se pode provr que um lingugem é regulr? Por prov construtiv: se formos cpzes de construir um utómto que reconheç, então el é regulr. E se não formos cpzes? Aqui é que porc torce o ro, pois pode ser por flt de períci noss. Ms tmém pode ser porque é impossível (o que contece se lingugem for não regulr). Exercícios de construção de DFAs.. Construir um DFA que ceite lingugem L em = {, } tl que () L contém pens e. () L é o conjunto de tods s cdeis que terminm com. (c) L é o conjunto de tods s cdeis sem s consecutivos nem s consecutivos. 2. Desenhr o DFA que ceit tods s cdeis em {,}, com excepção ds que contêm :,, L(M), L(M) 3. Desenhr o grfo do DFA que ceite s cdeis ináris que vlem 5 em módulo 6. 2.5. Autómtos finitos não-determinísticos Um DFA se sempre o que fzer: o seu cminho está completmente definido no seu grfo, nunc há qulquer situção em que o DFA exite, por poder escolher entre dois cminhos lterntivos, ou por não ser o que fzer. Nem todos os utómtos ssim são. Poderemos imginr um situção em que prtir de um estdo sejm possíveis zero, um ou mis trnsições com o mesmo símolo do lfeto, isto é, em que há cminhos lterntivos (pr mesm situção n entrd). Qundo isso contece o utómto deix de ser determinístico. Diz-se utómto não-determinístico ou indeterminístico. LEI/DEI/FCTUC/29/@ADC Documento de trlho 76

Teori d Computção Cpítulo 2. Autómtos Finitos Figur 2.5. Prte de um utómto finito com dois cminhos lterntivos pr mesm leitur n entrd. Hvendo cminhos lterntivos pode hver, entre o estdo inicil e o estdo ceitdor, zero, um ou vários cminhos. Pode ceitr um cdei seguindo um ddo cminho e não ceitr mesm cdei seguindo um outro cminho lterntivo. Como definir neste cso condição de ceitção de um cdei? Do modo seguinte: um cdei de entrd é ceite se houver pr el (pelo menos) um cminho que leve um estdo ceitdor qundo el é tod lid. Definição 2.5.: Um ceitdor não-determinístico (NFA Nondeterministic Finite Accepter) é definido pelo quinteto M= (Q,,, q, F) em que função de trnsição é definid por : Q ( { }) 2 Q Os restntes memros do quinteto definem-se do mesmo modo que no cso do DFA. Lendo com tenção definição consttm-se s seguintes diferençs em relção o DFA (definição 2.2.): - O contrdomínio de é potênci 2 Q do conjunto Q, e não Q, precismente porque o resultdo de pode ser no limite um qulquer suconjunto de Q. A potênci 2 Q de um conjunto é compost por todos os seus suconjuntos possíveis, incluindo o vzio. 2- O conjunto (q i, ) pode ser vzio, significndo que não há qulquer trnsição nest situção. No grfo não há um rest prtindo de q i com o símolo. Não é origtório que exist um rest prtir de q i pr cd um dos símolos do lfeto. LEI/DEI/FCTUC/29/@ADC Documento de trlho 77

Teori d Computção Cpítulo 2. Autómtos Finitos 3- tmém pode ser rgumento de, ou sej, pode dr-se um trnsição sem consumir um símolo de entrd ( o mecnismo de leitur pode ficr prdo em lguns movimentos). No grfo do NFA pode existir um ou mis rests com o símolo. Os NFAs podem representr-se por grfos tl como o DFA. Os nós são os estdos e s rests s trnsições. Por exemplo, trnsição (q, ) = {q 2, q 3 } só pode existir num NFA, ddo que há dois cminhos lterntivos: de q lendo ou se trnsit pr q 2 ou se trnsit pr q 3. Com um grfo será q q 2 Figur 2.5.2. Grfo d trnsição (q, ) = {q 2, q 3 } q 3 Num NFA pode dr-se um trnsição com o crácter. Este fcto prece estrnho n medid em que ceitr o nd num primeir nálise prece té contrrir própri noção de ceitção. Ms veremos utilidde deste fcto. Consequêncis d possiilidde de trnsição com Há lgums consequêncis d possiilidde de trnsição com o que convém qui referir. º - de um qulquer estdo pr ele mesmo pode-se sempre trnsitr com. Suponhmos que estmos no estdo q i depois de ler o prefixo d cdei. Figur 2.5.3. Grfo (NFA) d trnsição (q i, ) = q j q i q j Lendo gor o crácter o utómto trnsit pr o estdo q j. LEI/DEI/FCTUC/29/@ADC Documento de trlho 78

Teori d Computção Cpítulo 2. Autómtos Finitos Ms repre-se que cdei é mesm que ou que ou que e por í lém. Como representr esse fcto no grfo? Simplesmente colocndo um trnsição do estdo q i pr ele mesmo. 2.5.4. O mesmo irá depois contecer em q j. Por isso o grfo completo terá form d Fig. Figur 2.5.4. Grfo (NFA) d trnsição (q i, ) = q j, com explicitção (em relção o d Fig. 2.5.3) ds trnsições com. q i q j Em qulquer NFA existe ess crcterístic: há um trnsição com de um qulquer estdo pr ele mesmo. Por ser sempre verdde, gerlmente não se desenh, considerndo-se que trnsição está lá implicitmente. Nunc esquecer no entnto que no cso de um DFA não há trnsições-. 2º Qundo trnsição- for um lterntiv um trnsição com um outro crácter, o utómto escolhe comer um crácter ou não. Suponhmos, por exemplo, que um NFA cheg um estdo q, d figur seguinte, e se lhe present de seguid o crácter. O NFA tem dois cminhos lterntivos: ou consome e vi pr q 2, ou não consome (consome que está implícito n cdei, ) e vi pr q 3. q 2 q Figur 2.5.5. q 3 Hvendo (por vezes tnts) escolhs, como se pode ser se um cdei é ceite pelo DFA? Se ele escolhe um cminho e não consegue chegr o estdo finl conclui-se que não ceit cdei? E se ele tivesse escolhido outro, ceitri ou não? Teri que tentr todos os cminhos lterntivos possíveis. Se encontrsse um que o levsse um estdo ceitdor então ceitri cdei. LEI/DEI/FCTUC/29/@ADC Documento de trlho 79

Teori d Computção Cpítulo 2. Autómtos Finitos A diferenç entre um computção determinístic (podendo terminr ou não num estdo ceitdor) e um computção não determinístic em que existe um cminho ceitdor é ilustrd pel Figur 2.5.6 (de Sipser). Computção determinístic Computção não determinístic ceit ou rejeit ceit Figur 2.5.6. Um computção determinístic cri um cminho, enqunto que um computção não-determinístic cri um árvore. N computção determinístic nunc há escolhs. A cdei lid ou é ceite ou não, conforme o último estdo sej ceitdor ou não. N computção não determinístic cri-se um árvore, com sucessivs rmificções sempre que hj um escolh possível. Se um dos cminhos de um computção terminr num estdo ceitdor, o NFA ceit cdei. Cso nenhum cminho termine num estdo ceitdor, cdei é rejeitd. Um cdei é ceite pel NFA se houver lgum sequênci de movimentos possíveis que coloquem o utómto num estdo finl (ceitdor) no fim d cdei. Cso contrário é rejeitdo. Há um outr form de conceermos um computção não determinístic. Sempre que há um escolh possível, o NFA replic-se um vez por cd escolh, de modo que o número de configurções vi umentdo em cd rmificção d árvore supr. Cd configurção está LEI/DEI/FCTUC/29/@ADC Documento de trlho 8

Teori d Computção Cpítulo 2. Autómtos Finitos no estdo consequente d escolh feit e n su entrd estão os crcteres ind não lidos. Se um dos utómtos replicdos está num configurção tl que não pode trnsitr pr qulquer estdo (sej com sej com um outro crácter), e se leitur ind não chegou o fim, então esse utómto morre. Se no fim d computção houver lgum utómto sorevivente e se pelo menos um deles estiver num estdo ceitdor, cdei é ceite. Função de trnsição estendid * Tl como no cso do DFA, tmém num NFA se pode introduzir o conceito de função de trnsição estendid *. El result d leitur de um cdei w que é o seu segundo rgumento (em vez de um crácter), * (q i, w) = Q j sendo Q j o conjunto de todos os estdos possíveis do utómto que podem ser lcnçdos prtir de q i e pel leitur de w. Isto é * (q i, w) contém o estdo q j se e só se existir um cminho no grfo de trnsições desde q i té q j com etiquet w, pr todos os q i, q j Q e w *, como n Fig. 2.5.7. Figur 2.5.7. q i w q j Definição 2.5.2. Lingugem ceite por um NFA A lingugem L ceite pelo NFA M = (Q,,, q, F) é definid como o conjunto de tods s cdeis w que levem o utómto um estdo finl ceitdor, ou sej, L(M) = {w * : *(q, w) F } i.e., é compost por tods s cdeis w pr s quis existe pelo menos um cminho etiquetdo w desde o vértice inicil té lgum vértice finl. Exemplo 2.5. (Linz) O utómto d Figur 2.5.8 é não determinístico porque: LEI/DEI/FCTUC/29/@ADC Documento de trlho 8

Teori d Computção Cpítulo 2. Autómtos Finitos - de q prtem dus rests etiquetds por - de q prte um rest etiquetd por - de q 2 não é definid qulquer trnsição, (q 2, ) = - existe sempre trnsição (q i, ) = { q i }, pr todo o i, mesmo se não desenhd. q q, q2 Figur 2.5.8. Um ceitdor não-determinístico Se escrevermos tods s trnsições possíveis, teremos: (q, ) = {q } (q, ) = (q, ) = {q, q 2 } (q, ) = {q 2 } (q, ) = {q } (q, ) = { q, q 2 } (q 2, ) = (q 2, ) = (q 2, ) = {q 2 } O utómto ceit:, porque dos dois estdos lcnçdos um é finl. LEI/DEI/FCTUC/29/@ADC Documento de trlho 82

Teori d Computção Cpítulo 2. Autómtos Finitos,, Não ceit :,,, A su lingugem é compost pls cdeis de potêncis de, ou sej, L(M) = { () n : n } E se prece cdei? Depois de ler cheg q 2. Como não está definid trnsição (q 2, ), otém-se um configurção mort (ded configurtion), em que se trnsit pr o estdo vzio,. formlmente Mis * (q, )=. NFA. Como não se pode tingir um estdo finl processndo, est cdei não é ceite pelo Exemplo 2.5.2.: (Linz). Considere-se o utómto d Fig. 2.5.9, com o lfeto ={}. Ele é não-determinístico porque (i) no estdo inicil há um escolh possível com o crácter e (ii) não estão definids tods s trnsições possíveis. q q 3 q 2 q q 4 q 5 Qul é lingugem ceite pelo utómto? Figur 2.5.9. Exemplo 2.5.2 LEI/DEI/FCTUC/29/@ADC Documento de trlho 83

Teori d Computção Cpítulo 2. Autómtos Finitos Pel prte de cim ceit cdei e só ess. Pel prte de ixo ceit,,,, 2n, n O conjunto ds dus, ou sej união ds dus, dá lingugem ceite pelo utómto L(M) = { 3 } { 2n : n } Se o NFA pode escolher, n prátic com o se constrói? Pr que servem? Os NFA são construções mtemátics que não pssm disso: não se pode construir um NFA pr um plicção prátic. Pense-se por exemplo o que conteceri um utómto que controlsse um port utomátic se ele não fosse determinístico No entnto têm um grnde utilidde em Teori d Computção. Usm-se como um ferrment mtemátic muito útil pr - modelizr lgoritmos em que tem que se fzer escolhs (serch-nd-cktrcking, por exemplo) - definir lingugens composts por conjuntos stnte diferentes (como no exemplo nterior { 3 } { 2n : n }. - descrever de form simples e concis lingugens complicds. N definição de um grmátic pode existir um elemento de não-determinismo, como n produção S S em qulquer ponto pode-se escolher primeir ou segund produção. Podemos ssim especificr um grnde número de cdeis usndo pens dus regrs. Se quisermos construir um utómto equivlente (estudremos como num cpítulo posterior) será mis fácil trvés de um NFA. - construir DFAs complicdos. Como veremos de seguid não há nenhum diferenç essencil entre NFA s e DFA s: ddo um NFA é possível encontrr um DFA equivlente. Se quisermos construir um DFA, poderemos num primeir etp construir um NFA, mis fácil de desenhr, e depois oter, pel técnic que estudremos, um DFA equivlente. LEI/DEI/FCTUC/29/@ADC Documento de trlho 84

Teori d Computção Cpítulo 2. Autómtos Finitos 2.6. Equivlênci entre utómtos (ceitdores) finitos determinísticos e não-determinísticos Como vmos ver, prtir de um qulquer NFA com um ddo lfeto pode-se oter um DFA que ceit s mesms cdeis e rejeit s mesms cdeis no mesmo lfeto. Diz-se que o DFA é equivlente o NFA. Vejmos mis formlmente definição de equivlênci entre utómtos. Definição 2.6.. Aceitdores equivlentes : dois ceitdores M e M 2 são equivlentes se L(M ) = L(M 2 ) isto é, se mos ceitm mesm lingugem. Existem gerlmente muitos ceitdores pr um dd lingugem, e por isso qulquer DFA ou NFA tem muitos ceitdores equivlentes. Os DFA podem-se considerr csos especiis de NFA, em que os cminhos possíveis se reduzem sempre um. Por isso se um lingugem é ceite por um DFA então existe um NFA que tmém ceit. E o contrário? Se um lingugem é ceite por um NFA, existirá um DFA que ceite? Será que o não-determinismo eliminou est possiilidde? De fcto não eliminou: se um lingugem é ceite por um NFA então existe um DFA que tmém ceit. Como encontrá-lo? Como converter um NFA num DFA? Como trnsformr um situção de multi-escolh num escolh únic? Um NFA pode escolher vários cminhos. Depois de um NFA ler um cdei w, não se se precismente em que estdo está, ms se-se pens que está num estdo entre um conjunto Q w de estdos possíveis Q w ={q i, q j,..., q k }. Em contrprtid depois de um DFA ler mesm cdei tem que estr num estdo em definido, q w. LEI/DEI/FCTUC/29/@ADC Documento de trlho 85

Teori d Computção Cpítulo 2. Autómtos Finitos Como encontrr um correspondênci entre ests dus situções? Pode-se conceer um truque simples: cri-se um estdo no DFA equivlente o conjunto Q w, isto é, etiquet-se, no DFA, um estdo por Q w. Se isso for possível temos o prolem resolvido. Ms resultrá isso num utómto finito? Qul o número máximo de estdos do DFA que se podem oter por este processo? Se no NFA existem no totl Q estdos, o número máximo de estdos que se podem oter no DFA é igul à potênci de conjuntos de Q, isto é 2 Q, e portnto finito. No cso extremo de totl indeterminismo no NFA, o número de estdos no DFA será 2 Q.Se tivermos 6 estdos no NFA teremos 2 6 =64 estdos no DFA! Como gerlmente o indeterminismo é pens prcil, o DFA equivlente tem um número de estdos sustncilmente inferior. Vejmos um exemplo. Exemplo 2.6.. Construir um DFA que ceite lingugem L compost pels cdeis em ={,} que contenhm três s seguidos ou três s seguidos, como por exemplo,,,. A procur direct deste DFA pode tornr-se num operção stnte complicd, mesmo pr um projectist experiente. É reltivmente fácil desenhr um DFA pr o cso de, ou pr o cso de, ms não é ssim pr mos os csos simultnemente. No entnto usndo o não determinismo solução surge de form stnte simples. Primeiro, poderemos desenhr o NFA que ceit s cdeis com. O NFA, vendo um zero, decide um de dus coiss: ele não é o início de (e neste cso deix-se ficr onde está), ele é o início de (e então trnsit pr o estdo seguinte n corrid de três zeros). Será então:,, q q 2 q f q Figur 2.6.. Primeir prte do exemplo 2.6. LEI/DEI/FCTUC/29/@ADC Documento de trlho 86

Teori d Computção Cpítulo 2. Autómtos Finitos Este NFA ceit tods s cdeis que contenhm, e só esss. De fcto: - se um cdei contém, há sempre um cminho ceitdor pr el. Por exemplo no cso d cdei deix-se ficr em q té o nono crácter e depois trnsit sucessivmente pr q, q 2 e q f, ficndo í té o fim d cdei. - se um cdei não contém não é possível chegr o estdo ceitdor. Por exemplo pr cdei, se o NFA trnsit com lgum dos zeros pr o estdo q, ele c por morrer porque lhe prece um em q ou em q 2 e não está í definid qulquer trnsição com. Se o utómto não tivesse possiilidde de ficr em q com, vnçri sempre pr q qundo lesse um (por exemplo em ). Ms se seguir prece, ele entr num configurção mort, ddo que não há síd de q com, e por isso terminri computção não ceitndo cdei ). Or contece que sequênci prece mis à frente e cdei deveri ser ceite. O fcto de poder esperr em q, plpitndo-lhe que quele não é ind d sequênci pretendid, evit est situção. Segundo, desenhmos o NFA que ceit s cdeis com (e só esss). Por rzões nálogs ele será,, q q f q q 2 Figur 2.6.2. Segund prte do exemplo 2.6. Agor, pr termos possiilidde ds dus situções, st-nos juntr os dois utómtos, prtir do estdo inicil comum, otendo-se Fig 2.6.3. O estdo finl ceitdor pode tmém ser comum (emor este fcto não sej origtório).,, q q 2 q 3 q Figur 2.6.3. Exemplo 2.6.. completo q 4 q 5 LEI/DEI/FCTUC/29/@ADC Documento de trlho 87

Teori d Computção Cpítulo 2. Autómtos Finitos E temos o NFA procurdo. Vmos gor procurr um DFA equivlente. Pr isso constru-se tel de trnsições: Tel 2.6.. Trnsições d Fig. 2.6.3 N q q, q q, q 4 q q 2 - q 2 q 3 - q 3 q 3 q 3 q 4 - q 5 q 5 - q 3 A primeir dificuldde deriv do fcto de lgums trnsições terem vários estdos lterntivos de chegd, que são por isso co-lcnçáveis. O significdo dos estdos é definido pelo projectist. Assim sendo, nd nos impede de crirmos estdos no DFA que correspondm conjuntos de estdo do NFA. E será lógico que todos os estdos do NFA colcnçáveis pel mesm trnsição componhm um estdo do DFA lcnçável por ess mesm trnsição, como n Fig. 2.6.4. q q 2 q q 23 q 3 ) no NFA ) no DFA equivlente Figur 2.6.4. Pormenor do cálculo do DFA equivlente: dois estdos q 2 e q 3 do NFA colcnçáveis pel trnsição produzem um só estdo q 23 no DFA equivlente. LEI/DEI/FCTUC/29/@ADC Documento de trlho 88

Teori d Computção Cpítulo 2. Autómtos Finitos Pr definir s trnsições no DFA, etiquetem-se os seus estdos com índices grupndo os índices dos estdos do NFA co-lcnçáveis pels mesms trnsições. N Fig. 2.6.3 de q com, pode-se ir ou pr q ou pr q, ou sej pr o conjunto {q, q } Crie-se um estdo equivlente este conjunto. Vmos chmr-lhe q pr sermos que corresponde. De q com, pode-se ir ou pr q ou pr q 4, ou sej pr o conjunto {q, q 4 } Crie-se de igul modo um estdo equivlente este conjunto, q 4. Estes estdos q e q 4 vão integrr o DFA. Temos que ser o que se pss neles qundo prece ou. Pr isso colocmo-los n primeir colun d tel de trnsições, como indicdo n Tel 2.6.2.. Tel 2.6.2. Trnsições do DFA equivlente. q {q, q } = q {q, q 4 }= q 4 q q 4 Agor temos que imginr o seguinte: se o DFA está em q e prece, o que se pssrá? Semos que q corresponde do conjunto {q, q } do NFA. E portnto quel pergunt é equivlente : se o NFA está ou em q ou em q e prece um, o que se pssrá? Se está em q pode ir pr q ou pr q. Se está em q pode ir pr q 2. Portnto estndo em {q, q } pode ir pr {q, q, q 2 }. Crie-se por isso no DFA o estdo q 2. E se o DFA está em q e prece, o que se pssrá? Fzendo um nálise semelhnte conclui-se que estrá em q 4. Neste cso há um nunce que convém relçr: se está em q, com vi pr o vzio,. Ms {, q, q 4 }={q, q 4 }. LEI/DEI/FCTUC/29/@ADC Documento de trlho 89

Teori d Computção Cpítulo 2. Autómtos Finitos Nest segund etp surgiu o novo estdo do DFA, q 2, que deve ser colocdo n primeir colun. q 4 já lá estv. Tel 2.6.3. Mis trnsições do DFA equivlente q {q, q } = q {q, q 4 }= q 4 q {q, q, q 2 }= q 2 {, q, q 4 }= q 4 q 2 E gor continu-se nálise. De q 4 com pr onde se vi? E com? E de q 2? Sempre que prece um novo estdo do DFA (vê-se pls etiquets) tem que se colocr n primeir colun n linh seguinte ind não ocupd. Termin-se qundo só se otêm estdos do DFA que já existem n ª colun. Tel 2.6.4. Tods s trnsições do DFA equivlente q {q, q } = q {q, q 4 }= q 4 q {q, q, q 2 }= q 2 {, q, q 4 }= q 4 q 4 q q 45 q 2 q 23 q 4 q 45 q q 345 q 23 q 23 q 34 q 345 q 3 q 345 LEI/DEI/FCTUC/29/@ADC Documento de trlho 9

Teori d Computção Cpítulo 2. Autómtos Finitos q 3 q 23 q 34 q 34 q 3 q 345 Rest-nos identificr o(s) estdo(s) ceitdor(es) pr termos o DFA completmente definido. O NFA ceit um cdei qundo existe pelo menos um computção que leve um estdo finl. Um utómto, sej DFA, sej NFA, pode ter vários estdos finis ceitdores. Os estdos do DFA, deduzido do NFA, correspondem conjuntos de estdos do NFA. Se num desses conjuntos existir um estdo ceitdor (no NFA) então quer dizer que o estdo correspondente do DFA tmém será ceitdor. De fcto pr se chegr esse conjunto de estdos (no NFA), leu-se um cert cdei. Se um dos estdos do conjunto é ceitdor, quer dizer que depois de lid ess cdei se chegou um ceitdor, e portnto cdei é ceite pelo NFA. Pr que o DFA sej equivlente, tem tmém que ceitr, e em consequênci o novo estdo crido no DFA correspondente o conjunto de estdos do DFA tem que ser ceitdor. Portnto, neste exemplo, serão ceitdores no DFA todos os estdo que contenhm o estdo q 3 do NFA, ou sej, q 23, q 345, q 3, q 34. A prtir d tel de trnsições desenh-se o grfo do DFA: q q 2 q 23 q q 34 q 4 q 45 q 345 q 3 Figur 2.6.4. Autómto determinístico equivlente com vários estdos finis LEI/DEI/FCTUC/29/@ADC Documento de trlho 9

Teori d Computção Cpítulo 2. Autómtos Finitos Depois de o utómto entrr num dos estdos ceitdores, pens pode trnsitr entre estdos ceitdores e por isso todos os estdos ceitdores se podem fundir num só, como no grfo seguinte. As etiquets dos estdos form escolhids de modo sugestivo, indicndo como se cheg o estdo (qul ou quis os últimos crcteres lidos). Excepto pr o estdo finl, que poderímos etiquetr por ou por, ou por ms., F Figur 2.6.5. Simplificção do grfo d Fig. 2.6.4, com um só estdo finl Olhndo gor com tenção pr o grfo do DFA poderemos ver que ele está de cordo com s orientções que vimos pr desenhr DFAs no prágrfo 2.3. As etiquets dos estdos n Fig. 2.6.5 reflectem esse fcto. Exercício 2.6.. Clculr o DFA equivlente o NFA d Figur 2.6.6.,, Figur 2.6.6. Exercício 2.6. Exemplo 2.6.2. Desenhr o DFA que ceit em ={,} tods s cdeis que terminm em. Em primeiro lugr desenh-se um NFA, por ser mis simples. Depois procur-se o DFA equivlente. LEI/DEI/FCTUC/29/@ADC Documento de trlho 92

Teori d Computção Cpítulo 2. Autómtos Finitos O NFA está no estdo inicil té que lhe plpit que vêm í os dois últimos crcteres e que eles serão. Logo,, 3 Figur 2.6.7. Exemplo 2.6.2 Vmos gor clculr tel de trnsições do DFA equivlente: Tel 2.6.5.Trnsiçoes d Fig. 2.6.7 Estdo ctul 3 3 = = O DFA terá 3 estdos, os que se otêm n primeir colun d Tel 2.6.5., 3 Figur 2.6.8. O DFA equivlente o NFA d Fig. 2.6.7. Exemplo 2.6.3. Desenhr o DFA que ceit em ={,} tods s cdeis em que o 3º símolo contr do fim é. Por exemplo pertence, ms não. Por muito que tenhmos treindo noss rte de desenhr DFAs não é fácil encontrr de imedito um solução. No entnto no contexto não determinístico é simples: imginemos o LEI/DEI/FCTUC/29/@ADC Documento de trlho 93

Teori d Computção Cpítulo 2. Autómtos Finitos NFA que está ler cdei, não se move té que lhe plpit que o que í vem é o ntepenúltimo crácter d cdei e então vnç pr o estdo ceitdor. Teremos então o seguinte NFA com três estdos, Fig. 2.6.9.,,, 2 3 Figur 2.6.9. NFA do exemplo 2.6.3 Vmos gor clculr o DFA equivlente. Começmos pel tel de trnsições, usndo técnic descrit cim, nomedmente qunto à etiquetgem dos estdos. Tel 2.6.6. Trnsições do NFA d Fig. 2.6.9. 2 2 2 3 3 2 23 23 3 3 2 2 23 3 3 23 23 23 O DFA terá 9 estdos e está desenhdo n Fig.2.6.. Todos os estdos que contenhm 3 n su etiquet serão ceitdores. LEI/DEI/FCTUC/29/@ADC Documento de trlho 94

Teori d Computção Cpítulo 2. Autómtos Finitos, 2 3 Figur 2.6.. DFA equivlente o NFA d Fig. 2.6.3. 2 3 23 23 Não seri fácil desenhr directmente no contexto determinístico Compre-se simplicidde do NFA com do DFA. Este cso evidenci de form clr utilidde dos NFAs. Será possível reduzir o número de estdos ceitdores n Fig. 2.6.? Cso em que o NFA tem trnsições- Se um NFA tem trnsições-, qundo clculmos o DFA equivlente temos que ter muito cuiddo pr não cometermos erros. A figur seguinte represent prte de um NFA. A prtir do estdo com, onde é possível chegr? Vê-se imeditmente que o estdo 2. Ms existe tmém um trnsição de pr 3, e depois com trnsit-se pr 4. Portnto prtindo de com um simples, que é o mesmo que, pode-se chegr 4. Mis ind, de 4 pr 5 trnsit-se com. Portnto de té 5 tmém se pode ir com =. Por isso prtir de com cheg-se um elemento do conjunto {2,3,4,5} e portnto n tel de trnsição do DFA equivlente temos que crir o estdo q 2345. 2 3 4 5 Figur 2.6.. NFA com trnsições-. LEI/DEI/FCTUC/29/@ADC Documento de trlho 95

Teori d Computção Cpítulo 2. Autómtos Finitos Ao conjunto {2,3,4,5} chm-se o fecho- (-closure) do estdo. Ao conjunto {,3} chm-se fecho- ( -closure), sendo composto por todos os estdos que se podem lcnçr de com (inclui nturlmente o próprio); pode ter um número qulquer de estdos, dependendo do cso, usndo trnsições, té o número totl de estdos do utómto. N tel de trnsições, qundo clculrmos o DFA equivlente, tem que se ter muit tenção pr com o fecho- de um estdo qundo estmos clculr s trnsições do estdo com os crcteres do lfeto. Se houver um trnsição- prtir do estdo inicil no NFA, então o estdo inicil do DFA equivlente será o estdo composto pelo inicil do NFA mis o fecho- do estdo inicil do NFA. Exemplo 2.6.4. Sej o utómto nterior com um estdo 6 ceitdor e um trnsição- do estdo inicil pr o estdo 6, Fig. 2.6.2. Clcule-se o DFA equivlente. A primeir tref será vermos qul o estdo inicil do DFA. Como se vi de pr 6 ceitdor com, quer isto dizer que o NFA ceit. Or únic form de o DFA tmém ceitr é fzendo o seu estdo inicil ceitdor. O estdo 3 do NFA pode ser lcnçdo sem consumir crcteres, ele fz prte do fecho- de. Portnto o estdo inicil do DFA será 36 e será por ele que iniciremos construção d su tel de trnsições. 2 4 3 5 Tel 2.6.6. Trnsições d Fig. 2.6.2. Estdo 36 245 4 245 2 45 6 4 46 Figur 2.6.2. Exemplo 2.6.4. 2 2 45 46 46 46 LEI/DEI/FCTUC/29/@ADC Documento de trlho 96

Teori d Computção Cpítulo 2. Autómtos Finitos O DFA equivlente terá 7 estdos, dos quis dois serão ceitdores: 36 e 46. Fic o cuiddo do leitor o seu desenho e identificção d lingugem que ele ceit. 2.7. Redução do número de estdos em Autómtos Finitos Qulquer DFA define um únic lingugem. Ms um lingugem não define um único DFA. Pr um lingugem existem muitos possíveis DFA s, isto é, existem muitos DFA s equivlentes, cujo número de estdos pode ser em diferente. Por rzões de simplicidde, import oter o de menor número de estdos. Por exemplo se quisermos progrmr um DFA, o espço necessário pr computr é proporcionl o número de estdos. Por rzões de eficiênci deve-se reduzir o número de estdos o mínimo possível. Vejmos lguns exemplos simples. Exemplo 2.7. O utómto d Fig. 2.7. ceit tods s cdeis no seu lfeto, porque todos os estdos são ceitdores., q q, Figur 2.7.. Ele tem um equivlente com um só estdo:, q Figur 2.7.2. Autómto equivlente o d Fig. 2.7. Exemplo 2.7.2. No utómto DFA seguinte há estdos mis. LEI/DEI/FCTUC/29/@ADC Documento de trlho 97

Teori d Computção Cpítulo 2. Autómtos Finitos q q q 3 q 2 Figur 2.7.3. Exemplo 2.7.2. Se se cheg q 3 com quer sej prtir de q quer sej prtir de q 2, coloc-se possiilidde de fundir q com q 2 no estdo q 2., q q 3 q2 Figur 2.7.4. DFA equivlente o d Fig. 2.7.3. Têm que se introduzir s trnsições que mntenhm equivlênci com o utómto originl. No utómto seguinte, Fig. 2.7.2 tmém se podem eliminr lguns estdos. q q 3, q q 2 q 4, Figur 2.7.5 Em primeiro lugr os dois estdos finis podem-se fundir num só, ddo que s trnsições prtir deles são reflexivs (voltm eles): sej ele q 34. LEI/DEI/FCTUC/29/@ADC Documento de trlho 98

Teori d Computção Cpítulo 2. Autómtos Finitos q q q 2 q 34, Figur 2.7.6. Simpificção do DFA d Fig. 2.7.5. Em segundo lugr cheg-se q 34 com, quer de q, quer de q 2. Por outro ldo de q com vi-se pr q 2 e de q 2 com vi-se pr q 2. Se fundirmos q e q 2 em q 2, mntendo esss trnsições, o DFA resultnte, Fig. 2.7.7 com pens 3 estdos, é equivlente o inicil., q, q 34 q 2 Figur 2.7.7. DFA finl no exemplo 2.7.2 Este procedimento heurístico, sedo n noss hilidde, pode formlizr-se num lgoritmo de minimizção do número de estdos de um DFA. Pr o seu desenvolvimento vejmos lgums definições prévis. Estdos indistinguíveis Dois estdos p e q dizem-se indistinguíveis se: - se prtir de um deles se cheg um estdo ceitdor com um cdei w, tmém se cheg um estdo ceitdor prtir do outro com mesm cdei w, formlmente, * (p,w) F * (q,w) F, pr tods s cdeis w *. e - se prtir de um deles se cheg um estdo não ceitdor com um cdei x, tmém se cheg um estdo não ceitdor prtir do outro com mesm cdei x: * (p,x) F * (q,x) F, pr tods s cdeis x *. LEI/DEI/FCTUC/29/@ADC Documento de trlho 99

Teori d Computção Cpítulo 2. Autómtos Finitos Num grfo teremos seguinte situção: u p w u p x v q w v q x Figur 2.7.8. Os estdos p e q são indistinguíveis. Estdos distinguíveis por um cdei Se existir um cdei w tl que de p se chegue um estdo ceitdor e de q um não ceitdor, * (p,w) F * (q,w ) F ou tl que de p se chegue um não ceitdor e de q um ceitdor, * (p,w) F * (q,w ) F então os estdos p e q são distinguíveis pel cdei w. Dois estdos ou são distinguíveis ou são indistinguíveis. A indistinção tem s proprieddes de um relção de equivlênci R:.p R p (reflexiv) 2. p R q q R p (simétric) 3. p R q e q R r p R r (trnsitiv) Pr reduzir dimensão de um DFA, procurm-se os estdos indistinguíveis e cominm-se entre si. A rcionlidde dest operção é evidente: se são indistinguíveis pr que se hão-de ter lá mos? O lgoritmo divide-se em dus etps: - primeiro mrcm-se os estdos distinguíveis, LEI/DEI/FCTUC/29/@ADC Documento de trlho

Teori d Computção Cpítulo 2. Autómtos Finitos - segundo, fundem-se os estdos indistinguíveis. Procedimento de mrcção dos estdos distinguíveis º- Removem-se todos os estdos incessíveis (limpez do DFA). Pode fzer-se enumerndo todos os cminhos simples no grfo (cminhos sem ciclos fechdos) que prtem do estdo inicil. Um estdo cessível tem que estr num desses cminhos. Se um estdo não está em qulquer cminho, quer dizer que não se pode lá chegr prtir do estdo inicil, e portnto é incessível. 2º Considerm-se todos os pres de estdos (p, q). Se p é ceitdor, p F, e se q é não ceitdor, q F, então o pr (p, q) é distinguível. De fcto que mior distinção poderi hver entre dois estdos? Mrcm-se todos esses pres como distinguíveis. Mrcm-se os pres, não os estdos individulmente. Um estdo individul pode pertencer um pr distinguível e o mesmo tempo um pr indistinguível. 3º Considere-se um pr de estdos (p, q). Clculem-se s trnsições prtir deles pr todos os crcteres do lfeto, tomdos um de cd vez. p p q q Figur 2.7.9. Trnsições de p e de q com. Se houver pelo menos um crácter tl que o pr (p,q ) resultnte desss trnsições sej distinguível, então o pr (p, q) é distinguível. Este procedimento fz-se pr todos os pres de estdos (p, q) em Q. No fim todos os pres distinguíveis estão mrcdos como tl. Ver demonstrção por exemplo em Linz, Teorem 2.3 (pág. 64). Note-se que mrcção é pr os pres, não pr os estdos individulmente. Depois de se fzer mrcção dos estdos distinguíveis, prticion-se o conjunto Q dos estdos do DFA num certo número de suconjuntos disjuntos Q ={q i,q j,, q k }, Q 2 ={q l,q m,, q n },, Q x ={q o,q p,, qr} tis que LEI/DEI/FCTUC/29/@ADC Documento de trlho

Teori d Computção Cpítulo 2. Autómtos Finitos - qulquer estdo q pertence um e só um deles, - os estdos do mesmo suconjunto são indistinguíveis entre si, - qulquer pr de estdos, tl que um dos elementos pertence um dos suconjuntos e o outro pertence outro, é distinguível. Est prtição é sempre possível. A prtir dest prtição plic-se o procedimento seguinte. Ddo o DFA M=(Q,,,q,F) clcul-se o equivlente M ( Q,,, q, F) por: º Pr cd um dos conjuntos indistinguíveis Q, Q 2, Q x cri-se um estdo equivlente etiquetdo propridmente ( su etiquet é o conjunto ds etiquets dos estdos do suconjunto, por exemplo pr Q será o estdo equivlente q ij k.) 2º No utómto originl M consider-se trnsição (q r,)=q p do estdo q r pr o estdo q p. Procurm-se os dois suconjuntos que pertencem q r e q p. Trç-se trnsição entre os estdos equivlentes esses suconjuntos. Isto é, se q r Q ={q i,q j,, q k }, e q p Q 2 ={q l,q m,, q n } então desenhr no grfo trnsição ( q, ) q ij... k lm... n 3º O estdo inicil de M, q, é o que contém etiquet do utómto originl. 4º O conjunto dos estdos ceitdores de M, F, é o conjunto de todos os estdos em cuj etiquet entr um estdo ceitdor do DFA originl. Exemplo 2.7.3.Minimizr o conjunto de estdos do DFA d Figur 2.7.. LEI/DEI/FCTUC/29/@ADC Documento de trlho 2

Teori d Computção Cpítulo 2. Autómtos Finitos 4 2 5 6 3 Figur 2.7.. DFA minimizr. 7 º Mrcção dos estdos distinguíveis Hvendo um só estdo finl, ele é distinguível de todos os outros. Portnto qulquer pr que o contenh é distinguível. Vmos gor considerr segund etp: ver s trnsições de cd pr com um e com um. Oteremos s dus tels seguintes. Tel 2.7.. Trnsições com. 2 3 4 5 6 7 2,2 2,4 2,6 2,4 2,6 2,4 2,6 2 4,2 4,4 4,6 4,4 4,6 4,4 4,6 3 6,2 6,4 6,6 6,4 6,6 6,4 6,6 4 4,2 4,4 4,6 4,4 4,6 4,4 4,6 5 6,2 6,4 6,6 6,4 6,6 6,4 6,6 6 4,2 4,4 4,6 4,4 4,6 4,4 4,6 7 6,2 6,4 6,6 6,4 6,6 6,4 6,6 Tel 2.7.2 Trnsições com 2 3 4 5 6 7 3,3 3,5 3,7 3,5 3,7 3,5 3,7 2 5,3 5,5 5,7 5,5 5,7 5,5 5,7 3 7,3 7,5 7,7 7,5 7,7 7,5 7,7 4 5,3 5,5 5,7 5,5 5,7 5,5 5,7 5 7,3 7,5 7,7 7,5 7,7 7,5 7,7 6 5,3 5,5 5,7 5,5 5,7 5,5 5,7 7 7,3 7,5 7,7 7,5 7,7 7,5 7,7 LEI/DEI/FCTUC/29/@ADC Documento de trlho 3

Teori d Computção Cpítulo 2. Autómtos Finitos D ª etp, nests dus tels todos os pres que contenhm o estdo 6 devem ser mrcdos como distinguíveis (colorido), ddo que 6 é o único ceitdor, excepto o pr (6,6) que é indistinguível. Os pres que correspondem às céluls somreds serão gor mrcdos distinguíveis. N tel de trnsições com mrcm-se todos os distinguíveis com. Bst fzê-lo n metde superior (ou inferior) d tel. Neste cso não há nenhum.. Será o pr (,2) distinguível? (,2) com dá (2,4), (2, 4) com dá (4, 4), nenhum distinguível; portnto não se mrc. Vi-se ver à tel de se o pr (2,4) é distinguível. Pr o pr (3,4): (3,4) com dá (6,4), já mrcdo e portnto (3,4) mrc-se como distinguível. O mesmo pr todos os outros pres. Otém-se tel seguinte, em que identific os distinguíveis. Tel 2.7.3. Estdos distinguíveis ()e indistinguíveis () 2 3 4 5 6 7 2 3 4 5 6 7 Agor prticion-se o conjunto dos estdos em suconjuntos que oedeçm às três condições cim enuncids. Não é um tref fácil. LEI/DEI/FCTUC/29/@ADC Documento de trlho 4

Teori d Computção Cpítulo 2. Autómtos Finitos O estdo 6 só é indistinguível de si próprio, portnto tem que ficr isoldo num suconjunto. Pr os restntes desenhe-se o grfo d propriedde indistinguível. Os vértices do grfo serão os estdos. Entre dois estdos existirá um rest se eles pertencerem um pr indistinguível, isto é, se n últim tel respectiv célul tiver. Não é necessário desenhr rest reflexiv (do estdo pr ele mesmo). 2 3 4 5 7 Figur 2.7.. Prtição dos estdos É em visível formção de dois su-grfos conexos : {,2,4}, {3,5,7}. A prtição {, 2, 4} {3, 5, 7} {6} verific s condições. O DFA mínimo terá 3 estdos. 24 357 6 Figur 2.7.2. o DFA mínimo equivlente o d Fig. 2.7.. As lingugens dos dois utómtos, o originl e o reduzido, são equivlentes. Pr um utómto com um elevdo número de estdos, este procedimento mnul de inspecção pr se identificrem os pres distinguíveis não é fácil. No entnto este lgoritmo pode progrmr-se. Ele tmém é conhecido pelo lgoritmo de enchimento d tel (tle- filling lgorithm, por exemplo em Hopcroft p.56). 2.8 Um plicção dos DFA: usc de texto (text serch, Hopcroft, 68) Os utómtos finitos encontrm n usc de texto um plicção interessnte. Como semos pesquis de cdeis de crcteres é um ds operções mis executds n we. Ddo um LEI/DEI/FCTUC/29/@ADC Documento de trlho 5

Teori d Computção Cpítulo 2. Autómtos Finitos conjunto de plvrs, que poderemos chmr plvrs chve, queremos encontrr tods s ocorrêncis dels num certo texto. Os utómtos finitos não determinísticos permitem fzê-lo de um modo expedito e simples. Pr um plvr chve, por exemplo chve, desenh-se um utómto com: - um estdo inicil que trnsit pr si próprio com todo e qulquer crácter do lfeto, - um corrid de estdos os quis se cheg depois de ler sucessivmente um crácter d plvr chve c h v e 2 3 4 5 6 Figur 2.8.. NFA pr usc d plvr chve. Pr se implementr o NFA, pode-se escrever um progrm que simul o seu funcionmento, clculndo os estdos em que está pós ler um crácter. Sempre que há um escolh, fz-se um ou váris réplics do NFA. É no entnto mis prático clculr o DFA equivlente e então simulá-lo. Pr isso plic-se técnic pdrão: constrói-se tel de trnsições e desenh-se o grfo depois. Se o lfeto for composto pelos 26 crcteres do português ( cdefghijklmnopq rstuvwxyz), teremos muits etiquets pr s rests do utómto. Pr simplificr su escrit poderemos usr notção --e querendo dizer todos os crcteres do lfeto menos e e. Est notção é ceite pelo DEM (Deus Ex-Máquin). Assim sendo, o DFA equivlente o NFA d Fig. 2.8. tem o specto d Fig. 2.8.2. Fic o cuiddo do leitor verificr, construtivmente, que ssim é. -c Figur 2.8.2. DFA equivlente o NFA d Fig. 2.8.. -c -v c - c h v 2 3 4 5 e 6 -h - -e LEI/DEI/FCTUC/29/@ADC Documento de trlho 6

Teori d Computção Cpítulo 2. Autómtos Finitos Exercício 2.8. O seguinte NFA encontr num texto s plvrs doce e mel. Desenhr o o DFA equivlente. = {,, c,..., z}. d o c 2 3 e 4 Figur 2.8.3 NFA pr o exemplo 2.8.. m 5 6 e l 7 Desenhr o DFA equivlente. Exercício 2.8.2. Desenhr o DFA que ceit s plvrs mrg e crt. = {,, c,..., z}. 2.9 Autómtos finitos trnsdutores Os DFA e NFA que estudámos té qui são ceitdores e não têm síd. Apens lêem cdeis, reconhecendo-s ou não como pertencentes um dd lingugem. Há outros tipos de utómtos, como vimos já no Cp., que têm um registo de síd, cujo conteúdo pode vrir conforme evolução d configurção do utómto. São os trnsdutores, de que se conhecem dois tipos: s máquins de Mely e de More. Amos se podem enqudrr no esquem gerl que vimos no Cp. e qui se reproduz n Fig. 2.9. Ficheiro de entrd S Figur 2.9.. Esquem gerl d um utómto finito Unidde de Controlo q k M e m ó r i Ficheiro de síd LEI/DEI/FCTUC/29/@ADC Documento de trlho 7

Teori d Computção Cpítulo 2. Autómtos Finitos 2.9. Máquins de Mely Num máquin de Mely síd depende do estdo interno do utómto ctul e d entrd ctul y k = f (s k, q k ) Definição 2.9. Máquin de Mely. Um Máquin de Mely é definid pelo sexteto (gor há mis um músico ) M = (Q,,,,, q ) em que Q é o conjunto finito de estdos internos, é o lfeto de entrd (conjunto finito de crcteres), é o lfeto de síd (conjunto finito de crcteres), : Q x Q é função de trnsição de estdo, : Q x é função de síd, q Q é o estdo inicil Comprndo com definição de utómto ceitdor verificmos que não há qui estdos ceitdores (F), ms há em contrprtid um lfeto de síd e um função de síd. Tl como nos ceitdores, tmém um trnsdutor é representdo por um grfo. A etiquetgem dos estdos e ds rests é no entnto diferente. Num máquin de Mely us-se notção d figur seguinte: q i / Entrd/Síd q j Figur 2.9.2 Notção d Máquin de Mely Que tem seguinte interpretção: estndo máquin no estdo q i e lendo n entrd, LEI/DEI/FCTUC/29/@ADC Documento de trlho 8

Teori d Computção Cpítulo 2. Autómtos Finitos - trnsit pr o estdo q j - envi pr síd. Exemplo 2.9. / Considere-se máquin de Mely d Fig.2.9.3 q Se lhe dermos ler cdei el fz: - lê e escreve n síd trnsitndo pr o estdo q, - lê, escreve, pssndo q 2 - lê, escreve, pss q, - lê, escreve, mntém-se em q, - lê, escreve, mntém-se em q q / / / q 2 / No fim d leitur está em q e escreveu n síd. / Figur 2.9.3. Máquin de Mely do exemplo 2.9.. Isto é, deslocou cdei pr direit um cs (shift right). As máquins de Mely podem implementr-se por circuitos lógicos, e funcionm em modo ssíncrono: logo que entrd vrir pode vrir síd. Figur 2..9.4. Esquem gerl de um máquin de Mely. ( em http://www2.ele.ufes.r/~ilson/digitl2/cld/chpter8/chpter8.doc4.html) 2.9.2. Máquins de Moore As máquins de Moore distinguem-se ds de Mely pelo fcto de su síd depender pens do estdo ctul y k = f (q k ) LEI/DEI/FCTUC/29/@ADC Documento de trlho 9

Teori d Computção Cpítulo 2. Autómtos Finitos isto é, não dependem d entrd ctul. Definição 2.9.2. Máquin de Moore. Um Máquin de Moore é definid pelo sexteto M = (Q,,,,, q ) Sendo Q o conjunto finito de estdos internos, o lfeto de entrd (conjunto finito de crcteres), o lfeto de síd (conjunto finito de crcteres), : Q x Q é função de trnsição de estdo, : Q é função de síd, q Q é o estdo inicil. No seu grfo us-se notção Estdo/Síd q i / Entrd q j / Figur 2.9.5.Notção ds Máquins de Moore. significndo que qundo entr no estdo q i escreve n síd, depois com n entrd trnsit pr q j e escrev n síd. Exemplo 2.9.2 A Máquin de Moore d Fig. 2.9.6 fz, tl como nterior, o deslocmento à direit d entrd que se lhe fornece. LEI/DEI/FCTUC/29/@ADC Documento de trlho

Teori d Computção Cpítulo 2. Autómtos Finitos Dá-se-lhe, estndo no estdo - lê, pss escreve - lê, pss 3, escreve - lê, mntém 3, escreve - lê, pss 4, escreve - lê, pss 5, escreve - lê, pss 4, escreve - lê, pss 5, escreve Portnto escreveu. Figur 2.9.6 / / 2/ 3/ 4/ 5/ 6/ A máquin de Moore escreve n síd logo pós trnsitr de estdo. Por isso su implementção por hrdwre fz-se com ilustrdo n figur seguinte. Trt-se de um máquin síncron (s mudnçs n síd são sincronizds com s mudnçs de estdo). Figur 2.9.7. Esquem gerl d Máquin de Moore (de http://www2.ele.ufes.r/~ilson/digitl2/cld/chpter8/chpter8.doc4.html). Estes dois exemplos indicim que existe equivlênci entre s máquins de Mely e de Moore: dd um máquin de Mely é possível encontrr um máquin de Moore que, pr s mesms entrds, dá s mesms síds. E vice-vers. (Ignorndo síd do estdo inicil n máquin de Moore). A de Moore equivlente tem em gerl um mior número de estdos. As máquins de Mely e de Moore são os cvlos de tlh no projecto de circuitos lógicos complexos. Existe té softwre que simul ests máquins e ger o circuito lógico prtir do utómto desenhdo com um grfo (ver por ex. http://www.ses.upenn.edu/~ee2/foundtion/foundtion_impl4.html ou http://www.xilinx.com/univ/xse42.html ). LEI/DEI/FCTUC/29/@ADC Documento de trlho

Teori d Computção Cpítulo 2. Autómtos Finitos Biliogrfi. An Introduction to Forml Lnguges nd Automt, Peter Linz, 3rd Ed., Jones nd Brtelett Computer Science, 2 Models of Computtion nd Forml Lnguges, R. Gregory Tylor, Oxford University Press, 998. Introduction to Automt Theory, Lnguges nd Computtion, 2nd Ed., John Hopcroft, Rjeev Motwni, Jeffrey Ullmn, Addison Wesley, 2. Elements for the Theory of Computtion, Hrry Lewis nd Christos Ppdimitriou, 2nd Ed., Prentice Hll, 998. Introduction to the Theory of Computtion, Michel Sipser, PWS Pulishing Co, 997. G. H. Mely, A Method for Synthesizing Sequentil Circuits, Bell System Tech. J. vol 34, pp. 45 79, Sept 955. Apêndice. O softwre JFLAP (livre) pr desenho e simulção de utómtos. http://www.cs.duke.edu/csed/jflp LEI/DEI/FCTUC/29/@ADC Documento de trlho 2

Teori d Computção Cpítulo 2. Autómtos Finitos LEI/DEI/FCTUC/29/@ADC Documento de trlho 3

Teori d Computção Cpítulo 2. Autómtos Finitos Livre: This work is licensed under Cretive Commons Attriution-NonCommercil- ShreAlike 2.5 License. Tem váris outrs funcionliddes muito úteis em cpítulos posteriores (equivlênci de utómtos, grmátics, etc.). O softwre DEM- Deus Ex-Mquin (tmém pr simulção de utómtos) está disponível n págin d cdeir. LEI/DEI/FCTUC/29/@ADC Documento de trlho 4