Un algoritmo es un conjunto de instrucciones para resolver un problema donde la entrada y la salida (y el algoritmo) se pueden expresar en símbolos. Una máquina de Turing es una descripción simbólica de una máquina que ejecutará un algoritmo dado. En este sentido, una máquina de Turing también es un algoritmo, pero uno donde la especificación es compatible con una máquina físicamente realizable que ejecutaría el algoritmo automáticamente, tomando una entrada determinada y generando la salida correcta, siempre que la máquina tenga suficiente tiempo y espacio de almacenamiento .
Las condiciones de espacio y tiempo suficientes pueden no ser físicamente realizables debido a los límites tecnológicos imperantes o debido a los límites del universo físico. Se especificó que la máquina teórica original concebida por Turing tenía una cinta de almacenamiento infinita, sin embargo, se ha convertido en una práctica común referirse a los dispositivos con menos espacio de almacenamiento infinito como máquinas de Turing.
En algunos casos, una máquina de Turing funcionará para siempre, es decir, nunca convergerá en una solución. Del mismo modo, algunos algoritmos tampoco convergerán para una entrada dada.
- Cómo encontrar un algoritmo eficiente para un problema
- ¿Cuál es la complejidad temporal del algoritmo babilónico para encontrar la raíz cuadrada?
- ¿Qué se entiende por estructura de datos?
- ¿Cuáles son los componentes o algoritmos de subsistema mejor diseñados en Linux?
- ¿Cuáles son los algoritmos más utilizados en los que puedo confiar para mejorar mis habilidades de resolución de problemas?
Existen funciones que las máquinas de Turing no pueden modelar, como el problema de detención: Wikipedia. Es el tema de un debate en curso sobre si existe o no otra clase de máquina o dispositivo físico que pueda modelar tales funciones. Vea el argumento de Penrose-Lucas Reducción objetiva orquestada – Wikipedia