Information Calcul Communication 1 Information Calcul Leon 3

  • Slides: 11
Download presentation
Information, Calcul, Communication 1. Information & Calcul – Leçon 3: Théorie du Calcul Clip

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

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

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)

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, . . .

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

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

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

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)

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

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

Une infinité de fonctions ne sont pas «calculables» ● 11 / 10 1. Information & Calcul – 3. Théorie du Calcul – 2. Notion de Dénombrement