Skip to main content

Stochastic Compliance Minimization with Trace Estimation

Description

When a load follows a distribution (magnitude, direction, or location), a single deterministic compliance value no longer captures the structure’s performance. TopOpt.jl provides differentiable functions that average compliance over many load scenarios, plus randomized estimators that approximate the average without solving every scenario.

The methods used here — exact and randomized evaluation of the mean compliance, of any scalar-valued function of the per-scenario compliances (e.g. a weighted sum of the mean and standard deviation), and the augmented-Lagrangian handling of a maximum-compliance constraint — are described in TarekRay2021 and its approximate counterpart TarekRay2022.

This tutorial covers:

  • MultiLoad and generate_scenarios for building load ensembles
  • MeanComplianceFun with the exact, SVD, Hutchinson-trace, and SVD-trace estimators
  • BlockComplianceFun for per-scenario compliance, used in a risk-averse (mean + standard deviation) objective and in a maximum-compliance-constrained problem solved with the augmented Lagrangian method
  • Choosing an estimator based on accuracy vs. cost

Setup

using TopOpt, LinearAlgebra, SparseArrays, Random, Statistics
using WGLMakie
WGLMakie.activate!(; resize_to=:parent)
using Bonito
if haskey(ENV, "QUARTO_PROJECT_DIR")
    Bonito.Page(exportable=true, offline=true)
else
    Bonito.browser_display()
end
display_app(app) = display(app)

WGLMakie.activate!(; resize_to=:parent) selects the browser renderer and fills the Quarto output column. Bonito.Page(exportable=true, offline=true) embeds the assets needed by visualize(...; static=true) in the Quarto output, so the visualization does not require a running Julia process.

A load ensemble

We model a cantilever whose tip is loaded by many random point loads drawn from a distribution of directions and magnitudes. The load matrix F has one column per scenario.

Random.seed!(42)
E, ν = 1.0, 0.3
nels = (40, 20)
base = PointLoadCantilever(nels, (1.0, 1.0), E, ν, 1.0)
ndofs = length(FEASolver(DirectSolver, base).u)
nloads = 16

F = spzeros(ndofs, nloads)
surface_dofs = vec(TopOpt.TopOptProblems.get_surface_dofs(base))
for i in 1:nloads
    dofs = surface_dofs[rand(1:length(surface_dofs), 2)]
    F[dofs, i] .= randn(2)
end
problem = MultiLoad(base, F)

solver = FEASolver(DirectSolver, problem; xmin=0.01, penalty=PowerPenaltyFun(2.0))

generate_scenarios builds a simpler ensemble: a single DOF loaded with perturbed magnitudes.

F_simple = generate_scenarios(surface_dofs[1], (ndofs, 8), 1.0)
println("generate_scenarios: $(size(F_simple, 2)) scenarios, $(nnz(F_simple)) non-zeros")
generate_scenarios: 8 scenarios, 8 non-zeros

Exact mean compliance (baseline)

MeanComplianceFun(problem, solver; method=:exact) solves every scenario and averages. The :exact_svd method compresses F with a thin SVD first, giving the same value from fewer solves when the scenarios are linearly dependent.

mc_exact = MeanComplianceFun(problem, solver; method=:exact)
mc_svd   = MeanComplianceFun(problem, solver; method=:exact_svd)

x = fill(0.5, length(solver.vars))
C_exact = mc_exact(PseudoDensities(x))
C_svd   = mc_svd(PseudoDensities(x))
println("exact     = $(C_exact)")
println("exact_svd = $(C_svd)  (rel. diff $(abs(C_exact - C_svd) / C_exact))")
exact     = 32.93546610860071
exact_svd = 32.935466108600714  (rel. diff 2.1573787157502846e-16)

Hutchinson trace estimator

Instead of solving all nloads scenarios, the Hutchinson estimator probes with nv random Rademacher (±1) vectors:

\[ \mathbb{E}\,[v^\mathsf{T} F^\mathsf{T} K^{-1} F v] = \mathrm{tr}(F^\mathsf{T} K^{-1} F) \]

which is proportional to the mean compliance. nv is the number of probe vectors; the estimate converges at O(1/√nv) but costs only nv solves.

for nv in (2, 4, 8, 16)
    mc = MeanComplianceFun(problem, solver; method=:trace, nv=nv, sample_once=false)
    est = mc(PseudoDensities(x))
    println("hutch nv=$(lpad(nv, 2)): $(round(est, digits=3))  (rel. err $(round(abs(est - C_exact) / C_exact, digits=3)))")
end
hutch nv= 2: 15.656  (rel. err 0.525)
hutch nv= 4: 35.751  (rel. err 0.085)
hutch nv= 8: 36.746  (rel. err 0.116)
hutch nv=16: 41.002  (rel. err 0.245)

With sample_once=false the probe vectors are redrawn on every call, so the estimate varies between calls; with sample_once=true (the default) they are drawn once at construction and held fixed, which keeps the objective and its gradient consistent during an optimization.

Hadamard (deterministic) estimator

Passing sample_method=:hadamard replaces the random probes with deterministic orthogonal Hadamard columns. The estimator is exact only when nv equals the number of load scenarios (the Hadamard columns then form a complete orthogonal basis); with fewer columns the estimate is biased toward the column span, so the constructor rejects nv < n_scenarios.

n_scenarios = size(problem.F, 2)
mc = MeanComplianceFun(
    problem, solver; method=:trace, nv=n_scenarios, sample_method=:hadamard
)
est = mc(PseudoDensities(x))
println("hadamard nv=$(n_scenarios): $(round(est, digits=3))  (rel. err $(round(abs(est - C_exact) / C_exact, digits=3)))")
hadamard nv=16: 32.935  (rel. err 0.0)

Per-scenario compliance: mean and standard deviation

BlockComplianceFun returns a vector of compliance values, one per scenario. This lets us form arbitrary statistics. Minimizing the mean alone is the standard robust formulation; adding a multiple of the standard deviation penalizes designs that perform unevenly across the load distribution.

bc = BlockComplianceFun(problem, solver; method=:exact)
V = 0.5
filter = DensityFilterFun(solver; rmin=2.0)
volfrac = VolumeFun(solver)

mean_only = x -> mean(bc(filter(PseudoDensities(x))))
mean_std  = x -> mean(bc(filter(PseudoDensities(x)))) + 0.25 * std(bc(filter(PseudoDensities(x))))
volconstr = x -> volfrac(filter(PseudoDensities(x))) - V

function run(obj, label)
    model = Model(obj)
    addvar!(model, zeros(length(x)), ones(length(x)))
    add_ineq_constraint!(model, volconstr)
    r = optimize(model, MMA87(), fill(V, length(x));
        options=MMAOptions(; maxiter=100, tol=Tolerance(; kkt=1e-4, f=1e-4)))
    println("$label: obj = $(round(obj(r.minimizer), digits=3)), vol = $(round(volconstr(r.minimizer) + V, digits=3))")
    return r.minimizer
