nsi:terminales:calculabilite:machine_turing
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| nsi:terminales:calculabilite:machine_turing [2023/02/06 19:35] – supprimée - modification externe (Unknown date) 127.0.0.1 | nsi:terminales:calculabilite:machine_turing [2023/02/06 21:21] (Version actuelle) – goupillwiki | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| + | ======Machines de Turing====== | ||
| + | |||
| + | |||
| + | ===== Machine de Turing ===== | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | La machine est constituée : | ||
| + | * d'une liste de symboles autorisés, | ||
| + | * d'une bande potentiellement infinie\\ des symboles sont écrits sur la bande au début, mais sur une zone finie de la bande | ||
| + | * une tête de lecture/ | ||
| + | * à chaque cycle, la machine est dans un certain état.\\ Il y a l' | ||
| + | * un programme, de taille finie | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | Le programme de la machine ci-dessus est constitué de 5 lignes : | ||
| + | |||
| + | ^ S:état ^ L:Lu ^ E:écrire ^ M:mouvement ^ N:nouvel état ^ | ||
| + | | 0 | 1 | X | >: | ||
| + | | 0 | _:vide | *: | ||
| + | | 0 | *:tous | 0 | > | 0 | | ||
| + | | 1 | _ | * | > | H: | ||
| + | | 1 | * | * | > | 1 | ||
| + | |||
| + | La première ligne signifie : Si la machine est dans l' | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | === À quoi sert cette machine ? === | ||
| + | |||
| + | La machine de Turing fait penser à un ordinateur primitif. Mais **elle ne sert pas à fabriquer un ordinateur**. La machine de Turing est une **machine abstraite** que l'on n' | ||
| + | |||
| + | <WRAP important> | ||
| + | Tout algorithme, peut trouver un équivalent sous forme d'une machine de Turing. Cette machine est peut-être énorme, chère, pas efficace... ou encore trop grosse pour être réalisée avec ce dont on dispose sur Terre. Mais l' | ||
| + | |||
| + | Si un problème n'est pas faisable avec une machine de Turing, alors aucun algorithme fini n'en viendra à bout, quelque soit la technologie utilisée. | ||
| + | </ | ||
| + | |||
| + | La machine permet de donner une nouvelle définition de la calculabilité : Un fonction est calculable s'il est possible de réaliser une machine de Turing exécutant cette fonction. | ||
| + | |||
| + | <WRAP tip> | ||
| + | </ | ||
| + | |||
| + | ===== Des exemples le machines de Turing ===== | ||
| + | |||
| + | === Exercice 3 === | ||
| + | |||
| + | ^ État en cours ^ Symbole lu ^ Écrire ^ Mouvement ^ État suivant ^ | ||
| + | | init | 1 | 0 | droite | ||
| + | | init | 0 | 1 | droite | ||
| + | | init | _ | _ | gauche | ||
| + | | retour | ||
| + | | retour | ||
| + | | retour | ||
| + | |||
| + | Supposons que sur la bande magnétique, | ||
| + | |||
| + | '' | ||
| + | |||
| + | - Qu' | ||
| + | - Simuler l' | ||
| + | |||
| + | <WRAP tip> | ||
| + | * On utilise le symbole '' | ||
| + | * En général, on fait commencer la machine au début du mot écrit sur la bande et on fait en sorte que la machine revienne à la même position quand elle s' | ||
| + | </ | ||
| + | |||
| + | === Exercice 4 === | ||
| + | |||
| + | Les symboles écrits sur la bande forment un **mot**. Ce mot peut être compris comme un nombre. Par exemple '' | ||
| + | |||
| + | - Concevez la machine qui, partant de l' | ||
| + | - Concevez la machine qui, partant de l' | ||
| + | - Concevez la machine qui, partant de l' | ||
| + | |||
| + | <WRAP tip> | ||
| + | Les machines évoquées ci-dessus semblent n' | ||
| + | </ | ||
| + | |||
| + | === Exercice 5 === | ||
| + | |||
| + | Concevez un programme qui commence avec un nombre binaire $u$ et qui termine avec $u$ écrit à l' | ||
| + | |||
| + | Par exemple '' | ||
| + | |||
| + | ===== Définition théorique ===== | ||
| + | |||
| + | <wrap important> | ||
| + | |||
| + | Comme on l'a dit, les machines de Turing sont des concepts abstraits. Quand on veut les utiliser pour prouver des choses, on a besoin d'une formalisation très rigoureuse qui a tout d'une formalisation mathématique. Ainsi, on définira une machine par : | ||
| + | |||
| + | * un ensemble fini $\Sigma$ contenant les symboles nécessaires pour représenter les données traitées par la machine //0 et 1 dans les exemples précédents// | ||
| + | * un ensemble fini $\Gamma$, l' | ||
| + | * un ensemble fini $Q$, les états ; | ||
| + | * un élément $i \in Q$, l’état initial ; | ||
| + | * un élément $f \in Q$, l’état final ; | ||
| + | * une fonction $\delta : (Q \setminus \lbrace f \rbrace) \times \Gamma \to \Gamma \times \{-1, 0, +1\} \times Q$, la table de transition. | ||
