def __init__(self, scenario_file):
       
        # create scenario
        self.width, self.height, self.immobile_objs, self.mobile_objs, self.manipulatable_obj, self.target_obj = loadScenario(scenario_file)

        #self.target_zone = 8 # hard code for debugging  s.6: 8, s6.1:12, s7:20
        self.target_obj_id = self.target_obj['id']
        self.solution = None
        self.solved = False
        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
    def __init__(self, scenario_file):

        # create scenario
        self.width, self.height, self.immobile_objs, self.mobile_objs, self.manipulatable_obj, self.target_obj = loadScenario(scenario_file)

        #self.target_zone = 8 # hard code for debugging  s.6: 8, s6.1:12, s7:20
        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_groups = quali_sim.run() 

        self.initial_zone = quali_sim.initial_zone       
        self.graph = quali_sim.graph
        self.zones = quali_sim.zones
        self.zone_dic = {}
        for x in xrange(self.width):
            for y in xrange(self.height):
                self.zone_dic[(x,y)] = self.__find_zones(x,y)
    def __init__(self, scenario_file):

        # create scenario
        self.width, self.height, self.immobile_objs, self.mobile_objs, self.manipulatable_obj, self.target_obj = loadScenario(scenario_file)

        self.target_zone = 12 # hard code for debugging  s.6: 8, s6.1:12, s7:20
        self.target_obj_id = self.target_obj['id']
        self.initial_zone = 4 # hard code for debugging s.6:24, s6.1:4, s7:3
        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, self.initial_direction = quali_sim.run()        
        self.graph = quali_sim.graph
        self.zones = quali_sim.zones