end
x_mean = run(mean_only, "mean only      ")
x_meanstd = run(mean_std, "mean + 0.25 std")
[ Info:   iter       obj      Δobj  violation  kkt_residual  
[ Info:      0   3.3e+01       Inf   0.0e+00   1.6e+00
[ Info:      1   2.4e+01   9.3e+00   0.0e+00   3.9e+00
[ Info:      2   1.8e+01   5.3e+00   0.0e+00   9.0e-01
[ Info:      3   1.7e+01   1.7e+00   0.0e+00   2.1e-01
[ Info:      4   1.6e+01   4.0e-01   0.0e+00   5.7e-02
[ Info:      5   1.6e+01   1.4e-01   0.0e+00   2.8e-02
[ Info:      6   1.6e+01   8.5e-02   0.0e+00   2.1e-02
[ Info:      7   1.6e+01   6.0e-02   0.0e+00   1.8e-02
[ Info:      8   1.6e+01   4.7e-02   0.0e+00   1.5e-02
[ Info:      9   1.6e+01   4.0e-02   0.0e+00   1.3e-02
[ Info:     10   1.6e+01   4.3e-02   0.0e+00   1.6e-02
[ Info:     11   1.6e+01   4.0e-02   0.0e+00   1.4e-02
[ Info:     12   1.6e+01   3.2e-02   0.0e+00   1.6e-02
[ Info:     13   1.6e+01   3.0e-02   0.0e+00   1.9e-02
[ Info:     14   1.6e+01   2.8e-02   0.0e+00   1.4e-02
[ Info:     15   1.6e+01   2.6e-02   0.0e+00   1.6e-02
[ Info:     16   1.6e+01   2.0e-02   0.0e+00   9.6e-03
[ Info:     17   1.6e+01   1.0e-02   0.0e+00   1.9e-02
[ Info:     18   1.6e+01   1.4e-01   0.0e+00   5.2e-02
[ Info:     19   1.6e+01   3.1e-01   0.0e+00   1.8e-01
[ Info:     20   1.6e+01   1.8e-01   0.0e+00   3.3e-01
[ Info:     21   1.6e+01   3.5e-01   0.0e+00   2.6e-01
[ Info:     22   1.6e+01   2.7e-01   0.0e+00   7.6e-02
[ Info:     23   1.6e+01   9.3e-02   0.0e+00   1.5e-02
[ Info:     24   1.6e+01   2.0e-02   0.0e+00   7.9e-03
[ Info:     25   1.6e+01   5.7e-03   0.0e+00   8.8e-03
[ Info:     26   1.6e+01   4.3e-03   0.0e+00   9.7e-03
[ Info:     27   1.6e+01   4.1e-03   0.0e+00   1.1e-02
[ Info:     28   1.6e+01   4.1e-03   0.0e+00   1.2e-02
[ Info:     29   1.6e+01   4.2e-03   0.0e+00   8.8e-03
[ Info:     30   1.6e+01   4.1e-03   0.0e+00   5.9e-03
[ Info:     31   1.6e+01   4.2e-03   0.0e+00   6.5e-03
[ Info:     32   1.6e+01   4.3e-03   0.0e+00   6.6e-03
[ Info:     33   1.6e+01   4.4e-03   0.0e+00   6.6e-03
[ Info:     34   1.6e+01   4.3e-03   0.0e+00   7.0e-03
[ Info:     35   1.6e+01   4.1e-03   0.0e+00   7.2e-03
[ Info:     36   1.6e+01   1.6e-03   0.0e+00   9.2e-03
[ Info:     37   1.6e+01   7.9e-03   0.0e+00   1.5e-02
[ Info:     38   1.6e+01   2.7e-02   0.0e+00   1.7e-02
[ Info:     39   1.6e+01   5.5e-02   0.0e+00   3.7e-02
[ Info:     40   1.6e+01   7.1e-02   0.0e+00   7.5e-02
[ Info:     41   1.6e+01   3.4e-02   0.0e+00   9.7e-02
[ Info:     42   1.6e+01   6.5e-02   0.0e+00   9.9e-02
[ Info:     43   1.6e+01   1.1e-01   0.0e+00   3.4e-02
[ Info:     44   1.6e+01   3.9e-02   0.0e+00   5.1e-03
[ Info:     45   1.6e+01   4.7e-03   0.0e+00   5.1e-03
[ Info:     46   1.6e+01   1.4e-03   0.0e+00   4.1e-03
[ Info:     47   1.6e+01   1.1e-03   0.0e+00   4.1e-03
[ Info:     48   1.6e+01   1.2e-03   0.0e+00   4.2e-03
[ Info:     49   1.6e+01   1.3e-03   0.0e+00   4.3e-03
[ Info:     50   1.6e+01   1.4e-03   0.0e+00   4.5e-03
[ Info:     51   1.6e+01   1.6e-03   0.0e+00   5.1e-03
[ Info:     52   1.6e+01   1.7e-03   0.0e+00   5.1e-03
[ Info:     53   1.6e+01   2.0e-03   0.0e+00   6.0e-03
[ Info:     54   1.6e+01   2.3e-03   0.0e+00   7.2e-03
[ Info:     55   1.6e+01   2.2e-03   0.0e+00   8.4e-03
[ Info:     56   1.6e+01   2.4e-03   0.0e+00   9.8e-03
[ Info:     57   1.5e+01   2.8e-03   0.0e+00   1.2e-02
[ Info:     58   1.5e+01   3.0e-03   0.0e+00   1.4e-02
[ Info:     59   1.5e+01   3.5e-03   0.0e+00   1.7e-02
[ Info:     60   1.5e+01   2.5e-03   0.0e+00   2.1e-02
[ Info:     61   1.5e+01   4.3e-03   0.0e+00   2.0e-02
[ Info:     62   1.6e+01   2.3e-02   0.0e+00   1.8e-02
[ Info:     63   1.6e+01   3.5e-02   0.0e+00   3.8e-02
[ Info:     64   1.6e+01   1.2e-02   0.0e+00   5.0e-02
[ Info:     65   1.6e+01   5.1e-02   0.0e+00   4.0e-02
[ Info:     66   1.5e+01   5.1e-02   0.0e+00   2.6e-02
[ Info:     67   1.5e+01   1.6e-02   0.0e+00   2.9e-02
[ Info:     68   1.5e+01   4.1e-03   0.0e+00   3.1e-02
[ Info:     69   1.5e+01   3.2e-03   0.0e+00   3.3e-02
[ Info:     70   1.5e+01   2.9e-03   0.0e+00   3.5e-02
[ Info:     71   1.5e+01   3.1e-03   0.0e+00   3.7e-02
[ Info:     72   1.5e+01   3.8e-03   0.0e+00   4.0e-02
[ Info:     73   1.5e+01   4.3e-03   0.0e+00   1.5e-02
[ Info:     74   1.5e+01   2.5e-03   0.0e+00   1.6e-02
[ Info:     75   1.5e+01   1.7e-03   0.0e+00   1.6e-02
[ Info:     76   1.5e+01   1.9e-03   0.0e+00   1.7e-02
[ Info:     77   1.5e+01   2.2e-03   0.0e+00   1.7e-02
[ Info:     78   1.5e+01   2.5e-03   0.0e+00   1.8e-02
[ Info:     79   1.5e+01   2.9e-03   0.0e+00   1.9e-02
[ Info:     80   1.5e+01   3.5e-03   0.0e+00   2.0e-02
[ Info:     81   1.5e+01   4.1e-03   0.0e+00   2.2e-02
[ Info:     82   1.5e+01   2.7e-03   0.0e+00   2.4e-02
[ Info:     83   1.5e+01   1.4e-03   0.0e+00   1.2e-02
[ Info:     84   1.5e+01   1.1e-02   0.0e+00   1.6e-02
[ Info:     85   1.5e+01   1.7e-02   0.0e+00   3.0e-02
[ Info:     86   1.5e+01   4.8e-03   0.0e+00   2.0e-02
[ Info:     87   1.5e+01   2.3e-02   0.0e+00   8.7e-03
[ Info:     88   1.5e+01   8.5e-03   0.0e+00   9.7e-03
[ Info:     89   1.5e+01   4.3e-04   0.0e+00   1.7e-02
[ Info:     90   1.5e+01   2.7e-03   0.0e+00   7.9e-03
[ Info:     91   1.5e+01   3.7e-03   0.0e+00   8.5e-03
[ Info:     92   1.5e+01   2.3e-03   0.0e+00   9.0e-03
[ Info:     93   1.5e+01   1.1e-03   0.0e+00   7.3e-03
[ Info:     94   1.5e+01   9.6e-04   0.0e+00   7.7e-03
[ Info:     95   1.5e+01   9.8e-04   0.0e+00   8.1e-03
[ Info:     96   1.5e+01   1.0e-03   0.0e+00   8.5e-03
[ Info:     97   1.5e+01   1.2e-03   0.0e+00   8.8e-03
[ Info:     98   1.5e+01   1.3e-03   0.0e+00   9.1e-03
[ Info:     99   1.5e+01   1.1e-03   0.0e+00   9.5e-03
[ Info:    100   1.5e+01   1.3e-03   0.0e+00   1.0e-02
mean only      : obj = 15.373, vol = 0.5
[ Info:   iter       obj      Δobj  violation  kkt_residual  
[ Info:      0   4.0e+01       Inf   0.0e+00   1.8e+00
[ Info:      1   2.9e+01   1.1e+01   0.0e+00   4.6e+00
[ Info:      2   2.3e+01   6.5e+00   0.0e+00   1.1e+00
[ Info:      3   2.1e+01   2.0e+00   0.0e+00   2.6e-01
[ Info:      4   2.0e+01   5.3e-01   0.0e+00   8.2e-02
[ Info:      5   2.0e+01   2.0e-01   0.0e+00   4.0e-02
[ Info:      6   2.0e+01   1.2e-01   0.0e+00   2.7e-02
[ Info:      7   2.0e+01   8.8e-02   0.0e+00   2.2e-02
[ Info:      8   2.0e+01   7.9e-02   0.0e+00   3.3e-02
[ Info:      9   1.9e+01   6.7e-02   0.0e+00   2.5e-02
[ Info:     10   1.9e+01   5.3e-02   0.0e+00   1.9e-02
[ Info:     11   1.9e+01   4.5e-02   0.0e+00   1.8e-02
[ Info:     12   1.9e+01   4.2e-02   0.0e+00   1.9e-02
[ Info:     13   1.9e+01   3.9e-02   0.0e+00   1.8e-02
[ Info:     14   1.9e+01   3.2e-02   0.0e+00   2.2e-02
[ Info:     15   1.9e+01   3.0e-02   0.0e+00   1.3e-02
[ Info:     16   1.9e+01   1.9e-02   0.0e+00   1.3e-02
[ Info:     17   1.9e+01   2.5e-02   0.0e+00   2.7e-02
[ Info:     18   1.9e+01   1.9e-01   0.0e+00   7.5e-02
[ Info:     19   2.0e+01   8.4e-01   0.0e+00   2.7e-01
[ Info:     20   2.1e+01   8.7e-01   0.0e+00   8.5e-01
[ Info:     21   2.1e+01   3.2e-01   0.0e+00   9.4e-01
[ Info:     22   2.1e+01   4.5e-01   0.0e+00   1.2e+00
[ Info:     23   2.0e+01   1.3e+00   0.0e+00   5.0e-01
[ Info:     24   1.9e+01   5.0e-01   0.0e+00   7.1e-02
[ Info:     25   1.9e+01   8.9e-02   0.0e+00   1.3e-02
[ Info:     26   1.9e+01   1.8e-02   0.0e+00   1.4e-02
[ Info:     27   1.9e+01   1.0e-02   0.0e+00   1.5e-02
[ Info:     28   1.9e+01   8.2e-03   0.0e+00   1.7e-02
[ Info:     29   1.9e+01   7.8e-03   0.0e+00   1.9e-02
[ Info:     30   1.9e+01   7.8e-03   0.0e+00   1.6e-02
[ Info:     31   1.9e+01   8.1e-03   0.0e+00   1.7e-02
[ Info:     32   1.9e+01   8.4e-03   0.0e+00   1.2e-02
[ Info:     33   1.9e+01   8.5e-03   0.0e+00   1.3e-02
[ Info:     34   1.9e+01   9.1e-03   0.0e+00   1.4e-02
[ Info:     35   1.9e+01   1.0e-02   0.0e+00   1.6e-02
[ Info:     36   1.9e+01   1.0e-02   0.0e+00   1.8e-02
[ Info:     37   1.9e+01   1.0e-02   0.0e+00   2.0e-02
[ Info:     38   1.9e+01   8.4e-03   0.0e+00   2.3e-02
[ Info:     39   1.9e+01   1.4e-03   0.0e+00   2.2e-02
[ Info:     40   1.9e+01   1.7e-02   0.0e+00   2.6e-02
[ Info:     41   1.9e+01   4.3e-02   0.0e+00   4.4e-02
[ Info:     42   1.9e+01   4.5e-02   0.0e+00   6.4e-02
[ Info:     43   1.9e+01   4.6e-02   0.0e+00   7.5e-02
[ Info:     44   1.9e+01   9.7e-02   0.0e+00   3.1e-02
[ Info:     45   1.9e+01   4.1e-02   0.0e+00   1.8e-02
[ Info:     46   1.9e+01   1.6e-02   0.0e+00   2.6e-02
[ Info:     47   1.9e+01   1.7e-02   0.0e+00   3.8e-02
[ Info:     48   1.9e+01   1.5e-02   0.0e+00   4.0e-02
[ Info:     49   1.9e+01   1.2e-02   0.0e+00   2.4e-02
[ Info:     50   1.9e+01   1.0e-02   0.0e+00   1.3e-02
[ Info:     51   1.9e+01   7.9e-03   0.0e+00   1.4e-02
[ Info:     52   1.9e+01   8.3e-03   0.0e+00   1.7e-02
[ Info:     53   1.9e+01   8.1e-03   0.0e+00   1.5e-02
[ Info:     54   1.9e+01   7.1e-03   0.0e+00   1.7e-02
[ Info:     55   1.9e+01   7.2e-03   0.0e+00   1.9e-02
[ Info:     56   1.9e+01   7.3e-03   0.0e+00   2.1e-02
[ Info:     57   1.9e+01   7.3e-03   0.0e+00   1.8e-02
[ Info:     58   1.9e+01   6.9e-03   0.0e+00   2.0e-02
[ Info:     59   1.9e+01   6.0e-03   0.0e+00   2.2e-02
[ Info:     60   1.9e+01   4.6e-03   0.0e+00   2.5e-02
[ Info:     61   1.9e+01   1.6e-03   0.0e+00   1.4e-02
[ Info:     62   1.9e+01   2.1e-03   0.0e+00   1.2e-02
[ Info:     63   1.9e+01   5.7e-03   0.0e+00   1.2e-02
[ Info:     64   1.9e+01   5.8e-03   0.0e+00   1.2e-02
[ Info:     65   1.9e+01   3.8e-03   0.0e+00   9.9e-03
[ Info:     66   1.9e+01   3.4e-03   0.0e+00   7.6e-03
[ Info:     67   1.9e+01   2.8e-03   0.0e+00   7.6e-03
[ Info:     68   1.9e+01   2.5e-03   0.0e+00   7.6e-03
[ Info:     69   1.9e+01   1.9e-03   0.0e+00   7.6e-03
[ Info:     70   1.9e+01   1.8e-03   0.0e+00   7.8e-03
[ Info:     71   1.9e+01   1.8e-03   0.0e+00   7.6e-03
[ Info:     72   1.9e+01   1.8e-03   0.0e+00   4.3e-03
[ Info:     73   1.9e+01   1.7e-03   0.0e+00   3.7e-03
[ Info:     74   1.9e+01   1.8e-03   0.0e+00   3.7e-03
[ Info:     75   1.9e+01   1.9e-03   0.0e+00   3.4e-03
[ Info:     76   1.9e+01   1.9e-03   0.0e+00   3.2e-03
[ Info:     77   1.9e+01   1.9e-03   0.0e+00   3.3e-03
[ Info:     78   1.9e+01   1.8e-03   0.0e+00   3.8e-03
[ Info:     79   1.9e+01   1.4e-03   0.0e+00   3.5e-03
[ Info:     80   1.9e+01   1.1e-03   0.0e+00   4.3e-03
[ Info:     81   1.9e+01   6.9e-04   0.0e+00   6.3e-03
[ Info:     82   1.9e+01   1.2e-03   0.0e+00   5.0e-03
[ Info:     83   1.9e+01   1.4e-03   0.0e+00   5.3e-03
[ Info:     84   1.9e+01   1.7e-03   0.0e+00   4.2e-03
[ Info:     85   1.9e+01   1.4e-03   0.0e+00   2.8e-03
[ Info:     86   1.9e+01   9.6e-04   0.0e+00   3.0e-03
[ Info:     87   1.9e+01   8.2e-04   0.0e+00   2.9e-03
[ Info:     88   1.9e+01   8.9e-04   0.0e+00   3.1e-03
[ Info:     89   1.9e+01   1.0e-03   0.0e+00   3.3e-03
[ Info:     90   1.9e+01   1.1e-03   0.0e+00   3.4e-03
[ Info:     91   1.9e+01   1.1e-03   0.0e+00   3.0e-03
[ Info:     92   1.9e+01   9.7e-04   0.0e+00   2.3e-03
[ Info:     93   1.9e+01   8.0e-04   0.0e+00   2.5e-03
[ Info:     94   1.9e+01   6.8e-04   0.0e+00   2.7e-03
[ Info:     95   1.9e+01   6.5e-04   0.0e+00   2.6e-03
[ Info:     96   1.9e+01   5.9e-04   0.0e+00   2.5e-03
[ Info:     97   1.9e+01   5.3e-04   0.0e+00   2.5e-03
[ Info:     98   1.9e+01   4.9e-04   0.0e+00   2.4e-03
[ Info:     99   1.9e+01   4.9e-04   0.0e+00   2.6e-03
[ Info:    100   1.9e+01   4.8e-04   0.0e+00   2.1e-03
mean + 0.25 std: obj = 18.727, vol = 0.5
800-element Vector{Float64}:
 1.0
 1.0
 1.0
 1.0
 1.0
 1.0
 1.0
 1.0
 1.0
 1.0
 ⋮
 0.5041536357680158
 0.13602514023354909
 0.0
 0.7100913727091689
 0.5701156026274002
 0.0
 0.06456416633148623
 1.0
 1.0

Maximum compliance constraint via augmented Lagrangian

A robust design can instead bound the worst-case compliance: minimize the volume subject to C_i ≤ C_t for every scenario. Following TarekRay2021 (§4), this is solved with the augmented Lagrangian method, where the per-scenario compliances from BlockComplianceFun enter the augmented Lagrangian function

\[ L(\bm{x}; \bm\lambda, r) = V(\bm{x}) + \sum_i \left[\lambda_i (C_i - C_t) + r\,\max(C_i - C_t, 0)^2\right]. \]

Each subproblem minimizes this function over the box 0 ≤ x ≤ 1, then the multipliers and penalty are updated (λ ← λ + ρ·c, ρ ← γρ). The compliance threshold C_t is calibrated from the solid design’s worst-case compliance.

volf = x -> volfrac(filter(PseudoDensities(x)))
Cfun = x -> bc(filter(PseudoDensities(x)))
C_t = 2.0 * maximum(Cfun(ones(length(solver.vars))))

function al_subproblem(λ, ρ, x0)
    model = Model(xx -> begin
        C = Cfun(xx)
        c = C .- C_t
        pen = max.(λ .+ ρ .* c, 0.0)
        volf(xx) + (1 / (2ρ)) * (dot(pen, pen) - dot(λ, λ))
    end)
    addvar!(model, zeros(length(x0)), ones(length(x0)))
    return optimize(model, MMA87(), x0;
        options=MMAOptions(; maxiter=60, tol=Tolerance(; kkt=1e-4, f=1e-4))).minimizer
end
λ = zeros(nloads)
ρ = 1.0
x_al = ones(length(solver.vars))
for k in 1:20
    global λ, ρ, x_al
    x_al = al_subproblem(λ, ρ, x_al)
    C = Cfun(x_al)
    λ .= max.(λ .+ ρ .* (C .- C_t), 0.0)
    ρ *= 1.5
end
C = Cfun(x_al)
println("max-compliance design: volume = $(round(volf(x_al), digits=3)), max C = $(round(maximum(C), digits=1)), C_t = $(round(C_t, digits=1))")
[ Info:   iter       obj      Δobj  violation  kkt_residual  
[ Info:      0   1.0e+00       Inf   0.0e+00   1.3e-03
[ Info:      1   7.2e+02   7.2e+02   0.0e+00   1.6e+02
[ Info:      2   1.0e+00   7.2e+02   0.0e+00   1.3e-03
[ Info:      3   6.2e+00   5.2e+00   0.0e+00   7.3e+00
[ Info:      4   9.0e-01   5.3e+00   0.0e+00   1.3e-03
[ Info:      5   7.5e-01   1.5e-01   0.0e+00   1.3e-03
[ Info:      6   7.1e+01   7.0e+01   0.0e+00   3.1e+01
[ Info:      7   7.7e-01   7.0e+01   0.0e+00   1.3e-03
[ Info:      8   8.2e+00   7.4e+00   0.0e+00   8.6e+00
[ Info:      9   7.4e-01   7.4e+00   0.0e+00   1.3e-03
[ Info:     10   7.9e-01   4.7e-02   0.0e+00   8.7e-01
[ Info:     11   7.3e-01   6.1e-02   0.0e+00   1.3e-03
[ Info:     12   7.1e-01   2.2e-02   0.0e+00   1.3e-03
[ Info:     13   1.8e+00   1.1e+00   0.0e+00   3.1e+00
[ Info:     14   7.1e-01   1.1e+00   0.0e+00   1.3e-03
[ Info:     15   8.2e-01   1.1e-01   0.0e+00   1.0e+00
[ Info:     16   7.0e-01   1.2e-01   0.0e+00   1.3e-03
[ Info:     17   8.2e-01   1.2e-01   0.0e+00   1.0e+00
[ Info:     18   7.0e-01   1.2e-01   0.0e+00   1.3e-03
[ Info:     19   8.2e-01   1.2e-01   0.0e+00   1.0e+00
[ Info:     20   7.0e-01   1.2e-01   0.0e+00   1.3e-03
[ Info:     21   8.2e-01   1.2e-01   0.0e+00   1.0e+00
[ Info:     22   7.0e-01   1.2e-01   0.0e+00   1.3e-03
[ Info:     23   8.2e-01   1.2e-01   0.0e+00   1.0e+00
[ Info:     24   7.0e-01   1.2e-01   0.0e+00   1.3e-03
[ Info:     25   8.2e-01   1.2e-01   0.0e+00   1.0e+00
[ Info:     26   7.0e-01   1.2e-01   0.0e+00   1.3e-03
[ Info:     27   8.2e-01   1.2e-01   0.0e+00   1.0e+00
[ Info:     28   7.0e-01   1.2e-01   0.0e+00   1.3e-03
[ Info:     29   8.2e-01   1.2e-01   0.0e+00   1.0e+00
[ Info:     30   7.0e-01   1.2e-01   0.0e+00   1.3e-03
[ Info:     31   8.2e-01   1.2e-01   0.0e+00   1.0e+00
[ Info:     32   7.0e-01   1.2e-01   0.0e+00   1.3e-03
[ Info:     33   8.2e-01   1.2e-01   0.0e+00   1.0e+00
[ Info:     34   7.0e-01   1.2e-01   0.0e+00   1.3e-03
[ Info:     35   8.2e-01   1.2e-01   0.0e+00   1.0e+00
[ Info:     36   7.0e-01   1.2e-01   0.0e+00   1.3e-03
[ Info:     37   8.2e-01   1.2e-01   0.0e+00   1.0e+00
[ Info:     38   7.0e-01   1.2e-01   0.0e+00   1.3e-03
[ Info:     39   8.2e-01   1.2e-01   0.0e+00   1.0e+00
[ Info:     40   7.0e-01   1.2e-01   0.0e+00   1.3e-03
[ Info:     41   8.2e-01   1.2e-01   0.0e+00   1.0e+00
[ Info:     42   7.0e-01   1.2e-01   0.0e+00   1.3e-03
[ Info:     43   8.2e-01   1.2e-01   0.0e+00   1.0e+00
[ Info:     44   7.0e-01   1.2e-01   0.0e+00   1.3e-03
[ Info:     45   8.2e-01   1.2e-01   0.0e+00   1.0e+00
[ Info:     46   7.0e-01   1.2e-01   0.0e+00   1.3e-03
[ Info:     47   8.2e-01   1.2e-01   0.0e+00   1.0e+00
[ Info:     48   7.0e-01   1.2e-01   0.0e+00   1.3e-03
[ Info:     49   8.2e-01   1.2e-01   0.0e+00   1.0e+00
[ Info:     50   7.0e-01   1.2e-01   0.0e+00   1.3e-03
[ Info:     51   8.2e-01   1.2e-01   0.0e+00   1.0e+00
[ Info:     52   7.0e-01   1.2e-01   0.0e+00   1.3e-03
[ Info:     53   8.2e-01   1.2e-01   0.0e+00   1.0e+00
[ Info:     54   7.0e-01   1.2e-01   0.0e+00   1.3e-03
[ Info:     55   8.2e-01   1.2e-01   0.0e+00   1.0e+00
[ Info:     56   7.0e-01   1.2e-01   0.0e+00   1.3e-03
[ Info:     57   8.2e-01   1.2e-01   0.0e+00   1.0e+00
[ Info:     58   7.0e-01   1.2e-01   0.0e+00   1.3e-03
[ Info:     59   8.2e-01   1.2e-01   0.0e+00   1.0e+00
[ Info:     60   7.0e-01   1.2e-01   0.0e+00   1.3e-03
[ Info:   iter       obj      Δobj  violation  kkt_residual  
[ Info:      0   7.0e-01       Inf   0.0e+00   1.3e-03
[ Info:      1   1.3e+05   1.3e+05   0.0e+00   2.4e+04
[ Info:      2   7.1e-01   1.3e+05   0.0e+00   1.3e-03
[ Info:      3   1.3e+04   1.3e+04   0.0e+00   2.5e+03
[ Info:      4   2.6e+02   1.3e+04   0.0e+00   8.3e+01
[ Info:      5   7.7e-01   2.6e+02   0.0e+00   1.3e-03
[ Info:      6   5.5e+02   5.5e+02   0.0e+00   1.4e+02
[ Info:      7   7.1e-01   5.5e+02   0.0e+00   1.3e-03
[ Info:      8   2.1e+02   2.0e+02   0.0e+00   7.1e+01
[ Info:      9   7.4e+00   2.0e+02   0.0e+00   9.8e+00
[ Info:     10   7.3e-01   6.7e+00   0.0e+00   1.3e-03
[ Info:     11   1.7e+01   1.6e+01   0.0e+00   1.6e+01
[ Info:     12   7.1e-01   1.6e+01   0.0e+00   1.3e-03
[ Info:     13   5.7e+00   5.0e+00   0.0e+00   8.3e+00
[ Info:     14   7.0e-01   5.0e+00   0.0e+00   1.3e-03
[ Info:     15   2.6e+00   1.9e+00   0.0e+00   5.0e+00
[ Info:     16   7.0e-01   1.9e+00   0.0e+00   2.4e-02
[ Info:     17   7.0e-01   1.3e-03   0.0e+00   1.3e-03
[ Info:     18   1.1e+00   3.7e-01   0.0e+00   2.2e+00
[ Info:     19   7.0e-01   3.7e-01   0.0e+00   1.3e-03
[ Info:     20   1.0e+00   3.2e-01   0.0e+00   2.0e+00
[ Info:     21   7.0e-01   3.2e-01   0.0e+00   1.3e-03
[ Info:     22   1.0e+00   3.2e-01   0.0e+00   2.0e+00
[ Info:     23   7.0e-01   3.2e-01   0.0e+00   1.3e-03
[ Info:     24   1.0e+00   3.2e-01   0.0e+00   2.0e+00
[ Info:     25   7.0e-01   3.3e-01   0.0e+00   1.3e-03
[ Info:     26   1.0e+00   3.2e-01   0.0e+00   2.0e+00
[ Info:     27   7.0e-01   3.3e-01   0.0e+00   1.3e-03
[ Info:     28   1.0e+00   3.3e-01   0.0e+00   2.0e+00
[ Info:     29   7.0e-01   3.3e-01   0.0e+00   1.3e-03
[ Info:     30   1.0e+00   3.3e-01   0.0e+00   2.0e+00
[ Info:     31   7.0e-01   3.3e-01   0.0e+00   1.3e-03
[ Info:     32   1.0e+00   3.3e-01   0.0e+00   2.0e+00
[ Info:     33   7.0e-01   3.3e-01   0.0e+00   1.3e-03
[ Info:     34   1.0e+00   3.3e-01   0.0e+00   2.0e+00
[ Info:     35   7.0e-01   3.3e-01   0.0e+00   1.3e-03
[ Info:     36   1.0e+00   3.3e-01   0.0e+00   2.0e+00
[ Info:     37   7.0e-01   3.3e-01   0.0e+00   1.3e-03
[ Info:     38   1.0e+00   3.3e-01   0.0e+00   2.0e+00
[ Info:     39   7.0e-01   3.3e-01   0.0e+00   1.3e-03
[ Info:     40   1.0e+00   3.3e-01   0.0e+00   2.0e+00
[ Info:     41   7.0e-01   3.3e-01   0.0e+00   1.3e-03
[ Info:     42   1.0e+00   3.3e-01   0.0e+00   2.0e+00
[ Info:     43   7.0e-01   3.3e-01   0.0e+00   1.3e-03
[ Info:     44   1.0e+00   3.3e-01   0.0e+00   2.0e+00
[ Info:     45   7.0e-01   3.3e-01   0.0e+00   1.3e-03
[ Info:     46   1.0e+00   3.3e-01   0.0e+00   2.0e+00
[ Info:     47   7.0e-01   3.3e-01   0.0e+00   1.3e-03
[ Info:     48   1.0e+00   3.3e-01   0.0e+00   2.0e+00
[ Info:     49   7.0e-01   3.3e-01   0.0e+00   1.3e-03
[ Info:     50   1.0e+00   3.3e-01   0.0e+00   2.0e+00
[ Info:     51   7.0e-01   3.3e-01   0.0e+00   1.3e-03
[ Info:     52   1.0e+00   3.3e-01   0.0e+00   2.0e+00
[ Info:     53   7.0e-01   3.3e-01   0.0e+00   1.3e-03
[ Info:     54   1.0e+00   3.3e-01   0.0e+00   2.0e+00
[ Info:     55   7.0e-01   3.3e-01   0.0e+00   1.3e-03
[ Info:     56   1.0e+00   3.3e-01   0.0e+00   2.0e+00
[ Info:     57   7.0e-01   3.3e-01   0.0e+00   1.3e-03
[ Info:     58   1.0e+00   3.3e-01   0.0e+00   2.0e+00
[ Info:     59   7.0e-01   3.3e-01   0.0e+00   1.3e-03
[ Info:     60   1.0e+00   3.3e-01   0.0e+00   2.0e+00
[ Info:   iter       obj      Δobj  violation  kkt_residual  
[ Info:      0   1.9e+00       Inf   0.0e+00   5.1e+00
[ Info:      1   7.7e-01   1.1e+00   0.0e+00   1.3e-03
[ Info:      2   1.7e+03   1.7e+03   0.0e+00   3.6e+02
[ Info:      3   6.4e-01   1.7e+03   0.0e+00   1.3e-03
[ Info:      4   1.6e+02   1.6e+02   0.0e+00   7.1e+01
[ Info:      5   5.7e-01   1.6e+02   0.0e+00   1.3e-03
[ Info:      6   8.6e+00   8.1e+00   0.0e+00   1.3e+01
[ Info:      7   5.4e-01   8.1e+00   0.0e+00   1.3e-03
[ Info:      8   4.9e-01   5.3e-02   0.0e+00   1.3e-03
[ Info:      9   3.3e+01   3.3e+01   0.0e+00   2.8e+01
[ Info:     10   4.9e-01   3.3e+01   0.0e+00   1.3e-03
[ Info:     11   9.8e+00   9.3e+00   0.0e+00   1.4e+01
[ Info:     12   4.8e-01   9.3e+00   0.0e+00   1.3e-03
[ Info:     13   3.7e+00   3.3e+00   0.0e+00   8.0e+00
[ Info:     14   4.8e-01   3.3e+00   0.0e+00   1.3e-03
[ Info:     15   2.7e+00   2.2e+00   0.0e+00   6.6e+00
[ Info:     16   4.8e-01   2.2e+00   0.0e+00   1.3e-03
[ Info:     17   2.7e+00   2.2e+00   0.0e+00   6.6e+00
[ Info:     18   4.8e-01   2.2e+00   0.0e+00   1.3e-03
[ Info:     19   2.7e+00   2.2e+00   0.0e+00   6.6e+00
[ Info:     20   4.8e-01   2.2e+00   0.0e+00   1.3e-03
[ Info:     21   2.7e+00   2.2e+00   0.0e+00   6.6e+00
[ Info:     22   4.8e-01   2.2e+00   0.0e+00   1.3e-03
[ Info:     23   2.7e+00   2.2e+00   0.0e+00   6.6e+00
[ Info:     24   4.8e-01   2.2e+00   0.0e+00   1.3e-03
[ Info:     25   2.7e+00   2.2e+00   0.0e+00   6.6e+00
[ Info:     26   4.8e-01   2.2e+00   0.0e+00   1.3e-03
[ Info:     27   2.7e+00   2.2e+00   0.0e+00   6.6e+00
[ Info:     28   4.8e-01   2.2e+00   0.0e+00   1.3e-03
[ Info:     29   2.7e+00   2.2e+00   0.0e+00   6.6e+00
[ Info:     30   4.8e-01   2.2e+00   0.0e+00   1.3e-03
[ Info:     31   2.7e+00   2.2e+00   0.0e+00   6.6e+00
[ Info:     32   4.8e-01   2.2e+00   0.0e+00   1.3e-03
[ Info:     33   2.7e+00   2.2e+00   0.0e+00   6.6e+00
[ Info:     34   4.8e-01   2.2e+00   0.0e+00   1.3e-03
[ Info:     35   2.7e+00   2.2e+00   0.0e+00   6.6e+00
[ Info:     36   4.8e-01   2.2e+00   0.0e+00   1.3e-03
[ Info:     37   2.7e+00   2.2e+00   0.0e+00   6.6e+00
[ Info:     38   4.8e-01   2.2e+00   0.0e+00   1.3e-03
[ Info:     39   2.7e+00   2.2e+00   0.0e+00   6.6e+00
[ Info:     40   4.8e-01   2.2e+00   0.0e+00   1.3e-03
[ Info:     41   2.7e+00   2.2e+00   0.0e+00   6.6e+00
[ Info:     42   4.8e-01   2.2e+00   0.0e+00   1.3e-03
[ Info:     43   2.7e+00   2.2e+00   0.0e+00   6.6e+00
[ Info:     44   4.8e-01   2.2e+00   0.0e+00   1.3e-03
[ Info:     45   2.7e+00   2.2e+00   0.0e+00   6.6e+00
[ Info:     46   4.8e-01   2.2e+00   0.0e+00   1.3e-03
[ Info:     47   2.7e+00   2.2e+00   0.0e+00   6.6e+00
[ Info:     48   4.8e-01   2.2e+00   0.0e+00   1.3e-03
[ Info:     49   2.7e+00   2.2e+00   0.0e+00   6.6e+00
[ Info:     50   4.8e-01   2.2e+00   0.0e+00   1.3e-03
[ Info:     51   2.7e+00   2.2e+00   0.0e+00   6.6e+00
[ Info:     52   4.8e-01   2.2e+00   0.0e+00   1.3e-03
[ Info:     53   2.7e+00   2.2e+00   0.0e+00   6.6e+00
[ Info:     54   4.8e-01   2.2e+00   0.0e+00   1.3e-03
[ Info:     55   2.7e+00   2.2e+00   0.0e+00   6.6e+00
[ Info:     56   4.8e-01   2.2e+00   0.0e+00   1.3e-03
[ Info:     57   2.7e+00   2.2e+00   0.0e+00   6.6e+00
[ Info:     58   4.8e-01   2.2e+00   0.0e+00   1.3e-03
[ Info:     59   2.7e+00   2.2e+00   0.0e+00   6.6e+00
[ Info:     60   4.8e-01   2.2e+00   0.0e+00   1.3e-03
[ Info:   iter       obj      Δobj  violation  kkt_residual  
[ Info:      0   7.0e-01       Inf   0.0e+00   1.3e-03
[ Info:      1   3.0e+05   3.0e+05   0.0e+00   5.7e+04
[ Info:      2   7.0e-01   3.0e+05   0.0e+00   1.3e-03
[ Info:      3   3.1e+04   3.1e+04   0.0e+00   5.8e+03
[ Info:      4   6.2e+02   3.0e+04   0.0e+00   2.0e+02
[ Info:      5   7.6e-01   6.2e+02   0.0e+00   1.3e-03
[ Info:      6   1.3e+03   1.3e+03   0.0e+00   3.3e+02
[ Info:      7   7.1e-01   1.3e+03   0.0e+00   1.3e-03
[ Info:      8   5.0e+02   5.0e+02   0.0e+00   1.7e+02
[ Info:      9   2.1e+01   4.8e+02   0.0e+00   2.6e+01
[ Info:     10   7.3e-01   2.1e+01   0.0e+00   1.3e-03
[ Info:     11   4.6e+01   4.5e+01   0.0e+00   4.0e+01
[ Info:     12   7.1e-01   4.5e+01   0.0e+00   1.3e-03
[ Info:     13   1.7e+01   1.6e+01   0.0e+00   2.3e+01
[ Info:     14   7.0e-01   1.6e+01   0.0e+00   1.3e-03
[ Info:     15   7.8e+00   7.1e+00   0.0e+00   1.5e+01
[ Info:     16   1.1e+00   6.8e+00   0.0e+00   3.2e+00
[ Info:     17   7.1e-01   3.5e-01   0.0e+00   1.3e-03
[ Info:     18   1.7e+00   1.0e+00   0.0e+00   5.4e+00
[ Info:     19   7.0e-01   1.0e+00   0.0e+00   1.3e-03
[ Info:     20   1.7e+00   1.0e+00   0.0e+00   5.4e+00
[ Info:     21   7.0e-01   1.0e+00   0.0e+00   1.3e-03
[ Info:     22   1.7e+00   1.0e+00   0.0e+00   5.4e+00
[ Info:     23   7.0e-01   1.0e+00   0.0e+00   1.3e-03
[ Info:     24   1.7e+00   1.0e+00   0.0e+00   5.4e+00
[ Info:     25   7.0e-01   1.0e+00   0.0e+00   1.3e-03
[ Info:     26   1.7e+00   1.0e+00   0.0e+00   5.4e+00
[ Info:     27   7.0e-01   1.0e+00   0.0e+00   1.3e-03
[ Info:     28   1.7e+00   1.0e+00   0.0e+00   5.4e+00
[ Info:     29   7.0e-01   1.0e+00   0.0e+00   1.3e-03
[ Info:     30   1.7e+00   1.0e+00   0.0e+00   5.4e+00
[ Info:     31   7.0e-01   1.0e+00   0.0e+00   1.3e-03
[ Info:     32   1.7e+00   1.0e+00   0.0e+00   5.4e+00
[ Info:     33   7.0e-01   1.0e+00   0.0e+00   1.3e-03
[ Info:     34   1.7e+00   1.0e+00   0.0e+00   5.4e+00
[ Info:     35   7.0e-01   1.0e+00   0.0e+00   1.3e-03
[ Info:     36   1.7e+00   1.0e+00   0.0e+00   5.4e+00
[ Info:     37   7.0e-01   1.0e+00   0.0e+00   1.3e-03
[ Info:     38   1.7e+00   1.0e+00   0.0e+00   5.4e+00
[ Info:     39   7.0e-01   1.0e+00   0.0e+00   1.3e-03
[ Info:     40   1.7e+00   1.0e+00   0.0e+00   5.4e+00
[ Info:     41   7.0e-01   1.0e+00   0.0e+00   1.3e-03
[ Info:     42   1.7e+00   1.0e+00   0.0e+00   5.4e+00
[ Info:     43   7.0e-01   1.0e+00   0.0e+00   1.3e-03
[ Info:     44   1.7e+00   1.0e+00   0.0e+00   5.4e+00
[ Info:     45   7.0e-01   1.0e+00   0.0e+00   1.3e-03
[ Info:     46   1.7e+00   1.0e+00   0.0e+00   5.4e+00
[ Info:     47   7.0e-01   1.0e+00   0.0e+00   1.3e-03
[ Info:     48   1.7e+00   1.0e+00   0.0e+00   5.4e+00
[ Info:     49   7.0e-01   1.0e+00   0.0e+00   1.3e-03
[ Info:     50   1.7e+00   1.0e+00   0.0e+00   5.4e+00
[ Info:     51   7.0e-01   1.0e+00   0.0e+00   1.3e-03
[ Info:     52   1.7e+00   1.0e+00   0.0e+00   5.4e+00
[ Info:     53   7.0e-01   1.0e+00   0.0e+00   1.3e-03
[ Info:     54   1.7e+00   1.0e+00   0.0e+00   5.4e+00
[ Info:     55   7.0e-01   1.0e+00   0.0e+00   1.3e-03
[ Info:     56   1.7e+00   1.0e+00   0.0e+00   5.4e+00
[ Info:     57   7.0e-01   1.0e+00   0.0e+00   1.3e-03
[ Info:     58   1.7e+00   1.0e+00   0.0e+00   5.4e+00
[ Info:     59   7.0e-01   1.0e+00   0.0e+00   1.3e-03
[ Info:     60   1.7e+00   1.0e+00   0.0e+00   5.4e+00
[ Info:   iter       obj      Δobj  violation  kkt_residual  
[ Info:      0   4.3e+00       Inf   0.0e+00   1.4e+01
[ Info:      1   3.2e-01   4.0e+00   0.0e+00   1.3e-03
[ Info:      2   3.8e+03   3.8e+03   0.0e+00   8.1e+02
[ Info:      3   1.8e-01   3.8e+03   0.0e+00   1.3e-03
[ Info:      4   3.7e+02   3.7e+02   0.0e+00   1.6e+02
[ Info:      5   1.1e-01   3.7e+02   0.0e+00   1.3e-03
[ Info:      6   1.9e+01   1.9e+01   0.0e+00   3.0e+01
[ Info:      7   8.2e-02   1.9e+01   0.0e+00   1.3e-03
[ Info:      8   2.9e-02   5.3e-02   0.0e+00   1.3e-03
[ Info:      9   7.5e+01   7.5e+01   0.0e+00   6.3e+01
[ Info:     10   3.7e-02   7.5e+01   0.0e+00   1.3e-03
[ Info:     11   2.2e+01   2.2e+01   0.0e+00   3.2e+01
[ Info:     12   2.7e-02   2.2e+01   0.0e+00   1.3e-03
[ Info:     13   8.0e+00   8.0e+00   0.0e+00   1.9e+01
[ Info:     14   2.2e-02   8.0e+00   0.0e+00   1.3e-03
[ Info:     15   5.6e+00   5.6e+00   0.0e+00   1.6e+01
[ Info:     16   2.2e-02   5.6e+00   0.0e+00   1.3e-03
[ Info:     17   5.6e+00   5.6e+00   0.0e+00   1.6e+01
[ Info:     18   2.2e-02   5.6e+00   0.0e+00   1.3e-03
[ Info:     19   5.6e+00   5.6e+00   0.0e+00   1.6e+01
[ Info:     20   2.2e-02   5.6e+00   0.0e+00   1.3e-03
[ Info:     21   5.6e+00   5.6e+00   0.0e+00   1.6e+01
[ Info:     22   2.2e-02   5.6e+00   0.0e+00   1.3e-03
[ Info:     23   5.6e+00   5.6e+00   0.0e+00   1.6e+01
[ Info:     24   2.2e-02   5.6e+00   0.0e+00   1.3e-03
[ Info:     25   5.6e+00   5.6e+00   0.0e+00   1.6e+01
[ Info:     26   2.2e-02   5.6e+00   0.0e+00   1.3e-03
[ Info:     27   5.6e+00   5.6e+00   0.0e+00   1.6e+01
[ Info:     28   2.2e-02   5.6e+00   0.0e+00   1.3e-03
[ Info:     29   5.6e+00   5.6e+00   0.0e+00   1.6e+01
[ Info:     30   2.2e-02   5.6e+00   0.0e+00   1.3e-03
[ Info:     31   5.6e+00   5.6e+00   0.0e+00   1.6e+01
[ Info:     32   2.2e-02   5.6e+00   0.0e+00   1.3e-03
[ Info:     33   5.6e+00   5.6e+00   0.0e+00   1.6e+01
[ Info:     34   2.2e-02   5.6e+00   0.0e+00   1.3e-03
[ Info:     35   5.6e+00   5.6e+00   0.0e+00   1.6e+01
[ Info:     36   2.2e-02   5.6e+00   0.0e+00   1.3e-03
[ Info:     37   5.6e+00   5.6e+00   0.0e+00   1.6e+01
[ Info:     38   2.2e-02   5.6e+00   0.0e+00   1.3e-03
[ Info:     39   5.6e+00   5.6e+00   0.0e+00   1.6e+01
[ Info:     40   2.2e-02   5.6e+00   0.0e+00   1.3e-03
[ Info:     41   5.6e+00   5.6e+00   0.0e+00   1.6e+01
[ Info:     42   2.2e-02   5.6e+00   0.0e+00   1.3e-03
[ Info:     43   5.6e+00   5.6e+00   0.0e+00   1.6e+01
[ Info:     44   2.2e-02   5.6e+00   0.0e+00   1.3e-03
[ Info:     45   5.6e+00   5.6e+00   0.0e+00   1.6e+01
[ Info:     46   2.2e-02   5.6e+00   0.0e+00   1.3e-03
[ Info:     47   5.6e+00   5.6e+00   0.0e+00   1.6e+01
[ Info:     48   2.2e-02   5.6e+00   0.0e+00   1.3e-03
[ Info:     49   5.6e+00   5.6e+00   0.0e+00   1.6e+01
[ Info:     50   2.2e-02   5.6e+00   0.0e+00   1.3e-03
[ Info:     51   5.6e+00   5.6e+00   0.0e+00   1.6e+01
[ Info:     52   2.2e-02   5.6e+00   0.0e+00   1.3e-03
[ Info:     53   5.6e+00   5.6e+00   0.0e+00   1.6e+01
[ Info:     54   2.2e-02   5.6e+00   0.0e+00   1.3e-03
[ Info:     55   5.6e+00   5.6e+00   0.0e+00   1.6e+01
[ Info:     56   2.2e-02   5.6e+00   0.0e+00   1.3e-03
[ Info:     57   5.6e+00   5.6e+00   0.0e+00   1.6e+01
[ Info:     58   2.2e-02   5.6e+00   0.0e+00   1.3e-03
[ Info:     59   5.6e+00   5.6e+00   0.0e+00   1.6e+01
[ Info:     60   2.2e-02   5.6e+00   0.0e+00   1.3e-03
[ Info:   iter       obj      Δobj  violation  kkt_residual  
[ Info:      0   7.0e-01       Inf   0.0e+00   1.3e-03
[ Info:      1   6.8e+05   6.8e+05   0.0e+00   1.3e+05
[ Info:      2   7.1e-01   6.8e+05   0.0e+00   1.3e-03
[ Info:      3   7.0e+04   7.0e+04   0.0e+00   1.3e+04
[ Info:      4   1.4e+03   6.8e+04   0.0e+00   4.4e+02
[ Info:      5   7.7e-01   1.4e+03   0.0e+00   1.3e-03
[ Info:      6   2.9e+03   2.9e+03   0.0e+00   7.4e+02
[ Info:      7   7.1e-01   2.9e+03   0.0e+00   1.3e-03
[ Info:      8   1.1e+03   1.1e+03   0.0e+00   3.8e+02
[ Info:      9   4.7e+01   1.1e+03   0.0e+00   5.8e+01
[ Info:     10   7.3e-01   4.6e+01   0.0e+00   1.3e-03
[ Info:     11   1.0e+02   1.0e+02   0.0e+00   9.0e+01
[ Info:     12   7.1e-01   1.0e+02   0.0e+00   1.3e-03
[ Info:     13   3.6e+01   3.6e+01   0.0e+00   5.1e+01
[ Info:     14   7.0e-01   3.6e+01   0.0e+00   1.3e-03
[ Info:     15   1.7e+01   1.6e+01   0.0e+00   3.3e+01
[ Info:     16   1.5e+00   1.5e+01   0.0e+00   7.2e+00
[ Info:     17   7.1e-01   8.1e-01   0.0e+00   1.3e-03
[ Info:     18   3.0e+00   2.3e+00   0.0e+00   1.2e+01
[ Info:     19   7.1e-01   2.3e+00   0.0e+00   1.3e-03
[ Info:     20   3.0e+00   2.3e+00   0.0e+00   1.2e+01
[ Info:     21   7.1e-01   2.3e+00   0.0e+00   1.3e-03
[ Info:     22   3.0e+00   2.3e+00   0.0e+00   1.2e+01
[ Info:     23   7.1e-01   2.3e+00   0.0e+00   1.3e-03
[ Info:     24   3.0e+00   2.3e+00   0.0e+00   1.2e+01
[ Info:     25   7.1e-01   2.3e+00   0.0e+00   1.3e-03
[ Info:     26   3.0e+00   2.3e+00   0.0e+00   1.2e+01
[ Info:     27   7.1e-01   2.3e+00   0.0e+00   1.3e-03
[ Info:     28   3.0e+00   2.3e+00   0.0e+00   1.2e+01
[ Info:     29   7.1e-01   2.3e+00   0.0e+00   1.3e-03
[ Info:     30   3.0e+00   2.3e+00   0.0e+00   1.2e+01
[ Info:     31   7.0e-01   2.3e+00   0.0e+00   1.3e-03
[ Info:     32   3.0e+00   2.3e+00   0.0e+00   1.2e+01
[ Info:     33   7.0e-01   2.3e+00   0.0e+00   1.3e-03
[ Info:     34   3.0e+00   2.3e+00   0.0e+00   1.2e+01
[ Info:     35   7.0e-01   2.3e+00   0.0e+00   1.3e-03
[ Info:     36   3.0e+00   2.3e+00   0.0e+00   1.2e+01
[ Info:     37   7.0e-01   2.3e+00   0.0e+00   1.3e-03
[ Info:     38   3.0e+00   2.3e+00   0.0e+00   1.2e+01
[ Info:     39   7.0e-01   2.3e+00   0.0e+00   1.3e-03
[ Info:     40   3.0e+00   2.3e+00   0.0e+00   1.2e+01
[ Info:     41   7.0e-01   2.3e+00   0.0e+00   1.3e-03
[ Info:     42   3.0e+00   2.3e+00   0.0e+00   1.2e+01
[ Info:     43   7.0e-01   2.3e+00   0.0e+00   1.3e-03
[ Info:     44   3.0e+00   2.3e+00   0.0e+00   1.2e+01
[ Info:     45   7.0e-01   2.3e+00   0.0e+00   1.3e-03
[ Info:     46   3.0e+00   2.3e+00   0.0e+00   1.2e+01
[ Info:     47   7.0e-01   2.3e+00   0.0e+00   1.3e-03
[ Info:     48   3.0e+00   2.3e+00   0.0e+00   1.2e+01
[ Info:     49   7.0e-01   2.3e+00   0.0e+00   1.3e-03
[ Info:     50   3.0e+00   2.3e+00   0.0e+00   1.2e+01
[ Info:     51   7.0e-01   2.3e+00   0.0e+00   1.3e-03
[ Info:     52   3.0e+00   2.3e+00   0.0e+00   1.2e+01
[ Info:     53   7.0e-01   2.3e+00   0.0e+00   1.3e-03
[ Info:     54   3.0e+00   2.3e+00   0.0e+00   1.2e+01
[ Info:     55   7.0e-01   2.3e+00   0.0e+00   1.3e-03
[ Info:     56   3.0e+00   2.3e+00   0.0e+00   1.2e+01
[ Info:     57   7.0e-01   2.3e+00   0.0e+00   1.3e-03
[ Info:     58   3.0e+00   2.3e+00   0.0e+00   1.2e+01
[ Info:     59   7.0e-01   2.3e+00   0.0e+00   1.3e-03
[ Info:     60   3.0e+00   2.3e+00   0.0e+00   1.2e+01
[ Info:   iter       obj      Δobj  violation  kkt_residual  
[ Info:      0   8.7e+00       Inf   0.0e+00   3.0e+01
[ Info:      1  -5.3e-01   9.3e+00   0.0e+00   1.3e-03
[ Info:      2   8.5e+03   8.5e+03   0.0e+00   1.8e+03
[ Info:      3  -6.7e-01   8.5e+03   0.0e+00   1.3e-03
[ Info:      4   8.3e+02   8.3e+02   0.0e+00   3.6e+02
[ Info:      5  -7.3e-01   8.3e+02   0.0e+00   1.3e-03
[ Info:      6   4.3e+01   4.3e+01   0.0e+00   6.7e+01
[ Info:      7  -7.7e-01   4.4e+01   0.0e+00   1.3e-03
[ Info:      8  -8.2e-01   5.3e-02   0.0e+00   1.3e-03
[ Info:      9   1.7e+02   1.7e+02   0.0e+00   1.4e+02
[ Info:     10  -8.1e-01   1.7e+02   0.0e+00   1.3e-03
[ Info:     11   4.9e+01   5.0e+01   0.0e+00   7.2e+01
[ Info:     12  -8.2e-01   5.0e+01   0.0e+00   1.3e-03
[ Info:     13   1.7e+01   1.8e+01   0.0e+00   4.2e+01
[ Info:     14  -8.3e-01   1.8e+01   0.0e+00   1.3e-03
[ Info:     15   1.2e+01   1.2e+01   0.0e+00   3.5e+01
[ Info:     16  -8.3e-01   1.2e+01   0.0e+00   1.3e-03
[ Info:     17   1.2e+01   1.2e+01   0.0e+00   3.5e+01
[ Info:     18  -8.3e-01   1.2e+01   0.0e+00   1.3e-03
[ Info:     19   1.2e+01   1.2e+01   0.0e+00   3.5e+01
[ Info:     20  -8.3e-01   1.2e+01   0.0e+00   1.3e-03
[ Info:     21   1.2e+01   1.2e+01   0.0e+00   3.5e+01
[ Info:     22  -8.3e-01   1.2e+01   0.0e+00   1.3e-03
[ Info:     23   1.2e+01   1.2e+01   0.0e+00   3.5e+01
[ Info:     24  -8.3e-01   1.2e+01   0.0e+00   1.3e-03
[ Info:     25   1.2e+01   1.2e+01   0.0e+00   3.5e+01
[ Info:     26  -8.3e-01   1.2e+01   0.0e+00   1.3e-03
[ Info:     27   1.2e+01   1.2e+01   0.0e+00   3.5e+01
[ Info:     28  -8.3e-01   1.2e+01   0.0e+00   1.3e-03
[ Info:     29   1.2e+01   1.2e+01   0.0e+00   3.5e+01
[ Info:     30  -8.3e-01   1.2e+01   0.0e+00   1.3e-03
[ Info:     31   1.2e+01   1.2e+01   0.0e+00   3.5e+01
[ Info:     32  -8.3e-01   1.2e+01   0.0e+00   1.3e-03
[ Info:     33   1.2e+01   1.2e+01   0.0e+00   3.5e+01
[ Info:     34  -8.3e-01   1.2e+01   0.0e+00   1.3e-03
[ Info:     35   1.2e+01   1.2e+01   0.0e+00   3.5e+01
[ Info:     36  -8.3e-01   1.2e+01   0.0e+00   1.3e-03
[ Info:     37   1.2e+01   1.2e+01   0.0e+00   3.5e+01
[ Info:     38  -8.3e-01   1.2e+01   0.0e+00   1.3e-03
[ Info:     39   1.2e+01   1.2e+01   0.0e+00   3.5e+01
[ Info:     40  -8.3e-01   1.2e+01   0.0e+00   1.3e-03
[ Info:     41   1.2e+01   1.2e+01   0.0e+00   3.5e+01
[ Info:     42  -8.3e-01   1.2e+01   0.0e+00   1.3e-03
[ Info:     43   1.2e+01   1.2e+01   0.0e+00   3.5e+01
[ Info:     44  -8.3e-01   1.2e+01   0.0e+00   1.3e-03
[ Info:     45   1.2e+01   1.2e+01   0.0e+00   3.5e+01
[ Info:     46  -8.3e-01   1.2e+01   0.0e+00   1.3e-03
[ Info:     47   1.2e+01   1.2e+01   0.0e+00   3.5e+01
[ Info:     48  -8.3e-01   1.2e+01   0.0e+00   1.3e-03
[ Info:     49   1.2e+01   1.2e+01   0.0e+00   3.5e+01
[ Info:     50  -8.3e-01   1.2e+01   0.0e+00   1.3e-03
[ Info:     51   1.2e+01   1.2e+01   0.0e+00   3.5e+01
[ Info:     52  -8.3e-01   1.2e+01   0.0e+00   1.3e-03
[ Info:     53   1.2e+01   1.2e+01   0.0e+00   3.5e+01
[ Info:     54  -8.3e-01   1.2e+01   0.0e+00   1.3e-03
[ Info:     55   1.2e+01   1.2e+01   0.0e+00   3.5e+01
[ Info:     56  -8.3e-01   1.2e+01   0.0e+00   1.3e-03
[ Info:     57   1.2e+01   1.2e+01   0.0e+00   3.5e+01
[ Info:     58  -8.3e-01   1.2e+01   0.0e+00   1.3e-03
[ Info:     59   1.2e+01   1.2e+01   0.0e+00   3.5e+01
[ Info:     60  -8.3e-01   1.2e+01   0.0e+00   1.3e-03
[ Info:   iter       obj      Δobj  violation  kkt_residual  
[ Info:      0   7.0e-01       Inf   0.0e+00   1.3e-03
[ Info:      1   1.5e+06   1.5e+06   0.0e+00   2.9e+05
[ Info:      2   7.1e-01   1.5e+06   0.0e+00   1.3e-03
[ Info:      3   1.6e+05   1.6e+05   0.0e+00   3.0e+04
[ Info:      4   3.2e+03   1.5e+05   0.0e+00   9.9e+02
[ Info:      5   7.7e-01   3.2e+03   0.0e+00   1.3e-03
[ Info:      6   6.6e+03   6.6e+03   0.0e+00   1.7e+03
[ Info:      7   7.1e-01   6.6e+03   0.0e+00   1.3e-03
[ Info:      8   2.5e+03   2.5e+03   0.0e+00   8.6e+02
[ Info:      9   1.0e+02   2.4e+03   0.0e+00   1.3e+02
[ Info:     10   7.3e-01   1.0e+02   0.0e+00   1.3e-03
[ Info:     11   2.3e+02   2.3e+02   0.0e+00   2.0e+02
[ Info:     12   7.1e-01   2.3e+02   0.0e+00   1.3e-03
[ Info:     13   8.1e+01   8.0e+01   0.0e+00   1.1e+02
[ Info:     14   7.0e-01   8.0e+01   0.0e+00   1.3e-03
[ Info:     15   3.7e+01   3.6e+01   0.0e+00   7.5e+01
[ Info:     16   2.5e+00   3.4e+01   0.0e+00   1.6e+01
[ Info:     17   7.1e-01   1.8e+00   0.0e+00   1.3e-03
[ Info:     18   5.9e+00   5.1e+00   0.0e+00   2.7e+01
[ Info:     19   7.1e-01   5.2e+00   0.0e+00   1.3e-03
[ Info:     20   5.9e+00   5.2e+00   0.0e+00   2.7e+01
[ Info:     21   7.1e-01   5.2e+00   0.0e+00   1.3e-03
[ Info:     22   5.9e+00   5.2e+00   0.0e+00   2.7e+01
[ Info:     23   7.1e-01   5.2e+00   0.0e+00   1.3e-03
[ Info:     24   5.9e+00   5.2e+00   0.0e+00   2.7e+01
[ Info:     25   7.1e-01   5.2e+00   0.0e+00   1.3e-03
[ Info:     26   5.9e+00   5.2e+00   0.0e+00   2.7e+01
[ Info:     27   7.1e-01   5.2e+00   0.0e+00   1.3e-03
[ Info:     28   5.9e+00   5.2e+00   0.0e+00   2.7e+01
[ Info:     29   7.1e-01   5.2e+00   0.0e+00   1.3e-03
[ Info:     30   5.9e+00   5.2e+00   0.0e+00   2.7e+01
[ Info:     31   7.1e-01   5.2e+00   0.0e+00   1.3e-03
[ Info:     32   5.9e+00   5.2e+00   0.0e+00   2.7e+01
[ Info:     33   7.1e-01   5.2e+00   0.0e+00   1.3e-03
[ Info:     34   5.9e+00   5.2e+00   0.0e+00   2.7e+01
[ Info:     35   7.1e-01   5.2e+00   0.0e+00   1.3e-03
[ Info:     36   5.9e+00   5.2e+00   0.0e+00   2.7e+01
[ Info:     37   7.1e-01   5.2e+00   0.0e+00   1.3e-03
[ Info:     38   5.9e+00   5.2e+00   0.0e+00   2.7e+01
[ Info:     39   7.1e-01   5.2e+00   0.0e+00   1.3e-03
[ Info:     40   5.9e+00   5.2e+00   0.0e+00   2.7e+01
[ Info:     41   7.1e-01   5.2e+00   0.0e+00   1.3e-03
[ Info:     42   5.9e+00   5.2e+00   0.0e+00   2.7e+01
[ Info:     43   7.1e-01   5.2e+00   0.0e+00   1.3e-03
[ Info:     44   5.9e+00   5.2e+00   0.0e+00   2.7e+01
[ Info:     45   7.1e-01   5.2e+00   0.0e+00   1.3e-03
[ Info:     46   5.9e+00   5.2e+00   0.0e+00   2.7e+01
[ Info:     47   7.1e-01   5.2e+00   0.0e+00   1.3e-03
[ Info:     48   5.9e+00   5.2e+00   0.0e+00   2.7e+01
[ Info:     49   7.1e-01   5.2e+00   0.0e+00   1.3e-03
[ Info:     50   5.9e+00   5.2e+00   0.0e+00   2.7e+01
[ Info:     51   7.1e-01   5.2e+00   0.0e+00   1.3e-03
[ Info:     52   5.9e+00   5.2e+00   0.0e+00   2.7e+01
[ Info:     53   7.1e-01   5.2e+00   0.0e+00   1.3e-03
[ Info:     54   5.9e+00   5.2e+00   0.0e+00   2.7e+01
[ Info:     55   7.1e-01   5.2e+00   0.0e+00   1.3e-03
[ Info:     56   5.9e+00   5.2e+00   0.0e+00   2.7e+01
[ Info:     57   7.1e-01   5.2e+00   0.0e+00   1.3e-03
[ Info:     58   5.9e+00   5.2e+00   0.0e+00   2.7e+01
[ Info:     59   7.1e-01   5.2e+00   0.0e+00   1.3e-03
[ Info:     60   5.9e+00   5.2e+00   0.0e+00   2.7e+01
[ Info:   iter       obj      Δobj  violation  kkt_residual  
[ Info:      0   1.9e+01       Inf   0.0e+00   6.8e+01
[ Info:      1  -2.4e+00   2.1e+01   0.0e+00   1.3e-03
[ Info:      2   1.9e+04   1.9e+04   0.0e+00   4.1e+03
[ Info:      3  -2.6e+00   1.9e+04   0.0e+00   1.3e-03
[ Info:      4   1.9e+03   1.9e+03   0.0e+00   8.1e+02
[ Info:      5  -2.6e+00   1.9e+03   0.0e+00   1.3e-03
[ Info:      6   9.5e+01   9.8e+01   0.0e+00   1.5e+02
[ Info:      7  -2.7e+00   9.8e+01   0.0e+00   1.3e-03
[ Info:      8  -2.7e+00   5.3e-02   0.0e+00   1.3e-03
[ Info:      9   3.8e+02   3.8e+02   0.0e+00   3.2e+02
[ Info:     10  -2.7e+00   3.8e+02   0.0e+00   1.3e-03
[ Info:     11   1.1e+02   1.1e+02   0.0e+00   1.6e+02
[ Info:     12  -2.7e+00   1.1e+02   0.0e+00   1.3e-03
[ Info:     13   3.8e+01   4.0e+01   0.0e+00   9.5e+01
[ Info:     14  -2.7e+00   4.0e+01   0.0e+00   1.3e-03
[ Info:     15   2.5e+01   2.8e+01   0.0e+00   7.9e+01
[ Info:     16  -2.7e+00   2.8e+01   0.0e+00   1.3e-03
[ Info:     17   2.5e+01   2.8e+01   0.0e+00   7.9e+01
[ Info:     18  -2.7e+00   2.8e+01   0.0e+00   1.3e-03
[ Info:     19   2.5e+01   2.8e+01   0.0e+00   7.9e+01
[ Info:     20  -2.7e+00   2.8e+01   0.0e+00   1.3e-03
[ Info:     21   2.5e+01   2.8e+01   0.0e+00   7.9e+01
[ Info:     22  -2.7e+00   2.8e+01   0.0e+00   1.3e-03
[ Info:     23   2.5e+01   2.8e+01   0.0e+00   7.9e+01
[ Info:     24  -2.7e+00   2.8e+01   0.0e+00   1.3e-03
[ Info:     25   2.5e+01   2.8e+01   0.0e+00   7.9e+01
[ Info:     26  -2.7e+00   2.8e+01   0.0e+00   1.3e-03
[ Info:     27   2.5e+01   2.8e+01   0.0e+00   7.9e+01
[ Info:     28  -2.7e+00   2.8e+01   0.0e+00   1.3e-03
[ Info:     29   2.5e+01   2.8e+01   0.0e+00   7.9e+01
[ Info:     30  -2.7e+00   2.8e+01   0.0e+00   1.3e-03
[ Info:     31   2.5e+01   2.8e+01   0.0e+00   7.9e+01
[ Info:     32  -2.7e+00   2.8e+01   0.0e+00   1.3e-03
[ Info:     33   2.5e+01   2.8e+01   0.0e+00   7.9e+01
[ Info:     34  -2.7e+00   2.8e+01   0.0e+00   1.3e-03
[ Info:     35   2.5e+01   2.8e+01   0.0e+00   7.9e+01
[ Info:     36  -2.7e+00   2.8e+01   0.0e+00   1.3e-03
[ Info:     37   2.5e+01   2.8e+01   0.0e+00   7.9e+01
[ Info:     38  -2.7e+00   2.8e+01   0.0e+00   1.3e-03
[ Info:     39   2.5e+01   2.8e+01   0.0e+00   7.9e+01
[ Info:     40  -2.7e+00   2.8e+01   0.0e+00   1.3e-03
[ Info:     41   2.5e+01   2.8e+01   0.0e+00   7.9e+01
[ Info:     42  -2.7e+00   2.8e+01   0.0e+00   1.3e-03
[ Info:     43   2.5e+01   2.8e+01   0.0e+00   7.9e+01
[ Info:     44  -2.7e+00   2.8e+01   0.0e+00   1.3e-03
[ Info:     45   2.5e+01   2.8e+01   0.0e+00   7.9e+01
[ Info:     46  -2.7e+00   2.8e+01   0.0e+00   1.3e-03
[ Info:     47   2.5e+01   2.8e+01   0.0e+00   7.9e+01
[ Info:     48  -2.7e+00   2.8e+01   0.0e+00   1.3e-03
[ Info:     49   2.5e+01   2.8e+01   0.0e+00   7.9e+01
[ Info:     50  -2.7e+00   2.8e+01   0.0e+00   1.3e-03
[ Info:     51   2.5e+01   2.8e+01   0.0e+00   7.9e+01
[ Info:     52  -2.7e+00   2.8e+01   0.0e+00   1.3e-03
[ Info:     53   2.5e+01   2.8e+01   0.0e+00   7.9e+01
[ Info:     54  -2.7e+00   2.8e+01   0.0e+00   1.3e-03
[ Info:     55   2.5e+01   2.8e+01   0.0e+00   7.9e+01
[ Info:     56  -2.7e+00   2.8e+01   0.0e+00   1.3e-03
[ Info:     57   2.5e+01   2.8e+01   0.0e+00   7.9e+01
[ Info:     58  -2.7e+00   2.8e+01   0.0e+00   1.3e-03
[ Info:     59   2.5e+01   2.8e+01   0.0e+00   7.9e+01
[ Info:     60  -2.7e+00   2.8e+01   0.0e+00   1.3e-03
[ Info:   iter       obj      Δobj  violation  kkt_residual  
[ Info:      0   7.1e-01       Inf   0.0e+00   1.3e-03
[ Info:      1   3.4e+06   3.4e+06   0.0e+00   6.5e+05
[ Info:      2   7.1e-01   3.4e+06   0.0e+00   1.3e-03
[ Info:      3   3.5e+05   3.5e+05   0.0e+00   6.6e+04
[ Info:      4   7.1e+03   3.5e+05   0.0e+00   2.2e+03
[ Info:      5   7.7e-01   7.1e+03   0.0e+00   1.3e-03
[ Info:      6   1.5e+04   1.5e+04   0.0e+00   3.8e+03
[ Info:      7   7.1e-01   1.5e+04   0.0e+00   1.3e-03
[ Info:      8   5.7e+03   5.7e+03   0.0e+00   1.9e+03
[ Info:      9   2.4e+02   5.4e+03   0.0e+00   3.0e+02
[ Info:     10   7.3e-01   2.3e+02   0.0e+00   1.3e-03
[ Info:     11   5.2e+02   5.2e+02   0.0e+00   4.6e+02
[ Info:     12   7.1e-01   5.2e+02   0.0e+00   1.3e-03
[ Info:     13   1.8e+02   1.8e+02   0.0e+00   2.6e+02
[ Info:     14   7.0e-01   1.8e+02   0.0e+00   1.3e-03
[ Info:     15   8.2e+01   8.1e+01   0.0e+00   1.7e+02
[ Info:     16   4.8e+00   7.7e+01   0.0e+00   3.6e+01
[ Info:     17   7.1e-01   4.1e+00   0.0e+00   1.3e-03
[ Info:     18   1.2e+01   1.2e+01   0.0e+00   6.2e+01
[ Info:     19   7.1e-01   1.2e+01   0.0e+00   1.3e-03
[ Info:     20   1.2e+01   1.2e+01   0.0e+00   6.2e+01
[ Info:     21   7.1e-01   1.2e+01   0.0e+00   1.3e-03
[ Info:     22   1.2e+01   1.2e+01   0.0e+00   6.2e+01
[ Info:     23   7.1e-01   1.2e+01   0.0e+00   1.3e-03
[ Info:     24   1.2e+01   1.2e+01   0.0e+00   6.2e+01
[ Info:     25   7.1e-01   1.2e+01   0.0e+00   1.3e-03
[ Info:     26   1.2e+01   1.2e+01   0.0e+00   6.2e+01
[ Info:     27   7.1e-01   1.2e+01   0.0e+00   1.3e-03
[ Info:     28   1.2e+01   1.2e+01   0.0e+00   6.2e+01
[ Info:     29   7.1e-01   1.2e+01   0.0e+00   1.3e-03
[ Info:     30   1.2e+01   1.2e+01   0.0e+00   6.2e+01
[ Info:     31   7.1e-01   1.2e+01   0.0e+00   1.3e-03
[ Info:     32   1.2e+01   1.2e+01   0.0e+00   6.2e+01
[ Info:     33   7.1e-01   1.2e+01   0.0e+00   1.3e-03
[ Info:     34   1.2e+01   1.2e+01   0.0e+00   6.2e+01
[ Info:     35   7.1e-01   1.2e+01   0.0e+00   1.3e-03
[ Info:     36   1.2e+01   1.2e+01   0.0e+00   6.2e+01
[ Info:     37   7.1e-01   1.2e+01   0.0e+00   1.3e-03
[ Info:     38   1.2e+01   1.2e+01   0.0e+00   6.2e+01
[ Info:     39   7.1e-01   1.2e+01   0.0e+00   1.3e-03
[ Info:     40   1.2e+01   1.2e+01   0.0e+00   6.2e+01
[ Info:     41   7.1e-01   1.2e+01   0.0e+00   1.3e-03
[ Info:     42   1.2e+01   1.2e+01   0.0e+00   6.2e+01
[ Info:     43   7.1e-01   1.2e+01   0.0e+00   1.3e-03
[ Info:     44   1.2e+01   1.2e+01   0.0e+00   6.2e+01
[ Info:     45   7.1e-01   1.2e+01   0.0e+00   1.3e-03
[ Info:     46   1.2e+01   1.2e+01   0.0e+00   6.2e+01
[ Info:     47   7.1e-01   1.2e+01   0.0e+00   1.3e-03
[ Info:     48   1.2e+01   1.2e+01   0.0e+00   6.2e+01
[ Info:     49   7.1e-01   1.2e+01   0.0e+00   1.3e-03
[ Info:     50   1.2e+01   1.2e+01   0.0e+00   6.2e+01
[ Info:     51   7.1e-01   1.2e+01   0.0e+00   1.3e-03
[ Info:     52   1.2e+01   1.2e+01   0.0e+00   6.2e+01
[ Info:     53   7.1e-01   1.2e+01   0.0e+00   1.3e-03
[ Info:     54   1.2e+01   1.2e+01   0.0e+00   6.2e+01
[ Info:     55   7.1e-01   1.2e+01   0.0e+00   1.3e-03
[ Info:     56   1.2e+01   1.2e+01   0.0e+00   6.2e+01
[ Info:     57   7.1e-01   1.2e+01   0.0e+00   1.3e-03
[ Info:     58   1.2e+01   1.2e+01   0.0e+00   6.2e+01
[ Info:     59   7.1e-01   1.2e+01   0.0e+00   1.3e-03
[ Info:     60   1.2e+01   1.2e+01   0.0e+00   6.2e+01
[ Info:   iter       obj      Δobj  violation  kkt_residual  
[ Info:      0   4.1e+01       Inf   0.0e+00   1.5e+02
[ Info:      1  -6.7e+00   4.8e+01   0.0e+00   1.3e-03
[ Info:      2   4.3e+04   4.3e+04   0.0e+00   9.2e+03
[ Info:      3  -6.9e+00   4.3e+04   0.0e+00   1.3e-03
[ Info:      4   4.2e+03   4.2e+03   0.0e+00   1.8e+03
[ Info:      5  -6.9e+00   4.2e+03   0.0e+00   1.3e-03
[ Info:      6   2.1e+02   2.2e+02   0.0e+00   3.4e+02
[ Info:      7  -7.0e+00   2.2e+02   0.0e+00   1.3e-03
[ Info:      8  -7.0e+00   5.3e-02   0.0e+00   1.3e-03
[ Info:      9   8.5e+02   8.6e+02   0.0e+00   7.1e+02
[ Info:     10  -7.0e+00   8.6e+02   0.0e+00   1.3e-03
[ Info:     11   2.4e+02   2.5e+02   0.0e+00   3.7e+02
[ Info:     12  -7.0e+00   2.5e+02   0.0e+00   1.3e-03
[ Info:     13   8.4e+01   9.1e+01   0.0e+00   2.1e+02
[ Info:     14  -7.0e+00   9.1e+01   0.0e+00   1.3e-03
[ Info:     15   5.6e+01   6.3e+01   0.0e+00   1.8e+02
[ Info:     16  -7.0e+00   6.3e+01   0.0e+00   1.3e-03
[ Info:     17   5.6e+01   6.3e+01   0.0e+00   1.8e+02
[ Info:     18  -7.0e+00   6.3e+01   0.0e+00   1.3e-03
[ Info:     19   5.6e+01   6.3e+01   0.0e+00   1.8e+02
[ Info:     20  -7.0e+00   6.3e+01   0.0e+00   1.3e-03
[ Info:     21   5.6e+01   6.3e+01   0.0e+00   1.8e+02
[ Info:     22  -7.0e+00   6.3e+01   0.0e+00   1.3e-03
[ Info:     23   5.6e+01   6.3e+01   0.0e+00   1.8e+02
[ Info:     24  -7.0e+00   6.3e+01   0.0e+00   1.3e-03
[ Info:     25   5.6e+01   6.3e+01   0.0e+00   1.8e+02
[ Info:     26  -7.0e+00   6.3e+01   0.0e+00   1.3e-03
[ Info:     27   5.6e+01   6.3e+01   0.0e+00   1.8e+02
[ Info:     28  -7.0e+00   6.3e+01   0.0e+00   1.3e-03
[ Info:     29   5.6e+01   6.3e+01   0.0e+00   1.8e+02
[ Info:     30  -7.0e+00   6.3e+01   0.0e+00   1.3e-03
[ Info:     31   5.6e+01   6.3e+01   0.0e+00   1.8e+02
[ Info:     32  -7.0e+00   6.3e+01   0.0e+00   1.3e-03
[ Info:     33   5.6e+01   6.3e+01   0.0e+00   1.8e+02
[ Info:     34  -7.0e+00   6.3e+01   0.0e+00   1.3e-03
[ Info:     35   5.6e+01   6.3e+01   0.0e+00   1.8e+02
[ Info:     36  -7.0e+00   6.3e+01   0.0e+00   1.3e-03
[ Info:     37   5.6e+01   6.3e+01   0.0e+00   1.8e+02
[ Info:     38  -7.0e+00   6.3e+01   0.0e+00   1.3e-03
[ Info:     39   5.6e+01   6.3e+01   0.0e+00   1.8e+02
[ Info:     40  -7.0e+00   6.3e+01   0.0e+00   1.3e-03
[ Info:     41   5.6e+01   6.3e+01   0.0e+00   1.8e+02
[ Info:     42  -7.0e+00   6.3e+01   0.0e+00   1.3e-03
[ Info:     43   5.6e+01   6.3e+01   0.0e+00   1.8e+02
[ Info:     44  -7.0e+00   6.3e+01   0.0e+00   1.3e-03
[ Info:     45   5.6e+01   6.3e+01   0.0e+00   1.8e+02
[ Info:     46  -7.0e+00   6.3e+01   0.0e+00   1.3e-03
[ Info:     47   5.6e+01   6.3e+01   0.0e+00   1.8e+02
[ Info:     48  -7.0e+00   6.3e+01   0.0e+00   1.3e-03
[ Info:     49   5.6e+01   6.3e+01   0.0e+00   1.8e+02
[ Info:     50  -7.0e+00   6.3e+01   0.0e+00   1.3e-03
[ Info:     51   5.6e+01   6.3e+01   0.0e+00   1.8e+02
[ Info:     52  -7.0e+00   6.3e+01   0.0e+00   1.3e-03
[ Info:     53   5.6e+01   6.3e+01   0.0e+00   1.8e+02
[ Info:     54  -7.0e+00   6.3e+01   0.0e+00   1.3e-03
[ Info:     55   5.6e+01   6.3e+01   0.0e+00   1.8e+02
[ Info:     56  -7.0e+00   6.3e+01   0.0e+00   1.3e-03
[ Info:     57   5.6e+01   6.3e+01   0.0e+00   1.8e+02
[ Info:     58  -7.0e+00   6.3e+01   0.0e+00   1.3e-03
[ Info:     59   5.6e+01   6.3e+01   0.0e+00   1.8e+02
[ Info:     60  -7.0e+00   6.3e+01   0.0e+00   1.3e-03
[ Info:   iter       obj      Δobj  violation  kkt_residual  
[ Info:      0   7.1e-01       Inf   0.0e+00   1.3e-03
[ Info:      1   7.7e+06   7.7e+06   0.0e+00   1.5e+06
[ Info:      2   7.1e-01   7.7e+06   0.0e+00   1.3e-03
[ Info:      3   7.9e+05   7.9e+05   0.0e+00   1.5e+05
[ Info:      4   1.6e+04   7.8e+05   0.0e+00   5.0e+03
[ Info:      5   7.7e-01   1.6e+04   0.0e+00   1.3e-03
[ Info:      6   3.3e+04   3.3e+04   0.0e+00   8.5e+03
[ Info:      7   7.1e-01   3.3e+04   0.0e+00   1.3e-03
[ Info:      8   1.3e+04   1.3e+04   0.0e+00   4.3e+03
[ Info:      9   5.3e+02   1.2e+04   0.0e+00   6.6e+02
[ Info:     10   7.3e-01   5.3e+02   0.0e+00   1.3e-03
[ Info:     11   1.2e+03   1.2e+03   0.0e+00   1.0e+03
[ Info:     12   7.1e-01   1.2e+03   0.0e+00   1.3e-03
[ Info:     13   4.1e+02   4.1e+02   0.0e+00   5.8e+02
[ Info:     14   7.0e-01   4.1e+02   0.0e+00   1.3e-03
[ Info:     15   1.8e+02   1.8e+02   0.0e+00   3.8e+02
[ Info:     16   1.0e+01   1.7e+02   0.0e+00   8.2e+01
[ Info:     17   7.1e-01   9.3e+00   0.0e+00   1.3e-03
[ Info:     18   2.7e+01   2.6e+01   0.0e+00   1.4e+02
[ Info:     19   7.1e-01   2.6e+01   0.0e+00   1.3e-03
[ Info:     20   2.7e+01   2.6e+01   0.0e+00   1.4e+02
[ Info:     21   7.1e-01   2.6e+01   0.0e+00   1.3e-03
[ Info:     22   2.7e+01   2.6e+01   0.0e+00   1.4e+02
[ Info:     23   7.1e-01   2.6e+01   0.0e+00   1.3e-03
[ Info:     24   2.7e+01   2.6e+01   0.0e+00   1.4e+02
[ Info:     25   7.1e-01   2.6e+01   0.0e+00   1.3e-03
[ Info:     26   2.7e+01   2.6e+01   0.0e+00   1.4e+02
[ Info:     27   7.1e-01   2.6e+01   0.0e+00   1.3e-03
[ Info:     28   2.7e+01   2.6e+01   0.0e+00   1.4e+02
[ Info:     29   7.1e-01   2.6e+01   0.0e+00   1.3e-03
[ Info:     30   2.7e+01   2.6e+01   0.0e+00   1.4e+02
[ Info:     31   7.1e-01   2.6e+01   0.0e+00   1.3e-03
[ Info:     32   2.7e+01   2.6e+01   0.0e+00   1.4e+02
[ Info:     33   7.1e-01   2.6e+01   0.0e+00   1.3e-03
[ Info:     34   2.7e+01   2.6e+01   0.0e+00   1.4e+02
[ Info:     35   7.1e-01   2.6e+01   0.0e+00   1.3e-03
[ Info:     36   2.7e+01   2.6e+01   0.0e+00   1.4e+02
[ Info:     37   7.1e-01   2.6e+01   0.0e+00   1.3e-03
[ Info:     38   2.7e+01   2.6e+01   0.0e+00   1.4e+02
[ Info:     39   7.1e-01   2.6e+01   0.0e+00   1.3e-03
[ Info:     40   2.7e+01   2.6e+01   0.0e+00   1.4e+02
[ Info:     41   7.1e-01   2.6e+01   0.0e+00   1.3e-03
[ Info:     42   2.7e+01   2.6e+01   0.0e+00   1.4e+02
[ Info:     43   7.1e-01   2.6e+01   0.0e+00   1.3e-03
[ Info:     44   2.7e+01   2.6e+01   0.0e+00   1.4e+02
[ Info:     45   7.1e-01   2.6e+01   0.0e+00   1.3e-03
[ Info:     46   2.7e+01   2.6e+01   0.0e+00   1.4e+02
[ Info:     47   7.1e-01   2.6e+01   0.0e+00   1.3e-03
[ Info:     48   2.7e+01   2.6e+01   0.0e+00   1.4e+02
[ Info:     49   7.1e-01   2.6e+01   0.0e+00   1.3e-03
[ Info:     50   2.7e+01   2.6e+01   0.0e+00   1.4e+02
[ Info:     51   7.1e-01   2.6e+01   0.0e+00   1.3e-03
[ Info:     52   2.7e+01   2.6e+01   0.0e+00   1.4e+02
[ Info:     53   7.1e-01   2.6e+01   0.0e+00   1.3e-03
[ Info:     54   2.7e+01   2.6e+01   0.0e+00   1.4e+02
[ Info:     55   7.1e-01   2.6e+01   0.0e+00   1.3e-03
[ Info:     56   2.7e+01   2.6e+01   0.0e+00   1.4e+02
[ Info:     57   7.1e-01   2.6e+01   0.0e+00   1.3e-03
[ Info:     58   2.7e+01   2.6e+01   0.0e+00   1.4e+02
[ Info:     59   7.1e-01   2.6e+01   0.0e+00   1.3e-03
[ Info:     60   2.7e+01   2.6e+01   0.0e+00   1.4e+02
[ Info:   iter       obj      Δobj  violation  kkt_residual  
[ Info:      0   9.2e+01       Inf   0.0e+00   3.5e+02
[ Info:      1  -1.6e+01   1.1e+02   0.0e+00   1.3e-03
[ Info:      2   9.6e+04   9.6e+04   0.0e+00   2.1e+04
[ Info:      3  -1.7e+01   9.6e+04   0.0e+00   1.3e-03
[ Info:      4   9.4e+03   9.4e+03   0.0e+00   4.1e+03
[ Info:      5  -1.7e+01   9.4e+03   0.0e+00   1.3e-03
[ Info:      6   4.8e+02   5.0e+02   0.0e+00   7.7e+02
[ Info:      7  -1.7e+01   5.0e+02   0.0e+00   1.3e-03
[ Info:      8  -1.7e+01   5.3e-02   0.0e+00   1.3e-03
[ Info:      9   1.9e+03   1.9e+03   0.0e+00   1.6e+03
[ Info:     10  -1.7e+01   1.9e+03   0.0e+00   1.3e-03
[ Info:     11   5.5e+02   5.7e+02   0.0e+00   8.2e+02
[ Info:     12  -1.7e+01   5.7e+02   0.0e+00   1.3e-03
[ Info:     13   1.9e+02   2.1e+02   0.0e+00   4.8e+02
[ Info:     14  -1.7e+01   2.1e+02   0.0e+00   1.3e-03
[ Info:     15   1.3e+02   1.4e+02   0.0e+00   4.0e+02
[ Info:     16  -1.7e+01   1.4e+02   0.0e+00   1.3e-03
[ Info:     17   1.3e+02   1.4e+02   0.0e+00   4.0e+02
[ Info:     18  -1.7e+01   1.4e+02   0.0e+00   1.3e-03
[ Info:     19   1.3e+02   1.4e+02   0.0e+00   4.0e+02
[ Info:     20  -1.7e+01   1.4e+02   0.0e+00   1.3e-03
[ Info:     21   1.3e+02   1.4e+02   0.0e+00   4.0e+02
[ Info:     22  -1.7e+01   1.4e+02   0.0e+00   1.3e-03
[ Info:     23   1.3e+02   1.4e+02   0.0e+00   4.0e+02
[ Info:     24  -1.7e+01   1.4e+02   0.0e+00   1.3e-03
[ Info:     25   1.3e+02   1.4e+02   0.0e+00   4.0e+02
[ Info:     26  -1.7e+01   1.4e+02   0.0e+00   1.3e-03
[ Info:     27   1.3e+02   1.4e+02   0.0e+00   4.0e+02
[ Info:     28  -1.7e+01   1.4e+02   0.0e+00   1.3e-03
[ Info:     29   1.3e+02   1.4e+02   0.0e+00   4.0e+02
[ Info:     30  -1.7e+01   1.4e+02   0.0e+00   1.3e-03
[ Info:     31   1.3e+02   1.4e+02   0.0e+00   4.0e+02
[ Info:     32  -1.7e+01   1.4e+02   0.0e+00   1.3e-03
[ Info:     33   1.3e+02   1.4e+02   0.0e+00   4.0e+02
[ Info:     34  -1.7e+01   1.4e+02   0.0e+00   1.3e-03
[ Info:     35   1.3e+02   1.4e+02   0.0e+00   4.0e+02
[ Info:     36  -1.7e+01   1.4e+02   0.0e+00   1.3e-03
[ Info:     37   1.3e+02   1.4e+02   0.0e+00   4.0e+02
[ Info:     38  -1.7e+01   1.4e+02   0.0e+00   1.3e-03
[ Info:     39   1.3e+02   1.4e+02   0.0e+00   4.0e+02
[ Info:     40  -1.7e+01   1.4e+02   0.0e+00   1.3e-03
[ Info:     41   1.3e+02   1.4e+02   0.0e+00   4.0e+02
[ Info:     42  -1.7e+01   1.4e+02   0.0e+00   1.3e-03
[ Info:     43   1.3e+02   1.4e+02   0.0e+00   4.0e+02
[ Info:     44  -1.7e+01   1.4e+02   0.0e+00   1.3e-03
[ Info:     45   1.3e+02   1.4e+02   0.0e+00   4.0e+02
[ Info:     46  -1.7e+01   1.4e+02   0.0e+00   1.3e-03
[ Info:     47   1.3e+02   1.4e+02   0.0e+00   4.0e+02
[ Info:     48  -1.7e+01   1.4e+02   0.0e+00   1.3e-03
[ Info:     49   1.3e+02   1.4e+02   0.0e+00   4.0e+02
[ Info:     50  -1.7e+01   1.4e+02   0.0e+00   1.3e-03
[ Info:     51   1.3e+02   1.4e+02   0.0e+00   4.0e+02
[ Info:     52  -1.7e+01   1.4e+02   0.0e+00   1.3e-03
[ Info:     53   1.3e+02   1.4e+02   0.0e+00   4.0e+02
[ Info:     54  -1.7e+01   1.4e+02   0.0e+00   1.3e-03
[ Info:     55   1.3e+02   1.4e+02   0.0e+00   4.0e+02
[ Info:     56  -1.7e+01   1.4e+02   0.0e+00   1.3e-03
[ Info:     57   1.3e+02   1.4e+02   0.0e+00   4.0e+02
[ Info:     58  -1.7e+01   1.4e+02   0.0e+00   1.3e-03
[ Info:     59   1.3e+02   1.4e+02   0.0e+00   4.0e+02
[ Info:     60  -1.7e+01   1.4e+02   0.0e+00   1.3e-03
[ Info:   iter       obj      Δobj  violation  kkt_residual  
[ Info:      0   7.1e-01       Inf   0.0e+00   1.3e-03
[ Info:      1   1.7e+07   1.7e+07   0.0e+00   3.3e+06
[ Info:      2   7.1e-01   1.7e+07   0.0e+00   1.3e-03
[ Info:      3   1.8e+06   1.8e+06   0.0e+00   3.4e+05
[ Info:      4   3.6e+04   1.7e+06   0.0e+00   1.1e+04
[ Info:      5   7.7e-01   3.6e+04   0.0e+00   1.3e-03
[ Info:      6   7.5e+04   7.5e+04   0.0e+00   1.9e+04
[ Info:      7   7.1e-01   7.5e+04   0.0e+00   1.3e-03
[ Info:      8   2.9e+04   2.9e+04   0.0e+00   9.8e+03
[ Info:      9   1.2e+03   2.8e+04   0.0e+00   1.5e+03
[ Info:     10   7.3e-01   1.2e+03   0.0e+00   1.3e-03
[ Info:     11   2.6e+03   2.6e+03   0.0e+00   2.3e+03
[ Info:     12   7.1e-01   2.6e+03   0.0e+00   1.3e-03
[ Info:     13   9.1e+02   9.1e+02   0.0e+00   1.3e+03
[ Info:     14   7.0e-01   9.1e+02   0.0e+00   1.3e-03
[ Info:     15   4.1e+02   4.1e+02   0.0e+00   8.5e+02
[ Info:     16   2.2e+01   3.9e+02   0.0e+00   1.8e+02
[ Info:     17   7.1e-01   2.1e+01   0.0e+00   1.3e-03
[ Info:     18   5.9e+01   5.9e+01   0.0e+00   3.1e+02
[ Info:     19   7.1e-01   5.9e+01   0.0e+00   1.3e-03
[ Info:     20   5.9e+01   5.9e+01   0.0e+00   3.1e+02
[ Info:     21   7.1e-01   5.9e+01   0.0e+00   1.3e-03
[ Info:     22   5.9e+01   5.9e+01   0.0e+00   3.1e+02
[ Info:     23   7.1e-01   5.9e+01   0.0e+00   1.3e-03
[ Info:     24   5.9e+01   5.9e+01   0.0e+00   3.1e+02
[ Info:     25   7.1e-01   5.9e+01   0.0e+00   1.3e-03
[ Info:     26   5.9e+01   5.9e+01   0.0e+00   3.1e+02
[ Info:     27   7.1e-01   5.9e+01   0.0e+00   1.3e-03
[ Info:     28   5.9e+01   5.9e+01   0.0e+00   3.1e+02
[ Info:     29   7.1e-01   5.9e+01   0.0e+00   1.3e-03
[ Info:     30   5.9e+01   5.9e+01   0.0e+00   3.1e+02
[ Info:     31   7.1e-01   5.9e+01   0.0e+00   1.3e-03
[ Info:     32   5.9e+01   5.9e+01   0.0e+00   3.1e+02
[ Info:     33   7.1e-01   5.9e+01   0.0e+00   1.3e-03
[ Info:     34   5.9e+01   5.9e+01   0.0e+00   3.1e+02
[ Info:     35   7.1e-01   5.9e+01   0.0e+00   1.3e-03
[ Info:     36   5.9e+01   5.9e+01   0.0e+00   3.1e+02
[ Info:     37   7.1e-01   5.9e+01   0.0e+00   1.3e-03
[ Info:     38   5.9e+01   5.9e+01   0.0e+00   3.1e+02
[ Info:     39   7.1e-01   5.9e+01   0.0e+00   1.3e-03
[ Info:     40   5.9e+01   5.9e+01   0.0e+00   3.1e+02
[ Info:     41   7.1e-01   5.9e+01   0.0e+00   1.3e-03
[ Info:     42   5.9e+01   5.9e+01   0.0e+00   3.1e+02
[ Info:     43   7.1e-01   5.9e+01   0.0e+00   1.3e-03
[ Info:     44   5.9e+01   5.9e+01   0.0e+00   3.1e+02
[ Info:     45   7.1e-01   5.9e+01   0.0e+00   1.3e-03
[ Info:     46   5.9e+01   5.9e+01   0.0e+00   3.1e+02
[ Info:     47   7.1e-01   5.9e+01   0.0e+00   1.3e-03
[ Info:     48   5.9e+01   5.9e+01   0.0e+00   3.1e+02
[ Info:     49   7.1e-01   5.9e+01   0.0e+00   1.3e-03
[ Info:     50   5.9e+01   5.9e+01   0.0e+00   3.1e+02
[ Info:     51   7.1e-01   5.9e+01   0.0e+00   1.3e-03
[ Info:     52   5.9e+01   5.9e+01   0.0e+00   3.1e+02
[ Info:     53   7.1e-01   5.9e+01   0.0e+00   1.3e-03
[ Info:     54   5.9e+01   5.9e+01   0.0e+00   3.1e+02
[ Info:     55   7.1e-01   5.9e+01   0.0e+00   1.3e-03
[ Info:     56   5.9e+01   5.9e+01   0.0e+00   3.1e+02
[ Info:     57   7.1e-01   5.9e+01   0.0e+00   1.3e-03
[ Info:     58   5.9e+01   5.9e+01   0.0e+00   3.1e+02
[ Info:     59   7.1e-01   5.9e+01   0.0e+00   1.3e-03
[ Info:     60   5.9e+01   5.9e+01   0.0e+00   3.1e+02
[ Info:   iter       obj      Δobj  violation  kkt_residual  
[ Info:      0   2.1e+02       Inf   0.0e+00   7.8e+02
[ Info:      1  -3.8e+01   2.4e+02   0.0e+00   1.3e-03
[ Info:      2   2.2e+05   2.2e+05   0.0e+00   4.6e+04
[ Info:      3  -3.8e+01   2.2e+05   0.0e+00   1.3e-03
[ Info:      4   2.1e+04   2.1e+04   0.0e+00   9.2e+03
[ Info:      5  -3.8e+01   2.1e+04   0.0e+00   1.3e-03
[ Info:      6   1.1e+03   1.1e+03   0.0e+00   1.7e+03
[ Info:      7  -3.8e+01   1.1e+03   0.0e+00   1.3e-03
[ Info:      8  -3.8e+01   5.3e-02   0.0e+00   1.3e-03
[ Info:      9   4.3e+03   4.3e+03   0.0e+00   3.6e+03
[ Info:     10  -3.8e+01   4.3e+03   0.0e+00   1.3e-03
[ Info:     11   1.2e+03   1.3e+03   0.0e+00   1.8e+03
[ Info:     12  -3.8e+01   1.3e+03   0.0e+00   1.3e-03
[ Info:     13   4.2e+02   4.6e+02   0.0e+00   1.1e+03
[ Info:     14  -3.8e+01   4.6e+02   0.0e+00   1.3e-03
[ Info:     15   2.8e+02   3.2e+02   0.0e+00   9.0e+02
[ Info:     16  -3.8e+01   3.2e+02   0.0e+00   1.3e-03
[ Info:     17   2.8e+02   3.2e+02   0.0e+00   9.0e+02
[ Info:     18  -3.8e+01   3.2e+02   0.0e+00   1.3e-03
[ Info:     19   2.8e+02   3.2e+02   0.0e+00   9.0e+02
[ Info:     20  -3.8e+01   3.2e+02   0.0e+00   1.3e-03
[ Info:     21   2.8e+02   3.2e+02   0.0e+00   9.0e+02
[ Info:     22  -3.8e+01   3.2e+02   0.0e+00   1.3e-03
[ Info:     23   2.8e+02   3.2e+02   0.0e+00   9.0e+02
[ Info:     24  -3.8e+01   3.2e+02   0.0e+00   1.3e-03
[ Info:     25   2.8e+02   3.2e+02   0.0e+00   9.0e+02
[ Info:     26  -3.8e+01   3.2e+02   0.0e+00   1.3e-03
[ Info:     27   2.8e+02   3.2e+02   0.0e+00   9.0e+02
[ Info:     28  -3.8e+01   3.2e+02   0.0e+00   1.3e-03
[ Info:     29   2.8e+02   3.2e+02   0.0e+00   9.0e+02
[ Info:     30  -3.8e+01   3.2e+02   0.0e+00   1.3e-03
[ Info:     31   2.8e+02   3.2e+02   0.0e+00   9.0e+02
[ Info:     32  -3.8e+01   3.2e+02   0.0e+00   1.3e-03
[ Info:     33   2.8e+02   3.2e+02   0.0e+00   9.0e+02
[ Info:     34  -3.8e+01   3.2e+02   0.0e+00   1.3e-03
[ Info:     35   2.8e+02   3.2e+02   0.0e+00   9.0e+02
[ Info:     36  -3.8e+01   3.2e+02   0.0e+00   1.3e-03
[ Info:     37   2.8e+02   3.2e+02   0.0e+00   9.0e+02
[ Info:     38  -3.8e+01   3.2e+02   0.0e+00   1.3e-03
[ Info:     39   2.8e+02   3.2e+02   0.0e+00   9.0e+02
[ Info:     40  -3.8e+01   3.2e+02   0.0e+00   1.3e-03
[ Info:     41   2.8e+02   3.2e+02   0.0e+00   9.0e+02
[ Info:     42  -3.8e+01   3.2e+02   0.0e+00   1.3e-03
[ Info:     43   2.8e+02   3.2e+02   0.0e+00   9.0e+02
[ Info:     44  -3.8e+01   3.2e+02   0.0e+00   1.3e-03
[ Info:     45   2.8e+02   3.2e+02   0.0e+00   9.0e+02
[ Info:     46  -3.8e+01   3.2e+02   0.0e+00   1.3e-03
[ Info:     47   2.8e+02   3.2e+02   0.0e+00   9.0e+02
[ Info:     48  -3.8e+01   3.2e+02   0.0e+00   1.3e-03
[ Info:     49   2.8e+02   3.2e+02   0.0e+00   9.0e+02
[ Info:     50  -3.8e+01   3.2e+02   0.0e+00   1.3e-03
[ Info:     51   2.8e+02   3.2e+02   0.0e+00   9.0e+02
[ Info:     52  -3.8e+01   3.2e+02   0.0e+00   1.3e-03
[ Info:     53   2.8e+02   3.2e+02   0.0e+00   9.0e+02
[ Info:     54  -3.8e+01   3.2e+02   0.0e+00   1.3e-03
[ Info:     55   2.8e+02   3.2e+02   0.0e+00   9.0e+02
[ Info:     56  -3.8e+01   3.2e+02   0.0e+00   1.3e-03
[ Info:     57   2.8e+02   3.2e+02   0.0e+00   9.0e+02
[ Info:     58  -3.8e+01   3.2e+02   0.0e+00   1.3e-03
[ Info:     59   2.8e+02   3.2e+02   0.0e+00   9.0e+02
[ Info:     60  -3.8e+01   3.2e+02   0.0e+00   1.3e-03
[ Info:   iter       obj      Δobj  violation  kkt_residual  
[ Info:      0   7.1e-01       Inf   0.0e+00   1.3e-03
[ Info:      1   3.9e+07   3.9e+07   0.0e+00   7.4e+06
[ Info:      2   7.1e-01   3.9e+07   0.0e+00   1.3e-03
[ Info:      3   4.0e+06   4.0e+06   0.0e+00   7.6e+05
[ Info:      4   8.1e+04   3.9e+06   0.0e+00   2.5e+04
[ Info:      5   7.7e-01   8.1e+04   0.0e+00   1.3e-03
[ Info:      6   1.7e+05   1.7e+05   0.0e+00   4.3e+04
[ Info:      7   7.1e-01   1.7e+05   0.0e+00   1.3e-03
[ Info:      8   6.5e+04   6.5e+04   0.0e+00   2.2e+04
[ Info:      9   2.7e+03   6.2e+04   0.0e+00   3.4e+03
[ Info:     10   7.3e-01   2.7e+03   0.0e+00   1.3e-03
[ Info:     11   5.9e+03   5.9e+03   0.0e+00   5.2e+03
[ Info:     12   7.1e-01   5.9e+03   0.0e+00   1.3e-03
[ Info:     13   2.1e+03   2.1e+03   0.0e+00   2.9e+03
[ Info:     14   7.0e-01   2.1e+03   0.0e+00   1.3e-03
[ Info:     15   9.3e+02   9.3e+02   0.0e+00   1.9e+03
[ Info:     16   4.8e+01   8.8e+02   0.0e+00   4.2e+02
[ Info:     17   7.1e-01   4.7e+01   0.0e+00   1.3e-03
[ Info:     18   1.3e+02   1.3e+02   0.0e+00   7.0e+02
[ Info:     19   7.1e-01   1.3e+02   0.0e+00   1.3e-03
[ Info:     20   1.3e+02   1.3e+02   0.0e+00   7.0e+02
[ Info:     21   7.1e-01   1.3e+02   0.0e+00   1.3e-03
[ Info:     22   1.3e+02   1.3e+02   0.0e+00   7.0e+02
[ Info:     23   7.1e-01   1.3e+02   0.0e+00   1.3e-03
[ Info:     24   1.3e+02   1.3e+02   0.0e+00   7.0e+02
[ Info:     25   7.1e-01   1.3e+02   0.0e+00   1.3e-03
[ Info:     26   1.3e+02   1.3e+02   0.0e+00   7.0e+02
[ Info:     27   7.1e-01   1.3e+02   0.0e+00   1.3e-03
[ Info:     28   1.3e+02   1.3e+02   0.0e+00   7.0e+02
[ Info:     29   7.1e-01   1.3e+02   0.0e+00   1.3e-03
[ Info:     30   1.3e+02   1.3e+02   0.0e+00   7.0e+02
[ Info:     31   7.1e-01   1.3e+02   0.0e+00   1.3e-03
[ Info:     32   1.3e+02   1.3e+02   0.0e+00   7.0e+02
[ Info:     33   7.1e-01   1.3e+02   0.0e+00   1.3e-03
[ Info:     34   1.3e+02   1.3e+02   0.0e+00   7.0e+02
[ Info:     35   7.1e-01   1.3e+02   0.0e+00   1.3e-03
[ Info:     36   1.3e+02   1.3e+02   0.0e+00   7.0e+02
[ Info:     37   7.1e-01   1.3e+02   0.0e+00   1.3e-03
[ Info:     38   1.3e+02   1.3e+02   0.0e+00   7.0e+02
[ Info:     39   7.1e-01   1.3e+02   0.0e+00   1.3e-03
[ Info:     40   1.3e+02   1.3e+02   0.0e+00   7.0e+02
[ Info:     41   7.1e-01   1.3e+02   0.0e+00   1.3e-03
[ Info:     42   1.3e+02   1.3e+02   0.0e+00   7.0e+02
[ Info:     43   7.1e-01   1.3e+02   0.0e+00   1.3e-03
[ Info:     44   1.3e+02   1.3e+02   0.0e+00   7.0e+02
[ Info:     45   7.1e-01   1.3e+02   0.0e+00   1.3e-03
[ Info:     46   1.3e+02   1.3e+02   0.0e+00   7.0e+02
[ Info:     47   7.1e-01   1.3e+02   0.0e+00   1.3e-03
[ Info:     48   1.3e+02   1.3e+02   0.0e+00   7.0e+02
[ Info:     49   7.1e-01   1.3e+02   0.0e+00   1.3e-03
[ Info:     50   1.3e+02   1.3e+02   0.0e+00   7.0e+02
[ Info:     51   7.1e-01   1.3e+02   0.0e+00   1.3e-03
[ Info:     52   1.3e+02   1.3e+02   0.0e+00   7.0e+02
[ Info:     53   7.1e-01   1.3e+02   0.0e+00   1.3e-03
[ Info:     54   1.3e+02   1.3e+02   0.0e+00   7.0e+02
[ Info:     55   7.1e-01   1.3e+02   0.0e+00   1.3e-03
[ Info:     56   1.3e+02   1.3e+02   0.0e+00   7.0e+02
[ Info:     57   7.1e-01   1.3e+02   0.0e+00   1.3e-03
[ Info:     58   1.3e+02   1.3e+02   0.0e+00   7.0e+02
[ Info:     59   7.1e-01   1.3e+02   0.0e+00   1.3e-03
[ Info:     60   1.3e+02   1.3e+02   0.0e+00   7.0e+02
[ Info:   iter       obj      Δobj  violation  kkt_residual  
[ Info:      0   4.6e+02       Inf   0.0e+00   1.8e+03
[ Info:      1  -8.7e+01   5.5e+02   0.0e+00   1.3e-03
[ Info:      2   4.9e+05   4.9e+05   0.0e+00   1.0e+05
[ Info:      3  -8.7e+01   4.9e+05   0.0e+00   1.3e-03
[ Info:      4   4.8e+04   4.8e+04   0.0e+00   2.1e+04
[ Info:      5  -8.7e+01   4.8e+04   0.0e+00   1.3e-03
[ Info:      6   2.4e+03   2.5e+03   0.0e+00   3.9e+03
[ Info:      7  -8.7e+01   2.5e+03   0.0e+00   1.3e-03
[ Info:      8  -8.7e+01   5.3e-02   0.0e+00   1.3e-03
[ Info:      9   9.7e+03   9.8e+03   0.0e+00   8.1e+03
[ Info:     10  -8.7e+01   9.8e+03   0.0e+00   1.3e-03
[ Info:     11   2.8e+03   2.9e+03   0.0e+00   4.2e+03
[ Info:     12  -8.7e+01   2.9e+03   0.0e+00   1.3e-03
[ Info:     13   9.5e+02   1.0e+03   0.0e+00   2.4e+03
[ Info:     14  -8.7e+01   1.0e+03   0.0e+00   1.3e-03
[ Info:     15   6.3e+02   7.2e+02   0.0e+00   2.0e+03
[ Info:     16  -8.7e+01   7.2e+02   0.0e+00   1.3e-03
[ Info:     17   6.3e+02   7.2e+02   0.0e+00   2.0e+03
[ Info:     18  -8.7e+01   7.2e+02   0.0e+00   1.3e-03
[ Info:     19   6.3e+02   7.2e+02   0.0e+00   2.0e+03
[ Info:     20  -8.7e+01   7.2e+02   0.0e+00   1.3e-03
[ Info:     21   6.3e+02   7.2e+02   0.0e+00   2.0e+03
[ Info:     22  -8.7e+01   7.2e+02   0.0e+00   1.3e-03
[ Info:     23   6.3e+02   7.2e+02   0.0e+00   2.0e+03
[ Info:     24  -8.7e+01   7.2e+02   0.0e+00   1.3e-03
[ Info:     25   6.3e+02   7.2e+02   0.0e+00   2.0e+03
[ Info:     26  -8.7e+01   7.2e+02   0.0e+00   1.3e-03
[ Info:     27   6.3e+02   7.2e+02   0.0e+00   2.0e+03
[ Info:     28  -8.7e+01   7.2e+02   0.0e+00   1.3e-03
[ Info:     29   6.3e+02   7.2e+02   0.0e+00   2.0e+03
[ Info:     30  -8.7e+01   7.2e+02   0.0e+00   1.3e-03
[ Info:     31   6.3e+02   7.2e+02   0.0e+00   2.0e+03
[ Info:     32  -8.7e+01   7.2e+02   0.0e+00   1.3e-03
[ Info:     33   6.3e+02   7.2e+02   0.0e+00   2.0e+03
[ Info:     34  -8.7e+01   7.2e+02   0.0e+00   1.3e-03
[ Info:     35   6.3e+02   7.2e+02   0.0e+00   2.0e+03
[ Info:     36  -8.7e+01   7.2e+02   0.0e+00   1.3e-03
[ Info:     37   6.3e+02   7.2e+02   0.0e+00   2.0e+03
[ Info:     38  -8.7e+01   7.2e+02   0.0e+00   1.3e-03
[ Info:     39   6.3e+02   7.2e+02   0.0e+00   2.0e+03
[ Info:     40  -8.7e+01   7.2e+02   0.0e+00   1.3e-03
[ Info:     41   6.3e+02   7.2e+02   0.0e+00   2.0e+03
[ Info:     42  -8.7e+01   7.2e+02   0.0e+00   1.3e-03
[ Info:     43   6.3e+02   7.2e+02   0.0e+00   2.0e+03
[ Info:     44  -8.7e+01   7.2e+02   0.0e+00   1.3e-03
[ Info:     45   6.3e+02   7.2e+02   0.0e+00   2.0e+03
[ Info:     46  -8.7e+01   7.2e+02   0.0e+00   1.3e-03
[ Info:     47   6.3e+02   7.2e+02   0.0e+00   2.0e+03
[ Info:     48  -8.7e+01   7.2e+02   0.0e+00   1.3e-03
[ Info:     49   6.3e+02   7.2e+02   0.0e+00   2.0e+03
[ Info:     50  -8.7e+01   7.2e+02   0.0e+00   1.3e-03
[ Info:     51   6.3e+02   7.2e+02   0.0e+00   2.0e+03
[ Info:     52  -8.7e+01   7.2e+02   0.0e+00   1.3e-03
[ Info:     53   6.3e+02   7.2e+02   0.0e+00   2.0e+03
[ Info:     54  -8.7e+01   7.2e+02   0.0e+00   1.3e-03
[ Info:     55   6.3e+02   7.2e+02   0.0e+00   2.0e+03
[ Info:     56  -8.7e+01   7.2e+02   0.0e+00   1.3e-03
[ Info:     57   6.3e+02   7.2e+02   0.0e+00   2.0e+03
[ Info:     58  -8.7e+01   7.2e+02   0.0e+00   1.3e-03
[ Info:     59   6.3e+02   7.2e+02   0.0e+00   2.0e+03
[ Info:     60  -8.7e+01   7.2e+02   0.0e+00   1.3e-03
[ Info:   iter       obj      Δobj  violation  kkt_residual  
[ Info:      0   7.1e-01       Inf   0.0e+00   1.3e-03
[ Info:      1   8.8e+07   8.8e+07   0.0e+00   1.7e+07
[ Info:      2   7.1e-01   8.8e+07   0.0e+00   1.3e-03
[ Info:      3   9.0e+06   9.0e+06   0.0e+00   1.7e+06
[ Info:      4   1.8e+05   8.8e+06   0.0e+00   5.7e+04
[ Info:      5   7.7e-01   1.8e+05   0.0e+00   1.3e-03
[ Info:      6   3.8e+05   3.8e+05   0.0e+00   9.6e+04
[ Info:      7   7.1e-01   3.8e+05   0.0e+00   1.3e-03
[ Info:      8   1.5e+05   1.5e+05   0.0e+00   4.9e+04
[ Info:      9   6.0e+03   1.4e+05   0.0e+00   7.6e+03
[ Info:     10   7.3e-01   6.0e+03   0.0e+00   1.3e-03
[ Info:     11   1.3e+04   1.3e+04   0.0e+00   1.2e+04
[ Info:     12   7.1e-01   1.3e+04   0.0e+00   1.3e-03
[ Info:     13   4.6e+03   4.6e+03   0.0e+00   6.6e+03
[ Info:     14   7.0e-01   4.6e+03   0.0e+00   1.3e-03
[ Info:     15   2.1e+03   2.1e+03   0.0e+00   4.3e+03
[ Info:     16   1.1e+02   2.0e+03   0.0e+00   9.3e+02
[ Info:     17   7.1e-01   1.1e+02   0.0e+00   1.3e-03
[ Info:     18   3.0e+02   3.0e+02   0.0e+00   1.6e+03
[ Info:     19   7.1e-01   3.0e+02   0.0e+00   1.3e-03
[ Info:     20   3.0e+02   3.0e+02   0.0e+00   1.6e+03
[ Info:     21   7.1e-01   3.0e+02   0.0e+00   1.3e-03
[ Info:     22   3.0e+02   3.0e+02   0.0e+00   1.6e+03
[ Info:     23   7.1e-01   3.0e+02   0.0e+00   1.3e-03
[ Info:     24   3.0e+02   3.0e+02   0.0e+00   1.6e+03
[ Info:     25   7.1e-01   3.0e+02   0.0e+00   1.3e-03
[ Info:     26   3.0e+02   3.0e+02   0.0e+00   1.6e+03
[ Info:     27   7.1e-01   3.0e+02   0.0e+00   1.3e-03
[ Info:     28   3.0e+02   3.0e+02   0.0e+00   1.6e+03
[ Info:     29   7.1e-01   3.0e+02   0.0e+00   1.3e-03
[ Info:     30   3.0e+02   3.0e+02   0.0e+00   1.6e+03
[ Info:     31   7.1e-01   3.0e+02   0.0e+00   1.3e-03
[ Info:     32   3.0e+02   3.0e+02   0.0e+00   1.6e+03
[ Info:     33   7.1e-01   3.0e+02   0.0e+00   1.3e-03
[ Info:     34   3.0e+02   3.0e+02   0.0e+00   1.6e+03
[ Info:     35   7.1e-01   3.0e+02   0.0e+00   1.3e-03
[ Info:     36   3.0e+02   3.0e+02   0.0e+00   1.6e+03
[ Info:     37   7.1e-01   3.0e+02   0.0e+00   1.3e-03
[ Info:     38   3.0e+02   3.0e+02   0.0e+00   1.6e+03
[ Info:     39   7.1e-01   3.0e+02   0.0e+00   1.3e-03
[ Info:     40   3.0e+02   3.0e+02   0.0e+00   1.6e+03
[ Info:     41   7.1e-01   3.0e+02   0.0e+00   1.3e-03
[ Info:     42   3.0e+02   3.0e+02   0.0e+00   1.6e+03
[ Info:     43   7.1e-01   3.0e+02   0.0e+00   1.3e-03
[ Info:     44   3.0e+02   3.0e+02   0.0e+00   1.6e+03
[ Info:     45   7.1e-01   3.0e+02   0.0e+00   1.3e-03
[ Info:     46   3.0e+02   3.0e+02   0.0e+00   1.6e+03
[ Info:     47   7.1e-01   3.0e+02   0.0e+00   1.3e-03
[ Info:     48   3.0e+02   3.0e+02   0.0e+00   1.6e+03
[ Info:     49   7.1e-01   3.0e+02   0.0e+00   1.3e-03
[ Info:     50   3.0e+02   3.0e+02   0.0e+00   1.6e+03
[ Info:     51   7.1e-01   3.0e+02   0.0e+00   1.3e-03
[ Info:     52   3.0e+02   3.0e+02   0.0e+00   1.6e+03
[ Info:     53   7.1e-01   3.0e+02   0.0e+00   1.3e-03
[ Info:     54   3.0e+02   3.0e+02   0.0e+00   1.6e+03
[ Info:     55   7.1e-01   3.0e+02   0.0e+00   1.3e-03
[ Info:     56   3.0e+02   3.0e+02   0.0e+00   1.6e+03
[ Info:     57   7.1e-01   3.0e+02   0.0e+00   1.3e-03
[ Info:     58   3.0e+02   3.0e+02   0.0e+00   1.6e+03
[ Info:     59   7.1e-01   3.0e+02   0.0e+00   1.3e-03
[ Info:     60   3.0e+02   3.0e+02   0.0e+00   1.6e+03
[ Info:   iter       obj      Δobj  violation  kkt_residual  
[ Info:      0   1.0e+03       Inf   0.0e+00   3.9e+03
[ Info:      1  -2.0e+02   1.2e+03   0.0e+00   1.3e-03
[ Info:      2   1.1e+06   1.1e+06   0.0e+00   2.4e+05
[ Info:      3  -2.0e+02   1.1e+06   0.0e+00   1.3e-03
[ Info:      4   1.1e+05   1.1e+05   0.0e+00   4.7e+04
[ Info:      5  -2.0e+02   1.1e+05   0.0e+00   1.3e-03
[ Info:      6   5.5e+03   5.7e+03   0.0e+00   8.7e+03
[ Info:      7  -2.0e+02   5.7e+03   0.0e+00   1.3e-03
[ Info:      8  -2.0e+02   5.3e-02   0.0e+00   1.3e-03
[ Info:      9   2.2e+04   2.2e+04   0.0e+00   1.8e+04
[ Info:     10  -2.0e+02   2.2e+04   0.0e+00   1.3e-03
[ Info:     11   6.2e+03   6.4e+03   0.0e+00   9.4e+03
[ Info:     12  -2.0e+02   6.4e+03   0.0e+00   1.3e-03
[ Info:     13   2.1e+03   2.3e+03   0.0e+00   5.5e+03
[ Info:     14  -2.0e+02   2.3e+03   0.0e+00   1.3e-03
[ Info:     15   1.4e+03   1.6e+03   0.0e+00   4.5e+03
[ Info:     16  -2.0e+02   1.6e+03   0.0e+00   1.3e-03
[ Info:     17   1.4e+03   1.6e+03   0.0e+00   4.5e+03
[ Info:     18  -2.0e+02   1.6e+03   0.0e+00   1.3e-03
[ Info:     19   1.4e+03   1.6e+03   0.0e+00   4.5e+03
[ Info:     20  -2.0e+02   1.6e+03   0.0e+00   1.3e-03
[ Info:     21   1.4e+03   1.6e+03   0.0e+00   4.5e+03
[ Info:     22  -2.0e+02   1.6e+03   0.0e+00   1.3e-03
[ Info:     23   1.4e+03   1.6e+03   0.0e+00   4.5e+03
[ Info:     24  -2.0e+02   1.6e+03   0.0e+00   1.3e-03
[ Info:     25   1.4e+03   1.6e+03   0.0e+00   4.5e+03
[ Info:     26  -2.0e+02   1.6e+03   0.0e+00   1.3e-03
[ Info:     27   1.4e+03   1.6e+03   0.0e+00   4.5e+03
[ Info:     28  -2.0e+02   1.6e+03   0.0e+00   1.3e-03
[ Info:     29   1.4e+03   1.6e+03   0.0e+00   4.5e+03
[ Info:     30  -2.0e+02   1.6e+03   0.0e+00   1.3e-03
[ Info:     31   1.4e+03   1.6e+03   0.0e+00   4.5e+03
[ Info:     32  -2.0e+02   1.6e+03   0.0e+00   1.3e-03
[ Info:     33   1.4e+03   1.6e+03   0.0e+00   4.5e+03
[ Info:     34  -2.0e+02   1.6e+03   0.0e+00   1.3e-03
[ Info:     35   1.4e+03   1.6e+03   0.0e+00   4.5e+03
[ Info:     36  -2.0e+02   1.6e+03   0.0e+00   1.3e-03
[ Info:     37   1.4e+03   1.6e+03   0.0e+00   4.5e+03
[ Info:     38  -2.0e+02   1.6e+03   0.0e+00   1.3e-03
[ Info:     39   1.4e+03   1.6e+03   0.0e+00   4.5e+03
[ Info:     40  -2.0e+02   1.6e+03   0.0e+00   1.3e-03
[ Info:     41   1.4e+03   1.6e+03   0.0e+00   4.5e+03
[ Info:     42  -2.0e+02   1.6e+03   0.0e+00   1.3e-03
[ Info:     43   1.4e+03   1.6e+03   0.0e+00   4.5e+03
[ Info:     44  -2.0e+02   1.6e+03   0.0e+00   1.3e-03
[ Info:     45   1.4e+03   1.6e+03   0.0e+00   4.5e+03
[ Info:     46  -2.0e+02   1.6e+03   0.0e+00   1.3e-03
[ Info:     47   1.4e+03   1.6e+03   0.0e+00   4.5e+03
[ Info:     48  -2.0e+02   1.6e+03   0.0e+00   1.3e-03
[ Info:     49   1.4e+03   1.6e+03   0.0e+00   4.5e+03
[ Info:     50  -2.0e+02   1.6e+03   0.0e+00   1.3e-03
[ Info:     51   1.4e+03   1.6e+03   0.0e+00   4.5e+03
[ Info:     52  -2.0e+02   1.6e+03   0.0e+00   1.3e-03
[ Info:     53   1.4e+03   1.6e+03   0.0e+00   4.5e+03
[ Info:     54  -2.0e+02   1.6e+03   0.0e+00   1.3e-03
[ Info:     55   1.4e+03   1.6e+03   0.0e+00   4.5e+03
[ Info:     56  -2.0e+02   1.6e+03   0.0e+00   1.3e-03
[ Info:     57   1.4e+03   1.6e+03   0.0e+00   4.5e+03
[ Info:     58  -2.0e+02   1.6e+03   0.0e+00   1.3e-03
[ Info:     59   1.4e+03   1.6e+03   0.0e+00   4.5e+03
[ Info:     60  -2.0e+02   1.6e+03   0.0e+00   1.3e-03
[ Info:   iter       obj      Δobj  violation  kkt_residual  
[ Info:      0   7.1e-01       Inf   0.0e+00   1.3e-03
[ Info:      1   2.0e+08   2.0e+08   0.0e+00   3.7e+07
[ Info:      2   7.1e-01   2.0e+08   0.0e+00   1.3e-03
[ Info:      3   2.0e+07   2.0e+07   0.0e+00   3.8e+06
[ Info:      4   4.1e+05   2.0e+07   0.0e+00   1.3e+05
[ Info:      5   7.7e-01   4.1e+05   0.0e+00   1.3e-03
[ Info:      6   8.5e+05   8.5e+05   0.0e+00   2.2e+05
[ Info:      7   7.1e-01   8.5e+05   0.0e+00   1.3e-03
[ Info:      8   3.3e+05   3.3e+05   0.0e+00   1.1e+05
[ Info:      9   1.4e+04   3.1e+05   0.0e+00   1.7e+04
[ Info:     10   7.3e-01   1.4e+04   0.0e+00   1.3e-03
[ Info:     11   3.0e+04   3.0e+04   0.0e+00   2.6e+04
[ Info:     12   7.1e-01   3.0e+04   0.0e+00   1.3e-03
[ Info:     13   1.0e+04   1.0e+04   0.0e+00   1.5e+04
[ Info:     14   7.0e-01   1.0e+04   0.0e+00   1.3e-03
[ Info:     15   4.7e+03   4.7e+03   0.0e+00   9.7e+03
[ Info:     16   2.4e+02   4.5e+03   0.0e+00   2.1e+03
[ Info:     17   7.1e-01   2.4e+02   0.0e+00   1.3e-03
[ Info:     18   6.7e+02   6.7e+02   0.0e+00   3.6e+03
[ Info:     19   7.1e-01   6.7e+02   0.0e+00   1.3e-03
[ Info:     20   6.7e+02   6.7e+02   0.0e+00   3.6e+03
[ Info:     21   7.1e-01   6.7e+02   0.0e+00   1.3e-03
[ Info:     22   6.7e+02   6.7e+02   0.0e+00   3.6e+03
[ Info:     23   7.1e-01   6.7e+02   0.0e+00   1.3e-03
[ Info:     24   6.7e+02   6.7e+02   0.0e+00   3.6e+03
[ Info:     25   7.1e-01   6.7e+02   0.0e+00   1.3e-03
[ Info:     26   6.7e+02   6.7e+02   0.0e+00   3.6e+03
[ Info:     27   7.1e-01   6.7e+02   0.0e+00   1.3e-03
[ Info:     28   6.7e+02   6.7e+02   0.0e+00   3.6e+03
[ Info:     29   7.1e-01   6.7e+02   0.0e+00   1.3e-03
[ Info:     30   6.7e+02   6.7e+02   0.0e+00   3.6e+03
[ Info:     31   7.1e-01   6.7e+02   0.0e+00   1.3e-03
[ Info:     32   6.7e+02   6.7e+02   0.0e+00   3.6e+03
[ Info:     33   7.1e-01   6.7e+02   0.0e+00   1.3e-03
[ Info:     34   6.7e+02   6.7e+02   0.0e+00   3.6e+03
[ Info:     35   7.1e-01   6.7e+02   0.0e+00   1.3e-03
[ Info:     36   6.7e+02   6.7e+02   0.0e+00   3.6e+03
[ Info:     37   7.1e-01   6.7e+02   0.0e+00   1.3e-03
[ Info:     38   6.7e+02   6.7e+02   0.0e+00   3.6e+03
[ Info:     39   7.1e-01   6.7e+02   0.0e+00   1.3e-03
[ Info:     40   6.7e+02   6.7e+02   0.0e+00   3.6e+03
[ Info:     41   7.1e-01   6.7e+02   0.0e+00   1.3e-03
[ Info:     42   6.7e+02   6.7e+02   0.0e+00   3.6e+03
[ Info:     43   7.1e-01   6.7e+02   0.0e+00   1.3e-03
[ Info:     44   6.7e+02   6.7e+02   0.0e+00   3.6e+03
[ Info:     45   7.1e-01   6.7e+02   0.0e+00   1.3e-03
[ Info:     46   6.7e+02   6.7e+02   0.0e+00   3.6e+03
[ Info:     47   7.1e-01   6.7e+02   0.0e+00   1.3e-03
[ Info:     48   6.7e+02   6.7e+02   0.0e+00   3.6e+03
[ Info:     49   7.1e-01   6.7e+02   0.0e+00   1.3e-03
[ Info:     50   6.7e+02   6.7e+02   0.0e+00   3.6e+03
[ Info:     51   7.1e-01   6.7e+02   0.0e+00   1.3e-03
[ Info:     52   6.7e+02   6.7e+02   0.0e+00   3.6e+03
[ Info:     53   7.1e-01   6.7e+02   0.0e+00   1.3e-03
[ Info:     54   6.7e+02   6.7e+02   0.0e+00   3.6e+03
[ Info:     55   7.1e-01   6.7e+02   0.0e+00   1.3e-03
[ Info:     56   6.7e+02   6.7e+02   0.0e+00   3.6e+03
[ Info:     57   7.1e-01   6.7e+02   0.0e+00   1.3e-03
[ Info:     58   6.7e+02   6.7e+02   0.0e+00   3.6e+03
[ Info:     59   7.1e-01   6.7e+02   0.0e+00   1.3e-03
[ Info:     60   6.7e+02   6.7e+02   0.0e+00   3.6e+03
max-compliance design: volume = 0.699, max C = 62.5, C_t = 61.8

NonconvexPercival provides this augmented-Lagrangian method as a built-in solver. The same problem can be posed directly with a vector constraint and solved by PercivalAlg (no manual multiplier loop):

model = Model(volf)
addvar!(model, zeros(length(solver.vars)), ones(length(solver.vars)))
add_ineq_constraint!(model, x -> Cfun(x) ./ C_t .- 1)
x_al2 = optimize(model, PercivalAlg(), x_al;
    options=PercivalOptions(; max_iter=40, subsolver_max_eval=500)).minimizer

Visualize the designs

fig1 = visualize(problem.problem; static=true, topology=filter(PseudoDensities(x_mean)).x)
display_app(fig1)
undeformed mesh
load arrows
support arrows
Figure 1: Robust design minimizing mean compliance over random tip loads
fig2 = visualize(problem.problem; static=true, topology=filter(PseudoDensities(x_meanstd)).x)
display_app(fig2)
undeformed mesh
load arrows
support arrows
Figure 2: Design minimizing mean + 0.25·std, trading a bit of average stiffness for consistency across the load distribution
fig3 = visualize(problem.problem; static=true, topology=filter(PseudoDensities(x_al)).x)
display_app(fig3)
undeformed mesh
load arrows
support arrows
Figure 3: Minimum-volume design subject to a maximum-compliance bound (augmented Lagrangian)

Practical guidance

  • Exact (:exact, :exact_svd): use when the number of scenarios is small (≤ a few dozen) or the scenarios are strongly correlated. :exact_svd is the better default — it gives the same answer with fewer solves.
  • Hutchinson (:trace): use for large ensembles where solving every scenario is prohibitive. Accuracy improves with nv, but so does cost.
  • Hadamard (:trace with sample_method=:hadamard): deterministic and smoother than Hutchinson; nv must equal the number of scenarios for an unbiased estimate.
  • BlockComplianceFun exposes the per-scenario values, so it is the tool for statistics beyond the mean (standard deviation, CVaR-style combinations) and for the maximum-compliance constraint handled by the augmented Lagrangian method.

References

  • TarekRay2021: Tarek, M. & Ray, T. (2021). Robust and stochastic compliance-based topology optimization with finitely many loading scenarios. Structural and Multidisciplinary Optimization. DOI: 10.1007/s00158-021-03022-x.
  • TarekRay2022: Tarek, M. & Ray, T. (2022). Approximation schemes for stochastic compliance-based topology optimization with many loading scenarios. Structural and Multidisciplinary Optimization. DOI: 10.1007/s00158-022-03221-0.