Review cours Terminale NSI — POO, SQL, Sécurité, Soc, Calculabilité, Réseau

This commit is contained in:
2026-06-15 11:28:37 +02:00
parent fcb20e45f9
commit 9ad5b99920
9 changed files with 1305 additions and 827 deletions

View File

@@ -53,7 +53,7 @@ Et donc, par extension, si un problème n'est pas soluble, on utilisera le terme
-------
## ~~La calcul habilité~~ La calculabilité
## La calculabilité
En informatique, plus précisément dans la branche dite de programmation, nous utilisons un langage qui nous est propre afin de mettre en place nos idées dans un algorithme.
@@ -184,41 +184,19 @@ La question qui se pose à nous est de savoir comment reconnaitre un problème i
Pour déduire l'indécidabilité d'un programme, il faut un algorithme répondant à ce problème et également la preuve qu'il se termine.
En mathématiques, on utilise le ***problème de l'arrêt***
En informatique, le plus célèbre de ces problèmes indécidables est le ***problème de l'arrêt***.
### Un peu plus d'histoire...
### Le problème de l'arrêt
En 1931, Kurt Gödel, mathématicien et logicien autrichien, énonce son théorème d'incomplétude.
En 1936, le mathématicien britannique **Alan Turing** démontre qu'il est impossible d'écrire un algorithme qui, pour n'importe quel programme et n'importe quelle entrée, dirait avec certitude si ce programme s'arrête ou tourne à l'infini.
Il y établit qu'une théorie suffisante pour y démontrer les théorèmes de base de l'arithmétique -la partie des mathématiques qui s'occupe des nombres, en opposition à la géométrie - est nécessairement incomplète, au sens où il existe des énoncés qui n'y sont ni démontrables, ni réfutables . On parle alors d'énoncés indécidables dans la théorie.
Sa démonstration repose sur un **raisonnement par l'absurde** : on suppose qu'un tel algorithme existe, et on montre que cette supposition mène inévitablement à une contradiction.
Note : Il s'agit de la définition Wikipédia
#### Le programme qui détermine l'arrêt est lui-même indécidable
Il parle également d'***Axiomes***
On peut même dire *absurde* — et c'est justement le mot qu'on va utiliser.
Un axiome est une proposition non démontrée que l'on va utiliser pour tenter de résoudre un problème.
C'est à dire qu'on va partir d'une hypothèse qu'on supposera vraie, pour essayer d'aller au bout du raisonnement.
Cela nous ramènera donc à des décisions logiques qui en découleront.
### Mais si le postulat de base est erroné ?
C'est tout le principe : s'il est erroné, alors il faut tester son exact opposé : cela prend du temps.
Et enfin, en testant l'opposé, on pourra savoir si notre problème est décidable ou pas !
Revenons à notre problème d'arrêt : Il s'agit d'un problème de décision qui determine si le programme s'arrête ou non. Pratique ? C'est exactement ce que l'on cherche justement.
Oui mais :En 1936, Alan Turing démontre son indécidabilité.
#### Attendez, le programme qui determine l'indécidabilité est lui même indécidable ??
Eh oui, c'est incroyable mais juste : ironique n'est ce pas ? On peut même dire *absurde*
En effet, on va user d'un raisonnement par l'absurde pour montrer que ce qu'on pense vrai est en réalité faux.
En supposant que ce que l'on veut vrai, soit faux, avec une pensée logique, on peut et doit, aboutir à une contradiction qui établira que ce que l'on pense donc vrai, est faux.
En raisonnement par l'absurde, on suppose vraie la chose qu'on veut réfuter, puis on montre que cette hypothèse aboutit à une contradiction logique.
#### Vous suivez toujours ?
@@ -273,24 +251,66 @@ Analysons ce que l'on vient d'écrire :
Nous venons donc de prouver l'impossible. Pas mal non ?
#### Quand le possible et l'impossible se mélangent...Possimpible ?
#### Conclusion
Turing prouve donc qu'il n'est pas possible d'inventer une fonction prouvant qu'une autre donnée se termine.
Turing prouve donc qu'il n'est pas possible d'écrire une fonction capable de dire, dans tous les cas, si un programme quelconque s'arrête ou non.
Si la machine ne peut nous aider, il vous faudra donc, en tant qu'humain, toujours assurer le contrôle de votre code.
Si une telle fonction existait, on pourrait l'utiliser pour résoudre `absurde(absurde)` — et on vient de montrer que c'est impossible. Le problème de l'arrêt est donc **indécidable** : aucun algorithme ne peut le résoudre.
### Question : Que peut-on en déduire ?
Si la machine ne peut pas nous aider ici, il vous faudra toujours, en tant que programmeur, vérifier vous-même que votre code se termine.
On peut retenir deux choses de notre exemple : Le fameux théorème de Kurt Gödel, qui traite de l'indécidabilité, n'est pas vérifiable puisque qu'on ne peut vérifier la décidabilité de tous les sytèmes, dès lors que la fonction qui doit nous y aider n'est elle même pas décidable !
---
Pour comprendre la démonstration de tout cela, il nous aura fallu analyser la démonstration en elle même, et non pas essayer de démontrer ce qu'elle prouve. Ce qui laisse perplexe quant à la véracité de certaines affirmations.
### À retenir
Enfin, on peut se demander une chose. Puisque nous avons une donnée en entrée d'une fonction, et une donnée en sortie...Une fonction ne serait-elle pas uniquement que données ?
**Gödel (1931) — Incomplétude des systèmes formels**
Finalement, quand on regarde un programme, qu'est ce que c'est ? Exemple en python : un fichier texte avec une extension.
Sous un système unix, absolument tous les fichiers ne sont que du texte ! Pire : dans notre exemple, nous utilisons un programme comme donnée d'un autre programme !
Dans tout système logique suffisamment puissant pour décrire l'arithmétique, il existe des énoncés **vrais mais indémontrables** dans ce système. Autrement dit, les mathématiques ont des limites intrinsèques : certaines vérités échappent à toute preuve formelle.
Et si tout est donnée, alors cela expliquerait pourquoi la logique tient une si grande importance dans notre environnement.
**Turing (1936) — Indécidabilité du problème de l'arrêt**
Il n'existe **aucun algorithme** capable de déterminer, pour tout programme et toute entrée, si ce programme s'arrête ou tourne indéfiniment. Le problème de l'arrêt est indécidable.
**Le lien entre les deux**
Ces deux résultats sont distincts mais convergent vers la même idée : il existe des **limites fondamentales** à ce que la logique formelle et le calcul algorithmique peuvent résoudre. Certains problèmes sont hors de portée, non pas par manque de puissance de calcul, mais par nature.
| | Turing (programme) | Gödel (pour aller plus loin) |
|---|---|---|
| Domaine | Informatique / algorithmique | Mathématiques / logique formelle |
| Résultat | Il existe des problèmes insolubles par algorithme | Il existe des vérités indémontrables dans tout système formel |
| Exemple clé | Problème de l'arrêt | Théorème d'incomplétude (1931) |
--------
## Pour aller plus loin : Kurt Gödel et l'incomplétude
> ⚠️ Cette section est hors programme NSI.
En 1931, le mathématicien autrichien **Kurt Gödel** énonce son **théorème d'incomplétude**, qui bouleverse les mathématiques.
### Ce qu'il prouve
Dans tout système logique suffisamment puissant pour décrire l'arithmétique (l'addition, la multiplication sur les entiers), il existe des énoncés qui sont **vrais mais indémontrables** dans ce système.
Autrement dit : les mathématiques ne peuvent pas tout prouver. Certaines vérités leur échappent structurellement.
### La notion d'axiome
Gödel travaille sur la notion d'**axiome** : une proposition qu'on accepte comme vraie sans la démontrer, et qui sert de point de départ à un raisonnement.
Par exemple, en géométrie euclidienne : "par deux points distincts, il passe une droite et une seule" est un axiome. On ne le prouve pas — on le pose.
Gödel montre que quel que soit l'ensemble d'axiomes choisi, il restera toujours des énoncés que ce système ne peut ni prouver ni réfuter.
### Le lien avec Turing
Gödel (1931) et Turing (1936) arrivent indépendamment à des conclusions similaires par des chemins différents :
- Gödel montre les **limites de la démonstration mathématique**
- Turing montre les **limites du calcul algorithmique**
Les deux résultats disent, chacun à leur manière, qu'il existe des questions auxquelles ni les mathématiques ni les ordinateurs ne peuvent répondre — non par manque de puissance, mais par nature.
--------