Seminar SS10

Posted January 25, 2010 by dirkolivertheis
Categories: Seminar, Teaching

Im kommenden Sommersemester wird es ein Seminar zum Themenbereich Kombinatorik/Optimierung geben, in dem ich einige Themen betreuen werde.

Das Ziel der von mir angebotenen Themen ist es, sich einge der aktuellen Forschungsrichtungen und -methoden der probabilistisch, analytisch oder algorithmisch ausgerichteten Kombinatorik zu erarbeiten. Es ist Teil des Konzepts, dass die Vortragsthemen nicht nur Stoff aus den Diskrete-Mathematik- und Optimierungvorlesung beinhalten. Vielmehr besteht der Reiz dieser Richtung der Mathematik gerade darin, dass Methoden und Ideen aus anderen Teilen der Mathematik zur Anwendung kommen.

Sollten Sie sich entschließen, über eines der Themen einen Vortrag zu halten, so werden Sie sich im Idealfall noch einige Grundlagen (mit meiner Hilfe) aneignen können, die Sie zum Verständnis des ihrem Vortrag zugrundeliegenden Artikels brauchen.

Im Folgende werde ich einige mögliche Themen auflisten.

1. Zählen mit Entropie

Entropie ist ein informationstheoretisches Konzept. Grob gesagt sagt die Entropie eine Zufallsvariable {X} aus, wie groß ihr Informationsgehalt ist, was gleichbedeutend damit ist, wie gut man eine Folge von {X_1,X_2,\dots,X_n} von unabängigen Zuvallsvariablen, die zu {X} identisch Verteilt sind, komprimieren kann (das ist das berühmte Kodierungstheorem von Shannon).

Entropie hat sich aber als ein wichtiges Werkzeug in verschiedenen Teilen der Mathematik entwickelt, darunter auch die Kombinatorik und algorithmische Mathematik. Hier ein Beispiel.
Theorem. Es sei {A} eine endliche Menge von Punkten in {\mathbf{R}^3}, und {A_i} die Projektion dieser Menge auf die Koordinatenhyperebene {x_i=0}. Dann gilt {|A_1||A_2||A_3| \ge |A|^2}. Das kann man mit Entropie-Methoden wie folgt beweisen: Es sei {P=(X,Y,Z)} ein aus {A} gleichmäßig zufällig gewählter Punkt. Die Entropie von {P} kennt man dann. Nun betrachtet man die Entropien der Projektionen von {P} auf die Koordinatenhyperebenen, und schätzt deren Informationsgehalt ab. So erhält man {\log|A_1| + \log|A_2| +\log|A_3| \ge 2 \log|A|^2}.

In diesem Bereich können mehrere Vorträge vergeben werden. Eine Einarbeitung in die Basics des Entropiebegriffes ist unerläßlich. (Das zahlt sich aber, wie schon erwähnt, nicht nur für die Diskrete & Algorithmische Mathematik aus). Die Vorträge sollen sich dem diesem Übersichtsartikel orientieren: www.tcs.tifr.res.in/{\tilde\ }jaikumar/Papers/EntropyAndCounting.pdf

2. Expansion, Eigenwerte und Random Walks in Graphen

Jemand fährt durch eine Stadt. Immer, wenn er an einer Kreuzung ankommt, würfelt er die Straße aus, die er nun weiterfährt. Man kann sich leicht überlegen, dass, wenn er das unendlich lang macht, die Kreuzung, an der man ihn antrifft, gleichverteilt ist (vorausgesetzt, die Stadt ist “zusammenhängend” und nicht “bipartit”). Aber wie schnell konvergiert dieser Prozess gegen die Gleichverteilung? Die Antwort auf diese Frage führt zu einer tiefen Eigenschaften von Graphen, nämlich der Expansion, die wiederum zu tun hat mit Eigenschaften des Spektrums der Adjazenzmatrix (bzw., genauer gesagt, der Laplace-Matrix).

Expansions- oder, allgemeiner, Eigenwertmethoden sind heute aus den Anwendungen von Graphen für Algorithmen nicht mehr wegzudenken. Für algorithmisch Geneigte ist es wohl zur Zeit das Ding.

In einigen Vorträgen können wir die Beziehungen zwischen Expansion, Eigenwerten und Random Walks in Graphen, sowie die Anwendungen behandeln. Die Vorträge werden sich an dem folgenden Übersichtsartikel orientieren: www.ams.org/bull/2006-43-04/S0273-0979-06-01126-8/home.html.

3. Greedy-Algorithmen auf zufälligen Strukturen und Wormald’sche Methode der Differentialgleichungen

Hier handelt es sich um eine elegante Methode, mit der die Eigenschaften von Algorithmen mit zufälliger Eingabe untersucht werden. Als Beispiel möge der folgende randomisierte Greedy-Algorithmus zum Finden einer unabhängigen Menge in einem Graphen dienen. Zu Begin sei {S:=\emptyset}. Solange es Ecken in {V(G)\setminus S} gibt, die zu keiner Ecke in {S} benachbart sind, wähle eine solche zufällig aus, und füge sie zu {S} hinzu.

