ADMM

In the previous post, I showed how to use Moreau-Yosida regularization for inverse problems with non-smooth regularization functionals. Specifically, we were looking at the total variation functional

$$R(q) = \alpha\int_\Omega|\nabla q|dx$$

as a regularizer, which promotes solutions that are piecewise constant on sets with relatively nice-looking boundary curves. Rather than try to minimize this functional directly, we instead used a smooth approximation, which in many cases is good enough. The smooth approximation is based on penalty-type methods, and one distinct disadvantage of penalty methods is that they tend to wreck the conditioning of the problem. This poor conditioning manifests itself as a multiple order-of-magnitude imbalance in the different terms in the objective. To minimize the objective accurately, say through a line search procedure, you have to do so with an accuracy that matches the magnitude of the smallest term.

In another previous post on Nitsche's method, I looked at how the pure quadratic penalty method compared to the augmented Lagrangian method for imposing Dirichlet boundary conditions. Here we'll proceed in a similar vein: what happens if we go from using a pure penalty method to using an augmented Lagrangian scheme?

Generating the exact data

We'll use the exact same problem as in the previous post on total variation regularization -- a random Fourier series for the boundary data, a quadratic blob for the forcing, and a discontinuous conductivity coefficient.

import firedrake
mesh = firedrake.UnitSquareMesh(32, 32, diagonal='crossed')
Q = firedrake.FunctionSpace(mesh, 'CG', 2)
V = firedrake.FunctionSpace(mesh, 'CG', 2)
import numpy as np
from numpy import random, pi as π
x = firedrake.SpatialCoordinate(mesh)

rng = random.default_rng(seed=1)
def random_fourier_series(std_dev, num_modes, exponent):
    from firedrake import sin, cos
    A = std_dev * rng.standard_normal((num_modes, num_modes))
    B = std_dev * rng.standard_normal((num_modes, num_modes))
    return sum([(A[k, l] * sin(π * (k * x[0] + l * x[1])) +
                 B[k, l] * cos(π * (k * x[0] + l * x[1])))
                / (1 + (k**2 + l**2)**(exponent/2))
                for k in range(num_modes)
                for l in range(int(np.sqrt(num_modes**2 - k**2)))])
from firedrake import Function
g = Function(V).interpolate(random_fourier_series(1.0, 6, 1))
from firedrake import inner, max_value, conditional, Constant
a = -Constant(4.5)
r = Constant(1/4)
ξ = Constant((0.4, 0.5))
q_true = Function(Q).interpolate(a * conditional(inner(x - ξ, x - ξ) < r**2, 1, 0))
firedrake.trisurf(q_true);
No description has been provided for this image
b = Constant(6.)
R = Constant(1/4)
η = Constant((0.7, 0.5))
f = Function(V).interpolate(b * max_value(0, 1 - inner(x - η, x - η) / R**2))
from firedrake import exp, grad, dx, ds
k = Constant(1.)
h = Constant(10.)
u_true = Function(V)
v = firedrake.TestFunction(V)
F = (
    (k * exp(q_true) * inner(grad(u_true), grad(v)) - f * v) * dx +
    h * (u_true - g) * v * ds
)
opts = {
    'solver_parameters': {
        'ksp_type': 'preonly',
        'pc_type': 'lu',
        'pc_factor_mat_solver_type': 'mumps',
    },
}
firedrake.solve(F == 0, u_true, **opts)
firedrake.trisurf(u_true);
No description has been provided for this image

Generating the observational data

To create the synthetic observations, we'll once again need to call out directly to PETSc to get a random field with the right error statistics when using a higher-order finite element approximation.

ξ = Function(V)
n = len(ξ.dat.data_ro)
ξ.dat.data[:] = rng.standard_normal(n)
from firedrake import assemble
from firedrake.petsc import PETSc
ϕ, ψ = firedrake.TrialFunction(V), firedrake.TestFunction(V)
m = inner(ϕ, ψ) * dx
M = assemble(m, mat_type='aij').M.handle
ksp = PETSc.KSP().create()
ksp.setOperators(M)
ksp.setUp()
pc = ksp.pc
pc.setType(pc.Type.CHOLESKY)
pc.setFactorSolverType(PETSc.Mat.SolverType.PETSC)
pc.setFactorSetUpSolverType()
L = pc.getFactorMatrix()
pc.setUp()
area = assemble(Constant(1) * dx(mesh))
z = Function(V)
z.dat.data[:] = rng.standard_normal(n)
with z.dat.vec_ro as Z:
    with ξ.dat.vec as Ξ:
        L.solveBackward(Z, Ξ)
        Ξ *= np.sqrt(area / n)
 = u_true.dat.data_ro[:]
signal = .max() - .min()
signal_to_noise = 50
σ = firedrake.Constant(signal / signal_to_noise)

u_obs = u_true.copy(deepcopy=True)
u_obs += σ * ξ

Solution via ADMM

To motivate ADMM, it helps to understand the augmented Lagrangian method. There are two basic ways to solve equality-constrained optimization problems: the Lagrange multiplier method and the penalty method. The augmented Lagrangian method uses both a Lagrange multiplier and a quadratic penalty, which astonishingly works much better than either the pure Lagrange multiplier or penalty methods. ADMM is based on using the augmented Lagrangian method with a consensus constraint to split out non-smooth problems. Specifically, we want to find a minimizer of the functional

$$J(q) = E(G(q) - u^o) + \alpha\int_\Omega|\nabla q|\, dx$$

where $E$ is the model-data misfit and $G$ is the solution operator for the problem

$$F(u, q) = 0.$$

If $F$ is continuously differentiable with respect to both of its arguments and the linearization with respect to $u$ is invertible, then the implicit function theorem in Banach spaces tells us that such a solution operator $u = G(q)$ exists. Minimizing this functional $J(q)$ is more challenging than the case where we used the $H^1$-norm to regularize the problem because the total variation functional is non-smooth. In the previous post, we showed how to work around this challenge by using Moreau-Yosida regularization. You can motivate Moreau-Yosida regularization by introducing an auxiliary vector field $v$ and imposing the constraint that $v = \nabla q$ by a quadratic penalty method. We can then solve for $v$ exactly because we know analytically what the proximal operator for the 1-norm is. The resulting functional upon eliminating $v$ is the Moreau-Yosida regularized form.

The idea behind ADMM is to instead use an augmented Lagrangian -- combining both the classical method of Lagrange multipliers with the quadratic penalty method -- to enforce the constraint that $v = \nabla q$. This gives us the augmented Lagrangian

$$\begin{align} L_\rho(q, v, \mu) & = E(G(q) - u^o) + \alpha\int_\Omega|v|\, dx \\ & \qquad + \rho\alpha^2\int_\Omega\left(\mu\cdot(\nabla q - v) + \frac{1}{2}|\nabla q - v|^2\right)dx. \end{align}$$

If you've seen ADMM before, you might notice that we've scaled the penalty parameter a bit. We put in an extra factor of $\alpha^2$ with the penalty term $\|\nabla q - v\|^2$ and an extra factor of $\rho\alpha^2$ with the Lagrange multiplier $\mu$ so that it has the same units as both $\nabla q$ and $v$. In order to highlight the connection with Moreau-Yosida regularization, we'll do a slight rearrangement by completing the square:

$$\begin{align} L_\rho(q, v, \mu) & = E(G(q) - u^o) + \alpha\int_\Omega|v|\, dx \\ & \qquad + \frac{\rho\alpha^2}{2}\int_\Omega\left\{|\nabla q + \mu - v|^2 - |\mu|^2\right\}dx. \end{align}$$

If we look at the parts of the Lagrangian involving only $v$, we get something that looks a lot like Moreau-Yosida regularization of the $L^1$ norm, only the argument to be evaluated at is $\nabla q + \mu$. Likewise, if we look at the parts of the Lagrangian involving only $q$, we have something that looks exactly like $H^1$ regularization, only with the regularization centered around $v - \mu$ instead of around 0.

Each iteration of the method will proceed in three steps:

  1. Minimize $L_\rho$ with respect to $q$ only. This step is very similar to using the squared $H^1$-norm for regularization but for the fact that we're not regularizing around 0, but rather around $v - \mu$.
  2. Minimize $L_\rho$ with respect to $v$: $$v \leftarrow \text{soft threshold}_{\rho\alpha}(\nabla q + \mu)$$
  3. Perform a gradient ascent step for $\mu$: $$\mu \leftarrow \mu + \nabla q - v$$

The final gradient ascent step for $\mu$ seemed a little bit mysterious to me at first. Ultimately the whole problem is a saddle point problem for $\mu$, so intuitively it made sense to me that gradient ascent would move you in the right direction. I still felt in my gut that you should have to do some more sophisticated kind of update for $\mu$. So I fell down a deep rabbit hole trying to understanding why the augmented Lagrangian method actually works. The usual references like Nocedal and Wright are deafeningly silent on this issue; the only source I could find that gave a decent explanation was Nonlinear Programming by Bertsekas. You could just believe me that step 3 is the right thing to do, but the reasons why are not at all trivial!

from firedrake.adjoint import (
    Control, ReducedFunctional, MinimizationProblem, ROLSolver
)

First, we'll solve the forward problem with our blunt initial guess for the solution. Under the hood, pyadjoint will tape this operation, thus allowing us to correctly calculate the derivative of the objective functional later.

firedrake.adjoint.continue_annotation()
q = Function(Q)
u = Function(V)
F = (
    (k * exp(q) * inner(grad(u), grad(v)) - f * v) * dx +
    h * (u - g) * v * ds
)
forward_problem = firedrake.NonlinearVariationalProblem(F, u)
forward_solver = firedrake.NonlinearVariationalSolver(forward_problem, **opts)
forward_solver.solve()
firedrake.trisurf(u);
No description has been provided for this image

These variables will store the values of the auxiliary field $v$ and the multiplier $\mu$ that enforces the constraint $v = \nabla q$. An interesting question that I haven't seen addressed anywhere in the literature on total variation regularization is what finite element basis to use for $v$ and $\mu$. Here we're using the usual continuous Lagrange basis of degree 1, which seems to work. I've also tried this with discontinuous basis functions and hte estimates for $v$ and $\mu$ seem to have oscillatory garbage. I have a hunch that some bases won't work because they fail to satisfy the LBB conditions. I have another hunch that it would be fun to repeat this experiment with some kind of H(curl)-conforming element for $v$ and $\mu$, but for now we'll just stick with CG(1).

Δ = firedrake.VectorFunctionSpace(mesh, 'CG', 1)
v = Function(Δ)
μ = Function(Δ)

At first, $v$ and $\mu$ are zero. So when we start the iteration, the first value of $q$ that we'll compute is just what we would have found had we used $H^1$-regularization. We'll start with the ADMM penalty of $\rho = 1$ and we'll use the same regularization penalty of $\alpha = 1 / 20$ that we used in the previous demo.

α = Constant(5e-2)
ρ = Constant(1.0)

Next we'll execute a few steps of the ADMM algorithm. I picked the number of iterations out of a hat. You should use an actual stopping criterion if you care about doing this right.

rol_options = {
    "Step": {
        "Type": "Line Search",
        "Line Search": {"Descent Method": {"Type": "Quasi-Newton Step"}},
    },
    "Status Test": {
        "Gradient Tolerance": 1e-4,
        "Step Tolerance": 1e-4,
        "Iteration Limit": 500,
    },
    "General": {
        "Print Verbosity": 0,
        "Secant": {"Type": "Limited-Memory BFGS", "Maximum Storage": 10},
    },
}
from firedrake import sqrt
from tqdm.notebook import trange

qs = [q.copy(deepcopy=True)]
vs = [v.copy(deepcopy=True)]
μs = [μ.copy(deepcopy=True)]

num_steps = 15
for step in trange(num_steps):
    # Step 1: Solve the inverse problem for q.
    J = assemble(
        0.5 * ((u - u_obs) / σ)**2 * dx +
        0.5 * ρ * α**2 * inner(grad(q) + μ - v, grad(q) + μ - v) * dx
    )

     = Control(q)
     = ReducedFunctional(J, )
    inverse_problem = MinimizationProblem()
    inverse_solver = ROLSolver(inverse_problem, rol_options, inner_product="L2")
    q_opt = inverse_solver.solve()
    q.assign(q_opt)
    forward_solver.solve()

    # Step 2: soft thresholding for v.
    z = grad(q) + μ
    expr = conditional(
        (ρ * α) ** 2 * inner(z, z) < 1,
        Constant((0, 0)),
        (1 - 1 / (ρ * α * sqrt(inner(z, z)))) * z
    )
    v.project(expr)

    # Step 3: gradient ascent for μ.
    μ.project(μ + grad(q) - v)

    qs.append(q.copy(deepcopy=True))
    vs.append(v.copy(deepcopy=True))

