Esempio n. 1
0
 def check_contained(self, poly1, poly2):
     gurobi_model = grb.Model()
     gurobi_model.setParam('OutputFlag', self.output_flag)
     input1 = Experiment.generate_input_region(gurobi_model, self.analysis_template, poly1, self.env_input_size)
     Experiment.generate_region_constraints(gurobi_model, self.analysis_template, input1, poly2, self.env_input_size, eps=1e-5)  # use epsilon to prevent single points
     x_results = self.optimise(self.analysis_template, gurobi_model, input1)
     if x_results is None:
         # not contained
         return False
     else:
         return True
 def check_unsafe(self, template, bnds):
     for A, b in self.unsafe_zone:
         gurobi_model = grb.Model()
         gurobi_model.setParam('OutputFlag', False)
         input = gurobi_model.addMVar(shape=(self.env_input_size,), lb=float("-inf"), name="input")
         Experiment.generate_region_constraints(gurobi_model, template, input, bnds, self.env_input_size)
         Experiment.generate_region_constraints(gurobi_model, A, input, b, self.env_input_size)
         gurobi_model.update()
         gurobi_model.optimize()
         if gurobi_model.status == 2:
             return True
     return False