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