diff --git a/stepushovgs/labyrinth/__init__.py b/stepushovgs/labyrinth/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/stepushovgs/labyrinth/benchmark.ipynb b/stepushovgs/labyrinth/benchmark.ipynb new file mode 100644 index 0000000..40c1602 --- /dev/null +++ b/stepushovgs/labyrinth/benchmark.ipynb @@ -0,0 +1,3139 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "73f2af9d", + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "import pandas as pd\n", + "\n", + "# Переходим из docs/data/ в корень lab/\n", + "# os.chdir('../')\n", + "\n", + "from source import TextFileMazeBuilder\n", + "from source.observer import ConsoleView, Event\n", + "from source.strategy import MazeSolver, BFS, DFS, Dijkstra, AStar\n", + "# from source.strategy.maze_solver import \n", + "from source.classes import Cell, Maze" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "c23c6e70", + "metadata": {}, + "outputs": [], + "source": [ + "builder = TextFileMazeBuilder()" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "ae0615f3", + "metadata": {}, + "outputs": [], + "source": [ + "csv_path = 'docs\\\\data\\\\csv\\\\banchmark.csv'" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "5949d98c", + "metadata": {}, + "outputs": [], + "source": [ + "maze_empty = 'maze_empty'\n", + "maze_no_path = 'maze_no_path'\n", + "maze10x10 = 'maze10x10'\n", + "maze50x50 = 'maze50x50'\n", + "maze100x100 = 'maze100x100'\n", + "\n", + "mazes = [maze10x10, maze50x50, maze100x100, maze_empty, maze_no_path]\n", + "def make_maze_path(maze_name) -> str:\n", + " return 'mazes\\\\benchmarks\\\\' + maze_name + '.txt'" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "e94b3b5a", + "metadata": {}, + "outputs": [], + "source": [ + "class DataBench():\n", + " \"\"\"Класс для хранения информации о тестировании\"\"\"\n", + " def __init__(self, maze_name: str, strategy: str, time_ms: float, count_visited: int, path_length: int):\n", + " self.maze_name = maze_name\n", + " self.strategy = strategy\n", + " self.time_ms = time_ms\n", + " self.count_visited = count_visited\n", + " self.path_length = path_length\n", + " \n", + " def toDict(self):\n", + " \"\"\"Формирует словарь\"\"\"\n", + " return {\n", + " 'Лабиринт': self.maze_name,\n", + " 'Алгоритм': self.strategy,\n", + " 'Время': self.time_ms,\n", + " 'Посещено клеток': self.count_visited,\n", + " 'Длина пути': self.path_length\n", + " }" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "ad8278e6", + "metadata": {}, + "outputs": [], + "source": [ + "def save_data(data: DataBench, filename=csv_path):\n", + " \"\"\"Сохраняет данные в CSV\"\"\"\n", + "\n", + " # Создаём DataFrame из словаря\n", + " new_row = pd.DataFrame([data.toDict()])\n", + " \n", + " # Умная дозапись\n", + " if os.path.exists(filename) and not os.path.getsize(filename) == 0:\n", + " \n", + " existing = pd.read_csv(filename)\n", + " updated = pd.concat([existing, new_row], ignore_index=True)\n", + " updated.to_csv(filename, index=False)\n", + " print(f\"Добавлена запись. Всего строк: {len(updated)}\")\n", + " else:\n", + " new_row.to_csv(filename, index=False)\n", + " print(f\"Создан новый файл с 1 записью\")\n", + "\n", + "# def format_data(maze_name: str, strategy: str, time_ms: float, count_visited: int, path_length: int):\n", + "# \"\"\"Форматирует данные для последющей записи в csv(мне лень писать каждый раз словарь)\"\"\"\n", + "# return " + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "da46fa84", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Dijkstra\n", + "maze10x10\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Создан новый файл с 1 записью\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 2\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 3\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 4\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 5\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 6\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 7\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 8\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 9\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 10\n", + "Добавлена запись. Всего строк: 11\n", + "maze50x50\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 12\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 13\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 14\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 15\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 16\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 17\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 18\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 19\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 20\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 21\n", + "Добавлена запись. Всего строк: 22\n", + "maze100x100\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 23\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 24\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 25\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 26\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 27\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 28\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 29\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 30\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 31\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 32\n", + "Добавлена запись. Всего строк: 33\n", + "maze_empty\n", + "Путь найден:\n", + "#################################################################################################################\n", + "#S #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#..............................................................................................................E#\n", + "#################################################################################################################\n", + "Добавлена запись. Всего строк: 34\n", + "Путь найден:\n", + "#################################################################################################################\n", + "#S #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#..............................................................................................................E#\n", + "#################################################################################################################\n", + "Добавлена запись. Всего строк: 35\n", + "Путь найден:\n", + "#################################################################################################################\n", + "#S #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#..............................................................................................................E#\n", + "#################################################################################################################\n", + "Добавлена запись. Всего строк: 36\n", + "Путь найден:\n", + "#################################################################################################################\n", + "#S #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#..............................................................................................................E#\n", + "#################################################################################################################\n", + "Добавлена запись. Всего строк: 37\n", + "Путь найден:\n", + "#################################################################################################################\n", + "#S #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#..............................................................................................................E#\n", + "#################################################################################################################\n", + "Добавлена запись. Всего строк: 38\n", + "Путь найден:\n", + "#################################################################################################################\n", + "#S #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#..............................................................................................................E#\n", + "#################################################################################################################\n", + "Добавлена запись. Всего строк: 39\n", + "Путь найден:\n", + "#################################################################################################################\n", + "#S #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#..............................................................................................................E#\n", + "#################################################################################################################\n", + "Добавлена запись. Всего строк: 40\n", + "Путь найден:\n", + "#################################################################################################################\n", + "#S #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#..............................................................................................................E#\n", + "#################################################################################################################\n", + "Добавлена запись. Всего строк: 41\n", + "Путь найден:\n", + "#################################################################################################################\n", + "#S #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#..............................................................................................................E#\n", + "#################################################################################################################\n", + "Добавлена запись. Всего строк: 42\n", + "Путь найден:\n", + "#################################################################################################################\n", + "#S #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#..............................................................................................................E#\n", + "#################################################################################################################\n", + "Добавлена запись. Всего строк: 43\n", + "Добавлена запись. Всего строк: 44\n", + "maze_no_path\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 45\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 46\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 47\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 48\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 49\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 50\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 51\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 52\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 53\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 54\n", + "Добавлена запись. Всего строк: 55\n", + "BFS\n", + "maze10x10\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 56\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 57\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 58\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 59\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 60\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 61\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 62\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 63\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 64\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 65\n", + "Добавлена запись. Всего строк: 66\n", + "maze50x50\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 67\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 68\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 69\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 70\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 71\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 72\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 73\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 74\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 75\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 76\n", + "Добавлена запись. Всего строк: 77\n", + "maze100x100\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 78\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 79\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 80\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 81\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 82\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 83\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 84\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 85\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 86\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 87\n", + "Добавлена запись. Всего строк: 88\n", + "maze_empty\n", + "Путь найден:\n", + "#################################################################################################################\n", + "#S..............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "# .#\n", + "# E#\n", + "#################################################################################################################\n", + "Добавлена запись. Всего строк: 89\n", + "Путь найден:\n", + "#################################################################################################################\n", + "#S..............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "# .#\n", + "# E#\n", + "#################################################################################################################\n", + "Добавлена запись. Всего строк: 90\n", + "Путь найден:\n", + "#################################################################################################################\n", + "#S..............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "# .#\n", + "# E#\n", + "#################################################################################################################\n", + "Добавлена запись. Всего строк: 91\n", + "Путь найден:\n", + "#################################################################################################################\n", + "#S..............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "# .#\n", + "# E#\n", + "#################################################################################################################\n", + "Добавлена запись. Всего строк: 92\n", + "Путь найден:\n", + "#################################################################################################################\n", + "#S..............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "# .#\n", + "# E#\n", + "#################################################################################################################\n", + "Добавлена запись. Всего строк: 93\n", + "Путь найден:\n", + "#################################################################################################################\n", + "#S..............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "# .#\n", + "# E#\n", + "#################################################################################################################\n", + "Добавлена запись. Всего строк: 94\n", + "Путь найден:\n", + "#################################################################################################################\n", + "#S..............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "# .#\n", + "# E#\n", + "#################################################################################################################\n", + "Добавлена запись. Всего строк: 95\n", + "Путь найден:\n", + "#################################################################################################################\n", + "#S..............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "# .#\n", + "# E#\n", + "#################################################################################################################\n", + "Добавлена запись. Всего строк: 96\n", + "Путь найден:\n", + "#################################################################################################################\n", + "#S..............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "# .#\n", + "# E#\n", + "#################################################################################################################\n", + "Добавлена запись. Всего строк: 97\n", + "Путь найден:\n", + "#################################################################################################################\n", + "#S..............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "# .#\n", + "# E#\n", + "#################################################################################################################\n", + "Добавлена запись. Всего строк: 98\n", + "Добавлена запись. Всего строк: 99\n", + "maze_no_path\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 100\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 101\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 102\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 103\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 104\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 105\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 106\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 107\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 108\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 109\n", + "Добавлена запись. Всего строк: 110\n", + "DFS\n", + "maze10x10\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 111\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 112\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 113\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 114\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 115\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 116\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 117\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 118\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 119\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 120\n", + "Добавлена запись. Всего строк: 121\n", + "maze50x50\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 122\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 123\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 124\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 125\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 126\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 127\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 128\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 129\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 130\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 131\n", + "Добавлена запись. Всего строк: 132\n", + "maze100x100\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 133\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 134\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 135\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 136\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 137\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 138\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 139\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 140\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 141\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 142\n", + "Добавлена запись. Всего строк: 143\n", + "maze_empty\n", + "Путь найден:\n", + "#################################################################################################################\n", + "#S #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#..............................................................................................................E#\n", + "#################################################################################################################\n", + "Добавлена запись. Всего строк: 144\n", + "Путь найден:\n", + "#################################################################################################################\n", + "#S #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#..............................................................................................................E#\n", + "#################################################################################################################\n", + "Добавлена запись. Всего строк: 145\n", + "Путь найден:\n", + "#################################################################################################################\n", + "#S #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#..............................................................................................................E#\n", + "#################################################################################################################\n", + "Добавлена запись. Всего строк: 146\n", + "Путь найден:\n", + "#################################################################################################################\n", + "#S #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#..............................................................................................................E#\n", + "#################################################################################################################\n", + "Добавлена запись. Всего строк: 147\n", + "Путь найден:\n", + "#################################################################################################################\n", + "#S #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#..............................................................................................................E#\n", + "#################################################################################################################\n", + "Добавлена запись. Всего строк: 148\n", + "Путь найден:\n", + "#################################################################################################################\n", + "#S #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#..............................................................................................................E#\n", + "#################################################################################################################\n", + "Добавлена запись. Всего строк: 149\n", + "Путь найден:\n", + "#################################################################################################################\n", + "#S #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#..............................................................................................................E#\n", + "#################################################################################################################\n", + "Добавлена запись. Всего строк: 150\n", + "Путь найден:\n", + "#################################################################################################################\n", + "#S #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#..............................................................................................................E#\n", + "#################################################################################################################\n", + "Добавлена запись. Всего строк: 151\n", + "Путь найден:\n", + "#################################################################################################################\n", + "#S #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#..............................................................................................................E#\n", + "#################################################################################################################\n", + "Добавлена запись. Всего строк: 152\n", + "Путь найден:\n", + "#################################################################################################################\n", + "#S #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#..............................................................................................................E#\n", + "#################################################################################################################\n", + "Добавлена запись. Всего строк: 153\n", + "Добавлена запись. Всего строк: 154\n", + "maze_no_path\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 155\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 156\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 157\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 158\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 159\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 160\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 161\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 162\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 163\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 164\n", + "Добавлена запись. Всего строк: 165\n", + "A*\n", + "maze10x10\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 166\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 167\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 168\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 169\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 170\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 171\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 172\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 173\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 174\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 175\n", + "Добавлена запись. Всего строк: 176\n", + "maze50x50\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 177\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 178\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 179\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 180\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 181\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 182\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 183\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 184\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 185\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 186\n", + "Добавлена запись. Всего строк: 187\n", + "maze100x100\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 188\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 189\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 190\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 191\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 192\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 193\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 194\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 195\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 196\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 197\n", + "Добавлена запись. Всего строк: 198\n", + "maze_empty\n", + "Путь найден:\n", + "#################################################################################################################\n", + "#S #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#..............................................................................................................E#\n", + "#################################################################################################################\n", + "Добавлена запись. Всего строк: 199\n", + "Путь найден:\n", + "#################################################################################################################\n", + "#S #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#..............................................................................................................E#\n", + "#################################################################################################################\n", + "Добавлена запись. Всего строк: 200\n", + "Путь найден:\n", + "#################################################################################################################\n", + "#S #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#..............................................................................................................E#\n", + "#################################################################################################################\n", + "Добавлена запись. Всего строк: 201\n", + "Путь найден:\n", + "#################################################################################################################\n", + "#S #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#..............................................................................................................E#\n", + "#################################################################################################################\n", + "Добавлена запись. Всего строк: 202\n", + "Путь найден:\n", + "#################################################################################################################\n", + "#S #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#..............................................................................................................E#\n", + "#################################################################################################################\n", + "Добавлена запись. Всего строк: 203\n", + "Путь найден:\n", + "#################################################################################################################\n", + "#S #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#..............................................................................................................E#\n", + "#################################################################################################################\n", + "Добавлена запись. Всего строк: 204\n", + "Путь найден:\n", + "#################################################################################################################\n", + "#S #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#..............................................................................................................E#\n", + "#################################################################################################################\n", + "Добавлена запись. Всего строк: 205\n", + "Путь найден:\n", + "#################################################################################################################\n", + "#S #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#..............................................................................................................E#\n", + "#################################################################################################################\n", + "Добавлена запись. Всего строк: 206\n", + "Путь найден:\n", + "#################################################################################################################\n", + "#S #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#..............................................................................................................E#\n", + "#################################################################################################################\n", + "Добавлена запись. Всего строк: 207\n", + "Путь найден:\n", + "#################################################################################################################\n", + "#S #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#..............................................................................................................E#\n", + "#################################################################################################################\n", + "Добавлена запись. Всего строк: 208\n", + "Добавлена запись. Всего строк: 209\n", + "maze_no_path\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 210\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 211\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 212\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 213\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 214\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 215\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 216\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 217\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 218\n", + "Путь найден:\n", + "####\n", + "S.E#\n", + "####\n", + "Добавлена запись. Всего строк: 219\n", + "Добавлена запись. Всего строк: 220\n" + ] + } + ], + "source": [ + "N_REPEAT = 10\n", + "strats = [BFS(), DFS(), AStar(), Dijkstra()]\n", + "\n", + "# Очищаю файл для перезаписи\n", + "open(csv_path, 'w').close()\n", + "\n", + "\n", + "for strat in strats:\n", + " print(solver.strategyName())\n", + " for maze_name in mazes:\n", + " \n", + " maze = builder.buildFromFile(make_maze_path(maze_name))\n", + " solver = MazeSolver(maze, strat, ConsoleView())\n", + " print(maze_name)\n", + " \n", + " result_average = DataBench(\n", + " maze_name=maze_name + '(среднее)',\n", + " strategy=solver.strategyName(),\n", + " time_ms=0,\n", + " count_visited=0,\n", + " path_length=0\n", + " )\n", + " \n", + " for i in range(N_REPEAT):\n", + " stats = solver.solve()\n", + " result = DataBench(\n", + " maze_name=maze_name,\n", + " strategy=solver.strategyName(),\n", + " time_ms=stats.timeMs,\n", + " count_visited=stats.visitedCells,\n", + " path_length=stats.pathLength\n", + " )\n", + " save_data(result)\n", + "\n", + " result_average.time_ms += stats.timeMs\n", + " result_average.count_visited += stats.visitedCells\n", + " result_average.path_length += stats.pathLength\n", + " \n", + " result_average.time_ms /= N_REPEAT\n", + " result_average.count_visited /= N_REPEAT\n", + " result_average.path_length /= N_REPEAT\n", + "\n", + " save_data(result_average)\n", + " # stats.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "de0f513e", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "60b732ff", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.6" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/stepushovgs/labyrinth/docs/data/csv/banchmark.csv b/stepushovgs/labyrinth/docs/data/csv/banchmark.csv new file mode 100644 index 0000000..d607188 --- /dev/null +++ b/stepushovgs/labyrinth/docs/data/csv/banchmark.csv @@ -0,0 +1,221 @@ +Лабиринт,Алгоритм,Время,Посещено клеток,Длина пути +maze10x10,BFS,1.250000059371814e-05,3.0,3.0 +maze10x10,BFS,1.5699999494245276e-05,3.0,3.0 +maze10x10,BFS,1.940000038302969e-05,3.0,3.0 +maze10x10,BFS,1.7299998944508843e-05,3.0,3.0 +maze10x10,BFS,1.6299998605973087e-05,3.0,3.0 +maze10x10,BFS,1.4799999917158855e-05,3.0,3.0 +maze10x10,BFS,1.5400000847876072e-05,3.0,3.0 +maze10x10,BFS,1.52000011439668e-05,3.0,3.0 +maze10x10,BFS,1.6199999663513154e-05,3.0,3.0 +maze10x10,BFS,1.6399999367422424e-05,3.0,3.0 +maze10x10(среднее),BFS,1.5919999896141235e-05,3.0,3.0 +maze50x50,BFS,1.2699998478638008e-05,3.0,3.0 +maze50x50,BFS,1.5499999790336005e-05,3.0,3.0 +maze50x50,BFS,1.4700000974698924e-05,3.0,3.0 +maze50x50,BFS,1.4100000043981709e-05,3.0,3.0 +maze50x50,BFS,1.429999974789098e-05,3.0,3.0 +maze50x50,BFS,1.429999974789098e-05,3.0,3.0 +maze50x50,BFS,1.7500000467407517e-05,3.0,3.0 +maze50x50,BFS,1.429999974789098e-05,3.0,3.0 +maze50x50,BFS,1.7099999240599573e-05,3.0,3.0 +maze50x50,BFS,1.6399999367422424e-05,3.0,3.0 +maze50x50(среднее),BFS,1.5089999760675707e-05,3.0,3.0 +maze100x100,BFS,1.21000011858996e-05,3.0,3.0 +maze100x100,BFS,1.300000076298602e-05,3.0,3.0 +maze100x100,BFS,1.3700000636163168e-05,3.0,3.0 +maze100x100,BFS,1.37999995786231e-05,3.0,3.0 +maze100x100,BFS,1.7899999875226058e-05,3.0,3.0 +maze100x100,BFS,1.429999974789098e-05,3.0,3.0 +maze100x100,BFS,1.3999999282532372e-05,3.0,3.0 +maze100x100,BFS,1.5600000551785342e-05,3.0,3.0 +maze100x100,BFS,2.1699999706470408e-05,3.0,3.0 +maze100x100,BFS,1.449999945180025e-05,3.0,3.0 +maze100x100(среднее),BFS,1.5060000077937727e-05,3.0,3.0 +maze_empty,BFS,0.008173700000043,5328.0,158.0 +maze_empty,BFS,0.0085839000003034,5328.0,158.0 +maze_empty,BFS,0.0088789999990694,5328.0,158.0 +maze_empty,BFS,0.0087582000014663,5328.0,158.0 +maze_empty,BFS,0.0082992000006925,5328.0,158.0 +maze_empty,BFS,0.0087729999995644,5328.0,158.0 +maze_empty,BFS,0.0085763000006409,5328.0,158.0 +maze_empty,BFS,0.008612699999503,5328.0,158.0 +maze_empty,BFS,0.008642000000691,5328.0,158.0 +maze_empty,BFS,0.0085005000000819,5328.0,158.0 +maze_empty(среднее),BFS,0.0085798500002056,5328.0,158.0 +maze_no_path,BFS,1.1899999663000926e-05,3.0,3.0 +maze_no_path,BFS,1.4199998986441642e-05,3.0,3.0 +maze_no_path,BFS,1.5699999494245276e-05,3.0,3.0 +maze_no_path,BFS,1.5300000086426735e-05,3.0,3.0 +maze_no_path,BFS,1.559999873279594e-05,3.0,3.0 +maze_no_path,BFS,1.37999995786231e-05,3.0,3.0 +maze_no_path,BFS,1.489999885961879e-05,3.0,3.0 +maze_no_path,BFS,1.5800000255694613e-05,3.0,3.0 +maze_no_path,BFS,1.4999999621068127e-05,3.0,3.0 +maze_no_path,BFS,1.359999987471383e-05,3.0,3.0 +maze_no_path(среднее),BFS,1.4579999515262898e-05,3.0,3.0 +maze10x10,DFS,1.0800000382005235e-05,3.0,3.0 +maze10x10,DFS,1.2299999070819467e-05,3.0,3.0 +maze10x10,DFS,1.199999860546086e-05,3.0,3.0 +maze10x10,DFS,1.2399999832268804e-05,3.0,3.0 +maze10x10,DFS,1.3099999705445953e-05,3.0,3.0 +maze10x10,DFS,1.4100000043981709e-05,3.0,3.0 +maze10x10,DFS,1.3900000340072438e-05,3.0,3.0 +maze10x10,DFS,1.6399999367422424e-05,3.0,3.0 +maze10x10,DFS,1.37999995786231e-05,3.0,3.0 +maze10x10,DFS,1.3500000932253895e-05,3.0,3.0 +maze10x10(среднее),DFS,1.3229999785835389e-05,3.0,3.0 +maze50x50,DFS,1.2000000424450263e-05,3.0,3.0 +maze50x50,DFS,1.4999999621068127e-05,3.0,3.0 +maze50x50,DFS,1.5100000382517464e-05,3.0,3.0 +maze50x50,DFS,1.9099999917671084e-05,3.0,3.0 +maze50x50,DFS,1.4399998690350913e-05,3.0,3.0 +maze50x50,DFS,1.550000160932541e-05,3.0,3.0 +maze50x50,DFS,1.8300001102034003e-05,3.0,3.0 +maze50x50,DFS,1.4999999621068127e-05,3.0,3.0 +maze50x50,DFS,1.5800000255694613e-05,3.0,3.0 +maze50x50,DFS,1.4600000213249588e-05,3.0,3.0 +maze50x50(среднее),DFS,1.548000018374296e-05,3.0,3.0 +maze100x100,DFS,1.179999890155159e-05,3.0,3.0 +maze100x100,DFS,1.449999945180025e-05,3.0,3.0 +maze100x100,DFS,1.5300000086426735e-05,3.0,3.0 +maze100x100,DFS,1.5499999790336005e-05,3.0,3.0 +maze100x100,DFS,1.8200000340584666e-05,3.0,3.0 +maze100x100,DFS,1.82999992830446e-05,3.0,3.0 +maze100x100,DFS,1.469999915570952e-05,3.0,3.0 +maze100x100,DFS,1.5499999790336005e-05,3.0,3.0 +maze100x100,DFS,1.469999915570952e-05,3.0,3.0 +maze100x100,DFS,1.5699999494245276e-05,3.0,3.0 +maze100x100(среднее),DFS,1.5419999544974417e-05,3.0,3.0 +maze_empty,DFS,0.0335334999999759,5328.0,2578.0 +maze_empty,DFS,0.0060880999990331,5328.0,2578.0 +maze_empty,DFS,0.0061276000014913,5328.0,2578.0 +maze_empty,DFS,0.0064875999996729,5328.0,2578.0 +maze_empty,DFS,0.0059213000004092,5328.0,2578.0 +maze_empty,DFS,0.0059658000009221,5328.0,2578.0 +maze_empty,DFS,0.0105012000003625,5328.0,2578.0 +maze_empty,DFS,0.006032100000084,5328.0,2578.0 +maze_empty,DFS,0.0058865000009973,5328.0,2578.0 +maze_empty,DFS,0.0061174999991635,5328.0,2578.0 +maze_empty(среднее),DFS,0.0092661200002112,5328.0,2578.0 +maze_no_path,DFS,1.0900001143454574e-05,3.0,3.0 +maze_no_path,DFS,1.4799999917158855e-05,3.0,3.0 +maze_no_path,DFS,1.5899999198154546e-05,3.0,3.0 +maze_no_path,DFS,1.590000101714395e-05,3.0,3.0 +maze_no_path,DFS,1.469999915570952e-05,3.0,3.0 +maze_no_path,DFS,1.7099999240599573e-05,3.0,3.0 +maze_no_path,DFS,1.4400000509340316e-05,3.0,3.0 +maze_no_path,DFS,1.4200000805431046e-05,3.0,3.0 +maze_no_path,DFS,1.37999995786231e-05,3.0,3.0 +maze_no_path,DFS,1.4900000678608194e-05,3.0,3.0 +maze_no_path(среднее),DFS,1.4660000124422367e-05,3.0,3.0 +maze10x10,A*,1.8000000636675395e-05,3.0,3.0 +maze10x10,A*,1.5800000255694613e-05,3.0,3.0 +maze10x10,A*,1.5899999198154546e-05,3.0,3.0 +maze10x10,A*,1.6099998902063817e-05,3.0,3.0 +maze10x10,A*,1.5699999494245276e-05,3.0,3.0 +maze10x10,A*,1.5499999790336005e-05,3.0,3.0 +maze10x10,A*,2.249999852210749e-05,3.0,3.0 +maze10x10,A*,1.8700000509852543e-05,3.0,3.0 +maze10x10,A*,2.409999979136046e-05,3.0,3.0 +maze10x10,A*,1.97000008483883e-05,3.0,3.0 +maze10x10(среднее),A*,1.8199999794887843e-05,3.0,3.0 +maze50x50,A*,1.4900000678608194e-05,3.0,3.0 +maze50x50,A*,1.720000000204891e-05,3.0,3.0 +maze50x50,A*,1.6999998479150236e-05,3.0,3.0 +maze50x50,A*,1.6699999832781032e-05,3.0,3.0 +maze50x50,A*,1.8599999748403206e-05,3.0,3.0 +maze50x50,A*,1.700000029813964e-05,3.0,3.0 +maze50x50,A*,1.700000029813964e-05,3.0,3.0 +maze50x50,A*,1.680000059423037e-05,3.0,3.0 +maze50x50,A*,1.939999856404029e-05,3.0,3.0 +maze50x50,A*,1.9299999621580355e-05,3.0,3.0 +maze50x50(среднее),A*,1.7389999811712187e-05,3.0,3.0 +maze100x100,A*,1.4100000043981709e-05,3.0,3.0 +maze100x100,A*,1.6200001482502557e-05,3.0,3.0 +maze100x100,A*,1.5800000255694613e-05,3.0,3.0 +maze100x100,A*,1.5300000086426735e-05,3.0,3.0 +maze100x100,A*,1.700000029813964e-05,3.0,3.0 +maze100x100,A*,1.650000012887176e-05,3.0,3.0 +maze100x100,A*,1.700000029813964e-05,3.0,3.0 +maze100x100,A*,1.739999970595818e-05,3.0,3.0 +maze100x100,A*,1.700000029813964e-05,3.0,3.0 +maze100x100,A*,1.739999970595818e-05,3.0,3.0 +maze100x100(среднее),A*,1.6370000230381267e-05,3.0,3.0 +maze_empty,A*,0.0133368999995582,5328.0,158.0 +maze_empty,A*,0.0137166999993496,5328.0,158.0 +maze_empty,A*,0.013524399999369,5328.0,158.0 +maze_empty,A*,0.0135778000003483,5328.0,158.0 +maze_empty,A*,0.0148759999992762,5328.0,158.0 +maze_empty,A*,0.0137644999995245,5328.0,158.0 +maze_empty,A*,0.0138386999988142,5328.0,158.0 +maze_empty,A*,0.0137219999996887,5328.0,158.0 +maze_empty,A*,0.0136103999993792,5328.0,158.0 +maze_empty,A*,0.013797000001432,5328.0,158.0 +maze_empty(среднее),A*,0.013776439999674,5328.0,158.0 +maze_no_path,A*,1.6299998605973087e-05,3.0,3.0 +maze_no_path,A*,1.8000000636675395e-05,3.0,3.0 +maze_no_path,A*,2.1400001060101204e-05,3.0,3.0 +maze_no_path,A*,1.8000000636675395e-05,3.0,3.0 +maze_no_path,A*,1.8300001102034003e-05,3.0,3.0 +maze_no_path,A*,1.7700000171316788e-05,3.0,3.0 +maze_no_path,A*,1.7700000171316788e-05,3.0,3.0 +maze_no_path,A*,1.6699999832781032e-05,3.0,3.0 +maze_no_path,A*,1.6199999663513154e-05,3.0,3.0 +maze_no_path,A*,1.6399999367422424e-05,3.0,3.0 +maze_no_path(среднее),A*,1.7670000124780928e-05,3.0,3.0 +maze10x10,Dijkstra,1.159999919764232e-05,3.0,3.0 +maze10x10,Dijkstra,1.2600001355167478e-05,3.0,3.0 +maze10x10,Dijkstra,1.4400000509340316e-05,3.0,3.0 +maze10x10,Dijkstra,1.320000046689529e-05,3.0,3.0 +maze10x10,Dijkstra,1.359999987471383e-05,3.0,3.0 +maze10x10,Dijkstra,1.7700000171316788e-05,3.0,3.0 +maze10x10,Dijkstra,1.3900000340072438e-05,3.0,3.0 +maze10x10,Dijkstra,1.3299999409355223e-05,3.0,3.0 +maze10x10,Dijkstra,1.2599999536178076e-05,3.0,3.0 +maze10x10,Dijkstra,1.52000011439668e-05,3.0,3.0 +maze10x10(среднее),Dijkstra,1.3810000200464857e-05,3.0,3.0 +maze50x50,Dijkstra,1.250000059371814e-05,3.0,3.0 +maze50x50,Dijkstra,1.8200000340584666e-05,3.0,3.0 +maze50x50,Dijkstra,1.3500000932253895e-05,3.0,3.0 +maze50x50,Dijkstra,1.340000017080456e-05,3.0,3.0 +maze50x50,Dijkstra,1.300000076298602e-05,3.0,3.0 +maze50x50,Dijkstra,1.2999998943996616e-05,3.0,3.0 +maze50x50,Dijkstra,1.2599999536178076e-05,3.0,3.0 +maze50x50,Dijkstra,1.3500000932253895e-05,3.0,3.0 +maze50x50,Dijkstra,1.3900000340072438e-05,3.0,3.0 +maze50x50,Dijkstra,1.4400000509340316e-05,3.0,3.0 +maze50x50(среднее),Dijkstra,1.3800000306218863e-05,3.0,3.0 +maze100x100,Dijkstra,1.5699999494245276e-05,3.0,3.0 +maze100x100,Dijkstra,1.429999974789098e-05,3.0,3.0 +maze100x100,Dijkstra,1.5100000382517464e-05,3.0,3.0 +maze100x100,Dijkstra,1.4400000509340316e-05,3.0,3.0 +maze100x100,Dijkstra,1.4200000805431046e-05,3.0,3.0 +maze100x100,Dijkstra,1.4999999621068127e-05,3.0,3.0 +maze100x100,Dijkstra,1.429999974789098e-05,3.0,3.0 +maze100x100,Dijkstra,1.3699998817173764e-05,3.0,3.0 +maze100x100,Dijkstra,1.4199998986441642e-05,3.0,3.0 +maze100x100,Dijkstra,1.3700000636163168e-05,3.0,3.0 +maze100x100(среднее),Dijkstra,1.4459999874816276e-05,3.0,3.0 +maze_empty,Dijkstra,0.0113691000005928,5328.0,158.0 +maze_empty,Dijkstra,0.0113638999991962,5328.0,158.0 +maze_empty,Dijkstra,0.0113867999989452,5328.0,158.0 +maze_empty,Dijkstra,0.0116022000001976,5328.0,158.0 +maze_empty,Dijkstra,0.0113552000002528,5328.0,158.0 +maze_empty,Dijkstra,0.0113825999997061,5328.0,158.0 +maze_empty,Dijkstra,0.0113117999990208,5328.0,158.0 +maze_empty,Dijkstra,0.011768900001698,5328.0,158.0 +maze_empty,Dijkstra,0.0116283999996085,5328.0,158.0 +maze_empty,Dijkstra,0.0114497000013216,5328.0,158.0 +maze_empty(среднее),Dijkstra,0.011461860000054,5328.0,158.0 +maze_no_path,Dijkstra,1.2000000424450263e-05,3.0,3.0 +maze_no_path,Dijkstra,1.3500000932253895e-05,3.0,3.0 +maze_no_path,Dijkstra,1.6099998902063817e-05,3.0,3.0 +maze_no_path,Dijkstra,1.449999945180025e-05,3.0,3.0 +maze_no_path,Dijkstra,1.4199998986441642e-05,3.0,3.0 +maze_no_path,Dijkstra,1.429999974789098e-05,3.0,3.0 +maze_no_path,Dijkstra,1.3900000340072438e-05,3.0,3.0 +maze_no_path,Dijkstra,1.3900000340072438e-05,3.0,3.0 +maze_no_path,Dijkstra,1.3399998351815157e-05,3.0,3.0 +maze_no_path,Dijkstra,1.3499999113264494e-05,3.0,3.0 +maze_no_path(среднее),Dijkstra,1.3929999659012537e-05,3.0,3.0 diff --git a/stepushovgs/labyrinth/docs/data/main.ipynb b/stepushovgs/labyrinth/docs/data/main.ipynb new file mode 100644 index 0000000..3b1eba5 --- /dev/null +++ b/stepushovgs/labyrinth/docs/data/main.ipynb @@ -0,0 +1,312 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "688ee55a", + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "\n", + "# Переходим из docs/data/ в корень lab/\n", + "os.chdir('../../')\n", + "\n", + "from source import TextFileMazeBuilder\n", + "from source.observer import ConsoleView, Event\n", + "from source.strategy import MazeSolver, BFS, DFS, Dijkstra, AStar\n", + "# from source.strategy.maze_solver import \n", + "from source.classes import Cell, Maze" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "70b2bfca", + "metadata": {}, + "outputs": [], + "source": [ + "builder = TextFileMazeBuilder()" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "6700366a", + "metadata": {}, + "outputs": [], + "source": [ + "path_maze100x100 = 'mazes\\\\benchmarks\\\\maze_empty.txt'" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "72959083", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "height: 50\n", + "width: 113\n", + "start: (1, 1)\n", + "exit: (111, 48)\n", + "count cells: 5650\n", + "BFS\n", + "Путь найден:\n", + "#################################################################################################################\n", + "#S #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#..............................................................................................................E#\n", + "#################################################################################################################\n", + "time: 0.009009700000206067 ms\n", + "visited cells: 5328\n", + "path length: 158\n", + "DFS\n", + "Путь найден:\n", + "#################################################################################################################\n", + "#S..............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "#...............................................................................................................#\n", + "#. #\n", + "#...............................................................................................................#\n", + "# .#\n", + "# .#\n", + "# E#\n", + "#################################################################################################################\n", + "time: 0.005747199999859731 ms\n", + "visited cells: 5328\n", + "path length: 2578\n", + "A*\n", + "Путь найден:\n", + "#################################################################################################################\n", + "#S #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#..............................................................................................................E#\n", + "#################################################################################################################\n", + "time: 0.013083499999993364 ms\n", + "visited cells: 5328\n", + "path length: 158\n", + "Dijkstra\n", + "Путь найден:\n", + "#################################################################################################################\n", + "#S #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#. #\n", + "#..............................................................................................................E#\n", + "#################################################################################################################\n", + "time: 0.011428499999965425 ms\n", + "visited cells: 5328\n", + "path length: 158\n" + ] + } + ], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a60c907a", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.6" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/stepushovgs/labyrinth/mazes/benchmarks/maze100x100.txt b/stepushovgs/labyrinth/mazes/benchmarks/maze100x100.txt new file mode 100644 index 0000000..ed0e31b --- /dev/null +++ b/stepushovgs/labyrinth/mazes/benchmarks/maze100x100.txt @@ -0,0 +1,3 @@ +#### +S E# +#### \ No newline at end of file diff --git a/stepushovgs/labyrinth/mazes/benchmarks/maze10x10.txt b/stepushovgs/labyrinth/mazes/benchmarks/maze10x10.txt new file mode 100644 index 0000000..ed0e31b --- /dev/null +++ b/stepushovgs/labyrinth/mazes/benchmarks/maze10x10.txt @@ -0,0 +1,3 @@ +#### +S E# +#### \ No newline at end of file diff --git a/stepushovgs/labyrinth/mazes/benchmarks/maze50x50.txt b/stepushovgs/labyrinth/mazes/benchmarks/maze50x50.txt new file mode 100644 index 0000000..ed0e31b --- /dev/null +++ b/stepushovgs/labyrinth/mazes/benchmarks/maze50x50.txt @@ -0,0 +1,3 @@ +#### +S E# +#### \ No newline at end of file diff --git a/stepushovgs/labyrinth/mazes/benchmarks/maze_empty.txt b/stepushovgs/labyrinth/mazes/benchmarks/maze_empty.txt new file mode 100644 index 0000000..57773b4 --- /dev/null +++ b/stepushovgs/labyrinth/mazes/benchmarks/maze_empty.txt @@ -0,0 +1,50 @@ +################################################################################################################# +#S # +# # +# # +# # +# # +# # +# # +# # +# # +# # +# # +# # +# # +# # +# # +# # +# # +# # +# # +# # +# # +# # +# # +# # +# # +# # +# # +# # +# # +# # +# # +# # +# # +# # +# # +# # +# # +# # +# # +# # +# # +# # +# # +# # +# # +# # +# # +# E# +################################################################################################################# \ No newline at end of file diff --git a/stepushovgs/labyrinth/mazes/benchmarks/maze_no_path.txt b/stepushovgs/labyrinth/mazes/benchmarks/maze_no_path.txt new file mode 100644 index 0000000..ed0e31b --- /dev/null +++ b/stepushovgs/labyrinth/mazes/benchmarks/maze_no_path.txt @@ -0,0 +1,3 @@ +#### +S E# +#### \ No newline at end of file diff --git a/stepushovgs/labyrinth/mazes/tests/test_labNoPath.txt b/stepushovgs/labyrinth/mazes/tests/test_labNoPath.txt new file mode 100644 index 0000000..0515697 --- /dev/null +++ b/stepushovgs/labyrinth/mazes/tests/test_labNoPath.txt @@ -0,0 +1,9 @@ +#################### +#S # +# ########## # +# #### # +# ######## # +# # +# ####### ####### +# #E # +#################### \ No newline at end of file diff --git a/stepushovgs/labyrinth/source/__init__.py b/stepushovgs/labyrinth/source/__init__.py new file mode 100644 index 0000000..6e9a125 --- /dev/null +++ b/stepushovgs/labyrinth/source/__init__.py @@ -0,0 +1,4 @@ +from .builder import * +from .classes import * +from .observer import * +from .strategy import * \ No newline at end of file diff --git a/stepushovgs/labyrinth/source/classes/maze.py b/stepushovgs/labyrinth/source/classes/maze.py index 6c3a4b6..71d53a3 100644 --- a/stepushovgs/labyrinth/source/classes/maze.py +++ b/stepushovgs/labyrinth/source/classes/maze.py @@ -39,4 +39,8 @@ class Maze: for c in line: print(c.toStr(), end='') - print() \ No newline at end of file + print() + + def info(self): + """Основная информация о лабиринте""" + print(f'height: {self.height}\nwidth: {self.width}\nstart: {self.start.getXY()}\nexit: {self.exit.getXY()}\ncount cells: {self.height * self.width}') \ No newline at end of file diff --git a/stepushovgs/labyrinth/source/strategy/maze_solver.py b/stepushovgs/labyrinth/source/strategy/maze_solver.py index 89c3859..3637425 100644 --- a/stepushovgs/labyrinth/source/strategy/maze_solver.py +++ b/stepushovgs/labyrinth/source/strategy/maze_solver.py @@ -49,4 +49,7 @@ class SearchStats: def show(self): """Вывод информации о тесте в консоль""" - print(f'time: {self.timeMs} ms\nvisited cells: {self.visitedCells}\npath length: {self.pathLength}') \ No newline at end of file + print(f'time: {self.timeMs} ms\nvisited cells: {self.visitedCells}\npath length: {self.pathLength}') + + # def toStr(self) -> str: + # return f'{self.timeMs} {self.visitedCells} {self.pathLength}' \ No newline at end of file diff --git a/stepushovgs/labyrinth/test.ipynb b/stepushovgs/labyrinth/test.ipynb index d3d8311..2741a2e 100644 --- a/stepushovgs/labyrinth/test.ipynb +++ b/stepushovgs/labyrinth/test.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 15, + "execution_count": 53, "id": "4dbe48b6", "metadata": {}, "outputs": [], @@ -17,7 +17,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 68, "id": "007bf97a", "metadata": {}, "outputs": [], @@ -25,12 +25,13 @@ "test_lab = './mazes/tests/test_lab.txt'\n", "test_lab2 = './mazes/tests/test_lab2.txt'\n", "test_lab3 = './mazes/tests/test_lab3.txt'\n", - "test_lab4 = './mazes/tests/test_lab20x20.txt'" + "test_lab4 = './mazes/tests/test_lab20x20.txt'\n", + "test_labNoPath = './mazes/tests/test_labNoPath.txt'" ] }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 55, "id": "4489fc7e", "metadata": {}, "outputs": [ @@ -56,7 +57,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 56, "id": "fde1eddb", "metadata": {}, "outputs": [ @@ -84,7 +85,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 57, "id": "22325f68", "metadata": {}, "outputs": [ @@ -117,7 +118,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 58, "id": "19840429", "metadata": {}, "outputs": [ @@ -155,7 +156,7 @@ " (7, 1)])" ] }, - "execution_count": 20, + "execution_count": 58, "metadata": {}, "output_type": "execute_result" } @@ -169,7 +170,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 59, "id": "73ba37a8", "metadata": {}, "outputs": [ @@ -207,7 +208,7 @@ " (7, 1)])" ] }, - "execution_count": 21, + "execution_count": 59, "metadata": {}, "output_type": "execute_result" } @@ -221,7 +222,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 60, "id": "857c5c04", "metadata": {}, "outputs": [ @@ -243,7 +244,7 @@ "{'0', '1', '2', '3', '4'}" ] }, - "execution_count": 22, + "execution_count": 60, "metadata": {}, "output_type": "execute_result" } @@ -272,7 +273,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 61, "id": "9a5ea5cb", "metadata": {}, "outputs": [ @@ -358,7 +359,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 62, "id": "32edf4d1", "metadata": {}, "outputs": [ @@ -383,7 +384,88 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 70, + "id": "dc7708c7", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "BFS\n", + "Путь найден:\n", + "####################\n", + "#S #\n", + "# ########## #\n", + "# #### #\n", + "# ######## #\n", + "# #\n", + "# ####### #######\n", + "# #E #\n", + "####################\n", + "time: 0.00013750000016443664 ms\n", + "visited cells: 88\n", + "path length: 0\n", + "DFS\n", + "Путь найден:\n", + "####################\n", + "#S #\n", + "# ########## #\n", + "# #### #\n", + "# ######## #\n", + "# #\n", + "# ####### #######\n", + "# #E #\n", + "####################\n", + "time: 0.0001343000003544148 ms\n", + "visited cells: 88\n", + "path length: 0\n", + "A*\n", + "Путь найден:\n", + "####################\n", + "#S #\n", + "# ########## #\n", + "# #### #\n", + "# ######## #\n", + "# #\n", + "# ####### #######\n", + "# #E #\n", + "####################\n", + "time: 0.0002116999994541402 ms\n", + "visited cells: 89\n", + "path length: 0\n", + "Dijkstra\n", + "Путь найден:\n", + "####################\n", + "#S #\n", + "# ########## #\n", + "# #### #\n", + "# ######## #\n", + "# #\n", + "# ####### #######\n", + "# #E #\n", + "####################\n", + "time: 0.00016429999959655106 ms\n", + "visited cells: 88\n", + "path length: 0\n" + ] + } + ], + "source": [ + "maze = builder.buildFromFile(test_labNoPath)\n", + "\n", + "strats = [BFS(), DFS(), AStar(), Dijkstra()]\n", + "\n", + "for strat in strats:\n", + " solver = MazeSolver(maze, strat, ConsoleView())\n", + " print(solver.strategyName())\n", + " stats = solver.solve()\n", + " stats.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, "id": "48d20564", "metadata": {}, "outputs": [ @@ -393,25 +475,23 @@ "text": [ "BFS\n", "Путь найден:\n", - "#####################################\n", - "#S #\n", - "#. #\n", - "#. #\n", - "#. #\n", - "#. #\n", - "#. #\n", - "#. #\n", - "#. #\n", - "#..................................E#\n", - "#####################################\n", - "time: 0.0008461000002171204 ms\n", - "visited cells: 315\n", - "path length: 43\n" + "####################\n", + "#S #\n", + "#. ########## #\n", + "#. #### #\n", + "#. ######## #\n", + "#. #\n", + "#. ####### #### #\n", + "#................E #\n", + "####################\n", + "time: 0.00018309999995835824 ms\n", + "visited cells: 92\n", + "path length: 23\n" ] } ], "source": [ - "maze2 = builder.buildFromFile(test_lab2)\n", + "maze2 = builder.buildFromFile(test_lab3)\n", "\n", "solver = MazeSolver(maze2, BFS(), ConsoleView())\n", "print(solver.strategyName())\n", @@ -421,7 +501,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 64, "id": "bf13d5ba", "metadata": {}, "outputs": [ @@ -432,28 +512,17 @@ "DFS\n", "Путь найден:\n", "####################\n", - "S...# # # #\n", - "###.# ### # ### # ##\n", - "#...# # # # # # # ##\n", - "#.### # ### # ### ##\n", - "#.# .....# # # ##\n", - "#.###.###.### # # ##\n", - "#.# #.# #...# # # ##\n", - "#.# #.# ###.# # # ##\n", - "#.# #.# #.# # # ##\n", - "#.# #.### #.# # # ##\n", - "#.# #...# #...# # ##\n", - "#.# ###.# ###.# # ##\n", - "#.# #.# #.# ##\n", - "#.### #.### #.### ##\n", - "#.#...#.# # #.# # ##\n", - "#.#.#.#.# # #.# # ##\n", - "#.#.#.#.# # #.# # ##\n", - "#...#...# #.....E#\n", + "#S.................#\n", + "# ########## .#\n", + "# ####............#\n", + "#....... ######## #\n", + "#. #\n", + "#...####### #### #\n", + "# ..............E #\n", "####################\n", - "time: 0.00014700000019729487 ms\n", - "visited cells: 83\n", - "path length: 76\n" + "time: 0.0001617000002624991 ms\n", + "visited cells: 79\n", + "path length: 57\n" ] } ], @@ -468,7 +537,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 65, "id": "9383cb75", "metadata": {}, "outputs": [ @@ -479,28 +548,17 @@ "Dijkstra\n", "Путь найден:\n", "####################\n", - "S...# # # #\n", - "###.# ### # ### # ##\n", - "#...# # # # # # # ##\n", - "#.### # ### # ### ##\n", - "#.# .....# # # ##\n", - "#.###.###.### # # ##\n", - "#.# #.# #...# # # ##\n", - "#.# #.# ###.# # # ##\n", - "#.# #.# #.# # # ##\n", - "#.# #.### #.# # # ##\n", - "#.# #...# #...# # ##\n", - "#.# ###.# ###.# # ##\n", - "#.# #.# #.# ##\n", - "#.### #.### #.### ##\n", - "#.#...#.# # #.# # ##\n", - "#.#.#.#.# # #.# # ##\n", - "#.#.#.#.# # #.# # ##\n", - "#...#...# #.....E#\n", + "#S #\n", + "#. ########## #\n", + "#. #### #\n", + "#. ######## #\n", + "#. #\n", + "#. ####### #### #\n", + "#................E #\n", "####################\n", - "time: 0.00022080000007917988 ms\n", - "visited cells: 120\n", - "path length: 76\n" + "time: 0.00021570000035353587 ms\n", + "visited cells: 92\n", + "path length: 23\n" ] } ], @@ -515,7 +573,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 66, "id": "835cff61", "metadata": {}, "outputs": [ @@ -526,28 +584,17 @@ "A*\n", "Путь найден:\n", "####################\n", - "S...# # # #\n", - "###.# ### # ### # ##\n", - "#...# # # # # # # ##\n", - "#.### # ### # ### ##\n", - "#.# .....# # # ##\n", - "#.###.###.### # # ##\n", - "#.# #.# #...# # # ##\n", - "#.# #.# ###.# # # ##\n", - "#.# #.# #.# # # ##\n", - "#.# #.### #.# # # ##\n", - "#.# #...# #...# # ##\n", - "#.# ###.# ###.# # ##\n", - "#.# #.# #.# ##\n", - "#.### #.### #.### ##\n", - "#.#...#.# # #.# # ##\n", - "#.#.#.#.# # #.# # ##\n", - "#.#.#.#.# # #.# # ##\n", - "#...#...# #.....E#\n", + "#S #\n", + "#. ########## #\n", + "#. #### #\n", + "#. ######## #\n", + "#. #\n", + "#. ####### #### #\n", + "#................E #\n", "####################\n", - "time: 0.00025749999986146577 ms\n", - "visited cells: 92\n", - "path length: 76\n" + "time: 0.00021229999993011006 ms\n", + "visited cells: 89\n", + "path length: 23\n" ] } ],