aboutsummaryrefslogtreecommitdiffstats
path: root/src/convex_optimization.py
diff options
context:
space:
mode:
authorjeanpouget-abadie <jean.pougetabadie@gmail.com>2015-02-03 19:11:35 -0500
committerjeanpouget-abadie <jean.pougetabadie@gmail.com>2015-02-03 19:11:35 -0500
commit48a2de8744a7b03e196baa4fbede104eeb396c92 (patch)
tree964dbd0b39bc738b2c35df114b7c44643e4cbeaa /src/convex_optimization.py
parent1f293b379aab18f07c958aaa62c96916a6ae61c5 (diff)
downloadcascades-48a2de8744a7b03e196baa4fbede104eeb396c92.tar.gz
changes
Diffstat (limited to 'src/convex_optimization.py')
-rw-r--r--src/convex_optimization.py11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/convex_optimization.py b/src/convex_optimization.py
index f4c997a..d667c6e 100644
--- a/src/convex_optimization.py
+++ b/src/convex_optimization.py
@@ -90,7 +90,7 @@ def diff_and_opt(M_val, w_val, f_x, f_xz):
def F(x=None, z=None):
if x is None:
- return 0, cvxopt.matrix(-.0001, (n,1))
+ return 0, cvxopt.matrix(-.0000001, (n,1))
elif z is None:
y, y_diff = f_x(x, M_val, w_val)
return cvxopt.matrix(float(y), (1, 1)),\
@@ -105,15 +105,18 @@ def diff_and_opt(M_val, w_val, f_x, f_xz):
h = cvxopt.matrix(0.0, (n,1))
#Relaxing precision constraints
- #cvxopt.solvers.options['feastol'] = 2e-5
- #cvxopt.solvers.options['abstol'] = 2e-5
+ cvxopt.solvers.options['feastol'] = 2e-5
+ cvxopt.solvers.options['abstol'] = 2e-5
#cvxopt.solvers.options['maxiters'] = 100
- cvxopt.solvers.options['show_progress'] = True
+ cvxopt.solvers.options['show_progress'] = False
try:
theta = cvxopt.solvers.cp(F, G, h)['x']
except ArithmeticError:
print("ArithmeticError thrown, change initial point"
" given to the solver")
+ except ValueError:
+ print("Domain Error, skipping to next node")
+ theta = np.zeros(len(w_val))
if cvxopt.solvers.options['show_progress']:
print(1 - np.exp(theta))