Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hallo Leute,

ich habe derzeit ein totales Problem: Ich weiß einfach nichts mit dem Dajkstra- und Bellman-Ford Algorithmus anzufangen. Ich habe absolut keine Ahnung wie ich erklären soll, wie sie funktioniere, noch wie ich die Arbeitsweise der beiden Algorithmen auf Papier darstellen kann. Ich habe nun 4 Stunden damit verbracht, mich im Internet schlau zu machen, aber es kommt einfach nichts brauchbares zustande. Ich benötige dringend eure Hilfe.

Ehrlich gesagt kann ich dein Problem gerade nicht ganz nachvollziehen. Ich finde die Erklärung zum Dijkstra Algorithmus auf Wikipedia eigentlich sehr eingängig und sie wird sogar anhand eines sehr verständlichen Beispiels mit mehreren Bildern erklärt. Wie genau können wir dir da jetzt in Textform helfen wenn dir die Erklärung auf Wikipedia schon nicht ausreicht? Was konkret ist dein Verständnisproblem? An welchem Schritt des Algorithmus hakt es? Und was willst du da groß zu Papier bringen? Den Pseudocode?

https://de.wikipedia.org/wiki/Dijkstra-Algorithmus

Bearbeitet von TooMuchCoffeeMan

Wenn wir von Anfang an beginnen: wir haben gegeben einen gewichteten(!) Graphen. Ein Graph besteht aus Kanten und Knoten. Bei einem gewichteten Graphen haben alle Kanten einen Wert (das Gewcht). Nun möchten wir von einem Knoten (zB "S" wie Start) zu einem beliebigen anderen Knoten (zB "Z" wie Ziel) gelangen. Aber nicht nur über einen zufälligen Weg, sondern den Weg mit den geringsten Gewicht.

Soweit verständlich? Das sind die Grundlagen, um die Aufgabenstellung zu verstehen (Formeln mal weggelassen, da man die erst mal nicht für das Verständnis braucht).

Nun gibt es verschiedene Möglichkeiten, den Pfad mi dem geringsten Gewicht (umgangssprachlich könnte man auch "den kürzesten Pfad" sagen) zu finden. Eine - aber nicht die einzige - Möglichkeit ist der Dijkstra-Algorithmus.

Dieser funktioniert so: du gehst von S zu jedem anderen anliegenden Knoten und merkst dir das Gewicht wie zB S->A 10, S->B 20, S->C 5, S->D 8. Nun nimmst du den Pfad mit dem geringsten Gewicht (hier S->C: mit dem Gewicht 5). Nun gehst du von C aus zu allen anderen anliegenden Knoten (zB C->E: 10, C->F: 50, C->G: 6) und addierst derren Gewicht zu dem Gewicht von S->C hinzu. Daraus folgt S->C->E: 15, S->C->F: 60, S->C->G: 11. Bevor du jetzt weiter gehst, suchst du von allen bisherigen gegangenen Wegen den mit dem geringsten Gewicht raus. Das heißt, nicht S->C-G mit 11 Kosten ist bisher der kürzeste, sondern S->A mit 10. Nun machst du das gleiche wie bei C mit A. Dann suchst du wieder von allen den kürzesten raus,  usw. bis du das Ziel erreicht hast.

Im Grunde ist es ganz einfach: du merkst dir immer die bisherigen Wege und suchst dann den kürzesten Weg (den Weg mit am wenigsten Gewicht) raus. Dann rechnest du von dem Kürzesten Weg wieder den Weg  zu den nächsten Knoten. Und nimmst dann wieder den kürzesten Weg usw. bis du beim Zielknoten angelangt bist.

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.