Bildsegmentierung mittels Graph-Cuts. Erik Soltow

Größe: px
Ab Seite anzeigen:

Download "Bildsegmentierung mittels Graph-Cuts. Erik Soltow"

Transkript

1 Bachelorarbeit Bildsegmentierung mittels Graph-Cuts Erik Soltow Thema ausgegeben von Prof. Dr. Bernd Fischer Institute of Mathematics and Image Computing Arbeit betreut von Dipl.-Math. Jan Rühaak Institute of Mathematics and Image Computing Abgabe:

2 Erklärung Ich versichere, die vorliegende Arbeit selbstständig und nur unter Benutzung der angegebenen Hilfsmittel angefertigt zu haben. Lübeck, den

3 Inhaltsverzeichnis 1 Einleitung Überblick über die Arbeit Grundlagen der Graph-Cut-Methode Bilder und Segmentierungen Segmentierungsenergie Schnitte in Graphen Energie des minimalen Schnittes Nebenbedingungen Max-Flow-Min-Cut-Algorithmen Flüsse in Netzwerken Algorithmus nach Ford und Fulkerson Algorithmus von Boykov und Kolmogorov Anpassung der Segmentierung Varianten der Energiefunktion Kantenbasierter Term B(A) Einfache Gewichtsfunktion Auswirkungen von Rauschen Gerichtete Kanten Verschiedene Nachbarschaften Gebietsbasierter Term R(A) Validierung der Graph-Cut-Methode 38 6 Zusammenfassung und Ausblick 44 3

4 1 Einleitung Für viele Anwendungen, insbesondere im medizinischen Bereich, ist es nötig, dass bestimmte Objekte aus Bildern extrahiert werden können. Hierzu werden Pixel (oder Voxel) nach bestimmten Kriterien zusammengefasst und das Bild auf diese Weise in mehrere Segmente unterteilt. Im einfachsten Fall hilft die Bildsegmentierung dem Betrachter sich auf die für seine Arbeit wesentlichen Bestandteile zu konzentrieren, indem unwichtige Bildbereiche ausgeblendet werden. Besonders dreidimensionale Aufnahmen aus Computer- oder Magnetresonanztomographen enthalten eine Fülle von Informationen, die sich nur schwer überblicken lässt. Aus den Segmenten lassen sich zudem Eigenschaften wie Form und Volumen von Objekten im Bild bestimmen. Segmentierung ist somit ein wichtiger Bestandteil des maschinellen Sehens und essentiell für die computergestützte Diagnostik. Der Vorteil liegt hierbei bei einer relativ gut vergleichbaren, reproduzierbaren und vor allem schnellen Befundung. So kann zum Beispiel der Malignitätsgrad von Tumoren aufgrund ihrer Größe automatisch bestimmt werden oder es lässt sich eine Veränderung im Gewebe über die Zeit dokumentieren, wie in [23] beschrieben wird. Auch andere krankhafte Entwicklungen von Organen lassen sich leichter bestimmen, indem effektiv mit einem gesunden Organ verglichen werden kann, wenn die interessanten Objekte zuvor segmentiert wurden. In [8] wurde durch eine Volumenbestimmung bestimmter Hirnregionen nach entsprechender Segmentierung Rückschlüsse auf mögliche Erkrankungen gezogen. Aber auch bei einer effektiven Operationsplanung ist das Wissen über die genaue Lage von Organen und Gefäßen absolut notwendig, wie [19] zeigt. Voraussetzung ist natürlich eine vorherige Bestimmung der Objekte in dem vorliegenden Bildmaterial. Es kann somit schon vor dem ersten invasiven Eingriff das optimale Vorgehen geplant werden, was Operationszeiten verkürzt und Risiken für Patienten minimiert. Es wurden bereits diverse verschiedene Methoden entwickelt, um ein Bild zu segmentieren. Hierzu gehören einfache Algorithmen, wie das Region Growing (siehe [1]), bei der ausgehend von Startpunkten angrenzende Bildpunkte zu einem Segment hinzugefügt werden, wenn sie ähnlich genug sind oder Verfahren, die Kanten in Bildern finden, wie zum Beispiel Intelligent Scissors (siehe [20]). Aber auch Verfahren, die das Objekt explizit mittels Snakes (siehe [16]) oder implizit über Level Sets (siehe [21]) darstellen und damit die Einbindung von verschiedenen geometrischen Eigenschaften ermöglichen, sind möglich. 4

5 1.1 Überblick über die Arbeit In dieser Arbeit soll die Graph-Cut-Methode untersucht werden, ein spezielles Verfahren zur Bildsegmentierung, das auf Schnitten in einem Graphen beruht. In [15] zeigten Greig et al zum ersten Mal, dass die Bestimmung von Schnitten bestimmte Energiefunktionen in der Bildverarbeitung minimieren kann. Sie verwendeten das Verfahren unter anderem zur Bearbeitung von Binärbildern, der Nutzen schien allerdings limitiert und die Methode wurde zunächst nicht weiter verfolgt. Das hier vorgestellte Verfahren wurde von Boykov und Jolly zum ersten mal 2000 in [3] vorgestellt und seitdem stetig weiterentwickelt. Die Entwickler versprechen eine Methode, die nicht nur ein global optimales Ergebnis erzielt und auf Probleme beliebiger Dimension angewendet werden kann, sondern zudem auch schnell und robust läuft und die Verwendung verschiedenster Vorinformation ermöglicht. Der Algorithmus wurde in Matlab implementiert, wobei laufzeitintensive Teile als C- Code ausgelagert wurden, und an verschiedenen einfachen Bildern sowie Bildern aus dem medizinischen Bereich getestet. Diese Arbeit beschränkt sich auf zweidimensionale Bilder, da die Verwendung höherdimensionaler Bilder keine neuen Erkenntnisse mit sich bringt. In Kapitel 2 werden zunächst die theoretischen Grundlagen der Methode dargestellt. An einem einfachen Beispiel soll aufgezeigt werden, wie die Segmentierung erfolgt. Hierbei wird auf die zwei wichtigen Schritte der Methode eingegangen: Aus dem zu segmentierenden Bild wird zunächst ein Graph generiert, anschließend wird dieser, den Segmenten entsprechend, in Teilgraphen zerlegt. Hierzu wird, wie der Name der Methode bereits impliziert, ein Schnitt bestimmt. Die Zerlegung in Teilgraphen erfolgt dabei selbstverständlich nicht wahllos. Jedem Schnitt wird ein bestimmter Wert zugewiesen. Das Ziel ist einen Schnitt zu finden, der einen möglichst geringen Wert hat. Im dritten Kapitel wird deshalb auf zwei verschiedene Algorithmen eingegangen, die diesen Schnitt über einen maximalen Fluss ermitteln können. Kapitel 4 beschäftigt sich damit, wie die Struktur des Graphen den minimalen Schnitt und damit die Segmentierung beeinflusst. Es werden verschiedene Beispiele vorgestellt und aufgezeigt, wie sich das Ergebnis der Segmentierung den Wünschen des Benutzers anpassen lässt. Idealerweise erfolgt eine Bildsegmentierung unabhängig vom Benutzer. Solche vollautomatischen Algorithmen eignen sich jedoch meist nur für sehr konkrete Fragestellungen, da die Ergebnisse schon bei kleinen Unregelmäßigkeiten im Bild unbrauchbar werden können. Ist eine sehr genaue Segmentierung notwendig, wird diese auch heute oft noch manuell durchgeführt. Dieses Vorgehen ist nicht nur sehr zeitaufwendig, sondern hängt auch in hohem Maße vom Benutzer ab. Einen Kompromiss stellen halbautomatische Methoden dar, bei denen der Benutzer zunächst einige Bildpunkte den Segmenten zuweist. Ausgehend hiervon wird die Segmentierung dann automatisch vervollständigt. Bei der Graph-Cut-Methode lässt sich eine solche Vorsegmentierung integrieren und tatsächlich wird das Verfahren überwie- 5

6 gend zur halbautomatischen Segmentierung verwendet. Prinzipiell ist so jedes Ergebnis möglich, abhängig vom Grad der Vorsegmentierung durch den Nutzer. Wünschenswert ist allerdings ein möglichst gutes Ergebnis bei möglichst wenig Benutzeraufwand, um eine schnelle und auch in gewissem Maße reproduzierbare Segmentierung zu erhalten. Im letzten Abschnitt soll deshalb untersucht werden, wie stark das Ergebnis von der Benutzerinteraktion abhängt. 6

7 2 Grundlagen der Graph-Cut-Methode In diesem Kapitel werden die theoretischen Grundlagen der Graph-Cut-Methode dargestellt. Nach einigen grundlegenden Definitionen soll aufgezeigt werden, wie die Segmentierung abläuft und wie sich eine Vorsegmentierung integrieren lässt. Im Mittelpunkt steht der Beweis, dass die Segmentierung mit der Graph-Cut-Methode ein global optimales Ergebnis liefert. Die Graph-Cut-Methode, wie sie hier vorgestellt wird, wurde von Boykov und Funka-Lea in [2] beschrieben. 2.1 Bilder und Segmentierungen In dieser Arbeit werden Bilder als eine diskrete Menge P von Bildpunkten betrachtet, denen ein bestimmter Farbwert zugewiesen wird und die rasterförmig im d-dimensionalen angeordnet sind. Das Raster hat dabei die Abmessung m = (m 1,..., m d ) mit m 1... m d = P. Bilder werden meist in Matrixform dargestellt: Definition 1 Sei W eine Menge von Farbwerten. Die Matrix I W (m 1... m d ) heißt dann Matrixdarstellung für ein Bild. Dabei werden die Bildpunkte Pixel (picture element) genannt, falls das Raster zweidimensional ist. Ist das Bild dreidimensional angeordnet, werden die Bildpunkte Voxel (volume element) genannt. Im Fokus der Arbeit stehen zweidimensionale 8-Bit- Graustufenbilder. Somit gilt im Weiteren d = 2 und W = {0, 1,..., 255}, wobei der Wert 0 einen schwarzen und der Wert 255 einen weißen Pixel codiert. Im Folgenden ist ein Bildpunkt deshalb stets ein Pixel. Ein Beispiel für ein solches Bild I ist I = (2.1) Abbildung 2.1(a) zeigt eine normale Pixeldarstellung des Bildes I. An diesem Beispiel soll im Verlauf des Kapitels die Graph-Cut-Methode erklärt werden. Ziel einer Segmentierung ist nun die Aufteilung der Bildpunkte in die verschiedenen Segmente abhängig von ihren Eigenschaften, wie zum Beispiel der Intensität oder der Lage im Bild. Dazu werden ähnliche Punkte dem selben Segment zugewiesen. 7

8 Definition 2 Sei S die Menge der Segmente und A = (A 1, A 2,..., A P ) S P ein Vektor. A wird dann Segmentierung der Punkte P genannt. Für S = 2 heißt A binäre Segmentierung. Die Komponenten A p zeigen also die Zugehörigkeit der einzelnen Bildpunkte zu den verschiedenen Segmenten an. Die Anordnung der Bildpunkte folgt der lexikographischen Ordnung. Diese Arbeit beschränkt sich auf binäre Segmentierungen, in der das Bild in Objekt und Hintergrund unterteilt wird. Im Folgenden gilt deshalb S = { obj, hin }. Eine Segmentierung wird zumeist ebenfalls als Bild aus Pixeln dargestellt, indem jedem Segment eine bestimmte Farbe zugewiesen wird. In dieser Arbeit werden Pixel, die dem Objekt zugeordnet werden blau dargestellt und Hintergrundpixel rot (siehe Abbildung 2.1(b)). (a) Beispielbild (b) Beispielsegmentierung Abbildung 2.1: Einfaches Beispiel für ein 3x3 Graustufenbild und eine mögliche Segmentierung 2.2 Segmentierungsenergie Um nun zu bestimmen, wie das Bild möglichst optimal in Objekt und Hintergrund aufgeteilt werden kann, müssen verschiedene Ergebnisse vergleichbar sein. Eine Möglichkeit besteht darin, jeder Segmentierung A eine bestimmte Energie E = E(A) zuzuweisen, abhängig davon in welchem Segment die einzelnen Bildpunkte liegen. Es wird angenommen, dass die Segmentierung mit minimaler Energie ein optimales Ergebnis liefert. Eine entscheidende Rolle spielt hierbei auch die Lage der Bildpunkte zueinander. Liegen zwei Punkte, die sich sehr ähnlich sind, im Bild nebeneinander, so sollte die Wahrscheinlichkeit hoch sein, dass diese zum gleichen Segment gehören. Um dies in der Segmentierung zu berücksichtigen, wird eine Menge N von Paaren {p, q} mit p, q P definiert, die eine Nachbarschaft der Pixel beschreibt. Im Zweidimensionalen enthält N normalerweise entweder direkt benachbarte Pixel (4er-Nachbarschaft), oder ein Bildpunkt soll mit jedem umliegenden Bildpunkt in Verbindung stehen (8er- Nachbarschaft). Es lässt sich nun die Segmentierungsenergie definieren, die im Mittelpunkt der Graph- Cut-Methode steht. 8

9 E(A) = B(A) + λr(a) (2.2) mit B(A) = δ Ap Aq B p,q (2.3) {p,q} N R(A) = p P R p (A p ) (2.4) und 1 falls A p A q δ Ap Aq = 0 falls A p = A q. Damit die Segmentierung mit minimaler Energie das vom Benutzer gewünschte Ergebnis liefert, enthält diese Energie zwei wichtige Bestandteile: Den kantenbasierten Term B(A) und den gebietsbasierten Term R(A). Wie bereits erwähnt, sollten benachbarte Bildpunkte, die sich sehr ähnlich sind, auch mit hoher Wahrscheinlichkeit den gleichen Segmenten zugewiesen werden. Auf die betrachtete Energie wirkt sich deshalb im Term B(A) eine Aufteilung von zwei benachbarten Pixeln in verschiedene Segmente aus. Normalerweise wird nun der Koeffizient B p,q 0 so definiert, dass er umso größer ist, je ähnlicher sich die zwei Punkte sind. Auf diese Weise werden Kanten und damit Bereiche im Bild, wo sich die benachbarten Pixel nicht sehr ähnlich sind, als Trennung zwischen zwei Segmenten bevorzugt. Der Term R(A) beschreibt hingegen eine Strafe für die Zuordnung der Bildpunkte zu den Segmenten an sich. Es lassen sich somit verschiedene Modelle und Vorinformationen integrieren, da jeder Punkt eine individuelle Neigung zu den einzelnen Segmenten besitzen kann. Allgemein gilt, dass der gebietsbasierte Term die Segmentierung global bestimmt, während der kantenbasierte Term für eine lokale Glättung sorgt. Der Faktor λ R + bestimmt dabei das Verhältnis der beiden Energien. Verschiedene Varianten zur Implementierung der Energiefunktion und die Auswirkung auf die Segmentierung werden in Kapitel 4 betrachtet. 2.3 Schnitte in Graphen Für ein Bild gibt es S P Segmentierungen. Bereits die einfache binäre Segmentierung von einem zweidimensionalen 10x10 Pixel großen Bild bietet somit verschiedene Möglichkeiten. Es ist also ein Algorithmus gesucht, der diese Aufgabe schnell und sicher lösen kann. Die Graph-Cut-Methode bietet diese Möglichkeit. Wie der Name schon impliziert, wird dazu ein Schnitt in einem Graphen berechnet. Im 9

