85 lines
2.4 KiB
Markdown
85 lines
2.4 KiB
Markdown
# Einleitung
|
||

|
||
|
||
## Das Ampelproblem
|
||

|
||
|
||
|
||
### Lösungsansatz
|
||
- ungerichteter Graph $G = (V, E)$
|
||
- V = endliche Knotenmenge
|
||
- E = endliche Kantenmenge
|
||
- wichtige Eigenschaft: si, sj verträglich oder nicht
|
||
|
||
|
||
> Graph G=(V, E) für kommende Abbildung:
|
||
>
|
||
> V = {s1, s2, s3, s4, s5, s6},
|
||
> E = {{s1, s4}, {s1, s5}, {s2, s4}, {s2, s5}, {s3, s6}, {s4, s5}}
|
||
|
||

|
||
|
||
### Formalisierung des algorithmischen Vorgehens
|
||
1. Verträglichkeitsgraphen erstellen ($G = (V,E)$)
|
||
2. finde eine größte [Clique](#clique-c) $C_1$ in V
|
||
3. Entferne aus G alle Knoten aus $C_1$ und Kanten Adjazent zu $C_1$
|
||
- $V ← V $ \\ $ C_1$
|
||
- $E ← E $ \ {$e ∈ E | e ∩ C_1 \neq ∅$}
|
||
4. finde eine größte [Clique](#clique-c) $C_2$ in V
|
||
5. ...
|
||
|
||
|
||
|
||
## Clique C
|
||
nicht-leere Teilmenge $C \subseteq V$, wenn zwei verschiedene Knoten in C paarweise durch eine Kante aus E verbunden sind
|
||
|
||
**Es gilt:**
|
||
${u,v} \in E$ für alle $u,v \in C$ mit $u \ne v$
|
||
|
||
per Definition ist **auch jede einelementige Teilmenge** $C \subseteq V$ eine Clique
|
||
|
||
Größe einer Clique:
|
||
$|C|$
|
||
|
||
|
||
### Maximum Clique-Size
|
||
> Eingabe: Graph V = (V, E)
|
||
>
|
||
> Ausgabe: Größe einer größten Clique C von G
|
||
|
||
> Theorem 1.1
|
||
>
|
||
> Algorithmus A löse MaximumClique. Dann existiert Algorithmus B mit ~ gleicher Laufzeit der MaximumCliqueSize löst.
|
||
|
||
1. Verträglichkeitsgraphen erstellen ($G = (V,E)$)
|
||
2. finde eine größte [Clique](#clique-c) $C_1$ in V
|
||
3. zähle Elemente der Clique
|
||
|
||
> Theorem 1.2
|
||
>
|
||
> Algorithmus A löse MaximusCliqueSize. Dann existiert Algorithmus B mit ähnlicher Laufzeit der MaximumClique löst.
|
||
|
||
**Zentrale Beobachtung**:
|
||
- Für G = (V, E) und v ∈ V sei G - v = (V\v,{e ∈ E | v !∈ e}).
|
||
- Sei k die Größe einer Clique in G und $k_{-v}$ die Größe einer größten Clique in G-v.
|
||
- Dann gilt:
|
||
- (a) v ∈ allen größten Cliquen → $k_{-v}$ = k - 1
|
||
- (b) v !∈ allen größten Cliquen → $k_{-v}$ = k
|
||

|
||
|
||
### MaximumCliqueDec
|
||
> Eingabe: Graph V = (V, E) und k ∈ Ν
|
||
>
|
||
> Ausgabe: gibt es eine Clique C der Größe k in G?
|
||
|
||
> Theorem 1.3
|
||
>
|
||
> Algorithmus A löse MaximumCliqueDec. Dann existiert ähnlicher Algorithmus B mit ähnlicher Laufzeit, der MaximumCliqueSize löst.
|
||
|
||
**B(G, k) für G = (V, E)**
|
||
1. Verträglichkeitsgraphen erstellen ($G = (V,E)$)
|
||
2. Cliquen finden
|
||
3. Elemente der ersten Clique zählen
|
||
4. falls Elemente = k → Abbruch sonst zur nächsten
|
||
|