Een Turing-machine is een theoretisch rekenmodel dat in 1936 door Alan Turing werd geïntroduceerd. Het bestaat uit een oneindig lange band die in cellen is verdeeld, een lees-/schrijfkop die langs de band kan bewegen en een besturingseenheid die het gedrag van de machine bepaalt. . De tape is aanvankelijk blanco en de invoer naar de machine wordt geleverd op een aparte invoertape. De uitvoer van de berekening wordt op een uitvoerband geschreven.
Om een functie te berekenen, volgt een Turing-machine een reeks instructies die een programma wordt genoemd. Het programma specificeert hoe de machine zich moet gedragen op basis van de huidige status en het symbool dat het van de band leest. De machine start in een begintoestand en voert herhaaldelijk de volgende stappen uit:
1. Lezen: de machine leest het symbool dat zich momenteel onder de lees-/schrijfkop bevindt.
2. Proces: op basis van de huidige status en het gelezen symbool bepaalt de machine de volgende status en het symbool dat op de band moet worden geschreven.
3. Verplaatsen: de machine verplaatst de lees-/schrijfkop één cel naar links of rechts.
4. Herhalen: De machine keert terug naar stap 1 en gaat door totdat deze stopt.
De rol van de invoertape is om de invoer voor de berekening te leveren. De invoerband wordt aanvankelijk gevuld met de invoersymbolen, die tijdens de berekening door de machine worden gelezen. De invoerband is alleen-lezen, wat betekent dat de machine de inhoud ervan niet kan wijzigen.
De rol van de uitvoertape is om de uitvoer van de berekening op te slaan. Terwijl de machine de invoersymbolen verwerkt, kan het symbolen op de uitvoerband schrijven om de gewenste uitvoer te produceren. De uitvoertape is alleen-schrijven, wat betekent dat de machine er alleen naar kan schrijven en de inhoud niet kan lezen.
Het vermogen van de Turing-machine om functies te berekenen is gebaseerd op het vermogen om symbolen op de band te manipuleren volgens een reeks regels. Met deze regels kan de machine rekenkundige bewerkingen, logische bewerkingen en andere berekeningen uitvoeren. Door deze regels te volgen, kan een Turing-machine elke algoritmische berekening simuleren.
Neem bijvoorbeeld een Turingmachine die de som van twee getallen berekent. De invoertape zou de twee cijfers bevatten, gescheiden door een speciaal symbool. De machine leest de invoersymbolen, voert de optelbewerking uit en schrijft het resultaat op de uitvoerband.
Een Turing-machine berekent een functie door een reeks instructies te volgen die door een programma zijn gespecificeerd. De invoerband levert de invoer voor de berekening en de uitvoerband slaat de uitvoer van de berekening op. De machine manipuleert symbolen op de band om berekeningen uit te voeren, waardoor het elke algoritmische berekening kan simuleren.
Andere recente vragen en antwoorden over Computable functies:
- Wat betekent het dat verschillende varianten van Turing-machines gelijkwaardig zijn qua computercapaciteit?
- Leg de relatie uit tussen een berekenbare functie en het bestaan van een Turing-machine die deze kan berekenen.
- Wat is de betekenis van een Turing-machine die altijd stopt bij het berekenen van een berekenbare functie?
- Kan een Turing-machine worden aangepast om altijd een functie te accepteren? Leg uit waarom wel of waarom niet.
- Wat is een berekenbare functie in de context van computationele complexiteitstheorie en hoe wordt deze gedefinieerd?