Open in App
Login Anmelden

Select your language

Suggested languages for you:
StudySmarter - Die all-in-one Lernapp.
4.8 • +11k Ratings
Mehr als 5 Millionen Downloads
Free
|
|
Greedy Algorithmus

In der komplexen Welt der Informatik ist der Greedy Algorithmus ein wichtiges Grundelement. In diesem Artikel wirst du die Definition eines Greedy Algorithmus kennenlernen, seine Funktionsweise verstehen und Beispiele für seine Anwendung sehen. Ein besonderer Schwerpunkt wird dabei auf die Praxisanwendung und die Analyse des Algorithmus gelegt. Spannende Einblicke in die Implementierung in Java sowie Vor- und Nachteile im praktischen Einsatz des Greedy Algorithmus komplettieren die Ausführungen. Ein fundiertes Verständnis des Greedy Algorithmus ist von besonderem Nutzen für jeden, der ein tiefergehendes Verständnis der Informatik anstrebt.

Inhalt von Fachexperten überprüft
Kostenlose StudySmarter App mit über 20 Millionen Studierenden
Mockup Schule

Entdecke über 50 Millionen kostenlose Lernmaterialien in unserer App.

Greedy Algorithmus

Illustration

Lerne mit deinen Freunden und bleibe auf dem richtigen Kurs mit deinen persönlichen Lernstatistiken

Jetzt kostenlos anmelden

Nie wieder prokastinieren mit unseren Lernerinnerungen.

Jetzt kostenlos anmelden
Illustration

In der komplexen Welt der Informatik ist der Greedy Algorithmus ein wichtiges Grundelement. In diesem Artikel wirst du die Definition eines Greedy Algorithmus kennenlernen, seine Funktionsweise verstehen und Beispiele für seine Anwendung sehen. Ein besonderer Schwerpunkt wird dabei auf die Praxisanwendung und die Analyse des Algorithmus gelegt. Spannende Einblicke in die Implementierung in Java sowie Vor- und Nachteile im praktischen Einsatz des Greedy Algorithmus komplettieren die Ausführungen. Ein fundiertes Verständnis des Greedy Algorithmus ist von besonderem Nutzen für jeden, der ein tiefergehendes Verständnis der Informatik anstrebt.

Einführung in den Greedy Algorithmus

In der Welt der Informatik ist der Greedy Algorithmus, auch als gieriger Algorithmus bekannt, ein bekanntes Berechnungsverfahren. Er zeichnet sich durch seine systematische Entscheidungsfindung aus, die darauf abzielt, die besten oder profitabelsten Ergebnisse zu erzielen, indem er stets die augenblicklich optimalste Option wählt.

Im Kontext der Informatik wird ein Algorithmus als eine Reihe von Anweisungen definiert, die dazu dienen, ein bestimmtes Problem zu lösen oder eine bestimmte Aufgabe zu erfüllen.

Greedy Algorithmus Definition

Der Greedy Algorithmus folgt einer einfachen, aber wirkungsvollen Strategie: Jedes Mal, wenn eine Entscheidung getroffen werden muss, wählt der Algorithmus diejenige Option, die momentan den größten Nutzen verspricht. Diese Strategie lässt sich mathematisch wie folgt darstellen: Angenommen, du hast eine Menge von Elementen \(E\) und eine Funktion \(f: E \to \mathbb{R}\), die jedem Element einen Wert zuordnet. Der Greedy Algorithmus sucht dann das Element \(e \in E\), für das \(f(e)\) maximal ist.
E = {elements}
f = function that assigns a value to each element in E

while E is not empty:
  e = element in E with maximum f(e)
  make e the next element in the solution
  remove e from E

Greedy Algorithmus Erklärung

Ein einfaches Beispiel für einen Greedy Algorithmus ist das Problem des Wechselgeldes. Angenommen, du musst 36 Cent Wechselgeld geben und hast Münzen zu 1 Cent, 2 Cent, 5 Cent, 10 Cent, 20 Cent und 50 Cent zur Verfügung. Der Greedy Algorithmus würde zunächst die 20-Cent-Münze nehmen, dann die 10-Cent-Münze, dann die 5-Cent-Münze und schließlich die 1-Cent-Münze.

