From d56e1378038d75a1fd5d4b545303219f1812955d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Magdalena=20Wilczy=C5=84ska?= Date: Tue, 14 May 2019 23:54:23 +0200 Subject: [PATCH] Removed old file --- Traversal/BestFS_nope.py | 131 --------------------------------------- 1 file changed, 131 deletions(-) delete mode 100644 Traversal/BestFS_nope.py diff --git a/Traversal/BestFS_nope.py b/Traversal/BestFS_nope.py deleted file mode 100644 index 06cc4ca..0000000 --- a/Traversal/BestFS_nope.py +++ /dev/null @@ -1,131 +0,0 @@ -from utilities import movement,check_moves -from DataModels.House import House -from DataModels.Container import Container -from config import GRID_WIDTH, GRID_HEIGHT -from math import sqrt -INF = float('Inf') - - -def CalculateDistance(gc, object_list): - min_distance_goal = ['-',INF] - for h in object_list: - distance = sqrt(pow(h[1][0]-gc[0],2)+pow(h[1][1]-gc[1],2)) - if(min_distance_goal[1] > distance): - min_distance_goal = [h[1], distance] - return min_distance_goal - -def BestFS(grid, gc_moveset, object_list): - print(gc_moveset) - x, y = gc_moveset[-1][0], gc_moveset[-1][1] - available_movement = check_moves(grid, x, y) - - if(len(object_list) == 0): - return gc_moveset - - - decision_stack = [] - - constraint = 100 - while(len(object_list) > 0 and constraint > 0): - - print("================") - print("iteracja: "+str(100-constraint)) - print("GC: "+str([x,y])) - print(object_list) - - #calculate distance to the nearest object - min_distance_goal = CalculateDistance([x,y], object_list) - print(min_distance_goal) - - #check if can pick garbage - if(min_distance_goal[1] == 1): - gc_moveset.append("pick_garbage") - decision_stack = [] - #remove object from goals list - cell = grid[min_distance_goal[0][0]][min_distance_goal[0][1]] - print("***"+str([cell,min_distance_goal[0]])+"***") - object_list.remove([cell,min_distance_goal[0]]) - #if that was the last object, return - if(len(object_list)==0): - break - #look for a new goal - available_movement = check_moves(grid, x, y) - min_distance_goal = CalculateDistance([x,y], object_list) - print(min_distance_goal) - print(min_distance_goal[0]) - - #set preffered directions based on the closest object - preffered_directions = [] - discouraged_directions = [] - - if(min_distance_goal[0][0] > x): - preffered_directions.append("right") - if(min_distance_goal[0][0] < x): - preffered_directions.append("left") - if(min_distance_goal[0][1] > y): - preffered_directions.append("down") - if(min_distance_goal[0][1] < y): - preffered_directions.append("up") - - if(len(preffered_directions) == 1): - discouraged_directions.append(movement(grid, x, y)[1][preffered_directions[0]]) - - print("Preferred: "+str(preffered_directions)) - print("Discouraged: "+str(discouraged_directions)) - print("Available: "+str(available_movement)) - - #if agent finds more than 1 optimal route - possible_routes = len([i for i in available_movement if i in preffered_directions ]) - print("Preferred to available count: "+str(possible_routes)) - - #HOTFIX - if(possible_routes > 1): - if(len(decision_stack) > 0): - if(decision_stack[0] == [x,y]): - preffered_directions.pop(1) - else: - decision_stack = [[x,y]] - preffered_directions.pop(0) - print("Decision stack: "+str(decision_stack)) - - """ if(possible_routes > 1): - for move in available_movement: - if (move in preffered_directions): - x_next, y_next = movement(grid, x, y)[0][move] - route = BestFS(grid, [x_next,y_next], houses_list, [[x_next, y_next]], check_moves(grid, x_next, y_next, move), "House", depth + 1) - print("DIRECTION: "+str(move)+", GIVEN "+str(len(houses_list))+" HOUSES, RECURSION ON DEPTH "+str(depth+1)+" returned "+str(route)) - if (route == None): - break - if (route.count("pick_garbage") - 1 == len(houses_list)): - print(str(route.count("pick_garbage"))+" / "+str(len(houses_list))) - print("ROUTE ADDED") - gc_moveset.extend(route) - break - break """ - - #if got no available moves but still has goals to visit - if(len(available_movement) == 0): - available_movement = check_moves(grid, x, y) - - #selecting next move based on preferences (starting with the worst option) - if(len(available_movement)>0): - next_move = available_movement[0] #pick any - for move in available_movement: - if (move not in discouraged_directions): #pick any not discouraged move if possible - next_move = move - break - for move in preffered_directions: - if(move in available_movement): #pick any preferred move if possible - next_move = move - break - print("Next move: "+str(next_move)) - x_next, y_next = movement(grid, x, y)[0][next_move] - print("Next moving to "+str(x_next)+" "+str(y_next)) - gc_moveset.append([x_next,y_next]) - x, y = x_next, y_next - available_movement = check_moves(grid, x, y, next_move) - print("------------------------------") - - constraint -= 1 - - return gc_moveset, [x,y]