70 lines
1.2 KiB
Python
70 lines
1.2 KiB
Python
from builders.text_file_builder import TextFileMazeBuilder
|
|
|
|
from strategies.bfs import BFSStrategy
|
|
from strategies.dfs import DFSStrategy
|
|
from strategies.astar import AStarStrategy
|
|
|
|
from experiments.benchmark import BenchmarkRunner
|
|
from experiments.plots import ChartBuilder
|
|
|
|
|
|
builder = TextFileMazeBuilder()
|
|
|
|
maze_files = [
|
|
"small.txt",
|
|
"medium.txt",
|
|
"large.txt",
|
|
"empty.txt",
|
|
"blocked.txt"
|
|
]
|
|
|
|
all_results = []
|
|
|
|
for maze_file in maze_files:
|
|
|
|
print()
|
|
print("Loading:", maze_file)
|
|
|
|
maze = builder.buildFromFile(
|
|
f"mazes/{maze_file}"
|
|
)
|
|
|
|
runner = BenchmarkRunner(
|
|
maze,
|
|
[
|
|
BFSStrategy(),
|
|
DFSStrategy(),
|
|
AStarStrategy()
|
|
],
|
|
cycles=10
|
|
)
|
|
|
|
results = runner.launch()
|
|
|
|
for row in results:
|
|
row["maze"] = maze_file
|
|
|
|
all_results.extend(results)
|
|
|
|
runner.exportCSV(
|
|
"experiments/results.csv",
|
|
all_results
|
|
)
|
|
|
|
print()
|
|
print("CSV created")
|
|
|
|
charts = ChartBuilder(
|
|
"experiments/results.csv"
|
|
)
|
|
|
|
print("Time chart...")
|
|
charts.buildTimeChart()
|
|
|
|
print("Visited chart...")
|
|
charts.buildVisitedChart()
|
|
|
|
print("Path chart...")
|
|
charts.buildPathChart()
|
|
|
|
print("Done") |