10 Folgenden soll deshalb beschrieben werden, wie das zu segmentierende Bild als Graph dargestellt werden kann und wie aus diesem Graphen wiederum eine Segmentierung bestimmt werden kann. Zunächst ist allerdings etwas Terminologie notwendig. Definition 3 (Grundlagen Graphen) 1. Sei V eine endliche Menge von Knoten und E eine Menge von Kanten, die jeweils zwei Knoten verbinden, das bedeutet E {e e V #e = 2}. Dann heißt G = (V, E) Graph. 2. Wird jeder Kante e E ein nichtnegativer Wert w = w e zugewiesen, heißt G gewichteter Graph. 3. G(V ) = (V, E ) heißt (induzierter) Teilgraph von G, falls V V und E E, wobei E alle Kanten aus E zwischen Knoten aus V enthält. 4. Eine Knotenfolge k = (p 1, p 2,..., p t ) mit {p i, p i+1 } E für i = 1, 2,..., t 1 heißt Weg. 5. G ist zusammenhängend, wenn je zwei Knoten durch einen Weg verbunden sind. Ein Bild lässt sich nun einfach durch einen Graphen darstellen. Die Bildpunkte stellen die Knoten des Graphen dar, während die Kanten aus der Nachbarschaft N generiert werden. Diese Verbindungen werden deshalb auch als n-links (neighbour-links = Nachbarschaftskanten) bezeichnet. Für den Graphen gilt also G = (V, E) = (P, N ). Abbildung 2.2 zeigt diesen Graphen für das Eingangsbeispiel. (a) 4er-Nachbarschaft (b) 8er-Nachbarschaft Abbildung 2.2: Graph für das Beispiel (2.1) bei der Verwendung von verschiedenen Nachbarschaften 10

11 Mit diesem (einfachen) Graphen ist eine optimale Segmentierung nach (2.2) allerdings noch nicht möglich. Deshalb werden dem Graphen noch jeweils ein sogenannter Endknoten für jedes gewünschte Segment hinzugefügt und jeder Knoten p P wird mit diesen Endknoten verbunden. Diese Kanten werden t-links (terminal-links = Endpunktkanten) genannt. Bei einer einfachen binären Segmentierung werden also noch jeweils ein Knoten S für das Objekt und ein Knoten T für den Hintergrund hinzugefügt. Somit erweitert sich der Graph zu G = (V, E) = P {S, T }, N {{p, S}, {p, T }}. (2.5) Abbildung 2.3 zeigt den erweiterten Graphen für das Eingangsbeispiel. p P Abbildung 2.3: Erweiterter Graph für das Beispiel (2.1). Aus Gründen der Übersichtlichkeit wird der Graph von nun an nur noch in 4er-Nachbarschaft dargestellt. Objektkanten sind blau und Kanten zum Hintergrund rot eingefärbt. Damit aus dem Graphen eine Segmentierung bestimmt werden kann, wird dieser nun geeignet unterteilt. Definition 4 Sei G = (V, E) ein Graph wie in (2.5) und C E eine Menge von Kanten. Gelten für den Graphen G = (V, E \ C) die Eigenschaften: die Endknoten S und T sind nicht durch einen Weg verbunden und es gibt zwei Mengen V 1, V 2 mit V 1 V 2 = V und die Teilgraphen G (V 1 ) und G (V 2 ) sind zusammenhängend, so heißt C (zulässiger) Schnitt. Die Menge aller Schnitte wird mit F bezeichnet. Ein Schnitt teilt einen Graphen also in genau zwei zusammenhängende Teilgraphen auf, von denen jeder genau einen der Endknoten enthält. Im Weiteren sei S V 1 und 11

12 T V 1. Die Abbildung 2.4(b) zeigt einen Schnitt für das Beispiel. Es fällt auf, dass ein solcher Schnitt immer bestimmte Kanten beinhaltet. Für alle p P enthält C genau einer der beiden t-links {p, S} und {p, T }. Die Kante {p, q} ist in C genau dann, wenn p und q im Graphen G mit verschiedenen Endknoten verbunden sind. Jedem solchen Schnitt kann mit Hilfe der ersten Eigenschaft nun eineindeutig eine Segmentierung A(C) zugewiesen werden. Es gilt obj falls {p, T } C A p (C) = hin falls {p, S} C. Alternativ kann die Segmentierung aus den Teilgraphen bestimmt werden. obj falls p V 1 A p (C) = hin falls p V 2. (2.6) (2.7) Durch diese Definition wird deutlich, dass in der Graph-Cut-Methode das Objekt nur implizit über die t-links im Schnitt dargestellt wird. Dadurch kann das Objekt im Bild problemlos aus beliebig vielen Teilen bestehen, die nicht zwangsläufig sichtbar miteinander in Kontakt stehen müssen. (a) Beispielbild (b) Schnitt (c) Teilgraphen (d) Segmentierung Abbildung 2.4: Zusammenhang zwischen Schnitt und Segmentierung. Die Kanten des Schnittes sind in grün dargestellt. 12

13 In Abbildung 2.4 ist das Segmentierungsergebnis des zuvor bestimmten Schnittes zu sehen. Es fällt jedoch auf, dass die Segmentierung nicht optimal für das Beispielbild zu sein scheint. Der Pixel mit der Nummer 3 sollte zu dem gleichen Segment wie die anderen dunkleren Pixel gehören. Um zu entscheiden, welcher Schnitt nun ein besseres Ergebnis liefert, wird jedem möglichen Schnitt ein Wert zugewiesen. C = e C w e 0 (2.8) Die Gewichte des Graphen werden in Hinblick auf die Segmentierungsenergie (2.2) folgendermaßen definiert. Kante e Gewicht w {p, q} B p,q {p, q} N {p, S} λr p ( hin ) p P {p, T } λr p ( obj ) p P Tabelle 2.1: Kantengewichte für den verwendeten Graphen G aus (2.3) Auf diese Weise lässt sich ein minimaler Schnitt C mit minimalen Wert C bestimmen, da die Anzahl möglicher Schnitte in einem endlichen Graphen ebenfalls endlich ist. In Abbildung 2.5(b) wurden dem Beispiel einfache Gewichte hinzugefügt. Bei der Zuweisung der Pixel zu den Segmenten sollen keine besonderen Vorinformationen verwendet werden. Um zu gewährleisten, dass das Bild trotzdem in zwei Segmente unterteilt wird, erhält die Kante vom ersten Knoten zum Objektknoten und vom letzten Knoten zum Hintergrundknoten ein unendliches Gewicht. So wird sichergestellt, dass diese Kanten nicht im minimalen Schnitt liegen und jedem Segment mindestens ein Pixel zugewiesen wird. Alle übrigen t-links werden nicht weiter gewichtet und deshalb nicht dargestellt. N-links zwischen unterschiedlichen Pixeln erhalten das Gewicht 1, während die Kanten zwischen ähnlichen Pixeln den Wert 5 bekommen. Somit enthält ein minimaler Schnitt bevorzugt die Kanten zwischen Pixeln mit großem Intensitätsunterschied. Tatsächlich hat der zuvor verwendete Schnitt somit einen Wert von 8, während der Schnitt aus Abbildung 2.5(c), der das gewünschte Ergebnis liefert, den Wert 4 hat und damit ein besseres Ergebnis liefern sollte. Für die gewählten Kantengewichte ist dieser Schnitt sogar minimal. Der prinzipielle Verlauf der Segmentierung für dieses Beispiel ist in der Abbildung 2.5 skizziert. 13

14 (a) Beispielbild (b) gewichteter Graph (c) minimaler Schnitt (d) Segmentierung Abbildung 2.5: Verlauf der Segmentierung für das Beispiel (2.1). Aus dem Bild (a) wird zunächst ein gewichteter Graph (b) entsprechend der Grundlagen für die Segmentierung generiert. In diesem Graphen wird ein minimaler Schnitt (c) bestimmt, der eine Segmentierung (d) impliziert. 2.4 Energie des minimalen Schnittes Der minimale Schnitt stellt eine optimale Lösung bei der Verwendung von Graphen dar, es bleibt jedoch zu zeigen, dass diese Lösung auch im Sinne der Segmentierungsenergie (2.2) optimal ist. Satz 1 Sei G der Graph aus (2.3) mit den oben definierten Kantengewichten aus Tabelle 2.1 und C ein minimaler Schnitt in diesem Graphen. Dann minimiert die Segmentierung A = A(C ) die Energie E(A) aus (2.2). Beweis: Für alle Schnitte C F gilt mit den definierten Eigenschaften C = w e = w {p,q} + w {p,s} + w {p,t }. e C {p,q} C N Mit den definierten Gewichten gilt also C = B p,q + {p,q} C N = {p,q} N = E(A(C)) {p,s} C {p,s} C λr p ( hin ) + δ Ap A q B p,q + λ p P R p (A p ) {p,t } C {p,t } C λr p ( obj ) 14

15 und damit min C = C F C = E(A ) = min E(A). A Damit wurde gezeigt, dass sich eine Segmentierung mit minimaler Energie finden lässt, wenn man nach einem minimalen Schnitt in einem Graphen sucht, der die Endpunkte trennt. Ein Vorteil dieser Methode besteht in der einfachen Übertragung auf höhere Dimensionen. Bei der Verwendung höherdimensionaler Bilder müssen lediglich die Nachbarschaftskanten in N angepasst werden. So verwendet man bei dreidimensionalen Bildern häufig 8er- oder 26er-Nachbarschaften. Das hier beschriebene Vorgehen zur Findung einer bestmöglichen Segmentierung wird davon nicht beeinflusst. Auch eine Beschränkung auf zwei Endknoten ist nicht nötig. Um ein Bild in mehr Segmente einzuteilen sind lediglich weitere Endknoten nötig. Der Schnitt enthält somit mehr t-links und der obige Beweis kann analog durchgeführt werden. 2.5 Nebenbedingungen Bereits bei der Segmentierung des Beispiels in Abbildung 2.5 wurde im Prinzip je ein Pixel für Objekt und Hintergrund a priori festgelegt, damit der minimale Schnitt das gewünschte Segmentierungsergebnis liefert. Es wurden somit Nebenbedingungen festgelegt, die bei der richtigen Segmentierung helfen sollen. Im Allgemeinen werden hierzu zwei disjunkte Mengen O und H von Bildpunkten festgelegt, sogenannte Saatpunkte, die eine Vorsegmentierung des Bildes darstellen. Abhängig von der Anwendung ist eine automatische Bestimmung der Saatpunkte möglich, vielfach ist dies jedoch die Aufgabe des Benutzers und macht den halbautomatischen Charakter der Methode aus. Für die Segmentierung sollen somit die Nebenbedingungen p O : p H : A p = obj, A p = hin (2.9) gelten. Im vorherigen Beispiel wurden die Nebenbedingungen integriert, indem die Kantengewichte zu den entsprechenden Endknoten auf unendlich gesetzt wurden. Ein unendlicher Wert kann jedoch bei einer automatischen Bestimmung des minimalen Schnittes, abhängig von der verwendeten Programmiersprache, nicht möglich sein. Es genügt jedoch die Kantengewichte wie folgt anzupassen: 15

16 Kante e Gewicht w Bedingung {p, q} B p,q {p, q} N λr p ( hin ) {p, S} 0 p O K λr p ( obj ) p P \(O H) p H {p, T } K p O 0 p H p P \(O H) Tabelle 2.2: Kantengewichte für den Graphen G bei der Verwendung der Nebenbedingungen (2.9) mit K = 1 + max p P q:{p,q} N Das bedeutet, dass das Gewicht der Kante der vorsegmentierten Punkte zu ihrem jeweiligen Endpunkt größer ist als die Summe aller angrenzenden n-links. Es gilt somit Lemma 1 Seien O und H zwei disjunkte Teilmengen der Bildpunkte P, sowie C der minimale Schnitt im Graphen G mit den definierten Kantengewichten aus Tabelle 2.2. Dann erfüllt die Segmentierung A(C ) die Nebenbedingungen (2.9). Beweis: Sei p O. Angenommen in der Segmentierung A(C ) wird p dem falschen Segment zugewiesen. Das bedeutet A p = ( hin ) und {p, S} C. Sei C ein zweiter Schnitt bei dem p dem richtigen Segment zugewiesen wird, die entsprechende Segmentierung A(C ) ansonsten aber mit A(C ) übereinstimmt. Das heißt C enthält alle Kanten aus C bis auf {p, S}. Stattdessen liegt die entsprechende Kante {p, T }, sowie alle Nachbarschaftskanten von p im Schnitt. Dann gilt mit obigen Kantengewichten B p,q C = x + w {p,s} = x + K = x max p P x q:{p,q} N q:{p,q} N B p,q B p,q 16

17 und damit C > x + q:{p,q} N = x + q:{p,q} N B p,q B p,q + w {p,t } = C, }{{} =0 wobei x der Summe der übrigen Kanten entspricht. Damit ist C nicht minimal. Analog erfolgt der Beweis für p H. In die hier beschriebene Methode lässt sich also problemlos eine Vorsegmentierung einfügen, da der minimale Schnitt die Nebenbedingungen erfüllt. Somit ist prinzipiell jede gewünschte Segmentierung möglich, wenn ausreichend Saatpunkte gewählt wurden. 17

18 3 Max-Flow-Min-Cut-Algorithmen Im vorherigen Kapitel wurde der Verlauf beschrieben, wie sich mittels eines minimalen Schnittes in einem speziell dafür definierten Graphen eine optimale Segmentierung eines Bildes bestimmen lässt. Der Vorteil der Methode liegt darin, dass dieser Schnitt relativ schnell und einfach über kombinatorische Optimierungsverfahren bestimmt werden kann. In diesem Kapitel sollen zwei Algorithmen vorgestellt werden, die dazu in der Lage sind. 3.1 Flüsse in Netzwerken Bereits 1956 haben Ford und Fulkerson [10] mit dem Max-Flow-Min-Cut-Theorem gezeigt, dass eine Dualität zwischen einem minimalen Schnitt und einem maximalen Fluss in einem Graphen besteht. Ziel der vorgestellten Algorithmen ist deshalb die einfachere Maximierung des Flusses. Zur Definition eines Flusses ist jedoch eine spezielle Art von Graphen nötig. Definition 5 Ein Graph G = (V, E) heißt gerichtet, wenn statt der ungerichteten Kanten {p, q} gerichtete Kanten (p, q) und (q, p) mit Start- und Zielknoten verwendet werden. Es gilt (p, q) (q, p). Sei ein gerichteter und gewichteter Graph G = (V {S, T }, E) mit zwei ausgezeichneten Knoten S und T gegeben. Dann wird G Netzwerk, S Quelle und T Senke genannt. Der Graph, der im vorherigen Kapitel definiert wurde, weist bereits wichtige Eigenschaften eines solchen Netzwerkes auf. Er ist gewichtet und besitzt zwei ausgezeichnete Knoten. Der Objektknoten S kann als Quelle dienen, während der Hintergrundknoten T als Senke verwendet wird. Allerdings war der Graph bisher nicht gerichtet. Hierzu wird jede Kante {p, q} einfach in zwei gerichtete Kanten (p, q) und (q, p) mit w {p,q} = w (p,q) = w (q,p) aufgeteilt. Ein Schnitt in diesem Graphen enthält dann immer beide gegenläufigen Kanten, so dass in G(C) weder ein Weg vom Objektknoten S zum Hintergrundknoten T noch umgekehrt existiert. Abbildung 3.1 zeigt den gerichteten Graphen und den minimalen Schnitt für das Beispiel aus Kapitel 2. Es sollte angemerkt werden, dass auch bei einem gerichteten Graphen der minimale Schnitt die Segmentierungsenergie minimiert. Seien V 1 und V 2 die beiden disjunkten 18

19 (a) gerichteter Graph (b) minimaler Schnitt Abbildung 3.1: Minimale Schnitte in gerichteten Graphen. Die Kanten, die im Schnitt liegen, und die Gewichte, aus denen der Wert des Schnittes bestimmt wird, werden in grün dargestellt. Knotenmengen, die durch den Schnitt entstehen, wobei V 1 den Objektknoten und alle Knoten enthält, die später dem Objekt zugewiesen werden. Für den Wert eines Schnittes sind üblicherweise nur die Kanten von der Quelle zur Senke von Interesse. Somit gilt für einen Schnitt in einem Netzwerk C = w (p,q). (3.1) (p,q) C: p V 1 q V 2 Ein Schnitt im gerichteten Graphen hat demnach den gleichen Wert wie ein Schnitt im ungerichteten Graphen und die Überlegungen aus Kapitel zwei sind weiterhin gültig. In einem solchen Netzwerk lässt sich nun ein Fluss definieren. Definition 6 Ein Fluss f : E R + 0 ist eine Funktion, die jeder Kante aus dem Netzwerk G einen nichtnegativen Wert zuordnet, so dass p V : (p,q) E f((p, q)) = (q,p) E f((q, p)) (3.2) und. f((s, p)) = f((p, T )). (S,p) E (p,t ) E Mit einem Fluss kann somit modelliert werden, wie stark in einem Netzwerk die einzelnen Kanten belastet werden, wenn sich Material von einem Endknoten zum anderen bewegt. Hierbei generiert die Quelle dieses Material und in der Senke fließt es aus dem Netzwerk wieder ab. Gleichung (3.2) sichert dabei die Konsistenz des Flusses außerhalb der Endknoten. 19

20 In einem Netzwerk kann normalerweise keine Kante beliebige Mengen des fließenden Materials aufnehmen. Als obere Grenze wird die Kapazität einer Kante definiert, die dem Gewicht der Kante entspricht. Gleichzeitig ist es nicht sinnvoll einen negativen Fluss zu definieren. Fließt das Material zum Knoten hin, so wird dies in der gegenläufigen Kante vermerkt. Es gilt also 0 f((p, q)) w (p,q). (3.3) Entspricht der Fluss an einer Kante der möglichen Kapazität, so heißt diese Kante gesättigt. Abbildung 3.2: Fluss im Beispiel: Kanten, auf denen der Fluss größer als 0 ist, sind grün eingefärbt. Der Fluss wird jeweils als in Klammern hinter dem Gewicht vermerkt, wenn er größer als 0 ist. Wie bei der Definition des Schnittes, soll nun auch ein bestimmter Fluss ausgezeichnet werden. Dazu wird die Menge des Materials, das die Quelle verlässt, als Wert f des Flusses definiert. f = (S,p) E f((s, p)) (p,s) E f((p, S)) (3.4) Aufgrund der Kapazitätsbeschränkung kann der Wert eines Flusses in einem Graphen mit endlich vielen Knoten nicht beliebig hoch sein. Er ist sogar durch den minimalen Schnitt beschränkt und es gilt somit das folgende Lemma. Lemma 2 Sei G ein Netzwerk, sowie f ein Fluss und C ein minimaler Schnitt in diesem Netzwerk. Dann gilt f C. 20

21 Beweisskizze: Der komplette Beweis des Lemmas ist zwar leicht, aber sehr technisch und wird deshalb hier nicht in voller Länge ausgeführt. Ein vollständiger Beweis ist zum Beispiel in [12] nachzulesen. Sei ein Schnitt C F und ein Fluss f in einem Netzwerk gegeben. Dann soll f C den Fluss über den Schnitt beschreiben, das heißt f C = f((p, q)) f((q, p)) (p,q) C: (q,p) C: p V 1, q V 2 p V 1, q V 2 Mit dem Wert eines Schnittes 3.1 und der Kapazitätsbeschränkung 3.3 gilt offensichtlich f C f((p, q)) w (p,q) = C (p,q) C: (p,q) C: p V 1, q V 2 p V 1, q V 2 Zusätzlich kann gezeigt werden, dass ein Fluss über den Schnitt immer den gleichen Wert wie der Fluss im Graphen hat: f = f C Somit ist jeder Fluss im Netzwerk durch einen beliebigen Schnitt beschränkt, insbesondere auch durch den minimalen Schnitt C. 3.2 Algorithmus nach Ford und Fulkerson Wie lässt sich nun ein maximaler Fluss im Netzwerk bestimmen? Ford und Fulkerson verwendeten dafür bestimmte Wege in einem Graphen: Definition 7 Sei G = (V, E) ein Netzwerk und f ein Fluss. Dann heißt die Knoten- Folge k = (S, p 1,..., p n, T ) zunehmender (gerichteter) Weg, falls für alle Kanten (p, q) auf dem Weg f((p, q)) < w p,q gilt. Der Fluss ist entlang eines zunehmenden Weges also nicht gesättigt und kann auf diesem erhöht werden. Hierzu wird die maximal mögliche Flusszunahme k > 0 bestimmt. Für den neuen Fluss gilt somit f = f + k. Zur Bestimmung eines maximalen Flusses werden nun ausgehend vom einem Ausgangsfluss, wie zum Beispiel dem Nullfluss, so lange wie möglich zunehmende Wege gesucht und der Fluss entlang dieser erhöht. Für ganzzahlige Kantengewichte kann auf diese Weise der Fluss in endlich vielen Schritten bestimmt werden, da k > 0 in diesem Fall ebenfalls immer ganzzahlig ist und Lemma 2 eine obere Grenze angibt. Ebenso ist es möglich in einem Netzwerk mit rationalen Kantengewichten den maximalen Fluss mit diesem Verfahren zu bestimmen, da die Gewichte durch eine 21

22 geeignete Multiplikation auch ganzzahlig dargestellt werden können ohne den prinzipiellen Fluss zu verändern. Ford und Fulkerson zeigten allerdings in der späteren Veröffentlichung [11], dass bei ungünstiger Wahl der zunehmenden Wege und der Verwendung von irrationalen Kantengewichten dieses Verfahren nicht konvergieren muss. Bei der numerischen Bestimmung eines maximalen Flusses besteht diese Gefahr jedoch nicht. In Abbildung 3.3 ist das zuvor beschriebene Vorgehen für das Beispiel dargestellt. (a) 1. Schritt (b) 2. Schritt (c) 3. Schritt (d) 4. Schritt Abbildung 3.3: Bestimmung des maximalen Fluss in 4 Schritten Zur einfacheren Bestimmung eines zunehmenden Weges wird oft der sogenannte Restgraph R(f) verwendet. Dieser gibt an, wie stark der Fluss an den einzelnen Kanten des Netzwerkes noch erhöht werden kann. Der Restgraph besitzt also die gleichen Knoten und Kanten wie das Netzwerk, während die Gewichte aus der Differenz von Gewicht und Fluss im Netzwerk bestimmt werden. Ist eine Kante im Netzwerk bereits gesättigt, so hat diese Kante im Restgraphen also den Wert 0 und kann vernachlässigt werden. Der Fluss in eine Richtung erhöht dabei auch das Gewicht der Kante in die andere Richtung im Restgraphen, da eine Erhöhung des Flusses entlang der Kante und die Verminderung des Flusses in die entgegengesetzte Richtung äquivalent sind. Abbildung 3.4(c) zeigt den Restgraphen für den oben bestimmten maximalen Fluss. 22

23 Ist ein Fluss f maximal, so sind die Endknoten im Restgraphen nicht mehr durch einen gerichteten Weg von S nach T verbunden und f kann auf diese Weise einen Schnitt induzieren. Dieser besteht immer aus einer Teilmenge der gesättigten Kanten, die im Restgraphen das Gewicht 0 haben, sowie den entsprechenden gegenläufigen Kanten. Ähnlich wie bei der Definition des Schnittes sei deshalb V 1 die Menge aller Punkte p, für die es in R(f ) einen Weg von S nach p gibt. Für den induzierten Schnitt C f gilt somit: Insbesondere gilt {(p, q), (q, p)} C f (p V 1 q V \ V 1 ) {(p, S), (S, p)} C f p V 1 {(p, T ), (T, p)} C f p V \ V 1 Und damit A p (f obj falls p V 1 ) = hin falls p V \ V 1. (3.5) Der Zusammenhang zwischen maximalem Fluss, Restgraph und Segmentierung wird in Abbildung 3.4 noch einmal grafisch erläutert. Im Beispiel (siehe Abbildung 3.3) hat der maximale Fluss den Wert 4 und damit den gleichen Wert wie der minimale Schnitt, der in Kapitel 2 bestimmt wurde. Tatsächlich gilt Satz 2 (Max-Flow-Min-Cut-Theorem) Sei G ein Netzwerk, sowie f ein maximaler Fluss und C ein minimaler Schnitt in diesem Netzwerk. Dann gilt f = C. Beweis: Wie das zuvor beschriebene Verfahren zur Bestimmung eines maximalen Flusses f zeigt, wird durch jeden maximalen Fluss ein Schnitt C induziert. Dieser Schnitt enthält nur gesättigte Kanten und somit gilt Nach Lemma 2 gilt zusätzlich f = C C. f = C C. Aus den beiden Ungleichungen folgt die Behauptung. 23

24 (a) Bild (b) maximaler Fluss (c) Restgraph (d) Segmentierung Abbildung 3.4: Zusammenhang von maximalem Schnitt und Segmentierung. Ist eine Kante im Netzwerk gesättigt, so besitzt sie im Restgraphen das Gewicht 0 und wird nicht dargestellt. Das oben beschriebene Vorgehen zur Bestimmung des minimalen Schnittes ist bereits der Algorithmus nach Ford und Fulkerson: f((p, q)) = 0 (p, q) E while zunehmenden Weg k von S nach T do bestimme k f((p, q)) = f((p, q)) + k (p, q) k end while Bestimme V 1 A p = obj p V 1 A p = hin p V \ V 1 Ford und Fulkerson verwendeten in ihrem Algorithmus eine einfache Tiefensuche zur Bestimmung eines zunehmenden Weges. Es wurde später jedoch in [9] gezeigt, dass die Verwendung kürzerer Wege das Verfahren beschleunigt. Um sicherzustellen, dass jeweils der kürzeste zunehmende Pfad ermittelt wird, wird eine Breitensuche verwendet. In dieser Form wurde der Algorithmus für diese Arbeit auch implementiert. 24

25 3.3 Algorithmus von Boykov und Kolmogorov Es kann gezeigt werden (wie zum Beispiel in [12]), dass die Bestimmung des maximalen Flusses in polynomieller Zeit möglich ist. Für große Bilder ist der Algorithmus von Ford und Fulkerson jedoch trotzdem nicht schnell genug. Aus diesem Grund haben Yuri Boykov und Vladimir Kolmogorov einen Algorithmus entwickelt, der auf die spezielle Form der verwendeten Graphen zur Segmentierung zugeschnitten ist und auf dem Verfahren von Ford und Fulkerson beruht. Sie konnten eine deutliche Verbesserung der Laufzeit bei ihrem Algorithmus zeigen (siehe [4]). Im Prinzip unterscheiden sich die beiden Verfahren lediglich in der Methode zur Suche des nächsten zunehmenden Weges. Im ursprünglichen Verfahren von Ford und Fulkerson wird hierfür in jedem Schritt ein neuer Weg vom Objektknoten S zum Hintergrundknoten T gesucht, was den größten Teil der Rechenzeit beansprucht. Boykov und Kolmogorov verwenden zu diesem Zweck stattdessen Suchbäume, die in jedem Schritt wiederverwendet werden können. Dazu gliedert sich das Verfahren in drei Schritte: 1. Wachstum des Suchbaumes 2. Flusserhöhung 3. Wiederherstellung des Suchbaumes Zunächst wird ausgehend von den Endknoten ein Suchbaum aufgebaut, in dem für jeden Knoten vermerkt wird, von welchem Knoten aus er erreicht wurde. Boykov und Kolmogorov stellten fest, dass der Aufbau von zwei Suchbäumen, einem für jeden Endknoten, den Algorithmus noch einmal beschleunigt. Liegen nun zwei Knoten aus je einem der verschiedenen Bäume nebeneinander, so kann ein Weg k von S nach T bestimmt werden, indem die jeweiligen Bäume bis zu den entsprechenden Endknoten zurückverfolgt werden, wie in Abbildung 3.5 gezeigt wird. Abbildung 3.5: Suchbäume und Weg in einem ungerichteten Graphen Entlang dieses gefundenen Weges wird der Fluss analog zum Algorithmus von Ford und Fulkerson um den größtmöglichen Wert k erhöht. Entlang des Weges wird damit mindestens eine Kante gesättigt. Diese gesättigten Kanten können im Suchbaum natürlich nicht mehr verwendet werden, da entlang dieser Kanten der Fluss nicht erhöht 25

26 werden kann. Es ist daher möglich, dass die Suchbäume in Teilbäume zerfallen, deren neue Wurzelknoten (Knoten ohne Vorgänger bei der Suche) Weisen genannt werden (siehe Abbildung 3.6) Abbildung 3.6: Zerfallener Suchbaum nach der Flusserhöhung. Knoten 1 und 2 sind Weisen. Im letzten Schritt wird deshalb versucht die Teilbäume wieder mit dem noch bestehenden Suchbaum zu verbinden. Befindet sich in der Umgebung der Weisen ein Knoten, der noch mit dem Endknoten verbunden ist, so kann der Teilbaum wieder in den Suchbaum integriert werden, ansonsten wird dieser Baum aufgelöst. In Abbildung 3.7 konnte ein Teil des Suchbaumes auf diese Weise wiederhergestellt werden. Anstatt die Suche wieder von vorne zu beginnen und für jeden der 15 Knoten im Graphen einen Vorgänger zu bestimmen, ist es lediglich nötig die drei Knoten, die zum aufgelösten Baum gehörten wieder in einen der Suchbäume zu integrieren. Abbildung 3.7: Rekonstruierter Suchbaum Durch die Rekonstruierung des Suchbaumes kann allerdings nicht mehr garantiert werden, dass in jedem Schritt ein kürzester zunehmender Weg gefunden wird. Der Algorithmus besitzt deshalb im ungünstigsten Fall eine theoretisch schlechtere Laufzeit als das Verfahren von Ford und Fulkerson. Durch die besondere, stark vernetzte Struktur der Graphen aus Bildern, bietet die Rekonstruktion des Suchbaumes jedoch 26

27 die Möglichkeit den zunehmenden Weg schnell zu bestimmen, was zu einer deutlichen Verbesserung der Laufzeit der Graph-Cut-Methode führt, wie Tabelle 3.1 zeigt. Es sollte erwähnt werden, dass im Gegensatz zu dem Algorithmus von Ford und Fulkerson bei der Berechnung der von Boykov und Kolmogorov zu Forschungszwecken zur Verfügung gestellte Algorithmus zur Bestimmung eines maximalen Flusses verwendet wurde. Bildgröße Ford/Fulkerson Boykov/Kolmogorov 64x64 px s s 128x128 px s s 256x256 px s s 512x512 px s s 1024x1024 px s s Tabelle 3.1: Laufzeit der Segmentierung in Abhängigkeit von dem verwendeten Max- Flow-Min-Cut-Algorithmus. Für den Versuch wurde ein CT-Bild des Abdomens mittels linearer Interpolation in verschiedenen Auflösungen dargestellt und die Segmentierung bei gleichen Saatpunkten für beide Algorithmen bestimmt. Die Berechnungen erfolgten auf einem Intel R Core TM 2 mit 1,83 GHz und 2 GB Arbeitsspeicher. 3.4 Anpassung der Segmentierung Ein weiterer Vorteil der hier verwendeten Algorithmen liegt darin, dass eine Segmentierung des Bildes mit veränderten Saatpunkten schnell auf der Grundlage der alten Segmentierung berechnet werden kann, indem der bereits berechnete Fluss verwendet wird und der Max-Flow-Min-Cut-Algorithmus nicht wieder erneut mit einem Nullfluss beginnen muss. Um den Graphen den veränderten Saatpunkten anzupassen, müssen lediglich die Gewichte der t-links, also die Gewichte der Bildpunkte zu den Endknoten, entsprechend der Tabelle 2.9 angepasst werden. Das neue Gewicht einer Kante kann somit aber auch geringer sein als zuvor. In diesem Fall ist es möglich, dass der bereits bestehende Fluss dieser Kante seine Kapazität überschreitet. Eine solche Änderung würde demnach den zuvor bestimmten maximalen Fluss zerstören. Eine Erhöhung der Kantengewichte ist hingegen immer problemlos möglich. Ziel ist es deshalb die Kantengewichte so zu ändern, dass die Nebenbedingungen bei der Segmentierung korrekt mit einbezogen werden und gleichzeitig der bereits bestimmte Fluss weiterhin bestehen kann. Dazu wird den Gewichten jeweils der neue gewünschte Wert und das Gewicht der Kante zum anderen Endknoten hinzugefügt. Exemplarisch ist das Vorgehen im Folgenden für einen neuen Objektsaatpunkt p dargestellt. Hierbei müssen zwei Fälle betrachtet werden. p kann zuvor ein Hintergrundsaatpunkt gewesen sein, falls der Benutzer versehentlich einen Teil des Objektes fälsch- 27

28 licherweise als Hintergrund bestimmt hat. Viel wahrscheinlicher ist allerdings, dass p zuvor nicht als Saatpunkt verwendet wurde. Da die Kanten (p, q) und (q, p) den selben Wert haben, werden die beiden Kanten wieder als ungerichtete Kante {p, q} zusammengefasst. p vorher Hintergrundsaatpunkt: Kante altes Gewicht gewünschtes Gewicht hinzugefügter Wert {p, T } 0 K K + K K + K {p, S} K 0 0 K p vorher kein Saatpunkt: Kante altes gewünschtes hinzugefügter neues Gewicht Gewicht Gewicht Wert neues Gewicht {p, S} λr p ( hin ) K K + λr p ( obj ) K + λ(r p ( obj ) + R p ( hin )) {p, T } λr p ( obj ) 0 λr p ( hin ) λ(r p ( obj ) + R p ( hin )) Die neuen Kantengewichte unterscheiden sich somit lediglich in einem festen Wert von den gewünschten Gewichten und die geforderte Differenz ist gegeben. Ist dieser Wert 0, so hat die Veränderung der Saatpunkte keine Auswirkungen auf den maximalen Fluss. Bei einem Wert größer als 0 lässt sich ein einfacher zunehmender Weg k = (S, p, T ) finden. Nach einer entsprechenden Erhöhung des Flusses entlang des Weges sind die geforderten (Rest-)Gewichte gegeben. Somit erhöht sich zwar der maximale Fluss um den festen Wert, dies hat allerdings keine Auswirkungen auf die prinzipielle Bestimmung der Segmentierung. Durch die Veränderung der Saatpunkte und die Erhöhung der entsprechenden Kantengewichte ist der zuvor bestimmte Fluss im Normalfall nicht mehr maximal. Da die hier vorgestellten Max-Flow-Min-Cut-Algorithmen aber mit zunehmenden Wegen arbeiten, kann ein neuer maximaler Fluss auf der Basis des bereits gegebenen Flusses bestimmt werden. Es ist somit nicht nötig mit einem Nullfluss zu starten, wodurch die neue Segmentierung deutlich schneller bestimmt werden kann. 28

29 4 Varianten der Energiefunktion In den vorherigen Kapiteln wurden die theoretischen Aspekte der Graph-Cut-Methode vorgestellt und gezeigt, wie sich mit dem Verfahren eine Segmentierung bestimmen lässt, die optimal bezüglich der Segmentierungsenergie E(A) = B(A) + λr(a) ist. Durch die geeignete Wahl dieser Energie ist es möglich gute Segmentierungsergebnisse auch ohne eine übermäßig starke Vorsegmentierung durch den Benutzer zu erhalten. In diesem Kapitel sollen deshalb verschiedene Varianten der Energie und ihr Einfluss auf die Segmentierung von realen Bildern vorgestellt werden. 4.1 Kantenbasierter Term B(A) Einfache Gewichtsfunktion Es wird zunächst eine Segmentierung untersucht, die lediglich von der Ähnlichkeit der Pixel im Bild abhängt. Aus diesem Grund wird λ = 0 gesetzt. Nach der Tabelle 2.9 der Kantengewichte aus Kapitel 2.5 besitzen damit lediglich die t-links der Saatpunkte ein Gewicht größer als 0. Diese Kanten liegen jedoch nie im Schnitt, wodurch dieser nur noch von der Nachbarschaft der Pixel und den Gewichten dieser Kanten abhängen kann. Normalerweise wird ein zu segmentierendes Objekt immer durch eine mehr oder weniger stark ausgeprägte Kante im Bild vom Hintergrund getrennt. Dieser Bereich im Bild, wo sich der Grauwert der Pixel in eine bestimmte Richtung relativ stark ändert, sollte also günstig für den minimalen Schnitt sein. Das Gewicht der n-links beruht deshalb oft auf Grauwertgradienten. Dabei können sowohl Wert als auch Richtung des Gradienten eine Rolle spielen. Damit der minimale Schnitt bevorzugt Pixel trennt, die sich nicht ähneln, sollte die Strafe für die Aufteilung unterschiedlicher Pixel in verschiedene Segmente und damit das Gewicht der Kante zwischen diesen Pixel sehr klein sein. Umgekehrt soll das Gewicht größer werden, je ähnlicher sich die Bildpunkte sind. Für die Graph-Cut-Methode hat sich dazu bereits eine einfache Funktion bewährt, die auf der Grauwertdifferenz beruht: w {p,q} = B p,q = exp ( (I p I q ) 2) 1 dist(p, q) (4.1) 29

30 Abbildung 4.1: Segmentierung Viereck Abbildung 4.2: Segmentierung Kaniza Je weiter entfernt die Bildpunkte sind, desto weniger stark soll sich die Entscheidung zur Trennung auf die Segmentierung auswirken. Deshalb fällt die Funktion zusätzlich mit steigendem Abstand der Bildpunkte. In der hier verwendeten Implementierung wurde der euklidische Abstand der Pixelmittelpunkte bestimmt. Zwei direkt benachbarte Pixel sollen den Abstand 1 besitzen, während zwei Bildpunkte, die sich diagonal berühren, demnach einen Abstand von 2 haben. Abbildung 4.1 zeigt ein einfaches, zweifarbiges Graustufenbild und dessen Segmentierung. Hier und im weiteren Verlauf der Arbeit wird zur besseren Orientierung die Segmentierung halbdurchsichtig zusammen mit dem Bild angezeigt, während die verwendeten Saatpunkte mit voller Farbe dargestellt werden. Wie durch die obige Funktion bestimmt, verläuft der minimale Schnitt entlang der Kanten im Bild, an denen die Gewichte im Graphen sehr niedrig sind. Die Methode eignet sich jedoch auch zur Segmentierung, wenn die Kanten im Bild sehr schwach oder sogar teilweise nicht vorhanden sind. Abbildung 4.2 zeigt das Kaniza- Bild. Intuitiv setzt der Betrachter bei diesem Bild die Kanten des Dreiecks fort, obwohl sie nicht vorhanden sind. Mittels Graph-Cuts lassen sich auch diese Kanten finden, wenn die Saatpunkte richtig gesetzt werden. Der Übergang von schwarz nach weiß ist dabei ein guter Ansatzpunkt für den minimalen Schnitt, trennt dabei jedoch noch nicht die Saatpunkte voneinander. Um das zu gewährleisten müssen auch gleichfarbige Pixel in verschiedenen Segmenten liegen, was in der Segmentierungsenergie hohe Werte liefert. Da die Gewichte im weißen Bereich zwischen den Pixeln aber überall gleich sind, wird eine Aufteilung gesucht, bei der möglichst wenig benachbarte Bildpunkte voneinander getrennt werden. Dies ist der Fall, wenn das Bild das imaginäre Dreieck segmentiert Auswirkungen von Rauschen Die obige Gewichtsfunktion (4.1) bestraft allerdings nur leichte Grauwertunterschiede in den Pixeln. Ist das zu segmentierende Objekt nicht so homogen wie in den einfachen zweifarbigen Beispielen, so können die niedrigen Gewichte zu einer Untersegmentierung führen, indem der maximale Fluss früher erreicht wird. Der minimale Schnitt verläuft dann bereits vor der eigentlichen Kante im Bild. Dies ist zum Beispiel der Fall, wenn Rauschen auf dem Bild liegt. Viele Bilder aus dem medizinischen Bereich, 30

31 wie zum Beispiel Ultraschallbilder, sind allerdings oft mit einem solchen Rauschen belegt. Normalerweise werden Bilder vor einer weiteren Bearbeitung wie der Segmentierung deshalb entrauscht. Ein Überblick über solche Methoden bietet zum Beispiel [6]. Dieses ist jedoch ein eigenes Thema in der Bildverarbeitung und wird hier nicht weiter verfolgt. Stattdessen ermöglicht eine leichte Anpassung der obigen Funktion auch die direkte Segmentierung von verrauschten Bildern: w {p,q} = B p,q = exp ( (I p I q ) 2 ) 1 σ 2 dist(p, q) (4.2) Bei dieser Funktion, die sich insbesondere auf ein normalverteiltes Rauschen bezieht, wird die Aufteilung von Pixeln mit einem Unterschied bis zu σ noch recht stark bestraft, während die Gewichte zwischen Punkten mit einem Unterschied größer als σ schnell gegen 0 gehen. Im Gegensatz zu vielen anderen Segmentierungsverfahren ist die Graph-Cut-Methode somit erstaunlich resistent gegenüber Rauschen und liefert gute Ergebnisse, wenn der richtige Wert für den Parameter σ gefunden wird. (a) Bild (b) σ = 1 (c) σ = 10 (d) σ = 50 Abbildung 4.3: Segmentierung eines Bildes mit normalverteiltem Rauschen Die Abbildung 4.3(a) zeigt das einfache, zweifarbige Bild aus Abbildung 4.1 mit einem recht starken normalverteilten Rauschen. Die einfache Gewichtsfunktion würde eine unbrauchbare Untersegmentierung liefern. Wird dagegen σ höher gesetzt, erhöhen 31

32 sich die Gewichte innerhalb der des Vierecks, sodass die Form wieder richtig segmentiert werden kann. Wird der Parameter dagegen zu groß gewählt, haben die Kanten zwischen den Punkten des Vierecks und des Hintergrundes vergleichsweise keinen so niedrigen Wert mehr, dass sie für den minimalen Schnitt interessant sind. Stattdessen werden möglichst wenig benachbarte Pixel in verschiedene Segmente aufgeteilt und das Objekt besteht aus den vorbestimmten Saatpunkten. Abbildung 4.4(a) zeigt das gleiche Bild mit einem Schwarz-Weiß-Rauschen. Zufällig sind in dem 200x200 Pixel großem Bild je 1000 Pixel schwarz und weiß. Das Viereck wurde zwar noch segmentiert, allerdings liegen die veränderten Pixel im Hintergrund. Auch die Erhöhung von σ hilft nur bedingt. Die weißen Pixel werden richtig segmentiert, es ist aber nicht möglich auch die schwarzen Punkte richtig zuzuweisen. Dies liegt am verwendeten Max-Flow-Min-Cut-Algorithmus. Während der Bestimmung des Flusses werden alle n-links der schwarzen und weißen Pixel gesättigt, da die Gewichte sehr niedrig sind. Es besteht keine Verbindung mehr zum Objektknoten und nach der in Kapitel 3 getroffenen Entscheidung zur Bestimmung der Segmentierung aus dem maximalem Fluss werden die Pixel deshalb dem Hintergrund zugeordnet. Die Punkte liegen allerdings isoliert und es findet sich auch kein Weg zum Hintergrundknoten im entsprechenden Restgraphen. Mit einer Anpassung der Bestimmung der Segmente oder einem einfachen Nachverarbeitungsschritt könnten also auch diese Pixel richtig zugeordnet werden. (a) Bild (b) σ = 1 (c) σ = 10 Abbildung 4.4: Segmentierung eines Bildes mit Schwarz-Weiß-Rauschen Gerichtete Kanten Mit Hilfe der Gewichtsfunktion (4.2) (und der Wahl geeigneter Saatpunkte) lassen sich bereits viele Bilder gut segmentieren. Es ist jedoch möglich die Gewichte für bestimmte Fälle noch besser anzupassen. Abbildung 4.5(a) zeigt einen Ausschnitt aus einer Computertomographieaufnahme, in der die hell umrandeten Knochen (Rippen) segmentiert werden sollen. Wie 4.5(b) zeigt, verläuft der minimale Schnitt bei der bisher verwendeten Gewichtsfunktion allerdings schon entlang des hellen Randes und segmentiert die Knochen daher nicht vollständig. 32

33 Dieses Problem kann behoben werden, indem gerichtete Kanten im Graphen verwendet werden, die auch unterschiedlich gewichtet sind. Durch die Verwendung eines Max- Flow-Min-Cut-Algorithmus wurde der Graph bereits gerichtet definiert und diese Variante lässt sich so problemlos integrieren. Ziel ist es, dass die n-links von den dunkleren inneren Pixeln des Knochen zu denen des helleren Randes einen hohen Wert bekommen, während der Übergang von hell nach dunkel immer noch eine gute Möglichkeit für den Schnitt darstellt. Eine mögliche angepasste Gewichtsfunktion ist 1 I p I ( ) q w (p,q) = B p,q = exp (Ip Iq)2 1 I σ 2 dist(p,q) p > I q. (4.3) Abbildung 4.5(c) zeigt, dass die Segmentierung somit weitaus besser an das Problem angepasst ist. Liegen wie in diesem Bild zwei verschiedene Kanten im Bild direkt nebeneinander, kann also durch die Verwendung von gerichteten Graphen eine dieser Kanten beim minimalen Schnitt bevorzugt werden. (a) Bild (b) ungerichtete Kanten (c) gerichtete Kanten Abbildung 4.5: Segmentierung mit ungerichteten und gerichteten Graphen Verschiedene Nachbarschaften Bisher wurden verschiedene Gewichte für die n-links vorgestellt und deren Auswirkung auf die Segmentierung erläutert. Einen wichtigen Einfluss auf das Ergebnis hat aber nicht nur dieses Gewicht, sondern auch die Anzahl verwendeter Kanten. Prinzipiell lässt die Graph-Cut-Methode jede mögliche Verbindung von Pixeln im Bild zu, genutzt werden jedoch meist eine einfache 4er-Nachbarschaft oder eine 8er-Nachbarschaft (siehe auch Kapitel 2). Standardmäßig wird bei der Segmentierung meist die 4er-Nachbarschaft verwendet. Für viele Fälle liefert diese Nachbarschaft bereits genügend Information über die Beziehung der Bildpunkte, um eine gute Segmentierung zu ermöglichen. Bei der 8er- Nachbarschaft werden Bildpunkte mit allen umgebenden Pixeln verbunden und nicht nur mit den direkt benachbarten. Somit lassen sich Unregelmäßigkeiten im Bild besser 33

34 ausgleichen. Besonders verrauschte Bilder können besser segmentiert werden, wie das folgende Beispiel zeigt. (a) Bild (b) 4er-Nachbarschaft (c) 8er-Nachbarschaft Abbildung 4.6: Einfluss der Nachbarschaften auf die Segmentierung Durch das Rauschen im Bild verläuft der minimale Schnitt bereits durch die schmale Verbindung zwischen den Vierecken, da die Gewichte auch innerhalb des Objekts geringer ausfallen. Das Problem könnnte natürlich durch einen weiteren Saatpunkt im oberen Objekt gelöst werden, aber auch durch die Wahl einer größeren Nachbarschaft wird der ungewünschte Schnitt nicht mehr minimal. Durch die größere Nachbarschaft enthält jeder Schnitt mehr Kanten. Somit ist auch die Chance größer, dass in der schmalen Verbindung Pixel mit ähnlichen Grauwerten verbunden werden und sich somit der Wert eines Schnittes durch diese Verbindung entscheidend erhöht. Die Verwendung einer 8er-Nachbarschaft bringt allerdings auch Probleme mit sich. Durch die Verbindung von diagonal benachbarten Pixeln ist das segmentierte Objekt oftmals weniger glatt, wie Abbildung 4.7 zeigt. Zusätzlich dauert die Segmentierung mit größerer Nachbarschaft im Normalfall länger. Obwohl die Anzahl möglicher Segmentierungen gleich bleibt, erhöht sich durch die höhere Kantenzahl im Graphen die Anzahl möglicher Wege. Die Wahl der Nachbarschaft hängt also immer auch von den zu segmentierenden Bildern und den Anforderungen an die Segmentierung ab. (a) Bild (b) Segmentierung Abbildung 4.7: Einfluss der Nachbarschaften auf die Segmentierung 34

35 4.2 Gebietsbasierter Term R(A) Im Folgenden soll beschrieben werden, wie sich einige Vorinformationen an die Segmentierung implementieren lassen. Der gebietsbasierte Term R(A) beschreibt dazu Strafen für die Zuweisung von Pixeln zu bestimmten Segmenten und gibt damit an, wie gut die einzelnen Pixel in das verwendete Modell passen. Hierfür beschreibt Pr( obj I p ) die Wahrscheinlichkeit, dass der Pixel p mit seinem Grauwert zum Objekt gehört und analog Pr( hin I p ) die Wahrscheinlichkeit, dass der Grauwert von p zum Hintergrund gehört. Abbildung 4.8(a) zeigt exemplarisch solche Wahrscheinlichkeiten. Aus diesen Werten lässt sich nun die Strafe für die Zuweisung eines Pixels p zum Objekt oder Hintergrund bestimmen. R p ( obj ) = ln (Pr( hin I p )) (4.4) R p ( hin ) = ln (Pr( obj I p )) (4.5) Passt nun ein Pixel p zum Beispiel sehr gut zum Objekt, so gilt Pr( obj I p ) 1 und damit R p ( hin ) 0. Der Pixel erhält somit ein sehr geringes Gewicht zum Hintergrundknoten, wodurch diese Kante für den minimalen Schnitt interessant ist und p eher als Objekt segmentiert wird. Gilt hingegen Pr( obj I p ) = 0, so würde obige Definition ein unendliches Gewicht R p ( hin ) hervorrufen. Die Kante zum Hintergrundknoten liegt somit nie im Schnitt und der Pixel würde automatisch als Hintergrund segmentiert werden. Oftmals ist eine solche Einschränkung jedoch nicht gewollt. Diese unendlichen KantengewichteWerte werden deshalb oft auf einen Wert etwas größer als der größte endliche Wert für R p das heißt der Wert für die kleinste Wahrscheinlichkeit größer als 0 gesetzt. Alternativ wird auf die Wahrscheinlichkeiten ein kleiner Wert ɛ > 0 addiert, um die Berechnung von ln(0) zu vermeiden. Hierbei ist jedoch darauf zu achten, dass weiterhin Pr 1 gilt, um negative Gewichte zu verhindern. Auf diese Weise wird auch das Problem umgangen, dass ein Pixel zwei unendliche Kantengewichte zu beiden Endknoten besitzt und damit kein endlicher maximaler Schnitt existiert. Abbildung 4.8(b) zeigt die Strafen zur Zuordnung von bestimmten Grauwerten zu den Segmenten bei entsprechenden Wahrscheinlichkeiten. Das Objekt soll hauptsächlich aus Pixeln mit Grauwerten um 200 bestehen. Pixel mit diesen Grauwerten erhalten deshalb relativ geringe Kantengewichte zum Hintergrundknoten. Gleichzeitig ist die Wahrscheinlichkeit, dass diese Bildpunkte im Hintergrund liegen sehr gering. Dementsprechend ist die Strafe für eine Zuweisung zum Objekt und damit das Gewicht der Kante zum Objektknoten sehr hoch. Insgesamt ist es somit sehr wahrscheinlich, dass diese Punkte als Objekt segmentiert werden. Die Wahrscheinlichkeiten Pr können dabei zum Beispiel aus einem Histogramm bestimmt werden, das auf den Farbwerten der Pixel beruht. Besteht ein Objekt fast ausschließlich aus Pixeln eines bestimmten Grauwertbereiches, ist es wahrscheinlich, dass Bildpunkte mit diesem Farbwert zum Objekt gehören. Die Wahrscheinlichkeiten Pr können dabei a priori gegeben sein und zum Beispiel auf Erfahrungen aus bisherigen Segmentierungen beruhen. Da in dieser Arbeit aber eine allgemeine Ver- 35

36 (a) Pr (b) R p Abbildung 4.8: Wahrscheinlichkeiten auf der Basis von Farbwerten und damit verbundene Strafen für die Zuweisung zu den Objekten. Die Wahrscheinlichkeiten für die Zugehörigkeit zum Objekt sind in blau und zum Hintergrund in rot dargestellt. Der Strafterm R p ( obj ) ist rot gekennzeichnet, da er auf den Wahrscheinlichkeiten für den Hintergrund beruht. Analog ist deshalb R p ( hin ) in blau dargestellt. wendungsmöglichkeit der Graph-Cut-Methode verwendet wird, wurde diese Variante nicht weiter verfolgt. Stattdessen ist es auch möglich aus den bereits gesetzten Saatpunkten ein Histogramm aufzubauen und die Gewichte auf dieser Basis zu berechnen. In diesem Fall ist es sinnvoll das Histogramm im Nachhinein zu glätten, um Lücken in den Farbwerten auszugleichen. Wenn bisher ein Objekt aus mehreren nicht zusammenhängenden Teilen bestehen soll, war es nötig, dass in jedem dieser Teile ein Saatpunkt gesetzt wurde, da jeder Knoten, der als Objekt segmentiert wird, im Restgraphen noch mit dem Objektknoten verbunden ist und nur die t-links der Saatpunkte ein Gewicht größer als 0 haben. Bei der Verwendung gebietsbasierter Terme wird nun für fast alle Kanten zu den Endknoten ein echt positives Gewicht bestimmt. Somit lassen sich auch mehrteilige Objekte segmentieren, ohne dass jedes Teilobjekt mit einem Saatpunkt versehen werden muss. Die Verwendung von Wahrscheinlichkeiten, die auf den Farbwerten beruhen, eignet sich dabei besonders, wenn Objekt und Hintergrund klar verschiedene Grauwertbereiche haben. Knochen zum Beispiel sind in einer CT-Aufnahme im Normalfall deutlich heller als das umliegende Gewebe und die Organe. Abbildung 4.9(b) zeigt, wie durch das Setzen von Saatpunkten nur in der Wirbelsäule direkt alle weiteren Knochen (Rippen) mitsegmentiert werden. Sind die Segmente allerdings hinsichtlich ihrer Grauwerte nicht klar getrennt, liefert die Verwendung dieser Art von Histogrammen oftmals keine sinnvolle Segmentierung, wie Abbildung 4.9(d) zeigt. In diesen Fällen ist es möglich durch eine Anpassung des Parameters λ, der angibt wie stark die Vorinformation im Verhältnis zu den Informationen aus der Nachbarschaft in die Segmentierung mit eingehen, Ergebnisse zu erzielen, die den eigenen Vorstellungen besser entsprechen. Im 36

37 Normalfall muss der Parameter dann jedoch so klein gewählt werden, dass die Verteilung der Farbwerte nicht mehr wichtig ist. (a) Bild (b) Segmentierung (c) Bild (d) Segmentierung Abbildung 4.9: Einfluss des grauwertbasierten Strafterms R p auf die Segmentierung Neben den Farbwerten kann sich ein Modell auch auf die Lage der Pixel im Bild beziehen. Werden Bilder von ähnlichen Objekten immer auf die gleiche Art aufgenommen, so ist es möglich, dass bestimmte Strukturen immer im gleichen Bildbereich liegen. Song et al. haben in [22] diese Variante zur Unterteilung eines Gehirns in graue und weiße Substanz verwendet. Ausgehend von einem Atlas des Gehirns erhalten Pixel hier verschieden starke Neigungen zu einem Segment. Da die Kanten im Bild zur Trennung der Substanzen oftmals nicht ausreichen, können so entscheidende Informationen für die Segmentierung zur Verfügung gestellt werden. 37

38 5 Validierung der Graph-Cut-Methode Bei der Graph-Cut-Methode liefern die Saatpunkte wichtige Hinweise für die Segmentierung. Durch die geschickte Wahl dieser Punkte ist prinzipiell jedes gewünschte Ergebnis möglich. Es stellt sich jedoch die Frage, wann die Saatpunkte gut gewählt sind. Abbildung 5.1: Segmentierung eines Gefäßes in der Leber Das Beispiel aus Abbildung 5.1 zeigt, dass ähnliche Mengen von Saatpunkten in bestimmten Fällen zu enormen Unterschieden in der Segmentierung führen können. In diesem Kapitel soll darum untersucht werden, wie stark die Segmentierung von der Wahl der Saatpunkte abhängt. Dabei sollen ähnliche Fragestellungen wie in [14] untersucht werden. Um Aussagen treffen zu können, müssen zwei Segmentierungen A 1 und A 2 miteinander verglichen werden können. Im Mittelpunkt einer Segmentierung steht zumeist die Bestimmung eines Objekts im Bild. Van Ginneken et al. geben in ihrer Arbeit [13] deshalb verschiedene Maße für die Ähnlichkeit von Segmentierungen auf der Basis der bestimmten Objekte an. Hier soll lediglich eine einfache prozentuale Überlappung U verwendet werden. In dieser soll bestimmt werden, wie viele der als Objekt bestimmten Pixel in den beiden Segmentierungen gleich sind. Es gilt U = # {A 1( obj ) A 2 ( obj )} # {A 1 ( obj ) A 2 ( obj )} [0, 1]. (5.1) Gilt also U = 1, so wurden in beiden Segmentierungen A 1 und A 2 die selben Pixel als Objekt segmentiert. Die (binären) Segmentierungen sind damit identisch. Bei einer Überlappung U = 0 dagegen gehört kein einziger Pixel sowohl in A 1 als auch in A 2 zum Objekt. Bezüglich des zu bestimmenden Objekts im Bild, sind die beiden Segmentierungen also maximal verschieden. Eine wichtige Frage ist nun, wie genau die Saatpunkte gesetzt werden müssen, damit das Segmentierungsergebnis zufriedenstellend ist. Um diese Frage zu beantworten, wird 38

39 eine Ausgangssegmentierung A bestimmt, die dem gewünschten Ergebnis entspricht. Diese Segmentierung soll mit Hilfe jeweils einer zusammenhängende Menge von Saatpunkten sowohl für das Objekt als auch für den Hintergrund erreicht werden (siehe auch Abbildung 5.1(b)). Diese zwei Saatpunktmengen werden nun versetzt, wobei sie in den in A definierten Segmenten verbleiben sollen, da davon ausgegangen wird, dass der Benutzer Objekt und Hintergrund korrekt bestimmt. Ausgehend von den neuen Saatpunkten wird eine zweite Segmentierung A bestimmt und mit der Ausgangssegmentierung verglichen. Ab einer Überlappung von U = 0.95 soll A als ausreichend ähnlich gelten. Sowohl die Objektsaatpunkte als auch die Hintergrundsaatpunkte werden gemeinsam in verschiedene Richtungen um verschiedene Werte verschoben. Abhängig vom Grad der Verschiebung wird der Anteil der ausreichend ähnlichen Segmentierungen bestimmt. Die Abbildung 5 zeigt das Ergebnis dieser Untersuchung für das Beispiel aus Abbildung 5.1. Eine Verschiebung der Objektsaatpunkte führt offensichtlich zu keiner grundlegenden Änderung in der Segmentierung des Bildes. In diesem Fall genügt es also, dass das Objekt grob als solches markiert wird. Die Platzierung der Hintergrundsaatpunkte spielt eine weitaus größere Rolle, aber auch hier liefert eine geringe Verschiebung von bis zu 10 % noch überwiegend gute Ergebnisse (a) Verschiebung der Objektsaatpunkte (b) Verschiebung der Hintergrundsaatpunkte Abbildung 5.2: Anteil der ausreichend ähnlichen Segmentierungen (ausgehend von einer definierten Ausgangssegmentierung) in Abhängigkeit von einer prozentualen Verschiebung der Saatpunkte für das Beispiel aus Abbildung 5.1 Allgemein konnte festgestellt werden, dass bei einfachen Bildern, bei denen Objekt und Hintergrund klar voneinander getrennt sind, eine prinzipielle Bestimmung der Segmente ausreichend ist. Unabhängig von der Lage der Saatpunkte sind die Segmentierungen immer ausreichend ähnlich. Bei Bildern ohne eine solche klare Trennung ist meist nur die Wahl der Objektsaatpunkte oder der Hintergrundsaatpunkte entscheidend. Tendiert das Bild dabei zu einer Übersegmentierung, so wie das obige Beispiel, 39

40 dann kann das Ergebnis durch gut gesetzte Hintergrundsaatpunkte verbessert werden. Bei einer Untersegmentierung hingegen sind die Saatpunkte im Objekt wichtig. Die bisherige Untersuchung wurde mit nur jeweils einer größeren zusammenhängenden Saatpunktmenge durchgeführt. Auf diese Weise entspricht eine Segmentierung bereits in den meisten Fällen entweder (fast) komplett denn Vorstellungen oder sie stimmt so gut wie überhaupt nicht mit den Anforderungen überein. Anstatt zu versuchen die einzelnen Saatpunkte korrekt zu platzieren, genügt es bei vielen Bildern weitere Saatpunkte in den Bereichen zu setzen, in denen die Segmentierung noch nicht den Wünschen entspricht. Im Weiteren wurde deshalb untersucht, wie viele solcher Saatpunktblöcke durchschnittlich nötig sind, damit das Bild den Anforderungen des Benutzers entsprechend segmentiert wird. Ähnlich wie bei der Betrachtung zur Lage der Saatpunkte wird hierfür zunächst eine Ausgangssegmentierung A bestimmt. Anschließend wird eine Vergleichssegmentierung A mit zufällig gewählten Saatpunktmengen in den entsprechend bestimmten Segmenten berechnet. Analog zur vorherigen Untersuchung wird bei einer Überlappung von mindestens 0.95 die neue Segmentierung als plausibel angenommen. Dieser Vorgang wird für verschiedene Anzahlen von Saatpunktmengen mehrfach durchgeführt und abschließend der Anteil der ausreichend ähnlichen Segmentierungen bestimmt Abbildung 5.3: Anteil der ausreichend ähnlichen Segmentierungen (ausgehend von einer definierten Ausgangssegmentierung) in Abhängigkeit von der Anzahl der Saatpunktmengen im Hintergrund für das Beispiel 5.1 Abbildung 5 zeigt das Ergebnis für das Ausgangsbeispiel. Zufällig wurden zwischen 1 und 10 Saatpunktmengen, die aus jeweils 25 Bildpunkten als 5x5-Block bestehen, im entsprechenden segmentierten Bereich gesetzt. Da die Lage der Objektsaatpunkte offensichtlich nicht relevant ist, wurde auf eine Darstellung für diese Punkte verzichtet. Es ist ersichtlich, dass auch bei einer rein zufälligen Wahl bereits vier zusammenhängende Saatpunktmengen im Hintergrund genügen, um gute bis sehr gute Ergebnisse zu erzielen. Dieses Beispiel deckt sich auch mit übrigen Versuchen. Bei der Wahl von etwa fünf Saatpunktmengen für das Objekt beziehungsweise den Hintergrund ist bereits 40

41 fast ausschließlich mit ausreichend ähnlichen Segmentierungen zu rechnen. Abschließend soll kurz die Abhängigkeit der Segmentierung von der Größe der Saatpunktmengen betrachtet werden. Eine solche Menge von Punkten muss lediglich groß genug sein, damit der Schnitt entlang der Saatpunkte größer ist als der gewünschte Schnitt. Normalerweise verläuft der gewünschte Schnitt jedoch entlang einer Kante im Bild und besitzt so bei relativ vielen n-links, die im Schnitt liegen, einen verhältnismäßig kleinen Wert. Die Saatpunkte im Objekt oder Hintergrund dagegen liegen meist in einem Bereich, in dem die Grauwerte der Pixel homogener sind. Der Schnitt, der die Saatpunkte isoliert, hat demnach auch bei wenigen Nachbarschaftskanten einen hohen Wert. So sollten bereits wenige Pixel ausreichen, um eine vernünftige Segmentierung zu erzielen. Um diese Überlegung zu überprüfen wird erneut eine Ausgangssegmentierung A verwendet, die mit je einer Saatpunktmenge für Objekt und Hintergrund erzielt wurde. Für die Vergleichssegmentierung A wird eine bestimmte Anzahl der Saatpunkte zufällig ausgewählt. Anschließend wird erneut über die Überlappung definiert, ob die Segmentierung ausreichend ähnlich ist. Auch dieser Vorgang wird für verschiedene Anzahlen an einzelnen Saatpunkten mehrfach wiederholt und der Anteil der ausreichend ähnlichen Segmentierungen berechnet (a) Anzahl der Objektsaatpunkte (b) Anzahl der Hintergrundsaatpunkte Abbildung 5.4: Anteil der ausreichend ähnlichen Segmentierungen (ausgehend von einer definierten Ausgangssegmentierung) in Abhängigkeit von der Anzahl der Saatpunkte in einer einzelnen Saatpunktmenge für das Beispiel 5.1 In Abbildung 5.4 wurden jeweils 1 bis 30 einzelne Saatpunkte zufällig bestimmt und der Vorgang 100 mal wiederholt. Bei der Festlegung der Objektsaatpunkte genügt anscheinend bereits ein einzelner Objektsaatpunkt bei einer Bildgröße von 150x160 Pixeln (24000 Bildpunkte), damit das Bild den Forderungen entsprechend segmentiert wird. Auch für den Hintergrund genügen bereits etwa 15 Pixel, die vorbestimmt werden müssen. Dies liegt zum Teil daran, dass sich das Rauschen des Ultraschallbildes im 41

42 Hintergrund deutlich stärker bemerkbar macht. Versuche mit anderen Bildern legen aber auch die Vermutung nahe, dass bei dieser Betrachtung die Lage der zufällig gewählten Saatpunkte eine größere Rolle spielt. Dennoch spielt die genaue Anzahl der einzelnen Pixel eine untergeordnete Rolle, da die Implementierung die Zuweisung größerer Saatpunktmengen ohne größeren Aufwand erlaubt. Eine unerwünschte Segmentierung durch zu wenig Saatpunkte ist deshalb im Normalfall nicht zu erwarten. Zusammenfassend lässt sich sagen, dass die Graph-Cut-Methode, auch wenn die Wahl der Saatpunkte nicht zu vernachlässigen ist, gute Ergebnisse liefert, ohne dass bestimmte Punkte im Bild sehr genau markiert werden müssen. In der Praxis hat es sich bewährt das zu segmentierende Objekt grob durch einen Saatpunkt zu bestimmen und einige Hintergrundsaatpunkte um das Objekt herum zu setzen. Auf diese Weise lässt sich die Graph-Cut-Methode auch vollautomatisch verwenden, wenn zumindest die ungefähre Lage des Objekts durch den Computer ermittelt werden kann. Sollte das Ergebnis nach dem ersten Versuch nicht den Erwartungen entsprechen, bietet die Graph-Cut-Methode allerdings noch den Vorteil, dass die Saatpunkte verändert werden können. Wie im dritten Kapitel beschrieben, kann die neue Segmentierung auf der Basis des zuvor bestimmten maximalen Flusses bestimmt werden. Da der Algorithmus nicht mit dem Nullfluss gestartet werden muss, kann auch bei größeren Bildern, bei denen die Erstsegmentierung eventuell längere Zeit benötigt, das Ergebnis schnell und einfach den Anforderungen des Benutzers angepasst werden. Abbildung 5.5: Verlauf einer Segmentierung. Die Saatpunkte wurden nacheinander gesetzt um das Ergebnis immer besser den Vorstellungen anzupassen. 42

Bipartite Graphen. Beispiele

Bipartite Graphen. Beispiele Bipartite Graphen Ein Graph G = (V, E) heiÿt bipartit (oder paar), wenn die Knotenmenge in zwei disjunkte Teilmengen zerfällt (V = S T mit S T = ), sodass jede Kante einen Knoten aus S mit einem Knoten

Mehr

Flüsse in Netzwerken

Flüsse in Netzwerken Proseminar Theoretische Informatik, Prof. Wolfgang Mulzer, SS 17 Flüsse in Netzwerken Zusammenfassung Gesa Behrends 24.06.2017 1 Einleitung Unterschiedliche technische Phänomene wie der Flüssigkeitsdurchfluss

Mehr

Algorithmen und Datenstrukturen Kapitel 10

Algorithmen und Datenstrukturen Kapitel 10 Algorithmen und Datenstrukturen Kapitel 10 Flüsse Frank Heitmann heitmann@informatik.uni-hamburg.de 6. Januar 2016 Frank Heitmann heitmann@informatik.uni-hamburg.de 1/8 Flüsse Graphen Grundlagen Definition

Mehr

Wiederholung zu Flüssen

Wiederholung zu Flüssen Universität Konstanz Methoden der Netzwerkanalyse Fachbereich Informatik & Informationswissenschaft SS 2008 Prof. Dr. Ulrik Brandes / Melanie Badent Wiederholung zu Flüssen Wir untersuchen Flüsse in Netzwerken:

Mehr

Algorithmische Graphentheorie

Algorithmische Graphentheorie Algorithmische Graphentheorie Vorlesung 4: Suchstrategien Babeş-Bolyai Universität, Department für Informatik, Cluj-Napoca csacarea@cs.ubbcluj.ro 14. April 2017 HALBORDNUNG TOPOLOGISCHE ORDNUNG TOPOLOGISCHES

Mehr

6. Flüsse und Zuordnungen

6. Flüsse und Zuordnungen 6. Flüsse und Zuordnungen Flußnetzwerke 6. Flüsse und Zuordnungen In diesem Kapitel werden Bewertungen von Kanten als maximale Kapazitäten interpretiert, die über diese Kante pro Zeiteinheit transportiert

Mehr

Kapitel 7: Flüsse in Netzwerken und Anwendungen Gliederung der Vorlesung

Kapitel 7: Flüsse in Netzwerken und Anwendungen Gliederung der Vorlesung Gliederung der Vorlesung 1. Grundbegriffe. Elementare Graphalgorithmen und Anwendungen 3. Kürzeste Wege 4. Minimale spannende Bäume 5. Färbungen und Cliquen 6. Traveling Salesman Problem 7. Flüsse in Netzwerken

Mehr

Algorithmische Graphentheorie

Algorithmische Graphentheorie Algorithmische Graphentheorie Vorlesung 13: Flüsse und Zuordnungen Babeş-Bolyai Universität, Department für Informatik, Cluj-Napoca csacarea@cs.ubbcluj.ro 9. Juni 2017 DURCHSATZ D(e) ist die maximale Flussmenge,

Mehr

Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 4: Flüsse

Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 4: Flüsse Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 4: Flüsse Dipl-Math. Wolfgang Kinzner 3.4.2012 Kapitel 4: Flüsse Flüsse Netzwerk, Fluss, s,t-schnitt, Kapazität MaxFlow-MinCut-Theorem Restnetzwerk

Mehr

11. GRAPHEN 3 FLÜSSE UND SPANNBÄUME

11. GRAPHEN 3 FLÜSSE UND SPANNBÄUME Algorithmen und Datenstrukturen 11. GRAPHEN 3 FLÜSSE UND SPANNBÄUME Algorithmen und Datenstrukturen - Ma5hias Thimm (thimm@uni-koblenz.de) 1 Algorithmen und Datenstrukturen 11.1. BERECHNUNG MAXIMALER FLÜSSE

Mehr

Übersicht der Vorlesung

Übersicht der Vorlesung Übersicht der Vorlesung 1. Einführung 2. Bildverarbeitung 3. orphologische Operationen 4. Bildsegmentierung 5. erkmale von Objekten 6. Klassifikation 7. Dreidimensionale Bildinterpretation 8. Bewegungsanalyse

Mehr

6. Übung zur Linearen Optimierung SS08

6. Übung zur Linearen Optimierung SS08 6 Übung zur Linearen Optimierung SS08 1 Sei G = (V, E) ein schlichter ungerichteter Graph mit n Ecken und m Kanten Für eine Ecke v V heißt die Zahl der Kanten (u, v) E Grad der Ecke (a) Ist die Anzahl

Mehr

Flüsse, Schnitte, bipartite Graphen

Flüsse, Schnitte, bipartite Graphen Flüsse, Schnitte, bipartite Graphen Thomas Fersch mail@t-fersch.de 11.06.2010 Seminar "Hallo Welt!" für Fortgeschrittene 1 Übersicht Maximale Flüsse in Netzwerken Worum geht s? Lösung nach Ford-Fulkerson

Mehr

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Fortgeschrittene Netzwerk- und Graph-Algorithmen Fortgeschrittene Netzwerk- und Graph-Algorithmen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Wintersemester

Mehr

KAPITEL 4 FLÜSSE IN NETZWERKEN

KAPITEL 4 FLÜSSE IN NETZWERKEN KAPITEL 4 FLÜSSE IN NETZWERKEN F. VALLENTIN, A. GUNDERT 1. Das Max-Flow-Min-Cut Theorem Es sei D = (V, A) ein gerichteter Graph, s, t V zwei Knoten. Wir nennen s Quelle und t Senke. Definition 1.1. Eine

Mehr

Lösungen zu Kapitel 5

Lösungen zu Kapitel 5 Lösungen zu Kapitel 5 Lösung zu Aufgabe : (a) Es gibt derartige Graphen: (b) Offensichtlich besitzen 0 der Graphen einen solchen Teilgraphen. Lösung zu Aufgabe : Es sei G = (V, E) zusammenhängend und V

Mehr

9 Minimum Spanning Trees

9 Minimum Spanning Trees Im Folgenden wollen wir uns genauer mit dem Minimum Spanning Tree -Problem auseinandersetzen. 9.1 MST-Problem Gegeben ein ungerichteter Graph G = (V,E) und eine Gewichtsfunktion w w : E R Man berechne

Mehr

KARL-FRANZENS-UNIVERSITÄT GRAZ. Seminar aus Reiner Mathematik. Die Museumswächter. Krupic Mustafa Wintersemester 2013/14

KARL-FRANZENS-UNIVERSITÄT GRAZ. Seminar aus Reiner Mathematik. Die Museumswächter. Krupic Mustafa Wintersemester 2013/14 KARL-FRANZENS-UNIVERSITÄT GRAZ Seminar aus Reiner Mathematik Die Museumswächter Krupic Mustafa Wintersemester 2013/14 Inhaltsverzeichnis 2 Inhaltsverzeichnis 1 Einleitung 3 2 Museumswächter-Satz 6 2.1

Mehr

Algorithmen II Vorlesung am

Algorithmen II Vorlesung am Algorithmen II Vorlesung am 0..0 Minimale Schnitte in Graphen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales Forschungszentrum

Mehr

6 Flüsse und Matchings

6 Flüsse und Matchings 6. Flüsse in Netzwerken Flußnetzwerke 6 Flüsse und Matchings In diesem Kapitel werden Bewertungen von Kanten als maximale Kapazitäten interpretiert, die über diese Kante pro Zeiteinheit transportiert werden

Mehr

Diskrete Mathematik Graphentheorie (Übersicht)

Diskrete Mathematik Graphentheorie (Übersicht) Diskrete Mathematik Graphentheorie (Übersicht) Dr. C. Löh 2. Februar 2010 0 Graphentheorie Grundlagen Definition (Graph, gerichteter Graph). Ein Graph ist ein Paar G = (V, E), wobei V eine Menge ist (die

Mehr

Isomorphie von Bäumen

Isomorphie von Bäumen Isomorphie von Bäumen Alexandra Weinberger 23. Dezember 2011 Inhaltsverzeichnis 1 Einige Grundlagen und Definitionen 2 1.1 Bäume................................. 3 1.2 Isomorphie..............................

Mehr

Algorithmische Methoden zur Netzwerkanalyse

Algorithmische Methoden zur Netzwerkanalyse Algorithmische Methoden zur Netzwerkanalyse Juniorprof. Dr. Henning Meyerhenke Institut für Theoretische Informatik 1 KIT Henning Universität desmeyerhenke, Landes Baden-Württemberg Institutund für Theoretische

Mehr

Kombinatorische Algorithmen zur Berechnung von Marktequilibria

Kombinatorische Algorithmen zur Berechnung von Marktequilibria Seminar über Algorithmen Beispielbild Kombinatorische Algorithmen zur Berechnung von Marktequilibria 12.11.2013, Sebastian Stugk Übersicht 1. Marktmodelle und Gleichgewichtsdefinition 2. Das Eisenberg-Gale-Programm

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen 2 Sommersemester 2006 5. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de Wdhlg.: Dijkstra-Algorithmus I Bestimmung der

Mehr

Mustererkennung: Graphentheorie

Mustererkennung: Graphentheorie Mustererkennung: Graphentheorie D. Schlesinger TUD/INF/KI/IS D. Schlesinger () ME: Graphentheorie 1 / 9 Definitionen Ein Graph ist ein Paar G = (V, E) mit der Menge der Knoten V und der Menge der Kanten:

Mehr

Very simple methods for all pairs network flow analysis

Very simple methods for all pairs network flow analysis Very simple methods for all pairs network flow analysis obias Ludes 0.0.0. Einführung Um den maximalen Flusswert zwischen allen Knoten eines ungerichteten Graphen zu berechnen sind nach Gomory und Hu nur

Mehr

Flüsse, Schnitte, Bipartite Graphen

Flüsse, Schnitte, Bipartite Graphen Flüsse, Schnitte, Bipartite Graphen Sebastian Hahn 4. Juni 2013 Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 1 / 48 Überblick Flussnetzwerke Ford-Fulkerson-Methode Edmonds-Karp-Strategie

Mehr

Graphentheorie. Kardinalitätsmatchings. Kardinalitätsmatchings. Kardinalitätsmatchings. Rainer Schrader. 11. Dezember 2007

Graphentheorie. Kardinalitätsmatchings. Kardinalitätsmatchings. Kardinalitätsmatchings. Rainer Schrader. 11. Dezember 2007 Graphentheorie Rainer Schrader Zentrum für Angewandte Informatik Köln 11. Dezember 2007 1 / 47 2 / 47 wir wenden uns jetzt einem weiteren Optimierungsproblem zu Gliederung Matchings in bipartiten Graphen

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Graphen 9/1 Begriffsdefinitionen Ein Graph besteht aus Knoten und Kanten. Ein Knoten(Ecke) ist ein benanntes Objekt. Eine Kante verbindet zwei Knoten. Kanten haben ein Gewicht

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Graphenalgorithmen Maximaler Fluss Einleitung Flussnetzwerke Ford-Fulkerson Fulkerson Methode Maximales bipartites Matching

Mehr

3.6 Branch-and-Bound-Verfahren

3.6 Branch-and-Bound-Verfahren 36 Branch-and-Bound-Verfahren Die Branch-and-Bound -Methode beruht darauf, auf eine intelligente Weise alle zulässigen Lösungen eines kombinatorischen Optimierungsproblems aufzulisten und mit Hilfe von

Mehr

Matchings in Graphen. Praktikum Diskrete Optimierung (Teil 5)

Matchings in Graphen. Praktikum Diskrete Optimierung (Teil 5) Praktikum Diskrete Optimierung (Teil 5) 6.05.009 Matchings in Graphen Es sei ein ungerichteter Graph G = (V, E) gegeben. Ein Matching in G ist eine Teilmenge M E, so dass keine zwei Kanten aus M einen

Mehr

Aufgabe 4.2 Sei G = (V, E, l) ein ungerichteter, gewichteter und zusammenhängender Graph.

Aufgabe 4.2 Sei G = (V, E, l) ein ungerichteter, gewichteter und zusammenhängender Graph. Aufgabe 4.2 Sei G = (V, E, l) ein ungerichteter, gewichteter und zusammenhängender Graph. a) Es seien W 1 = (V, E 1 ), W 2 = (V, E 2 ) Untergraphen von G, die beide Wälder sind. Weiter gelte E 1 > E 2.

Mehr

Algorithmen und Datenstrukturen 2-1. Seminar -

Algorithmen und Datenstrukturen 2-1. Seminar - Algorithmen und Datenstrukturen 2-1. Seminar - Dominic Rose Bioinformatics Group, University of Leipzig Sommersemster 2010 Outline 1. Übungsserie: 3 Aufgaben, insgesamt 30 28 Punkte A1 Spannbäume (10 8

Mehr

ADS: Algorithmen und Datenstrukturen 2

ADS: Algorithmen und Datenstrukturen 2 ADS: Algorithmen und Datenstrukturen Der Tragödie IV. Theyl Peter F. Stadler & Konstantin Klemm Bioinformatics Group, Dept. of Computer Science & Interdisciplinary Center for Bioinformatics, University

Mehr

Diskrete Strukturen Kapitel 4: Graphentheorie (Bäume)

Diskrete Strukturen Kapitel 4: Graphentheorie (Bäume) WS 2016/17 Diskrete Strukturen Kapitel 4: Graphentheorie (Bäume) Hans-Joachim Bungartz Lehrstuhl für wissenschaftliches Rechnen Fakultät für Informatik Technische Universität München http://www5.in.tum.de/wiki/index.php/diskrete_strukturen_-_winter_16

Mehr

KAPITEL 3 MATCHINGS IN BIPARTITEN GRAPHEN

KAPITEL 3 MATCHINGS IN BIPARTITEN GRAPHEN KAPITEL 3 MATCHINGS IN BIPARTITEN GRAPHEN F. VALLENTIN, A. GUNDERT 1. Definitionen Notation 1.1. Ähnlich wie im vorangegangenen Kapitel zunächst etwas Notation. Wir beschäftigen uns jetzt mit ungerichteten

Mehr

Effiziente Algorithmen I

Effiziente Algorithmen I H 10. Präsenzaufgabenblatt, Wintersemester 2015/16 Übungstunde am 18.01.2015 Aufgabe Q Ein Reiseveranstalter besitzt ein Flugzeug, das maximal p Personen aufnehmen kann. Der Veranstalter bietet einen Flug

Mehr

Tutoraufgabe 1 (Suchen in Graphen):

Tutoraufgabe 1 (Suchen in Graphen): Prof. aa Dr. E. Ábrahám Datenstrukturen und Algorithmen SS14 F. Corzilius, S. Schupp, T. Ströder Tutoraufgabe 1 (Suchen in Graphen): a) Geben Sie die Reihenfolge an, in der die Knoten besucht werden, wenn

Mehr

Definition Ein gerichteter Graph G = (V, E) ist ein Graph von geordneten Paaren (u, v) mit u V und v V.

Definition Ein gerichteter Graph G = (V, E) ist ein Graph von geordneten Paaren (u, v) mit u V und v V. Kapitel 4 Graphenalgorithmen 4.1 Definitionen Definition 4.1.1. Der Graph G = (V, E) ist über die beiden Mengen V und E definiert, wobei V die Menge der Knoten und E die Menge der Kanten in dem Graph ist.

Mehr

Lösungsskizzen zu den Klausuraufgaben zum Kurs 1142 Algorithmische Mathematik. a 0 = 0 =

Lösungsskizzen zu den Klausuraufgaben zum Kurs 1142 Algorithmische Mathematik. a 0 = 0 = Lösungsskizzen zu den Klausuraufgaben zum Kurs 4 Algorithmische Mathematik 4KSL3 6 Punkte Aufgabe. Die Folge (a n ) n N natürlicher Zahlen a n sei rekursiv definiert durch a 0 = 0, a n = a n + n falls

Mehr

Flüsse, Schnitte, bipartite Graphen

Flüsse, Schnitte, bipartite Graphen Flüsse, chnitte, bipartite Graphen Matthias Hoffmann 5.5.009 Matthias Hoffmann Flüsse, chnitte, bipartite Graphen 5.5.009 / 48 Übersicht Einführung Beispiel Definitionen Ford-Fulkerson-Methode Beispiel

Mehr

Distanzprobleme in der Ebene

Distanzprobleme in der Ebene Distanzprobleme in der Ebene (Literatur: deberg et al., Kapitel 7,9) Christian Knauer 1 Motivation: Alle nächsten Nachbarn Gegeben: Eine Menge von Punkten P in der Ebene Berechne: Zu jedem Punkt aus P

Mehr

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1 Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1 Aufgabe 1. / 16 P Instruktionen: 1) In dieser Aufgabe sollen Sie nur die Ergebnisse angeben. Diese können Sie direkt bei den Aufgaben notieren. 2) Sofern

