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:40] – 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 === | + | ===== Machine de Turing ===== |
| - | - 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> | + | La machine est constituée : |
| - | On parle aussi d'**ensemble décidable**. Un ensemble | + | |
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | Le programme de la machine ci-dessus | ||
| + | |||
| + | ^ 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 | ||
| + | |||
| + | <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 | ||
| </ | </ | ||
| - | === Exercice 2 === | + | 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> |
| - | - L'ensemble des nombres premiers | + | </ |
| + | |||
| + | ===== 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> | <WRAP tip> | ||
| - | On utilise | + | * On utilise le symbole '' |
| + | * En général, on fait commencer | ||
| </ | </ | ||
| - | ===== Calculabilité ===== | + | === Exercice 4 === |
| - | {{ : | + | Les symboles écrits sur la bande forment un **mot**. Ce mot peut être compris comme un nombre. Par exemple '' |
| - | 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 | + | <WRAP tip> |
| - | + | Les machines évoquées ci-dessus semblent n' | |
| - | <WRAP box> | + | |
| - | ==Calculabilité et décidabilité== | + | |
| - | La notion | + | |
| </ | </ | ||
| - | Les travaux de Church précèdent de peu ceux de Turing mais ils finiront par travailler ensemble. | + | === 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 ===== | ||
| - | Nous allons poursuivre avec les **machines de Turing** bien que historiquement, | + | <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.1675708853.txt.gz · Dernière modification : de goupillwiki
