1 / 76

Méthodes et Algorithmes Graphiques

Méthodes et Algorithmes Graphiques. Ian Jermyn. Quelques points avant de commencer. Pour me contacter : Ian Jermyn. Ian.Jermyn@sophia.inria.fr . www-sop.inria.fr/ariana/personnel/Ian.Jermyn . Nationalité : Britannique. Excusez mon français s’il vous plait.

Télécharger la présentation

Méthodes et Algorithmes Graphiques

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. Méthodes et Algorithmes Graphiques Ian Jermyn

  2. Quelques points avant de commencer. • Pour me contacter: Ian Jermyn. • Ian.Jermyn@sophia.inria.fr. • www-sop.inria.fr/ariana/personnel/Ian.Jermyn. • Nationalité: Britannique. • Excusez mon français s’il vous plait. • Chercheur en traitement d’image et vision par ordinateur à l’INRIA dans projet Ariana. • Formation: en physique théorique, puis vision par ordinateur.

  3. Quelques points avant de commencer. • N’hésitez pas à: • Me questionner:c’est la façon meilleure d’apprendre. • Demander que: • Je parle plus fort. • Je répète ou explique quelque chose. • Vous pouvez trouver ce fichier à l’URL precedent, sous ‘Teaching/Advising’ puis ‘Courses’, à partir de lundi.

  4. But • Donner une structure mathématiqueafin quevous puissiez: • Comprendrela littérature. • Utiliserces méthodes pour: • Systématiser vos idées. • Bien poser les problèmes. • Donner des algorithmes flexibles: • Pour que vous compreniez les possibilités de ces techniques. • Que vous pouvez adapter à vos problèmes. • Que vous pouvez incorporer dans des solutions plus complètes.

  5. Motivation • Beaucoup des problèmesen traitement d’image peuvent être exprimésainsi: • Trouver une structure linéique avec telles ou telles propriétés. • Trouver une région ou son contour (i.e. bord)avec telles ou telles propriétés. • Exemples: • Extraction de réseaux routiers. • Extraction de zones urbaines.

  6. Exemples

  7. Motivation • Les graphes image sont une représentation discrète de la géométrie de l’image. • Les problèmes précédents se traduisentpar des problèmes sur des graphes définis àpartir de l’image: • Trouver un chemin (de poids minimum) dans un graphe. • Trouver un cycle (de poids (ratio) minimum) dans un graphe.

  8. Plan du cours • Graphes et graphes image • Fonctions sur les graphes • Problèmes graphiques et algorithmes • Chemins de poids minimum • Cycles divers • Cycle de poids rationnel minimum • Fonctions sur les graphes image • Problèmes image • Exemples

  9. Graphes et graphes image

  10. Graphes orientés: intuition • On peut imaginer un graphe orienté en termes de sommets (cercles verts) et d’arcs (flèches noires): • On peut avoir des sommets isolés (7). • On peut avoir des boucles (g). • On peut avoir plus d’un arc entre deux sommets (h,i). 5 i g 1 h b 2 a 6 f c d 7 4 e 3

  11. Graphes orientés • Un graphe consiste de deux ensembles E (arcs) et V (sommets) et deux applicationss (source) et b (but) de E à V: • On peut penserà une seule application de E à V £ V:

  12. Types de graphes • Si il y a plus d’un arc entre deux sommets, on a un multigraphe (s £ b pas injective). • Sinon (s £ b est injective), on peutidentifier E avec un sous-ensemble de V£ V. • Si il n’y a pas de boucle, on a un graphe simple. • Si on a tous les arcs possibles (E = V £ V), le graphe est complet (s £ b surjective). • Nous utiliserons le mot graphe pour les non-multigraphes simples.

  13. Graphe symétrique • Pour chaque arc e, il y a un autre arc (e-1) entre les mêmes sommets mais avec l’orientation inverse. • 8 e 2 E. 9 ! e-12 E t.q. s £ b(e-1) = b £ s(e).

  14. Connectivité • Un graphe n’est pas connecté si les sommets se divisent en deux parties, sans un arc entre les deux. • On parle de graphes connectés dans le cours.

  15. Sous-graphes • Un sous-graphe H = (U, D) d’un graphe G = (V, E) est un sous-ensemble des sommets U ½ V, et un sous-ensemble des arcs entre eux: D ½ E (U £ U).

  16. Graphes spéciaux: chemins et cycles • Un chemin est une séquence d’arcs: • {ei}i 2 [1..n], t.q. • b(ei) = s(ei + 1) pour i 2 [1..(n – 1)]. • Un cycle est un chemin avec b(en) = s(e1). • On dit qu’un graphe contient un chemin ou un cycle si il a un sous-graphe qui est un chemin ou un cycle.

  17. Simplicité • Grapheacyclique (GA): • Une graphe qui ne contient pas unsous-graphe qui est un cycle. • Chemin simple: • Une chemin qui ne contient pas unsous-graphe qui est un cycle. • Cycle simple: • Un cycle qui ne contient pas unsous-graphe proprequi est un cycle.

  18. = Graphes image • V est l’ensemble des pixels. • Deux graphessymétriques: • Vert: G = (E, V). • Rouge: G = (E, V). • Il existe unebijection¤: E$E. • Rotation positivedep/2. • ¤¤e = e-1.

  19. = Exemples Image

  20. Et maintenant? • On cherche un chemin ou un cycle dans un des deux graphes image. • Mais comment on va le sélectionner? • On définit une fonction (poids) qui donne une valeur pour chaque chemin ou chaque cycle dans le graphe. • On cherche le chemin ou le cycle avec le poids minimum. • Comment construire une telle fonction?

  21. Fonctions sur les graphes

  22. Fonctions sommet et arc • Sommets: • Pour chaque sommet v, on a une valeur (un poids) f(v). • Arcs: • Pour chaque arc e, on a une valeur (un poids) f(e). • On peut définir la dérivée d’une fonction sommet, qui est un fonction arc: • (df)(e) = f(b(e)) – f(s(e)).

  23. Fonctions spéciales • On peut définir des fonctions • Positives: f(u) > 0. • Entières: f(u) 2Z. • Binaires: f(u) 2 {0,1}. (Sous-ensemble de U.) • Soit g et h deux fonctions, h positive. • On définit unefonction rationelle g/h(u) = g(u)/h(u).

  24. l(e) = 2 l(e-1) = §2 Fonctions symétriques • Rappel qu’un graphe symétrique a pour chaque arc e, un arc e-1. • Pour les fonctions arc, on définit: • l-1(e) = l(e-1). • On définit les fonctions symétriques: • l= l-1 • On définit les fonctions antisymétriques: • l= -l-1

  25. Fonctions sur ensembles • Etant donné une fonction sommet ou arc, on peut définir une fonction sur sous-ensembles de V ou E par sommation. E.g.: • U ½ V; • f(U) = v 2 U f(v). • Noter que df(c) = 0 si c est un cycle.

  26. Cycles négatifs • Unefonction arc l a un cycle négatif si le graphe contient un cycle c t.q. l(c) < 0. • Les cycles négatifs jouent une rôle important dans la suite du cours.

  27. Exemple • Une fonction f sur V. • Une fonctiongsur E. • Dans ce cas, g = df. 4.0 1.5 2.5 -13.2 6.1 11.7 4.6 -9.2 -7.1 -2.1

  28. Et maintenant? • On a vu comment définir des fonctions sur les chemins et les cycles. • Comment trouver le chemin ou cycle avec le poids minimum?

  29. Problèmes graphiques et algorithmes

  30. Problèmes • Chemins de poids minimum. • Cycle de poids minimum. • Détection de cycles négatifs. • Cycle de poids rationel minimum.

  31. Généralités • On suppose: • Un graphe G = (E, V). • C est le sous-ensemble de cycles dans G. • Deux fonctions arc, l et t. • t est positive. t n’est pas toujours utilisé. • On peut supposer que l et t sont entiers.

  32. Problèmes graphiques et algorithmes I Chemins de poids minimum

  33. Chemins de poids minimum • Problème: • Trouver le chemin qui a le poids minimum de lparmi les chemins qui passent entre un sommet s et un sommet t. • Différents Cas: • G contient uncycle négatif. • G ne contient aucun cycle négatif.

  34. Différents cas

  35. Notations, Init et Relax • A la fin de chaque algorithme: • d: V !R sera le poids du chemin de poids minimum (valeur minimal de l) entre s et v. • r: V ! V est le prédécesseur de chaque sommet dans le chemin de poids minimum de s. • Init(d, s) • d(s) = 0; 8 v 2 Vn{s}: d(v) = 1; • Relax(e, d, r, l) • Si d(b(e)) > d(s(e)) + l(e) • d(b(e)) = d(s(e)) + l(e) • r(b(e)) = s(e)

  36. l¸ 0: algorithme de Dijkstra • Dijkstra(G, s, l) • Init(d, s) • Q = V • Tant que Q ¹; • u = arg minv 2 Q {d(v)} • Q = Qn{u} • Pour e 2 s-1(u) • Relax(e, d, r, l) • Complexité: O(E log(V)).

  37. lgénéral: algorithme de Bellman/Ford • BellmanFord(G, s, l) • Init(d, s) • Pour n 2 {1,…,(jVj – 1)} • Q = V • Tant que Q ¹; • u = arb(Q); • Q = Qn{u} • Pour e 2 s-1(u) • Relax(e, d, r, l) • Complexité: O(VE).

  38. Commentaire • Noter que si l’on veut calculer la distance entre un sommet et un sous-ensemble des autres sommets l’algorithme de Dijkstra peut être arrêté au point où les sommets sont selectionnés.

  39. Problèmes graphiques et algorithmes II Cyclesdivers

  40. Cycle de poids minimum

  41. Détection de cycles: algorithme • Cycle(G) • Pour v 2 V • Si M(v) = 0 • DFS (v) • DFS(v) – depth-first search – recherche par profondeur d’abord • M(v) = 1; • Pour u 2 b(s-1(v)) • Si M(u) = 0 • r(u) = v • DFS(u) • Si M(u) = 1 • r(u) = v • Rend u (cycle détecté) • M(v) = 2

  42. Détection de cycles négatifs: algorithme • CycNeg(G, l) • s = arb(V) • d =BellmanFord(G, s) • Pour e 2 E • u = s(e) • v = b(e) • Si d(v) > d(u) + l(e) (ou dd(e) > l(e)) • Il y a une cycle négatif.

  43. Détection de cycles zéro. • d(v) ·d(u) + l(hu, vi). • Doncld(hu, vi) = l(hu, vi) - dd(hu, vi) est positive. • Pour un cycle c: • ld(c) = l(c) parce que df(c) = 0 pour toutesfonctions sommet f et tous cycles. • Donc, l(c) = 0 )ld(e) = 0 8 e 2 c.

  44. Cycles zéro: algorithme • ZeroCyc(G, l) • s = arb(V) • d =BellmanFord(G, s, l) • E0 = {e 2 E : ld(e) = 0} • G0 = (E0, b(E0) [ s(E0)) • c = Cycle(G0)

  45. Problèmes graphiques et algorithmes III Cycle de poids rationnelminimum

  46. Cycle de poids rationnel minimum • Problème: • Trouver arg minc 2 Cl/t(c). • Ce problème ne presente pas les difficultésrencontréesavec le cycle de poids minimum. • Dans les applications, il y a aussi des propriétés théoriques intéressantes.

  47. Cycle de poids rationnel minimum

  48. Commentaires • Pas de restriction sur l: • l peut avoir des cycles négatifs. • On trouve toujours un cycle simple. • Pour les graphes symétriques, lantisymétrique, tsymétrique: • arg minc 2 Cl/t(c) = arg maxc 2 Cjl/t(c)j. • Donc l’algorithmemaximisejl/tj.

  49. Lemmes • On définit une fonction arc paramétriséelb = l - bt. • Lemme: Soit b¤ t.q. minc 2 Clb¤(c) = 0 et soit c¤ un cycle minimisantlb¤(c¤) = 0,alors b¤ = minc 2 Cl/t(c) et l/t(c¤) = b¤. • lb(c) = 0 )l/t(c) = b. • Supposonsb¤¹ minc 2 Cl/t(c),alors 9 c t.q. l/t(c) < b¤)lb¤(c) < 0. Contradiction parce que minc 2 Clb¤(c) = 0. • Lemme: Soit b¤ = minc 2 Cl/t(c) et soit c¤ un cycle minimisant,alors minc 2 Clb¤(c) = 0 et lb¤(c¤) = 0. • lb(c) = 0 (l/t(c) = b. • Supposons minc 2 Clb¤(c) ¹ 0,alors 9 c t.q. lb¤(c) < 0 )l/t(c) < b¤. Contradiction parce que b¤ = minc 2 Cl/t(c).

  50. Nouveau problème • Donc le problème devient: comment trouverb¤ t.q. minc 2 Clb¤(c) = 0, puis comment trouver un cycle de poids zéro. • Noter: • lmin = mine 2 El(e) · b¤· maxe 2 El(e) = lmax • 9 c 2 C. lb(c) < 0 ) minc 2 Clb(c) < 0 )b > b¤ • lb(c) < 0 )b¤·l/t(c) < b • l/t(c) ¹l/t(c0) )jl/t(c) - l/t(c0) j¸ (Etmax)-2

More Related