# Satz von Robbins

Der Satz von Robbins (nach Herbert Robbins) ist ein Satz aus der Graphentheorie der einen Zusammenhang zwischen dem Kantenzusammenhang eines ungerichteten Graphen und der Möglichkeit die Kanten so zu orientieren, dass ein stark zusammenhängender gerichteter Graph entsteht herstellt.
Der Satz besagt, dass die Kanten eines zusammenhängender ungerichteten Graphen genau dann so orientiert werden können, dass der entstehende gerichtete Graph stark zusammenhängend ist wenn der ursprüngliche Graph 2-fach kantenzusammenhängend ist (keine Brücken enthält).

## Formulierung des Satzes
### Graphen

    Ein zusammenhängender ungerichteten Graphen hat genau dann eine stark zusammenhängende Orientierung wenn der ursprüngliche Graph 2-fach kantenzusammenhängend ist.
Unter einer Orientierung eines ungerichten Graphen $G=(V,E)$ versteht man einen gerichteter Graph $O=(V,E')$ sodass für jede ungerichte Kante $\{v,u\}\in E$ genau eine der gerichteten Kanten $(v,u),(u,v)$ in $E'$ ist.

### Multigraphen

Der Satz kann auf Multigraphen verallgemeinert werden.
    Ein zusammenhängender Multigraph hat genau dann eine stark zusammenhängende Orientierung wenn der ursprüngliche Multigraph 2-fach kantenzusammenhängend ist.

### Gemischte Graphen

Boesch und Tindell haben den Satz von Robbins auf gemischte Graphen, Graphen die sowohl gerichtete als auch ungerichtete Kanten enthalten.
Ein solcher Graph ist zusammenhängend, wenn es für jedes Paar von Knoten $u,v$ einen Pfad von $u$ nach $v$ gibt, wobei gerichtete Kanten nur in der gegebenen Richtung verwendet werden durften.
    Ein zusammenhängender gemischter Multigraph hat genau dann eine stark zusammenhängende Orientierung, wenn er 2-fach kantenzusammenhängend ist.

## Algorithmus

Der folgende Algorithmus berechnet für einen 2-fach kantenzusammenhängen Graphen $G=(V,E)$ eine Orientierung $H$ von $G$ sodass $H$ stark zusammenhängend ist. Er geht auf die Informatiker John E. Hopcroft und Robert Tarjan zurück.
Der Algorithmus geht in zwei Schritten vor: Zuerst werden die Kanten eines Gerüstes orientiert, das über Tiefensuche bestimmt wird, anschließend werden die restlichen Kanten orientiert.
Es sei
* $M$ die Menge der markierten Knoten,
* $NM$ die Menge der nicht markierten Knoten,
* $m\colon V\to \mathbb {N}$ die Markierung der Knoten,
* $OM$ die Menge der Bögen, die durch die Orientierung der Kanten von $G$ entstanden sind.
1. Wähle einen beliebigen Knoten $x\in V$ von $G$ aus, der markiert wird:
    Setze $m(x)=1;M=\{x\};NM=V\setminus \{x\};OM=\emptyset$
2. Suche jetzt einen Knoten $y$ von $M$, der eine maximale Markierung $m(y)$ und gleichfalls adjazent zu einem Knoten $z$ aus $NM$ ist. Markiere jetzt $z$ mit $m(z)=m(y)+1$. Orientiere anschließend die Kante $\{y,z\}$ von $y$ zu $z$, so dass der Bogen $(y,z)$ entsteht.
Der markierte Knoten $z$ wird aus $NM$ entfernt und zu $M$ hinzugefügt, und der Bogen $(y,z)$ wird zu $OM$ hinzugefügt:
    $M=M\cup \{z\};NM=NM\setminus \{z\};OM=OM\cup \{(y,z)\}$
Überprüfe, ob alle Knoten markiert wurden: Gilt $M\neq V$, dann wiederhole Schritt 2.
3. Es gilt:
* Alle Knoten wurden markiert: $M=V$,
* ein Gerüst von $G$ ist orientiert.
Es lässt sich beweisen, dass alle Kanten, die jetzt noch keine Richtung haben, immer zwei Knoten mit unterschiedlicher Markierung verbinden. Jede nicht orientierte Kante $\{x,y\}$ mit $m(x)>m(y)$ wird nun von $x$ nach $y$ orientiert, d. h. vom Knoten mit der größeren zum Knoten mit der kleineren Markierung, und zu $OM$ hinzugefügt.
Die auf diese Weise konstruierte Orientierung $H=(V,OM)$ des Graphen $G$ ist stark zusammenhängend.