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.

36 HOOFDSTUK 4. TALEN EN AUTOMATEN<br />

4.2 Eindige Automat<strong>en</strong><br />

⊲ SCHAUM §12.5: Finite State Automata<br />

De automat<strong>en</strong> in SCHAUM zijn volg<strong>en</strong>s de gegev<strong>en</strong> definitie altijd deterministisch.<br />

We gev<strong>en</strong> hier e<strong>en</strong> wat algem<strong>en</strong>ere formulering. Het pomplemma SCHAUM p. 309<br />

behandel<strong>en</strong> we niet.<br />

4.2.1 Inleiding<br />

Gerichte graf<strong>en</strong> zijn e<strong>en</strong> goed middel om de werking van bepaalde system<strong>en</strong> weer<br />

te gev<strong>en</strong>. De toestand<strong>en</strong> van het systeem corresponder<strong>en</strong> dan met de punt<strong>en</strong> uit<br />

de graaf, de overgang<strong>en</strong> van e<strong>en</strong> toestand naar e<strong>en</strong> andere met de pijl<strong>en</strong> uit de<br />

graaf. De graaf di<strong>en</strong>t als model van het systeem, <strong>en</strong> kan gebruikt word<strong>en</strong> om het<br />

systeem te analyser<strong>en</strong> of te simuler<strong>en</strong>. De graaf kan nog verder versierd word<strong>en</strong>:<br />

de takk<strong>en</strong> kunn<strong>en</strong> nam<strong>en</strong> krijg<strong>en</strong> om de acties van het systeem weer te gev<strong>en</strong>, <strong>en</strong><br />

ev<strong>en</strong>zo kunn<strong>en</strong> we de punt<strong>en</strong> voorzi<strong>en</strong> van nadere informatie over de toestand. We<br />

kunn<strong>en</strong> bijvoorbeeld de aanvangstoestand van het systeem marker<strong>en</strong>, of toestand<br />

waarin het systeem stabiel is (wat dat ook moge betek<strong>en</strong><strong>en</strong>).<br />

4.13 Voorbeeld. We modeller<strong>en</strong> e<strong>en</strong> systeem, met acties a <strong>en</strong> b dat als e<strong>en</strong>-nalaatste<br />

actie (voor het stopp<strong>en</strong>) e<strong>en</strong> actie a doet. In de initiële toestand mag elke<br />

actie gedaan word<strong>en</strong>, alvor<strong>en</strong>s terug te ker<strong>en</strong> in die toestand. Voor terminatie van<br />

het systeem moet de actie a gedaan word<strong>en</strong>, daarna e<strong>en</strong> willekeurige actie, <strong>en</strong> we<br />

stopp<strong>en</strong>.<br />

Het plaatje hieronder links beschrijft dit gedrag. Het geeft ge<strong>en</strong> algoritme om van<br />

e<strong>en</strong> string over {a,b}, ‘on the fly’ van links naar rechts lez<strong>en</strong>d, te bepal<strong>en</strong> of die<br />

string als e<strong>en</strong>-na-laatste actie e<strong>en</strong> a had. De gegev<strong>en</strong> graaf laat ons in toestand 1 de<br />

keuze om bij actie a de tak (1,a,1) te kiez<strong>en</strong> of de tak (1,a,2). Dit werkt alle<strong>en</strong> als<br />

we van te vor<strong>en</strong> wet<strong>en</strong> wanneer we aan de e<strong>en</strong>-na-laatste actie zijn toegekom<strong>en</strong>.<br />

Voor e<strong>en</strong> algoritmische methode moet<strong>en</strong> we steeds de twee laatste letters onthoud<strong>en</strong>,<br />

zodat we op elk mom<strong>en</strong>t kunn<strong>en</strong> besluit<strong>en</strong> of de reeds gelez<strong>en</strong> string e<strong>en</strong><br />

juiste actie-reeks beschrijft. Dit geeft het tweede plaatje.<br />

a,b<br />

a a,b<br />

1 2 3<br />

b<br />

ab<br />

b<br />

b<br />

b<br />

a<br />

aa<br />

a<br />

bb a ba<br />

a

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

Saved successfully!

Ooh no, something went wrong!