firedrake.adjoint.pause_annotation()
Quasi-Newton Method with Limited-Memory BFGS
Line Search: Cubic Interpolation satisfying Strong Wolfe Conditions
  iter  value          gnorm          snorm          #fval     #grad     ls_#fval  ls_#grad  
  0     9.643037e+00   1.399841e+01   
  1     7.154779e+00   1.335929e+01   6.999207e-01   4         2         3         0         
  2     5.393157e+00   1.204827e+01   2.346359e-01   5         3         1         0         
  3     5.119816e+00   9.150370e+00   6.277251e-02   7         4         2         0         
  4     4.930592e+00   5.247948e+00   7.295959e-02   8         5         1         0         
  5     4.789151e+00   6.097955e+00   8.649612e-02   9         6         1         0         
  6     4.622931e+00   8.221825e+00   1.287386e-01   10        7         1         0         
  7     4.449526e+00   6.205820e+00   7.992481e-02   11        8         1         0         
  8     4.121219e+00   7.280188e+00   2.101343e-01   12        9         1         0         
  9     4.026356e+00   1.433093e+01   1.244611e-01   13        10        1         0         
  10    3.860075e+00   5.601893e+00   5.077568e-02   14        11        1         0         
  11    3.793454e+00   3.482083e+00   4.074358e-02   15        12        1         0         
  12    3.730993e+00   4.139238e+00   3.734976e-02   16        13        1         0         
  13    3.608907e+00   7.079848e+00   1.024446e-01   17        14        1         0         
  14    3.551388e+00   9.673739e+00   1.310366e-01   18        15        1         0         
  15    3.456754e+00   4.237341e+00   2.493397e-02   19        16        1         0         
  16    3.389891e+00   3.839081e+00   3.335864e-02   20        17        1         0         
  17    3.321920e+00   4.611124e+00   5.314189e-02   21        18        1         0         
  18    3.251386e+00   1.149157e+01   1.349899e-01   22        19        1         0         
  19    3.136923e+00   4.332286e+00   7.121934e-02   23        20        1         0         
  20    3.090610e+00   3.009438e+00   3.362013e-02   24        21        1         0         
  21    3.050125e+00   3.475295e+00   4.464281e-02   25        22        1         0         
  22    2.999362e+00   4.302084e+00   5.860036e-02   26        23        1         0         
  23    2.950063e+00   5.533713e+00   9.512963e-02   27        24        1         0         
  24    2.901031e+00   2.801333e+00   2.714397e-02   28        25        1         0         
  25    2.868337e+00   2.878297e+00   3.436521e-02   29        26        1         0         
  26    2.836637e+00   3.322364e+00   3.871974e-02   30        27        1         0         
  27    2.780930e+00   5.206006e+00   1.027000e-01   31        28        1         0         
  28    2.730845e+00   3.408293e+00   5.414826e-02   32        29        1         0         
  29    2.687017e+00   3.500898e+00   5.640573e-02   33        30        1         0         
  30    2.638774e+00   4.034669e+00   7.238146e-02   34        31        1         0         
  31    2.605243e+00   8.682050e+00   1.500411e-01   35        32        1         0         
  32    2.529443e+00   3.819625e+00   2.072799e-02   36        33        1         0         
  33    2.467981e+00   4.215844e+00   5.215309e-02   37        34        1         0         
  34    2.391076e+00   5.920534e+00   8.644902e-02   38        35        1         0         
  35    2.276579e+00   9.312491e+00   1.153366e-01   39        36        1         0         
  36    2.187389e+00   8.750683e+00   7.955271e-02   40        37        1         0         
  37    2.064179e+00   4.438504e+00   4.766639e-02   41        38        1         0         
  38    1.986084e+00   5.061850e+00   7.528908e-02   42        39        1         0         
  39    1.937930e+00   6.904494e+00   5.334200e-02   44        40        2         0         
  40    1.850110e+00   8.898184e+00   7.937133e-02   45        41        1         0         
  41    1.744523e+00   4.402026e+00   5.264442e-02   46        42        1         0         
  42    1.699520e+00   3.337567e+00   3.714799e-02   47        43        1         0         
  43    1.658632e+00   3.838408e+00   4.574495e-02   48        44        1         0         
  44    1.605916e+00   4.808835e+00   8.050445e-02   49        45        1         0         
  45    1.560187e+00   5.081993e+00   4.248256e-02   50        46        1         0         
  46    1.526258e+00   2.679248e+00   2.029849e-02   51        47        1         0         
  47    1.498661e+00   2.641068e+00   2.372319e-02   52        48        1         0         
  48    1.463678e+00   3.308420e+00   4.056073e-02   53        49        1         0         
  49    1.449984e+00   6.664337e+00   5.798838e-02   54        50        1         0         
  50    1.410265e+00   2.645446e+00   1.440682e-02   55        51        1         0         
  51    1.387751e+00   2.199552e+00   2.736317e-02   56        52        1         0         
  52    1.366552e+00   2.536430e+00   3.145133e-02   57        53        1         0         
  53    1.353645e+00   5.649606e+00   8.673526e-02   58        54        1         0         
  54    1.313101e+00   2.518101e+00   2.402064e-02   59        55        1         0         
  55    1.294206e+00   1.971290e+00   1.757626e-02   60        56        1         0         
  56    1.272358e+00   2.576784e+00   3.699604e-02   61        57        1         0         
  57    1.254834e+00   5.244316e+00   4.910536e-02   62        58        1         0         
  58    1.229883e+00   2.355426e+00   1.694050e-02   63        59        1         0         
  59    1.213382e+00   1.882423e+00   1.860405e-02   64        60        1         0         
  60    1.201745e+00   2.384472e+00   3.055203e-02   65        61        1         0         
  61    1.185787e+00   3.816450e+00   3.905445e-02   67        62        2         0         
  62    1.163090e+00   3.002470e+00   3.822290e-02   68        63        1         0         
  63    1.142069e+00   1.973187e+00   3.344676e-02   69        64        1         0         
  64    1.129517e+00   2.121919e+00   1.747341e-02   70        65        1         0         
  65    1.113160e+00   2.321293e+00   4.337948e-02   71        66        1         0         
  66    1.095114e+00   2.880631e+00   3.945214e-02   72        67        1         0         
  67    1.079887e+00   1.744337e+00   2.418480e-02   73        68        1         0         
  68    1.070205e+00   2.006817e+00   2.818702e-02   74        69        1         0         
  69    1.055958e+00   3.014354e+00   3.746316e-02   75        70        1         0         
  70    1.040686e+00   1.647696e+00   2.726464e-02   76        71        1         0         
  71    1.028063e+00   1.551001e+00   3.231767e-02   77        72        1         0         
  72    1.018225e+00   2.165314e+00   2.335971e-02   78        73        1         0         
  73    1.004975e+00   1.756667e+00   4.157743e-02   79        74        1         0         
  74    9.933205e-01   1.680730e+00   3.028746e-02   80        75        1         0         
  75    9.835886e-01   1.888048e+00   2.973520e-02   81        76        1         0         
  76    9.755826e-01   1.576810e+00   2.137186e-02   82        77        1         0         
  77    9.659042e-01   1.485761e+00   1.990405e-02   83        78        1         0         
  78    9.566627e-01   2.110676e+00   4.484715e-02   84        79        1         0         
  79    9.485024e-01   2.096881e+00   2.747037e-02   85        80        1         0         
  80    9.419114e-01   1.219122e+00   6.723367e-03   86        81        1         0         
  81    9.348520e-01   1.286920e+00   2.594424e-02   87        82        1         0         
  82    9.279363e-01   1.614166e+00   2.134413e-02   88        83        1         0         
  83    9.189751e-01   1.993423e+00   5.858074e-02   89        84        1         0         
  84    9.118141e-01   1.719193e+00   1.862688e-02   90        85        1         0         
  85    9.069879e-01   1.111093e+00   1.037850e-02   91        86        1         0         
  86    9.018842e-01   1.046564e+00   1.736425e-02   92        87        1         0         
  87    8.952371e-01   1.563474e+00   3.093647e-02   93        88        1         0         
  88    8.889546e-01   1.325946e+00   3.980427e-02   94        89        1         0         
  89    8.845086e-01   1.076646e+00   1.462483e-02   95        90        1         0         
  90    8.801604e-01   1.032635e+00   1.787966e-02   96        91        1         0         
  91    8.764240e-01   1.150960e+00   1.815361e-02   97        92        1         0         
  92    8.704640e-01   1.066813e+00   2.872132e-02   98        93        1         0         
  93    8.672625e-01   2.491161e+00   4.270177e-02   99        94        1         0         
  94    8.617435e-01   9.570411e-01   6.089080e-03   100       95        1         0         
  95    8.592133e-01   7.871056e-01   5.039762e-03   101       96        1         0         
  96    8.556734e-01   9.944722e-01   1.781953e-02   102       97        1         0         
  97    8.522448e-01   2.084157e+00   3.419571e-02   103       98        1         0         
  98    8.478017e-01   9.765039e-01   2.173814e-02   104       99        1         0         
  99    8.450951e-01   6.986401e-01   1.571291e-02   105       100       1         0         
  100   8.426929e-01   8.622675e-01   1.514048e-02   106       101       1         0         
  101   8.399642e-01   1.653647e+00   2.657581e-02   107       102       1         0         
  102   8.365510e-01   9.092983e-01   1.572915e-02   108       103       1         0         
  103   8.336826e-01   7.212800e-01   1.350535e-02   109       104       1         0         
  104   8.312119e-01   9.094269e-01   1.579383e-02   110       105       1         0         
  105   8.288902e-01   1.391602e+00   2.828746e-02   111       106       1         0         
  106   8.262726e-01   7.477913e-01   1.165017e-02   112       107       1         0         
  107   8.239226e-01   7.174085e-01   1.539580e-02   113       108       1         0         
  108   8.218452e-01   8.538489e-01   1.666317e-02   114       109       1         0         
  109   8.201081e-01   1.821792e+00   4.093249e-02   115       110       1         0         
  110   8.170254e-01   6.829189e-01   7.159954e-03   116       111       1         0         
  111   8.156900e-01   5.865481e-01   4.838552e-03   117       112       1         0         
  112   8.140476e-01   6.641569e-01   1.221252e-02   118       113       1         0         
  113   8.122082e-01   1.337919e+00   2.431581e-02   119       114       1         0         
  114   8.099813e-01   6.672202e-01   2.011067e-02   120       115       1         0         
  115   8.084660e-01   5.408243e-01   1.301420e-02   121       116       1         0         
  116   8.067445e-01   7.447205e-01   1.743968e-02   122       117       1         0         
  117   8.054658e-01   1.209652e+00   2.400962e-02   123       118       1         0         
  118   8.038782e-01   6.085617e-01   4.687949e-03   124       119       1         0         
  119   8.024774e-01   5.088039e-01   9.058040e-03   125       120       1         0         
  120   8.014968e-01   5.700131e-01   9.576051e-03   126       121       1         0         
  121   8.007044e-01   1.661292e+00   2.971997e-02   127       122       1         0         
  122   7.985798e-01   5.217895e-01   9.011942e-03   128       123       1         0         
  123   7.978982e-01   4.055522e-01   4.016476e-03   129       124       1         0         
  124   7.969401e-01   4.815829e-01   1.061061e-02   130       125       1         0         
  125   7.958466e-01   8.411780e-01   1.684280e-02   131       126       1         0         
  126   7.946225e-01   5.020889e-01   1.962119e-02   132       127       1         0         
  127   7.937976e-01   3.881745e-01   8.671115e-03   133       128       1         0         
  128   7.928303e-01   6.896466e-01   1.578443e-02   134       129       1         0         
  129   7.920774e-01   5.950230e-01   1.031924e-02   135       130       1         0         
  130   7.914904e-01   4.403409e-01   4.425709e-03   136       131       1         0         
  131   7.905122e-01   5.246818e-01   1.673403e-02   137       132       1         0         
  132   7.900762e-01   6.507808e-01   1.128173e-02   138       133       1         0         
  133   7.896413e-01   4.277112e-01   2.414059e-03   139       134       1         0         
  134   7.887698e-01   3.292955e-01   1.247300e-02   140       135       1         0         
  135   7.883516e-01   3.561241e-01   7.584141e-03   141       136       1         0         
  136   7.880774e-01   1.077968e+00   2.932974e-02   142       137       1         0         
  137   7.870795e-01   2.998503e-01   2.006312e-03   143       138       1         0         
  138   7.868773e-01   2.687542e-01   2.135749e-03   144       139       1         0         
  139   7.863510e-01   3.613836e-01   5.746220e-03   145       140       1         0         
  140   7.863032e-01   9.973556e-01   1.755351e-02   146       141       1         0         
  141   7.856176e-01   3.090211e-01   1.316962e-03   147       142       1         0         
  142   7.854127e-01   2.274695e-01   4.539449e-03   148       143       1         0         
  143   7.851147e-01   2.898076e-01   9.075818e-03   149       144       1         0         
  144   7.846853e-01   3.421479e-01   1.053450e-02   150       145       1         0         
  145   7.844488e-01   4.827183e-01   9.424942e-03   152       146       2         0         
  146   7.840923e-01   2.427134e-01   7.210749e-03   153       147       1         0         
  147   7.838679e-01   2.045331e-01   3.248989e-03   154       148       1         0         
  148   7.835911e-01   3.226447e-01   5.642305e-03   155       149       1         0         
  149   7.833774e-01   3.748948e-01   6.488885e-03   156       150       1         0         
  150   7.831735e-01   2.251834e-01   3.020169e-03   157       151       1         0         
  151   7.829315e-01   2.156794e-01   6.907847e-03   158       152       1         0         
  152   7.827823e-01   2.555777e-01   4.907795e-03   159       153       1         0         
  153   7.825497e-01   2.206863e-01   9.016209e-03   160       154       1         0         
  154   7.823759e-01   2.860218e-01   5.885784e-03   161       155       1         0         
  155   7.821989e-01   2.039769e-01   3.750025e-03   162       156       1         0         
  156   7.820516e-01   1.802131e-01   2.855609e-03   163       157       1         0         
  157   7.819378e-01   3.278259e-01   4.974406e-03   164       158       1         0         
  158   7.818067e-01   1.586748e-01   2.900218e-03   165       159       1         0         
  159   7.817217e-01   1.503091e-01   2.672508e-03   166       160       1         0         
  160   7.816079e-01   1.855170e-01   4.218257e-03   167       161       1         0         
  161   7.815685e-01   4.333322e-01   6.865707e-03   168       162       1         0         
  162   7.814295e-01   1.550949e-01   6.161954e-04   169       163       1         0         
  163   7.813722e-01   1.150718e-01   9.203258e-04   170       164       1         0         
  164   7.813061e-01   1.381392e-01   1.975982e-03   171       165       1         0         
  165   7.812018e-01   1.761599e-01   3.543759e-03   172       166       1         0         
  166   7.811366e-01   1.964034e-01   3.611504e-03   174       167       2         0         
  167   7.810678e-01   1.038301e-01   2.708798e-03   175       168       1         0         
  168   7.810193e-01   1.054403e-01   1.792834e-03   176       169       1         0         
  169   7.809598e-01   1.621081e-01   2.784228e-03   177       170       1         0         
  170   7.809098e-01   1.775076e-01   3.409971e-03   178       171       1         0         
  171   7.808658e-01   1.022085e-01   7.185032e-04   179       172       1         0         
  172   7.808181e-01   9.835704e-02   1.669477e-03   180       173       1         0         
  173   7.807847e-01   1.212398e-01   1.748331e-03   181       174       1         0         
  174   7.807298e-01   1.204909e-01   4.180061e-03   182       175       1         0         
  175   7.806929e-01   1.358405e-01   2.679010e-03   183       176       1         0         
  176   7.806588e-01   9.743728e-02   1.455691e-03   184       177       1         0         
  177   7.806238e-01   8.824102e-02   1.721721e-03   185       178       1         0         
  178   7.805925e-01   1.133267e-01   2.328784e-03   186       179       1         0         
  179   7.805641e-01   1.060729e-01   3.225727e-03   187       180       1         0         
  180   7.805424e-01   6.717565e-02   8.140367e-04   188       181       1         0         
  181   7.805178e-01   7.414908e-02   1.252292e-03   189       182       1         0         
  182   7.804968e-01   1.097134e-01   1.812511e-03   190       183       1         0         
  183   7.804721e-01   7.465755e-02   2.347357e-03   191       184       1         0         
  184   7.804544e-01   6.181574e-02   1.508851e-03   192       185       1         0         
  185   7.804359e-01   8.489787e-02   1.950301e-03   193       186       1         0         
  186   7.804209e-01   7.638083e-02   1.003378e-03   194       187       1         0         
  187   7.804055e-01   6.034212e-02   1.000571e-03   195       188       1         0         
  188   7.803918e-01   6.936178e-02   1.527492e-03   196       189       1         0         
  189   7.803803e-01   6.528653e-02   1.213385e-03   197       190       1         0         
  190   7.803701e-01   5.154062e-02   8.328123e-04   198       191       1         0         
  191   7.803588e-01   5.408188e-02   1.348300e-03   199       192       1         0         
  192   7.803520e-01   7.751279e-02   1.225145e-03   200       193       1         0         
  193   7.803444e-01   4.881596e-02   4.177782e-04   201       194       1         0         
  194   7.803343e-01   3.817679e-02   1.032828e-03   202       195       1         0         
  195   7.803286e-01   4.624608e-02   7.313966e-04   203       196       1         0         
  196   7.803186e-01   5.000786e-02   1.783573e-03   204       197       1         0         
  197   7.803117e-01   5.956560e-02   1.008118e-03   205       198       1         0         
  198   7.803052e-01   4.116461e-02   4.323393e-04   206       199       1         0         
  199   7.802986e-01   3.566899e-02   6.600859e-04   207       200       1         0         
  200   7.802933e-01   5.356812e-02   9.402358e-04   208       201       1         0         
  201   7.802874e-01   3.738714e-02   1.056837e-03   209       202       1         0         
  202   7.802823e-01   3.291491e-02   9.667675e-04   210       203       1         0         
  203   7.802779e-01   4.724975e-02   9.785863e-04   211       204       1         0         
  204   7.802738e-01   3.221950e-02   4.478986e-04   212       205       1         0         
  205   7.802697e-01   2.913403e-02   5.209517e-04   213       206       1         0         
  206   7.802667e-01   4.090331e-02   6.337414e-04   214       207       1         0         
  207   7.802634e-01   2.778482e-02   5.256630e-04   215       208       1         0         
  208   7.802606e-01   2.444231e-02   4.981491e-04   216       209       1         0         
  209   7.802583e-01   2.971716e-02   5.398047e-04   217       210       1         0         
  210   7.802559e-01   2.546203e-02   5.113083e-04   218       211       1         0         
  211   7.802536e-01   2.290358e-02   4.480445e-04   219       212       1         0         
  212   7.802517e-01   2.740342e-02   4.656331e-04   220       213       1         0         
  213   7.802502e-01   2.150917e-02   2.909617e-04   221       214       1         0         
  214   7.802486e-01   1.845839e-02   2.589914e-04   222       215       1         0         
  215   7.802469e-01   3.167463e-02   5.553718e-04   223       216       1         0         
  216   7.802457e-01   2.691835e-02   4.692968e-04   224       217       1         0         
  217   7.802447e-01   1.617462e-02   5.732223e-05   225       218       1         0         
