def recordHillClimbing(): data = [] h0 = ZeroHeuristic() aStarWithH0 = AStar(h0) for i in range(0, 15): for j in range(0, 25): filename = '{0}_{1}.txt'.format(i, j) r = load_file(boardConfigsFolder + '/{0}'.format(filename)) sol1 = aStarWithH0.aStar(r) rr = load_file(harderPuzzlesFolder + '/{0}'.format(filename)) sol2 = aStarWithH0.aStar(rr) data.append([filename, sol1['Steps'], sol2['Steps']]) print(filename,sol1['Steps'], sol2['Steps']) with open('hillClimbing.csv', 'w', newline='') as f: wr = csv.writer(f, delimiter=',') wr.writerows(data)
def LoadPuzzle(self): self.enablePanel(self.bottomRightPanel) self.lblSteps['text']='' self.lblSteps.update() self.lblExpandedNodes['text']='' self.lblExpandedNodes.update() self.lblrunningTime['text']='' self.lblrunningTime.update() filename =boardConfigsFolder+"/" +"{}_{}.txt".format(int(self.spinBoxNumOfVehicle.get())-1,int(self.spinBoxPuzzleNum.get())-1) print(filename) self.rushhour = load_file(filename) self.drawBoard(self.rushhour.get_board())
cameFrom[neighbor] = current gScore[neighbor] = tentative_gScore return {'Expanded Nodes': expandedNodes, 'Steps':-1, 'Solution':None} def __reconstructPath(self, cameFrom, current): total_path = [current] while current in cameFrom.keys(): current = cameFrom[current] total_path.insert(0,current) return total_path boardConfigsFolder = "C:/Users/Abbas/PycharmProjects/Rush Hour Puzzle Game/New folder" if __name__ == '__main__': # for i in range(25): filename =boardConfigsFolder+"/" +"3_{0}.txt".format(1) rushHour1 = load_file(filename) # print(rushHour1) # aStar = AStar(DistanceFromTargetToExit()) # elapsedTime = time.time() # sol = aStar.aStar(rushHour1) # print(sol,'Time= ',((time.time()-elapsedTime)*1000)) # h = BlockingExitHeuristic() # print(h.heuristicEstimate(rushHour1)) print(rushHour1) h4 = BlockingLowerBoundEstimation() aStar = AStar(h4) sol = aStar.aStar(rushHour1) print(sol['Solution'],"\n steps", sol['Steps'])
wr = csv.writer(f, delimiter=',') wr.writerows(data) print('File#','Num of Vehicles','Heuristic','Time', 'Expanded Nodes', 'Steps', 'Solveable or not') h0 = ZeroHeuristic() h1 = DistanceFromTargetToExit() h2 = BlockingExitHeuristic() h3 = BlockingLowerBoundEstimation() aStarWithH0 = AStar(h0) aStarWithH1 = AStar(h1) aStarWithH2 = AStar(h2) aStarWithH3 = AStar(h3) data = [] for i in range(3,15): for j in range(25): puzzleFile = boardConfigsFolder+"/" +"{0}_{1}.txt".format(i,j) rushHour = load_file(puzzleFile) elapsedTime = time.time() sol0 = aStarWithH0.aStar(rushHour) t0 = round((time.time()-elapsedTime)*1000) numVehicles = len(rushHour.vehicles) # data.append([i,numVehicles,'h0',t,sol['Expanded Nodes'],sol['Steps'],s]) # print(i,numVehicles,'h0',t,sol['Expanded Nodes'],sol['Steps'],s) elapsedTime = time.time() sol1 = aStarWithH1.aStar(rushHour) t1 = round((time.time()-elapsedTime)*1000) # data.append([i,numVehicles,'h1',t,sol['Expanded Nodes'],sol['Steps'],s]) # print(i,numVehicles,'h1',t,sol['Expanded Nodes'],sol['Steps'],s)
harderPuzzlesFolder = "C:/Users/Abbas/PycharmProjects/Rush Hour Puzzle Game/HarderPuzzles" generateHarderPuzzle = GenerateHarderPuzzle() def recordHillClimbing(): data = [] h0 = ZeroHeuristic() aStarWithH0 = AStar(h0) for i in range(0, 15): for j in range(0, 25): filename = '{0}_{1}.txt'.format(i, j) r = load_file(boardConfigsFolder + '/{0}'.format(filename)) sol1 = aStarWithH0.aStar(r) rr = load_file(harderPuzzlesFolder + '/{0}'.format(filename)) sol2 = aStarWithH0.aStar(rr) data.append([filename, sol1['Steps'], sol2['Steps']]) print(filename,sol1['Steps'], sol2['Steps']) with open('hillClimbing.csv', 'w', newline='') as f: wr = csv.writer(f, delimiter=',') wr.writerows(data) if __name__ == '__main__': for i in range(13,15): for j in range(0,25): filename = '{0}_{1}.txt'.format(i,j) print('puzzle file {0}'.format(filename)) puzzle = load_file(boardConfigsFolder+'/{0}'.format(filename)) harderPuzzle = generateHarderPuzzle.hillClimbing(puzzle) savePuzzle(harderPuzzle, harderPuzzlesFolder+'/'+filename) recordHillClimbing()