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     = 68.58265685363595
exact_svd = 68.58265685363591  (rel. diff 6.216231056284286e-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: 48.802  (rel. err 0.288)
hutch nv= 4: 54.434  (rel. err 0.206)
hutch nv= 8: 83.358  (rel. err 0.215)
hutch nv=16: 78.129  (rel. err 0.139)

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. This removes the sampling noise and converges smoothly, at the cost of a fixed nv that is a power of two.

for nv in (4, 8, 16)
    mc = MeanComplianceFun(problem, solver; method=:trace, nv=nv, sample_method=:hadamard)
    est = mc(PseudoDensities(x))
    println("hadamard nv=$(lpad(nv, 2)): $(round(est, digits=3))  (rel. err $(round(abs(est - C_exact) / C_exact, digits=3)))")
end
hadamard nv= 4: 44.538  (rel. err 0.351)
hadamard nv= 8: 38.219  (rel. err 0.443)
hadamard nv=16: 68.583  (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   6.9e+01       Inf   0.0e+00   1.8e+00
[ Info:      1   5.7e+01   1.2e+01   0.0e+00   5.0e+00
[ Info:      2   4.8e+01   8.4e+00   0.0e+00   1.6e+00
[ Info:      3   4.5e+01   3.8e+00   0.0e+00   7.7e-01
[ Info:      4   4.3e+01   2.0e+00   0.0e+00   4.2e-01
[ Info:      5   4.2e+01   1.0e+00   0.0e+00   2.0e-01
[ Info:      6   4.1e+01   5.2e-01   0.0e+00   9.7e-02
[ Info:      7   4.1e+01   3.0e-01   0.0e+00   7.4e-02
[ Info:      8   4.1e+01   2.2e-01   0.0e+00   6.0e-02
[ Info:      9   4.0e+01   2.0e-01   0.0e+00   6.0e-02
[ Info:     10   4.0e+01   1.8e-01   0.0e+00   6.2e-02
[ Info:     11   4.0e+01   1.5e-01   0.0e+00   4.8e-02
[ Info:     12   4.0e+01   1.3e-01   0.0e+00   5.1e-02
[ Info:     13   4.0e+01   1.2e-01   0.0e+00   5.7e-02
[ Info:     14   4.0e+01   1.1e-01   0.0e+00   5.1e-02
[ Info:     15   4.0e+01   1.1e-01   0.0e+00   4.2e-02
[ Info:     16   3.9e+01   1.1e-01   0.0e+00   4.2e-02
[ Info:     17   3.9e+01   1.2e-01   0.0e+00   4.6e-02
[ Info:     18   3.9e+01   8.9e-02   0.0e+00   3.5e-02
[ Info:     19   3.9e+01   8.8e-02   0.0e+00   7.9e-02
[ Info:     20   4.0e+01   6.8e-01   0.0e+00   2.7e-01
[ Info:     21   4.2e+01   2.3e+00   0.0e+00   9.2e-01
[ Info:     22   4.5e+01   3.0e+00   0.0e+00   2.2e+00
[ Info:     23   4.5e+01   4.3e-01   0.0e+00   3.5e+00
[ Info:     24   4.2e+01   2.9e+00   0.0e+00   2.0e+00
[ Info:     25   4.0e+01   1.8e+00   0.0e+00   7.6e-01
[ Info:     26   3.9e+01   8.5e-01   0.0e+00   2.4e-01
[ Info:     27   3.9e+01   3.1e-01   0.0e+00   3.1e-02
[ Info:     28   3.9e+01   5.8e-02   0.0e+00   2.9e-02
[ Info:     29   3.9e+01   3.3e-02   0.0e+00   3.1e-02
[ Info:     30   3.9e+01   3.0e-02   0.0e+00   3.1e-02
[ Info:     31   3.9e+01   2.7e-02   0.0e+00   3.3e-02
[ Info:     32   3.9e+01   2.4e-02   0.0e+00   2.7e-02
[ Info:     33   3.9e+01   2.3e-02   0.0e+00   2.7e-02
[ Info:     34   3.9e+01   2.2e-02   0.0e+00   2.1e-02
[ Info:     35   3.9e+01   2.1e-02   0.0e+00   2.2e-02
[ Info:     36   3.9e+01   2.1e-02   0.0e+00   2.2e-02
[ Info:     37   3.9e+01   2.0e-02   0.0e+00   2.3e-02
[ Info:     38   3.9e+01   1.9e-02   0.0e+00   2.2e-02
[ Info:     39   3.9e+01   1.9e-02   0.0e+00   2.1e-02
[ Info:     40   3.9e+01   2.0e-02   0.0e+00   1.9e-02
[ Info:     41   3.9e+01   1.9e-02   0.0e+00   2.0e-02
[ Info:     42   3.9e+01   1.6e-02   0.0e+00   2.5e-02
[ Info:     43   3.9e+01   6.3e-03   0.0e+00   3.1e-02
[ Info:     44   3.9e+01   1.1e-02   0.0e+00   4.3e-02
[ Info:     45   3.9e+01   7.8e-02   0.0e+00   4.3e-02
[ Info:     46   3.9e+01   8.9e-02   0.0e+00   9.0e-02
[ Info:     47   3.9e+01   2.1e-02   0.0e+00   1.2e-01
[ Info:     48   3.9e+01   1.5e-01   0.0e+00   6.0e-02
[ Info:     49   3.9e+01   7.4e-02   0.0e+00   2.7e-02
[ Info:     50   3.9e+01   1.6e-02   0.0e+00   1.1e-02
[ Info:     51   3.9e+01   4.4e-03   0.0e+00   8.8e-03
[ Info:     52   3.9e+01   3.6e-03   0.0e+00   9.3e-03
[ Info:     53   3.9e+01   3.2e-03   0.0e+00   1.1e-02
[ Info:     54   3.9e+01   3.3e-03   0.0e+00   7.9e-03
[ Info:     55   3.9e+01   2.9e-03   0.0e+00   7.5e-03
[ Info:     56   3.8e+01   2.7e-03   0.0e+00   7.4e-03
[ Info:     57   3.8e+01   2.9e-03   0.0e+00   7.7e-03
[ Info:     58   3.8e+01   3.2e-03   0.0e+00   7.6e-03
[ Info:     59   3.8e+01   3.4e-03   0.0e+00   7.5e-03
[ Info:     60   3.8e+01   3.8e-03   0.0e+00   7.8e-03
[ Info:     61   3.8e+01   4.0e-03   0.0e+00   8.3e-03
[ Info:     62   3.8e+01   3.9e-03   0.0e+00   8.7e-03
[ Info:     63   3.8e+01   3.7e-03   0.0e+00   9.2e-03
[ Info:     64   3.8e+01   3.2e-03   0.0e+00   1.1e-02
[ Info:     65   3.8e+01   2.2e-03   0.0e+00   1.3e-02
[ Info:     66   3.8e+01   2.6e-07   0.0e+00   1.4e-02
[ Info:     67   3.8e+01   5.1e-03   0.0e+00   2.1e-02
[ Info:     68   3.8e+01   1.0e-02   0.0e+00   2.9e-02
[ Info:     69   3.8e+01   1.4e-03   0.0e+00   4.0e-02
[ Info:     70   3.8e+01   1.1e-02   0.0e+00   3.9e-02
[ Info:     71   3.8e+01   4.0e-02   0.0e+00   6.5e-02
[ Info:     72   3.8e+01   3.6e-02   0.0e+00   2.3e-02
[ Info:     73   3.8e+01   1.0e-02   0.0e+00   2.5e-02
[ Info:     74   3.8e+01   5.4e-03   0.0e+00   2.7e-02
[ Info:     75   3.8e+01   4.5e-03   0.0e+00   2.0e-02
[ Info:     76   3.8e+01   3.1e-03   0.0e+00   2.1e-02
[ Info:     77   3.8e+01   3.4e-03   0.0e+00   2.3e-02
[ Info:     78   3.8e+01   4.0e-03   0.0e+00   2.5e-02
[ Info:     79   3.8e+01   4.9e-03   0.0e+00   2.6e-02
[ Info:     80   3.8e+01   6.4e-03   0.0e+00   2.9e-02
[ Info:     81   3.8e+01   8.1e-03   0.0e+00   3.3e-02
[ Info:     82   3.8e+01   9.6e-03   0.0e+00   3.6e-02
[ Info:     83   3.8e+01   1.1e-02   0.0e+00   4.1e-02
[ Info:     84   3.8e+01   1.2e-02   0.0e+00   4.5e-02
[ Info:     85   3.8e+01   1.1e-02   0.0e+00   4.3e-02
[ Info:     86   3.8e+01   8.5e-03   0.0e+00   2.3e-02
[ Info:     87   3.8e+01   8.5e-03   0.0e+00   2.4e-02
[ Info:     88   3.8e+01   9.5e-03   0.0e+00   2.5e-02
[ Info:     89   3.8e+01   7.2e-03   0.0e+00   2.5e-02
[ Info:     90   3.8e+01   7.0e-03   0.0e+00   2.7e-02
[ Info:     91   3.8e+01   6.4e-03   0.0e+00   2.8e-02
[ Info:     92   3.8e+01   6.9e-03   0.0e+00   3.0e-02
[ Info:     93   3.8e+01   6.8e-03   0.0e+00   3.1e-02
[ Info:     94   3.8e+01   6.0e-03   0.0e+00   3.3e-02
[ Info:     95   3.8e+01   7.2e-03   0.0e+00   3.4e-02
[ Info:     96   3.8e+01   8.8e-03   0.0e+00   3.6e-02
[ Info:     97   3.8e+01   7.1e-03   0.0e+00   3.7e-02
[ Info:     98   3.8e+01   4.1e-03   0.0e+00   1.5e-02
[ Info:     99   3.8e+01   3.1e-03   0.0e+00   1.5e-02
[ Info:    100   3.8e+01   2.3e-03   0.0e+00   1.5e-02
mean only      : obj = 38.205, vol = 0.5
[ Info:   iter       obj      Δobj  violation  kkt_residual  
[ Info:      0   8.3e+01       Inf   0.0e+00   2.3e+00
[ Info:      1   6.8e+01   1.5e+01   0.0e+00   6.5e+00
[ Info:      2   5.8e+01   1.1e+01   0.0e+00   2.0e+00
[ Info:      3   5.3e+01   4.9e+00   0.0e+00   9.7e-01
[ Info:      4   5.0e+01   2.4e+00   0.0e+00   5.1e-01
[ Info:      5   4.9e+01   1.2e+00   0.0e+00   2.3e-01
[ Info:      6   4.9e+01   5.9e-01   0.0e+00   1.2e-01
[ Info:      7   4.8e+01   3.5e-01   0.0e+00   7.8e-02
[ Info:      8   4.8e+01   2.7e-01   0.0e+00   7.2e-02
[ Info:      9   4.8e+01   2.4e-01   0.0e+00   7.1e-02
[ Info:     10   4.8e+01   2.0e-01   0.0e+00   7.2e-02
[ Info:     11   4.7e+01   1.7e-01   0.0e+00   5.3e-02
[ Info:     12   4.7e+01   1.3e-01   0.0e+00   5.9e-02
[ Info:     13   4.7e+01   1.4e-01   0.0e+00   6.7e-02
[ Info:     14   4.7e+01   1.4e-01   0.0e+00   5.3e-02
[ Info:     15   4.7e+01   1.4e-01   0.0e+00   5.7e-02
[ Info:     16   4.7e+01   1.4e-01   0.0e+00   5.2e-02
[ Info:     17   4.7e+01   1.3e-01   0.0e+00   5.7e-02
[ Info:     18   4.7e+01   5.8e-03   0.0e+00   7.4e-02
[ Info:     19   4.7e+01   7.5e-01   0.0e+00   2.7e-01
[ Info:     20   4.9e+01   1.9e+00   0.0e+00   9.3e-01
[ Info:     21   5.1e+01   1.4e+00   0.0e+00   2.0e+00
[ Info:     22   5.0e+01   9.0e-01   0.0e+00   1.9e+00
[ Info:     23   4.8e+01   1.4e+00   0.0e+00   1.3e+00
[ Info:     24   4.7e+01   1.1e+00   0.0e+00   6.9e-01
[ Info:     25   4.6e+01   8.1e-01   0.0e+00   2.7e-01
[ Info:     26   4.6e+01   2.9e-01   0.0e+00   8.8e-02
[ Info:     27   4.6e+01   1.1e-01   0.0e+00   4.2e-02
[ Info:     28   4.6e+01   4.5e-02   0.0e+00   4.4e-02
[ Info:     29   4.6e+01   3.4e-02   0.0e+00   4.5e-02
[ Info:     30   4.6e+01   3.0e-02   0.0e+00   3.4e-02
[ Info:     31   4.6e+01   2.8e-02   0.0e+00   3.4e-02
[ Info:     32   4.6e+01   2.9e-02   0.0e+00   3.4e-02
[ Info:     33   4.6e+01   3.2e-02   0.0e+00   3.8e-02
[ Info:     34   4.6e+01   3.1e-02   0.0e+00   4.7e-02
[ Info:     35   4.6e+01   3.3e-02   0.0e+00   6.6e-02
[ Info:     36   4.6e+01   3.3e-02   0.0e+00   3.2e-02
[ Info:     37   4.6e+01   3.1e-02   0.0e+00   2.9e-02
[ Info:     38   4.6e+01   2.8e-02   0.0e+00   2.2e-02
[ Info:     39   4.6e+01   2.6e-02   0.0e+00   2.5e-02
[ Info:     40   4.6e+01   2.9e-02   0.0e+00   2.3e-02
[ Info:     41   4.5e+01   3.2e-02   0.0e+00   3.0e-02
[ Info:     42   4.5e+01   3.5e-02   0.0e+00   2.8e-02
[ Info:     43   4.5e+01   2.5e-02   0.0e+00   2.4e-02
[ Info:     44   4.5e+01   1.0e-02   0.0e+00   2.7e-02
[ Info:     45   4.5e+01   2.4e-03   0.0e+00   3.3e-02
[ Info:     46   4.5e+01   1.3e-02   0.0e+00   5.8e-02
[ Info:     47   4.5e+01   1.2e-02   0.0e+00   4.7e-02
[ Info:     48   4.5e+01   1.5e-02   0.0e+00   6.2e-02
[ Info:     49   4.5e+01   3.1e-02   0.0e+00   8.9e-02
[ Info:     50   4.5e+01   5.7e-02   0.0e+00   5.3e-02
[ Info:     51   4.5e+01   5.3e-02   0.0e+00   1.9e-02
[ Info:     52   4.5e+01   1.8e-02   0.0e+00   1.4e-02
[ Info:     53   4.5e+01   6.2e-03   0.0e+00   1.5e-02
[ Info:     54   4.5e+01   4.9e-03   0.0e+00   1.6e-02
[ Info:     55   4.5e+01   5.0e-03   0.0e+00   1.7e-02
[ Info:     56   4.5e+01   5.5e-03   0.0e+00   1.7e-02
[ Info:     57   4.5e+01   5.5e-03   0.0e+00   1.2e-02
[ Info:     58   4.5e+01   5.0e-03   0.0e+00   1.4e-02
[ Info:     59   4.5e+01   5.2e-03   0.0e+00   1.5e-02
[ Info:     60   4.5e+01   4.8e-03   0.0e+00   1.8e-02
[ Info:     61   4.5e+01   5.2e-03   0.0e+00   1.9e-02
[ Info:     62   4.5e+01   6.3e-03   0.0e+00   1.9e-02
[ Info:     63   4.5e+01   8.5e-03   0.0e+00   2.3e-02
[ Info:     64   4.5e+01   1.1e-02   0.0e+00   3.1e-02
[ Info:     65   4.5e+01   1.4e-02   0.0e+00   2.1e-02
[ Info:     66   4.5e+01   1.3e-02   0.0e+00   2.4e-02
[ Info:     67   4.5e+01   1.3e-02   0.0e+00   2.8e-02
[ Info:     68   4.5e+01   1.7e-02   0.0e+00   3.4e-02
[ Info:     69   4.5e+01   1.9e-02   0.0e+00   4.5e-02
[ Info:     70   4.5e+01   1.8e-02   0.0e+00   3.6e-02
[ Info:     71   4.5e+01   1.1e-02   0.0e+00   3.7e-02
[ Info:     72   4.5e+01   8.6e-03   0.0e+00   3.9e-02
[ Info:     73   4.5e+01   8.0e-03   0.0e+00   4.1e-02
[ Info:     74   4.5e+01   1.1e-02   0.0e+00   1.5e-02
[ Info:     75   4.5e+01   1.2e-02   0.0e+00   1.3e-02
[ Info:     76   4.5e+01   8.0e-03   0.0e+00   1.3e-02
[ Info:     77   4.5e+01   4.8e-03   0.0e+00   1.2e-02
[ Info:     78   4.5e+01   3.6e-03   0.0e+00   1.2e-02
[ Info:     79   4.5e+01   3.2e-03   0.0e+00   9.6e-03
[ Info:     80   4.5e+01   3.0e-03   0.0e+00   9.2e-03
[ Info:     81   4.5e+01   2.1e-03   0.0e+00   9.6e-03
[ Info:     82   4.5e+01   1.3e-03   0.0e+00   7.8e-03
[ Info:     83   4.5e+01   1.2e-03   0.0e+00   8.9e-03
[ Info:     84   4.5e+01   1.2e-03   0.0e+00   8.3e-03
[ Info:     85   4.5e+01   1.3e-03   0.0e+00   8.7e-03
[ Info:     86   4.5e+01   1.4e-03   0.0e+00   9.1e-03
[ Info:     87   4.5e+01   1.5e-03   0.0e+00   9.6e-03
[ Info:     88   4.5e+01   1.5e-03   0.0e+00   1.0e-02
[ Info:     89   4.5e+01   1.6e-03   0.0e+00   1.1e-02
[ Info:     90   4.5e+01   2.0e-03   0.0e+00   1.1e-02
[ Info:     91   4.5e+01   2.8e-03   0.0e+00   1.1e-02
[ Info:     92   4.5e+01   3.3e-03   0.0e+00   1.2e-02
[ Info:     93   4.5e+01   3.4e-03   0.0e+00   9.2e-03
[ Info:     94   4.5e+01   2.5e-03   0.0e+00   6.2e-03
[ Info:     95   4.5e+01   1.3e-03   0.0e+00   4.3e-03
[ Info:     96   4.5e+01   1.0e-03   0.0e+00   4.6e-03
[ Info:     97   4.5e+01   9.6e-04   0.0e+00   4.3e-03
[ Info:     98   4.5e+01   1.0e-03   0.0e+00   5.0e-03
[ Info:     99   4.5e+01   1.1e-03   0.0e+00   4.8e-03
[ Info:    100   4.5e+01   1.1e-03   0.0e+00   6.3e-03
mean + 0.25 std: obj = 45.01, 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.0
 0.0
 0.0
 0.6806823086459107
 0.7775534971285089
 0.0
 0.0
 0.8466962760889165
 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.5e-03
[ Info:      1   2.4e+03   2.4e+03   0.0e+00   4.1e+02
[ Info:      2   1.0e+00   2.4e+03   0.0e+00   1.5e-03
[ Info:      3   2.4e+03   2.4e+03   0.0e+00   4.1e+02
[ Info:      4   8.7e-01   2.4e+03   0.0e+00   1.5e-03
[ Info:      5   2.1e+02   2.1e+02   0.0e+00   7.0e+01
[ Info:      6   8.0e-01   2.1e+02   0.0e+00   1.5e-03
[ Info:      7   8.5e+00   7.7e+00   0.0e+00   1.1e+01
[ Info:      8   7.7e-01   7.8e+00   0.0e+00   1.5e-03
[ Info:      9   7.1e-01   5.3e-02   0.0e+00   1.5e-03
[ Info:     10   3.9e+01   3.8e+01   0.0e+00   2.6e+01
[ Info:     11   7.2e-01   3.8e+01   0.0e+00   1.5e-03
[ Info:     12   9.9e+00   9.2e+00   0.0e+00   1.2e+01
[ Info:     13   7.1e-01   9.2e+00   0.0e+00   1.5e-03
[ Info:     14   3.2e+00   2.5e+00   0.0e+00   6.1e+00
[ Info:     15   7.1e-01   2.5e+00   0.0e+00   1.5e-03
[ Info:     16   2.1e+00   1.4e+00   0.0e+00   4.6e+00
[ Info:     17   7.1e-01   1.4e+00   0.0e+00   1.5e-03
[ Info:     18   2.1e+00   1.4e+00   0.0e+00   4.6e+00
[ Info:     19   7.1e-01   1.4e+00   0.0e+00   1.5e-03
[ Info:     20   2.1e+00   1.4e+00   0.0e+00   4.6e+00
[ Info:     21   7.0e-01   1.4e+00   0.0e+00   1.5e-03
[ Info:     22   2.1e+00   1.4e+00   0.0e+00   4.6e+00
[ Info:     23   7.0e-01   1.4e+00   0.0e+00   1.5e-03
[ Info:     24   2.1e+00   1.4e+00   0.0e+00   4.6e+00
[ Info:     25   7.0e-01   1.4e+00   0.0e+00   1.5e-03
[ Info:     26   2.1e+00   1.4e+00   0.0e+00   4.6e+00
[ Info:     27   7.0e-01   1.4e+00   0.0e+00   1.5e-03
[ Info:     28   2.1e+00   1.4e+00   0.0e+00   4.6e+00
[ Info:     29   7.0e-01   1.4e+00   0.0e+00   1.5e-03
[ Info:     30   2.1e+00   1.4e+00   0.0e+00   4.6e+00
[ Info:     31   7.0e-01   1.4e+00   0.0e+00   1.5e-03
[ Info:     32   2.1e+00   1.4e+00   0.0e+00   4.6e+00
[ Info:     33   7.0e-01   1.4e+00   0.0e+00   1.5e-03
[ Info:     34   2.1e+00   1.4e+00   0.0e+00   4.6e+00
[ Info:     35   7.0e-01   1.4e+00   0.0e+00   1.5e-03
[ Info:     36   2.1e+00   1.4e+00   0.0e+00   4.6e+00
[ Info:     37   7.0e-01   1.4e+00   0.0e+00   1.5e-03
[ Info:     38   2.1e+00   1.4e+00   0.0e+00   4.6e+00
[ Info:     39   7.0e-01   1.4e+00   0.0e+00   1.5e-03
[ Info:     40   2.1e+00   1.4e+00   0.0e+00   4.6e+00
[ Info:     41   7.0e-01   1.4e+00   0.0e+00   1.5e-03
[ Info:     42   2.1e+00   1.4e+00   0.0e+00   4.6e+00
[ Info:     43   7.0e-01   1.4e+00   0.0e+00   1.5e-03
[ Info:     44   2.1e+00   1.4e+00   0.0e+00   4.6e+00
[ Info:     45   7.0e-01   1.4e+00   0.0e+00   1.5e-03
[ Info:     46   2.1e+00   1.4e+00   0.0e+00   4.6e+00
[ Info:     47   7.0e-01   1.4e+00   0.0e+00   1.5e-03
[ Info:     48   2.1e+00   1.4e+00   0.0e+00   4.6e+00
[ Info:     49   7.0e-01   1.4e+00   0.0e+00   1.5e-03
[ Info:     50   2.1e+00   1.4e+00   0.0e+00   4.6e+00
[ Info:     51   7.0e-01   1.4e+00   0.0e+00   1.5e-03
[ Info:     52   2.1e+00   1.4e+00   0.0e+00   4.6e+00
[ Info:     53   7.0e-01   1.4e+00   0.0e+00   1.5e-03
[ Info:     54   2.1e+00   1.4e+00   0.0e+00   4.6e+00
[ Info:     55   7.0e-01   1.4e+00   0.0e+00   1.5e-03
[ Info:     56   2.1e+00   1.4e+00   0.0e+00   4.6e+00
[ Info:     57   7.0e-01   1.4e+00   0.0e+00   1.5e-03
[ Info:     58   2.1e+00   1.4e+00   0.0e+00   4.6e+00
[ Info:     59   7.0e-01   1.4e+00   0.0e+00   1.5e-03
[ Info:     60   2.1e+00   1.4e+00   0.0e+00   4.6e+00
[ Info:   iter       obj      Δobj  violation  kkt_residual  
[ Info:      0   5.7e+00       Inf   0.0e+00   1.2e+01
[ Info:      1   3.5e-02   5.7e+00   0.0e+00   1.5e-03
[ Info:      2   4.0e+03   4.0e+03   0.0e+00   6.7e+02
[ Info:      3   3.6e-02   4.0e+03   0.0e+00   1.5e-03
[ Info:      4   3.6e+01   3.6e+01   0.0e+00   3.0e+01
[ Info:      5  -5.9e-02   3.6e+01   0.0e+00   1.5e-03
[ Info:      6  -2.1e-01   1.5e-01   0.0e+00   1.5e-03
[ Info:      7   3.6e+02   3.6e+02   0.0e+00   1.1e+02
[ Info:      8  -1.9e-01   3.6e+02   0.0e+00   1.5e-03
[ Info:      9   4.7e+01   4.8e+01   0.0e+00   3.5e+01
[ Info:     10  -2.2e-01   4.8e+01   0.0e+00   1.5e-03
[ Info:     11   2.4e+00   2.6e+00   0.0e+00   7.6e+00
[ Info:     12  -2.3e-01   2.6e+00   0.0e+00   1.5e-03
[ Info:     13  -2.5e-01   2.2e-02   0.0e+00   1.5e-03
[ Info:     14   1.0e+01   1.0e+01   0.0e+00   1.5e+01
[ Info:     15  -2.5e-01   1.0e+01   0.0e+00   1.5e-03
[ Info:     16   2.8e+00   3.0e+00   0.0e+00   8.1e+00
[ Info:     17  -2.6e-01   3.0e+00   0.0e+00   1.5e-03
[ Info:     18   2.8e+00   3.0e+00   0.0e+00   8.1e+00
[ Info:     19  -2.6e-01   3.0e+00   0.0e+00   1.5e-03
[ Info:     20   2.8e+00   3.0e+00   0.0e+00   8.1e+00
[ Info:     21  -2.6e-01   3.0e+00   0.0e+00   1.5e-03
[ Info:     22   2.8e+00   3.0e+00   0.0e+00   8.1e+00
[ Info:     23  -2.6e-01   3.0e+00   0.0e+00   1.5e-03
[ Info:     24   2.8e+00   3.0e+00   0.0e+00   8.1e+00
[ Info:     25  -2.6e-01   3.0e+00   0.0e+00   1.5e-03
[ Info:     26   2.8e+00   3.0e+00   0.0e+00   8.1e+00
[ Info:     27  -2.6e-01   3.0e+00   0.0e+00   1.5e-03
[ Info:     28   2.8e+00   3.0e+00   0.0e+00   8.1e+00
[ Info:     29  -2.6e-01   3.0e+00   0.0e+00   1.5e-03
[ Info:     30   2.8e+00   3.0e+00   0.0e+00   8.1e+00
[ Info:     31  -2.6e-01   3.0e+00   0.0e+00   1.5e-03
[ Info:     32   2.8e+00   3.0e+00   0.0e+00   8.1e+00
[ Info:     33  -2.6e-01   3.0e+00   0.0e+00   1.5e-03
[ Info:     34   2.8e+00   3.0e+00   0.0e+00   8.1e+00
[ Info:     35  -2.6e-01   3.0e+00   0.0e+00   1.5e-03
[ Info:     36   2.8e+00   3.0e+00   0.0e+00   8.1e+00
[ Info:     37  -2.6e-01   3.0e+00   0.0e+00   1.5e-03
[ Info:     38   2.8e+00   3.0e+00   0.0e+00   8.1e+00
[ Info:     39  -2.6e-01   3.0e+00   0.0e+00   1.5e-03
[ Info:     40   2.8e+00   3.0e+00   0.0e+00   8.1e+00
[ Info:     41  -2.6e-01   3.0e+00   0.0e+00   1.5e-03
[ Info:     42   2.8e+00   3.0e+00   0.0e+00   8.1e+00
[ Info:     43  -2.6e-01   3.0e+00   0.0e+00   1.5e-03
[ Info:     44   2.8e+00   3.0e+00   0.0e+00   8.1e+00
[ Info:     45  -2.6e-01   3.0e+00   0.0e+00   1.5e-03
[ Info:     46   2.8e+00   3.0e+00   0.0e+00   8.1e+00
[ Info:     47  -2.6e-01   3.0e+00   0.0e+00   1.5e-03
[ Info:     48   2.8e+00   3.0e+00   0.0e+00   8.1e+00
[ Info:     49  -2.6e-01   3.0e+00   0.0e+00   1.5e-03
[ Info:     50   2.8e+00   3.0e+00   0.0e+00   8.1e+00
[ Info:     51  -2.6e-01   3.0e+00   0.0e+00   1.5e-03
[ Info:     52   2.8e+00   3.0e+00   0.0e+00   8.1e+00
[ Info:     53  -2.6e-01   3.0e+00   0.0e+00   1.5e-03
[ Info:     54   2.8e+00   3.0e+00   0.0e+00   8.1e+00
[ Info:     55  -2.6e-01   3.0e+00   0.0e+00   1.5e-03
[ Info:     56   2.8e+00   3.0e+00   0.0e+00   8.1e+00
[ Info:     57  -2.6e-01   3.0e+00   0.0e+00   1.5e-03
[ Info:     58   2.8e+00   3.0e+00   0.0e+00   8.1e+00
[ Info:     59  -2.6e-01   3.0e+00   0.0e+00   1.5e-03
[ Info:     60   2.8e+00   3.0e+00   0.0e+00   8.1e+00
[ Info:   iter       obj      Δobj  violation  kkt_residual  
[ Info:      0   4.2e+00       Inf   0.0e+00   1.3e+01
[ Info:      1  -1.0e+00   5.3e+00   0.0e+00   1.5e-03
[ Info:      2   6.0e+03   6.0e+03   0.0e+00   1.0e+03
[ Info:      3  -1.0e+00   6.0e+03   0.0e+00   1.5e-03
[ Info:      4   5.7e+01   5.8e+01   0.0e+00   4.7e+01
[ Info:      5  -1.1e+00   5.8e+01   0.0e+00   1.5e-03
[ Info:      6  -1.3e+00   1.5e-01   0.0e+00   1.5e-03
[ Info:      7   5.6e+02   5.6e+02   0.0e+00   1.7e+02
[ Info:      8  -1.3e+00   5.6e+02   0.0e+00   1.5e-03
[ Info:      9   7.4e+01   7.5e+01   0.0e+00   5.4e+01
[ Info:     10  -1.3e+00   7.5e+01   0.0e+00   1.5e-03
[ Info:     11   3.6e+00   4.9e+00   0.0e+00   1.3e+01
[ Info:     12  -1.3e+00   4.9e+00   0.0e+00   1.5e-03
[ Info:     13  -1.3e+00   2.2e-02   0.0e+00   1.5e-03
[ Info:     14   1.6e+01   1.7e+01   0.0e+00   2.4e+01
[ Info:     15  -1.3e+00   1.7e+01   0.0e+00   1.5e-03
[ Info:     16   4.2e+00   5.6e+00   0.0e+00   1.3e+01
[ Info:     17  -1.3e+00   5.6e+00   0.0e+00   1.5e-03
[ Info:     18   4.2e+00   5.6e+00   0.0e+00   1.3e+01
[ Info:     19  -1.3e+00   5.6e+00   0.0e+00   1.5e-03
[ Info:     20   4.2e+00   5.6e+00   0.0e+00   1.3e+01
[ Info:     21  -1.3e+00   5.6e+00   0.0e+00   1.5e-03
[ Info:     22   4.2e+00   5.6e+00   0.0e+00   1.3e+01
[ Info:     23  -1.3e+00   5.6e+00   0.0e+00   1.5e-03
[ Info:     24   4.2e+00   5.6e+00   0.0e+00   1.3e+01
[ Info:     25  -1.3e+00   5.6e+00   0.0e+00   1.5e-03
[ Info:     26   4.2e+00   5.6e+00   0.0e+00   1.3e+01
[ Info:     27  -1.3e+00   5.6e+00   0.0e+00   1.5e-03
[ Info:     28   4.2e+00   5.6e+00   0.0e+00   1.3e+01
[ Info:     29  -1.3e+00   5.6e+00   0.0e+00   1.5e-03
[ Info:     30   4.2e+00   5.6e+00   0.0e+00   1.3e+01
[ Info:     31  -1.3e+00   5.6e+00   0.0e+00   1.5e-03
[ Info:     32   4.2e+00   5.6e+00   0.0e+00   1.3e+01
[ Info:     33  -1.3e+00   5.6e+00   0.0e+00   1.5e-03
[ Info:     34   4.2e+00   5.6e+00   0.0e+00   1.3e+01
[ Info:     35  -1.3e+00   5.6e+00   0.0e+00   1.5e-03
[ Info:     36   4.2e+00   5.6e+00   0.0e+00   1.3e+01
[ Info:     37  -1.3e+00   5.6e+00   0.0e+00   1.5e-03
[ Info:     38   4.2e+00   5.6e+00   0.0e+00   1.3e+01
[ Info:     39  -1.3e+00   5.6e+00   0.0e+00   1.5e-03
[ Info:     40   4.2e+00   5.6e+00   0.0e+00   1.3e+01
[ Info:     41  -1.3e+00   5.6e+00   0.0e+00   1.5e-03
[ Info:     42   4.2e+00   5.6e+00   0.0e+00   1.3e+01
[ Info:     43  -1.3e+00   5.6e+00   0.0e+00   1.5e-03
[ Info:     44   4.2e+00   5.6e+00   0.0e+00   1.3e+01
[ Info:     45  -1.3e+00   5.6e+00   0.0e+00   1.5e-03
[ Info:     46   4.2e+00   5.6e+00   0.0e+00   1.3e+01
[ Info:     47  -1.3e+00   5.6e+00   0.0e+00   1.5e-03
[ Info:     48   4.2e+00   5.6e+00   0.0e+00   1.3e+01
[ Info:     49  -1.3e+00   5.6e+00   0.0e+00   1.5e-03
[ Info:     50   4.2e+00   5.6e+00   0.0e+00   1.3e+01
[ Info:     51  -1.3e+00   5.6e+00   0.0e+00   1.5e-03
[ Info:     52   4.2e+00   5.6e+00   0.0e+00   1.3e+01
[ Info:     53  -1.3e+00   5.6e+00   0.0e+00   1.5e-03
[ Info:     54   4.2e+00   5.6e+00   0.0e+00   1.3e+01
[ Info:     55  -1.3e+00   5.6e+00   0.0e+00   1.5e-03
[ Info:     56   4.2e+00   5.6e+00   0.0e+00   1.3e+01
[ Info:     57  -1.3e+00   5.6e+00   0.0e+00   1.5e-03
[ Info:     58   4.2e+00   5.6e+00   0.0e+00   1.3e+01
[ Info:     59  -1.3e+00   5.6e+00   0.0e+00   1.5e-03
[ Info:     60   4.2e+00   5.6e+00   0.0e+00   1.3e+01
[ Info:   iter       obj      Δobj  violation  kkt_residual  
[ Info:      0   6.4e+00       Inf   0.0e+00   2.2e+01
[ Info:      1  -2.7e+00   9.1e+00   0.0e+00   1.5e-03
[ Info:      2   8.9e+03   8.9e+03   0.0e+00   1.5e+03
[ Info:      3  -2.7e+00   8.9e+03   0.0e+00   1.5e-03
[ Info:      4   8.8e+01   9.0e+01   0.0e+00   7.1e+01
[ Info:      5  -2.8e+00   9.0e+01   0.0e+00   1.5e-03
[ Info:      6  -3.0e+00   1.5e-01   0.0e+00   1.5e-03
[ Info:      7   8.4e+02   8.5e+02   0.0e+00   2.6e+02
[ Info:      8  -2.9e+00   8.5e+02   0.0e+00   1.5e-03
[ Info:      9   1.1e+02   1.2e+02   0.0e+00   8.2e+01
[ Info:     10  -3.0e+00   1.2e+02   0.0e+00   1.5e-03
[ Info:     11   5.4e+00   8.4e+00   0.0e+00   2.0e+01
[ Info:     12  -3.0e+00   8.4e+00   0.0e+00   1.5e-03
[ Info:     13  -3.0e+00   2.2e-02   0.0e+00   1.5e-03
[ Info:     14   2.5e+01   2.8e+01   0.0e+00   3.8e+01
[ Info:     15  -3.0e+00   2.8e+01   0.0e+00   1.5e-03
[ Info:     16   6.4e+00   9.4e+00   0.0e+00   2.2e+01
[ Info:     17  -3.0e+00   9.4e+00   0.0e+00   1.5e-03
[ Info:     18   6.4e+00   9.4e+00   0.0e+00   2.2e+01
[ Info:     19  -3.0e+00   9.4e+00   0.0e+00   1.5e-03
[ Info:     20   6.4e+00   9.4e+00   0.0e+00   2.2e+01
[ Info:     21  -3.0e+00   9.4e+00   0.0e+00   1.5e-03
[ Info:     22   6.4e+00   9.4e+00   0.0e+00   2.2e+01
[ Info:     23  -3.0e+00   9.4e+00   0.0e+00   1.5e-03
[ Info:     24   6.4e+00   9.4e+00   0.0e+00   2.2e+01
[ Info:     25  -3.0e+00   9.4e+00   0.0e+00   1.5e-03
[ Info:     26   6.4e+00   9.4e+00   0.0e+00   2.2e+01
[ Info:     27  -3.0e+00   9.4e+00   0.0e+00   1.5e-03
[ Info:     28   6.4e+00   9.4e+00   0.0e+00   2.2e+01
[ Info:     29  -3.0e+00   9.4e+00   0.0e+00   1.5e-03
[ Info:     30   6.4e+00   9.4e+00   0.0e+00   2.2e+01
[ Info:     31  -3.0e+00   9.4e+00   0.0e+00   1.5e-03
[ Info:     32   6.4e+00   9.4e+00   0.0e+00   2.2e+01
[ Info:     33  -3.0e+00   9.4e+00   0.0e+00   1.5e-03
[ Info:     34   6.4e+00   9.4e+00   0.0e+00   2.2e+01
[ Info:     35  -3.0e+00   9.4e+00   0.0e+00   1.5e-03
[ Info:     36   6.4e+00   9.4e+00   0.0e+00   2.2e+01
[ Info:     37  -3.0e+00   9.4e+00   0.0e+00   1.5e-03
[ Info:     38   6.4e+00   9.4e+00   0.0e+00   2.2e+01
[ Info:     39  -3.0e+00   9.4e+00   0.0e+00   1.5e-03
[ Info:     40   6.4e+00   9.4e+00   0.0e+00   2.2e+01
[ Info:     41  -3.0e+00   9.4e+00   0.0e+00   1.5e-03
[ Info:     42   6.4e+00   9.4e+00   0.0e+00   2.2e+01
[ Info:     43  -3.0e+00   9.4e+00   0.0e+00   1.5e-03
[ Info:     44   6.4e+00   9.4e+00   0.0e+00   2.2e+01
[ Info:     45  -3.0e+00   9.4e+00   0.0e+00   1.5e-03
[ Info:     46   6.4e+00   9.4e+00   0.0e+00   2.2e+01
[ Info:     47  -3.0e+00   9.4e+00   0.0e+00   1.5e-03
[ Info:     48   6.4e+00   9.4e+00   0.0e+00   2.2e+01
[ Info:     49  -3.0e+00   9.4e+00   0.0e+00   1.5e-03
[ Info:     50   6.4e+00   9.4e+00   0.0e+00   2.2e+01
[ Info:     51  -3.0e+00   9.4e+00   0.0e+00   1.5e-03
[ Info:     52   6.4e+00   9.4e+00   0.0e+00   2.2e+01
[ Info:     53  -3.0e+00   9.4e+00   0.0e+00   1.5e-03
[ Info:     54   6.4e+00   9.4e+00   0.0e+00   2.2e+01
[ Info:     55  -3.0e+00   9.4e+00   0.0e+00   1.5e-03
[ Info:     56   6.4e+00   9.4e+00   0.0e+00   2.2e+01
[ Info:     57  -3.0e+00   9.4e+00   0.0e+00   1.5e-03
[ Info:     58   6.4e+00   9.4e+00   0.0e+00   2.2e+01
[ Info:     59  -3.0e+00   9.4e+00   0.0e+00   1.5e-03
[ Info:     60   6.4e+00   9.4e+00   0.0e+00   2.2e+01
[ Info:   iter       obj      Δobj  violation  kkt_residual  
[ Info:      0   9.7e+00       Inf   0.0e+00   3.4e+01
[ Info:      1  -5.3e+00   1.5e+01   0.0e+00   1.5e-03
[ Info:      2   1.3e+04   1.3e+04   0.0e+00   2.2e+03
[ Info:      3  -5.3e+00   1.3e+04   0.0e+00   1.5e-03
[ Info:      4   1.3e+02   1.4e+02   0.0e+00   1.1e+02
[ Info:      5  -5.4e+00   1.4e+02   0.0e+00   1.5e-03
[ Info:      6  -5.5e+00   1.5e-01   0.0e+00   1.5e-03
[ Info:      7   1.3e+03   1.3e+03   0.0e+00   3.9e+02
[ Info:      8  -5.5e+00   1.3e+03   0.0e+00   1.5e-03
[ Info:      9   1.7e+02   1.8e+02   0.0e+00   1.2e+02
[ Info:     10  -5.6e+00   1.8e+02   0.0e+00   1.5e-03
[ Info:     11   8.1e+00   1.4e+01   0.0e+00   3.2e+01
[ Info:     12  -5.6e+00   1.4e+01   0.0e+00   1.5e-03
[ Info:     13  -5.6e+00   2.2e-02   0.0e+00   1.5e-03
[ Info:     14   3.8e+01   4.4e+01   0.0e+00   5.8e+01
[ Info:     15  -5.6e+00   4.4e+01   0.0e+00   1.5e-03
[ Info:     16   9.7e+00   1.5e+01   0.0e+00   3.4e+01
[ Info:     17  -5.6e+00   1.5e+01   0.0e+00   1.5e-03
[ Info:     18   9.7e+00   1.5e+01   0.0e+00   3.4e+01
[ Info:     19  -5.6e+00   1.5e+01   0.0e+00   1.5e-03
[ Info:     20   9.7e+00   1.5e+01   0.0e+00   3.4e+01
[ Info:     21  -5.6e+00   1.5e+01   0.0e+00   1.5e-03
[ Info:     22   9.7e+00   1.5e+01   0.0e+00   3.4e+01
[ Info:     23  -5.6e+00   1.5e+01   0.0e+00   1.5e-03
[ Info:     24   9.7e+00   1.5e+01   0.0e+00   3.4e+01
[ Info:     25  -5.6e+00   1.5e+01   0.0e+00   1.5e-03
[ Info:     26   9.7e+00   1.5e+01   0.0e+00   3.4e+01
[ Info:     27  -5.6e+00   1.5e+01   0.0e+00   1.5e-03
[ Info:     28   9.7e+00   1.5e+01   0.0e+00   3.4e+01
[ Info:     29  -5.6e+00   1.5e+01   0.0e+00   1.5e-03
[ Info:     30   9.7e+00   1.5e+01   0.0e+00   3.4e+01
[ Info:     31  -5.6e+00   1.5e+01   0.0e+00   1.5e-03
[ Info:     32   9.7e+00   1.5e+01   0.0e+00   3.4e+01
[ Info:     33  -5.6e+00   1.5e+01   0.0e+00   1.5e-03
[ Info:     34   9.7e+00   1.5e+01   0.0e+00   3.4e+01
[ Info:     35  -5.6e+00   1.5e+01   0.0e+00   1.5e-03
[ Info:     36   9.7e+00   1.5e+01   0.0e+00   3.4e+01
[ Info:     37  -5.6e+00   1.5e+01   0.0e+00   1.5e-03
[ Info:     38   9.7e+00   1.5e+01   0.0e+00   3.4e+01
[ Info:     39  -5.6e+00   1.5e+01   0.0e+00   1.5e-03
[ Info:     40   9.7e+00   1.5e+01   0.0e+00   3.4e+01
[ Info:     41  -5.6e+00   1.5e+01   0.0e+00   1.5e-03
[ Info:     42   9.7e+00   1.5e+01   0.0e+00   3.4e+01
[ Info:     43  -5.6e+00   1.5e+01   0.0e+00   1.5e-03
[ Info:     44   9.7e+00   1.5e+01   0.0e+00   3.4e+01
[ Info:     45  -5.6e+00   1.5e+01   0.0e+00   1.5e-03
[ Info:     46   9.7e+00   1.5e+01   0.0e+00   3.4e+01
[ Info:     47  -5.6e+00   1.5e+01   0.0e+00   1.5e-03
[ Info:     48   9.7e+00   1.5e+01   0.0e+00   3.4e+01
[ Info:     49  -5.6e+00   1.5e+01   0.0e+00   1.5e-03
[ Info:     50   9.7e+00   1.5e+01   0.0e+00   3.4e+01
[ Info:     51  -5.6e+00   1.5e+01   0.0e+00   1.5e-03
[ Info:     52   9.7e+00   1.5e+01   0.0e+00   3.4e+01
[ Info:     53  -5.6e+00   1.5e+01   0.0e+00   1.5e-03
[ Info:     54   9.7e+00   1.5e+01   0.0e+00   3.4e+01
[ Info:     55  -5.6e+00   1.5e+01   0.0e+00   1.5e-03
[ Info:     56   9.7e+00   1.5e+01   0.0e+00   3.4e+01
[ Info:     57  -5.6e+00   1.5e+01   0.0e+00   1.5e-03
[ Info:     58   9.7e+00   1.5e+01   0.0e+00   3.4e+01
[ Info:     59  -5.6e+00   1.5e+01   0.0e+00   1.5e-03
[ Info:     60   9.7e+00   1.5e+01   0.0e+00   3.4e+01
[ Info:   iter       obj      Δobj  violation  kkt_residual  
[ Info:      0   1.5e+01       Inf   0.0e+00   5.2e+01
[ Info:      1  -9.2e+00   2.4e+01   0.0e+00   1.5e-03
[ Info:      2   2.0e+04   2.0e+04   0.0e+00   3.3e+03
[ Info:      3  -9.2e+00   2.0e+04   0.0e+00   1.5e-03
[ Info:      4   2.0e+02   2.1e+02   0.0e+00   1.6e+02
[ Info:      5  -9.3e+00   2.1e+02   0.0e+00   1.5e-03
[ Info:      6  -9.5e+00   1.5e-01   0.0e+00   1.5e-03
[ Info:      7   1.9e+03   1.9e+03   0.0e+00   5.9e+02
[ Info:      8  -9.4e+00   1.9e+03   0.0e+00   1.5e-03
[ Info:      9   2.6e+02   2.7e+02   0.0e+00   1.9e+02
[ Info:     10  -9.5e+00   2.7e+02   0.0e+00   1.5e-03
[ Info:     11   1.2e+01   2.2e+01   0.0e+00   4.9e+01
[ Info:     12  -9.5e+00   2.2e+01   0.0e+00   1.5e-03
[ Info:     13  -9.5e+00   2.2e-02   0.0e+00   1.5e-03
[ Info:     14   5.8e+01   6.8e+01   0.0e+00   8.8e+01
[ Info:     15  -9.5e+00   6.8e+01   0.0e+00   1.5e-03
[ Info:     16   1.5e+01   2.4e+01   0.0e+00   5.2e+01
[ Info:     17  -9.5e+00   2.4e+01   0.0e+00   1.5e-03
[ Info:     18   1.5e+01   2.4e+01   0.0e+00   5.2e+01
[ Info:     19  -9.5e+00   2.4e+01   0.0e+00   1.5e-03
[ Info:     20   1.5e+01   2.4e+01   0.0e+00   5.2e+01
[ Info:     21  -9.5e+00   2.4e+01   0.0e+00   1.5e-03
[ Info:     22   1.5e+01   2.4e+01   0.0e+00   5.2e+01
[ Info:     23  -9.5e+00   2.4e+01   0.0e+00   1.5e-03
[ Info:     24   1.5e+01   2.4e+01   0.0e+00   5.2e+01
[ Info:     25  -9.5e+00   2.4e+01   0.0e+00   1.5e-03
[ Info:     26   1.5e+01   2.4e+01   0.0e+00   5.2e+01
[ Info:     27  -9.5e+00   2.4e+01   0.0e+00   1.5e-03
[ Info:     28   1.5e+01   2.4e+01   0.0e+00   5.2e+01
[ Info:     29  -9.5e+00   2.4e+01   0.0e+00   1.5e-03
[ Info:     30   1.5e+01   2.4e+01   0.0e+00   5.2e+01
[ Info:     31  -9.5e+00   2.4e+01   0.0e+00   1.5e-03
[ Info:     32   1.5e+01   2.4e+01   0.0e+00   5.2e+01
[ Info:     33  -9.5e+00   2.4e+01   0.0e+00   1.5e-03
[ Info:     34   1.5e+01   2.4e+01   0.0e+00   5.2e+01
[ Info:     35  -9.5e+00   2.4e+01   0.0e+00   1.5e-03
[ Info:     36   1.5e+01   2.4e+01   0.0e+00   5.2e+01
[ Info:     37  -9.5e+00   2.4e+01   0.0e+00   1.5e-03
[ Info:     38   1.5e+01   2.4e+01   0.0e+00   5.2e+01
[ Info:     39  -9.5e+00   2.4e+01   0.0e+00   1.5e-03
[ Info:     40   1.5e+01   2.4e+01   0.0e+00   5.2e+01
[ Info:     41  -9.5e+00   2.4e+01   0.0e+00   1.5e-03
[ Info:     42   1.5e+01   2.4e+01   0.0e+00   5.2e+01
[ Info:     43  -9.5e+00   2.4e+01   0.0e+00   1.5e-03
[ Info:     44   1.5e+01   2.4e+01   0.0e+00   5.2e+01
[ Info:     45  -9.5e+00   2.4e+01   0.0e+00   1.5e-03
[ Info:     46   1.5e+01   2.4e+01   0.0e+00   5.2e+01
[ Info:     47  -9.5e+00   2.4e+01   0.0e+00   1.5e-03
[ Info:     48   1.5e+01   2.4e+01   0.0e+00   5.2e+01
[ Info:     49  -9.5e+00   2.4e+01   0.0e+00   1.5e-03
[ Info:     50   1.5e+01   2.4e+01   0.0e+00   5.2e+01
[ Info:     51  -9.5e+00   2.4e+01   0.0e+00   1.5e-03
[ Info:     52   1.5e+01   2.4e+01   0.0e+00   5.2e+01
[ Info:     53  -9.5e+00   2.4e+01   0.0e+00   1.5e-03
[ Info:     54   1.5e+01   2.4e+01   0.0e+00   5.2e+01
[ Info:     55  -9.5e+00   2.4e+01   0.0e+00   1.5e-03
[ Info:     56   1.5e+01   2.4e+01   0.0e+00   5.2e+01
[ Info:     57  -9.5e+00   2.4e+01   0.0e+00   1.5e-03
[ Info:     58   1.5e+01   2.4e+01   0.0e+00   5.2e+01
[ Info:     59  -9.5e+00   2.4e+01   0.0e+00   1.5e-03
[ Info:     60   1.5e+01   2.4e+01   0.0e+00   5.2e+01
[ Info:   iter       obj      Δobj  violation  kkt_residual  
[ Info:      0   2.2e+01       Inf   0.0e+00   7.9e+01
[ Info:      1  -1.5e+01   3.7e+01   0.0e+00   1.5e-03
[ Info:      2   2.9e+04   2.9e+04   0.0e+00   4.9e+03
[ Info:      3  -1.5e+01   2.9e+04   0.0e+00   1.5e-03
[ Info:      4   3.1e+02   3.2e+02   0.0e+00   2.5e+02
[ Info:      5  -1.5e+01   3.2e+02   0.0e+00   1.5e-03
[ Info:      6  -1.5e+01   1.5e-01   0.0e+00   1.5e-03
[ Info:      7   2.9e+03   2.9e+03   0.0e+00   8.9e+02
[ Info:      8  -1.5e+01   2.9e+03   0.0e+00   1.5e-03
[ Info:      9   4.0e+02   4.1e+02   0.0e+00   2.8e+02
[ Info:     10  -1.5e+01   4.1e+02   0.0e+00   1.5e-03
[ Info:     11   1.8e+01   3.4e+01   0.0e+00   7.5e+01
[ Info:     12  -1.5e+01   3.4e+01   0.0e+00   1.5e-03
[ Info:     13  -1.5e+01   2.2e-02   0.0e+00   1.5e-03
[ Info:     14   8.8e+01   1.0e+02   0.0e+00   1.3e+02
[ Info:     15  -1.5e+01   1.0e+02   0.0e+00   1.5e-03
[ Info:     16   2.2e+01   3.7e+01   0.0e+00   7.9e+01
[ Info:     17  -1.5e+01   3.7e+01   0.0e+00   1.5e-03
[ Info:     18   2.2e+01   3.7e+01   0.0e+00   7.9e+01
[ Info:     19  -1.5e+01   3.7e+01   0.0e+00   1.5e-03
[ Info:     20   2.2e+01   3.7e+01   0.0e+00   7.9e+01
[ Info:     21  -1.5e+01   3.7e+01   0.0e+00   1.5e-03
[ Info:     22   2.2e+01   3.7e+01   0.0e+00   7.9e+01
[ Info:     23  -1.5e+01   3.7e+01   0.0e+00   1.5e-03
[ Info:     24   2.2e+01   3.7e+01   0.0e+00   7.9e+01
[ Info:     25  -1.5e+01   3.7e+01   0.0e+00   1.5e-03
[ Info:     26   2.2e+01   3.7e+01   0.0e+00   7.9e+01
[ Info:     27  -1.5e+01   3.7e+01   0.0e+00   1.5e-03
[ Info:     28   2.2e+01   3.7e+01   0.0e+00   7.9e+01
[ Info:     29  -1.5e+01   3.7e+01   0.0e+00   1.5e-03
[ Info:     30   2.2e+01   3.7e+01   0.0e+00   7.9e+01
[ Info:     31  -1.5e+01   3.7e+01   0.0e+00   1.5e-03
[ Info:     32   2.2e+01   3.7e+01   0.0e+00   7.9e+01
[ Info:     33  -1.5e+01   3.7e+01   0.0e+00   1.5e-03
[ Info:     34   2.2e+01   3.7e+01   0.0e+00   7.9e+01
[ Info:     35  -1.5e+01   3.7e+01   0.0e+00   1.5e-03
[ Info:     36   2.2e+01   3.7e+01   0.0e+00   7.9e+01
[ Info:     37  -1.5e+01   3.7e+01   0.0e+00   1.5e-03
[ Info:     38   2.2e+01   3.7e+01   0.0e+00   7.9e+01
[ Info:     39  -1.5e+01   3.7e+01   0.0e+00   1.5e-03
[ Info:     40   2.2e+01   3.7e+01   0.0e+00   7.9e+01
[ Info:     41  -1.5e+01   3.7e+01   0.0e+00   1.5e-03
[ Info:     42   2.2e+01   3.7e+01   0.0e+00   7.9e+01
[ Info:     43  -1.5e+01   3.7e+01   0.0e+00   1.5e-03
[ Info:     44   2.2e+01   3.7e+01   0.0e+00   7.9e+01
[ Info:     45  -1.5e+01   3.7e+01   0.0e+00   1.5e-03
[ Info:     46   2.2e+01   3.7e+01   0.0e+00   7.9e+01
[ Info:     47  -1.5e+01   3.7e+01   0.0e+00   1.5e-03
[ Info:     48   2.2e+01   3.7e+01   0.0e+00   7.9e+01
[ Info:     49  -1.5e+01   3.7e+01   0.0e+00   1.5e-03
[ Info:     50   2.2e+01   3.7e+01   0.0e+00   7.9e+01
[ Info:     51  -1.5e+01   3.7e+01   0.0e+00   1.5e-03
[ Info:     52   2.2e+01   3.7e+01   0.0e+00   7.9e+01
[ Info:     53  -1.5e+01   3.7e+01   0.0e+00   1.5e-03
[ Info:     54   2.2e+01   3.7e+01   0.0e+00   7.9e+01
[ Info:     55  -1.5e+01   3.7e+01   0.0e+00   1.5e-03
[ Info:     56   2.2e+01   3.7e+01   0.0e+00   7.9e+01
[ Info:     57  -1.5e+01   3.7e+01   0.0e+00   1.5e-03
[ Info:     58   2.2e+01   3.7e+01   0.0e+00   7.9e+01
[ Info:     59  -1.5e+01   3.7e+01   0.0e+00   1.5e-03
[ Info:     60   2.2e+01   3.7e+01   0.0e+00   7.9e+01
[ Info:   iter       obj      Δobj  violation  kkt_residual  
[ Info:      0   3.3e+01       Inf   0.0e+00   1.2e+02
[ Info:      1  -2.4e+01   5.7e+01   0.0e+00   1.5e-03
[ Info:      2   4.4e+04   4.4e+04   0.0e+00   7.3e+03
[ Info:      3  -2.4e+01   4.4e+04   0.0e+00   1.5e-03
[ Info:      4   4.6e+02   4.9e+02   0.0e+00   3.7e+02
[ Info:      5  -2.4e+01   4.9e+02   0.0e+00   1.5e-03
[ Info:      6  -2.4e+01   1.5e-01   0.0e+00   1.5e-03
[ Info:      7   4.3e+03   4.4e+03   0.0e+00   1.3e+03
[ Info:      8  -2.4e+01   4.4e+03   0.0e+00   1.5e-03
[ Info:      9   6.0e+02   6.2e+02   0.0e+00   4.3e+02
[ Info:     10  -2.4e+01   6.2e+02   0.0e+00   1.5e-03
[ Info:     11   2.7e+01   5.2e+01   0.0e+00   1.1e+02
[ Info:     12  -2.4e+01   5.2e+01   0.0e+00   1.5e-03
[ Info:     13  -2.4e+01   2.2e-02   0.0e+00   1.5e-03
[ Info:     14   1.3e+02   1.6e+02   0.0e+00   2.0e+02
[ Info:     15  -2.4e+01   1.6e+02   0.0e+00   1.5e-03
[ Info:     16   3.3e+01   5.7e+01   0.0e+00   1.2e+02
[ Info:     17  -2.4e+01   5.7e+01   0.0e+00   1.5e-03
[ Info:     18   3.3e+01   5.7e+01   0.0e+00   1.2e+02
[ Info:     19  -2.4e+01   5.7e+01   0.0e+00   1.5e-03
[ Info:     20   3.3e+01   5.7e+01   0.0e+00   1.2e+02
[ Info:     21  -2.4e+01   5.7e+01   0.0e+00   1.5e-03
[ Info:     22   3.3e+01   5.7e+01   0.0e+00   1.2e+02
[ Info:     23  -2.4e+01   5.7e+01   0.0e+00   1.5e-03
[ Info:     24   3.3e+01   5.7e+01   0.0e+00   1.2e+02
[ Info:     25  -2.4e+01   5.7e+01   0.0e+00   1.5e-03
[ Info:     26   3.3e+01   5.7e+01   0.0e+00   1.2e+02
[ Info:     27  -2.4e+01   5.7e+01   0.0e+00   1.5e-03
[ Info:     28   3.3e+01   5.7e+01   0.0e+00   1.2e+02
[ Info:     29  -2.4e+01   5.7e+01   0.0e+00   1.5e-03
[ Info:     30   3.3e+01   5.7e+01   0.0e+00   1.2e+02
[ Info:     31  -2.4e+01   5.7e+01   0.0e+00   1.5e-03
[ Info:     32   3.3e+01   5.7e+01   0.0e+00   1.2e+02
[ Info:     33  -2.4e+01   5.7e+01   0.0e+00   1.5e-03
[ Info:     34   3.3e+01   5.7e+01   0.0e+00   1.2e+02
[ Info:     35  -2.4e+01   5.7e+01   0.0e+00   1.5e-03
[ Info:     36   3.3e+01   5.7e+01   0.0e+00   1.2e+02
[ Info:     37  -2.4e+01   5.7e+01   0.0e+00   1.5e-03
[ Info:     38   3.3e+01   5.7e+01   0.0e+00   1.2e+02
[ Info:     39  -2.4e+01   5.7e+01   0.0e+00   1.5e-03
[ Info:     40   3.3e+01   5.7e+01   0.0e+00   1.2e+02
[ Info:     41  -2.4e+01   5.7e+01   0.0e+00   1.5e-03
[ Info:     42   3.3e+01   5.7e+01   0.0e+00   1.2e+02
[ Info:     43  -2.4e+01   5.7e+01   0.0e+00   1.5e-03
[ Info:     44   3.3e+01   5.7e+01   0.0e+00   1.2e+02
[ Info:     45  -2.4e+01   5.7e+01   0.0e+00   1.5e-03
[ Info:     46   3.3e+01   5.7e+01   0.0e+00   1.2e+02
[ Info:     47  -2.4e+01   5.7e+01   0.0e+00   1.5e-03
[ Info:     48   3.3e+01   5.7e+01   0.0e+00   1.2e+02
[ Info:     49  -2.4e+01   5.7e+01   0.0e+00   1.5e-03
[ Info:     50   3.3e+01   5.7e+01   0.0e+00   1.2e+02
[ Info:     51  -2.4e+01   5.7e+01   0.0e+00   1.5e-03
[ Info:     52   3.3e+01   5.7e+01   0.0e+00   1.2e+02
[ Info:     53  -2.4e+01   5.7e+01   0.0e+00   1.5e-03
[ Info:     54   3.3e+01   5.7e+01   0.0e+00   1.2e+02
[ Info:     55  -2.4e+01   5.7e+01   0.0e+00   1.5e-03
[ Info:     56   3.3e+01   5.7e+01   0.0e+00   1.2e+02
[ Info:     57  -2.4e+01   5.7e+01   0.0e+00   1.5e-03
[ Info:     58   3.3e+01   5.7e+01   0.0e+00   1.2e+02
[ Info:     59  -2.4e+01   5.7e+01   0.0e+00   1.5e-03
[ Info:     60   3.3e+01   5.7e+01   0.0e+00   1.2e+02
[ Info:   iter       obj      Δobj  violation  kkt_residual  
[ Info:      0   5.0e+01       Inf   0.0e+00   1.8e+02
[ Info:      1  -3.7e+01   8.7e+01   0.0e+00   1.5e-03
[ Info:      2   6.5e+04   6.5e+04   0.0e+00   1.1e+04
[ Info:      3  -3.7e+01   6.5e+04   0.0e+00   1.5e-03
[ Info:      4   7.0e+02   7.3e+02   0.0e+00   5.6e+02
[ Info:      5  -3.7e+01   7.3e+02   0.0e+00   1.5e-03
[ Info:      6  -3.7e+01   1.5e-01   0.0e+00   1.5e-03
[ Info:      7   6.5e+03   6.6e+03   0.0e+00   2.0e+03
[ Info:      8  -3.7e+01   6.6e+03   0.0e+00   1.5e-03
[ Info:      9   9.0e+02   9.4e+02   0.0e+00   6.4e+02
[ Info:     10  -3.7e+01   9.4e+02   0.0e+00   1.5e-03
[ Info:     11   4.1e+01   7.9e+01   0.0e+00   1.7e+02
[ Info:     12  -3.7e+01   7.9e+01   0.0e+00   1.5e-03
[ Info:     13  -3.8e+01   2.2e-02   0.0e+00   1.5e-03
[ Info:     14   2.0e+02   2.4e+02   0.0e+00   3.0e+02
[ Info:     15  -3.8e+01   2.4e+02   0.0e+00   1.5e-03
[ Info:     16   5.0e+01   8.7e+01   0.0e+00   1.8e+02
[ Info:     17  -3.8e+01   8.7e+01   0.0e+00   1.5e-03
[ Info:     18   5.0e+01   8.7e+01   0.0e+00   1.8e+02
[ Info:     19  -3.8e+01   8.7e+01   0.0e+00   1.5e-03
[ Info:     20   5.0e+01   8.7e+01   0.0e+00   1.8e+02
[ Info:     21  -3.8e+01   8.7e+01   0.0e+00   1.5e-03
[ Info:     22   5.0e+01   8.7e+01   0.0e+00   1.8e+02
[ Info:     23  -3.8e+01   8.7e+01   0.0e+00   1.5e-03
[ Info:     24   5.0e+01   8.7e+01   0.0e+00   1.8e+02
[ Info:     25  -3.8e+01   8.7e+01   0.0e+00   1.5e-03
[ Info:     26   5.0e+01   8.7e+01   0.0e+00   1.8e+02
[ Info:     27  -3.8e+01   8.7e+01   0.0e+00   1.5e-03
[ Info:     28   5.0e+01   8.7e+01   0.0e+00   1.8e+02
[ Info:     29  -3.8e+01   8.7e+01   0.0e+00   1.5e-03
[ Info:     30   5.0e+01   8.7e+01   0.0e+00   1.8e+02
[ Info:     31  -3.8e+01   8.7e+01   0.0e+00   1.5e-03
[ Info:     32   5.0e+01   8.7e+01   0.0e+00   1.8e+02
[ Info:     33  -3.8e+01   8.7e+01   0.0e+00   1.5e-03
[ Info:     34   5.0e+01   8.7e+01   0.0e+00   1.8e+02
[ Info:     35  -3.8e+01   8.7e+01   0.0e+00   1.5e-03
[ Info:     36   5.0e+01   8.7e+01   0.0e+00   1.8e+02
[ Info:     37  -3.8e+01   8.7e+01   0.0e+00   1.5e-03
[ Info:     38   5.0e+01   8.7e+01   0.0e+00   1.8e+02
[ Info:     39  -3.8e+01   8.7e+01   0.0e+00   1.5e-03
[ Info:     40   5.0e+01   8.7e+01   0.0e+00   1.8e+02
[ Info:     41  -3.8e+01   8.7e+01   0.0e+00   1.5e-03
[ Info:     42   5.0e+01   8.7e+01   0.0e+00   1.8e+02
[ Info:     43  -3.8e+01   8.7e+01   0.0e+00   1.5e-03
[ Info:     44   5.0e+01   8.7e+01   0.0e+00   1.8e+02
[ Info:     45  -3.8e+01   8.7e+01   0.0e+00   1.5e-03
[ Info:     46   5.0e+01   8.7e+01   0.0e+00   1.8e+02
[ Info:     47  -3.8e+01   8.7e+01   0.0e+00   1.5e-03
[ Info:     48   5.0e+01   8.7e+01   0.0e+00   1.8e+02
[ Info:     49  -3.8e+01   8.7e+01   0.0e+00   1.5e-03
[ Info:     50   5.0e+01   8.7e+01   0.0e+00   1.8e+02
[ Info:     51  -3.8e+01   8.7e+01   0.0e+00   1.5e-03
[ Info:     52   5.0e+01   8.7e+01   0.0e+00   1.8e+02
[ Info:     53  -3.8e+01   8.7e+01   0.0e+00   1.5e-03
[ Info:     54   5.0e+01   8.7e+01   0.0e+00   1.8e+02
[ Info:     55  -3.8e+01   8.7e+01   0.0e+00   1.5e-03
[ Info:     56   5.0e+01   8.7e+01   0.0e+00   1.8e+02
[ Info:     57  -3.8e+01   8.7e+01   0.0e+00   1.5e-03
[ Info:     58   5.0e+01   8.7e+01   0.0e+00   1.8e+02
[ Info:     59  -3.8e+01   8.7e+01   0.0e+00   1.5e-03
[ Info:     60   5.0e+01   8.7e+01   0.0e+00   1.8e+02
[ Info:   iter       obj      Δobj  violation  kkt_residual  
[ Info:      0   7.5e+01       Inf   0.0e+00   2.7e+02
[ Info:      1  -5.7e+01   1.3e+02   0.0e+00   1.5e-03
[ Info:      2   9.8e+04   9.8e+04   0.0e+00   1.6e+04
[ Info:      3  -5.7e+01   9.8e+04   0.0e+00   1.5e-03
[ Info:      4   1.0e+03   1.1e+03   0.0e+00   8.4e+02
[ Info:      5  -5.7e+01   1.1e+03   0.0e+00   1.5e-03
[ Info:      6  -5.7e+01   1.5e-01   0.0e+00   1.5e-03
[ Info:      7   9.8e+03   9.9e+03   0.0e+00   3.0e+03
[ Info:      8  -5.7e+01   9.9e+03   0.0e+00   1.5e-03
[ Info:      9   1.4e+03   1.4e+03   0.0e+00   9.6e+02
[ Info:     10  -5.7e+01   1.4e+03   0.0e+00   1.5e-03
[ Info:     11   6.2e+01   1.2e+02   0.0e+00   2.6e+02
[ Info:     12  -5.7e+01   1.2e+02   0.0e+00   1.5e-03
[ Info:     13  -5.7e+01   2.2e-02   0.0e+00   1.5e-03
[ Info:     14   3.0e+02   3.6e+02   0.0e+00   4.6e+02
[ Info:     15  -5.7e+01   3.6e+02   0.0e+00   1.5e-03
[ Info:     16   7.5e+01   1.3e+02   0.0e+00   2.7e+02
[ Info:     17  -5.7e+01   1.3e+02   0.0e+00   1.5e-03
[ Info:     18   7.5e+01   1.3e+02   0.0e+00   2.7e+02
[ Info:     19  -5.7e+01   1.3e+02   0.0e+00   1.5e-03
[ Info:     20   7.5e+01   1.3e+02   0.0e+00   2.7e+02
[ Info:     21  -5.7e+01   1.3e+02   0.0e+00   1.5e-03
[ Info:     22   7.5e+01   1.3e+02   0.0e+00   2.7e+02
[ Info:     23  -5.7e+01   1.3e+02   0.0e+00   1.5e-03
[ Info:     24   7.5e+01   1.3e+02   0.0e+00   2.7e+02
[ Info:     25  -5.7e+01   1.3e+02   0.0e+00   1.5e-03
[ Info:     26   7.5e+01   1.3e+02   0.0e+00   2.7e+02
[ Info:     27  -5.7e+01   1.3e+02   0.0e+00   1.5e-03
[ Info:     28   7.5e+01   1.3e+02   0.0e+00   2.7e+02
[ Info:     29  -5.7e+01   1.3e+02   0.0e+00   1.5e-03
[ Info:     30   7.5e+01   1.3e+02   0.0e+00   2.7e+02
[ Info:     31  -5.7e+01   1.3e+02   0.0e+00   1.5e-03
[ Info:     32   7.5e+01   1.3e+02   0.0e+00   2.7e+02
[ Info:     33  -5.7e+01   1.3e+02   0.0e+00   1.5e-03
[ Info:     34   7.5e+01   1.3e+02   0.0e+00   2.7e+02
[ Info:     35  -5.7e+01   1.3e+02   0.0e+00   1.5e-03
[ Info:     36   7.5e+01   1.3e+02   0.0e+00   2.7e+02
[ Info:     37  -5.7e+01   1.3e+02   0.0e+00   1.5e-03
[ Info:     38   7.5e+01   1.3e+02   0.0e+00   2.7e+02
[ Info:     39  -5.7e+01   1.3e+02   0.0e+00   1.5e-03
[ Info:     40   7.5e+01   1.3e+02   0.0e+00   2.7e+02
[ Info:     41  -5.7e+01   1.3e+02   0.0e+00   1.5e-03
[ Info:     42   7.5e+01   1.3e+02   0.0e+00   2.7e+02
[ Info:     43  -5.7e+01   1.3e+02   0.0e+00   1.5e-03
[ Info:     44   7.5e+01   1.3e+02   0.0e+00   2.7e+02
[ Info:     45  -5.7e+01   1.3e+02   0.0e+00   1.5e-03
[ Info:     46   7.5e+01   1.3e+02   0.0e+00   2.7e+02
[ Info:     47  -5.7e+01   1.3e+02   0.0e+00   1.5e-03
[ Info:     48   7.5e+01   1.3e+02   0.0e+00   2.7e+02
[ Info:     49  -5.7e+01   1.3e+02   0.0e+00   1.5e-03
[ Info:     50   7.5e+01   1.3e+02   0.0e+00   2.7e+02
[ Info:     51  -5.7e+01   1.3e+02   0.0e+00   1.5e-03
[ Info:     52   7.5e+01   1.3e+02   0.0e+00   2.7e+02
[ Info:     53  -5.7e+01   1.3e+02   0.0e+00   1.5e-03
[ Info:     54   7.5e+01   1.3e+02   0.0e+00   2.7e+02
[ Info:     55  -5.7e+01   1.3e+02   0.0e+00   1.5e-03
[ Info:     56   7.5e+01   1.3e+02   0.0e+00   2.7e+02
[ Info:     57  -5.7e+01   1.3e+02   0.0e+00   1.5e-03
[ Info:     58   7.5e+01   1.3e+02   0.0e+00   2.7e+02
[ Info:     59  -5.7e+01   1.3e+02   0.0e+00   1.5e-03
[ Info:     60   7.5e+01   1.3e+02   0.0e+00   2.7e+02
[ Info:   iter       obj      Δobj  violation  kkt_residual  
[ Info:      0   1.1e+02       Inf   0.0e+00   4.1e+02
[ Info:      1  -8.7e+01   2.0e+02   0.0e+00   1.5e-03
[ Info:      2   1.5e+05   1.5e+05   0.0e+00   2.4e+04
[ Info:      3  -8.7e+01   1.5e+05   0.0e+00   1.5e-03
[ Info:      4   1.6e+03   1.7e+03   0.0e+00   1.3e+03
[ Info:      5  -8.7e+01   1.7e+03   0.0e+00   1.5e-03
[ Info:      6  -8.7e+01   1.5e-01   0.0e+00   1.5e-03
[ Info:      7   1.5e+04   1.5e+04   0.0e+00   4.5e+03
[ Info:      8  -8.7e+01   1.5e+04   0.0e+00   1.5e-03
[ Info:      9   2.0e+03   2.1e+03   0.0e+00   1.4e+03
[ Info:     10  -8.7e+01   2.1e+03   0.0e+00   1.5e-03
[ Info:     11   9.3e+01   1.8e+02   0.0e+00   3.9e+02
[ Info:     12  -8.7e+01   1.8e+02   0.0e+00   1.5e-03
[ Info:     13  -8.7e+01   2.2e-02   0.0e+00   1.5e-03
[ Info:     14   4.5e+02   5.4e+02   0.0e+00   6.9e+02
[ Info:     15  -8.7e+01   5.4e+02   0.0e+00   1.5e-03
[ Info:     16   1.1e+02   2.0e+02   0.0e+00   4.1e+02
[ Info:     17  -8.7e+01   2.0e+02   0.0e+00   1.5e-03
[ Info:     18   1.1e+02   2.0e+02   0.0e+00   4.1e+02
[ Info:     19  -8.7e+01   2.0e+02   0.0e+00   1.5e-03
[ Info:     20   1.1e+02   2.0e+02   0.0e+00   4.1e+02
[ Info:     21  -8.7e+01   2.0e+02   0.0e+00   1.5e-03
[ Info:     22   1.1e+02   2.0e+02   0.0e+00   4.1e+02
[ Info:     23  -8.7e+01   2.0e+02   0.0e+00   1.5e-03
[ Info:     24   1.1e+02   2.0e+02   0.0e+00   4.1e+02
[ Info:     25  -8.7e+01   2.0e+02   0.0e+00   1.5e-03
[ Info:     26   1.1e+02   2.0e+02   0.0e+00   4.1e+02
[ Info:     27  -8.7e+01   2.0e+02   0.0e+00   1.5e-03
[ Info:     28   1.1e+02   2.0e+02   0.0e+00   4.1e+02
[ Info:     29  -8.7e+01   2.0e+02   0.0e+00   1.5e-03
[ Info:     30   1.1e+02   2.0e+02   0.0e+00   4.1e+02
[ Info:     31  -8.7e+01   2.0e+02   0.0e+00   1.5e-03
[ Info:     32   1.1e+02   2.0e+02   0.0e+00   4.1e+02
[ Info:     33  -8.7e+01   2.0e+02   0.0e+00   1.5e-03
[ Info:     34   1.1e+02   2.0e+02   0.0e+00   4.1e+02
[ Info:     35  -8.7e+01   2.0e+02   0.0e+00   1.5e-03
[ Info:     36   1.1e+02   2.0e+02   0.0e+00   4.1e+02
[ Info:     37  -8.7e+01   2.0e+02   0.0e+00   1.5e-03
[ Info:     38   1.1e+02   2.0e+02   0.0e+00   4.1e+02
[ Info:     39  -8.7e+01   2.0e+02   0.0e+00   1.5e-03
[ Info:     40   1.1e+02   2.0e+02   0.0e+00   4.1e+02
[ Info:     41  -8.7e+01   2.0e+02   0.0e+00   1.5e-03
[ Info:     42   1.1e+02   2.0e+02   0.0e+00   4.1e+02
[ Info:     43  -8.7e+01   2.0e+02   0.0e+00   1.5e-03
[ Info:     44   1.1e+02   2.0e+02   0.0e+00   4.1e+02
[ Info:     45  -8.7e+01   2.0e+02   0.0e+00   1.5e-03
[ Info:     46   1.1e+02   2.0e+02   0.0e+00   4.1e+02
[ Info:     47  -8.7e+01   2.0e+02   0.0e+00   1.5e-03
[ Info:     48   1.1e+02   2.0e+02   0.0e+00   4.1e+02
[ Info:     49  -8.7e+01   2.0e+02   0.0e+00   1.5e-03
[ Info:     50   1.1e+02   2.0e+02   0.0e+00   4.1e+02
[ Info:     51  -8.7e+01   2.0e+02   0.0e+00   1.5e-03
[ Info:     52   1.1e+02   2.0e+02   0.0e+00   4.1e+02
[ Info:     53  -8.7e+01   2.0e+02   0.0e+00   1.5e-03
[ Info:     54   1.1e+02   2.0e+02   0.0e+00   4.1e+02
[ Info:     55  -8.7e+01   2.0e+02   0.0e+00   1.5e-03
[ Info:     56   1.1e+02   2.0e+02   0.0e+00   4.1e+02
[ Info:     57  -8.7e+01   2.0e+02   0.0e+00   1.5e-03
[ Info:     58   1.1e+02   2.0e+02   0.0e+00   4.1e+02
[ Info:     59  -8.7e+01   2.0e+02   0.0e+00   1.5e-03
[ Info:     60   1.1e+02   2.0e+02   0.0e+00   4.1e+02
[ Info:   iter       obj      Δobj  violation  kkt_residual  
[ Info:      0   1.7e+02       Inf   0.0e+00   6.1e+02
[ Info:      1  -1.3e+02   3.0e+02   0.0e+00   1.5e-03
[ Info:      2   2.2e+05   2.2e+05   0.0e+00   3.7e+04
[ Info:      3  -1.3e+02   2.2e+05   0.0e+00   1.5e-03
[ Info:      4   2.4e+03   2.5e+03   0.0e+00   1.9e+03
[ Info:      5  -1.3e+02   2.5e+03   0.0e+00   1.5e-03
[ Info:      6  -1.3e+02   1.5e-01   0.0e+00   1.5e-03
[ Info:      7   2.2e+04   2.2e+04   0.0e+00   6.8e+03
[ Info:      8  -1.3e+02   2.2e+04   0.0e+00   1.5e-03
[ Info:      9   3.1e+03   3.2e+03   0.0e+00   2.2e+03
[ Info:     10  -1.3e+02   3.2e+03   0.0e+00   1.5e-03
[ Info:     11   1.4e+02   2.7e+02   0.0e+00   5.8e+02
[ Info:     12  -1.3e+02   2.7e+02   0.0e+00   1.5e-03
[ Info:     13  -1.3e+02   2.2e-02   0.0e+00   1.5e-03
[ Info:     14   6.8e+02   8.1e+02   0.0e+00   1.0e+03
[ Info:     15  -1.3e+02   8.1e+02   0.0e+00   1.5e-03
[ Info:     16   1.7e+02   3.0e+02   0.0e+00   6.1e+02
[ Info:     17  -1.3e+02   3.0e+02   0.0e+00   1.5e-03
[ Info:     18   1.7e+02   3.0e+02   0.0e+00   6.1e+02
[ Info:     19  -1.3e+02   3.0e+02   0.0e+00   1.5e-03
[ Info:     20   1.7e+02   3.0e+02   0.0e+00   6.1e+02
[ Info:     21  -1.3e+02   3.0e+02   0.0e+00   1.5e-03
[ Info:     22   1.7e+02   3.0e+02   0.0e+00   6.1e+02
[ Info:     23  -1.3e+02   3.0e+02   0.0e+00   1.5e-03
[ Info:     24   1.7e+02   3.0e+02   0.0e+00   6.1e+02
[ Info:     25  -1.3e+02   3.0e+02   0.0e+00   1.5e-03
[ Info:     26   1.7e+02   3.0e+02   0.0e+00   6.1e+02
[ Info:     27  -1.3e+02   3.0e+02   0.0e+00   1.5e-03
[ Info:     28   1.7e+02   3.0e+02   0.0e+00   6.1e+02
[ Info:     29  -1.3e+02   3.0e+02   0.0e+00   1.5e-03
[ Info:     30   1.7e+02   3.0e+02   0.0e+00   6.1e+02
[ Info:     31  -1.3e+02   3.0e+02   0.0e+00   1.5e-03
[ Info:     32   1.7e+02   3.0e+02   0.0e+00   6.1e+02
[ Info:     33  -1.3e+02   3.0e+02   0.0e+00   1.5e-03
[ Info:     34   1.7e+02   3.0e+02   0.0e+00   6.1e+02
[ Info:     35  -1.3e+02   3.0e+02   0.0e+00   1.5e-03
[ Info:     36   1.7e+02   3.0e+02   0.0e+00   6.1e+02
[ Info:     37  -1.3e+02   3.0e+02   0.0e+00   1.5e-03
[ Info:     38   1.7e+02   3.0e+02   0.0e+00   6.1e+02
[ Info:     39  -1.3e+02   3.0e+02   0.0e+00   1.5e-03
[ Info:     40   1.7e+02   3.0e+02   0.0e+00   6.1e+02
[ Info:     41  -1.3e+02   3.0e+02   0.0e+00   1.5e-03
[ Info:     42   1.7e+02   3.0e+02   0.0e+00   6.1e+02
[ Info:     43  -1.3e+02   3.0e+02   0.0e+00   1.5e-03
[ Info:     44   1.7e+02   3.0e+02   0.0e+00   6.1e+02
[ Info:     45  -1.3e+02   3.0e+02   0.0e+00   1.5e-03
[ Info:     46   1.7e+02   3.0e+02   0.0e+00   6.1e+02
[ Info:     47  -1.3e+02   3.0e+02   0.0e+00   1.5e-03
[ Info:     48   1.7e+02   3.0e+02   0.0e+00   6.1e+02
[ Info:     49  -1.3e+02   3.0e+02   0.0e+00   1.5e-03
[ Info:     50   1.7e+02   3.0e+02   0.0e+00   6.1e+02
[ Info:     51  -1.3e+02   3.0e+02   0.0e+00   1.5e-03
[ Info:     52   1.7e+02   3.0e+02   0.0e+00   6.1e+02
[ Info:     53  -1.3e+02   3.0e+02   0.0e+00   1.5e-03
[ Info:     54   1.7e+02   3.0e+02   0.0e+00   6.1e+02
[ Info:     55  -1.3e+02   3.0e+02   0.0e+00   1.5e-03
[ Info:     56   1.7e+02   3.0e+02   0.0e+00   6.1e+02
[ Info:     57  -1.3e+02   3.0e+02   0.0e+00   1.5e-03
[ Info:     58   1.7e+02   3.0e+02   0.0e+00   6.1e+02
[ Info:     59  -1.3e+02   3.0e+02   0.0e+00   1.5e-03
[ Info:     60   1.7e+02   3.0e+02   0.0e+00   6.1e+02
[ Info:   iter       obj      Δobj  violation  kkt_residual  
[ Info:      0   2.5e+02       Inf   0.0e+00   9.2e+02
[ Info:      1  -2.0e+02   4.5e+02   0.0e+00   1.5e-03
[ Info:      2   3.3e+05   3.3e+05   0.0e+00   5.5e+04
[ Info:      3  -2.0e+02   3.3e+05   0.0e+00   1.5e-03
[ Info:      4   3.5e+03   3.7e+03   0.0e+00   2.8e+03
[ Info:      5  -2.0e+02   3.7e+03   0.0e+00   1.5e-03
[ Info:      6  -2.0e+02   1.5e-01   0.0e+00   1.5e-03
[ Info:      7   3.3e+04   3.3e+04   0.0e+00   1.0e+04
[ Info:      8  -2.0e+02   3.3e+04   0.0e+00   1.5e-03
[ Info:      9   4.6e+03   4.8e+03   0.0e+00   3.2e+03
[ Info:     10  -2.0e+02   4.8e+03   0.0e+00   1.5e-03
[ Info:     11   2.1e+02   4.1e+02   0.0e+00   8.7e+02
[ Info:     12  -2.0e+02   4.1e+02   0.0e+00   1.5e-03
[ Info:     13  -2.0e+02   2.2e-02   0.0e+00   1.5e-03
[ Info:     14   1.0e+03   1.2e+03   0.0e+00   1.6e+03
[ Info:     15  -2.0e+02   1.2e+03   0.0e+00   1.5e-03
[ Info:     16   2.5e+02   4.5e+02   0.0e+00   9.2e+02
[ Info:     17  -2.0e+02   4.5e+02   0.0e+00   1.5e-03
[ Info:     18   2.5e+02   4.5e+02   0.0e+00   9.2e+02
[ Info:     19  -2.0e+02   4.5e+02   0.0e+00   1.5e-03
[ Info:     20   2.5e+02   4.5e+02   0.0e+00   9.2e+02
[ Info:     21  -2.0e+02   4.5e+02   0.0e+00   1.5e-03
[ Info:     22   2.5e+02   4.5e+02   0.0e+00   9.2e+02
[ Info:     23  -2.0e+02   4.5e+02   0.0e+00   1.5e-03
[ Info:     24   2.5e+02   4.5e+02   0.0e+00   9.2e+02
[ Info:     25  -2.0e+02   4.5e+02   0.0e+00   1.5e-03
[ Info:     26   2.5e+02   4.5e+02   0.0e+00   9.2e+02
[ Info:     27  -2.0e+02   4.5e+02   0.0e+00   1.5e-03
[ Info:     28   2.5e+02   4.5e+02   0.0e+00   9.2e+02
[ Info:     29  -2.0e+02   4.5e+02   0.0e+00   1.5e-03
[ Info:     30   2.5e+02   4.5e+02   0.0e+00   9.2e+02
[ Info:     31  -2.0e+02   4.5e+02   0.0e+00   1.5e-03
[ Info:     32   2.5e+02   4.5e+02   0.0e+00   9.2e+02
[ Info:     33  -2.0e+02   4.5e+02   0.0e+00   1.5e-03
[ Info:     34   2.5e+02   4.5e+02   0.0e+00   9.2e+02
[ Info:     35  -2.0e+02   4.5e+02   0.0e+00   1.5e-03
[ Info:     36   2.5e+02   4.5e+02   0.0e+00   9.2e+02
[ Info:     37  -2.0e+02   4.5e+02   0.0e+00   1.5e-03
[ Info:     38   2.5e+02   4.5e+02   0.0e+00   9.2e+02
[ Info:     39  -2.0e+02   4.5e+02   0.0e+00   1.5e-03
[ Info:     40   2.5e+02   4.5e+02   0.0e+00   9.2e+02
[ Info:     41  -2.0e+02   4.5e+02   0.0e+00   1.5e-03
[ Info:     42   2.5e+02   4.5e+02   0.0e+00   9.2e+02
[ Info:     43  -2.0e+02   4.5e+02   0.0e+00   1.5e-03
[ Info:     44   2.5e+02   4.5e+02   0.0e+00   9.2e+02
[ Info:     45  -2.0e+02   4.5e+02   0.0e+00   1.5e-03
[ Info:     46   2.5e+02   4.5e+02   0.0e+00   9.2e+02
[ Info:     47  -2.0e+02   4.5e+02   0.0e+00   1.5e-03
[ Info:     48   2.5e+02   4.5e+02   0.0e+00   9.2e+02
[ Info:     49  -2.0e+02   4.5e+02   0.0e+00   1.5e-03
[ Info:     50   2.5e+02   4.5e+02   0.0e+00   9.2e+02
[ Info:     51  -2.0e+02   4.5e+02   0.0e+00   1.5e-03
[ Info:     52   2.5e+02   4.5e+02   0.0e+00   9.2e+02
[ Info:     53  -2.0e+02   4.5e+02   0.0e+00   1.5e-03
[ Info:     54   2.5e+02   4.5e+02   0.0e+00   9.2e+02
[ Info:     55  -2.0e+02   4.5e+02   0.0e+00   1.5e-03
[ Info:     56   2.5e+02   4.5e+02   0.0e+00   9.2e+02
[ Info:     57  -2.0e+02   4.5e+02   0.0e+00   1.5e-03
[ Info:     58   2.5e+02   4.5e+02   0.0e+00   9.2e+02
[ Info:     59  -2.0e+02   4.5e+02   0.0e+00   1.5e-03
[ Info:     60   2.5e+02   4.5e+02   0.0e+00   9.2e+02
[ Info:   iter       obj      Δobj  violation  kkt_residual  
[ Info:      0   3.8e+02       Inf   0.0e+00   1.4e+03
[ Info:      1  -3.0e+02   6.8e+02   0.0e+00   1.5e-03
[ Info:      2   4.9e+05   5.0e+05   0.0e+00   8.2e+04
[ Info:      3  -3.0e+02   5.0e+05   0.0e+00   1.5e-03
[ Info:      4   5.3e+03   5.6e+03   0.0e+00   4.3e+03
[ Info:      5  -3.0e+02   5.6e+03   0.0e+00   1.5e-03
[ Info:      6  -3.0e+02   1.5e-01   0.0e+00   1.5e-03
[ Info:      7   5.0e+04   5.0e+04   0.0e+00   1.5e+04
[ Info:      8  -3.0e+02   5.0e+04   0.0e+00   1.5e-03
[ Info:      9   6.9e+03   7.2e+03   0.0e+00   4.9e+03
[ Info:     10  -3.0e+02   7.2e+03   0.0e+00   1.5e-03
[ Info:     11   3.1e+02   6.1e+02   0.0e+00   1.3e+03
[ Info:     12  -3.0e+02   6.1e+02   0.0e+00   1.5e-03
[ Info:     13  -3.0e+02   2.2e-02   0.0e+00   1.5e-03
[ Info:     14   1.5e+03   1.8e+03   0.0e+00   2.3e+03
[ Info:     15  -3.0e+02   1.8e+03   0.0e+00   1.5e-03
[ Info:     16   3.8e+02   6.8e+02   0.0e+00   1.4e+03
[ Info:     17  -3.0e+02   6.8e+02   0.0e+00   1.5e-03
[ Info:     18   3.8e+02   6.8e+02   0.0e+00   1.4e+03
[ Info:     19  -3.0e+02   6.8e+02   0.0e+00   1.5e-03
[ Info:     20   3.8e+02   6.8e+02   0.0e+00   1.4e+03
[ Info:     21  -3.0e+02   6.8e+02   0.0e+00   1.5e-03
[ Info:     22   3.8e+02   6.8e+02   0.0e+00   1.4e+03
[ Info:     23  -3.0e+02   6.8e+02   0.0e+00   1.5e-03
[ Info:     24   3.8e+02   6.8e+02   0.0e+00   1.4e+03
[ Info:     25  -3.0e+02   6.8e+02   0.0e+00   1.5e-03
[ Info:     26   3.8e+02   6.8e+02   0.0e+00   1.4e+03
[ Info:     27  -3.0e+02   6.8e+02   0.0e+00   1.5e-03
[ Info:     28   3.8e+02   6.8e+02   0.0e+00   1.4e+03
[ Info:     29  -3.0e+02   6.8e+02   0.0e+00   1.5e-03
[ Info:     30   3.8e+02   6.8e+02   0.0e+00   1.4e+03
[ Info:     31  -3.0e+02   6.8e+02   0.0e+00   1.5e-03
[ Info:     32   3.8e+02   6.8e+02   0.0e+00   1.4e+03
[ Info:     33  -3.0e+02   6.8e+02   0.0e+00   1.5e-03
[ Info:     34   3.8e+02   6.8e+02   0.0e+00   1.4e+03
[ Info:     35  -3.0e+02   6.8e+02   0.0e+00   1.5e-03
[ Info:     36   3.8e+02   6.8e+02   0.0e+00   1.4e+03
[ Info:     37  -3.0e+02   6.8e+02   0.0e+00   1.5e-03
[ Info:     38   3.8e+02   6.8e+02   0.0e+00   1.4e+03
[ Info:     39  -3.0e+02   6.8e+02   0.0e+00   1.5e-03
[ Info:     40   3.8e+02   6.8e+02   0.0e+00   1.4e+03
[ Info:     41  -3.0e+02   6.8e+02   0.0e+00   1.5e-03
[ Info:     42   3.8e+02   6.8e+02   0.0e+00   1.4e+03
[ Info:     43  -3.0e+02   6.8e+02   0.0e+00   1.5e-03
[ Info:     44   3.8e+02   6.8e+02   0.0e+00   1.4e+03
[ Info:     45  -3.0e+02   6.8e+02   0.0e+00   1.5e-03
[ Info:     46   3.8e+02   6.8e+02   0.0e+00   1.4e+03
[ Info:     47  -3.0e+02   6.8e+02   0.0e+00   1.5e-03
[ Info:     48   3.8e+02   6.8e+02   0.0e+00   1.4e+03
[ Info:     49  -3.0e+02   6.8e+02   0.0e+00   1.5e-03
[ Info:     50   3.8e+02   6.8e+02   0.0e+00   1.4e+03
[ Info:     51  -3.0e+02   6.8e+02   0.0e+00   1.5e-03
[ Info:     52   3.8e+02   6.8e+02   0.0e+00   1.4e+03
[ Info:     53  -3.0e+02   6.8e+02   0.0e+00   1.5e-03
[ Info:     54   3.8e+02   6.8e+02   0.0e+00   1.4e+03
[ Info:     55  -3.0e+02   6.8e+02   0.0e+00   1.5e-03
[ Info:     56   3.8e+02   6.8e+02   0.0e+00   1.4e+03
[ Info:     57  -3.0e+02   6.8e+02   0.0e+00   1.5e-03
[ Info:     58   3.8e+02   6.8e+02   0.0e+00   1.4e+03
[ Info:     59  -3.0e+02   6.8e+02   0.0e+00   1.5e-03
[ Info:     60   3.8e+02   6.8e+02   0.0e+00   1.4e+03
[ Info:   iter       obj      Δobj  violation  kkt_residual  
[ Info:      0   5.7e+02       Inf   0.0e+00   2.1e+03
[ Info:      1  -4.5e+02   1.0e+03   0.0e+00   1.5e-03
[ Info:      2   7.4e+05   7.4e+05   0.0e+00   1.2e+05
[ Info:      3  -4.5e+02   7.4e+05   0.0e+00   1.5e-03
[ Info:      4   8.0e+03   8.4e+03   0.0e+00   6.4e+03
[ Info:      5  -4.5e+02   8.4e+03   0.0e+00   1.5e-03
[ Info:      6  -4.5e+02   1.5e-01   0.0e+00   1.5e-03
[ Info:      7   7.5e+04   7.5e+04   0.0e+00   2.3e+04
[ Info:      8  -4.5e+02   7.5e+04   0.0e+00   1.5e-03
[ Info:      9   1.0e+04   1.1e+04   0.0e+00   7.3e+03
[ Info:     10  -4.5e+02   1.1e+04   0.0e+00   1.5e-03
[ Info:     11   4.7e+02   9.2e+02   0.0e+00   2.0e+03
[ Info:     12  -4.5e+02   9.2e+02   0.0e+00   1.5e-03
[ Info:     13  -4.5e+02   2.2e-02   0.0e+00   1.5e-03
[ Info:     14   2.3e+03   2.8e+03   0.0e+00   3.5e+03
[ Info:     15  -4.5e+02   2.8e+03   0.0e+00   1.5e-03
[ Info:     16   5.7e+02   1.0e+03   0.0e+00   2.1e+03
[ Info:     17  -4.5e+02   1.0e+03   0.0e+00   1.5e-03
[ Info:     18   5.7e+02   1.0e+03   0.0e+00   2.1e+03
[ Info:     19  -4.5e+02   1.0e+03   0.0e+00   1.5e-03
[ Info:     20   5.7e+02   1.0e+03   0.0e+00   2.1e+03
[ Info:     21  -4.5e+02   1.0e+03   0.0e+00   1.5e-03
[ Info:     22   5.7e+02   1.0e+03   0.0e+00   2.1e+03
[ Info:     23  -4.5e+02   1.0e+03   0.0e+00   1.5e-03
[ Info:     24   5.7e+02   1.0e+03   0.0e+00   2.1e+03
[ Info:     25  -4.5e+02   1.0e+03   0.0e+00   1.5e-03
[ Info:     26   5.7e+02   1.0e+03   0.0e+00   2.1e+03
[ Info:     27  -4.5e+02   1.0e+03   0.0e+00   1.5e-03
[ Info:     28   5.7e+02   1.0e+03   0.0e+00   2.1e+03
[ Info:     29  -4.5e+02   1.0e+03   0.0e+00   1.5e-03
[ Info:     30   5.7e+02   1.0e+03   0.0e+00   2.1e+03
[ Info:     31  -4.5e+02   1.0e+03   0.0e+00   1.5e-03
[ Info:     32   5.7e+02   1.0e+03   0.0e+00   2.1e+03
[ Info:     33  -4.5e+02   1.0e+03   0.0e+00   1.5e-03
[ Info:     34   5.7e+02   1.0e+03   0.0e+00   2.1e+03
[ Info:     35  -4.5e+02   1.0e+03   0.0e+00   1.5e-03
[ Info:     36   5.7e+02   1.0e+03   0.0e+00   2.1e+03
[ Info:     37  -4.5e+02   1.0e+03   0.0e+00   1.5e-03
[ Info:     38   5.7e+02   1.0e+03   0.0e+00   2.1e+03
[ Info:     39  -4.5e+02   1.0e+03   0.0e+00   1.5e-03
[ Info:     40   5.7e+02   1.0e+03   0.0e+00   2.1e+03
[ Info:     41  -4.5e+02   1.0e+03   0.0e+00   1.5e-03
[ Info:     42   5.7e+02   1.0e+03   0.0e+00   2.1e+03
[ Info:     43  -4.5e+02   1.0e+03   0.0e+00   1.5e-03
[ Info:     44   5.7e+02   1.0e+03   0.0e+00   2.1e+03
[ Info:     45  -4.5e+02   1.0e+03   0.0e+00   1.5e-03
[ Info:     46   5.7e+02   1.0e+03   0.0e+00   2.1e+03
[ Info:     47  -4.5e+02   1.0e+03   0.0e+00   1.5e-03
[ Info:     48   5.7e+02   1.0e+03   0.0e+00   2.1e+03
[ Info:     49  -4.5e+02   1.0e+03   0.0e+00   1.5e-03
[ Info:     50   5.7e+02   1.0e+03   0.0e+00   2.1e+03
[ Info:     51  -4.5e+02   1.0e+03   0.0e+00   1.5e-03
[ Info:     52   5.7e+02   1.0e+03   0.0e+00   2.1e+03
[ Info:     53  -4.5e+02   1.0e+03   0.0e+00   1.5e-03
[ Info:     54   5.7e+02   1.0e+03   0.0e+00   2.1e+03
[ Info:     55  -4.5e+02   1.0e+03   0.0e+00   1.5e-03
[ Info:     56   5.7e+02   1.0e+03   0.0e+00   2.1e+03
[ Info:     57  -4.5e+02   1.0e+03   0.0e+00   1.5e-03
[ Info:     58   5.7e+02   1.0e+03   0.0e+00   2.1e+03
[ Info:     59  -4.5e+02   1.0e+03   0.0e+00   1.5e-03
[ Info:     60   5.7e+02   1.0e+03   0.0e+00   2.1e+03
[ Info:   iter       obj      Δobj  violation  kkt_residual  
[ Info:      0   8.5e+02       Inf   0.0e+00   3.1e+03
[ Info:      1  -6.8e+02   1.5e+03   0.0e+00   1.5e-03
[ Info:      2   1.1e+06   1.1e+06   0.0e+00   1.9e+05
[ Info:      3  -6.8e+02   1.1e+06   0.0e+00   1.5e-03
[ Info:      4   1.2e+04   1.3e+04   0.0e+00   9.6e+03
[ Info:      5  -6.8e+02   1.3e+04   0.0e+00   1.5e-03
[ Info:      6  -6.8e+02   1.5e-01   0.0e+00   1.5e-03
[ Info:      7   1.1e+05   1.1e+05   0.0e+00   3.4e+04
[ Info:      8  -6.8e+02   1.1e+05   0.0e+00   1.5e-03
[ Info:      9   1.5e+04   1.6e+04   0.0e+00   1.1e+04
[ Info:     10  -6.8e+02   1.6e+04   0.0e+00   1.5e-03
[ Info:     11   7.0e+02   1.4e+03   0.0e+00   3.0e+03
[ Info:     12  -6.8e+02   1.4e+03   0.0e+00   1.5e-03
[ Info:     13  -6.8e+02   2.2e-02   0.0e+00   1.5e-03
[ Info:     14   3.5e+03   4.1e+03   0.0e+00   5.2e+03
[ Info:     15  -6.8e+02   4.1e+03   0.0e+00   1.5e-03
[ Info:     16   8.5e+02   1.5e+03   0.0e+00   3.1e+03
[ Info:     17  -6.8e+02   1.5e+03   0.0e+00   1.5e-03
[ Info:     18   8.5e+02   1.5e+03   0.0e+00   3.1e+03
[ Info:     19  -6.8e+02   1.5e+03   0.0e+00   1.5e-03
[ Info:     20   8.5e+02   1.5e+03   0.0e+00   3.1e+03
[ Info:     21  -6.8e+02   1.5e+03   0.0e+00   1.5e-03
[ Info:     22   8.5e+02   1.5e+03   0.0e+00   3.1e+03
[ Info:     23  -6.8e+02   1.5e+03   0.0e+00   1.5e-03
[ Info:     24   8.5e+02   1.5e+03   0.0e+00   3.1e+03
[ Info:     25  -6.8e+02   1.5e+03   0.0e+00   1.5e-03
[ Info:     26   8.5e+02   1.5e+03   0.0e+00   3.1e+03
[ Info:     27  -6.8e+02   1.5e+03   0.0e+00   1.5e-03
[ Info:     28   8.5e+02   1.5e+03   0.0e+00   3.1e+03
[ Info:     29  -6.8e+02   1.5e+03   0.0e+00   1.5e-03
[ Info:     30   8.5e+02   1.5e+03   0.0e+00   3.1e+03
[ Info:     31  -6.8e+02   1.5e+03   0.0e+00   1.5e-03
[ Info:     32   8.5e+02   1.5e+03   0.0e+00   3.1e+03
[ Info:     33  -6.8e+02   1.5e+03   0.0e+00   1.5e-03
[ Info:     34   8.5e+02   1.5e+03   0.0e+00   3.1e+03
[ Info:     35  -6.8e+02   1.5e+03   0.0e+00   1.5e-03
[ Info:     36   8.5e+02   1.5e+03   0.0e+00   3.1e+03
[ Info:     37  -6.8e+02   1.5e+03   0.0e+00   1.5e-03
[ Info:     38   8.5e+02   1.5e+03   0.0e+00   3.1e+03
[ Info:     39  -6.8e+02   1.5e+03   0.0e+00   1.5e-03
[ Info:     40   8.5e+02   1.5e+03   0.0e+00   3.1e+03
[ Info:     41  -6.8e+02   1.5e+03   0.0e+00   1.5e-03
[ Info:     42   8.5e+02   1.5e+03   0.0e+00   3.1e+03
[ Info:     43  -6.8e+02   1.5e+03   0.0e+00   1.5e-03
[ Info:     44   8.5e+02   1.5e+03   0.0e+00   3.1e+03
[ Info:     45  -6.8e+02   1.5e+03   0.0e+00   1.5e-03
[ Info:     46   8.5e+02   1.5e+03   0.0e+00   3.1e+03
[ Info:     47  -6.8e+02   1.5e+03   0.0e+00   1.5e-03
[ Info:     48   8.5e+02   1.5e+03   0.0e+00   3.1e+03
[ Info:     49  -6.8e+02   1.5e+03   0.0e+00   1.5e-03
[ Info:     50   8.5e+02   1.5e+03   0.0e+00   3.1e+03
[ Info:     51  -6.8e+02   1.5e+03   0.0e+00   1.5e-03
[ Info:     52   8.5e+02   1.5e+03   0.0e+00   3.1e+03
[ Info:     53  -6.8e+02   1.5e+03   0.0e+00   1.5e-03
[ Info:     54   8.5e+02   1.5e+03   0.0e+00   3.1e+03
[ Info:     55  -6.8e+02   1.5e+03   0.0e+00   1.5e-03
[ Info:     56   8.5e+02   1.5e+03   0.0e+00   3.1e+03
[ Info:     57  -6.8e+02   1.5e+03   0.0e+00   1.5e-03
[ Info:     58   8.5e+02   1.5e+03   0.0e+00   3.1e+03
[ Info:     59  -6.8e+02   1.5e+03   0.0e+00   1.5e-03
[ Info:     60   8.5e+02   1.5e+03   0.0e+00   3.1e+03
[ Info:   iter       obj      Δobj  violation  kkt_residual  
[ Info:      0   1.3e+03       Inf   0.0e+00   4.7e+03
[ Info:      1  -1.0e+03   2.3e+03   0.0e+00   1.5e-03
[ Info:      2   1.7e+06   1.7e+06   0.0e+00   2.8e+05
[ Info:      3  -1.0e+03   1.7e+06   0.0e+00   1.5e-03
[ Info:      4   1.8e+04   1.9e+04   0.0e+00   1.4e+04
[ Info:      5  -1.0e+03   1.9e+04   0.0e+00   1.5e-03
[ Info:      6  -1.0e+03   1.5e-01   0.0e+00   1.5e-03
[ Info:      7   1.7e+05   1.7e+05   0.0e+00   5.1e+04
[ Info:      8  -1.0e+03   1.7e+05   0.0e+00   1.5e-03
[ Info:      9   2.3e+04   2.4e+04   0.0e+00   1.6e+04
[ Info:     10  -1.0e+03   2.4e+04   0.0e+00   1.5e-03
[ Info:     11   1.1e+03   2.1e+03   0.0e+00   4.4e+03
[ Info:     12  -1.0e+03   2.1e+03   0.0e+00   1.5e-03
[ Info:     13  -1.0e+03   2.2e-02   0.0e+00   1.5e-03
[ Info:     14   5.2e+03   6.2e+03   0.0e+00   7.9e+03
[ Info:     15  -1.0e+03   6.2e+03   0.0e+00   1.5e-03
[ Info:     16   1.3e+03   2.3e+03   0.0e+00   4.7e+03
[ Info:     17  -1.0e+03   2.3e+03   0.0e+00   1.5e-03
[ Info:     18   1.3e+03   2.3e+03   0.0e+00   4.7e+03
[ Info:     19  -1.0e+03   2.3e+03   0.0e+00   1.5e-03
[ Info:     20   1.3e+03   2.3e+03   0.0e+00   4.7e+03
[ Info:     21  -1.0e+03   2.3e+03   0.0e+00   1.5e-03
[ Info:     22   1.3e+03   2.3e+03   0.0e+00   4.7e+03
[ Info:     23  -1.0e+03   2.3e+03   0.0e+00   1.5e-03
[ Info:     24   1.3e+03   2.3e+03   0.0e+00   4.7e+03
[ Info:     25  -1.0e+03   2.3e+03   0.0e+00   1.5e-03
[ Info:     26   1.3e+03   2.3e+03   0.0e+00   4.7e+03
[ Info:     27  -1.0e+03   2.3e+03   0.0e+00   1.5e-03
[ Info:     28   1.3e+03   2.3e+03   0.0e+00   4.7e+03
[ Info:     29  -1.0e+03   2.3e+03   0.0e+00   1.5e-03
[ Info:     30   1.3e+03   2.3e+03   0.0e+00   4.7e+03
[ Info:     31  -1.0e+03   2.3e+03   0.0e+00   1.5e-03
[ Info:     32   1.3e+03   2.3e+03   0.0e+00   4.7e+03
[ Info:     33  -1.0e+03   2.3e+03   0.0e+00   1.5e-03
[ Info:     34   1.3e+03   2.3e+03   0.0e+00   4.7e+03
[ Info:     35  -1.0e+03   2.3e+03   0.0e+00   1.5e-03
[ Info:     36   1.3e+03   2.3e+03   0.0e+00   4.7e+03
[ Info:     37  -1.0e+03   2.3e+03   0.0e+00   1.5e-03
[ Info:     38   1.3e+03   2.3e+03   0.0e+00   4.7e+03
[ Info:     39  -1.0e+03   2.3e+03   0.0e+00   1.5e-03
[ Info:     40   1.3e+03   2.3e+03   0.0e+00   4.7e+03
[ Info:     41  -1.0e+03   2.3e+03   0.0e+00   1.5e-03
[ Info:     42   1.3e+03   2.3e+03   0.0e+00   4.7e+03
[ Info:     43  -1.0e+03   2.3e+03   0.0e+00   1.5e-03
[ Info:     44   1.3e+03   2.3e+03   0.0e+00   4.7e+03
[ Info:     45  -1.0e+03   2.3e+03   0.0e+00   1.5e-03
[ Info:     46   1.3e+03   2.3e+03   0.0e+00   4.7e+03
[ Info:     47  -1.0e+03   2.3e+03   0.0e+00   1.5e-03
[ Info:     48   1.3e+03   2.3e+03   0.0e+00   4.7e+03
[ Info:     49  -1.0e+03   2.3e+03   0.0e+00   1.5e-03
[ Info:     50   1.3e+03   2.3e+03   0.0e+00   4.7e+03
[ Info:     51  -1.0e+03   2.3e+03   0.0e+00   1.5e-03
[ Info:     52   1.3e+03   2.3e+03   0.0e+00   4.7e+03
[ Info:     53  -1.0e+03   2.3e+03   0.0e+00   1.5e-03
[ Info:     54   1.3e+03   2.3e+03   0.0e+00   4.7e+03
[ Info:     55  -1.0e+03   2.3e+03   0.0e+00   1.5e-03
[ Info:     56   1.3e+03   2.3e+03   0.0e+00   4.7e+03
[ Info:     57  -1.0e+03   2.3e+03   0.0e+00   1.5e-03
[ Info:     58   1.3e+03   2.3e+03   0.0e+00   4.7e+03
[ Info:     59  -1.0e+03   2.3e+03   0.0e+00   1.5e-03
[ Info:     60   1.3e+03   2.3e+03   0.0e+00   4.7e+03
[ Info:   iter       obj      Δobj  violation  kkt_residual  
[ Info:      0   1.9e+03       Inf   0.0e+00   7.0e+03
[ Info:      1  -1.5e+03   3.4e+03   0.0e+00   1.5e-03
[ Info:      2   2.5e+06   2.5e+06   0.0e+00   4.2e+05
[ Info:      3  -1.5e+03   2.5e+06   0.0e+00   1.5e-03
[ Info:      4   2.7e+04   2.9e+04   0.0e+00   2.2e+04
[ Info:      5  -1.5e+03   2.9e+04   0.0e+00   1.5e-03
[ Info:      6  -1.5e+03   1.5e-01   0.0e+00   1.5e-03
[ Info:      7   2.5e+05   2.5e+05   0.0e+00   7.7e+04
[ Info:      8  -1.5e+03   2.5e+05   0.0e+00   1.5e-03
[ Info:      9   3.5e+04   3.6e+04   0.0e+00   2.5e+04
[ Info:     10  -1.5e+03   3.6e+04   0.0e+00   1.5e-03
[ Info:     11   1.6e+03   3.1e+03   0.0e+00   6.7e+03
[ Info:     12  -1.5e+03   3.1e+03   0.0e+00   1.5e-03
[ Info:     13  -1.5e+03   2.2e-02   0.0e+00   1.5e-03
[ Info:     14   7.8e+03   9.3e+03   0.0e+00   1.2e+04
[ Info:     15  -1.5e+03   9.3e+03   0.0e+00   1.5e-03
[ Info:     16   1.9e+03   3.4e+03   0.0e+00   7.0e+03
[ Info:     17  -1.5e+03   3.4e+03   0.0e+00   1.5e-03
[ Info:     18   1.9e+03   3.4e+03   0.0e+00   7.0e+03
[ Info:     19  -1.5e+03   3.4e+03   0.0e+00   1.5e-03
[ Info:     20   1.9e+03   3.4e+03   0.0e+00   7.0e+03
[ Info:     21  -1.5e+03   3.4e+03   0.0e+00   1.5e-03
[ Info:     22   1.9e+03   3.4e+03   0.0e+00   7.0e+03
[ Info:     23  -1.5e+03   3.4e+03   0.0e+00   1.5e-03
[ Info:     24   1.9e+03   3.4e+03   0.0e+00   7.0e+03
[ Info:     25  -1.5e+03   3.4e+03   0.0e+00   1.5e-03
[ Info:     26   1.9e+03   3.4e+03   0.0e+00   7.0e+03
[ Info:     27  -1.5e+03   3.4e+03   0.0e+00   1.5e-03
[ Info:     28   1.9e+03   3.4e+03   0.0e+00   7.0e+03
[ Info:     29  -1.5e+03   3.4e+03   0.0e+00   1.5e-03
[ Info:     30   1.9e+03   3.4e+03   0.0e+00   7.0e+03
[ Info:     31  -1.5e+03   3.4e+03   0.0e+00   1.5e-03
[ Info:     32   1.9e+03   3.4e+03   0.0e+00   7.0e+03
[ Info:     33  -1.5e+03   3.4e+03   0.0e+00   1.5e-03
[ Info:     34   1.9e+03   3.4e+03   0.0e+00   7.0e+03
[ Info:     35  -1.5e+03   3.4e+03   0.0e+00   1.5e-03
[ Info:     36   1.9e+03   3.4e+03   0.0e+00   7.0e+03
[ Info:     37  -1.5e+03   3.4e+03   0.0e+00   1.5e-03
[ Info:     38   1.9e+03   3.4e+03   0.0e+00   7.0e+03
[ Info:     39  -1.5e+03   3.4e+03   0.0e+00   1.5e-03
[ Info:     40   1.9e+03   3.4e+03   0.0e+00   7.0e+03
[ Info:     41  -1.5e+03   3.4e+03   0.0e+00   1.5e-03
[ Info:     42   1.9e+03   3.4e+03   0.0e+00   7.0e+03
[ Info:     43  -1.5e+03   3.4e+03   0.0e+00   1.5e-03
[ Info:     44   1.9e+03   3.4e+03   0.0e+00   7.0e+03
[ Info:     45  -1.5e+03   3.4e+03   0.0e+00   1.5e-03
[ Info:     46   1.9e+03   3.4e+03   0.0e+00   7.0e+03
[ Info:     47  -1.5e+03   3.4e+03   0.0e+00   1.5e-03
[ Info:     48   1.9e+03   3.4e+03   0.0e+00   7.0e+03
[ Info:     49  -1.5e+03   3.4e+03   0.0e+00   1.5e-03
[ Info:     50   1.9e+03   3.4e+03   0.0e+00   7.0e+03
[ Info:     51  -1.5e+03   3.4e+03   0.0e+00   1.5e-03
[ Info:     52   1.9e+03   3.4e+03   0.0e+00   7.0e+03
[ Info:     53  -1.5e+03   3.4e+03   0.0e+00   1.5e-03
[ Info:     54   1.9e+03   3.4e+03   0.0e+00   7.0e+03
[ Info:     55  -1.5e+03   3.4e+03   0.0e+00   1.5e-03
[ Info:     56   1.9e+03   3.4e+03   0.0e+00   7.0e+03
[ Info:     57  -1.5e+03   3.4e+03   0.0e+00   1.5e-03
[ Info:     58   1.9e+03   3.4e+03   0.0e+00   7.0e+03
[ Info:     59  -1.5e+03   3.4e+03   0.0e+00   1.5e-03
[ Info:     60   1.9e+03   3.4e+03   0.0e+00   7.0e+03
[ Info:   iter       obj      Δobj  violation  kkt_residual  
[ Info:      0   2.9e+03       Inf   0.0e+00   1.1e+04
[ Info:      1  -2.3e+03   5.2e+03   0.0e+00   1.5e-03
[ Info:      2   3.8e+06   3.8e+06   0.0e+00   6.3e+05
[ Info:      3  -2.3e+03   3.8e+06   0.0e+00   1.5e-03
[ Info:      4   4.0e+04   4.3e+04   0.0e+00   3.2e+04
[ Info:      5  -2.3e+03   4.3e+04   0.0e+00   1.5e-03
[ Info:      6  -2.3e+03   1.5e-01   0.0e+00   1.5e-03
[ Info:      7   3.8e+05   3.8e+05   0.0e+00   1.2e+05
[ Info:      8  -2.3e+03   3.8e+05   0.0e+00   1.5e-03
[ Info:      9   5.2e+04   5.5e+04   0.0e+00   3.7e+04
[ Info:     10  -2.3e+03   5.5e+04   0.0e+00   1.5e-03
[ Info:     11   2.4e+03   4.7e+03   0.0e+00   1.0e+04
[ Info:     12  -2.3e+03   4.7e+03   0.0e+00   1.5e-03
[ Info:     13  -2.3e+03   2.2e-02   0.0e+00   1.5e-03
[ Info:     14   1.2e+04   1.4e+04   0.0e+00   1.8e+04
[ Info:     15  -2.3e+03   1.4e+04   0.0e+00   1.5e-03
[ Info:     16   2.9e+03   5.2e+03   0.0e+00   1.1e+04
[ Info:     17  -2.3e+03   5.2e+03   0.0e+00   1.5e-03
[ Info:     18   2.9e+03   5.2e+03   0.0e+00   1.1e+04
[ Info:     19  -2.3e+03   5.2e+03   0.0e+00   1.5e-03
[ Info:     20   2.9e+03   5.2e+03   0.0e+00   1.1e+04
[ Info:     21  -2.3e+03   5.2e+03   0.0e+00   1.5e-03
[ Info:     22   2.9e+03   5.2e+03   0.0e+00   1.1e+04
[ Info:     23  -2.3e+03   5.2e+03   0.0e+00   1.5e-03
[ Info:     24   2.9e+03   5.2e+03   0.0e+00   1.1e+04
[ Info:     25  -2.3e+03   5.2e+03   0.0e+00   1.5e-03
[ Info:     26   2.9e+03   5.2e+03   0.0e+00   1.1e+04
[ Info:     27  -2.3e+03   5.2e+03   0.0e+00   1.5e-03
[ Info:     28   2.9e+03   5.2e+03   0.0e+00   1.1e+04
[ Info:     29  -2.3e+03   5.2e+03   0.0e+00   1.5e-03
[ Info:     30   2.9e+03   5.2e+03   0.0e+00   1.1e+04
[ Info:     31  -2.3e+03   5.2e+03   0.0e+00   1.5e-03
[ Info:     32   2.9e+03   5.2e+03   0.0e+00   1.1e+04
[ Info:     33  -2.3e+03   5.2e+03   0.0e+00   1.5e-03
[ Info:     34   2.9e+03   5.2e+03   0.0e+00   1.1e+04
[ Info:     35  -2.3e+03   5.2e+03   0.0e+00   1.5e-03
[ Info:     36   2.9e+03   5.2e+03   0.0e+00   1.1e+04
[ Info:     37  -2.3e+03   5.2e+03   0.0e+00   1.5e-03
[ Info:     38   2.9e+03   5.2e+03   0.0e+00   1.1e+04
[ Info:     39  -2.3e+03   5.2e+03   0.0e+00   1.5e-03
[ Info:     40   2.9e+03   5.2e+03   0.0e+00   1.1e+04
[ Info:     41  -2.3e+03   5.2e+03   0.0e+00   1.5e-03
[ Info:     42   2.9e+03   5.2e+03   0.0e+00   1.1e+04
[ Info:     43  -2.3e+03   5.2e+03   0.0e+00   1.5e-03
[ Info:     44   2.9e+03   5.2e+03   0.0e+00   1.1e+04
[ Info:     45  -2.3e+03   5.2e+03   0.0e+00   1.5e-03
[ Info:     46   2.9e+03   5.2e+03   0.0e+00   1.1e+04
[ Info:     47  -2.3e+03   5.2e+03   0.0e+00   1.5e-03
[ Info:     48   2.9e+03   5.2e+03   0.0e+00   1.1e+04
[ Info:     49  -2.3e+03   5.2e+03   0.0e+00   1.5e-03
[ Info:     50   2.9e+03   5.2e+03   0.0e+00   1.1e+04
[ Info:     51  -2.3e+03   5.2e+03   0.0e+00   1.5e-03
[ Info:     52   2.9e+03   5.2e+03   0.0e+00   1.1e+04
[ Info:     53  -2.3e+03   5.2e+03   0.0e+00   1.5e-03
[ Info:     54   2.9e+03   5.2e+03   0.0e+00   1.1e+04
[ Info:     55  -2.3e+03   5.2e+03   0.0e+00   1.5e-03
[ Info:     56   2.9e+03   5.2e+03   0.0e+00   1.1e+04
[ Info:     57  -2.3e+03   5.2e+03   0.0e+00   1.5e-03
[ Info:     58   2.9e+03   5.2e+03   0.0e+00   1.1e+04
[ Info:     59  -2.3e+03   5.2e+03   0.0e+00   1.5e-03
[ Info:     60   2.9e+03   5.2e+03   0.0e+00   1.1e+04
[ Info:   iter       obj      Δobj  violation  kkt_residual  
[ Info:      0   4.3e+03       Inf   0.0e+00   1.6e+04
[ Info:      1  -3.4e+03   7.8e+03   0.0e+00   1.5e-03
[ Info:      2   5.6e+06   5.6e+06   0.0e+00   9.4e+05
[ Info:      3  -3.4e+03   5.6e+06   0.0e+00   1.5e-03
[ Info:      4   6.1e+04   6.4e+04   0.0e+00   4.9e+04
[ Info:      5  -3.4e+03   6.4e+04   0.0e+00   1.5e-03
[ Info:      6  -3.4e+03   1.5e-01   0.0e+00   1.5e-03
[ Info:      7   5.7e+05   5.7e+05   0.0e+00   1.7e+05
[ Info:      8  -3.4e+03   5.7e+05   0.0e+00   1.5e-03
[ Info:      9   7.8e+04   8.2e+04   0.0e+00   5.6e+04
[ Info:     10  -3.4e+03   8.2e+04   0.0e+00   1.5e-03
[ Info:     11   3.6e+03   7.0e+03   0.0e+00   1.5e+04
[ Info:     12  -3.4e+03   7.0e+03   0.0e+00   1.5e-03
[ Info:     13  -3.4e+03   2.2e-02   0.0e+00   1.5e-03
[ Info:     14   1.8e+04   2.1e+04   0.0e+00   2.7e+04
[ Info:     15  -3.4e+03   2.1e+04   0.0e+00   1.5e-03
[ Info:     16   4.3e+03   7.8e+03   0.0e+00   1.6e+04
[ Info:     17  -3.4e+03   7.8e+03   0.0e+00   1.5e-03
[ Info:     18   4.3e+03   7.8e+03   0.0e+00   1.6e+04
[ Info:     19  -3.4e+03   7.8e+03   0.0e+00   1.5e-03
[ Info:     20   4.3e+03   7.8e+03   0.0e+00   1.6e+04
[ Info:     21  -3.4e+03   7.8e+03   0.0e+00   1.5e-03
[ Info:     22   4.3e+03   7.8e+03   0.0e+00   1.6e+04
[ Info:     23  -3.4e+03   7.8e+03   0.0e+00   1.5e-03
[ Info:     24   4.3e+03   7.8e+03   0.0e+00   1.6e+04
[ Info:     25  -3.4e+03   7.8e+03   0.0e+00   1.5e-03
[ Info:     26   4.3e+03   7.8e+03   0.0e+00   1.6e+04
[ Info:     27  -3.4e+03   7.8e+03   0.0e+00   1.5e-03
[ Info:     28   4.3e+03   7.8e+03   0.0e+00   1.6e+04
[ Info:     29  -3.4e+03   7.8e+03   0.0e+00   1.5e-03
[ Info:     30   4.3e+03   7.8e+03   0.0e+00   1.6e+04
[ Info:     31  -3.4e+03   7.8e+03   0.0e+00   1.5e-03
[ Info:     32   4.3e+03   7.8e+03   0.0e+00   1.6e+04
[ Info:     33  -3.4e+03   7.8e+03   0.0e+00   1.5e-03
[ Info:     34   4.3e+03   7.8e+03   0.0e+00   1.6e+04
[ Info:     35  -3.4e+03   7.8e+03   0.0e+00   1.5e-03
[ Info:     36   4.3e+03   7.8e+03   0.0e+00   1.6e+04
[ Info:     37  -3.4e+03   7.8e+03   0.0e+00   1.5e-03
[ Info:     38   4.3e+03   7.8e+03   0.0e+00   1.6e+04
[ Info:     39  -3.4e+03   7.8e+03   0.0e+00   1.5e-03
[ Info:     40   4.3e+03   7.8e+03   0.0e+00   1.6e+04
[ Info:     41  -3.4e+03   7.8e+03   0.0e+00   1.5e-03
[ Info:     42   4.3e+03   7.8e+03   0.0e+00   1.6e+04
[ Info:     43  -3.4e+03   7.8e+03   0.0e+00   1.5e-03
[ Info:     44   4.3e+03   7.8e+03   0.0e+00   1.6e+04
[ Info:     45  -3.4e+03   7.8e+03   0.0e+00   1.5e-03
[ Info:     46   4.3e+03   7.8e+03   0.0e+00   1.6e+04
[ Info:     47  -3.4e+03   7.8e+03   0.0e+00   1.5e-03
[ Info:     48   4.3e+03   7.8e+03   0.0e+00   1.6e+04
[ Info:     49  -3.4e+03   7.8e+03   0.0e+00   1.5e-03
[ Info:     50   4.3e+03   7.8e+03   0.0e+00   1.6e+04
[ Info:     51  -3.4e+03   7.8e+03   0.0e+00   1.5e-03
[ Info:     52   4.3e+03   7.8e+03   0.0e+00   1.6e+04
[ Info:     53  -3.4e+03   7.8e+03   0.0e+00   1.5e-03
[ Info:     54   4.3e+03   7.8e+03   0.0e+00   1.6e+04
[ Info:     55  -3.4e+03   7.8e+03   0.0e+00   1.5e-03
[ Info:     56   4.3e+03   7.8e+03   0.0e+00   1.6e+04
[ Info:     57  -3.4e+03   7.8e+03   0.0e+00   1.5e-03
[ Info:     58   4.3e+03   7.8e+03   0.0e+00   1.6e+04
[ Info:     59  -3.4e+03   7.8e+03   0.0e+00   1.5e-03
[ Info:     60   4.3e+03   7.8e+03   0.0e+00   1.6e+04
max-compliance design: volume = 0.701, max C = 109.8, C_t = 108.9

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; pick nv a power of two.
  • 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.