1 / 15

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.

Télécharger la présentation

8INF806

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 8INF806 Conception et analyse des algorithmes

  2. 1936 Définition formelle de la notion d'algorithme: • Turing: Machine de Turing • Post: Machine de Post • Kleene: fonctions récursives • Church: -calculus

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

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

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

  6. Thèse de Church-Turing étendue algorithme efficace = machine de Turing efficace

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

  8. 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é

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

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

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

  12. Exemple • A: multiplication • B: mise au carré • X2 = X × X • X × Y =

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

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

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

More Related