1 / 45

Algorithmes et graphes

Algorithmes et graphes. Olivier Cogis Professeur des Université Informatique. Algorithmes et Graphes olivier cogis . Regroupement inter académique 1 et 2 décembre 2011 − Montpellier. première partie _______. Autour d’un algorithme numérique. Algorithmes et Graphes olivier cogis .

Download Presentation

Algorithmes et graphes

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. Algorithmes et graphes Olivier Cogis Professeur des Université Informatique Algorithmes et Graphes olivier cogis Regroupement inter académique 1 et 2 décembre 2011 − Montpellier

  2. première partie_______ Autour d’un algorithme numérique Algorithmes et Graphes olivier cogis Regroupement inter académique 1 et 2 décembre 2011 − Montpellier

  3. function Ahmes(a, b : integer) : integer ; • var • x, y , z : integer ; • begin • x := a ; • y := b ; • z := 0 ; • while x<>0 do • begin • if odd(x) then z := z+y ; • x := x div 2 ; • y := y*2 ; • end • Ahmes := z • end 10 x = 50 20 y = 64 30 z = 0 40 if 2*int(x/2) = x then 60 50 z = z+y 60 x = int(x/2) 70 if (x = 0) then 100 80 y = 2*y 90 goto 40 100 print z 110 end Basic Pascal Algorithmes et Graphes olivier cogis Regroupement inter académique 1 et 2 décembre 2011 − Montpellier

  4. static int ahmes(int a, int b) { int x = a; int y = b; int z = 0; while (x != 0) { if (x % 2 == 1) { z = z + y; } x = x / 2; y = y * 2; } return z; } def ahmes(a,b) : x = a y = b z = 0 while x != 0 : if x%2 == 1 : z = z+y x = int(x/2) y = y*2 return z Python Java Algorithmes et Graphes olivier cogis Regroupement inter académique 1 et 2 décembre 2011 − Montpellier

  5. donnée : deux entiers positifs ou nuls a et b résultat : calcule dans … Algorithmes et Graphes olivier cogis Regroupement inter académique 1 et 2 décembre 2011 − Montpellier

  6. Une trace de avec a = 50 et y = 64 x y z 50 64 0 25 128 0 12 256 128 128 6 512 3 1024 128 1 2048 1152 0 4096 3200 Algorithmes et Graphes olivier cogis Regroupement inter académique 1 et 2 décembre 2011 − Montpellier

  7. Principe de preuve par invariant • Soit l'instruction répétitive tantque < B > faire < I > où • < B > est une expression booléenne • < I > est une instruction • Soit P une propriété. On montre successivement que : • la propriété P est établie par l’initialisation • la propriété P est maintenue par chaque itération • la répétitive converge. • On en conclut que la propriété P< B > est satisfaite à la fin de la répétitive Algorithmes et Graphes olivier cogis Regroupement inter académique 1 et 2 décembre 2011 − Montpellier

  8. donnée : deux entiers positifs ou nuls a et b résultat : calcule dans … z + xy = ab ∧ x = 0  z = ab Algorithmes et Graphes olivier cogis Regroupement inter académique 1 et 2 décembre 2011 − Montpellier

  9. x y z z+xy 50 64 0 3200 25 128 0 3200 12 256 128 3200 128 6 512 3200 3 1024 128 3200 1 2048 1152 3200 0 4096 3200 3200 Algorithmes et Graphes olivier cogis Regroupement inter académique 1 et 2 décembre 2011 − Montpellier

  10. donnée : deux entiers positifs ou nuls a et b résultat : calcule dans z le produit ab spécifications Algorithmes et Graphes olivier cogis Regroupement inter académique 1 et 2 décembre 2011 − Montpellier

  11. donnée : deux entiers positifs ou nuls a et b résultat : calcule dans z le produit ab • initialiser x, y et z de sorte que z + xy = ab • tantquex 0 faire • diminuer strictement la valeur de x • tout en conservant la valeur • de l'expression z + xy z + xy = ab ∧ x = 0  z = ab Algorithmes et Graphes olivier cogis Regroupement inter académique 1 et 2 décembre 2011 − Montpellier

  12. donnée : deux entiers positifs ou nuls a et b • et un entier k ≥ 2 • résultat : calcule dans z le produit ab • xa • yb • z 0 • tantquex 0 faire • zz + (x mod k) y • xxk • yyk z + xy = ab z + xy = z + (kq+r)y = (z+ry) + q(yk) = z’ + x’y’ ∧ x = 0  z = ab Algorithmes et Graphes olivier cogis Regroupement inter académique 1 et 2 décembre 2011 − Montpellier

  13. x y z 4 5 0 0 1 2 3 0  _____________ 1 3 5 1 3 5 9 0 0 4 5 0 0 9 0 0 ______________ 4 5 0 0 + z 5 5 3 5 ______________ 5 5 3 5 Algorithmes et Graphes olivier cogis Regroupement inter académique 1 et 2 décembre 2011 − Montpellier

  14. Complexité asymptotique On compte le nombre d’itérations effectuées par l’algorithme. Soit N ce nombre, et soit k la base utilisée : Algorithmes et Graphes olivier cogis Regroupement inter académique 1 et 2 décembre 2011 − Montpellier

  15. deuxième partie_______ Autour de la notion d’ordre Algorithmes et Graphes olivier cogis Regroupement inter académique 1 et 2 décembre 2011 − Montpellier

  16. Graphe de précédence A On peut imaginer que A, B, … et G sont les chapitre d’un manuel d’enseignement et qu’il y a un arc de X vers Y lorsque les notions développées dans X sont utilisées dans Y G B F C E D graphe de précédence  le graphe n’a pas de circuit Algorithmes et Graphes olivier cogis Regroupement inter académique 1 et 2 décembre 2011 − Montpellier

  17. A G B F C E D un graphe de précédence Algorithmes et Graphes olivier cogis Regroupement inter académique 1 et 2 décembre 2011 − Montpellier

  18. B A E D G B A G F C F C E D un graphe de précédence le même graphe de précédence Algorithmes et Graphes olivier cogis Regroupement inter académique 1 et 2 décembre 2011 − Montpellier

  19. B E D A G F C l‘ordre induit Algorithmes et Graphes olivier cogis Regroupement inter académique 1 et 2 décembre 2011 − Montpellier

  20. Un algorithme non déterministe donnée : un graphe de précédence G résultat : ? lequel ? un graphe transitif ? en tout cas un graphe transitif contenant G au sens des arcs • tantqueG possède un triplet incomplet (x,y,z) faire • ajouter à G l’arc de x à z (x,y,z) triplet incomplet de G  G possède l’arc de xy et l’arc de yz, mais pas l’arc de xz Algorithmes et Graphes olivier cogis Regroupement inter académique 1 et 2 décembre 2011 − Montpellier

  21. La fermeture transitive Gt est le plus petit des graphes transitifs contenant G l’inclusion des graphes s’entend au sens des arcs • première caractérisation • la définition est fondée : • le graphe complet est un des H • contenir G « passe » à l’intersection • être transitif « passe » à l’intersection Regroupement inter académique 1 et 2 décembre 2011 − Montpellier Algorithmes et Graphes olivier cogis

  22. La fermeture transitive Gt est le plus petit des graphes transitifs contenant G l’inclusion des graphes s’entend au sens des arcs • deuxième caractérisation • Gt est le graphe qui comporte l’arc xy si et seulement si il existe dans G un parcours non trivial de x à y • un tel graphe : • contient G • est transitif • est contenu dans tout graphe transitif contenant G Regroupement inter académique 1 et 2 décembre 2011 − Montpellier Algorithmes et Graphes olivier cogis

  23. Un algorithme non déterministe pour la fermeture transitive donnée : un graphe G résultat : calcule dans H la fermeture transitive Gtde G • HG • tantqueH possède un triplet incomplet (x,y,z) faire • ajouter à H l’arc xz Algorithmes et Graphes olivier cogis Regroupement inter académique 1 et 2 décembre 2011 − Montpellier

  24. 1 4 2 3 Algorithmes et Graphes olivier cogis Regroupement inter académique 1 et 2 décembre 2011 − Montpellier

  25. Les opérateurs  • Si G = (S, A) est un graphe avec : • S ensemble des sommets • A ensemble des arcs, A SS • et si xS est un sommet de G, • on définit le graphe x(G) par x(G) = (S, x(A)) où : • x(A) = A  { yzSSyx, xzA } x x y y z z x(G)  Algorithmes et Graphes olivier cogis Regroupement inter académique 1 et 2 décembre 2011 − Montpellier

  26. L’algorithme de Roy-Warshall donnée : un graphe G résultat : calcule dans H la fermeture transitive de G • HG • pour chaque sommetx de Hfaire • H x(H) Algorithmes et Graphes olivier cogis Regroupement inter académique 1 et 2 décembre 2011 − Montpellier

  27. 1 4 2 3 Algorithmes et Graphes olivier cogis Regroupement inter académique 1 et 2 décembre 2011 − Montpellier

  28. L’algorithme de Roy-Warshall donnée : un graphe G résultat : calcule dans H la fermeture transitive de G • HG • pour chaque sommetx de Hfaire • H x(H) Algorithmes et Graphes olivier cogis Regroupement inter académique 1 et 2 décembre 2011 − Montpellier

  29. Soit x1,x2,… xn une permutation de S et posons : Preuve de l’algorithme avec l’invariant : ab est un arc de Gisi et seulement si il existe dans G un parcours de a vers b dont tous les sommets intermédiaires appartiennent à l’ensemble {x1,x2,… xi} Algorithmes et Graphes olivier cogis Regroupement inter académique 1 et 2 décembre 2011 − Montpellier

  30. Preuve par les propriétés algébriques des opérateurs  • les opérateurs  sont • isotones : Gx(G) • croissants : GHx(G) x(H) • idempotents : x(x(G)) = x(G) • permutables : x(y(G)) = y(x(G)) Algorithmes et Graphes olivier cogis Regroupement inter académique 1 et 2 décembre 2011 − Montpellier

  31. Preuve par les propriétés algébriques des opérateurs  GGn isotonie Gn est transitif propriété caractéristique avec commutativité et idempotence GnGtcroissance et idempotence Algorithmes et Graphes olivier cogis Regroupement inter académique 1 et 2 décembre 2011 − Montpellier

  32. Algorithmes et Graphes olivier cogis Regroupement inter académique 1 et 2 décembre 2011 − Montpellier

  33. Complexité asymptotique Le nombre d’itérations de l’algorithme de Roy-Warshall est n3 si n est l’ordre du graphe Algorithmes et Graphes olivier cogis Regroupement inter académique 1 et 2 décembre 2011 − Montpellier

  34. B B E E D D A A G G graphe de précédence fermeture transitive B E D F F C C A G réduction transitive F C Algorithmes et Graphes olivier cogis Regroupement inter académique 1 et 2 décembre 2011 − Montpellier

  35. Un algorithme non déterministe pour la réduction transitive • donnée : un graphe G • résultat : calcule dans H un graphe ayant la même • fermeture transitive que G et minimum pour cette propriété • HG • tantqueH possède un triplet complet (x,y,z) faire • supprimer de H l’arc xz (x,y,z) triplet complet de G  G possède les 3 arcs de xy,yz et xz Algorithmes et Graphes olivier cogis Regroupement inter académique 1 et 2 décembre 2011 − Montpellier

  36. Algorithmes et Graphes olivier cogis Regroupement inter académique 1 et 2 décembre 2011 − Montpellier

  37. La t-équivalence l’inclusion des graphes s’entend au sens des arcs • Définition • Deux graphes sont t-équivalents lorsqu’ils ont • la même fermeture transitive. • Propriété • La t-équivalence est une relation d’équivalence. • La classe de t-équivalence d’un graphe G possède un plus grand élément qui est Gt, mais ne possède pas, en général, de plus petit élément. Algorithmes et Graphes olivier cogis Regroupement inter académique 1 et 2 décembre 2011 − Montpellier

  38. La réduction transitive des graphes sans circuits • Théorème • Si un graphe est sans circuits, sa classes de • t-équivalence possède un plus petit élément. Ce plus petit élément s’appelle la réduction transitive du graphe et c’est l’intersection de tous les graphes de la classe. C’est également le résultat unique du calcul effectué par l’algorithme non déterministe de réduction transitive. Algorithmes et Graphes olivier cogis Regroupement inter académique 1 et 2 décembre 2011 − Montpellier

  39. Quelques propriétés étapes pour une démonstration • tous les parcours d’un graphe sans circuits d’ordre n sont de longueur majorée par n 1 • tout graphe t-équivalent à un graphe sans circuits est lui-même sans circuit • deux graphes sans circuits t-équivalents possèdent les mêmes parcours de longueur maximum entre chaque couple de sommets • l’intersection de deux graphes t-équivalents est un graphe t-équivalent aux deux premiers Algorithmes et Graphes olivier cogis Regroupement inter académique 1 et 2 décembre 2011 − Montpellier

  40. Point de vue • A la notion intuitive d’ordre, on peut associer une classe de t-équivalence de graphes sans circuits qui : • est ordonnée par inclusion au sens des arcs • possède un plus grand élément qui est la fermeture transitive de tous les éléments de la classe et qui est un ordre au sens de l’algèbre des relations • possède un plus petit élément, appelé réduction transitive de chaque élément de la classe Algorithmes et Graphes olivier cogis Regroupement inter académique 1 et 2 décembre 2011 − Montpellier

  41. Numérotations compatibles ou extensions linéaires B E D 7 7 A 6 6 5 4 G 4 3 5 3 F C 1 1 2 2 Algorithmes et Graphes olivier cogis Regroupement inter académique 1 et 2 décembre 2011 − Montpellier

  42. Numérotations compatibles ou extensions linéaires • une numérotation compatible des sommets d’un graphe est une numérotation telle que si xy est un arc du graphe, le numéro de x est inférieur à celui de y • le fait de posséder une numérotation compatible de ses sommets est une caractérisation des graphes sans circuits • une numérotation compatible des sommets d’un graphe sans circuits induit un ordre total sur ses sommets, qui est une extension linéaire de l’ordre induit par le graphe : si x précède y dans l’ordre partiel, il doit le précéder dans l’extension linéaire, qui est un ordre total Algorithmes et Graphes olivier cogis Regroupement inter académique 1 et 2 décembre 2011 − Montpellier

  43. Extension linéaire ou numérotation compatible donnée : un graphe G = (S, A) sans circuits résultat : calcule dans  une numérotation compatible pour G • X • k 0 • tantque X ≠ Sfaire • choisir une source x de G[S \ X] • kk + 1 •  [x] k • XX  {x} • X  S •  est numérotation compatible de G[S] • G ne possède aucun arc de A\S vers S Algorithmes et Graphes olivier cogis Regroupement inter académique 1 et 2 décembre 2011 − Montpellier

  44. En guise de conclusion Les algorithmes sont des objets dignes de l’attention du mathématicien ! • ils sont conçus pour résoudre des problèmes • il faut les spécifier • il faut les prouver • il faut en évaluer la complexité • il faut les généraliser • il faut les spécialiser • … Algorithmes et Graphes olivier cogis Regroupement inter académique 1 et 2 décembre 2011 − Montpellier

  45. Merci de votre attention Algorithmes et Graphes olivier cogis Regroupement inter académique 1 et 2 décembre 2011 − Montpellier

More Related