8INF806
-
Upload
oprah-patterson -
Category
Documents
-
view
23 -
download
0
description
Transcript of 8INF806
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
)()( 22 YXYX
Problèmes NP-complet
Un problème A est NP-complet si:1. A est dans NP2. 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
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