2026-05-22 22:01:08 +00:00
|
|
|
|
{
|
|
|
|
|
|
"cells": [
|
|
|
|
|
|
{
|
|
|
|
|
|
"cell_type": "code",
|
2026-05-23 13:47:29 +00:00
|
|
|
|
"execution_count": 134,
|
2026-05-22 22:01:08 +00:00
|
|
|
|
"id": "688ee55a",
|
|
|
|
|
|
"metadata": {},
|
|
|
|
|
|
"outputs": [],
|
|
|
|
|
|
"source": [
|
2026-05-23 13:47:29 +00:00
|
|
|
|
"import pandas as pd\n",
|
|
|
|
|
|
"import matplotlib.pyplot as plt"
|
|
|
|
|
|
]
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"cell_type": "code",
|
|
|
|
|
|
"execution_count": 135,
|
|
|
|
|
|
"id": "185233e9",
|
|
|
|
|
|
"metadata": {},
|
|
|
|
|
|
"outputs": [],
|
|
|
|
|
|
"source": [
|
|
|
|
|
|
"# CMU Serif\n",
|
|
|
|
|
|
"plt.rcParams['font.family'] = 'CMU Serif'\n",
|
|
|
|
|
|
"plt.rcParams['mathtext.fontset'] = 'cm'\n",
|
|
|
|
|
|
"plt.rcParams['font.size'] = 14\n",
|
|
|
|
|
|
"plt.rcParams['axes.titlesize'] = 16\n",
|
|
|
|
|
|
"plt.rcParams['axes.labelsize'] = 15\n",
|
|
|
|
|
|
"plt.rcParams['xtick.labelsize'] = 13\n",
|
|
|
|
|
|
"plt.rcParams['ytick.labelsize'] = 13\n",
|
|
|
|
|
|
"plt.rcParams['legend.fontsize'] = 12"
|
|
|
|
|
|
]
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"cell_type": "code",
|
|
|
|
|
|
"execution_count": 136,
|
|
|
|
|
|
"id": "70b2bfca",
|
|
|
|
|
|
"metadata": {},
|
|
|
|
|
|
"outputs": [
|
|
|
|
|
|
{
|
|
|
|
|
|
"data": {
|
|
|
|
|
|
"text/html": [
|
|
|
|
|
|
"<div>\n",
|
|
|
|
|
|
"<style scoped>\n",
|
|
|
|
|
|
" .dataframe tbody tr th:only-of-type {\n",
|
|
|
|
|
|
" vertical-align: middle;\n",
|
|
|
|
|
|
" }\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
" .dataframe tbody tr th {\n",
|
|
|
|
|
|
" vertical-align: top;\n",
|
|
|
|
|
|
" }\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
" .dataframe thead th {\n",
|
|
|
|
|
|
" text-align: right;\n",
|
|
|
|
|
|
" }\n",
|
|
|
|
|
|
"</style>\n",
|
|
|
|
|
|
"<table border=\"1\" class=\"dataframe\">\n",
|
|
|
|
|
|
" <thead>\n",
|
|
|
|
|
|
" <tr style=\"text-align: right;\">\n",
|
|
|
|
|
|
" <th></th>\n",
|
|
|
|
|
|
" <th>Лабиринт</th>\n",
|
|
|
|
|
|
" <th>Алгоритм</th>\n",
|
|
|
|
|
|
" <th>Время</th>\n",
|
|
|
|
|
|
" <th>Посещено клеток</th>\n",
|
|
|
|
|
|
" <th>Длина пути</th>\n",
|
|
|
|
|
|
" </tr>\n",
|
|
|
|
|
|
" </thead>\n",
|
|
|
|
|
|
" <tbody>\n",
|
|
|
|
|
|
" <tr>\n",
|
|
|
|
|
|
" <th>0</th>\n",
|
|
|
|
|
|
" <td>maze10x10</td>\n",
|
|
|
|
|
|
" <td>BFS</td>\n",
|
|
|
|
|
|
" <td>0.04950</td>\n",
|
|
|
|
|
|
" <td>25.0</td>\n",
|
|
|
|
|
|
" <td>16.0</td>\n",
|
|
|
|
|
|
" </tr>\n",
|
|
|
|
|
|
" <tr>\n",
|
|
|
|
|
|
" <th>1</th>\n",
|
|
|
|
|
|
" <td>maze10x10</td>\n",
|
|
|
|
|
|
" <td>BFS</td>\n",
|
|
|
|
|
|
" <td>0.04790</td>\n",
|
|
|
|
|
|
" <td>25.0</td>\n",
|
|
|
|
|
|
" <td>16.0</td>\n",
|
|
|
|
|
|
" </tr>\n",
|
|
|
|
|
|
" <tr>\n",
|
|
|
|
|
|
" <th>2</th>\n",
|
|
|
|
|
|
" <td>maze10x10</td>\n",
|
|
|
|
|
|
" <td>BFS</td>\n",
|
|
|
|
|
|
" <td>0.05920</td>\n",
|
|
|
|
|
|
" <td>25.0</td>\n",
|
|
|
|
|
|
" <td>16.0</td>\n",
|
|
|
|
|
|
" </tr>\n",
|
|
|
|
|
|
" <tr>\n",
|
|
|
|
|
|
" <th>3</th>\n",
|
|
|
|
|
|
" <td>maze10x10</td>\n",
|
|
|
|
|
|
" <td>BFS</td>\n",
|
|
|
|
|
|
" <td>0.07750</td>\n",
|
|
|
|
|
|
" <td>25.0</td>\n",
|
|
|
|
|
|
" <td>16.0</td>\n",
|
|
|
|
|
|
" </tr>\n",
|
|
|
|
|
|
" <tr>\n",
|
|
|
|
|
|
" <th>4</th>\n",
|
|
|
|
|
|
" <td>maze10x10</td>\n",
|
|
|
|
|
|
" <td>BFS</td>\n",
|
|
|
|
|
|
" <td>0.05070</td>\n",
|
|
|
|
|
|
" <td>25.0</td>\n",
|
|
|
|
|
|
" <td>16.0</td>\n",
|
|
|
|
|
|
" </tr>\n",
|
|
|
|
|
|
" <tr>\n",
|
|
|
|
|
|
" <th>...</th>\n",
|
|
|
|
|
|
" <td>...</td>\n",
|
|
|
|
|
|
" <td>...</td>\n",
|
|
|
|
|
|
" <td>...</td>\n",
|
|
|
|
|
|
" <td>...</td>\n",
|
|
|
|
|
|
" <td>...</td>\n",
|
|
|
|
|
|
" </tr>\n",
|
|
|
|
|
|
" <tr>\n",
|
|
|
|
|
|
" <th>215</th>\n",
|
|
|
|
|
|
" <td>maze_no_path</td>\n",
|
|
|
|
|
|
" <td>Dijkstra</td>\n",
|
|
|
|
|
|
" <td>2.06430</td>\n",
|
|
|
|
|
|
" <td>1257.0</td>\n",
|
|
|
|
|
|
" <td>0.0</td>\n",
|
|
|
|
|
|
" </tr>\n",
|
|
|
|
|
|
" <tr>\n",
|
|
|
|
|
|
" <th>216</th>\n",
|
|
|
|
|
|
" <td>maze_no_path</td>\n",
|
|
|
|
|
|
" <td>Dijkstra</td>\n",
|
|
|
|
|
|
" <td>2.22710</td>\n",
|
|
|
|
|
|
" <td>1257.0</td>\n",
|
|
|
|
|
|
" <td>0.0</td>\n",
|
|
|
|
|
|
" </tr>\n",
|
|
|
|
|
|
" <tr>\n",
|
|
|
|
|
|
" <th>217</th>\n",
|
|
|
|
|
|
" <td>maze_no_path</td>\n",
|
|
|
|
|
|
" <td>Dijkstra</td>\n",
|
|
|
|
|
|
" <td>2.07420</td>\n",
|
|
|
|
|
|
" <td>1257.0</td>\n",
|
|
|
|
|
|
" <td>0.0</td>\n",
|
|
|
|
|
|
" </tr>\n",
|
|
|
|
|
|
" <tr>\n",
|
|
|
|
|
|
" <th>218</th>\n",
|
|
|
|
|
|
" <td>maze_no_path</td>\n",
|
|
|
|
|
|
" <td>Dijkstra</td>\n",
|
|
|
|
|
|
" <td>2.06130</td>\n",
|
|
|
|
|
|
" <td>1257.0</td>\n",
|
|
|
|
|
|
" <td>0.0</td>\n",
|
|
|
|
|
|
" </tr>\n",
|
|
|
|
|
|
" <tr>\n",
|
|
|
|
|
|
" <th>219</th>\n",
|
|
|
|
|
|
" <td>maze_no_path(среднее)</td>\n",
|
|
|
|
|
|
" <td>Dijkstra</td>\n",
|
|
|
|
|
|
" <td>2.10303</td>\n",
|
|
|
|
|
|
" <td>1257.0</td>\n",
|
|
|
|
|
|
" <td>0.0</td>\n",
|
|
|
|
|
|
" </tr>\n",
|
|
|
|
|
|
" </tbody>\n",
|
|
|
|
|
|
"</table>\n",
|
|
|
|
|
|
"<p>220 rows × 5 columns</p>\n",
|
|
|
|
|
|
"</div>"
|
|
|
|
|
|
],
|
|
|
|
|
|
"text/plain": [
|
|
|
|
|
|
" Лабиринт Алгоритм Время Посещено клеток Длина пути\n",
|
|
|
|
|
|
"0 maze10x10 BFS 0.04950 25.0 16.0\n",
|
|
|
|
|
|
"1 maze10x10 BFS 0.04790 25.0 16.0\n",
|
|
|
|
|
|
"2 maze10x10 BFS 0.05920 25.0 16.0\n",
|
|
|
|
|
|
"3 maze10x10 BFS 0.07750 25.0 16.0\n",
|
|
|
|
|
|
"4 maze10x10 BFS 0.05070 25.0 16.0\n",
|
|
|
|
|
|
".. ... ... ... ... ...\n",
|
|
|
|
|
|
"215 maze_no_path Dijkstra 2.06430 1257.0 0.0\n",
|
|
|
|
|
|
"216 maze_no_path Dijkstra 2.22710 1257.0 0.0\n",
|
|
|
|
|
|
"217 maze_no_path Dijkstra 2.07420 1257.0 0.0\n",
|
|
|
|
|
|
"218 maze_no_path Dijkstra 2.06130 1257.0 0.0\n",
|
|
|
|
|
|
"219 maze_no_path(среднее) Dijkstra 2.10303 1257.0 0.0\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"[220 rows x 5 columns]"
|
|
|
|
|
|
]
|
|
|
|
|
|
},
|
|
|
|
|
|
"execution_count": 136,
|
|
|
|
|
|
"metadata": {},
|
|
|
|
|
|
"output_type": "execute_result"
|
|
|
|
|
|
}
|
|
|
|
|
|
],
|
|
|
|
|
|
"source": [
|
|
|
|
|
|
"csv_path = 'csv/banchmark.csv'\n",
|
2026-05-22 22:01:08 +00:00
|
|
|
|
"\n",
|
2026-05-23 13:47:29 +00:00
|
|
|
|
"data = pd.read_csv(csv_path)\n",
|
|
|
|
|
|
"data"
|
|
|
|
|
|
]
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"cell_type": "code",
|
|
|
|
|
|
"execution_count": 137,
|
|
|
|
|
|
"id": "c76b78ad",
|
|
|
|
|
|
"metadata": {},
|
|
|
|
|
|
"outputs": [],
|
|
|
|
|
|
"source": [
|
|
|
|
|
|
"maze_mini_bfs = data.loc[\n",
|
|
|
|
|
|
" (data['Лабиринт'] == 'maze10x10') & (data['Алгоритм'] == 'BFS'),\n",
|
|
|
|
|
|
" 'Время'\n",
|
|
|
|
|
|
" ].tolist()\n",
|
|
|
|
|
|
"maze_mini_bfs_average = data.loc[\n",
|
|
|
|
|
|
" (data['Лабиринт'] == 'maze10x10(среднее)') & (data['Алгоритм'] == 'BFS'),\n",
|
|
|
|
|
|
" 'Время'\n",
|
|
|
|
|
|
" ].iloc[0]\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"maze_mini_dfs = data.loc[\n",
|
|
|
|
|
|
" (data['Лабиринт'] == 'maze10x10') & (data['Алгоритм'] == 'DFS'),\n",
|
|
|
|
|
|
" 'Время'\n",
|
|
|
|
|
|
" ].tolist()\n",
|
|
|
|
|
|
"maze_mini_dfs_average = data.loc[\n",
|
|
|
|
|
|
" (data['Лабиринт'] == 'maze10x10(среднее)') & (data['Алгоритм'] == 'DFS'),\n",
|
|
|
|
|
|
" 'Время'\n",
|
|
|
|
|
|
" ].iloc[0]\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"maze_mini_astar = data.loc[\n",
|
|
|
|
|
|
" (data['Лабиринт'] == 'maze10x10') & (data['Алгоритм'] == 'A*'),\n",
|
|
|
|
|
|
" 'Время'\n",
|
|
|
|
|
|
" ].tolist()\n",
|
|
|
|
|
|
"maze_mini_astar_average = data.loc[\n",
|
|
|
|
|
|
" (data['Лабиринт'] == 'maze10x10(среднее)') & (data['Алгоритм'] == 'A*'),\n",
|
|
|
|
|
|
" 'Время'\n",
|
|
|
|
|
|
" ].iloc[0]\n",
|
2026-05-22 22:01:08 +00:00
|
|
|
|
"\n",
|
2026-05-23 13:47:29 +00:00
|
|
|
|
"maze_mini_dijkstra = data.loc[\n",
|
|
|
|
|
|
" (data['Лабиринт'] == 'maze10x10') & (data['Алгоритм'] == 'Dijkstra'),\n",
|
|
|
|
|
|
" 'Время'\n",
|
|
|
|
|
|
" ].tolist()\n",
|
|
|
|
|
|
"maze_mini_dijkstra_average = data.loc[\n",
|
|
|
|
|
|
" (data['Лабиринт'] == 'maze10x10(среднее)') & (data['Алгоритм'] == 'Dijkstra'),\n",
|
|
|
|
|
|
" 'Время'\n",
|
|
|
|
|
|
" ].iloc[0]"
|
2026-05-22 22:01:08 +00:00
|
|
|
|
]
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"cell_type": "code",
|
2026-05-23 13:47:29 +00:00
|
|
|
|
"execution_count": 138,
|
|
|
|
|
|
"id": "43185f9c",
|
2026-05-22 22:01:08 +00:00
|
|
|
|
"metadata": {},
|
|
|
|
|
|
"outputs": [],
|
|
|
|
|
|
"source": [
|
2026-05-23 13:47:29 +00:00
|
|
|
|
"maze_midl_bfs = data.loc[\n",
|
|
|
|
|
|
" (data['Лабиринт'] == 'maze50x50') & (data['Алгоритм'] == 'BFS'),\n",
|
|
|
|
|
|
" 'Время'\n",
|
|
|
|
|
|
" ].tolist()\n",
|
|
|
|
|
|
"maze_midl_bfs_average = data.loc[\n",
|
|
|
|
|
|
" (data['Лабиринт'] == 'maze50x50(среднее)') & (data['Алгоритм'] == 'BFS'),\n",
|
|
|
|
|
|
" 'Время'\n",
|
|
|
|
|
|
" ].iloc[0]\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"maze_midl_dfs = data.loc[\n",
|
|
|
|
|
|
" (data['Лабиринт'] == 'maze50x50') & (data['Алгоритм'] == 'DFS'),\n",
|
|
|
|
|
|
" 'Время'\n",
|
|
|
|
|
|
" ].tolist()\n",
|
|
|
|
|
|
"maze_midl_dfs_average = data.loc[\n",
|
|
|
|
|
|
" (data['Лабиринт'] == 'maze50x50(среднее)') & (data['Алгоритм'] == 'DFS'),\n",
|
|
|
|
|
|
" 'Время'\n",
|
|
|
|
|
|
" ].iloc[0]\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"maze_midl_astar = data.loc[\n",
|
|
|
|
|
|
" (data['Лабиринт'] == 'maze50x50') & (data['Алгоритм'] == 'A*'),\n",
|
|
|
|
|
|
" 'Время'\n",
|
|
|
|
|
|
" ].tolist()\n",
|
|
|
|
|
|
"maze_midl_astar_average = data.loc[\n",
|
|
|
|
|
|
" (data['Лабиринт'] == 'maze50x50(среднее)') & (data['Алгоритм'] == 'A*'),\n",
|
|
|
|
|
|
" 'Время'\n",
|
|
|
|
|
|
" ].iloc[0]\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"maze_midl_dijkstra = data.loc[\n",
|
|
|
|
|
|
" (data['Лабиринт'] == 'maze50x50') & (data['Алгоритм'] == 'Dijkstra'),\n",
|
|
|
|
|
|
" 'Время'\n",
|
|
|
|
|
|
" ].tolist()\n",
|
|
|
|
|
|
"maze_midl_dijkstra_average = data.loc[\n",
|
|
|
|
|
|
" (data['Лабиринт'] == 'maze50x50(среднее)') & (data['Алгоритм'] == 'Dijkstra'),\n",
|
|
|
|
|
|
" 'Время'\n",
|
|
|
|
|
|
" ].iloc[0]"
|
2026-05-22 22:01:08 +00:00
|
|
|
|
]
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"cell_type": "code",
|
2026-05-23 13:47:29 +00:00
|
|
|
|
"execution_count": 139,
|
|
|
|
|
|
"id": "dd77cde8",
|
|
|
|
|
|
"metadata": {},
|
|
|
|
|
|
"outputs": [],
|
|
|
|
|
|
"source": [
|
|
|
|
|
|
"maze_max_bfs = data.loc[\n",
|
|
|
|
|
|
" (data['Лабиринт'] == 'maze100x100') & (data['Алгоритм'] == 'BFS'),\n",
|
|
|
|
|
|
" 'Время'\n",
|
|
|
|
|
|
" ].tolist()\n",
|
|
|
|
|
|
"maze_max_bfs_average = data.loc[\n",
|
|
|
|
|
|
" (data['Лабиринт'] == 'maze100x100(среднее)') & (data['Алгоритм'] == 'BFS'),\n",
|
|
|
|
|
|
" 'Время'\n",
|
|
|
|
|
|
" ].iloc[0]\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"maze_max_dfs = data.loc[\n",
|
|
|
|
|
|
" (data['Лабиринт'] == 'maze100x100') & (data['Алгоритм'] == 'DFS'),\n",
|
|
|
|
|
|
" 'Время'\n",
|
|
|
|
|
|
" ].tolist()\n",
|
|
|
|
|
|
"maze_max_dfs_average = data.loc[\n",
|
|
|
|
|
|
" (data['Лабиринт'] == 'maze100x100(среднее)') & (data['Алгоритм'] == 'DFS'),\n",
|
|
|
|
|
|
" 'Время'\n",
|
|
|
|
|
|
" ].iloc[0]\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"maze_max_astar = data.loc[\n",
|
|
|
|
|
|
" (data['Лабиринт'] == 'maze100x100') & (data['Алгоритм'] == 'A*'),\n",
|
|
|
|
|
|
" 'Время'\n",
|
|
|
|
|
|
" ].tolist()\n",
|
|
|
|
|
|
"maze_max_astar_average = data.loc[\n",
|
|
|
|
|
|
" (data['Лабиринт'] == 'maze100x100(среднее)') & (data['Алгоритм'] == 'A*'),\n",
|
|
|
|
|
|
" 'Время'\n",
|
|
|
|
|
|
" ].iloc[0]\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"maze_max_dijkstra = data.loc[\n",
|
|
|
|
|
|
" (data['Лабиринт'] == 'maze100x100') & (data['Алгоритм'] == 'Dijkstra'),\n",
|
|
|
|
|
|
" 'Время'\n",
|
|
|
|
|
|
" ].tolist()\n",
|
|
|
|
|
|
"maze_max_dijkstra_average = data.loc[\n",
|
|
|
|
|
|
" (data['Лабиринт'] == 'maze100x100(среднее)') & (data['Алгоритм'] == 'Dijkstra'),\n",
|
|
|
|
|
|
" 'Время'\n",
|
|
|
|
|
|
" ].iloc[0]"
|
|
|
|
|
|
]
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"cell_type": "code",
|
|
|
|
|
|
"execution_count": 140,
|
|
|
|
|
|
"id": "c7bbc090",
|
2026-05-22 22:01:08 +00:00
|
|
|
|
"metadata": {},
|
|
|
|
|
|
"outputs": [],
|
|
|
|
|
|
"source": [
|
2026-05-23 13:47:29 +00:00
|
|
|
|
"maze_empty_bfs = data.loc[\n",
|
|
|
|
|
|
" (data['Лабиринт'] == 'maze_empty') & (data['Алгоритм'] == 'BFS'),\n",
|
|
|
|
|
|
" 'Время'\n",
|
|
|
|
|
|
" ].tolist()\n",
|
|
|
|
|
|
"maze_empty_bfs_average = data.loc[\n",
|
|
|
|
|
|
" (data['Лабиринт'] == 'maze_empty(среднее)') & (data['Алгоритм'] == 'BFS'),\n",
|
|
|
|
|
|
" 'Время'\n",
|
|
|
|
|
|
" ].iloc[0]\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"maze_empty_dfs = data.loc[\n",
|
|
|
|
|
|
" (data['Лабиринт'] == 'maze_empty') & (data['Алгоритм'] == 'DFS'),\n",
|
|
|
|
|
|
" 'Время'\n",
|
|
|
|
|
|
" ].tolist()\n",
|
|
|
|
|
|
"maze_empty_dfs_average = data.loc[\n",
|
|
|
|
|
|
" (data['Лабиринт'] == 'maze_empty(среднее)') & (data['Алгоритм'] == 'DFS'),\n",
|
|
|
|
|
|
" 'Время'\n",
|
|
|
|
|
|
" ].iloc[0]\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"maze_empty_astar = data.loc[\n",
|
|
|
|
|
|
" (data['Лабиринт'] == 'maze_empty') & (data['Алгоритм'] == 'A*'),\n",
|
|
|
|
|
|
" 'Время'\n",
|
|
|
|
|
|
" ].tolist()\n",
|
|
|
|
|
|
"maze_empty_astar_average = data.loc[\n",
|
|
|
|
|
|
" (data['Лабиринт'] == 'maze_empty(среднее)') & (data['Алгоритм'] == 'A*'),\n",
|
|
|
|
|
|
" 'Время'\n",
|
|
|
|
|
|
" ].iloc[0]\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"maze_empty_dijkstra = data.loc[\n",
|
|
|
|
|
|
" (data['Лабиринт'] == 'maze_empty') & (data['Алгоритм'] == 'Dijkstra'),\n",
|
|
|
|
|
|
" 'Время'\n",
|
|
|
|
|
|
" ].tolist()\n",
|
|
|
|
|
|
"maze_empty_dijkstra_average = data.loc[\n",
|
|
|
|
|
|
" (data['Лабиринт'] == 'maze_empty(среднее)') & (data['Алгоритм'] == 'Dijkstra'),\n",
|
|
|
|
|
|
" 'Время'\n",
|
|
|
|
|
|
" ].iloc[0]"
|
2026-05-22 22:01:08 +00:00
|
|
|
|
]
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"cell_type": "code",
|
2026-05-23 13:47:29 +00:00
|
|
|
|
"execution_count": 141,
|
|
|
|
|
|
"id": "742bce22",
|
2026-05-22 22:01:08 +00:00
|
|
|
|
"metadata": {},
|
2026-05-22 22:22:42 +00:00
|
|
|
|
"outputs": [],
|
2026-05-23 13:47:29 +00:00
|
|
|
|
"source": [
|
|
|
|
|
|
"maze_no_path_bfs = data.loc[\n",
|
|
|
|
|
|
" (data['Лабиринт'] == 'maze_no_path') & (data['Алгоритм'] == 'BFS'),\n",
|
|
|
|
|
|
" 'Время'\n",
|
|
|
|
|
|
" ].tolist()\n",
|
|
|
|
|
|
"maze_no_path_bfs_average = data.loc[\n",
|
|
|
|
|
|
" (data['Лабиринт'] == 'maze_no_path(среднее)') & (data['Алгоритм'] == 'BFS'),\n",
|
|
|
|
|
|
" 'Время'\n",
|
|
|
|
|
|
" ].iloc[0]\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"maze_no_path_dfs = data.loc[\n",
|
|
|
|
|
|
" (data['Лабиринт'] == 'maze_no_path') & (data['Алгоритм'] == 'DFS'),\n",
|
|
|
|
|
|
" 'Время'\n",
|
|
|
|
|
|
" ].tolist()\n",
|
|
|
|
|
|
"maze_no_path_dfs_average = data.loc[\n",
|
|
|
|
|
|
" (data['Лабиринт'] == 'maze_no_path(среднее)') & (data['Алгоритм'] == 'DFS'),\n",
|
|
|
|
|
|
" 'Время'\n",
|
|
|
|
|
|
" ].iloc[0]\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"maze_no_path_astar = data.loc[\n",
|
|
|
|
|
|
" (data['Лабиринт'] == 'maze_no_path') & (data['Алгоритм'] == 'A*'),\n",
|
|
|
|
|
|
" 'Время'\n",
|
|
|
|
|
|
" ].tolist()\n",
|
|
|
|
|
|
"maze_no_path_astar_average = data.loc[\n",
|
|
|
|
|
|
" (data['Лабиринт'] == 'maze_no_path(среднее)') & (data['Алгоритм'] == 'A*'),\n",
|
|
|
|
|
|
" 'Время'\n",
|
|
|
|
|
|
" ].iloc[0]\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"maze_no_path_dijkstra = data.loc[\n",
|
|
|
|
|
|
" (data['Лабиринт'] == 'maze_no_path') & (data['Алгоритм'] == 'Dijkstra'),\n",
|
|
|
|
|
|
" 'Время'\n",
|
|
|
|
|
|
" ].tolist()\n",
|
|
|
|
|
|
"maze_no_path_dijkstra_average = data.loc[\n",
|
|
|
|
|
|
" (data['Лабиринт'] == 'maze_no_path(среднее)') & (data['Алгоритм'] == 'Dijkstra'),\n",
|
|
|
|
|
|
" 'Время'\n",
|
|
|
|
|
|
" ].iloc[0]"
|
|
|
|
|
|
]
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"cell_type": "code",
|
|
|
|
|
|
"execution_count": 142,
|
|
|
|
|
|
"id": "1e1fa8a1",
|
|
|
|
|
|
"metadata": {},
|
|
|
|
|
|
"outputs": [],
|
|
|
|
|
|
"source": [
|
|
|
|
|
|
"iterations = range(1, 11)\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"bfs_col = 'blue'\n",
|
|
|
|
|
|
"dfs_col = 'orange'\n",
|
|
|
|
|
|
"AStar_col = 'green'\n",
|
|
|
|
|
|
"Dijkstra_col = 'red'"
|
|
|
|
|
|
]
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"cell_type": "code",
|
|
|
|
|
|
"execution_count": 143,
|
|
|
|
|
|
"id": "d6fae13f",
|
|
|
|
|
|
"metadata": {},
|
|
|
|
|
|
"outputs": [
|
|
|
|
|
|
{
|
|
|
|
|
|
"data": {
|
|
|
|
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAABWIAAAJBCAYAAADMVcz9AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjcsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvTLEjVAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAqwRJREFUeJzs3Xlc1NX+x/H3dwYUkUVTUBQUydQys7LlluJSZpbduJfQFkuzupVtWP5cc72mtlhq2WLdezPTLCNupZWZW1C2793MDVdwwQ0QBWXm+/vj64wMMygiI9vr2aMHzjnne+Z8vxzOzHy+Z84xTNM0BQAAAAAAAADwG1tlNwAAAAAAAAAAajoCsQAAAAAAAADgZwRiAQAAAAAAAMDPCMQCAAAAAAAAgJ8RiAUAAAAAAAAAPyMQCwAAAAAAAAB+RiAWAAAAAAAAAPyMQCwAAAAAAAAA+BmBWAAAAAAAAADws4DKbgAAAEBF+fXXXzVq1CitW7dOGzZskCRdeumlatasmVfZQ4cOafny5XI6nWrcuLE6deqkW265RXfeeecZbjVqs7179yo9PV2fffaZlixZohUrVqhly5aV3awaITMzU2+++abeffdd/fDDD6WW+9///qenn35a0dHRMgxD69ev18iRI3XRRRfVqHYAAIDKZ5imaVZ2IwAAACrSoUOHVL9+fUnSkSNHFBgY6LNcly5d9OWXX+qjjz7S9ddffyabiFps165devHFF/X+++/r999/l81m04UXXqiRI0cqKSmpsptX7U2fPl3ffPONWrdurQ8++EB5eXnavHmzz7J//vmnevbsqRUrVqhNmzaSpK1bt6p79+6aO3euunTpUu3bAQAAqg5mxAIAgBonODjY/e/SgrCSFBAQ4FUe8Kdly5apb9++OvfcczVw4EDFx8fr/PPPpw9WoEcffdT97y+++EJ5eXmllk1OTlbv3r3dwU9JatGihQYMGKC7775bf/75pwzDqNbtAAAAVQdrxAIAAABnwK5du3T77bfrP//5j1avXq2hQ4fqsssuIwhbSTZv3qylS5fqyiuv9Mrr3r271q1bpy+++KLWtAMAAPgfgVgAAACUG6tcld3rr7+uUaNG6e9//3tlNwWS0tLSJElRUVFeeZGRkR5ljhw54rOvO51OFRUVSZIcDoeOHDni13YAAIDqjUAsAACAD6Zp6t///rcGDBigcePGacSIEbr33nv1xx9/uMvk5+dr4sSJOu+882QYhq688ko988wzkqTnn39eV111lQzDUPv27TVx4kSPryZv375dd999t/r166fHHntM48eP16uvvqqCggJJ0ssvv6zevXvLMAydd955mjBhgvv4sWPHyjAMnXXWWRo8eLCOHj16wnPJz8/X2LFj1a5dOxmGoT59+uiJJ55w/9+3b18ZhqFzzz1XY8eOVV5enmbMmKELLrjA3f558+a561u4cKEaNGigkJAQ99evY2NjdfHFF2v06NF6/PHHFRYWJrvdruHDh2vMmDG67LLLFBsb63VuLVq00NixY7V792598MEHuuuuu9znNnLkSP3vf/876e9q0qRJuuyyy9y/gyeeeEL//Oc/1bdvX91+++3aunVrGX7jx3333Xd67LHH1LBhQw0dOtRdn+v6JSUl6c0333SXz8jI0CuvvKIpU6ZoxIgRuvbaazV79myven/88Uf94x//0OLFi/WPf/xDkyZN0ogRIzRgwAB9+eWXHmWnTp2qK664wqP/FBYW6o033lBiYqLHtdu+fbvmz5+vCy64QFFRUerbt6+WLl2qhx9+WEOGDNFf//pX3XHHHR7rk2ZlZWns2LGKiYmRYRi6/vrr9dprr8nhcGjKlCm66KKL3Ndz8uTJXr+36OhojRkzRllZWfrkk0903333ef3e5syZo6CgIN1zzz2aOHGi+9i//OUvmjhxou677z4FBwdrzpw57nbl5ORo6NChuuOOOzRmzBj17dtX06ZN80vAf/369ZLkXk+6OFfa+vXr5XQ6dfPNNys2NlaGYahu3bruv4dff/1V4eHhMgxD7dq107PPPuu3dgAAgBrABAAAqIEkmSd7q9OtWzdTkrly5UqvvIEDB5qDBg0yi4qK3GmbNm0y4+LizGXLlnmUffXVV01J5meffeaR/s4775iSzNdee80jfc2aNWaTJk3MmTNnutO2b99uNmvWzHzwwQfdaevWrTMlma+++qrH8cnJyeYdd9xh7tmz54TnV5KrnStWrPBI37Bhg8/n2bx5sxkQEGA+9thjXnXddddd5scff+x+fNFFF5mHDh1yP46PjzebN2/ufnzo0CHzoosu8jq3xx9/3KPenTt3moZhmP379z+lc1u6dKkpyfz3v//tTnM4HOaVV15pxsbGerStrEaNGuXx+PHHHzclmUeOHHGnFRUVmdHR0R7t3bVrl9mkSRNzxIgRHsfffffd5vjx481evXqZBQUF7vR9+/aZF154ofn666/7PKeS/eebb77xee3y8/PNVq1amU2bNjVnz57tkTd06FCzUaNG5i+//OKRPnr0aFOSuX79eo/0p556ymefdv3eRo8ebZbUrFkzj+vw+uuvm08++aT78fLly73O58knn3Sf9/79+8327dubkyZNcucXFhaal1xyide5llW3bt3Mli1b+sy7//77TUnm6tWrvfIyMzNNSeb111/vTsvNzTU7dOhgtmrVyjx69Kg7PSEhwXz++efPWDsAAED1xYxYAACAEmbPnq0FCxZo+vTpstvt7vTY2FgNHjxY/fr10759+9zprg3BXJt/SdK+ffv00ksveaWbpqlbbrlFrVu31iOPPOJOdzgcOnjwoEc7XPW6fjqdTo0YMUJnn3225s6dq0aNGp3SebnqKbnpj+scS25s1rJlS/3973/Xm2++qcLCQo9zOHr0qK677jp3Wrdu3VSvXj33Y5vN5nHe9erVU7du3bzaUvLaTJ48WaZpeqSfyrnZbMff3tpsNl166aXavHmzMjIyTqk+Sapbt67HY1ebil+nw4cPS5IOHTrkTouMjNTdd9+tadOmefxOv/vuO02cOFHPPfecR90NGzbUpEmTdO+993rMAPZ1jQoLC92zrkteo+DgYLVo0UItWrTQvffe65H3xBNPKDAwUDfffLMcDscJn2Pjxo1asGCBz+co2SdL5pUs37t3b/e/Xb+b4mWK5z/66KPavXu3Ro4c6U6rU6eOHnjgAU2bNk179+71es7T4erTvjbBcrXVNUNdkkJDQ/Xee+8pOztb48aNk2TNcr7wwgv18MMPn7F2AACA6otALAAAQAnTpk3Teeedp/DwcK+8zp07a9++fXr99ddLPd40TY0dO1bJycleeatWrdIvv/yi66+/3iO9RYsWOnDggGbNmuWzzoMHD+pvf/ubLrnkktMK+pyqBx98UNnZ2Xr33XfdacuWLfMIoEnSBRdccNK6Tlbm+eef12233Va+hvrwxx9/aOHChXrooYd03nnnVVi9xYWEhGjr1q1KTU31SI+Li5PD4dCePXs82hMeHq727dt71dO5c2cdPXpUM2bMOOHz/fOf/9TgwYNPWKZ4QNwlKChIt912m/78808tX7681GMLCwv11FNPnfQ5yqJp06buNU5LExkZqaZNmyovL0/z58/XZZdd5hXMvfzyy1VYWKivvvrqtNtUnCsY7nQ6vfJcweqSwfhzzjlHs2bN0lNPPaX33ntPs2bN0tixY894OwAAQPV0alMNAAAAarh9+/Zpw4YN6tmzp8/8iIgISdK3335bah0zZ85U//79fW7c8+OPP0qSoqOjvfJ8zYiTrF3VBw0apLS0NBmGob59+570PCpKt27d1L59e7344ou6/fbbJUkpKSl64YUXPMoNGjTopHWdqMxXX30lp9Opv/zlL6fV3o8++kg7d+7U7t279dlnn+npp592t9tfDMNwr3G7ZcsWNWrUSD/99JNXuaKiIjVu3NhnHQ0bNpTdbj9hv0pJSVHHjh0VFxdXrna2bt1akrWuaa9evXyWmThxooYPH64vvvjihHV98cUXevLJJz3ScnJyPB6XDNb7EhUVpaioKH377bc6evS
|
|
|
|
|
|
"text/plain": [
|
|
|
|
|
|
"<Figure size 1400x600 with 1 Axes>"
|
|
|
|
|
|
]
|
|
|
|
|
|
},
|
|
|
|
|
|
"metadata": {},
|
|
|
|
|
|
"output_type": "display_data"
|
|
|
|
|
|
}
|
|
|
|
|
|
],
|
|
|
|
|
|
"source": [
|
|
|
|
|
|
"plt.figure(figsize=(14, 6))\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"# ============= Левый график: случайные данные =============\n",
|
|
|
|
|
|
"plt.title(\"Поиск пути в лабиринте 10x10\")\n",
|
|
|
|
|
|
"plt.ylabel('Время, мс')\n",
|
|
|
|
|
|
"plt.xlabel('Повторения')\n",
|
|
|
|
|
|
"plt.xticks(iterations)\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"# BFS\n",
|
|
|
|
|
|
"plt.scatter(iterations, maze_mini_bfs, label='BFS', color=bfs_col)\n",
|
|
|
|
|
|
"plt.axhline(y=maze_mini_bfs_average, color=bfs_col, linewidth=1, \n",
|
|
|
|
|
|
" linestyle='--', alpha=0.7)\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"# DFS\n",
|
|
|
|
|
|
"plt.scatter(iterations, maze_mini_dfs, label='DFS', color=dfs_col)\n",
|
|
|
|
|
|
"plt.axhline(y=maze_mini_dfs_average, color=dfs_col, linewidth=1, \n",
|
|
|
|
|
|
" linestyle='--', alpha=0.7)\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"# A*\n",
|
|
|
|
|
|
"plt.scatter(iterations, maze_mini_astar, label='A*', color=AStar_col)\n",
|
|
|
|
|
|
"plt.axhline(y=maze_mini_astar_average, color=AStar_col, linewidth=1, \n",
|
|
|
|
|
|
" linestyle='--', alpha=0.7)\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"# Связный список\n",
|
|
|
|
|
|
"plt.scatter(iterations, maze_mini_dijkstra, label='Дейкстра', color=Dijkstra_col)\n",
|
|
|
|
|
|
"plt.axhline(y=maze_mini_dijkstra_average, color=Dijkstra_col, linewidth=1, \n",
|
|
|
|
|
|
" linestyle='--', alpha=0.7)\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"plt.legend(loc='best')\n",
|
|
|
|
|
|
"plt.grid(True, alpha=0.3)\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"plt.tight_layout()\n",
|
|
|
|
|
|
"plt.savefig('img\\\\10x10.pdf',\n",
|
|
|
|
|
|
" format='pdf',\n",
|
|
|
|
|
|
" dpi=300,\n",
|
|
|
|
|
|
" bbox_inches='tight', \n",
|
|
|
|
|
|
" pad_inches=0.1)\n",
|
|
|
|
|
|
"plt.show()"
|
|
|
|
|
|
]
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"cell_type": "code",
|
|
|
|
|
|
"execution_count": 144,
|
|
|
|
|
|
"id": "8ef02f9e",
|
|
|
|
|
|
"metadata": {},
|
|
|
|
|
|
"outputs": [
|
|
|
|
|
|
{
|
|
|
|
|
|
"data": {
|
|
|
|
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAABWIAAAJBCAYAAADMVcz9AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjcsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvTLEjVAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAphRJREFUeJzs3XlclOX+//H3LIii4AoKgqL5y9Isy3ZF6WRWVkcPBy3b1GxXj6aVZlqZZpZmUHpSTx2X1I5GfLPV1NKgPJVZnTYrdxFREE1wYZu5f3/czcQ4AyIysszr2aMHzHVd9z3XffPhYvzMNddlMQzDEAAAAAAAAADAb6zV3QEAAAAAAAAAqOtIxAIAAAAAAACAn5GIBQAAAAAAAAA/IxELAAAAAAAAAH5GIhYAAAAAAAAA/IxELAAAAAAAAAD4GYlYAAAAAAAAAPAzErEAAAAAAAAA4GckYgEAAAAAAADAz+zV3QEAAIDK+v777/XYY4/pt99+09atWyVJl1xyiaKiorzaHjt2TB9//LGcTqdatGihbt266ZZbbtGQIUPOcK8RyHJzc5Wenq41a9Zo1apV+uSTT9S2bdvq7lattnz5cg0ZMkSNGjVSaGioLBaLjh49qoYNG2rlypU677zzPNr/9NNPev755xUdHS2LxaItW7Zo/PjxuvDCC+tEPwAAQM1FIhYAANRa559/vt5//30dO3ZMDRs2lCR9/vnnCgoK8tm+R48e+vzzz7Vo0SL17dv3THYVAWz//v2aM2eO3n77bf3444+yWq3q2rWrnnvuOZKwVeD48eOKjIzUoUOHlJWVpbZt22ro0KF6+OGH1bx5c4+2v/zyi6699lp98sknOvvssyVJu3fvVnx8vBYvXqwePXrU+n4AAICai0QsAACo9UJCQtzfl5WElSS73e7VHvCntWvXasCAATr33HM1ePBgxcXF6bzzziMGq9gTTzxRodnto0aN0nXXXedOfkpSmzZtdOedd2rYsGH65ZdfZLFYan0/AABAzcQasQAAAIAf7N+/X7fffrv+/e9/a8OGDRo7dqwuvfRSkrDVZOfOnVq9erWuvPJKr7r4+Hj99ttv+uyzzwKmHwAA4MwjEQsAAIAKMwyjurtQayxYsECPPfaY/va3v1V3VyApLS1NkhQZGelVFxER4dGmqKjIZ6w7nU6VlJRIkhwOh4qKivzaDwAAULeQiAUAAJCZYHzttdd055136oknntC4ceN077336ueff3a3OXr0qCZPnqxOnTrJYrHoyiuv1IwZMyRJL730kv7yl7/IYrGoc+fOmjx5svLz893H7tmzR8OGDdPAgQM1ZswYPfnkk5o/f74KCgokSa+88oquu+46WSwWderUSU899ZT7+EmTJslisahZs2Z64IEHVFxcXO61HD16VJMmTdI555wji8WiG264QVOnTnX/P2DAAFksFp177rmaNGmS8vPzlZSUpPPPP9/d/yVLlrjPt2LFCjVp0kSNGjXSQw89JEmKjY3VRRddpAkTJujxxx9XWFiYbDabHn30UU2cOFGXXnqpYmNjva6tTZs2mjRpkrKzs7Vy5Urddddd7msbP368fvrpp5P+rKZMmaJLL73U/TOYOnWqnn76aQ0YMEC33367du/eXYGf+J82btyoMWPGqGnTpho7dqz7fK77l5iYqNdff93dfvv27Zo7d66mTZumcePG6dprr9W8efO8zvvNN9/onnvu0Xvvvad77rlHU6ZM0bhx43TnnXfq888/92j77LPP6oorrvCIn8LCQi1atEgJCQke927Pnj1aunSpzj//fEVGRmrAgAFavXq1Ro4cqdGjR+umm27SHXfcoZ07d7rPv3fvXk2aNEkxMTGyWCzq27ev/vWvf8nhcGjatGm68MIL3ffzmWee8fq5RUdHa+LEidq7d68+/PBD3XfffV4/t4ULF6p+/fq6++67NXnyZPexl19+uSZPnqz77rtPISEhWrhwobtfhw8f1tixY3XHHXdo4sSJGjBggGbOnHnKCf/c3FxNnjxZTz31lB599FH1799f3333nUebLVu2SJJ7PenSXGVbtmyR0+nUzTffrNjYWFksFgUHB7t/H77//ns1btxYFotF55xzjl544QW/9QMAANRBBgAAQB0gyTjZS5tevXoZkox169Z51Q0ePNgYOnSoUVJS4i7bsWOH0b59e2Pt2rUebefPn29IMtasWeNRvnz5ckOS8a9//cujfPPmzUbLli2N5ORkd9mePXuMqKgoY/jw4e6y3377zZBkzJ8/3+P4UaNGGXfccYdx4MCBcq/vRK5+fvLJJx7lW7du9fk8O3fuNOx2uzFmzBivc911113GBx984H584YUXGseOHXM/jouLM1q3bu1+fOzYMePCCy/0urbHH3/c47z79u0zLBaLcdttt53Sta1evdqQZLz22mvuMofDYVx55ZVGbGysR98q6rHHHvN4/PjjjxuSjKKiIndZSUmJER0d7dHf/fv3Gy1btjTGjRvncfywYcOMJ5980ujTp49RUFDgLj948KDRtWtXY8GCBT6v6cT4+fLLL33eu6NHjxrt2rUzWrVqZcybN8+jbuzYsUbz5s2N//3vfx7lEyZMMCQZW7Zs8Sh/7rnnfMa06+c2YcIE40RRUVEe92HBggXG9OnT3Y8//vhjr+uZPn26+7oPHTpkdO7c2ZgyZYq7vrCw0Lj44ou9rrU8CxcuNK677jojPz/fXfb+++8bjRo1Mr755ht32f33329IMjZs2OB1jszMTEOS0bdvX3dZXl6e0aVLF6Ndu3ZGcXGxu7xfv37GSy+9dMb6AQAA6g5mxAIAgIA3b948vfHGG3rxxRdls9nc5bGxsXrggQc0cOBAHTx40F3u2hDMtfmXJB08eFD//Oc/vcoNw9Att9yiDh066B//+Ie73OFw6MiRIx79cJ3X9dXpdGrcuHE666yztHjxYq+d10/GdZ4TN/1xXeOJG5u1bdtWf/vb3/T666+rsLDQ4xqKi4t1/fXXu8t69eqlBg0auB9brVaP627QoIF69erl1ZcT780zzzwjwzA8yk/l2qzWP1/OWq1WXXLJJdq5c6e2b99+SueTpODgYI/Hrj6Vvk/Hjx+XJB07dsxdFhERoWHDhmnmzJkeP9ONGzdq8uTJmjVrlse5mzZtqilTpujee+/1mAHs6x4VFha6Z12feI9CQkLUpk0btWnTRvfee69H3dSpUxUUFKSbb75ZDoej3OfYtm2b3njjDZ/PcWJMnlh3YvvrrrvO/b3rZ1O6Ten6hx56SNnZ2Ro/fry7rF69enrwwQc1c+ZM5ebmej2nL3369NHy5cvVqFEjd1nfvn3VpEkT3XPPPe4yV0z72gTL1VfXDHVJCg0N1VtvvaWcnBw98cQTksxZzl27dtXIkSPPWD8AAEDdQSIWAAAEvJkzZ6pTp05q3LixV1337t118OBBLViwoMzjDcPQpEmTNGrUKK+69evX63//+5/69u3rUd6mTRv9/vvvmj17ts9zHjlyRP3799fFF1/sM+njL8OHD1dOTo7efPNNd9natWs9EmiSdP7555/0XCdr89JLL+nWW2+tXEd9+Pnnn7VixQqNGDFCnTp1qrLzltaoUSPt3r1bqampHuXt27eXw+HQgQMHPPrTuHFjde7c2es83bt3V3FxsZKSksp9vqeffloPPPBAuW1KJ8Rd6tevr1tvvVW//PKLPv744zKPLSws1HPPPXfS56iIVq1audc4LUtERIRatWql/Px8LV26VJdeeqlXMveyyy5TYWGh/vvf/1boeSMjIxUWFuZVfsEFF2jTpk364YcfJP2ZaHc6nV5tXcnqE5Px/+///T/Nnj1bzz33nN566y3Nnj1bkyZNOuP9AAAAdcOpTT0AAACoYw4ePKitW7eqd+/ePuvDw8MlSV999VWZ50hOTtZtt93mc+Oeb775RpIUHR3tVedrRpxk7qo+dOhQpaWlyWKxaMCAASe9jqrSq1cvde7cWXPmzNHtt98uSUpJSdHLL7/s0W7o0KEnPVd5bf773//K6XTq8ssvP63+vv/++9q3b5+ys7O1Zs0aPf/88+5
|
|
|
|
|
|
"text/plain": [
|
|
|
|
|
|
"<Figure size 1400x600 with 1 Axes>"
|
|
|
|
|
|
]
|
|
|
|
|
|
},
|
|
|
|
|
|
"metadata": {},
|
|
|
|
|
|
"output_type": "display_data"
|
|
|
|
|
|
}
|
|
|
|
|
|
],
|
|
|
|
|
|
"source": [
|
|
|
|
|
|
"plt.figure(figsize=(14, 6))\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"# ============= Левый график: случайные данные =============\n",
|
|
|
|
|
|
"plt.title(\"Поиск пути в лабиринте 50x50\")\n",
|
|
|
|
|
|
"plt.ylabel('Время, мс')\n",
|
|
|
|
|
|
"plt.xlabel('Повторения')\n",
|
|
|
|
|
|
"plt.xticks(iterations)\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"# BFS\n",
|
|
|
|
|
|
"plt.scatter(iterations, maze_midl_bfs, label='BFS', color=bfs_col)\n",
|
|
|
|
|
|
"plt.axhline(y=maze_midl_bfs_average, color=bfs_col, linewidth=1, \n",
|
|
|
|
|
|
" linestyle='--', alpha=0.7)\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"# DFS\n",
|
|
|
|
|
|
"plt.scatter(iterations, maze_midl_dfs, label='DFS', color=dfs_col)\n",
|
|
|
|
|
|
"plt.axhline(y=maze_midl_dfs_average, color=dfs_col, linewidth=1, \n",
|
|
|
|
|
|
" linestyle='--', alpha=0.7)\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"# A*\n",
|
|
|
|
|
|
"plt.scatter(iterations, maze_midl_astar, label='A*', color=AStar_col)\n",
|
|
|
|
|
|
"plt.axhline(y=maze_midl_astar_average, color=AStar_col, linewidth=1, \n",
|
|
|
|
|
|
" linestyle='--', alpha=0.7)\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"# Связный список\n",
|
|
|
|
|
|
"plt.scatter(iterations, maze_midl_dijkstra, label='Дейкстра', color=Dijkstra_col)\n",
|
|
|
|
|
|
"plt.axhline(y=maze_midl_dijkstra_average, color=Dijkstra_col, linewidth=1, \n",
|
|
|
|
|
|
" linestyle='--', alpha=0.7)\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"plt.legend(loc='best')\n",
|
|
|
|
|
|
"plt.grid(True, alpha=0.3)\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"plt.tight_layout()\n",
|
|
|
|
|
|
"plt.savefig('img/50x50.pdf',\n",
|
|
|
|
|
|
" format='pdf',\n",
|
|
|
|
|
|
" dpi=300,\n",
|
|
|
|
|
|
" bbox_inches='tight', \n",
|
|
|
|
|
|
" pad_inches=0.1)\n",
|
|
|
|
|
|
"plt.show()"
|
|
|
|
|
|
]
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"cell_type": "code",
|
|
|
|
|
|
"execution_count": 145,
|
|
|
|
|
|
"id": "1ab3cd43",
|
|
|
|
|
|
"metadata": {},
|
|
|
|
|
|
"outputs": [
|
|
|
|
|
|
{
|
|
|
|
|
|
"data": {
|
|
|
|
|
|
"image/png": "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nNucfY7WNzw83HWTL0m666671KlTJ1ksFlksFj3++OOSzBnRJ5xwgiwWixITEzVu3Lgqjbl0HEfr69zu7AMAAOoYAwAAoBaRZBzrLUqvXr0MScaaNWu82oYOHWoMGzbMKCkpcW3btm2b0bZtW+OTTz7x6Dtv3jxDkrFq1SqP7W+99ZYhyXjppZc8tm/atMlo0aKFMXv2bNe2nTt3Gi1btjTuvPNO17Y//vjDkGTMmzfP4/mjRo0ybrjhBmPv3r1HPb7SnHGuXr3aY/uWLVt8vs727duNoKAgY8yYMV77Gj58uPHhhx+6Hnft2tU4dOiQ63FSUpIRFxfnenzo0CGja9euXsf20EMPeex39+7dhsViMa677roKHdvKlSsNScYrr7zi2ma3243zzz/fSExM9IitvB544AGPxw899JAhySgqKnJtKykpMeLj4z3i3bNnj9GiRQtj3LhxHs8fMWKEMXHiRKNfv35GQUGBa/u+ffuM008/3Xj11Vd9HlPp/Pnqq698nruDBw8abdq0MU444QRj7ty5Hm1jx441mjVrZvzwww8e2x988EFDkrF582aP7TNmzPCZ087v24MPPmiU1rJlS4/z8OqrrxqPPfaY6/Gnn37qdTyPPfaY67j3799vdOnSxZgyZYqrvbCw0DjzzDO9jrW8evXqZbRu3dpn2+23325IMtavX+/VlpGRYUgyLrnkEleckow33njD576Cg4ONzp07ux4XFRUZF110kdGwYUMjNzfXtf2ee+4x7r//fqO4uLjMmIcOHVrm2FWRON58801DkjFt2jSffU888UQjPDy8zDgAAEDtxYxYAABQb8ydO1eLFy/W008/LZvN5tqemJiokSNHasiQIdq3b59re3BwsCTzcl+nffv26fnnn/fabhiGrr76arVv31733HOPa7vdbteBAwc84nDu1/mvw+HQuHHj1K5dO7322mtq1qxZhY7LuR/nzYecnMfobHdq3bq1rrjiCr3++usel1Eb/1xiPWDAANe2Xr16qUGDBq7HVqvV47gbNGigXr16ecVS+tw8+uijMgzDY3tFjs1qPfK21Gq16qyzztL27du1devWCu1PkkJDQz0eO2NyP0+HDx+WZK7d6RQTE6MRI0Zo5syZHt/Tb775RpMnT9ZTTz3lse8mTZpoypQpuvXWWz1mAPs6R4WFha5Z16XPUXh4uFq1aqVWrVrp1ltv9WibOnWqgoODddVVV8lutx/1Nf78808tXrzY52uUzsnSbaX79+/f3/W183vj3se9/d5771VWVpbGjx/v2hYSEqI77rhDM2fOVE5OjtdrHg9nTpf+eXCP1TlD/Wh9nf2dfSXzXCxevFhRUVG6/fbbJZlLBdjtds2YMaPC+V2emEvHUdGYAQBA3UEhFgAA1BszZ85U586dFRUV5dXWvXt37du3T6+++mqZzzcMQxMmTNCoUaO82tauXasffvhBl1xyicf2Vq1a6e+//9azzz7rc58HDhzQ5ZdfrjPPPFN33313BY+o8u68805lZ2fr7bffdm375JNPPApoknTqqacec1/H6jNnzhxde+21lQvUh19//VVLlizRXXfdpc6dO1fZft01atRIO3bsUGpqqsf2tm3bym63a+/evR7xREVFqUuXLl776d69u4qLizVr1qyjvt4jjzyikSNHHrW
|
|
|
|
|
|
"text/plain": [
|
|
|
|
|
|
"<Figure size 1400x600 with 1 Axes>"
|
|
|
|
|
|
]
|
|
|
|
|
|
},
|
|
|
|
|
|
"metadata": {},
|
|
|
|
|
|
"output_type": "display_data"
|
|
|
|
|
|
}
|
|
|
|
|
|
],
|
|
|
|
|
|
"source": [
|
|
|
|
|
|
"plt.figure(figsize=(14, 6))\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"# ============= Левый график: случайные данные =============\n",
|
|
|
|
|
|
"plt.title(\"Поиск пути в лабиринте 100x100\")\n",
|
|
|
|
|
|
"plt.ylabel('Время, мс')\n",
|
|
|
|
|
|
"plt.xlabel('Повторения')\n",
|
|
|
|
|
|
"plt.xticks(iterations)\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"# BFS\n",
|
|
|
|
|
|
"plt.scatter(iterations, maze_max_bfs, label='BFS', color=bfs_col)\n",
|
|
|
|
|
|
"plt.axhline(y=maze_max_bfs_average, color=bfs_col, linewidth=1, \n",
|
|
|
|
|
|
" linestyle='--', alpha=0.7)\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"# DFS\n",
|
|
|
|
|
|
"plt.scatter(iterations, maze_max_dfs, label='DFS', color=dfs_col)\n",
|
|
|
|
|
|
"plt.axhline(y=maze_max_dfs_average, color=dfs_col, linewidth=1, \n",
|
|
|
|
|
|
" linestyle='--', alpha=0.7)\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"# A*\n",
|
|
|
|
|
|
"plt.scatter(iterations, maze_max_astar, label='A*', color=AStar_col)\n",
|
|
|
|
|
|
"plt.axhline(y=maze_max_astar_average, color=AStar_col, linewidth=1, \n",
|
|
|
|
|
|
" linestyle='--', alpha=0.7)\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"# Связный список\n",
|
|
|
|
|
|
"plt.scatter(iterations, maze_max_dijkstra, label='Дейкстра', color=Dijkstra_col)\n",
|
|
|
|
|
|
"plt.axhline(y=maze_max_dijkstra_average, color=Dijkstra_col, linewidth=1, \n",
|
|
|
|
|
|
" linestyle='--', alpha=0.7)\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"plt.legend(loc='best')\n",
|
|
|
|
|
|
"plt.grid(True, alpha=0.3)\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"plt.tight_layout()\n",
|
|
|
|
|
|
"plt.savefig('img/100x100.pdf',\n",
|
|
|
|
|
|
" format='pdf',\n",
|
|
|
|
|
|
" dpi=300,\n",
|
|
|
|
|
|
" bbox_inches='tight', \n",
|
|
|
|
|
|
" pad_inches=0.1)\n",
|
|
|
|
|
|
"plt.show()"
|
|
|
|
|
|
]
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"cell_type": "code",
|
|
|
|
|
|
"execution_count": 146,
|
|
|
|
|
|
"id": "5802d209",
|
|
|
|
|
|
"metadata": {},
|
|
|
|
|
|
"outputs": [
|
|
|
|
|
|
{
|
|
|
|
|
|
"data": {
|
|
|
|
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAABWIAAAJBCAYAAADMVcz9AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjcsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvTLEjVAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAlWlJREFUeJzs3XlcVPX+x/H3zICACriBoqBklpa2mDdvpbiUmVk3i8z23MoyS03LJTX1ZtliJZVl/lrUbNG83Pa0NE27rVZWtmpuiAuICriAMHN+f5xmnMMMisiwzLyePXrIfL9nDp9z5sN3Zj7zne+xGYZhCAAAAAAAAAAQMPaqDgAAAAAAAAAAgh2FWAAAAAAAAAAIMAqxAAAAAAAAABBgFGIBAAAAAAAAIMAoxAIAAAAAAABAgFGIBQAAAAAAAIAAoxALAAAAAAAAAAFGIRYAAAAAAAAAAoxCLAAAAAAAAAAEWFhVBwAAAFDSTz/9pPHjx+vPP//Uhg0bJEnnnnuumjZt6rPtwYMHtXz5crlcLjVq1EgdOnTQddddpwEDBlRy1ACOV1FRkb777jt9+umn+vDDD3XZZZdp/PjxVR0WAABAQNgMwzCqOggAAAB/Dh48qDp16kiSDh8+rPDwcL/bde7cWf/73//0wQcfqHfv3pUZIoDj5HQ6tWjRIs2bN0+rV6/WwYMH1bRpU/Xr10/Tp09XZGRkVYcIAAAQEMyIBQAA1Vbt2rU9P5dWhJWksLAwn+0BVD+5ubm6/PLL9eeff+rmm2/W8OHD1b59eyUkJFR1aAAAAAFHIRYAAABApbjtttvUpk0bffTRR6pbt25VhwMAAFCpKMQCAABAhmHIZrNVdRjVHuep/Hbs2KHNmzfryy+/lMPhqOpwAAAAKp29qgMAAAAIJMMw9NJLL+mWW27RAw88oLFjx2rIkCH69ddfPdscOHBAU6dO1emnny6bzaYLLrhAjz/+uCTp6aef1oUXXiibzaa2bdtq6tSpys/P99x327ZtGjx4sPr166dRo0Zp8uTJmjNnjgoKCiRJzz//vHr16iWbzabTTz9dU6ZM8dx/0qRJstlsatCggYYOHaqioqKjHsuBAwc0adIktWnTRjabTZdddpmmTZvm+f+aa66RzWbTaaedpkmTJik/P18zZ87UmWee6Yl/wYIFnv0tWrRI9erVU926dXXPPfdIkpKTk3XOOefo/vvv14QJExQTEyOHw6ExY8Zo4sSJ6tixo5KTk32OrXnz5po0aZKysrL0zjvvaNCgQZ5jGzdunH755ZdjPlYPPvigOnbs6HkMpk2bpn//+9+65pprdNNNN2nr1q1leMSl//3vfxo+fLhq1aqlsLAwjR8/3nOOpk6dqlNPPVU2m039+vXTq6++qq1bt2rUqFGqXbu2bDabrr/+ekt+XH/99bLZbDrjjDP09ttve9qdTqfS0tLUq1cvDR8+XOPGjdOTTz7pue/cuXMVGRmpW2+9VVOnTvWcq/POO09Tp07V7bffrtq1a2vu3LmefRYVFemJJ57Q4MGDNXnyZN1333266667lJGR4dkmPz9fEydOVJs2bRQWFqYHH3zQ73n47bff1KhRI9WvX1/33nuv1q1bV6bzV1RUpAceeED/+Mc/1KNHD8+5u/baa2Wz2dSmTRtPfklScXGx5s2bpxkzZmjKlCm69tprdfvttys7O9uy388//1zDhg1TRkaGhg8frkmTJmnSpEm69dZb9dRTT6m4uNiz7UcffaTbb79dNptNkZGRGj16tL799lutXbtW999/v+exGjp0qD788EPt3r1b5513npKTk1W3bl39/vvvGjNmjEaNGqWBAweqe/fu+u9//2uJ53jz98svv9SoUaNUq1Yt2Ww2DRkyRB999JG2b9+uSZMmKSkpyZM/r732miTJZrOpa9eumjRpku677z6FhYUpOjpaEydO1Lhx43TaaaepW7dulrjeeOMN9enTR+PHj9fQoUN1yy23aPv27WV67AAAQDVnAAAAVGOSjGO9ZOnatashyVixYoVPX//+/Y2BAwcaxcXFnrZNmzYZLVu2NJYtW2bZds6cOYYk45NPPrG0L1y40JBk/N///Z+l/bfffjMaN25spKWledq2bdtmNG3a1Bg2bJin7c8//zQkGXPmzLHcf8SIEcbNN99s7N69+6jHV5I7zk8//dTSvmHDBr+/Z/PmzUZYWJgxatQon30NGjTI+PDDDz2327dvbxw8eNBzOyUlxWjWrJnn9sGDB4327dv7HNuECRMs+925c6dhs9mMG2+88biO7eOPPzYkGS+99JKnzel0GhdccIGRnJxsie1YLrjgAqN58+Y+7RMnTjQkGYcPH7a0P/TQQ4Yk46effrK0O51O49RTTzX2799vabvqqquMlJQUIz8/39N+yy23GI0aNTIOHTpkvPLKK8Yjjzzi6Vu+fLlPHj3yyCPGK6+8YhiGYRQWFhoXX3yx8cADD1h+/5o1a4wWLVr4xPXCCy8YV1xxhdGkSROfYzEMw3jqqaeMLl26GDfccENpp+ioPvnkE2P58uWe2+vXr/ebX+PGjTMaNmxo7Ny509M2cOBAo1WrVpZz89BDDxmLFi0yTjrpJOPHH3+07GPixIlGr169fI6jadOmRqdOnSxtLpfLaNu2rSUvvWORZPTv39/Iy8vztH/99ddGVFSUMW3aNMv25cnfCy64wGjatKlP+/33329IMoqKijxtp59+uuF0Oj23k5KSLMeTmZlpXHTRRZ7bEyZMMM4++2xL7E8++aRx6qmnGgcOHPD5nQAAoGZhRiwAAAhaL7zwgt544w099dRTlq9CJycna+jQoerXr5/27NnjaXdfEMx98S9J2rNnj5577jmfdsMwdN1116lVq1YaPny4p93pdGr//v2WONz7df/rcrk0duxYnXzyyZo/f74aNmx4XMfl3k/Jr8i7j7Hkhc1atGihq666Sq+++qoKCwstx1BUVKRLL73U09a1a1dFRUV5btvtdstxR0VFqWvXrj6xlDw3Dz30kAzDsLQfz7HZ7Udeptrtdp177rnavHmzNm7ceFz78reMQGnn6fbbb1dkZKRefPFFS7t7JmSdOnU8bWlpaXr77bf10ksvWdY6zc3NVVhYmGd2Z69evSzHIVnPlXf/5MmT9csvv2jy5MmW39+hQwddfvnluvrqqy2zpmvVqqX+/ftr3759eueddyz3OXDggGfW6NEudHc0YWFhlr8bd9wl93fw4EEVFxfr8OHDnrbx48drw4YNlhnYWVlZuu+++3T11VfrzDPPtOxj8uTJWrt2rc+xh4eH++TQ008/rX379vnNrdatW0uSxo4dq+joaE97x44dNWTIEE2aNEmff/65Zf/exyYdO3/Dw8P9nlN/++rZs6dPLnv3N23aVGeccYYk6bPPPtNDDz2kqVOnWmK/4447tGXLFr388ss+vxMAANQsFGIBAEDQmjFjhk4//XTFxsb69HXq1El79uzRK6+8Uur9DcPQpEmTNGLECJ++lStX6scff1Tv3r0t7c2bN9e+ffv07LPP+t3n/v37deWVV+of//iH7r777uM8ovIbNmyYsrOz9dZbb3nali1bZikESvIpkPlzrG2efvpp3XDDDeUL1I9ff/1VixYt0l133aXTTz+9wvZbUsOGDXXddddp3rx5OnDggKf9jTfe0M0332zZNi0tTa1atdIpp5xiaX/77be1fft21a1bV02aNFF8fPxRf2d8fLyaNGmiwsJCPfPMM+rYsaOlcOfWqVMnrV+/Xu+++66lvUGDBurbt69eeOEFS/t//vMfXXXVVWU67tIUFxeXqZCelpamvXv3KikpydPWsmVLSdLOnTs9bQcOHNCWLVvUqVMnn32EhYWpY8eOevrppy0fFpT05ZdfymazqVWrVkeNyfvDBLfBgwfLMAzPByulqcj8PZ6/p+eff16SdMEFF1j6o6KidOaZZ2rlypUVEhMAAKg6XKwLAAAEpT179mjDhg3q0aOH3/64uDhJ0jfffFPqPtLS0nTjjTdaZvq5ff/995KkxMREn77SLua0efNmDRw4UKtWrZLNZtM111xzzOO
|
|
|
|
|
|
"text/plain": [
|
|
|
|
|
|
"<Figure size 1400x600 with 1 Axes>"
|
|
|
|
|
|
]
|
|
|
|
|
|
},
|
|
|
|
|
|
"metadata": {},
|
|
|
|
|
|
"output_type": "display_data"
|
|
|
|
|
|
}
|
|
|
|
|
|
],
|
|
|
|
|
|
"source": [
|
|
|
|
|
|
"plt.figure(figsize=(14, 6))\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"# ============= Левый график: случайные данные =============\n",
|
|
|
|
|
|
"plt.title(\"Поиск пути в пустом лабиринте\")\n",
|
|
|
|
|
|
"plt.ylabel('Время, мс')\n",
|
|
|
|
|
|
"plt.xlabel('Повторения')\n",
|
|
|
|
|
|
"plt.xticks(iterations)\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"# BFS\n",
|
|
|
|
|
|
"plt.scatter(iterations, maze_empty_bfs, label='BFS', color=bfs_col)\n",
|
|
|
|
|
|
"plt.axhline(y=maze_empty_bfs_average, color=bfs_col, linewidth=1, \n",
|
|
|
|
|
|
" linestyle='--', alpha=0.7)\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"# DFS\n",
|
|
|
|
|
|
"plt.scatter(iterations, maze_empty_dfs, label='DFS', color=dfs_col)\n",
|
|
|
|
|
|
"plt.axhline(y=maze_empty_dfs_average, color=dfs_col, linewidth=1, \n",
|
|
|
|
|
|
" linestyle='--', alpha=0.7)\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"# A*\n",
|
|
|
|
|
|
"plt.scatter(iterations, maze_empty_astar, label='A*', color=AStar_col)\n",
|
|
|
|
|
|
"plt.axhline(y=maze_empty_astar_average, color=AStar_col, linewidth=1, \n",
|
|
|
|
|
|
" linestyle='--', alpha=0.7)\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"# Связный список\n",
|
|
|
|
|
|
"plt.scatter(iterations, maze_empty_dijkstra, label='Дейкстра', color=Dijkstra_col)\n",
|
|
|
|
|
|
"plt.axhline(y=maze_empty_dijkstra_average, color=Dijkstra_col, linewidth=1, \n",
|
|
|
|
|
|
" linestyle='--', alpha=0.7)\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"plt.legend(loc='best')\n",
|
|
|
|
|
|
"plt.grid(True, alpha=0.3)\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"plt.tight_layout()\n",
|
|
|
|
|
|
"plt.savefig('img/empty.pdf',\n",
|
|
|
|
|
|
" format='pdf',\n",
|
|
|
|
|
|
" dpi=300,\n",
|
|
|
|
|
|
" bbox_inches='tight', \n",
|
|
|
|
|
|
" pad_inches=0.1)\n",
|
|
|
|
|
|
"plt.show()"
|
|
|
|
|
|
]
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"cell_type": "code",
|
|
|
|
|
|
"execution_count": 147,
|
|
|
|
|
|
"id": "de2b628e",
|
|
|
|
|
|
"metadata": {},
|
|
|
|
|
|
"outputs": [
|
|
|
|
|
|
{
|
|
|
|
|
|
"data": {
|
|
|
|
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAABWIAAAJBCAYAAADMVcz9AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjcsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvTLEjVAAAAAlwSFlzAAAPYQAAD2EBqD+naQAArFBJREFUeJzs3XlcVPX+x/H3zICgJq6gKCiaV0uzTatbhkupLdbVCC21MrUsU9P0lvtV09TUTEpLbVNzSSPKn1mWpiZtZttN03LfFxAXcGGbOb8/5s404wwIyLDN69mjh5zv93vOfM7hw1E+853vMRmGYQgAAAAAAAAA4DPm4g4AAAAAAAAAAMo6CrEAAAAAAAAA4GMUYgEAAAAAAADAxyjEAgAAAAAAAICPUYgFAAAAAAAAAB+jEAsAAAAAAAAAPkYhFgAAAAAAAAB8jEIsAAAAAAAAAPgYhVgAAAAAAAAA8LGA4g4AAACUHb///rtGjBihHTt2aNeuXZKkm266SbVr1/YYe/78eX311Vey2WyqUaOGmjdvrocffliPP/54EUcNf5aSkqLExEStWbNGq1ev1rp161SvXr3iDqtM4RoDAADYmQzDMIo7CAAAULacP39eFStWlCRlZmYqMDDQ67jbb79d3377rVatWqV77723KEOEHzt+/Lhmz56tTz75RFu3bpXZbNb111+v4cOHKzY2trjDKxO4xgAAAJ6YEQsAAApdhQoVnF/nVISVpICAAI/xgC+tXbtWXbp00dVXX62ePXsqOjpa11xzDTlYiLjGAAAA3lGIBQAAgF84fvy4HnnkEb377rt64IEHijucMolrDAAAkDMe1gUAAFCKscpU3r333nsaMWIEBUIf4hrnHT+7AAD4HwqxAACgRDIMQ++8844ee+wx/ec//9GwYcPUt29fbdu2zTnm3LlzGj9+vJo0aSKTyaTbbrtN06ZNkyS99tpruuOOO2QymdS0aVONHz9eaWlpzn0PHTqkPn36qGvXrhoyZIjGjh2refPmKT09XZL05ptv6u6775bJZFKTJk00btw45/5jxoyRyWRStWrV1K9fP2VlZeV6LufOndOYMWN01VVXyWQyqWPHjpo4caLz/y5dushkMunqq6/WmDFjlJaWppkzZ+raa691xr9o0SLn8ZYvX64qVaroiiuu0HPPPSdJioqK0o033qiRI0dq1KhRCgkJkcVi0QsvvKDRo0fr5ptvVlRUlMe51a1bV2PGjFFSUpJWrFih3r17O89t+PDh+uOPPy75vZowYYJuvvlm5/dg4sSJevHFF9WlSxc98sgjOnDgQB6+43/bvHmzhgwZoqpVq2ro0KHO4zmuX2xsrN5//33n+D179mjOnDmaNGmShg0bprvuuktz5871OO4vv/yiJ598Up9++qmefPJJTZgwQcOGDdNjjz2mb7/91m3s5MmTdeutt7rlT0ZGhhYsWKCYmBi3a3fo0CEtXrxY1157rcLDw9WlSxd9+eWXGjhwoAYPHqz7779fjz76qPbt2+c8/pEjRzRmzBhFRkbKZDLp3nvv1VtvvSWr1apJkybphhtucF7Pl156yeP7FhERodGjR+vIkSP6/PPP9dRTT3l83+bPn6/g4GA98cQTGj9+vHPff/7znxo/fryeeuopVahQQfPnz3fGdebMGQ0dOlSPPvqoRo8erS5dumj69Ol5Lhrm5xo7LF26VJ06ddKIESPUr18/PfbYYzpy5IgkyWaz6dprr9WkSZM0depUzZgxQ2PGjNG9996r3r17u13T3CxevFixsbEymUyqU6eOXnzxRU2cOFFPP/20OnTooI0bNzrHul7PoKAgDRkyRN9//73HMT/88EN169ZNJpNJkZGRzlx4//331blzZ5lMJplMJg0bNkySZLVanTl17bXXavTo0W7H27Jli3r16qXnn39eY8eOVZ8+fbRgwQKv57Ny5Ur16tVLtWrV0rhx4zRx4kQNHz5cFotF5cqV06BBg/TNN984x3/zzTd6/fXX9dJLL+nZZ5/VPffco/Xr1+fp2gEAgEJkAAAA+IAk41L/1GjdurUhyVi/fr1HX8+ePY1evXoZ2dnZzra9e/caDRo0MNauXes2dt68eYYkY82aNW7ty5YtMyQZb731llv79u3bjZo1axpxcXHOtkOHDhm1a9c2+vfv72zbsWOHIcmYN2+e2/6DBg0yHn30UePEiRO5nt/FHHGuW7fOrX3Xrl1eX2ffvn1GQECAMWTIEI9j9e7d2/jss8+c2zfccINx/vx553Z0dLRRp04d5/b58+eNG264wePcRo0a5XbcY8eOGSaTyejRo0e+zu3LL780JBnvvPOOs81qtRq33XabERUV5RZbXo0YMcJte9SoUYYkIzMz09mWnZ1tREREuMV7/Phxo2bNmsawYcPc9u/Tp48xduxYo0OHDkZ6erqz/eTJk8b1119vvPfee17P6eL82bRpk9drd+7cOaN+/fpGrVq1jLlz57r1DR061Khevbrx3//+16195MiRhiRj586dbu0vv/yy15x2fN9GjhxpXKx27dpu1+G9994zpkyZ4tz+6quvPM5nypQpzvM+deqU0bRpU2PChAnO/oyMDKNFixYe55qT/F7jUaNGGddff72RmprqbJsxY4bRqFEj49y5c0Z2drZRpUoVY9++fW77ZWZmGjfeeKNRq1Yt48yZM3mKLTMz05BkPProo27tw4cPN4KCgoxff/3Vrb127drGbbfdlqdjvvDCCx59ffv2NSQZW7dudbbNmjXLeOihh9xy2DAM47PPPjP+8Y9/GPv373e2ZWdnG926dTOeeuqpHF//3//+t9t2ZGSkR8xbt241goKCjDlz5jjb1q9fbwQEBBiffvpprucHAAAKFzNiAQBAiTN37lwtXbpUr776qiwWi7M9KipK/fr1U9euXXXy5Elnu+OBYI6Hf0nSyZMn9cYbb3i0G4ahhx9+WA0bNtSzzz7rbLdarTp79qxbHI7jOv602WwaNmyYrrzySi1cuFDVq1fP13k5jmMymdzaHed48YPN6tWrpwceeEDvv/++MjIy3M4hKytL99xzj7OtdevWKl++vHPbbDa7nXf58uXVunVrj1guvjYvvfSSDMNwa8/PuZnNf//z0mw266abbtK+ffu0Z8+efB1PkoKCgty2HTG5XqcLFy5Iks6fP+9sCwsLU58+fTR9+nS37+nmzZs1fvx4zZgxw+3YVatW1YQJE9S3b1+3GcDerlFGRoZz1vXF16hChQqqW7eu6tatq759+7r1TZw4UYGBgXrooYdktVpzfY3du3dr6dKlXl/j4py8uO/i8Xfffbfza8f3xnWMa/9zzz2npKQkDR8+3NlWrlw5PfPMM5o+fbpSUlI8XvNi+bnGX3/9tV566SWNHz9elSpVco59+umntX//fr377ruyWCyaP3++6tWr53Gut99+u44dO5bnWbHeclSSbrnlFmVkZHjM2A0MDMz1YYOux3T92XOIi4vTNddco969eys7O1unT5/W999/r/fff9/tuElJSerWrZuGDBmiunXrOtstFoteffVVvfXWWznOjL34XmI2mz1iPnXqlAIDA52z/SWpTZs2uvnmmzVhwoRczw8AABQuCrEAAKDEmT59upo0aaLKlSt79LVs2VInT57Ue++9l+P+hmFozJgxGjRokEffhg0b9N///lf33nuvW3vdunV1+vRpzZo1y+sxz549q86dO6tFixYaOHBgPs+o4Pr376/k5GR9+OGHzra1a9e6FdAk6dprr73ksS415rXXXlP37t0LFqgX27Zt0/LlyzVgwAA1adKk0I7r6oorrtCBAweUkJDg1t6gQQNZrVadOHHCLZ7KlSuradOmHsdp2bKlsrKyNHPmzFxf78UXX1S/fv1yHeOtKBccHKzu3bvrzz//1FdffZXjvhkZGXr55Zcv+Rp5UatWLYWFheU6JiwsTLVq1VJaWpoWL16sm2++2aOY6yhUevt4/sXyc43ffPNNSdJtt93mNq58+fK69tprtWHDBklSp06dPI61detWxcfHa9SoUXnK/ZycPHlSM2fOVHR0dKHmvmT/ni9
|
|
|
|
|
|
"text/plain": [
|
|
|
|
|
|
"<Figure size 1400x600 with 1 Axes>"
|
|
|
|
|
|
]
|
|
|
|
|
|
},
|
|
|
|
|
|
"metadata": {},
|
|
|
|
|
|
"output_type": "display_data"
|
|
|
|
|
|
}
|
|
|
|
|
|
],
|
|
|
|
|
|
"source": [
|
|
|
|
|
|
"plt.figure(figsize=(14, 6))\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"# ============= Левый график: случайные данные =============\n",
|
|
|
|
|
|
"plt.title(\"Поиск пути в лабиринте без выхода\")\n",
|
|
|
|
|
|
"plt.ylabel('Время, мс')\n",
|
|
|
|
|
|
"plt.xlabel('Повторения')\n",
|
|
|
|
|
|
"plt.xticks(iterations)\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"# BFS\n",
|
|
|
|
|
|
"plt.scatter(iterations, maze_no_path_bfs, label='BFS', color=bfs_col)\n",
|
|
|
|
|
|
"plt.axhline(y=maze_no_path_bfs_average, color=bfs_col, linewidth=1, \n",
|
|
|
|
|
|
" linestyle='--', alpha=0.7)\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"# DFS\n",
|
|
|
|
|
|
"plt.scatter(iterations, maze_no_path_dfs, label='DFS', color=dfs_col)\n",
|
|
|
|
|
|
"plt.axhline(y=maze_no_path_dfs_average, color=dfs_col, linewidth=1, \n",
|
|
|
|
|
|
" linestyle='--', alpha=0.7)\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"# A*\n",
|
|
|
|
|
|
"plt.scatter(iterations, maze_no_path_astar, label='A*', color=AStar_col)\n",
|
|
|
|
|
|
"plt.axhline(y=maze_no_path_astar_average, color=AStar_col, linewidth=1, \n",
|
|
|
|
|
|
" linestyle='--', alpha=0.7)\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"# Связный список\n",
|
|
|
|
|
|
"plt.scatter(iterations, maze_no_path_dijkstra, label='Дейкстра', color=Dijkstra_col)\n",
|
|
|
|
|
|
"plt.axhline(y=maze_no_path_dijkstra_average, color=Dijkstra_col, linewidth=1, \n",
|
|
|
|
|
|
" linestyle='--', alpha=0.7)\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"plt.legend(loc='best')\n",
|
|
|
|
|
|
"plt.grid(True, alpha=0.3)\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"plt.tight_layout()\n",
|
|
|
|
|
|
"plt.savefig('img/no_path.pdf',\n",
|
|
|
|
|
|
" format='pdf',\n",
|
|
|
|
|
|
" dpi=300,\n",
|
|
|
|
|
|
" bbox_inches='tight', \n",
|
|
|
|
|
|
" pad_inches=0.1)\n",
|
|
|
|
|
|
"plt.show()"
|
|
|
|
|
|
]
|
2026-05-22 22:01:08 +00:00
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"cell_type": "code",
|
|
|
|
|
|
"execution_count": null,
|
2026-05-23 13:47:29 +00:00
|
|
|
|
"id": "f87691fd",
|
2026-05-22 22:01:08 +00:00
|
|
|
|
"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
|
|
|
|
|
|
}
|