Skip to content
Snippets Groups Projects
Commit 7eec3e72 authored by Thom Badings's avatar Thom Badings
Browse files

removed any hardcoded arguments

parent a98f3b89
No related branches found
No related tags found
1 merge request!2Merged
......@@ -45,17 +45,6 @@ print('Base directory:', base_dir)
#-----------------------------------------------------------------------------
args = parse_arguments()
#args.model = 'anaesthesia_delivery'
# args.drug_partition = [10,10,10]
#args.bld_par_uncertainty = True
#args.prism_java_memory = 32
args.model = 'drone'
args.drone_spring = True
args.iterations = 1
args.partition_plot = True
args.drone_mc_iter = 20
args.drone_mc_step = 1
with open(os.path.join(base_dir, 'path_to_prism.txt')) as f:
args.prism_folder = str(f.readlines()[0])
......
......@@ -53,12 +53,18 @@ class Controller(object):
self.error_neg.value = error[:,0]
self.error_pos.value = error[:,1]
self.prob.solve(warm_start = True, solver='ECOS')
if self.prob.status == 'infeasible':
try:
self.prob.solve(warm_start = True, solver='ECOS')
if self.prob.status == 'infeasible':
return False, None, None
else:
return True, self.x_plus.value, self.u.value
except:
# Throw an exception is CVXPY solver failed
print('-- Warning: Could not solve LP; skip this action')
return False, None, None
else:
return True, self.x_plus.value, self.u.value
......@@ -91,18 +97,24 @@ class LP_vertices_contained(object):
self.P_vertices.value = vertices
if self.solver == 'GUROBI':
self.prob.solve(warm_start = True, solver='GUROBI')
elif self.solver == 'ECOS':
self.prob.solve(warm_start = True, solver='ECOS')
elif self.solver == 'OSQP':
self.prob.solve(warm_start = True, solver='OSQP', eps_abs=1e-4, eps_rel=1e-4)
elif self.solver == 'SCS':
self.prob.solve(warm_start = True, solver='SCS')
else:
self.prob.solve(warm_start = True)
if self.prob.status != "infeasible":
return True
else:
return False
\ No newline at end of file
try:
if self.solver == 'GUROBI':
self.prob.solve(warm_start = True, solver='GUROBI')
elif self.solver == 'ECOS':
self.prob.solve(warm_start = True, solver='ECOS')
elif self.solver == 'OSQP':
self.prob.solve(warm_start = True, solver='OSQP', eps_abs=1e-4, eps_rel=1e-4)
elif self.solver == 'SCS':
self.prob.solve(warm_start = True, solver='SCS')
else:
self.prob.solve(warm_start = True)
if self.prob.status != "infeasible":
return True
else:
return False
except:
# Throw an exception is CVXPY solver failed
print('-- Warning: Could not solve LP; skip this state')
return False
\ No newline at end of file
......@@ -188,8 +188,11 @@ class anaesthesia_delivery_spec(master.spec_master):
width = self.partition['boundary'] @ np.array([-1, 1]) / self.partition['number']
# Actions per dimension (if 'auto', equal to nr of regions)
self.targets['boundary'] = 'auto' #self.partition['boundary']
self.targets['number'] = 'auto' #self.partition['number']
self.targets['boundary'] = self.partition['boundary']
self.targets['boundary'][:,0] = self.targets['boundary'][:,0] + width
self.targets['boundary'][:,1] = self.targets['boundary'][:,1] - width
self.targets['number'] = list(np.array(self.partition['number'])-2)
self.goal = [
np.array([[4, 6], [0, 10], [0, 10]])
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment