Algorithmes et structures de donnes avancs - PowerPoint PPT Presentation

1 / 36
About This Presentation
Title:

Algorithmes et structures de donnes avancs

Description:

Pour aller d'un sommet s1 un sommet s2, combien y-a-t-il de possibilit s ? ... 1970 : le premier qui arrivera d cider si P et NP sont diff rents ou gaux ... – PowerPoint PPT presentation

Number of Views:101
Avg rating:3.0/5.0
Slides: 37
Provided by: PatrickR158
Category:

less

Transcript and Presenter's Notes

Title: Algorithmes et structures de donnes avancs


1
Algorithmes et structures de données avancés
  • Cours 10
  • Patrick Reuter
  • http//www.labri.fr/preuter

2
  • Considérons un graphe complet avec n sommets
  • Trouver le meilleur chemin du sommet s1 à s2
  • ? Comparer tous les chemins possibles

3
  • Pour aller dun sommet s1 à un sommet s2, combien
    y-a-t-il de possibilités ?
  • Autrement dit
  • Combien de différentes chaînes simples existent
    de s1 jusquà s2 ?

4
  • Chaînes simples de longueur 1
  • s1, s2
  • ? 1 possibilité
  • Chaînes simples de longueur 2
  • s1, s3, s2
  • s1, s4, s2,
  • s1, .., sn, s2
  • ? n-2 possibilités

5
  • Chaînes simples de longueur 3
  • s1, s3, s4, s2
  • s1, s3, s5, s2,
  • s1, s3, sn, s2
  • S1, s4, s5, s2
  • S1, s4, s6, s2
  • S1, s4, sn, s2
  • S1, sn-1, sn, s2
  • ? (n-2) (n-3) possibilités

6
  • Chaînes simples de longueur 4
  • ? (n-2) (n-3) (n-4) possibilités
  • Chaînes simples de longueur n-1
  • ? (n-2) (n-3) (n-4) .. 2 1
    possibilités
  • ? (n-2)! possibilités

7
  • En total
  • 1 (n-2) (n-2) (n-3) (n-2)!
    Possibilités
  • ? O(n!) possibilités

8
  • Pour certaines problèmes, les algorithmes
    gloutons peuvent trouver la meilleur permutation
    plus vite
  • Pour le problème de la chaîne (simple!) la plus
    courte, cest lAlgorithme de Dijkstra.
  • Si le graphe possède m arcs et n sommets, alors
    la complexité de l'algorithme est
  • T(m n log n)

9
Algorithme de Dijkstra
10
Théorie de la complexité
  • Classes de Grand-O
  • O(1) complexité constante
  • O(log n) complexité logarithmique
  • O(n) complexité linéaire
  • O(n log n) complexité quasi-linéaire
  • O(na) complexité polynomiale
  • O(n2) complexité quadratique
  • O(n3) complexité cubique
  • O(an) complexité exponentielle
  • O(n!) complexité factorielle

O(log n) ? O(n) ? O(n log n) ? O(n2) ? O(n3) ?
O(an) ? O(n!)
11
Théorie de la complexité Changement de la
fonction
O(n)
  • 2ème solution
  • changer la fonction
  • O(log n)
  • logarithmique
  • O(n)
  • linéaire
  • O(n log n)
  • Quasi-linéaire
  • O(n2)
  • quadratique
  • O(n3)
  • cubique
  • O(an)
  • exponentiel

n
12
Informatique théorique
  • Théorie de complexité
  • Théorie de calculabilité

