Visualization implemented
parent
dc7634ecc2
commit
2fb92caa42
|
@ -74,9 +74,9 @@ class Maze:
|
||||||
|
|
||||||
self.log_experiment()
|
self.log_experiment()
|
||||||
|
|
||||||
#print("The shortest path is", self.shortest_path, self.ga_iteration)
|
print("The shortest path is", self.shortest_path, self.ga_iteration)
|
||||||
|
|
||||||
#self.print_shortest_path()
|
self.print_shortest_path()
|
||||||
|
|
||||||
def walk_through_maze(self, solution_matrix, critical_situation):
|
def walk_through_maze(self, solution_matrix, critical_situation):
|
||||||
queue = [[self.start_pos]]
|
queue = [[self.start_pos]]
|
||||||
|
|
|
@ -89,13 +89,13 @@ class Maze:
|
||||||
gene_space=[0, 1])
|
gene_space=[0, 1])
|
||||||
ga_instance.run()
|
ga_instance.run()
|
||||||
self.end_time = time.time()
|
self.end_time = time.time()
|
||||||
self.log_experiment()
|
#self.log_experiment()
|
||||||
|
|
||||||
solution, solution_fitness, solution_idx = ga_instance.best_solution()
|
solution, solution_fitness, solution_idx = ga_instance.best_solution()
|
||||||
|
|
||||||
|
|
||||||
#print("The shortest path is", self.shortest_path, self.ga_iteration)
|
print("The shortest path is", self.shortest_path, self.ga_iteration)
|
||||||
#self.print_shortest_path()
|
self.print_shortest_path()
|
||||||
|
|
||||||
def walk_through_maze(self, solution_matrix, critical_situation):
|
def walk_through_maze(self, solution_matrix, critical_situation):
|
||||||
queue = [[self.start_pos]]
|
queue = [[self.start_pos]]
|
||||||
|
@ -170,7 +170,7 @@ class Maze:
|
||||||
f.close()
|
f.close()
|
||||||
|
|
||||||
def read_mazes():
|
def read_mazes():
|
||||||
with open('./mazes_harder.txt', 'r') as f:
|
with open('./mazes_classic.txt', 'r') as f:
|
||||||
mazes = []
|
mazes = []
|
||||||
maze = []
|
maze = []
|
||||||
for line in f:
|
for line in f:
|
||||||
|
@ -227,7 +227,7 @@ def main():
|
||||||
mazes = []
|
mazes = []
|
||||||
text_mazes = read_mazes()
|
text_mazes = read_mazes()
|
||||||
LOGFILE = 'log_t2_harder.txt'
|
LOGFILE = 'log_t2_harder.txt'
|
||||||
prepare_log(LOGFILE)
|
#prepare_log(LOGFILE)
|
||||||
for i in range(len(text_mazes)):
|
for i in range(len(text_mazes)):
|
||||||
print('MAZE: ', i)
|
print('MAZE: ', i)
|
||||||
maze_ix = i
|
maze_ix = i
|
||||||
|
|
|
@ -0,0 +1,112 @@
|
||||||
|
from matplotlib import pyplot as plt
|
||||||
|
|
||||||
|
def read_classic_data():
|
||||||
|
task_one_classic_data = []
|
||||||
|
task_two_classic_data = []
|
||||||
|
with open("log_t1_classic.txt", "r") as f:
|
||||||
|
# Read csv file
|
||||||
|
data = f.read()
|
||||||
|
# Split data into lines
|
||||||
|
data = data.splitlines()
|
||||||
|
# Split lines into columns
|
||||||
|
data = [line.split(",") for line in data]
|
||||||
|
data = data[1:]
|
||||||
|
# Remove third column
|
||||||
|
for row in data:
|
||||||
|
task_one_classic_data.append(row[:2])
|
||||||
|
|
||||||
|
with open("log_t2_classic.txt", "r") as f:
|
||||||
|
# Read csv file
|
||||||
|
data = f.read()
|
||||||
|
# Split data into lines
|
||||||
|
data = data.splitlines()
|
||||||
|
# Split lines into columns
|
||||||
|
data = [line.split(",") for line in data]
|
||||||
|
data = data[1:]
|
||||||
|
# Remove third column
|
||||||
|
for row in data:
|
||||||
|
task_two_classic_data.append(row[:2])
|
||||||
|
|
||||||
|
return task_one_classic_data, task_two_classic_data
|
||||||
|
|
||||||
|
def plot_classic_data(task_one_classic_data, task_two_classic_data):
|
||||||
|
# Plot data
|
||||||
|
x = [int(row[0]) for row in task_one_classic_data]
|
||||||
|
y_task_one = [float(row[1]) for row in task_one_classic_data]
|
||||||
|
y_task_two = [float(row[1]) for row in task_two_classic_data]
|
||||||
|
plt.plot(x, y_task_one,label="Task 1")
|
||||||
|
plt.plot(x, y_task_two, label="Task 2")
|
||||||
|
plt.suptitle(f"Comparison between task 1 and task 2 code (n_tests: {len(x)})")
|
||||||
|
plt.xlabel("Maze")
|
||||||
|
plt.ylabel("Time (s)")
|
||||||
|
plt.legend()
|
||||||
|
# Save plot
|
||||||
|
plt.savefig("../report/images/provided_tests_comparrison.png")
|
||||||
|
plt.clf()
|
||||||
|
|
||||||
|
|
||||||
|
def read_harder_data():
|
||||||
|
harder_data = []
|
||||||
|
with open("log_t2_harder.txt", "r") as f:
|
||||||
|
# Read csv file
|
||||||
|
data = f.read()
|
||||||
|
# Split data into lines
|
||||||
|
data = data.splitlines()
|
||||||
|
# Split lines into columns
|
||||||
|
data = [line.split(",") for line in data]
|
||||||
|
data = data[1:]
|
||||||
|
# Remove third column
|
||||||
|
for row in data:
|
||||||
|
harder_data.append(row[:2])
|
||||||
|
return harder_data
|
||||||
|
|
||||||
|
def plot_harder_data(harder_data):
|
||||||
|
# Plot data
|
||||||
|
x = [int(i) for i in range(50, 950, 50)]
|
||||||
|
y = [float(row[1]) for row in harder_data]
|
||||||
|
plt.plot(x, y)
|
||||||
|
plt.suptitle(f"How maze size affects time (n_tests: {len(x)})")
|
||||||
|
plt.xlabel("Maze size (N) -> (N x N)")
|
||||||
|
plt.ylabel("Time (s)")
|
||||||
|
# Save plot
|
||||||
|
plt.savefig("../report/images/custom_tests_comparrison.png")
|
||||||
|
plt.clf()
|
||||||
|
|
||||||
|
|
||||||
|
def read_treasure_data():
|
||||||
|
treasure_data = []
|
||||||
|
with open("log_t3_treasure_hunt.txt", "r") as f:
|
||||||
|
# Read csv file
|
||||||
|
data = f.read()
|
||||||
|
# Split data into lines
|
||||||
|
data = data.splitlines()
|
||||||
|
# Split lines into columns
|
||||||
|
data = [line.split(",") for line in data]
|
||||||
|
data = data[1:]
|
||||||
|
# Remove third column
|
||||||
|
for row in data:
|
||||||
|
treasure_data.append(row[:2])
|
||||||
|
return treasure_data
|
||||||
|
|
||||||
|
def plot_treasure_data(treasure_data):
|
||||||
|
# Plot data
|
||||||
|
x = [int(row[0]) for row in treasure_data]
|
||||||
|
y = [float(row[1]) for row in treasure_data]
|
||||||
|
plt.plot(x, y)
|
||||||
|
plt.suptitle(f"Treasure hunt for provided tests (n_tests: {len(x)})")
|
||||||
|
plt.xlabel("Maze")
|
||||||
|
plt.ylabel("Time (s)")
|
||||||
|
# Save plot
|
||||||
|
plt.savefig("../report/images/treasures_comparrison.png")
|
||||||
|
plt.clf()
|
||||||
|
|
||||||
|
def main():
|
||||||
|
task_one_classic_data, task_two_classic_data = read_classic_data()
|
||||||
|
plot_classic_data(task_one_classic_data, task_two_classic_data)
|
||||||
|
harder_data = read_harder_data()
|
||||||
|
plot_harder_data(harder_data)
|
||||||
|
treasure_data = read_treasure_data()
|
||||||
|
plot_treasure_data(treasure_data)
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
Binary file not shown.
After Width: | Height: | Size: 28 KiB |
Binary file not shown.
After Width: | Height: | Size: 26 KiB |
Binary file not shown.
After Width: | Height: | Size: 22 KiB |
Loading…
Reference in New Issue