8INF806 Conception et analyse des algorithmes 1936 Définition formelle de la notion d'algorithme: • Turing: Machine de Turing • Post: Machine de Post • Kleene: fonctions récursives • Church: -calculus Problèmes indécidables • Certains problèmes n'admettent aucun algorithme. • ex. Problème d'arrêt • ex. Résoudre une équation diophantienne • ex. Le jeu de la vie (game of life) Thèse de Church-Turing • Toutes ces définitions sont équivalentes ----------------------Notion intuitive d'algorithme = machine de Turing • Remarque: ordinateur bio-moléculaire et ordinateur quantique. Efficacité des algorithmes • Quantité raisonnable de ressources • Ressources: temps, espace mémoires, nombre de processeurs, nombre de bits de communications, nombre de bits aléatoires, etc. • Nous considérerons surtout le temps • Algorithme efficace = temps polynomial Thèse de Church-Turing étendue algorithme efficace = machine de Turing efficace Théorie de la complexité • Prouver que certains problèmes requièrent une quantité minimale de ressources. • Exemple: Factorisation d'un entier n • Conception d'algorithme: borne supérieure • Théorie de la complexité: borne inférieure Pourquoi des bornes inférieures • Résultats négatifs • Évite de perdre son temps • La recherche de bornes inférieures peut conduire à la découverte d'algorithmes efficaces. • Exemple: Test de primalité Difficulté du domaine • Borne supérieure un seul algorithme • Borne supérieure tous les algorithmes Fait: Aucun des plus important problèmes en complexité n'a encore été résolu Exemple: Dernier théorème de Fermat Question centrale: P≠NP • P: ensemble des problèmes disposant d'une solution efficace Exemple: test de primalité • NP: ensemble de problèmes pour lesquel on ne connaît aucun algorithme efficace Exemple: Problème du commis voyageur Comparer des problèmes (réduction) Deux problèmes: A et B • A≤B si on peut construire un algorithme efficace pour A si on dispose d'un algorithme efficace pour B • B est au moins aussi difficile que A • A et B ont le même niveau de difficulté si A≤B et B≤A. Exemple • A: multiplication • B: mise au carré • X2 = X × X ( X Y )2 ( X Y )2 • X×Y= 2 Problèmes NP-complet Un problème A est NP-complet si: 1. A est dans NP 2. B ≤ A pour tout B dans NP • • A est le problème le plus difficile dans NP Si A admet un algorithme efficace alors tous les probles B dans NP admettent un algorithme efficace Que faire quand un problème est trop difficile? • • Reformuler le problème Algorithmes probabiliste: – – • Algorithme d'approximation – • L'espérance du temps est raisonnable La probabilité d'erreur est raisonnable Pour les problèmes d'optimisation (ex. TSP) Heuristiques (algorithmes génétiques, etc.) Quelques joyaux 1. Théorème de Cook: • SAT est NP-complet 2. Théorème PCP • Exemple: circuit hamiltonien 3. Théorème de Furst, Saxe et Sipser. • Limites du parallélisme