Optimization Terminated with Status: Step Tolerance Met
Quasi-Newton Method with Limited-Memory BFGS
Line Search: Cubic Interpolation satisfying Strong Wolfe Conditions
  iter  value          gnorm          snorm          #fval     #grad     ls_#fval  ls_#grad  
  0     1.075368e+00   3.242995e+00   
  1     1.041922e+00   5.667157e+00   3.242995e-02   4         2         3         0         
  2     1.006024e+00   3.333492e+00   1.028643e-02   5         3         1         0         
  3     9.921088e-01   2.751106e+00   8.620322e-03   6         4         1         0         
  4     9.826485e-01   2.359372e+00   6.517574e-03   7         5         1         0         
  5     9.707202e-01   2.902846e+00   1.249302e-02   8         6         1         0         
  6     9.596448e-01   2.508339e+00   1.180290e-02   9         7         1         0         
  7     9.482641e-01   2.330692e+00   1.369899e-02   10        8         1         0         
  8     9.369207e-01   2.683861e+00   1.954149e-02   11        9         1         0         
  9     9.276545e-01   2.296554e+00   1.200667e-02   12        10        1         0         
  10    9.193280e-01   1.996379e+00   1.056360e-02   13        11        1         0         
  11    9.102200e-01   2.353938e+00   1.779687e-02   14        12        1         0         
  12    9.014979e-01   2.258883e+00   1.507160e-02   15        13        1         0         
  13    8.919357e-01   2.234241e+00   1.797587e-02   16        14        1         0         
  14    8.823764e-01   2.388461e+00   2.034138e-02   17        15        1         0         
  15    8.726761e-01   2.217411e+00   1.468877e-02   18        16        1         0         
  16    8.631525e-01   2.280397e+00   2.050165e-02   19        17        1         0         
  17    8.549836e-01   2.143737e+00   1.296597e-02   20        18        1         0         
  18    8.467708e-01   1.868899e+00   1.380649e-02   21        19        1         0         
  19    8.384042e-01   2.146781e+00   2.004827e-02   22        20        1         0         
  20    8.307381e-01   2.067262e+00   1.462216e-02   23        21        1         0         
  21    8.231757e-01   1.900220e+00   1.505245e-02   24        22        1         0         
  22    8.160363e-01   2.177249e+00   1.812258e-02   25        23        1         0         
  23    8.093885e-01   1.959251e+00   1.038715e-02   26        24        1         0         
  24    8.029724e-01   1.742138e+00   1.311772e-02   27        25        1         0         
  25    7.965802e-01   1.920645e+00   1.700535e-02   28        26        1         0         
  26    7.910355e-01   1.993831e+00   1.552345e-02   29        27        1         0         
  27    7.855662e-01   1.592693e+00   9.975383e-03   30        28        1         0         
  28    7.801843e-01   1.728017e+00   1.658105e-02   31        29        1         0         
  29    7.758286e-01   1.734886e+00   1.098485e-02   32        30        1         0         
  30    7.711946e-01   1.455868e+00   9.535564e-03   33        31        1         0         
  31    7.655103e-01   1.594169e+00   1.562258e-02   34        32        1         0         
  32    7.615593e-01   2.025359e+00   1.774182e-02   35        33        1         0         
  33    7.575746e-01   1.278600e+00   4.209858e-03   36        34        1         0         
  34    7.537612e-01   1.134918e+00   1.039033e-02   37        35        1         0         
  35    7.506315e-01   1.433087e+00   1.074882e-02   38        36        1         0         
  36    7.473020e-01   1.654063e+00   1.830844e-02   39        37        1         0         
  37    7.438646e-01   1.253129e+00   1.000589e-02   40        38        1         0         
  38    7.405009e-01   1.206655e+00   1.008274e-02   41        39        1         0         
  39    7.374982e-01   1.534375e+00   1.441354e-02   42        40        1         0         
  40    7.341437e-01   1.292406e+00   1.130378e-02   43        41        1         0         
  41    7.308721e-01   1.127574e+00   8.128203e-03   44        42        1         0         
  42    7.282112e-01   1.294451e+00   1.247946e-02   45        43        1         0         
  43    7.256384e-01   1.268423e+00   1.142502e-02   46        44        1         0         
  44    7.227534e-01   1.121242e+00   1.001837e-02   47        45        1         0         
  45    7.200045e-01   1.222909e+00   1.418346e-02   48        46        1         0         
  46    7.171995e-01   1.368690e+00   1.141436e-02   49        47        1         0         
  47    7.145153e-01   1.093881e+00   8.812838e-03   50        48        1         0         
  48    7.121007e-01   1.050954e+00   1.005401e-02   51        49        1         0         
  49    7.100656e-01   1.289056e+00   9.642991e-03   52        50        1         0         
  50    7.080449e-01   9.301225e-01   7.691494e-03   53        51        1         0         
  51    7.058869e-01   1.030215e+00   1.245134e-02   54        52        1         0         
  52    7.038011e-01   1.256866e+00   1.356065e-02   55        53        1         0         
  53    7.013938e-01   1.309073e+00   1.525669e-02   56        54        1         0         
  54    6.986182e-01   1.160780e+00   1.206245e-02   57        55        1         0         
  55    6.962613e-01   1.096753e+00   6.839751e-03   58        56        1         0         
  56    6.940900e-01   1.038138e+00   9.463012e-03   59        57        1         0         
  57    6.917388e-01   1.041106e+00   1.608105e-02   60        58        1         0         
  58    6.897590e-01   1.141081e+00   1.000667e-02   61        59        1         0         
  59    6.879970e-01   9.033190e-01   6.887836e-03   62        60        1         0         
  60    6.864422e-01   7.549695e-01   5.108412e-03   63        61        1         0         
  61    6.850160e-01   9.323863e-01   9.319700e-03   64        62        1         0         
  62    6.836750e-01   9.828504e-01   1.080393e-02   65        63        1         0         
  63    6.823078e-01   7.567538e-01   7.180160e-03   66        64        1         0         
  64    6.808219e-01   8.111827e-01   1.190593e-02   67        65        1         0         
  65    6.796809e-01   1.053629e+00   1.066000e-02   68        66        1         0         
  66    6.785012e-01   6.888147e-01   3.596005e-03   69        67        1         0         
  67    6.771927e-01   6.533094e-01   8.957348e-03   70        68        1         0         
  68    6.761162e-01   9.771389e-01   1.163009e-02   71        69        1         0         
  69    6.749597e-01   8.136616e-01   1.181468e-02   72        70        1         0         
  70    6.734827e-01   7.344024e-01   1.027578e-02   73        71        1         0         
  71    6.721610e-01   9.541127e-01   1.367038e-02   74        72        1         0         
  72    6.708893e-01   8.045480e-01   7.324008e-03   75        73        1         0         
  73    6.694505e-01   7.889669e-01   8.336833e-03   76        74        1         0         
  74    6.682013e-01   1.150025e+00   1.011519e-02   77        75        1         0         
  75    6.668140e-01   8.138865e-01   4.989496e-03   78        76        1         0         
  76    6.655994e-01   7.809953e-01   5.953360e-03   79        77        1         0         
  77    6.644913e-01   8.127467e-01   4.681797e-03   80        78        1         0         
  78    6.634542e-01   8.290656e-01   1.098672e-02   81        79        1         0         
  79    6.623524e-01   7.040433e-01   4.318173e-03   82        80        1         0         
  80    6.614027e-01   7.854644e-01   7.308677e-03   83        81        1         0         
  81    6.604492e-01   7.804842e-01   4.872075e-03   84        82        1         0         
  82    6.595302e-01   6.683851e-01   4.824500e-03   85        83        1         0         
  83    6.589511e-01   5.274178e-01   4.779652e-03   86        84        1         0         
  84    6.584504e-01   5.142937e-01   2.838369e-03   87        85        1         0         
  85    6.578479e-01   5.227387e-01   6.370539e-03   88        86        1         0         
  86    6.572230e-01   7.107073e-01   8.522011e-03   89        87        1         0         
  87    6.565733e-01   6.128918e-01   4.718877e-03   90        88        1         0         
  88    6.559471e-01   5.526768e-01   4.886326e-03   91        89        1         0         
  89    6.549794e-01   7.427936e-01   9.776975e-03   92        90        1         0         
  90    6.543004e-01   8.872030e-01   1.025592e-02   93        91        1         0         
  91    6.535729e-01   5.349120e-01   1.614435e-03   94        92        1         0         
  92    6.528238e-01   5.079157e-01   4.851689e-03   95        93        1         0         
  93    6.521421e-01   6.460693e-01   5.320497e-03   96        94        1         0         
  94    6.512379e-01   7.640086e-01   1.211917e-02   97        95        1         0         
  95    6.504720e-01   8.510228e-01   8.841161e-03   98        96        1         0         
  96    6.495761e-01   6.043812e-01   2.607283e-03   99        97        1         0         
  97    6.488357e-01   6.177020e-01   5.747528e-03   100       98        1         0         
  98    6.480783e-01   6.894607e-01   4.519549e-03   101       99        1         0         
  99    6.473908e-01   6.582234e-01   7.006375e-03   102       100       1         0         
  100   6.468613e-01   5.126470e-01   3.910883e-03   103       101       1         0         
  101   6.463849e-01   4.934297e-01   3.509141e-03   104       102       1         0         
  102   6.458930e-01   4.948327e-01   3.843133e-03   105       103       1         0         
  103   6.453894e-01   5.106501e-01   5.127126e-03   106       104       1         0         
  104   6.449914e-01   5.536791e-01   3.279213e-03   107       105       1         0         
  105   6.446011e-01   3.872806e-01   2.405528e-03   108       106       1         0         
  106   6.443046e-01   4.060937e-01   2.073998e-03   109       107       1         0         
  107   6.440955e-01   3.991747e-01   2.608101e-03   110       108       1         0         
  108   6.439218e-01   3.160591e-01   1.485973e-03   111       109       1         0         
  109   6.436587e-01   3.656993e-01   2.818526e-03   112       110       1         0         
  110   6.434943e-01   3.944569e-01   2.054950e-03   113       111       1         0         
  111   6.433219e-01   2.903793e-01   1.147333e-03   114       112       1         0         
  112   6.430287e-01   3.083221e-01   4.437609e-03   115       113       1         0         
  113   6.428150e-01   4.477470e-01   3.914207e-03   116       114       1         0         
  114   6.425647e-01   3.387966e-01   3.160027e-03   117       115       1         0         
  115   6.422576e-01   3.964664e-01   6.488765e-03   118       116       1         0         
  116   6.419650e-01   4.365046e-01   3.389335e-03   119       117       1         0         
  117   6.417092e-01   3.659696e-01   4.208039e-03   120       118       1         0         
  118   6.414836e-01   3.287463e-01   4.231874e-03   121       119       1         0         
  119   6.412521e-01   3.294014e-01   3.870951e-03   122       120       1         0         
  120   6.410602e-01   3.727918e-01   3.275949e-03   123       121       1         0         
  121   6.408775e-01   2.637934e-01   3.318996e-03   124       122       1         0         
  122   6.407047e-01   2.682083e-01   3.690054e-03   125       123       1         0         
  123   6.405880e-01   4.070336e-01   3.627140e-03   126       124       1         0         
  124   6.404237e-01   2.723869e-01   1.983303e-03   127       125       1         0         
  125   6.402734e-01   3.084998e-01   2.913890e-03   128       126       1         0         
  126   6.401355e-01   3.001932e-01   9.741974e-04   129       127       1         0         
  127   6.399696e-01   2.763057e-01   1.774271e-03   130       128       1         0         
  128   6.398740e-01   2.567011e-01   1.778733e-03   131       129       1         0         
  129   6.397928e-01   2.086861e-01   1.196522e-03   132       130       1         0         
  130   6.396603e-01   2.190871e-01   3.118854e-03   133       131       1         0         
  131   6.395967e-01   3.884036e-01   2.699844e-03   134       132       1         0         
  132   6.395173e-01   1.862685e-01   4.228004e-04   135       133       1         0         
  133   6.394533e-01   1.640713e-01   9.391436e-04   136       134       1         0         
  134   6.393826e-01   2.026358e-01   1.449004e-03   137       135       1         0         
  135   6.392569e-01   2.832919e-01   4.029345e-03   138       136       1         0         
  136   6.391556e-01   3.280589e-01   4.620419e-03   139       137       1         0         
  137   6.390119e-01   3.189511e-01   2.007033e-03   140       138       1         0         
  138   6.388820e-01   3.161666e-01   1.268979e-03   141       139       1         0         
  139   6.387138e-01   2.967253e-01   1.419957e-03   142       140       1         0         
  140   6.384866e-01   3.701269e-01   4.482299e-03   143       141       1         0         
  141   6.382860e-01   3.768352e-01   3.261227e-03   144       142       1         0         
  142   6.380737e-01   3.468917e-01   3.801160e-03   145       143       1         0         
  143   6.378736e-01   3.818970e-01   5.193216e-03   146       144       1         0         
  144   6.377099e-01   4.588864e-01   2.528503e-03   147       145       1         0         
  145   6.375288e-01   2.785707e-01   1.153510e-03   148       146       1         0         
  146   6.373223e-01   3.269421e-01   3.348711e-03   149       147       1         0         
  147   6.370967e-01   3.591015e-01   2.414850e-03   150       148       1         0         
  148   6.368436e-01   5.622747e-01   6.690442e-03   151       149       1         0         
  149   6.365686e-01   4.323689e-01   1.883307e-03   152       150       1         0         
  150   6.363893e-01   2.411338e-01   1.574693e-03   153       151       1         0         
  151   6.362235e-01   2.730304e-01   4.217098e-03   154       152       1         0         
  152   6.360435e-01   3.478014e-01   3.636899e-03   155       153       1         0         
  153   6.358069e-01   3.616804e-01   7.510083e-03   156       154       1         0         
  154   6.355810e-01   4.345087e-01   4.252589e-03   157       155       1         0         
  155   6.353831e-01   3.466562e-01   2.307532e-03   158       156       1         0         
  156   6.352694e-01   2.362440e-01   1.840092e-03   159       157       1         0         
  157   6.351653e-01   2.057024e-01   1.320550e-03   160       158       1         0         
  158   6.350539e-01   2.644103e-01   2.308323e-03   161       159       1         0         
  159   6.349374e-01   2.524154e-01   2.382107e-03   162       160       1         0         
  160   6.348230e-01   2.158511e-01   1.734580e-03   163       161       1         0         
  161   6.346890e-01   3.099337e-01   5.009861e-03   164       162       1         0         
  162   6.345448e-01   2.961955e-01   2.226654e-03   165       163       1         0         
  163   6.344078e-01   2.780023e-01   2.345888e-03   166       164       1         0         
  164   6.343301e-01   2.037913e-01   9.418155e-04   167       165       1         0         
  165   6.342579e-01   1.729139e-01   1.474423e-03   168       166       1         0         
  166   6.341316e-01   1.959859e-01   3.051695e-03   169       167       1         0         
  167   6.340628e-01   3.350380e-01   3.807125e-03   170       168       1         0         
  168   6.339895e-01   1.699590e-01   5.502869e-04   171       169       1         0         
  169   6.339346e-01   1.481314e-01   9.169247e-04   172       170       1         0         
  170   6.338818e-01   1.935549e-01   1.346628e-03   173       171       1         0         
  171   6.338494e-01   2.301630e-01   2.143085e-03   175       172       2         0         
  172   6.337794e-01   1.655771e-01   1.199366e-03   176       173       1         0         
  173   6.337137e-01   1.465767e-01   1.926399e-03   177       174       1         0         
  174   6.336699e-01   1.548550e-01   1.271163e-03   178       175       1         0         
  175   6.336299e-01   1.379695e-01   1.116247e-03   179       176       1         0         
  176   6.335935e-01   1.477558e-01   2.024789e-03   180       177       1         0         
  177   6.335576e-01   1.261164e-01   1.032956e-03   181       178       1         0         
  178   6.335232e-01   1.245663e-01   1.029606e-03   182       179       1         0         
  179   6.335033e-01   1.893537e-01   2.704625e-03   183       180       1         0         
  180   6.334683e-01   1.741855e-01   1.237094e-03   184       181       1         0         
  181   6.334387e-01   1.321701e-01   5.214744e-04   185       182       1         0         
  182   6.334073e-01   1.229050e-01   1.630045e-03   186       183       1         0         
  183   6.333770e-01   2.234319e-01   2.822694e-03   187       184       1         0         
  184   6.333406e-01   1.224244e-01   4.931395e-04   188       185       1         0         
  185   6.333088e-01   1.100394e-01   5.748888e-04   189       186       1         0         
  186   6.332669e-01   1.342459e-01   1.669968e-03   190       187       1         0         
  187   6.332132e-01   2.410832e-01   4.854610e-03   191       188       1         0         
  188   6.331720e-01   1.776083e-01   6.835563e-04   192       189       1         0         
  189   6.331451e-01   1.104524e-01   3.287427e-04   193       190       1         0         
  190   6.331032e-01   9.923412e-02   1.362034e-03   194       191       1         0         
  191   6.330627e-01   1.943996e-01   1.842342e-03   195       192       1         0         
  192   6.330136e-01   1.436653e-01   1.924344e-03   196       193       1         0         
  193   6.329471e-01   1.330894e-01   2.989671e-03   197       194       1         0         
  194   6.328898e-01   1.974142e-01   5.579522e-03   198       195       1         0         
  195   6.328304e-01   2.351365e-01   1.091812e-03   199       196       1         0         
  196   6.327551e-01   1.763588e-01   1.430564e-03   200       197       1         0         
  197   6.326904e-01   1.971360e-01   3.087602e-03   201       198       1         0         
  198   6.326397e-01   1.853280e-01   2.532351e-03   202       199       1         0         
  199   6.325987e-01   2.023611e-01   2.951371e-03   203       200       1         0         
  200   6.325570e-01   1.679345e-01   2.682923e-03   204       201       1         0         
  201   6.324997e-01   1.505022e-01   1.461960e-03   205       202       1         0         
  202   6.324572e-01   2.284707e-01   4.236357e-03   206       203       1         0         
  203   6.323896e-01   1.790830e-01   1.313105e-03   207       204       1         0         
  204   6.323210e-01   1.716676e-01   1.481819e-03   208       205       1         0         
  205   6.322836e-01   2.028897e-01   1.906301e-03   210       206       2         0         
  206   6.322096e-01   1.554604e-01   1.265105e-03   211       207       1         0         
  207   6.321616e-01   1.587653e-01   2.443419e-03   212       208       1         0         
  208   6.321179e-01   2.099347e-01   2.348426e-03   213       209       1         0         
  209   6.320732e-01   1.508583e-01   1.253316e-03   214       210       1         0         
  210   6.320320e-01   1.345282e-01   1.489159e-03   215       211       1         0         
  211   6.319792e-01   1.854735e-01   1.582705e-03   216       212       1         0         
  212   6.319252e-01   1.605926e-01   2.131778e-03   217       213       1         0         
  213   6.318908e-01   1.377578e-01   8.953678e-04   218       214       1         0         
  214   6.318605e-01   1.064633e-01   6.515609e-04   219       215       1         0         
  215   6.318355e-01   1.224265e-01   8.703172e-04   220       216       1         0         
  216   6.318108e-01   1.175364e-01   1.651042e-03   221       217       1         0         
  217   6.317930e-01   8.693044e-02   9.213902e-04   222       218       1         0         
  218   6.317787e-01   8.388522e-02   7.406534e-04   223       219       1         0         
  219   6.317638e-01   8.838957e-02   7.000913e-04   224       220       1         0         
  220   6.317473e-01   7.761111e-02   6.982434e-04   225       221       1         0         
  221   6.317351e-01   7.487224e-02   8.205324e-04   226       222       1         0         
  222   6.317285e-01   7.340843e-02   6.847187e-04   227       223       1         0         
  223   6.317223e-01   5.823284e-02   3.517630e-04   228       224       1         0         
  224   6.317159e-01   5.476710e-02   4.360848e-04   229       225       1         0         
  225   6.317109e-01   7.513253e-02   5.922726e-04   230       226       1         0         
  226   6.317066e-01   4.919798e-02   6.081445e-04   231       227       1         0         
  227   6.317008e-01   5.220552e-02   5.264316e-04   232       228       1         0         
  228   6.316996e-01   5.469102e-02   5.709004e-04   233       229       1         0         
  229   6.316990e-01   4.660186e-02   4.566267e-04   234       230       1         0         
  230   6.316965e-01   4.538973e-02   5.660075e-04   235       231       1         0         
  231   6.316933e-01   5.312315e-02   2.974316e-04   236       232       1         0         
  232   6.316911e-01   3.348370e-02   1.479960e-04   237       233       1         0         
  233   6.316894e-01   3.156301e-02   3.319168e-04   238       234       1         0         
  234   6.316878e-01   3.388832e-02   2.505964e-04   239       235       1         0         
  235   6.316868e-01   3.159458e-02   4.464832e-04   240       236       1         0         
  236   6.316863e-01   2.952454e-02   2.348576e-04   241       237       1         0         
  237   6.316847e-01   2.229576e-02   1.127279e-04   242       238       1         0         
  238   6.316832e-01   2.146264e-02   1.645999e-04   243       239       1         0         
  239   6.316824e-01   2.646233e-02   2.337138e-04   244       240       1         0         
  240   6.316818e-01   1.686165e-02   1.604830e-04   245       241       1         0         
  241   6.316812e-01   1.505041e-02   1.682090e-04   246       242       1         0         
  242   6.316807e-01   1.853276e-02   1.431392e-04   247       243       1         0         
  243   6.316800e-01   1.423609e-02   1.517646e-04   248       244       1         0         
  244   6.316795e-01   1.287050e-02   1.039381e-04   249       245       1         0         
  245   6.316790e-01   1.484117e-02   1.131986e-04   250       246       1         0         
  246   6.316786e-01   1.272706e-02   1.245520e-04   251       247       1         0         
  247   6.316784e-01   1.402481e-02   8.142142e-05   252       248       1         0         