Tatsächlich ist das jedoch nur eine vereinfachte Darstellung. In vielen Fällen können weitere Faktoren wie Nebenbedingungen oder die Qualität der lokalen Auswahl die Gesamtperformance des Algorithmus stark beeinflussen.

Greedy Algorithmus Anwendung

In der Praxis ist der Greedy Algorithmus besonders nützlich, wenn mehrere Möglichkeiten zur Auswahl stehen und eine schnelle Entscheidung erforderlich ist. Hier sind einige typische Anwendungsbeispiele:
  • Sortierung von Daten: Ein klassisches Beispiel ist die Huffman-Kodierung, die zur Datenkompression verwendet wird.
  • Graphentheorie: Kruskal's Algorithmus und Prim's Algorithmus, die dazu dienen, minimale Spannbäume zu finden.
  • Netzwerkrouting: Der Dijkstra-Algorithmus, der kürzeste Pfade in einem Graphen findet.

Bedauerlicherweise ist der Greedy Algorithmus nicht immer die beste Wahl. Insbesondere kann er suboptimale Lösungen liefern, wenn die optimale Entscheidung auf einer globalen Betrachtung des Problems beruht und nicht nur auf einer lokalen. Trotzdem ist der Greedy Algorithmus ein mächtiges Werkzeug, das in vielen Bereichen der Informatik und darüber hinaus Anwendung findet.

Beispiele für die Anwendung des Greedy Algorithmus

Es gibt zahlreiche Beispiele in der Informatik und anderen Disziplinen, in denen Greedy-Algorithmen eingesetzt werden, um schnelle und effiziente Lösungen zu liefern. Der Vorteil des Greedy-Algorithmus liegt in seiner Einfachheit und Geschwindigkeit, was ihn ideal für die Verwendung in realen Anwendungen macht. Lassen uns einige dieser Beispiele detaillierter betrachten.

Greedy Algorithmus Beispiele

Bei der Auswahl der Beispiele für den Greedy Algorithmus ist es wichtig, sich daran zu erinnern, dass diese Art von Algorithmus immer die Entscheidung trifft, die im Moment am profitabelsten erscheint, ohne Rücksicht auf zukünftige Konsequenzen.

Zwei der bekanntesten und wichtigsten Beispiele für die Anwendung von Greedy-Algorithmen sind in der Graphentheorie zu finden: 1. Kruskal's Algorithmus: Dieser Algorithmus findet einen minimalen Spannbaum für einen zusammenhängenden gewichteten Graphen. In jedem Schritt nimmt Kruskal's Algorithmus die Kante mit dem kleinsten Gewicht, die keinen Zyklus im Baum erzeugt. 2. Prim's Algorithmus: Auch Prim's Algorithmus wird eingesetzt, um einen minimalen Spannbaum zu finden. Allerdings baut er den Baum Schritt für Schritt auf, indem er in jedem Durchlauf die Kante mit dem kleinsten Gewicht auswählt, die den bisherigen Baum mit einem neuen Knoten verbindet. Ein weiteres bekanntes Beispiel ist der Dijkstra-Algorithmus zur Ermittlung des kürzesten Pfades in einem Graphen mit nicht-negativen Kantenlängen. Auch hier wird in jedem Schritt immer der Knoten mit dem geringsten Abstand zum Ausgangspunkt ausgewählt.

Greedy Algorithmus Java Implementierung

Um ein tieferes Verständnis dafür zu bekommen, wie ein Greedy Algorithmus funktioniert, ist es hilfreich, sich anhand einer konkreten Implementierung anzusehen, wie solch ein Algorithmus aufgebaut sein kann. Als Beispiel dient hier eine Java-Implementierung für das Problem des Wechselgelds.
import java.util.Arrays;
import java.util.Comparator;

public class GreedyAlgorithmus {
    public static void main(String[] args) {
        Integer[] munzen = {1, 2, 5, 10, 20, 50, 100, 200};
        int betrag = 36;
        Arrays.sort(munzen, Comparator.reverseOrder());
        int index = 0;
        while(betrag > 0) {
            if (munzen[index] <= betrag) {
                System.out.println("Nehme die Münze: " + munzen[index]);
                betrag = betrag - munzen[index];
            }
            else {
                index++;
            }
        }
    }
}

Greedy Algorithmus Anwendung in der Praxis

