Grin logo
de en es fr
Shop
GRIN Website
Publish your texts - enjoy our full service for authors
Go to shop › Computer Science - Programming

Erstellung einer Anwendung zur Visualisierung der Tiefensuche zur effizienten Lösung eines Labyrinthproblems

Title: Erstellung einer Anwendung zur Visualisierung der Tiefensuche zur effizienten Lösung eines Labyrinthproblems

Bachelor Thesis , 2026 , 60 Pages

Autor:in: Daniel Riel (Author)

Computer Science - Programming
Excerpt & Details   Look inside the ebook
Summary Excerpt Details

Diese Bachelorarbeit behandelt die Konzeption und Implementierung einer Anwendung zur Visualisierung der Tiefensuche (Depth-First Search, DFS) anhand eines Labyrinthproblems. Ziel der Arbeit ist es, die Funktionsweise von Graphdurchlaufalgorithmen nachvollziehbar und anschaulich darzustellen.

Das Labyrinth wird als ungerichteter Graph modelliert, wobei einzelne Zellen Knoten und begehbare Verbindungen Kanten darstellen. Die Generierung erfolgt mithilfe eines rekursiven Backtracking-Verfahrens auf Basis der Tiefensuche, welches ein vollständig zusammenhängendes und somit stets lösbares Labyrinth erzeugt. Nach der Generierung können ein Start- und ein Zielpunkt definiert werden, zwischen denen ein Pfad berechnet wird.

Ergänzend wird der A*-Algorithmus zur Pfadfindung implementiert, um einen Vergleich unterschiedlicher Suchstrategien zu ermöglichen. Die Anwendung wurde in Python umgesetzt und nutzt eine grafische Benutzeroberfläche zur schrittweisen Visualisierung sowohl der Labyrinthgenerierung als auch der Pfadsuche.

Die Ergebnisse zeigen, dass die Tiefensuche zuverlässig einen gültigen Pfad findet, jedoch keine Garantie für optimale Lösungen bietet. Der A*-Algorithmus ermittelt in der Regel kürzere Wege und reduziert den Suchaufwand, insbesondere bei größeren Labyrinthen. Die entwickelte Anwendung eignet sich damit besonders zur didaktischen Vermittlung grundlegender Konzepte der Graphentheorie und algorithmischer Suchverfahren.

Excerpt


Inhaltsverzeichnis

1. Einleitung

1.1. Problemstellung und Motivation

1.2. Zielsetzung der Arbeit

1.3. Aufbau der Arbeit

2. Grundlagen

2.1. Einführung in die Graphentheorie

2.2. Mathematische und theoretische Grundlagen

2.2.1. Allgemeine ungerichtete Graphen

2.2.2. Typische Strukturen ungerichteter Graphen

2.2.3. Gerichtete Graphen

2.2.4. Kürzester Pfad

2.2.5. Der A*-Algorithmus

2.2.6. Bestimmung des optimalen Pfades mit A*

2.3. Speicherung von Graphen

2.3.1. Adjazenzmatrix

2.3.2. Adjazenzliste

2.4. Traversierungsverfahren

2.4.1. Tiefensuche (Depth-First Search, DFS)

2.4.2. Analyse der Tiefensuche

2.4.3. Implementierung der Tiefensuche

2.4.4. Codeanalyse der Tiefensuche

2.4.5. Ablauf der rekursiven Tiefensuche

2.4.6. Breitensuche (Breadth-First Search, BFS)

2.4.7. Implementierung der Breitensuche

2.4.8. Codeanalyse der Breitensuche

2.4.9. Ablauf der iterativen Breitensuche

2.4.10. Komplexitätsanalyse von Breitensuche und Tiefensuche

2.5. Labyrinthe als Graphen

3. Konzept

3.1. Graphentyp

3.2. Programmiersprache

3.3. Algorithmen

3.3.1. Tiefensuche (DFS)

3.3.2. A*-Algorithmus

3.3.3. Vergleich der Algorithmen

3.4. Softwarearchitektur

4. Implementierung

5. Ergebnisse

6. Zusammenfassung und Ausblick

Zielsetzung und Themenschwerpunkte

Das Hauptziel dieser Bachelorarbeit liegt in der Konzeption, Implementierung und Analyse einer interaktiven Anwendung zur Visualisierung von Graphdurchlauf- und Pfadfindungsalgorithmen anhand eines zweidimensionalen Labyrinthproblems. Im Fokus steht dabei die didaktische und transparente Aufbereitung der Tiefensuche (Depth-First Search, DFS) mit Backtracking sowie deren vergleichende Gegenüberstellung mit alternativen Verfahren, insbesondere dem heuristischen A*-Algorithmus. Die Arbeit untersucht die praktische Eignung unterschiedlicher Implementierungsvarianten, deren algorithmische Effizienz sowie die didaktische Wirksamkeit einer animierten Schritt-für-Schritt-Darstellung.

  • Graphentheoretische Modellierung von Labyrinthstrukturen als ungerichtete Graphen und Spannbäume
  • Konzeption und Umsetzung der automatisierten Labyrinthgenerierung mittels rekursivem Backtracking
  • Analyse, Implementierung und Gegenüberstellung von uninformierten und informierten Suchalgorithmen (DFS, BFS und A*)
  • Entwicklung einer modularen Desktop-Softwarearchitektur in Python unter Nutzung der GUI-Bibliothek Tkinter
  • Quantitative Laufzeit- und Knotenanalyse zur Leistungsbewertung der Pfadfindungsalgorithmen
  • Didaktische Visualisierung komplexer Kontroll- und Rekursionsstrukturen zur Förderung des Softwareverständnisses

