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 = 32.93546610860071
exact_svd = 32.935466108600714 (rel. diff 2.1573787157502846e-16)
Hutchinson trace estimator
Instead of solving all nloads scenarios, the Hutchinson estimator probes with nv random Rademacher (±1) vectors:
\[ \mathbb{E}\,[v^\mathsf{T} F^\mathsf{T} K^{-1} F v] = \mathrm{tr}(F^\mathsf{T} K^{-1} F) \]
which is proportional to the mean compliance. nv is the number of probe vectors; the estimate converges at O(1/√nv) but costs only nv solves.
for nv in (2, 4, 8, 16)
mc = MeanComplianceFun(problem, solver; method=:trace, nv=nv, sample_once=false)
est = mc(PseudoDensities(x))
println("hutch nv=$(lpad(nv, 2)): $(round(est, digits=3)) (rel. err $(round(abs(est - C_exact) / C_exact, digits=3)))")
endhutch nv= 2: 15.656 (rel. err 0.525)
hutch nv= 4: 35.751 (rel. err 0.085)
hutch nv= 8: 36.746 (rel. err 0.116)
hutch nv=16: 41.002 (rel. err 0.245)
With sample_once=false the probe vectors are redrawn on every call, so the estimate varies between calls; with sample_once=true (the default) they are drawn once at construction and held fixed, which keeps the objective and its gradient consistent during an optimization.
Hadamard (deterministic) estimator
Passing sample_method=:hadamard replaces the random probes with deterministic orthogonal Hadamard columns. The estimator is exact only when nv equals the number of load scenarios (the Hadamard columns then form a complete orthogonal basis); with fewer columns the estimate is biased toward the column span, so the constructor rejects nv < n_scenarios.
n_scenarios = size(problem.F, 2)
mc = MeanComplianceFun(
problem, solver; method=:trace, nv=n_scenarios, sample_method=:hadamard
)
est = mc(PseudoDensities(x))
println("hadamard nv=$(n_scenarios): $(round(est, digits=3)) (rel. err $(round(abs(est - C_exact) / C_exact, digits=3)))")hadamard nv=16: 32.935 (rel. err 0.0)
Per-scenario compliance: mean and standard deviation
BlockComplianceFun returns a vector of compliance values, one per scenario. This lets us form arbitrary statistics. Minimizing the mean alone is the standard robust formulation; adding a multiple of the standard deviation penalizes designs that perform unevenly across the load distribution.
bc = BlockComplianceFun(problem, solver; method=:exact)
V = 0.5
filter = DensityFilterFun(solver; rmin=2.0)
volfrac = VolumeFun(solver)
mean_only = x -> mean(bc(filter(PseudoDensities(x))))
mean_std = x -> mean(bc(filter(PseudoDensities(x)))) + 0.25 * std(bc(filter(PseudoDensities(x))))
volconstr = x -> volfrac(filter(PseudoDensities(x))) - V
function run(obj, label)
model = Model(obj)
addvar!(model, zeros(length(x)), ones(length(x)))
add_ineq_constraint!(model, volconstr)
r = optimize(model, MMA87(), fill(V, length(x));
options=MMAOptions(; maxiter=100, tol=Tolerance(; kkt=1e-4, f=1e-4)))
println("$label: obj = $(round(obj(r.minimizer), digits=3)), vol = $(round(volconstr(r.minimizer) + V, digits=3))")
return r.minimizer
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 3.3e+01 Inf 0.0e+00 1.6e+00 [ Info: 1 2.4e+01 9.3e+00 0.0e+00 3.9e+00 [ Info: 2 1.8e+01 5.3e+00 0.0e+00 9.0e-01 [ Info: 3 1.7e+01 1.7e+00 0.0e+00 2.1e-01 [ Info: 4 1.6e+01 4.0e-01 0.0e+00 5.7e-02 [ Info: 5 1.6e+01 1.4e-01 0.0e+00 2.8e-02 [ Info: 6 1.6e+01 8.5e-02 0.0e+00 2.1e-02 [ Info: 7 1.6e+01 6.0e-02 0.0e+00 1.8e-02 [ Info: 8 1.6e+01 4.7e-02 0.0e+00 1.5e-02 [ Info: 9 1.6e+01 4.0e-02 0.0e+00 1.3e-02 [ Info: 10 1.6e+01 4.3e-02 0.0e+00 1.6e-02 [ Info: 11 1.6e+01 4.0e-02 0.0e+00 1.4e-02 [ Info: 12 1.6e+01 3.2e-02 0.0e+00 1.6e-02 [ Info: 13 1.6e+01 3.0e-02 0.0e+00 1.9e-02 [ Info: 14 1.6e+01 2.8e-02 0.0e+00 1.4e-02 [ Info: 15 1.6e+01 2.6e-02 0.0e+00 1.6e-02 [ Info: 16 1.6e+01 2.0e-02 0.0e+00 9.6e-03 [ Info: 17 1.6e+01 1.0e-02 0.0e+00 1.9e-02 [ Info: 18 1.6e+01 1.4e-01 0.0e+00 5.2e-02 [ Info: 19 1.6e+01 3.1e-01 0.0e+00 1.8e-01 [ Info: 20 1.6e+01 1.8e-01 0.0e+00 3.3e-01 [ Info: 21 1.6e+01 3.5e-01 0.0e+00 2.6e-01 [ Info: 22 1.6e+01 2.7e-01 0.0e+00 7.6e-02 [ Info: 23 1.6e+01 9.3e-02 0.0e+00 1.5e-02 [ Info: 24 1.6e+01 2.0e-02 0.0e+00 7.9e-03 [ Info: 25 1.6e+01 5.7e-03 0.0e+00 8.8e-03 [ Info: 26 1.6e+01 4.3e-03 0.0e+00 9.7e-03 [ Info: 27 1.6e+01 4.1e-03 0.0e+00 1.1e-02 [ Info: 28 1.6e+01 4.1e-03 0.0e+00 1.2e-02 [ Info: 29 1.6e+01 4.2e-03 0.0e+00 8.8e-03 [ Info: 30 1.6e+01 4.1e-03 0.0e+00 5.9e-03 [ Info: 31 1.6e+01 4.2e-03 0.0e+00 6.5e-03 [ Info: 32 1.6e+01 4.3e-03 0.0e+00 6.6e-03 [ Info: 33 1.6e+01 4.4e-03 0.0e+00 6.6e-03 [ Info: 34 1.6e+01 4.3e-03 0.0e+00 7.0e-03 [ Info: 35 1.6e+01 4.1e-03 0.0e+00 7.2e-03 [ Info: 36 1.6e+01 1.6e-03 0.0e+00 9.2e-03 [ Info: 37 1.6e+01 7.9e-03 0.0e+00 1.5e-02 [ Info: 38 1.6e+01 2.7e-02 0.0e+00 1.7e-02 [ Info: 39 1.6e+01 5.5e-02 0.0e+00 3.7e-02 [ Info: 40 1.6e+01 7.1e-02 0.0e+00 7.5e-02 [ Info: 41 1.6e+01 3.4e-02 0.0e+00 9.7e-02 [ Info: 42 1.6e+01 6.5e-02 0.0e+00 9.9e-02 [ Info: 43 1.6e+01 1.1e-01 0.0e+00 3.4e-02 [ Info: 44 1.6e+01 3.9e-02 0.0e+00 5.1e-03 [ Info: 45 1.6e+01 4.7e-03 0.0e+00 5.1e-03 [ Info: 46 1.6e+01 1.4e-03 0.0e+00 4.1e-03 [ Info: 47 1.6e+01 1.1e-03 0.0e+00 4.1e-03 [ Info: 48 1.6e+01 1.2e-03 0.0e+00 4.2e-03 [ Info: 49 1.6e+01 1.3e-03 0.0e+00 4.3e-03 [ Info: 50 1.6e+01 1.4e-03 0.0e+00 4.5e-03 [ Info: 51 1.6e+01 1.6e-03 0.0e+00 5.1e-03 [ Info: 52 1.6e+01 1.7e-03 0.0e+00 5.1e-03 [ Info: 53 1.6e+01 2.0e-03 0.0e+00 6.0e-03 [ Info: 54 1.6e+01 2.3e-03 0.0e+00 7.2e-03 [ Info: 55 1.6e+01 2.2e-03 0.0e+00 8.4e-03 [ Info: 56 1.6e+01 2.4e-03 0.0e+00 9.8e-03 [ Info: 57 1.5e+01 2.8e-03 0.0e+00 1.2e-02 [ Info: 58 1.5e+01 3.0e-03 0.0e+00 1.4e-02 [ Info: 59 1.5e+01 3.5e-03 0.0e+00 1.7e-02 [ Info: 60 1.5e+01 2.5e-03 0.0e+00 2.1e-02 [ Info: 61 1.5e+01 4.3e-03 0.0e+00 2.0e-02 [ Info: 62 1.6e+01 2.3e-02 0.0e+00 1.8e-02 [ Info: 63 1.6e+01 3.5e-02 0.0e+00 3.8e-02 [ Info: 64 1.6e+01 1.2e-02 0.0e+00 5.0e-02 [ Info: 65 1.6e+01 5.1e-02 0.0e+00 4.0e-02 [ Info: 66 1.5e+01 5.1e-02 0.0e+00 2.6e-02 [ Info: 67 1.5e+01 1.6e-02 0.0e+00 2.9e-02 [ Info: 68 1.5e+01 4.1e-03 0.0e+00 3.1e-02 [ Info: 69 1.5e+01 3.2e-03 0.0e+00 3.3e-02 [ Info: 70 1.5e+01 2.9e-03 0.0e+00 3.5e-02 [ Info: 71 1.5e+01 3.1e-03 0.0e+00 3.7e-02 [ Info: 72 1.5e+01 3.8e-03 0.0e+00 4.0e-02 [ Info: 73 1.5e+01 4.3e-03 0.0e+00 1.5e-02 [ Info: 74 1.5e+01 2.5e-03 0.0e+00 1.6e-02 [ Info: 75 1.5e+01 1.7e-03 0.0e+00 1.6e-02 [ Info: 76 1.5e+01 1.9e-03 0.0e+00 1.7e-02 [ Info: 77 1.5e+01 2.2e-03 0.0e+00 1.7e-02 [ Info: 78 1.5e+01 2.5e-03 0.0e+00 1.8e-02 [ Info: 79 1.5e+01 2.9e-03 0.0e+00 1.9e-02 [ Info: 80 1.5e+01 3.5e-03 0.0e+00 2.0e-02 [ Info: 81 1.5e+01 4.1e-03 0.0e+00 2.2e-02 [ Info: 82 1.5e+01 2.7e-03 0.0e+00 2.4e-02 [ Info: 83 1.5e+01 1.4e-03 0.0e+00 1.2e-02 [ Info: 84 1.5e+01 1.1e-02 0.0e+00 1.6e-02 [ Info: 85 1.5e+01 1.7e-02 0.0e+00 3.0e-02 [ Info: 86 1.5e+01 4.8e-03 0.0e+00 2.0e-02 [ Info: 87 1.5e+01 2.3e-02 0.0e+00 8.7e-03 [ Info: 88 1.5e+01 8.5e-03 0.0e+00 9.7e-03 [ Info: 89 1.5e+01 4.3e-04 0.0e+00 1.7e-02 [ Info: 90 1.5e+01 2.7e-03 0.0e+00 7.9e-03 [ Info: 91 1.5e+01 3.7e-03 0.0e+00 8.5e-03 [ Info: 92 1.5e+01 2.3e-03 0.0e+00 9.0e-03 [ Info: 93 1.5e+01 1.1e-03 0.0e+00 7.3e-03 [ Info: 94 1.5e+01 9.6e-04 0.0e+00 7.7e-03 [ Info: 95 1.5e+01 9.8e-04 0.0e+00 8.1e-03 [ Info: 96 1.5e+01 1.0e-03 0.0e+00 8.5e-03 [ Info: 97 1.5e+01 1.2e-03 0.0e+00 8.8e-03 [ Info: 98 1.5e+01 1.3e-03 0.0e+00 9.1e-03 [ Info: 99 1.5e+01 1.1e-03 0.0e+00 9.5e-03 [ Info: 100 1.5e+01 1.3e-03 0.0e+00 1.0e-02 mean only : obj = 15.373, vol = 0.5 [ Info: iter obj Δobj violation kkt_residual [ Info: 0 4.0e+01 Inf 0.0e+00 1.8e+00 [ Info: 1 2.9e+01 1.1e+01 0.0e+00 4.6e+00 [ Info: 2 2.3e+01 6.5e+00 0.0e+00 1.1e+00 [ Info: 3 2.1e+01 2.0e+00 0.0e+00 2.6e-01 [ Info: 4 2.0e+01 5.3e-01 0.0e+00 8.2e-02 [ Info: 5 2.0e+01 2.0e-01 0.0e+00 4.0e-02 [ Info: 6 2.0e+01 1.2e-01 0.0e+00 2.7e-02 [ Info: 7 2.0e+01 8.8e-02 0.0e+00 2.2e-02 [ Info: 8 2.0e+01 7.9e-02 0.0e+00 3.3e-02 [ Info: 9 1.9e+01 6.7e-02 0.0e+00 2.5e-02 [ Info: 10 1.9e+01 5.3e-02 0.0e+00 1.9e-02 [ Info: 11 1.9e+01 4.5e-02 0.0e+00 1.8e-02 [ Info: 12 1.9e+01 4.2e-02 0.0e+00 1.9e-02 [ Info: 13 1.9e+01 3.9e-02 0.0e+00 1.8e-02 [ Info: 14 1.9e+01 3.2e-02 0.0e+00 2.2e-02 [ Info: 15 1.9e+01 3.0e-02 0.0e+00 1.3e-02 [ Info: 16 1.9e+01 1.9e-02 0.0e+00 1.3e-02 [ Info: 17 1.9e+01 2.5e-02 0.0e+00 2.7e-02 [ Info: 18 1.9e+01 1.9e-01 0.0e+00 7.5e-02 [ Info: 19 2.0e+01 8.4e-01 0.0e+00 2.7e-01 [ Info: 20 2.1e+01 8.7e-01 0.0e+00 8.5e-01 [ Info: 21 2.1e+01 3.2e-01 0.0e+00 9.4e-01 [ Info: 22 2.1e+01 4.5e-01 0.0e+00 1.2e+00 [ Info: 23 2.0e+01 1.3e+00 0.0e+00 5.0e-01 [ Info: 24 1.9e+01 5.0e-01 0.0e+00 7.1e-02 [ Info: 25 1.9e+01 8.9e-02 0.0e+00 1.3e-02 [ Info: 26 1.9e+01 1.8e-02 0.0e+00 1.4e-02 [ Info: 27 1.9e+01 1.0e-02 0.0e+00 1.5e-02 [ Info: 28 1.9e+01 8.2e-03 0.0e+00 1.7e-02 [ Info: 29 1.9e+01 7.8e-03 0.0e+00 1.9e-02 [ Info: 30 1.9e+01 7.8e-03 0.0e+00 1.6e-02 [ Info: 31 1.9e+01 8.1e-03 0.0e+00 1.7e-02 [ Info: 32 1.9e+01 8.4e-03 0.0e+00 1.2e-02 [ Info: 33 1.9e+01 8.5e-03 0.0e+00 1.3e-02 [ Info: 34 1.9e+01 9.1e-03 0.0e+00 1.4e-02 [ Info: 35 1.9e+01 1.0e-02 0.0e+00 1.6e-02 [ Info: 36 1.9e+01 1.0e-02 0.0e+00 1.8e-02 [ Info: 37 1.9e+01 1.0e-02 0.0e+00 2.0e-02 [ Info: 38 1.9e+01 8.4e-03 0.0e+00 2.3e-02 [ Info: 39 1.9e+01 1.4e-03 0.0e+00 2.2e-02 [ Info: 40 1.9e+01 1.7e-02 0.0e+00 2.6e-02 [ Info: 41 1.9e+01 4.3e-02 0.0e+00 4.4e-02 [ Info: 42 1.9e+01 4.5e-02 0.0e+00 6.4e-02 [ Info: 43 1.9e+01 4.6e-02 0.0e+00 7.5e-02 [ Info: 44 1.9e+01 9.7e-02 0.0e+00 3.1e-02 [ Info: 45 1.9e+01 4.1e-02 0.0e+00 1.8e-02 [ Info: 46 1.9e+01 1.6e-02 0.0e+00 2.6e-02 [ Info: 47 1.9e+01 1.7e-02 0.0e+00 3.8e-02 [ Info: 48 1.9e+01 1.5e-02 0.0e+00 4.0e-02 [ Info: 49 1.9e+01 1.2e-02 0.0e+00 2.4e-02 [ Info: 50 1.9e+01 1.0e-02 0.0e+00 1.3e-02 [ Info: 51 1.9e+01 7.9e-03 0.0e+00 1.4e-02 [ Info: 52 1.9e+01 8.3e-03 0.0e+00 1.7e-02 [ Info: 53 1.9e+01 8.1e-03 0.0e+00 1.5e-02 [ Info: 54 1.9e+01 7.1e-03 0.0e+00 1.7e-02 [ Info: 55 1.9e+01 7.2e-03 0.0e+00 1.9e-02 [ Info: 56 1.9e+01 7.3e-03 0.0e+00 2.1e-02 [ Info: 57 1.9e+01 7.3e-03 0.0e+00 1.8e-02 [ Info: 58 1.9e+01 6.9e-03 0.0e+00 2.0e-02 [ Info: 59 1.9e+01 6.0e-03 0.0e+00 2.2e-02 [ Info: 60 1.9e+01 4.6e-03 0.0e+00 2.5e-02 [ Info: 61 1.9e+01 1.6e-03 0.0e+00 1.4e-02 [ Info: 62 1.9e+01 2.1e-03 0.0e+00 1.2e-02 [ Info: 63 1.9e+01 5.7e-03 0.0e+00 1.2e-02 [ Info: 64 1.9e+01 5.8e-03 0.0e+00 1.2e-02 [ Info: 65 1.9e+01 3.8e-03 0.0e+00 9.9e-03 [ Info: 66 1.9e+01 3.4e-03 0.0e+00 7.6e-03 [ Info: 67 1.9e+01 2.8e-03 0.0e+00 7.6e-03 [ Info: 68 1.9e+01 2.5e-03 0.0e+00 7.6e-03 [ Info: 69 1.9e+01 1.9e-03 0.0e+00 7.6e-03 [ Info: 70 1.9e+01 1.8e-03 0.0e+00 7.8e-03 [ Info: 71 1.9e+01 1.8e-03 0.0e+00 7.6e-03 [ Info: 72 1.9e+01 1.8e-03 0.0e+00 4.3e-03 [ Info: 73 1.9e+01 1.7e-03 0.0e+00 3.7e-03 [ Info: 74 1.9e+01 1.8e-03 0.0e+00 3.7e-03 [ Info: 75 1.9e+01 1.9e-03 0.0e+00 3.4e-03 [ Info: 76 1.9e+01 1.9e-03 0.0e+00 3.2e-03 [ Info: 77 1.9e+01 1.9e-03 0.0e+00 3.3e-03 [ Info: 78 1.9e+01 1.8e-03 0.0e+00 3.8e-03 [ Info: 79 1.9e+01 1.4e-03 0.0e+00 3.5e-03 [ Info: 80 1.9e+01 1.1e-03 0.0e+00 4.3e-03 [ Info: 81 1.9e+01 6.9e-04 0.0e+00 6.3e-03 [ Info: 82 1.9e+01 1.2e-03 0.0e+00 5.0e-03 [ Info: 83 1.9e+01 1.4e-03 0.0e+00 5.3e-03 [ Info: 84 1.9e+01 1.7e-03 0.0e+00 4.2e-03 [ Info: 85 1.9e+01 1.4e-03 0.0e+00 2.8e-03 [ Info: 86 1.9e+01 9.6e-04 0.0e+00 3.0e-03 [ Info: 87 1.9e+01 8.2e-04 0.0e+00 2.9e-03 [ Info: 88 1.9e+01 8.9e-04 0.0e+00 3.1e-03 [ Info: 89 1.9e+01 1.0e-03 0.0e+00 3.3e-03 [ Info: 90 1.9e+01 1.1e-03 0.0e+00 3.4e-03 [ Info: 91 1.9e+01 1.1e-03 0.0e+00 3.0e-03 [ Info: 92 1.9e+01 9.7e-04 0.0e+00 2.3e-03 [ Info: 93 1.9e+01 8.0e-04 0.0e+00 2.5e-03 [ Info: 94 1.9e+01 6.8e-04 0.0e+00 2.7e-03 [ Info: 95 1.9e+01 6.5e-04 0.0e+00 2.6e-03 [ Info: 96 1.9e+01 5.9e-04 0.0e+00 2.5e-03 [ Info: 97 1.9e+01 5.3e-04 0.0e+00 2.5e-03 [ Info: 98 1.9e+01 4.9e-04 0.0e+00 2.4e-03 [ Info: 99 1.9e+01 4.9e-04 0.0e+00 2.6e-03 [ Info: 100 1.9e+01 4.8e-04 0.0e+00 2.1e-03 mean + 0.25 std: obj = 18.727, vol = 0.5
800-element Vector{Float64}:
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
⋮
0.5041536357680158
0.13602514023354909
0.0
0.7100913727091689
0.5701156026274002
0.0
0.06456416633148623
1.0
1.0
Maximum compliance constraint via augmented Lagrangian
A robust design can instead bound the worst-case compliance: minimize the volume subject to C_i ≤ C_t for every scenario. Following TarekRay2021 (§4), this is solved with the augmented Lagrangian method, where the per-scenario compliances from BlockComplianceFun enter the augmented Lagrangian function
\[ L(\bm{x}; \bm\lambda, r) = V(\bm{x}) + \sum_i \left[\lambda_i (C_i - C_t) + r\,\max(C_i - C_t, 0)^2\right]. \]
Each subproblem minimizes this function over the box 0 ≤ x ≤ 1, then the multipliers and penalty are updated (λ ← λ + ρ·c, ρ ← γρ). The compliance threshold C_t is calibrated from the solid design’s worst-case compliance.
volf = x -> volfrac(filter(PseudoDensities(x)))
Cfun = x -> bc(filter(PseudoDensities(x)))
C_t = 2.0 * maximum(Cfun(ones(length(solver.vars))))
function al_subproblem(λ, ρ, x0)
model = Model(xx -> begin
C = Cfun(xx)
c = C .- C_t
pen = max.(λ .+ ρ .* c, 0.0)
volf(xx) + (1 / (2ρ)) * (dot(pen, pen) - dot(λ, λ))
end)
addvar!(model, zeros(length(x0)), ones(length(x0)))
return optimize(model, MMA87(), x0;
options=MMAOptions(; maxiter=60, tol=Tolerance(; kkt=1e-4, f=1e-4))).minimizer
endλ = zeros(nloads)
ρ = 1.0
x_al = ones(length(solver.vars))
for k in 1:20
global λ, ρ, x_al
x_al = al_subproblem(λ, ρ, x_al)
C = Cfun(x_al)
λ .= max.(λ .+ ρ .* (C .- C_t), 0.0)
ρ *= 1.5
end
C = Cfun(x_al)
println("max-compliance design: volume = $(round(volf(x_al), digits=3)), max C = $(round(maximum(C), digits=1)), C_t = $(round(C_t, digits=1))")[ Info: iter obj Δobj violation kkt_residual [ Info: 0 1.0e+00 Inf 0.0e+00 1.3e-03 [ Info: 1 7.2e+02 7.2e+02 0.0e+00 1.6e+02 [ Info: 2 1.0e+00 7.2e+02 0.0e+00 1.3e-03 [ Info: 3 6.2e+00 5.2e+00 0.0e+00 7.3e+00 [ Info: 4 9.0e-01 5.3e+00 0.0e+00 1.3e-03 [ Info: 5 7.5e-01 1.5e-01 0.0e+00 1.3e-03 [ Info: 6 7.1e+01 7.0e+01 0.0e+00 3.1e+01 [ Info: 7 7.7e-01 7.0e+01 0.0e+00 1.3e-03 [ Info: 8 8.2e+00 7.4e+00 0.0e+00 8.6e+00 [ Info: 9 7.4e-01 7.4e+00 0.0e+00 1.3e-03 [ Info: 10 7.9e-01 4.7e-02 0.0e+00 8.7e-01 [ Info: 11 7.3e-01 6.1e-02 0.0e+00 1.3e-03 [ Info: 12 7.1e-01 2.2e-02 0.0e+00 1.3e-03 [ Info: 13 1.8e+00 1.1e+00 0.0e+00 3.1e+00 [ Info: 14 7.1e-01 1.1e+00 0.0e+00 1.3e-03 [ Info: 15 8.2e-01 1.1e-01 0.0e+00 1.0e+00 [ Info: 16 7.0e-01 1.2e-01 0.0e+00 1.3e-03 [ Info: 17 8.2e-01 1.2e-01 0.0e+00 1.0e+00 [ Info: 18 7.0e-01 1.2e-01 0.0e+00 1.3e-03 [ Info: 19 8.2e-01 1.2e-01 0.0e+00 1.0e+00 [ Info: 20 7.0e-01 1.2e-01 0.0e+00 1.3e-03 [ Info: 21 8.2e-01 1.2e-01 0.0e+00 1.0e+00 [ Info: 22 7.0e-01 1.2e-01 0.0e+00 1.3e-03 [ Info: 23 8.2e-01 1.2e-01 0.0e+00 1.0e+00 [ Info: 24 7.0e-01 1.2e-01 0.0e+00 1.3e-03 [ Info: 25 8.2e-01 1.2e-01 0.0e+00 1.0e+00 [ Info: 26 7.0e-01 1.2e-01 0.0e+00 1.3e-03 [ Info: 27 8.2e-01 1.2e-01 0.0e+00 1.0e+00 [ Info: 28 7.0e-01 1.2e-01 0.0e+00 1.3e-03 [ Info: 29 8.2e-01 1.2e-01 0.0e+00 1.0e+00 [ Info: 30 7.0e-01 1.2e-01 0.0e+00 1.3e-03 [ Info: 31 8.2e-01 1.2e-01 0.0e+00 1.0e+00 [ Info: 32 7.0e-01 1.2e-01 0.0e+00 1.3e-03 [ Info: 33 8.2e-01 1.2e-01 0.0e+00 1.0e+00 [ Info: 34 7.0e-01 1.2e-01 0.0e+00 1.3e-03 [ Info: 35 8.2e-01 1.2e-01 0.0e+00 1.0e+00 [ Info: 36 7.0e-01 1.2e-01 0.0e+00 1.3e-03 [ Info: 37 8.2e-01 1.2e-01 0.0e+00 1.0e+00 [ Info: 38 7.0e-01 1.2e-01 0.0e+00 1.3e-03 [ Info: 39 8.2e-01 1.2e-01 0.0e+00 1.0e+00 [ Info: 40 7.0e-01 1.2e-01 0.0e+00 1.3e-03 [ Info: 41 8.2e-01 1.2e-01 0.0e+00 1.0e+00 [ Info: 42 7.0e-01 1.2e-01 0.0e+00 1.3e-03 [ Info: 43 8.2e-01 1.2e-01 0.0e+00 1.0e+00 [ Info: 44 7.0e-01 1.2e-01 0.0e+00 1.3e-03 [ Info: 45 8.2e-01 1.2e-01 0.0e+00 1.0e+00 [ Info: 46 7.0e-01 1.2e-01 0.0e+00 1.3e-03 [ Info: 47 8.2e-01 1.2e-01 0.0e+00 1.0e+00 [ Info: 48 7.0e-01 1.2e-01 0.0e+00 1.3e-03 [ Info: 49 8.2e-01 1.2e-01 0.0e+00 1.0e+00 [ Info: 50 7.0e-01 1.2e-01 0.0e+00 1.3e-03 [ Info: 51 8.2e-01 1.2e-01 0.0e+00 1.0e+00 [ Info: 52 7.0e-01 1.2e-01 0.0e+00 1.3e-03 [ Info: 53 8.2e-01 1.2e-01 0.0e+00 1.0e+00 [ Info: 54 7.0e-01 1.2e-01 0.0e+00 1.3e-03 [ Info: 55 8.2e-01 1.2e-01 0.0e+00 1.0e+00 [ Info: 56 7.0e-01 1.2e-01 0.0e+00 1.3e-03 [ Info: 57 8.2e-01 1.2e-01 0.0e+00 1.0e+00 [ Info: 58 7.0e-01 1.2e-01 0.0e+00 1.3e-03 [ Info: 59 8.2e-01 1.2e-01 0.0e+00 1.0e+00 [ Info: 60 7.0e-01 1.2e-01 0.0e+00 1.3e-03 [ Info: iter obj Δobj violation kkt_residual [ Info: 0 7.0e-01 Inf 0.0e+00 1.3e-03 [ Info: 1 1.3e+05 1.3e+05 0.0e+00 2.4e+04 [ Info: 2 7.1e-01 1.3e+05 0.0e+00 1.3e-03 [ Info: 3 1.3e+04 1.3e+04 0.0e+00 2.5e+03 [ Info: 4 2.6e+02 1.3e+04 0.0e+00 8.3e+01 [ Info: 5 7.7e-01 2.6e+02 0.0e+00 1.3e-03 [ Info: 6 5.5e+02 5.5e+02 0.0e+00 1.4e+02 [ Info: 7 7.1e-01 5.5e+02 0.0e+00 1.3e-03 [ Info: 8 2.1e+02 2.0e+02 0.0e+00 7.1e+01 [ Info: 9 7.4e+00 2.0e+02 0.0e+00 9.8e+00 [ Info: 10 7.3e-01 6.7e+00 0.0e+00 1.3e-03 [ Info: 11 1.7e+01 1.6e+01 0.0e+00 1.6e+01 [ Info: 12 7.1e-01 1.6e+01 0.0e+00 1.3e-03 [ Info: 13 5.7e+00 5.0e+00 0.0e+00 8.3e+00 [ Info: 14 7.0e-01 5.0e+00 0.0e+00 1.3e-03 [ Info: 15 2.6e+00 1.9e+00 0.0e+00 5.0e+00 [ Info: 16 7.0e-01 1.9e+00 0.0e+00 2.4e-02 [ Info: 17 7.0e-01 1.3e-03 0.0e+00 1.3e-03 [ Info: 18 1.1e+00 3.7e-01 0.0e+00 2.2e+00 [ Info: 19 7.0e-01 3.7e-01 0.0e+00 1.3e-03 [ Info: 20 1.0e+00 3.2e-01 0.0e+00 2.0e+00 [ Info: 21 7.0e-01 3.2e-01 0.0e+00 1.3e-03 [ Info: 22 1.0e+00 3.2e-01 0.0e+00 2.0e+00 [ Info: 23 7.0e-01 3.2e-01 0.0e+00 1.3e-03 [ Info: 24 1.0e+00 3.2e-01 0.0e+00 2.0e+00 [ Info: 25 7.0e-01 3.3e-01 0.0e+00 1.3e-03 [ Info: 26 1.0e+00 3.2e-01 0.0e+00 2.0e+00 [ Info: 27 7.0e-01 3.3e-01 0.0e+00 1.3e-03 [ Info: 28 1.0e+00 3.3e-01 0.0e+00 2.0e+00 [ Info: 29 7.0e-01 3.3e-01 0.0e+00 1.3e-03 [ Info: 30 1.0e+00 3.3e-01 0.0e+00 2.0e+00 [ Info: 31 7.0e-01 3.3e-01 0.0e+00 1.3e-03 [ Info: 32 1.0e+00 3.3e-01 0.0e+00 2.0e+00 [ Info: 33 7.0e-01 3.3e-01 0.0e+00 1.3e-03 [ Info: 34 1.0e+00 3.3e-01 0.0e+00 2.0e+00 [ Info: 35 7.0e-01 3.3e-01 0.0e+00 1.3e-03 [ Info: 36 1.0e+00 3.3e-01 0.0e+00 2.0e+00 [ Info: 37 7.0e-01 3.3e-01 0.0e+00 1.3e-03 [ Info: 38 1.0e+00 3.3e-01 0.0e+00 2.0e+00 [ Info: 39 7.0e-01 3.3e-01 0.0e+00 1.3e-03 [ Info: 40 1.0e+00 3.3e-01 0.0e+00 2.0e+00 [ Info: 41 7.0e-01 3.3e-01 0.0e+00 1.3e-03 [ Info: 42 1.0e+00 3.3e-01 0.0e+00 2.0e+00 [ Info: 43 7.0e-01 3.3e-01 0.0e+00 1.3e-03 [ Info: 44 1.0e+00 3.3e-01 0.0e+00 2.0e+00 [ Info: 45 7.0e-01 3.3e-01 0.0e+00 1.3e-03 [ Info: 46 1.0e+00 3.3e-01 0.0e+00 2.0e+00 [ Info: 47 7.0e-01 3.3e-01 0.0e+00 1.3e-03 [ Info: 48 1.0e+00 3.3e-01 0.0e+00 2.0e+00 [ Info: 49 7.0e-01 3.3e-01 0.0e+00 1.3e-03 [ Info: 50 1.0e+00 3.3e-01 0.0e+00 2.0e+00 [ Info: 51 7.0e-01 3.3e-01 0.0e+00 1.3e-03 [ Info: 52 1.0e+00 3.3e-01 0.0e+00 2.0e+00 [ Info: 53 7.0e-01 3.3e-01 0.0e+00 1.3e-03 [ Info: 54 1.0e+00 3.3e-01 0.0e+00 2.0e+00 [ Info: 55 7.0e-01 3.3e-01 0.0e+00 1.3e-03 [ Info: 56 1.0e+00 3.3e-01 0.0e+00 2.0e+00 [ Info: 57 7.0e-01 3.3e-01 0.0e+00 1.3e-03 [ Info: 58 1.0e+00 3.3e-01 0.0e+00 2.0e+00 [ Info: 59 7.0e-01 3.3e-01 0.0e+00 1.3e-03 [ Info: 60 1.0e+00 3.3e-01 0.0e+00 2.0e+00 [ Info: iter obj Δobj violation kkt_residual [ Info: 0 1.9e+00 Inf 0.0e+00 5.1e+00 [ Info: 1 7.7e-01 1.1e+00 0.0e+00 1.3e-03 [ Info: 2 1.7e+03 1.7e+03 0.0e+00 3.6e+02 [ Info: 3 6.4e-01 1.7e+03 0.0e+00 1.3e-03 [ Info: 4 1.6e+02 1.6e+02 0.0e+00 7.1e+01 [ Info: 5 5.7e-01 1.6e+02 0.0e+00 1.3e-03 [ Info: 6 8.6e+00 8.1e+00 0.0e+00 1.3e+01 [ Info: 7 5.4e-01 8.1e+00 0.0e+00 1.3e-03 [ Info: 8 4.9e-01 5.3e-02 0.0e+00 1.3e-03 [ Info: 9 3.3e+01 3.3e+01 0.0e+00 2.8e+01 [ Info: 10 4.9e-01 3.3e+01 0.0e+00 1.3e-03 [ Info: 11 9.8e+00 9.3e+00 0.0e+00 1.4e+01 [ Info: 12 4.8e-01 9.3e+00 0.0e+00 1.3e-03 [ Info: 13 3.7e+00 3.3e+00 0.0e+00 8.0e+00 [ Info: 14 4.8e-01 3.3e+00 0.0e+00 1.3e-03 [ Info: 15 2.7e+00 2.2e+00 0.0e+00 6.6e+00 [ Info: 16 4.8e-01 2.2e+00 0.0e+00 1.3e-03 [ Info: 17 2.7e+00 2.2e+00 0.0e+00 6.6e+00 [ Info: 18 4.8e-01 2.2e+00 0.0e+00 1.3e-03 [ Info: 19 2.7e+00 2.2e+00 0.0e+00 6.6e+00 [ Info: 20 4.8e-01 2.2e+00 0.0e+00 1.3e-03 [ Info: 21 2.7e+00 2.2e+00 0.0e+00 6.6e+00 [ Info: 22 4.8e-01 2.2e+00 0.0e+00 1.3e-03 [ Info: 23 2.7e+00 2.2e+00 0.0e+00 6.6e+00 [ Info: 24 4.8e-01 2.2e+00 0.0e+00 1.3e-03 [ Info: 25 2.7e+00 2.2e+00 0.0e+00 6.6e+00 [ Info: 26 4.8e-01 2.2e+00 0.0e+00 1.3e-03 [ Info: 27 2.7e+00 2.2e+00 0.0e+00 6.6e+00 [ Info: 28 4.8e-01 2.2e+00 0.0e+00 1.3e-03 [ Info: 29 2.7e+00 2.2e+00 0.0e+00 6.6e+00 [ Info: 30 4.8e-01 2.2e+00 0.0e+00 1.3e-03 [ Info: 31 2.7e+00 2.2e+00 0.0e+00 6.6e+00 [ Info: 32 4.8e-01 2.2e+00 0.0e+00 1.3e-03 [ Info: 33 2.7e+00 2.2e+00 0.0e+00 6.6e+00 [ Info: 34 4.8e-01 2.2e+00 0.0e+00 1.3e-03 [ Info: 35 2.7e+00 2.2e+00 0.0e+00 6.6e+00 [ Info: 36 4.8e-01 2.2e+00 0.0e+00 1.3e-03 [ Info: 37 2.7e+00 2.2e+00 0.0e+00 6.6e+00 [ Info: 38 4.8e-01 2.2e+00 0.0e+00 1.3e-03 [ Info: 39 2.7e+00 2.2e+00 0.0e+00 6.6e+00 [ Info: 40 4.8e-01 2.2e+00 0.0e+00 1.3e-03 [ Info: 41 2.7e+00 2.2e+00 0.0e+00 6.6e+00 [ Info: 42 4.8e-01 2.2e+00 0.0e+00 1.3e-03 [ Info: 43 2.7e+00 2.2e+00 0.0e+00 6.6e+00 [ Info: 44 4.8e-01 2.2e+00 0.0e+00 1.3e-03 [ Info: 45 2.7e+00 2.2e+00 0.0e+00 6.6e+00 [ Info: 46 4.8e-01 2.2e+00 0.0e+00 1.3e-03 [ Info: 47 2.7e+00 2.2e+00 0.0e+00 6.6e+00 [ Info: 48 4.8e-01 2.2e+00 0.0e+00 1.3e-03 [ Info: 49 2.7e+00 2.2e+00 0.0e+00 6.6e+00 [ Info: 50 4.8e-01 2.2e+00 0.0e+00 1.3e-03 [ Info: 51 2.7e+00 2.2e+00 0.0e+00 6.6e+00 [ Info: 52 4.8e-01 2.2e+00 0.0e+00 1.3e-03 [ Info: 53 2.7e+00 2.2e+00 0.0e+00 6.6e+00 [ Info: 54 4.8e-01 2.2e+00 0.0e+00 1.3e-03 [ Info: 55 2.7e+00 2.2e+00 0.0e+00 6.6e+00 [ Info: 56 4.8e-01 2.2e+00 0.0e+00 1.3e-03 [ Info: 57 2.7e+00 2.2e+00 0.0e+00 6.6e+00 [ Info: 58 4.8e-01 2.2e+00 0.0e+00 1.3e-03 [ Info: 59 2.7e+00 2.2e+00 0.0e+00 6.6e+00 [ Info: 60 4.8e-01 2.2e+00 0.0e+00 1.3e-03 [ Info: iter obj Δobj violation kkt_residual [ Info: 0 7.0e-01 Inf 0.0e+00 1.3e-03 [ Info: 1 3.0e+05 3.0e+05 0.0e+00 5.7e+04 [ Info: 2 7.0e-01 3.0e+05 0.0e+00 1.3e-03 [ Info: 3 3.1e+04 3.1e+04 0.0e+00 5.8e+03 [ Info: 4 6.2e+02 3.0e+04 0.0e+00 2.0e+02 [ Info: 5 7.6e-01 6.2e+02 0.0e+00 1.3e-03 [ Info: 6 1.3e+03 1.3e+03 0.0e+00 3.3e+02 [ Info: 7 7.1e-01 1.3e+03 0.0e+00 1.3e-03 [ Info: 8 5.0e+02 5.0e+02 0.0e+00 1.7e+02 [ Info: 9 2.1e+01 4.8e+02 0.0e+00 2.6e+01 [ Info: 10 7.3e-01 2.1e+01 0.0e+00 1.3e-03 [ Info: 11 4.6e+01 4.5e+01 0.0e+00 4.0e+01 [ Info: 12 7.1e-01 4.5e+01 0.0e+00 1.3e-03 [ Info: 13 1.7e+01 1.6e+01 0.0e+00 2.3e+01 [ Info: 14 7.0e-01 1.6e+01 0.0e+00 1.3e-03 [ Info: 15 7.8e+00 7.1e+00 0.0e+00 1.5e+01 [ Info: 16 1.1e+00 6.8e+00 0.0e+00 3.2e+00 [ Info: 17 7.1e-01 3.5e-01 0.0e+00 1.3e-03 [ Info: 18 1.7e+00 1.0e+00 0.0e+00 5.4e+00 [ Info: 19 7.0e-01 1.0e+00 0.0e+00 1.3e-03 [ Info: 20 1.7e+00 1.0e+00 0.0e+00 5.4e+00 [ Info: 21 7.0e-01 1.0e+00 0.0e+00 1.3e-03 [ Info: 22 1.7e+00 1.0e+00 0.0e+00 5.4e+00 [ Info: 23 7.0e-01 1.0e+00 0.0e+00 1.3e-03 [ Info: 24 1.7e+00 1.0e+00 0.0e+00 5.4e+00 [ Info: 25 7.0e-01 1.0e+00 0.0e+00 1.3e-03 [ Info: 26 1.7e+00 1.0e+00 0.0e+00 5.4e+00 [ Info: 27 7.0e-01 1.0e+00 0.0e+00 1.3e-03 [ Info: 28 1.7e+00 1.0e+00 0.0e+00 5.4e+00 [ Info: 29 7.0e-01 1.0e+00 0.0e+00 1.3e-03 [ Info: 30 1.7e+00 1.0e+00 0.0e+00 5.4e+00 [ Info: 31 7.0e-01 1.0e+00 0.0e+00 1.3e-03 [ Info: 32 1.7e+00 1.0e+00 0.0e+00 5.4e+00 [ Info: 33 7.0e-01 1.0e+00 0.0e+00 1.3e-03 [ Info: 34 1.7e+00 1.0e+00 0.0e+00 5.4e+00 [ Info: 35 7.0e-01 1.0e+00 0.0e+00 1.3e-03 [ Info: 36 1.7e+00 1.0e+00 0.0e+00 5.4e+00 [ Info: 37 7.0e-01 1.0e+00 0.0e+00 1.3e-03 [ Info: 38 1.7e+00 1.0e+00 0.0e+00 5.4e+00 [ Info: 39 7.0e-01 1.0e+00 0.0e+00 1.3e-03 [ Info: 40 1.7e+00 1.0e+00 0.0e+00 5.4e+00 [ Info: 41 7.0e-01 1.0e+00 0.0e+00 1.3e-03 [ Info: 42 1.7e+00 1.0e+00 0.0e+00 5.4e+00 [ Info: 43 7.0e-01 1.0e+00 0.0e+00 1.3e-03 [ Info: 44 1.7e+00 1.0e+00 0.0e+00 5.4e+00 [ Info: 45 7.0e-01 1.0e+00 0.0e+00 1.3e-03 [ Info: 46 1.7e+00 1.0e+00 0.0e+00 5.4e+00 [ Info: 47 7.0e-01 1.0e+00 0.0e+00 1.3e-03 [ Info: 48 1.7e+00 1.0e+00 0.0e+00 5.4e+00 [ Info: 49 7.0e-01 1.0e+00 0.0e+00 1.3e-03 [ Info: 50 1.7e+00 1.0e+00 0.0e+00 5.4e+00 [ Info: 51 7.0e-01 1.0e+00 0.0e+00 1.3e-03 [ Info: 52 1.7e+00 1.0e+00 0.0e+00 5.4e+00 [ Info: 53 7.0e-01 1.0e+00 0.0e+00 1.3e-03 [ Info: 54 1.7e+00 1.0e+00 0.0e+00 5.4e+00 [ Info: 55 7.0e-01 1.0e+00 0.0e+00 1.3e-03 [ Info: 56 1.7e+00 1.0e+00 0.0e+00 5.4e+00 [ Info: 57 7.0e-01 1.0e+00 0.0e+00 1.3e-03 [ Info: 58 1.7e+00 1.0e+00 0.0e+00 5.4e+00 [ Info: 59 7.0e-01 1.0e+00 0.0e+00 1.3e-03 [ Info: 60 1.7e+00 1.0e+00 0.0e+00 5.4e+00 [ Info: iter obj Δobj violation kkt_residual [ Info: 0 4.3e+00 Inf 0.0e+00 1.4e+01 [ Info: 1 3.2e-01 4.0e+00 0.0e+00 1.3e-03 [ Info: 2 3.8e+03 3.8e+03 0.0e+00 8.1e+02 [ Info: 3 1.8e-01 3.8e+03 0.0e+00 1.3e-03 [ Info: 4 3.7e+02 3.7e+02 0.0e+00 1.6e+02 [ Info: 5 1.1e-01 3.7e+02 0.0e+00 1.3e-03 [ Info: 6 1.9e+01 1.9e+01 0.0e+00 3.0e+01 [ Info: 7 8.2e-02 1.9e+01 0.0e+00 1.3e-03 [ Info: 8 2.9e-02 5.3e-02 0.0e+00 1.3e-03 [ Info: 9 7.5e+01 7.5e+01 0.0e+00 6.3e+01 [ Info: 10 3.7e-02 7.5e+01 0.0e+00 1.3e-03 [ Info: 11 2.2e+01 2.2e+01 0.0e+00 3.2e+01 [ Info: 12 2.7e-02 2.2e+01 0.0e+00 1.3e-03 [ Info: 13 8.0e+00 8.0e+00 0.0e+00 1.9e+01 [ Info: 14 2.2e-02 8.0e+00 0.0e+00 1.3e-03 [ Info: 15 5.6e+00 5.6e+00 0.0e+00 1.6e+01 [ Info: 16 2.2e-02 5.6e+00 0.0e+00 1.3e-03 [ Info: 17 5.6e+00 5.6e+00 0.0e+00 1.6e+01 [ Info: 18 2.2e-02 5.6e+00 0.0e+00 1.3e-03 [ Info: 19 5.6e+00 5.6e+00 0.0e+00 1.6e+01 [ Info: 20 2.2e-02 5.6e+00 0.0e+00 1.3e-03 [ Info: 21 5.6e+00 5.6e+00 0.0e+00 1.6e+01 [ Info: 22 2.2e-02 5.6e+00 0.0e+00 1.3e-03 [ Info: 23 5.6e+00 5.6e+00 0.0e+00 1.6e+01 [ Info: 24 2.2e-02 5.6e+00 0.0e+00 1.3e-03 [ Info: 25 5.6e+00 5.6e+00 0.0e+00 1.6e+01 [ Info: 26 2.2e-02 5.6e+00 0.0e+00 1.3e-03 [ Info: 27 5.6e+00 5.6e+00 0.0e+00 1.6e+01 [ Info: 28 2.2e-02 5.6e+00 0.0e+00 1.3e-03 [ Info: 29 5.6e+00 5.6e+00 0.0e+00 1.6e+01 [ Info: 30 2.2e-02 5.6e+00 0.0e+00 1.3e-03 [ Info: 31 5.6e+00 5.6e+00 0.0e+00 1.6e+01 [ Info: 32 2.2e-02 5.6e+00 0.0e+00 1.3e-03 [ Info: 33 5.6e+00 5.6e+00 0.0e+00 1.6e+01 [ Info: 34 2.2e-02 5.6e+00 0.0e+00 1.3e-03 [ Info: 35 5.6e+00 5.6e+00 0.0e+00 1.6e+01 [ Info: 36 2.2e-02 5.6e+00 0.0e+00 1.3e-03 [ Info: 37 5.6e+00 5.6e+00 0.0e+00 1.6e+01 [ Info: 38 2.2e-02 5.6e+00 0.0e+00 1.3e-03 [ Info: 39 5.6e+00 5.6e+00 0.0e+00 1.6e+01 [ Info: 40 2.2e-02 5.6e+00 0.0e+00 1.3e-03 [ Info: 41 5.6e+00 5.6e+00 0.0e+00 1.6e+01 [ Info: 42 2.2e-02 5.6e+00 0.0e+00 1.3e-03 [ Info: 43 5.6e+00 5.6e+00 0.0e+00 1.6e+01 [ Info: 44 2.2e-02 5.6e+00 0.0e+00 1.3e-03 [ Info: 45 5.6e+00 5.6e+00 0.0e+00 1.6e+01 [ Info: 46 2.2e-02 5.6e+00 0.0e+00 1.3e-03 [ Info: 47 5.6e+00 5.6e+00 0.0e+00 1.6e+01 [ Info: 48 2.2e-02 5.6e+00 0.0e+00 1.3e-03 [ Info: 49 5.6e+00 5.6e+00 0.0e+00 1.6e+01 [ Info: 50 2.2e-02 5.6e+00 0.0e+00 1.3e-03 [ Info: 51 5.6e+00 5.6e+00 0.0e+00 1.6e+01 [ Info: 52 2.2e-02 5.6e+00 0.0e+00 1.3e-03 [ Info: 53 5.6e+00 5.6e+00 0.0e+00 1.6e+01 [ Info: 54 2.2e-02 5.6e+00 0.0e+00 1.3e-03 [ Info: 55 5.6e+00 5.6e+00 0.0e+00 1.6e+01 [ Info: 56 2.2e-02 5.6e+00 0.0e+00 1.3e-03 [ Info: 57 5.6e+00 5.6e+00 0.0e+00 1.6e+01 [ Info: 58 2.2e-02 5.6e+00 0.0e+00 1.3e-03 [ Info: 59 5.6e+00 5.6e+00 0.0e+00 1.6e+01 [ Info: 60 2.2e-02 5.6e+00 0.0e+00 1.3e-03 [ Info: iter obj Δobj violation kkt_residual [ Info: 0 7.0e-01 Inf 0.0e+00 1.3e-03 [ Info: 1 6.8e+05 6.8e+05 0.0e+00 1.3e+05 [ Info: 2 7.1e-01 6.8e+05 0.0e+00 1.3e-03 [ Info: 3 7.0e+04 7.0e+04 0.0e+00 1.3e+04 [ Info: 4 1.4e+03 6.8e+04 0.0e+00 4.4e+02 [ Info: 5 7.7e-01 1.4e+03 0.0e+00 1.3e-03 [ Info: 6 2.9e+03 2.9e+03 0.0e+00 7.4e+02 [ Info: 7 7.1e-01 2.9e+03 0.0e+00 1.3e-03 [ Info: 8 1.1e+03 1.1e+03 0.0e+00 3.8e+02 [ Info: 9 4.7e+01 1.1e+03 0.0e+00 5.8e+01 [ Info: 10 7.3e-01 4.6e+01 0.0e+00 1.3e-03 [ Info: 11 1.0e+02 1.0e+02 0.0e+00 9.0e+01 [ Info: 12 7.1e-01 1.0e+02 0.0e+00 1.3e-03 [ Info: 13 3.6e+01 3.6e+01 0.0e+00 5.1e+01 [ Info: 14 7.0e-01 3.6e+01 0.0e+00 1.3e-03 [ Info: 15 1.7e+01 1.6e+01 0.0e+00 3.3e+01 [ Info: 16 1.5e+00 1.5e+01 0.0e+00 7.2e+00 [ Info: 17 7.1e-01 8.1e-01 0.0e+00 1.3e-03 [ Info: 18 3.0e+00 2.3e+00 0.0e+00 1.2e+01 [ Info: 19 7.1e-01 2.3e+00 0.0e+00 1.3e-03 [ Info: 20 3.0e+00 2.3e+00 0.0e+00 1.2e+01 [ Info: 21 7.1e-01 2.3e+00 0.0e+00 1.3e-03 [ Info: 22 3.0e+00 2.3e+00 0.0e+00 1.2e+01 [ Info: 23 7.1e-01 2.3e+00 0.0e+00 1.3e-03 [ Info: 24 3.0e+00 2.3e+00 0.0e+00 1.2e+01 [ Info: 25 7.1e-01 2.3e+00 0.0e+00 1.3e-03 [ Info: 26 3.0e+00 2.3e+00 0.0e+00 1.2e+01 [ Info: 27 7.1e-01 2.3e+00 0.0e+00 1.3e-03 [ Info: 28 3.0e+00 2.3e+00 0.0e+00 1.2e+01 [ Info: 29 7.1e-01 2.3e+00 0.0e+00 1.3e-03 [ Info: 30 3.0e+00 2.3e+00 0.0e+00 1.2e+01 [ Info: 31 7.0e-01 2.3e+00 0.0e+00 1.3e-03 [ Info: 32 3.0e+00 2.3e+00 0.0e+00 1.2e+01 [ Info: 33 7.0e-01 2.3e+00 0.0e+00 1.3e-03 [ Info: 34 3.0e+00 2.3e+00 0.0e+00 1.2e+01 [ Info: 35 7.0e-01 2.3e+00 0.0e+00 1.3e-03 [ Info: 36 3.0e+00 2.3e+00 0.0e+00 1.2e+01 [ Info: 37 7.0e-01 2.3e+00 0.0e+00 1.3e-03 [ Info: 38 3.0e+00 2.3e+00 0.0e+00 1.2e+01 [ Info: 39 7.0e-01 2.3e+00 0.0e+00 1.3e-03 [ Info: 40 3.0e+00 2.3e+00 0.0e+00 1.2e+01 [ Info: 41 7.0e-01 2.3e+00 0.0e+00 1.3e-03 [ Info: 42 3.0e+00 2.3e+00 0.0e+00 1.2e+01 [ Info: 43 7.0e-01 2.3e+00 0.0e+00 1.3e-03 [ Info: 44 3.0e+00 2.3e+00 0.0e+00 1.2e+01 [ Info: 45 7.0e-01 2.3e+00 0.0e+00 1.3e-03 [ Info: 46 3.0e+00 2.3e+00 0.0e+00 1.2e+01 [ Info: 47 7.0e-01 2.3e+00 0.0e+00 1.3e-03 [ Info: 48 3.0e+00 2.3e+00 0.0e+00 1.2e+01 [ Info: 49 7.0e-01 2.3e+00 0.0e+00 1.3e-03 [ Info: 50 3.0e+00 2.3e+00 0.0e+00 1.2e+01 [ Info: 51 7.0e-01 2.3e+00 0.0e+00 1.3e-03 [ Info: 52 3.0e+00 2.3e+00 0.0e+00 1.2e+01 [ Info: 53 7.0e-01 2.3e+00 0.0e+00 1.3e-03 [ Info: 54 3.0e+00 2.3e+00 0.0e+00 1.2e+01 [ Info: 55 7.0e-01 2.3e+00 0.0e+00 1.3e-03 [ Info: 56 3.0e+00 2.3e+00 0.0e+00 1.2e+01 [ Info: 57 7.0e-01 2.3e+00 0.0e+00 1.3e-03 [ Info: 58 3.0e+00 2.3e+00 0.0e+00 1.2e+01 [ Info: 59 7.0e-01 2.3e+00 0.0e+00 1.3e-03 [ Info: 60 3.0e+00 2.3e+00 0.0e+00 1.2e+01 [ Info: iter obj Δobj violation kkt_residual [ Info: 0 8.7e+00 Inf 0.0e+00 3.0e+01 [ Info: 1 -5.3e-01 9.3e+00 0.0e+00 1.3e-03 [ Info: 2 8.5e+03 8.5e+03 0.0e+00 1.8e+03 [ Info: 3 -6.7e-01 8.5e+03 0.0e+00 1.3e-03 [ Info: 4 8.3e+02 8.3e+02 0.0e+00 3.6e+02 [ Info: 5 -7.3e-01 8.3e+02 0.0e+00 1.3e-03 [ Info: 6 4.3e+01 4.3e+01 0.0e+00 6.7e+01 [ Info: 7 -7.7e-01 4.4e+01 0.0e+00 1.3e-03 [ Info: 8 -8.2e-01 5.3e-02 0.0e+00 1.3e-03 [ Info: 9 1.7e+02 1.7e+02 0.0e+00 1.4e+02 [ Info: 10 -8.1e-01 1.7e+02 0.0e+00 1.3e-03 [ Info: 11 4.9e+01 5.0e+01 0.0e+00 7.2e+01 [ Info: 12 -8.2e-01 5.0e+01 0.0e+00 1.3e-03 [ Info: 13 1.7e+01 1.8e+01 0.0e+00 4.2e+01 [ Info: 14 -8.3e-01 1.8e+01 0.0e+00 1.3e-03 [ Info: 15 1.2e+01 1.2e+01 0.0e+00 3.5e+01 [ Info: 16 -8.3e-01 1.2e+01 0.0e+00 1.3e-03 [ Info: 17 1.2e+01 1.2e+01 0.0e+00 3.5e+01 [ Info: 18 -8.3e-01 1.2e+01 0.0e+00 1.3e-03 [ Info: 19 1.2e+01 1.2e+01 0.0e+00 3.5e+01 [ Info: 20 -8.3e-01 1.2e+01 0.0e+00 1.3e-03 [ Info: 21 1.2e+01 1.2e+01 0.0e+00 3.5e+01 [ Info: 22 -8.3e-01 1.2e+01 0.0e+00 1.3e-03 [ Info: 23 1.2e+01 1.2e+01 0.0e+00 3.5e+01 [ Info: 24 -8.3e-01 1.2e+01 0.0e+00 1.3e-03 [ Info: 25 1.2e+01 1.2e+01 0.0e+00 3.5e+01 [ Info: 26 -8.3e-01 1.2e+01 0.0e+00 1.3e-03 [ Info: 27 1.2e+01 1.2e+01 0.0e+00 3.5e+01 [ Info: 28 -8.3e-01 1.2e+01 0.0e+00 1.3e-03 [ Info: 29 1.2e+01 1.2e+01 0.0e+00 3.5e+01 [ Info: 30 -8.3e-01 1.2e+01 0.0e+00 1.3e-03 [ Info: 31 1.2e+01 1.2e+01 0.0e+00 3.5e+01 [ Info: 32 -8.3e-01 1.2e+01 0.0e+00 1.3e-03 [ Info: 33 1.2e+01 1.2e+01 0.0e+00 3.5e+01 [ Info: 34 -8.3e-01 1.2e+01 0.0e+00 1.3e-03 [ Info: 35 1.2e+01 1.2e+01 0.0e+00 3.5e+01 [ Info: 36 -8.3e-01 1.2e+01 0.0e+00 1.3e-03 [ Info: 37 1.2e+01 1.2e+01 0.0e+00 3.5e+01 [ Info: 38 -8.3e-01 1.2e+01 0.0e+00 1.3e-03 [ Info: 39 1.2e+01 1.2e+01 0.0e+00 3.5e+01 [ Info: 40 -8.3e-01 1.2e+01 0.0e+00 1.3e-03 [ Info: 41 1.2e+01 1.2e+01 0.0e+00 3.5e+01 [ Info: 42 -8.3e-01 1.2e+01 0.0e+00 1.3e-03 [ Info: 43 1.2e+01 1.2e+01 0.0e+00 3.5e+01 [ Info: 44 -8.3e-01 1.2e+01 0.0e+00 1.3e-03 [ Info: 45 1.2e+01 1.2e+01 0.0e+00 3.5e+01 [ Info: 46 -8.3e-01 1.2e+01 0.0e+00 1.3e-03 [ Info: 47 1.2e+01 1.2e+01 0.0e+00 3.5e+01 [ Info: 48 -8.3e-01 1.2e+01 0.0e+00 1.3e-03 [ Info: 49 1.2e+01 1.2e+01 0.0e+00 3.5e+01 [ Info: 50 -8.3e-01 1.2e+01 0.0e+00 1.3e-03 [ Info: 51 1.2e+01 1.2e+01 0.0e+00 3.5e+01 [ Info: 52 -8.3e-01 1.2e+01 0.0e+00 1.3e-03 [ Info: 53 1.2e+01 1.2e+01 0.0e+00 3.5e+01 [ Info: 54 -8.3e-01 1.2e+01 0.0e+00 1.3e-03 [ Info: 55 1.2e+01 1.2e+01 0.0e+00 3.5e+01 [ Info: 56 -8.3e-01 1.2e+01 0.0e+00 1.3e-03 [ Info: 57 1.2e+01 1.2e+01 0.0e+00 3.5e+01 [ Info: 58 -8.3e-01 1.2e+01 0.0e+00 1.3e-03 [ Info: 59 1.2e+01 1.2e+01 0.0e+00 3.5e+01 [ Info: 60 -8.3e-01 1.2e+01 0.0e+00 1.3e-03 [ Info: iter obj Δobj violation kkt_residual [ Info: 0 7.0e-01 Inf 0.0e+00 1.3e-03 [ Info: 1 1.5e+06 1.5e+06 0.0e+00 2.9e+05 [ Info: 2 7.1e-01 1.5e+06 0.0e+00 1.3e-03 [ Info: 3 1.6e+05 1.6e+05 0.0e+00 3.0e+04 [ Info: 4 3.2e+03 1.5e+05 0.0e+00 9.9e+02 [ Info: 5 7.7e-01 3.2e+03 0.0e+00 1.3e-03 [ Info: 6 6.6e+03 6.6e+03 0.0e+00 1.7e+03 [ Info: 7 7.1e-01 6.6e+03 0.0e+00 1.3e-03 [ Info: 8 2.5e+03 2.5e+03 0.0e+00 8.6e+02 [ Info: 9 1.0e+02 2.4e+03 0.0e+00 1.3e+02 [ Info: 10 7.3e-01 1.0e+02 0.0e+00 1.3e-03 [ Info: 11 2.3e+02 2.3e+02 0.0e+00 2.0e+02 [ Info: 12 7.1e-01 2.3e+02 0.0e+00 1.3e-03 [ Info: 13 8.1e+01 8.0e+01 0.0e+00 1.1e+02 [ Info: 14 7.0e-01 8.0e+01 0.0e+00 1.3e-03 [ Info: 15 3.7e+01 3.6e+01 0.0e+00 7.5e+01 [ Info: 16 2.5e+00 3.4e+01 0.0e+00 1.6e+01 [ Info: 17 7.1e-01 1.8e+00 0.0e+00 1.3e-03 [ Info: 18 5.9e+00 5.1e+00 0.0e+00 2.7e+01 [ Info: 19 7.1e-01 5.2e+00 0.0e+00 1.3e-03 [ Info: 20 5.9e+00 5.2e+00 0.0e+00 2.7e+01 [ Info: 21 7.1e-01 5.2e+00 0.0e+00 1.3e-03 [ Info: 22 5.9e+00 5.2e+00 0.0e+00 2.7e+01 [ Info: 23 7.1e-01 5.2e+00 0.0e+00 1.3e-03 [ Info: 24 5.9e+00 5.2e+00 0.0e+00 2.7e+01 [ Info: 25 7.1e-01 5.2e+00 0.0e+00 1.3e-03 [ Info: 26 5.9e+00 5.2e+00 0.0e+00 2.7e+01 [ Info: 27 7.1e-01 5.2e+00 0.0e+00 1.3e-03 [ Info: 28 5.9e+00 5.2e+00 0.0e+00 2.7e+01 [ Info: 29 7.1e-01 5.2e+00 0.0e+00 1.3e-03 [ Info: 30 5.9e+00 5.2e+00 0.0e+00 2.7e+01 [ Info: 31 7.1e-01 5.2e+00 0.0e+00 1.3e-03 [ Info: 32 5.9e+00 5.2e+00 0.0e+00 2.7e+01 [ Info: 33 7.1e-01 5.2e+00 0.0e+00 1.3e-03 [ Info: 34 5.9e+00 5.2e+00 0.0e+00 2.7e+01 [ Info: 35 7.1e-01 5.2e+00 0.0e+00 1.3e-03 [ Info: 36 5.9e+00 5.2e+00 0.0e+00 2.7e+01 [ Info: 37 7.1e-01 5.2e+00 0.0e+00 1.3e-03 [ Info: 38 5.9e+00 5.2e+00 0.0e+00 2.7e+01 [ Info: 39 7.1e-01 5.2e+00 0.0e+00 1.3e-03 [ Info: 40 5.9e+00 5.2e+00 0.0e+00 2.7e+01 [ Info: 41 7.1e-01 5.2e+00 0.0e+00 1.3e-03 [ Info: 42 5.9e+00 5.2e+00 0.0e+00 2.7e+01 [ Info: 43 7.1e-01 5.2e+00 0.0e+00 1.3e-03 [ Info: 44 5.9e+00 5.2e+00 0.0e+00 2.7e+01 [ Info: 45 7.1e-01 5.2e+00 0.0e+00 1.3e-03 [ Info: 46 5.9e+00 5.2e+00 0.0e+00 2.7e+01 [ Info: 47 7.1e-01 5.2e+00 0.0e+00 1.3e-03 [ Info: 48 5.9e+00 5.2e+00 0.0e+00 2.7e+01 [ Info: 49 7.1e-01 5.2e+00 0.0e+00 1.3e-03 [ Info: 50 5.9e+00 5.2e+00 0.0e+00 2.7e+01 [ Info: 51 7.1e-01 5.2e+00 0.0e+00 1.3e-03 [ Info: 52 5.9e+00 5.2e+00 0.0e+00 2.7e+01 [ Info: 53 7.1e-01 5.2e+00 0.0e+00 1.3e-03 [ Info: 54 5.9e+00 5.2e+00 0.0e+00 2.7e+01 [ Info: 55 7.1e-01 5.2e+00 0.0e+00 1.3e-03 [ Info: 56 5.9e+00 5.2e+00 0.0e+00 2.7e+01 [ Info: 57 7.1e-01 5.2e+00 0.0e+00 1.3e-03 [ Info: 58 5.9e+00 5.2e+00 0.0e+00 2.7e+01 [ Info: 59 7.1e-01 5.2e+00 0.0e+00 1.3e-03 [ Info: 60 5.9e+00 5.2e+00 0.0e+00 2.7e+01 [ Info: iter obj Δobj violation kkt_residual [ Info: 0 1.9e+01 Inf 0.0e+00 6.8e+01 [ Info: 1 -2.4e+00 2.1e+01 0.0e+00 1.3e-03 [ Info: 2 1.9e+04 1.9e+04 0.0e+00 4.1e+03 [ Info: 3 -2.6e+00 1.9e+04 0.0e+00 1.3e-03 [ Info: 4 1.9e+03 1.9e+03 0.0e+00 8.1e+02 [ Info: 5 -2.6e+00 1.9e+03 0.0e+00 1.3e-03 [ Info: 6 9.5e+01 9.8e+01 0.0e+00 1.5e+02 [ Info: 7 -2.7e+00 9.8e+01 0.0e+00 1.3e-03 [ Info: 8 -2.7e+00 5.3e-02 0.0e+00 1.3e-03 [ Info: 9 3.8e+02 3.8e+02 0.0e+00 3.2e+02 [ Info: 10 -2.7e+00 3.8e+02 0.0e+00 1.3e-03 [ Info: 11 1.1e+02 1.1e+02 0.0e+00 1.6e+02 [ Info: 12 -2.7e+00 1.1e+02 0.0e+00 1.3e-03 [ Info: 13 3.8e+01 4.0e+01 0.0e+00 9.5e+01 [ Info: 14 -2.7e+00 4.0e+01 0.0e+00 1.3e-03 [ Info: 15 2.5e+01 2.8e+01 0.0e+00 7.9e+01 [ Info: 16 -2.7e+00 2.8e+01 0.0e+00 1.3e-03 [ Info: 17 2.5e+01 2.8e+01 0.0e+00 7.9e+01 [ Info: 18 -2.7e+00 2.8e+01 0.0e+00 1.3e-03 [ Info: 19 2.5e+01 2.8e+01 0.0e+00 7.9e+01 [ Info: 20 -2.7e+00 2.8e+01 0.0e+00 1.3e-03 [ Info: 21 2.5e+01 2.8e+01 0.0e+00 7.9e+01 [ Info: 22 -2.7e+00 2.8e+01 0.0e+00 1.3e-03 [ Info: 23 2.5e+01 2.8e+01 0.0e+00 7.9e+01 [ Info: 24 -2.7e+00 2.8e+01 0.0e+00 1.3e-03 [ Info: 25 2.5e+01 2.8e+01 0.0e+00 7.9e+01 [ Info: 26 -2.7e+00 2.8e+01 0.0e+00 1.3e-03 [ Info: 27 2.5e+01 2.8e+01 0.0e+00 7.9e+01 [ Info: 28 -2.7e+00 2.8e+01 0.0e+00 1.3e-03 [ Info: 29 2.5e+01 2.8e+01 0.0e+00 7.9e+01 [ Info: 30 -2.7e+00 2.8e+01 0.0e+00 1.3e-03 [ Info: 31 2.5e+01 2.8e+01 0.0e+00 7.9e+01 [ Info: 32 -2.7e+00 2.8e+01 0.0e+00 1.3e-03 [ Info: 33 2.5e+01 2.8e+01 0.0e+00 7.9e+01 [ Info: 34 -2.7e+00 2.8e+01 0.0e+00 1.3e-03 [ Info: 35 2.5e+01 2.8e+01 0.0e+00 7.9e+01 [ Info: 36 -2.7e+00 2.8e+01 0.0e+00 1.3e-03 [ Info: 37 2.5e+01 2.8e+01 0.0e+00 7.9e+01 [ Info: 38 -2.7e+00 2.8e+01 0.0e+00 1.3e-03 [ Info: 39 2.5e+01 2.8e+01 0.0e+00 7.9e+01 [ Info: 40 -2.7e+00 2.8e+01 0.0e+00 1.3e-03 [ Info: 41 2.5e+01 2.8e+01 0.0e+00 7.9e+01 [ Info: 42 -2.7e+00 2.8e+01 0.0e+00 1.3e-03 [ Info: 43 2.5e+01 2.8e+01 0.0e+00 7.9e+01 [ Info: 44 -2.7e+00 2.8e+01 0.0e+00 1.3e-03 [ Info: 45 2.5e+01 2.8e+01 0.0e+00 7.9e+01 [ Info: 46 -2.7e+00 2.8e+01 0.0e+00 1.3e-03 [ Info: 47 2.5e+01 2.8e+01 0.0e+00 7.9e+01 [ Info: 48 -2.7e+00 2.8e+01 0.0e+00 1.3e-03 [ Info: 49 2.5e+01 2.8e+01 0.0e+00 7.9e+01 [ Info: 50 -2.7e+00 2.8e+01 0.0e+00 1.3e-03 [ Info: 51 2.5e+01 2.8e+01 0.0e+00 7.9e+01 [ Info: 52 -2.7e+00 2.8e+01 0.0e+00 1.3e-03 [ Info: 53 2.5e+01 2.8e+01 0.0e+00 7.9e+01 [ Info: 54 -2.7e+00 2.8e+01 0.0e+00 1.3e-03 [ Info: 55 2.5e+01 2.8e+01 0.0e+00 7.9e+01 [ Info: 56 -2.7e+00 2.8e+01 0.0e+00 1.3e-03 [ Info: 57 2.5e+01 2.8e+01 0.0e+00 7.9e+01 [ Info: 58 -2.7e+00 2.8e+01 0.0e+00 1.3e-03 [ Info: 59 2.5e+01 2.8e+01 0.0e+00 7.9e+01 [ Info: 60 -2.7e+00 2.8e+01 0.0e+00 1.3e-03 [ Info: iter obj Δobj violation kkt_residual [ Info: 0 7.1e-01 Inf 0.0e+00 1.3e-03 [ Info: 1 3.4e+06 3.4e+06 0.0e+00 6.5e+05 [ Info: 2 7.1e-01 3.4e+06 0.0e+00 1.3e-03 [ Info: 3 3.5e+05 3.5e+05 0.0e+00 6.6e+04 [ Info: 4 7.1e+03 3.5e+05 0.0e+00 2.2e+03 [ Info: 5 7.7e-01 7.1e+03 0.0e+00 1.3e-03 [ Info: 6 1.5e+04 1.5e+04 0.0e+00 3.8e+03 [ Info: 7 7.1e-01 1.5e+04 0.0e+00 1.3e-03 [ Info: 8 5.7e+03 5.7e+03 0.0e+00 1.9e+03 [ Info: 9 2.4e+02 5.4e+03 0.0e+00 3.0e+02 [ Info: 10 7.3e-01 2.3e+02 0.0e+00 1.3e-03 [ Info: 11 5.2e+02 5.2e+02 0.0e+00 4.6e+02 [ Info: 12 7.1e-01 5.2e+02 0.0e+00 1.3e-03 [ Info: 13 1.8e+02 1.8e+02 0.0e+00 2.6e+02 [ Info: 14 7.0e-01 1.8e+02 0.0e+00 1.3e-03 [ Info: 15 8.2e+01 8.1e+01 0.0e+00 1.7e+02 [ Info: 16 4.8e+00 7.7e+01 0.0e+00 3.6e+01 [ Info: 17 7.1e-01 4.1e+00 0.0e+00 1.3e-03 [ Info: 18 1.2e+01 1.2e+01 0.0e+00 6.2e+01 [ Info: 19 7.1e-01 1.2e+01 0.0e+00 1.3e-03 [ Info: 20 1.2e+01 1.2e+01 0.0e+00 6.2e+01 [ Info: 21 7.1e-01 1.2e+01 0.0e+00 1.3e-03 [ Info: 22 1.2e+01 1.2e+01 0.0e+00 6.2e+01 [ Info: 23 7.1e-01 1.2e+01 0.0e+00 1.3e-03 [ Info: 24 1.2e+01 1.2e+01 0.0e+00 6.2e+01 [ Info: 25 7.1e-01 1.2e+01 0.0e+00 1.3e-03 [ Info: 26 1.2e+01 1.2e+01 0.0e+00 6.2e+01 [ Info: 27 7.1e-01 1.2e+01 0.0e+00 1.3e-03 [ Info: 28 1.2e+01 1.2e+01 0.0e+00 6.2e+01 [ Info: 29 7.1e-01 1.2e+01 0.0e+00 1.3e-03 [ Info: 30 1.2e+01 1.2e+01 0.0e+00 6.2e+01 [ Info: 31 7.1e-01 1.2e+01 0.0e+00 1.3e-03 [ Info: 32 1.2e+01 1.2e+01 0.0e+00 6.2e+01 [ Info: 33 7.1e-01 1.2e+01 0.0e+00 1.3e-03 [ Info: 34 1.2e+01 1.2e+01 0.0e+00 6.2e+01 [ Info: 35 7.1e-01 1.2e+01 0.0e+00 1.3e-03 [ Info: 36 1.2e+01 1.2e+01 0.0e+00 6.2e+01 [ Info: 37 7.1e-01 1.2e+01 0.0e+00 1.3e-03 [ Info: 38 1.2e+01 1.2e+01 0.0e+00 6.2e+01 [ Info: 39 7.1e-01 1.2e+01 0.0e+00 1.3e-03 [ Info: 40 1.2e+01 1.2e+01 0.0e+00 6.2e+01 [ Info: 41 7.1e-01 1.2e+01 0.0e+00 1.3e-03 [ Info: 42 1.2e+01 1.2e+01 0.0e+00 6.2e+01 [ Info: 43 7.1e-01 1.2e+01 0.0e+00 1.3e-03 [ Info: 44 1.2e+01 1.2e+01 0.0e+00 6.2e+01 [ Info: 45 7.1e-01 1.2e+01 0.0e+00 1.3e-03 [ Info: 46 1.2e+01 1.2e+01 0.0e+00 6.2e+01 [ Info: 47 7.1e-01 1.2e+01 0.0e+00 1.3e-03 [ Info: 48 1.2e+01 1.2e+01 0.0e+00 6.2e+01 [ Info: 49 7.1e-01 1.2e+01 0.0e+00 1.3e-03 [ Info: 50 1.2e+01 1.2e+01 0.0e+00 6.2e+01 [ Info: 51 7.1e-01 1.2e+01 0.0e+00 1.3e-03 [ Info: 52 1.2e+01 1.2e+01 0.0e+00 6.2e+01 [ Info: 53 7.1e-01 1.2e+01 0.0e+00 1.3e-03 [ Info: 54 1.2e+01 1.2e+01 0.0e+00 6.2e+01 [ Info: 55 7.1e-01 1.2e+01 0.0e+00 1.3e-03 [ Info: 56 1.2e+01 1.2e+01 0.0e+00 6.2e+01 [ Info: 57 7.1e-01 1.2e+01 0.0e+00 1.3e-03 [ Info: 58 1.2e+01 1.2e+01 0.0e+00 6.2e+01 [ Info: 59 7.1e-01 1.2e+01 0.0e+00 1.3e-03 [ Info: 60 1.2e+01 1.2e+01 0.0e+00 6.2e+01 [ Info: iter obj Δobj violation kkt_residual [ Info: 0 4.1e+01 Inf 0.0e+00 1.5e+02 [ Info: 1 -6.7e+00 4.8e+01 0.0e+00 1.3e-03 [ Info: 2 4.3e+04 4.3e+04 0.0e+00 9.2e+03 [ Info: 3 -6.9e+00 4.3e+04 0.0e+00 1.3e-03 [ Info: 4 4.2e+03 4.2e+03 0.0e+00 1.8e+03 [ Info: 5 -6.9e+00 4.2e+03 0.0e+00 1.3e-03 [ Info: 6 2.1e+02 2.2e+02 0.0e+00 3.4e+02 [ Info: 7 -7.0e+00 2.2e+02 0.0e+00 1.3e-03 [ Info: 8 -7.0e+00 5.3e-02 0.0e+00 1.3e-03 [ Info: 9 8.5e+02 8.6e+02 0.0e+00 7.1e+02 [ Info: 10 -7.0e+00 8.6e+02 0.0e+00 1.3e-03 [ Info: 11 2.4e+02 2.5e+02 0.0e+00 3.7e+02 [ Info: 12 -7.0e+00 2.5e+02 0.0e+00 1.3e-03 [ Info: 13 8.4e+01 9.1e+01 0.0e+00 2.1e+02 [ Info: 14 -7.0e+00 9.1e+01 0.0e+00 1.3e-03 [ Info: 15 5.6e+01 6.3e+01 0.0e+00 1.8e+02 [ Info: 16 -7.0e+00 6.3e+01 0.0e+00 1.3e-03 [ Info: 17 5.6e+01 6.3e+01 0.0e+00 1.8e+02 [ Info: 18 -7.0e+00 6.3e+01 0.0e+00 1.3e-03 [ Info: 19 5.6e+01 6.3e+01 0.0e+00 1.8e+02 [ Info: 20 -7.0e+00 6.3e+01 0.0e+00 1.3e-03 [ Info: 21 5.6e+01 6.3e+01 0.0e+00 1.8e+02 [ Info: 22 -7.0e+00 6.3e+01 0.0e+00 1.3e-03 [ Info: 23 5.6e+01 6.3e+01 0.0e+00 1.8e+02 [ Info: 24 -7.0e+00 6.3e+01 0.0e+00 1.3e-03 [ Info: 25 5.6e+01 6.3e+01 0.0e+00 1.8e+02 [ Info: 26 -7.0e+00 6.3e+01 0.0e+00 1.3e-03 [ Info: 27 5.6e+01 6.3e+01 0.0e+00 1.8e+02 [ Info: 28 -7.0e+00 6.3e+01 0.0e+00 1.3e-03 [ Info: 29 5.6e+01 6.3e+01 0.0e+00 1.8e+02 [ Info: 30 -7.0e+00 6.3e+01 0.0e+00 1.3e-03 [ Info: 31 5.6e+01 6.3e+01 0.0e+00 1.8e+02 [ Info: 32 -7.0e+00 6.3e+01 0.0e+00 1.3e-03 [ Info: 33 5.6e+01 6.3e+01 0.0e+00 1.8e+02 [ Info: 34 -7.0e+00 6.3e+01 0.0e+00 1.3e-03 [ Info: 35 5.6e+01 6.3e+01 0.0e+00 1.8e+02 [ Info: 36 -7.0e+00 6.3e+01 0.0e+00 1.3e-03 [ Info: 37 5.6e+01 6.3e+01 0.0e+00 1.8e+02 [ Info: 38 -7.0e+00 6.3e+01 0.0e+00 1.3e-03 [ Info: 39 5.6e+01 6.3e+01 0.0e+00 1.8e+02 [ Info: 40 -7.0e+00 6.3e+01 0.0e+00 1.3e-03 [ Info: 41 5.6e+01 6.3e+01 0.0e+00 1.8e+02 [ Info: 42 -7.0e+00 6.3e+01 0.0e+00 1.3e-03 [ Info: 43 5.6e+01 6.3e+01 0.0e+00 1.8e+02 [ Info: 44 -7.0e+00 6.3e+01 0.0e+00 1.3e-03 [ Info: 45 5.6e+01 6.3e+01 0.0e+00 1.8e+02 [ Info: 46 -7.0e+00 6.3e+01 0.0e+00 1.3e-03 [ Info: 47 5.6e+01 6.3e+01 0.0e+00 1.8e+02 [ Info: 48 -7.0e+00 6.3e+01 0.0e+00 1.3e-03 [ Info: 49 5.6e+01 6.3e+01 0.0e+00 1.8e+02 [ Info: 50 -7.0e+00 6.3e+01 0.0e+00 1.3e-03 [ Info: 51 5.6e+01 6.3e+01 0.0e+00 1.8e+02 [ Info: 52 -7.0e+00 6.3e+01 0.0e+00 1.3e-03 [ Info: 53 5.6e+01 6.3e+01 0.0e+00 1.8e+02 [ Info: 54 -7.0e+00 6.3e+01 0.0e+00 1.3e-03 [ Info: 55 5.6e+01 6.3e+01 0.0e+00 1.8e+02 [ Info: 56 -7.0e+00 6.3e+01 0.0e+00 1.3e-03 [ Info: 57 5.6e+01 6.3e+01 0.0e+00 1.8e+02 [ Info: 58 -7.0e+00 6.3e+01 0.0e+00 1.3e-03 [ Info: 59 5.6e+01 6.3e+01 0.0e+00 1.8e+02 [ Info: 60 -7.0e+00 6.3e+01 0.0e+00 1.3e-03 [ Info: iter obj Δobj violation kkt_residual [ Info: 0 7.1e-01 Inf 0.0e+00 1.3e-03 [ Info: 1 7.7e+06 7.7e+06 0.0e+00 1.5e+06 [ Info: 2 7.1e-01 7.7e+06 0.0e+00 1.3e-03 [ Info: 3 7.9e+05 7.9e+05 0.0e+00 1.5e+05 [ Info: 4 1.6e+04 7.8e+05 0.0e+00 5.0e+03 [ Info: 5 7.7e-01 1.6e+04 0.0e+00 1.3e-03 [ Info: 6 3.3e+04 3.3e+04 0.0e+00 8.5e+03 [ Info: 7 7.1e-01 3.3e+04 0.0e+00 1.3e-03 [ Info: 8 1.3e+04 1.3e+04 0.0e+00 4.3e+03 [ Info: 9 5.3e+02 1.2e+04 0.0e+00 6.6e+02 [ Info: 10 7.3e-01 5.3e+02 0.0e+00 1.3e-03 [ Info: 11 1.2e+03 1.2e+03 0.0e+00 1.0e+03 [ Info: 12 7.1e-01 1.2e+03 0.0e+00 1.3e-03 [ Info: 13 4.1e+02 4.1e+02 0.0e+00 5.8e+02 [ Info: 14 7.0e-01 4.1e+02 0.0e+00 1.3e-03 [ Info: 15 1.8e+02 1.8e+02 0.0e+00 3.8e+02 [ Info: 16 1.0e+01 1.7e+02 0.0e+00 8.2e+01 [ Info: 17 7.1e-01 9.3e+00 0.0e+00 1.3e-03 [ Info: 18 2.7e+01 2.6e+01 0.0e+00 1.4e+02 [ Info: 19 7.1e-01 2.6e+01 0.0e+00 1.3e-03 [ Info: 20 2.7e+01 2.6e+01 0.0e+00 1.4e+02 [ Info: 21 7.1e-01 2.6e+01 0.0e+00 1.3e-03 [ Info: 22 2.7e+01 2.6e+01 0.0e+00 1.4e+02 [ Info: 23 7.1e-01 2.6e+01 0.0e+00 1.3e-03 [ Info: 24 2.7e+01 2.6e+01 0.0e+00 1.4e+02 [ Info: 25 7.1e-01 2.6e+01 0.0e+00 1.3e-03 [ Info: 26 2.7e+01 2.6e+01 0.0e+00 1.4e+02 [ Info: 27 7.1e-01 2.6e+01 0.0e+00 1.3e-03 [ Info: 28 2.7e+01 2.6e+01 0.0e+00 1.4e+02 [ Info: 29 7.1e-01 2.6e+01 0.0e+00 1.3e-03 [ Info: 30 2.7e+01 2.6e+01 0.0e+00 1.4e+02 [ Info: 31 7.1e-01 2.6e+01 0.0e+00 1.3e-03 [ Info: 32 2.7e+01 2.6e+01 0.0e+00 1.4e+02 [ Info: 33 7.1e-01 2.6e+01 0.0e+00 1.3e-03 [ Info: 34 2.7e+01 2.6e+01 0.0e+00 1.4e+02 [ Info: 35 7.1e-01 2.6e+01 0.0e+00 1.3e-03 [ Info: 36 2.7e+01 2.6e+01 0.0e+00 1.4e+02 [ Info: 37 7.1e-01 2.6e+01 0.0e+00 1.3e-03 [ Info: 38 2.7e+01 2.6e+01 0.0e+00 1.4e+02 [ Info: 39 7.1e-01 2.6e+01 0.0e+00 1.3e-03 [ Info: 40 2.7e+01 2.6e+01 0.0e+00 1.4e+02 [ Info: 41 7.1e-01 2.6e+01 0.0e+00 1.3e-03 [ Info: 42 2.7e+01 2.6e+01 0.0e+00 1.4e+02 [ Info: 43 7.1e-01 2.6e+01 0.0e+00 1.3e-03 [ Info: 44 2.7e+01 2.6e+01 0.0e+00 1.4e+02 [ Info: 45 7.1e-01 2.6e+01 0.0e+00 1.3e-03 [ Info: 46 2.7e+01 2.6e+01 0.0e+00 1.4e+02 [ Info: 47 7.1e-01 2.6e+01 0.0e+00 1.3e-03 [ Info: 48 2.7e+01 2.6e+01 0.0e+00 1.4e+02 [ Info: 49 7.1e-01 2.6e+01 0.0e+00 1.3e-03 [ Info: 50 2.7e+01 2.6e+01 0.0e+00 1.4e+02 [ Info: 51 7.1e-01 2.6e+01 0.0e+00 1.3e-03 [ Info: 52 2.7e+01 2.6e+01 0.0e+00 1.4e+02 [ Info: 53 7.1e-01 2.6e+01 0.0e+00 1.3e-03 [ Info: 54 2.7e+01 2.6e+01 0.0e+00 1.4e+02 [ Info: 55 7.1e-01 2.6e+01 0.0e+00 1.3e-03 [ Info: 56 2.7e+01 2.6e+01 0.0e+00 1.4e+02 [ Info: 57 7.1e-01 2.6e+01 0.0e+00 1.3e-03 [ Info: 58 2.7e+01 2.6e+01 0.0e+00 1.4e+02 [ Info: 59 7.1e-01 2.6e+01 0.0e+00 1.3e-03 [ Info: 60 2.7e+01 2.6e+01 0.0e+00 1.4e+02 [ Info: iter obj Δobj violation kkt_residual [ Info: 0 9.2e+01 Inf 0.0e+00 3.5e+02 [ Info: 1 -1.6e+01 1.1e+02 0.0e+00 1.3e-03 [ Info: 2 9.6e+04 9.6e+04 0.0e+00 2.1e+04 [ Info: 3 -1.7e+01 9.6e+04 0.0e+00 1.3e-03 [ Info: 4 9.4e+03 9.4e+03 0.0e+00 4.1e+03 [ Info: 5 -1.7e+01 9.4e+03 0.0e+00 1.3e-03 [ Info: 6 4.8e+02 5.0e+02 0.0e+00 7.7e+02 [ Info: 7 -1.7e+01 5.0e+02 0.0e+00 1.3e-03 [ Info: 8 -1.7e+01 5.3e-02 0.0e+00 1.3e-03 [ Info: 9 1.9e+03 1.9e+03 0.0e+00 1.6e+03 [ Info: 10 -1.7e+01 1.9e+03 0.0e+00 1.3e-03 [ Info: 11 5.5e+02 5.7e+02 0.0e+00 8.2e+02 [ Info: 12 -1.7e+01 5.7e+02 0.0e+00 1.3e-03 [ Info: 13 1.9e+02 2.1e+02 0.0e+00 4.8e+02 [ Info: 14 -1.7e+01 2.1e+02 0.0e+00 1.3e-03 [ Info: 15 1.3e+02 1.4e+02 0.0e+00 4.0e+02 [ Info: 16 -1.7e+01 1.4e+02 0.0e+00 1.3e-03 [ Info: 17 1.3e+02 1.4e+02 0.0e+00 4.0e+02 [ Info: 18 -1.7e+01 1.4e+02 0.0e+00 1.3e-03 [ Info: 19 1.3e+02 1.4e+02 0.0e+00 4.0e+02 [ Info: 20 -1.7e+01 1.4e+02 0.0e+00 1.3e-03 [ Info: 21 1.3e+02 1.4e+02 0.0e+00 4.0e+02 [ Info: 22 -1.7e+01 1.4e+02 0.0e+00 1.3e-03 [ Info: 23 1.3e+02 1.4e+02 0.0e+00 4.0e+02 [ Info: 24 -1.7e+01 1.4e+02 0.0e+00 1.3e-03 [ Info: 25 1.3e+02 1.4e+02 0.0e+00 4.0e+02 [ Info: 26 -1.7e+01 1.4e+02 0.0e+00 1.3e-03 [ Info: 27 1.3e+02 1.4e+02 0.0e+00 4.0e+02 [ Info: 28 -1.7e+01 1.4e+02 0.0e+00 1.3e-03 [ Info: 29 1.3e+02 1.4e+02 0.0e+00 4.0e+02 [ Info: 30 -1.7e+01 1.4e+02 0.0e+00 1.3e-03 [ Info: 31 1.3e+02 1.4e+02 0.0e+00 4.0e+02 [ Info: 32 -1.7e+01 1.4e+02 0.0e+00 1.3e-03 [ Info: 33 1.3e+02 1.4e+02 0.0e+00 4.0e+02 [ Info: 34 -1.7e+01 1.4e+02 0.0e+00 1.3e-03 [ Info: 35 1.3e+02 1.4e+02 0.0e+00 4.0e+02 [ Info: 36 -1.7e+01 1.4e+02 0.0e+00 1.3e-03 [ Info: 37 1.3e+02 1.4e+02 0.0e+00 4.0e+02 [ Info: 38 -1.7e+01 1.4e+02 0.0e+00 1.3e-03 [ Info: 39 1.3e+02 1.4e+02 0.0e+00 4.0e+02 [ Info: 40 -1.7e+01 1.4e+02 0.0e+00 1.3e-03 [ Info: 41 1.3e+02 1.4e+02 0.0e+00 4.0e+02 [ Info: 42 -1.7e+01 1.4e+02 0.0e+00 1.3e-03 [ Info: 43 1.3e+02 1.4e+02 0.0e+00 4.0e+02 [ Info: 44 -1.7e+01 1.4e+02 0.0e+00 1.3e-03 [ Info: 45 1.3e+02 1.4e+02 0.0e+00 4.0e+02 [ Info: 46 -1.7e+01 1.4e+02 0.0e+00 1.3e-03 [ Info: 47 1.3e+02 1.4e+02 0.0e+00 4.0e+02 [ Info: 48 -1.7e+01 1.4e+02 0.0e+00 1.3e-03 [ Info: 49 1.3e+02 1.4e+02 0.0e+00 4.0e+02 [ Info: 50 -1.7e+01 1.4e+02 0.0e+00 1.3e-03 [ Info: 51 1.3e+02 1.4e+02 0.0e+00 4.0e+02 [ Info: 52 -1.7e+01 1.4e+02 0.0e+00 1.3e-03 [ Info: 53 1.3e+02 1.4e+02 0.0e+00 4.0e+02 [ Info: 54 -1.7e+01 1.4e+02 0.0e+00 1.3e-03 [ Info: 55 1.3e+02 1.4e+02 0.0e+00 4.0e+02 [ Info: 56 -1.7e+01 1.4e+02 0.0e+00 1.3e-03 [ Info: 57 1.3e+02 1.4e+02 0.0e+00 4.0e+02 [ Info: 58 -1.7e+01 1.4e+02 0.0e+00 1.3e-03 [ Info: 59 1.3e+02 1.4e+02 0.0e+00 4.0e+02 [ Info: 60 -1.7e+01 1.4e+02 0.0e+00 1.3e-03 [ Info: iter obj Δobj violation kkt_residual [ Info: 0 7.1e-01 Inf 0.0e+00 1.3e-03 [ Info: 1 1.7e+07 1.7e+07 0.0e+00 3.3e+06 [ Info: 2 7.1e-01 1.7e+07 0.0e+00 1.3e-03 [ Info: 3 1.8e+06 1.8e+06 0.0e+00 3.4e+05 [ Info: 4 3.6e+04 1.7e+06 0.0e+00 1.1e+04 [ Info: 5 7.7e-01 3.6e+04 0.0e+00 1.3e-03 [ Info: 6 7.5e+04 7.5e+04 0.0e+00 1.9e+04 [ Info: 7 7.1e-01 7.5e+04 0.0e+00 1.3e-03 [ Info: 8 2.9e+04 2.9e+04 0.0e+00 9.8e+03 [ Info: 9 1.2e+03 2.8e+04 0.0e+00 1.5e+03 [ Info: 10 7.3e-01 1.2e+03 0.0e+00 1.3e-03 [ Info: 11 2.6e+03 2.6e+03 0.0e+00 2.3e+03 [ Info: 12 7.1e-01 2.6e+03 0.0e+00 1.3e-03 [ Info: 13 9.1e+02 9.1e+02 0.0e+00 1.3e+03 [ Info: 14 7.0e-01 9.1e+02 0.0e+00 1.3e-03 [ Info: 15 4.1e+02 4.1e+02 0.0e+00 8.5e+02 [ Info: 16 2.2e+01 3.9e+02 0.0e+00 1.8e+02 [ Info: 17 7.1e-01 2.1e+01 0.0e+00 1.3e-03 [ Info: 18 5.9e+01 5.9e+01 0.0e+00 3.1e+02 [ Info: 19 7.1e-01 5.9e+01 0.0e+00 1.3e-03 [ Info: 20 5.9e+01 5.9e+01 0.0e+00 3.1e+02 [ Info: 21 7.1e-01 5.9e+01 0.0e+00 1.3e-03 [ Info: 22 5.9e+01 5.9e+01 0.0e+00 3.1e+02 [ Info: 23 7.1e-01 5.9e+01 0.0e+00 1.3e-03 [ Info: 24 5.9e+01 5.9e+01 0.0e+00 3.1e+02 [ Info: 25 7.1e-01 5.9e+01 0.0e+00 1.3e-03 [ Info: 26 5.9e+01 5.9e+01 0.0e+00 3.1e+02 [ Info: 27 7.1e-01 5.9e+01 0.0e+00 1.3e-03 [ Info: 28 5.9e+01 5.9e+01 0.0e+00 3.1e+02 [ Info: 29 7.1e-01 5.9e+01 0.0e+00 1.3e-03 [ Info: 30 5.9e+01 5.9e+01 0.0e+00 3.1e+02 [ Info: 31 7.1e-01 5.9e+01 0.0e+00 1.3e-03 [ Info: 32 5.9e+01 5.9e+01 0.0e+00 3.1e+02 [ Info: 33 7.1e-01 5.9e+01 0.0e+00 1.3e-03 [ Info: 34 5.9e+01 5.9e+01 0.0e+00 3.1e+02 [ Info: 35 7.1e-01 5.9e+01 0.0e+00 1.3e-03 [ Info: 36 5.9e+01 5.9e+01 0.0e+00 3.1e+02 [ Info: 37 7.1e-01 5.9e+01 0.0e+00 1.3e-03 [ Info: 38 5.9e+01 5.9e+01 0.0e+00 3.1e+02 [ Info: 39 7.1e-01 5.9e+01 0.0e+00 1.3e-03 [ Info: 40 5.9e+01 5.9e+01 0.0e+00 3.1e+02 [ Info: 41 7.1e-01 5.9e+01 0.0e+00 1.3e-03 [ Info: 42 5.9e+01 5.9e+01 0.0e+00 3.1e+02 [ Info: 43 7.1e-01 5.9e+01 0.0e+00 1.3e-03 [ Info: 44 5.9e+01 5.9e+01 0.0e+00 3.1e+02 [ Info: 45 7.1e-01 5.9e+01 0.0e+00 1.3e-03 [ Info: 46 5.9e+01 5.9e+01 0.0e+00 3.1e+02 [ Info: 47 7.1e-01 5.9e+01 0.0e+00 1.3e-03 [ Info: 48 5.9e+01 5.9e+01 0.0e+00 3.1e+02 [ Info: 49 7.1e-01 5.9e+01 0.0e+00 1.3e-03 [ Info: 50 5.9e+01 5.9e+01 0.0e+00 3.1e+02 [ Info: 51 7.1e-01 5.9e+01 0.0e+00 1.3e-03 [ Info: 52 5.9e+01 5.9e+01 0.0e+00 3.1e+02 [ Info: 53 7.1e-01 5.9e+01 0.0e+00 1.3e-03 [ Info: 54 5.9e+01 5.9e+01 0.0e+00 3.1e+02 [ Info: 55 7.1e-01 5.9e+01 0.0e+00 1.3e-03 [ Info: 56 5.9e+01 5.9e+01 0.0e+00 3.1e+02 [ Info: 57 7.1e-01 5.9e+01 0.0e+00 1.3e-03 [ Info: 58 5.9e+01 5.9e+01 0.0e+00 3.1e+02 [ Info: 59 7.1e-01 5.9e+01 0.0e+00 1.3e-03 [ Info: 60 5.9e+01 5.9e+01 0.0e+00 3.1e+02 [ Info: iter obj Δobj violation kkt_residual [ Info: 0 2.1e+02 Inf 0.0e+00 7.8e+02 [ Info: 1 -3.8e+01 2.4e+02 0.0e+00 1.3e-03 [ Info: 2 2.2e+05 2.2e+05 0.0e+00 4.6e+04 [ Info: 3 -3.8e+01 2.2e+05 0.0e+00 1.3e-03 [ Info: 4 2.1e+04 2.1e+04 0.0e+00 9.2e+03 [ Info: 5 -3.8e+01 2.1e+04 0.0e+00 1.3e-03 [ Info: 6 1.1e+03 1.1e+03 0.0e+00 1.7e+03 [ Info: 7 -3.8e+01 1.1e+03 0.0e+00 1.3e-03 [ Info: 8 -3.8e+01 5.3e-02 0.0e+00 1.3e-03 [ Info: 9 4.3e+03 4.3e+03 0.0e+00 3.6e+03 [ Info: 10 -3.8e+01 4.3e+03 0.0e+00 1.3e-03 [ Info: 11 1.2e+03 1.3e+03 0.0e+00 1.8e+03 [ Info: 12 -3.8e+01 1.3e+03 0.0e+00 1.3e-03 [ Info: 13 4.2e+02 4.6e+02 0.0e+00 1.1e+03 [ Info: 14 -3.8e+01 4.6e+02 0.0e+00 1.3e-03 [ Info: 15 2.8e+02 3.2e+02 0.0e+00 9.0e+02 [ Info: 16 -3.8e+01 3.2e+02 0.0e+00 1.3e-03 [ Info: 17 2.8e+02 3.2e+02 0.0e+00 9.0e+02 [ Info: 18 -3.8e+01 3.2e+02 0.0e+00 1.3e-03 [ Info: 19 2.8e+02 3.2e+02 0.0e+00 9.0e+02 [ Info: 20 -3.8e+01 3.2e+02 0.0e+00 1.3e-03 [ Info: 21 2.8e+02 3.2e+02 0.0e+00 9.0e+02 [ Info: 22 -3.8e+01 3.2e+02 0.0e+00 1.3e-03 [ Info: 23 2.8e+02 3.2e+02 0.0e+00 9.0e+02 [ Info: 24 -3.8e+01 3.2e+02 0.0e+00 1.3e-03 [ Info: 25 2.8e+02 3.2e+02 0.0e+00 9.0e+02 [ Info: 26 -3.8e+01 3.2e+02 0.0e+00 1.3e-03 [ Info: 27 2.8e+02 3.2e+02 0.0e+00 9.0e+02 [ Info: 28 -3.8e+01 3.2e+02 0.0e+00 1.3e-03 [ Info: 29 2.8e+02 3.2e+02 0.0e+00 9.0e+02 [ Info: 30 -3.8e+01 3.2e+02 0.0e+00 1.3e-03 [ Info: 31 2.8e+02 3.2e+02 0.0e+00 9.0e+02 [ Info: 32 -3.8e+01 3.2e+02 0.0e+00 1.3e-03 [ Info: 33 2.8e+02 3.2e+02 0.0e+00 9.0e+02 [ Info: 34 -3.8e+01 3.2e+02 0.0e+00 1.3e-03 [ Info: 35 2.8e+02 3.2e+02 0.0e+00 9.0e+02 [ Info: 36 -3.8e+01 3.2e+02 0.0e+00 1.3e-03 [ Info: 37 2.8e+02 3.2e+02 0.0e+00 9.0e+02 [ Info: 38 -3.8e+01 3.2e+02 0.0e+00 1.3e-03 [ Info: 39 2.8e+02 3.2e+02 0.0e+00 9.0e+02 [ Info: 40 -3.8e+01 3.2e+02 0.0e+00 1.3e-03 [ Info: 41 2.8e+02 3.2e+02 0.0e+00 9.0e+02 [ Info: 42 -3.8e+01 3.2e+02 0.0e+00 1.3e-03 [ Info: 43 2.8e+02 3.2e+02 0.0e+00 9.0e+02 [ Info: 44 -3.8e+01 3.2e+02 0.0e+00 1.3e-03 [ Info: 45 2.8e+02 3.2e+02 0.0e+00 9.0e+02 [ Info: 46 -3.8e+01 3.2e+02 0.0e+00 1.3e-03 [ Info: 47 2.8e+02 3.2e+02 0.0e+00 9.0e+02 [ Info: 48 -3.8e+01 3.2e+02 0.0e+00 1.3e-03 [ Info: 49 2.8e+02 3.2e+02 0.0e+00 9.0e+02 [ Info: 50 -3.8e+01 3.2e+02 0.0e+00 1.3e-03 [ Info: 51 2.8e+02 3.2e+02 0.0e+00 9.0e+02 [ Info: 52 -3.8e+01 3.2e+02 0.0e+00 1.3e-03 [ Info: 53 2.8e+02 3.2e+02 0.0e+00 9.0e+02 [ Info: 54 -3.8e+01 3.2e+02 0.0e+00 1.3e-03 [ Info: 55 2.8e+02 3.2e+02 0.0e+00 9.0e+02 [ Info: 56 -3.8e+01 3.2e+02 0.0e+00 1.3e-03 [ Info: 57 2.8e+02 3.2e+02 0.0e+00 9.0e+02 [ Info: 58 -3.8e+01 3.2e+02 0.0e+00 1.3e-03 [ Info: 59 2.8e+02 3.2e+02 0.0e+00 9.0e+02 [ Info: 60 -3.8e+01 3.2e+02 0.0e+00 1.3e-03 [ Info: iter obj Δobj violation kkt_residual [ Info: 0 7.1e-01 Inf 0.0e+00 1.3e-03 [ Info: 1 3.9e+07 3.9e+07 0.0e+00 7.4e+06 [ Info: 2 7.1e-01 3.9e+07 0.0e+00 1.3e-03 [ Info: 3 4.0e+06 4.0e+06 0.0e+00 7.6e+05 [ Info: 4 8.1e+04 3.9e+06 0.0e+00 2.5e+04 [ Info: 5 7.7e-01 8.1e+04 0.0e+00 1.3e-03 [ Info: 6 1.7e+05 1.7e+05 0.0e+00 4.3e+04 [ Info: 7 7.1e-01 1.7e+05 0.0e+00 1.3e-03 [ Info: 8 6.5e+04 6.5e+04 0.0e+00 2.2e+04 [ Info: 9 2.7e+03 6.2e+04 0.0e+00 3.4e+03 [ Info: 10 7.3e-01 2.7e+03 0.0e+00 1.3e-03 [ Info: 11 5.9e+03 5.9e+03 0.0e+00 5.2e+03 [ Info: 12 7.1e-01 5.9e+03 0.0e+00 1.3e-03 [ Info: 13 2.1e+03 2.1e+03 0.0e+00 2.9e+03 [ Info: 14 7.0e-01 2.1e+03 0.0e+00 1.3e-03 [ Info: 15 9.3e+02 9.3e+02 0.0e+00 1.9e+03 [ Info: 16 4.8e+01 8.8e+02 0.0e+00 4.2e+02 [ Info: 17 7.1e-01 4.7e+01 0.0e+00 1.3e-03 [ Info: 18 1.3e+02 1.3e+02 0.0e+00 7.0e+02 [ Info: 19 7.1e-01 1.3e+02 0.0e+00 1.3e-03 [ Info: 20 1.3e+02 1.3e+02 0.0e+00 7.0e+02 [ Info: 21 7.1e-01 1.3e+02 0.0e+00 1.3e-03 [ Info: 22 1.3e+02 1.3e+02 0.0e+00 7.0e+02 [ Info: 23 7.1e-01 1.3e+02 0.0e+00 1.3e-03 [ Info: 24 1.3e+02 1.3e+02 0.0e+00 7.0e+02 [ Info: 25 7.1e-01 1.3e+02 0.0e+00 1.3e-03 [ Info: 26 1.3e+02 1.3e+02 0.0e+00 7.0e+02 [ Info: 27 7.1e-01 1.3e+02 0.0e+00 1.3e-03 [ Info: 28 1.3e+02 1.3e+02 0.0e+00 7.0e+02 [ Info: 29 7.1e-01 1.3e+02 0.0e+00 1.3e-03 [ Info: 30 1.3e+02 1.3e+02 0.0e+00 7.0e+02 [ Info: 31 7.1e-01 1.3e+02 0.0e+00 1.3e-03 [ Info: 32 1.3e+02 1.3e+02 0.0e+00 7.0e+02 [ Info: 33 7.1e-01 1.3e+02 0.0e+00 1.3e-03 [ Info: 34 1.3e+02 1.3e+02 0.0e+00 7.0e+02 [ Info: 35 7.1e-01 1.3e+02 0.0e+00 1.3e-03 [ Info: 36 1.3e+02 1.3e+02 0.0e+00 7.0e+02 [ Info: 37 7.1e-01 1.3e+02 0.0e+00 1.3e-03 [ Info: 38 1.3e+02 1.3e+02 0.0e+00 7.0e+02 [ Info: 39 7.1e-01 1.3e+02 0.0e+00 1.3e-03 [ Info: 40 1.3e+02 1.3e+02 0.0e+00 7.0e+02 [ Info: 41 7.1e-01 1.3e+02 0.0e+00 1.3e-03 [ Info: 42 1.3e+02 1.3e+02 0.0e+00 7.0e+02 [ Info: 43 7.1e-01 1.3e+02 0.0e+00 1.3e-03 [ Info: 44 1.3e+02 1.3e+02 0.0e+00 7.0e+02 [ Info: 45 7.1e-01 1.3e+02 0.0e+00 1.3e-03 [ Info: 46 1.3e+02 1.3e+02 0.0e+00 7.0e+02 [ Info: 47 7.1e-01 1.3e+02 0.0e+00 1.3e-03 [ Info: 48 1.3e+02 1.3e+02 0.0e+00 7.0e+02 [ Info: 49 7.1e-01 1.3e+02 0.0e+00 1.3e-03 [ Info: 50 1.3e+02 1.3e+02 0.0e+00 7.0e+02 [ Info: 51 7.1e-01 1.3e+02 0.0e+00 1.3e-03 [ Info: 52 1.3e+02 1.3e+02 0.0e+00 7.0e+02 [ Info: 53 7.1e-01 1.3e+02 0.0e+00 1.3e-03 [ Info: 54 1.3e+02 1.3e+02 0.0e+00 7.0e+02 [ Info: 55 7.1e-01 1.3e+02 0.0e+00 1.3e-03 [ Info: 56 1.3e+02 1.3e+02 0.0e+00 7.0e+02 [ Info: 57 7.1e-01 1.3e+02 0.0e+00 1.3e-03 [ Info: 58 1.3e+02 1.3e+02 0.0e+00 7.0e+02 [ Info: 59 7.1e-01 1.3e+02 0.0e+00 1.3e-03 [ Info: 60 1.3e+02 1.3e+02 0.0e+00 7.0e+02 [ Info: iter obj Δobj violation kkt_residual [ Info: 0 4.6e+02 Inf 0.0e+00 1.8e+03 [ Info: 1 -8.7e+01 5.5e+02 0.0e+00 1.3e-03 [ Info: 2 4.9e+05 4.9e+05 0.0e+00 1.0e+05 [ Info: 3 -8.7e+01 4.9e+05 0.0e+00 1.3e-03 [ Info: 4 4.8e+04 4.8e+04 0.0e+00 2.1e+04 [ Info: 5 -8.7e+01 4.8e+04 0.0e+00 1.3e-03 [ Info: 6 2.4e+03 2.5e+03 0.0e+00 3.9e+03 [ Info: 7 -8.7e+01 2.5e+03 0.0e+00 1.3e-03 [ Info: 8 -8.7e+01 5.3e-02 0.0e+00 1.3e-03 [ Info: 9 9.7e+03 9.8e+03 0.0e+00 8.1e+03 [ Info: 10 -8.7e+01 9.8e+03 0.0e+00 1.3e-03 [ Info: 11 2.8e+03 2.9e+03 0.0e+00 4.2e+03 [ Info: 12 -8.7e+01 2.9e+03 0.0e+00 1.3e-03 [ Info: 13 9.5e+02 1.0e+03 0.0e+00 2.4e+03 [ Info: 14 -8.7e+01 1.0e+03 0.0e+00 1.3e-03 [ Info: 15 6.3e+02 7.2e+02 0.0e+00 2.0e+03 [ Info: 16 -8.7e+01 7.2e+02 0.0e+00 1.3e-03 [ Info: 17 6.3e+02 7.2e+02 0.0e+00 2.0e+03 [ Info: 18 -8.7e+01 7.2e+02 0.0e+00 1.3e-03 [ Info: 19 6.3e+02 7.2e+02 0.0e+00 2.0e+03 [ Info: 20 -8.7e+01 7.2e+02 0.0e+00 1.3e-03 [ Info: 21 6.3e+02 7.2e+02 0.0e+00 2.0e+03 [ Info: 22 -8.7e+01 7.2e+02 0.0e+00 1.3e-03 [ Info: 23 6.3e+02 7.2e+02 0.0e+00 2.0e+03 [ Info: 24 -8.7e+01 7.2e+02 0.0e+00 1.3e-03 [ Info: 25 6.3e+02 7.2e+02 0.0e+00 2.0e+03 [ Info: 26 -8.7e+01 7.2e+02 0.0e+00 1.3e-03 [ Info: 27 6.3e+02 7.2e+02 0.0e+00 2.0e+03 [ Info: 28 -8.7e+01 7.2e+02 0.0e+00 1.3e-03 [ Info: 29 6.3e+02 7.2e+02 0.0e+00 2.0e+03 [ Info: 30 -8.7e+01 7.2e+02 0.0e+00 1.3e-03 [ Info: 31 6.3e+02 7.2e+02 0.0e+00 2.0e+03 [ Info: 32 -8.7e+01 7.2e+02 0.0e+00 1.3e-03 [ Info: 33 6.3e+02 7.2e+02 0.0e+00 2.0e+03 [ Info: 34 -8.7e+01 7.2e+02 0.0e+00 1.3e-03 [ Info: 35 6.3e+02 7.2e+02 0.0e+00 2.0e+03 [ Info: 36 -8.7e+01 7.2e+02 0.0e+00 1.3e-03 [ Info: 37 6.3e+02 7.2e+02 0.0e+00 2.0e+03 [ Info: 38 -8.7e+01 7.2e+02 0.0e+00 1.3e-03 [ Info: 39 6.3e+02 7.2e+02 0.0e+00 2.0e+03 [ Info: 40 -8.7e+01 7.2e+02 0.0e+00 1.3e-03 [ Info: 41 6.3e+02 7.2e+02 0.0e+00 2.0e+03 [ Info: 42 -8.7e+01 7.2e+02 0.0e+00 1.3e-03 [ Info: 43 6.3e+02 7.2e+02 0.0e+00 2.0e+03 [ Info: 44 -8.7e+01 7.2e+02 0.0e+00 1.3e-03 [ Info: 45 6.3e+02 7.2e+02 0.0e+00 2.0e+03 [ Info: 46 -8.7e+01 7.2e+02 0.0e+00 1.3e-03 [ Info: 47 6.3e+02 7.2e+02 0.0e+00 2.0e+03 [ Info: 48 -8.7e+01 7.2e+02 0.0e+00 1.3e-03 [ Info: 49 6.3e+02 7.2e+02 0.0e+00 2.0e+03 [ Info: 50 -8.7e+01 7.2e+02 0.0e+00 1.3e-03 [ Info: 51 6.3e+02 7.2e+02 0.0e+00 2.0e+03 [ Info: 52 -8.7e+01 7.2e+02 0.0e+00 1.3e-03 [ Info: 53 6.3e+02 7.2e+02 0.0e+00 2.0e+03 [ Info: 54 -8.7e+01 7.2e+02 0.0e+00 1.3e-03 [ Info: 55 6.3e+02 7.2e+02 0.0e+00 2.0e+03 [ Info: 56 -8.7e+01 7.2e+02 0.0e+00 1.3e-03 [ Info: 57 6.3e+02 7.2e+02 0.0e+00 2.0e+03 [ Info: 58 -8.7e+01 7.2e+02 0.0e+00 1.3e-03 [ Info: 59 6.3e+02 7.2e+02 0.0e+00 2.0e+03 [ Info: 60 -8.7e+01 7.2e+02 0.0e+00 1.3e-03 [ Info: iter obj Δobj violation kkt_residual [ Info: 0 7.1e-01 Inf 0.0e+00 1.3e-03 [ Info: 1 8.8e+07 8.8e+07 0.0e+00 1.7e+07 [ Info: 2 7.1e-01 8.8e+07 0.0e+00 1.3e-03 [ Info: 3 9.0e+06 9.0e+06 0.0e+00 1.7e+06 [ Info: 4 1.8e+05 8.8e+06 0.0e+00 5.7e+04 [ Info: 5 7.7e-01 1.8e+05 0.0e+00 1.3e-03 [ Info: 6 3.8e+05 3.8e+05 0.0e+00 9.6e+04 [ Info: 7 7.1e-01 3.8e+05 0.0e+00 1.3e-03 [ Info: 8 1.5e+05 1.5e+05 0.0e+00 4.9e+04 [ Info: 9 6.0e+03 1.4e+05 0.0e+00 7.6e+03 [ Info: 10 7.3e-01 6.0e+03 0.0e+00 1.3e-03 [ Info: 11 1.3e+04 1.3e+04 0.0e+00 1.2e+04 [ Info: 12 7.1e-01 1.3e+04 0.0e+00 1.3e-03 [ Info: 13 4.6e+03 4.6e+03 0.0e+00 6.6e+03 [ Info: 14 7.0e-01 4.6e+03 0.0e+00 1.3e-03 [ Info: 15 2.1e+03 2.1e+03 0.0e+00 4.3e+03 [ Info: 16 1.1e+02 2.0e+03 0.0e+00 9.3e+02 [ Info: 17 7.1e-01 1.1e+02 0.0e+00 1.3e-03 [ Info: 18 3.0e+02 3.0e+02 0.0e+00 1.6e+03 [ Info: 19 7.1e-01 3.0e+02 0.0e+00 1.3e-03 [ Info: 20 3.0e+02 3.0e+02 0.0e+00 1.6e+03 [ Info: 21 7.1e-01 3.0e+02 0.0e+00 1.3e-03 [ Info: 22 3.0e+02 3.0e+02 0.0e+00 1.6e+03 [ Info: 23 7.1e-01 3.0e+02 0.0e+00 1.3e-03 [ Info: 24 3.0e+02 3.0e+02 0.0e+00 1.6e+03 [ Info: 25 7.1e-01 3.0e+02 0.0e+00 1.3e-03 [ Info: 26 3.0e+02 3.0e+02 0.0e+00 1.6e+03 [ Info: 27 7.1e-01 3.0e+02 0.0e+00 1.3e-03 [ Info: 28 3.0e+02 3.0e+02 0.0e+00 1.6e+03 [ Info: 29 7.1e-01 3.0e+02 0.0e+00 1.3e-03 [ Info: 30 3.0e+02 3.0e+02 0.0e+00 1.6e+03 [ Info: 31 7.1e-01 3.0e+02 0.0e+00 1.3e-03 [ Info: 32 3.0e+02 3.0e+02 0.0e+00 1.6e+03 [ Info: 33 7.1e-01 3.0e+02 0.0e+00 1.3e-03 [ Info: 34 3.0e+02 3.0e+02 0.0e+00 1.6e+03 [ Info: 35 7.1e-01 3.0e+02 0.0e+00 1.3e-03 [ Info: 36 3.0e+02 3.0e+02 0.0e+00 1.6e+03 [ Info: 37 7.1e-01 3.0e+02 0.0e+00 1.3e-03 [ Info: 38 3.0e+02 3.0e+02 0.0e+00 1.6e+03 [ Info: 39 7.1e-01 3.0e+02 0.0e+00 1.3e-03 [ Info: 40 3.0e+02 3.0e+02 0.0e+00 1.6e+03 [ Info: 41 7.1e-01 3.0e+02 0.0e+00 1.3e-03 [ Info: 42 3.0e+02 3.0e+02 0.0e+00 1.6e+03 [ Info: 43 7.1e-01 3.0e+02 0.0e+00 1.3e-03 [ Info: 44 3.0e+02 3.0e+02 0.0e+00 1.6e+03 [ Info: 45 7.1e-01 3.0e+02 0.0e+00 1.3e-03 [ Info: 46 3.0e+02 3.0e+02 0.0e+00 1.6e+03 [ Info: 47 7.1e-01 3.0e+02 0.0e+00 1.3e-03 [ Info: 48 3.0e+02 3.0e+02 0.0e+00 1.6e+03 [ Info: 49 7.1e-01 3.0e+02 0.0e+00 1.3e-03 [ Info: 50 3.0e+02 3.0e+02 0.0e+00 1.6e+03 [ Info: 51 7.1e-01 3.0e+02 0.0e+00 1.3e-03 [ Info: 52 3.0e+02 3.0e+02 0.0e+00 1.6e+03 [ Info: 53 7.1e-01 3.0e+02 0.0e+00 1.3e-03 [ Info: 54 3.0e+02 3.0e+02 0.0e+00 1.6e+03 [ Info: 55 7.1e-01 3.0e+02 0.0e+00 1.3e-03 [ Info: 56 3.0e+02 3.0e+02 0.0e+00 1.6e+03 [ Info: 57 7.1e-01 3.0e+02 0.0e+00 1.3e-03 [ Info: 58 3.0e+02 3.0e+02 0.0e+00 1.6e+03 [ Info: 59 7.1e-01 3.0e+02 0.0e+00 1.3e-03 [ Info: 60 3.0e+02 3.0e+02 0.0e+00 1.6e+03 [ Info: iter obj Δobj violation kkt_residual [ Info: 0 1.0e+03 Inf 0.0e+00 3.9e+03 [ Info: 1 -2.0e+02 1.2e+03 0.0e+00 1.3e-03 [ Info: 2 1.1e+06 1.1e+06 0.0e+00 2.4e+05 [ Info: 3 -2.0e+02 1.1e+06 0.0e+00 1.3e-03 [ Info: 4 1.1e+05 1.1e+05 0.0e+00 4.7e+04 [ Info: 5 -2.0e+02 1.1e+05 0.0e+00 1.3e-03 [ Info: 6 5.5e+03 5.7e+03 0.0e+00 8.7e+03 [ Info: 7 -2.0e+02 5.7e+03 0.0e+00 1.3e-03 [ Info: 8 -2.0e+02 5.3e-02 0.0e+00 1.3e-03 [ Info: 9 2.2e+04 2.2e+04 0.0e+00 1.8e+04 [ Info: 10 -2.0e+02 2.2e+04 0.0e+00 1.3e-03 [ Info: 11 6.2e+03 6.4e+03 0.0e+00 9.4e+03 [ Info: 12 -2.0e+02 6.4e+03 0.0e+00 1.3e-03 [ Info: 13 2.1e+03 2.3e+03 0.0e+00 5.5e+03 [ Info: 14 -2.0e+02 2.3e+03 0.0e+00 1.3e-03 [ Info: 15 1.4e+03 1.6e+03 0.0e+00 4.5e+03 [ Info: 16 -2.0e+02 1.6e+03 0.0e+00 1.3e-03 [ Info: 17 1.4e+03 1.6e+03 0.0e+00 4.5e+03 [ Info: 18 -2.0e+02 1.6e+03 0.0e+00 1.3e-03 [ Info: 19 1.4e+03 1.6e+03 0.0e+00 4.5e+03 [ Info: 20 -2.0e+02 1.6e+03 0.0e+00 1.3e-03 [ Info: 21 1.4e+03 1.6e+03 0.0e+00 4.5e+03 [ Info: 22 -2.0e+02 1.6e+03 0.0e+00 1.3e-03 [ Info: 23 1.4e+03 1.6e+03 0.0e+00 4.5e+03 [ Info: 24 -2.0e+02 1.6e+03 0.0e+00 1.3e-03 [ Info: 25 1.4e+03 1.6e+03 0.0e+00 4.5e+03 [ Info: 26 -2.0e+02 1.6e+03 0.0e+00 1.3e-03 [ Info: 27 1.4e+03 1.6e+03 0.0e+00 4.5e+03 [ Info: 28 -2.0e+02 1.6e+03 0.0e+00 1.3e-03 [ Info: 29 1.4e+03 1.6e+03 0.0e+00 4.5e+03 [ Info: 30 -2.0e+02 1.6e+03 0.0e+00 1.3e-03 [ Info: 31 1.4e+03 1.6e+03 0.0e+00 4.5e+03 [ Info: 32 -2.0e+02 1.6e+03 0.0e+00 1.3e-03 [ Info: 33 1.4e+03 1.6e+03 0.0e+00 4.5e+03 [ Info: 34 -2.0e+02 1.6e+03 0.0e+00 1.3e-03 [ Info: 35 1.4e+03 1.6e+03 0.0e+00 4.5e+03 [ Info: 36 -2.0e+02 1.6e+03 0.0e+00 1.3e-03 [ Info: 37 1.4e+03 1.6e+03 0.0e+00 4.5e+03 [ Info: 38 -2.0e+02 1.6e+03 0.0e+00 1.3e-03 [ Info: 39 1.4e+03 1.6e+03 0.0e+00 4.5e+03 [ Info: 40 -2.0e+02 1.6e+03 0.0e+00 1.3e-03 [ Info: 41 1.4e+03 1.6e+03 0.0e+00 4.5e+03 [ Info: 42 -2.0e+02 1.6e+03 0.0e+00 1.3e-03 [ Info: 43 1.4e+03 1.6e+03 0.0e+00 4.5e+03 [ Info: 44 -2.0e+02 1.6e+03 0.0e+00 1.3e-03 [ Info: 45 1.4e+03 1.6e+03 0.0e+00 4.5e+03 [ Info: 46 -2.0e+02 1.6e+03 0.0e+00 1.3e-03 [ Info: 47 1.4e+03 1.6e+03 0.0e+00 4.5e+03 [ Info: 48 -2.0e+02 1.6e+03 0.0e+00 1.3e-03 [ Info: 49 1.4e+03 1.6e+03 0.0e+00 4.5e+03 [ Info: 50 -2.0e+02 1.6e+03 0.0e+00 1.3e-03 [ Info: 51 1.4e+03 1.6e+03 0.0e+00 4.5e+03 [ Info: 52 -2.0e+02 1.6e+03 0.0e+00 1.3e-03 [ Info: 53 1.4e+03 1.6e+03 0.0e+00 4.5e+03 [ Info: 54 -2.0e+02 1.6e+03 0.0e+00 1.3e-03 [ Info: 55 1.4e+03 1.6e+03 0.0e+00 4.5e+03 [ Info: 56 -2.0e+02 1.6e+03 0.0e+00 1.3e-03 [ Info: 57 1.4e+03 1.6e+03 0.0e+00 4.5e+03 [ Info: 58 -2.0e+02 1.6e+03 0.0e+00 1.3e-03 [ Info: 59 1.4e+03 1.6e+03 0.0e+00 4.5e+03 [ Info: 60 -2.0e+02 1.6e+03 0.0e+00 1.3e-03 [ Info: iter obj Δobj violation kkt_residual [ Info: 0 7.1e-01 Inf 0.0e+00 1.3e-03 [ Info: 1 2.0e+08 2.0e+08 0.0e+00 3.7e+07 [ Info: 2 7.1e-01 2.0e+08 0.0e+00 1.3e-03 [ Info: 3 2.0e+07 2.0e+07 0.0e+00 3.8e+06 [ Info: 4 4.1e+05 2.0e+07 0.0e+00 1.3e+05 [ Info: 5 7.7e-01 4.1e+05 0.0e+00 1.3e-03 [ Info: 6 8.5e+05 8.5e+05 0.0e+00 2.2e+05 [ Info: 7 7.1e-01 8.5e+05 0.0e+00 1.3e-03 [ Info: 8 3.3e+05 3.3e+05 0.0e+00 1.1e+05 [ Info: 9 1.4e+04 3.1e+05 0.0e+00 1.7e+04 [ Info: 10 7.3e-01 1.4e+04 0.0e+00 1.3e-03 [ Info: 11 3.0e+04 3.0e+04 0.0e+00 2.6e+04 [ Info: 12 7.1e-01 3.0e+04 0.0e+00 1.3e-03 [ Info: 13 1.0e+04 1.0e+04 0.0e+00 1.5e+04 [ Info: 14 7.0e-01 1.0e+04 0.0e+00 1.3e-03 [ Info: 15 4.7e+03 4.7e+03 0.0e+00 9.7e+03 [ Info: 16 2.4e+02 4.5e+03 0.0e+00 2.1e+03 [ Info: 17 7.1e-01 2.4e+02 0.0e+00 1.3e-03 [ Info: 18 6.7e+02 6.7e+02 0.0e+00 3.6e+03 [ Info: 19 7.1e-01 6.7e+02 0.0e+00 1.3e-03 [ Info: 20 6.7e+02 6.7e+02 0.0e+00 3.6e+03 [ Info: 21 7.1e-01 6.7e+02 0.0e+00 1.3e-03 [ Info: 22 6.7e+02 6.7e+02 0.0e+00 3.6e+03 [ Info: 23 7.1e-01 6.7e+02 0.0e+00 1.3e-03 [ Info: 24 6.7e+02 6.7e+02 0.0e+00 3.6e+03 [ Info: 25 7.1e-01 6.7e+02 0.0e+00 1.3e-03 [ Info: 26 6.7e+02 6.7e+02 0.0e+00 3.6e+03 [ Info: 27 7.1e-01 6.7e+02 0.0e+00 1.3e-03 [ Info: 28 6.7e+02 6.7e+02 0.0e+00 3.6e+03 [ Info: 29 7.1e-01 6.7e+02 0.0e+00 1.3e-03 [ Info: 30 6.7e+02 6.7e+02 0.0e+00 3.6e+03 [ Info: 31 7.1e-01 6.7e+02 0.0e+00 1.3e-03 [ Info: 32 6.7e+02 6.7e+02 0.0e+00 3.6e+03 [ Info: 33 7.1e-01 6.7e+02 0.0e+00 1.3e-03 [ Info: 34 6.7e+02 6.7e+02 0.0e+00 3.6e+03 [ Info: 35 7.1e-01 6.7e+02 0.0e+00 1.3e-03 [ Info: 36 6.7e+02 6.7e+02 0.0e+00 3.6e+03 [ Info: 37 7.1e-01 6.7e+02 0.0e+00 1.3e-03 [ Info: 38 6.7e+02 6.7e+02 0.0e+00 3.6e+03 [ Info: 39 7.1e-01 6.7e+02 0.0e+00 1.3e-03 [ Info: 40 6.7e+02 6.7e+02 0.0e+00 3.6e+03 [ Info: 41 7.1e-01 6.7e+02 0.0e+00 1.3e-03 [ Info: 42 6.7e+02 6.7e+02 0.0e+00 3.6e+03 [ Info: 43 7.1e-01 6.7e+02 0.0e+00 1.3e-03 [ Info: 44 6.7e+02 6.7e+02 0.0e+00 3.6e+03 [ Info: 45 7.1e-01 6.7e+02 0.0e+00 1.3e-03 [ Info: 46 6.7e+02 6.7e+02 0.0e+00 3.6e+03 [ Info: 47 7.1e-01 6.7e+02 0.0e+00 1.3e-03 [ Info: 48 6.7e+02 6.7e+02 0.0e+00 3.6e+03 [ Info: 49 7.1e-01 6.7e+02 0.0e+00 1.3e-03 [ Info: 50 6.7e+02 6.7e+02 0.0e+00 3.6e+03 [ Info: 51 7.1e-01 6.7e+02 0.0e+00 1.3e-03 [ Info: 52 6.7e+02 6.7e+02 0.0e+00 3.6e+03 [ Info: 53 7.1e-01 6.7e+02 0.0e+00 1.3e-03 [ Info: 54 6.7e+02 6.7e+02 0.0e+00 3.6e+03 [ Info: 55 7.1e-01 6.7e+02 0.0e+00 1.3e-03 [ Info: 56 6.7e+02 6.7e+02 0.0e+00 3.6e+03 [ Info: 57 7.1e-01 6.7e+02 0.0e+00 1.3e-03 [ Info: 58 6.7e+02 6.7e+02 0.0e+00 3.6e+03 [ Info: 59 7.1e-01 6.7e+02 0.0e+00 1.3e-03 [ Info: 60 6.7e+02 6.7e+02 0.0e+00 3.6e+03 max-compliance design: volume = 0.699, max C = 62.5, C_t = 61.8
NonconvexPercival provides this augmented-Lagrangian method as a built-in solver. The same problem can be posed directly with a vector constraint and solved by PercivalAlg (no manual multiplier loop):
model = Model(volf)
addvar!(model, zeros(length(solver.vars)), ones(length(solver.vars)))
add_ineq_constraint!(model, x -> Cfun(x) ./ C_t .- 1)
x_al2 = optimize(model, PercivalAlg(), x_al;
options=PercivalOptions(; max_iter=40, subsolver_max_eval=500)).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;nvmust equal the number of scenarios for an unbiased estimate. 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.