In der Praxis können Greedy-Algorithmen in einer Vielzahl von Anwendungen eingesetzt werden. Hier sind einige Beispiele: - Geplante Wartung: Hierbei wird ein Greedy Algorithmus verwendet, um die bestmögliche Anzahl von Wartungsaufgaben in einem bestimmten Zeitraum durchzuführen, wobei die Aufgaben mit der höchsten Priorität zuerst durchgeführt werden. - Task Scheduling: Hierbei wird der Algorithmus verwendet, um Aufgaben in einer Reihenfolge zu planen, die die Gesamtdauer minimiert. - Grafikverarbeitung: In diesem Bereich werden Greedy Algorithmen eingesetzt, um schnell und effizient Polygonnetze zu vereinfachen und somit die Darstellung von 3D-Objekten zu optimieren. Jede dieser Anwendungen zeigt, wie der Greedy Algorithmus in unterschiedlichen Kontexten genutzt werden kann, um schnelle und effiziente Lösungen zu liefern.

Analyse des Greedy Algorithmus

Eine detaillierte Untersuchung des Greedy Algorithmus lässt uns Schlüsse über seine Laufzeit, mögliche Schwachstellen und allgemeine Effektivität ziehen. Dabei sind verschiedene Aspekte zu beachten, die wir im Folgenden genauer betrachten werden.

Greedy Algorithmus Laufzeit

Die Laufzeit eines Algorithmus ist die Zeit, die er benötigt, um ein Problem zu lösen. Für den Greedy Algorithmus ist diese Laufzeit in den meisten Fällen direkt von der Anzahl der Entscheidungen abhängig, die er trifft. Im Falle des Greedy Algorithmus ist die Laufzeit in der Regel linear, das bedeutet sie nimmt direkt proportional zur Größe der Problemstellung zu. Wenn also die Anzahl der zu treffenden Entscheidungen zunimmt, erhöht sich auch die Laufzeit des Algorithmus entsprechend. Um diesen Zusammenhang mathematisch auszudrücken, kann man sagen, dass die Laufzeit des Greedy Algorithmus in \(\mathcal{O}(n)\) liegt, wobei \(n\) die Anzahl der zu treffenden Entscheidungen repräsentiert. Dies macht den Greedy Algorithmus besonders geeignet für Probleme, bei denen eine schnelle Entscheidungsfindung erforderlich ist, und die Problemstellung nicht zu komplex ist. Bei komplexeren Problemen kann der Greedy Algorithmus allerdings an seine Grenzen stoßen, da er keine ausreichend optimalen Lösungen mehr findet.

Greedy Algorithmus Nachteile

Trotz seiner Einfachheit und Effizienz bringt der Greedy Algorithmus auch einige Nachteile mit sich. Der größte davon ist, dass er nicht immer die optimale Lösung findet.
Nachteil Erklärung
Suboptimale Ergebnisse Da der Greedy Algorithmus immer nur auf die augenblicklich beste Wahl schaut, kann er suboptimale Gesamtergebnisse liefern, sollten zukünftige Entscheidungen betroffen sein.
Nicht geeignet für komplizierte Problemstellungen Komplexe Probleme, die eine Gesamtbetrachtung erfordern, sind nicht für den Greedy Ansatz geeignet, da dieser keine Rückgriffe auf vorige Entscheidungen zulässt.
Keine Garantie für eine Lösung Wenn der Algorithmus auf eine Situation trifft, in der keine direkte Bereicherung erfolgt, kann es sein, dass er feststeckt und keine finale Lösung findet.

Bewertung des Greedy Algorithmus

Obwohl der Greedy Algorithmus nicht für jedes Problem die beste Lösung bereitstellt, hat er in einigen Anwendungsfällen erhebliche Vorteile. Er liefert schnelle Antworten und ist relativ leicht zu implementieren. Die Bewertung eines Algorithmus sollte immer im Kontext der Problemstellung erfolgen. Für einige Problemsituationen kann er unerwartet gut funktionieren, während er sich für andere als ungeeignet erweist. Dieser Aspekt kann mit dem no free lunch Theorem zusammengefasst werden, welches besagt, dass es keinen Algorithmus geben kann, der für alle möglichen Problemstellungen die beste Wahl ist. Die Leistung eines Algorithmus ist immer abhängig von den spezifischen Eigenschaften des zugrundeliegenden Problems. Bei der Bewertung des Greedy Algorithmus sollte also immer dessen Einfachheit und Geschwindigkeit gegen die mögliche Unfähigkeit, eine globale Optimallösung zu finden, abgewogen werden.

