rekursion:tiefensuche:start
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
rekursion:tiefensuche:start [2024/09/08 15:56] – angelegt Martin Pabst | rekursion:tiefensuche:start [2024/09/18 09:23] (aktuell) – [Wiederholung: Graphen, Adjazenzmatrix] Martin Pabst | ||
---|---|---|---|
Zeile 2: | Zeile 2: | ||
===== Wiederholung: | ===== Wiederholung: | ||
<WRAP center round info 60%> | <WRAP center round info 60%> | ||
+ | **Grundproblem der Tiefensuche: | ||
+ | Wir wollen einen Algorithmus entwickeln, der für beliebige Knotenpaare A, B in einem Graphen ermitteln kann, ob diese beiden Knoten durch einen Pfad verbunden sind. \\ \\ | ||
+ | Sehen Sie sich zunächst das folgende Video an, in dem der Algorithmus der Tiefensuche erklärt wird: | ||
+ | {{ youtube> | ||
+ | Im Video verwendete Fachwörter: | ||
+ | * vertex (auch: node) -> Knoten | ||
+ | * edge -> Kante | ||
+ | * DFS: Depth first search -> Tiefensuche | ||
+ | * graph traversal -> Traversierung eines Graphen (d.h. Beschreitung all seiner Knoten) | ||
+ | </ | ||
+ | |||
+ | <WRAP center round tip 60%> | ||
Zum Verständnis der Tiefensuche benötigen Sie Wissen und Kenntnisse aus Jahrgangsstufe 11. Bitte wiederholen Sie gründlich folgende Kapitel: | Zum Verständnis der Tiefensuche benötigen Sie Wissen und Kenntnisse aus Jahrgangsstufe 11. Bitte wiederholen Sie gründlich folgende Kapitel: | ||
* [[https:// | * [[https:// | ||
Zeile 7: | Zeile 19: | ||
</ | </ | ||
- | {{ youtube> | + | \\ |
- | Wir wollen | + | |
+ | <WRAP center round info 80%> | ||
+ | **Informelle Beschreibung des Algorithmus: | ||
+ | Wir entwickeln | ||
* 1.) Überprüfe, | * 1.) Überprüfe, | ||
* 2.) Überprüfe für jeden von '' | * 2.) Überprüfe für jeden von '' | ||
- | Dieses Vorgehen kann bei zyklischen Graphen zu einer **unendlichen Methodenaufrufkette** führen. Daher muss der Algorithmus **speichern, | ||
- | <WRAP center round info 80%> | + | **Problem: |
+ | Dieses Vorgehen kann bei zyklischen Graphen zu einer **unendlichen Methodenaufrufkette** führen. | ||
+ | |||
+ | **Lösung: | ||
+ | Der Algorithmus muss **speichern, | ||
+ | In Schritt 1.) wird '' | ||
Die beschriebene Methode nennt man **Tiefensuche** (engl. depth-first search, DFS). "Bei der Tiefensuche wird zunächst jeder Pfad vollständig in die Tiefe beschritten, | Die beschriebene Methode nennt man **Tiefensuche** (engl. depth-first search, DFS). "Bei der Tiefensuche wird zunächst jeder Pfad vollständig in die Tiefe beschritten, | ||
Ein zweites Suchverfahren wäre die **Breitensuche** (engl. breadth-first search, BFS). Bei dieser werden " | Ein zweites Suchverfahren wäre die **Breitensuche** (engl. breadth-first search, BFS). Bei dieser werden " | ||
Zeile 24: | Zeile 44: | ||
<WRAP center round tip 50%> | <WRAP center round tip 50%> | ||
{{ : | {{ : | ||
- | Den im Testprogramm unten generierten Graphen | + | Den im Testprogramm unten generierten Graphen |
</ | </ | ||
Zeile 90: | Zeile 110: | ||
<WRAP center round todo 60%> | <WRAP center round todo 60%> | ||
+ | |||
+ | ===== Aufgabe 1 ===== | ||
+ | |||
**Aufgabe (nicht leicht...): | **Aufgabe (nicht leicht...): | ||
- | Erweitere | + | Erweitern Sie das Programm so, dass die Methode |
[[.istverbundenaufgabe: | [[.istverbundenaufgabe: | ||
</ | </ |
rekursion/tiefensuche/start.1725810985.txt.gz · Zuletzt geändert: 2024/09/08 15:56 von Martin Pabst