|
@@ -4,6 +4,7 @@ import math
|
|
|
from heapq import heappush, heappop
|
|
|
from random import shuffle, sample, randint, SystemRandom
|
|
|
import matplotlib.pyplot as plt
|
|
|
+from matplotlib.backends.backend_pdf import PdfPages
|
|
|
|
|
|
# globals to contain reference solutions
|
|
|
neos14 = [318, 324, 336, 319, 351, 311, 272, 361, 274, 322]
|
|
@@ -285,22 +286,33 @@ def main():
|
|
|
scores.append(prob_scores / 100.0)
|
|
|
good_sols.append(good_solutions)
|
|
|
|
|
|
- figure, axes = plt.subplots(3, 2, True)
|
|
|
+ with PdfPages("hill_climbing.pdf") as pdf:
|
|
|
+ figure, axes = plt.subplots(3, 1, True)
|
|
|
+ plt.title("Hill Climbing")
|
|
|
+
|
|
|
+ for i in range(0, 3):
|
|
|
+ axes[i].plot(range(1, 11), solution_steps[i], label = "Steps to Solution", color = 'b')
|
|
|
+ axes[i].set_xlabel("Problem Instance w/ " + str(i + 14) + " cities")
|
|
|
+ axes[i].set_ylabel("Steps Taken", color = 'b')
|
|
|
+ axis_twin = axes[i].twinx()
|
|
|
+ axis_twin.plot(range(1, 11), solution_scores[i], label = "Solution Quality", color = 'r')
|
|
|
+ axis_twin.set_ylabel("Solution Quality", color = 'r')
|
|
|
+ #axes[i].legend()
|
|
|
+ #axis_twin.legend()
|
|
|
+ pdf.savefig()
|
|
|
+ plt.close()
|
|
|
+
|
|
|
+ figure, axes = plt.subplots(3, 1, True)
|
|
|
+ plt.title("Hill Climbing Cont.")
|
|
|
+
|
|
|
+ for i in range(0, 3):
|
|
|
+ axes[i].plot(range(1, 11), good_sol_counts[i], color = 'b')
|
|
|
+ axes[i].set_xlabel("Problem Instance w/ " + str(i + 14) + " cities")
|
|
|
+ axes[i].set_ylabel("% of runs <= NEOS", color = 'b')
|
|
|
|
|
|
- for i in range(0, 3):
|
|
|
- axes[i][0].plot(range(1, 11), solution_steps[i], label = "Steps to Solution", color = 'b')
|
|
|
- axes[i][0].set_xlabel("Problem Instance w/ " + str(i + 14) + " cities")
|
|
|
- axes[i][0].set_ylabel("Steps Taken", color = 'b')
|
|
|
- axis_twin = axes[i][0].twinx()
|
|
|
- axis_twin.plot(range(1, 11), solution_scores[i], label = "Solution Quality", color = 'r')
|
|
|
- axis_twin.set_ylabel("Solution Quality", color = 'r')
|
|
|
- #axes[i].legend()
|
|
|
- #axis_twin.legend()
|
|
|
- for i in range(0, 3):
|
|
|
- axes[i][1].plot(range(1, 11), good_sol_counts[i], color = 'b')
|
|
|
- axes[i][1].set_xlabel("Problem Instance w/ " + str(i + 14) + " cities")
|
|
|
- axes[i][1].set_ylabel("% of runs <= NEOS", color = 'b')
|
|
|
-
|
|
|
- plt.savefig("hill_climbing.pdf")
|
|
|
+ pdf.savefig()
|
|
|
+ plt.close()
|
|
|
+
|
|
|
+ #plt.savefig("hill_climbing.pdf")
|
|
|
|
|
|
main()
|