Greedy Algorithmus - Das Wichtigste

  • Greedy Algorithmus: Systematische Entscheidungsfindung zur Maximierung des momentanen Nutzens.
  • Beispiel für Greedy Algorithmus: Problem des Wechselgelds.
  • Anwendungsbeispiele des Greedy Algorithmus: Sortierung von Daten (Huffman-Kodierung), Graphentheorie (Kruskal's Algorithmus, Prim's Algorithmus), Netzwerkrouting (Dijkstra-Algorithmus).
  • Java-Implementierung des Greedy Algorithmus anhand des Problems des Wechselgelds.
  • Greedy Algorithmus Laufzeit: In der Regel linear, d.h. proportional zur Größe der Problemstellung (\(\mathcal{O}(n)\)).
  • Nachteile des Greedy Algorithmus: Suboptimale Ergebnisse, nicht geeignet für komplizierte Problemstellungen, keine Garantie für eine Lösung.

Häufig gestellte Fragen zum Thema Greedy Algorithmus

Greedy Algorithmen zeichnen sich dadurch aus, dass sie stets die augenblicklich beste Option wählen, in der Hoffnung, dass diese Wahl letztendlich zur optimalen Gesamtlösung führt. Sie sind dabei häufig einfach zu verstehen und zu implementieren, garantieren jedoch nicht immer die beste Lösung.

Greedy Algorithmen sind eine Klasse von Algorithmen in der Informatik, die bei der Lösung von Optimierungsproblemen in jedem Schritt die lokal beste Entscheidung treffen, in der Hoffnung, dass diese lokalen Lösungen zu einer global optimalen Lösung führen.

Finales Greedy Algorithmus Quiz

Greedy Algorithmus Quiz - Teste dein Wissen

Frage

Was macht Greedy-Algorithmen aus?

Antwort anzeigen

Antwort

Ein Greedy-Algorithmus zeichnet sich dadurch aus, dass er immer den aktuell optimalen Nachfolger auswählt.  Gierige Algorithmen arbeiten sehr schnell und finden oft eine gute Lösung.

Frage anzeigen

Frage

Nenne  die Vorteile der Greedy-Algorithmen!

Antwort anzeigen

Antwort

- Einfache Implementierung
- kurze Laufzeit

Frage anzeigen

Frage

Beschreibe das Wechselgeldproblem!

Antwort anzeigen

Antwort

Bei einem Warenautomat soll Wechselgeld ( in möglichst wenigen Scheinen/Münzen) herausgegeben werden. Nachdem das Wechselgeld eingegeben wurde, sollte das Programm die Liste der zurückgegebenen Wechselgeldmünzen/-Scheinen anzeigen.

Frage anzeigen

Frage

Beschreibe der Dijkstra-Algorithmus!

Antwort anzeigen

Antwort

Der Kürzeste-Wege-Algorithmus von Dijkstra ist ein berühmter Graphenalgorithmus, der 1959 von Dijkstra veröffentlicht und nach ihm benannt wurde. Es basiert auf einer iterativen Erweiterung der "billig" erreichbaren Knotenmenge, kann also als Weiterentwicklung der Breitensuche nach gewichteten Kanten nach dem Greedy-Prinzip angesehen werden. Dieser Fortschritt funktioniert jedoch nur für nicht negative Gewichte. 

Frage anzeigen

Frage

Wie funktioniert das Kruskal-Verfahren?

Antwort anzeigen

Antwort

Kruskals Algorithmus arbeitet nach dem sogenannten Greedy-Verfahren. Das bedeutet, dass Entscheidungen, die während des Verfahrens getroffen werden, unumkehrbar sind. 


Der Kruskal-Algorithmus arbeitet mit einer sortierten Liste von Kanten. Es besteht aus allen Kanten, die im ursprünglichen Graphen enthalten sind. 


Frage anzeigen

Frage

Nenne  die Nachteile der Greedy-Algorithmen!

Antwort anzeigen

Antwort

Ein Nachteil von Greedy-Algorithmen ist, dass keine Aussage über die Qualität der Ergebnisse getroffen werden kann.

