Finde unabhängige Menge der Größe k

Algorithmus TM. Testen aller möglichen Teilmengen:

Algorithmus:

  1. Für jede Teilmenge X⊆V teste
  2. Hat X die Größe k und gibt es kein u,v∈X mit {u,v}∈E und u≠v ?
  3. Wenn ja: Gib X aus.
  4. Wenn kein geeignetes X gefunden wurde, gib nein aus.

Laufzeit: Exponentiell weil 2n Teilmengen
Warum schlecht?: Es werden alle 2n Teilmengen von V durchlaufen. Damit ist es ein Exponentialzeitalgorithmus

Algorithmus kTM. Iteriere über k-elementige Mengen

Algorithmus:

  1. Für jede k-elementige Teilmenge X⊆V teste
  2. Gibt es u,v∈X mit {u,v}∈E und u≠v ?
  3. Wenn nein: Gib X aus.
  4. Wenn kein geeignetes X gefunden wurde, gib nein aus.

Laufzeit: Im Wesentlichen Anzahl der k-elementigen Teilmengen: (nk)

Algorithmus rec-IS. Iteriere über die Knoten von V

Algorithmus: rufe rec-ind(G,k,0,∅) auf.
Algorithmus: rec-ind(G,k,i,X)

  1. Wenn X unabhängige Menge ⇝ gib X aus
  2. Falls (n−1)−i<k oder i≥n, dann gib nein zurück.
  3. Falls k=0:
    1. Wenn X unabhängige Menge ⇝ gib X aus
    2. Ansonsten, gib nein zurück.
  4. Rufe rekursiv rec-ind(G,k−1,i+1,X∪{vi}) auf.
    1. Wenn Rückgabe Menge X′, gib X′ aus.
    2. Ansonsten, gib das Ergebnis von rec-ind(G,k,i+1,X)

Laufzeit: Rekursion: L(n,k)=L(n−1,k−1)+L(n−1,k)