Introduction

publicité
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
Téléchargement