29.08.2013 Views

Hoofdstuk 4 Talen en Automaten - Liacs

Hoofdstuk 4 Talen en Automaten - Liacs

Hoofdstuk 4 Talen en Automaten - Liacs

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

38 HOOFDSTUK 4. TALEN EN AUTOMATEN<br />

4.16 Definitie. Zij A = (Q,Σ,E,qin,F) e<strong>en</strong> eindige automaat. De taal van A ,<br />

g<strong>en</strong>oteerd L(A ) is de verzameling<br />

{ w ∈ Σ ∗ | er is e<strong>en</strong> wandeling van qin naar e<strong>en</strong> toestand in F met label w }<br />

Het begrip wandeling kunn<strong>en</strong> we ook op e<strong>en</strong> inductieve manier definier<strong>en</strong>, net als<br />

de afsluiting van e<strong>en</strong> relatie, net als de ster van e<strong>en</strong> taal (bladzijde 32).<br />

Zij A = (Q,Σ,E,qin,F) e<strong>en</strong> eindige automaat. Gebaseerd op de éénstaps-relatie<br />

E ⊆ Q × Σ × Q (‘van p naar q met label a’) mak<strong>en</strong> we daar als volgt wandeling<strong>en</strong><br />

van:<br />

(i) (q,λ,q) ∈ E ∗ voor elke q ∈ Q,<br />

(ii) als (p,x,q) ∈ E ∗ <strong>en</strong> (q,a,r) ∈ E, dan (p,xa,r) ∈ E ∗<br />

(iii) E ∗ bevat ge<strong>en</strong> drietall<strong>en</strong> anders dan die met (i) <strong>en</strong> (ii) gevond<strong>en</strong>.<br />

Nu geldt (p,x,q) ∈ E∗ desdals er e<strong>en</strong> wandeling is van p naar q met label x. Als<br />

alternatief kunn<strong>en</strong> ook de macht<strong>en</strong> En , n-staps verbinding<strong>en</strong>, g<strong>en</strong>om<strong>en</strong> word<strong>en</strong> <strong>en</strong><br />

dan E∗ = <br />

n≥0 En . De drie begripp<strong>en</strong>, wandeling, E∗ inductief, E∗ als oneindige<br />

ver<strong>en</strong>iging, zijn allemaal equival<strong>en</strong>t. Dat zou (net als vergelijkbare definities voor<br />

de ster K∗ van e<strong>en</strong> taal K, of de afsluiting R∗ van e<strong>en</strong> binaire relatie, Definitie 1.5)<br />

formeel bewez<strong>en</strong> kunn<strong>en</strong> word<strong>en</strong> met inductie (natuurlijk).<br />

4.17 Opmerking. De notatie hier is dubbelzinnig. De takk<strong>en</strong> van de automaat E<br />

vorm<strong>en</strong> <strong>en</strong>erzijds de e<strong>en</strong>staps-relatie E ⊆ Q × Σ × Q <strong>en</strong> bepal<strong>en</strong> de relatie E ∗ die<br />

het effect van wandeling<strong>en</strong> sam<strong>en</strong>vat. In Voorbeeld 4.13, rechter automaat, vind<strong>en</strong><br />

we bijvoorbeeld (bb,aaaba,ba) ∈ E ∗ omdat er e<strong>en</strong> wandeling bb a → ba a → aa a →<br />

aa b → ab a → ba is van toestand bb naar toestand ba met label aaaba.<br />

Anderzijds vorm<strong>en</strong> de takk<strong>en</strong> e<strong>en</strong> eindige, niet-lege, verzameling, e<strong>en</strong> alfabet.<br />

Daarmee is E ∗ de verzameling van alle strings over E. In het voorbeeld is (ba,a,aa)<br />

(aa,a,aa)(bb,a,ba)(ab,b,bb) zo’n string. Let wel, deze string stelt ge<strong>en</strong> wandeling<br />

voor!<br />

Dit is wat informatici overloading noem<strong>en</strong>, dubbelzinnige notatie waarvan uit de<br />

context moet blijk<strong>en</strong> welke betek<strong>en</strong>is zij heeft. <br />

4.2.3 Voorbeeld<strong>en</strong><br />

Laatste <strong>en</strong> eerste letter. Automaat voor de taal<br />

{ x ∈ {a,b} ∗ | de eerste letter van x is gelijk aan de laatste letter van x }. De automaat<br />

onthoudt als het ware de eerste letter die langs de wandeling gelez<strong>en</strong> wordt,<br />

<strong>en</strong> mag daarna alle<strong>en</strong> eindig<strong>en</strong> wanneer de laatste letter op de wandeling daaraan<br />

gelijk is. Twee versies, beschrijv<strong>en</strong>d <strong>en</strong> algoritmisch.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!