финальная версия отчета с графиками
This commit is contained in:
parent
9f9158b0c4
commit
e611cfe31b
|
|
@ -10,7 +10,7 @@
|
||||||
"\n",
|
"\n",
|
||||||
"**Студент:** Коннова Е.А.\n",
|
"**Студент:** Коннова Е.А.\n",
|
||||||
"**Группа:** 429\n",
|
"**Группа:** 429\n",
|
||||||
"**Дата:** 21.05.2026"
|
"**Дата:** 22.05.2026"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
@ -116,65 +116,115 @@
|
||||||
"| Алгоритмы | BFS, DFS, A* |\n",
|
"| Алгоритмы | BFS, DFS, A* |\n",
|
||||||
"| Лабиринты | Простой (10x10), С тупиками (50x50), Пустой (100x100), Без выхода |\n",
|
"| Лабиринты | Простой (10x10), С тупиками (50x50), Пустой (100x100), Без выхода |\n",
|
||||||
"\n",
|
"\n",
|
||||||
"### 3.2 Результаты\n",
|
"### 3.2 Тестовые лабиринты\n",
|
||||||
"\n",
|
"\n",
|
||||||
"| Лабиринт | Стратегия | Время (мс) | Посещено | Длина пути |\n",
|
"| Лабиринт | Размер | Характеристика |\n",
|
||||||
"|----------|-----------|------------|----------|------------|\n",
|
"|----------|--------|----------------|\n",
|
||||||
"| Простой | BFS | 0.037 | 11 | 6 |\n",
|
"| Простой | 10x10 | Прямой путь от старта к выходу |\n",
|
||||||
"| Простой | DFS | 0.016 | 9 | 8 |\n",
|
"| С тупиками | 20x20 | Много тупиков, запутанный |\n",
|
||||||
"| Простой | A* | 0.027 | 9 | 6 |\n",
|
"| Пустой | 50x50 | Без стен (максимальная производительность) |\n",
|
||||||
|
"| Без выхода | 10x10 | Выход отгорожен стенами |\n",
|
||||||
"\n",
|
"\n",
|
||||||
"### 3.3 Графики\n",
|
"### 3.3 Результаты экспериментов\n",
|
||||||
"\n",
|
"\n",
|
||||||
"\n",
|
"| Лабиринт | Стратегия | Время (мс) | Посещено клеток | Длина пути |\n",
|
||||||
"\n",
|
"|----------|-----------|------------|-----------------|------------|\n",
|
||||||
"\n",
|
"| Простой (10x10) | BFS | 0.020 | 11 | 6 |\n",
|
||||||
|
"| Простой (10x10) | DFS | 0.012 | 9 | 8 |\n",
|
||||||
|
"| Простой (10x10) | A* | 0.020 | 9 | 6 |\n",
|
||||||
|
"| С тупиками (20x20) | BFS | 0.492 | 306 | 35 |\n",
|
||||||
|
"| С тупиками (20x20) | DFS | 0.234 | 198 | 81 |\n",
|
||||||
|
"| С тупиками (20x20) | A* | 0.456 | 225 | 35 |\n",
|
||||||
|
"| Пустой (50x50) | BFS | 3.486 | 2304 | 95 |\n",
|
||||||
|
"| Пустой (50x50) | DFS | 10.452 | 2304 | 1129 |\n",
|
||||||
|
"| Пустой (50x50) | A* | 5.743 | 2304 | 95 |\n",
|
||||||
|
"| Без выхода | BFS | 0.010 | 1 | нет пути |\n",
|
||||||
|
"| Без выхода | DFS | 0.003 | 1 | нет пути |\n",
|
||||||
|
"| Без выхода | A* | 0.004 | 1 | нет пути |\n",
|
||||||
"\n",
|
"\n",
|
||||||
"### 3.4 Анализ\n",
|
"### 3.4 Графики\n",
|
||||||
"\n",
|
"\n",
|
||||||
"| Алгоритм | Кратчайший путь | Скорость | Память |\n",
|
"#### Простой лабиринт (10x10)\n",
|
||||||
"|----------|-----------------|----------|--------|\n",
|
|
||||||
"| BFS | Да | Средняя | Много |\n",
|
|
||||||
"| DFS | Нет | Быстрая | Мало |\n",
|
|
||||||
"| A* | Да | Быстрая | Средне |\n",
|
|
||||||
"\n",
|
"\n",
|
||||||
"**Выводы:**\n",
|
"\n",
|
||||||
|
"\n",
|
||||||
|
"\n",
|
||||||
|
"\n",
|
||||||
|
"#### Лабиринт с тупиками (20x20)\n",
|
||||||
|
"\n",
|
||||||
|
"\n",
|
||||||
|
"\n",
|
||||||
|
"\n",
|
||||||
|
"\n",
|
||||||
|
"#### Пустой лабиринт (50x50)\n",
|
||||||
|
"\n",
|
||||||
|
"\n",
|
||||||
|
"\n",
|
||||||
|
"\n",
|
||||||
|
"\n",
|
||||||
|
"#### Лабиринт без выхода\n",
|
||||||
|
"\n",
|
||||||
|
"\n",
|
||||||
|
"\n",
|
||||||
|
"\n",
|
||||||
|
"### 3.5 Общая таблица результатов\n",
|
||||||
|
"\n",
|
||||||
|
"\n",
|
||||||
|
"\n",
|
||||||
|
"### 3.6 Анализ результатов\n",
|
||||||
|
"\n",
|
||||||
|
"**Простой лабиринт (10x10):**\n",
|
||||||
"- BFS и A* нашли кратчайший путь (6 шагов)\n",
|
"- BFS и A* нашли кратчайший путь (6 шагов)\n",
|
||||||
"- DFS нашёл более длинный путь (8 шагов), но быстрее всех\n",
|
"- DFS нашёл более длинный путь (8 шагов), но был быстрее всех\n",
|
||||||
"- A* - лучший компромисс между скоростью и оптимальностью\n"
|
"\n",
|
||||||
|
"**Лабиринт с тупиками (20x20):**\n",
|
||||||
|
"- BFS и A* нашли кратчайший путь (35 шагов)\n",
|
||||||
|
"- DFS нашёл очень длинный путь (81 шаг), так как ушёл в глубину по тупикам\n",
|
||||||
|
"\n",
|
||||||
|
"**Пустой лабиринт (50x50):**\n",
|
||||||
|
"- BFS и A* нашли кратчайший путь (95 шагов)\n",
|
||||||
|
"- DFS нашёл очень длинный путь (1129 шагов)\n",
|
||||||
|
"\n",
|
||||||
|
"**Лабиринт без выхода:**\n",
|
||||||
|
"- Все алгоритмы посетили только стартовую клетку (1) и вернули \"нет пути\"\n",
|
||||||
|
"\n",
|
||||||
|
"### 3.7 Сравнение алгоритмов\n",
|
||||||
|
"\n",
|
||||||
|
"| Алгоритм | Кратчайший путь | Скорость | Память | Когда использовать |\n",
|
||||||
|
"|----------|-----------------|----------|--------|-------------------|\n",
|
||||||
|
"| BFS | Да | Средняя | Много | Нужен гарантированно кратчайший путь |\n",
|
||||||
|
"| DFS | Нет | Быстрая | Мало | Важна скорость, не важна длина пути |\n",
|
||||||
|
"| A* | Да | Быстрая | Средне | Большие лабиринты, есть эвристика |\n",
|
||||||
|
"\n",
|
||||||
|
"\n"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"id": "1036c160",
|
"id": "e687a8ee",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"source": [
|
"source": [
|
||||||
"## Заключение\n",
|
"## Заключение\n",
|
||||||
"\n",
|
"\n",
|
||||||
"### Рекомендации по выбору алгоритма\n",
|
"### Выводы\n",
|
||||||
"\n",
|
"\n",
|
||||||
"| Сценарий | Алгоритм | Причина |\n",
|
"1. **BFS** гарантирует кратчайший путь, но медленнее на больших лабиринтах\n",
|
||||||
"|----------|----------|---------|\n",
|
"2. **DFS** самый быстрый, но путь может быть очень длинным\n",
|
||||||
"| Нужен кратчайший путь | BFS | Гарантирует оптимальность |\n",
|
"3. **A*** - лучший компромисс: находит кратчайший путь и работает быстро\n",
|
||||||
"| Важна скорость | DFS | Самый быстрый |\n",
|
"\n",
|
||||||
"| Большой лабиринт | A* | Эвристика ускоряет поиск |\n",
|
"### Рекомендация\n",
|
||||||
|
"\n",
|
||||||
|
"Для поиска выхода из лабиринта рекомендуется использовать **A*** - он сочетает скорость и оптимальность.\n",
|
||||||
"\n",
|
"\n",
|
||||||
"### Как паттерны помогли\n",
|
"### Как паттерны помогли\n",
|
||||||
"\n",
|
"\n",
|
||||||
"| Изменение | Без паттернов | С паттернами |\n",
|
"| Изменение | Без паттернов | С паттернами |\n",
|
||||||
"|-----------|---------------|--------------|\n",
|
"|-----------|---------------|--------------|\n",
|
||||||
"| Добавить JSON лабиринт | Изменить весь код | Создать JSONBuilder |\n",
|
"| Добавить новый алгоритм | Изменить MazeSolver | Создать новую стратегию |\n",
|
||||||
"| Добавить алгоритм | Изменить MazeSolver | Создать новую стратегию |\n",
|
|
||||||
"| Сменить визуализацию | Переписать MazeSolver | Добавить новый Observer |\n",
|
"| Сменить визуализацию | Переписать MazeSolver | Добавить новый Observer |\n",
|
||||||
"\n",
|
"\n",
|
||||||
"**Итог:** Паттерны сделали код гибким, расширяемым и тестируемым."
|
"**Итог:** Паттерны сделали код гибким и расширяемым."
|
||||||
]
|
]
|
||||||
},
|
|
||||||
{
|
|
||||||
"cell_type": "markdown",
|
|
||||||
"id": "cb24b904",
|
|
||||||
"metadata": {},
|
|
||||||
"source": []
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"metadata": {
|
"metadata": {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user