def __init__(self, scenario_file, perturb=False, gravity_dir=(-1,-1)): self.perturb = perturb self.gravity_dir = gravity_dir # create scenario self.width, self.height, self.immobile_objs, self.mobile_objs, self.manipulatable_obj, self.target_obj = loadScenario( scenario_file) self.scenario_file = scenario_file print 'solving scenario: ', scenario_file print 'gravity internal sim: ', gravity_dir self.evalReal = EvaluateQualiSol(scenario_file, gravity_dir) #self.evalReal = EvaluateQualiSol('./scenarios/mini2.json') #self.evalReal = EvaluateQualiSol('./scenarios/s2.json') self.objs_map = {} self.obj_min_angle_difference = {} self.first_real_sol = -1 for obj in self.immobile_objs: if perturb: perturb_obj(obj) self.objs_map[obj['id']] = obj #self.obj_min_angle_difference[obj['id']] = [100,100] self.obj_min_angle_difference[obj['id']] = [100, 0] if perturb: sps(scenario_file, 5, self.immobile_objs) self.target_obj_id = self.target_obj['id'] self.maxd = 3 self.scenario = None self.qualitative_paths = {} self.qualitative_paths_actions = {} self.zones = [] self.simulation_counter = 0 self.round = 0 quali_sim = qualitative_simulation(scenario_file) self.estimated_qualitative_paths = quali_sim.run() self.initial_zone = quali_sim.initial_zone self.graph = quali_sim.graph self.zones = quali_sim.zones self.zone_dic = {} self.zone_distance = {} for x in xrange(self.width): for y in xrange(self.height): self.zone_dic[(x, y)] = self.__find_zones(x, y) for i in xrange(len(self.zones) - 1): self.zone_distance[(i, i)] = 0 for j in xrange(i + 1, len(self.zones)): distance = self.zones[i].distance(self.zones[j]) self.zone_distance[(i, j)] = distance self.zone_distance[(j, i)] = distance self.zone_distance[(len(self.zones) - 1, len(self.zones) - 1)] = 0
def __init__(self, scenario_file, gravity_dir=(-1, -1)): # self.evalPath = EVAL(scenario_file) self.gravity_dir = gravity_dir self.evalPath = EVAL(scenario_file, gravity_dir=gravity_dir) # create scenario self.sigma = -0.0001 self.width, self.height, self.immobile_objs, self.mobile_objs, self.manipulatable_obj, self.target_obj = loadScenario( scenario_file ) self.target_obj_id = self.target_obj["id"] self.maxd = 3 self.qualitative_paths = {} self.qualitative_paths_actions = {} self.zones = [] self.simulation_counter = 0 quali_sim = qualitative_simulation(scenario_file) self.estimated_qualitative_paths = quali_sim.run() self.initial_zone = quali_sim.initial_zone self.graph = quali_sim.graph self.zones = quali_sim.zones self.zone_dic = {} self.zone_distance = {} for x in xrange(self.width): for y in xrange(self.height): self.zone_dic[(x, y)] = self.__find_zones(x, y) for i in xrange(len(self.zones) - 1): self.zone_distance[(i, i)] = 0 for j in xrange(i + 1, len(self.zones)): distance = self.zones[i].distance(self.zones[j]) self.zone_distance[(i, j)] = distance self.zone_distance[(j, i)] = distance self.zone_distance[(len(self.zones) - 1, len(self.zones) - 1)] = 0