From 6d17293486823171ad657bdbb634d4989b63dea5 Mon Sep 17 00:00:00 2001 From: kuznetsovTD Date: Mon, 25 May 2026 13:06:15 +0300 Subject: [PATCH] [2] task2 --- kuznetsovTD/tusk 2/__init__.py | 0 kuznetsovTD/tusk 2/builders/__init__.py | 0 kuznetsovTD/tusk 2/builders/maze_builder.py | 3 + .../tusk 2/builders/text_file_maze_builder.py | 52 +++++++++++++++ kuznetsovTD/tusk 2/experiments/__init__.py | 0 kuznetsovTD/tusk 2/experiments/benchmark.py | 42 ++++++++++++ .../tusk 2/experiments/plot_results.py | 36 +++++++++++ .../tusk 2/experiments/plots/empty.png | Bin 0 -> 38131 bytes .../tusk 2/experiments/plots/large.png | Bin 0 -> 32334 bytes .../tusk 2/experiments/plots/medium.png | Bin 0 -> 36945 bytes .../tusk 2/experiments/plots/no_exit.png | Bin 0 -> 42495 bytes .../tusk 2/experiments/plots/small.png | Bin 0 -> 34187 bytes kuznetsovTD/tusk 2/experiments/results.csv | 16 +++++ kuznetsovTD/tusk 2/main.py | 60 ++++++++++++++++++ kuznetsovTD/tusk 2/mazes/__init__.py | 0 kuznetsovTD/tusk 2/mazes/empty.txt | 10 +++ kuznetsovTD/tusk 2/mazes/large.txt | 50 +++++++++++++++ kuznetsovTD/tusk 2/mazes/medium.txt | 10 +++ kuznetsovTD/tusk 2/mazes/no_exit.txt | 10 +++ kuznetsovTD/tusk 2/mazes/small.txt | 5 ++ kuznetsovTD/tusk 2/models/__init__.py | 0 kuznetsovTD/tusk 2/models/cell.py | 13 ++++ kuznetsovTD/tusk 2/models/maze.py | 32 ++++++++++ kuznetsovTD/tusk 2/models/search_stats.py | 21 ++++++ kuznetsovTD/tusk 2/observer/__init__.py | 0 kuznetsovTD/tusk 2/observer/console_view.py | 37 +++++++++++ kuznetsovTD/tusk 2/observer/maze_event.py | 12 ++++ kuznetsovTD/tusk 2/observer/observer.py | 3 + kuznetsovTD/tusk 2/observer/subject.py | 13 ++++ kuznetsovTD/tusk 2/solver/__init__.py | 0 kuznetsovTD/tusk 2/solver/maze_solver.py | 31 +++++++++ kuznetsovTD/tusk 2/strategies/__init__.py | 0 .../tusk 2/strategies/astar_strategy.py | 45 +++++++++++++ kuznetsovTD/tusk 2/strategies/bfs_strategy.py | 31 +++++++++ kuznetsovTD/tusk 2/strategies/dfs_strategy.py | 30 +++++++++ .../tusk 2/strategies/pathfinding_strategy.py | 3 + 36 files changed, 565 insertions(+) create mode 100644 kuznetsovTD/tusk 2/__init__.py create mode 100644 kuznetsovTD/tusk 2/builders/__init__.py create mode 100644 kuznetsovTD/tusk 2/builders/maze_builder.py create mode 100644 kuznetsovTD/tusk 2/builders/text_file_maze_builder.py create mode 100644 kuznetsovTD/tusk 2/experiments/__init__.py create mode 100644 kuznetsovTD/tusk 2/experiments/benchmark.py create mode 100644 kuznetsovTD/tusk 2/experiments/plot_results.py create mode 100644 kuznetsovTD/tusk 2/experiments/plots/empty.png create mode 100644 kuznetsovTD/tusk 2/experiments/plots/large.png create mode 100644 kuznetsovTD/tusk 2/experiments/plots/medium.png create mode 100644 kuznetsovTD/tusk 2/experiments/plots/no_exit.png create mode 100644 kuznetsovTD/tusk 2/experiments/plots/small.png create mode 100644 kuznetsovTD/tusk 2/experiments/results.csv create mode 100644 kuznetsovTD/tusk 2/main.py create mode 100644 kuznetsovTD/tusk 2/mazes/__init__.py create mode 100644 kuznetsovTD/tusk 2/mazes/empty.txt create mode 100644 kuznetsovTD/tusk 2/mazes/large.txt create mode 100644 kuznetsovTD/tusk 2/mazes/medium.txt create mode 100644 kuznetsovTD/tusk 2/mazes/no_exit.txt create mode 100644 kuznetsovTD/tusk 2/mazes/small.txt create mode 100644 kuznetsovTD/tusk 2/models/__init__.py create mode 100644 kuznetsovTD/tusk 2/models/cell.py create mode 100644 kuznetsovTD/tusk 2/models/maze.py create mode 100644 kuznetsovTD/tusk 2/models/search_stats.py create mode 100644 kuznetsovTD/tusk 2/observer/__init__.py create mode 100644 kuznetsovTD/tusk 2/observer/console_view.py create mode 100644 kuznetsovTD/tusk 2/observer/maze_event.py create mode 100644 kuznetsovTD/tusk 2/observer/observer.py create mode 100644 kuznetsovTD/tusk 2/observer/subject.py create mode 100644 kuznetsovTD/tusk 2/solver/__init__.py create mode 100644 kuznetsovTD/tusk 2/solver/maze_solver.py create mode 100644 kuznetsovTD/tusk 2/strategies/__init__.py create mode 100644 kuznetsovTD/tusk 2/strategies/astar_strategy.py create mode 100644 kuznetsovTD/tusk 2/strategies/bfs_strategy.py create mode 100644 kuznetsovTD/tusk 2/strategies/dfs_strategy.py create mode 100644 kuznetsovTD/tusk 2/strategies/pathfinding_strategy.py diff --git a/kuznetsovTD/tusk 2/__init__.py b/kuznetsovTD/tusk 2/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/kuznetsovTD/tusk 2/builders/__init__.py b/kuznetsovTD/tusk 2/builders/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/kuznetsovTD/tusk 2/builders/maze_builder.py b/kuznetsovTD/tusk 2/builders/maze_builder.py new file mode 100644 index 0000000..340124e --- /dev/null +++ b/kuznetsovTD/tusk 2/builders/maze_builder.py @@ -0,0 +1,3 @@ +class MazeBuilder: + def build_from_file(self, filename): + raise NotImplementedError \ No newline at end of file diff --git a/kuznetsovTD/tusk 2/builders/text_file_maze_builder.py b/kuznetsovTD/tusk 2/builders/text_file_maze_builder.py new file mode 100644 index 0000000..ef3edb2 --- /dev/null +++ b/kuznetsovTD/tusk 2/builders/text_file_maze_builder.py @@ -0,0 +1,52 @@ +from builders.maze_builder import MazeBuilder +from models.cell import Cell +from models.maze import Maze + + +class TextFileMazeBuilder(MazeBuilder): + SYMBOL_MAP = { + "#": {"is_wall": True}, + "S": {"is_start": True}, + "E": {"is_exit": True}, + " ": {}, + } + + def create_cell(self, symbol, x, y): + props = self.SYMBOL_MAP.get(symbol) + if props is None: + raise ValueError(f"Unknown symbol: {symbol}") + return Cell(x, y, **props) + + def build_from_file(self, filename): + with open(filename, "r", encoding="utf-8") as file: + rows = [line.rstrip("\n") for line in file] + + if not rows: + raise ValueError("File is empty") + + width = len(rows[0]) + for row in rows: + if len(row) != width: + raise ValueError("Maze rows must have same length") + + cells = [] + start_cell = None + exit_cell = None + + for y, row in enumerate(rows): + current_row = [] + for x, symbol in enumerate(row): + cell = self.create_cell(symbol, x, y) + if cell.is_start: + start_cell = cell + if cell.is_exit: + exit_cell = cell + current_row.append(cell) + cells.append(current_row) + + if start_cell is None: + raise ValueError("Start not found") + if exit_cell is None: + raise ValueError("Exit not found") + + return Maze(cells, start_cell, exit_cell) \ No newline at end of file diff --git a/kuznetsovTD/tusk 2/experiments/__init__.py b/kuznetsovTD/tusk 2/experiments/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/kuznetsovTD/tusk 2/experiments/benchmark.py b/kuznetsovTD/tusk 2/experiments/benchmark.py new file mode 100644 index 0000000..4c7526c --- /dev/null +++ b/kuznetsovTD/tusk 2/experiments/benchmark.py @@ -0,0 +1,42 @@ +import sys +import os + +sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) + +from builders.text_file_maze_builder import TextFileMazeBuilder +from strategies.bfs_strategy import BFSStrategy +from strategies.dfs_strategy import DFSStrategy +from strategies.astar_strategy import AStarStrategy +from solver.maze_solver import MazeSolver + +PROJECT_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) +MAZES_DIR = os.path.join(PROJECT_ROOT, "mazes") + +mazes = ["small.txt", "medium.txt", "large.txt", "no_exit.txt", "empty.txt"] +strategies = [BFSStrategy(), DFSStrategy(), AStarStrategy()] +results = [] +builder = TextFileMazeBuilder() + +for maze_file in mazes: + try: + maze_path = os.path.join(MAZES_DIR, maze_file) + maze = builder.build_from_file(maze_path) + + for strategy in strategies: + solver = MazeSolver(maze, strategy) + stats = solver.solve(maze_file) + results.append(stats) + except ValueError as e: + print(f"Error with {maze_file}: {e}") + except FileNotFoundError as e: + print(f"File not found: {e}") + +os.makedirs(os.path.join(PROJECT_ROOT, "experiments"), exist_ok=True) + +results_path = os.path.join(PROJECT_ROOT, "experiments", "results.csv") +with open(results_path, "w") as file: + file.write("maze,strategy,time_ms,visited_cells,path_length\n") + for stat in results: + file.write(stat.to_csv_row()) + +print(f"Saved {len(results)} results to {results_path}") \ No newline at end of file diff --git a/kuznetsovTD/tusk 2/experiments/plot_results.py b/kuznetsovTD/tusk 2/experiments/plot_results.py new file mode 100644 index 0000000..a9971c6 --- /dev/null +++ b/kuznetsovTD/tusk 2/experiments/plot_results.py @@ -0,0 +1,36 @@ +import sys +import os + +sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) + +import pandas as pd +import matplotlib.pyplot as plt + +PROJECT_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) +RESULTS_PATH = os.path.join(PROJECT_ROOT, "experiments", "results.csv") +PLOTS_DIR = os.path.join(PROJECT_ROOT, "experiments", "plots") + +try: + data = pd.read_csv(RESULTS_PATH) +except FileNotFoundError: + print(f"Run benchmark.py first to generate {RESULTS_PATH}") + exit(1) + +os.makedirs(PLOTS_DIR, exist_ok=True) + +for maze_name in data["maze"].unique(): + maze_data = data[data["maze"] == maze_name] + plt.figure(figsize=(8, 5)) + plt.bar(maze_data["strategy"], maze_data["time_ms"], color=['blue', 'green', 'red']) + plt.title(f"{maze_name} maze - Performance Comparison", fontsize=14) + plt.ylabel("Time (ms)", fontsize=12) + plt.xlabel("Strategy", fontsize=12) + plt.grid(axis='y', alpha=0.3) + plt.tight_layout() + + plot_filename = os.path.join(PLOTS_DIR, f"{maze_name.replace('.txt', '')}.png") + plt.savefig(plot_filename, dpi=150) + plt.close() + print(f"Saved plot for {maze_name}") + +print(f"All plots saved to {PLOTS_DIR}") \ No newline at end of file diff --git a/kuznetsovTD/tusk 2/experiments/plots/empty.png b/kuznetsovTD/tusk 2/experiments/plots/empty.png new file mode 100644 index 0000000000000000000000000000000000000000..a96bbe8a33f53d91c4eba2117165a8684ebc67de GIT binary patch literal 38131 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 literal 0 HcmV?d00001 diff --git a/kuznetsovTD/tusk 2/experiments/plots/large.png b/kuznetsovTD/tusk 2/experiments/plots/large.png new file mode 100644 index 0000000000000000000000000000000000000000..f896db47733bb92b897ac14383a98a904750041d GIT binary patch literal 32334 zcmeFZcT|*Vmn{y`3N4BO35tM9D@qiJk`0&;5Rn{(CMU@`Cr*hnz_HZcm3A<;X;b4x8C;&=j^lhKF{k1ink9RJav$Q zg5vPqJ2xLvQ2bIrL9uU<<^a4>b*HotgLVDBhc2e$RCFxn9~qnh%aVj>>QKQePk3 zw{PWI)|qGBsR52}j??fS6<+In_MDN1_qW!)W$D_z(WQBl((~GjCW#$QMpt5^C0yD^ zqOUqE;S(OJXFlTk6>fs!o<&3+ANmi4&~4xS@IyB9S9o9wii^UOjOb_Dg}Qz4BdPZn z4fJbR3KU@kk6#}!3N7x}vP`>D@#7Eq?wakzSg!DU>P#=9TUR?|67wn-F{j_u zY>o%c!W}5Q<5W^yZ532HCF%M^%P3g5n@(c>&C4U~315y=%-qp3pzKW1E{cEh`By^6 z$!iB5#fm#w5Wo2y=@#see8*S*?b&HVxxknFwL2eAu*|{bm1Op|IviX}IU+D*^<*evetxE{^sJPEL6{|N;5vNRz1F(S^Q+hA=FWAsNiEmYn-5!;DcII*ne6UW zt+vNH4;n|Fe#BckV3=u(tC{uL+tznqteEcREgSiR&Gp+;A?Nu4$AQPMCi^wQ{1~I_ zTJON}__-%K9p{kFpsrK+X`NZbN@K`#wXJ7;*fvpQ@b`B@#?4`lU2;rmiMwkV=3A4I zOWoG$&kw!NZn?g((a2((3fI0;R&dZ`soF(+B1q6a@>3&xf8Yp_e_#HWBQlcJYu)m? z4-6^XkL%J)u!%X^~%6l%w2mMYila_pHrK`kelKi?G znDli7tFlVxva-`9mZ}6Z9GfSdRb<`d#32V;G9w^q-T z-#%@3(;dDbR`+($uYIm2g|)kc{8?=rQBBKpxnY%P!D_a%joWKC?V>(>D$FF&YrPnT zI3rkeOib6QPt}^ug{!^&wrJYL)qS))Z;nJ6jl`RU+wX2oi;6|r1Tt%%Pw??OEb^h2 z7jvCql8aBCui|$SsgO5txI=Qa^#YdFSj%lPeAQmyj7#A{z=GTOYtDXt7AiMU@Alc~ zPnVvB%&mBDet)&)mVCZr#GxY|m%&UUiOKRJ^r;_a^H^;Y#nxsldpC%$<9zl;f^#`! zjQSGu`}Ja0W-}7g9onyQT4QF@&0#VWirPf9V_@D_T<rwTlycYFC=M zg(F}4ZEcS5RL+0Q)UWlfXi+`nTD`qknL*9&SujXw+GZUVk-l+utVn-noM}rcxI>oAqXPZP@`*)_i3>9|n=SggS7fB6E$wjc zU$G7SK6>2flGpYyE^p7X$;Af7Gdi8181(5xVz{m61WTsR-tLx1(U?0v4fb^U;EG(q zX1))JyEfvYW#xy)$V4*J8SJ$mEE!$W_GY0 zb;7n0OnMWSxBNFm#+q1c%HIzb_K9ch^44#w_J+3bmgx`|Y<-63n%b|l@NBuHUlIrz zxs(z2N6l87Z8{~@f!;{3lwgr&rv}qRul{)=i%)t=i(zkI3s2E~Z(F1Fw$1x6;-sFS zV;iqzcHZy084bD~neYnS){+o0tm3cTBQ34E8xD5}G@Y(!m{9UwdB<2QxGX6;=4!-e z+xv7`>NV!-+zhh>&jkbjyt>@2;2`-h-k{T0ulU#`+q}jyY)FyTdK7Gm(&w@^+x#(H zT8WL@$G2&2ygYOlR<;9if_*PaW?SL)25;lF;U`}X<7IjZ2uvL-p_NfS6=fP&5-PJ@9+b`;RZfOk* z^pV&64)n=PO@zv{cQBPTS$fVFHd*9tH_7bUktUSHzCVu{E~;o@^O*0N!U`JJ`x94o zVOQnxK!{ez^Vt}6$-f^jUa|r^_|ZD7^9zyMzrU5^;;-2>eAjU`C9$yICUj0-1^4O& zlV15?6JZHgYyai2=%eOj;wsaUuEXxnS2Df)EQz@mOSOC6#;`AJ?J5_FI;6KqdFQ1C z<*x27hx+t->iaKrbS$>;*Xn56H85!J1nIyI%q3dMKyVC~W72huaXM}P^{gWIdc|Nq23#Hm5OgjweJ&)J8Y`5w7vcZo>PKy<+ zto0~~R)oxTtd(H(v}cFQY}*LEeSNBYRX;!PM2X@&i$22M65fjY^6E&w=lYkR%Dy=Y`y^a{kBB9-;GBo8-Arp}T*uuEZ`=2NP`+C4AHPv1C%6G$Go=}M6AF3`HoXP!E1f6`Fy0#!#zpP zL{IygT;dhTRtG`@;|b$QHnVAwd7cnE4=?Tw<95|*YX;N`d-VKSziXH})iF?O1t+dT z6#r1HYWGIQpw71$;($stgiLOf5_WUy*FzU{SY>r!jfCGgA|DymIra z22U9zX3?!ULE=g7(%TM^4jocuCQ%yY5Hs;I)OHV;p2|u3EN=z*<(-T2w-<6M(3_&b zL!@}@*J1X!JN0h(`x~$NaZF1S#*w;e6-zbSEBMe2SBP5HM-BTPdh(60o*ur;*L2$9 z{$zs3;-87}5DhQvvEp91DkUFk5TDrY={4P`-WaodQg9Ntmz{^<$`_n_u^Dt?Nw=2; zR)KC&;=V;Gbr$ z?3{Q%&gCS*Iz? zR;sTT33*czF?W=s^zkox5SyLHyp^$XqYr!S3VFx33mZ>a{-{j}3GFcTq}wH8YehB_ z)DnBmxatB3^@Ip*n`oI~<#pG?IMSjE%P+M?jX{|ec^_yG9AS&YZ*EqjRO_HQE+t9m zRax~=%b6~#C0PeLJzA~^bZXo<*UvQkZD+M3KZr#%PnA;5>1gfegWNy9iOxN}s9t5N ztlu!rRqBvS!L68nbM#RT$5@l$aDC0~s*b*GcIBFo-2_T0KML9;`h7W#pX815Yls%4 z=%!$ip%1FOzmNMCUDEg7GA4bp$k(gp+S{3y$DuWgp9!uOe!&^(_Sgg>UP^ex@+w6!Sl4(j~4$+I!r!};oY zaD(Z4jgIj^{siscMb4MHOe`sw_SGuOFir+BhAlj94!d-6DM6zfv%eNm_rR#bs|QGSzIU;g>6zV}a52)9&tv#)#V zr6}@UuQJmedB{CU^K4=j8#lEtXZ#m6Pi*p{%{@9iS zUGnzu>hMjt;k*B`Upl9wc~;;Zy9kV$;MN>fpBOEBZbZ!ST+RSvpS2Wr;R>Dki??07 zb+#sQ97dRQLoF6&)C2jB7FrcIo6Vm2C{;EYBC)8kS8ir}Y}f=)Up_9Oiy`|GE2}|6 z^g{Zh#806S`xRJ!+@#RtacRFg?KohXa|x9ZHpfncTF)h2*4kq*9oDv}K9;K#fbDrS zpb|mBExp?H$0f{p-r~;dgcj?Me_kN8)RW|Xu4e0#vIeIE^8DnOTFlZqM<{hwbX|r{ z834rIYoYd*8(oHwB3e;1XXD-VIjy3@`Il?CBR4rEpRyBHWhV?6o_0ct!A^Z_T<7m+<>ZbjT5XrW^0VX$O3Zm2SUY{dj(TPv z{e}B?5VANWXmTIbIxFW7JSOdhDny~gXu@8L&#RoeW)Qp5;j>$`yEJz#fhCagxlvMo z`u!N8OmE#nokP#Y;tY?jGv9ZG6qZ?3|7}v9zuIwE;=r4bYv$}eJIgzJQDa^JxaD;x zJ#gE4?=~8~tpro2<)1%L$Xm6u(h|RNGMmlU6(Cop&loLV`5C2sodZr--N^h`P$ZfL=PQcEJtb#<_Eg zAHKt9*5p@U%6OeDU>rwEakjOjxxJc+5Q&GDrA~*M^>jt|eB4wl`b_Ns7PR}#cleL5 z?$uEp`9ZlnoJ=HbeLvzeF#j<(SIOiDOes%wC5D1RO78TJ#vo|{T1|PuRUuKll9>f{ z&1Lts8BbPfT;JKdyaFkG0JhXuYX;tiXtrE$J=7av-mM)Iohj9D$QZ~3C%OaUz64vJ zZEaG>?w_2AahQ9pY7CL-tpL>sKKTWo59Vs+5oL>@z&cBpRRi!o13{oY858HglM|;9 zE#MBd+X@bm7)637+GnO=%%sij*K5b?a{8^}1i7v!Mw#=Q91pTSip#xDIAlmgO=lH} zWh;8d@N^=GYtHXzk)JT9$y{LcHdH^kYXBUDDs);k7>%uRqpWkUE}smoyFk}!bgObI zB72vw-lewCWz3DUBZ#qxD7Ck8s~RW$>F

qT|l1dC(GnTlA|UX|wdMH6g) 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 JaLMN3e*xmk8ruK> literal 0 HcmV?d00001 diff --git a/kuznetsovTD/tusk 2/experiments/plots/medium.png b/kuznetsovTD/tusk 2/experiments/plots/medium.png new file mode 100644 index 0000000000000000000000000000000000000000..eed91886e8b18636b369fa74c2a4c82e98db5128 GIT binary patch literal 36945 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%0A*Ai->R2o{YS9g)q-*-t0 zKrl=3FG-hbPez$G^j~fU)vDn9x+Zl8%h?B(H|u=sS4zYcm|<_bX*|b{L!LT!WWV1)zut z%xTZu9Ev=%n%@gPlAL%+&cuQ)=87q*hsQ7mnPOwV0pE)=?$J5ap7!v77i zR!4CrWcxOe5U=!!0ppgcz__}-($Eq5*)KqQS}~vqQ;1ibmVP#z9IO;ztJ%wI|ESKn zB#@;dUOLNdM)E;SGhG+Lv*QPG{SfK|Rod?Ss`=Q=VlFCDQaI0bxNYF~6A=J%| zAB#xf_1sq!F(@rZG&Mj_htElKZS$8CcZJcsW&Yq3T!i{KKrthddBLu=3(U0VR^gl( zV}o9TRXlm=6}#Q%-}=_vu1|~bOim|BR5Z%q(r{^CO>0v)tW0W_pbaTG5*q>^!sN3l z5H=pI9+eDV{b=1~Q_KAO5IIUCso6(0n^~>2mk&0#0hBfRN&$6~|70ElxS~%_{Lte_ z4MKv4Vwg(%dmKc4$Ei1{6YAV*;1z3 ziW!tIXb>>Q`S$Jl5z;7xpx$<2AKxpm{Xw4hKCmoIcn=;NZfu-_qinENH(Jf;9#&6ED4j=XL%z7bI=xkJln@&`zMa~A=mQm4W z1TdJBYPTI?GVX&jS-?$HoEs`4(ZLN@b(m^@ZX-c^Q zaIRe6o+ul4hr7mZBQ8iRn22yL5b}^ZEMY#HEW`}uK)?a1Tv5_t<+AwmASVu8 zZf6<<8I23{es7>1J>!$qTSOLDA@wR1ks(4~c4CM5j#hyu8uF!PQF14%hb1fAbtqQS zDbE?4_OFpreQpPh+ZMVZA@!b zuAOZn6jByhA-i0DO`sDriSL6m1-(bbbgBbF?_=hn>eJbO5-jO*F0T$9{=&NNOA z)gmbK6>txWk~?IwtVZ_=T{fL+dX!TYLCz(mTpoiu-T>kKliu%BP!N#+QK@a znItG+hp@+_#tZPwWkOY!r(<>!<_Mf7Z( zj~OYkFn(OK$nwaBM%O%AU!Xl05AC<1Le0Lg{iownGSA3>LHKy!uUaKSTQ%Yp-X0K& z4R4XFICYZrn-pH??a;}PI!)dvzn$RWkha9{gLGDoP=ve3P)bNJ9oqW~N+(y!wXTtq z3`av%F%;UFxSJY_JFKt-4A6?9bE4AY58%g@6_k&n2c8wuhszf;At#Gy~X0t_(F_vHVP#PuJQxBvPtFVtTAnusrW`j15uDL$^LncY+(O*4}WG8rrK7bVUoiMK81hr*NPr JK+FEh{{pOB3gG|% literal 0 HcmV?d00001 diff --git a/kuznetsovTD/tusk 2/experiments/plots/no_exit.png b/kuznetsovTD/tusk 2/experiments/plots/no_exit.png new file mode 100644 index 0000000000000000000000000000000000000000..1f7fd183d36dc24c17de7531d52527a083742555 GIT binary patch literal 42495 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 literal 0 HcmV?d00001 diff --git a/kuznetsovTD/tusk 2/experiments/plots/small.png b/kuznetsovTD/tusk 2/experiments/plots/small.png new file mode 100644 index 0000000000000000000000000000000000000000..48598b6a61a4bc7b3c324b89a7d275c6cf61f2cd GIT binary patch literal 34187 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 literal 0 HcmV?d00001 diff --git a/kuznetsovTD/tusk 2/experiments/results.csv b/kuznetsovTD/tusk 2/experiments/results.csv new file mode 100644 index 0000000..147821d --- /dev/null +++ b/kuznetsovTD/tusk 2/experiments/results.csv @@ -0,0 +1,16 @@ +maze,strategy,time_ms,visited_cells,path_length +small.txt,BFSStrategy,0.022,8,7 +small.txt,DFSStrategy,0.011,8,7 +small.txt,AStarStrategy,0.017,8,7 +medium.txt,BFSStrategy,0.057,53,23 +medium.txt,DFSStrategy,0.033,31,31 +medium.txt,AStarStrategy,0.070,46,23 +large.txt,BFSStrategy,0.762,718,431 +large.txt,DFSStrategy,0.482,451,431 +large.txt,AStarStrategy,1.031,591,431 +no_exit.txt,BFSStrategy,0.004,1,0 +no_exit.txt,DFSStrategy,0.002,1,0 +no_exit.txt,AStarStrategy,0.002,1,0 +empty.txt,BFSStrategy,0.113,100,19 +empty.txt,DFSStrategy,0.064,55,55 +empty.txt,AStarStrategy,0.154,100,19 diff --git a/kuznetsovTD/tusk 2/main.py b/kuznetsovTD/tusk 2/main.py new file mode 100644 index 0000000..255f310 --- /dev/null +++ b/kuznetsovTD/tusk 2/main.py @@ -0,0 +1,60 @@ +import sys +import os + +sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) + +from builders.text_file_maze_builder import TextFileMazeBuilder +from strategies.bfs_strategy import BFSStrategy +from strategies.dfs_strategy import DFSStrategy +from strategies.astar_strategy import AStarStrategy +from solver.maze_solver import MazeSolver +from observer.console_view import ConsoleView + +PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__)) +MAZES_DIR = os.path.join(PROJECT_ROOT, "mazes") + +mazes = { + "1": "small.txt", + "2": "medium.txt", + "3": "large.txt", + "4": "no_exit.txt" +} + +strategies = { + "1": BFSStrategy(), + "2": DFSStrategy(), + "3": AStarStrategy() +} + +print("Choose maze:") +print("1 - small") +print("2 - medium") +print("3 - large") +print("4 - no_exit") +maze_choice = input("> ").strip() + +while maze_choice not in mazes: + print("Invalid choice. Try again.") + maze_choice = input("> ").strip() + +print("\nChoose strategy:") +print("1 - BFS") +print("2 - DFS") +print("3 - A*") +strategy_choice = input("> ").strip() + +while strategy_choice not in strategies: + print("Invalid choice. Try again.") + strategy_choice = input("> ").strip() + +builder = TextFileMazeBuilder() +maze_path = os.path.join(MAZES_DIR, mazes[maze_choice]) +maze = builder.build_from_file(maze_path) +strategy = strategies[strategy_choice] + +solver = MazeSolver(maze, strategy) +view = ConsoleView(maze) +solver.attach(view) +stats = solver.solve(mazes[maze_choice]) + +print(stats) \ No newline at end of file diff --git a/kuznetsovTD/tusk 2/mazes/__init__.py b/kuznetsovTD/tusk 2/mazes/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/kuznetsovTD/tusk 2/mazes/empty.txt b/kuznetsovTD/tusk 2/mazes/empty.txt new file mode 100644 index 0000000..dfad92f --- /dev/null +++ b/kuznetsovTD/tusk 2/mazes/empty.txt @@ -0,0 +1,10 @@ +S + + + + + + + + + E \ No newline at end of file diff --git a/kuznetsovTD/tusk 2/mazes/large.txt b/kuznetsovTD/tusk 2/mazes/large.txt new file mode 100644 index 0000000..6eba40a --- /dev/null +++ b/kuznetsovTD/tusk 2/mazes/large.txt @@ -0,0 +1,50 @@ +S # # # # + ####### ### # # ########### ##### # ##### ##### # + # # # # # # # # # # +## # # ### ####### ##### ####### # ### ######### # + # # # # # # # # # # # # # + ####### # # # # ### ##### # ### ### # # # # ### # + # # # # # # # # # # # # # # # # # + # ### # ### # ### ### # # ### ### ####### # # ### + # # # # # # # # # # # # # # + # # ############# # ### ### # ######### # # ### # + # # # # # # # # # + ########### ########### # ##### ### ### # # # ### + # # # # # # # # # # # # # # + # # ####### # ### # ##### ### ### ### ### # # # # + # # # # # # # # # # # # # # # # +###### ### ### # # # # # # # ### ### ##### # # # # + # # # # # # # # # # # # # # # + ### # # ######### ### # # # # ####### ##### # # # + # # # # # # # # # # # # # # + ### ### # ##### # # ######### # # # # ##### # # # + # # # # # # # # # # # # +## # ######### # # ### ### # ### ######### ##### # + # # # # # # # # # # # # + ##### # ### # ### ##### # # # ####### ##### # # # + # # # # # # # # # # # # # # # +## # ##### # # ##### ##### ### ### # ### # # # ### + # # # # # # # # # # # # # + ##### # ### # # ##### ### # ### ######### # ##### + # # # # # # # # # # # + # ####### ######### ### ####### # # ####### ### # + # # # # # # # # # # # # # # + # # ####### # # ##### # # ### ### # # # # ##### # + # # # # # # # # # # # # # # # # + # ##### # ####### # # # # # ### # ### # # # ### # + # # # # # # # # # # # # # # # + # ########### # ### ####### ### # ### # # # # # # + # # # # # # # # # # # # # + # # ####### ##### ########### ##### # # ##### # # + # # # # # # # # # # # + ### ### ### # ############### # # # ##### ### ### + # # # # # # # # # # # # # # + # ### ### # ### ##### # # # # # ##### # ### # # # + # # # # # # # # # # # # # # + # # ####### # ### ######### ######### ### # # # # + # # # # # # # # # # # # # # # + ##### # ####### # # # ### # # # # # ### ### # # # + # # # # # # # # # # # # # # # +## ### ##### ####### ### # # ### ##### # ### ### # + # # # # +################################################ E \ No newline at end of file diff --git a/kuznetsovTD/tusk 2/mazes/medium.txt b/kuznetsovTD/tusk 2/mazes/medium.txt new file mode 100644 index 0000000..439365c --- /dev/null +++ b/kuznetsovTD/tusk 2/mazes/medium.txt @@ -0,0 +1,10 @@ +S # + ### ### # + # # # +## # # ### + # # # + ####### # + # # +## # ##### + +######## E \ No newline at end of file diff --git a/kuznetsovTD/tusk 2/mazes/no_exit.txt b/kuznetsovTD/tusk 2/mazes/no_exit.txt new file mode 100644 index 0000000..cea04f9 --- /dev/null +++ b/kuznetsovTD/tusk 2/mazes/no_exit.txt @@ -0,0 +1,10 @@ +S######### +# # +######## # +# # +# ###### # +# # # +###### # # +# # # +# ######## +######## E \ No newline at end of file diff --git a/kuznetsovTD/tusk 2/mazes/small.txt b/kuznetsovTD/tusk 2/mazes/small.txt new file mode 100644 index 0000000..28f1058 --- /dev/null +++ b/kuznetsovTD/tusk 2/mazes/small.txt @@ -0,0 +1,5 @@ +##### +# S # +# ### +# E +##### \ No newline at end of file diff --git a/kuznetsovTD/tusk 2/models/__init__.py b/kuznetsovTD/tusk 2/models/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/kuznetsovTD/tusk 2/models/cell.py b/kuznetsovTD/tusk 2/models/cell.py new file mode 100644 index 0000000..4919d83 --- /dev/null +++ b/kuznetsovTD/tusk 2/models/cell.py @@ -0,0 +1,13 @@ +class Cell: + def __init__(self, x, y, is_wall=False, is_start=False, is_exit=False): + self.x = x + self.y = y + self.is_wall = is_wall + self.is_start = is_start + self.is_exit = is_exit + + def is_passable(self): + return not self.is_wall + + def __repr__(self): + return f"Cell({self.x}, {self.y})" \ No newline at end of file diff --git a/kuznetsovTD/tusk 2/models/maze.py b/kuznetsovTD/tusk 2/models/maze.py new file mode 100644 index 0000000..dc0d89f --- /dev/null +++ b/kuznetsovTD/tusk 2/models/maze.py @@ -0,0 +1,32 @@ +from models.cell import Cell + + +class Maze: + def __init__(self, cells, start_cell, exit_cell): + self.cells = cells + self.height = len(cells) + self.width = len(cells[0]) + self.start_cell = start_cell + self.exit_cell = exit_cell + + def get_cell(self, x, y): + if 0 <= x < self.width and 0 <= y < self.height: + return self.cells[y][x] + return None + + def check_cell(self, x, y): + cell = self.get_cell(x, y) + return cell and cell.is_passable() + + def get_neighbors(self, cell: Cell): + directions = [(0, -1), (0, 1), (-1, 0), (1, 0)] + neighbors = [] + for dx, dy in directions: + x = cell.x + dx + y = cell.y + dy + if self.check_cell(x, y): + neighbors.append(self.get_cell(x, y)) + return neighbors + + def __repr__(self): + return f"Maze({self.width}x{self.height})" \ No newline at end of file diff --git a/kuznetsovTD/tusk 2/models/search_stats.py b/kuznetsovTD/tusk 2/models/search_stats.py new file mode 100644 index 0000000..c869014 --- /dev/null +++ b/kuznetsovTD/tusk 2/models/search_stats.py @@ -0,0 +1,21 @@ +class SearchStats: + def __init__(self, strategy, maze_name, duration, visited_cells, path_length): + self.strategy = strategy + self.maze_name = maze_name + self.duration = duration + self.visited_cells = visited_cells + self.path_length = path_length + + def to_csv_row(self): + return f"{self.maze_name},{self.strategy},{self.duration:.3f},{self.visited_cells},{self.path_length}\n" + + def __str__(self): + return ( + f"\n=== SEARCH RESULT ===\n" + f"Strategy : {self.strategy}\n" + f"Maze : {self.maze_name}\n" + f"Time (ms) : {self.duration:.3f}\n" + f"Visited cells : {self.visited_cells}\n" + f"Path length : {self.path_length}\n" + f"=====================\n" + ) \ No newline at end of file diff --git a/kuznetsovTD/tusk 2/observer/__init__.py b/kuznetsovTD/tusk 2/observer/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/kuznetsovTD/tusk 2/observer/console_view.py b/kuznetsovTD/tusk 2/observer/console_view.py new file mode 100644 index 0000000..444e2a2 --- /dev/null +++ b/kuznetsovTD/tusk 2/observer/console_view.py @@ -0,0 +1,37 @@ +import os +from observer.observer import Observer +from observer.maze_event import MazeEventType + + +class ConsoleView(Observer): + def __init__(self, maze=None): + self.maze = maze + self.path = [] + + def update(self, event): + if event.event_type == MazeEventType.PATH_FOUND: + self.path = event.data if event.data else [] + self.render() + + def render(self): + if self.maze is None: + return + + os.system("cls" if os.name == "nt" else "clear") + path_positions = {(cell.x, cell.y) for cell in self.path} + + for row in self.maze.cells: + line = "" + for cell in row: + pos = (cell.x, cell.y) + if cell.is_wall: + line += "#" + elif cell.is_start: + line += "S" + elif cell.is_exit: + line += "E" + elif pos in path_positions: + line += "*" + else: + line += " " + print(line) \ No newline at end of file diff --git a/kuznetsovTD/tusk 2/observer/maze_event.py b/kuznetsovTD/tusk 2/observer/maze_event.py new file mode 100644 index 0000000..3990a12 --- /dev/null +++ b/kuznetsovTD/tusk 2/observer/maze_event.py @@ -0,0 +1,12 @@ +from enum import Enum + + +class MazeEventType(Enum): + MAZE_LOADED = 1 + PATH_FOUND = 2 + + +class MazeEvent: + def __init__(self, event_type, data=None): + self.event_type = event_type + self.data = data \ No newline at end of file diff --git a/kuznetsovTD/tusk 2/observer/observer.py b/kuznetsovTD/tusk 2/observer/observer.py new file mode 100644 index 0000000..5dba59a --- /dev/null +++ b/kuznetsovTD/tusk 2/observer/observer.py @@ -0,0 +1,3 @@ +class Observer: + def update(self, event): + raise NotImplementedError \ No newline at end of file diff --git a/kuznetsovTD/tusk 2/observer/subject.py b/kuznetsovTD/tusk 2/observer/subject.py new file mode 100644 index 0000000..e1b6238 --- /dev/null +++ b/kuznetsovTD/tusk 2/observer/subject.py @@ -0,0 +1,13 @@ +class Subject: + def __init__(self): + self.observers = [] + + def attach(self, observer): + self.observers.append(observer) + + def detach(self, observer): + self.observers.remove(observer) + + def notify(self, event): + for observer in self.observers: + observer.update(event) \ No newline at end of file diff --git a/kuznetsovTD/tusk 2/solver/__init__.py b/kuznetsovTD/tusk 2/solver/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/kuznetsovTD/tusk 2/solver/maze_solver.py b/kuznetsovTD/tusk 2/solver/maze_solver.py new file mode 100644 index 0000000..2022f19 --- /dev/null +++ b/kuznetsovTD/tusk 2/solver/maze_solver.py @@ -0,0 +1,31 @@ +import time +from observer.subject import Subject +from observer.maze_event import MazeEvent, MazeEventType +from models.search_stats import SearchStats + + +class MazeSolver(Subject): + def __init__(self, maze, strategy): + super().__init__() + self.maze = maze + self.strategy = strategy + + def set_strategy(self, strategy): + self.strategy = strategy + + def solve(self, maze_name="maze"): + start_time = time.perf_counter() + path, visited = self.strategy.find_path( + self.maze, self.maze.start_cell, self.maze.exit_cell + ) + end_time = time.perf_counter() + + self.notify(MazeEvent(MazeEventType.PATH_FOUND, path)) + + return SearchStats( + strategy=self.strategy.__class__.__name__, + maze_name=maze_name, + duration=(end_time - start_time) * 1000, + visited_cells=visited, + path_length=len(path) if path else 0 # ЭТУ СТРОКУ ИЗМЕНИТЬ + ) \ No newline at end of file diff --git a/kuznetsovTD/tusk 2/strategies/__init__.py b/kuznetsovTD/tusk 2/strategies/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/kuznetsovTD/tusk 2/strategies/astar_strategy.py b/kuznetsovTD/tusk 2/strategies/astar_strategy.py new file mode 100644 index 0000000..cdadec6 --- /dev/null +++ b/kuznetsovTD/tusk 2/strategies/astar_strategy.py @@ -0,0 +1,45 @@ +import heapq +import itertools +from strategies.pathfinding_strategy import PathFindingStrategy + + +class AStarStrategy(PathFindingStrategy): + def heuristic(self, cell, exit_cell): + return abs(cell.x - exit_cell.x) + abs(cell.y - exit_cell.y) + + def find_path(self, maze, start_cell, exit_cell): + open_set = [] + counter = itertools.count() + heapq.heappush(open_set, (0, next(counter), start_cell)) + + parents = {start_cell: None} + g_score = {start_cell: 0} + visited = set() + visited_count = 0 + + while open_set: + _, _, current = heapq.heappop(open_set) + + if current in visited: + continue + + visited.add(current) + visited_count += 1 + + if current == exit_cell: + path = [] + while current is not None: + path.append(current) + current = parents[current] + path.reverse() + return path, visited_count + + for neighbor in maze.get_neighbors(current): + tentative_g = g_score[current] + 1 + if neighbor not in g_score or tentative_g < g_score[neighbor]: + parents[neighbor] = current + g_score[neighbor] = tentative_g + f_score = tentative_g + self.heuristic(neighbor, exit_cell) + heapq.heappush(open_set, (f_score, next(counter), neighbor)) + + return [], visited_count \ No newline at end of file diff --git a/kuznetsovTD/tusk 2/strategies/bfs_strategy.py b/kuznetsovTD/tusk 2/strategies/bfs_strategy.py new file mode 100644 index 0000000..36a723f --- /dev/null +++ b/kuznetsovTD/tusk 2/strategies/bfs_strategy.py @@ -0,0 +1,31 @@ +from collections import deque +from strategies.pathfinding_strategy import PathFindingStrategy + + +class BFSStrategy(PathFindingStrategy): + def find_path(self, maze, start_cell, exit_cell): + queue = deque([start_cell]) + parents = {start_cell: None} + visited = {start_cell} + visited_count = 0 + + while queue: + current = queue.popleft() + visited_count += 1 + + if current == exit_cell: + path = [] + while current is not None: + path.append(current) + current = parents[current] + path.reverse() + return path, visited_count + + for neighbor in maze.get_neighbors(current): + if neighbor in visited: + continue + visited.add(neighbor) + parents[neighbor] = current + queue.append(neighbor) + + return [], visited_count \ No newline at end of file diff --git a/kuznetsovTD/tusk 2/strategies/dfs_strategy.py b/kuznetsovTD/tusk 2/strategies/dfs_strategy.py new file mode 100644 index 0000000..9068949 --- /dev/null +++ b/kuznetsovTD/tusk 2/strategies/dfs_strategy.py @@ -0,0 +1,30 @@ +from strategies.pathfinding_strategy import PathFindingStrategy + + +class DFSStrategy(PathFindingStrategy): + def find_path(self, maze, start_cell, exit_cell): + stack = [start_cell] + parents = {start_cell: None} + visited = {start_cell} + visited_count = 0 + + while stack: + current = stack.pop() + visited_count += 1 + + if current == exit_cell: + path = [] + while current is not None: + path.append(current) + current = parents[current] + path.reverse() + return path, visited_count + + for neighbor in maze.get_neighbors(current): + if neighbor in visited: + continue + visited.add(neighbor) + parents[neighbor] = current + stack.append(neighbor) + + return [], visited_count \ No newline at end of file diff --git a/kuznetsovTD/tusk 2/strategies/pathfinding_strategy.py b/kuznetsovTD/tusk 2/strategies/pathfinding_strategy.py new file mode 100644 index 0000000..f6b4bd2 --- /dev/null +++ b/kuznetsovTD/tusk 2/strategies/pathfinding_strategy.py @@ -0,0 +1,3 @@ +class PathFindingStrategy: + def find_path(self, maze, start_cell, exit_cell): + raise NotImplementedError \ No newline at end of file -- 2.43.0