Você está na página 1de 34

LINGUAGENS REGULARES

com uma pergunta: O que 6 um' computador? comeqa A teoria da computaEao coi:',::,lt: a qual es'"ilt'i que essa ;", *tt-;do' F,, taluez,umaquesteo pore-, esses compntadores,:::*t: 9::t::: e tou teclando o* .o*pJrralr. para nos permitir c'onstrulruma complicados complicados demasiadamente Em vez disso, usamos di."t"-"nt". marcmedr ^^iffil;;b;" rcoria "i", motlelo co'npatacional' Como qualum um computado, 'd"^tl"iioth'rnudo pode serprecisoem alguns computacional quer modelo .-..ie,ttta, o* modelo detalhes,mastalvez"e""-o"oos'fusirn'utilizaremosv6riosmodeloscomfocalizat' que dascaracteristicas desejemos i"p""a*a" diferentes, putacionais de estadns o mdquina com t' -oi"fo mais simples' denominai Comegaremos f.nitos ou aut6matof'nito'

1.1

':': l'

rri '

1:rrr

i "i:

ir::r

lll :': )

':

il'

.)

i(:rl:

itl lr':i

rf ':: r:r i':

i:::i-

AUT6MATOS

FINITOS

com'umaquantidade finitos sio bonsmodelosparacomputadores Os aut6matos com compotadorpode.fazer uma limitadi d" -"-ori". o queu1n exrremamente com esses irteist Na verdade,interagimos mem6riat6o pequenaiin"li", "rir"s residemno coraEiode v6riosdispositivos o compuradores rempoil;;F;i; eletromecdnicos. 3l

32

CAPiTULO

I /LINGUAGENS

REGULARES

O controlador de uma porta automilttca 6.um exemplo de dispositivo desse tipo. Freqiientemente encontradas em entradas e saidas de supermercados' as portas automiticas abrem-se ao sentir que uma pessoaestdse aproximando. Uma porta autom6tica tem um tapete na frente para detectar a presengade uma pessoa que esei prestes a atravessara passagem. Outro tapete est6 localizado atrSs da passagemde modo que o controladorpossa manter a porta aberta tempo suficiente para a pessoapassarcompletamente e tamb6m para que a porta nio annja algu6m que esteja atris dela no momento que ela se abre. Essaconfiguragio est6 mostrada na figura a seguir.

porta FIGURA T.T \tsio superior de uma porta automdtica.

O controlador encontra-se em um dos dois estados: "ABERTO" ou "FECHADO," representando a condigdo correspondente da porta. Como mostrado nas figuras seguintes,h6 quatro condig6es de entrada possiveis: "FRENTE" (significando que uma pessoaest6 pisando no tapete frontal da porta de passagem), "ATRLs" (significando que uma pessoaest6 pisando sobre o tapete posteest6opisando em iior da porta de passagem),"AMBos" (significando que pessoas (significando que ningu6rn.est6 pisando sobre ambos os tapetes), e "NENHUM" qualquer um dos tapetes).

ATRAS AMBOS NtrNHUM

FRENTE ATRAS AMBOS FRENTE

/\
FECHADO

/\
ABERTO

\/

NENHUM

\/

FIGURA I.2 Diagrama de estadospara um controlador de porta autom6tica.

AUToMATOS FINITOS

33

sinal de entrada
NENHUM FRENTE ATRAS FECHADO ABERTO AMBOS FECHADO ABERTO

estado

FECHADO ABERTO

FECHADO FECHADO

ABERTO ABERTO

FIGURA I.3 t"b"l" de transiEso de estadospara o controlador de porta autom6tica'

Ocontroladorsemovedeestadoparaestado,dependendoda-entradaque entrada NENHUM ele recebe. Estando no estadoFECHADO e recebendocomo FECHADO' Adicionalmente' se a entrada o,, afU.s, ele permanece no estado se a porta for aberta AMBOSfor recebida,ele permaneceem FECHADO porque elapodebateremalgu6msobreotapeteposterior.MasseaentradaFRENTE ABERT6' se a entrada .fr"l'rt, ele se move i.r" o estado esBnro' No estado ele permanecer6em ABERTO' Se a FRENTE, ATRASou AMBOS for recebida, entrada NENHUM chegar,ele retornar6 ao estadoFECHADO' FECHAD. e rePor exemplo, ,r- Jorr,rolador poderia iniciar no estado FRENTE' ATRAS' NENHUM.' FRENTE' ceber a s6rie de sinais de entrada' pela s6rie de estaAMBOS,NENHUM, ATRASe NENHUM. Ent6o ele passaria ABERTO,FECHADo, ABERTo' ABERTo' dos: FECHADo (iniciando), ABERTo, FECHADO,FECHADOe FECHADO. pensar em um controlador de porta autom6tica como um autamato finito 6 nas-Figuras I '2 e L'3 ' ,itii porqu" sugere formas padrdo ie representaEdocomo, apenasum bit de mem5ria, c paz Ess. controlai'or 6 o* .o*pot.dor que tem dispositivos em qual dos dois estados o controlador est6. Outros a. i"gi;"t bem maiores' Em um controlador tam conirolalor", .o- mem5rias o elevador est6 e as "o,,,o"n, de elevador um estado pode representar o andar no qual Esse computador precisaria entradaspodem re, os ,irr"i, recebidosdos bot6es. para diversos aparcde vdrios^bits para guardar essainformag5o. controladores eletr6nicos, assim como thos dom6sticos, como lavadora de pratos e'termostatos de computadop"irt a" t.fOgios digit"is e calcuhdbras, s6o exemplos adicionais diipositivos requer que se tenha res com mem6rias limitadas. O desenho desses finitos' .- *.rr,. a metodologia e a terminologia de aut6matos cad'eiasde Markoa Os aut6matos finit& e suascontrapirtidas probabilisticas padr6es em dados. sio ferramentas riteis quando .rt"*oi tentando reconhecer de voz e em reconhecimento Essesdispositivos sio otilirrdot em processamento para modelar efazet de caracteres6pticos. fu cadeiasde l{arkov tam sido usadas previs6es de mldanga de pregos em mercados financeiros' ' finitos de uma Vr*o, agora daioma^olhada mais cuidadosa em aut6matos precisa de aut6mato perspecti-ra"matem6tica. Desenvolveremos uma definiE6o finitos e resulhrritt, orrr" terminolojia para descrever e manipular aut6matos Al6m de lhe dar um tados'te6rico, qo" d.r""r"*m seu poder e suaslimitaE6es. o que eles podem e nlo entendimento mais claro do que sio autamatos finitos e poa.-fazer,essedesenvolvimentote6ricovailhepermitirpraticaresesentir

34

CAPfTULO

I /LINGUAGENS

REGUL,ARES

maisconfortdvelcom definig6es matem6ticas, teoremas provasem um cen6rio e relativamente simples. Ao comegara descrever teoria matem6ticade aut6matosfinitos, fazemos a issono nivel abstrato, semreferoncia quarquer a aplicaEioespecifica. seguinte A figuramostraum aut6matofinito chama Mr. do

FTGURA 1.4 Um aut6mato finito chamado M1 loetem tr6s esados. Arigura 1.4 6 denominad,ad'iagrama dr esudo de M1. o aut6mato tem trs rotulados Qr, ez e qs. O estadainicial,gl, 6 indicado pela seta apontando para ele a partir do nada. o estado de aceiugdn, q2, 6. aquile com um circulo duplo. As setassaindo de um estado para outro s6o chamadas transigfues. Quando esseaut6mato recebe uma cadeia de entrada tal como 1i01, ele processaessacadeia e produz uma saida. A saida seri,aceita ou rejeita. consideraremos apenas essetipo de saida sim,/nio, no momento, para manter as coisas simples. o processamento comega no estado inicial de ui. o aut6mato recebe os simbolos da cadeia de entrada um por um da esquerdapara a direita. Ap6s ler cada simbolo, M1 move-se de um esiado para outro rorrgo da transiqio que "o tem aquele simbolo como seu r6tulo. euando l o riltimo sTmbolo, Mlproduz sua saida. A saida serdaceitase M1 estiver no estado de aceitagio e reiexase nio estiver. exemplo, quando alimentamos a cadeia de entrada 1101 ) milquina M1 . l9r da Figura 1.4, o processamentoprocede da sezuinte forma. 1. Comega no estado91. 2. Le \ segue a transigio de q1 para, q2. 3. Le 1, seg'uea transiqio d.eq2 para q2. 4. Le 0, segue a transigio de q2 para qs. 5. Le 1, seguea transigio de qs paraq2. 6. Aceita porque M1 est6no esrado de aceitagio q2 no finalda entrada. A experimentagio com essam6quina sobre uma variedade de cadeias de enrada revela que ela aceitaas cadeiai 1, 01, 11 e 0101010101. Na realida de,M1 aceita qualquer cadeia que termine com o simbolo 1, pois ela vai para seu estado de aceitagio q2 sempre que ela 16 o simbolo r.',qlcm disso, ila aceita as cadeias100, 0100, 110000e 0101000000,e qualquer ctdeiaque termine com

t.l

AUTOMATOS

FINITOS

35

um nfmero par de 0s seguindo o riltimo 1. Ela rejeita outras cadeias, como 0, 10, 101000. VocO pode descrever a linguagem constituida de todas as cadeias que Ml aceita? Faremos isso em breve. DEFTNT9AO FORMAL DE UM AUToMATO FTNTTO

Na segio precedente usamos diagramas de estado para introduzir os aut6matos finitos. Agora, definimos aut6matos finitos formalmente. Embora os diagramas de estado sejam mais f6ceis de entender intuitivamente, necessitamos da definiqio formal tamb6m, por duas raz6esespecificas. Primeiro, uma definigSo formal 6 precisa. Ela resolve quaisquer incertezas sobre o que 6 permitido em um aut6mato finito. Se estivesseem drivida sobre se aut6matos finitos podem ou nio ter 0 estadosde aceitaqdoou se eles devem ter exatamente uma transigSo saindo de cada estado para cada simbolo de enuada possivel, ent6o voc6 poderia consultar a definiqio formal e verificar que a resposta 6 sim em ambos os casos. Segundo, uma definigSo formal prov6 notag6o. Uma boa notagSo o ajuda a pensar e expressarseuspensamentos claramente. A linguagem de uma definigio formal 6 um tanto misteriosa, tendo alguma semelhanga com a linguagem de um documento legal. Ambos necessitam ser precisos, e todo detalhe deve ser explicitado. IJm autdmato finito tem v6rias partes. Possui um conjunto de estadose regras parair de um estado para outro, dependendo do simbolo de entrada. Possui um alfabeto de entrada que indica os simbolos de entrada permitidos. Tem um estado inicial e um conjunto de estadosde aceitagSo.A definigio formal diz que um aut6mato finito 6 uma lista daquelescinco objetos: conjunto de estados,alfabeto de entrada, regras para movimentagdo, estado inicial e estadosde aceitagio. Em linguagem matemdtica, uma lista de cinco elementos 6 freqiientemente chamada 5-upla. Dai, definimos um aut6mato finito como sendo uma 5-upla consistindo dessas cinco partes. I-Isamos algo denominadofurydn dc transigd.o, geralmente denotado por d', para definir as regras de movimentagfro. Se o aut6mato finito tem uma seta de um estado n para um estado y ronrlada com o simbolo de enuada 1, isso significa que, se o aut6mato est6 no estado r quando 16 1, ent6o ele se move para o estado g. Podemos indicar a mesma coisa com a funE5o de transiqlo matem6tica. dizendo que d(r, t) : y.Essa notag5o6 uma esp6ciede abreviagSo junto, chegamos i defingSo formd de autilmatos frtitos. Colocando tr,do

36

c.A.pfTULo | / LTNGUAGENS REGULARES

orrrrurgAo 1.5
-upla (Q, E, 6, qe'F), onde TJ aut6rnato m fi.nito 6 uma 5 l. Q 6um conjunto finito conhecidocomo os estadns, o 2. E 6um coniunto finito chamado ulfabeto, 3. 6: Q x t---+Q 6 afunyfrode transigd'o,r 4. qo e Q 6 o estadainicial, e de 5. F c Q 6 o conjanto dc estados acei.taqd'o.2

Adefinigio formal descreveprecisamente o que queremos dizer por aut6mato finito. Poi exemplo, ,"torrr"ndo i pergunta anterior sobre se 0 estados de aceitagdo6 permisiivel, voc6 pode ver que fazer 17 ser o conjunto vazio A resulta em 0 estadosde aceitaEio, o que 6 permissivel. Al6m disso' a fun96o de transiq6o d especificaexatamenteum pr6ximo estado para cadacombinaEsopossivel de um estaio e um iimbolo de enirada. Isso responde i nossa outra pergunta afirmadvamente, mostrando que exatamente uma seta de transigSo sai de cada estado para cadasimbolo de entrada possivel. Podemos utilizar a notaqdo da definigio formal para descrever um aut6mato finito especificando cada uma das cinco partes listadas na Definigio 1.5. Por exemplo, vamos retornar ao aut6mato finito M1 que discutimos anteriormente, redesenhado aqui por conveni6ncia.

FIGURA I.6 O aut6mato finito Mr.

Podemos descreverM1 fotmalmente escrevendoM1 : (Q,E,d, q1, f'), onde l. Q : {qr,qz,qs}, 2. t: {0,1}, 1 Remeta-se pigina 7 sevoc6estiverincerto sobreo significadode d: Q x E---+Q. i 2 Os estados aceitaEso vezes chamados esud'os s5o is de f'nais'

I.T

AUToMATOS FINITOS

37

3. d6descritacomo

inicial, e 4. q, 6 o estado 5, F : {qz}. dizemosque que Se A 6 o conjunrode todasascadeias a mdqlina M aceit?, I(M) -- A' Dizemosque M A 6 a lingaagem da.mdquina M e escrevemos reconbei A"ou que M aceita A. Em razlo do termo aceitater significados e diferentesqoarrdonos referimosa m6quinasque aceitamcadeias a m6quinas de para riconbece linguagens forma preferimoso tirmo que aceitamlinguagens, a evitarconfusio. mas ela semprereconheceuma uma m6quinapode aceitarv6rias cadeias, nenhumacadeia,ela ainda assim rinica linguagem. se a m6quinan6o ac"itar a linguagenl- a saber, linguagemvaziaL' reconhec"er6"uma Em nossoexemplo,seja um A = {wltl' cont6mPelomenos 1 e o um nrimeropar de 0ssegue riltimo 1). EntdoL(M) A' Ml = A,ou, equivalentemente' reconhece

EXEMPLOS DE AUToMATOS FINITOS

EXEMPLO I.7 do de o Segue diagrama estados aut6matofrnito Mz'

l
Qt

>Z\t q z / (,

0 FIGURA I.8 Diagrama de estadosdo aut6mato finito de dois estadosMz'

38

GAPfTULO

I / LINGUAGENS

REGULARES

de formalM, : ({qr, qz}, {O,L}, 6,qt, {qr}) ' A funE5o transiglo Na descrigio

56

Lembre-se que o diagrama de estados de M2 e a descrigSo formal de M2 informaglo, s5 que de forma diferente. Voc6 pode sempre ir de contCm -o-" " um para o outro se necess5rio. Uma boa maneira para comegar a entender uma m6quina 6 test6Ja com algumas amostras de cadeiasde entrada. Quando voc6.faz esses"experimentos" para ver como a m6quina funciona, o seu m6todo de funcionamento freqiientemente Paraacadeia 1101, a m6quina M2 comeQanoestado inicial gr se torna "p"t.ni". e procede primeiro para o estado q2 ap6sler o primeiro 1, e entdopara os estados qi, q, e q2 ap6sler 1, 0 e 1. A cadeia 6 aceitaporque q2 6,tm estado de aceitaglo' Mas a cadeia 110 deixaMz no estado Q1;portanto, ela 6rejeitada. Depois de tentar uns poucos exemplos mais, vocQveria que M2 aceita todas as cadeiasque terminam iom r. Conseqiientemente,L(M) : {wltu termina comum 1}.

EXEMPLO

I.9

Considere o aut6mato finito Ms,

Qz
0

FIGURA I.IO Diagrama de estadosdo aut6mato finito de dois estadosM3.

A m5quina M3 6 semelhante i M2 exceto pela localizagao do estado de aceitaEio. Como de costume, a m6quina aceita todas as cadeias que a deixam num estado de aceitag5oquando ela tiver terminado de ler. Note que, em razSo do estado inicial tamb6m ser um estado de aceitagio, MB aceit^ a cadeia vazia e. fusim que a m6quina comeqa a\er a cadeia vain ela est6 no final, portanto, se o estado inicial 6 um estado de aceitaEso,e 6 aceita. A16m da cadeia vazia, essa m6quina aceita qualquer cadeia terminando com um 0' Aqui, L(Mz) : {wl w 6 a cadeiavaziaeou termina em um 0}.

t.t

AUToMATOS

FINITOS

39

EXEMPLO I.I I A figura seguinte mostra uma miquina de cinco estadosMa.

FIGURA I.I2 Aut6mato finito M+.

A mdquina Ma tem dois estadosde aceitagSo, Q rr, e opera sobre o alfabeto Qt E = {a, b}. Um pouco de experimentagio nos mostra que ela aceitaas cadeias a, b, aa, bb e bab, mas n6o as cadeiasab, ba ou bbba. Essa m6quina comega no estado s, e depois que ela 16 o primeiro sfmbolo na entrada, ela vai ou para a esquerdanos estadosq ou para a direita nos estadosr. Em ambos os casosela nunca pode retornar ao estado inicial (diferentemente dos exemplos anteriores), pois ela neo tem como sair de qualquer outro estado e voltar para ,s. Se o primeiro simbolo na cadeia de entrada for a, ent6o ela vai para a esquerda e aceita quando a cadeia termina com um a. Similarmente, se o primeiro simbolo for b, a m6quina vai para a direita e aceita quando a cadeiatermina em um b. Portanto M4 aceita todas as cadeiasque comegam e terminam com a ou que comegam e terminam com b. Em outras palawas, M4 aceit^ cadeiasque comegam e terminam com o mesmo simbolo.

EXEMPLO I.I3

de de M5, que tem um alfabeto entrada quauo A Figura 1.14mostraa m6quina (nnsrr) comoum rinicosimbolo. 1,2}. Tiatamos t simbolos, : {(RESET),0, A mdquina Ms mantlm um contador da soma dos simbolosnum6ricosde o m6dulo3. Todavezquerecebe simbolo(nrSnr) elareinicia que entrada ela16, se para0. Ela aceita a somafor 0, m6dulo3, ou, em outraspalawas, o contador :' sea somafor um mriltiplo de 3.

40

CAPITULO

I /LINGUAGENS

REGULARES

FIGURA I.I4 Aut6mato fintto M5.

Em alguns casosn5o 6 possivel descreverum aut6mato finito por diagrama de estados.Isso pode ocorrer quando o diagrama 6 demasiado grande para se desenhar ou se, como no exemplo a seguir, a descriqdo depende de algum par6metro n6o especificado. NessescasosrecolTemos a uma descrig5oformal para especificar a m6quina.

EXEMPLO T.I5 Considere uma generalizaglo do Exemplo 1.13, usando o mesmo alfabeto de quaffo simbolos X. Para ca'dai ) I seja Ai a linguagem de todas as cadeias em que a soma dos nrimeros 6 um mriltiplo de z',exceto que a soma 6 reinicializada para 0 sempre que o simbolo (nnsnr) tparece. Para cada A1 damos um aut6mato firito Bi, reconhecendo ,41. Descrevemos a m6quina Bi formalmente da seguinteforma: Bt : (Qt,E,3t,qo, {qo}), onde Qt 6 o conjunto de i estados a {qo,qt,Qz, ...,%-t}, e desenhamos funEfiode transigio d';de modo que para cadaj, se Bi estdem Q a soma corrente 6 j, m6dulo 'i. Para cadaqi faga j,

6 o ( q i , o ) :q i , 6 i l q i , I )- q 1 , o n d e k : j - t 1 m 6 d u l o i , i, 6o(qi,2) q;, ondek: j t 2 m6dulo e (nnsnr)) : qo. d1(q7,

DEF|NT9AO FORMAL DE COMPUTA9AO de finitos informalmente,usandodiagramas At6 agoradescrevemos aut6matos informal 6 formal, como uma 5-upla. A descriEdo e estados, com uma definigSo mais fdcil de absorverinicialmente,mas a definiqdoformal 6 ritil para tornar a

AUToMATOS

FINITOS

4l

ter que ambigtiidades possam ocorrido ira quaisquer noqeoprecisa,resolvendo p'it."-",comP;rt1e5o de um me.s1no descrigioinformal. e. ,.goi, fa"emos-o pelaqualele computa, finito. J6 t.*or-o-r id6iainformalda maneira "rrt6rnrto matematicamente' e agoraa formalizamos -S"1" qrr ---w "tr finito e suponha Q't1) 111)2'' n : (Q, E, 6, eo,F)um aut6mato M aceitnw se ;#"',.;e a wi 6,tmmembro do alfabetox. EntSoM ."aJ; ,"j" "-" ro,rr, '' ' )rn em Q com tr6scondig6es: de seqiincia estados ;il;;;"
1. ro: qo, 2. 6(ri,wia1) : ri11, 3.rnF. pawi:0, ...,n - I, e

Acondigaoldizqueam6quinacomeqanoestadoinicial.Acondiqio2dizquea A conformea fungio de transigSo. condiqio 3 ,,'aqoirr"*i de esiadop"r" "rt"do um estadode aceitaE6o' ;i;'q". a m6quinaaceiiasuaentradase ela termina em w} : {wl M aceita ' a Oir.Lo, qlre'Il[ reconheee lingaagem A seA oertnlgAo t.l6

regular se algum Uma linguagem 6 chamada de uma lingaagem aut6mato finito a reconhece'

EXEMPLO I.I7 Sejaa m6quina M5 do Exemplo 1'13' Sejaw t cadeia o 22 1o(RESET) (RESET) 12 de computagio, porque Entio M5 aceita,w conforme a definigao formal computando sobretl 6 ,"qiian"i" a" estadosna qual ela entra quando est6
Q o ,Q t t Q t t Q o , Q z , Q t , Q o , Q o ,Q t r Q o ,

A as o que satisfaz ffes condiE6es' linguagemde Ms 6' dos L(M) : {wl asoma simbolosemw 6 0 m6dulo3' 0)' que (nnsf-|) retornao contadorpara exceto ela linguagem, 6 uma linguagemi'egular' essa Como M5 reconhece

PROJETANDO A,UT6MATOS FINITOS criativo' Como processo de Seiaum aut6matoou uma peEa arte, proietar'6um a uma receitaou f6rmula simples'Entretanto,voc6 r"t t"i*iaf ;?;;;;" ritil especifica ao projetarv6riostipos de aut6matos' abordagem ;J;;;r;ma lugar da mdquinaque est6tentandoprojetar e a bo s"ja, ponha-se si frfiprio,no da m6quina.Fazerde entlo veia como voc6 se londuriri i pa., realiiar a tatefa

42

CAPfTULO

I / LINGUAGENS

REGULARES

conta que vocO 6 a mdquina 6 um truque psicol6gico que ajuda a aplicar toda a sua mente no processo de projetar. vamos projetar um aut6mato finito usando o m6todo ,,leitor como aut6mato,, que acabamosde descrever. Suponha que lhe seja dada alguma linguagem e voc6 deseje projetar um aut6mato finito que a reconhega. Faiendo dJ"ont, que eo arrtbmato, vocb recebe uma cadeia de entrada e tem que determinar se ela 6 um membro.da linguagem que se supde que o aut6mato reconhega. voc6 vai vendo os simbolos na cadeiaum por um. Depois de cada simbolo voc"6tem de decidir se a cadeiavista at6 entio est6 na linguagem . Arazd,o6 que voc6, como a m6quina, n50 sabe quando o final da cadeia .rii.rindo, e portanto tem que estar sempre pronto com a resposta. Primeiro, de modo a tomar essasdecis6es,voc6 tem que perceber o que precisa lembrar sobre a cadeia na medida que a est6 lendo. por que nio ,r-pl.rmente lembrar de tudo que voc6 viu? _em Lem-bre-seque voc est6 fazend,odeconta que 6 um aut6mato finito e que essetipo de m6quina tem somente um ndmero finito de estados, o que significa uma mem6ria finita. Imagine qrr" ud" seja extremamenre longa - digamos, daqui at6,aLua- de iod" "rrt que"voc6 nio poderia de.forma alguma se lembrar da coisa inteira. voc6 possui uma mem5ria fini," - digamos, uma rinica folha de papel - que rem uma capacidade de armazenamento limitada..Felizmente, para muitasiinguagens voc6 nao precisa se lembrar de toda a entrada. voc6 precisa se lembrar ri-."rrt. de certa i*ormaEio crucia.l. Exatamente qual informaqio 6 crucial depende da linguagem especifica considerada. Por exemplo, suponha que o alfabeto seja {O,f} e que a linguagem consista , de todas as cadeiascom um nfmero impar de rt. vo.e desela c"onsitruir um aut6mato finito E1 para reconh"..t .rr" lirrguagem. Fazendo de conta que 6 o autdmato, voco comega obtendo uma cadJia de enuada de 0s e 1s, simbolo a simbolo. Voc6 precisa lembrar a cadeia inteira vista at6 entio para determinar se o nrimero de 1s 6 impar? E claro que ndo. Simplesment. l"*bre se o nrimero de t.r at6 entSo 6 par ou impar e mantenha essainformagdo ) medida 16novos Tr,9 simbolos. se voc6 ler um 1, inverta a resposta, mas se voc6 ler um 0, deixe a resposta como estd.. Mas como isso lhe ajuda a projetar E1 ? uma vez que tenha determinado a informaqio necess6riapara lembrar sobre a cadeia I mediaa que ela est6 sendo lida, voc6 representa essa informagio como uma lista finita ie possibilidades. Nessa instdncia, as possibilidades seriam 1. par at6 agora, e 2, impar at6,agora. Af entSo voc6 atribui um estado a cada uma das possibilidades. Estes sio os estadosde E1, como mostrado a sezuir.

I.I

.A.UT6MATOS FINITOS

43

@@
FIGURA I.I8 e Os dois estadosQppr Qrmpar. Em seguida, voc6 auibui as transig6es vendo como ir de uma possibilidade a para outr; ao ler um simbolo. Portanto, se o estado 'par repre^senta possibilirprsenta a possibilidade impar, voce faz as transig6es iade pat e o estado {impar de estado corn um 1 e permanecerem como esteo com um 0, como tro.ri"mostrado a seguir.

'no*'

at-'i

FIGURA I.I9 se dizendocomo aspossibilidades rearranjam' Tiansig6es i inicial aquelecorrespondendo possivoc! colocacomo estado Em seguida, vaziae)' Nesse visto 0 simbolos^t6,enteo(a cadeia bilidade issociadacom ter 0 ao inicial corresponde estado porQue 6 "T nrimeroPlr' P9r Qpar o caso, estado a correspondendo possibilidaaqueles de aceitaqSo riltimo, ponhacomo estados seia com que qimpar a cadeiade entrada' FaEa aceitar desrr"s quaisvoc6 deseja aceitarquandovoc6 tiver visto um voc deseja porque um estadt de aceitaEso na rdig6et sio mostradas figura abaixo. nrimeroimpar de ts. Essas

FIGURA I.2O Adicionando os estadosinicial e de aceitaE5o.

44

cApiTULo

| / LTNGUAGENs REGULAREs

ExEMPLo l.2l
Este exemplo mostra como projetar um aut6mato finito E2 para reconhecer a linguagem regular de todas as cadeias que contOm a cadeia 001 como uma estSo todasna linPor exemplo,0010, 1001,001 e 11111110011111 subcadeia. guagem, mas 11 e 0000 nio est6o. Como voc6 reconheceriaessalinguagem se voc6 estivessefazendode conta ser Ez? Amedida que os simbolos chegassem, inicialmente saltaria sobre todos os 1s. Se voc6 chegar num 0, enteo nota que pode ter acabadode ver o primeiro dos u6s simbolos no padrSo OO1que voc6 est6 buscando. Se nesseponto voce v6 um 1, houve muito poucos 0s, portanto voc6 volta a saltar sobre 1s. Mas, se v6 um 0 nesseponto, voc6 deve lembrar que acabou de ver dois simbolos do padr5o. Agora voc6 simplesmente precisa continuar fazendo uma varredura at6 que veja um 1. Se voc6 o encontrar, lembre-se de que conseguiu achar o padrio e continue lendo a cadeia de entrada at6 que voc6 chegue no final. Portanto, existem quatro possibilidades: voc6 l. n6o viu quaisquersimbolos do padr6o, 2. acabade ver um 0, 3. acabade ver 00, ou 4. acabade ver o padrSointeiro 001. possibilidades. VocOpode atribuir as 2 Atribua os estadose, eo,eoo Soor essas transigSesobservando que de q lendo 1 voc6 permanece em q, mas lendo 0 voc6 se move para es. Em qq lendo 1 voca retorna a q, mas lendo 0 voca se move para mas lendo 0 voc6 permaneceem Qoo.Em qqe,lendo 1 voc6 se move para Qqe1, qee.Finalmente, em qeellendo 0 ou 1 deixa voc6 em Qoor. estadoinicial 6 q, e O colno mostrado naFigura 7.22. 6 o rinico estadode aceitag6o Qee1,

FIGURA I.22 contendo 001. Aceita cadeias

AS OPERA96ES

REGULARES

Nas duas seq6esprecedentes introduzimos e definimos aut6matos finitos e linguagens regulares. Agora comeqamos a investigar suas propriedades. Isso vai ajudar a desenvolver uma caixa de ferramentas de t6cnicas para utilizar quando voc6 projetar aut6matos para reconhecer linguagens especificas. A caixa de

AUT6MATOS

FINITOS

45

ferramentas tamb6m incluird formas de provar que certaslinguagenssao nao(isto 6, a16m capacidade aut6matos finitos). de regrlares da
Em aritm6tica, os objetos b6sicossio nrimeros e as ferramentas sio operaq6es para manipul6-1os, tais como * e x. Na teoria da computagSo os objetos sio linguagens e as ferramentas incluem operag6esespecificamente projetadas para manipul6Jas. Definimos tr6s operag5es sobre linguagens, chamadas operagdes regalares, e as usamos para estudar propriedades de linguagens regulares.

DEFrNtgAo 1.23 regulares aniff'o, Sejam,4 e B linguagens.Definimos asoperag6es concatenagdo estrelada seguinteforma. e . L ] n i i o :A U B : { r l r A o u r e B } . ' Concatenxglo: B : {rAlr Aey B}. A" . E s t r e l aA * - { r p 2 . . . r n l k ) 0 e c a d at . e A } . r :

Voc6 jd est6 familiarizado com a operaqio de uni5o. Ela simplesmente toma todas as cadeiasem ambas A e B e as junta em uma linguagem. A operagio de concatenaglo 6 um pouco mais complicada. Ela acrescenta uma cadeia de A na frente de uma cadeia de B de todas as maneiras possiveis para obter as cadeiasna nova linguagem. A operaEsoestrela 6 um pouco diferente das outras duas porque ela se aplica a uma fnica linguagem emvez de duas linguagens diferentes. Ou seja, a operaqSo estrela 6,uma operagd.o andria ao inv6s de uma operagfrobind'ria. Ela funciona justapondo qualquer nrimero de cadeias em A para obter uma cadeia na nova linguagem. Em razdo de "qualquer mimero" incluir 0 como uma possibilidade, a cadeia vazia e 6 sempre um membro de A* , independentemente do que A seia. EXEMPLO I.24

Suponha que o alfabeto X seja o alfabeto padrdo de 26 letras {., b, . . . ,2}. Se / : {1egal, ruim} e B - {garoto, garota}, entSo AU B : {1ega1,ruim, garoto, garota}, A o B : {legalgaroto, legalgarota, ruimgaroto, ruimgarota}, e legalruim, ruimlegal. ruimruim. A* : {,1ega1. ruim. 1ega11ega1. 1ega1ruim1ega1, 1ega11ega1ruim, 1egal1ega11ega1, lega1ruimruin"... ).

naturais.Quandodizemos Seja : {1,2,3, . . . } o coniuntodosnrimeros ,A/ que, para quaisquerr e y em que "A,/ fechndo maltiplicaEfro queremos dizer 6 sob

46

CAPfTULO

I / LINGUAGENS

REGULARES

"A/, o produto r x A tamb6m est6 em "A,/.Diferentemente, N ntro 6 fechado sob divis6o, pois 1 e 2 estdoem ,A/ mas I 12 ndo est6. Em geral, uma coleqSode objetos E,fecbadasob alguma operagdo se, aplicando-se essaoperagio a membros da coleg6o, recebe-seum objeto ainda na colegio. Mostramos a seguir que a colegdo de linguagens regulares 6 fechada sob as tr6s operaq6esregulares. Na SeElo 1.3 mostramos que essas s5o ferramentas riteis para se manipular linguagens regulares e entender o poder dos aut6matos finitos. Comegamos com a operaEso de uniio. TEOREMA I.25 A classede linguagens regulares 6 fechada sob a operagio de unido. Em outras palawas, se ,41 e A2 sio linguagens regulares, o mesmo acontece com A1U A2. TDEIA DA PRovA, Temos as linguagensregulares41 e A2 e desejamos mostrar que At U Az tamb6m 6 regular. Em razd.ode ,41 e A2 serem regulares, sabemos que algum aut6mato finito M1 reconhece 41 e algum aut6mato finito M2 reconhece A2. Para provar que 41 U A2 6 regular exibimos um aut6mato finito (cham e-o M) que reconhece A1 U A2. Esta 6 uma prova por construgSo. Construimos M a partir de M1 e M2. A m6quina M tem de aceitar sua entrada exatamente quando M1 ou M2 aa,ceitaria,, de modo a reconhecer a linguagem da uni5o. Ela funciona sinoalanda ambas,M1 e M2, e aceitando se uma das simulaEsesaceita. Como podemos fazer com que a m6quina M simule M1 e M2? Talvez ela primeiro simule M1 sobre a entrada e depois simule M2 sobre a entrada. Mas temos que ser cuidadosos aqui! Uma vez que os simbolos da entrada tenham sido lidos e usadospara simular M1, nlo podemos "re-enrolar a fita de entrada" para tentar a simulaq5o de M2. Precisamos de uma outra abordagem. Fagade conta que vo c 6 M . A medida que os simbolos de entrada chegam um por um, voc6 simula ambas M1 e M2 simultaneamente. Dessa maneira somente uma passagemsobre a entrada 6 necess6ria. Mas voc6 pode conffolar ambas as simulag5es com mem6ria finita? Tirdo do que voc6 precisa guardar 6 o estado em que cada m6quina estaria se ela tivesse lido at6 esseponto na entrada. Conseqiientemente, voc6 precisa guardar um par de estados.Quantos pares possiveis existem? Se M1 tem k1 estadose M2 tem k2 estados, o nrimero de pares de estados, um de M1 e o outro de M2,6 o produto ky x k2. Esse produto ser6 o nrimero de estadosem M, um para cada par. fu transig6esde M vdo de par para par, afiiahzando o estado atual para ambas M1 e M2. Os estadosde aceitaqio de M sio aquelespares nos quais ou M1 otr M2 estdem um estado de aceitagSo. PROVA Suponha que Ml reconhega41 , onde Mt : (Qr, X, dt, gr, f'r), e que " M, reconheqa A2, ond,e Mz : (Q2,8,62,q2, F2).

AUToMATOS

FINITOS

47

A M C o n s t r u a p a r a r e c o n h e c e ry U A 2 , o n d e M : ( Q , E , 6 , q o , F ) . l . Q : { ( r t , r r ) l r r e Q r a n dr z e Q z } . Esse conjunto 6, o prod.ato cartesiano dos conjuntos Qr e Qz e 6 escrito Qt x Qz. Tiata-se do coniunto de todos os pares de estados,sendo o primeiro de Qt e o segundode Qr' 2. E, oalfabeto, 6 o mesmo em Ml e M2. Neste teorema e em todos os teoremas similares subseqiientes,assumimos por simplicidade que ambas M1 e M2 t\mo mesmo alfabeto de entrada X. O teorema permanece verdadeiro se elas tiverem alfabetos diferentes, E1 e E2, Ai entio modificariamos a prova para tornar X : Xr U !z' 3. 6, a fungao de transigSo, 6 definida da seguinte maneira. Para cada (rt,rz) Q ecadaae E,faga 6((rr.r),o) = (d1 t,a)'62ft2,a))? Logo, d obt6m um estadode M (que na realidade 6 um par de estadosde Ml e M),juntamente com um simbolo de entrada, e retorna o pr5ximo estadode M. 4. qo 6 o par (q1,q2). 5. F 6 o coniunto de pares nos quais um dos membros 6 um estado de como de aceitaEso Mr ou Mz. Podemos escrevO-lo f' = {(rr ,rz)l rt Fr ou rz e Fz}. E s s a e x p r e s s i o 6 a m e s m a q u e F : ( F r x Q z ) u ( h x t r ' 2 ) 'Q ' { o t e q u e e l a nfr.o amesma QueF : F1 x F2. O que isso daria ao inv6s da uniio?r) 6 Isso conclui a construgeo do aut6mato frnito M que reconhece a uniSo de ,4r e ,42. Essa construg5o 6 bastante simples e, portanto, sua correqio 6 evidente da estrat6gia descrita na id6ia da prova. Construg6es mais complicadas requerem discussio adicional para provar corregao. IJma prova formal de correqio para uma const:ugao desie tipo geralmente procede por induE6o. Para um exemplo de uma consirugao que 6 provada ser correta , veja a prova do Teorema 1.54. A maioria das construq-6"t qrra voc6 vai encontrar neste curso s5o bastante simples e, portanto, n6o requerem uma prova formal de corregSo' Acabamos de mostrar que a uni6o de duas linguagens regulares 6 regular, provando, assim, que a classede linguagens regulares 6 fechada sob a operaqaode uniio. Agora nos voltamos para a operaglo de concatenageoe tentamos mostrar que a claise de linguagens regulares 6 fechada sob essaoperag5o tamb6m.
ambos 3 Essa e*pressio definiria os estadosde aceitagio de M como aqueles para os qtuars os membios do par sao estadosde aceitagSo.Nesse caso M aceitariauma cadeia somente e se ambas Mr e Mz a aceitasseml portanto a linguagem resultante seia a intersegdo frlo de linguagens regulares 6 fechada a unido. Na verdade, esseresoltado prova que a classe sob intersegio.

48

cApiTULo

I / LTNGUAGENs REGULARES

TEoREMA

1.26

A classede linguagens regulares 6 fechada sob a operagdo de concatenaElo. Em outras palawas, se,4r e A2 s6olinguagens regulares, enteo o mesmo acontece com A1 o A2, Para provar esse teorema, vamos tentar algo na linha da prova do caso da uniio. Tal qual anteriormente, podemos comegar com os aut6matos finitos M1 e M2 que reconhecem as linguagens regulares A1 e 42. Mas agora, em vez de constrrir o aut6mato M para aceitar sua entrada se M1 ou M2 aceitam, ele tem que aceitar se sua entrada puder ser quebrada em duas partes, sendo que M7 aceita a primeira parte e M2 aceita a segunda parte. O problema 6 que M nio sabe onde quebrar sua entrada (isto 6, onde a primeira parte termina e a segurtda parte comega). Para resoher esse problema introduzimos uma nova t6cnica chamadanio-determinismo.

1 .2

ll

l:r *

iui *

ri; rlrll :i{ *

il$ ;r

r;

$! ;

: :r: iriii iii ir* t

tl

ri

iri trta ri

.,* :rrl

NAo-DETERMI NIsMo
Nio-determinismo 6 um conceito ritil que tem tido grande impacto sobre a teoria da computryl,o. Lt6 agora em nossadiscussio, todo passode uma computageo segue de uma maneira rinica do passo precedente. Quando a mdquina est6 em um dado estado e 16o pr5ximo simbolo de entrada, sabemosqual ser6 o pr6ximo estado - estd determinado. chamamos isso de computagio futerwiniiica. Em uma mSquina nfro-deterrninistica, v6rias escolhaspodem existir para o pr6ximo estado em qualquer ponto. N5o-determinismo 6 uma generalizaqd,o determinismo; portanto, todo de aut6mato finito deterministico 6 automaticamente um aut6mato finito niodeterministico. como a Figura r,27 mostra, aur6matos finitos nio-deterministicos podem ter caracteristicasadicionais.

FTGURA 1.27 O aut6mato finito nio-deterministico M.

1.2

NAO-DETERMINISMO

49

AdiferenEaenffeumautamatofinitodeterministico,abreviadoAFD,eum 6 imediatament aparente' finito ndo-deterministico, abreviado AFN, "rr,a*"ro todo estado de um AFD sempre tem exatamenteuma seta de transigio Primeiro, aot6mato n'o-deterministico mostrado saindo para cadari-loio ,ro-"lfub"to. b uma seta saindo para 0' mas 1.27 ../.ola"*" '"g'u' o estado Q1tem ;^ilil um para 0' mas nenhuma pata I' Em um AFN tem duas para t; Q2 temo-i'"'" do alfabeto' saindo p"'" tud" simbolo estado pode ter ,.ro, o*, oo vdrias setas do sobre as se;s de transiEso s6o simbolos Segundo, em um Ail;fu*los um AFN pode ter o r6tulo e' Em geral' alfabeto. Esse AFN *- or,lt seta com mais setas do alfabeto ou com e' Zeto' uma ou setas rotuladas com -at"U'o' podem sair de cada estadocom o r6tulo e' que voc6 esteja-rodandoum AFN sobre Como um AFN "";;;;:Suponha u m a c a d e i a d e e n t r a d a e v e n h a p a r a u m e s t a d o c o m m r i l t i p l a s m aN1 i r aque p r o s ne e sde o estado q1 no AFN *t exemplo, digamos que estamos no ;A; r. Ap6s ler essesimbolo, a mdquina dividepr6ximo simbolo d" ";;;;;;"="seemmriltiplascopiasdesimesmaeseguetod'asaspossibilidadesemparalelo' Cadac6piada-aqoi,,uto"t"o-"dasma-neiraspossiveisde'procederecontinua a m6quina divide-se novamente' como antes. S. eristirem escolhassubseqiientes, sobre qualquer das setassaindo do Se o pr6ximo simbolo de entrada n5o aparece e s t a d o o c u p a d o p o r o - " t A p l " d " m 6 q u i n a ' e s s a c 6 p i a d a m d q u i n a m o r r e ' jamaa unt a era. Finalmente, se qualquer mente com o ,"-o ar-.o*f.rtaEao asiociado de aceitagSono final da entrada' o dessasc6pias da m6quina est6 em um esudo AFN aceita acadeia de entrada' Seumestado.o*o-,i-boloesobreumasetasaindodomesmoforenconSem ler qualquer enffada' a m6quina divide-se trado, algo ,"-"ttrrrt" ".o,""t"' e m m r i l t i p l a r . O p i " r , - " * " ' " g ' o i " a o " " d u o t t t " d a s s e t a s s a i n d o r o t u l a d a s cnaoom Entio a m6quina prosseg-ue e uma perrnanecendo no eltado corrente. deterministicamente como antes' | , --. uma esp6cie-de computaqao paO nio-determinismo pode ser visto como ou "threads" podem estar ralela na qual mriltipio, J irrd"p"rraenres "processos" seguir as diversas Q""tdo o R-rN se divide para rodando concorrent;;te' "bifurcar" emv6rios filhos' cada um oi p'ot"sso escolhas, lrro "orr"rio,ia"-" St p"lo menos um dessesprocessosaceita' enteo a r"p"r"a",tt"ite' pt"""J""a" iomputaEio inteira aceita' n5o-deterministica 6 como Outra maneira de pensar em uma computaE6o 6rvore corresponde ao inicio da comuma drvore a. porriliiia"Jo ' Lraizda corresponde a um ponto na Todo po"to de ramificaEso na 6rvore p"itqa" se tem mriltiplas escolhas. A m'quina aceita computaElo ,ro qoril *al"i"" iermina em um estado de aceitagSo' oelo menos um dos ramos da computagdo .o-o ,nor,r"do na Figura 1'28'

50

CAPiTULO

I /LINGUAGENS

REGULARES

ComputagSo determinfstica
tnlcro

Computa46o n5,o-deterministica

: (
aceita ou rejeita

\.

acelf,a

FIGURA I.28 com um ramo de e deterministicas nio-deterministicas Computagdes aceitrglo. do de Vamosconsideraralgumasamostras execug6es AFN N1 mostradona na I\r1sobrea entrada0101106 ilustrada FiFigura 1.27. Lcomputag{ode 1.29. ej'rra

Simbolo lido

0 -----------

1 ---------

0 --------

FIGURA I.29 A computagio de Nr sobre a entrada 010110.

1.2

NAO-DETERMINISMO

5l

primeiro simbolo, Para aentrada010110, comeceno estadoinicial q1 e leia o lugar.para ir sobre um 0 - a saber' de volta 0. A partir de q1 existe apenasum simbolo' 1' Em ql a {1i portanto, permaneia ai. Em seguida leia o segundo permaneEaem Q1ou mova-se para Q2' Nior h6 Suas .r"olh"r' ou ,ot "',r* cada uma das deterministicamente, a m6quina se divide em duas para seguir colocando um dedo sobre cada escolhas.Mantenha registro das possibilidades tem dedos sobre os estado onde a mdquina"poderia esta'' Portanto, voc6 agora estado q2 de modo que a m6quina se divide estadosQr e ez.U-" ,"'t" e sai do paru Q3' voc6 agora .rorrr-"tr"t ,rrurrt.rrh" um dedo sobre q2, e mova o outro tem dedos sobre q1, Qze Qs. considerecadaum dos dedos separaQuando o terceiro simLolo, 0, for lido, q1 no lugar, mova o dedo sobre q2 para qB e d"-l"rrt". Mantenha o dedo sobre tinha seta 0 para remova o dedo que tinha esradosobre 93. Esseriltimo dedo nao que simplesmente"morre'" Nesse ponto seguir e aoararpotda a um processo Qt voc6tem dedossobreos estados e Qz' o dedo sobre qr por dedos Quando o quarto simbolo, t,-ior iido, substitua substituanovamente o dedo sobre q2 para sobre os estadosQt e Qz, eaientdo q3 para q4' VocO agora seguir a seta e para q,-e mova o dedo que estava sobre quatro estados' a.it rr^ dedo sobre cada um dos os dedos sobre qr e 93 resultam em Quando o quinto simbolo' 1, ?or lido, q4' como voco viu com o quarto simbolo' O dedos sobre os estados Qt,Qz,Qze -o d.do que esravasobre qa permanece sobre dedo sobre o esrado q, ;;;;;;ao. s6 qa; portanto' remova um' porque vocOn..-egot" voc6 tem Jois dedos sobre nesseponto, nao que ele 6 possivel qn Z um estado possivel ii..ir"" lembrar qrr" por mriltiplas raz6es. ' lido, mantenha o dedo sobre qr no euandt o sexro e riltimo simbolo, 0, 6 remova o que-estava sobre q3 e deixe lugar, mova o que est6 sobre q2 paraQ3, "q.r" cadeia' e aceita .rta sobr" qn no seu logar' Voc0est6 agora no--final da o Voc6 tem dedos sobre os ," ,lgo- dedo estive*obr" oir estado de aceitagSo. aceitaessacadeia' estados Qt,Qzeg4, e como qa 6'umestadode aceitaglo' /y'r Comece com um dedo sobre qr' f^robt" t entrada010? O qt;;';""-lvt q1' mas depois do Depois de lei o 0, voc6 ainda tem um dedo somente sobre da seta e)' Depois do terceiro 1 existem dedos sobre qr, q2 e q3 (n5o esquega q2 p^ta q3' e deixe o simbolo, 0, remova o d"dosobre q3, mova o dedo sobre dedosobreqlondeeleest6.Nesseponto,voc6est6nofinaldaentrada'ecomo essaentrada' lft nenhum d"do.st6 sobre um estadode aceitagSo, rejeita ver6 que ly'1 aceita todas as continuando a experimentar dessamaneira, voc6 cadeiasque contOm ior oo 11 como uma subcadeia' sentidos' como os aut6matos finitos na0-deterministicos s50 riteis em v6rios AFD equivalente, e construir mostraremos, todo AFN pode ser convertido num um AFN pode ser AFNs 6 is vezes mais f6cil que construir diretamente AFDs. seu functonamento pooe muito menor que sua contrapaftida deterministica, ou em aut6matos finitos 6 tamb6m ser mais f6cil de enrender. Neo-d"r"r-inismo mais pouma boa inuodugSo a nao-determinismo em modelos computacionais de entender. Agora derosos porque rut6matos finitos s6o especialmente f6ceis nos voltamoi para diversos exemplos de AFNs'

52

CAPfTULO

I /LINGUAGENS

REGULARES

EXEMPLO

I.3O

1 Seja A a linguagem consistindo de todas as cadeiassobre {o,t} contendo um est6 na terceira fosigao a partir do final (por exemplo, OOO1OO em A, mas 0011 seguinte AFN de quatro estados,l[2, reconhece A' n5o). O

FIGURA T.3T O AFN Nz que reconhece A.

Uma boa maneira de ver a computageo desseAFN 6, dizet que ele pefinanece no estado inicial 91 at6 que "adivinhe" que est6 a tr6s posig6es do final. Nesse ponto, se o simbolo de entrada for 1, ele ramifica para o estado Q2e usa Qse Q+ para "checar" se sua adivinhaqSoestavacorreta. Conforme mencionado, todo AFN pode ser convertido num AFD equivalente, mas is vezesesseAFD pode ter muito mais estados. O menor AFD para -4 cont6m oito estados. Al6m disso, entender o funcionamento do AFN 6 muito mais f6cil, como voc6 pode ver examinandoa Figura I.32 part o AFD'

FIGURA I.32 Um AFD que reconhece A. q3 Suponha que adicion6ssemose aos r6tulos sobre as setas indo de q2 para e de q3 pLrL Qana m6quina l[2 da Figura 1.31. Assim, ambas as setasteriam

1.2

NAO-DETERMINISMO

53

com essa enteoo r6tulo 0, 1, e em vez de 0, 1. Que linguagemNz reconheceria essa Figura 1.32parareconhecer linguaTentemodificaro AFDda modificaEio? gem.

EXEMPLO

I.33

considere o seguinteAFN ,l/3 que tem um alfabetode entrada{0J consistindo de um rinico sitbolo. Um aHatetocontendosomenteum simbolo 6 chamado alfuhetoundrin.

FIGURA I.34 o AFN l[3. Essa m6quina demonstra a conveniencia de se ter setas e. Ela aceita todas que o as cadeias d" for*" Oft, onde k 6 um mriltiplo de 2 ou 3. (Lembre-se de num6rica') Por exemplo' lV3 expoente denota repetigeo, e nao exponenciagio , cadeias 00, 000, 0000 e 000000,mas neo 0 ou 00000' "."it. "t na m6quina inicialmente adivinhando se deve testar por um mriltiplo Pense inferior, de 2 ou um mriltiplo de 3, ramificando ou no lago superior ou no laEo E claro que poderiamos e ai ent6o verificando se sua adivinhagao foi correta. substituir essa m6quina por uma que n5o tivesse setas ou mesmo nenhum essa nao-determinismo, mas a maquina mostrada 6 a mais f6cil de entender para linguagem.

54

cApiTULo

r / LTNGUAGENs REGULAREs

ExEMPLo 1.35
Damos ouffo exemplo de um AFN na Figura 1.36. Pratique com ele para se convencer de que ele aceita as cadeiase, a, baba e baa, mas n5o aceita as cadeias b, bb e babba. Adiante, usamos essam6quina para ilustrar o procedimento para converter AFNs para AFDs.

FIGURA I.36 o AFN N4.

DEFtNtgAO FORMAL DE UM AUT6MATo FINITo NAo-DETERMINisT|co A definiEdo formal de um aut6matofinito n5o-deterministico similar iquela 6 de um aut6matofinito deterministico.Ambos t6m estados, alfabetode enum trada,uma funqdode transiqeo, estadoinicial e uma coleg5ode estados um de aceitaqlo.Entretanto,elesdiferemde uma maneiraessencial: tipo de funEio no de transiqlo. Em um AFDa fung5ode ransigio toma um estado um sfmbolode e entradae produz o pr6ximo estado.Em um AFNa funqdode transigio romaum estado um simbolode entrada a cadeia e oa aaziaeproduzoconjunto priximosesde possiaeis. escrever definiq5oformal, precisamos tados Para a fixar algumanotag6o Paraqualquer adicional. conjuntoQ escrevemos a P(Q) comosendo colegSo de todos os subconjuntos Q. Aqui 2(Q) 6 chamadoconjanto daspartes de Q. de ParaqualqueralfabetoE escrevemos como sendoX u {r}. Agora podemos !u escrever definiqio formal do tipo da fungdo de transigeoem um AFN como a

.f'0"E,---+P(Q).

1.2

NAO-DETERMINISMO

55

DEFINtgAo

1.37

5-upla (Q, E, 5,qo) F )' 6' lJ m aut6m.an finito nfr'o-deterrninisticouma onde l. Q 6um coniuntofinito de estados, 2. E 6 um alfabetofinito, 3, 6: Q x E,-+P(Q) 6 a fungIode transiEdo, inicial, e 4, qo e Q 6 o estado de 5. F g Q 6 o conjuntodeestados aceitagdo'

EXEMPLO

I.38

Retomemoso AFN /ft:

, A descrigioformal de l/r 6 ( Q , r , d , 9 1 F ) , o n d e l. Q: {qt,qz,Qs,Q+}, 2. 2 : {0,1}, 3.d6dadocomo


Qr Qz Qz Qq
Qt

Q t ,Q z

{q'}

{q'}

{qn}

{qn} {qt}

a a

ts formal de computaqioparaum AFN6 similariqugla paraum AFD' A definiESo SejaN:(Q,E,6,QI,F)umAfNe-TrumacadeiasobreoalfabetoX'Entio ?rl escrever como w = utaz'''y*, onde qo. ,nraceitaw' se podemos dizemos ro,rr, . . . )rm em de umaseqiiencia estados e existe cadayi6 um membrode x, Q com tr6s condig5es:
l. rs: qo, 2. r,r4r 5(rt,Al+r), 3.r^F. p a r a i , =0 , . . . , 7 T 1I , e

inicial, e 4. qt 6.o estado s. F: tqa).

2 diz A condigao1 diz que a m6quinacomega,noestadoinicial. A condigSo quandoly' est6no espermissiveis qoe o eri"do rr+r 6 um dospi6ximosestados de que d(ri, y+J 6 o conjunto pr6ximosestados tadorr. e lendogr+r' Observe

56

CAPiTULO

I /LTNGUAGENS

REGULARES

permissiveis e portanto dizemos eue 14116 um membro desseconjunto. Finalmente, a condigdo 3 diz que a m6quina aceita sua entrada se o riltimo estado 6 um estadode aceitaEdo. EQUIVALEruCIA DE AFNS E AFDS

Os aut6matos finitos deterministicos e nio-deterministicos reconhecem a mesma classe,delinguagens. Essa equivalOncia 6, ao mesmo tempo, su{preendente e ritil. E surpreendente porque AFNs parecem ter mais poder que AFDse, portanto, poderiamos esperar que AFNs reconhecessemmais linguagens. E ritil porque descrever um AFN para uma dada linguagem is vezes 6 muito mais f6cil que descrever um AFD para essalinguagem. Digamos que duas mdquinas sio eqaiaalentes se elas reconhecem a mesma linguagem.

TEOREMA I.39 Todo aut6mato finito nio-deterministico tem um autdmato finito determrnisttco equivalente.

Se uma linguagem 6 reconhecidapor um AFN, entSo tetDEtA DA pRovA mos de mostrar a exist6ncia de um AFD que tamb6m a reconhece. A id6ia 6 converter o AFN num AFD equivalente que simule o AFN. Lembre-se da estrat6gia "leitor como aut6mato" para projetar aut6matos finitos. Como voc6 simularia o AFN se voc6 estivessefazendo de conta ser um AFD? O que voc6 precisaria memorizar i medida que a cadeia de entrada 6 processada? Nos exemplos de AFNs voc6 memorizou os vdrios ramos da computagSo colocando um dedo sobre cada estado que poderia estar ativo em dados pontos na entrada. Voc0 atualizava a simulagio movendo, adicionando e removendo dedos conforme a maneira pela qual o AFN opera. Tirdo o que voc precisava memorizar era o conjunto de estadoscolocando dedos sobre eles. Se ft 6 o nrimero de estados do AFN, ele tem 2ft subconjuntos de estados. Cada subconjunto corresponde a uma das possibilidades de que o AFD tem de se lembrar; portanto, o AFD que simula o AFN ter6 2k estados. Agora precisamos descobrir qual ser6 o estado inicial e os estados de aceitaEsodo AFD, e qual ser6 sua fungio de transigio. Podemos discutir isso mais facilmente depois de fixar uma notaqio formal. Seja -n[ : (Q,E,6,eo,F) o AFN que reconhece alguma linguagem que reconhece A. Antes de A. Construimos um AFDM : (Q',8,6',eo',f") realizar a construEso completa, vamos primeiro considerar o caso mais f6cil no qual l/ nio tem setas. Mais adiante levamos as setase em consideraqSo. l. Q' : P(Q)' Todo estado de M 6.um coniunto de estados de l/. P(Q) 6 o conjunto de subconjuntos de Q. Lembre-se de que pRovA

NAO-DETERMINISMO

57

2 . P a r u R e Q ' e a E s e i a 6 ' ( R , o ) : { q e Q l q e 5 ( r , a ) p a t aa l g u mr e R } ' Se ,R 6 um estadode M,6 tamb6m um conjunto de estadosde N. Quando M 16um simbolo o no estado fi, ele mostra para onde aleva cadaestadoem tomamos a R. Dado que cada estadopode ir para um coniunto de estados, 6 maneira de escreveressaexpressSo coniuntos. Outra uniSo de todos esses

5 ' ( R , o: U 6 Q , a ) . 4 )
rR

3. qo': {qo}. M comegano estado correspondente i colegio contendo somente o estado inicial de l/. 4. F' : {R e Q'l R cont6m um estadode aceitaqio de N}' A m6quina M aceitase um dos possiveisestadosnos quais N poderia estar nesseponto 6 um estado de aceitagio. Agora precisamos considerar as setas . Para fazet isso fixamos um pouco maisle notaq6o.Para qualquer estadoR de M, definimos E(R) como a coleElo de estadosque podem ser atingidos a partir de -R indo somente ao longo de setas e, incluindo os pr5prios membros de /i. Formalmente, pata R C Q seja E(R) : {ql q pode ser atingido a partir de R viajando-seao longo de 0 ou mais setase]. Ent5o modificamos a fungio de transigSode M para colocar dedos adicionais que podem ser atingidosindo ao longo de setaseap6scada sobre todos os estados passo.Substituindo d(r, a) por E(6(r,o)) d6 esseefeito. conseqiientemente, 5 ' ( R , a ) : { q e Q l q e E ( 6 ( r , a ) ) p a t a a l g u mr e R } . Adicionalmente precisamos de modificar o estado inicial de M pata mover os dedos inicialmente para todos os estadospossiveis que podem ser atingidos a partir do estadoiniciaf de /y' ao longo das setase. Mudando Qo'pata E({qo}) dA esseefeito. Agora completamos a construgio do AFD M que simula o AFN ,l/. A construgao de M obviamente funciona corretamente. Em todo passo na computag5o de M sobre uma entrada, ela Claramente entra num estado que corresponde ao subconjunto de estados nos quais l[ poderia estar nesseponto. fusim, nossaprova estd completa.

Se a construgSousadana prova'precedente fosse mais complexa precisariamos provas procedem provar que ela funciona como reivindicado. Geralmente essas passosda computaEso. Amaioria das construgSes por induqno sobre o nfimero de qo. or"-or neste liwo s[o imediatas e, portanto, n5o requerem tal prova de correqio. Um exemplo de uma construgio mais complexa que provamos ser de fato correta aparecena prova do Teorema 1.54.
4 A notagdo conjuntos d(r, a) para cadar em R' U,.o d(t, a) significa: a uniSo dos

58

CAPfTULO

I / LINGUAGENS

REGULARES

O Teorema1.39afirmaque todo AFNpodeserconvertido um AFDequiem Portanto,aut6matos finitos ndo-deterministicos uma maneiraaltervalente. dio regulares.Enunciamosessefato como um nativa de caracterizar linguagens as 1.39. coroldriodo Teorema coRoLARro l.4O

Uma linguagem 6 regular se e somente se algum. aut6mato finito n5odeterministicoa reconhece.


Uma direqio da condiqio "se e somente se" afirma que uma linguagem 6 regular se algum AFN a reconhece. O Teorema 1.39 mostra que qualquer AFN pode ser convertido num AFD equivalente. Conseqiientemente, se um AFN reconhece uma dada linguagem, o mesmo acontececom algum AFD,e portanto a linguagem 6 regular. A outra direESoda condiESo"se e somente se" afirma que uma linguagem 6 regular somente se algum AFN a reconhece. Ou seja, se uma linguagem 6 regular, algum AFN tem que reconhec6la. Obviamente, essacondigSo 6 verdadeira porque uma linguagem regular tem um AFD reconhecendo-a e qualquer AFD6 tamb6m um AFN. EXEMPLO I.4I Vamos ilustrar o procedimento que demos na prova do Teorema 1.39 para converter um AFN para um AFDusandoa m6quina AI+que apareceno Exemplo 1.35. Em nome da clareza,renomeamos os estadosde Na para {I,2,3}. Portanto, formal de Na : (Q,{.,b},d,1,{1}), o conjunto de estadosQ 6 na descrigSo {1,2,3} como mostradona Figura 1.42.

FIGURA

I.42

^U. o AFN
Para construir um AFD D que seja equivalente a AIa, primeiro determinamos os estadosde D. Nq tem tres estados,{1,2,3}; assim,construimos D com oito estados,um para cada subconjunto de estadosde AI+. Rotulamos cadaum dos estaflos de D com o subconjunto correspondente. Portanto, o conjunto de estados

1.2

NAO-DETERMINISMO

59

deD6 { 0 ,{ r } , { 2 } ,{ 3 } ,{ 1 , 2 }{,1 , 3 }{' 2 , 3 }{,1 , 2 , 3 } } '


D. o estado Em seguida, determinamos os estados inicial e de aceitagSode s6o atingiveis.apartir de 1 viajando inicial 6 E({f }), o conjunto de estadosque portanto, ao longo d. ,.i", e, mais o pr6prio 1. Uma seta e vai de 1 para 3; sio aquelescontendo o estado E({Ui : {1, 3}. Os novos .t.tiot de aceitaEso d . " . . i t " q a o d e ' l ' { a ; a s s i m{ 1 } , { 1 , 2 } , { 1 , 3 } , { 1 , 2 , 3 } J ' {, futtgi" de transiEio de D. Cada um dos estados Finalmente, determi.ra-or " 6 u. Ilusde D vai para um lugar dada a entrada a e um lugar quando a entrada das setasde transiqio de D com tramos o pro."rro d! se determinar a colocaqao uns poucos exemplos' a' porque em /y'+' o estado 2 Em ,, o {2} vai para {2,3} na entrada "rtuio lna entiada . tt6o podemos ir mais longe a partir de 2 ou vai paraambos 2 e " b' porque 3 ao longo de setase. O estado {2} vai para o estado {3} na entrada na entrada b e n5o podemos ir mais em ly'a, J estado 2 vai apenaspara oestado 3 longe a partir de 3 ao longo de setase. porque nenhuma seta a sai dele. Ele 6 {1} vai para"Ana entrada a, "rOao na b. Note que o procedimento no Teorema 1'39 especifica vai para {Z} "rrori" edepois qo" ."du simbolo de entrada 6 lido. um procedique seguimos as setas funciona -"rrto-rlternativo baseadoem iegoir as setaseantes de ler cada entrada neste exemplo' igualmente bem, mas essem6todo n6o 6 ilustrado " vai para 1 na o O.rt"do {3} vai para {1,3} na entrada a, pois em 1y'4 estado3 seta e' O estado {3} na entrada b entrada a e 1, poruor rr.r, vai-pata3 com uma vai para A. nenhum O .st"do {7,2} naentrada avaipara{2,3} porque 1 neo aponta para com seta a e nenhum aponta para estado com seta a e 2 aponta para ambos 2 e 3 Continulugar algum com seta i. O {1,2} na entrada b vai para {2'3}' "ttado para D ' d"it" maneira obtemos o seguinte diagrama "tido
a,b

FIGURA T.43 Um AFD D que 6 equivalente ao AFN N+' aponta para Podemos simplificar essam6quina observando que nenhuma seta ser removidos sem afetar o desemos estados{f } elt,2}, portanto eles podem

60

CAPiTULO

I / LINGUAGENS

REGULARES

penhoda m6quina.Fazendo issochegamos Figura 1.44. i


drb

;\-

/,'

S
b

a
a

FIGURA I.44 O AFD D ap6sremover estadosdesnecess6rios.

::::'

FECHO

SOB AS OPERA96ES

REGULARES

Agora, retornamos ao fecho da classede linguagens regulares sob as operaq6es regularesque comegamosna Seg6o1.1. Nosso objetivo 6 provar que a unieo, a concatenageoe a estrela de linguagens regulares s5o ainda regulares. Abandonamos a tentativa original de fazer isso quando vimos que lidar com a operaEdo de concatenaQeoen complicado demais. O uso de nio-determinismo torna as provas muito mais fdceis. Primeiro, vamos considerar novamente o fecho sob unido. Antes, provamos o fecho sob uniSo simulando deterministicamente ambas as m6quinas simultaneamente via uma construEio do produto cartesiano. Agora damos uma nova demonstraE5o para ilustrar a t6cnica do nio-determinismo. Revisar a primeira prova, que aparecena p6gina 46, pode valer a pena para ver o quio mais f6cil e mais intuitiva 6 a nova prova.

TEOREMA I.45 A classede linguagens regulares 6 fechada sob a operaEdode unido.

Temos aslinguagensregularesA1 e A2 e desejamos provar IDIA DA PRovA que 41 U A2 6 regular. A id6ia 6 tomar os dois AFNs, N1 e N2 para Ay e A2, e combini-los em um novo AFN, N. A miquina N tem de aceitar sua entrada se N1 ou ly'z aceita essa entrada. A nova m5quina tem um novo estado inicial que ramifica para os estadosiniciais das m6quinas anteriores com setas e. Dessa maneira a nova m6quina n6odeterministicamente adivinha qual das duas m6quinas aceita a entrada. Se uma delas aceita a entrada, l/ tamb6m a aceitari.

1.2

NAO-DETERMINISMO

6l

indicamoso esessa Representamos construgionaFigura 1'+6' A esquerda' /y'2com cfculosgrandes de tado jnicjale os esrados aceiiagiodasLdquinas r/r e ealzunsestadosadicionaiscomcirculospequenos.Adireita,mostramoscomo em de seras transiso, resultando 1y',. e r/z adicionando ;#;;;.t,

A/

lr1

a:___)
l*u@l l^oOl

/nr v
nO "O

t_:__J
N2.

o
/A\
V

f-ool l^ ol

o
a\ -n

t39

"o

FIGURA 1.46 A1 U A2' Construgio de um AFN A/ para reconhecer

PROVA 41' e que reconhega --r--Suponhaque N1 : lQt,E,6r,qr,F1) ' a , A d: ( Q z , E , 6 r , q z , F 2 ) r e c o n h e qA 2 '

A1 U A2' Construa,lf : (Q, X,d.qo. F) parareconhecer

L.Q={so}uQruQz. de l[2' coma adiESo umnovo de os de Osestados fV sio"iodos estados Nr e


inicial qe' estado inicial de l{' 2. O estadoqp6 o estado F de 3. Os estados aceitagdo = F1U F2' de l{r e l{2. de J" lf,ao.oJo, o, estados aceitag'o d" Os estados ".;;;qeosel{r aceitaou 1y'2 aceita' forma -l{ aceita Dessa

62

CAP1TULO

I / I-INGUAGENS

REGULARES

4. Definad de modo queparaqualquer e Q equalquer e Eu, a S

(6'(n,o) ae Qt ae 6(q,a) l6,z(o'a), Qz


l$t,azJ [0

Q:Qoea: e=Qoeafe.

Agora podemos provar o fecho sob concatenagio. Lembre-se de que anteriormente, sem n5o-determinismo, completar a prova teria sido dificil.

TEOREMA I.47 A classede linguagens regulares 6 fechada sob a operagio de concatenagdo.

Temos aslinguagensregularesA1 e A2 e desejamos tDEtA DA PRovA provar que ,41 o A2 6 regular. A id6ia 6 tomar dois AFNs, l/r e Nz pan A1 e A2, e combin6-los em um novo AFN ly' como fizemos para o caso da uni5o, mas dessa vez de uma maneira diferente, como mostrado na Fizura 1.48.

_t

_\,

o oo

@ I @

-+()o

r'l1\ \v/

oov

il

/A\ l l

*-..*V ---+{ ) --)',t

/n\ a ^ /A\

oov

FIGURA I.4E C-onsmr$o de -Y para reconhecer Ay o A2.

1.2

NAO-DETERMINISMO

63

de aceitaEio Atribua ao estado inicial de 1{ o estado inicial de Nr. os estados permitem ramificar de Nr t6m setas e adicionais que nlo-deterministicamente que ele enconp^r^ Nrsempre que N1 estdnum estado de aceitagio, significando em A1. Os estadosde parte inicial d" errtr"da que constitui uma cadeia ;;;;" ele aceitagSoie /f sio somente os esiados de aceitagio de l/2. Por conseguinte, partes, a_primeira aceita por a enrrada pode ser dividida em duas ".eit"!rr"rrdo ly'r e a ,"gorrd" por I/2. itodemos pensar em ly' como n6o-deterministicamente adivinhando onde fazet a divis6o. PROVA 41, e que Suponhaque N1 : (Qt,E,5r,qr,F1) reconhega 42' I'{z: (Qz,E,5z,qz, F2) reconhega A1 o A2' ConstruaN : (Q,E,6,Qt,F2) parareconhecer t.Q:QtUQz. Os estadosde N sio todos os estadosde llr e 'n/z' 2. O estado qr 6 o mesmo que o estado inicial de lfr' aceitagio de 3. Os estados de aceitaEsoflz sio os mesmos que os estados de N2. E" 4. Defina d de modo que para qualquer s e Q equalquer a

6(q,o):

I';,',i;,2\

:l I3;i;

aeQteA/Ft Qileafe U{qz} eFtea: aeQz'

TEoREMA

1.49

A classede linguagens regulares 6 fechada sob a operagdo estrela'

provar que Temos uma linguagem regular '41 e desejamos loEtn DA PRovA nlN Nr para '4r e modificamo-lb para Ailamb6m 6 regular. Tomamos "*Figura 1-50. O AFN resultante l[ aceitar5 reconhecer Ai, como mostrado na aceite cada 1y'1 sua entrada ,.-pr" que ela puder ser quebrada em v6rias partes e uma das partes. ao estado Podemos construir ly' como ly'1 com setas s adicionais retornando de aceitagao.Dessa maneira, quando o processamento inicial a partir dos estados de pular de .h"ga ao final de uma parte que N1 aceita, a m6quina Iy' tem a o-pgdo Adicio.,rolt"" p"ra o estado inicial paia tentar ler uma outra parte que lfr aceite. l[ de tal forma que ele aceite e, que 6 sempre um nalmente, temos que modificar

64

CAPITULO

I /LINGUAGENS

REGULARES

membro de Ai. Uma id6ia (levemente m6) 6 simplesmente adicionar o estado inicial ao coniunto de estados de aceitagio. Essa abordagem certamente adiciona e i linguagem reconhecida, mas ela tamb6m pode adicionar outras cadeias O indesejadas. Exercicio 1.15 pede um exemplo da falha dessaid6ia. A maneira de consertar a construgSo 6 adicionar um novo estado inicial, que tamb6m seja um estado de aceitaqSo,e que tenha uma seta e para o antigo estado inicial. Essa solugSo tem o efeito desejado de adicionar e i linguagem sem adicionar nada mais.

l/

rq

{ ".E

FIGURA I.5O Construgio de N para reconhecer ,4*

que reconhega At. PRoVA Suponha ly'1: (Qr,E,6r,Qr,.F.1) N ,4f Construa : (8, E,6,eo,F) parareconhecer . l.Q={so}u8t. Os estados N sio os estados l[1 maisum novo estado de de inicial. qe inicial. 2. O estado 6 o novo estado 3.F:{qo}uF'r. Os estados aceitag6o os antigosestados aceitagiomais o novo de s5o de inicial. estado 4. Defina d de modo que paraqualquerq e Q e qualquera e. re ,
6r(q,a) h(q, a) 6 ( q , a )= AQtea/Ft

efieafe
QFtea: q:q0ea: q:qoeale.

u h(q,o) {sri

{s'}

Você também pode gostar