Information Calcul Communication 1 Information Calcul Leon 3

  • Slides: 9
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 4: Complexité P B. Moret, J-C. Chappelier, R. Boulic, commentaire: P. Janson 1 / 9 1. Information & Calcul – 3. Théorie du Calcul – 4. Complexité P

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 / 9 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 – 4. Complexité P

Complexité Certains programmes informatiques Exécutent des millions d’opérations par seconde (p. ex. des transactions

Complexité Certains programmes informatiques Exécutent des millions d’opérations par seconde (p. ex. des transactions bancaires) ●Requièrent des milliards de milliards d’opérations (modèles climatiques) ●Traitent des données gigantesques (Google, génome humain) ● => La complexité d'un problème est celle du meilleur algorithme qui le résout NB: complexité ≠ difficulté – difficulté est une pure question de perception humaine ● => La complexité d’un problème est une fonction de sa « taille » exprimée par le temps et l'espace mémoire nécessaires à son calcul Exemple La complexité du problème du tri est O(n log(n)) – et il est prouvé qu'on ne peut pas faire mieux! ● 3 / 9 1. Information & Calcul – 3. Théorie du Calcul – 4. Complexité P

Hiérarchie dans la complexité La théorie du calcul partage les problèmes entre ceux qui

Hiérarchie dans la complexité La théorie du calcul partage les problèmes entre ceux qui sont calculables et ceux qui ne le sont pas ●La théorie de la complexité classe les problèmes calculables selon les besoins en temps et en espace de calcul de l’algorithme le plus efficace pour chaque problème ●Ce partage se fait en classes de complexité Chaque classe contient un ensemble infini de problèmes pour lesquels les algorithmes les plus efficaces requièrent des temps et espaces de calcul d’ordres comparables ●Le résultat est une hiérarchie de classes de complexité ●Quelles classes de complexité peut-on définir? ● 4 / 9 1. Information & Calcul – 3. Théorie du Calcul – 4. Complexité P

Algorithmes «pratiques» = utilisables Des algorithmes tels que ● tri ● recherche ● plus

Algorithmes «pratiques» = utilisables Des algorithmes tels que ● tri ● recherche ● plus court chemin, etc. ● requièrent des espaces et temps de calcul entre O(n) (linéaires) et O(n 2) (quadratiques) Pour être pratiquement utile un algorithme ne peut dépasser une complexité de O(n 3) ● ● NB: Pour traiter des volumes de données comme le font Google, le CERN, ou la NASA, une telle complexité cubique est exclue! => une complexité linéaire est indispensable On appelle de tels algorithmes polynomiaux ● 5 / 9 1. Information & Calcul – 3. Théorie du Calcul – 4. Complexité P

Algorithmes «pratiques» : exemple Un ordinateur moderne 10 exécute de l’ordre de 10 milliards

Algorithmes «pratiques» : exemple Un ordinateur moderne 10 exécute de l’ordre de 10 milliards (10 ) d’opérations par seconde ●Le CERN 15 génère près d’un pétaoctet (N=10 ) de données par semaine 2 ●Un algorithme O(N ) (quadratique) 30 demanderait donc au moins 10 opérations sur ces données soit de l’ordre de 1030/1010 = 1020 secondes = 300 millions de siècles ! ●Même un algorithme O(N) (linéaire) 15 demande au moins 10 opérations 15 10 5 soit de l’ordre de 10 /10 = 10 secondes = environ 27 heures de calcul ! ● 6 / 9 1. Information & Calcul – 3. Théorie du Calcul – 4. Complexité P

Problèmes «P» = de complexité polynomiale => La classe de complexité hiérarchique la plus

Problèmes «P» = de complexité polynomiale => La classe de complexité hiérarchique la plus simple regroupe tous les problèmes dont toutes les instances peuvent être résolues par un algorithme de complexité polynomiale => Cette première classe de complexité est appelée P 3 Rappel: les algorithmes de classe P «pratiques» sont de complexité ≤ O(n ) Personne n’a en effet conçu d’algorithme sérieux de complexité O(n 17)! NB: chaque opération sur un ordinateur affecte un espace fixe en mémoire => un temps de calcul polynomial implique un espace de mémoire polynomial 7 / 9 1. Information & Calcul – 3. Théorie du Calcul – 4. Complexité P

Exemples de problèmes «P» Il existe un nombre considérable de problèmes dans la classe

Exemples de problèmes «P» Il existe un nombre considérable de problèmes dans la classe P: ●La recherche par dichotomie: O(log n) ●L’identification de tous les amis dans un réseau social: O(n) ●L’intersection de deux polygones convexes: O(n) ●Le tri: O(n log n) ●Le calcul d’un plus court chemin: O(n log n) 2 ●L’alignement de deux séquences d’ADN: O(n ) 2 ●L’affectation du personnel de bord aux vols de ligne: O(n log n) 2. 37) ●La multiplication de deux matrices carrées de taille n x n: O(n 3 ●L’optimisation du débit entre deux points d’un réseau: O(n ) 8 / 9 1. Information & Calcul – 3. Théorie du Calcul – 4. Complexité P

Hiérarchie de complexité des problèmes (d’après G. Brookshear) Complexité du problème Nombre fini d’instances

Hiérarchie de complexité des problèmes (d’après G. Brookshear) Complexité du problème Nombre fini d’instances Nombre infini d’instances Problèmes décidables Précalculer et consulter une table P Problèmes Non-déterministes Polynomiaux 9 / 9 Problèmes non-polynomiaux Problèmes indécidables ? NP Sujet du prochain clip 1. Information & Calcul – 3. Théorie du Calcul – 4. Complexité P