Hoofdstuk 4 Talen en Automaten - Liacs
Hoofdstuk 4 Talen en Automaten - Liacs
Hoofdstuk 4 Talen en Automaten - Liacs
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