Mehr

\ E) eines Graphen G = (V, E) besitzt die gleiche Knotenmenge V und hat als Kantenmenge alle Kanten des vollständigen Graphen ohne die Kantenmenge E.

\ E) eines Graphen G = (V, E) besitzt die gleiche Knotenmenge V und hat als Kantenmenge alle Kanten des vollständigen Graphen ohne die Kantenmenge E. Das Komplement Ḡ = (V, ( V ) \ E) eines Graphen G = (V, E) besitzt die gleiche Knotenmenge V und hat als Kantenmenge alle Kanten des vollständigen Graphen ohne die Kantenmenge E. Ein Graph H = (V, E )

Mehr

Berechnung von Abständen

Berechnung von Abständen 3. Kreis- und Wegeprobleme Abstände in Graphen Abstände in Graphen Definition 3.4. Es sei G = (V, E) ein Graph. Der Abstand d(v, w) zweier Knoten v, w V ist die minimale Länge eines Weges von v nach w.

Mehr

WS 2013/14. Diskrete Strukturen

WS 2013/14. Diskrete Strukturen WS 2013/14 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws1314

Mehr

1. Einleitung wichtige Begriffe

1. Einleitung wichtige Begriffe 1. Einleitung wichtige Begriffe Da sich meine besondere Lernleistung mit dem graziösen Färben (bzw. Nummerieren) von Graphen (speziell von Bäumen), einem Teilgebiet der Graphentheorie, beschäftigt, und