Frage anzeigen

Frage

Wahr oder Falsch

Algorithmen, die bei jedem Schritt gierige Entscheidungen treffen und so komplexe Probleme lösen, werden als Greedy  Algorithmen (dt. gierige Algorithmen) bezeichnet. 

Antwort anzeigen

Antwort

Wahr

Frage anzeigen

Frage

Wahr oder Falsch

 Die Eignung einer Greedy-Strategie für ein Problem kann normalerweise durch zwei Eigenschaften bestimmt werden. Diese beiden Eigenschaften sind die  Greedy-Choice-Property  und der Optimal Substructures.

Antwort anzeigen

Antwort

Falsch

Frage anzeigen

Frage

 Nenne zwei Eigenschaften von Greedy-Strategie!

Antwort anzeigen

Antwort

1. Greedy-Choice-Property

2.Optimal Substructures

Frage anzeigen

Frage

Ergänze

Der Algorithmus von (1)              gibt wie der von Kruskal einen (2)              eines ungerichteten Graphen zurück, der mit einer Greedy-Strategie markiert ist.  


Antwort anzeigen

Antwort

(1) Prim

(2) minimalen Spannbaum

Frage anzeigen

Frage

Nenne Beispiele für Greedy-Verfahren!

Antwort anzeigen

Antwort

Topologische Sortierung,

Prim’s, Kruskal’s und Dijkstra's Algorithmen ,

Problem des Geldwechsels


Frage anzeigen

Frage

Ergänze

In der Praxis zeigt sich, dass ein gutes Ergebnis ((1)                ) meist gut genug und nicht weit vom besten Ergebnis ((2)                ) entfernt ist.

Antwort anzeigen

Antwort

(1) lokales Optimum

(2) globales Optimum

Frage anzeigen

Frage

Wahr oder Falsch

Die Geschwindigkeit eines Algorithmus wird üblicherweise an der Anzahl der Einzelschritte gemessen, die der Algorithmus während der Ausführung benötigt.

Antwort anzeigen

Antwort

Wahr

Frage anzeigen

Frage

Wahr oder Falsch

Zusammenfassend zeichnen sich Greedy-Algorithmen durch ihre Ergebnisqualität, Effizienz und geringe Komplexität aus.

Antwort anzeigen

Antwort

Wahr

Frage anzeigen

Frage

Ergänze

Dieser Algorithmus stammt im Wesentlichen aus den Tagen von Jarnik und wurde von Dijkstra und (1)           wiederentdeckt. Er ist auch als (2)             -Dijkstra-Algorithmus bekannt.

Antwort anzeigen

Antwort

(1) Prim

(2) Prim

Frage anzeigen

Frage

Ist Kruskal-Algorithmus Greedy-Algorithmus?

Antwort anzeigen

Antwort

Das Prinzip, auf dem das Verfahren beruht, nennt sich sogenanntes Greedy-Prinzip.

Frage anzeigen

Frage

Wahr oder Falsch

Nach dem Do-it-yourself-Motto suchen Greedy-Algorithmen immer nach der lokal optimalen Variante und nehmen daraus das Ziel, auch global für beste Ergebnisse.

Antwort anzeigen

Antwort

Wahr

Frage anzeigen

Frage

Ergänze

 Es basiert auf der Arbeit von Vojtech (1)         , der bereits 1930 die Grundlagen für die Algorithmen von (2)            und Kruskal legte. Dies gibt einen minimalen (3)             zurück.

Antwort anzeigen

Antwort

(1) Jarnik

(2) Prim

(3) Spannbaum

Frage anzeigen

Frage

Wie funktioniert der Algorithmus von Kruskal?

Antwort anzeigen

Antwort

Joseph Bernard Kruskal (* 1929 in New York) veröffentlichte 1956 in einer Zeitschrift einen Algorithmus zum Auffinden der kürzesten Verbindung von einem Knoten zu allen Knoten in einem Graphen (Single-Source Shortest Path Problem).

Frage anzeigen

Frage

Wahr oder Falsch

Kruskals Algorithmus ist ein "greedy" Algorithmus, der den minimalen Spannbaum eines verbundenen gewichteten ungerichteten Graphen effizient berechnet

Antwort anzeigen

