2026-rff_mp/rybakovaa/lab2/docs/report.md

1.8 KiB
Raw Blame History

Отчёт: поиск пути в лабиринте

Паттерны: Builder, Strategy, Observer

classDiagram
class MazeBuilder
class TextFileMazeBuilder
class PathFindingStrategy
class BFSStrategy
class DFSStrategy
class AStarStrategy
class MazeSolver
class Observer
class ConsoleView
MazeBuilder <|-- TextFileMazeBuilder
PathFindingStrategy <|-- BFSStrategy
PathFindingStrategy <|-- DFSStrategy
PathFindingStrategy <|-- AStarStrategy
Observer <|-- ConsoleView
MazeSolver --> PathFindingStrategy
Лабиринт Стратегия Время (мс) Длина пути Найден
маленький 10x10 BFS 0.14 19 да
маленький 10x10 DFS 0.08 37 да
маленький 10x10 A 0.25 19 да
средний 50x50 BFS 2.88 99 да
средний 50x50 DFS 1.91 283 да
средний 50x50 A 2.43 99 да
большой 100x100 BFS 12.23 199 да
большой 100x100 DFS 8.78 1643 да
большой 100x100 A 8.60 199 да
пустой 50x50 BFS 4.88 99 да
пустой 50x50 DFS 3.13 1275 да
пустой 50x50 A 11.55 99 да
без выхода 20x20 BFS 0.00 0 нет
без выхода 20x20 DFS 0.00 0 нет
без выхода 20x20 A 0.00 0 нет

График

Выводы

  • BFS и A* находят кратчайший путь.
  • DFS путь может быть длиннее.
  • На пустом лабиринте алгоритмы работают быстрее всего.
  • Без выхода все стратегии возвращают пустой путь.