Machines de Turing, et modèles de calculs, et thèse de Church
Transcription
Machines de Turing, et modèles de calculs, et thèse de Church
Machines de Turing, et modèles de calculs, et thèse de Church – p. Machines de Turing Une machine de Turing à -rubans est un 8-uplet où est l’ensemble fini des états 1. 2. est l’alphabet 3. est l’alphabet de travail: en général et des caractères de contrôle supplémentaires. est le caractère blanc. 4. 5. est l’état initial est l’état d’acceptation 6. est l’état de rejet (ou arrêt). 7. dans 8. fonction de transition de , . – p. Une configuration est donnée par la description du ruban et les positions des têtes de lecture/écriture. Notation: , . Calcul de : suite finie de configurations telle que pour tout , dérive de par fonction de transition . – p. Un langage est décidé par si pour tout , si on definit comme si et comme si , la suite de configuration avec est telle qu’il existe avec . Une fonction est calculée par si , la suite de configuration pour tout avec est telle qu’il existe avec . – p. Machine RAM Les machines RAM sont des systèmes de calcul beaucoup plus proches du fonctionnement réel des ordinateurs. – p. Définition: Machine RAM. Une machine possède . Chaque un certain nombre de registres registre contient des mots sur un alphabet fini . La machine évolue selon un programme qui est une suite convenable d’instructions de l’un des types suivants: 1. : concaténer à droite du mot contenu dans . 2. : effacer le premier caractère de . : effacer le contenu de . 3. 4. : substituer le contenu de à celui de . : aller à la ligne . 5. : aller à la ligne si la première 6. lettre de est . 7. : arrêter. – p. Une fonction est calculée par la , la machine partant avec machine si pour tout avec la valeur et les autres registres le registre blancs, finit ultimement par exécuter l’instruction avec le registre contenant la valeur . – p. Équivalence RAM, Turing Théorème: Une fonction est calculable par une machine RAM ssi elle est calculable par machine de Turing. – p. Dmonstration: passe par machines SRM = machine un seul registre avec instructions 1. : ajouter droite du registre, : efface la lettre la plus 2. gauche si le registre n’est pas vide, 3. (resp. ) aller la ligne en avant (resp. arrire) si la premire lettre du registre est . tape 1: Suppose que est le symbole . On construit une machine ! " # $ % & qui transforme ')(*,+,+-+'/. en '102-+,+-+'/.13'4( : dfinir le sous # 6 7 programme 5 comme 1. 89 2. :; 3. . . . 4. <=3 dfinir le sous programme comme 8-1 $ " ! > ! & 1. 89 2. . . . 3. <= 4. 5 5. 8 3 6. . . . 7. < 8. 5 3 9. . ! " # $ % & Le programme de par: 8 1. 2. 3. est donn $ 8 4/ 3 4. 5 5. . tape 2: Montre que toute machine RAM est simulable par une machine SRM. $ $ Code tat RAM (,+-+,+ . par le $ $ registre (-+,+,+ . , o ' nouveau 8-2 caractre (ex: indice : ). Dfinir le sous-programme qui remet en dbut de mot dfini par: 1. 2. ! " # $ % & 5 3. : 4/ $ Dfinir le sous-programme < qui met le registre < en dbut dfini par: ! " # $ % & ! " # $ % & ,+-+,+ , ! " # $ % & est rpt < o : fois: On remplace alors les instructions de la machine RAM comme suit: 1. $ 2. (a) (b) 3. $ devient . (a) (b) $ $ $ : devient . devient $ (a) (b) 5 8-3 5 (d) (e) (f) (c) 5 5 5 (g) ;5 . tape 3: On montre que calculable par SRM implique calculable par une machine de Turing. Ide: simuler l’volution machine $ SRM sur le registre par une machine $ de Turing dont le ruban contient o et sont des nouveaux symboles marquant le dbut et la fin. On remplace chaque instruction de la machine SRM par un couple d’tats de machine de Turing. Premier tat sert chercher dbut ou fin du mot, deuxime tat cherchant faire l’opration correspondante. Ajoute des tats pour ajouter en dbut et fin de les marqueurs , mot. Connecte tout, et on a le rsultat. 8-4 Théorème: Une fonction est calculable en temps (resp. espace) polynômial par une machine RAM ssi elle est calculable par machine de Turing en temps (resp. espace) polynômial. Démonstration: les simulations précédentes préservent le temps et l’espace polynômial. – p. Thèse Church Notion informelle d’algorithme. Thèse de Church: Tout algorithme peut être décrit par une machine de Turing. Thèse de Church, version effective: Tout algorithme en temps (resp. espace) polynômial peut être décrit par une machine de Turing en temps (resp. espace) polynômial. Exemples d’applications: algorithmes pour REACH, pour SAT, . . . présentés précédemment. – p.1 Application: Existence d’une machine fonction calculée par la machine de . On fixe une fonction de codage Définition: code . On suppose fixé un codage des machines de Turing. Théorème: Il existe une machine de Turing : . universelle qui sur l’entrée Démonstration. Considérer le programme de machine de Turing correspond à un programme . Par la thèse de Church, ce programme sur décode le programme de et simule instruction par instruction la machine . – p.1 Notion de machine de Turing non déte Dans le modèle précédent chaque transition est complètement déterminée par la configuration précédente. Machine de Turing non-déterministe: remplace fonction de dans par fonction dans . de Notion de calcul inchangée, notion de fonction calculable aussi. I.e.: une entrée est acceptée par la machine ssi il existe (au moins) une execution qui mène à l’état acceptant. Exemple: algorithme pour SAT. – p.1