Auszug aus dem Buch

3. Konzept

Das Labyrinth wird als Graph modelliert, dessen Struktur auf einem zweidimensionalen Raster aus Zellen basiert. In der Implementierung wird jede Zelle durch ein Objekt der Klasse Cell (vgl. cell.py) repräsentiert. Jede dieser Zellen entspricht genau einem Knoten des Graphen und beschreibt eine begehbare Position innerhalb des Labyrinths.

Formal lässt sich das Labyrinth als Graph G =(V,E) auffassen, wobei V die Menge aller Zellen darstellt. Die Zellen sind anhand ihrer kartesischen Koordinaten (x, y) eindeutig identifizierbar und werden in einer spaltenweise organisierten zweidimensionalen Liste gespeichert. Die Kantenmenge E ergibt sich nicht aus einer expliziten Datenstruktur, sondern wird implizit über den Wandzustand der einzelnen Zellen definiert.

Jede Zelle besitzt vier potenzielle Wände (oben, rechts, unten, links), die angeben, ob eine Bewegung in die jeweilige Richtung möglich ist. Existiert zwischen zwei benachbarten Zellen keine trennende Wand, so wird dies als Kante im Graphen interpretiert. Umgekehrt entspricht das Vorhandensein einer Wand dem Fehlen einer Kante. Durch diese implizite Modellierung lassen sich Nachbarschaftsbeziehungen effizient bestimmen, ohne eine separate Kantenliste oder Adjazenzmatrix zu benötigen.

Die Nachbarschaft einer Zelle ist dabei auf die vier orthogonal angrenzenden Zellen beschränkt; diagonale Verbindungen sind ausgeschlossen. Diese Einschränkung folgt direkt aus der Rasterstruktur und ist konsistent mit der grafischen Darstellung des Labyrinths in der Benutzeroberfläche.

Die Graphstruktur entsteht dynamisch während der Labyrinthgenerierung. Zu Beginn sind alle Zellen vollständig voneinander getrennt, sodass keine Kanten existieren. Während des Generierungsprozesses werden schrittweise Wände zwischen benachbarten Zellen entfernt. Jede entfernte Wand entspricht dem Hinzufügen einer Kante im Graphen. Dieser Prozess wird durch ein stackbasiertes Tiefensuchverfahren mit Backtracking (sog. Recursive-Backtracker-Algorithmus) umgesetzt, das in den Modulen algo.py und maze.py implementiert ist.

Zusammenfassung der Kapitel

1. Einleitung: Dieses Kapitel führt anhand historischer und mythologischer Beispiele in die Thematik der Labyrinthe ein, erläutert die Problemstellung der mangelnden Nachvollziehbarkeit abstrakter Suchalgorithmen in der Lehre und formuliert die zentralen Forschungsfragen und Ziele der Arbeit.

2. Grundlagen: Hier werden die mathematischen Fundamente der Graphentheorie, typische Graphenstrukturen, Repräsentationsformen wie Adjazenzmatrix und Adjazenzliste sowie Traversierungsverfahren wie Tiefensuche, Breitensuche und der A*-Algorithmus inklusive Komplexitätsanalysen und Labyrinth-Eigenschaften detailliert dargelegt.

3. Konzept: Das Kapitel beschreibt den konzeptionellen Aufbau des Gesamtsystems, einschließlich der impliziten Graphenmodellierung über Zellwände, der Wahl von Python und Tkinter sowie des Softwareentwurfs mit modularer Aufteilung in spezialisierte Skripte.

4. Implementierung: Im Mittelpunkt stehen die praktische Programmierung des Labyrinthgenerators mittels Backtracking, die Umsetzung der Suchalgorithmen zur Pfadfindung und das statische Softwaredesign, veranschaulicht anhand eines UML-Klassendiagramms.

5. Ergebnisse: Dieses Kapitel präsentiert die entwickelte Anwendung, validiert deren Funktionsumfang und wertet quantitative Messungen bezüglich Rechenzeit, Anzahl besuchter Knoten sowie den didaktischen Mehrwert der Visualisierung systematisch aus.

6. Zusammenfassung und Ausblick: Die Arbeit schließt mit einer Bündelung der gewonnenen Erkenntnisse über algorithmische Pfadsuche und Visualisierungsgrenzen ab und skizziert Möglichkeiten für künftige Erweiterungen wie weitere Algorithmen oder Web-Plattformen.

