Example #1
0
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
Example #2
0
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
Example #3
0
 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()
Example #4
0
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()