Optimization Terminated with Status: Step Tolerance Met
Quasi-Newton Method with Limited-Memory BFGS
Line Search: Cubic Interpolation satisfying Strong Wolfe Conditions
  iter  value          gnorm          snorm          #fval     #grad     ls_#fval  ls_#grad  
  0     5.602561e-01   4.430702e-01   
  1     5.598682e-01   3.519042e-01   1.706876e-03   5         2         4         0         
  2     5.596644e-01   2.968628e-01   1.075428e-03   6         3         1         0         
  3     5.594565e-01   4.199166e-01   2.483344e-03   7         4         1         0         
  4     5.592556e-01   3.121204e-01   9.183057e-04   8         5         1         0         
  5     5.591197e-01   2.159904e-01   1.042781e-03   9         6         1         0         
  6     5.589586e-01   2.385835e-01   1.896047e-03   10        7         1         0         
  7     5.588023e-01   3.899692e-01   3.151887e-03   11        8         1         0         
  8     5.586812e-01   2.555274e-01   1.255811e-03   12        9         1         0         
  9     5.586125e-01   1.771202e-01   5.404504e-04   13        10        1         0         
  10    5.585264e-01   1.613848e-01   1.376623e-03   14        11        1         0         
  11    5.584528e-01   2.363098e-01   2.106142e-03   15        12        1         0         
  12    5.583969e-01   1.997785e-01   1.733145e-03   16        13        1         0         
  13    5.583451e-01   1.302330e-01   6.813931e-04   17        14        1         0         
  14    5.582815e-01   1.375508e-01   1.223596e-03   18        15        1         0         
  15    5.582294e-01   2.272902e-01   1.503559e-03   19        16        1         0         
  16    5.581693e-01   2.108098e-01   2.120447e-03   20        17        1         0         
  17    5.581034e-01   1.495709e-01   9.746579e-04   21        18        1         0         
  18    5.580571e-01   1.235825e-01   8.423047e-04   22        19        1         0         
  19    5.580172e-01   1.681742e-01   1.219429e-03   23        20        1         0         
  20    5.579853e-01   1.252873e-01   8.030540e-04   24        21        1         0         
  21    5.579629e-01   1.003393e-01   5.775816e-04   25        22        1         0         
  22    5.579311e-01   1.260772e-01   1.469203e-03   26        23        1         0         
  23    5.579133e-01   1.546043e-01   1.304608e-03   27        24        1         0         
  24    5.578954e-01   8.386660e-02   1.800892e-04   28        25        1         0         
  25    5.578770e-01   6.805307e-02   4.525077e-04   29        26        1         0         
  26    5.578639e-01   7.886575e-02   5.069731e-04   30        27        1         0         
  27    5.578444e-01   1.089181e-01   1.416850e-03   31        28        1         0         
  28    5.578283e-01   7.142817e-02   8.217622e-04   32        29        1         0         
  29    5.578163e-01   7.010380e-02   4.328522e-04   33        30        1         0         
  30    5.577993e-01   8.342281e-02   1.009760e-03   34        31        1         0         
  31    5.577884e-01   1.286463e-01   1.448572e-03   35        32        1         0         
  32    5.577771e-01   5.835672e-02   2.072104e-04   36        33        1         0         
  33    5.577700e-01   5.182746e-02   2.674489e-04   37        34        1         0         
  34    5.577613e-01   5.695070e-02   5.806358e-04   38        35        1         0         
  35    5.577550e-01   1.146869e-01   1.448873e-03   39        36        1         0         
  36    5.577459e-01   5.564002e-02   5.134375e-04   40        37        1         0         
  37    5.577416e-01   4.549879e-02   1.398516e-04   41        38        1         0         
  38    5.577349e-01   5.317406e-02   5.153923e-04   42        39        1         0         
  39    5.577316e-01   9.971289e-02   1.165106e-03   43        40        1         0         
  40    5.577254e-01   4.859891e-02   3.153227e-04   44        41        1         0         
  41    5.577211e-01   4.038818e-02   2.099143e-04   45        42        1         0         
  42    5.577168e-01   4.160892e-02   4.029914e-04   46        43        1         0         
  43    5.577134e-01   9.774684e-02   7.833261e-04   47        44        1         0         
  44    5.577082e-01   4.100630e-02   3.548457e-04   48        45        1         0         
  45    5.577056e-01   3.397979e-02   2.595060e-04   49        46        1         0         
  46    5.577029e-01   4.278441e-02   4.043961e-04   50        47        1         0         
  47    5.576994e-01   4.467475e-02   4.439200e-04   51        48        1         0         
  48    5.576961e-01   6.879750e-02   9.155049e-04   52        49        1         0         
  49    5.576927e-01   3.474653e-02   2.429812e-04   53        50        1         0         
  50    5.576907e-01   3.413298e-02   1.135493e-04   54        51        1         0         
  51    5.576871e-01   3.780534e-02   3.565742e-04   55        52        1         0         
  52    5.576851e-01   7.894985e-02   1.036191e-03   56        53        1         0         
  53    5.576816e-01   3.346019e-02   2.990223e-04   57        54        1         0         
  54    5.576798e-01   2.805381e-02   1.382321e-04   58        55        1         0         
  55    5.576775e-01   3.287248e-02   4.756095e-04   59        56        1         0         
  56    5.576750e-01   5.287085e-02   7.092529e-04   60        57        1         0         
  57    5.576725e-01   3.860423e-02   4.945997e-04   61        58        1         0         
  58    5.576711e-01   3.306323e-02   5.318272e-04   62        59        1         0         
  59    5.576690e-01   3.177959e-02   2.454716e-04   63        60        1         0         
  60    5.576673e-01   5.251973e-02   5.098825e-04   64        61        1         0         
  61    5.576654e-01   2.868271e-02   3.150446e-04   65        62        1         0         
  62    5.576646e-01   2.815397e-02   3.040486e-04   66        63        1         0         
  63    5.576629e-01   3.189121e-02   4.685765e-04   67        64        1         0         
  64    5.576615e-01   4.968270e-02   6.948715e-04   68        65        1         0         
  65    5.576596e-01   3.003390e-02   1.490534e-04   69        66        1         0         
  66    5.576580e-01   2.472865e-02   1.137962e-04   70        67        1         0         
  67    5.576561e-01   2.884464e-02   3.254101e-04   71        68        1         0         
  68    5.576548e-01   5.687977e-02   7.247240e-04   72        69        1         0         
  69    5.576529e-01   2.541239e-02   1.983453e-04   73        70        1         0         
  70    5.576515e-01   2.522424e-02   4.323704e-04   74        71        1         0         
  71    5.576499e-01   2.579785e-02   1.902877e-04   75        72        1         0         
  72    5.576470e-01   3.837306e-02   7.316349e-04   76        73        1         0         
  73    5.576441e-01   4.754105e-02   5.833931e-04   77        74        1         0         
  74    5.576419e-01   2.782707e-02   2.597265e-04   78        75        1         0         
  75    5.576403e-01   2.471321e-02   2.284421e-04   79        76        1         0         
  76    5.576383e-01   2.861521e-02   4.114043e-04   80        77        1         0         
  77    5.576366e-01   5.262662e-02   6.294290e-04   81        78        1         0         
  78    5.576351e-01   2.343591e-02   1.470479e-04   82        79        1         0         
  79    5.576344e-01   2.079178e-02   1.805492e-04   83        80        1         0         
  80    5.576335e-01   2.446216e-02   2.462889e-04   84        81        1         0         
  81    5.576326e-01   3.297777e-02   4.116947e-04   85        82        1         0         
  82    5.576321e-01   3.854223e-02   6.059118e-04   86        83        1         0         
  83    5.576306e-01   1.998813e-02   1.513668e-04   87        84        1         0         
  84    5.576294e-01   2.284318e-02   2.684780e-04   88        85        1         0         
  85    5.576288e-01   2.328375e-02   2.330642e-04   89        86        1         0         
  86    5.576274e-01   3.166445e-02   5.334593e-04   90        87        1         0         
  87    5.576268e-01   3.684364e-02   4.041008e-04   91        88        1         0         
  88    5.576263e-01   1.825534e-02   4.164730e-05   92        89        1         0         
