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] – ↷ Nom de la page changé de nsi:terminales:calculabilite:informatique à nsi:terminales:calculabilite:machine_turing goupillwiki | nsi:terminales:calculabilite:machine_turing [2023/02/06 21:21] (Version actuelle) – goupillwiki | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | ====== | + | ======Machines de Turing====== |
| - | <WRAP info> | + | |
| - | **Problème décidable | + | |
| + | ===== Machine de Turing ===== | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | La machine est constituée : | ||
| + | | ||
| + | | ||
| + | * une tête de lecture/ | ||
| + | | ||
| + | * un programme, | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | 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... | ||
| + | |||
| + | Si un problème n'est pas faisable avec une machine de Turing, alors aucun algorithme fini n'en viendra | ||
| </ | </ | ||
| - | === Exercice 1 === | + | 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> |
| - | - Le problème | + | </ |
| - | < | + | ===== Des exemples le machines de Turing ===== |
| - | On parle aussi d'**ensemble décidable**. Un ensemble est décidable quand la question de savoir si tel élément appartient | + | |
| + | === 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' | ||
| + | |||
| + | < | ||
| + | | ||
| + | | ||
| </ | </ | ||
| - | === Exercice | + | === Exercice |
| + | |||
| + | Les symboles écrits sur la bande forment un **mot**. Ce mot peut être compris comme un nombre. Par exemple '' | ||
| - | - L'ensemble des nombres pairs est-il décidable ? | + | - Concevez la machine qui, partant de l'écriture binaire d'un nombre $n$, termine avec l' |
| - | - L'ensemble des nombres premiers | + | |
| + | - Concevez la machine qui, partant de l' | ||
| <WRAP tip> | <WRAP tip> | ||
| - | On utilise parfois le terme **ensemble récursif** au lieu de ensemble décidable. Dans ce sens, récursif | + | Les machines évoquées ci-dessus semblent |
| </ | </ | ||
| - | ===== lambda - calcul ===== | + | === Exercice 5 === |
| - | {{ : | + | Concevez un programme qui commence avec un nombre binaire $u$ et qui termine avec $u$ écrit à l' |
| - | 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 travaux de Church précèdent de peu ceux de Turing mais ils finiront par travailler ensemble. | + | Par exemple '' |
| - | Les langages de programmation [[langages: | + | ===== 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.1675708531.txt.gz · Dernière modification : de goupillwiki
