Wizualizacja algorytmów znajdowania ścieżek inspirowana zachowaniem śluzowca Physarum polycephalum oraz klasycznymi algorytmami przeszukiwania grafów.
Aplikacja zawiera 5 algorytmów znajdowania ścieżek:
- Physarum - Algorytm inspirowany zachowaniem śluzowca
- BFS (Breadth-First Search) - Przeszukiwanie wszerz
- DFS (Depth-First Search) - Przeszukiwanie w głąb
- Dijkstra - Algorytm Dijkstry
- A* - Algorytm A-gwiazdka
- Przeglądarka internetowa obsługująca ES6 modules
- Serwer HTTP (ze względu na CORS policy dla modułów ES6)
-
Opcja 1: Python HTTP Server
# W katalogu projektu uruchom: python3 -m http.server 8080 # Następnie otwórz w przeglądarce: # http://localhost:8080
-
Opcja 2: Node.js HTTP Server
# Zainstaluj serwer globalnie (jeśli nie masz): npm install -g http-server # W katalogu projektu uruchom: http-server -p 8080 # Następnie otwórz w przeglądarce: # http://localhost:8080
-
Opcja 3: Live Server (VS Code)
- Zainstaluj rozszerzenie "Live Server" w VS Code
- Kliknij prawym przyciskiem na
index.html
- Wybierz "Open with Live Server"
Jeśli port 8080 jest zajęty, możesz użyć innego portu:
# Python
python3 -m http.server 3000
# Node.js
http-server -p 3000
Następnie otwórz odpowiedni adres w przeglądarce (np. http://localhost:3000
).
- Generowanie labiryntu: Kliknij "Generuj Labirynt"
- Ustawianie punktów: Kliknij na labiryncie aby ustawić punkt startowy i końcowy
- Wybór algorytmu: Wybierz algorytm z menu radiowego
- Uruchomienie: Kliknij "Start" aby rozpocząć wizualizację
- Parametry: Dostosuj parametry algorytmów w panelu bocznym
- ✅ Wizualizacja 5 różnych algorytmów
- ✅ Interaktywne ustawianie punktów start/koniec
- ✅ Tryb ręcznego rysowania labiryntu
- ✅ Zapis i wczytywanie labiryntów
- ✅ Regulacja prędkości animacji
- ✅ Statystyki w czasie rzeczywistym
- ✅ Responsywny design
├── index.html # Główny plik HTML
├── style.css # Style CSS
├── src/
│ ├── main.js # Punkt wejścia aplikacji
│ ├── core/
│ │ ├── PathfindingApp.js # Główna klasa aplikacji
│ │ ├── Visualizer.js # Renderer canvas
│ │ └── MazeGenerator.js # Generator labiryntów
│ └── algorithms/
│ ├── PhysarumSolver.js # Algorytm Physarum
│ ├── BFSSolver.js # Algorytm BFS
│ ├── DFSSolver.js # Algorytm DFS
│ ├── DijkstraSolver.js # Algorytm Dijkstra
│ └── AStarSolver.js # Algorytm A*
└── papers/ # Dokumentacja naukowa
Projekt inspirowany jest zachowaniem śluzowca Physarum polycephalum, który potrafi znajdować optymalne ścieżki między źródłami pożywienia poprzez dynamiczne formowanie sieci naczyń transportowych.