760 likes | 909 Views
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.
E N D
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. • Chercheur en traitement d’image et vision par ordinateur à l’INRIA dans projet Ariana. • Formation: en physique théorique, puis vision par ordinateur.
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.
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.
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.
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.
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
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
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:
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.
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).
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.
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).
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.
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.
= 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.
= Exemples Image
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?
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)).
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).
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
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.
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.
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
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?
Problèmes • Chemins de poids minimum. • Cycle de poids minimum. • Détection de cycles négatifs. • Cycle de poids rationel minimum.
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.
Problèmes graphiques et algorithmes I Chemins de poids minimum
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.
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)
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)).
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).
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.
Problèmes graphiques et algorithmes II Cyclesdivers
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
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.
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.
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)
Problèmes graphiques et algorithmes III Cycle de poids rationnelminimum
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.
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.
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).
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