2026-rff_mp/nehoroshevaa/task2/experiments/benchmark.py
2026-05-24 21:49:38 +03:00

60 lines
984 B
Python

from builders.text_file_maze_builder import TextFileMazeBuilder
from strategies.bfs_strategy import BFS
from strategies.dfs_strategy import DFSStrategy
from strategies.astar_strategy import AStarStrategy
from solver.maze_solver import MazeSolver
mazes = [
"small.txt",
"medium.txt",
"large.txt",
"no exit.txt",
"empty.txt"
]
strategies = [
BFS(),
DFSStrategy(),
AStarStrategy()
]
results = []
builder = TextFileMazeBuilder()
for maze_file in mazes:
maze = builder.build_from_file(
f"mazes/{maze_file}"
)
for strategy in strategies:
solver = MazeSolver(
maze,
strategy
)
stats = solver.solve()
stats.maze_name = maze_file
results.append(stats)
with open(
"experiments/results.csv",
"w"
) as file:
file.write(
"maze,strategy,time_ms,visited_cells,path_length\n"
)
for stat in results:
file.write(stat.to_csv_row())