Optimization Terminated with Status: Step Tolerance Met
Quasi-Newton Method with Limited-Memory BFGS
Line Search: Cubic Interpolation satisfying Strong Wolfe Conditions
  iter  value          gnorm          snorm          #fval     #grad     ls_#fval  ls_#grad  
  0     5.665013e-01   2.063208e-01   
  1     5.664177e-01   1.803858e-01   8.964388e-04   5         2         4         0         
  2     5.663600e-01   1.718751e-01   7.418192e-04   6         3         1         0         
  3     5.663009e-01   2.032254e-01   9.892854e-04   7         4         1         0         
  4     5.662269e-01   1.918484e-01   9.223553e-04   8         5         1         0         
  5     5.661742e-01   2.372080e-01   1.444533e-03   9         6         1         0         
  6     5.660822e-01   2.535828e-01   7.934560e-04   10        7         1         0         
  7     5.660000e-01   2.212575e-01   1.078285e-03   11        8         1         0         
  8     5.659195e-01   2.297864e-01   1.529672e-03   12        9         1         0         
  9     5.658304e-01   2.723072e-01   1.450581e-03   13        10        1         0         
  10    5.657628e-01   1.787121e-01   1.017416e-03   14        11        1         0         
  11    5.657108e-01   1.394450e-01   6.551674e-04   15        12        1         0         
  12    5.656722e-01   1.367611e-01   6.798496e-04   16        13        1         0         
  13    5.656320e-01   1.456376e-01   1.406729e-03   17        14        1         0         
  14    5.655941e-01   2.077761e-01   1.164600e-03   18        15        1         0         
  15    5.655538e-01   1.012810e-01   4.530758e-04   19        16        1         0         
  16    5.655363e-01   9.025749e-02   3.850572e-04   20        17        1         0         
  17    5.655197e-01   1.225716e-01   7.853873e-04   21        18        1         0         
  18    5.655017e-01   1.269177e-01   8.830134e-04   22        19        1         0         
  19    5.654819e-01   8.383058e-02   4.501479e-04   23        20        1         0         
  20    5.654660e-01   8.268823e-02   6.837288e-04   24        21        1         0         
  21    5.654511e-01   9.500512e-02   6.919588e-04   25        22        1         0         
  22    5.654337e-01   7.470364e-02   6.834911e-04   26        23        1         0         
  23    5.654207e-01   7.345346e-02   8.545848e-04   27        24        1         0         
  24    5.654085e-01   8.762586e-02   1.078871e-03   28        25        1         0         
  25    5.653962e-01   7.958456e-02   4.638817e-04   29        26        1         0         
  26    5.653789e-01   9.439174e-02   7.984379e-04   30        27        1         0         
  27    5.653591e-01   1.306396e-01   1.054275e-03   31        28        1         0         
  28    5.653359e-01   8.429111e-02   4.246865e-04   32        29        1         0         
  29    5.653206e-01   7.038387e-02   5.033740e-04   33        30        1         0         
  30    5.653106e-01   8.861112e-02   6.126952e-04   34        31        1         0         
  31    5.653025e-01   5.487917e-02   2.845974e-04   35        32        1         0         
  32    5.652956e-01   5.576386e-02   3.892924e-04   36        33        1         0         
  33    5.652811e-01   1.080947e-01   1.079145e-03   37        34        1         0         
  34    5.652733e-01   1.135900e-01   8.642732e-04   39        35        2         0         
  35    5.652563e-01   8.311599e-02   3.899080e-04   40        36        1         0         
  36    5.652439e-01   8.800920e-02   5.291386e-04   41        37        1         0         
  37    5.652357e-01   6.223474e-02   4.296031e-04   42        38        1         0         
  38    5.652294e-01   4.944232e-02   2.798883e-04   43        39        1         0         
  39    5.652266e-01   7.838183e-02   8.813344e-04   44        40        1         0         
  40    5.652227e-01   5.675137e-02   2.325981e-04   45        41        1         0         
  41    5.652199e-01   3.729162e-02   1.319684e-04   46        42        1         0         
  42    5.652176e-01   2.954891e-02   4.054427e-04   47        43        1         0         
  43    5.652150e-01   2.909842e-02   2.703480e-04   48        44        1         0         
  44    5.652137e-01   4.366995e-02   3.080766e-04   49        45        1         0         
  45    5.652129e-01   2.701960e-02   1.695732e-04   50        46        1         0         
  46    5.652120e-01   3.204669e-02   1.041167e-04   51        47        1         0         
  47    5.652116e-01   5.176178e-02   4.101868e-04   52        48        1         0         
  48    5.652097e-01   3.207642e-02   9.647484e-05   53        49        1         0         
Optimization Terminated with Status: Step Tolerance Met
Quasi-Newton Method with Limited-Memory BFGS
Line Search: Cubic Interpolation satisfying Strong Wolfe Conditions
  iter  value          gnorm          snorm          #fval     #grad     ls_#fval  ls_#grad  
  0     5.744089e-01   1.833979e-01   
  1     5.743478e-01   4.844239e-01   1.833979e-03   4         2         3         0         
  2     5.742226e-01   2.483768e-01   5.045531e-04   5         3         1         0         
  3     5.741730e-01   1.903207e-01   2.711903e-04   6         4         1         0         
  4     5.740815e-01   2.467733e-01   1.291004e-03   7         5         1         0         
  5     5.740123e-01   2.270828e-01   7.623469e-04   8         6         1         0         
  6     5.739154e-01   2.271387e-01   1.135720e-03   9         7         1         0         
  7     5.738214e-01   1.892448e-01   1.233100e-03   10        8         1         0         
  8     5.737516e-01   1.928280e-01   1.530107e-03   11        9         1         0         
  9     5.736708e-01   2.303729e-01   1.359885e-03   12        10        1         0         
  10    5.735970e-01   2.403837e-01   9.987922e-04   13        11        1         0         
  11    5.735269e-01   2.972883e-01   1.539539e-03   14        12        1         0         
  12    5.734341e-01   2.135654e-01   6.086994e-04   15        13        1         0         
  13    5.733199e-01   1.682807e-01   1.367820e-03   16        14        1         0         
  14    5.732485e-01   1.789023e-01   1.414008e-03   17        15        1         0         
  15    5.731552e-01   2.823048e-01   2.095720e-03   18        16        1         0         
  16    5.730838e-01   2.001176e-01   1.126869e-03   19        17        1         0         
  17    5.730398e-01   1.398328e-01   4.930712e-04   20        18        1         0         
  18    5.729878e-01   1.563198e-01   1.581755e-03   21        19        1         0         
  19    5.729247e-01   2.012618e-01   1.607266e-03   22        20        1         0         
  20    5.728294e-01   3.176700e-01   2.339606e-03   23        21        1         0         
  21    5.728140e-01   4.272640e-01   3.334102e-03   24        22        1         0         
  22    5.726402e-01   2.873478e-01   1.368036e-03   25        23        1         0         
  23    5.724586e-01   2.158496e-01   1.846082e-03   26        24        1         0         
  24    5.724156e-01   4.436017e-01   2.751512e-03   27        25        1         0         
  25    5.722668e-01   1.827318e-01   6.623103e-04   28        26        1         0         
  26    5.721782e-01   1.982316e-01   9.026266e-04   29        27        1         0         
  27    5.721264e-01   5.972358e-01   5.504066e-03   30        28        1         0         
  28    5.718247e-01   2.909961e-01   1.540026e-03   31        29        1         0         
  29    5.716479e-01   2.244961e-01   1.516215e-03   32        30        1         0         
  30    5.715033e-01   4.866624e-01   4.238061e-03   33        31        1         0         
  31    5.713190e-01   2.552226e-01   7.049495e-04   34        32        1         0         
  32    5.711760e-01   2.698292e-01   1.675919e-03   35        33        1         0         
  33    5.709131e-01   4.762698e-01   5.776604e-03   36        34        1         0         
  34    5.706363e-01   4.542158e-01   3.503080e-03   37        35        1         0         
  35    5.704392e-01   3.785454e-01   2.232392e-03   38        36        1         0         
  36    5.702506e-01   2.829375e-01   1.157737e-03   39        37        1         0         
  37    5.700212e-01   3.544932e-01   3.417527e-03   40        38        1         0         
  38    5.697910e-01   3.353489e-01   3.238429e-03   41        39        1         0         
  39    5.695492e-01   3.891853e-01   4.875016e-03   42        40        1         0         
  40    5.694058e-01   2.536276e-01   2.417063e-03   43        41        1         0         
  41    5.692932e-01   2.236148e-01   1.368729e-03   44        42        1         0         
  42    5.691077e-01   3.161218e-01   3.582287e-03   45        43        1         0         
  43    5.689662e-01   3.956319e-01   4.964498e-03   46        44        1         0         
  44    5.687925e-01   2.334957e-01   1.384572e-03   47        45        1         0         
  45    5.686678e-01   1.638972e-01   1.668356e-03   48        46        1         0         
  46    5.685944e-01   2.492386e-01   2.115621e-03   49        47        1         0         
  47    5.685194e-01   1.764504e-01   1.052688e-03   50        48        1         0         
  48    5.684538e-01   1.750613e-01   1.161247e-03   51        49        1         0         
  49    5.683584e-01   3.217423e-01   4.059017e-03   52        50        1         0         
  50    5.682772e-01   2.720418e-01   1.194850e-03   53        51        1         0         
  51    5.682142e-01   1.614891e-01   1.123853e-03   54        52        1         0         
  52    5.681647e-01   1.424072e-01   1.335213e-03   55        53        1         0         
  53    5.681257e-01   1.247541e-01   1.067561e-03   56        54        1         0         
  54    5.680862e-01   1.594184e-01   2.409321e-03   57        55        1         0         
  55    5.680690e-01   2.290035e-01   2.546040e-03   58        56        1         0         
  56    5.680191e-01   1.281833e-01   9.143434e-04   59        57        1         0         
  57    5.680025e-01   7.945838e-02   6.609661e-04   60        58        1         0         
  58    5.679701e-01   9.154114e-02   8.179754e-04   61        59        1         0         
  59    5.679427e-01   1.523374e-01   1.462264e-03   62        60        1         0         
  60    5.679142e-01   1.467068e-01   9.564366e-04   63        61        1         0         
  61    5.678939e-01   8.831244e-02   4.191443e-04   64        62        1         0         
  62    5.678734e-01   7.720428e-02   6.735280e-04   65        63        1         0         
  63    5.678379e-01   1.162726e-01   2.078198e-03   66        64        1         0         
  64    5.678281e-01   1.902495e-01   1.250841e-03   67        65        1         0         
  65    5.678093e-01   8.596858e-02   2.181089e-04   68        66        1         0         
  66    5.677996e-01   6.980931e-02   3.952829e-04   69        67        1         0         
  67    5.677917e-01   8.594130e-02   7.136096e-04   70        68        1         0         
  68    5.677752e-01   9.891189e-02   8.734613e-04   71        69        1         0         
  69    5.677634e-01   1.125867e-01   1.563540e-03   72        70        1         0         
  70    5.677520e-01   6.909091e-02   6.559910e-04   73        71        1         0         
  71    5.677445e-01   8.869690e-02   7.321620e-04   74        72        1         0         
  72    5.677307e-01   9.074694e-02   5.912829e-04   75        73        1         0         
  73    5.677079e-01   1.241042e-01   9.648894e-04   76        74        1         0         
  74    5.676878e-01   9.327713e-02   1.279182e-03   77        75        1         0         
  75    5.676751e-01   6.470305e-02   2.434605e-04   78        76        1         0         
  76    5.676591e-01   7.237889e-02   7.684691e-04   79        77        1         0         
  77    5.676379e-01   1.182162e-01   1.878489e-03   80        78        1         0         
  78    5.676240e-01   1.457755e-01   1.225830e-03   81        79        1         0         
  79    5.676047e-01   9.777505e-02   1.105543e-03   82        80        1         0         
  80    5.675827e-01   1.174349e-01   9.721785e-04   83        81        1         0         
  81    5.675670e-01   9.162150e-02   5.192711e-04   84        82        1         0         
  82    5.675412e-01   1.199167e-01   1.391858e-03   85        83        1         0         
  83    5.675253e-01   1.239820e-01   6.353432e-04   86        84        1         0         
  84    5.675100e-01   7.783736e-02   4.646916e-04   87        85        1         0         
  85    5.674992e-01   8.023454e-02   7.632274e-04   88        86        1         0         
  86    5.674861e-01   9.788645e-02   1.076902e-03   89        87        1         0         
  87    5.674765e-01   7.522001e-02   3.623472e-04   90        88        1         0         
  88    5.674693e-01   7.033205e-02   3.517850e-04   91        89        1         0         
  89    5.674658e-01   4.939969e-02   2.011642e-04   92        90        1         0         
  90    5.674630e-01   3.959504e-02   1.425859e-04   93        91        1         0         
  91    5.674623e-01   4.308568e-02   4.321145e-04   95        92        2         0         
  92    5.674580e-01   4.022621e-02   3.815020e-04   96        93        1         0         
  93    5.674556e-01   5.863909e-02   5.682566e-04   97        94        1         0         
  94    5.674528e-01   4.454920e-02   2.299040e-04   98        95        1         0         
  95    5.674508e-01   3.534916e-02   1.090549e-04   99        96        1         0         
  96    5.674466e-01   3.327124e-02   4.192106e-04   100       97        1         0         
  97    5.674457e-01   8.058991e-02   5.551308e-04   101       98        1         0         
  98    5.674428e-01   3.301102e-02   7.445501e-05   102       99        1         0         