Antwort

 Wahr

Frage anzeigen

Frage

Ergänze

Der Kruskal-Algorithmus arbeitet mit einer sortierten (1)         von Kanten. Es besteht aus allen Kanten, die im ursprünglichen (2)           enthalten sind.

Antwort anzeigen

Antwort

(1) Liste

(2)Graphen

Frage anzeigen

Frage

Wahr oder Falsch

Beim Kruskal-Algorithmus aus den Teilbäumen wird dann sequentiell ein maximaler Spannbaum aufgebaut. 

Antwort anzeigen

Antwort

Falsch

Frage anzeigen

Frage

Wie wird der Kruskal-Algorithmus initialisiert?

Antwort anzeigen

Antwort

Der Algorithmus wird mit einem Wald initialisiert, der aus Bäumen mit einem einzigen Knoten besteht. 

Frage anzeigen

Frage

Ergänze

Kruskals Algorithmus nimmt als (1)          einen Graphen G mit einer entsprechenden Gewichtsfunktion w. (2)            ist der minimale Spannbaum T von G. 

Antwort anzeigen

Antwort

(1) Input

(2) Output

Frage anzeigen

Frage

Welche Funktion hat diese Code-Teil:

 " System.out.println("Minimaler Spannbaum: ");
printGraph(mst);
  "

Antwort anzeigen

Antwort

Gibt minimaller Spannbaum auf dem Konsole aus!

Frage anzeigen

Frage

Gesamtkomplexität von Kruskal-Algorithmus?

Antwort anzeigen

Antwort

Gesamtkomplexität von Kruskal-Algorithmus ist O( |E| • log|E| ) .

Frage anzeigen

Frage

Wahr oder Falsch

Der Graph G ist zusammenhängend, wenn der also mindestens n (n-1) Kanten hat.

Antwort anzeigen

Antwort

Falsch

Frage anzeigen

Frage

Ergänze

Der Algorithmus von (1)          liefert, ebenso wie der (2)           - Algorithmus, durch ein gieriges Verfahren einen minimalen Spannbaum eines bewerteten ungerichteten Graphen. 

Antwort anzeigen

Antwort

(1)Kruskal

(2) Prim

Frage anzeigen

Frage

Wahr oder Falsch

Der Algorithmus von Kruskal bestimmt einen minimal aufspannenden Baum mit Zeitkomplexität  O(|V2 | * log |V |). 

Antwort anzeigen

Antwort

Falsch

Frage anzeigen

Frage

Ergänze

Normalerweise kann zur Sortierung der Kanten des Graphen jeder (1)           verwendet werden. Die (2)           des Algorithmus ist hierbei entscheidend. 

Antwort anzeigen

Antwort

(1) Sortieralgorithmus

(2) Laufzeit

Frage anzeigen

Frage

Was ist der Unterschied zwischen Prims und Dijkstra

Antwort anzeigen

Antwort

Der Algorithmus von Dijkstra findet den kürzesten Weg, aber der Algorithmus von Prim findet den MST.

Frage anzeigen

Frage

Warum verwendet man den Prim-Algorithmus

Antwort anzeigen

Antwort

Der Prim-Algorithmus wird verwendet, um den minimalen Spannbaum aus einem Graphen zu ermitteln.

Frage anzeigen

Frage

Welcher Algorithmus ist schneller, Prims oder Kruskal

Antwort anzeigen

Antwort

Der Algorithmus von Prim läuft in dichten Graphen schneller. Kruskals Algorithmus läuft in spärlichen Graphen schneller.

Frage anzeigen

Frage

Was ist Prims Algorithmus mit Beispiel? 

Antwort anzeigen

Antwort

Prims Algorithmus ist ein berühmter gieriger Algorithmus. Es wird zum Ermitteln des Minimum Spanning Tree (MST) eines bestimmten Diagramms verwendet. Um den Prim-Algorithmus anzuwenden, muss der angegebene Graph gewichtet, verbunden und ungerichtet sein.

Frage anzeigen

Frage

Was ist die Komplexität des Prim-Algorithmus? 

Antwort anzeigen

Antwort

Die zeitliche Komplexität ist O(E log V).  , was sie mit dem Kruskal-Algorithmus identisch macht.

Frage anzeigen

Frage

Ergänze