Das Verhalten dieses Algorithmus auf zufälligen regulären Graphen kann man mit Wormalds Methode analysieren. Es ergibt sich ein System von gewöhnlichen Differentialgleichungen, wobei die Variable, nach der differenziert wird, die “Zeit” im Algorithmus ist. Aus der Lösung des DGl-Systems kann man dann ablesen, wie sich der Algorithmus über die Zeit entwickelt und insbesondere, wann er (mit hoher Wahrscheinlichkeit) terminiert. (Terminiert der Algorithmus nach {t} Schritten, so hat er eine unabhängige Menge der Größe {t} gefunden.)

Allgemeiner formuliert ist Wormalds Methode anwendbar, wenn sich für die bedingten Erwartungen der Beobachtungsvariablen eines (diskreten) Zeitschritts eines stochastischen Prozesses ein System von gewöhnlichen Differentialgleichung aufstellen läßt. Unter gewissen Bedingungen (Lipschitzstetigkeit etc.) kann man dann zeigen, dass sich nicht nur die Erwartungswerte, sondern die Beobachtungsvariablen selber mit hoher Wahrscheinlichkeit wie die Lösung des Differentialgleichungssystems verhalten.

Zu diesem Themenbereich können mehrere Vorträge vergeben werden. Der nicht-kombinatorischen Anteil ist hier Wahrscheinlichkeitstheorie und stochastische Prozesse. Es wird möglicherweise nur um die Anwendung der Methode in Beispielen gehen und nicht um den Beweis der Korrektheit, der w-theoretisch anspruchsvoller ist.

4. Themenbereich Property Testing

Mit dem Begriff Property Testing bezeichnet man das Problem, einen Algorithmus zu finden, der in sublinearer Zeit entscheiden, ob das Eingabeobjekt eine bestimmte Eigenschaft hat, oder weit davon entfernt ist, die Eigenschaft zu haben. Property Testing Algorithmen gibt es zu den verschiedensten Arten von Objekten (z.B. Graphen), wie auch zu den verschiedensten Eigenschaften.

Das Feld hat in den letzten Jahren durch Zusammenhänge zu Quasizufälligkeit große Fortschritte gemacht.

Ich würde gerne zu diesem Themenbereich mehrere Vorträge vergeben, habe mir bisher aber noch nicht genau überlegt, welche.
Eine gute Vorauswahl findet sich hier.

5. Themenbereich fourieranalytische Methoden

Es gibt einige mögliche Vorträge zu analytischen Methoden im weitesten Sinne. (Diesen Abschnitt werde ich vielleicht noch ergänzen.)

Jean Bourgains Paper

Das folgende Paper des Fields-Medaillisten Jean Bourgain gibt einen Beweis für den folgenden Sachverhalt: Ist {A\subset\mathbb{R}^2} eine Menge mit positiver oberer Dichte (d.h. {\limsup_{r\rightarrow\infty} |A\cap B(0,r)|/|B(0,r)| > 0}), dann existiert ein {\ell}, so dass für jedes {\ell'>\ell} Punkte {x,y\in A} existieren, mit {|y-x|=\ell'}. Der Beweis benutzt elementare Fourieranalysis.

http://www.springerlink.com/content/a343g53033872345/?p=a3508dbd5dc74e51a0f17149a73f0cbf&pi=4

Tamar Zieglers Paper

Bourgain beweist das oben beschriebene Resultat, indem er zunächst ein viel stärkeres Theorem beweist, dass im Wesentlichen besagt, dass für geeignete endliche Mengen {V} die Menge {A} isometrische Kopien von {\ell' V} enthält, für alle groß genugen {\ell'}.

Dieses Theorem wurde auf höhere Dimensionen verallgemeinert. Der Beweis kommt nicht mehr mit Fourieranalysis aus, er benutzt stattdessen Ergodentheorie. Das Paper findet sich hier:

http://www.springerlink.com/content/bxu1pp8024233891/?p=95774a32b0244e16b7aeecae472e8f8a&pi=13

VL Komb-Opt: Klausur

Posted January 20, 2010 by dirkolivertheis
Categories: Komb-Opt, Teaching

Liebe Übungsteilnehmerinnen und -Teilnehmer,

Nutzen Sie die Möglichkeit, in den Kommentaren zu diesem Post Ihre (inhaltlichen) Fragen bei der Klausurvorbereitung zu posten.
Natürlich sollten Sie auch Fragen oder andere Kommentare Ihrer Kommilitonen beantworten oder kommentieren.

Schauen Sie also mindestens regelmäßig ‘rein, ob Fragen oder Antworten gepostet wurden, die Ihnen bei der Klausur helfen könnten! Dazu können Sie sich auch automatisch bei jedem neuen Kommentar eine Email schicken lassen, dadurch bleiben Sie immer “dabei”. Vergessen Sie aber nicht, zu kommentieren, wenn Sie etwas wissen!

Viele Grüße

Dirk Oliver Theis

VL-KombOpt: Lösungen zu Blatt 9

Posted December 17, 2009 by dirkolivertheis
Categories: Komb-Opt, Teaching

Aufgabe 2: Dimension des Matching Polytops