Mehr

Operations Research. Flüsse in Netzwerken. Flüsse in Netzwerken. Unimodularität. Rainer Schrader. 2. Juli Gliederung.

Operations Research. Flüsse in Netzwerken. Flüsse in Netzwerken. Unimodularität. Rainer Schrader. 2. Juli Gliederung. Operations Research Rainer Schrader Flüsse in Netzwerken Zentrum für Angewandte Informatik Köln 2. Juli 2007 1 / 53 2 / 53 Flüsse in Netzwerken Unimodularität Gliederung Netzwerke und Flüsse bipartite

Mehr

Dynamisches Huffman-Verfahren

Dynamisches Huffman-Verfahren Dynamisches Huffman-Verfahren - Adaptive Huffman Coding - von Michael Brückner 1. Einleitung 2. Der Huffman-Algorithmus 3. Übergang zu einem dynamischen Verfahren 4. Der FGK-Algorithmus 5. Überblick über

Mehr

Anwendungen von Netzwerkfluss. Wojciech Polcwiartek Institut für Informatik FU Berlin

Anwendungen von Netzwerkfluss. Wojciech Polcwiartek Institut für Informatik FU Berlin Anwendungen von Netzwerkfluss Wojciech Polcwiartek Institut für Informatik FU Berlin 13. 01. 2009 Gliederung Einführung Netzwerk, Fluss und Schnitt Max-Flow-Min-Cut Theorem Algorithmen zum Bestimmen vom