Einer der einfachsten Algorithmen zur Lösung des Minimum-Spanning-Tree-Problems ist der (1)          -Algorithmus

Antwort anzeigen

Antwort

(1) Prim

Frage anzeigen

Frage

Ergänze

Der Algorithmus von Prim liefert wie der von Kruskal einen minimalen Spannbaum eines (1)          Graphen, der einem Greedy-Verfahren entspricht.

Antwort anzeigen

Antwort

(1) ungerichteten

Frage anzeigen

Frage

Ergänze

Der Algorithmus führt n-1 (1)            durch, wobei n die Anzahl der (2)               im Graphen ist.

Antwort anzeigen

Antwort

(1) Iterationen

(2) Knoten

Frage anzeigen

Frage

Ergänze

Der minimal aufspannende Baum ist der (1)          mit der kleinsten (2)         der Kantengewichte.

Antwort anzeigen

Antwort

(1) Baum

(2) Summe

Frage anzeigen

Frage

Ergänze

Das Ergebnis von Prims Algorithmus ist ein minimaler Spannbaum eines gültigen ungerichteten Graphen. Dieses Verfahren ist effektiver und schneller als (1)             .

Antwort anzeigen

Antwort

(1) Kruskal

Frage anzeigen

Frage

Wahr oder Falsch

Der Kruskal-Algorithmus verwendet als minimaler Spanning-Tree-Algorithmus eine andere Logik als die von Prim, um die MST eines Graphen zu finden.

Antwort anzeigen

Antwort

Wahr

Frage anzeigen

Frage

Wahr oder Falsch

Der Algorithmus von Kruskal folgt einem Greedy-Ansatz und findet bei jedem Schritt die optimale Lösung, indem er sich auf das globale Optimum konzentriert.

Antwort anzeigen

Antwort

Wahr

Frage anzeigen

Frage

Wahr oder Falsch

Es gibt zwei bekannte Lösungsideen für das MST-Problem, den Algorithmus von Prim und Dijkstra. 

Antwort anzeigen

Antwort

Falsch

Frage anzeigen

Frage

Wahr oder Falsch

In der Graphentheorie ist ein Baum ein Graph mit N Knoten, die durch genau N(N-1) Kanten verbunden sind, sodass es genau einen Pfad zwischen den beiden Knoten gibt.

Antwort anzeigen

Antwort

Falsch

Frage anzeigen

Frage

Wahr oder Falsch

Der Algorithmus von Prim ist ein Backtracking-Algorithmus, der den minimalen Spannbaum eines verbundenen gewichteten ungerichteten Graphen effizient berechnet. 

Antwort anzeigen

Antwort

Falsch

Frage anzeigen

Frage

Was ist ein Greedy Algorithmus?

Antwort anzeigen

Antwort

Ein Greedy Algorithmus ist ein Berechnungsverfahren, das sich durch seine systematische Entscheidungsfindung auszeichnet, indem es stets die augenblicklich optimalste Option wählt. Ziel ist es, die besten oder profitabelsten Ergebnisse zu erzielen.

Frage anzeigen

Frage

Wie funktioniert ein Greedy Algorithmus genau?

Antwort anzeigen

Antwort

Ein Greedy Algorithmus sucht aus einer Menge von Elementen immer das Element aus, für das eine bestimmte Funktion den maximalen Wert ergibt. Er nimmt dieses Element als nächste Lösung und entfernt es aus der Menge, dies wird fortgesetzt, bis die Menge leer ist.

Frage anzeigen

Frage

Nenne ein einfaches Beispiel für einen Greedy Algorithmus.

Antwort anzeigen

Antwort

Ein Beispiel für einen Greedy Algorithmus ist das Problem des Wechselgeldes. Angenommen, man muss 36 Cent Wechselgeld geben und hat Münzen zu 1 Cent, 2 Cent, 5 Cent, 10 Cent, 20 Cent und 50 Cent zur Verfügung. Der Greedy Algorithmus würde zunächst die 20-Cent-Münze nehmen, dann die 10-Cent-Münze, dann die 5-Cent-Münze und schließlich die 1-Cent-Münze.

Frage anzeigen

Frage

In welchen Bereichen kann der Greedy Algorithmus angewendet werden?

Antwort anzeigen

Antwort

