def analyze_track(filename, manhattan_heuristic): (states, start_state, t) = extract_track(filename, manhattan_heuristic) space = structured_space(states, start_state) results = [] for k in range(1, 4): #len(states)): space.restart_heuristic() lrta_costs = [] while not space.have_residuals_converged(0.001): lrta_costs.append(space.simulate_space_lrta(start_state)) space.restart_heuristic() lrtak_costs = [] while not space.have_residuals_converged(0.001): lrtak_costs.append(space.simulate_space_lrtak(k, start_state)) partial_results = (lrta_costs, lrtak_costs, k) results.append(partial_results) return results
def analyze_track(filename, manhattan_heuristic): (states, start_state, t) = extract_track(filename, manhattan_heuristic) space = structured_space(states, start_state) results = [] for k in range(1, 4): # len(states)): space.restart_heuristic() lrta_costs = [] while not space.have_residuals_converged(0.001): lrta_costs.append(space.simulate_space_lrta(start_state)) space.restart_heuristic() lrtak_costs = [] while not space.have_residuals_converged(0.001): lrtak_costs.append(space.simulate_space_lrtak(k, start_state)) partial_results = (lrta_costs, lrtak_costs, k) results.append(partial_results) return results
def onEnter(self): filename = self.entry.get() k = self.kentry.get() ### change the one below to support a flag for when to use the other heuristic (self.states, self.start, self.display) = extract_track(filename, True) self.focus_state = self.start self.restart_heuristic() if k != "": self.k = int(self.kentry.get()) ### change this one for a second entry box or smthng self.simulate_space_lrtak() else: self.simulate_space_lrta()
def analyze_lrtak_old(logfilename, tracks_path, use_manhattan, max_k, iterations): tracks = [f for f in listdir(tracks_path) if isfile(join(tracks_path, f))] logfile = open(logfilename, "w") for track in tracks: ### construct track (states, start, display) = extract_track( tracks_path + "/" + track, use_manhattan ) ### recall: True as argument means a manhattan distance. print track ### test for lrtak for k in range(1, max_k + 1): experimental_space = structuredSpace(states, start) total_costs = [] total_convergence_error = [] ### stores the total deviation. for i in range(iterations): total_convergence_error.append( experimental_space.get_total_error()) total_costs.append( experimental_space.simulate_space_lrta_old( k, start)) #### lrtak old run if i % 5 == 0: print i error_rate = [total_convergence_error[0]] + [ total_convergence_error[i] - total_convergence_error[i - 1] for i in range(len(total_convergence_error)) ] ### write results logfile.write(track) logfile.write("\n") logfile.write(str(k)) logfile.write("\n") logfile.write("total_costs") logfile.write("\n") logfile.write(str(total_costs)) logfile.write("\n") logfile.write("error_rate") logfile.write("\n") logfile.write(str(error_rate)) logfile.write("\n") logfile.write("total_convergence_error") logfile.write("\n") logfile.write(str(total_convergence_error)) logfile.write("\n") logfile.close()
def analyze_lrtak_new(logfilename, tracks_path, use_manhattan, max_k, iterations): tracks = [f for f in listdir(tracks_path) if isfile(join(tracks_path, f)) ] logfile = open(logfilename, "w") for track in tracks: ### construct track (states, start, display) = extract_track(tracks_path + "/" + track, use_manhattan) ### recall: True as argument means a manhattan distance. print track ### test for lrtak for k in range(1, max_k+1): experimental_space = structuredSpace(states, start) total_costs = [] total_convergence_error = [] ### stores the total deviation. for i in range(iterations): total_convergence_error.append(experimental_space.get_total_error()) total_costs.append(experimental_space.simulate_space_lrtak_new(k, start)) #### lrtak new run if i%5 == 0: print i error_rate = [total_convergence_error[0]] + [total_convergence_error[i] - total_convergence_error[i-1] for i in range(len(total_convergence_error))] ### write results logfile.write(track) logfile.write("\n") logfile.write(str(k)) logfile.write("\n") logfile.write("total_costs") logfile.write("\n") logfile.write(str(total_costs)) logfile.write("\n") logfile.write("error_rate") logfile.write("\n") logfile.write(str(error_rate)) logfile.write("\n") logfile.write("total_convergence_error") logfile.write("\n") logfile.write(str(total_convergence_error)) logfile.write("\n") logfile.close()