Hier habe ich leider einen groben Fehler ‘reingeschludert: der Graph sollte vollständig sein :( — sorry!

Hier die Berechnung der Dimension des perfekten Matchingpolytops zu {K_n}. Ist {n} ungerade, so ist das Polytope leer. Sei also {n} gerade. Im Fall von {n=2} ist die Dimension 0. Sei nun {n\ge 4} und gerade.

Zunächst ist die Dimension höchstens {\binom{n}{2} - r}, wo {r} der Rang der Gradgleichungsmatrix ist: Das System der Gradgleichungen ist {Ax=1}, wobei {A} die Ecken-Kanten-Inzidenzmatrix von {K_n}. Die Matrix {A} hat Rang {n}, was man sieht, wenn man das Gleichungssystem {A^T y= 0} löst. Für jede Kante {uv} muß dann nämlich {y_u = - y_v} sein. Setzt man Kanten zu einem ungeraden Kreis zusammen, so erhält man {y_u = 0} für alle Ecken {u} auf dem Kreis.

Nun müssen wir noch zeigen, dass es außer Linearkombinationen von der Gradgleichungen keine weiteren zulässigen Gleichungen für das Polytop gibt. Dazu benutzen wir Satz 3.19 (bzw. Edmonds Matching-Polytop-Theorem), indem wir zeigen, dass keine der Ungleichungen in der vollständigen Beschreibung des perfekten Matching Polytops insgeheim eine Gleichung ist.

Fangen wir an mit den Ungleichungen {x_e \ge 0}. Die entsprechende Gleichung {x_e=0} ist nicht zulässig für das Polytop, da es klar ein Matching gibt, das {e} enthält.

Nun zu den Blütenungleichungen {x(\delta(U))\ge 1}. Beachte zunächst, dass für {|U|=1} diese Ungleichung gerade zu einer Grad(un-)gleichung wird; genauso für {|U|=n-1}. Sei also {3\le |U|\le n-3}, und wähle {u,u',u''\in U} sowie {v,v',v''\not\in U}. Da {U^- := U\setminus\{u,u',u''\}} einen vollständigen Graphen {G[U^-]} mit gerade vielen Ecken induziert, gibt es in {G[U^-]} ein perfektes Matching {M_1}, wobei wir {M_1=\emptyset} für den Fall {U^-=\emptyset} erlauben. Genauso gibt es ein (möglicherweise leeres) perfektes Matching {M_2} in dem Graphen {G-(U\cup\{v,v',v''\})} mit Eckenmenge {V\setminus U\setminus\{v,v',v''\}}. Nun ist aber {M:=M_1\cup M_2\cup\{uv,u'v',u''v''\}} ein perfektes Matching in {G}. Mit {x := \chi(M)} ist {x(\delta(U)) = 3 > 1}. Somit ist gezeigt, dass die Blütenungleichungen keine impliziten Gleichungen sind.

Aufgabe 3: Blütenfacetten

Auch hier hat sich ein kleiner Fehler eingschlichen: Wie oben schon beobachtet, sind die Blütenungleichungen {x(E(U)) \le (|U|-1)/2} gerade Grad(un-)gleichungen, wenn {|U|\le 3} oder {|U|\ge n-3} ist. Somit ist auch mindestens {n \ge 6} nötig.

Ausserdem beachte man, dass die beiden Ungleichungen {x(E(U))\le(|U|-1)/2} und {x(E(V\setminus U))\le(|V\setminus U|-1)/2} “modulo” der Gradgleichungen identisch sind. (In der VL war das so formuliert: Die beiden haben im von den Gradgleichungen definierten affinen Raum die gleiche Lösungsmenge).

Wie im Hinweis angegeben, suchen wir einen Punkt, der {x}, der alle Schranken {x_e\ge 0}, alle Gradgleichungen {x(\delta(u))=1} und alle Blütenungleichungen {x(E(U')) \le (|U'|-1)/2} erfüllt, aber die Blütenungleichung mit der Menge {U} verletzt: {x(E(U)) > (|U|-1)/2.}

Dazu müssen wir die linke Seite der Blütenungleichung {x(E(U))} über das Polyeder der übrigen Ungleichungen maximieren. Wir definieren den folgenden Punkt {x}. Sei {k:=|U|}. Für Kanten {e\in E(U)} setzen wir {x_e := \frac{1}{k-1}}, für Kanten {e\in E(V\setminus U)} setzen wir {x_e := \frac{1}{n-k-1}}, und für Kanten {e\in\delta(U)} setzen wir {x_e:=0}. Offenbar sind die Gradgleichungen erfüllt. Für jede {j}-elementige Teilmenge {U'\subsetneq U} gilt dann {x(E(U')) = \binom{j}{2}/(k-1) \le (j-1)/2}. Genauso hat man für jede {j}-elementige Teilmenge {U'\subsetneq V\setminus U}, dass {x(E(U')) \binom{j}{2}/(n-k-1) \le (j-1)/2}. Für jede Menge {U'\subset V} mit {U'\ne U,V\setminus U} hat man damit aber {x(U') = x(U'\cap U) + x(U'\setminus U) = (|U'\cap U|-1)/2 + (|U'\setminus U|-1)/2 \le (|U'|-1)/2}. Alle Blütenungleichungen sind also erfüllt. Für {U} selber erhält man aber {x(E(U)) = |U|/2 > (|U|-1)/2}.

