2026-rff_mp/stepushovgs/labyrinth/docs/data/main.ipynb

746 lines
310 KiB
Plaintext
Raw Normal View History

{
"cells": [
{
"cell_type": "code",
"execution_count": 15,
"id": "688ee55a",
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": 16,
"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": 17,
"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.07440</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.07570</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.07270</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.07430</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.05370</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.09330</td>\n",
" <td>1245.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.17550</td>\n",
" <td>1245.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.38650</td>\n",
" <td>1245.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.27960</td>\n",
" <td>1245.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.19875</td>\n",
" <td>1245.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.07440 25.0 16.0\n",
"1 maze10x10 BFS 0.07570 25.0 16.0\n",
"2 maze10x10 BFS 0.07270 25.0 16.0\n",
"3 maze10x10 BFS 0.07430 25.0 16.0\n",
"4 maze10x10 BFS 0.05370 25.0 16.0\n",
".. ... ... ... ... ...\n",
"215 maze_no_path Dijkstra 2.09330 1245.0 0.0\n",
"216 maze_no_path Dijkstra 2.17550 1245.0 0.0\n",
"217 maze_no_path Dijkstra 2.38650 1245.0 0.0\n",
"218 maze_no_path Dijkstra 2.27960 1245.0 0.0\n",
"219 maze_no_path(среднее) Dijkstra 2.19875 1245.0 0.0\n",
"\n",
"[220 rows x 5 columns]"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"csv_path = 'csv/banchmark.csv'\n",
"\n",
"data = pd.read_csv(csv_path)\n",
"data"
]
},
{
"cell_type": "code",
"execution_count": 18,
"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",
"\n",
"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]"
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "43185f9c",
"metadata": {},
"outputs": [],
"source": [
"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]"
]
},
{
"cell_type": "code",
"execution_count": 20,
"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": 21,
"id": "c7bbc090",
"metadata": {},
"outputs": [],
"source": [
"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]"
]
},
{
"cell_type": "code",
"execution_count": 22,
"id": "742bce22",
"metadata": {},
"outputs": [],
"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": 23,
"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": 24,
"id": "d6fae13f",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABWIAAAJBCAYAAADMVcz9AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjcsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvTLEjVAAAAAlwSFlzAAAPYQAAD2EBqD+naQAApilJREFUeJzs3Xlc1NX+x/H3zOCGCJqCgaBI5pKadW29ikuZmdXlXkIrK83qVrZBeUss10zNstR2vfXLFrOMuC1WZm5B2WrZam64ILggKpsCMvP9/fFtRoYZFJFhfT0fDx8y55zvmfMdzhxmPt/zPcdiGIYhAAAAAAAAAIDPWGu6AQAAAAAAAABQ3xGIBQAAAAAAAAAfIxALAAAAAAAAAD5GIBYAAAAAAAAAfIxALAAAAAAAAAD4GIFYAAAAAAAAAPAxArEAAAAAAAAA4GMEYgEAAAAAAADAxwjEAgAAAAAAAICP+dV0AwAAAKrKL7/8ovHjx2vTpk3asmWLJOn8889XWFiYR9nDhw9r5cqVcjgcatOmjXr37q3rrrtON998czW3Gg1Zdna2UlNT9fnnn2vZsmVatWqVOnToUNPNqhcyMjL0xhtv6N1339W6devKLff777/riSeeUHh4uCwWizZv3qzExESde+659aodAACg5lkMwzBquhEAAABV6fDhw2revLkkqbi4WI0aNfJarm/fvvrqq6/08ccfa+jQodXZRDRge/fu1fPPP6/3339fv/32m6xWq8455xwlJiYqLi6upptX582ZM0fffvutOnXqpA8++EB5eXnavn2717J//vmnBg0apFWrVqlz586SpJ07d2rAgAF6/fXX1bdv3zrfDgAAUHswIxYAANQ7/v7+rp/LC8JKkp+fn0d5wJdWrFihYcOGqVu3bho1apSio6PVo0cP+mAVuv/++10/f/nll8rLyyu3bHx8vIYMGeIKfkpS+/btNXLkSN166636888/ZbFY6nQ7AABA7cEasQAAAEA12Lt3r2688Ub93//9n9auXauxY8fqggsuIAhbQ7Zv367ly5fr73//u0fegAEDtGnTJn355ZcNph0AAMD3CMQCAACg0ljlquJeffVVjR8/Xv/6179quimQlJKSIkkKDQ31yAsJCXErU1xc7LWvOxwOlZSUSJLsdruKi4t92g4AAFC3EYgFAADwwjAMvfLKKxo5cqQmTZqkcePG6fbbb9cff/zhKlNQUKCpU6fqrLPOksVi0d///nc9+eSTkqRnnnlGl1xyiSwWi7p3766pU6e63Zq8a9cu3XrrrRo+fLgeeOABTZ48WQsWLFBhYaEk6cUXX9SQIUNksVh01llnacqUKa7jJ06cKIvFotNOO01jxozR0aNHj3suBQUFmjhxorp27SqLxaIrr7xSjz32mOvfsGHDZLFY1K1bN02cOFF5eXmaO3euzj77bFf733zzTVd9S5YsUcuWLRUQEOC6/ToyMlJ/+9vf9PDDD+uRRx5RYGCgbDabHnroIU2YMEEXXHCBIiMjPc6tffv2mjhxovbt26cPPvhAt9xyi+vcEhMT9fvvv5/wdzVt2jRdcMEFrt/BY489pkcffVTDhg3TjTfeqJ07d1bgN37M999/rwceeECtWrXS2LFjXfU5X7+4uDi98cYbrvJpaWl66aWXNGPGDI0bN06XX3655s+f71Hvjz/+qH//+99aunSp/v3vf2vatGkaN26cRo4cqa+++sqt7MyZM3XxxRe79Z+ioiK99tprio2NdXvtdu3apUWLFunss89WaGiohg0bpuXLl+vee+9VQkKCrr76at10001u65NmZmZq4sSJioiIkMVi0dChQ/Xf//5XdrtdM2bM0Lnnnut6PadPn+7xewsPD9eECROUmZmpTz/9VHfccYfH723hwoVq2rSpbrvtNk2dOtV17EUXXaSpU6fqjjvukL+/vxYuXOhqV05OjsaOHaubbrpJEyZM0LBhwzR79myfBPw3b94sSa71pEtzpm3evFkOh0PXXnutIiMjZbFY1KRJE9f74ZdfflFQUJAsFou6du2qp556ymftAAAA9YABAABQD0kyTvRRp3///oYkY/Xq1R55o0aNMkaPHm2UlJS40rZt22ZERUUZK1ascCu7YMECQ5Lx+eefu6W/8847hiTjv//9r1v6hg0bjLZt2xrz5s1zpe3atcsICwsz7r77blfapk2bDEnGggUL3I6Pj483brrpJmP//v3HPb+ynO1ctWqVW/qWLVu8Ps/27dsNPz8/44EHHvCo65ZbbjE++eQT1+Nzzz3XOHz4sOtxdHS00a5dO9fjw4cPG+eee67HuT3yyCNu9e7Zs8ewWCzGDTfccFLntnz5ckOS8corr7jS7Ha78fe//92IjIx0a1tFjR8/3u3xI488YkgyiouLXWklJSVGeHi4W3v37t1rtG3b1hg3bpzb8bfeeqsxefJkY/DgwUZhYaEr/cCBA8Y555xjvPrqq17PqWz/+fbbb72+dgUFBUbHjh2N008/3Zg/f75b3tixY43WrVsbP//8s1v6ww8/bEgyNm/e7JY+a9Ysr33a+Xt7+OGHjbLCwsLcXodXX33VePzxx12PV65c6XE+jz/+uOu8Dx48aHTv3t2YNm2aK7+oqMg477zzPM61ovr372906NDBa96dd95pSDLWrl3rkZeRkWFIMoYOHepKy83NNXr27Gl07NjROHr0qCs9JibGeOaZZ6qtHQAAoO5iRiwAAEAZ8+fP1+LFizVnzhzZbDZXemRkpMaMGaPhw4frwIEDrnTnhmDOzb8k6cCBA3rhhRc80g3D0HXXXadOnTrpvvvuc6Xb7Xbl5+e7tcNZr/N/h8OhcePG6YwzztDrr7+u1q1bn9R5Oespu+mP8xzLbmzWoUMH/etf/9Ibb7yhoqIit3M4evSorrjiClda//791axZM9djq9Xqdt7NmjVT//79PdpS9rWZPn26DMNwSz+Zc7Naj328tVqtOv/887V9+3alpaWdVH2S1KRJE7fHzjaVfp2OHDkiSTp8+LArLSQkRLfeeqtmz57t9jv9/vvvNXXqVD399NNudbdq1UrTpk3T7bff7jYD2NtrVFRU5Jp1XfY18vf3V/v27dW+fXvdfvvtbnmPPfaYGjVqpGuvvVZ2u/24z7F161YtXrzY63OU7ZNl88qWHzJkiOtn5++mdJnS+ffff7/27dunxMREV1rjxo111113afbs2crOzvZ4zlPh7NPeNsFyttU5Q12SWrRooffee09ZWVmaNGmSJHOW8znnnKN777232toBAADqLgKxAAAAZcyePVtnnXWWgoKCPPL69OmjAwcO6NVXXy33eMMwNHHiRMXHx3vkrVmzRj///LOGDh3qlt6+fXsdOnRIzz33nNc68/Pz9c9//lPnnXfeKQV9Ttbdd9+trKwsvfvuu660FStWuAXQJOnss88+YV0nKvPMM89oxIgRlWuoF3/88YeWLFmie+65R2eddVaV1VtaQECAdu7cqeTkZLf0qKgo2e127d+/3609QUFB6t69u0c9ffr00dGjRzV37tzjPt+jjz6qMWPGHLdM6YC4U9OmTTVixAj9+eefWrlyZbnHFhUVadasWSd8joo4/fTTXWuclickJESnn3668vLytGjRIl1wwQUewdwLL7xQRUVF+vrrr0+5TaU5g+EOh8MjzxmsLhuMP/PMM/Xcc89p1qxZeu+99/Tcc89p4sSJ1d4OAABQN53cVAMAAIB67sCBA9qyZYsGDRrkNT84OFiS9N1335Vbx7x583TDDTd43bjnxx9/lCSFh4d75HmbESeZu6qPHj1aKSkpslgsGjZs2AnPo6r0799f3bt31/PPP68bb7xRkpSUlKRnn33Wrdzo0aNPWNfxynz99ddyOBy66KKLTqm9H3/8sfbs2aN9+/bp888/1xNPPOFqt69YLBbXGrc7duxQ69at9dNPP3mUKykpUZs2bbzW0apVK9lstuP2q6SkJPXq1UtRUVGVamenTp0kmeuaDh482GuZqVOn6qGHHtKXX3553Lq+/PJLPf74425pOTk5bo/LBuu9CQ0NVWhoqL777jsdPXp
"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": 25,
"id": "8ef02f9e",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABWIAAAJBCAYAAADMVcz9AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjcsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvTLEjVAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAq6ZJREFUeJzs3X18zfX/x/HnOWeYsTNXG2NjJHJRkdK3GFNIVz+1Rtck1TdFU76FIhRRJKsUqm8IRWvffNU3ocikC119u1LIxTC2Gba52NU5n98fn+/OdpwzZnZ2+bh362bn/X5/3uf9OXvtfc55nfd5fyyGYRgCAAAAAAAAAPiMtaIHAAAAAAAAAADVHYlYAAAAAAAAAPAxErEAAAAAAAAA4GMkYgEAAAAAAADAx0jEAgAAAAAAAICPkYgFAAAAAAAAAB8jEQsAAAAAAAAAPkYiFgAAAAAAAAB8jEQsAAAAAAAAAPiYX0UPAAAAoKz8/PPPGj9+vLZt26YdO3ZIki677DI1b97co+2JEyf02Wefyel0qkmTJurWrZtuu+023XPPPeU8atRk6enpSkxM1Nq1a7V69Wp9/vnnatWqVUUPq0pbvny57rnnHtWvX1+BgYGyWCw6fvy46tWrp5UrV6pz585u7X/77Te98MILCgsLk8Vi0fbt2zVu3Dh17dq1WowDAABUHiRiAQBAtXHRRRfp448/1okTJ1SvXj1J0pdffqlatWp5bd+zZ099+eWXWrRoka677rryHCpqsJSUFM2dO1cffvihfv31V1mtVnXp0kXPP/88SdgycPLkSYWGhurIkSM6cOCAWrVqpWHDhukf//iHGjdu7Nb2jz/+0DXXXKPPP/9c7dq1kyQlJSUpKipKixcvVs+ePav8OAAAQOVBIhYAAFQ7AQEBrp+LS8JKkp+fn0d7wJfWrVunQYMGqUOHDho6dKgiIyPVuXNnYrCMPf300yVa3R4bG6sBAwa4kp+S1LJlSw0ZMkTDhw/XH3/8IYvFUuXHAQAAKgf2iAUAAADKQUpKiu666y7985//1ObNmzVmzBh1796dJGwF2b17t9asWaMrr7zSoy4qKkrbtm3Tpk2basw4AACA75GIBQAAQKkZhlHRQ6gy3n77bY0fP14333xzRQ8FkjZu3ChJCg0N9agLCQlxa5Obm+s11p1Op/Lz8yVJDodDubm5Ph0HAACo2kjEAgAAeGEYht566y0NGTJETz/9tMaOHasHHnhAv//+u6vN8ePHNWXKFHXs2FEWi0VXXnmlZs6cKUl6+eWXddVVV8lisahTp06aMmWKsrKyXMfu27dPw4cP1+DBg/XYY49p0qRJWrBggbKzsyVJr7/+ugYMGCCLxaKOHTtq8uTJruMnTpwoi8WiRo0aacSIEcrLyzvtuRw/flwTJ07UBRdcIIvFouuvv15Tp051/T9o0CBZLBZ16NBBEydOVFZWlubMmaOLLrrINf4lS5a4+luxYoUaNGig+vXr69FHH5UkRURE6JJLLtGTTz6pp556Sna7XTabTU888YQmTJig7t27KyIiwuPcWrZsqYkTJyo1NVUrV67Uvffe6zq3cePG6bfffjvj7+rZZ59V9+7dXb+DqVOn6plnntGgQYN01113KSkpqQS/8UJbtmzRY489poYNG2rMmDGu/goev5iYGL3zzjuu9jt37tS8efP03HPPaezYsbrmmms0f/58j35/+OEH3X///froo490//3369lnn9XYsWM1ZMgQffnll25tp0+friuuuMItfnJycrRo0SJFR0e7PXb79u3T0qVLddFFFyk0NFSDBg3SmjVrNGrUKI0ePVo33nij7r77bu3evdvVf3JysiZOnKjw8HBZLBZdd911euONN+RwOPTcc8+pa9eursdz2rRpHr+3sLAwTZgwQcnJyfrkk0/097//3eP3tnDhQvn7++u+++7TlClTXMf+7W9/05QpU/T3v/9dAQEBWrhwoWtcGRkZGjNmjO6++25NmDBBgwYN0qxZs8464Z+enq4pU6Zo8uTJeuKJJ3TTTTfpp59+cmuzfft2SXLtJ11UQdn27dvldDp16623KiIiQhaLRXXq1HH9Pfz8888KCgqSxWLRBRdcoBdffNFn4wAAANWAAQAAUA1JMs70Uqd3796GJGP9+vUedUOHDjWGDRtm5Ofnu8p27dpltGnTxli3bp1b2wULFhiSjLVr17qVL1++3JBkvPHGG27lW7duNZo2bWrExcW5yvbt22c0b97cePjhh11l27ZtMyQZCxYscDs+NjbWuPvuu41Dhw6d9vxOVTDOzz//3K18x44dXu9n9+7dhp+fn/HYY4959HXvvfca//nPf1y3u3btapw4ccJ1OzIy0mjRooXr9okTJ4yuXbt6nNtTTz3l1u/BgwcNi8Vi3HnnnWd1bmvWrDEkGW+99ZarzOFwGFdeeaURERHhNraSGj9+vNvtp556ypBk5Obmusry8/ONsLAwt/GmpKQYTZs2NcaOHet2/PDhw41JkyYZ/fv3N7Kzs13lhw8fNrp06WK8/fbbXs/p1Pj55ptvvD52x48fN1q3bm00a9bMmD9/vlvdmDFjjMaNGxv//e9/3cqffPJJQ5Kxfft2t/Lnn3/ea0wX/N6efPJJ41TNmzd3exzefvttY8aMGa7bn332mcf5zJgxw3XeR44cMTp16mQ8++yzrvqcnBzj0ksv9TjX01m4cKExYMAAIysry1X28ccfG/Xr1zd++OEHV9mDDz5oSDI2b97s0cf+/fsNScZ1113nKsvMzDQuvPBCo3Xr1kZeXp6rfODAgcbLL79cbuMAAABVFytiAQAATjF//ny9++67eumll2Sz2VzlERERGjFihAYPHqzDhw+7ygsuCFZw8S9JOnz4sF577TWPcsMwdNttt6lt27Z65JFHXOUOh0PHjh1zG0dBvwX/Op1OjR07Vuedd54WL17sceX1Myno59SL/hSc46kXNmvVqpVuvvlmvfPOO8rJyXE7h7y8PF177bWust69e6tu3bqu21ar1e2869atq969e3uM5dTHZtq0aTIMw638bM7Nai18eWu1WnXZZZdp9+7d2rlz51n1J0l16tRxu10wpqKP08mTJyVJJ06ccJWFhIRo+PDhmjVrltvvdMuWLZoyZYpmz57t1nfDhg317LPP6oEHHnBbAeztMcrJyXGtuj71MQoICFDLli3VsmVLPfDAA251U6dOVa1atXTrrbfK4XCc9j7++usvvfvuu17v49SYPLXu1PYDBgxw/Vzwuynapmj9o48+qtTUVI0bN85VVrt2bT300EOaNWuW0tPTPe7Tm/79+2v58uWqX7++q+y6665TgwYNdP/997vKCmLa20WwCsZasEJdkgIDA/XBBx8oLS1NTz/9tCRzlXOXLl00atSochsHAACoukjEAgAAnGLWrFnq2LGjgoKCPOp69Oihw4cP6+233y72eMMwNHHiRMXGxnrUbdiwQf/973913XXXuZW3bNlSR48e1auvvuq1z2PHjummm27SpZde6jXp4ysPP/yw0tLS9P7777vK1q1b55ZAk6SLLrrojH2dqc3LL7+sO+64o3QD9eL333/XihUrNHLkSHXs2LHM+i2qfv36SkpKUkJCglt5mzZt5HA4dOjQIbfxBAUFqVOnTh799OjRQ3l5eZozZ85p7++ZZ57RiBEjTtumaEK8gL+/v+644w798ccf+uyzz4o9NicnR88///wZ76MkmjVr5trjtDghISFq1qyZsrKytHTpUnXv3t0jmXv55ZcrJydHX331VYnuNzQ0VHa73aP84osv1vfff69ffvlFUmGi3el0erQtSFafmow///zz9eqrr+r555/XBx98oFdffVUTJ04s93EAAICq6eyWGgAAAFRzhw8f1o4dO9S3b1+v9cHBwZKkb7/9ttg+4uLidOedd3q9cM8PP/wgSQoLC/Oo87YiTjKvqj5s2DBt3LhRFotFgwYNOuN5lJXevXurU6dOmjt3ru666y5JUnx8vF555RW3dsOGDTtjX6dr89VXX8npdOpvf/vbOY33448/1sGDB5Wamqq1a9fqhRdecI3
"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": 26,
"id": "1ab3cd43",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABWIAAAJBCAYAAADMVcz9AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjcsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvTLEjVAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAuoxJREFUeJzs3XlcVNX/x/H3zAAiKK6gKCiaqWlmasvXErdMy/qmkbZZaXtmhem3pNKv+s2tstI20+qXpWaZUX6zMjM1Nfu2aLu55Ya4gKiAItvc+/vjOgPDgAKCLPN6Ph48mHvOuWfOvRzOzHzm3HNtpmmaAgAAAAAAAACUG3tFNwAAAAAAAAAAqjsCsQAAAAAAAABQzgjEAgAAAAAAAEA5IxALAAAAAAAAAOWMQCwAAAAAAAAAlDMCsQAAAAAAAABQzgjEAgAAAAAAAEA5IxALAAAAAAAAAOWMQCwAAAAAAAAAlDO/im4AAADAqfz222964okntHXrVm3fvl2SdPHFF6tJkyZeZTMyMvT111/LMAw1bNhQXbp00c0336xhw4ad5VbDl6WkpGjt2rX66quvtGzZMq1cuVLNmzev6GZVC4mJiZo3b54+/PBDbdiwochyf/75p5599llFRETIZrNp27ZtiouLU6dOnbzKJiQk6Omnn1bdunVVs2ZN/fXXX7r//vt1xRVXlEmbU1JStGjRIk2ZMkUJCQlFlitJO44cOaKJEyfKNE3Vq1dPW7Zs0fXXX68bb7yxTNoMAADKh800TbOiGwEAAHA6GRkZCg4OliRlZ2fL39+/0HLdunXTt99+q88++0z9+/c/m02EDzt48KBeffVVffLJJ/rjjz9kt9t14YUXKi4uToMGDaro5lV5L774or7//nu1atVKS5YsUXp6unbt2lVo2c2bN6tPnz5auXKlWrduLUnas2ePevbsqXfffVfdunVzl01OTtbFF1+sefPmKTo6WpKUmpqqbt26ady4cWcU2Jw/f76WLl2qpk2bauPGjVq9erWK+uhVknZkZmbqH//4hx577DENGTJEkjUm9u3bV//85z81evToUrcZAACULwKxAACgyrDZbJJUZDBDknr27KlvvvlGq1atUs+ePc9Sy+DLVqxYocGDB+u8887TDTfcoOjoaJ1//vkKCgqq6KZVSz179tSuXbuKDMT269dPkZGRevPNNz3SJ0yYoIULF2rz5s3useT+++/X33//rRUrVniUnTt3rkaNGqU9e/aoVq1aZ9zmYcOG6Z133ily7CpJO6ZOnaq33nrLfYWAy+rVq9W3b19t2bJFLVq0OOM2AwCAsscasQAAAEApHTx4ULfddpv+7//+T+vXr9fo0aN1ySWXEIStILt27dLy5ct12WWXeeX17NlTW7du1bp16yRZs+znz59fZNkjR47o448/Lvc2l7Qdc+bMKbRst27dZBiG5s+fX67tBQAApUcgFgAAAB64YKr43n77bT3xxBO6/vrrK7opkLRmzRpJUnh4uFdeWFiYR5mffvpJGRkZxSqbnZ1d6P+FaZrKycmRJDmdTmVlZZW4zSVpx549e7Rr165Cy/r5+al+/frusgAAoPIhEAsAAHyGaZp66623dMcdd+jf//63xowZo/vuu0+bNm1ylzl+/LgmTpyodu3ayWaz6bLLLtNzzz0nSXrppZfUu3dv2Ww2tW/fXhMnTlR6erp737179+ruu+/WjTfeqFGjRmn8+PGaM2eOMjMzJUmzZs3SVVddJZvNpnbt2mnChAnu/ceNGyebzab69etr+PDh7uBOUY4fP65x48apbdu2stlsuuaaazRp0iT3z+DBg2Wz2XTeeedp3LhxSk9P14wZM3TBBRe4259/5tyiRYtUt25d1apVS48++qgkKSoqSp07d9aTTz6pp556SiEhIXI4HHr88cc1duxYXXLJJYqKivI6tmbNmmncuHFKSkrSkiVLdNddd7mPLS4uTn/++edp/1ZPP/20LrnkEvffYNKkSfrPf/6jwYMH67bbbtOePXuK8RfP8+OPP2rUqFGqV6+eRo8e7a7Pdf4GDRqkefPmucvv2LFDr7/+uqZMmaIxY8aoX79+mj17tle9Gzdu1L333qulS5fq3nvv1dNPP60xY8bojjvu0LfffutRdurUqeratatH/8nKytI777yjmJgYj3O3d+9eLViwQBdccIHCw8M1ePBgLV++XA8//LBGjhypf/7zn7r99ts9Ls/ft2+fxo0bp8jISNlsNvXv319vvPGGnE6npkyZok6dOrnP5+TJk73+bhERERo7dqz27dunL774Qvfff7/X323u3LkKDAzUPffco4kTJ7r3/cc//qGJEyfq/vvvV1BQkObOnetuV2pqqkaPHq3bb79dY8eO1eDBgzV9+vRyCfhv27ZNktzrSefnSnOVOVXZoKAg902+JOmhhx7SeeedJ5vNJpvNpmeffVaSNSO6cePGstlsioqK0pgxY8q0zQXbcaqyrnRXGQAAUAmZAAAAVYQk83RvX3r06GFKMletWuWVN3ToUPPOO+80c3Nz3Wk7d+40W7Zsaa5YscKj7Jw5c0xJ5ldffeWR/sEHH5iSzDfeeMMj/a+//jIbNWpkzpw50522d+9es0mTJuaIESPcaVu3bjUlmXPmzPHYPzY21rz99tvNQ4cOnfL4CnK1c+XKlR7p27dvL/R5du3aZfr5+ZmjRo3yquuuu+4yP//8c/d2p06dzIyMDPd2dHS02bRpU/d2RkaG2alTJ69je+qppzzqPXDggGmz2cwhQ4aU6NiWL19uSjLfeustd5rT6TQvu+wyMyoqyqNtxfXEE094bD/11FOmJDM7O9udlpuba0ZERHi09+DBg2ajRo3MMWPGeOx/9913m+PHjzf79u1rZmZmutMPHz5sXnjhhebbb79d6DEV7D/ff/99oefu+PHjZosWLczGjRubs2fP9sgbPXq02aBBA/PXX3/1SH/yySdNSea2bds80p955plC+7Tr7/bkk0+aBTVp0sTjPLz99tvmtGnT3Ntff/211/FMmzbNfdxHjhwx27dvbz799NPu/KysLPOiiy7yOtbi6tGjh9m8efNC8x544AFTkrl+/XqvvMTERFOS2b9/f3c7JZnvvfdeoXX5+/ub7dq1c29nZ2ebV155pRkcHGympqa60x955BHz8ccfN3Nycops89ChQ4scu0rSjvfff9+UZE6ZMqXQsueee64ZFBRUZDsAAEDFYkYsAADwCbNnz9bChQv14osvyuFwuNOjoqI0fPhw3XjjjTp8+LA73d/fX5J1ua/L4cOH9dprr3mlm6apm2++Wa1atdIjjzziTnc6nTp27JhHO1z1un4bhqExY8bonHPO0bvvvqsGDRqU6Lhc9bhuPuTiOkZXvkvz5s11/fXXa968eR6XUZsnL7G++uqr3Wk9evRQzZo13dt2u93juGvWrKkePXp4taXguZk8ebJM0/RIL8mx2e15b1ntdrsuvvhi7dq1Szt27ChRfZJUo0YNj21Xm/KfpxMnTkiy1u50CQsL0913363p06d7/E1//PFHTZw4US+88IJH3fXq1dPTTz+t++67z2MGcGHnKCsryz3ruuA5CgoKUrNmzdSsWTPdd999HnmTJk2Sv7+/brrpJjmdzlM+x99//62FCxcW+hwF+2TBvILlr7rqKvdj198mf5n8+Y8++qiSkpIUFxfnTgsICNCDDz6o6dOnKyUlxes5z4SrTxf8f8jfVtcM9VOVdZV3lZWsc7Fw4ULVqVNHDzzwgCRrqQCn06lnnnmmxP27OG0u2I6SthkAAFQuBGIBAIBPmD59utq1a6c6dep45V1++eU6fPiw3n777SL3N01T48aNU2xsrFfe6tWr9euvv6p///4e6c2aNdPRo0f1yiuvFFrnsWPHNHDgQF100UV6+OGHS3hEpTdixAglJyfrww8/dKetWLHCI4AmSRdccMFp6zpdmZdeekm33npr6RpaiE2bNmnRokV66KGH1K5duzKrN79atWppz549io+P90hv2bKlnE6nDh065NGeOnXqqH379l71XH755crJydGMGTNO+Xz/+c9/NHz
"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": 27,
"id": "5802d209",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABWIAAAJBCAYAAADMVcz9AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjcsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvTLEjVAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAlmJJREFUeJzs3XlcVNX/x/H3nWFVAVNBQVA0yxZbzHb3MrPlm2Vqe25tZqlpuWSmfrNssVxatU3NFs0f7aWladq31crKysrcEBUQFVAEYeb+/rjNOJcZFJERYV7PHj1kzjlz59zLhzN3PnPuuYZpmqYAAAAAAAAAAEHjqOoOAAAAAAAAAEBNRyIWAAAAAAAAAIKMRCwAAAAAAAAABBmJWAAAAAAAAAAIMhKxAAAAAAAAABBkJGIBAAAAAAAAIMhIxAIAAAAAAABAkJGIBQAAAAAAAIAgIxELAAAAAAAAAEEWVtUdAAAAKO2XX37R6NGj9ddff2nt2rWSpLPOOktJSUl+bQsKCrRkyRK53W41aNBAbdq00bXXXqu+ffse4V4DOFTFxcX64Ycf9Pnnn+vjjz/WZZddptGjR1d1twAAAILCME3TrOpOAAAABFJQUKDatWtLkvbt26fw8PCA7dq1a6f//e9/+uijj3TppZceyS4COEQul0vz58/X7NmztWLFChUUFCgpKUm9e/fWpEmTFBUVVdVdBAAACApmxAIAgKNWrVq1vD+XlYSVpLCwML/2AI4+ubm5uvzyy/XXX3/ppptu0uDBg9W6dWslJiZWddcAAACCjkQsAAAAgCPi1ltv1QknnKBPPvlEderUqeruAAAAHFEkYgEAACDTNGUYRlV346jHcaq4rVu3asOGDfr666/ldDqrujsAAABHnKOqOwAAABBMpmnq5Zdf1s0336wHH3xQI0eO1G233abff//d22bPnj2aMGGCTjrpJBmGofPPP19PPPGEJGn69Om64IILZBiGTj75ZE2YMEH5+fne527evFkDBgxQ7969NWzYMI0bN04zZ85UYWGhJOn5559Xt27dZBiGTjrpJI0fP977/LFjx8owDNWrV08DBw5UcXHxAfdlz549Gjt2rE444QQZhqHLLrtMEydO9P7fq1cvGYahE088UWPHjlV+fr6mTp2qU0891dv/uXPnerc3f/581a1bV3Xq1NE999wjSUpNTdUZZ5yh+++/X2PGjFFsbKycTqdGjBihBx54QGeffbZSU1P99q1JkyYaO3assrKy9N5776l///7efRs1apR+++23g/6uHnroIZ199tne38HEiRP13//+V7169dKNN96oTZs2leM3Lv3vf//T4MGDFRERobCwMI0ePdp7jCZMmKDjjz9ehmGod+/eeu2117Rp0yYNGzZMtWrVkmEYuu6662zxcd1118kwDJ1yyil69913veUul0vTpk1Tt27dNHjwYI0aNUpPPfWU97mzZs1SVFSUbrnlFk2YMMF7rM4991xNmDBBt99+u2rVqqVZs2Z5t1lcXKwnn3xSAwYM0Lhx43TffffprrvuUnp6urdNfn6+HnjgAZ1wwgkKCwvTQw89FPA4/PHHH2rQoIGOOeYY3XvvvVq9enW5jl9xcbEefPBBnXnmmerSpYv32F1zzTUyDEMnnHCCN74kqaSkRLNnz9bkyZM1fvx4XXPNNbr99tuVnZ1t2+6XX36pQYMGKT09XYMHD9bYsWM1duxY3XLLLZoyZYpKSkq8bT/55BPdfvvtMgxDUVFRGj58uL7//nutWrVK999/v/d3NXDgQH388cfavn27zj33XKWmpqpOnTpas2aNRowYoWHDhqlfv37q3Lmz3nnnHVt/DjV+v/76aw0bNkwREREyDEO33XabPvnkE23ZskVjx45VSkqKN35ef/11SZJhGOrYsaPGjh2r++67T2FhYYqJidEDDzygUaNG6cQTT1SnTp1s/XrzzTfVvXt3jR49WgMHDtTNN9+sLVu2lOt3BwAAjnImAADAUUySebBTlo4dO5qSzKVLl/rV9enTx+zXr59ZUlLiLVu/fr3ZvHlzc/Hixba2M2fONCWZn332ma183rx5piTzxRdftJX/8ccfZsOGDc1p06Z5yzZv3mwmJSWZgwYN8pb99ddfpiRz5syZtucPGTLEvOmmm8zt27cfcP9K8/Tz888/t5WvXbs24Ots2LDBDAsLM4cNG+a3rf79+5sff/yx93Hr1q3NgoIC7+P27dubjRs39j4uKCgwW7du7bdvY8aMsW1327ZtpmEY5g033HBI+/bpp5+aksyXX37ZW+Zyuczzzz/fTE1NtfXtYM4//3yzSZMmfuUPPPCAKcnct2+frfzhhx82JZm//PKLrdzlcpnHH3+8uXv3blvZVVddZbZv397Mz8/3lt98881mgwYNzL1795qvvvqq+eijj3rrlixZ4hdHjz76qPnqq6+apmmaRUVF5kUXXWQ++OCDttdfuXKl2bRpU79+zZgxw7ziiivMRo0a+e2LaZrmlClTzA4dOpjXX399WYfogD777DNzyZIl3sd///13wPgaNWqUWb9+fXPbtm3esn79+pktWrSwHZuHH37YnD9/vtmsWTPz559/tm3jgQceMLt16+a3H0lJSWbbtm1tZW632zz55JNtcenbF0lmnz59zLy8PG/5t99+a0ZHR5sTJ060ta9I/J5//vlmUlKSX/n9999vSjKLi4u9ZSeddJLpcrm8j1NSUmz7k5GRYV544YXex2PGjDFPP/10W9+feuop8/jjjzf37Nnj95oAAKB6YUYsAACosWbMmKE333xTU6ZMsV0KnZqaqoEDB6p3797asWOHt9xzQzDPzb8kaceOHXruuef8yk3T1LXXXqsWLVpo8ODB3nKXy6Xdu3fb+uHZrudft9utkSNH6thjj9WcOXNUv379Q9ovz3ZKXyLv2cfSNzZr2rSprrrqKr322msqKiqy7UNxcbEuueQSb1nHjh0VHR3tfexwOGz7HR0drY4dO/r1pfSxefjhh2Wapq38UPbN4dh/mupwOHTWWWdpw4YNWrdu3SFtK9AyAmUdp9tvv11RUVF66aWXbOWemZC1a9f2lk2bNk3vvvuuXn75Zdtap7m5uQoLC/PO7uzWrZttPyT7sfKtHzdunH777TeNGzfO9vpt2rTR5Zdfrquvvto2azoiIkJ9+vTRrl279N5779mes2fPHu+s0QPd6O5AwsLCbH83nn6X3l5BQYFKSkq0b98+b9no0aO1du1a2wzsrKws3Xfffbr66qt16qmn2rYxbtw4rVq1ym/fw8PD/WJo+vTp2rVrV8DYatmypSRp5MiRiomJ8ZafffbZuu222zR27Fh9+eWXtu377pt08PgNDw8PeEwDbatr165+sexbn5SUpFNOOUWS9MUXX+jhhx/WhAkTbH2/4447tHHjRr3yyit+rwkAAKoXErEAAKDGmjx5sk466STFxcX51bVt21Y7duzQq6++WubzTdPU2LFjNWTIEL+6ZcuW6eeff9all15qK2/SpIl27dqlZ555JuA2d+/erSuvvFJnnnmm7r777kPco4obNGiQsrOz9fbbb3vLFi9ebEsESvJLkAVysDbTp0/X9ddfX7GOBvD7779r/vz5uuuuu3TSSSdV2nZLq1+/vq699lrNnj1be/bs8Za/+eabuummm2xtp02bphYtWui4446zlb/77rvasmWL6tSpo0aNGikhIeGAr5mQkKBGjRqpqKhITz/9tM4++2xb4s6jbdu2+vvvv/X+++/byuvVq6eePXtqxowZtvL/+7//01VXXVWu/S5LSUlJuRLp06ZN086dO5WSkuIta968uSRp27Zt3rI9e/Zo48aNatu2rd82wsLCdPbZZ2v69Om2LwtK+/rrr2UYhlq0aHHAPvl+meAxYMAAmabp/WKlLJUZv4fy9/T8889Lks4//3xbfXR0tE499VQtW7asUvoEAACqDjfrAgAANdKOHTu0du1adenSJWB9fHy8JOm7774rcxvTpk3TDTfcYJvp5/Hjjz9KkpKTk/3qyrqZ04YNG9SvXz8tX75chmGoV69eB92PytKxY0edfPL
"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": 28,
"id": "de2b628e",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABWIAAAJBCAYAAADMVcz9AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjcsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvTLEjVAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAsDlJREFUeJzs3Xlc1NX+x/H3zLC4jisoCIrm1dQ202wx1EptvxYXLdMytWxR07RSU39qmZmaSeVN61bmVnmJm9csS3OBbl2z7ZZlmSuLCriCINvM9/fHNBPDDAjIAMLr+Xj40DnnzJnP98vHL/CZM+drMgzDEAAAAAAAAADAZ8xVHQAAAAAAAAAA1HQUYgEAAAAAAADAxyjEAgAAAAAAAICPUYgFAAAAAAAAAB+jEAsAAAAAAAAAPkYhFgAAAAAAAAB8jEIsAAAAAAAAAPgYhVgAAAAAAAAA8DEKsQAAAAAAAADgY35VHQAAAKg5fvzxR02ZMkW7d+/Wnj17JElXXHGFQkNDPcZmZ2fr888/l91uV/PmzdWtWzfdfffduv/++ys5atRmx44dU0JCgjZu3KgNGzZo8+bNatOmTVWHVaNwjgEAABxMhmEYVR0EAACoWbKzs1W/fn1JUl5envz9/b2Ou/baa/Wf//xH69ev1y233FKZIaIWS01N1eLFi/Xhhx9q586dMpvNuuyyyzR58mRFR0dXdXg1AucYAADAEytiAQBAhatXr57r38UVYSXJz8/PYzzgS5s2bdLAgQPVqVMnDRs2TJGRkbrooovIwQrEOQYAAPCOQiwAAABqhdTUVA0dOlRvvfWW7rzzzqoOp0biHAMAABSPm3UBAACcx9hlqvTefvttTZkyhQKhD3GOS4//uwAA1D4UYgEAQLVkGIbefPNN3Xffffq///s/TZo0SaNGjdIvv/ziGpOVlaVZs2apc+fOMplMuuaaazR//nxJ0ssvv6zrr79eJpNJXbp00axZs5SZmel6bnJyskaOHKlBgwZpwoQJmjFjhl5//XXl5ORIkl577TXddNNNMplM6ty5s2bOnOl6/vTp02UymdS0aVM98sgjys/PL/FYsrKyNH36dF144YUymUy69dZbNXv2bNefgQMHymQyqVOnTpo+fboyMzO1aNEiXXLJJa74V65c6ZpvzZo1aty4sRo0aKDHH39ckhQREaHLL79cTz/9tKZOnSqr1SqLxaKnnnpK06ZNU48ePRQREeFxbK1bt9b06dOVlpamtWvXasSIEa5jmzx5sn7++eezfq2effZZ9ejRw/U1mD17tp555hkNHDhQQ4cOVWJiYim+4n/asWOHJkyYoCZNmmjixImu+ZznLzo6WitWrHCN37dvn5YsWaI5c+Zo0qRJuvHGG7V06VKPeb/77js9+OCD+uijj/Tggw/q2Wef1aRJk3TffffpP//5j9vY559/XldffbVb/uTm5uqdd95RVFSU27lLTk7WqlWrdMkllygkJEQDBw7UZ599prFjx2r8+PG6/fbbde+99+rAgQOu+Q8dOqTp06crPDxcJpNJt9xyi9544w3ZbDbNmTNHXbt2dZ3P5557zuPrFhYWpmnTpunQoUP65JNP9NBDD3l83ZYtW6Y6derogQce0KxZs1zPveqqqzRr1iw99NBDqlevnpYtW+aK69SpU5o4caLuvfdeTZs2TQMHDtSCBQtKXTQsyzl2evfddzVgwABNmTJFjzzyiO677z4dOnRIkmS323XJJZdozpw5mjdvnhYuXKjp06frlltu0YgRI9zOaUlWrVql6OhomUwmtWrVSs8884xmz56thx9+WP3791d8fLxrbOHzGRgYqAkTJuirr77ymPOf//ynBg8eLJPJpPDwcFcurFixQnfccYdMJpNMJpMmTZokSbLZbK6cuuSSSzRt2jS3+X766ScNHz5cTz75pGbMmKGRI0fqnXfe8Xo869at0/Dhw9WyZUvNnDlTs2fP1uTJk2WxWBQQEKBx48bpiy++cI3/4osv9Morr+i5557TY489pptvvllbtmwp1bkDAAAVyAAAAPABScbZftTo3bu3IcnYsmWLR9+wYcOM4cOHGwUFBa62/fv3G+3atTM2bdrkNvb11183JBkbN250a3///fcNScYbb7zh1r5r1y6jRYsWRkxMjKstOTnZCA0NNUaPHu1q2717tyHJeP31192eP27cOOPee+81jh49WuLxFeWMc/PmzW7te/bs8fo6Bw4cMPz8/IwJEyZ4zDVixAjj448/dj3u2rWrkZ2d7XocGRlptGrVyvU4Ozvb6Nq1q8exTZ061W3eI0eOGCaTyRgyZEiZju2zzz4zJBlvvvmmq81msxnXXHONERER4RZbaU2ZMsXt8dSpUw1JRl5enqutoKDACAsLc4s3NTXVaNGihTFp0iS3548cOdKYMWOG0b9/fyMnJ8fVfvz4ceOyyy4z3n77ba/HVDR/tm/f7vXcZWVlGW3btjVatmxpLF261K1v4sSJRrNmzYz//e9/bu1PP/20Icn4/fff3dpfeOEFrznt/Lo9/fTTRlGhoaFu5+Htt9825s6d63r8+eefexzP3LlzXcd94sQJo0uXLsazzz7r6s/NzTW6d+/ucazFKes5njp1qnHZZZcZGRkZrraFCxcaHTp0MLKysoyCggKjcePGxoEDB9yel5eXZ1x++eVGy5YtjVOnTpUqtry8PEOSce+997q1T5482QgMDDS+//57t/bQ0FDjmmuuKdWcTz31lEffqFGjDEnGzp07XW2vvvqqcdddd7nlsGEYxscff2z85S9/MQ4ePOhqKygoMAYPHmw89NBDxb7+E0884fY4PDzcI+adO3cagYGBxpIlS1xtW7ZsMfz8/IyPPvqoxOMDAAAVixWxAACg2lm6dKneffddvfTSS7JYLK72iIgIPfLIIxo0aJCOHz/uanfeEMx58y9JOn78uP7+9797tBuGobvvvlvt27fXY4895mq32Ww6ffq0WxzOeZ1/2+12TZo0SRdccIGWL1+uZs2alem4nPOYTCa3ducxFr2xWZs2bXTnnXdqxYoVys3NdTuG/Px83Xzzza623r17q27duq7HZrPZ7bjr1q2r3r17e8RS9Nw899xzMgzDrb0sx2Y2//njpdls1hVXXKEDBw5o3759ZZpPkgIDA90eO2MqfJ7OnDkjScrOzna1BQcHa+TIkVqwYIHb13THjh2aNWuWFi5c6DZ3kyZN9Oyzz2rUqFFuK4C9naPc3FzXquui56hevXpq3bq1WrdurVGjRrn1zZ49W/7+/rrrrrtks9lKfI29e/fq3Xff9foaRXOyaF/R8TfddJPr386vTeExhfsff/xxpaWlafLkya62gIAAPfroo1qwYIGOHTvm8ZpFleUcb9u2Tc8995xmzZqlhg0busY+/PDDOnjwoN566y1ZLBYtW7ZMbdq08TjWa6+9VkeOHCn1qlhvOSpJV155pXJzcz1W7Pr7+5d4s8HCcxb+v+cUExOjiy66SCNGjFBBQYFOnjypr776SitWrHCbNy0tTYMHD9aECRPUunVrV7vFYtFLL72kN954o9iVsUWvJWaz2SPmEydOyN/f37XaX5L69OmjHj166Nlnny3x+AAAQMWiEAsAAKqdBQsWqHPnzmrUqJFHX8+ePXX8+HG9/fbbxT7fMAxNnz5d48aN8+jbunWr/ve//+mWW25xa2/durVOnjypV1991eucp0+f1h133KHu3btr7NixZTyi8hs9erTS09P1z3/+09W2adMmtwKaJF1yySVnnetsY15++WXdc8895QvUi19++UVr1qzRmDFj1Llz5wqbt7AGDRooMTFRcXFxbu3t2rWTzWbT0aNH3eJp1KiRunTp4jFPz549lZ+fr0WLFpX4es8884weeeSREsd4K8rVqVNH99xzj3799Vd9/vnnxT43NzdXL7zwwllfozRatmyp4ODgEscEBwerZcuWyszM1KpVq9SjRw+PYq6zUOnt4/lFleUcv/baa5Kka665xm1c3bp1dckll2jr1q2SpAEDBnjMtXPnTsXGxmrq1Kmlyv3iHD9+XIsWLVJkZGSF5r7k+Jq
"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()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "f87691fd",
"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
}