From 5d9d74693234102d6ce593577a2e2532ddea1c16 Mon Sep 17 00:00:00 2001 From: Lindsey Heagy Date: Sun, 3 Apr 2016 10:42:28 -0700 Subject: [PATCH] kwarg for stepping off bounds in projected gradient --- SimPEG/Optimization.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/SimPEG/Optimization.py b/SimPEG/Optimization.py index 54f6c4ff..0a241710 100644 --- a/SimPEG/Optimization.py +++ b/SimPEG/Optimization.py @@ -888,6 +888,8 @@ class ProjectedGNCG(BFGS, Minimize, Remember): maxIterCG = 5 tolCG = 1e-1 + stepOffBoundsFact = 0.1 # perturbation of the inactive set off the bounds + lower = -np.inf upper = np.inf @@ -998,7 +1000,8 @@ class ProjectedGNCG(BFGS, Minimize, Remember): dm_i = max( abs( delx ) ) dm_a = max( abs(rhs_a) ) - delx = delx + rhs_a * dm_i / dm_a /10. + # perturb inactive set off of bounds so that they are included in the step + delx = delx + self.stepOffBoundsFact * (rhs_a * dm_i / dm_a) # Only keep gradients going in the right direction on the active set indx = ((self.xc<=self.lower) & (delx < 0)) | ((self.xc>=self.upper) & (delx > 0))