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)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:
MultiLoadandgenerate_scenariosfor building load ensemblesMeanComplianceFunwith the exact, SVD, Hutchinson-trace, and SVD-trace estimatorsBlockComplianceFunfor 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
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)))")
endhutch 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)))")
endhadamard 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
endx_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)).minimizerVisualize the designs
fig1 = visualize(problem.problem; static=true, topology=filter(PseudoDensities(x_mean)).x)
display_app(fig1)fig2 = visualize(problem.problem; static=true, topology=filter(PseudoDensities(x_meanstd)).x)
display_app(fig2)fig3 = visualize(problem.problem; static=true, topology=filter(PseudoDensities(x_al)).x)
display_app(fig3)Practical guidance
- Exact (
:exact,:exact_svd): use when the number of scenarios is small (≤ a few dozen) or the scenarios are strongly correlated.:exact_svdis 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 withnv, but so does cost. - Hadamard (
:tracewithsample_method=:hadamard): deterministic and smoother than Hutchinson; picknva power of two. BlockComplianceFunexposes 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.