Schlüsselwörter

Labyrinthproblem, Graphentheorie, Tiefensuche, Depth-First Search, A*-Algorithmus, Breitensuche, Backtracking, Python, Tkinter, Pfadfindung, Heuristik, Adjazenzliste, Adjazenzmatrix, Visualisierung, Suchalgorithmen

Häufig gestellte Fragen

Worum geht es in der vorliegenden Arbeit grundsätzlich?

Die Arbeit befasst sich mit der Konzeption und technischen Umsetzung einer Desktop-Anwendung in Python, welche die Arbeitsweise graphbasierter Suchverfahren – insbesondere der Tiefensuche – bei der Generierung und Lösung von Labyrinthstrukturen visuell nachvollziehbar macht.

Welche zentralen Themenfelder werden in der Untersuchung abgedeckt?

Zu den zentralen Feldern zählen die theoretische Graphentheorie, Datenstrukturen zur Graphenrepräsentation, Algorithmen zur Traversierung und Pfadfindung (DFS, BFS, A*), Softwareentwicklung mit GUI-Frameworks sowie didaktische Methoden zur Visualisierung abstrakter Codeabläufe.

Was ist das primäre Ziel und die leitende Forschungsfrage?

Das primäre Ziel ist es, zu untersuchen, wie sich die Funktionsweise der Tiefensuche durch eine animierte Darstellung transparenter vermitteln lässt, wie das Backtracking-Verfahren optimiert werden kann und wie sich die Tiefensuche hinsichtlich Effizienz und Pfadqualität im Vergleich zum A*-Algorithmus verhält.

Welche wissenschaftliche und praktische Methode wird angewendet?

Die Arbeit verbindet eine theoretische Literatur- und Komplexitätsanalyse mit einem konstruktiven Softwareentwicklungsprozess nach dem Prototyping-Ansatz sowie einer empirisch-quantitativen Evaluation anhand experimenteller Laufzeit- und Knotenmessungen.

Was wird im Hauptteil der Arbeit behandelt?

Der Hauptteil umfasst die formale Modellierung eines zellbasierten Labyrinths als ungerichteter Graph, die Erstellung der modularen Softwarearchitektur in Python, die Implementierung der Labyrinthgenerierung und -lösung sowie die detaillierte Codeanalyse der verwendeten Datenstrukturen.

Welche Schlüsselwörter charakterisieren die Publikation?

Die Arbeit wird maßgeblich durch die Begriffe Labyrinthproblem, Graphentheorie, Tiefensuche (DFS), A*-Algorithmus, Breitensuche (BFS), Backtracking, Python und visuelle Simulation charakterisiert.

Wie wird das Labyrinth in der Implementierung graphentheoretisch modelliert?

Das Labyrinth wird als ungerichteter Graph abgebildet, bei dem jede Zelle im zweidimensionalen Raster einen Knoten darstellt. Kanten werden nicht über Matrizen gespeichert, sondern implizit durch das Fehlen trennender Wände zwischen horizontal und vertikal benachbarten Zellen repräsentiert.

Welche wesentlichen Unterschiede zeigen sich zwischen Tiefensuche und A*-Algorithmus?

Während die Tiefensuche uninformiert und ohne Berücksichtigung von Distanzen Pfade tief verfolgt und oft suboptimale, längere Lösungswege findet, nutzt der A*-Algorithmus die Manhattan-Distanz als Heuristik, um zielgerichtet den tatsächlich kürzesten Pfad zu ermitteln.

Warum war die Tiefensuche bei kleinen Labyrinth-Instanzen in der Messung schneller als A*?

Bei kleinen Instanzen fällt der zusätzliche Rechen- und Verwaltungsaufwand des A*-Algorithmus für die Heuristikberechnung und die Verwaltung der Prioritätswarteschlange über heapq stärker ins Gewicht als der einfache Stack-Mechanismus der Tiefensuche.

Excerpt out of 60 pages  - scroll top

Details

Title
Erstellung einer Anwendung zur Visualisierung der Tiefensuche zur effizienten Lösung eines Labyrinthproblems
College
University of Applied Sciences Berlin  (Institute of Distance Learning, Berlin)
Course
Medieninformatik
Author
Daniel Riel (Author)
Publication Year
2026
Pages
60
Catalog Number
V1749385
ISBN (PDF)
9783389202104
ISBN (Book)
9783389202111
Language
German
Tags
Labyrinthproblem Graphentheorie Tiefensuche A*-Algorithmus
Product Safety
GRIN Publishing GmbH
Quote paper
Daniel Riel (Author), 2026, Erstellung einer Anwendung zur Visualisierung der Tiefensuche zur effizienten Lösung eines Labyrinthproblems, Munich, GRIN Verlag, https://www.grin.com/document/1749385
Look inside the ebook
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
Excerpt from  60  pages
Grin logo
  • Grin.com
  • Shipping
  • Contact
  • Privacy
  • Terms
  • Imprint
  • Withdraw Contract