Mehr

1 DFS-Bäume in ungerichteten Graphen

1 DFS-Bäume in ungerichteten Graphen Praktikum Algorithmen-Entwurf (Teil 3) 06.11.2006 1 1 DFS-Bäume in ungerichteten Graphen Sei ein ungerichteter, zusammenhängender Graph G = (V, E) gegeben. Sei ferner ein Startknoten s V ausgewählt. Startet

Mehr

1 DFS-Bäume in ungerichteten Graphen

1 DFS-Bäume in ungerichteten Graphen Praktikum Algorithmen-Entwurf (Teil 3) 31.10.2005 1 1 DFS-Bäume in ungerichteten Graphen Sei ein ungerichteter, zusammenhängender Graph G = (V, E) gegeben. Sei ferner ein Startknoten s V ausgewählt. Startet

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 11: Graphen Thomas Worsch Karlsruher Institut für Technologie, Fakultät für Informatik Wintersemester 2010/2011 1/59 Graphische Darstellung von Zusammenhängen schon

Mehr

Übungsblatt 2 - Lösung

Übungsblatt 2 - Lösung Institut für Theoretische Informatik Lehrstuhl Prof. Dr. D. Wagner Übungsblatt 2 - Lösung Vorlesung Algorithmentechnik im WS 08/09 Ausgabe 04. November 2008 Abgabe 8. November, 5:0 Uhr (im Kasten vor Zimmer

Mehr

3. Minimale Spannbäume. Definition 99 T heißt minimaler Spannbaum (MSB, MST) von G, falls T Spannbaum von G ist und gilt:

3. Minimale Spannbäume. Definition 99 T heißt minimaler Spannbaum (MSB, MST) von G, falls T Spannbaum von G ist und gilt: 3. Minimale Spannbäume Sei G = (V, E) ein einfacher ungerichteter Graph, der o.b.d.a. zusammenhängend ist. Sei weiter w : E R eine Gewichtsfunktion auf den Kanten von G. Wir setzen E E: w(e ) = e E w(e),

Mehr

4.2 Minimale Spannbäume: Der Algorithmus von Jarník/Prim Definition 4.2.1

4.2 Minimale Spannbäume: Der Algorithmus von Jarník/Prim Definition 4.2.1 Allgemeines. Minimale Spannbäume: Der Algorithmus von Jarník/Prim Definition.. (a) Ein Graph G =(V, E) heißt kreisfrei, wenn er keinen Kreis besitzt. Beispiel: Ein kreisfreier Graph: FG KTuEA, TU Ilmenau

Mehr

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Fortgeschrittene Netzwerk- und Graph-Algorithmen Fortgeschrittene Netzwerk- und Graph-Algorithmen Dr. Hanjo Täubig Lehrstuhl für Eziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Wintersemester 2007/08

Mehr

Satz 324 Sei M wie oben. Dann gibt es für ein geeignetes k Konstanten c i > 0 und Permutationsmatrizen P i, i = 1,...

Satz 324 Sei M wie oben. Dann gibt es für ein geeignetes k Konstanten c i > 0 und Permutationsmatrizen P i, i = 1,... Satz 324 Sei M wie oben. Dann gibt es für ein geeignetes k Konstanten c i > 0 und Permutationsmatrizen P i, i = 1,..., k, so dass gilt M = k c i P i i=1 k c i = r. i=1 Diskrete Strukturen 7.1 Matchings

Mehr

Graphdurchmusterung, Breiten- und Tiefensuche

Graphdurchmusterung, Breiten- und Tiefensuche Prof. Thomas Richter 18. Mai 2017 Institut für Analysis und Numerik Otto-von-Guericke-Universität Magdeburg thomas.richter@ovgu.de Material zur Vorlesung Algorithmische Mathematik II am 18.05.2017 Graphdurchmusterung,

Mehr

Aufgaben zur Klausurvorbereitung

Aufgaben zur Klausurvorbereitung Vorlesung Graphen und Optimierung Sommersemester 2013/14 Prof. S. Lange Aufgaben zur Klausurvorbereitung Hier finden Sie eine Reihe von Übungsaufgaben, die wir an den beiden Vorlesungsterminen am 29.01.2014

Mehr

Voronoi-Diagramme. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK

Voronoi-Diagramme. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 29.05.2011 Das Postamt-Problem b(p, q) = {x R 2 : xp = xq } p q h(p, q) h(q, p) = {x :

Mehr

f h c 7 a 1 b 1 g 2 2 d

f h c 7 a 1 b 1 g 2 2 d ) Man bestimme mit Hilfe des Dijkstra-Algorithmus einen kürzesten Weg von a nach h: c 7 a b f 5 h 3 4 5 i e 6 g 2 2 d Beim Dijkstra-Algorithmus wird in jedem Schritt von den noch unmarkierten Knoten jener

Mehr

Segmentierung. Vorlesung FH-Hagenberg SEM

Segmentierung. Vorlesung FH-Hagenberg SEM Segmentierung Vorlesung FH-Hagenberg SEM Segmentierung: Definition Die Pixel eines Bildes A={a i }, i=1:n, mit N der Anzahl der Pixel, werden in Teilmengen S i unterteilt. Die Teilmengen sind disjunkt

Mehr

Dualitätssätze der linearen Optimierung

Dualitätssätze der linearen Optimierung Kapitel 9 Dualitätssätze der linearen Optimierung Sei z = c T x min! Ax = b 9.1 x 0 mit c, x R n, b R m, A R m n ein lineares Programm. Definition 9.1 Duales lineares Programm. Das lineare Programm z =

Mehr

Beschleunigung von Bild-Segmentierungs- Algorithmen mit FPGAs

Beschleunigung von Bild-Segmentierungs- Algorithmen mit FPGAs Fakultät Informatik, Institut für Technische Informatik, Professur für VLSI-Entwurfssysteme, Diagnostik und Architektur Algorithmen mit FPGAs Vortrag von Jan Frenzel Dresden, Gliederung Was ist Bildsegmentierung?

Mehr

Übungsblatt 5 Lösungsvorschläge

Übungsblatt 5 Lösungsvorschläge Institut für Theoretische Informatik Lehrstuhl Prof. Dr. D. Wagner Übungsblatt 5 Lösungsvorschläge Vorlesung Algorithmentechnik im WS 09/10 Problem 1: Lineare Weihnachtsalgebra Kreisbasen [vgl. Kapitel

Mehr

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen 186.172 Algorithmen und Datenstrukturen 1 VL 4.0 Übungsblatt 4 für die Übung

Mehr

Vorlesung 7 GRAPHBASIERTE BILDSEGMENTIERUNG

Vorlesung 7 GRAPHBASIERTE BILDSEGMENTIERUNG Vorlesung 7 GRAPHBASIERTE BILDSEGMENTIERUNG 195 Bildsegmentierung! Aufgabe: Bestimme inhaltlich zusammenhängende, homogene Bereiche eines Bildes! Weit verbreitetes Problem in der Bildverarbeitung! Viele

Mehr

3. Musterlösung. Problem 1: Boruvka MST

3. Musterlösung. Problem 1: Boruvka MST Universität Karlsruhe Algorithmentechnik Fakultät für Informatik WS 06/07 ITI Wagner. Musterlösung Problem : Boruvka MST pt (a) Beweis durch Widerspruch. Sei T MST von G, e die lokal minimale Kante eines

Mehr

Kapitel 1: Fallstudie Bipartite Graphen Gliederung der Vorlesung

Kapitel 1: Fallstudie Bipartite Graphen Gliederung der Vorlesung Kapitel : Fallstudie Bipartite Graphen Gliederung der Vorlesung. Fallstudie Bipartite Graphen. Grundbegriffe. Elementare Graphalgorithmen und. Minimal spannende Bäume. Kürzeste Wege 6. Traveling Salesman

Mehr

Kapitel 5: Minimale spannende Bäume Gliederung der Vorlesung

Kapitel 5: Minimale spannende Bäume Gliederung der Vorlesung Gliederung der Vorlesung 1. Grundbegriffe 2. Elementare Graphalgorithmen und Anwendungen 3. Kürzeste Wege. Minimale spannende Bäume. Färbungen und Cliquen. Traveling Salesman Problem. Flüsse in Netzwerken

Mehr

= n (n 1) 2 dies beruht auf der Auswahl einer zweielementigen Teilmenge aus V = n. Als Folge ergibt sich, dass ein einfacher Graph maximal ( n E = 2

= n (n 1) 2 dies beruht auf der Auswahl einer zweielementigen Teilmenge aus V = n. Als Folge ergibt sich, dass ein einfacher Graph maximal ( n E = 2 1 Graphen Definition: Ein Graph G = (V,E) setzt sich aus einer Knotenmenge V und einer (Multi)Menge E V V, die als Kantenmenge bezeichnet wird, zusammen. Falls E symmetrisch ist, d.h.( u,v V)[(u,v) E (v,u)

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 11: Graphen Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009 1/42 Graphische Darstellung von Zusammenhängen schon an vielen Stellen

Mehr

Flüsse und Schnitte von Graphen

Flüsse und Schnitte von Graphen Flüsse und Schnitte von Graphen Christian Koch Friedrich-Alexander-Universität Erlangen-Nürnberg 2. Juni 27 Christian Koch Flüsse und Schnitte 2. Juni 27 / 29 Gliederung Flüsse Allgemeines Maximaler Fluss

Mehr

Algo&Komp. - Wichtige Begriffe Mattia Bergomi Woche 6 7

Algo&Komp. - Wichtige Begriffe Mattia Bergomi Woche 6 7 1 Kürzeste Pfade Woche 6 7 Hier arbeiten wir mit gewichteten Graphen, d.h. Graphen, deren Kanten mit einer Zahl gewichtet werden. Wir bezeichnen die Gewichtsfunktion mit l : E R. Wir wollen einen kürzesten

Mehr

5. Musterlösung. Problem 1: Vitale Kanten * ω(f) > ω(f ). (a) Untersuchen Sie, ob es in jedem Netzwerk vitale Kanten gibt.

5. Musterlösung. Problem 1: Vitale Kanten * ω(f) > ω(f ). (a) Untersuchen Sie, ob es in jedem Netzwerk vitale Kanten gibt. Universität Karlsruhe Algorithmentechnik Fakultät für Informatik WS 05/06 ITI Wagner 5. Musterlösung Problem : Vitale Kanten * In einem Netzwerk (D = (V, E); s, t; c) mit Maximalfluß f heißen Kanten e

Mehr

Kapitel 7: Flüsse in Netzwerken und Anwendungen Gliederung der Vorlesung

Kapitel 7: Flüsse in Netzwerken und Anwendungen Gliederung der Vorlesung Gliederung der Vorlesung. Fallstudie Bipartite Graphen. Grundbegriffe 3. Elementare Graphalgorithmen und Anwendungen 4. Minimal spannende Bäume 5. Kürzeste Pfade 6. Traveling Salesman Problem 7. Flüsse

Mehr

6. Flüsse und Zuordnungen

6. Flüsse und Zuordnungen 6. Flüsse und Zuordnungen In diesem Kapitel werden Bewertungen von Kanten als maximale Kapazitäten interpretiert, die über solch eine Kante pro Zeiteinheit transportiert werden können. Wir können uns einen

Mehr

Greedy Algorithms - Gierige Algorithmen

Greedy Algorithms - Gierige Algorithmen Greedy Algorithms - Gierige Algorithmen Marius Burfey 23. Juni 2009 Inhaltsverzeichnis 1 Greedy Algorithms 1 2 Interval Scheduling - Ablaufplanung 2 2.1 Problembeschreibung....................... 2 2.2

Mehr

4. Segmentierung von Objekten Video - Inhaltsanalyse

4. Segmentierung von Objekten Video - Inhaltsanalyse 4. Segmentierung von Objekten Video - Inhaltsanalyse Stephan Kopf Inhalt Vorgehensweise Berechnung der Kamerabewegungen zwischen beliebigen Bildern Transformation eines Bildes Hintergrundbilder / Panoramabilder

Mehr

lässt sich auch ableiten, dass es einen augmentierenden Pfad der Länge höchstens

lässt sich auch ableiten, dass es einen augmentierenden Pfad der Länge höchstens Praktikum Algorithmen-Entwurf (Teil 5)..5 Matchings in Graphen Es sei ein ungerichteter Graph G = (V, E) gegeben. Ein Matching in G ist eine Teilmenge M E, so dass keine zwei Kanten aus M einen Endpunkt

Mehr

Vorlesung 2 KÜRZESTE WEGE

Vorlesung 2 KÜRZESTE WEGE Vorlesung 2 KÜRZESTE WEGE 34 Kürzeste Wege im Graphen Motivation! Heute:! Kürzeste Wege von einem Knoten (SSSP)! Kürzeste Wege zwischen allen Knotenpaaren (APSP)! Viele Anwendungen:! Navigationssysteme!

Mehr

Algorithmen und Datenstrukturen SS09. Foliensatz 16. Michael Brinkmeier. Technische Universität Ilmenau Institut für Theoretische Informatik

Algorithmen und Datenstrukturen SS09. Foliensatz 16. Michael Brinkmeier. Technische Universität Ilmenau Institut für Theoretische Informatik Foliensatz 16 Michael Brinkmeier Technische Universität Ilmenau Institut für Theoretische Informatik Sommersemester 2009 TU Ilmenau Seite 1 / 45 Graphen TU Ilmenau Seite 2 / 45 Graphen 1 2 3 4 5 6 7 8

Mehr

Inhalt. 1. Flußprobleme. 2. Matching. 3. Lineares Programmieren. 4. Ganzzahliges Programmieren. 5. NP-Vollständigkeit. 6. Approximationsalgorithmen

Inhalt. 1. Flußprobleme. 2. Matching. 3. Lineares Programmieren. 4. Ganzzahliges Programmieren. 5. NP-Vollständigkeit. 6. Approximationsalgorithmen Effiziente Algorithmen Einführung 1 Inhalt 1. Flußprobleme 2. Matching. Lineares Programmieren 4. Ganzzahliges Programmieren 5. NP-Vollständigkeit 6. Approximationsalgorithmen 7. Backtracking und Branch-and-Bound

Mehr

1.Aufgabe: Minimal aufspannender Baum

1.Aufgabe: Minimal aufspannender Baum 1.Aufgabe: Minimal aufspannender Baum 11+4+8 Punkte v 1 v 2 1 3 4 9 v 3 v 4 v 5 v 7 7 4 3 5 8 1 4 v 7 v 8 v 9 3 2 7 v 10 Abbildung 1: Der Graph G mit Kantengewichten (a) Bestimme mit Hilfe des Algorithmus

Mehr

2. November Gradfolgen Zusammenhang Kürzeste Wege. H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 37

2. November Gradfolgen Zusammenhang Kürzeste Wege. H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 37 2. November 2011 Gradfolgen Zusammenhang Kürzeste Wege H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 37 Satz von Erdős und Gallai Eine Partition einer natürlichen Zahl ist genau dann die Gradfolge

Mehr

Name:... Vorname:... Matr.-Nr.:... Studiengang:...

Name:... Vorname:... Matr.-Nr.:... Studiengang:... Technische Universität Braunschweig Sommersemester 2013 IBR - Abteilung Algorithmik Prof. Dr. Sándor P. Fekete Dr. Christiane Schmidt Stephan Friedrichs Klausur Netzwerkalgorithmen 16.07.2013 Name:.....................................

Mehr

Berechnung minimaler Spannbäume. Beispiel

Berechnung minimaler Spannbäume. Beispiel Minimale Spannbäume Definition Sei G pv, Eq ein ungerichteter Graph und sei w : E Ñ R eine Funktion, die jeder Kante ein Gewicht zuordnet. Ein Teilgraph T pv 1, E 1 q von G heißt Spannbaum von G genau

Mehr

3D-Rekonstruktion aus Bildern

3D-Rekonstruktion aus Bildern Allgemeine Nachrichtentechnik Prof. Dr.-Ing. Udo Zölzer 3D-Rekonstruktion aus Bildern Dipl.-Ing. Christian Ruwwe 41. Treffen der ITG-Fachgruppe Algorithmen für die Signalverarbeitung HSU Hamburg 24. Februar

Mehr

Bäume und Wälder. Seminar: Graphentheorie Sommersemester 2015 Dozent: Dr. Thomas Timmermann

Bäume und Wälder. Seminar: Graphentheorie Sommersemester 2015 Dozent: Dr. Thomas Timmermann Bäume und Wälder Seminar: Graphentheorie Sommersemester 2015 Dozent: Dr. Thomas Timmermann Ida Feldmann 2-Fach Bachelor Mathematik und Biologie 6. Fachsemester Inhaltsverzeichnis Einleitung 1 1. Bäume

Mehr

Graphentheorie. Eulersche Graphen. Eulersche Graphen. Eulersche Graphen. Rainer Schrader. 14. November Gliederung.

Graphentheorie. Eulersche Graphen. Eulersche Graphen. Eulersche Graphen. Rainer Schrader. 14. November Gliederung. Graphentheorie Rainer Schrader Zentrum für Angewandte Informatik Köln 14. November 2007 1 / 22 2 / 22 Gliederung eulersche und semi-eulersche Graphen Charakterisierung eulerscher Graphen Berechnung eines

Mehr

1 Zahlentheorie. 1.1 Kongruenzen

1 Zahlentheorie. 1.1 Kongruenzen 3 Zahlentheorie. Kongruenzen Der letzte Abschnitt zeigte, daß es sinnvoll ist, mit großen Zahlen möglichst einfach rechnen zu können. Oft kommt es nicht darauf, an eine Zahl im Detail zu kennen, sondern

Mehr

Perlen der Informatik I Wintersemester 2012 Aufgabenblatt 7

Perlen der Informatik I Wintersemester 2012 Aufgabenblatt 7 Technische Universität München WS 2012 Institut für Informatik Prof. Dr. H.-J. Bungartz Prof. Dr. T. Huckle Prof. Dr. M. Bader Kristof Unterweger Perlen der Informatik I Wintersemester 2012 Aufgabenblatt

Mehr

Bäume und Wälder. Definition 1

Bäume und Wälder. Definition 1 Bäume und Wälder Definition 1 Ein Baum ist ein zusammenhängender, kreisfreier Graph. Ein Wald ist ein Graph, dessen Zusammenhangskomponenten Bäume sind. Ein Knoten v eines Baums mit Grad deg(v) = 1 heißt

Mehr

3. Analyse der Kamerabewegung Video - Inhaltsanalyse

3. Analyse der Kamerabewegung Video - Inhaltsanalyse 3. Analyse der Kamerabewegung Video - Inhaltsanalyse Stephan Kopf Bewegungen in Videos Objektbewegungen (object motion) Kameraoperationen bzw. Kamerabewegungen (camera motion) Semantische Informationen

Mehr

4.7 Der Algorithmus von Dinic für maximalen Fluss

4.7 Der Algorithmus von Dinic für maximalen Fluss 4.7 Der Algorithmus von Dinic für maximalen Fluss Wir kennen bereits den Algorithmus von Ford Fulkerson zur Suche nach einem maximalen Fluss in einem Graphen. Wir lernen nun einen Algorithmus für maximalen

Mehr

Helmut Schauer Educational Engineering Lab Department for Information Technology University of Zurich. Graphen (2)

Helmut Schauer Educational Engineering Lab Department for Information Technology University of Zurich. Graphen (2) Graphen (2) 1 Topologisches Sortieren (1) Die Kanten eines gerichteten zyklenfreien Graphen bilden eine Halbordnung (die Ordnungsrelation ist nur für solche Knoten definiert die am gleichen Pfad liegen).

Mehr