350 lines
88 KiB
Plaintext
350 lines
88 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 80,
|
|
"id": "a1dff6b4",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"import time\n",
|
|
"import csv\n",
|
|
"import matplotlib.pyplot as plt\n",
|
|
"from statistics import mean\n",
|
|
"import numpy as np"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 81,
|
|
"id": "66bfd079",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"from Builder.Builder import TextFileMazeBuilder\n",
|
|
"from Core.Benchmark import RunBenchmark\n",
|
|
"from MazeSolver.Solver import MazeSolver\n",
|
|
"from Observer_Command.ConsoleView import ConsoleView\n",
|
|
"from Strategies.BFS import BFS\n",
|
|
"from Strategies.DFS import DFS\n",
|
|
"from Strategies.AStar import AStar"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 82,
|
|
"id": "50c7010d",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"builder = TextFileMazeBuilder()\n",
|
|
"\n",
|
|
"mazes = {\n",
|
|
" \"small\": builder.build_from_file(\"Mazes/small.txt\"),\n",
|
|
" \"medium\": builder.build_from_file(\"Mazes/medium.txt\"),\n",
|
|
" \"large\": builder.build_from_file(\"Mazes/large.txt\"),\n",
|
|
" \"empty\": builder.build_from_file(\"Mazes/empty.txt\"),\n",
|
|
" \"no_exit\": builder.build_from_file(\"Mazes/no_exit.txt\"),\n",
|
|
"}"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 83,
|
|
"id": "7326fe7d",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"strategies = {\n",
|
|
" \"BFS\": BFS(),\n",
|
|
" \"DFS\": DFS(),\n",
|
|
" \"A*\": AStar()\n",
|
|
"}"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 84,
|
|
"id": "8d47b4cf",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Лабиринт: small\n",
|
|
"Testing BFS\n",
|
|
"BFS: time=0.05052728504649297 ms | visited=8.0 \n",
|
|
"Testing DFS\n",
|
|
"DFS: time=0.02667414290564401 ms | visited=8.0 \n",
|
|
"Testing A*\n",
|
|
"A*: time=0.04907028570804479 ms | visited=8.0 \n",
|
|
"Лабиринт: medium\n",
|
|
"Testing BFS\n",
|
|
"BFS: time=0.03876400062706255 ms | visited=10.0 \n",
|
|
"Testing DFS\n",
|
|
"DFS: time=0.03143985668430105 ms | visited=10.0 \n",
|
|
"Testing A*\n",
|
|
"A*: time=0.042394856791361235 ms | visited=10.0 \n",
|
|
"Лабиринт: large\n",
|
|
"Testing BFS\n",
|
|
"BFS: time=0.9620827144577301 ms | visited=197.0 \n",
|
|
"Testing DFS\n",
|
|
"DFS: time=0.8404238573608122 ms | visited=197.0 \n",
|
|
"Testing A*\n",
|
|
"A*: time=1.04237128575083 ms | visited=197.0 \n",
|
|
"Лабиринт: empty\n",
|
|
"Testing BFS\n",
|
|
"BFS: time=0.010339713948529347 ms | visited=2.0 \n",
|
|
"Testing DFS\n",
|
|
"DFS: time=0.007900571810231278 ms | visited=2.0 \n",
|
|
"Testing A*\n",
|
|
"A*: time=0.009533572145820861 ms | visited=2.0 \n",
|
|
"Лабиринт: no_exit\n",
|
|
"Testing BFS\n",
|
|
"BFS: time=0.00666371410521346 ms | visited=1.0 \n",
|
|
"Testing DFS\n",
|
|
"DFS: time=0.005225571450344952 ms | visited=1.0 \n",
|
|
"Testing A*\n",
|
|
"A*: time=0.006098571507858911 ms | visited=1.0 \n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"results = []\n",
|
|
"\n",
|
|
"N = 7\n",
|
|
"\n",
|
|
"for maze_name, maze in mazes.items():\n",
|
|
"\n",
|
|
" print(f\"Лабиринт: {maze_name}\")\n",
|
|
"\n",
|
|
" for strategy_name, strategy in strategies.items():\n",
|
|
"\n",
|
|
" total_time = 0\n",
|
|
" total_visited = 0\n",
|
|
"\n",
|
|
" print(f\"Testing {strategy_name}\")\n",
|
|
"\n",
|
|
" for _ in range(N):\n",
|
|
"\n",
|
|
" solver = MazeSolver(maze, strategy)\n",
|
|
"\n",
|
|
" start_time = time.perf_counter()\n",
|
|
"\n",
|
|
" stats, path = solver.solve()\n",
|
|
"\n",
|
|
" end_time = time.perf_counter()\n",
|
|
"\n",
|
|
" elapsed_ms = (end_time - start_time) * 1000\n",
|
|
"\n",
|
|
" total_time += elapsed_ms\n",
|
|
" total_visited += stats.visited_cells\n",
|
|
"\n",
|
|
"\n",
|
|
" avg_time = total_time / N\n",
|
|
" avg_visited = total_visited / N\n",
|
|
"\n",
|
|
" results.append({\n",
|
|
" \"maze\": maze_name,\n",
|
|
" \"strategy\": strategy_name,\n",
|
|
" \"time_ms\": round(avg_time, 3),\n",
|
|
" \"visited_cells\": int(avg_visited),\n",
|
|
" })\n",
|
|
"\n",
|
|
" print(\n",
|
|
" f\"{strategy_name}: \"\n",
|
|
" f\"time={avg_time} ms | \"\n",
|
|
" f\"visited={avg_visited} \"\n",
|
|
" )"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 85,
|
|
"id": "347cb7be",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"\n",
|
|
"CSV saved: results.csv\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"csv_file = \"results.csv\"\n",
|
|
"\n",
|
|
"with open(csv_file, \"w\", newline=\"\", encoding=\"utf-8\") as file:\n",
|
|
"\n",
|
|
" writer = csv.writer(file)\n",
|
|
"\n",
|
|
" writer.writerow([\n",
|
|
" \"maze\",\n",
|
|
" \"strategy\",\n",
|
|
" \"time_ms\",\n",
|
|
" \"visited_cells\",\n",
|
|
" ])\n",
|
|
"\n",
|
|
" for row in results:\n",
|
|
" writer.writerow([\n",
|
|
" row[\"maze\"],\n",
|
|
" row[\"strategy\"],\n",
|
|
" row[\"time_ms\"],\n",
|
|
" row[\"visited_cells\"],\n",
|
|
" ])\n",
|
|
"\n",
|
|
"print(f\"\\nCSV saved: {csv_file}\")"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 86,
|
|
"id": "4b6fb0b0",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Результаты:\n",
|
|
"small | BFS | 0.051 ms | 8 visited \n",
|
|
"small | DFS | 0.027 ms | 8 visited \n",
|
|
"small | A* | 0.049 ms | 8 visited \n",
|
|
"medium | BFS | 0.039 ms | 10 visited \n",
|
|
"medium | DFS | 0.031 ms | 10 visited \n",
|
|
"medium | A* | 0.042 ms | 10 visited \n",
|
|
"large | BFS | 0.962 ms | 197 visited \n",
|
|
"large | DFS | 0.84 ms | 197 visited \n",
|
|
"large | A* | 1.042 ms | 197 visited \n",
|
|
"empty | BFS | 0.01 ms | 2 visited \n",
|
|
"empty | DFS | 0.008 ms | 2 visited \n",
|
|
"empty | A* | 0.01 ms | 2 visited \n",
|
|
"no_exit | BFS | 0.007 ms | 1 visited \n",
|
|
"no_exit | DFS | 0.005 ms | 1 visited \n",
|
|
"no_exit | A* | 0.006 ms | 1 visited \n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"\n",
|
|
"print(\"Результаты:\")\n",
|
|
"\n",
|
|
"for row in results:\n",
|
|
"\n",
|
|
" print(\n",
|
|
" f\"{row['maze']} | \"\n",
|
|
" f\"{row['strategy']} | \"\n",
|
|
" f\"{row['time_ms']} ms | \"\n",
|
|
" f\"{row['visited_cells']} visited \"\n",
|
|
" )\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "95a41c2e",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "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xYoVkqRWrVpdcu6LadeunaZNm6bFixdr1KhR9vi//vUvZWRkOF3CVpTPwTzLli3Thg0b9Msvv1xVjhfKu4n9vn37Cm3Ct2vXTv/85z+1YsUK3XvvvfZ43krMC+sq6mcxAKDkoCkFALhuNW/eXHPmzNHQoUPVpEkTPfHEE6pXr55ycnK0c+dOzZs3T/Xr13doSlWsWFE9evTQ+PHjFR0drcWLF2vt2rWaOnWqypQpI+l8I2T58uUaOnSoevXqpT///FOTJk1SdHS0y29RO3LkiH766Sf7X+enTJkiPz8/1alT57JrGjlypP71r3/pjjvu0KhRo9SgQQPZbDbFx8fr22+/1dNPP61bb731io7XvHnzdNddd7n8OvY8EydO1Nq1a9WiRQuNGDFCtWvXVmZmpg4dOqRVq1Zp7ty5l1yVlpSUZL8fU3JysmbNmiXDMJwu74qIiNCdd96pl156yf7te//5z38cVtJcaT4PPfSQqlWrphtuuKHQPN966y21bNlSrVq10hNPPKGYmBidPn1aBw4c0MqVK+336bkSc+fO1euvv+7yErii2LlzpxITE5Wdna2dO3dq7dq1atOmjdO4AwcOKDk5WVlZWfr+++/173//W08++eQV551nypQp6tChg9q2batnnnlGvr6+mj17tv7973/r008/lWEYSktL05w5czR58mT7cXSHmJgYTZw4US+88IL++9//qnPnzipbtqyOHz+u7du3KzAwUBMmTLiiubdu3Sp/f3+tXLnyouPGjx+vvXv3aufOnZd16eWNN96oGjVq6Pnnn5dpmipXrpxWrlyptWvXOoxLSEjQO++8o2nTpqlv375FWhF2MR06dFCnTp00ZswYpaen6/bbb7d/+17jxo2d7qlWlM/BPHPnztWwYcOKdHnm5QgNDdX333+v7OxsVa1a1eWYfv366d1331X//v116NAh3XTTTfrhhx80efJkde3aVe3bt3cY787PYgDA9YGmFADguvbYY4+pWbNmmjFjhqZOnarExET5+PioVq1a6tu3r9M/0Bs1aqSBAwdq3Lhx+uOPP1SxYkW9+eabDqsLBg4cqBMnTmju3LlasGCBqlevrueff15Hjhxx+Y/h+fPna/78+TIMQ+XKlVPDhg31zTffuLyB8qUEBgZq8+bNeu211zRv3jwdPHhQAQEBqlq1qtq3b29fPXMlfHx8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YYOOHTum77//Xm+++abGjx+v7t27q2zZstq2bZuGDBmiIUOG6M8//7TPGRwcrEWLFmnv3r1666239P7772vGjBnFVSLgNh9++KEiIiK0fft2DR8+XE888YTuv/9+tWjRQr/++qs6deqkRx55RGfPnlVCQoJat26tRo0a6eeff9bq1at1/Phx9e7d2z7fs88+q++++06ff/65vv32W23cuFG//PKLW3IdP3683nnnHf3444/6888/1bt3b82cOVP/+Mc/9PXXX2vt2rV6++233bIvwNOys7M1adIk/fbbb1qxYoUOHjyoAQMGOI177rnnNGXKFO3bt08NGjTQ6NGjtWXLFn355Zdau3atNm/erF9//dVhm4EDB2rLli367LPPtHv3bt1///3q3Lmz/vjjDw9VB1wbL774ohYuXKg5c+Zoz549GjVqlB5++GFt2rTJPuZK/r/jww8/lLe3t7Zt26ZZs2ZpxowZ+uCDDyRJy5cvV+XKlTVx4kQlJCQoISFBgYGBeuCBB7Rw4UKHeRYuXKhevXopODj42h8M4Cp8+OGHCgwM1LZt2zRt2jRNnDhRa9eulWmauueee3Ty5Elt2rRJa9euVVxcnPr06VOkedesWaOHH35YI0aM0N69e/Xee+9p0aJFevXVVyVJL7zwgmJiYjR48GBJ0ty5c/X999/r448/lsXi3KLYvn27JGndunVKSEjQ8uXL3XQEcF0wgVLil19+MSWZhw4dcnquf//+ZrVq1Uyr1WqP1a5d22zVqpX9cW5urhkYGGh++umnhe5j2rRpZpMmTeyPx40bZzZs2NBhP3fffffVFQJcY61btzZbtmxpf5z33n/kkUfssYSEBFOSuXXrVvOll14yO3bs6DDHn3/+aUoy9+/fb54+fdr09fU1P/vsM/vzKSkpZkBAgPnUU0/ZY9WqVTNnzJhhmqZpHjx40JRk7ty50/58amqqKcn87rvvTNM0ze+++86UZK5bt84+ZsqUKaYkMy4uzh57/PHHzU6dOl3NIQE8qnXr1g7nRkHbt283JZmnT582TTP/PFixYoV9THp6uunj42MuXbrUHjt16pRZpkwZ+7wHDhwwDcMwjx496jB/u3btzLFjx7q3IMCDzpw5Y/r7+5s//vijQ3zQoEHmgw8+eMX/39G6dWuzTp06ps1ms8fGjBlj1qlTx/644P+P5dm2bZvp5eVlP9eSkpJMHx8fc+PGjW6pF7hWLvx90DRN85ZbbjHHjBljfvvtt6aXl5cZHx9vf27Pnj2mJHP79u2XnLtVq1bm5MmTHWIff/yxGR0dbX8cFxdnBgcHm2PGjDHLlCljLl682GG8JPPzzz83TdP1740oPbghAUqNhg0bql27drrpppvUqVMndezYUb169VLZsmUlSfXq1XPovEdGRqp+/fr2x15eXgoPD3e4bGLZsmWaOXOmDhw4oDNnzig3N1chISGeKwq4Rho0aGD/77z3/k033WSPRUZGSpJOnDihX375Rd99952CgoKc5omLi9O5c+eUnZ2t5s2b2+PlypVT7dq13Z5rZGSk/XLagrG8v6ABJc3OnTs1fvx47dq1SydPnrRfthAfH6+6devaxzVt2tT+3//973+Vk5OjZs2a2WOhoaEO59yvv/4q0zRVq1Yth/1lZWUpPDz8WpUDXHN79+5VZmamOnTo4BDPzs5W48aN7Y+v5P87brvtNhmGYX/cvHlzvfHGG7JarfLy8nKZT7NmzVSvXj199NFHev755/Xxxx+ratWquuOOO66qTsATCp4nkhQdHa0TJ05o3759qlKliqpUqWJ/rm7dugoLC9O+fft0yy23XHTeX375RTt27LCvjJIkq9WqzMxMnT171n4+Tp8+XY8//rj69Omjhx56yL3FocSgKYVSw8vLS2vXrtWPP/6ob7/9Vm+//bZeeOEFbdu2TZLk4+PjMN4wDJexvH8Q/PTTT3rggQc0YcIEderUSaGhofrss89c3isHKGkudT7k/VJus9lks9l01113aerUqU7zREdHX9GlQHkNYvN/l9dKKvR+bRfmdbHzFihJMjIy1LFjR3Xs2FGLFy9W+fLlFR8fr06dOik7O9thbGBgoP2/886bgv94LhiXzp+7Xl5e+uWXX5z+Me2qwQyUFHmf919//bUqVark8Jyfn5/i4uIkefb/OwYPHqx33nlHzz//vBYuXKiBAwc6nZ/A9aiw88I0TZfv4cLiF7LZbJowYYJ69uzp9Jy/v7/9v7///nt5eXnp0KFDys3N5Us8/qK4pxRKFcMwdPvtt2vChAnauXOnfH199fnnn1/RXFu2bFG1atX0wgsvqGnTprrhhht0+PBhN2cMXP9uvvlm7dmzRzExMapZs6bDT2BgoGrWrCkfHx/99NNP9m1SU1P1f//3f4XOmfdNfAkJCfYYX/OLv5r//Oc/Sk5O1muvvaZWrVrpxhtvdFitW5gaNWrIx8fHYZVHenq6Q4O4cePGslqtOnHihNN5yzcaoSSrW7eu/Pz8FB8f7/TeLriq40oU/P+xvMc33HCDvbHr6+srq9XqtN3DDz+s+Ph4zZo1S3v27FH//v2vKg+guNWtW1fx8fEO99rdu3ev0tLSVKdOnUtuf/PNN2v//v1O52jNmjXtf5hcsmSJli9fro0bN+rPP//UpEmTCp3P19dXklyefyj5aEWi1Ni2bZvWr1+vjh07qkKFCtq2bZuSkpJUp04d7d69+7Lnq1mzpuLj4/XZZ5/plltu0ddff33FDS6gJBs2bJjef/99Pfjgg3r22WcVERGhAwcO6LPPPtP777+voKAgDRo0SM8++6zCw8MVGRmpF154weWNKvMEBATotttu02uvvaaYmBglJyfrxRdf9GBVQPGrWrWqfH199fbbb2vIkCH697//fdFfyvMEBwerf//+9m+PrVChgsaNGyeLxWL/C3atWrX00EMPqV+/fnrjjTfUuHFjJScna8OGDbrpppvUtWvXa10ecE0EBwfrmWee0ahRo2Sz2dSyZUulp6frxx9/VFBQkKpVq3bFc//5558aPXq0Hn/8cf366696++23HVbIx8TE6Pvvv9cDDzwgPz8/RURESJLKli2rnj176tlnn1XHjh1VuXLlq64TKE7t27dXgwYN9NBDD2nmzJnKzc3V0KFD1bp1a4fLyQvz8ssvq3v37qpSpYruv/9+WSwW7d69W7///rteeeUVHTlyRE888YSmTp2qli1batGiRerWrZu6dOmi2267zWm+ChUqKCAgQKtXr1blypXl7++v0NDQa1E6igErpVBqhISE6Pvvv1fXrl1Vq1Ytvfjii3rjjTfUpUuXK5rv7rvv1qhRo/Tkk0+qUaNG+vHHH/XSSy+5OWvg+lexYkVt2bJFVqtVnTp1Uv369fXUU08pNDTU3nh6/fXXdccdd6hHjx5q3769WrZsqSZNmlx03gULFignJ0dNmzbVU089pVdeecUT5QDXjfLly2vRokVaunSp6tatq9dee03Tp08v0rZvvvmmmjdvru7du6t9+/a6/fbbVadOHYfLIhYuXKh+/frp6aefVu3atdWjRw9t27btqleTAMVt0qRJevnllzVlyhTVqVNHnTp1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FsdfdRo3bixJeu2113T69OmLvhZFORbffPON/P399eijjxY5v0uxWq3Kzc3V6dOnNX/+fJ06dcrpPTV37lzdfPPN8vf3t79H169fX+glkFdiw4YNkuT0Wt1///0KDAy0v1Zr166V1WrVsGHDCp3rxx9/1MmTJ9W/f3+H42mz2dS5c2ft2LHD6RLVK3El+8k73nk/BS+VvNCF55vNZrvk2KJ69tln1a1bNz344IP68MMP9fbbb+umm24q8vZff/217rvvPjVq1KjQFVLS+XPqYueTu1+ryz3nJWnevHl64okn1KtXL1ZIAUApR1MKAFDiREREqEyZMjp48OBlbRcVFVVoLCUlRdL5y6p69+6tSpUqafHixdq6dat27NihRx99VJmZmU7bT5o0ST4+PvL399cdd9yhmjVrumz4jBkzRj4+Pg4/e/bscRhz/Phx7d6922lccHCwTNN0uvfN7NmzncauWrWq0PqTk5P14osv6vnnn1dsbKzT88ePH9fKlSud5qxXr559+0tZsmSJPv/8czVt2lTTp09Xenq6w/N5xzk6Otpp24oVK9qfL5izdP41L4qsrCyNGDFCAwYMUPPmzZ2e79Chg5566im99tprCgkJsddY8DIzqejHIikpSRUrVnRqfl2N9u3by8fHRyEhIRo8eLAGDRqkQYMG2Z9/88039cQTT+jWW2/Vv/71L/3000/asWOHOnfubG/iuUNKSoq8vb1Vvnx5h7hhGIqKirK/VklJSZKkypUrFzpX3n3WevXq5XRMp06dKtM07ZclXo0r2U9UVJTDuNtuu83l3BkZGU5z9unTx+XYPXv22MeUKVNGDRo00HvvvXfR3PPu8ZaZmamoqKhL3kvqQj179tTtt9+u7du3a+XKlYWOS05Ovuj55O7X6nLP+WPHjmnIkCFq3bq1VqxY4fAHAwBA6eNd3AkAAHC5vLy81K5dO33zzTc6cuTIRf8xXFBiYmKhsfDwcEnn76USGxurJUuWONw8uOD9cwp67LHH9Le//U2maerYsWOaPHmymjdvrl27dik4ONg+7qmnntLDDz/ssO0DDzzg8DgiIkIBAQFasGCBy31d+A/J3r1769lnn3WIjRo1Sn/++afL7ceOHauwsDA999xzhc7foEEDvfrqqy6fr1ixost4Qb6+vvrmm29Uo0YN3XTTTRo2bJg+/vhj+/N5xzkh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tWrVqnrbDMPz4lmmadbLjnS0fUJDQxUaGlovt9vt9T7GsObkOZK3eWMfj+hNbhiGV7mvaqcneqInempOTk/0RE/0dLScnuiJnujpaDk90ZO/e6qZHxiGccx5Q0uq+9iN1dFQHhoaqtTUVElSamqqpk+friFDhujAgQPWKrC4uDhrn7o+/PBDXXnllbrpppusrFevXsd8zBrezFKO1LS9WtikSZP0wQcf6KuvvlKHDh2sPCUlRZI8luxJ0v79+5WcnGztU1lZWW9pWN19AAAAAAAATgbFxcV6++231bVrVyUkJBxz/5SUFH377bfavn27H6rz1KpDKdM0deedd+q9997Tl19+qczMTI/tmZmZSklJ0bJly6yssrJSK1as0FlnnSVJGjhwoIKDgz32yc3N1c8//2ztAwAAAAAAEKg+/PBDRUVFKSoqSg6HQx988IGWLFnisWLpmmuusfaJiorS+++/L0maOXOmYmNj1alTJ/Xo0UMTJkzQX//613pvt2wJrfr2vTvuuEPvvPOO/u///k8Oh8NaERUTE6Pw8HAZhqHJkyfrscceU7du3dStWzc99thjioiI0LXXXmvtO3HiRE2bNk0JCQmKj4/XPffco969e2vkyJGt2R4AAAAAAECLGz58uF588UVJUn5+vl544QWNHTtWa9euVUZGhiRp3rx5HnOSum/3++c//6mff/5ZK1as0OrVqzV+/Hi9+uqr+uSTT5r8VrzmaNWhVM0TNmzYMI98wYIFmjBhgiTpvvvuU1lZmW6//XYVFBTojDPO0GeffSaHw2HtP2/ePAUFBenKK69UWVmZfv3rX2vhwoWNvo8VAAC0noKsR1q7BJ972bW2tUtoEdNvv7q1S/C9z69r7QoAAPC5yMhIde3a1bo9cOBAxcTE6JVXXtEf/3j4Yu0pKSke+xypV69e6tWrl+644w6tWrVK5557rlasWKHhw4e3WN2tOpRqygf/GYahWbNmadasWY3uExYWpueee07PPfecD6sDAAAAAABoe2o+Ba+srKxZ9+/Zs6ckqaSkxJdl1XPCfPoeAAAAAAAAvFdRUWFdEqmgoEDPP/+8iouLddFFFx3zvr///e+VlpamESNGqEOHDsrNzdUf//hHtWvXTmeeeWaL1s1QCgAAAAAAoAFxXWa0dglN8sknn1jXiHI4HPrVr36ld999t97lkhoycuRIvf7663rxxReVl5enxMREnXnmmfriiy+a9Ol9x4OhFAAAAAAAQBu1cOFCLVy48Kj7HO3ySZdddpkuu+wyH1fVNC13CXUAAAAAAACgEQylAAAAAAAA4HcMpQAAAAAAAOB3DKUAAAAAAADgdwylAAAAAAAA4HcMpQAAAAAAAOB3DKUAAAAAAADgdwylAAAAAAAA4HcMpQAAAAAAAOB3DKUAAAAAAADgd0GtXQAAAAAAAMCJ6Il/X+TXx5ve/e9e32fChAl64403JElBQUGKj49Xnz59dM0112jChAmy2Q6vR+rUqZO2b9/ucd/27dtr165dkqT/9//+n+bOnat//etfcrvd6tixo8477zw99dRTx9lV41gpBQAAAAAA0Iadd955ys3NVU5Ojv7xj39o+PDhuvvuu3XhhRequrra2u/hhx9Wbm6u9fXDDz9Ikj7//HNdffXVuvzyy7V27VqtW7dOjz76qCorK1u0blZKAQAAAAAAtGGhoaFKSUmRdHj104ABAzR48GD9+te/1sKFC3XTTTdJkhwOh7VfXR9++KHOOecc3XvvvVbWvXt3jRs3rkXrZqUUAAAAAABAgBkxYoT69u2r995775j7pqSk6JdfftHPP//sh8pqMZQCAAAAAAAIQL/61a+Uk5Nj3Z4+fbqioqKsr2effVaSNGnSJJ122mnq3bu3OnXqpKuvvlqvv/66KioqWrQ+3r4HAAAAAAAQgEzTlGEY1u17771XEyZMsG4nJiZKkiIjI/XRRx8pKytLX331lb799ltNmzZNzzzzjP75z38qIiKiRepjpRQAAAAAAEAA2rx5szIzM63biYmJ6tq1q/UVGxvrsX+XLl1000036dVXX9X69eu1adMmLVmypMXqYygFAAAAAAAQYL788kv99NNPuuyyy5p1/06dOikiIkIlJSU+rqwWb98DAAAAAABowyoqKrR37165XC7t27dPn3zyiebMmaMLL7xQ119//THvP2vWLJWWlur8889XRkaGCgsL9eyzz6qqqkqjRo1qsboZSgEAAAAAADRgeve/t3YJTfLJJ58oNTVVQUFBiouLU9++ffXss89q/PjxstmO/Sa5oUOH6n//9391/fXXa9++fYqLi1P//v312WefqUePHi1WN0MpAAAAAACANmrhwoVauHDhMfer+yl8Rxo+fLiGDx/uu6KaiGtKAQAAAAAA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L1q/fr3cbrcmTpyo6667zuPC5wAAAAAAAEBjvB5KSVJ4eLhuvPFG3Xjjjb6uBwAAAAAAACcBr4dSzz777FG333XXXc0uBgAAAAAAACcHr4dSkydPVocOHWS32+ttMwyDoRQAAAAAAACOqVlv3/v++++VlJTk61oAAAAAAABwkrB5ewfDMGQYRkvUAgAAAAAAgJOE1yulTNPUjBkzFBMTo8jISKWlpal///4aOHBgS9QHAAAAAACAAOT1UGrIkCH617/+paqqKhUVFSk3N1f5+fnq27evPvroI6WlpbVEnQAAAAAAAAggXg+lli9fXi/LysrS9ddfr2nTpukvf/mLL+oCAAAAAABAAPP6mlIN6dKli5555hnt3r3bF4cDAAAAAABAgPPJUEqSBg0apJUrV/rqcAAAAAAAAAhgXg+lPv744wbzrVu36pxzzjnuggAAAAAAABD4vB5KXXXVVfrrX//qkc2bN0/9+vXTKaec4rPCAAAAAAAAELi8vtD53/72N11xxRUqKirSsGHDNGHCBO3cuVP/7//9P5133nktUSMAAAAAAAACjNdDqTFjxujjjz/WRRddpIqKCl177bX6+OOPFR0d3RL1AQAAAAAAIAA160Ln55xzjr766is5HA4lJyczkAIAAAAAAIBXvF4pdemll1r/Tk1N1eOPP65vvvlG8fHxkqT33nvPd9UBAAAAAAAgIHk9lIqJibH+3b9/f/Xv39+nBQEAAAAAACDweT2UWrBgQUvUAQAAAAAAgJNIs64pBQAAAAAAABwPhlIAAAAAAADwO4ZSAAAAAAAA8DuGUgAAAAAAAPA7nw6lSktLfXk4AAAAAAAABCivh1LDhg3Trl276uVr1qxRv379fFETAAAAAAAAApzXQ6no6Gj16dNHixcvliS53W7NmjVLQ4YM0cUXX+zzAgEAAAAAABB4gry9wwcffKA///nPuummm/TBBx8oJydHO3bs0EcffaSRI0e2RI0AAAAAAAAIMF4PpSTptttu0/bt2/XEE08oKChIy5cv11lnneXr2gAAAAAAABCgvH77XkFBgS677DK9+OKLeumll3TllVdq9OjReuGFF1qiPgAAAAAAAAQgr1dK9erVS5mZmfrhhx+UmZmpm2++WUuWLNHtt9+ujz76SB999FFL1AkAAAAAAIAA4vVKqdtuu00rV65UZmamlV111VX6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iouLlZ6ergsuuEAzZ86U3W4XAAAAAAAATkxeD6XqDqAMw1CHDh2aPZQaNmyYjnad9WNdgz09Pf2YF14HAAAAAADAicd27F0AAAAAAAAA3zquoZRhGNZ1pQAAAAAAAICm8vrte3FxcdYgqri4WP3795fNVjvbys/P9111AAAAAAAACEheD6Xmz5/fAmUAAAAAAADgZOL1UGr8+PEtUQcAAAAAAABOIl4PpYqKio66PTo6utnFAAAAAAAA4OTg9VAqNja2wYubm6YpwzDkcrl8UhgAAAAAAAACl9dDqa+++krS4SHU+eefr1dffVXt27f3eWEAAAAAAAAIXF4PpYYOHWr92263a/DgwercubNPiwIAAAAAAEBgs7V2AQAAAAAAADj5HPdQqqHrSwEAAAAAAABH4/Xb9/r3728NosrKynTRRRcpJCTE2r5+/XrfVQcAAAAAAICA5PVQaty4cda/L7nkEl/WAgAAAAAAgJOE10OpmTNntkQdAAAAAAAAOIk065pShYWFevXVV/XAAw8oPz9f0uG37e3evdunxQEAAAAAACAwNWml1C+//KIePXooKChIGzdu1MiRIxUTE6OcnBzdfPPNio+P19KlS7V9+3a9+eabLV0zAAAAAAAA2rgmrZQaPHiwduzYIUmaMmWKJkyYoK1btyosLMzaZ+zYsVq5cmXLVAkAAAAAAICA0qSVUps2bVL79u0lSd9//71efvnlevu0b99ee/fu9W11AAAAAAAACEhNWin1wgsvqLCwUJIUFhamoqKievts2bJF7dq182lxAAAAAAAACExNGkr9+OOPqqiokCRdcsklevjhh1VVVSVJMgxDO3bs0P3336/LLrus5SoFAAAAAABAwGjSUOrjjz9WamqqJOnJJ5/UgQMHlJSUpLKyMg0dOlRdu3aVw+HQo48+2qLFAgAAAAAAIDA06ZpSdUVHR2vVqlX68ssvtX79erndbg0YMEAjR45sifoAAAAAAAAQgLweStUYMWKERowY4ZHVfEKfYRhKT08/vsoAAAAAAAAQsLweSm3cuLHBvLKyUmeccYb69u2r0NBQ/fOf/zzu4gAAAAAAABCYvB5K9evXT4ZhyDTNetsMw9D69et9UhgAAAAAAAACl9dDqezs7Abz8vJy9ezZ87gLAgAAAAAAQODzeiiVkZHRYF5RUXHcxQAAAAAAAODkYGvt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097M2tdGpNOt9C3Vyk+z62Cd13YgnE+B+DOCnuiJnuiJntp+TwUFBWoKw2xDH6f317/+Vddee6127NihtLQ0SdKSJUsUFRWljIwMZWdna8aMGaqurta6desUGhra4HEaWilV80KIjj78C2KgTCYDcdpKT/RET/RET227p/xtjwTcSqmXq78LyJVS90y6qvb5UoCslPrk6to8AM6nQPwZQU/0RE/0RE9tv6fCwkLFxcXJ6XRac5aGeD2UuvzyyzVo0CDdf//9Hvmf/vQnrV27Vu+++643h/PKmDFjFBISor///e+N7pObm6uMjAwtXrxYl156aZOOW1RUpJiYmGM+WQAA4PgVZD3S2iX43Muuta1dQouYfvvVx96prfn8utauAACAgNfUOYvXn763YsUKXXDBBfXy8847TytXrvT2cE22fft2ff7557rpppuOul9qaqoyMjLqLUMDAAAAAADAicProVRxcXGD15QKDg62LhjeEhYsWKCkpKQGB2J15eXlaefOnUpNTT3qfgAAAAAAAGg9Xg+levXqpSVLltTLFy9erJ49ezZwj+Pndru1YMECjR8/XkFBtRetLC4u1j333KN//vOfysnJ0fLly3XRRRcpMTFRv/nNb1qkFgAAAAAAABw/rz99b8aMGbrsssuUlZWlESNGSJK++OIL/eUvf2mx60l9/vnn2rFjh2688UaP3G6366efftKbb76pwsJCpaamavjw4VqyZIkcDkeL1AIAAAAAAIDj5/VQ6uKLL9b777+vxx57TH/7298UHh6uPn366PPPP9fQoUNbokaNHj1aDV2PPTw8XJ9++mmLPCYAAAAAAABajtdDKUm64IILjnltJwAAAAAAAKAxXl9TSpIKCwv16quv6n/+53+Un58vSVq/fr12797t0+IAAAAAAAAQmLxeKbVx40aNHDlSMTExysnJ0U033aT4+HgtXbpU27dv15tvvtkSdQIAAAAAACCAeL1SaurUqZowYYK2bt2qsLAwKx87dqxWrlzp0+IAAAAAAAAQmLweSn333Xe69dZb6+Xt27fX3r17fVIUAAAAAAAAApvXQ6mwsDAVFRXVy7ds2aJ27dr5pCgAAAAAAAAENq+HUpdccokefvhhVVVVSZIMw9COHTt0//3367LLLvN5gQAAAAAAAAg8Xg+lnnzySR04cEBJSUkqKyvT0KFD1bVr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Zs3S888/r9WrV2vnzp268sorNX/+fL3zzjv66KOPtGzZMj333HM+eSzA3yorK/XII4/oxx9/1Pvvv6/s7GxNmDCh3n733Xef5syZo82bN6tPnz6aOnWqvvnmG33wwQdatmyZvv76a61fv97jPjfccIO++eYbLV68WBs3btQVV1yh8847T1u3bvVTd0DL+MMf/qAFCxboxRdf1C+//KIpU6bot7/9rVasWGHt05z/drzxxhsKCgrSmjVr9Oyzz2revHl69dVXJUnvvfeeOnTooIcffli5ubnKzc1VZGSkrr76ai1YsMDjOAsWLNDll18uh8PR8k8GcBzeeOMNRUZGas2aNZo7d64efvhhLVu2TKZpaty4ccrPz9eKFSu0bNkyZWVl6aqrrmrScT/99FP99re/1V133aVNmzbppZde0sKFC/Xoo49Kkh588EF16tRJN910kyTpz3/+s1auXKm33npLNlv9EcXatWslSZ9//rlyc3P13nvv+egZwAnBBALEunXrTElmTk5OvW3jx483MzIyTJfLZWU9evQwzz33XOt2dXW1GRkZaf7lL39p9DHmzp1rDhw40Lo9c+ZMs2/fvh6Pc8kllxxfI0ALGzp0qHnOOedYt2te+7/73e+sLDc315Rk/vOf/zRnzJhhjh492uMYO3fuNCWZW7ZsMQ8dOmSGhISYixcvtrbn5eWZ4eHh5t13321lGRkZ5rx580zTNM3s7GxTkvnDDz9Y2wsKCkxJ5ldffWWapml+9dVXpiTz888/t/aZM2eOKcnMysqysltvvdUcM2bM8TwlgF8NHTrU49yoa+3ataYk89ChQ6Zp1p4H77//vrVPUVGRGRwcbL777rtWVlhYaEZERFjH3bZtm2kYhrl7926P4//61782H3jgAd82BPhRcXGxGRYWZq5evdojnzhxonnNNdc0+78dQ4cONU855RTT7XZb2fTp081TTjnFul33v2M11qxZY9rtdutcO3DggBkcHGwuX77cJ/0CLeXI3wdN0zRPO+00c/r06eZnn31m2u12c8eOHda2X375xZRkrl279pjHPvfcc83HHnvMI3vrrbfM1NRU63ZWVpbpcDjM6dOnmxEREeaiRYs89pdkLl261DTNhn9vRODgggQIGH379tWvf/1r9e7dW2PGjNHo0aN1+eWXKy4uTpJ06qmnekzek5OT1atXL+u23W5XQkKCx9sm/va3v2n+/Pnatm2biouLVV1drejoaP81BbSQPn36WP+uee337t3bypKTkyVJ+/fv17p16/TVV18pKiqq3nGysrJUVlamyspKnXnmmVYeHx+vHj16+LzW5ORk6+20dbOav6ABbc0PP/ygWbNmacOGDcrPz7fetrBjxw717NnT2m/QoEHWv//zn/+oqqpKp59+upXFxMR4nHPr16+XaZrq3r27x+NVVFQoISGhpdoBWtymTZtUXl6uUaNGeeSVlZXq37+/dbs5/+0YPHiwDMOwbp955pl66qmn5HK5ZLfbG6zn9NNP16mnnqo333xT999/v9566y117NhRQ4YMOa4+AX+oe55IUmpqqvbv36/NmzcrPT1d6enp1raePXsqNjZWmzdv1mmnnXbU465bt07fffedtTJKklwul8rLy1VaWmqdj08++aRuvfVWXXXVVbruuut82xzaDIZSCBh2u13Lli3T6tWr9dlnn+m5557Tgw8+qDVr1kiSgoODPfY3DKPBrOb/EHz77be6+uqrNXv2bI0ZM0YxMTFavHhxg9fKAdqaY50PNb+Uu91uud1uXXTRRXriiSfqHSc1NbVZbwWqGRCb/317raRGr9d2ZF1HO2+BtqSkpESjR4/W6NGjtWjRIrVr1047duzQmDFjVFlZ6bFvZGSk9e+a86bu/3mum0uHz1273a5169bV+z/TDQ2Ygbai5uf9Rx99pPbt23tsCw0NVVZWliT//rfjpptu0vPPP6/7779fCxYs0A033FDv/ARORI2dF6ZpNvgabiw/ktvt1uzZs3XppZfW2xYWFmb9e+XKlbLb7crJyVF1dTUf4nGS4ppSCCiGYejss8/W7Nmz9cMPPygkJERLly5t1rG++eYbZWRk6MEHH9SgQYPUrVs3bd++3ccVAye+AQMG6JdfflGnTp3UtWtXj6/IyEh17dpVwcHB+vbbb637FBQU6N///nejx6z5JL7c3Fwr42N+cbL517/+pYMHD+rxxx/Xueeeq1/96lceq3Ub06VLFwUHB3us8igqKvIYEPfv318ul0v79++vd97yiUZoy3r27KnQ0FDt2LGj3mu77qqO5qj737Ga2926dbMGuyEhIXK5XPXu99vf/lY7duzQs88+q19++UXjx48/rjqA1tazZ0/t2LHD41q7mzZtktPp1CmnnHLM+w8YMEBbtmypd4527drV+sPkkiVL9N5772n58uXauXOnHnnkkUaPFxISIkkNnn9o+xhFImCsWbNGX3zxhUaPHq2kpCStWbNGBw4c0CmnnKKNGzd6fbyuXbtqx44dWrx4sU477TR99NFHzR5wAW3ZHXfcoVdeeUXXXHON7r33XiUmJmrbtm1avHixXnnlFUVFRWnixIm69957lZCQoOTkZD344IMNXqiyRnh4uAYPHqzHH39cnTp10sGDB/WHP/zBj10Bra9jx44KCQnRc889p9tuu00///zzUX8pr+FwODR+/Hjr02OTkpI0c+ZM2Ww26y/Y3bt313XXXafrr79eTz31lPr376+DBw/qyy+/VO/evXX++ee3dHtAi3A4HLrnnns0ZcoUud1unXPOOSoqKtLq1asVFRWljIyMZh97586dmjp1qm699VatX79ezz33nMcK+U6dOmnlypW6+uqrFRoaqsTERElSXFycLr30Ut17770aPXq0OnTocNx9Aq1p5MiR6tOnj6677jrNnz9f1dXVuv322zV06FCPt5M35qGHHtKFF16o9PR0XXHFFbLZbNq4caN++ukn/fGPf9SuXbv0+9//Xk888YTOOeccLVy4UBdccIHGjh2rwYMH1zteUlKSwsPD9cknn6hDhw4KCwtTTExMS7SOVsBKKQSM6OhorVy5Uueff766d++uP/zhD3rqqac0duzYZh3vkksu0ZQpU3TnnXeqX79+Wr16tWbMmOHjqoETX1pamr755hu5XC6NGTNGvXr10t13362YmBhr8PSnP/1JQ4YM0cUXX6yRI0fqnHPO0cCBA4963Ndff11VVVUaNGiQ7r77bv3xj3/0RzvACaNdu3ZauHCh3n33XfXs2VOPP/64nnzyySbd9+mnn9aZZ56pCy+8UCNHjtTZZ5+tU045xeNtEQsWLND111+vadOmqUePHrr44ou1Zs2a415NArS2Rx55RA899JDmzJmjU045RWPGjNHf//5362Pjm+v6669XWVmZTj/9dN1xxx2aNGmSbrnlFmv7ww8/rJycHHXp0sVa8Vtj4sSJqqys1I033nhcNQAnAsMw9P777ysuLk5DhgzRyJEj1blzZy1ZsqRJ9x8zZow+/PBDLVu2TKeddpoGDx6sp59+WhkZGTJNUxMmTNDpp5+uO++8U5I0atQo3Xnnnfrtb3+r4uLiescLCgrSs88+q5deeklpaWm65JJLfNovWpdh1r0AAQAAANqckpIStW/fXk899ZQmTpzY2uUAbc6wYcPUr18/zZ8/v1n3f/vtt3X33Xdrz5491luNAADHxtv3AAAA2pgffvhB//rXv3T66afL6XTq4YcfliT+egz4WWlpqbKzszVnzhzdeuutDKQAwEu8fQ8AAKANevLJJ9W3b1+NHDlSJSUl+vrrr61r3ADwj7lz56pfv35KTk7WAw880NrlAH5x6qmnKioqqsGvt99+u7XLQxvD2/cAAAAAAECTbN++XVVVVQ1uS05OlsPh8HNFaMsYSgEAAAAAAMDvePseAAAAAAAA/I6hFAAAAAAAAPyOoRQAAAAAAAD8jqEUAAAAAAAA/I6hFAAAAAAAAPyOoRQAAAAAAAD8jqEUAAAAAAAA/O7/AyfGR/rhztA7AAAAAElFTkSuQmCC",
|
|
"text/plain": [
|
|
"<Figure size 1200x1000 with 2 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"<Figure size 640x480 with 0 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"# Список лабиринтов в том же порядке, что и в results (уникальные)\n",
|
|
"maze_names = [\"small\", \"medium\", \"large\", \"empty\", \"no_exit\"]\n",
|
|
"strategies = [\"BFS\", \"DFS\", \"A*\"]\n",
|
|
"\n",
|
|
"# Цвета для стратегий (можно взять из вашего примера или задать свои)\n",
|
|
"colors = {\"BFS\": \"#EEDC82\", \"DFS\": \"#88D94C\", \"A*\": \"#FF43A4\"}\n",
|
|
"\n",
|
|
"# Подготовим данные для графиков\n",
|
|
"time_data = {maze: {s: None for s in strategies} for maze in maze_names}\n",
|
|
"visited_data = {maze: {s: None for s in strategies} for maze in maze_names}\n",
|
|
"\n",
|
|
"for row in results:\n",
|
|
" maze = row[\"maze\"]\n",
|
|
" strat = row[\"strategy\"]\n",
|
|
" time_data[maze][strat] = row[\"time_ms\"]\n",
|
|
" visited_data[maze][strat] = row[\"visited_cells\"]\n",
|
|
"\n",
|
|
"fig, (ax1, ax2) = plt.subplots(2, 1, figsize=(12, 10))\n",
|
|
"\n",
|
|
"x = np.arange(len(maze_names))\n",
|
|
"width = 0.25 \n",
|
|
"multiplier = 0\n",
|
|
"\n",
|
|
"for strategy in strategies:\n",
|
|
" values = [time_data[maze][strategy] for maze in maze_names]\n",
|
|
" offset = width * multiplier\n",
|
|
" bars = ax1.bar(x + offset, values, width, label=strategy, color=colors[strategy])\n",
|
|
" multiplier += 1\n",
|
|
"\n",
|
|
"ax1.set_xticks(x + width, maze_names)\n",
|
|
"ax1.set_ylabel(\"Время (мс)\")\n",
|
|
"ax1.set_title(\"Сравнение времени выполнения алгоритмов\")\n",
|
|
"ax1.legend()\n",
|
|
"ax1.grid(axis='y', alpha=0.5, linestyle='--')\n",
|
|
"\n",
|
|
"\n",
|
|
"multiplier = 0\n",
|
|
"for strategy in strategies:\n",
|
|
" values = [visited_data[maze][strategy] for maze in maze_names]\n",
|
|
" offset = width * multiplier\n",
|
|
" ax2.bar(x + offset, values, width, label=strategy, color=colors[strategy])\n",
|
|
" multiplier += 1\n",
|
|
"\n",
|
|
"ax2.set_xticks(x + width, maze_names)\n",
|
|
"ax2.set_ylabel(\"Количество посещённых клеток\")\n",
|
|
"ax2.set_title(\"Сравнение количества посещённых клеток\")\n",
|
|
"ax2.legend()\n",
|
|
"ax2.grid(axis='y', alpha=0.5, linestyle='--')\n",
|
|
"\n",
|
|
"plt.tight_layout()\n",
|
|
"plt.savefig('analysis.png')\n",
|
|
"plt.show()\n",
|
|
"\n"
|
|
]
|
|
}
|
|
],
|
|
"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.12.3"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 5
|
|
}
|