Optimization Terminated with Status: Step Tolerance Met
Quasi-Newton Method with Limited-Memory BFGS
Line Search: Cubic Interpolation satisfying Strong Wolfe Conditions
  iter  value          gnorm          snorm          #fval     #grad     ls_#fval  ls_#grad  
  0     5.709818e-01   2.665580e-01   
  1     5.708351e-01   6.296854e-01   2.665580e-03   4         2         3         0         
  2     5.705126e-01   3.696182e-01   8.177682e-04   5         3         1         0         
  3     5.702732e-01   3.364943e-01   1.018748e-03   6         4         1         0         
  4     5.701504e-01   5.077535e-01   2.139453e-03   7         5         1         0         
  5     5.699545e-01   3.476987e-01   8.146366e-04   8         6         1         0         
  6     5.697829e-01   2.259876e-01   8.446744e-04   9         7         1         0         
  7     5.696089e-01   2.536946e-01   1.819646e-03   10        8         1         0         
  8     5.694734e-01   3.676364e-01   2.191812e-03   11        9         1         0         
  9     5.693457e-01   2.553561e-01   1.404746e-03   12        10        1         0         
  10    5.692491e-01   2.096039e-01   8.598190e-04   13        11        1         0         
  11    5.691277e-01   2.241949e-01   1.630549e-03   14        12        1         0         
  12    5.689784e-01   4.121360e-01   4.147106e-03   15        13        1         0         
  13    5.687538e-01   3.158562e-01   1.315469e-03   16        14        1         0         
  14    5.685476e-01   3.296105e-01   2.348839e-03   17        15        1         0         
  15    5.683622e-01   2.847831e-01   1.041638e-03   18        16        1         0         
  16    5.681439e-01   3.563430e-01   3.632144e-03   19        17        1         0         
  17    5.679583e-01   3.251116e-01   1.255639e-03   20        18        1         0         
  18    5.677992e-01   2.413017e-01   2.515059e-03   21        19        1         0         
  19    5.676543e-01   2.386607e-01   3.012461e-03   22        20        1         0         
  20    5.675001e-01   3.219986e-01   3.443560e-03   23        21        1         0         
  21    5.673436e-01   3.064200e-01   3.457018e-03   24        22        1         0         
  22    5.671712e-01   2.637132e-01   2.189691e-03   25        23        1         0         
  23    5.669978e-01   3.413141e-01   2.865660e-03   26        24        1         0         
  24    5.668605e-01   2.624751e-01   2.562497e-03   27        25        1         0         
  25    5.667232e-01   2.332123e-01   2.313805e-03   28        26        1         0         
  26    5.665369e-01   3.022254e-01   3.779627e-03   29        27        1         0         
  27    5.664183e-01   3.629406e-01   3.441383e-03   30        28        1         0         
  28    5.663024e-01   2.238785e-01   7.702955e-04   31        29        1         0         
  29    5.661713e-01   2.446023e-01   2.522543e-03   32        30        1         0         
  30    5.660555e-01   2.673680e-01   2.000307e-03   33        31        1         0         
  31    5.658516e-01   3.725375e-01   9.154180e-03   34        32        1         0         
  32    5.656739e-01   5.041598e-01   4.476983e-03   35        33        1         0         
  33    5.654856e-01   2.863297e-01   8.981118e-04   36        34        1         0         
  34    5.653245e-01   2.976007e-01   4.188443e-03   37        35        1         0         
  35    5.651554e-01   3.350387e-01   2.153161e-03   38        36        1         0         
  36    5.649321e-01   3.898384e-01   5.273677e-03   39        37        1         0         
  37    5.646984e-01   3.954560e-01   3.722027e-03   40        38        1         0         
  38    5.644984e-01   2.876352e-01   1.428703e-03   41        39        1         0         
  39    5.643362e-01   2.723268e-01   3.063758e-03   42        40        1         0         
  40    5.641664e-01   3.064745e-01   3.220750e-03   43        41        1         0         
  41    5.639916e-01   3.458993e-01   4.116496e-03   44        42        1         0         
  42    5.638068e-01   2.955291e-01   3.793229e-03   45        43        1         0         
  43    5.636317e-01   4.240557e-01   6.154275e-03   46        44        1         0         
  44    5.634401e-01   3.060467e-01   1.256219e-03   47        45        1         0         
  45    5.632869e-01   2.374488e-01   2.609930e-03   48        46        1         0         
  46    5.630940e-01   3.368046e-01   5.645657e-03   49        47        1         0         
  47    5.629446e-01   3.431139e-01   3.931029e-03   50        48        1         0         
  48    5.628286e-01   2.211461e-01   1.674036e-03   51        49        1         0         
  49    5.627054e-01   2.023533e-01   2.789831e-03   52        50        1         0         
  50    5.626290e-01   3.216078e-01   1.981429e-03   53        51        1         0         
  51    5.625391e-01   2.138257e-01   2.645004e-03   54        52        1         0         
  52    5.624323e-01   1.897689e-01   3.536678e-03   55        53        1         0         
  53    5.623636e-01   2.456295e-01   2.057418e-03   56        54        1         0         
  54    5.622929e-01   1.862721e-01   1.518268e-03   57        55        1         0         
  55    5.621907e-01   2.085621e-01   3.512618e-03   58        56        1         0         
  56    5.621295e-01   2.923224e-01   3.282255e-03   59        57        1         0         
  57    5.620688e-01   1.661049e-01   8.144531e-04   60        58        1         0         
  58    5.620070e-01   1.384013e-01   2.040935e-03   61        59        1         0         
  59    5.619590e-01   1.611634e-01   2.555263e-03   62        60        1         0         
  60    5.619129e-01   2.787233e-01   5.742988e-03   63        61        1         0         
  61    5.618500e-01   1.342466e-01   6.143337e-04   64        62        1         0         
  62    5.618066e-01   1.361051e-01   6.596338e-04   65        63        1         0         
  63    5.617494e-01   1.706107e-01   2.094518e-03   66        64        1         0         
  64    5.616927e-01   3.035109e-01   4.122299e-03   67        65        1         0         
  65    5.616349e-01   1.645106e-01   1.726102e-03   68        66        1         0         
  66    5.616020e-01   1.312962e-01   1.206856e-03   69        67        1         0         
  67    5.615559e-01   1.435405e-01   1.948052e-03   70        68        1         0         
  68    5.615128e-01   2.314208e-01   3.034793e-03   71        69        1         0         
  69    5.614689e-01   1.220526e-01   1.704284e-03   72        70        1         0         
  70    5.614386e-01   1.011879e-01   1.281755e-03   73        71        1         0         
  71    5.614106e-01   1.154948e-01   1.093308e-03   74        72        1         0         
  72    5.613864e-01   1.968915e-01   2.418828e-03   75        73        1         0         
  73    5.613626e-01   1.078645e-01   1.260402e-03   76        74        1         0         
  74    5.613479e-01   9.955903e-02   8.020127e-04   77        75        1         0         
  75    5.613283e-01   1.070078e-01   1.033084e-03   78        76        1         0         
  76    5.613102e-01   1.701176e-01   3.776441e-03   79        77        1         0         
  77    5.612811e-01   1.247189e-01   4.322000e-04   80        78        1         0         
  78    5.612649e-01   6.671530e-02   3.288979e-04   81        79        1         0         
  79    5.612501e-01   6.248253e-02   1.250904e-03   82        80        1         0         
  80    5.612396e-01   1.343161e-01   2.193471e-03   83        81        1         0         
  81    5.612314e-01   8.604200e-02   1.209228e-03   84        82        1         0         
  82    5.612226e-01   6.586022e-02   2.528481e-04   85        83        1         0         
  83    5.612119e-01   7.565897e-02   9.307173e-04   86        84        1         0         
  84    5.611994e-01   1.155121e-01   1.380753e-03   87        85        1         0         
  85    5.611874e-01   9.631049e-02   1.561597e-03   88        86        1         0         
  86    5.611698e-01   8.915921e-02   9.595627e-04   89        87        1         0         
  87    5.611592e-01   6.820277e-02   7.326988e-04   90        88        1         0         
  88    5.611500e-01   6.168571e-02   5.736727e-04   91        89        1         0         
  89    5.611399e-01   6.894754e-02   1.027975e-03   92        90        1         0         
  90    5.611327e-01   9.395639e-02   1.726856e-03   93        91        1         0         
  91    5.611248e-01   5.382328e-02   6.532187e-04   94        92        1         0         
  92    5.611180e-01   5.417380e-02   3.305441e-04   95        93        1         0         
  93    5.611096e-01   6.703028e-02   8.902842e-04   96        94        1         0         
  94    5.610997e-01   1.049998e-01   1.718118e-03   97        95        1         0         
  95    5.610902e-01   5.907131e-02   6.154698e-04   98        96        1         0         
  96    5.610825e-01   6.244826e-02   8.179310e-04   99        97        1         0         
  97    5.610742e-01   6.950126e-02   7.508575e-04   100       98        1         0         
  98    5.610644e-01   1.054766e-01   1.983288e-03   101       99        1         0         
  99    5.610552e-01   8.544168e-02   6.560587e-04   102       100       1         0         
  100   5.610529e-01   4.979134e-02   6.603084e-04   103       101       1         0         
  101   5.610464e-01   4.327166e-02   4.938185e-04   104       102       1         0         
  102   5.610389e-01   5.594424e-02   6.913227e-04   105       103       1         0         
  103   5.610300e-01   8.171311e-02   1.416233e-03   106       104       1         0         
  104   5.610203e-01   5.166129e-02   1.351286e-03   107       105       1         0         
  105   5.610130e-01   4.296602e-02   3.970905e-04   108       106       1         0         
  106   5.610049e-01   4.979153e-02   6.717511e-04   109       107       1         0         
  107   5.610003e-01   7.277730e-02   5.528723e-04   110       108       1         0         
  108   5.609973e-01   3.561634e-02   1.921892e-04   111       109       1         0         
  109   5.609948e-01   3.395656e-02   3.206283e-04   112       110       1         0         
  110   5.609910e-01   5.451463e-02   7.418288e-04   113       111       1         0         
  111   5.609871e-01   5.577622e-02   6.902335e-04   114       112       1         0         
  112   5.609812e-01   4.327806e-02   6.759283e-04   115       113       1         0         
  113   5.609785e-01   4.500991e-02   5.300183e-04   116       114       1         0         
  114   5.609747e-01   4.184765e-02   1.765808e-04   117       115       1         0         
  115   5.609719e-01   2.902511e-02   1.195852e-04   118       116       1         0         
  116   5.609713e-01   4.640962e-02   7.496624e-04   119       117       1         0         
  117   5.609699e-01   4.456509e-02   4.388254e-04   120       118       1         0         
  118   5.609677e-01   5.623773e-02   9.522192e-04   122       119       2         0         
  119   5.609651e-01   4.842758e-02   1.787272e-04   123       120       1         0         
  120   5.609625e-01   3.135612e-02   1.095527e-04   124       121       1         0         
  121   5.609576e-01   4.719268e-02   3.801286e-04   125       122       1         0         
  122   5.609546e-01   6.368294e-02   6.304034e-04   127       123       2         0         
  123   5.609519e-01   4.739706e-02   2.226516e-04   128       124       1         0         
  124   5.609485e-01   4.169462e-02   7.128045e-04   129       125       1         0         
  125   5.609462e-01   4.392360e-02   3.338195e-04   130       126       1         0         
  126   5.609436e-01   4.212399e-02   5.293926e-04   131       127       1         0         
  127   5.609418e-01   5.208862e-02   1.027617e-03   132       128       1         0         
  128   5.609384e-01   5.803815e-02   2.678904e-04   133       129       1         0         
  129   5.609351e-01   3.343549e-02   2.652666e-04   134       130       1         0         
  130   5.609327e-01   2.804573e-02   2.187629e-04   135       131       1         0         
  131   5.609305e-01   3.674670e-02   4.055186e-04   136       132       1         0         
  132   5.609295e-01   7.188980e-02   1.223607e-03   137       133       1         0         
  133   5.609290e-01   4.606449e-02   1.204377e-03   138       134       1         0         
  134   5.609250e-01   3.291960e-02   4.324475e-04   139       135       1         0         
  135   5.609241e-01   3.361414e-02   3.128622e-04   140       136       1         0         
  136   5.609204e-01   4.336617e-02   5.446258e-04   141       137       1         0         
  137   5.609173e-01   2.937099e-02   4.825448e-04   142       138       1         0         
  138   5.609156e-01   2.907701e-02   6.439053e-04   143       139       1         0         
  139   5.609140e-01   3.060858e-02   2.211826e-04   144       140       1         0         
  140   5.609125e-01   3.076125e-02   2.299468e-04   145       141       1         0         
  141   5.609112e-01   2.148806e-02   1.704647e-04   146       142       1         0         
  142   5.609099e-01   1.995033e-02   1.904105e-04   147       143       1         0         
  143   5.609055e-01   4.208888e-02   1.272892e-03   148       144       1         0         
  144   5.609036e-01   4.013806e-02   1.576434e-04   149       145       1         0         
  145   5.609023e-01   2.071949e-02   2.352697e-04   150       146       1         0         
  146   5.609004e-01   1.848293e-02   3.298238e-04   151       147       1         0         
  147   5.608984e-01   2.718854e-02   5.500967e-04   152       148       1         0         
  148   5.608974e-01   2.935380e-02   2.363947e-04   153       149       1         0         
  149   5.608967e-01   1.802687e-02   7.907516e-05   154       150       1         0         
