From 48a2de8744a7b03e196baa4fbede104eeb396c92 Mon Sep 17 00:00:00 2001 From: jeanpouget-abadie Date: Tue, 3 Feb 2015 19:11:35 -0500 Subject: changes --- src/convex_optimization.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'src/convex_optimization.py') 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)) -- cgit v1.2.3-70-g09d2