Aufgabe 4: Benachbarte Ecken auf dem Perfekten-Matching-Polytop

Für diese Aufgabe haben wir die eine Richtung schon in der Übung gesehen: Wenn die symmetrische Differenz zwischen {M_0} und {M_1} ein Kreis ist, sind die beiden benachbart. Es fehlt die Rückrichtung: Wenn die symmetrische Differenz kein Kreis ist, sind sie nicht benachbart.

Dazu seien {M_0} und {M_1} perfekte Matchings, deren symmetrische Differenz aus den eckendisjunkten Kreisen {C_1,\dots,C_k} besteht. Man kann nun {2^k} verschiedene perfekte Matchings konstruieren, indem man für jeden der {k} Kreise entweder {M_0} nimmt oder {M_1}. Ist {\epsilon\in\{0,1\}^k}, so bezeichne {M_\epsilon} das entsprechende Matching. Wir rechnen nun nach

\displaystyle  \sum_{\epsilon\in\{0,1\}^k} 2^{-k} \chi(M_\epsilon) = \frac{1}{2}\chi(M_0) + \frac{1}{2}\chi(M_1).

Für Kanten, die entweder sowohl in {M_0} als auch in {M_1} sind oder die weder in {M_0} noch in {M_1} sind, ist die Gleichung offenbar wahr. Eine Kante in einem der Kreise ist in genau {2^{k-1}} der {2^k} Matchings, also ist ihr Koeffizient auf der linken Seite {1/2}, genauso wie auf der rechten.

VL-KombOpt: Einige Lösungen zu Blatt 6

Posted November 26, 2009 by dirkolivertheis
Categories: Komb-Opt, Teaching

Achtung: Beachte die Mitteilung im Kommentar zu Blatt 7

Aufgabe 1: Bipartite Matching als Min-Cost-Flow

Im Teil (b) war noch die Frage nach dem “dualen” Problem. Sowohl über das Min-Cost-Flow, wie auch durch direktes Hinschreiben erhält man die folgende LP-Formulierung: {min\ c^T x} unter den Nebenbedingungen {x(\delta(u)) = 1} für alle Knoten {u} von {G} und {x_e \ge 0} für alle Kanten {e} von {G}. Das duale Programm ist das folgende: {max\ \sum_u y_u} unter den Nebenbedingungen {y_u + y_v \le c_{uv}} für alle {uv\in E(G)}. Das duale Problem besteht also darin, eine reele “Knoten-{c}-Packung” {y} maximaler “reeler Kardinalität” zu finden. (Generell ist eine (nicht-negativ ganzzahlige mit {c=1}) “Knotenpackung” eine Auswahl von Ecken, so dass in jeder Kante nur eine Ecke gewählt wurde — mit anderen Worten, eine unabhängige Menge.)

Aufgabe 2: Level-Max-Flow

Teil (d): Wie bestimmt man in Zeit {O(|V||A|)} einen blockierenden Fluß im Level-Netzwerk?

Bequemer Algorithmus: Starte mit Fluß {f'=0} und Restkapaziät {c' := c_f}. Suche einen {s-t}-Weg in {D^L}, der nur Bögen {(u,v)} mit {c'(u,v)>0} benutzt. Existiert keiner, so sind wir fertig. Existiert einer, so erhöhe {f'} wie üblich, und verkleinere {c'}. Beachte, dass dadurch für einen Bogen {(u,v)} die Restkapazität {c'(u,v)} auf 0 fällt.

Es wird höchstens {|A|} mal ein {s}-{t}-Weg gesucht. Der Trick ist, dass man das Suchen eines solchen Weges in Zeit {O(|V|)} machen kann, denn jeder Knoten in {D^L} außer {s} hat einen Vorgänger im Level darüber.

Aufgabe 3: Satz von Tutte für Genügsame

(1) Wir zeigen zunächst: Wenn {G} ein perfektes Matching hat, so gilt für jede Eckenmenge {S \subset V(G)}, dass {G-S} höchstens {|S|} Zusammenhangskomponenten ungerader Kardinalität hat. Spasseshalber zeigen wir das für beliebige Graphen {G}.

Es sei {M} ein perfektes Matching und {S \subset V(G)}, und {H} eine ungerade (d.h. ungerade Kardinalität) Zusammenhangskomponente von {G-S}. Da {M} ein perfektes Matching ist und {|V(H)|} ungerade, verläuft mindestens eine Kante von {M} zwischen {H} und {S}. Bezeichnet man mit {s_H} die Endecke dieser Kante in {S}, so hat man, dass die {s_H} alle verschieden sind, und somit die gewünschte Ungleichung gilt.

(2) Offensichtlich ist, dass, wenn die Bedingung für alle Eckenmengen {S} gilt, sie auch für die einelementigen gilt.

(3) Wir zeigen, dass in Bäumen {G} (mit mindestens einer Kante(!)) folgendes gilt. Hat für jede Ecke {s\in V} der Wald {G-s} höchstens eine Zusammenhangskomponenten ungerader Kardinalität, so hat {G} ein perfektes Matching.

Aus der Bedingung folgt zunächst, dass {G} gerade viele Ecken hat (wähle für {s} eine Ecke, die zu einem Blatt benachbart ist).