Der Greedy Algorithmus kann in verschiedenen Bereichen angewendet werden, wie zum Beispiel bei der Sortierung von Daten (z.B. Huffman-Kodierung), in der Graphentheorie (z.B. bei Kruskal's Algorithmus und Prim's Algorithmus) und beim Netzwerkrouting (z.B. beim Dijkstra-Algorithmus).

Frage anzeigen

Frage

Was macht der Dijkstra-Algorithmus?

Antwort anzeigen

Antwort

Der Dijkstra-Algorithmus ermittelt den kürzesten Pfad in einem Graphen mit nicht-negativen Kantenlängen. In jedem Schritt wird der Knoten mit dem geringsten Abstand zum Ausgangspunkt ausgewählt.

Frage anzeigen

Teste dein Wissen mit Multiple-Choice-Karteikarten

Wahr oder FalschAlgorithmen, die bei jedem Schritt gierige Entscheidungen treffen und so komplexe Probleme lösen, werden als Greedy  Algorithmen (dt. gierige Algorithmen) bezeichnet. 

Wahr oder Falsch Die Eignung einer Greedy-Strategie für ein Problem kann normalerweise durch zwei Eigenschaften bestimmt werden. Diese beiden Eigenschaften sind die  Greedy-Choice-Property  und der Optimal Substructures.

Wahr oder FalschDie Geschwindigkeit eines Algorithmus wird üblicherweise an der Anzahl der Einzelschritte gemessen, die der Algorithmus während der Ausführung benötigt.

Weiter

Karteikarten in Greedy Algorithmus57

Lerne jetzt

Was macht Greedy-Algorithmen aus?

Ein Greedy-Algorithmus zeichnet sich dadurch aus, dass er immer den aktuell optimalen Nachfolger auswählt.  Gierige Algorithmen arbeiten sehr schnell und finden oft eine gute Lösung.

Nenne  die Vorteile der Greedy-Algorithmen!

- Einfache Implementierung
- kurze Laufzeit

Beschreibe das Wechselgeldproblem!

Bei einem Warenautomat soll Wechselgeld ( in möglichst wenigen Scheinen/Münzen) herausgegeben werden. Nachdem das Wechselgeld eingegeben wurde, sollte das Programm die Liste der zurückgegebenen Wechselgeldmünzen/-Scheinen anzeigen.

Beschreibe der Dijkstra-Algorithmus!

Der Kürzeste-Wege-Algorithmus von Dijkstra ist ein berühmter Graphenalgorithmus, der 1959 von Dijkstra veröffentlicht und nach ihm benannt wurde. Es basiert auf einer iterativen Erweiterung der "billig" erreichbaren Knotenmenge, kann also als Weiterentwicklung der Breitensuche nach gewichteten Kanten nach dem Greedy-Prinzip angesehen werden. Dieser Fortschritt funktioniert jedoch nur für nicht negative Gewichte. 

Wie funktioniert das Kruskal-Verfahren?

Kruskals Algorithmus arbeitet nach dem sogenannten Greedy-Verfahren. Das bedeutet, dass Entscheidungen, die während des Verfahrens getroffen werden, unumkehrbar sind. 


Der Kruskal-Algorithmus arbeitet mit einer sortierten Liste von Kanten. Es besteht aus allen Kanten, die im ursprünglichen Graphen enthalten sind. 


Nenne  die Nachteile der Greedy-Algorithmen!

Ein Nachteil von Greedy-Algorithmen ist, dass keine Aussage über die Qualität der Ergebnisse getroffen werden kann.

Schließ dich über 22 Millionen Schülern und Studierenden an und lerne mit unserer StudySmarter App!

Die erste Lern-App, die wirklich alles bietet, was du brauchst, um deine Prüfungen an einem Ort zu meistern.

  • Karteikarten & Quizze
  • KI-Lernassistent
  • Lernplaner
  • Probeklausuren
  • Intelligente Notizen
Schließ dich über 22 Millionen Schülern und Studierenden an und lerne mit unserer StudySmarter App! Schließ dich über 22 Millionen Schülern und Studierenden an und lerne mit unserer StudySmarter App!

Melde dich an für Notizen & Bearbeitung. 100% for free.

Fang an mit StudySmarter zu lernen, die einzige Lernapp, die du brauchst.

Jetzt kostenlos anmelden
Illustration