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 20:11] – goupillwiki | nsi:terminales:calculabilite:machine_turing [2023/02/06 21:21] (Version actuelle) – goupillwiki | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| ======Machines de Turing====== | ======Machines de Turing====== | ||
| - | ===== Dédidabilité ===== | ||
| - | <WRAP info> | ||
| - | **Problème décidable en informatique :** Il existe un algorithme de longueur finie et de temps d' | ||
| - | </ | ||
| - | |||
| - | === Exercice 1 === | ||
| - | |||
| - | - Le problème de savoir si 442 est pair est-il décidable ? | ||
| - | - Le problème de savoir si 443 est premier est-il décidable ? | ||
| - | |||
| - | <WRAP info> | ||
| - | On parle aussi d' | ||
| - | </ | ||
| - | |||
| - | === Exercice 2 === | ||
| - | |||
| - | - L' | ||
| - | - L' | ||
| - | |||
| - | <WRAP tip> | ||
| - | On utilise parfois le terme **ensemble récursif** au lieu de ensemble décidable. Dans ce sens, récursif n'a absolument rien à voir avec l' | ||
| - | </ | ||
| - | |||
| - | ===== Calculabilité ===== | ||
| - | |||
| - | {{ : | ||
| - | |||
| - | Dans les années 1930, Alonzo Church (1903 - 1995) invente le $\lambda$-calcul. C'est un langage informatique théorique ou tout est fonction. Les langages de programmation [[langages: | ||
| - | |||
| - | Church et son équipe étudient la **calculabilité**. Une fonction $f$ est calculable si le calcul de $f(x)$ se termine en un nombre fini d' | ||
| - | |||
| - | <WRAP box> | ||
| - | ==Calculabilité et décidabilité== | ||
| - | La notion est liée à la **décidabilité**. En effet, soit $E$ un ensemble. On peut toujours définir la fonction $f_E$ telle que $f_E(x) = V \Leftrightarrow x \in E$. Si $f_E$ est calculable, alors on peut décider si $x \in E$ et alors $E$ est décidable. | ||
| - | </ | ||
| - | |||
| - | Les travaux de Church précèdent de peu ceux de Turing mais ils finiront par travailler ensemble. | ||
| - | |||
| - | Nous allons poursuivre avec les **machines de Turing** bien que historiquement, | ||
| ===== Machine de Turing ===== | ===== Machine de Turing ===== | ||
| Ligne 79: | Ligne 40: | ||
| 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. | 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 ===== | ===== Des exemples le machines de Turing ===== | ||
| Ligne 103: | Ligne 67: | ||
| * 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' | * 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. | ||
nsi/terminales/calculabilite/machine_turing.1675710710.txt.gz · Dernière modification : de goupillwiki