Für die Existenz des perfekten Matching sei {M} ein Matching in {G}, und {s} eine exponierte Ecke von {G}. Da {G} gerade viele Ecken hat, gibt es eine Komponente {H} von {G-s} mit ungerader Kardinalität. Insbesondere ist {M\cap E(H)} kein perfektes Matching von {H}. Sei {v} eine exponierte Ecke von {H}, und {P} der eindeutige {s-v}-Weg in {G}. Dieser Weg beginnt mit einer Kante {\not\in M} und endet mit einer Kante {\not\in M}, und zwischen zwei Kanten {\in M} ist immer mindestens eine Kante {\not\in M}. Es gibt also auf {P} einen Teilweg {Q} mit der Eigenschaft, dass die erste und die letzte Kante nicht in {M} sind, und auf dem sich ansonsten {M}-Kanten und Nicht-{M}-Kanten abwechseln. Ändert man {M}, indem man jede {M}-Kante in {Q} aus {M} entfernt und dafür jede Nicht-{M}-Kante zu {M} hinzufügt, so erhält man ein Matching mit größerer Kardinalität.

Matchings, die Ecken exponiert lassen, haben also nie maximale Kardinalität. Ein Matching maximaler Kardinalität ist somit ein perfektes Matching.

Es gibt auch einen Beweis ohne augmentierende Wege, aber ich finde den hier eleganter, zumal er von der Augmentierende-Wege-Eigenschaft nur die trivale Richtung benutzt (wenn es einen augmentierenden Weg gibt, ist das Matching nicht kardinalitätsmaximal).

VL Komb-Opt: Programmierprojekt

Posted November 11, 2009 by dirkolivertheis
Categories: Komb-Opt, Teaching

Ein riesen Lob und Hurra an und über Matthias Walter, der die Datenstrukturen vorbereitet hat, und das gleich in Varianten für drei Entwicklungsumgebungen, aber mit allem Comfort! Und den Text unten hat er auch geschrieben (bis auf die Fehler, die ich reingewürgt habe, natürlich).

Leider konnte ich die nötigen Dateien (Datenstruktur mit Funktionen, Makefiles etc, Testgraphen) noch nicht hochladen, weil das mit WordPress nicht geht und ich keine andere Internetseite habe. Die Sachen kommen in den nächsten Tagen.

Problemstellung

Betrachtet wird das Maximum-Cardinality-Matching-Problem. Ihre Aufgaben sind wie folgt:

  1. Implementieren Sie Edmond’s Blossom Shrink Algorithm in C oder C++. Nutzen Sie dafür die bereitgestellte Datenstruktur für eine Adjazenzliste! Ihr Code soll den üblichen Standards entsprechend dokumentiert sein.
  2. Vergleichen Sie die theoretische asymptotische Laufzeit der Implementierung mit der aus der Vorlesung.
  3. Messen Sie die Laufzeit der Implementierung für die Beispiel-Graphen und vergleichen Sie diese mit den theoretischen Überlegungen.

Graphen & Matchings

Unter dem Link, der später im Kommentar nachgelifert wird, finden Sie eine Sammlung von Graphen, mit denen Sie ihren Code testen können. Dabei werden Graphen {G=(V,E)} mit {V = [n]}, {m = |E|} und {e_i = \{ u_i, v_i \}} wie folgt kodiert:

{n} {m}
{u_1} {v_1}
{u_2} {v_2}

{u_m} {v_m}

In den Dateien für das Projekt sind nun immer 2 Graphen hintereinander enthalten: Zunächst der eigentliche Graph, gefolgt vom Matching, welches ebenfalls als Graph aufgefasst ist. Die beiden Knotenzahlen müssen somit gleich sein und die Kantenzahl im Matching-Teil entspricht der Kardinalität dieses.

Hinweis: Sie können in ihrer Implementation nicht davon ausgehen, dass der Eingabegraph zusammenhängend ist!

Quellcode für die Adjazenzliste

Es stehen drei Varianten des zur Verfügung gestellten Codes zur Auswahl: Windows-Nutzer können den DevCpp verwenden, Linux-Nutzer das Makefile-Projekt, und Freunde der Eclipse C/C++ Development Tools kommen auch auf ihre Kosten.

Die entsprechenden Dateien werden in den nächsten Tagen auf Internet zur Verfügung gestellt. Ich schreibe dann einen Kommentar mit den Links.

In den Dateien “graph.h” und “graph.c” ist eine Adjazenzliste implementiert. Dabei wurden statt Listen jedoch dynamische Felder verwendet. Es gibt Routinen zum Erzeugen, Löschen, Ausgeben, Manipulieren, Lesen und Schreiben von Graphen.

Sie müssen diese Datenstruktur in ihrem Algorithmus verwenden!

In der “main.c” ist bereits etwas Code für das Hauptprogramm vorbereitet. Dieser liest oben beschriebene Dateien ein, ruft eine augment-Funktion in der Datei “algorithm.c” auf, die Sie noch mit Leben erfüllen dürfen und schreibt das konstruierte Matching zusammen mit dem Graphen in eine Ausgabe-Datei. Dabei wird u.a. die Laufzeit gemessen. Der Aufruf des Programms sieht wie folgt aus:

