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.

44 HOOFDSTUK 4. TALEN EN AUTOMATEN<br />

4.3 Turing Machine<br />

Tekst ooit geschrev<strong>en</strong> voor e<strong>en</strong> ander doel, alle<strong>en</strong> voor liefhebbers.<br />

Om te kunn<strong>en</strong> vergelijk<strong>en</strong> hoe efficiënt algoritm<strong>en</strong> zijn, moet<strong>en</strong> we ze uitvoer<strong>en</strong><br />

onder vergelijkbare omstandighed<strong>en</strong>, <strong>en</strong> in ieder geval op dezelfde computer. Het<br />

zou mooi zijn als er e<strong>en</strong> algeme<strong>en</strong> aanvaarde standaard architectuur gekoz<strong>en</strong> kon<br />

word<strong>en</strong>, zodat nieuwe algoritm<strong>en</strong> vergelek<strong>en</strong> kunn<strong>en</strong> word<strong>en</strong> met oude resultat<strong>en</strong><br />

in de literatuur versch<strong>en</strong><strong>en</strong>. Zo’n architectuur bestaat, <strong>en</strong> is in feite ge<strong>en</strong> electronisch<br />

rek<strong>en</strong>apparaat, maar e<strong>en</strong> wiskundig model. Dit model, de Turing Machine,<br />

werd opgesteld door de Britse wiskundige Alan Turing omdat deze wilde red<strong>en</strong>er<strong>en</strong><br />

over mogelijkhed<strong>en</strong> <strong>en</strong> onmogelijkhed<strong>en</strong> van de Algoritmiek, het oploss<strong>en</strong><br />

van problem<strong>en</strong> aan de hand van vaste recept<strong>en</strong>. Turing deed e<strong>en</strong> fundam<strong>en</strong>tele<br />

ontdekking: er zijn simpel te formuler<strong>en</strong> problem<strong>en</strong> waarvoor ge<strong>en</strong> algoritmisch<br />

recept bestaat. E<strong>en</strong> wonderlijk resultaat, vooral als we ons realizer<strong>en</strong> dat deze<br />

ontdekking stamt van vóór de tweede wereldoorlog, dus van voor de bouw van de<br />

eerste computers. Turings machine is daarmee niet alle<strong>en</strong> e<strong>en</strong> standaard machine<br />

om de complexiteit van algoritm<strong>en</strong> aan te ijk<strong>en</strong>, maar is allereerst e<strong>en</strong> fundam<strong>en</strong>teel<br />

model dat ons inzicht geeft in de mogelijkhed<strong>en</strong> van de computer. Hoewel de<br />

machine heel simpel van structuur is, is iedere<strong>en</strong> er van overtuigd dat elk computer<br />

algoritme tot e<strong>en</strong> programma voor de Turing Machine valt over te zett<strong>en</strong>. Dit kan<br />

niet bewez<strong>en</strong> word<strong>en</strong>, daarvoor ontbreekt e<strong>en</strong> waterdichte definitie van het begrip<br />

computer. Totdat anders aangetoond is blijft de Turing Machine de maat voor wat<br />

berek<strong>en</strong>baar is met behulp van programmeerbare computers.<br />

De Turing Machine is gebaseerd op het idee dat e<strong>en</strong> algoritme door e<strong>en</strong> (mechanische)<br />

klerk uitgevoerd moet kunn<strong>en</strong> word<strong>en</strong>. De klerk heeft e<strong>en</strong> onuitputtelijke<br />

voorraad papier waarop aantek<strong>en</strong>ing<strong>en</strong> gemaakt kunn<strong>en</strong> word<strong>en</strong> om tijd<strong>en</strong>s de<br />

verdere berek<strong>en</strong>ing te kunn<strong>en</strong> raadpleg<strong>en</strong>. De rek<strong>en</strong>stapp<strong>en</strong> die de klerk maakt<br />

moet<strong>en</strong> van te vor<strong>en</strong> strikt vastgelegd word<strong>en</strong> in e<strong>en</strong> programma, bestaande uit<br />

e<strong>en</strong> eindig aantal rek<strong>en</strong>regels, instructies. De klerk onthoudt waar hij mee bezig<br />

is, maar heeft slechts e<strong>en</strong> beperkte, eindige, geheug<strong>en</strong> capaciteit. Hij raadpleegt<br />

steeds de instructies om zijn volg<strong>en</strong>de aktie te bepal<strong>en</strong>, gebaseerd op zijn aantek<strong>en</strong>ing<strong>en</strong><br />

<strong>en</strong> zijn geheug<strong>en</strong>toestand.<br />

Hieronder e<strong>en</strong> plaatje van de machine zoals door Turing voorgesteld. We zi<strong>en</strong> e<strong>en</strong><br />

besturingse<strong>en</strong>heid die e<strong>en</strong> leeskop langs e<strong>en</strong> invoertape kan beweg<strong>en</strong>. De toestand<br />

die de besturingse<strong>en</strong>heid onthoudt, komt overe<strong>en</strong> met het beperkte beschikbare<br />

geheug<strong>en</strong>. Die toestand kan slechts e<strong>en</strong> van te vor<strong>en</strong> vastgelegd aantal waard<strong>en</strong><br />

aannem<strong>en</strong> (<strong>en</strong> dat is dus slechts e<strong>en</strong> eindig aantal, dat echter per Turing Machine<br />

kan variër<strong>en</strong>). De invoertape bestaat uit e<strong>en</strong> aane<strong>en</strong>gereg<strong>en</strong> aantal vakjes of cell<strong>en</strong>,<br />

die elk e<strong>en</strong> symbool bevatt<strong>en</strong>. Op deze tape leest de Turing Machine zijn invoer,<br />

maar de tape di<strong>en</strong>t ook als (extern) geheug<strong>en</strong> van de machine: er kan tijd<strong>en</strong>s het<br />

rek<strong>en</strong><strong>en</strong> informatie op geschrev<strong>en</strong> word<strong>en</strong>. In principe is de opslagcapaciteit van

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

Saved successfully!

Ooh no, something went wrong!