Turing machine is een term uit de informatica. Een Turing machine is eerder een systeem van regels, toestanden en overgangen dan een echte machine. Hij werd voor het eerst beschreven in 1936 door de Engelse wiskundige en computerwetenschapper Alan Turing. Er zijn twee doelen voor een Turing machine: het bepalen van formele talen en het oplossen van wiskundige functies. Turingmachines zijn een van de belangrijkste formele modellen in de studie van de informatica.
Wat is een Turingmachine?
Een Turingmachine is een abstract rekenmodel dat gebruikt wordt om het begrip berekenbaarheid en complexiteit te bestuderen. In eenvoudige woorden is het een theoretische 'machine' die een oneindige band (tape) leest en beschrijft met een lees-/schrijfkop volgens een vaste set regels. Ondanks zijn eenvoud kan een Turingmachine alle berekeningen uitvoeren die een moderne computer ook kan — mits genoeg tijd en ruimte.
Belangrijkste onderdelen en werking
- Band (tape): een rij cellen die symbolen bevatten uit een eindig alfabet. Vaak wordt aangenomen dat de band naar beide zijden oneindig is.
- Leeskop (head): beweegt over de band, leest het huidige symbool en kan hetzelfde symbool vervangen door een ander symbool.
- Toestandsregister: de machine heeft een eindig aantal toestanden; één daarvan is de starttoestand.
- Overgangsfunctie (δ): bepaalt, gegeven de huidige toestand en het gelezen symbool, welk symbool geschreven wordt, in welke richting de kop beweegt (links/rechts) en wat de volgende toestand is.
- Staat van acceptatie/afwijzing: speciale toestanden die aangeven of de invoer geaccepteerd of verworpen wordt; soms stopt de machine ook zonder acceptatie of afwijzing (niet-halting).
Formeel wordt een deterministische Turingmachine vaak beschreven als een 7-tuple (Q, Σ, Γ, δ, q0, q_accept, q_reject), waarbij Q de verzameling toestanden is, Σ het invoeralfabet, Γ het bandalfabet, δ de overgangsfunctie, q0 de starttoestand en q_accept / q_reject respectievelijk de accepterende en verwerpende toestanden.
Deterministisch vs. niet-deterministisch
Bij een deterministische Turingmachine geeft de overgangsfunctie precies één regel voor elke combinatie van toestand en gelezen symbool. Bij een niet-deterministische Turingmachine kunnen er meerdere mogelijke overgangen zijn; de machine 'verken' dan in feite meerdere berekeningspaden. Theorie toont aan dat niet-deterministische Turingmachines niet meer berekenkracht hebben dan deterministische Turingmachines (ze herkennen precies dezelfde talen), maar ze kunnen soms veel minder tijd nodig lijken te hebben — dit verschil ligt aan de basis van belangrijke open problemen in de complexiteitstheorie (zoals P versus NP).
Universele Turingmachine
Een universele Turingmachine (UTM) kan de werking van elke andere Turingmachine simuleren als invoer een geschikte codering is van die andere machine en haar invoer. Dit idee is fundamenteel: het legt de theoretische basis voor het concept van een opslaggeprogrammeerde computer (een apparaat dat een programma en data op dezelfde opslag kan hebben).
Belang in de informatica
- Begrip van berekenbaarheid: Turingmachines vormen het centrale model om te bepalen welke functies en problemen berekenbaar zijn (computable) en welke niet.
- Halteerbaarheidsprobleem: Turing bewees dat het algemene probleem van beslissen of een willekeurige Turingmachine stopt op een gegeven invoer onbeslisbaar is — het bekende halting-probleem. Dit toont grenzen aan van wat algoritmisch oplosbaar is.
- Complexiteitstheorie: doordat Turingmachines ook tijd- en ruimtegebruik meten, vormen ze de basis voor klassen als P, NP, PSPACE en anderen.
- Formele talen en automaten: Turingmachines bepalen de klasse van recursief en recursief-op-afroepbare talen; zij staan boven in de hiërarchie van berekeningsmodellen.
Praktische en conceptuele relevantie
Hoewel echte computers hardware- en geheugengrenzen hebben en anders georganiseerd zijn (bijv. eindige geheugen, meerdere registers, I/O-apparaten), helpt het Turingmodel bij het begrijpen van fundamentele principes zoals programmaverwerking, compilatie en de grenzen van automatisering. Veel resultaten in programmeertheorie, cryptografie en algoritmen zijn gebaseerd op analyse met behulp van Turingmachines of equivalent formele modellen.
Varianten en uitbreidingen
- Multi-tape Turingmachines: meerdere banden en koppen; vaak eenvoudiger te analyseren maar niet krachtiger qua berekenbaarheid.
- Interactieve en probabilistische modellen: modellen die interactie of willekeurigheid toelaten om bepaalde problemen efficiënter te benaderen.
- Beperkte Turingmachines: zoals lineair begrensde automaten, die corresponderen met beperktere klassen van talen.
Voorbeeld in eenvoudige woorden
Stel je een Turingmachine voor die bepaalt of een keten van enen (bijv. "111") van even of oneven lengte is. De machine zou telkens één symbool lezen en schakelen tussen twee toestanden (even/oneven) totdat de band klaar is; de eindtoestand bepaalt acceptatie of afwijzing. Dit illustreert hoe simpele toestandswisselingen en regels al niet-triviale beslissingen kunnen representeren.
Beperkingen
Belangrijke grenzen worden door Turingmachines zelf aangetoond: sommige problemen zijn onbeslisbaar (zoals het halting-probleem) en voor vele problemen zijn er strikte onder- en bovengrenzen aan de benodigde tijd en ruimte. Deze resultaten zijn fundamenteel voor zowel theoretische als praktische informatica.
Samengevat: de Turingmachine is geen fysieke machine maar een krachtig en zuiver model dat centraal staat in het begrip wat algoritmisch mogelijk is, welke problemen inherent onoplosbaar zijn en hoe we de efficiëntie van algoritmen kunnen meten.