./KombOptMatching EINGABE-DATEI AUSGABE-DATEI

Auswertung

Zur Zeitmessung ist die clock-Funktion bereitgestellt. Die damit gemessene Prozessorzeit wird in der Summary-Zeile ausgegeben.

Nutzen Sie diese, um die asymptotische Laufzeit für reale Daten abzuschätzen und mit den theoretischen Überlegungen zu vergleichen.

Quellcode und Auswertung sind bis zum 14. Januar 2010 abzugeben.

Komb-Opt Übungsblatt 3

Posted November 8, 2009 by dirkolivertheis
Categories: Komb-Opt, Teaching

Aufgabe 4

In Blatt 3 gab es eine kleine Unstimmigkeit: in Aufgabe 4 muss man “{c}-kürzester {s}-{t}-Weg” durch “{c}-kürzester {s}-{t}-Pfad” ersetzen, da man natürlich nicht davon ausgehen kann, dass ein {c}-kürzester {s}-{t}-Pfad mit ungerader Länge überschneidungsfrei ist. Die sinnvollste Variante der Aufgabe würde nach einem kürzesten Kreis (überschneidungsfrei) mit ungerader Länge bei nicht-negativen Kantengewichten fragen.

Aufgabe 3

Hier noch mal die Lösung zur Aufgabe 3.c von Blatt 3, die wir in der Übung nicht beendet haben. Außerdem war in meinen Ausführungen an der Tafel ein Fehler.

Die Frage war nach den zulässigen Basen des linearen Programms

\displaystyle  \begin{array}{rcl}  \begin{pmatrix} A & 0 \\ I & I \end{pmatrix} \begin{pmatrix} f\\g \end{pmatrix} &=& \begin{pmatrix} 0\\1\\M \end{pmatrix},\\ f,g \ge 0, \end{array}

wobei {A} die {n\times m} Inzidenzmatrix ist, und {I} die {m\times m} Einheitsmatrix. Die Koeffizientenmatrix hat Rang {m+n-1}, (das ist immer der Fall, wenn man drei Matrize {A,B,C} hat ({A} über {B}, {B} neben {C}), und das Bild von {B} ist im Bild von {C} enthalten).

Zunächst mal zur Benennung der Spalten: Sowohl deren linke Hälfte als auch die rechte entsprechen gerade Bögen. Eine Menge von Spalten entspricht also zwei Mengen von Bögen {E}, {F}, sagen wir {E} für die linke Hälfte und {F} für die rechte.

Zunächst einmal die Basen, ohne “zulässig”. Damit eine Basis herauskommt, muss {|E|+|F|=m+n-1} sein. Außerdem muss in der unteren Hälfte der Matrix in jeder Zeile mal eine 1 vorkommen, also braucht man {\lvert E\cup F \rvert = m}. Aber man braucht auch, dass {E\cap F} keine Kreise enthält: denn sonst hätte man für die Matrix {A} eine Linearkombination der Null deren Träger (= nicht-null-Koeffizienten-Bögen) in {E\cap F} enthalten ist, und was dabei mit dem {I} links unten passiert, könnte man mit den entsprechenden Bögen in der rechten Hälfte der Koeffizientenmatrix reparieren, so dass auch in der unteren Hälfte der Koeffizientenmatrix Null herauskommt. Aus {m = |E\cup F| = |E| + |F| - |E\cap F| = m+n-1 - |E\cap F|} schließt man {|E\cap F| = n-1}, und schließlich, dass {E\cap F} die Bogenmenge eines aufspannenden Baumes bezeichnet (wir gehen mal davon aus, dass das Netzwerk zusammenhängend ist).

Zusammenfassend haben wir für die Konstruktion einer Basis nur die Freiheit, die Bogenmenge eines Baumes auszuwählen, diese Bögen sowohl in {E} als auch in {F} zu packen, und die übrigen Bögen zwischen {E} und {F} aufzuteilen.

Wann ist eine Basis nun zulässig?

Wenn wir das Gleichungssystem lösen, so sind die Werte der Variablen {f_{E\setminus F}} in der linken Hälfte, die zu {E\setminus F} gehören, und genauso die Werte der Variablen in der rechten Hälfte {g_{F\setminus E}}, die zu {F\setminus E} gehören, sofort ablesbar: Sie haben den gleichen Wert, wie die jeweilige rechte Seite in der zugehörigen Zeile der unteren Hälfte der Matrix, also {1} oder {M}.

Was den Rest angeht, so sind die Variablen {f} zu den Bögen im Baum {B:=E\cap F} in der linken Hälfte der Matrix dadurch bestimmt, dass die Gleichung

\displaystyle  A_{(\cdot,B)} f_B = - A_{(\cdot,E\setminus F)} f_{E\setminus F} \ \ \ \ \ (1)

gelten muss, denn {A_{(\cdot,B)}} hat vollen Spaltenrang. Die Werte der Variablen {g_B} zu den Bögen in {B} in der rechten Seite der Matrix ergeben sich dann direkt durch die untere Hälfte der Matrix.

