Universele Turing-machine

In de wiskunde en de theoretische informatica, is een universele Turing-machine (UTM) (ook bekend als de universele rekenmachine, universele machine (UM), U-machine, U en ATM) een Turing-machine die elke willekeurige Turing-machine op elke willekeurige input kan simuleren. De universele Turing-machine slaagt hier in essentie in door zowel de beschrijving van de te simuleren machine als de input daarvan van haar eigen tape te lezen.

Een universele Turing-machine is een Turing-machine die als input neemt, en deze input accepteert wanneer:

Pas wanneer aan al deze voorwaarden voldoet stopt de universele Turingmachine in de accepterende toestand. Een formele notatie is: .

Een belangrijke observatie is dat de universele Turingmachine een herkenner is van , en dus geen beslisser. Dit is het geval omdat het mogelijk is dat M oneindig doorrekent bij input en dus nooit de afwijzende toestand bereikt. De universele Turing-machine zou dan ook nooit de afwijzende toestand berkeiken. We hebben hier te maken met het stopprobleem.

Het idee van een universele Turing-machine werd in 1936 geïntroduceerd door Alan Turing. Dit model wordt door sommigen (bijvoorbeeld Martin Davis (2000)) beschouwd als de oorsprong van de stored program-computer - door John von Neumann (1946) gebruikt voor zijn "Electronic Computing Instrument" dat nu zijn naam draagt: de von Neumann-architectuur.

De alledaagse computer

De alledaagse computer wordt ook wel eens een universele Turing-machine genoemd. Enerzijds is dit correct, aangezien het principe van de universele Turing-machine is dat het een arbitrair programma met arbitraire input kan uitvoeren; wat alledaagse computers praktisch gezien ook kunnen. Anderzijds heeft de theoretische universele Turing-machine een oneindig geheugen. Praktisch gezien kan wel gezegd worden dat een alledaagse computer een universele Turing-machine is, aangezien het geheugen dat de meeste computers hebben voor zeer veel problemen voldoende is, terwijl dit puur theoretisch gezien dus niet correct is.

Referenties

  1. ↑ (en) Michael Sipser. Introduction to the Theory of Computation, pp. 201–210.
  2. ↑ (en) Michael Sipser. Introduction to the Theory of computation, pp. 202.