Optimization Terminated with Status: Step Tolerance Met
Quasi-Newton Method with Limited-Memory BFGS
Line Search: Cubic Interpolation satisfying Strong Wolfe Conditions
  iter  value          gnorm          snorm          #fval     #grad     ls_#fval  ls_#grad  
  0     5.582657e-01   1.925069e-01   
  1     5.581806e-01   1.891884e-01   9.115120e-04   5         2         4         0         
  2     5.581238e-01   1.389579e-01   5.737105e-04   6         3         1         0         
  3     5.580564e-01   1.748984e-01   1.211879e-03   7         4         1         0         
  4     5.580013e-01   2.424860e-01   1.449300e-03   8         5         1         0         
  5     5.579485e-01   1.482591e-01   7.023610e-04   9         6         1         0         
  6     5.578903e-01   1.275827e-01   1.191240e-03   10        7         1         0         
  7     5.578604e-01   1.432549e-01   9.113738e-04   11        8         1         0         
  8     5.578312e-01   9.200096e-02   9.039261e-04   12        9         1         0         
  9     5.578101e-01   9.138550e-02   7.273164e-04   13        10        1         0         
  10    5.577944e-01   1.021246e-01   7.184006e-04   14        11        1         0         
  11    5.577829e-01   6.289709e-02   3.099279e-04   15        12        1         0         
  12    5.577720e-01   5.826804e-02   3.975915e-04   16        13        1         0         
  13    5.577627e-01   7.535395e-02   5.689813e-04   17        14        1         0         
  14    5.577534e-01   8.401845e-02   8.693957e-04   18        15        1         0         
  15    5.577453e-01   5.171307e-02   4.198060e-04   19        16        1         0         
  16    5.577392e-01   4.798325e-02   3.128944e-04   20        17        1         0         
  17    5.577339e-01   7.086371e-02   5.033136e-04   21        18        1         0         
  18    5.577283e-01   5.036970e-02   4.332948e-04   22        19        1         0         
  19    5.577216e-01   4.586794e-02   3.274242e-04   23        20        1         0         
  20    5.577133e-01   6.956001e-02   8.090892e-04   24        21        1         0         
  21    5.577087e-01   6.582394e-02   2.218614e-04   25        22        1         0         
  22    5.577048e-01   4.144891e-02   1.375430e-04   26        23        1         0         
  23    5.576997e-01   3.567754e-02   3.902829e-04   27        24        1         0         
  24    5.576957e-01   5.444704e-02   5.655654e-04   28        25        1         0         
  25    5.576916e-01   4.267050e-02   5.957004e-04   29        26        1         0         
  26    5.576872e-01   3.391779e-02   4.039447e-04   30        27        1         0         
  27    5.576834e-01   3.955181e-02   3.830829e-04   31        28        1         0         
  28    5.576813e-01   3.131099e-02   2.091149e-04   32        29        1         0         
  29    5.576794e-01   2.711521e-02   1.794805e-04   33        30        1         0         
  30    5.576757e-01   4.282120e-02   6.243868e-04   34        31        1         0         
  31    5.576729e-01   3.277648e-02   1.674143e-04   35        32        1         0         
  32    5.576706e-01   2.160823e-02   9.874111e-05   36        33        1         0         
Optimization Terminated with Status: Step Tolerance Met
Quasi-Newton Method with Limited-Memory BFGS
Line Search: Cubic Interpolation satisfying Strong Wolfe Conditions
  iter  value          gnorm          snorm          #fval     #grad     ls_#fval  ls_#grad  
  0     5.586793e-01   1.254662e-01   
  1     5.586414e-01   1.309860e-01   6.111566e-04   5         2         4         0         
  2     5.586164e-01   1.356254e-01   4.962421e-04   6         3         1         0         
  3     5.585928e-01   1.016969e-01   3.472235e-04   7         4         1         0         
  4     5.585575e-01   1.412097e-01   1.020228e-03   8         5         1         0         
  5     5.585266e-01   1.546400e-01   6.931980e-04   9         6         1         0         
  6     5.584836e-01   1.405658e-01   1.249727e-03   10        7         1         0         
  7     5.584563e-01   1.237337e-01   4.855874e-04   11        8         1         0         
  8     5.584347e-01   1.006582e-01   6.076151e-04   12        9         1         0         
  9     5.584136e-01   1.285841e-01   9.492403e-04   13        10        1         0         
  10    5.583955e-01   9.526160e-02   9.224568e-04   14        11        1         0         
  11    5.583815e-01   7.529627e-02   4.252339e-04   15        12        1         0         
  12    5.583612e-01   8.424926e-02   7.991600e-04   16        13        1         0         
  13    5.583521e-01   1.283009e-01   1.201107e-03   17        14        1         0         
  14    5.583389e-01   1.017775e-01   1.048730e-03   18        15        1         0         
  15    5.583192e-01   1.073500e-01   1.767582e-03   19        16        1         0         
  16    5.582963e-01   2.019501e-01   1.978267e-03   20        17        1         0         
  17    5.582529e-01   1.391747e-01   8.047788e-04   21        18        1         0         
  18    5.581999e-01   1.211397e-01   1.174179e-03   22        19        1         0         
  19    5.581619e-01   1.772980e-01   1.852428e-03   23        20        1         0         
  20    5.581074e-01   2.048683e-01   3.090503e-03   24        21        1         0         
  21    5.580509e-01   1.714125e-01   1.116826e-03   25        22        1         0         
  22    5.580004e-01   1.224747e-01   1.729287e-03   26        23        1         0         
  23    5.579709e-01   1.221982e-01   1.243537e-03   27        24        1         0         
  24    5.579394e-01   1.185323e-01   9.798309e-04   28        25        1         0         
  25    5.579023e-01   1.337833e-01   1.974491e-03   29        26        1         0         
  26    5.578795e-01   1.147388e-01   7.073220e-04   30        27        1         0         
  27    5.578608e-01   8.526074e-02   4.993247e-04   31        28        1         0         
  28    5.578399e-01   8.817576e-02   1.057563e-03   32        29        1         0         
  29    5.578202e-01   1.068547e-01   9.637806e-04   33        30        1         0         
  30    5.578023e-01   8.038477e-02   9.389763e-04   34        31        1         0         
  31    5.577878e-01   9.347319e-02   1.116675e-03   35        32        1         0         
  32    5.577774e-01   7.795245e-02   4.797615e-04   36        33        1         0         
  33    5.577708e-01   5.497121e-02   3.134033e-04   37        34        1         0         
  34    5.577593e-01   5.351909e-02   5.240888e-04   38        35        1         0         
  35    5.577497e-01   7.894328e-02   7.083878e-04   39        36        1         0         
  36    5.577428e-01   4.922590e-02   3.928655e-04   40        37        1         0         
  37    5.577353e-01   4.651326e-02   6.003004e-04   41        38        1         0         
  38    5.577289e-01   5.998026e-02   5.086561e-04   42        39        1         0         
  39    5.577194e-01   6.992522e-02   8.455355e-04   43        40        1         0         
  40    5.577125e-01   7.528339e-02   1.321039e-03   44        41        1         0         
  41    5.577100e-01   7.454124e-02   4.855666e-04   46        42        2         0         
  42    5.577051e-01   6.409435e-02   7.012263e-04   47        43        1         0         
  43    5.577009e-01   9.147912e-02   1.142109e-03   48        44        1         0         
  44    5.576907e-01   7.668278e-02   3.128457e-04   49        45        1         0         
  45    5.576826e-01   5.308378e-02   2.793257e-04   50        46        1         0         
  46    5.576692e-01   5.562028e-02   9.758892e-04   51        47        1         0         
  47    5.576539e-01   7.896900e-02   1.078529e-03   52        48        1         0         
  48    5.576384e-01   6.926961e-02   1.221824e-03   53        49        1         0         
  49    5.576256e-01   6.214349e-02   1.244204e-03   54        50        1         0         
  50    5.576201e-01   9.385012e-02   2.559767e-03   55        51        1         0         
  51    5.576101e-01   6.760418e-02   8.935094e-04   56        52        1         0         
  52    5.576075e-01   5.168769e-02   6.918181e-04   57        53        1         0         
  53    5.576041e-01   3.659760e-02   3.545651e-04   58        54        1         0         
  54    5.575992e-01   5.038257e-02   1.347843e-03   59        55        1         0         
  55    5.575959e-01   6.087697e-02   3.896649e-04   60        56        1         0         
  56    5.575922e-01   3.894313e-02   2.670721e-04   61        57        1         0         
  57    5.575886e-01   3.388118e-02   1.803827e-04   62        58        1         0         
  58    5.575826e-01   4.382820e-02   4.758090e-04   63        59        1         0         
  59    5.575785e-01   6.718491e-02   8.774778e-04   64        60        1         0         
  60    5.575761e-01   3.209738e-02   1.716493e-04   65        61        1         0         
  61    5.575752e-01   2.567354e-02   9.159221e-05   66        62        1         0         
Optimization Terminated with Status: Step Tolerance Met
Quasi-Newton Method with Limited-Memory BFGS
Line Search: Cubic Interpolation satisfying Strong Wolfe Conditions
  iter  value          gnorm          snorm          #fval     #grad     ls_#fval  ls_#grad  
  0     5.579681e-01   1.376670e-01   
  1     5.579304e-01   1.182074e-01   5.319556e-04   5         2         4         0         
  2     5.579160e-01   1.149971e-01   3.506103e-04   6         3         1         0         
  3     5.579041e-01   8.255061e-02   2.423980e-04   7         4         1         0         
  4     5.578867e-01   7.983529e-02   5.857600e-04   8         5         1         0         
  5     5.578733e-01   1.359939e-01   7.329852e-04   9         6         1         0         
  6     5.578575e-01   7.983900e-02   5.511303e-04   10        7         1         0         
  7     5.578431e-01   6.498031e-02   5.064664e-04   11        8         1         0         
  8     5.578292e-01   7.299175e-02   6.389714e-04   12        9         1         0         
  9     5.578226e-01   1.384878e-01   1.014154e-03   13        10        1         0         
  10    5.578117e-01   5.577055e-02   1.746139e-04   14        11        1         0         
  11    5.578073e-01   4.902490e-02   1.977221e-04   15        12        1         0         
  12    5.578038e-01   5.722332e-02   4.185312e-04   16        13        1         0         
  13    5.577973e-01   6.591440e-02   7.291544e-04   17        14        1         0         
  14    5.577919e-01   9.834434e-02   9.399384e-04   18        15        1         0         
  15    5.577852e-01   6.097007e-02   4.723666e-04   19        16        1         0         
  16    5.577783e-01   4.834965e-02   2.607847e-04   20        17        1         0         
  17    5.577741e-01   4.949508e-02   3.636215e-04   21        18        1         0         
  18    5.577721e-01   9.376824e-02   1.503659e-03   22        19        1         0         
  19    5.577625e-01   6.718360e-02   3.091248e-04   23        20        1         0         
  20    5.577575e-01   4.222597e-02   1.750132e-04   24        21        1         0         
  21    5.577518e-01   4.928245e-02   5.031140e-04   25        22        1         0         
  22    5.577471e-01   7.759717e-02   1.543330e-03   26        23        1         0         
  23    5.577441e-01   1.049674e-01   7.517314e-04   27        24        1         0         
  24    5.577370e-01   5.608883e-02   1.524345e-04   28        25        1         0         
  25    5.577327e-01   4.064271e-02   3.834694e-04   29        26        1         0         
  26    5.577298e-01   5.153151e-02   5.412461e-04   30        27        1         0         
  27    5.577266e-01   7.216031e-02   9.823881e-04   31        28        1         0         
  28    5.577226e-01   5.544196e-02   6.384786e-04   32        29        1         0         
  29    5.577197e-01   4.056695e-02   3.221432e-04   33        30        1         0         
  30    5.577151e-01   4.701263e-02   3.624941e-04   34        31        1         0         
  31    5.577108e-01   5.820039e-02   6.632754e-04   35        32        1         0         
  32    5.577057e-01   4.676461e-02   6.697638e-04   36        33        1         0         
  33    5.576985e-01   4.806430e-02   6.254325e-04   37        34        1         0         
  34    5.576946e-01   4.797654e-02   4.011485e-04   38        35        1         0         
  35    5.576919e-01   3.271314e-02   1.433047e-04   39        36        1         0         
  36    5.576881e-01   3.023355e-02   3.796861e-04   40        37        1         0         
  37    5.576855e-01   4.272400e-02   4.396849e-04   41        38        1         0         
  38    5.576822e-01   3.201083e-02   5.748915e-04   42        39        1         0         
  39    5.576812e-01   3.584364e-02   9.189139e-04   43        40        1         0         
  40    5.576790e-01   4.286734e-02   4.429494e-04   44        41        1         0         
  41    5.576775e-01   3.096253e-02   1.956651e-04   45        42        1         0         
  42    5.576770e-01   2.646472e-02   1.718436e-04   46        43        1         0         
  43    5.576758e-01   2.872950e-02   3.484665e-04   47        44        1         0         
  44    5.576743e-01   2.522746e-02   3.772285e-04   48        45        1         0         
  45    5.576730e-01   2.094145e-02   2.439415e-04   49        46        1         0         
  46    5.576715e-01   2.555484e-02   3.787357e-04   50        47        1         0         
  47    5.576708e-01   2.756238e-02   2.212760e-04   51        48        1         0         
  48    5.576702e-01   1.765816e-02   9.325744e-05   52        49        1         0         
Optimization Terminated with Status: Step Tolerance Met
Quasi-Newton Method with Limited-Memory BFGS
Line Search: Cubic Interpolation satisfying Strong Wolfe Conditions
  iter  value          gnorm          snorm          #fval     #grad     ls_#fval  ls_#grad  
  0     5.584559e-01   9.494288e-02   
  1     5.584385e-01   7.630859e-02   4.017487e-04   5         2         4         0         
  2     5.584304e-01   8.345819e-02   2.641763e-04   6         3         1         0         
  3     5.584241e-01   5.833427e-02   1.763400e-04   7         4         1         0         
  4     5.584151e-01   5.774724e-02   4.375673e-04   8         5         1         0         
  5     5.584086e-01   7.653317e-02   4.508982e-04   9         6         1         0         
  6     5.584021e-01   6.338211e-02   5.374525e-04   10        7         1         0         
  7     5.583955e-01   4.855761e-02   2.907142e-04   11        8         1         0         
  8     5.583861e-01   5.639752e-02   6.215275e-04   12        9         1         0         
  9     5.583813e-01   8.088708e-02   4.496538e-04   13        10        1         0         
  10    5.583773e-01   4.291415e-02   9.046002e-05   14        11        1         0         
