Information Calcul Communication 1 Information Calcul Leon 3
- Slides: 11
Information, Calcul, Communication 1. Information & Calcul – Leçon 3: Théorie du Calcul Clip 2: Notion de Dénombrement B. Moret, J-C. Chappelier, R. Boulic, commentaire: P. Janson 1 / 10 1. Information & Calcul – 3. Théorie du Calcul – 2. Notion de Dénombrement
Plan de la leçon Formalisation de la notion de calcul: les machines de Turing Problème = question + données Théorie du calcul 1. 2. 3. 1. 2. Dénombrement et calculabilité Calculabilité et décidabilité Théorie de la complexité 4. 1. 2. 3. 2 / 10 Complexité des problèmes Problèmes de complexité P = calculables avec coût polynomial Problèmes de complexité NP = vérifiables avec coût polynomial 1. Information & Calcul – 3. Théorie du Calcul – 2. Notion de Dénombrement
Problème = Question + données Solution = algorithme En leçons 1 et 2 nous avons vu des algorithmes de recherche, de tri, de calcul du plus court chemin ● Un algorithme répond toujours à la même question ● Appliquer un algorithme à un ensemble spécifique de données fournit la réponse à cette question pour ces données ● Appliquer un algorithme n’est pas la solution du problème La solution est l’algorithme lui-même L’appliquer ne résout qu’une instance du problème ● 3 / 10 1. Information & Calcul – 3. Théorie du Calcul – 2. Notion de Dénombrement
Problèmes intéressants et inintéressants => Problème = question + ensemble d’instances (= données possibles) Solution = algorithme répondant à la question pour n’importe quelle instance => Observation Si l’ensemble des instances (de données possibles) est fini, on peut toujours définir une table donnant la réponse pour chaque instance (de données possibles) ● L’algorithme de solution consulte simplement la table et fournit la réponse qui s’y trouve ● => il n’y a pas de réel calcul ! => Conclusion Les problèmes qui demandent un calcul intéressant sont ceux qui présentent des ensembles infinis d’instances = ceux qui posent une question sur un ensemble infini de données possibles => Ce sont les seuls problèmes qui nous intéressent dans ce cours 4 / 10 1. Information & Calcul – 3. Théorie du Calcul – 2. Notion de Dénombrement
Comptage et dénombrement Compter est facile: 1, 2, 3, 4, 5, . . . ●Question: mais comment compter un ensemble infini ? ●Outil de comptage: les entiers positifs, N={1, 2, 3, . . . } ●Définition: un ensemble S est dénombrable si et seulement si tout élément de S peut être numéroté par un entier, c'est-à-dire qu'il existe une surjection f: N→S ●Exemple: l'ensemble des nombres naturels Z={. . . , − 3, − 2, − 1, 0, 1, 2, 3, . . . } est dénombrable car on peut définir f: N→Z telle que si l'entier naturel i est pair, alors f(i)=i/2 si l'entier naturel i est impair, alors f(i)=−(i− 1)/2 Le numérotage est le suivant (entier naturel en bleu, f(i) ∈ Z en rouge): 1, 2, 3, 4, 5, 6, 7, . . . 0, 1, -1, 2, -2, 3, -3, . . . ● 5 / 10 1. Information & Calcul – 3. Théorie du Calcul – 2. Notion de Dénombrement
Dénombrement des paires d’entiers positifs Il y a un nombre infini de paires qui ont toutes le même 1 er élément ●Pourtant si on range les paires dans un tableau ● on peut les dénombrer sur la base de leur somme puisque pour chaque somme il y a un nombre fini de paires 2 -> (1, 1) 3 -> (1, 2), (2, 1) 4 -> (1, 3), (2, 2), (3, 1) 5 -> (1, 4), (2, 3), (3, 2), (4, 1) etc… 1, 1 1, 2 1, 3 1, 4 1, 5 … 3, 1 3, 2 3, 3 3, 4 3, 5 … 2, 1 4, 1 5, 1 … 2, 2 4, 2 5, 2 … 2, 3 4, 3 5, 3 … 2, 4 4, 5 5, 4 … 2, 5 4, 5 5, 5 … … … => Chaque paire reçoit son numéro unique => cet ensemble est dénombrable ●Par contre les nombres réels ne sont PAS dénombrables (voir http: //wandida. com/fr/archives/505) 6 / 10 1. Information & Calcul – 3. Théorie du Calcul – 2. Notion de Dénombrement
Tous les programmes sont dénombrables Un programme est simplement un texte fini écrit dans un alphabet choisi ● On peut énumérer (dénombrer) tous les textes possibles par ordre alphabétique ● Tous les textes d’un seul caractère: 1: a, 2: b, 3: c, . . . , 26: z ●Puis tous les textes de deux caractères: 27: aa, 28: ab, 29: ac, . . . , 52: az, 53: ba, 54: bb, . . . , 677: za, 678: zb, 679: zc, . . . , 702: zz ●Puis tous les textes de trois caractères: 703: aaa, 704: aab, 705: aac, . . . , 18’ 278: zzz, ●Et ainsi de suite … ● Même avec le bon choix d’alphabet certain des textes ainsi énumérés ne sont pas des programmes vraiment fonctionnels mais tous les programmes fonctionnels ont été énumérés ● 7 / 10 1. Information & Calcul – 3. Théorie du Calcul – 2. Notion de Dénombrement
Peut-on aussi dénombrer toutes les fonctions ? Considérons l’ensemble des fonctions entières d’une variable entière, c'est à dire qui produisent une valeur entière f(n) pour tout entier n ●Pour essayer de dénombrer ces fonctions on les range dans un tableau (infini) avec une fonction par ligne: ● la fonction fi est définie ●sa valeur pour n=j est définie sur la ligne i par la colonne j ● fn n f 0 f 1 … fi … 8 / 10 0 1 2 f 0(0) f 0(1) f 0(2) f 1(0) f 1(1) f 1(2) … fi(0) … … fi(1) … … fi(2) … … j … f 1(j) … … f 0(j) … … … fi(j) … … … 1. Information & Calcul – 3. Théorie du Calcul – 2. Notion de Dénombrement
Toutes les fonctions ne sont pas dénombrables On définit maintenant la fonction entière g(n) = fn(n)+1 => g(n) est en fait construite en ajoutant 1 aux termes de la diagonale => Aucune ligne du tableau ne peut représenter g(n) puisque son terme diagonal ne serait pas correct vu que pour chaque i possible g(i) ≠ fi(i) => Pour toute tentative de dénombrement on peut toujours imaginer une fonction g exclue de ce dénombrement => Les fonctions – même les fonctions entières – ne sont PAS dénombrables 9 / 10 1. Information & Calcul – 3. Théorie du Calcul – 2. Notion de Dénombrement
Il n’y a donc pas assez de programmes pour implémenter toutes les fonctions L’ensemble de tous les programmes (quel que soit le langage) est dénombrable mais ●L’ensemble des fonctions entières d’une variable entière n’est pas dénombrable ● => Il existe beaucoup plus de fonctions entières que de programmes => Il n’y a tout simplement pas assez de programmes possibles pour décrire toutes les fonctions => Il existe un nombre infini de fonctions 10 / 10 1. Information & Calcul – 3. Théorie du Calcul – 2. Notion de Dénombrement
Une infinité de fonctions ne sont pas «calculables» ● 11 / 10 1. Information & Calcul – 3. Théorie du Calcul – 2. Notion de Dénombrement