Hyperlivre – Exemple: Machine de Turing - (CUI)
Transcription
Hyperlivre – Exemple: Machine de Turing - (CUI)
Outils Formels pour les Systèmes d‘Information Jean-Claude Ziswiler [email protected] TUE 02DEC2003 1415h Uni Mail M2170 FRI 05DEC2003 0900h Uni Dufour 408 Hyperlivre – Exemple: Machine de Turing Automates (Rappel) Définition d‘un automate à états fini (déterministe): Un automate à états fini (déterministe) est composé: d’un alphabet (ensemble de symboles) d‘un ensemble d‘état fini Q parmi lesquels un état initial q0 un ou plusieurs états finals d‘un ensemble d‘instructions (fonctions des transitions) L‘automate est fini parce que l‘ensemble d‘état est limité, c‘est-à-dire le mémoire n‘est pas infini. L‘automate est déterministe parce que les instructions sont clairement définies, il n‘y a pas de choix pour effectuer les calculs, la séquence d‘instructions ne s‘exécute pas par hasard. Pour un état, il y a un seul état successeurs. Les automates à états finis ne peuvent pas tout calculer, il existe des langages (langages non réguliers) qu‘aucun automate à états fini n‘accepte. Machine de Turing En 1936, Turing a écrit un article pour proposer une machine qui résolvait le problème de «Entscheidbarkeit», c’est-à-dire il a créé une machine avec laquelle on peut déterminer, pour quel langage existe toujours une solution, ou de façon plus général, quel problème est calculable. Une machine de Turing est un engin de calcul simple, il se souvient d’un seul numéro. Il bouge sur une bande infinie et deux seul facteurs d’un état sont pris en considération: le numéro de l’état et le symbole à la position actuelle. Il continue jusqu’un état final est trouvé. Même si l’architecture est très simple et même si elle ne correspond pas avec celle d’un ordinateur, on peut effectuer tous les calculs qu’avec un ordinateur «réaliste». Une Random Access Machine (RAM) qui donne une image plus proche des ordinateurs ont une mémoire où les cellules sont adressées et accessibles directement pendant qu’une machine de Turing peut accéder à une valeur simplement en traversant la bande jusqu’à l’endroit où la valeur est stockée. Mais les fonctionnalités des deux machines sont équivalentes, on peut effectuer les mêmes calculs et on peut montre que le temps pour l’exécution ne varie pas de façon polynomiale. Machine de Turing (cont.) Une machine de Turing (déterministe) est composée d’une bande infinie divisée en cases d’une tête de lecture / écriture d’un alphabet (ensemble de symboles) ∑ d’un symbol ‘blank’ B (B ∉ ∑) d’un ensemble d’états Q parmi lesquels un état initial q0 un ou plusieurs états finals (si déterministe) d’un ensemble d’instructions (le programme) Chaque case de la bande peut contenir un symbole tiré d’un alphabet fixé. Machine de Turing (cont.) Langage Γ Un langage pour écrire des programmes d’une machine de Turing. Un programme est formé d’une suite d’instructions étiquetées. Les instructions sont de la forme: PRINT s -- imprime s sur la bande à l’endroit où se trouve la tête IF s GOTO L -- si le symbole sous la tête est s, va à l’instruction L RIGHT -- déplace la tête à droit LEFT -- déplace la tête à gauche Les instructions d’un programme en Γ s’exécutent en séquence. Machine de Turing – Exemple f: X <- X+1 (fonction qui incrémente de facteur 1, représentation binaire) (0 ∪ 1)* ∈ ∑ In State q0 q1 q1 q1 q2 q2 q2 q3 q3 q3 Reading B 0 1 B 0 1 B 0 1 B Write B 0 1 B 1 0 1 0 1 B Move RIGHT RIGHT RIGHT LEFT LEFT LEFT LEFT LEFT LEFT LEFT New State q1 q1 q1 q2 q3 q2 q4 q3 q3 q4 On a trouvé une machine de Turing qui réalise la fonction f, alors f est calculable. De même manière, il existe une machine de Turing pour chaque fonction f, qui semble intuitivement calculable (Thèse de Church). xTuringMachine Applet Références Articles, documentation, livres Gilles Falquet, De la machine de Turing aux langages de programmation, notes de cours ‘Outils formels pour les systèmes d’information’, proposition hiver 1998-1999. David Eck, xTuringMachine Lab: Introduction to Turing Machines, in: The Most Complex Machine: A Survey of Computers and Computing, A. K. Peters Ltd., Wellesley, MA, 1996. Ingo Wegener, Theoretische Informatik, B. G. Teubner, Stuttgart, 1993. xTuringMachine Applet http://math.hws.edu/TMCM/java/labs/xTuringMachineLab.html