From d04641b742c8f0de360c1471bc505600298f9e2c Mon Sep 17 00:00:00 2001 From: zverevem Date: Mon, 18 May 2026 17:35:46 +0300 Subject: [PATCH] [2]zadanie2 --- zverevem/lab2/docs/Report.ipynb | 345 ++++++++++++++++++ zverevem/lab2/docs/data/FindingStrategy.py | 100 +++++ zverevem/lab2/docs/data/MazeBuilder.py | 44 +++ zverevem/lab2/docs/data/MazeModel.py | 62 ++++ zverevem/lab2/docs/data/MazeSolver.py | 121 ++++++ zverevem/lab2/docs/data/Results.py | 103 ++++++ zverevem/lab2/docs/data/Standard.py | 153 ++++++++ zverevem/lab2/docs/data/chart_время-мс.png | Bin 0 -> 63890 bytes zverevem/lab2/docs/data/chart_длина-пути.png | Bin 0 -> 60282 bytes .../lab2/docs/data/chart_посещено-клеток.png | Bin 0 -> 69556 bytes zverevem/lab2/docs/data/maze_large.txt | 100 +++++ zverevem/lab2/docs/data/maze_medium.txt | 50 +++ zverevem/lab2/docs/data/maze_no_exit.txt | 20 + zverevem/lab2/docs/data/maze_open.txt | 50 +++ zverevem/lab2/docs/data/maze_small.txt | 10 + zverevem/lab2/docs/data/results.csv | 16 + 16 files changed, 1174 insertions(+) create mode 100644 zverevem/lab2/docs/Report.ipynb create mode 100644 zverevem/lab2/docs/data/FindingStrategy.py create mode 100644 zverevem/lab2/docs/data/MazeBuilder.py create mode 100644 zverevem/lab2/docs/data/MazeModel.py create mode 100644 zverevem/lab2/docs/data/MazeSolver.py create mode 100644 zverevem/lab2/docs/data/Results.py create mode 100644 zverevem/lab2/docs/data/Standard.py create mode 100644 zverevem/lab2/docs/data/chart_время-мс.png create mode 100644 zverevem/lab2/docs/data/chart_длина-пути.png create mode 100644 zverevem/lab2/docs/data/chart_посещено-клеток.png create mode 100644 zverevem/lab2/docs/data/maze_large.txt create mode 100644 zverevem/lab2/docs/data/maze_medium.txt create mode 100644 zverevem/lab2/docs/data/maze_no_exit.txt create mode 100644 zverevem/lab2/docs/data/maze_open.txt create mode 100644 zverevem/lab2/docs/data/maze_small.txt create mode 100644 zverevem/lab2/docs/data/results.csv diff --git a/zverevem/lab2/docs/Report.ipynb b/zverevem/lab2/docs/Report.ipynb new file mode 100644 index 0000000..d7ea70a --- /dev/null +++ b/zverevem/lab2/docs/Report.ipynb @@ -0,0 +1,345 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "9a863658", + "metadata": {}, + "source": [ + "# Отчёт: Поиск выхода из лабиринта (ООП + паттерны проектирования)\n", + "\n", + "## Цель работы\n", + "\n", + "Разработать гибкую расширяемую программу для загрузки лабиринта из файла, поиска пути от старта до выхода с возможностью выбора алгоритма и экспериментального сравнения алгоритмов. Применить минимум 3 паттерна проектирования из списка GoF, обосновать их выбор и продемонстрировать преимущества такой архитектуры.\n", + "\n", + "---\n", + "\n", + "## Описание задачи и выбранных паттернов\n", + "\n", + "Программа решает задачу поиска пути в лабиринте, загружаемом из текстового файла. Лабиринт представляет собой сетку клеток, где `#` — стена, пробел — проход, `S` — старт, `E` — выход. Алгоритм поиска выбирается динамически, результаты выводятся через систему событий.\n", + "\n", + "В проекте применены паттерны Builder, Strategy, Observer и Command.\n", + "\n", + "### 1. Builder (Строитель) — `MazeBuilder.py`\n", + "\n", + "**Проблема:** построение объекта `Maze` из текстового файла включает несколько этапов: чтение файла, анализ символов, создание объектов клеток, определение стартовой и конечной позиции, формирование структуры лабиринта.\n", + "\n", + "**Решение:** создан абстрактный класс `MazeBuilder` с методом `build_from_file()`. Класс `TextFileMazeBuilder` реализует построение лабиринта из текстового файла.\n", + "\n", + "```python\n", + "class MazeBuilder(ABC):\n", + " @abstractmethod\n", + " def build_from_file(self, filename) -> Maze:\n", + " pass\n", + "```\n", + "\n", + "```python\n", + "class TextFileMazeBuilder(MazeBuilder):\n", + " def build_from_file(self, filename) -> Maze:\n", + "```\n", + "\n", + "Паттерн позволяет изолировать логику построения лабиринта от основной программы. При необходимости можно добавить другой формат загрузки без изменения клиентского кода.\n", + "\n", + "### 2. Strategy (Стратегия) — `FindingStrategy.py`\n", + "\n", + "**Проблема:** алгоритмы BFS, DFS и A* имеют разную реализацию, но используются одинаковым образом.\n", + "\n", + "**Решение:** создан интерфейс `PathFindingStrategy` с методом `find_path()`. Алгоритмы `BFSStrategy`, `DFSStrategy` и `AStarStrategy` реализуют общий интерфейс.\n", + "\n", + "```python\n", + "class PathFindingStrategy(ABC):\n", + " @abstractmethod\n", + " def find_path(self, maze, start, exit_cell):\n", + " pass\n", + "```\n", + "\n", + "Смена алгоритма выполняется динамически:\n", + "\n", + "```python\n", + "solver.set_strategy(BFSStrategy())\n", + "solver.solve()\n", + "\n", + "solver.set_strategy(AStarStrategy())\n", + "solver.solve()\n", + "```\n", + "\n", + "Паттерн Strategy позволяет добавлять новые алгоритмы поиска без изменения класса `MazeSolver`.\n", + "\n", + "### 3. Observer (Наблюдатель) — `MazeSolver.py`\n", + "\n", + "**Проблема:** необходимо уведомлять интерфейс о событиях поиска пути без жёсткой связи между логикой и выводом.\n", + "\n", + "**Решение:** реализован интерфейс `Observer` с методом `update()`. Класс `ConsoleView` подписывается на события `MazeSolver`.\n", + "\n", + "```python\n", + "class Observer(ABC):\n", + " @abstractmethod\n", + " def update(self, event, data=None):\n", + " pass\n", + "```\n", + "\n", + "```python\n", + "solver.add_observer(view)\n", + "```\n", + "\n", + "При нахождении пути вызывается уведомление:\n", + "\n", + "```python\n", + "self._notify('path_found', {\n", + " 'stats': stats,\n", + " 'strategy': type(self.strategy).__name__\n", + "})\n", + "```\n", + "\n", + "Паттерн позволяет отделить вывод информации от алгоритмов поиска.\n", + "\n", + "### 4. Command (Команда) — `MazeSolver.py`\n", + "\n", + "**Проблема:** необходимо реализовать возможность перемещения игрока с поддержкой отмены действий.\n", + "\n", + "**Решение:** создан интерфейс `Command` с методами `execute()` и `undo()`. Класс `MoveCommand` хранит предыдущее состояние игрока.\n", + "\n", + "```python\n", + "class Command(ABC):\n", + " @abstractmethod\n", + " def execute(self):\n", + " pass\n", + "\n", + " @abstractmethod\n", + " def undo(self):\n", + " pass\n", + "```\n", + "\n", + "```python\n", + "cmd.execute()\n", + "cmd.undo()\n", + "```\n", + "\n", + "Паттерн инкапсулирует действия в отдельные объекты и позволяет реализовать undo/redo.\n", + "\n", + "---\n", + "\n", + "## Диаграмма классов (Mermaid)\n", + "\n", + "```mermaid\n", + "classDiagram\n", + " class MazeBuilder {\n", + " <>\n", + " +build_from_file(filename) Maze\n", + " }\n", + "\n", + " class TextFileMazeBuilder {\n", + " +build_from_file(filename) Maze\n", + " }\n", + "\n", + " class Cell {\n", + " +x\n", + " +y\n", + " +is_wall\n", + " +is_start\n", + " +is_exit\n", + " +is_passable()\n", + " }\n", + "\n", + " class Maze {\n", + " +width\n", + " +height\n", + " +get_cell(x, y)\n", + " +get_neighbors(cell)\n", + " +render(path, player_pos)\n", + " }\n", + "\n", + " class PathFindingStrategy {\n", + " <>\n", + " +find_path(maze, start, exit)\n", + " }\n", + "\n", + " class BFSStrategy\n", + " class DFSStrategy\n", + " class AStarStrategy\n", + "\n", + " class MazeSolver {\n", + " +set_strategy(strategy)\n", + " +solve()\n", + " +add_observer(observer)\n", + " }\n", + "\n", + " class SearchStats\n", + "\n", + " class Observer {\n", + " <>\n", + " +update(event, data)\n", + " }\n", + "\n", + " class ConsoleView\n", + "\n", + " class Command {\n", + " <>\n", + " +execute()\n", + " +undo()\n", + " }\n", + "\n", + " class MoveCommand\n", + " class Player\n", + "\n", + " MazeBuilder <|.. TextFileMazeBuilder\n", + " Maze o-- Cell\n", + "\n", + " PathFindingStrategy <|.. BFSStrategy\n", + " PathFindingStrategy <|.. DFSStrategy\n", + " PathFindingStrategy <|.. AStarStrategy\n", + "\n", + " MazeSolver --> Maze\n", + " MazeSolver --> PathFindingStrategy\n", + " MazeSolver --> SearchStats\n", + "\n", + " Observer <|.. ConsoleView\n", + " MazeSolver --> Observer\n", + "\n", + " Command <|.. MoveCommand\n", + " MoveCommand --> Player\n", + "```\n", + "\n", + "---\n", + "\n", + "## Ключевые фрагменты реализации\n", + "\n", + "### Реализация BFS\n", + "\n", + "```python\n", + "class BFSStrategy(PathFindingStrategy):\n", + " def find_path(self, maze, start, exit_cell):\n", + " queue = deque([start])\n", + " came_from = {(start.x, start.y): None}\n", + "```\n", + "\n", + "Алгоритм BFS выполняет поиск в ширину и гарантирует нахождение кратчайшего пути.\n", + "\n", + "### Реализация DFS\n", + "\n", + "```python\n", + "class DFSStrategy(PathFindingStrategy):\n", + " def find_path(self, maze, start, exit_cell):\n", + " stack = [start]\n", + "```\n", + "\n", + "DFS использует стек и выполняет поиск в глубину.\n", + "\n", + "### Реализация A*\n", + "\n", + "```python\n", + "class AStarStrategy(PathFindingStrategy):\n", + "\n", + " def _heuristic(self, cell, goal):\n", + " return abs(cell.x - goal.x) + abs(cell.y - goal.y)\n", + "```\n", + "\n", + "A* использует манхэттенскую эвристику для направления поиска к цели.\n", + "\n", + "---\n", + "\n", + "## Экспериментальная часть\n", + "\n", + "### Параметры эксперимента\n", + "\n", + "| Параметр | Значение |\n", + "| ---------- | ------------------------------------ |\n", + "| Повторений | 7 |\n", + "| Алгоритмы | BFS, DFS, A* |\n", + "| Метрики | время, посещённые клетки, длина пути |\n", + "\n", + "### Тестовые лабиринты\n", + "\n", + "| Название | Размер |\n", + "| ------------- | ------- |\n", + "| small_10x10 | 10×10 |\n", + "| medium_50x50 | 50×50 |\n", + "| large_100x100 | 100×100 |\n", + "| open_50x50 | 50×50 |\n", + "| no_exit_20x20 | 20×20 |\n", + "\n", + "---\n", + "\n", + "## Результаты\n", + "\n", + "### Таблица результатов\n", + "\n", + "| Лабиринт | Алгоритм | Время (мс) | Посещено клеток | Длина пути |\n", + "| ------------- | -------- | ---------- | --------------- | ---------- |\n", + "| small_10x10 | BFS | 0.094 | 54 | 15 |\n", + "| small_10x10 | DFS | 0.059 | 33 | 33 |\n", + "| small_10x10 | A* | 0.078 | 36 | 15 |\n", + "| medium_50x50 | BFS | 2.446 | 1639 | 95 |\n", + "| medium_50x50 | DFS | 1.480 | 1063 | 185 |\n", + "| medium_50x50 | A* | 1.528 | 588 | 95 |\n", + "| large_100x100 | BFS | 9.891 | 6564 | — |\n", + "| large_100x100 | DFS | 9.057 | 6564 | — |\n", + "| large_100x100 | A* | 17.578 | 6564 | — |\n", + "| open_50x50 | BFS | 3.296 | 2304 | 95 |\n", + "| open_50x50 | DFS | 1.830 | 1223 | 1129 |\n", + "| open_50x50 | A* | 5.566 | 2304 | 95 |\n", + "| no_exit_20x20 | BFS | 0.368 | 260 | — |\n", + "| no_exit_20x20 | DFS | 0.343 | 260 | — |\n", + "| no_exit_20x20 | A* | 0.607 | 260 | — |\n", + "\n", + "### Визуализация\n", + "\n", + "![Время выполнения](data/chart_время-мс.png)\n", + "\n", + "![Посещено клеток](data/chart_посещено-клеток.png)\n", + "\n", + "![Длина пути](data/chart_длина-пути.png)\n", + "\n", + "---\n", + "\n", + "## Анализ результатов\n", + "\n", + "### BFS\n", + "\n", + "Алгоритм BFS во всех случаях находит кратчайший путь. На лабиринте medium_50x50 длина найденного пути составила 95 шагов. Недостатком алгоритма является большое количество посещённых клеток.\n", + "\n", + "### DFS\n", + "\n", + "DFS выполняет поиск быстрее, однако найденный путь значительно длиннее. На open_50x50 длина пути составила 1129 шагов против 95 у BFS.\n", + "\n", + "### A*\n", + "\n", + "Алгоритм A* использует эвристику и уменьшает количество посещённых клеток. На medium_50x50 было посещено 588 клеток против 1639 у BFS.\n", + "\n", + "На открытом лабиринте преимущества эвристики снижаются, из-за чего время работы увеличивается.\n", + "\n", + "### Лабиринты без пути\n", + "\n", + "На large_100x100 и no_exit_20x20 путь найден не был. Все алгоритмы корректно завершили работу после обхода доступных клеток.\n", + "\n", + "---\n", + "\n", + "## Выводы\n", + "\n", + "В ходе работы была реализована объектно-ориентированная система поиска пути в лабиринте с применением паттернов проектирования GoF.\n", + "\n", + "Паттерн Strategy обеспечил возможность динамической смены алгоритма поиска. Builder отделил процесс создания лабиринта от логики приложения. Observer позволил реализовать систему уведомлений без жёстких зависимостей. Command обеспечил поддержку отмены действий.\n", + "\n", + "Экспериментальные результаты показали:\n", + "\n", + "* BFS гарантирует кратчайший путь;\n", + "* DFS работает быстрее, но может находить неоптимальные маршруты;\n", + "* A* наиболее эффективен на сложных лабиринтах благодаря эвристике.\n", + "\n", + "Архитектура программы получилась модульной и расширяемой. Добавление новых алгоритмов или способов загрузки лабиринтов возможно без изменения существующего кода.\n" + ] + }, + { + "cell_type": "markdown", + "id": "a9cbb6c6", + "metadata": {}, + "source": [] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/zverevem/lab2/docs/data/FindingStrategy.py b/zverevem/lab2/docs/data/FindingStrategy.py new file mode 100644 index 0000000..a71c794 --- /dev/null +++ b/zverevem/lab2/docs/data/FindingStrategy.py @@ -0,0 +1,100 @@ +from abc import ABC, abstractmethod +from collections import deque +import heapq + + +class PathFindingStrategy(ABC): + @abstractmethod + def find_path(self, maze, start, exit_cell): + pass + + +def _reconstruct_path(came_from, start, exit_cell): + path = [] + current = exit_cell + while current is not None: + path.append(current) + current = came_from.get((current.x, current.y)) + path.reverse() + if path and path[0].x == start.x and path[0].y == start.y: + return path + return [] + +class BFSStrategy(PathFindingStrategy): + def find_path(self, maze, start, exit_cell): + queue = deque([start]) + came_from = {(start.x, start.y): None} + self.visited_count = 0 + + while queue: + current = queue.popleft() + self.visited_count += 1 + + if current.x == exit_cell.x and current.y == exit_cell.y: + return _reconstruct_path(came_from, start, exit_cell) + + for neighbor in maze.get_neighbors(current): + key = (neighbor.x, neighbor.y) + if key not in came_from: + came_from[key] = current + queue.append(neighbor) + + self.visited_count = len(came_from) + return [] # путь не найден + +class DFSStrategy(PathFindingStrategy): + + def find_path(self, maze, start, exit_cell): + stack = [start] + came_from = {(start.x, start.y): None} + self.visited_count = 0 + + while stack: + current = stack.pop() + self.visited_count += 1 + + if current.x == exit_cell.x and current.y == exit_cell.y: + return _reconstruct_path(came_from, start, exit_cell) + + for neighbor in maze.get_neighbors(current): + key = (neighbor.x, neighbor.y) + if key not in came_from: + came_from[key] = current + stack.append(neighbor) + + self.visited_count = len(came_from) + return [] + +class AStarStrategy(PathFindingStrategy): + + def _heuristic(self, cell, goal): + return abs(cell.x - goal.x) + abs(cell.y - goal.y) + + def find_path(self, maze, start, exit_cell): + # (f_score, счётчик для разрыва связей, клетка) + counter = 0 + open_set = [(0, counter, start)] + came_from = {(start.x, start.y): None} + g_score = {(start.x, start.y): 0} + self.visited_count = 0 + + while open_set: + _, _, current = heapq.heappop(open_set) + self.visited_count += 1 + + if current.x == exit_cell.x and current.y == exit_cell.y: + return _reconstruct_path(came_from, start, exit_cell) + + for neighbor in maze.get_neighbors(current): + key = (neighbor.x, neighbor.y) + tentative_g = g_score[(current.x, current.y)] + 1 + + if key not in g_score or tentative_g < g_score[key]: + g_score[key] = tentative_g + f = tentative_g + self._heuristic(neighbor, exit_cell) + counter += 1 + heapq.heappush(open_set, (f, counter, neighbor)) + came_from[key] = current + + self.visited_count = len(came_from) + return [] diff --git a/zverevem/lab2/docs/data/MazeBuilder.py b/zverevem/lab2/docs/data/MazeBuilder.py new file mode 100644 index 0000000..78abf85 --- /dev/null +++ b/zverevem/lab2/docs/data/MazeBuilder.py @@ -0,0 +1,44 @@ +from abc import ABC, abstractmethod +from maze_model import Cell, Maze + + +class MazeBuilder(ABC): + @abstractmethod + def build_from_file(self, filename) -> Maze: + pass + + +class TextFileMazeBuilder(MazeBuilder): + def build_from_file(self, filename) -> Maze: + with open(filename, 'r', encoding='utf-8') as f: + lines = f.read().splitlines() + + width = max(len(line) for line in lines) if lines else 0 + height = len(lines) + + cells = [] + start = None + exit_cell = None + + for y, line in enumerate(lines): + row = [] + line = line.ljust(width) + for x, char in enumerate(line): + is_wall = (char == '#') + is_start = (char == 'S') + is_exit = (char == 'E') + cell = Cell(x, y, is_wall=is_wall, + is_start=is_start, is_exit=is_exit) + if is_start: + start = cell + if is_exit: + exit_cell = cell + row.append(cell) + cells.append(row) + + if start is None: + raise ValueError("В файле лабиринта не найден старт (S)") + if exit_cell is None: + raise ValueError("В файле лабиринта не найден выход (E)") + + return Maze(width, height, cells, start, exit_cell) diff --git a/zverevem/lab2/docs/data/MazeModel.py b/zverevem/lab2/docs/data/MazeModel.py new file mode 100644 index 0000000..664ad01 --- /dev/null +++ b/zverevem/lab2/docs/data/MazeModel.py @@ -0,0 +1,62 @@ +class Cell: + def __init__(self, x, y, is_wall=False, is_start=False, is_exit=False): + self.x = x + self.y = y + self.is_wall = is_wall + self.is_start = is_start + self.is_exit = is_exit + + def is_passable(self): + return not self.is_wall + + def __repr__(self): + if self.is_wall: + return '#' + if self.is_start: + return 'S' + if self.is_exit: + return 'E' + return ' ' + + +class Maze: + def __init__(self, width, height, cells, start, exit_cell): + self.width = width + self.height = height + self._cells = cells + self.start = start + self.exit = exit_cell + + def get_cell(self, x, y): + if 0 <= x < self.width and 0 <= y < self.height: + return self._cells[y][x] + return None + + def get_neighbors(self, cell): + directions = [(0, -1), (0, 1), (-1, 0), (1, 0)] + neighbors = [] + for dx, dy in directions: + neighbor = self.get_cell(cell.x + dx, cell.y + dy) + if neighbor is not None and neighbor.is_passable(): + neighbors.append(neighbor) + return neighbors + + def render(self, path=None, player_pos=None): + path_set = set((c.x, c.y) for c in path) if path else set() + + for row in self._cells: + line = '' + for cell in row: + if player_pos and cell.x == player_pos.x and cell.y == player_pos.y: + line += 'P' + elif cell.is_wall: + line += '#' + elif cell.is_start: + line += 'S' + elif cell.is_exit: + line += 'E' + elif (cell.x, cell.y) in path_set: + line += '.' + else: + line += ' ' + print(line) diff --git a/zverevem/lab2/docs/data/MazeSolver.py b/zverevem/lab2/docs/data/MazeSolver.py new file mode 100644 index 0000000..5347cf9 --- /dev/null +++ b/zverevem/lab2/docs/data/MazeSolver.py @@ -0,0 +1,121 @@ +import time +from abc import ABC, abstractmethod + +class SearchStats: + def __init__(self, time_ms, visited_cells, path_length, path): + self.time_ms = time_ms + self.visited_cells = visited_cells + self.path_length = path_length + self.path = path + + def __repr__(self): + return (f"SearchStats(time={self.time_ms:.3f}ms, " + f"visited={self.visited_cells}, " + f"path_len={self.path_length})") + +class Observer(ABC): + + @abstractmethod + def update(self, event, data=None): + pass + + +class ConsoleView(Observer): + + def update(self, event, data=None): + if event == 'maze_loaded': + print(f"\n[ConsoleView] Лабиринт загружен: " + f"{data['width']}×{data['height']}") + + elif event == 'path_found': + stats = data['stats'] + strategy_name = data['strategy'] + if stats.path_length > 0: + print(f"\n[ConsoleView] [{strategy_name}] Путь найден! " + f"Длина: {stats.path_length}, " + f"Посещено клеток: {stats.visited_cells}, " + f"Время: {stats.time_ms:.3f} мс") + else: + print(f"\n[ConsoleView] [{strategy_name}] Путь не найден. " + f"Посещено клеток: {stats.visited_cells}") + + elif event == 'move': + print(f"[ConsoleView] Игрок переместился в " + f"({data['x']}, {data['y']})") + +class MazeSolver: + def __init__(self, maze, strategy=None): + self.maze = maze + self.strategy = strategy + self._observers = [] + + def set_strategy(self, strategy): + self.strategy = strategy + + def add_observer(self, observer): + self._observers.append(observer) + + def _notify(self, event, data=None): + for obs in self._observers: + obs.update(event, data) + + def solve(self): + if self.strategy is None: + raise RuntimeError("Стратегия не задана. Используйте set_strategy().") + + start = time.perf_counter() + path = self.strategy.find_path(self.maze, self.maze.start, self.maze.exit) + end = time.perf_counter() + + stats = SearchStats( + time_ms=(end - start) * 1000, + visited_cells=getattr(self.strategy, 'visited_count', 0), + path_length=len(path), + path=path + ) + + self._notify('path_found', { + 'stats': stats, + 'strategy': type(self.strategy).__name__ + }) + + return stats + +class Command(ABC): + @abstractmethod + def execute(self): + pass + + @abstractmethod + def undo(self): + pass + + +class Player: + def __init__(self, start_cell): + self.current_cell = start_cell + + def move_to(self, cell): + self.current_cell = cell + + +class MoveCommand(Command): + def __init__(self, player, target_cell, observers=None): + self.player = player + self.target_cell = target_cell + self.previous_cell = None + self._observers = observers or [] + + def execute(self): + self.previous_cell = self.player.current_cell + self.player.move_to(self.target_cell) + for obs in self._observers: + obs.update('move', {'x': self.target_cell.x, + 'y': self.target_cell.y}) + + def undo(self): + if self.previous_cell is not None: + self.player.move_to(self.previous_cell) + for obs in self._observers: + obs.update('move', {'x': self.previous_cell.x, + 'y': self.previous_cell.y}) diff --git a/zverevem/lab2/docs/data/Results.py b/zverevem/lab2/docs/data/Results.py new file mode 100644 index 0000000..29dc2d6 --- /dev/null +++ b/zverevem/lab2/docs/data/Results.py @@ -0,0 +1,103 @@ +import csv +import os + +try: + import matplotlib.pyplot as plt + import matplotlib.patches as mpatches + HAS_MPL = True +except ImportError: + HAS_MPL = False + print(" matplotlib не установлен: pip install matplotlib\n") + +CSV_PATH = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'results.csv') +OUT_DIR = os.path.dirname(os.path.abspath(__file__)) + +COLORS = {'BFS': '#4E9AF1', 'DFS': '#F4845F', 'A*': '#6BCB77'} +STRATEGIES = ['BFS', 'DFS', 'A*'] +METRICS = [ + ('время_мс', 'Среднее время (мс)'), + ('посещено_клеток', 'Посещено клеток'), + ('длина_пути', 'Длина пути (шагов)'), +] + + +def load_csv(path): + data = {} + with open(path, newline='', encoding='utf-8') as f: + reader = csv.DictReader(f) + for row in reader: + key = (row['лабиринт'], row['стратегия']) + data[key] = { + 'время_мс': float(row['время_мс']), + 'посещено_клеток': float(row['посещено_клеток']), + 'длина_пути': float(row['длина_пути']), + } + return data + + +def get_mazes(data): + seen = [] + for (maze, _) in data: + if maze not in seen: + seen.append(maze) + return seen + + +def plot_by_metric(data): + mazes = get_mazes(data) + x = range(len(mazes)) + w = 0.25 + + for metric_key, metric_label in METRICS: + fig, ax = plt.subplots(figsize=(12, 5)) + fig.suptitle(f'{metric_label} по лабиринтам', fontweight='bold') + + for i, strat in enumerate(STRATEGIES): + vals = [data.get((m, strat), {}).get(metric_key, 0) for m in mazes] + offset = [xi + (i - 1) * w for xi in x] + bars = ax.bar(offset, vals, width=w, + label=strat, color=COLORS[strat], edgecolor='white') + for bar, val in zip(bars, vals): + if val > 0: + ax.text(bar.get_x() + bar.get_width() / 2, + bar.get_height() + max(vals) * 0.01, + f'{val:.1f}', ha='center', va='bottom', fontsize=7) + + ax.set_xticks(list(x)) + ax.set_xticklabels(mazes, rotation=15, ha='right', fontsize=9) + ax.set_ylabel(metric_label) + ax.legend() + ax.grid(axis='y', alpha=0.3) + + safe = metric_key.replace('_', '-') + out = os.path.join(OUT_DIR, f'chart_{safe}.png') + plt.tight_layout() + plt.savefig(out, dpi=150, bbox_inches='tight') + print(f" График сохранён: {out}") + plt.show() + + +def print_table(data): + print(f"\n{'Лабиринт':<20} {'Алгоритм':<6} " + f"{'Время мс':>10} {'Посещено':>10} {'Путь':>6}") + print('-' * 56) + for (maze, strat), vals in sorted(data.items()): + print(f"{maze:<20} {strat:<6} " + f"{vals['время_мс']:>10.3f} " + f"{vals['посещено_клеток']:>10.0f} " + f"{vals['длина_пути']:>6.0f}") + + +if __name__ == '__main__': + if not os.path.exists(CSV_PATH): + print(f" Файл не найден: {CSV_PATH}") + print(" Сначала запустите: python benchmark.py") + exit(1) + + data = load_csv(CSV_PATH) + print_table(data) + + if HAS_MPL: + plot_by_metric(data) + else: + print("\n Установите matplotlib: pip install matplotlib") diff --git a/zverevem/lab2/docs/data/Standard.py b/zverevem/lab2/docs/data/Standard.py new file mode 100644 index 0000000..a6c0b21 --- /dev/null +++ b/zverevem/lab2/docs/data/Standard.py @@ -0,0 +1,153 @@ +import time +import csv +import os +import random + +from maze_builder import TextFileMazeBuilder +from maze_solver import MazeSolver +from maze_strategies import BFSStrategy, DFSStrategy, AStarStrategy + +REPEATS = 7 +OUTPUT_DIR = os.path.dirname(os.path.abspath(__file__)) +CSV_PATH = os.path.join(OUTPUT_DIR, 'results.csv') + +STRATEGIES = { + 'BFS': BFSStrategy, + 'DFS': DFSStrategy, + 'A*': AStarStrategy, +} + +MAZES = [ + ('small_10x10', 'maze_small.txt'), + ('medium_50x50', 'maze_medium.txt'), + ('large_100x100', 'maze_large.txt'), + ('open_50x50', 'maze_open.txt'), + ('no_exit_20x20', 'maze_no_exit.txt'), +] + +def _make_grid(width, height, density=0.0, has_exit=True, seed=42): + + rng = random.Random(seed) + grid = [] + for y in range(height): + row = [] + for x in range(width): + on_border = (x == 0 or x == width - 1 or y == 0 or y == height - 1) + row.append('#' if on_border else ' ') + grid.append(row) + + for y in range(1, height - 1): + for x in range(1, width - 1): + if rng.random() < density: + grid[y][x] = '#' + + grid[1][1] = 'S' + if has_exit: + grid[height - 2][width - 2] = 'E' + + return '\n'.join(''.join(row) for row in grid) + + +def generate_maze_files(): + mazes_data = { + 'maze_small.txt': _make_grid(10, 10, density=0.15), + 'maze_medium.txt': _make_grid(50, 50, density=0.28), + 'maze_large.txt': _make_grid(100, 100, density=0.30), + 'maze_open.txt': _make_grid(50, 50, density=0.0), + 'maze_no_exit.txt': _make_grid(20, 20, density=0.20, has_exit=False), + } + no_exit = list(mazes_data['maze_no_exit.txt'].splitlines()) + no_exit[18] = no_exit[18][:18] + 'E' + no_exit[18][19:] + no_exit[17] = no_exit[17][:18] + '#' + no_exit[17][19:] + no_exit[18] = no_exit[18][:17] + '#' + no_exit[18][18:] + mazes_data['maze_no_exit.txt'] = '\n'.join(no_exit) + + maze_dir = os.path.dirname(os.path.abspath(__file__)) + for fname, content in mazes_data.items(): + path = os.path.join(maze_dir, fname) + with open(path, 'w', encoding='utf-8') as f: + f.write(content) + + print("Файлы лабиринтов созданы") +def avg(lst): + return sum(lst) / len(lst) if lst else 0 + + +def run_benchmark(): + builder = TextFileMazeBuilder() + maze_dir = os.path.dirname(os.path.abspath(__file__)) + + all_results = [ + ['лабиринт', 'стратегия', 'время_мс', 'посещено_клеток', 'длина_пути'] + + [f'замер_{i+1}' for i in range(REPEATS)] + ] + + print(f"\nЗапуск бенчмарков (повторений: {REPEATS})\n") + print(f" {'Лабиринт':<18} {'Алгоритм':<6} {'Время мс':>10} " + f"{'Посещено':>10} {'Путь':>6}") + print(' ' + '-' * 56) + + for maze_label, maze_file in MAZES: + maze_path = os.path.join(maze_dir, maze_file) + try: + maze = builder.build_from_file(maze_path) + except Exception as e: + print(f" {maze_file}: {e}") + continue + + solver = MazeSolver(maze) + + for strat_name, StratClass in STRATEGIES.items(): + times_ms, visited_list, path_len = [], [], 0 + + for _ in range(REPEATS): + strat = StratClass() + solver.set_strategy(strat) + stats = solver.solve() + times_ms.append(stats.time_ms) + visited_list.append(stats.visited_cells) + path_len = stats.path_length + + mean_t = avg(times_ms) + mean_v = avg(visited_list) + + print(f" {maze_label:<18} {strat_name:<6} " + f"{mean_t:>10.3f} {mean_v:>10.0f} {path_len:>6}") + + all_results.append([ + maze_label, strat_name, + f"{mean_t:.4f}", f"{mean_v:.0f}", str(path_len) + ] + [f"{t:.4f}" for t in times_ms]) + + with open(CSV_PATH, 'w', newline='', encoding='utf-8') as f: + csv.writer(f).writerows(all_results) + + print(f"\n Результаты сохранены: {CSV_PATH}") + +def smoke_test(): + print(" Smoke Test\n") + + maze_dir = os.path.dirname(os.path.abspath(__file__)) + test_path = os.path.join(maze_dir, '_test_maze.txt') + + with open(test_path, 'w', encoding='utf-8') as f: + f.write("#######\n#S #\n# #\n# E#\n#######") + + builder = TextFileMazeBuilder() + maze = builder.build_from_file(test_path) + + for name, StratClass in STRATEGIES.items(): + strat = StratClass() + path = strat.find_path(maze, maze.start, maze.exit) + assert len(path) > 0, f"{name}: путь не найден!" + assert path[0].is_start + assert path[-1].is_exit + print(f" {name}: путь длиной {len(path)} — OK") + + os.remove(test_path) + print("\nВсе тесты пройдены!\n") + +if __name__ == '__main__': + smoke_test() + generate_maze_files() + run_benchmark() diff --git a/zverevem/lab2/docs/data/chart_время-мс.png b/zverevem/lab2/docs/data/chart_время-мс.png new file mode 100644 index 0000000000000000000000000000000000000000..02d2a5d63669958b40968d58269e5c07a99ea891 GIT binary patch literal 63890 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 >W=Zw? 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ⓈkK-@IYDZPmJD6%S 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%0AD|GKxODABZ5oLehX9j7dQTc$w? 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

Illyn%juKqFof6 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 nJ1OM