Greedy Algorithmen Flashcards

1
Q

Wie funktionieren Greedy Algorithmen?

A
  • Fallen unter die selbe Kategorie wie Probleme der dynamischen Programmierung
  • In jedem Schritt wird die lokale beste Entscheidung getroffen um ein globales Problem zu lösen
  • Dabei wird nicht auf die Konsequenzen “in der Zukunft” rücksicht genommen
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Wie sind die 4 Schritte in einem Greedy Algorithmus?

A
  • Greedy Algorithmen bestehen aus 4 Schritten
    1. Initialisierung: Setzen Sie den Anfangszustand des Problems.
    2. Auswählen: Wählen Sie die beste verfügbare Option aus.
    3. Anwenden: Führen Sie die ausgewählte Option aus und aktualisieren Sie den Zustand des Problems.
    4. Überprüfen: Überprüfen Sie, ob das Ziel erreicht wurde. Wenn ja, beenden Sie den Algorithmus. Andernfalls gehen Sie zu Schritt 2 zurück.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Wann sollte man Greedy-Algorithmen als Lösung eines Problems nutzen?

A
  • Greedy-Algorithmen sind besonders nützlich, wenn das Problem in Teilprobleme unterteilt werden kann
  • Diese müssen unabhängig voneinander lösbar sein
  • Dann kann ein Greedy-Algorithmus schnell eine Lösung finden
  • Eine Garantie für die optimale Lösung bei Greedy-Algorithmus ist nicht gegeben
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Was ist ein minimaler Spannbaum (MST)?

A
  • Ein Teilgraph eines ungerichteten, gewichteten Graphen
  • Dieser verbindet alle Knoten auf die effizienteste Weise
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Wie funktioniert Prim’s Algorithmus?

A
  1. Wähle einen beliebigen Knoten aus dem Graphen und füge ihn zum minimalen Spannbaum hinzu.
  2. Finde die Kante mit dem geringsten Gewicht, die einen Knoten im minimalen Spannbaum mit einem Knoten außerhalb des Spannbaums verbindet.
  3. Füge den Knoten, der an der anderen Seite der Kante liegt, zum minimalen Spannbaum hinzu und füge die Kante selbst hinzu.
  4. Wiederhole Schritt 2 und 3, bis alle Knoten des Graphen im minimalen Spannbaum enthalten sind.
    * Laufzeit: Abhängig der Datenstruktur, aber meist O(E log V), wobei E die Anzahl der Kanten und V die Anzahl der Knoten im Graphen ist.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Wie funktioniert Kruskal’s Algorithmus?

A
  1. Speichere alle Kanten ab und sortiere sie aufsteigend
  2. Markiere alle Kanten nacheinander, wenn sie keinen Kreis bilden
    * Laufzeit:Abhängig der Datenstruktur, aber meist O(E log E), wobei E die Anzahl der Kanten im Graphen ist.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Wie funktioniert Dijkstra’s Algorithmus?

A
  1. Setze den Abstandswert des Startknotens auf 0 und alle anderen Abstandswerte auf unendlich.
  2. Füge den Startknoten in eine Prioritätswarteschlange ein.
  3. Solange die Prioritätswarteschlange nicht leer ist, nimm den Knoten mit dem kleinsten Abstandswert aus der Warteschlange.
  4. Für jeden benachbarten Knoten des aktuellen Knotens aktualisiere den Abstandswert, wenn der Pfad über den aktuellen Knoten zum benachbarten Knoten kürzer ist als der bisher bekannte Pfad.
  5. Füge den benachbarten Knoten mit dem aktualisierten Abstandswert in die Prioritätswarteschlange ein.
  6. Wiederhole Schritt 3 bis 5, bis alle Knoten besucht wurden.
    * Laufzeit: Abhängig der Datenstruktur, aber meist O((E+V)logV), wobei E die Anzahl der Kanten und V die Anzahl der Knoten im Graphen ist
How well did you know this?
1
Not at all
2
3
4
5
Perfectly