Für die Zulässigkeit braucht man {f,g\ge 0}, wir müssen also sicherstellen, dass in~(1) ein {f_B \ge 0} herauskommt, und dass dieses dann zu einem {g_B \ge 0} führt. Letzteres ist äquivalent zu {f_B(a) \le 1} für {e\ne(s,t)} und {f_B(a) \le M} für {a=(t,s)}. Puh! Gibt’s eine kurze Lösung für die Aufgabe?!???

Also Frage: Für welche Bäume {B} kann man in {f} die Bögen im Komplement {\bar B} von {B} ({= E\setminus F}) auf die obere Schranke setzen, und erhält, wenn man {A_B f_B = -A_{E\setminus B} f_{\bar B}} nach {f_B} löst, ein {f_B} zwischen {0} und den oberen Schranken?

Dazu überlegen wir uns noch kurz, dass man in dieser Situation den Wert von {f} auf einem Baumbogen {a} folgendermaßen bestimmen kann: Entfernt man {a} aus dem Baum, so erhält man 2 Zusammenhangskomponenten, also eine Bipartition {V = U\uplus W} der Knotenmenge, sagen wir mit dem Anfangsknoten ({-1}-Inzidenzmatrixeintrag) von {a} in {U} und dem Zielknoten in {W}. Wegen {0 = f(U,W) = f_a + f(\bar B\cap (U,W))} gilt {f_a = - f(\bar B\cap (U,W))}. Ok, das war schneller ausgerechnet als ich dachte. Super. Wenn ich mich nicht irre (was eher wahrscheinlich ist) brauchen wir also für jeden Bogen {a} im Baum {B} die Eigenschaften

\displaystyle  \begin{array}{rcl}  &1 \ge |\delta^{in}(U)| - |\delta^{out}(U)\setminus\{a\}| \ge 0, \\ &1 \ge |\delta^{in}(U)| - |\delta^{out}(U)\setminus\{a\}| -M+1\ge 0, \\ &M \ge |\delta^{in}(U)| - |\delta^{out}(U)\setminus\{a\}| \ge 0, \\ &1 \ge |\delta^{in}(U)| +M-1 - |\delta^{out}(U)\setminus\{a\}| \ge 0, \end{array}

wobei die vier Zeilen den vier Fällen entsprechen: {s,t \in U} oder {s,t\in W}; {s \in U} und {t\in W}, {(s,t)\ne a}; {s \in U} und {t\in W}, {(s,t)= a}; {t \in U} und {s\in W}.

Weder die zweite noch die vierte Ungleichung ist erfüllbar ({M\gg m}), also entsprechen die zulässigen Basen Bäumen {B} mit der Eigenschaft, dass für jede Kante {a} des Baumes mit den Bezeichnungen wie oben {s,t \in U} oder {s,t\in W} oder {(s,t)=a} gilt und ausserdem

\displaystyle  \begin{array}{rcl}  &2 \ge |\delta^{in}(U)| - |\delta^{out}(U)| \ge 1, \\ &M+1 \ge |\delta^{in}(U)| - |\delta^{out}(U)| \ge 1, \end{array}

gilt, für die beiden Fälle, dass {s,t \in U} oder {s,t\in W}; oder {(s,t)= a}. Stimmts ?

Magdeburger Problem Solving Group

Posted November 1, 2009 by dirkolivertheis
Categories: Problem Solving / Undergraduate Research, Teaching

Hier endlich mal ein Post zu unserer Problemlösegruppe.

Das Lösen von Mathe-Problemen in kleinen Gruppen ist eine meiner Top-Fun-Beschäftigungen. Die MD-PSG richtet sich an Studis, die auch Spaß am Lösen schwieriger mathematischer Probleme haben.

Wir treffen uns wöchentlich und grübeln über Probleme, die monatlich im American Mathematical Monthly, einer Publikation der Mathematical Association of America erscheinen. Diese Aufgaben kommen aus allen Bereichen der Mathematik. Obwohl sie nur undergraduate Kentnisse erfordern (Magdeburger Vordiplomkentnisse genügen), liegt ihr Schwierigkeitsgrad (meistens) jenseits von Übungsaufgabenniveau, und die Lösungen erfordern (in der Regel) einige relativ clevere Ideen.

Bei der MD-PSG steht der Fun-Faktor absolut im Fordergrund. Das Angebot zielt nicht auf Bildung eines Hypergenieclubs, sondern richtet sich vielmehr an diejenigen, denen das Grübeln an schwierigen mathematischen Problemen in einer Gruppe Spaß macht.

Die Gruppe betsteht zur Zeit aus ca. 5 Studis, im ca. 4. Semester Mathe/Wirtschaftsmathe/Computermathe.

Am vergangenen Donnerstag haben wir die folgende Aufgabe gelöst: Für jedes n, bestimme das Maximum der Funktion x\mapsto \min_{k<l} \lvert x_k-x_l\rvert über alle x in der n-dimensionalen (euklidischen) Einheitskugel.
Die Aufgabe entpuppte sich aber als Enttäschung: unsere Lösung besteht in der Beobachtung, dass für das Maximum nur Punkte in Frage kommen, die \sum_k x_k = 0 erfüllen, und für die (bei geeigneter Umnummerierung der Indizes) x_{k+1} - x_k konstant ist. Wenig beeindruckend.

