Méthodes et Algorithmes Graphiques

Embed Size (px)

DESCRIPTION

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. - PowerPoint PPT Presentation

Text of Méthodes et Algorithmes Graphiques

  • Mthodes et Algorithmes GraphiquesIan 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 franais sil vous plait.Chercheur en traitement dimage et vision par ordinateur lINRIA dans projet Ariana.Formation: en physique thorique, puis vision par ordinateur.

  • Quelques points avant de commencer.Nhsitez pas :Me questionner: cest la faon meilleure dapprendre.Demander que: Je parle plus fort.Je rpte ou explique quelque chose.Vous pouvez trouver ce fichier lURL precedent, sous Teaching/Advising puis Courses, partir de lundi.

  • ButDonner une structure mathmatique afin que vous puissiez: Comprendre la littrature.Utiliser ces mthodes pour: Systmatiser vos ides.Bien poser les problmes.Donner des algorithmes flexibles:Pour que vous compreniez les possibilits de ces techniques.Que vous pouvez adapter vos problmes.Que vous pouvez incorporer dans des solutions plus compltes.

  • MotivationBeaucoup des problmes en traitement dimage peuvent tre exprims ainsi:Trouver une structure linique avec telles ou telles proprits.Trouver une rgion ou son contour (i.e. bord) avec telles ou telles proprits.Exemples:Extraction de rseaux routiers. Extraction de zones urbaines.

  • Exemples

  • MotivationLes graphes image sont une reprsentation discrte de la gomtrie de limage. Les problmes prcdents se traduisent par des problmes sur des graphes dfinis partir de limage:Trouver un chemin (de poids minimum) dans un graphe.Trouver un cycle (de poids (ratio) minimum) dans un graphe.

  • Plan du coursGraphes et graphes imageFonctions sur les graphesProblmes graphiques et algorithmesChemins de poids minimumCycles diversCycle de poids rationnel minimumFonctions sur les graphes imageProblmes imageExemples

  • Graphes et graphes image

  • Graphes orients: intuitionOn peut imaginer un graphe orient en termes de sommets (cercles verts) et darcs (flches noires):On peut avoir des sommets isols (7). On peut avoir des boucles (g). On peut avoir plus dun arc entre deux sommets (h,i).1567243abcdfgehi

  • Graphes orientsUn graphe consiste de deux ensembles E (arcs) et V (sommets) et deux applications s (source) et b (but) de E V:

    On peut penser une seule application de E V V:

    s(e)eb(e)1a42b14c23d23e43f16g6h5

  • Types de graphesSi il y a plus dun arc entre deux sommets, on a un multigraphe (s b pas injective).Sinon (s b est injective), on peut identifier E avec un sous-ensemble de V V.Si il ny 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 symtriquePour chaque arc e, il y a un autre arc (e-1) entre les mmes sommets mais avec lorientation inverse.8 e 2 E. 9 ! e-1 2 E t.q. s b(e-1) = b s(e).

  • ConnectivitUn graphe nest pas connect si les sommets se divisent en deux parties, sans un arc entre les deux. On parle de graphes connects dans le cours.

  • Sous-graphesUn sous-graphe H = (U, D) dun 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 spciaux: chemins et cyclesUn chemin est une squence darcs:{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 quun graphe contient un chemin ou un cycle si il a un sous-graphe qui est un chemin ou un cycle.

  • SimplicitGraphe acyclique (GA): Une graphe qui ne contient pas un sous-graphe qui est un cycle. Chemin simple: Une chemin qui ne contient pas un sous-graphe qui est un cycle.Cycle simple: Un cycle qui ne contient pas un sous-graphe propre qui est un cycle.

  • Graphes imageV est lensemble des pixels.Deux graphes symtriques:Vert: G = (E, V).Rouge: G = (E, V).Il existe une bijection : E $ E.Rotation positive de p/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 slectionner?On dfinit 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 sur les graphes

  • Fonctions sommet et arcSommets: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 dfinir la drive dune fonction sommet, qui est un fonction arc:(df)(e) = f(b(e)) f(s(e)).

  • Fonctions spcialesOn peut dfinir des fonctionsPositives: f(u) > 0.Entires: f(u) 2 Z.Binaires: f(u) 2 {0,1}. (Sous-ensemble de U.)Soit g et h deux fonctions, h positive.On dfinit une fonction rationelle g/h(u) = g(u)/h(u).

  • Fonctions symtriquesRappel quun graphe symtrique a pour chaque arc e, un arc e-1.Pour les fonctions arc, on dfinit: l-1(e) = l(e-1). On dfinit les fonctions symtriques:l= l-1On dfinit les fonctions antisymtriques:l= -l-1

  • Fonctions sur ensemblesEtant donn une fonction sommet ou arc, on peut dfinir 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 ngatifsUne fonction arc l a un cycle ngatif si le graphe contient un cycle c t.q. l(c) < 0.Les cycles ngatifs jouent une rle important dans la suite du cours.

  • ExempleUne fonction f sur V.Une fonction g sur E.Dans ce cas, g = df.4.02.5-9.2-2.1-13.21.511.74.66.1-7.1

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

  • Problmes graphiques et algorithmes

  • ProblmesChemins de poids minimum.Cycle de poids minimum.Dtection de cycles ngatifs.Cycle de poids rationel minimum.

  • GnralitsOn 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 nest pas toujours utilis. On peut supposer que l et t sont entiers.

  • Problmes graphiques et algorithmes IChemins de poids minimum

  • Chemins de poids minimumProblme:Trouver le chemin qui a le poids minimum de l parmi les chemins qui passent entre un sommet s et un sommet t.Diffrents Cas:G contient un cycle ngatif.G ne contient aucun cycle ngatif.

  • Diffrents cas

    Cycle ngatifPas de cycle ngatifCheminl 0 : impossible.GA.Par dfaut, on trouve un chemin simple.l 0. l gnral. Mal dfinil gnral.Chemin simplel gnral. NP-completGA.l 0.l 0 : impossible.l gnral.

  • Notations, Init et RelaxA 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 prdcesseur 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 DijkstraDijkstra(G, s, l)Init(d, s)Q = VTant 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)).

  • l gnral: algorithme de Bellman/FordBellmanFord(G, s, l)Init(d, s)Pour n 2 {1,,(jVj 1)}Q = VTant que Q ;u = arb(Q); Q = Qn{u}Pour e 2 s-1(u)Relax(e, d, r, l)Complexit: O(VE).

  • CommentaireNoter que si lon veut calculer la distance entre un sommet et un sous-ensemble des autres sommets lalgorithme de Dijkstra peut tre arrt au point o les sommets sont selectionns.

  • Problmes graphiques et algorithmes IICycles divers

  • Cycle de poids minimum

    Cycle ngatifPas de cycle ngatifCyclel 0 : impossible.l 0. Trivial. Par dfaut, on trouve un cycle simple, mais trivial.l gnral. Mal dfinil gnral.ld = l - ddCycle simplel gnral. NP-completl 0.Trivial.l 0 : impossible.l gnral.ld = l - dd

  • Dtection de cycles: algorithmeCycle(G)Pour v 2 VSi M(v) = 0DFS (v)DFS(v) depth-first search recherche par profondeur dabordM(v) = 1;Pour u 2 b(s-1(v))Si M(u) = 0r(u) = vDFS(u)Si M(u) = 1r(u) = vRend u (cycle dtect)M(v) = 2

  • Dtection de cycles ngatifs: algorithmeCycNeg(G, l)s = arb(V)d = BellmanFord(G, s) Pour e 2 Eu = s(e)v = b(e)Si d(v) > d(u) + l(e) (ou dd(e) > l(e))Il y a une cycle ngatif.

  • Dtection de cycles zro.d(v) d(u) + l(hu, vi).Donc ld(hu, vi) = l(hu, vi) - dd(hu, vi) est positive.Pour un cycle c: ld(c) = l(c) parce que df(c) = 0 pour toutes fonctions sommet f et tous cycles.Donc, l(c) = 0 ) ld(e) = 0 8 e 2 c.

  • Cycles zro: algorithmeZeroCyc(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)

  • Problmes graphiques et algorithmes IIICycle de poids rationnel minimum

  • Cycle de poids rationnel minimumProblme: Trouver arg minc 2 C l/t(c).Ce problme ne presente pas les difficults rencontres avec le cycle de poids minimum.Dans les applications, il y a aussi des proprits thoriques intressantes.

  • Cycle de poids rationnel minimum

    Cycle ngatifPas de cycle ngatifCyclel 0 : impossible.l 0. G, l sym: trivial. Par dfaut, on trouve un cycle simple.

    l gnral Par dfaut, on trouve un cycle simple.l gnral.ld = l - ddCycle simplel gnrall 0.G, l sym: trivial.l 0 : impossible.l gnral.ld = l - dd

  • CommentairesPas de restriction sur l: l peut avoir des cycles ngatifs.On trouve toujours un cycle simple.Pour les graphes symtriques, l antisymtrique, t symtrique: arg minc 2 C l/t(c) = arg maxc 2 C jl/t(c)j.Donc lalgorithme maximise jl/tj.

  • LemmesOn dfinit une fonction arc paramtrise lb = l - bt.Lemme: Soit b t.q. minc 2 C lb(c) = 0