edit et corrections d'erreurs factuelles, de calculs et de mise en page
This commit is contained in:
@@ -29,7 +29,7 @@ On peut par exemple prendre des problèmes assez élémentaires :
|
||||
|
||||
- X est il un nombre pair ?
|
||||
- Y est il une puissance de 3 ?
|
||||
- Dans un graphe, quel est le chemin le plus court passant par tous les sommets ?
|
||||
- Dans un graphe, existe-t-il un chemin passant par tous les sommets de longueur inférieure à k ?
|
||||
|
||||
Dans notre premier cas, nous avons en **instance de départ :** un entier naturel, qui, après être traité via le **paramètre** choisi (Si reste = 0 après une division par 2, alors nombre est pair) dans **l'algorithme**, ressortira en une réponse simple : *Oui* ou *Non* selon la **décision** prise.
|
||||
|
||||
@@ -39,11 +39,9 @@ En informatique ou mathématiques, on peut parler d'une **fonction algorithmique
|
||||
|
||||
Un ***prédicat*** est une fonction qui ne prendra que des valeurs booléennes.
|
||||
|
||||
> La réponse à un problème de décision est donc soit un booléen, soit une valeur qui permet de répondre à un prédicat.
|
||||
> La réponse à un problème de décision est donc un booléen : oui ou non.
|
||||
>
|
||||
> **Exemple** : Dans un graphe, connaître le nombre de sommets permet de répondre à la question : « Le chemin que j'ai choisi est-il le plus court passant par tous les sommets de ce graphe ? »
|
||||
>
|
||||
> Question dont la réponse est bel et bien un prédicat.
|
||||
> **Exemple** : « Ce chemin passe-t-il par tous les sommets du graphe ? » est une question dont la réponse est Vrai ou Faux : la fonction qui y répond est bel et bien un prédicat.
|
||||
|
||||
### Définition : Décidabilité
|
||||
|
||||
@@ -68,7 +66,7 @@ Quel rapport avec la calculabilité ? Et bien une fonction mathématique, que l'
|
||||
|
||||
### Un peu d'histoire
|
||||
|
||||
En 1943, un mathématicien américain, du nom d'Alonzo Church définit une thèse dite "thèse de Church" qui affirme la notion de calculabilité : Tout traitement d'un système réalisable par un processus quel qu'il soit, peut être exprimé par un ensemble de règles de calcul.
|
||||
En 1936, un mathématicien américain, du nom d'Alonzo Church, formule ce qu'on appellera la "thèse de Church" (la même année, Alan Turing arrive indépendamment à un résultat équivalent avec sa machine). Cette thèse affirme la notion de calculabilité : Tout traitement d'un système réalisable par un processus quel qu'il soit, peut être exprimé par un ensemble de règles de calcul.
|
||||
|
||||
Cet ensemble est défini lui même par les règles de calcul dont on prouve mathématiquement l'équivalence.
|
||||
|
||||
@@ -155,21 +153,23 @@ Par exemple :
|
||||
|
||||
```python
|
||||
def est_pair2(n):
|
||||
|
||||
if (n % 2) == 0:
|
||||
return("{0} est Pair".format(n))
|
||||
reste = n % 2
|
||||
if reste == 0:
|
||||
return True
|
||||
else:
|
||||
return("{0} est Impair".format(n))
|
||||
return False
|
||||
```
|
||||
|
||||
|
||||
```python
|
||||
>>>est_pair2(113)
|
||||
>>>'113 est Impair'
|
||||
>>>False
|
||||
>>>est_pair2(42)
|
||||
>>>'42 est Pair'
|
||||
>>>True
|
||||
```
|
||||
|
||||
*Remarque : cette version renvoie bien un booléen, comme la première. Une fonction qui renverrait une chaîne de caractères comme `"42 est Pair"` ne serait pas un prédicat !*
|
||||
|
||||
|
||||
|
||||
Nous avons bien la preuve que le problème " Peut-on prouver qu'un nombre est pair" est bel et bien décidable.
|
||||
@@ -182,7 +182,7 @@ La question qui se pose à nous est de savoir comment reconnaitre un problème i
|
||||
|
||||
Et à l'heure actuelle, nous ne disposons pas de machine magique permettant de nous donner cette information.
|
||||
|
||||
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.
|
||||
Pour prouver qu'un problème est *décidable*, il suffit d'exhiber un algorithme qui le résout et qui se termine toujours. Mais pour prouver qu'un problème est *indécidable*, c'est bien plus difficile : il faut démontrer qu'**aucun** algorithme, même parmi ceux qu'on n'a pas encore inventés, ne pourra jamais le résoudre.
|
||||
|
||||
En informatique, le plus célèbre de ces problèmes indécidables est le ***problème de l'arrêt***.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user