150 likes | 227 Views
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.
E N D
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 =
Problèmes NP-complet Un problème A est NP-complet si: • A est dans NP • 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: • L'espérance du temps est raisonnable • La probabilité d'erreur est raisonnable • Algorithme d'approximation • Pour les problèmes d'optimisation (ex. TSP) • Heuristiques (algorithmes génétiques, etc.)
Quelques joyaux • Théorème de Cook: • SAT est NP-complet • Théorème PCP • Exemple: circuit hamiltonien • Théorème de Furst, Saxe et Sipser. • Limites du parallélisme