8INF806

15
8INF806 Conception et analyse des algorithmes

description

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. - PowerPoint PPT Presentation

Transcript of 8INF806

Page 1: 8INF806

8INF806

Conception et analyse des algorithmes

Page 2: 8INF806

1936

Définition formelle de la notion d'algorithme:

• Turing: Machine de Turing

• Post: Machine de Post

• Kleene: fonctions récursives

• Church: -calculus

Page 3: 8INF806

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)

Page 4: 8INF806

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.

Page 5: 8INF806

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

Page 6: 8INF806

Thèse de Church-Turing étendue

algorithme efficace

=

machine de Turing efficace

Page 7: 8INF806

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

Page 8: 8INF806

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é

Page 9: 8INF806

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

Page 10: 8INF806

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

Page 11: 8INF806

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.

Page 12: 8INF806

Exemple

• A: multiplication• B: mise au carré

• X2 = X × X

• X × Y =2

)()( 22 YXYX

Page 13: 8INF806

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

Page 14: 8INF806

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.)

Page 15: 8INF806

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