Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| ef:algorithmen:start [2025/11/13 15:35] – lehmannr | ef:algorithmen:start [2025/11/19 16:27] (aktuell) – lehmannr | ||
|---|---|---|---|
| Zeile 2: | Zeile 2: | ||
| Ein Labyrinth kann man durch einen Graphen darstellen. Ein sogenanntes " | Ein Labyrinth kann man durch einen Graphen darstellen. Ein sogenanntes " | ||
| + | <WRAP nicebox green> | ||
| + | ** Aufgabe 1 ** | ||
| + | - Wie funktioniert der Algorithmus Randomized Depth First Search (DFS), um ein Labyrinth zu erstellen? Erkläre. | ||
| + | - Wozu benötigt man einen Stack, um den DFS zu implementieren. | ||
| + | - Finde zu einem gegebenen Labyrinth den zugehörigen Graphen und umgekehrt (vgl. Arbeitsblatt). | ||
| + | </ | ||
| ======= 2. Pfadfinder-Algorithmen ======= | ======= 2. Pfadfinder-Algorithmen ======= | ||
| Betrachte die Aufgabe zum Programmierwettbewerb Hidden-Gems: | Betrachte die Aufgabe zum Programmierwettbewerb Hidden-Gems: | ||
| - | |||
| Bei " | Bei " | ||
| + | Es gibt etliche Algorithmen, | ||
| + | |||
| + | ===== 2.1 Labyrinthe lösen ===== | ||
| + | <WRAP nicebox green> | ||
| + | **Aufgabe 2** | ||
| + | - Wie funktioniert der Random-Mouse Algorithmus? | ||
| + | - Wie funktioniert der "Hand on wall" | ||
| + | - Wie funktioniert der DFS-Algorithmus um den Pfad in einem Labyrinth zu finden? Produziert er den kürzesten Weg? | ||
| + | - Wie funktioniert der BFS-Algorithmus um den Pfad in einem Labyrinth zu finden? Produziert er den kürzesten Weg? | ||
| + | </ | ||
| + | |||
| + | ===== 2.2 Andere Pfad-Finder-Algorithmen ===== | ||
| <WRAP nicebox green> | <WRAP nicebox green> | ||
| - | ** Aufgabe ** | + | ** Aufgabe |
| - | - Überlege dir, welchen Algorithmus man bei der Testumgebung verwenden könnte? | + | - Wie funktioniert der Dijkstra-Algorithmus, |
| - | - Was ändert sich, wenn man sich in einer Umgebung mit Wänden bewegt? Wie wird die Umgebung, die Position des Bots und der Edelsteine repräsentiert? | + | - Wie funktioniert A*? Erkläre ihn. Recherchiere nach bekannten Pfadfinder-Algorithmen. [[https://youtu.be/-L-WgKMFuhE?si=I7kuQFjTcYBDQRN7|Sebastian Lague A*]] |
| - | - Überlege dir einen möglichen Algorithmus, | + | |
| - | - Recherchiere nach bekannten Pfadfinder-Algorithmen. | + | |
| - Eine gute visuelle Darstellung von verschiedenen Algorithmen findet sich z.B. hier: [[https:// | - Eine gute visuelle Darstellung von verschiedenen Algorithmen findet sich z.B. hier: [[https:// | ||
| - | - Erklärung zur Breitensuche: | + | |
| - | - Erklärung des Dijkstras-Algorithmus [[https:// | + | |
| </ | </ | ||
| - | - Wie funktioniert die Breitensuche? | ||
| - | - Was ist eine Queue und wie verwendet man sie, wenn man die Breitensuche implementiert? | ||
| main.py | main.py | ||
| Zeile 125: | Zeile 137: | ||
| cell.py | cell.py | ||
| + | <sxh> | ||
| import random | import random | ||
| Zeile 202: | Zeile 214: | ||
| else: | else: | ||
| return j*rows + i | return j*rows + i | ||
| - | + | </ | |
| - | + | ||