Notre PC fonctionne-t-il comme machine de Turing?

8

Notre PC fonctionne-t-il comme machine de Turing? Le modèle d'une machine de Turing se compose d'une bande mémoire infinie, ce qui signifie des états infinis. Mais supposons que si notre PC a 128 Mo de mémoire et 30 Go de disque, il aurait 256 ^ 30128000000 états et donc, il a des états finis.

Je sais que nous pouvons écrire un type de programme qui, si pendant l'exécution nous manquons de mémoire, demandera d'échanger le disque mémoire avec un disque mémoire vide et de reprendre l'exécution.

Mais que se passe-t-il si nous n'échangeons pas le disque de mémoire, dans ce cas, est-il juste de considérer PC comme FA ?

siddstuff
la source
notez que même le [grand] disque est fini et donc le calcul basé sur lui peut être représenté techniquement comme un FSM. très similaire à cette autre question Turing complète et puissance de calcul
vzn
Un ordinateur n'est pas limité à la mémoire interne; il peut également utiliser le stockage externe.
reinierpost
Non, cela fonctionne comme une machine von Neumann. Aussi,25630128000000est plus proche de l'infini que vous ne le pensez.
Andrej Bauer
Les machines de Turing n'ont pas nécessairement une quantité infinie de mémoire. Ils ont juste une quantité de mémoire suffisante pour faire tout ce que vous voulez faire. Si vous vous limitez à interrompre des programmes, une machine Turing peut également avoir une mémoire finie. Quoi qu'il en soit, la quantité de mémoire qu'une machine de turing utilisera à un moment donné est limitée, bien qu'elle puisse augmenter. Les ordinateurs en réseau ont également une quantité de mémoire limitée, mais probablement croissante.
DanielV

Réponses:

11

Vous avez raison de dire que les ordinateurs physiques ont une mémoire finie et ne sont donc pas complets. Il existe d'autres façons dont la théorie de la calculabilité n'est pas un bon modèle de calcul - elle ne prend pas en compte les contraintes de temps et de mémoire. La théorie de la complexité a été inventée (peut-être) comme une représentation plus réaliste de l'informatique, mais IMHO souffre de problèmes similaires (mais plus subtils).

D'un autre côté, pour étudier mathématiquement les capacités et les limites de l'informatique, nous devons utiliser une certaine abstraction qui n'est pas contrainte. Cela rend l'analyse possible. De même, en mécanique statistique, nous supposons que le nombre d'éléments (atomes ou molécules) est si grand, que le comportement est proche de la limite (c'est-à-dire que nous laissons le nombre d'éléments tendre à l'infini). L'étude de l'informatique dans une perspective asymptotique présente des avantages similaires, mais est parfois trompeuse. Voici quelques exemples de ces derniers:

  1. En cryptographie, des algorithmes exponentiels sont parfois réalisables. Si nous choisissons les mauvais paramètres de sécurité, notre cryptage pourrait être non sécurisé même s'il est «prouvablement sécurisé».
  2. Les algorithmes en temps polynomial sont censés représenter un calcul efficace et réalisable, mais beaucoup d'entre eux ne sont pas réalisables. Par exemple, la plupart des algorithmes de multiplication matricielle sophistiqués ne sont pas utilisés dans la pratique.
  3. La théorie de la complexité moderne est obsédée par les pires performances et ne peut pas analyser les algorithmes heuristiques qui sont utilisés dans la pratique. Les problèmes NP-difficiles sont considérés comme irréalisables, mais ils sont toujours résolus dans la pratique.

Un autre problème est que les vrais ordinateurs ne fonctionnent pas du tout comme les machines Turing. Ils fonctionnent comme des machines RAM, qui sont une meilleure abstraction pour le calcul réel.

Yuval Filmus
la source
4

Je pense que vous avez déjà donné la réponse vous-même. Si l'aspect principal qui vous préoccupe est la (in) finitude des états, alors une machine de Turing en tant que telle n'existe que comme "un appareil hypothétique".

Peu importe la quantité de mémoire que vous donnerez à votre PC, elle sera toujours limitée, vous pouvez donc trouver un programme qui fonctionnera sur une "vraie" machine de Turing, mais pas sur ce PC en raison de la bande délimitée.

http://en.wikipedia.org/wiki/Turing_machine#Comparison_with_real_machines

Sentinelle
la source
Les machines de Turing ont un nombre potentiellement infini d'états, mais une machine de Turing universelle peut simuler n'importe quelle machine de Turing, tout en ayant un nombre fixe d'états.
Yuval Filmus
7
@YuvalFilmus Je pense que vous êtes confus entre les états et les configurations. Toutes les machines Turing ont un nombre fini d'états, mais en raison de leur mémoire illimitée qui peut être dans une infinité de configurations. Les MT universelles n'ont également qu'un nombre fini d'états, mais peuvent nécessiter une mémoire illimitée pour simuler leur machine d'entrée.
adrianN
1

Au moment où les machines Turing ont été inventées, les ordinateurs étaient des femmes qui exécutaient des calculs sur du papier brouillon. Telle est la notion de calcul exprimée par les machines de Turing. Leur ruban n'en fait pas plus partie que le papier brouillon ne fait partie d'une personne qui effectue des calculs.

Il s'agit toujours d'un bon modèle de calcul sur ordinateur car les limites des ressources des ordinateurs sont généralement assez grandes. Les modèles de calcul intrinsèquement finis ne deviennent utiles que lorsque le nombre d'états possibles est très petit.

reinierpost
la source
-1

Un ordinateur moderne est Turing complet, généralement ce terme est utilisé à l'exception de périphérique de stockage infini. En pratique, la mémoire peut être assez longue. Par exemple, en plus d'être des approximateurs de fonctions universelles, les réseaux de neurones récurrents avec mémoire (et fonctionnant de manière répétée) sont censés être Turing complets. En effet, les Neural Turing Machines poussent cette idée à un niveau inférant davantage des algorithmes simples.

Tolga Birdal
la source
Comment cela répond-il à la question?
Raphael