Optimization Terminated with Status: Step Tolerance Met
Quasi-Newton Method with Limited-Memory BFGS
Line Search: Cubic Interpolation satisfying Strong Wolfe Conditions
  iter  value          gnorm          snorm          #fval     #grad     ls_#fval  ls_#grad  
  0     5.594727e-01   7.799980e-02   
  1     5.594658e-01   7.681424e-02   2.025540e-04   5         2         4         0         
  2     5.594604e-01   4.520288e-02   1.466840e-04   6         3         1         0         
  3     5.594562e-01   3.945956e-02   2.073179e-04   7         4         1         0         
  4     5.594519e-01   5.266233e-02   2.565856e-04   8         5         1         0         
  5     5.594446e-01   5.889339e-02   4.464461e-04   9         6         1         0         
  6     5.594346e-01   7.262512e-02   7.230681e-04   10        7         1         0         
  7     5.594252e-01   8.801019e-02   1.111032e-03   11        8         1         0         
  8     5.594148e-01   6.734559e-02   5.867382e-04   12        9         1         0         
  9     5.594054e-01   6.045346e-02   5.618233e-04   13        10        1         0         
  10    5.593961e-01   8.350477e-02   8.112221e-04   14        11        1         0         
  11    5.593879e-01   4.956142e-02   7.291780e-04   15        12        1         0         
  12    5.593846e-01   4.078476e-02   3.606484e-04   16        13        1         0         
  13    5.593808e-01   5.346732e-02   7.049768e-04   17        14        1         0         
  14    5.593765e-01   6.477380e-02   4.651618e-04   18        15        1         0         
  15    5.593719e-01   5.182136e-02   3.976146e-04   19        16        1         0         
  16    5.593673e-01   5.334682e-02   9.546492e-04   20        17        1         0         
  17    5.593626e-01   7.560225e-02   6.688283e-04   21        18        1         0         
  18    5.593577e-01   5.630610e-02   5.772078e-04   22        19        1         0         
  19    5.593533e-01   5.643063e-02   9.951115e-04   23        20        1         0         
  20    5.593495e-01   7.182306e-02   8.125167e-04   24        21        1         0         
  21    5.593469e-01   5.331127e-02   7.731894e-04   25        22        1         0         
  22    5.593417e-01   4.276217e-02   3.202829e-04   26        23        1         0         
  23    5.593381e-01   5.203221e-02   4.680901e-04   27        24        1         0         
  24    5.593347e-01   3.728184e-02   4.514517e-04   28        25        1         0         
  25    5.593307e-01   3.669285e-02   3.627851e-04   29        26        1         0         
  26    5.593272e-01   6.170823e-02   1.413208e-03   30        27        1         0         
  27    5.593244e-01   4.791382e-02   4.417597e-04   31        28        1         0         
  28    5.593227e-01   2.602266e-02   1.402369e-04   32        29        1         0         
  29    5.593218e-01   2.088865e-02   1.394815e-04   33        30        1         0         
  30    5.593211e-01   2.202705e-02   2.247130e-04   34        31        1         0         
  31    5.593209e-01   2.047566e-02   2.256283e-04   36        32        2         0         
  32    5.593209e-01   1.927724e-02   9.692426e-05   39        33        3         0         
Optimization Terminated with Status: Step Tolerance Met
Quasi-Newton Method with Limited-Memory BFGS
Line Search: Cubic Interpolation satisfying Strong Wolfe Conditions
  iter  value          gnorm          snorm          #fval     #grad     ls_#fval  ls_#grad  
  0     5.603279e-01   8.938471e-02   
  1     5.603189e-01   6.491712e-02   2.715498e-04   5         2         4         0         
  2     5.603154e-01   6.508163e-02   2.334216e-04   6         3         1         0         
  3     5.603123e-01   4.577313e-02   1.480712e-04   7         4         1         0         
  4     5.603099e-01   5.048777e-02   2.120154e-04   8         5         1         0         
  5     5.603061e-01   6.367320e-02   3.932201e-04   9         6         1         0         
  6     5.603028e-01   8.048665e-02   4.935821e-04   10        7         1         0         
  7     5.602988e-01   4.594701e-02   2.171550e-04   11        8         1         0         
  8     5.602980e-01   5.169854e-02   4.229400e-04   12        9         1         0         
  9     5.602930e-01   4.548249e-02   2.052410e-04   13        10        1         0         
  10    5.602849e-01   5.231534e-02   6.539559e-04   14        11        1         0         
  11    5.602824e-01   7.350685e-02   4.003177e-04   15        12        1         0         
  12    5.602803e-01   3.602358e-02   7.449563e-05   16        13        1         0         
Optimization Terminated with Status: Step Tolerance Met
Quasi-Newton Method with Limited-Memory BFGS
Line Search: Cubic Interpolation satisfying Strong Wolfe Conditions
  iter  value          gnorm          snorm          #fval     #grad     ls_#fval  ls_#grad  
  0     5.613417e-01   6.403886e-02   
  1     5.613359e-01   6.699672e-02   1.679728e-04   5         2         4         0         
  2     5.613315e-01   3.932849e-02   1.108777e-04   6         3         1         0         
  3     5.613267e-01   3.557532e-02   1.696443e-04   7         4         1         0         
  4     5.613211e-01   5.131123e-02   3.019270e-04   8         5         1         0         
  5     5.613168e-01   6.083608e-02   2.881352e-04   9         6         1         0         
  6     5.613094e-01   4.908436e-02   4.265811e-04   10        7         1         0         
  7     5.613009e-01   7.285660e-02   6.884265e-04   11        8         1         0         
  8     5.612925e-01   7.761328e-02   6.987368e-04   12        9         1         0         
  9     5.612842e-01   6.585311e-02   4.718725e-04   13        10        1         0         
  10    5.612694e-01   7.769539e-02   1.206928e-03   14        11        1         0         
  11    5.612589e-01   8.592217e-02   8.208129e-04   15        12        1         0         
  12    5.612454e-01   6.736984e-02   7.736164e-04   16        13        1         0         
  13    5.612283e-01   6.301179e-02   1.042438e-03   17        14        1         0         
  14    5.612125e-01   7.450786e-02   1.230899e-03   18        15        1         0         
  15    5.611975e-01   7.612093e-02   1.619104e-03   19        16        1         0         
  16    5.611880e-01   8.264325e-02   9.145276e-04   20        17        1         0         
  17    5.611812e-01   4.764783e-02   4.087013e-04   21        18        1         0         
  18    5.611766e-01   3.986307e-02   2.930610e-04   22        19        1         0         
  19    5.611721e-01   4.672971e-02   4.974387e-04   23        20        1         0         
  20    5.611692e-01   5.020174e-02   3.431364e-04   24        21        1         0         
  21    5.611656e-01   3.469544e-02   2.507917e-04   25        22        1         0         
  22    5.611605e-01   3.723557e-02   5.167268e-04   26        23        1         0         
  23    5.611576e-01   3.762584e-02   2.860109e-04   27        24        1         0         
  24    5.611547e-01   3.343568e-02   2.612125e-04   28        25        1         0         
  25    5.611525e-01   3.744914e-02   2.819905e-04   29        26        1         0         
  26    5.611510e-01   2.743625e-02   2.850552e-04   30        27        1         0         
  27    5.611483e-01   3.012766e-02   4.578310e-04   31        28        1         0         
  28    5.611456e-01   3.251921e-02   3.129649e-04   32        29        1         0         
  29    5.611437e-01   2.169555e-02   1.333192e-04   33        30        1         0         
  30    5.611422e-01   2.221321e-02   1.728814e-04   34        31        1         0         
  31    5.611406e-01   2.531675e-02   2.129367e-04   35        32        1         0         
  32    5.611394e-01   2.026923e-02   2.581178e-04   36        33        1         0         
  33    5.611383e-01   1.976094e-02   2.171860e-04   37        34        1         0         
  34    5.611372e-01   2.366452e-02   3.731654e-04   38        35        1         0         
  35    5.611357e-01   2.128490e-02   1.363958e-04   39        36        1         0         
  36    5.611346e-01   1.631791e-02   1.144702e-04   40        37        1         0         
  37    5.611337e-01   1.828666e-02   1.349537e-04   41        38        1         0         
  38    5.611328e-01   1.930851e-02   1.523521e-04   42        39        1         0         
  39    5.611312e-01   4.424640e-02   7.720636e-04   43        40        1         0         
  40    5.611306e-01   2.316886e-02   3.018905e-04   44        41        1         0         
  41    5.611303e-01   1.515467e-02   9.401241e-05   45        42        1         0         
Optimization Terminated with Status: Step Tolerance Met
Quasi-Newton Method with Limited-Memory BFGS
Line Search: Cubic Interpolation satisfying Strong Wolfe Conditions
  iter  value          gnorm          snorm          #fval     #grad     ls_#fval  ls_#grad  
  0     5.621064e-01   7.235609e-02   
  1     5.621002e-01   5.242208e-02   2.209446e-04   5         2         4         0         
  2     5.620993e-01   5.879059e-02   1.914728e-04   6         3         1         0         
  3     5.620982e-01   3.864235e-02   1.096312e-04   7         4         1         0         
  4     5.620949e-01   3.627404e-02   1.660045e-04   8         5         1         0         
  5     5.620915e-01   4.532521e-02   2.816813e-04   9         6         1         0         
  6     5.620875e-01   6.617935e-02   3.479036e-04   10        7         1         0         
  7     5.620825e-01   4.293825e-02   3.267465e-04   11        8         1         0         
  8     5.620778e-01   4.060222e-02   4.475748e-04   12        9         1         0         
  9     5.620741e-01   5.271931e-02   5.492578e-04   13        10        1         0         
  10    5.620715e-01   4.930497e-02   3.836044e-04   14        11        1         0         
  11    5.620687e-01   3.677735e-02   3.231723e-04   15        12        1         0         
  12    5.620659e-01   3.805484e-02   3.344707e-04   16        13        1         0         
  13    5.620638e-01   4.471649e-02   4.302075e-04   17        14        1         0         
  14    5.620609e-01   3.960735e-02   3.340194e-04   18        15        1         0         
  15    5.620600e-01   4.443114e-02   5.350998e-04   20        16        2         0         
  16    5.620596e-01   4.760297e-02   6.465181e-04   21        17        1         0         
  17    5.620560e-01   4.979435e-02   3.114990e-04   22        18        1         0         
  18    5.620536e-01   3.915238e-02   1.967616e-04   23        19        1         0         
  19    5.620524e-01   2.803396e-02   1.740717e-04   24        20        1         0         
  20    5.620509e-01   2.574392e-02   2.395726e-04   25        21        1         0         
  21    5.620491e-01   4.508028e-02   3.752206e-04   26        22        1         0         
  22    5.620475e-01   2.476365e-02   1.804313e-04   27        23        1         0         
  23    5.620463e-01   1.968822e-02   1.505580e-04   28        24        1         0         
  24    5.620457e-01   2.067251e-02   1.601972e-04   29        25        1         0         
  25    5.620454e-01   2.445440e-02   1.498471e-04   31        26        2         0         
  26    5.620454e-01   2.152580e-02   1.810199e-04   33        27        2         0         
  27    5.620448e-01   2.454979e-02   3.237761e-04   34        28        1         0         
  28    5.620446e-01   2.341307e-02   2.553242e-04   35        29        1         0         
  29    5.620441e-01   1.355628e-02   4.202849e-05   36        30        1         0         
Optimization Terminated with Status: Step Tolerance Met
Quasi-Newton Method with Limited-Memory BFGS
Line Search: Cubic Interpolation satisfying Strong Wolfe Conditions
  iter  value          gnorm          snorm          #fval     #grad     ls_#fval  ls_#grad  
  0     5.630775e-01   6.222945e-02   
  1     5.630710e-01   5.247122e-02   2.480069e-04   5         2         4         0         
  2     5.630676e-01   5.372554e-02   1.573669e-04   6         3         1         0         
  3     5.630653e-01   3.761779e-02   1.041340e-04   7         4         1         0         
  4     5.630628e-01   3.172727e-02   1.829048e-04   8         5         1         0         
  5     5.630613e-01   5.200914e-02   4.270347e-04   9         6         1         0         
  6     5.630579e-01   4.973266e-02   1.452540e-04   10        7         1         0         
  7     5.630554e-01   3.209168e-02   1.375445e-04   11        8         1         0         
  8     5.630528e-01   2.761594e-02   2.456504e-04   12        9         1         0         
  9     5.630503e-01   3.767507e-02   4.202661e-04   13        10        1         0         
  10    5.630478e-01   5.054913e-02   3.235570e-04   14        11        1         0         
  11    5.630455e-01   2.563980e-02   9.400150e-05   15        12        1         0         
Optimization Terminated with Status: Step Tolerance Met

The resulting computed value of $q$ does a great job capturing all of the sharp edges in $q$, despite the fact that we use a penalty parameter of $\rho = 1$. When we used the pure penalty method in the previous demo, we had to take the penalty parameter to be on the order of 400. The inverse solver took much longer to converge and we still missed some of the edges.

import matplotlib.pyplot as plt
fig, axes = plt.subplots()
colors = firedrake.tripcolor(q, axes=axes)
fig.colorbar(colors);
No description has been provided for this image

The split variable $v$ matches the gradient of $q$ quite well.

fig, axes = plt.subplots()
colors = firedrake.tripcolor(v, axes=axes)
fig.colorbar(colors);
No description has been provided for this image

Finally, let's look at the relative changes in successive iterates of $q$ in the 1-norm at each step in order to get an idea of how fast the method converges.

δs = [
    assemble(abs(q2 - q1) * dx) / assemble(abs(q2) * dx)
    for q1, q2 in zip(qs[:-1], qs[1:])
]
fig, axes = plt.subplots()
axes.set_yscale('log')
axes.set_ylabel('Relative change in $q$')
axes.set_xlabel('Iteration')
axes.plot(δs);
No description has been provided for this image

Some iterations seem to hardly advance the solution at all, but when taken in aggregate this looks like the typical convergence of a first-order method.

Discussion

Much like the pure penalty method, the alternating direction method of multipliers offers a way to solve certain classes of non-smooth optimization problem by instead solving a sequence of smooth ones. ADMM, by introducing an explicit Lagrange multiplier estimate to enforce the consensus constraint, offers much faster convergence than the pure penalty method and the size of the penalty parameter does not need to go off to infinity. As a consequence, each of the smooth optimization problems that we have to solve has much better conditioning.

For this test case, we were able to take the penalty parameter $\rho$ to be equal to 1 from the outset and still obtain a good convergence rate. For more involved problems it's likely that we would instead have to test for convergence with a given value of $\rho$ and increase it by some factor greater than 1 if need be. Scaling this penalty parameter by an appropriate power of the regularization parameter $\alpha$ ahead of time makes it dimensionless. This property is especially advantageous for realistic problems but it requires you to know something about the objective you're minimizing.

There are obvious grid imprinting artifacts in the solution that we computed. To remedy this undesirable feature, we could use a mesh adaptation strategy that would refine (preferably anisotropically) along any sharp gradients in $q$.

Finally, we motivated ADMM by assuming that we could take an $L^2$-norm difference of $v$ and $\nabla q$. The idealized, infinite-dimensional version of the problem assumes only that $q$ lives in the space $BV(\Omega)$ of functions of bounded variation. The gradient of such a function is a finite, signed Borel measure, and thus may not live in $L^2$ at all. Hintermüller et al. (2014) gives an alternative formulation based on the dual problem, which has the right coercivity properties for Moreau-Yosida regularization to make sense. It's possible that the form I presented here falls afoul of some subtle functional analysis and that the solutions exhibit strong mesh dependence under refinement. Alternatively, it's possible that, while $v$ and $\nabla q$ only live in the space of finite signed measures and thus are not square integrable, their difference $\nabla q - v$ does live in $L^2$. Investigating this more will have to wait for another day.