13
Exemple
  • Un homme à un ensemble de n pépites (pièces
    d'or), qui pèsent p1, p2, , pn grammes.
  • Cet homme à deux enfants
  • Existe-t-il une partition des pépites en deux
    sous-ensembles disjoints pour que la somme des
    poids des deux sous-ensembles soit égal ?
  • Il s'agit du problème PARTITION

14
PARTITION
  • Comment trouver les partitions ?
  • Comment vérifier avec une partition donnée si les
    sommes des deux poids sont égales ?

15
Théorie de complexité
  • L'étude formelle de la difficulté des problèmes
    en informatique.
  • Elle se distingue de la théorie de la
    calculabilité
  • qui s'attache à savoir si un problème peut ou
    peut pas être résolu par un ordinateur.

16
Théorie de complexité
  • Concentration sur les problèmes qui peuvent
    effectivement être résolus,
  • Savoir s'il y a une solution "efficace" en se
    basant sur une estimation (théorique)
  • des temps de calcul et (complexité temporelle)
  • des besoins en mémoire informatique. (complexité
    de mémoire)

17
Théorie de complexité
  • Un problème est formalisé de la manière
    suivante 
  • un ensemble de données (ou instance) en entrée,
  • une question sur ces données (pouvant demander
    éventuellement un calcul).
  • La théorie de la complexité ne traite que des
    problèmes de décision binaire, (réponse soit oui
    ou non)

18
Théorie de complexité
  • Cependant
  • on étend la notion de complexité aux problèmes
    d'optimisation.
  • En effet, il est facile de transformer un
    problème d'optimisation en problème de décision.

19
Théorie de complexité
  • Si par exemple on cherche à optimiser une valeur
    n
  • on traite le problème de décision qui consiste à
    comparer n à un certain k.
  • En traitant plusieurs valeurs de k on peut
    déterminer une valeur optimale.

20
TSP
  • TSP Traveling Salesman Problem (Problème du
    voyageur de commerce)
  • étant donné
  • - n sommets (des  villes )
  • - et les distances séparant chaque sommet,
  • trouver une chaine de longueur totale minimale
    qui passe exactement une fois par chaque sommet
    (et revienne au sommet de départ).

(n-1)! Possibilités !
21
  • TSP métrique
  • On peut passer plusieurs fois par le meme sommet

22
TSP
  • Voici un énoncé plus formel du problème du
    voyageur de commerce sous forme de problème de
    décision.
  • Données 
  • un graphe complet G (V,E,f) avec V un ensemble
    de sommets, E un ensemble d'aretes et f une
    matrice de distances
  • un entier B
  • Question 
  • Existe-t-il un cycle passant une et une seule
    fois par chaque sommet tel que la somme des coûts
    des arcs utilisés soit inférieure à B

23
TSP
  • on ne connaît pas de méthode de résolution
    permettant d'obtenir des solutions exactes en un
    temps raisonnable pour de grandes instances
    (grand nombre de villes) du problème.
  • Pour ces grandes instances, on devra donc souvent
    se contenter de solutions approchées
    (heuristiques), car on se retrouve face à une
    explosion combinatoire 
  • Le nombre de chemins possibles passant par 69
    villes est déjà un nombre de 100 chiffres.
  • Pour comparaison, un nombre de 80 chiffres
    permettrait déjà de représenter le nombre
    d'atomes dans tout l'univers connu !

24
TSP
  • Borne supérieur
  • L'arbre recouvrant minimale permet de déterminer
    une solution du TSP métrique qui est au pire 2
    fois plus long que la solution optimale.
  • ? Séparation et évaluation, (branch and bound)

25
TSP
  • Logiciel Concorde
  • A résolu un TSP de 15,112 villes
  • http//www.tsp.gatech.edu/concorde.html

26
Théorie de la complexité
  • Repose sur la définition de classes de complexité
    qui permettent de classer les problèmes en
    fonction de la complexité des algorithmes qui
    existent pour les résoudre.

27
Classes de complexité
  • Parmi les classes les plus courantes, on
    distingue
  • Classe P (polynomial)
  • Classe NP (Non déterministe Polynomial)

28
Classes de complexité
  • Classe P (polynomial)
  • un problème de décision est dans P s'il peut être
    décidé par un algorithme déterministe en un temps
    polynomial par rapport à la taille de l'instance.

29
Classes de complexité
  • Classe NP (Non déterministe Polynomial)
  • c'est la classe des problèmes de décision pour
    lesquels la réponse oui peut être décidée par un
    algorithme non-déterministe en un temps
    polynomial par rapport à la taille de l'instance.

30
Non-déterminisme
31
La classe NP
  • De manière intuitive, dire qu'un problème peut
    être décidé à l'aide d'un algorithme
    non-déterministe polynomial signifie
  • qu'il est facile, pour une solution donnée, de
    vérifier en un temps polynomial si celle-ci
    répond au problème pour une instance donnée
  • mais que le nombre de solutions à tester pour
    résoudre le problème est exponentiel par rapport
    à la taille de l'instance.
  • Le non-déterminisme permet de masquer la taille
    exponentielle des solutions à tester tout en
    permettant à l'algorithme de rester polynomial.

32
Classes de complexité
  • On a trivialement P ? NP,
  • car un algorithme déterministe est un algorithme
    non déterministe particulier.
  • En revanche NP ? P ?
  • que l'on résume généralement à P NP ?
  • est l'un des problèmes ouverts les plus
    fondamentaux et intéressants en informatique
    théorique.
  • 1970 le premier qui arrivera à décider si P et
    NP sont différents ou égaux recevra le prix Clay
    (plus de 1.000.000 )

33
  • P NP ??

34
Pourquoi c'est difficile de prouver ? (1 sur 2)
  • Le problème de fond est que les algorithmes que
    l'on programme sont tous déterministes.
  • Pour la bonne et simple raison que l'on ne sait
    pas construire de machine non déterministe.
  • Ce qui fait que l'on ne peut que simuler un
    algorithme non déterministe par un algorithme
    déterministe

35
Pourquoi c'est difficile de prouver ? (2 sur 2)
  • Or il est démontré qu'un algorithme déterministe
    qui simule un algorithme non-déterministe qui
    fonctionne en temps polynomial, fonctionne en
    temps exponentiel.
  • Ce qui fait que pour de grandes entrées on ne
    peut pas résoudre le problème en pratique, quelle
    que soit la puissance de la machine.

36
Relation entre P et NP (supposé)
  • Si NP ? P

NP
P
Write a Comment
User Comments (0)
About PowerShow.com