Ein Problem, mit dem wir uns schon vorletzte Woche beschäftigt haben, und für das wir die Lösung noch nicht kennen ist das folgende: Gibt es zwei ganzzahlige symmetrische 2×2-Matrizen mit der Eigenschaft, dass alle Produkte, die man aus den beiden bilden kann, paarweise verschieden sind?

Wenn Sie Student in Magdeburg sind und Interesse an unserer PSG haben, kontaktieren Sie mich am besten per Email.

VL: Kombinatorische Optimierung

Posted October 12, 2009 by dirkolivertheis
Categories: Komb-Opt, Teaching

Liebe Übungsteilnehmer,

Auf dieser Seite werde ich Neuigkeiten zur Vorlesung in Form von Kommentaren posten.

Links auf die Übungsblätter finden sich auch in den Kommentaren.

Sie Ihrerseits sind willkommen, Fragen zu stellen und Kommentare abzugeben.

Viel Spaß bei der Vorlesung und den Übungen!

Dirk Oliver Theis

VL: Probabilistic Method

Posted July 16, 2009 by dirkolivertheis
Categories: Probabilistic Method, Teaching

Hallo,

Im Wintersemester 2009/10 biete ich eine Vorlesung über Wahrscheinlichkeitstheoretische Methoden in der Kombinatorik an, oder, auf gut neu-deutsch: Probabilistic Method.

Die Grundidee der Probabilistic Method ist, kombinatorische Fragestellungen, wie sie in verschiedenen Bereichen der Mathematik immer wieder auftauchen, mit wahrscheinlichkeitstheoretischen Methoden anzugehen. Hier ein Beispiel.

Theorem. Eine “typische” natürliche Zahl n hat \log\log n + O(\sqrt(\log\log n)) Primteiler.

Die Formulierung hier ist natürlich informell. (Und die Bedeutung der O-Notation werde ich genau erklären.) Der Beweis dieses Theorems ist eine typische Anwendeung der Methode des zweiten Moments: Man rechnet zunächst, dass die durchschnittliche Zahl der Primteiler \log\log n + O(1) ist. Dann berechnet man die Standardabweichung, und kommt auf O(\sqrt{\log\log n}) +O(1). Schließlich wendet man die bekannte Chebyschev’she Ungleichung an, um die gewünschte formale Aussage zu erhalten.

Die Intention der Vorlesung liegt darin, die wahrscheinlichkeitstheoretischen Werkzeuge (im obigen Beispiel Chebyshev’sche Ungleichung) zu erlernen, und ihre Anwendung an Beispielen einzuüben.

Die Chebyshev’sche Ungleichung gehört zu den elementareren Werkzeugen, die wir kennenlernen werden. Ein anderes eher einfaches Werkzeug ist das sogenannte Local Lemma. Stellen Sie sich vor, sie sind in der folgenden Situation: Sie wollen die Existenz eines Objekts zeigen, das eine Reihe von unerwünschten Eigenschaften A_1,\dots,A_n nicht hat. Wenn die Eigenschaften “statistisch” unabhängig wären, würde man einfach argumentieren, dass das Produkt der Wahrscheinlichkeiten 1-Pr(A_j) (dass A_j nicht eintritt) strikt größer 0 ist. Aber was, wenn das Eintreten eines A_j einige andere A_i wahrscheinlicher macht? Das Local-Lemma gibt eine Antwort auf diese Frage: Unter bestimmten Bedingungen an die Abhängigkeiten und die Wahrscheinlichkeiten der A_j gibt es ein Objekt, das die unerwünschten Eigenschaften nicht hat.

Ein weiterer Bereich sind stochastische Prozesse. Der Höhepunkt dieses Bereichs (und der Vorlesung) ist die elegante Differentialgleichungsmethode nach Wormald. Sie ist anwendbar, wenn sich für die bedingten Erwartungen der Beobachtungsvariablen eines (diskreten) Zeitschritts eines stochastischen Prozesses ein System von gewöhnlichen Differentialgleichung aufstellen läßt. Unter gewissen Bedingungen kann man dann zeigen, dass sich nicht nur die Erwartungswerte, sondern die Beobachtungsvariablen selber “asymptotisch fast überall” wie die Lösung des Differentialgleichungssystems verhalten.

Kenntnis einer einführenden Vorlesung zur Wahrscheinlichkeitstheorie wird vorausgesetzt (und natürich der Grundvorlesungsstoff), aber alles Weitere werde ich in der Vorlesung genau erklären.

-DOT

VL Lineare Optimierung: Klausur

Posted June 25, 2009 by dirkolivertheis
Categories: Lin-Opt

Klausur:

Do 9. Juli, 17:00 Uhr in G16 159/300 Hörsaal H5.

Hier ein “Repetitorium” für die Vorlesung (nützlich auch zur Prüfungsvorbereitung): http://dirkolivertheis.files.wordpress.com/2009/07/repetitorium.pdf.

Die anonymisierten Klausurergebnisse sind hier: http://dirkolivertheis.files.wordpress.com/2009/07/klausur-anonym.pdf

Vielen Dank, dass Sie da waren, es hat Spaß gemacht!

-DOT