Tutorial: Minimum Time Problems
This tutorial shows how to solve time-optimal problems where trajectory duration is minimized alongside other objectives.
Problem Description
Find the fastest trajectory from start to goal with bounded controls.
Dynamics:
\[\dot{x} = (G_0 + u_1 G_1) x\]
Objective: Minimize total time + control effort
Constraints: |u| ≤ 1
using DirectTrajOpt
using NamedTrajectories
using LinearAlgebra
using Statistics
using PrintfFixed Time vs Free Time
println("="^50)
println("MINIMUM TIME TRAJECTORY OPTIMIZATION")
println("="^50)
println("""
Two approaches:
1. **Fixed time**: All Δt equal and constant
2. **Free time**: Each Δt is a variable (what we'll use)
Free time allows the optimizer to adjust trajectory duration.
""")==================================================
MINIMUM TIME TRAJECTORY OPTIMIZATION
==================================================
Two approaches:
1. **Fixed time**: All Δt equal and constant
2. **Free time**: Each Δt is a variable (what we'll use)
Free time allows the optimizer to adjust trajectory duration.Step 1: System Definition
G_drift = [
-0.1 1.0;
-1.0 -0.1
]
G_drives = [[
0.0 1.0;
1.0 0.0
]]
G = u -> G_drift + sum(u .* G_drives)
println("System: 2D damped oscillator with symmetric control coupling")System: 2D damped oscillator with symmetric control couplingStep 2: Trajectory Setup
N = 40# Number of time steps (fewer than before)
Δt_init = 0.15 # Initial guess for time step
x_init = [0.0, 0.0]
x_goal = [1.0, 0.0]2-element Vector{Float64}:
1.0
0.0Initial guess
x_guess = hcat([x_init + (x_goal - x_init) * (t/(N-1)) for t = 0:(N-1)]...)
u_guess = 0.1 * randn(1, N)
Δt_guess = fill(Δt_init, N)
println("\nProblem setup:")
println(" Time steps: $N")
println(" Initial guess for Δt: $Δt_init")
println(" Initial total time: ", sum(Δt_guess))
Problem setup:
Time steps: 40
Initial guess for Δt: 0.15
Initial total time: 6.000000000000002Step 3: Create Free-Time Trajectory
Key: timestep=:Δt makes time steps decision variables
traj_mintime = NamedTrajectory(
(x = x_guess, u = u_guess, Δt = Δt_guess);
timestep = :Δt, # Time is a variable!
controls = :u,
initial = (x = x_init,),
final = (x = x_goal,),
bounds = (
u = 1.0, # -1 ≤ u ≤ 1
Δt = (0.01, 0.5), # 0.01 ≤ Δt ≤ 0.5
),
)
println("\nTrajectory bounds:")
println(" Control: ", traj_mintime.bounds.u)
println(" Time step: ", traj_mintime.bounds.Δt)
Trajectory bounds:
Control: ([-1.0], [1.0])
Time step: ([0.01], [0.5])Step 4: Define Objectives
Time Minimization Weight
The key parameter: balance speed vs control effort
w_time = 1.0 # Weight on total time
w_control = 1e-2 # Weight on control effort
obj_mintime = (
w_control * QuadraticRegularizer(:u, traj_mintime, 1.0) +
w_time * MinimumTimeObjective(traj_mintime, 1.0)
)
println("\nObjective weights:")
println(" Control effort: $w_control")
println(" Time: $w_time")
println(" → Emphasizes minimizing time")
Objective weights:
Control effort: 0.01
Time: 1.0
→ Emphasizes minimizing timeStep 5: Solve Minimum Time Problem
integrator_mintime = BilinearIntegrator(G, :x, :u, traj_mintime)
prob_mintime = DirectTrajOptProblem(traj_mintime, obj_mintime, integrator_mintime)
prob_mintimeDirectTrajOptProblem
Trajectory
Timesteps: 40
Duration: 5.85
Knot dim: 4
Variables: x (2), u (1), Δt (1)
Controls: u, Δt
Objective (2 terms)
0.01 * QuadraticRegularizer on :u (R = [1.0], all)
1.0 * MinimumTimeObjective (D = 1.0)
Dynamics (1 integrators)
BilinearIntegrator: :x = exp(Δt G(:u)) :x (dim = 2)
Constraints (4 total: 2 equality, 2 bounds)
EqualityConstraint: "initial value of x"
EqualityConstraint: "final value of x"
BoundsConstraint: "bounds on u"
BoundsConstraint: "bounds on Δt"println("Solving minimum time problem...")
println("="^50)
solve!(prob_mintime; max_iter = 200, verbose = false)
println("="^50)
println("Minimum time solution found!")
println("="^50)Solving minimum time problem...
==================================================
This is Ipopt version 3.14.19, running with linear solver MUMPS 5.8.2.
Number of nonzeros in equality constraint Jacobian...: 616
Number of nonzeros in inequality constraint Jacobian.: 0
Number of nonzeros in Lagrangian Hessian.............: 994
Total number of variables............................: 156
variables with only lower bounds: 0
variables with lower and upper bounds: 80
variables with only upper bounds: 0
Total number of equality constraints.................: 78
Total number of inequality constraints...............: 0
inequality constraints with only lower bounds: 0
inequality constraints with lower and upper bounds: 0
inequality constraints with only upper bounds: 0
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
0 5.8500325e+00 1.45e-01 1.00e+00 0.0 0.00e+00 - 0.00e+00 0.00e+00 0
1 3.5652608e+00 7.81e-02 1.13e+00 -0.8 5.18e-01 - 9.91e-01 8.33e-01h 1
2 2.1456970e+00 5.40e-02 2.25e+00 -4.0 1.70e+00 - 3.54e-01 3.03e-01f 1
3 3.1777614e+00 7.72e-02 9.78e+00 -0.4 2.31e+00 0.0 7.26e-01 2.08e-01f 1
4 3.6194873e+00 7.56e-02 4.92e+01 0.3 8.20e+00 -0.5 6.39e-01 2.60e-02h 1
5 4.6088843e+00 5.87e-02 1.12e+02 0.6 3.63e+00 - 9.20e-01 1.81e-01h 1
6 5.6346326e+00 6.59e-02 1.22e+02 1.2 1.97e+00 - 2.62e-01 1.51e-01h 1
7 5.8531753e+00 6.29e-02 1.92e+03 1.4 6.27e+00 - 8.16e-01 3.80e-02h 1
8 5.7022429e+00 5.65e-02 4.66e+03 2.0 3.43e+00 - 6.05e-01 1.15e-01h 1
9 6.3308633e+00 5.23e-02 2.13e+04 2.8 5.82e+00 - 4.72e-01 5.50e-02f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
10 6.2184782e+00 4.45e-02 6.07e+04 2.8 1.15e+00 - 5.86e-01 1.48e-01h 1
11 6.3029262e+00 4.14e-02 7.09e+04 1.3 3.45e+00 - 1.38e-01 7.13e-02h 1
12 6.5114211e+00 4.01e-02 5.27e+05 2.8 9.48e+00 - 8.69e-01 3.29e-02h 1
13 6.1131386e+00 3.74e-02 5.36e+05 -3.1 6.34e+00 - 1.15e-01 6.64e-02f 1
14 6.2472474e+00 3.68e-02 5.31e+05 2.8 1.27e+01 4.5 1.78e-02 1.50e-02h 1
15 6.4053171e+00 3.60e-02 5.20e+05 -3.2 8.70e+00 - 2.81e-02 2.44e-02h 1
16 6.6627415e+00 3.56e-02 5.17e+05 2.7 2.93e+01 - 9.14e-03 8.21e-03h 1
17 6.6663928e+00 3.56e-02 1.17e+06 1.8 8.79e+00 - 2.07e-01 5.53e-04h 1
18 6.3117079e+00 3.45e-02 2.02e+06 2.8 1.13e+01 - 1.24e-01 3.10e-02h 1
19 6.4160150e+00 3.43e-02 1.82e+06 2.8 2.24e+01 4.9 1.52e-03 6.58e-03h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
20 6.4876916e+00 3.41e-02 1.86e+06 2.3 2.22e+01 - 2.35e-02 5.50e-03h 1
21 6.4980477e+00 3.41e-02 2.23e+06 2.8 9.66e+00 5.3 7.66e-03 9.21e-04h 1
22 6.4795978e+00 3.40e-02 2.23e+06 -3.0 4.01e+01 - 4.87e-04 1.71e-03f 1
23 6.5938159e+00 3.37e-02 2.17e+06 2.0 1.29e+01 4.8 9.36e-03 1.01e-02h 1
24 6.6674550e+00 3.35e-02 2.20e+06 2.8 1.95e+01 5.3 6.29e-03 5.46e-03h 1
25 6.7628112e+00 3.32e-02 2.79e+06 1.1 1.97e+01 4.8 1.93e-02 7.68e-03h 1
26 6.7451057e+00 3.29e-02 3.50e+06 2.8 6.23e+00 6.1 1.17e-02 9.18e-03h 1
27 6.7820960e+00 3.29e-02 3.48e+06 2.8 4.22e+01 5.6 1.28e-03 1.53e-03h 1
28 6.7795583e+00 3.29e-02 3.48e+06 -3.0 5.48e+01 5.2 2.19e-05 1.91e-04f 1
29 6.8610399e+00 3.27e-02 3.04e+06 2.8 8.56e+00 5.6 2.18e-03 4.27e-03h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
30 6.9220882e+00 3.26e-02 4.15e+06 -3.0 6.97e+00 6.0 7.19e-03 4.22e-03h 1
31 6.9867047e+00 3.24e-02 7.16e+06 2.8 5.43e+00 6.4 9.18e-03 5.38e-03h 1
32 7.0440203e+00 3.24e-02 6.97e+06 -3.0 2.37e+01 6.0 1.33e-03 1.75e-03h 1
33 7.0820933e+00 3.23e-02 1.28e+07 2.8 7.48e+00 6.4 6.85e-03 1.85e-03h 1
34 7.1763644e+00 3.21e-02 3.02e+07 2.8 7.01e+00 6.8 1.28e-02 6.34e-03h 1
35 7.2425559e+00 3.20e-02 7.38e+07 2.8 8.14e+00 7.2 7.88e-03 3.09e-03h 1
36 7.2966817e+00 3.19e-02 2.57e+08 2.8 8.63e+00 7.7 9.00e-03 2.13e-03h 1
37 7.3912516e+00 3.19e-02 2.43e+08 -2.9 1.46e+01 7.2 9.25e-04 1.93e-03h 1
38 7.4571671e+00 3.18e-02 2.82e+08 2.8 1.13e+01 6.7 7.02e-03 1.35e-03h 1
39 7.8666031e+00 3.16e-02 2.88e+08 -2.8 1.40e+01 6.2 1.11e-02 9.07e-03h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
40 7.8859256e+00 3.15e-02 2.88e+08 2.8 3.44e+01 5.8 4.57e-04 4.75e-04h 1
41 7.9375431e+00 3.15e-02 4.65e+08 2.8 1.88e+01 6.2 1.85e-02 7.35e-04h 1
42 8.0060479e+00 3.15e-02 5.88e+08 2.8 1.72e+01 7.5 2.69e-03 8.41e-04h 1
43 8.2213513e+00 3.14e-02 3.79e+09 2.8 1.71e+01 7.9 2.13e-02 2.74e-03h 1
44 8.6016825e+00 3.13e-02 3.48e+09 -2.4 2.28e+01 7.5 1.01e-03 3.52e-03h 1
45 8.6061814e+00 3.13e-02 5.92e+09 2.8 2.25e+01 8.8 1.01e-03 3.58e-05h 1
46 8.6563027e+00 3.13e-02 1.25e+10 2.8 3.05e+01 8.3 5.76e-03 3.34e-04h 1
47 9.1073270e+00 3.12e-02 1.17e+10 2.8 3.41e+01 7.8 1.64e-03 2.91e-03h 1
48 9.1130901e+00 3.12e-02 3.36e+10 2.8 4.16e+01 8.3 7.59e-03 2.74e-05h 1
49 9.2495906e+00 3.12e-02 5.87e+10 2.8 6.03e+01 7.8 1.50e-02 6.17e-04h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
50 9.4479253e+00 3.11e-02 9.42e+10 2.8 6.20e+01 7.3 2.29e-02 9.66e-04h 1
51 9.4554113e+00 3.11e-02 9.79e+10 2.8 1.89e+02 6.8 1.50e-03 4.97e-05h 1
52 9.4645081e+00 3.11e-02 9.76e+10 -1.2 1.20e+02 8.2 8.56e-07 2.52e-05h 1
53 9.4800021e+00 3.11e-02 9.77e+10 2.8 1.22e+02 7.7 5.61e-05 4.06e-05h 1
54 9.5442176e+00 3.11e-02 1.17e+11 2.8 1.33e+02 7.2 3.98e-03 1.96e-04h 1
55 9.7901901e+00 3.11e-02 1.25e+11 2.8 2.74e+02 6.7 1.93e-03 7.35e-04h 1
56 9.8156978e+00 3.11e-02 1.24e+11 -1.0 2.53e+03 6.3 5.37e-05 2.33e-04h 1
57 9.8286649e+00 3.11e-02 1.30e+11 2.8 1.45e+03 6.7 3.76e-04 5.36e-05h 1
58 9.7904785e+00 3.11e-02 1.33e+11 2.8 6.37e+03 6.2 4.69e-05 1.49e-04f 1
59 9.7901111e+00 3.11e-02 1.33e+11 -0.9 9.56e+03 - 3.26e-05 2.65e-05h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
60r 9.7901111e+00 3.11e-02 9.99e+02 2.8 0.00e+00 5.7 0.00e+00 3.96e-07R 3
61r 9.9046636e+00 2.28e-02 6.88e+00 0.9 6.42e-01 - 9.93e-01 9.84e-01f 1
62 9.8246818e+00 2.11e-02 1.23e+01 -1.0 5.45e-01 - 5.28e-01 7.16e-02f 1
63 8.5875821e+00 1.94e-02 7.13e+01 -0.8 5.98e+00 - 7.11e-01 7.84e-02f 1
64 8.6188053e+00 1.93e-02 1.23e+02 -4.0 5.78e+00 - 7.08e-02 7.25e-03h 1
65 8.9505988e+00 4.22e-02 4.36e+02 0.5 6.28e+01 - 9.43e-02 1.51e-02f 1
66 8.9972560e+00 4.55e-02 5.48e+02 -0.4 1.09e+01 - 3.23e-02 1.29e-02h 2
67 9.0192281e+00 4.64e-02 5.44e+02 -0.4 1.00e+01 - 1.58e-02 3.54e-03f 3
68 9.0558231e+00 4.73e-02 6.21e+02 -0.4 1.27e+01 - 8.20e-02 5.74e-03h 3
69 9.3489226e+00 6.16e-02 5.53e+02 -0.4 1.98e+01 - 2.98e-02 4.28e-02h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
70 9.4038317e+00 6.12e-02 1.01e+03 -0.4 2.39e+01 - 3.30e-02 6.12e-03h 1
71 9.6221404e+00 5.99e-02 1.95e+03 -0.4 4.52e+01 - 5.09e-02 2.19e-02h 1
72 9.9830633e+00 5.93e-02 1.94e+03 -0.4 2.09e+01 - 8.72e-03 8.49e-03h 1
73 1.0202221e+01 5.91e-02 1.63e+04 -0.4 2.60e+01 - 3.44e-02 4.66e-03h 1
74 1.0499312e+01 5.88e-02 2.79e+04 -0.4 6.65e+01 - 8.19e-03 4.98e-03h 1
75 1.0479234e+01 5.87e-02 7.10e+04 -0.4 2.79e+02 - 1.13e-03 5.54e-04h 1
76 1.0477646e+01 5.87e-02 1.04e+05 -0.4 4.09e+03 - 1.39e-04 7.47e-05h 1
77 1.0469659e+01 5.87e-02 4.29e+06 -0.4 2.39e+02 - 3.73e-03 1.29e-04h 1
78 1.0443826e+01 5.87e-02 1.19e+08 -0.4 3.33e+02 - 2.32e-03 8.69e-05h 1
79 1.0410830e+01 4.78e-03 6.87e+07 -0.4 2.17e-01 - 4.18e-01 1.00e+00f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
80 1.0399046e+01 4.78e-03 6.92e+07 2.4 2.00e+03 - 9.20e-06 5.96e-06f 6
81r 1.0399046e+01 4.78e-03 1.00e+03 2.3 0.00e+00 - 0.00e+00 4.85e-07R 9
82r 1.0399112e+01 4.78e-03 1.02e+01 -4.0 2.16e-01 - 9.90e-01 9.79e-01f 1
83r 9.9800137e+00 4.80e-03 3.33e+02 -1.7 2.70e+00 - 7.88e-01 1.69e-01f 1
84r 1.0767557e+01 8.14e-03 5.59e+02 -0.4 7.58e+00 - 7.82e-01 6.34e-02f 1
85r 1.0067855e+01 5.82e-03 5.50e+02 -1.1 1.62e+00 - 1.00e+00 2.91e-01f 1
86r 1.0227152e+01 6.19e-03 4.02e+01 -1.2 3.56e-01 - 1.00e+00 9.77e-01f 1
87r 1.0220983e+01 7.14e-03 4.04e+01 -1.7 1.81e-02 2.0 1.00e+00 5.76e-01f 1
88r 1.0318688e+01 1.16e-02 3.87e+01 -2.6 7.59e-02 1.5 4.40e-01 2.58e-01f 1
89r 1.0331688e+01 1.37e-02 6.14e+00 -2.5 1.86e-02 1.9 1.00e+00 8.18e-01f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
90r 1.0366777e+01 1.42e-02 1.10e+01 -2.8 2.78e-02 1.5 1.00e+00 4.40e-01f 1
91r 1.0403283e+01 1.51e-02 5.23e+00 -3.9 9.04e-03 1.9 1.00e+00 5.83e-01f 1
92r 1.0495262e+01 1.98e-02 5.01e+00 -3.7 2.31e-02 1.4 1.00e+00 6.86e-01f 1
93r 1.0514978e+01 2.16e-02 2.84e+00 -4.0 7.50e-03 1.8 1.00e+00 5.60e-01f 1
94r 1.0540568e+01 2.44e-02 9.70e+00 -4.0 1.69e-02 1.4 1.00e+00 3.73e-01f 1
95r 1.0552834e+01 2.54e-02 3.34e+00 -4.0 6.95e-03 1.8 1.00e+00 4.32e-01f 1
96r 1.0563270e+01 2.54e-02 1.31e+01 -4.0 1.73e-02 1.3 1.00e+00 1.21e-01f 1
97r 1.0631667e+01 2.24e-02 1.79e+01 -4.0 3.36e-02 0.8 1.00e+00 3.41e-01f 1
98r 1.0735677e+01 2.17e-02 1.07e+01 -4.0 4.72e-02 0.4 3.05e-01 4.03e-01f 1
99r 1.0713579e+01 2.20e-02 6.17e+01 -2.5 1.68e-01 0.8 1.00e+00 1.83e-01f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
100r 1.0719791e+01 2.31e-02 3.30e+01 -2.8 4.97e-01 - 4.71e-01 4.92e-01f 1
101r 1.0670458e+01 2.32e-02 2.80e+00 -2.8 5.26e-02 1.2 1.00e+00 5.43e-01H 1
102r 1.0673078e+01 2.14e-02 4.47e+00 -2.8 1.76e+00 - 8.96e-02 7.42e-02f 1
103r 1.0701456e+01 2.24e-02 8.30e-01 -2.8 5.58e-02 0.7 1.00e+00 1.00e+00f 1
104r 1.0748283e+01 2.38e-02 2.82e-01 -2.8 3.33e-02 0.3 1.00e+00 1.00e+00f 1
105r 1.0757209e+01 2.38e-02 3.70e+00 -2.8 1.04e+00 - 7.56e-02 5.25e-02h 2
106r 1.0748243e+01 2.37e-02 1.03e+00 -2.8 2.80e-02 1.6 1.00e+00 1.00e+00h 1
107r 1.0736842e+01 2.30e-02 2.28e+00 -2.4 3.18e-02 1.1 9.77e-01 5.55e-01f 1
108r 1.0742397e+01 2.29e-02 1.89e+00 -2.6 9.62e-02 0.6 1.59e-01 3.13e-01f 1
109r 1.0742093e+01 2.28e-02 1.89e+00 -2.6 2.98e+00 0.2 4.24e-04 5.14e-04f 2
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
110r 1.0741854e+01 2.28e-02 2.72e+01 -2.6 1.20e+00 1.5 4.78e-01 8.69e-04f 2
111r 1.0749163e+01 2.23e-02 8.35e-02 -2.6 8.12e-03 1.0 1.00e+00 1.00e+00f 1
112r 1.0766221e+01 2.48e-02 8.01e-01 -3.3 1.66e-01 - 6.57e-01 6.41e-01f 1
113r 1.0815362e+01 3.19e-02 1.56e+00 -3.0 1.65e-01 - 1.00e+00 9.13e-01f 1
114r 1.0776345e+01 2.92e-02 4.98e-01 -3.0 5.97e-02 - 1.00e+00 1.00e+00f 1
115r 1.0776477e+01 2.89e-02 5.80e-02 -3.0 2.10e-02 - 1.00e+00 1.00e+00h 1
116r 1.0734833e+01 3.12e-02 9.50e-01 -3.6 5.76e-02 - 9.97e-01 1.00e+00f 1
117r 1.0733835e+01 3.15e-02 7.67e-01 -3.9 4.62e-03 0.5 1.00e+00 4.39e-01h 1
118r 1.0734528e+01 3.29e-02 5.96e-03 -4.0 4.89e-03 0.1 1.00e+00 1.00e+00h 1
119r 1.0729359e+01 3.59e-02 2.29e-03 -4.0 6.06e-03 -0.4 1.00e+00 1.00e+00h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
120r 1.0725344e+01 4.09e-02 4.69e-03 -4.0 7.30e-03 -0.9 1.00e+00 1.00e+00h 1
121r 1.0727240e+01 4.08e-02 1.62e+00 -4.0 8.35e-02 - 5.90e-01 5.62e-02h 4
122r 1.0727087e+01 4.10e-02 1.21e-03 -4.0 4.49e-04 0.4 1.00e+00 1.00e+00h 1
123r 1.0728712e+01 4.59e-02 2.49e+00 -4.0 4.40e-02 - 1.00e+00 1.91e-01h 3
124r 1.0729449e+01 4.61e-02 2.12e-03 -4.0 1.65e-03 -0.0 1.00e+00 1.00e+00h 1
125r 1.0719907e+01 5.39e-02 3.08e-02 -4.0 1.19e-02 - 1.00e+00 1.00e+00h 1
126r 1.0720316e+01 5.38e-02 2.53e-04 -4.0 1.42e-03 - 1.00e+00 1.00e+00h 1
Number of Iterations....: 126
(scaled) (unscaled)
Objective...............: 1.0720283479610734e+01 1.0720283479610734e+01
Dual infeasibility......: 1.0049999939066085e+00 1.0049999939066085e+00
Constraint violation....: 5.3776315564266153e-02 5.3776315564266153e-02
Variable bound violation: 0.0000000000000000e+00 0.0000000000000000e+00
Complementarity.........: 1.0000000355398810e-04 1.0000000355398810e-04
Overall NLP error.......: 6.1594407954108443e-01 1.0049999939066085e+00
Number of objective function evaluations = 172
Number of objective gradient evaluations = 83
Number of equality constraint evaluations = 172
Number of inequality constraint evaluations = 0
Number of equality constraint Jacobian evaluations = 130
Number of inequality constraint Jacobian evaluations = 0
Number of Lagrangian Hessian evaluations = 127
Total seconds in IPOPT = 6.305
EXIT: Converged to a point of local infeasibility. Problem may be infeasible.
==================================================
Minimum time solution found!
==================================================Step 6: Analyze Time-Optimal Solution
x_sol_mintime = prob_mintime.trajectory.x
u_sol_mintime = prob_mintime.trajectory.u
Δt_sol_mintime = prob_mintime.trajectory.Δt
total_time_mintime = sum(Δt_sol_mintime)
println("\nMinimum time solution:")
println(" Total time: $total_time_mintime seconds")
println(" Average Δt: ", mean(Δt_sol_mintime))
println(" Min Δt: ", minimum(Δt_sol_mintime))
println(" Max Δt: ", maximum(Δt_sol_mintime))
println("\nControl statistics:")
println(" Max |u|: ", maximum(abs.(u_sol_mintime)))
println(" Mean |u|: ", mean(abs.(u_sol_mintime)))
println(" ||u||: ", norm(u_sol_mintime))
Minimum time solution:
Total time: 10.95140414958629 seconds
Average Δt: 0.27378510373965725
Min Δt: 0.015118307251129504
Max Δt: 0.48361117528839553
Control statistics:
Max |u|: 0.999999708323631
Mean |u|: 0.9350705653495359
||u||: 6.069899770237255Check if controls saturate
u_saturated = sum(abs.(u_sol_mintime) .> 0.99)
println(" Time steps with |u| > 0.99: $u_saturated / $N") Time steps with |u| > 0.99: 27 / 40Step 7: Comparison with Fixed-Time Solution
println("\n" * "="^50)
println("COMPARISON: MINIMUM TIME vs FIXED TIME")
println("="^50)
==================================================
COMPARISON: MINIMUM TIME vs FIXED TIME
==================================================Solve fixed-time problem with same total time
Δt_fixed = total_time_mintime / N
traj_fixed = NamedTrajectory(
(x = x_guess, u = u_guess, Δt = fill(Δt_fixed, N));
timestep = :Δt,
controls = :u,
initial = (x = x_init,),
final = (x = x_goal,),
bounds = (u = 1.0,),
)
obj_fixed = QuadraticRegularizer(:u, traj_fixed, 1.0)
integrator_fixed = BilinearIntegrator(G, :x, :u, traj_fixed)
prob_fixed = DirectTrajOptProblem(traj_fixed, obj_fixed, integrator_fixed)
println("\nSolving fixed-time problem with T = $total_time_mintime seconds...")
solve!(prob_fixed; max_iter = 150, verbose = false)
u_sol_fixed = prob_fixed.trajectory.u
println("\nComparison:")
println(" Minimum time:")
println(" Total time: $total_time_mintime s")
println(" ||u||: ", norm(u_sol_mintime))
println(" Max |u|: ", maximum(abs.(u_sol_mintime)))
println(" Fixed time:")
println(" Total time: ", sum(prob_fixed.trajectory.Δt), " s")
println(" ||u||: ", norm(u_sol_fixed))
println(" Max |u|: ", maximum(abs.(u_sol_fixed)))┌ Warning: Trajectory has timestep variable :Δt but no bounds on it.
│ Adding default lower bound of 0 to prevent negative timesteps.
│
│ Recommended: Add explicit bounds when creating the trajectory:
│ NamedTrajectory(...; Δt_bounds=(min, max))
│ Example:
│ NamedTrajectory(qtraj, N; Δt_bounds=(1e-3, 0.5))
│
│ Or use timesteps_all_equal=true in problem options to fix timesteps.
└ @ DirectTrajOpt.Problems ~/work/DirectTrajOpt.jl/DirectTrajOpt.jl/src/problems.jl:66
Solving fixed-time problem with T = 10.95140414958629 seconds...
This is Ipopt version 3.14.19, running with linear solver MUMPS 5.8.2.
Number of nonzeros in equality constraint Jacobian...: 616
Number of nonzeros in inequality constraint Jacobian.: 0
Number of nonzeros in Lagrangian Hessian.............: 994
Total number of variables............................: 156
variables with only lower bounds: 40
variables with lower and upper bounds: 40
variables with only upper bounds: 0
Total number of equality constraints.................: 78
Total number of inequality constraints...............: 0
inequality constraints with only lower bounds: 0
inequality constraints with lower and upper bounds: 0
inequality constraints with only upper bounds: 0
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
0 1.0843287e-02 2.59e-01 1.01e+00 0.0 0.00e+00 - 0.00e+00 0.00e+00 0
1 9.8106685e-03 5.52e-02 5.58e-01 -4.0 4.61e-01 0.0 7.08e-01 1.00e+00h 1
Number of Iterations....: 2
Number of objective function evaluations = 3
Number of objective gradient evaluations = 3
Number of equality constraint evaluations = 3
Number of inequality constraint evaluations = 0
Number of equality constraint Jacobian evaluations = 2
Number of inequality constraint Jacobian evaluations = 0
Number of Lagrangian Hessian evaluations = 2
Total seconds in IPOPT = 0.009
EXIT: Invalid number in NLP function or derivative detected.
Comparison:
Minimum time:
Total time: 10.95140414958629 s
||u||: 6.069899770237255
Max |u|: 0.999999708323631
Fixed time:
Total time: 8.3367121831745 s
||u||: 0.7828219700222208
Max |u|: 0.2860510708187316Step 8: Effect of Time Weight
println("\n" * "="^50)
println("EXPLORING TIME WEIGHT EFFECTS")
println("="^50)
==================================================
EXPLORING TIME WEIGHT EFFECTS
==================================================Try different time weights
time_weights = [0.1, 1.0, 10.0]
results = []
for w_t in time_weights
traj_test = NamedTrajectory(
(x = x_guess, u = u_guess, Δt = Δt_guess);
timestep = :Δt,
controls = :u,
initial = (x = x_init,),
final = (x = x_goal,),
bounds = (u = 1.0, Δt = (0.01, 0.5)),
)
obj_test = (
1e-2 * QuadraticRegularizer(:u, traj_test, 1.0) +
w_t * MinimumTimeObjective(traj_test, 1.0)
)
integrator_test = BilinearIntegrator(G, :x, :u, traj_test)
prob_test = DirectTrajOptProblem(traj_test, obj_test, integrator_test)
solve!(prob_test; max_iter = 200, verbose = false)
push!(
results,
(
weight = w_t,
time = sum(prob_test.trajectory.Δt),
control_norm = norm(prob_test.trajectory.u),
max_control = maximum(abs.(prob_test.trajectory.u)),
),
)
end
println("\nTime weight effects:")
println("Weight | Total Time | ||u|| | Max |u|")
println("-"^45)
for r in results
println(
@sprintf(
"%.1f | %.4f s | %.4f | %.4f",
r.weight,
r.time,
r.control_norm,
r.max_control
)
)
end
println("\nObservations:")
println(" - Lower weight → slower trajectory, gentler controls")
println(" - Higher weight → faster trajectory, more aggressive controls")This is Ipopt version 3.14.19, running with linear solver MUMPS 5.8.2.
Number of nonzeros in equality constraint Jacobian...: 616
Number of nonzeros in inequality constraint Jacobian.: 0
Number of nonzeros in Lagrangian Hessian.............: 994
Total number of variables............................: 156
variables with only lower bounds: 0
variables with lower and upper bounds: 80
variables with only upper bounds: 0
Total number of equality constraints.................: 78
Total number of inequality constraints...............: 0
inequality constraints with only lower bounds: 0
inequality constraints with lower and upper bounds: 0
inequality constraints with only upper bounds: 0
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
0 5.8503255e-01 1.45e-01 1.00e-01 0.0 0.00e+00 - 0.00e+00 0.00e+00 0
1 5.7606828e-01 1.01e-01 2.37e+00 -0.8 7.88e-01 - 9.94e-01 9.83e-01h 1
2 6.8884381e-01 7.31e-02 1.16e+00 -0.6 2.03e+00 - 6.37e-01 4.73e-01f 1
3 7.3433511e-01 6.48e-02 1.04e+00 -1.1 9.39e-01 - 4.94e-01 3.80e-01h 1
4 7.6191671e-01 4.86e-02 7.33e-01 -4.0 1.78e+00 - 2.87e-01 2.49e-01h 1
5 7.8433550e-01 4.35e-02 7.36e-01 -1.1 5.32e+00 - 1.86e-01 1.05e-01h 1
6 8.9875014e-01 2.84e-02 4.81e+00 -1.1 3.17e-01 0.0 7.19e-01 5.95e-01h 1
7 9.4805832e-01 2.04e-02 3.61e+00 -4.0 1.38e+00 -0.5 2.30e-01 3.07e-01h 1
8 9.8256190e-01 1.83e-02 5.26e+00 -0.9 1.31e+00 -0.1 8.66e-01 9.72e-02h 1
9 1.0533529e+00 3.68e-02 1.14e+01 -2.1 1.39e+00 - 3.10e-01 2.89e-01H 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
10 1.0732226e+00 3.59e-02 1.12e+01 -0.4 7.44e+00 - 2.73e-01 2.26e-02h 1
11 1.0953998e+00 3.46e-02 2.29e+01 -0.6 2.00e+00 - 5.16e-01 3.71e-02h 1
12 1.1541291e+00 3.21e-02 1.09e+02 -0.2 4.89e+00 - 1.00e+00 6.98e-02h 1
13 1.2528066e+00 2.94e-02 8.86e+02 0.9 3.06e+00 - 7.26e-01 9.35e-02h 1
14 1.2766761e+00 2.79e-02 3.93e+03 1.2 4.58e+00 - 1.00e+00 5.10e-02h 1
15 1.3062952e+00 2.63e-02 5.15e+04 2.4 4.53e+00 - 8.77e-01 5.53e-02h 1
16 1.3332363e+00 2.35e-02 2.53e+05 2.7 2.30e+00 - 9.95e-01 1.10e-01h 1
17 1.3859993e+00 2.20e-02 2.42e+05 2.8 3.31e+00 - 7.87e-02 6.32e-02h 1
18 1.4016112e+00 2.13e-02 5.05e+05 2.8 3.67e+00 - 3.09e-01 3.12e-02h 1
19 1.4386516e+00 2.01e-02 1.56e+06 2.8 5.97e+00 - 3.38e-01 5.77e-02h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
20 1.4475666e+00 1.98e-02 2.11e+06 2.8 6.24e+00 - 7.05e-02 1.74e-02h 1
21 1.4501603e+00 1.97e-02 3.42e+06 2.6 8.09e+00 - 5.19e-02 2.91e-03h 4
22 1.4702990e+00 1.95e-02 3.16e+06 2.8 1.07e+01 - 6.84e-03 1.29e-02h 2
23 1.4911243e+00 1.92e-02 9.08e+06 2.8 1.25e+01 4.9 2.07e-01 1.20e-02h 1
24 1.5158447e+00 1.90e-02 9.71e+06 2.8 1.66e+01 - 2.36e-02 1.01e-02h 1
25 1.5334517e+00 1.89e-02 2.65e+07 2.8 3.05e+01 - 2.80e-02 7.53e-03h 2
26 1.5482305e+00 1.88e-02 3.43e+07 -2.3 2.46e+01 - 3.25e-03 4.62e-03h 2
27 1.5603903e+00 1.87e-02 4.32e+07 2.8 1.12e+01 5.3 1.75e-01 6.31e-03h 2
28 1.6042207e+00 1.85e-02 1.04e+08 2.8 4.71e+01 - 1.92e-02 9.64e-03h 1
29 1.6088161e+00 1.85e-02 1.13e+08 2.8 1.63e+02 - 3.27e-02 2.72e-03h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
30 1.6297349e+00 1.81e-02 7.00e+08 2.8 2.11e+01 - 3.00e-02 2.09e-02h 1
31 1.6393919e+00 1.80e-02 7.00e+08 2.8 4.90e+01 5.7 9.26e-04 1.86e-03h 1
32 1.6458540e+00 1.80e-02 6.99e+08 2.8 6.39e+01 - 2.08e-01 9.77e-04h 1
33 1.6779936e+00 1.79e-02 7.01e+08 2.8 5.60e+01 - 3.91e-03 5.15e-03h 1
34 1.6797084e+00 1.79e-02 7.02e+08 2.8 8.73e+00 - 9.60e-03 7.83e-04h 1
35 1.7086535e+00 1.79e-02 7.72e+08 2.8 1.73e+02 - 5.38e-04 1.50e-03h 1
36 1.7185675e+00 1.79e-02 8.62e+08 1.7 1.36e+02 - 3.10e-03 6.07e-04h 1
37 1.7316233e+00 1.79e-02 8.62e+08 2.8 1.74e+02 - 2.57e-04 8.62e-04h 1
38 1.7425694e+00 1.78e-02 8.64e+08 2.8 1.05e+02 - 3.78e-03 9.60e-04h 1
39 1.7637407e+00 1.78e-02 2.68e+09 2.5 1.02e+02 - 1.00e+00 1.88e-03h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
40 1.7692444e+00 1.78e-02 3.19e+09 -0.5 3.96e+00 - 8.43e-03 3.29e-03h 1
41 1.7862751e+00 1.77e-02 3.08e+09 2.8 1.41e+02 - 2.35e-04 1.38e-03h 1
42 1.7943787e+00 1.77e-02 3.10e+09 2.8 1.94e+02 - 1.18e-03 4.07e-04h 1
43 1.8133619e+00 1.77e-02 4.28e+10 2.5 1.88e+02 - 1.00e+00 9.69e-04h 1
44 1.8137147e+00 1.77e-02 6.01e+10 0.6 1.50e+01 - 9.74e-03 1.22e-04h 1
45 1.8837390e+00 1.76e-02 5.44e+10 2.8 1.54e+02 - 1.54e-04 3.00e-03h 1
46r 1.8837390e+00 1.76e-02 9.96e+02 2.8 0.00e+00 8.0 0.00e+00 2.62e-07R 5
47r 1.8702848e+00 8.85e-03 1.35e+01 0.5 6.32e-01 - 9.86e-01 9.88e-01f 1
48 1.8656906e+00 8.55e-03 3.23e+01 -1.2 4.26e-01 - 7.14e-01 3.40e-02h 1
49 1.8502022e+00 8.34e-03 2.29e+03 -0.4 3.89e+01 - 1.00e+00 4.96e-02h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
50 1.8759773e+00 8.02e-03 3.93e+03 -4.0 6.16e+00 - 3.96e-02 3.75e-02h 1
51 1.8785101e+00 7.99e-03 3.95e+03 -4.0 1.05e+00 - 6.45e-02 3.84e-03h 1
52 1.8788306e+00 7.93e-03 3.65e+05 0.9 9.41e-02 7.5 1.00e+00 7.27e-03h 1
53 1.8808119e+00 7.85e-03 4.98e+06 1.5 1.15e-01 7.0 1.00e+00 1.03e-02h 1
54 1.8783813e+00 7.83e-03 4.97e+06 -3.9 2.81e+01 - 2.72e-03 2.65e-03h 1
55 1.8806105e+00 7.80e-03 1.57e+07 1.9 3.68e-01 6.5 1.00e+00 4.03e-03h 1
56 1.8371086e+00 7.75e-03 1.59e+07 -2.9 1.53e+02 - 9.84e-04 6.98e-03f 1
57 1.8415298e+00 7.72e-03 1.59e+07 2.8 3.70e+02 - 3.26e-04 3.27e-03h 1
58 1.8569618e+00 7.65e-03 1.86e+07 0.7 1.98e+00 6.1 3.31e-02 9.36e-03h 1
59 1.8656975e+00 7.61e-03 1.78e+07 2.8 1.06e+01 5.6 1.95e-03 4.73e-03h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
60 1.8681430e+00 7.59e-03 1.14e+08 2.8 1.02e+01 6.0 1.78e-01 2.70e-03h 1
61 1.8638356e+00 7.58e-03 1.12e+08 2.8 4.25e+01 5.5 2.65e-03 9.59e-04h 1
62 1.8636269e+00 7.58e-03 1.08e+08 2.6 3.08e+01 - 1.99e-02 9.08e-04h 1
63 1.8163636e+00 7.46e-03 2.26e+08 2.8 3.16e+01 - 2.42e-03 4.14e-02f 1
64 1.8648946e+00 6.63e-03 1.15e+08 2.8 1.13e+01 5.1 1.89e-03 1.11e-01f 1
65 1.8653901e+00 6.63e-03 1.17e+08 2.8 7.51e+01 5.5 9.09e-03 6.40e-05h 1
66 1.8685040e+00 6.59e-03 1.16e+08 2.8 3.60e+01 - 1.30e-04 7.68e-03f 1
67 1.8640002e+00 6.57e-03 1.16e+08 2.8 1.51e+01 5.9 4.86e-04 2.42e-03h 1
68 1.8639609e+00 6.57e-03 1.17e+08 2.8 1.06e+01 6.3 3.02e-03 3.47e-05h 1
69 1.8654695e+00 6.52e-03 3.24e+08 2.8 2.23e+01 5.9 3.99e-01 8.16e-03f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
70 1.8665350e+00 6.15e-03 1.61e+08 2.8 2.09e+01 - 4.71e-01 6.29e-02h 1
71 1.8665344e+00 6.15e-03 1.54e+08 2.8 1.33e+01 - 1.35e-01 1.48e-03h 1
72 1.8663960e+00 7.20e-03 1.54e+08 2.4 2.84e+02 - 7.27e-04 7.27e-04s 12
73 1.8671170e+00 7.19e-03 2.02e+08 -2.0 1.58e+00 - 6.50e-03 1.31e-03h 1
74 1.8690807e+00 6.86e-03 8.15e+09 2.8 3.13e+01 - 1.75e-04 4.69e-02h 1
75 1.8697118e+00 6.66e-03 7.76e+09 2.8 5.91e+00 - 1.72e-01 2.92e-02f 1
76 1.8700432e+00 6.54e-03 6.82e+09 2.0 5.57e+00 - 1.98e-02 6.30e-02f 1
77 1.8700290e+00 6.54e-03 6.82e+09 2.8 4.97e+00 - 4.44e-04 7.05e-04h 1
78 1.8700600e+00 6.54e-03 6.82e+09 2.8 5.18e+00 - 9.67e-02 5.65e-05h 1
79 1.8701516e+00 6.55e-03 6.81e+09 2.8 8.76e+01 - 2.51e-03 2.48e-04h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
80 1.8705439e+00 6.59e-03 6.77e+09 2.1 3.24e+02 - 1.22e-04 5.98e-03h 1
81 1.8705480e+00 6.59e-03 6.77e+09 2.8 3.25e+02 - 6.55e-03 5.96e-05h 1
82 1.8710097e+00 6.59e-03 6.77e+09 2.8 2.53e+01 - 2.40e-04 8.14e-04h 1
83 1.8978395e+00 6.43e-03 6.60e+09 2.8 1.05e+01 - 3.59e-05 2.43e-02h 1
84 1.8979976e+00 6.43e-03 6.60e+09 2.8 1.11e+01 - 1.21e-01 1.39e-04h 1
85 1.9222252e+00 6.31e-03 6.48e+09 2.8 1.20e+01 - 2.99e-02 1.93e-02h 1
86 1.9224781e+00 6.31e-03 6.47e+09 1.6 1.20e+01 - 1.00e+00 1.92e-04h 1
87 1.9249093e+00 6.29e-03 4.43e+11 2.8 1.16e+00 - 1.00e+00 3.67e-03h 1
88 1.9256506e+00 6.28e-03 3.10e+14 2.8 1.25e+00 - 1.00e+00 1.41e-03h 1
89 1.9256526e+00 1.18e-01 3.07e+14 2.0 9.30e+00 9.9 9.95e-03 9.95e-03s 16
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
90 1.9256528e+00 1.18e-01 2.45e+17 2.8 9.26e-02 - 1.00e+00 1.26e-04h 1
91 1.9262496e+00 5.40e-03 5.51e+15 2.1 8.63e-02 - 1.00e+00 1.00e+00h 1
92 1.9262570e+00 5.40e-03 7.46e+15 2.0 9.76e-01 - 2.21e-04 1.43e-05h 1
93 1.9262563e+00 5.41e-03 7.25e+15 2.8 1.32e-03 13.9 2.74e-02 2.50e-01f 3
94 1.9262116e+00 5.41e-03 6.96e+15 2.1 1.54e+00 - 2.81e-07 4.43e-04f 4
95 1.8765076e+00 5.08e-03 7.15e+15 2.8 8.00e+00 - 3.24e-05 6.06e-02f 1
96 1.8760224e+00 5.07e-03 6.58e+15 2.8 8.03e+00 - 5.64e-02 6.04e-04h 1
97r 1.8760224e+00 5.07e-03 9.17e+02 2.8 0.00e+00 - 0.00e+00 3.77e-07R 5
98r 1.8656707e+00 4.36e-03 7.84e+00 0.5 6.24e-01 - 9.92e-01 9.91e-01f 1
99 1.8669501e+00 4.11e-03 1.70e+00 -4.0 1.71e-01 - 1.55e-01 5.81e-02h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
100 1.8992522e+00 3.47e-03 2.47e+02 -1.5 3.08e+00 - 8.84e-01 1.57e-01f 1
101 1.8958887e+00 3.29e-03 1.18e+03 -1.1 1.80e+01 - 9.49e-04 5.10e-02h 1
102 1.8549135e+00 2.88e-03 9.22e+02 -1.1 8.36e+00 - 7.94e-02 1.27e-01f 1
103 1.8552081e+00 2.87e-03 9.18e+02 -4.0 1.03e+00 - 1.55e-01 3.79e-03h 1
104 1.7529584e+00 1.81e-03 5.08e+02 -1.9 1.04e+00 - 1.00e+00 4.47e-01f 1
105 1.7692645e+00 1.51e-03 4.06e+02 -4.0 9.83e-01 - 2.31e-01 1.94e-01h 1
106 1.8085084e+00 1.38e-03 3.69e+02 -2.3 4.34e-01 - 9.67e-01 8.24e-02h 1
107 1.8172522e+00 1.33e-03 3.42e+02 -4.0 2.08e+00 - 1.59e-02 3.92e-02h 1
108 1.8167358e+00 1.32e-03 3.41e+02 -1.1 3.60e+02 - 5.25e-03 5.44e-03f 1
109 1.8168084e+00 1.32e-03 3.40e+02 -4.0 4.58e+01 - 1.33e-04 4.29e-04h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
110 1.8169762e+00 1.32e-03 3.40e+02 -2.6 5.18e+00 - 8.01e-05 3.32e-04h 1
111 1.8654853e+00 1.20e-03 5.00e+02 -2.6 5.26e+00 - 1.59e-01 9.26e-02h 1
112 1.8653052e+00 1.20e-03 4.99e+02 -1.1 5.18e+02 - 8.50e-03 3.78e-03f 1
113 1.8663987e+00 1.19e-03 8.10e+03 -0.4 1.53e+01 - 1.00e+00 4.20e-03h 1
114 1.8669407e+00 1.19e-03 1.25e+06 0.9 2.94e+01 - 1.00e+00 1.62e-03h 3
115 1.8669666e+00 1.19e-03 2.25e+08 1.2 3.70e+01 - 1.00e+00 1.72e-04h 6
116 1.8670411e+00 1.19e-03 4.16e+10 2.8 3.76e+01 - 1.00e+00 1.68e-04h 6
117 1.8671280e+00 1.19e-03 4.00e+11 2.1 3.33e+01 - 5.18e-02 7.28e-04h 4
118 1.8671476e+00 1.19e-03 6.72e+12 1.4 3.64e+01 - 7.21e-02 1.42e-04h 6
119 1.8671663e+00 1.19e-03 4.61e+14 1.4 3.75e+01 - 3.02e-01 1.38e-04h 6
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
120 1.8671845e+00 1.19e-03 6.30e+15 1.4 3.74e+01 - 5.52e-02 1.34e-04h 6
121 1.8668093e+00 1.19e-03 1.26e+16 1.4 1.23e+01 - 2.40e-01 1.15e-03h 1
122 1.8669345e+00 1.19e-03 4.28e+17 2.8 2.49e+01 - 1.00e+00 4.18e-04h 2
123 1.8670276e+00 1.19e-03 4.78e+17 2.8 3.16e+01 - 5.89e-02 2.78e-04h 3
124 1.8670767e+00 1.19e-03 9.02e+16 2.1 3.42e+01 - 3.59e-01 1.45e-04h 4
125 1.8671270e+00 1.19e-03 5.56e+16 1.4 3.31e+01 - 5.98e-02 1.45e-04h 4
126 1.8672340e+00 1.19e-03 6.80e+16 0.7 2.57e+01 - 5.37e-01 2.88e-04h 3
127 1.8676993e+00 1.18e-03 7.13e+16 -0.0 1.35e+01 - 1.30e-01 1.12e-03h 1
128 1.8678323e+00 1.18e-03 7.32e+16 -0.7 3.07e+01 - 1.58e-01 2.84e-04h 2
129 1.8679760e+00 1.18e-03 4.66e+16 -0.7 2.25e+01 - 2.64e-01 3.18e-04h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
130r 1.8679760e+00 1.18e-03 1.00e+03 -0.7 0.00e+00 - 0.00e+00 4.11e-07R 5
131r 1.8654424e+00 9.37e-04 1.23e+01 -0.0 2.14e-03 - 9.90e-01 6.98e-01f 1
132 1.8644128e+00 9.27e-04 7.26e+00 -1.4 2.46e-01 - 5.47e-02 9.56e-03h 1
133 1.8149352e+00 8.59e-04 8.11e+03 -1.4 6.26e+00 - 5.20e-04 7.25e-02h 1
134 1.8131106e+00 8.51e-04 8.32e+03 -1.4 3.70e+00 - 9.59e-01 9.47e-03h 1
135 1.8161463e+00 8.47e-04 8.41e+03 -1.4 6.22e+00 - 1.36e-02 4.49e-03h 1
136 1.8176205e+00 8.45e-04 1.28e+04 -1.4 1.10e+02 - 2.47e-05 3.32e-03h 1
137 1.8176274e+00 8.41e-04 1.16e+04 -1.4 3.44e+02 - 1.31e-03 4.71e-03f 1
138 1.8176456e+00 8.40e-04 1.16e+04 -1.4 1.22e+02 - 9.19e-05 1.32e-04h 1
139 1.8176710e+00 8.40e-04 1.16e+04 -1.4 2.24e+00 - 3.65e-04 1.13e-04h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
140 1.8674780e+00 6.60e-04 6.12e+03 -1.4 2.25e+00 - 7.07e-01 2.15e-01f 1
141 1.8679865e+00 6.59e-04 6.12e+03 -1.4 3.24e+00 - 1.29e-01 1.50e-03h 1
142 1.8679939e+00 6.59e-04 2.57e+05 -1.4 8.85e+00 - 2.00e-01 3.02e-05h 1
143 1.8681778e+00 6.56e-04 6.21e+07 -1.4 1.01e+01 - 1.00e+00 4.02e-03h 1
144 1.8681877e+00 6.40e-04 1.28e+11 -1.4 1.30e+00 - 1.00e+00 4.66e-04h 1
145 1.8681879e+00 6.03e-04 1.42e+12 -1.4 3.03e-01 - 1.00e+00 3.47e-04h 9
146 1.8681867e+00 6.18e-04 6.46e+13 -1.4 3.06e+00 - 1.00e+00 1.70e-04h 8
147 1.8679797e+00 8.43e-01 1.99e+13 -1.4 8.47e-01 - 1.00e+00 1.00e+00s 22
148r 1.8679797e+00 8.43e-01 1.00e+03 -0.1 0.00e+00 - 0.00e+00 0.00e+00R 1
149r 1.8904149e+00 3.27e-01 1.00e+03 1.6 1.50e+02 - 2.21e-03 3.49e-03f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
150r 1.8839552e+00 7.75e-02 9.77e+02 0.8 2.02e+01 - 6.12e-01 1.59e-02f 1
151r 1.8799486e+00 6.04e-02 5.75e+02 0.3 1.04e-01 - 9.88e-01 1.69e-01f 1
152 1.8786661e+00 5.96e-02 4.55e+00 -1.4 1.73e-01 - 5.12e-02 1.25e-02h 1
153 1.9200075e+00 5.38e-02 3.88e+03 -1.4 4.88e+00 - 1.98e-03 9.90e-02f 1
154 1.9219411e+00 5.31e-02 3.84e+03 -1.4 1.89e-01 - 9.23e-01 1.23e-02h 2
155 1.9246968e+00 5.27e-02 1.24e+04 -1.4 1.42e-01 - 1.00e+00 6.60e-03h 3
156 1.9267975e+00 5.25e-02 6.12e+05 -1.4 2.57e-01 - 1.00e+00 5.01e-03h 3
157 1.9268967e+00 5.25e-02 4.01e+07 -1.4 2.61e-01 - 1.00e+00 2.36e-04h 7
158 1.9269212e+00 5.25e-02 2.66e+09 -1.4 2.63e-01 - 1.00e+00 5.84e-05h 9
159 1.9331695e+00 5.17e-02 1.74e+11 -1.4 2.63e-01 - 1.00e+00 1.49e-02h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
160 1.9332315e+00 5.17e-02 1.17e+15 -1.4 2.57e-01 - 1.00e+00 1.49e-04h 1
161 1.9327377e+00 4.96e-02 9.08e+15 -1.4 1.04e+00 - 1.00e+00 3.09e-02h 3
162 1.9327380e+00 4.96e-02 5.49e+14 -1.4 2.42e-03 13.5 1.00e+00 6.25e-02h 5
163r 1.9327380e+00 4.96e-02 1.00e+03 -1.3 0.00e+00 - 0.00e+00 2.51e-07R 4
164r 1.9300971e+00 1.06e-02 9.77e+02 0.3 4.16e+01 - 3.94e-01 1.18e-03f 1
165 1.9300941e+00 1.06e-02 5.03e+04 -1.4 2.32e-01 - 9.73e-01 2.92e-05h 1
166 1.9195315e+00 2.65e-04 4.44e+02 -1.4 1.03e-01 - 9.91e-01 1.00e+00f 1
167r 1.9195315e+00 2.65e-04 5.14e+02 0.3 0.00e+00 - 0.00e+00 2.77e-07R 9
168r 1.9200436e+00 1.10e-02 5.26e+00 -1.4 7.25e-01 - 9.90e-01 9.52e-01f 1
169r 1.9094174e+00 4.47e-03 3.54e+02 -2.7 7.56e-02 - 9.80e-01 5.84e-01f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
170r 1.5891587e+00 6.47e-03 1.72e+01 -2.0 1.27e-01 - 1.00e+00 1.00e+00f 1
171r 1.7796918e+00 3.65e-03 8.91e-01 -2.6 3.52e-01 - 1.00e+00 1.00e+00f 1
172r 1.8810771e+00 8.47e-04 2.81e-01 -3.5 7.44e-02 - 1.00e+00 1.00e+00f 1
173r 1.9149990e+00 8.11e-04 1.40e-02 -4.0 3.42e-02 - 1.00e+00 1.00e+00h 1
174r 1.9170784e+00 8.10e-04 7.67e-05 -4.0 2.06e-02 - 1.00e+00 1.00e+00h 1
175r 1.9170290e+00 8.10e-04 2.17e-06 -4.0 1.04e-02 - 1.00e+00 1.00e+00h 1
Number of Iterations....: 175
(scaled) (unscaled)
Objective...............: 1.9170277185779361e+00 1.9170277185779361e+00
Dual infeasibility......: 1.0499897299288843e-01 1.0499897299288843e-01
Constraint violation....: 8.0978629885565621e-04 8.0978629885565621e-04
Variable bound violation: 0.0000000000000000e+00 0.0000000000000000e+00
Complementarity.........: 1.0000295243975216e-04 1.0000295243975216e-04
Overall NLP error.......: 1.0499897299288843e-01 1.0499897299288843e-01
Number of objective function evaluations = 377
Number of objective gradient evaluations = 167
Number of equality constraint evaluations = 377
Number of inequality constraint evaluations = 0
Number of equality constraint Jacobian evaluations = 183
Number of inequality constraint Jacobian evaluations = 0
Number of Lagrangian Hessian evaluations = 176
Total seconds in IPOPT = 0.806
EXIT: Converged to a point of local infeasibility. Problem may be infeasible.
This is Ipopt version 3.14.19, running with linear solver MUMPS 5.8.2.
Number of nonzeros in equality constraint Jacobian...: 616
Number of nonzeros in inequality constraint Jacobian.: 0
Number of nonzeros in Lagrangian Hessian.............: 994
Total number of variables............................: 156
variables with only lower bounds: 0
variables with lower and upper bounds: 80
variables with only upper bounds: 0
Total number of equality constraints.................: 78
Total number of inequality constraints...............: 0
inequality constraints with only lower bounds: 0
inequality constraints with lower and upper bounds: 0
inequality constraints with only upper bounds: 0
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
0 5.8500325e+00 1.45e-01 1.00e+00 0.0 0.00e+00 - 0.00e+00 0.00e+00 0
1 3.5652608e+00 7.81e-02 1.13e+00 -0.8 5.18e-01 - 9.91e-01 8.33e-01h 1
2 2.1456970e+00 5.40e-02 2.25e+00 -4.0 1.70e+00 - 3.54e-01 3.03e-01f 1
3 3.1777614e+00 7.72e-02 9.78e+00 -0.4 2.31e+00 0.0 7.26e-01 2.08e-01f 1
4 3.6194873e+00 7.56e-02 4.92e+01 0.3 8.20e+00 -0.5 6.39e-01 2.60e-02h 1
5 4.6088843e+00 5.87e-02 1.12e+02 0.6 3.63e+00 - 9.20e-01 1.81e-01h 1
6 5.6346326e+00 6.59e-02 1.22e+02 1.2 1.97e+00 - 2.62e-01 1.51e-01h 1
7 5.8531753e+00 6.29e-02 1.92e+03 1.4 6.27e+00 - 8.16e-01 3.80e-02h 1
8 5.7022429e+00 5.65e-02 4.66e+03 2.0 3.43e+00 - 6.05e-01 1.15e-01h 1
9 6.3308633e+00 5.23e-02 2.13e+04 2.8 5.82e+00 - 4.72e-01 5.50e-02f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
10 6.2184782e+00 4.45e-02 6.07e+04 2.8 1.15e+00 - 5.86e-01 1.48e-01h 1
11 6.3029262e+00 4.14e-02 7.09e+04 1.3 3.45e+00 - 1.38e-01 7.13e-02h 1
12 6.5114211e+00 4.01e-02 5.27e+05 2.8 9.48e+00 - 8.69e-01 3.29e-02h 1
13 6.1131386e+00 3.74e-02 5.36e+05 -3.1 6.34e+00 - 1.15e-01 6.64e-02f 1
14 6.2472474e+00 3.68e-02 5.31e+05 2.8 1.27e+01 4.5 1.78e-02 1.50e-02h 1
15 6.4053171e+00 3.60e-02 5.20e+05 -3.2 8.70e+00 - 2.81e-02 2.44e-02h 1
16 6.6627415e+00 3.56e-02 5.17e+05 2.7 2.93e+01 - 9.14e-03 8.21e-03h 1
17 6.6663928e+00 3.56e-02 1.17e+06 1.8 8.79e+00 - 2.07e-01 5.53e-04h 1
18 6.3117079e+00 3.45e-02 2.02e+06 2.8 1.13e+01 - 1.24e-01 3.10e-02h 1
19 6.4160150e+00 3.43e-02 1.82e+06 2.8 2.24e+01 4.9 1.52e-03 6.58e-03h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
20 6.4876916e+00 3.41e-02 1.86e+06 2.3 2.22e+01 - 2.35e-02 5.50e-03h 1
21 6.4980477e+00 3.41e-02 2.23e+06 2.8 9.66e+00 5.3 7.66e-03 9.21e-04h 1
22 6.4795978e+00 3.40e-02 2.23e+06 -3.0 4.01e+01 - 4.87e-04 1.71e-03f 1
23 6.5938159e+00 3.37e-02 2.17e+06 2.0 1.29e+01 4.8 9.36e-03 1.01e-02h 1
24 6.6674550e+00 3.35e-02 2.20e+06 2.8 1.95e+01 5.3 6.29e-03 5.46e-03h 1
25 6.7628112e+00 3.32e-02 2.79e+06 1.1 1.97e+01 4.8 1.93e-02 7.68e-03h 1
26 6.7451057e+00 3.29e-02 3.50e+06 2.8 6.23e+00 6.1 1.17e-02 9.18e-03h 1
27 6.7820960e+00 3.29e-02 3.48e+06 2.8 4.22e+01 5.6 1.28e-03 1.53e-03h 1
28 6.7795583e+00 3.29e-02 3.48e+06 -3.0 5.48e+01 5.2 2.19e-05 1.91e-04f 1
29 6.8610399e+00 3.27e-02 3.04e+06 2.8 8.56e+00 5.6 2.18e-03 4.27e-03h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
30 6.9220882e+00 3.26e-02 4.15e+06 -3.0 6.97e+00 6.0 7.19e-03 4.22e-03h 1
31 6.9867047e+00 3.24e-02 7.16e+06 2.8 5.43e+00 6.4 9.18e-03 5.38e-03h 1
32 7.0440203e+00 3.24e-02 6.97e+06 -3.0 2.37e+01 6.0 1.33e-03 1.75e-03h 1
33 7.0820933e+00 3.23e-02 1.28e+07 2.8 7.48e+00 6.4 6.85e-03 1.85e-03h 1
34 7.1763644e+00 3.21e-02 3.02e+07 2.8 7.01e+00 6.8 1.28e-02 6.34e-03h 1
35 7.2425559e+00 3.20e-02 7.38e+07 2.8 8.14e+00 7.2 7.88e-03 3.09e-03h 1
36 7.2966817e+00 3.19e-02 2.57e+08 2.8 8.63e+00 7.7 9.00e-03 2.13e-03h 1
37 7.3912516e+00 3.19e-02 2.43e+08 -2.9 1.46e+01 7.2 9.25e-04 1.93e-03h 1
38 7.4571671e+00 3.18e-02 2.82e+08 2.8 1.13e+01 6.7 7.02e-03 1.35e-03h 1
39 7.8666031e+00 3.16e-02 2.88e+08 -2.8 1.40e+01 6.2 1.11e-02 9.07e-03h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
40 7.8859256e+00 3.15e-02 2.88e+08 2.8 3.44e+01 5.8 4.57e-04 4.75e-04h 1
41 7.9375431e+00 3.15e-02 4.65e+08 2.8 1.88e+01 6.2 1.85e-02 7.35e-04h 1
42 8.0060479e+00 3.15e-02 5.88e+08 2.8 1.72e+01 7.5 2.69e-03 8.41e-04h 1
43 8.2213513e+00 3.14e-02 3.79e+09 2.8 1.71e+01 7.9 2.13e-02 2.74e-03h 1
44 8.6016825e+00 3.13e-02 3.48e+09 -2.4 2.28e+01 7.5 1.01e-03 3.52e-03h 1
45 8.6061814e+00 3.13e-02 5.92e+09 2.8 2.25e+01 8.8 1.01e-03 3.58e-05h 1
46 8.6563027e+00 3.13e-02 1.25e+10 2.8 3.05e+01 8.3 5.76e-03 3.34e-04h 1
47 9.1073270e+00 3.12e-02 1.17e+10 2.8 3.41e+01 7.8 1.64e-03 2.91e-03h 1
48 9.1130901e+00 3.12e-02 3.36e+10 2.8 4.16e+01 8.3 7.59e-03 2.74e-05h 1
49 9.2495906e+00 3.12e-02 5.87e+10 2.8 6.03e+01 7.8 1.50e-02 6.17e-04h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
50 9.4479253e+00 3.11e-02 9.42e+10 2.8 6.20e+01 7.3 2.29e-02 9.66e-04h 1
51 9.4554113e+00 3.11e-02 9.79e+10 2.8 1.89e+02 6.8 1.50e-03 4.97e-05h 1
52 9.4645081e+00 3.11e-02 9.76e+10 -1.2 1.20e+02 8.2 8.56e-07 2.52e-05h 1
53 9.4800021e+00 3.11e-02 9.77e+10 2.8 1.22e+02 7.7 5.61e-05 4.06e-05h 1
54 9.5442176e+00 3.11e-02 1.17e+11 2.8 1.33e+02 7.2 3.98e-03 1.96e-04h 1
55 9.7901901e+00 3.11e-02 1.25e+11 2.8 2.74e+02 6.7 1.93e-03 7.35e-04h 1
56 9.8156978e+00 3.11e-02 1.24e+11 -1.0 2.53e+03 6.3 5.37e-05 2.33e-04h 1
57 9.8286649e+00 3.11e-02 1.30e+11 2.8 1.45e+03 6.7 3.76e-04 5.36e-05h 1
58 9.7904785e+00 3.11e-02 1.33e+11 2.8 6.37e+03 6.2 4.69e-05 1.49e-04f 1
59 9.7901111e+00 3.11e-02 1.33e+11 -0.9 9.56e+03 - 3.26e-05 2.65e-05h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
60r 9.7901111e+00 3.11e-02 9.99e+02 2.8 0.00e+00 5.7 0.00e+00 3.96e-07R 3
61r 9.9046636e+00 2.28e-02 6.88e+00 0.9 6.42e-01 - 9.93e-01 9.84e-01f 1
62 9.8246818e+00 2.11e-02 1.23e+01 -1.0 5.45e-01 - 5.28e-01 7.16e-02f 1
63 8.5875821e+00 1.94e-02 7.13e+01 -0.8 5.98e+00 - 7.11e-01 7.84e-02f 1
64 8.6188053e+00 1.93e-02 1.23e+02 -4.0 5.78e+00 - 7.08e-02 7.25e-03h 1
65 8.9505988e+00 4.22e-02 4.36e+02 0.5 6.28e+01 - 9.43e-02 1.51e-02f 1
66 8.9972560e+00 4.55e-02 5.48e+02 -0.4 1.09e+01 - 3.23e-02 1.29e-02h 2
67 9.0192281e+00 4.64e-02 5.44e+02 -0.4 1.00e+01 - 1.58e-02 3.54e-03f 3
68 9.0558231e+00 4.73e-02 6.21e+02 -0.4 1.27e+01 - 8.20e-02 5.74e-03h 3
69 9.3489226e+00 6.16e-02 5.53e+02 -0.4 1.98e+01 - 2.98e-02 4.28e-02h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
70 9.4038317e+00 6.12e-02 1.01e+03 -0.4 2.39e+01 - 3.30e-02 6.12e-03h 1
71 9.6221404e+00 5.99e-02 1.95e+03 -0.4 4.52e+01 - 5.09e-02 2.19e-02h 1
72 9.9830633e+00 5.93e-02 1.94e+03 -0.4 2.09e+01 - 8.72e-03 8.49e-03h 1
73 1.0202221e+01 5.91e-02 1.63e+04 -0.4 2.60e+01 - 3.44e-02 4.66e-03h 1
74 1.0499312e+01 5.88e-02 2.79e+04 -0.4 6.65e+01 - 8.19e-03 4.98e-03h 1
75 1.0479234e+01 5.87e-02 7.10e+04 -0.4 2.79e+02 - 1.13e-03 5.54e-04h 1
76 1.0477646e+01 5.87e-02 1.04e+05 -0.4 4.09e+03 - 1.39e-04 7.47e-05h 1
77 1.0469659e+01 5.87e-02 4.29e+06 -0.4 2.39e+02 - 3.73e-03 1.29e-04h 1
78 1.0443826e+01 5.87e-02 1.19e+08 -0.4 3.33e+02 - 2.32e-03 8.69e-05h 1
79 1.0410830e+01 4.78e-03 6.87e+07 -0.4 2.17e-01 - 4.18e-01 1.00e+00f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
80 1.0399046e+01 4.78e-03 6.92e+07 2.4 2.00e+03 - 9.20e-06 5.96e-06f 6
81r 1.0399046e+01 4.78e-03 1.00e+03 2.3 0.00e+00 - 0.00e+00 4.85e-07R 9
82r 1.0399112e+01 4.78e-03 1.02e+01 -4.0 2.16e-01 - 9.90e-01 9.79e-01f 1
83r 9.9800137e+00 4.80e-03 3.33e+02 -1.7 2.70e+00 - 7.88e-01 1.69e-01f 1
84r 1.0767557e+01 8.14e-03 5.59e+02 -0.4 7.58e+00 - 7.82e-01 6.34e-02f 1
85r 1.0067855e+01 5.82e-03 5.50e+02 -1.1 1.62e+00 - 1.00e+00 2.91e-01f 1
86r 1.0227152e+01 6.19e-03 4.02e+01 -1.2 3.56e-01 - 1.00e+00 9.77e-01f 1
87r 1.0220983e+01 7.14e-03 4.04e+01 -1.7 1.81e-02 2.0 1.00e+00 5.76e-01f 1
88r 1.0318688e+01 1.16e-02 3.87e+01 -2.6 7.59e-02 1.5 4.40e-01 2.58e-01f 1
89r 1.0331688e+01 1.37e-02 6.14e+00 -2.5 1.86e-02 1.9 1.00e+00 8.18e-01f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
90r 1.0366777e+01 1.42e-02 1.10e+01 -2.8 2.78e-02 1.5 1.00e+00 4.40e-01f 1
91r 1.0403283e+01 1.51e-02 5.23e+00 -3.9 9.04e-03 1.9 1.00e+00 5.83e-01f 1
92r 1.0495262e+01 1.98e-02 5.01e+00 -3.7 2.31e-02 1.4 1.00e+00 6.86e-01f 1
93r 1.0514978e+01 2.16e-02 2.84e+00 -4.0 7.50e-03 1.8 1.00e+00 5.60e-01f 1
94r 1.0540568e+01 2.44e-02 9.70e+00 -4.0 1.69e-02 1.4 1.00e+00 3.73e-01f 1
95r 1.0552834e+01 2.54e-02 3.34e+00 -4.0 6.95e-03 1.8 1.00e+00 4.32e-01f 1
96r 1.0563270e+01 2.54e-02 1.31e+01 -4.0 1.73e-02 1.3 1.00e+00 1.21e-01f 1
97r 1.0631667e+01 2.24e-02 1.79e+01 -4.0 3.36e-02 0.8 1.00e+00 3.41e-01f 1
98r 1.0735677e+01 2.17e-02 1.07e+01 -4.0 4.72e-02 0.4 3.05e-01 4.03e-01f 1
99r 1.0713579e+01 2.20e-02 6.17e+01 -2.5 1.68e-01 0.8 1.00e+00 1.83e-01f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
100r 1.0719791e+01 2.31e-02 3.30e+01 -2.8 4.97e-01 - 4.71e-01 4.92e-01f 1
101r 1.0670458e+01 2.32e-02 2.80e+00 -2.8 5.26e-02 1.2 1.00e+00 5.43e-01H 1
102r 1.0673078e+01 2.14e-02 4.47e+00 -2.8 1.76e+00 - 8.96e-02 7.42e-02f 1
103r 1.0701456e+01 2.24e-02 8.30e-01 -2.8 5.58e-02 0.7 1.00e+00 1.00e+00f 1
104r 1.0748283e+01 2.38e-02 2.82e-01 -2.8 3.33e-02 0.3 1.00e+00 1.00e+00f 1
105r 1.0757209e+01 2.38e-02 3.70e+00 -2.8 1.04e+00 - 7.56e-02 5.25e-02h 2
106r 1.0748243e+01 2.37e-02 1.03e+00 -2.8 2.80e-02 1.6 1.00e+00 1.00e+00h 1
107r 1.0736842e+01 2.30e-02 2.28e+00 -2.4 3.18e-02 1.1 9.77e-01 5.55e-01f 1
108r 1.0742397e+01 2.29e-02 1.89e+00 -2.6 9.62e-02 0.6 1.59e-01 3.13e-01f 1
109r 1.0742093e+01 2.28e-02 1.89e+00 -2.6 2.98e+00 0.2 4.24e-04 5.14e-04f 2
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
110r 1.0741854e+01 2.28e-02 2.72e+01 -2.6 1.20e+00 1.5 4.78e-01 8.69e-04f 2
111r 1.0749163e+01 2.23e-02 8.35e-02 -2.6 8.12e-03 1.0 1.00e+00 1.00e+00f 1
112r 1.0766221e+01 2.48e-02 8.01e-01 -3.3 1.66e-01 - 6.57e-01 6.41e-01f 1
113r 1.0815362e+01 3.19e-02 1.56e+00 -3.0 1.65e-01 - 1.00e+00 9.13e-01f 1
114r 1.0776345e+01 2.92e-02 4.98e-01 -3.0 5.97e-02 - 1.00e+00 1.00e+00f 1
115r 1.0776477e+01 2.89e-02 5.80e-02 -3.0 2.10e-02 - 1.00e+00 1.00e+00h 1
116r 1.0734833e+01 3.12e-02 9.50e-01 -3.6 5.76e-02 - 9.97e-01 1.00e+00f 1
117r 1.0733835e+01 3.15e-02 7.67e-01 -3.9 4.62e-03 0.5 1.00e+00 4.39e-01h 1
118r 1.0734528e+01 3.29e-02 5.96e-03 -4.0 4.89e-03 0.1 1.00e+00 1.00e+00h 1
119r 1.0729359e+01 3.59e-02 2.29e-03 -4.0 6.06e-03 -0.4 1.00e+00 1.00e+00h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
120r 1.0725344e+01 4.09e-02 4.69e-03 -4.0 7.30e-03 -0.9 1.00e+00 1.00e+00h 1
121r 1.0727240e+01 4.08e-02 1.62e+00 -4.0 8.35e-02 - 5.90e-01 5.62e-02h 4
122r 1.0727087e+01 4.10e-02 1.21e-03 -4.0 4.49e-04 0.4 1.00e+00 1.00e+00h 1
123r 1.0728712e+01 4.59e-02 2.49e+00 -4.0 4.40e-02 - 1.00e+00 1.91e-01h 3
124r 1.0729449e+01 4.61e-02 2.12e-03 -4.0 1.65e-03 -0.0 1.00e+00 1.00e+00h 1
125r 1.0719907e+01 5.39e-02 3.08e-02 -4.0 1.19e-02 - 1.00e+00 1.00e+00h 1
126r 1.0720316e+01 5.38e-02 2.53e-04 -4.0 1.42e-03 - 1.00e+00 1.00e+00h 1
Number of Iterations....: 126
(scaled) (unscaled)
Objective...............: 1.0720283479610734e+01 1.0720283479610734e+01
Dual infeasibility......: 1.0049999939066085e+00 1.0049999939066085e+00
Constraint violation....: 5.3776315564266153e-02 5.3776315564266153e-02
Variable bound violation: 0.0000000000000000e+00 0.0000000000000000e+00
Complementarity.........: 1.0000000355398810e-04 1.0000000355398810e-04
Overall NLP error.......: 6.1594407954108443e-01 1.0049999939066085e+00
Number of objective function evaluations = 172
Number of objective gradient evaluations = 83
Number of equality constraint evaluations = 172
Number of inequality constraint evaluations = 0
Number of equality constraint Jacobian evaluations = 130
Number of inequality constraint Jacobian evaluations = 0
Number of Lagrangian Hessian evaluations = 127
Total seconds in IPOPT = 0.492
EXIT: Converged to a point of local infeasibility. Problem may be infeasible.
This is Ipopt version 3.14.19, running with linear solver MUMPS 5.8.2.
Number of nonzeros in equality constraint Jacobian...: 616
Number of nonzeros in inequality constraint Jacobian.: 0
Number of nonzeros in Lagrangian Hessian.............: 994
Total number of variables............................: 156
variables with only lower bounds: 0
variables with lower and upper bounds: 80
variables with only upper bounds: 0
Total number of equality constraints.................: 78
Total number of inequality constraints...............: 0
inequality constraints with only lower bounds: 0
inequality constraints with lower and upper bounds: 0
inequality constraints with only upper bounds: 0
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
0 5.8500033e+01 1.45e-01 1.00e+01 0.0 0.00e+00 - 0.00e+00 0.00e+00 0
1 2.0577732e+01 4.36e-02 8.48e+00 -0.7 2.10e-01 2.0 1.00e+00 6.59e-01f 1
2 1.9566709e+01 4.20e-02 5.08e+01 0.0 1.19e+00 1.5 9.98e-01 6.57e-02h 1
3 1.8431161e+01 8.46e-02 1.63e+02 0.3 1.92e+00 1.0 9.22e-01 2.53e-01h 1
4 2.5396271e+01 9.84e-02 8.40e+02 1.1 1.34e+00 2.4 8.54e-01 2.70e-01f 1
5 2.8762453e+01 9.10e-02 2.51e+03 1.8 1.42e+00 2.8 8.40e-01 7.48e-02f 1
6 2.9643544e+01 7.48e-02 2.30e+03 -4.0 1.34e+00 - 2.44e-01 1.70e-01h 1
7 3.1168728e+01 7.09e-02 2.45e+03 1.2 3.50e+00 - 3.43e-01 5.49e-02h 1
8 3.1286729e+01 6.60e-02 3.00e+03 0.5 1.34e+00 3.2 1.72e-01 6.86e-02h 1
9 3.1406731e+01 6.46e-02 2.46e+04 1.4 2.03e+00 3.7 9.87e-01 2.15e-02h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
10 3.9764402e+01 5.93e-02 2.69e+04 2.8 6.74e+00 - 4.94e-01 7.04e-02f 1
11 4.2151069e+01 5.91e-02 2.51e+04 2.5 1.52e+01 - 1.52e-01 1.70e-02h 1
12 4.2212627e+01 5.87e-02 2.44e+04 -3.6 2.64e+01 - 3.07e-02 6.25e-03h 1
13 4.3734254e+01 5.35e-02 6.50e+04 2.3 2.68e+00 - 9.29e-01 8.52e-02f 2
14 4.3179031e+01 4.09e-02 6.71e+04 2.8 2.86e+00 - 2.30e-01 1.85e-01h 1
15 4.3922559e+01 4.06e-02 5.11e+04 2.5 1.97e+01 - 2.46e-02 7.00e-03h 1
16 4.7565378e+01 3.84e-02 5.60e+04 2.8 3.89e+00 - 7.58e-02 5.54e-02h 1
17 4.8959504e+01 3.76e-02 1.13e+06 2.3 7.58e+00 - 1.00e+00 1.99e-02h 1
18 4.9186438e+01 3.72e-02 1.16e+06 2.3 3.23e+00 - 1.84e-01 1.19e-02h 1
19 5.0068132e+01 3.63e-02 1.03e+06 2.8 5.71e+00 5.0 6.76e-03 2.43e-02h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
20 5.0155849e+01 3.61e-02 2.01e+06 2.8 1.44e+00 6.3 5.25e-02 5.50e-03h 1
21 5.1334413e+01 3.53e-02 2.45e+06 2.8 2.87e+00 5.8 4.89e-02 2.16e-02h 1
22 5.2541819e+01 3.44e-02 2.40e+06 2.8 1.92e+00 6.3 2.52e-02 2.43e-02h 1
23 5.3355226e+01 3.39e-02 1.38e+07 2.8 1.49e+00 6.7 1.37e-01 1.55e-02h 1
24 5.4915335e+01 3.31e-02 1.72e+07 2.8 1.94e+00 7.1 3.50e-02 2.34e-02h 1
25 5.5940662e+01 3.27e-02 6.52e+07 2.8 2.11e+00 7.5 5.76e-02 1.37e-02h 1
26 5.7536735e+01 3.21e-02 7.21e+08 2.8 2.36e+00 8.0 2.06e-01 1.74e-02h 1
27 5.9548655e+01 3.15e-02 7.90e+08 2.8 2.62e+00 8.4 2.52e-02 1.73e-02h 1
28 5.9765001e+01 3.15e-02 6.37e+09 2.8 2.88e+00 7.9 1.00e+00 1.67e-03h 1
29 6.4206202e+01 3.04e-02 6.15e+09 2.8 3.26e+00 7.4 2.65e-02 3.37e-02h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
30 6.5662699e+01 3.01e-02 5.89e+09 2.8 4.33e+00 7.0 1.05e-01 1.17e-02h 1
31 6.6028995e+01 3.00e-02 5.85e+09 2.8 5.38e+00 8.3 8.13e-04 1.88e-03h 1
32 6.6226261e+01 3.00e-02 5.92e+09 2.8 5.43e+00 8.7 1.85e-03 1.00e-03h 1
33 6.6528186e+01 2.99e-02 6.63e+09 2.8 5.41e+00 9.1 4.63e-03 1.58e-03h 1
34 6.7001408e+01 2.99e-02 6.51e+09 2.8 1.03e+01 8.7 5.09e-04 1.99e-03h 1
35 6.7116240e+01 2.98e-02 6.69e+09 2.8 5.30e+00 9.1 1.40e-03 5.55e-04h 1
36 6.7279698e+01 2.98e-02 4.74e+10 2.8 5.30e+00 9.5 6.81e-02 8.15e-04h 1
37 7.0005661e+01 2.95e-02 4.49e+10 2.8 5.45e+00 9.0 1.48e-03 1.18e-02h 1
38 7.0275137e+01 2.94e-02 4.74e+10 2.8 5.43e+00 8.6 2.38e-02 1.03e-03h 1
39 7.3847900e+01 2.90e-02 4.85e+10 2.8 7.21e+00 8.1 4.56e-02 1.42e-02h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
40 7.3713623e+01 2.90e-02 4.84e+10 -1.2 3.58e+01 7.6 8.52e-04 1.34e-03h 1
41 7.3808794e+01 2.90e-02 4.89e+10 2.8 7.53e+00 9.8 4.32e-04 2.87e-04h 1
42 7.3873326e+01 2.90e-02 5.67e+10 2.8 7.73e+00 9.4 6.50e-03 1.70e-04h 1
43 7.4691245e+01 2.89e-02 5.56e+10 2.8 8.38e+00 8.9 2.20e-04 2.06e-03h 1
44 7.5791521e+01 2.88e-02 5.49e+10 2.8 1.05e+01 8.4 5.57e-04 2.44e-03h 1
45 7.7029710e+01 2.88e-02 5.94e+10 2.8 1.08e+01 7.9 2.50e-02 3.06e-03h 1
46 7.8056367e+01 2.87e-02 6.03e+10 2.8 1.70e+01 7.5 9.09e-03 2.83e-03h 1
47 7.8569995e+01 2.86e-02 6.22e+10 2.8 3.08e+01 7.0 2.04e-02 1.91e-03h 1
48 7.8906007e+01 2.86e-02 6.27e+10 2.8 5.35e+01 6.5 9.41e-03 1.56e-03h 1
49 7.9608317e+01 2.85e-02 6.49e+10 2.8 3.41e+01 6.9 1.10e-02 1.60e-03h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
50 8.0134086e+01 2.85e-02 6.65e+10 2.8 7.30e+01 6.4 8.85e-03 1.35e-03h 1
51 8.1097912e+01 2.84e-02 7.02e+10 2.8 3.55e+01 6.9 1.14e-02 1.67e-03h 1
52 8.3327877e+01 2.84e-02 7.48e+10 2.8 3.33e+01 7.3 1.15e-02 3.19e-03h 1
53 8.4216289e+01 2.83e-02 7.93e+10 2.8 7.43e+01 6.8 7.48e-03 1.25e-03h 1
54 8.4274019e+01 2.83e-02 8.26e+10 2.8 2.47e+01 9.1 5.77e-04 7.49e-05h 1
55 8.4687138e+01 2.83e-02 8.09e+10 2.8 3.47e+01 8.6 3.25e-05 4.80e-04h 1
56 8.5350315e+01 2.83e-02 8.05e+10 2.8 4.28e+01 8.1 4.19e-04 5.95e-04h 1
57 8.7656210e+01 2.82e-02 8.62e+10 2.8 5.23e+01 7.6 5.15e-03 2.17e-03h 1
58 8.8240011e+01 2.82e-02 8.75e+10 -1.0 7.89e+01 7.1 1.11e-03 5.81e-04h 1
59r 8.8240011e+01 2.82e-02 9.99e+02 -1.0 0.00e+00 6.7 0.00e+00 4.24e-07R 3
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
60r 8.8243555e+01 1.67e-02 7.07e+02 1.0 7.33e+00 - 8.26e-01 5.84e-03f 1
61 8.8250066e+01 1.67e-02 9.98e+02 -0.7 1.23e+00 - 1.87e-01 4.71e-04f 1
62 9.3607150e+01 1.67e-02 1.84e+03 0.6 2.35e+02 - 1.00e+00 2.06e-03f 1
63 9.3950607e+01 1.66e-02 1.94e+04 0.5 2.45e+01 - 3.37e-02 1.81e-03h 1
64 9.5722137e+01 1.66e-02 2.77e+04 0.5 1.35e+02 - 2.03e-03 9.23e-04h 2
65 9.7111186e+01 1.66e-02 4.80e+04 0.5 1.72e+02 - 1.54e-03 7.89e-04h 1
66 9.7619565e+01 1.66e-02 4.71e+05 0.5 5.14e+02 - 3.09e-03 3.06e-04h 1
67 9.8056260e+01 1.66e-02 4.76e+06 0.5 8.93e+02 - 2.32e-03 2.49e-04h 1
68r 9.8056260e+01 1.66e-02 1.00e+03 0.5 0.00e+00 - 0.00e+00 4.84e-07R 7
69r 9.8204117e+01 6.28e-03 9.58e+01 0.9 1.39e-01 - 9.92e-01 2.83e-01f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
70 9.8047164e+01 6.28e-03 6.99e+02 0.6 6.55e+00 - 3.02e-01 1.96e-03f 1
71 8.3008961e+01 1.41e-02 1.19e+03 0.5 2.25e+01 - 1.07e-01 2.11e-02f 1
72 8.7778816e+01 1.38e-02 7.45e+03 0.9 3.04e+00 - 1.72e-01 2.27e-02h 1
73 9.1535883e+01 1.40e-02 1.07e+06 2.3 2.50e+01 - 9.83e-01 4.55e-03f 2
74 9.1647684e+01 1.38e-02 7.15e+06 2.8 8.50e+00 - 1.67e-01 1.13e-02h 1
75 9.3496774e+01 1.41e-02 6.92e+06 -3.3 4.07e+01 - 1.61e-03 2.12e-03h 3
76 9.4878158e+01 1.43e-02 6.87e+06 2.8 1.27e+02 - 1.30e-03 1.40e-03h 2
77 9.6264834e+01 1.46e-02 1.34e+07 2.8 1.03e+02 - 1.45e-02 1.76e-03h 1
78 9.7432320e+01 1.45e-02 1.78e+07 2.8 2.37e+01 - 6.66e-03 4.12e-03h 1
79 9.9326145e+01 1.45e-02 2.26e+07 2.8 1.44e+02 - 2.48e-03 1.55e-03h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
80 9.9368905e+01 1.45e-02 6.63e+07 2.8 5.16e+01 - 3.55e-03 2.29e-04h 1
81 9.9182540e+01 1.45e-02 1.06e+08 2.1 6.03e+01 - 1.71e-03 2.87e-04h 1
82 9.7709789e+01 1.44e-02 3.09e+08 1.4 4.78e+01 - 7.01e-03 2.65e-03h 1
83 9.8014849e+01 1.44e-02 6.41e+08 2.8 6.91e+02 - 3.50e-04 4.40e-05h 4
84 9.8144321e+01 1.44e-02 1.44e+09 2.8 8.04e+02 - 3.65e-04 1.66e-05h 5
85 1.0004323e+02 1.44e-02 1.43e+09 2.1 1.06e+03 - 1.88e-04 1.88e-04s 10
86 9.9991606e+01 1.44e-02 1.40e+09 1.4 9.10e+02 - 2.21e-06 5.49e-06f 7
87r 9.9991606e+01 1.44e-02 9.94e+02 0.7 0.00e+00 - 0.00e+00 3.20e-07R 11
88r 1.0002451e+02 5.08e-03 4.93e+02 -4.0 1.48e-01 - 9.25e-01 2.99e-01f 1
89 1.0002439e+02 5.08e-03 2.44e+03 -4.0 1.22e+00 - 7.78e-02 3.16e-05h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
90 1.0630035e+02 6.37e-03 1.50e+05 1.2 1.04e+03 - 1.00e+00 4.62e-04f 1
91 1.0619142e+02 6.37e-03 3.18e+05 1.2 3.07e+00 - 3.04e-02 5.45e-04h 1
92 1.0600602e+02 6.37e-03 3.16e+05 1.2 3.73e+02 - 2.16e-05 3.99e-05h 6
93 1.0584822e+02 6.37e-03 4.43e+05 1.2 4.99e+02 - 1.58e-03 2.90e-05f 6
94 1.0528442e+02 6.37e-03 4.32e+05 1.2 3.07e+02 - 1.44e-05 9.11e-05f 5
95r 1.0528442e+02 6.37e-03 9.91e+02 1.2 0.00e+00 - 0.00e+00 2.68e-07R 13
96r 1.0410401e+02 5.84e-03 5.40e+01 -0.4 1.45e-01 - 9.90e-01 8.15e-01f 1
97r 1.0595860e+02 5.13e-03 1.41e+02 -0.9 1.60e-01 - 9.99e-01 7.48e-01f 1
98 1.0358495e+02 5.02e-03 9.97e+00 -4.0 1.22e+00 - 9.09e-02 2.14e-02f 1
99 1.0124510e+02 5.02e-03 4.19e+03 0.0 3.05e+01 - 6.91e-01 1.44e-03f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
100 1.0292949e+02 4.99e-03 1.00e+04 -4.0 1.02e+01 - 2.97e-02 6.17e-03h 2
101 1.0463594e+02 4.97e-03 1.83e+06 1.6 3.76e+01 - 1.00e+00 2.94e-03h 1
102 1.0280436e+02 4.94e-03 2.33e+06 2.8 1.58e+01 - 7.22e-03 5.40e-03h 1
103 1.0449445e+02 4.94e-03 8.64e+06 2.8 1.49e+02 - 2.52e-03 7.81e-04h 1
104 1.0375914e+02 4.94e-03 3.96e+06 2.8 1.86e+02 - 7.15e-06 3.70e-04h 1
105 1.0379554e+02 4.94e-03 4.75e+08 2.8 3.83e+02 - 1.48e-03 4.03e-05h 1
106 1.0392209e+02 4.94e-03 4.74e+08 1.7 1.34e+03 - 2.76e-05 2.76e-05s 7
107 1.0333259e+02 4.94e-03 2.02e+08 1.0 4.71e+03 - 8.87e-06 1.23e-05h 1
108 1.0332949e+02 5.12e-03 5.30e+06 -0.1 4.09e-03 8.0 1.00e+00 2.58e-01f 1
109 1.0351911e+02 5.12e-03 2.66e+10 0.2 4.29e+03 - 8.99e-05 4.62e-06h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
110 1.0360544e+02 5.12e-03 2.66e+10 0.2 5.93e+01 - 1.57e-04 1.57e-04s 10
111r 1.0360544e+02 5.12e-03 1.00e+03 0.2 0.00e+00 - 0.00e+00 0.00e+00R 1
112r 1.0357777e+02 5.42e-03 2.75e+02 -1.5 5.77e-02 - 9.90e-01 7.14e-01f 1
113r 1.0186269e+02 7.73e-03 6.27e+00 -1.0 2.41e-01 - 9.95e-01 1.00e+00f 1
114r 1.0281767e+02 6.46e-03 3.12e+00 -2.6 1.17e-01 - 6.17e-01 4.74e-01f 1
115r 1.0452342e+02 7.83e-03 4.98e+01 -1.7 4.92e-01 - 9.94e-01 3.47e-01f 1
116r 1.0557293e+02 2.40e-02 5.86e+00 -2.8 6.00e-02 - 8.78e-01 9.38e-01f 1
117r 1.0563835e+02 2.70e-02 7.94e-01 -3.1 7.20e-02 - 1.00e+00 1.00e+00f 1
118r 1.0593868e+02 2.21e-02 2.03e-01 -3.2 2.14e-02 0.0 9.95e-01 9.29e-01h 1
119r 1.0620854e+02 2.69e-02 4.00e-02 -3.8 1.25e-02 -0.5 1.00e+00 1.00e+00f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
120r 1.0625217e+02 2.89e-02 4.43e-03 -4.0 4.38e-03 -0.1 1.00e+00 1.00e+00h 1
121r 1.0642288e+02 3.23e-02 4.93e-03 -4.0 8.35e-03 -0.5 1.00e+00 1.00e+00h 1
122r 1.0667202e+02 3.85e-02 1.74e-02 -4.0 1.43e-02 -1.0 1.00e+00 1.00e+00h 1
123r 1.0693141e+02 4.82e-02 3.32e-02 -4.0 2.89e-02 -1.5 1.00e+00 1.00e+00h 1
124r 1.0691906e+02 5.65e-02 6.39e-02 -4.1 6.82e-02 -2.0 1.00e+00 1.00e+00H 1
125r 1.0696975e+02 5.76e-02 4.99e-01 -4.0 2.10e-01 - 1.75e-01 1.23e-01h 2
126r 1.0699827e+02 5.55e-02 1.54e-02 -4.0 8.27e-03 0.3 1.00e+00 1.00e+00h 1
127r 1.0699365e+02 5.57e-02 2.25e-03 -4.1 3.02e-03 -0.2 1.00e+00 1.00e+00h 1
128r 1.0703012e+02 5.53e-02 1.91e-03 -4.0 4.29e-03 -0.7 1.00e+00 1.00e+00h 1
129r 1.0704749e+02 5.54e-02 2.68e-02 -4.1 1.64e-02 - 1.00e+00 1.00e+00h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
130r 1.0722813e+02 6.72e-02 1.01e-02 -4.1 3.56e-02 - 1.00e+00 1.00e+00h 1
131r 1.0725369e+02 4.88e-02 1.39e-01 -4.0 3.05e-02 - 1.00e+00 1.00e+00h 1
132r 1.0708171e+02 5.02e-02 2.31e-01 -4.1 4.17e-02 - 1.00e+00 1.00e+00h 1
133r 1.0729123e+02 5.15e-02 2.30e-01 -4.0 4.26e-02 - 1.00e+00 1.00e+00h 1
134r 1.0709203e+02 5.17e-02 2.30e-01 -4.1 4.20e-02 - 1.00e+00 1.00e+00h 1
135r 1.0715185e+02 5.37e-02 1.54e-02 -4.1 1.19e-02 - 1.00e+00 1.00e+00h 1
136r 1.0728108e+02 4.99e-02 1.26e-01 -4.0 2.95e-02 - 1.00e+00 1.00e+00h 1
137r 1.0708820e+02 5.11e-02 2.27e-01 -4.1 4.14e-02 - 1.00e+00 1.00e+00h 1
138r 1.0728658e+02 5.09e-02 2.24e-01 -4.0 4.14e-02 - 1.00e+00 1.00e+00h 1
139r 1.0709098e+02 5.15e-02 2.26e-01 -4.1 4.15e-02 - 1.00e+00 1.00e+00h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
140r 1.0728555e+02 5.07e-02 2.27e-01 -4.0 4.15e-02 - 1.00e+00 1.00e+00h 1
141r 1.0709055e+02 5.14e-02 2.26e-01 -4.1 4.15e-02 - 1.00e+00 1.00e+00h 1
142r 1.0715197e+02 5.37e-02 1.52e-02 -4.1 1.20e-02 - 1.00e+00 1.00e+00h 1
143r 1.0714944e+02 5.34e-02 6.58e-06 -4.1 4.21e-04 - 1.00e+00 1.00e+00h 1
144r 1.0728209e+02 5.00e-02 1.23e-01 -4.0 2.94e-02 - 1.00e+00 1.00e+00f 1
145r 1.0708851e+02 5.12e-02 2.26e-01 -4.1 4.14e-02 - 1.00e+00 1.00e+00h 1
146r 1.0715223e+02 5.37e-02 1.47e-02 -4.1 1.19e-02 - 1.00e+00 1.00e+00h 1
147r 1.0714954e+02 5.34e-02 5.22e-06 -4.1 4.49e-04 - 1.00e+00 1.00e+00h 1
148r 1.0662846e+02 6.67e-02 4.27e+00 -6.1 1.17e-01 - 6.75e-01 9.83e-01f 1
149r 1.0750475e+02 5.96e-02 1.20e+00 -4.0 7.91e-02 -1.2 1.00e+00 1.00e+00f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
150r 1.0733735e+02 5.94e-02 5.29e-03 -4.1 8.61e-03 -0.7 1.00e+00 1.00e+00h 1
151r 1.0735670e+02 6.12e-02 8.07e-01 -4.1 6.13e-01 - 3.65e-02 5.67e-03h 4
152r 1.0730345e+02 6.06e-02 1.54e-03 -4.1 2.97e-03 -0.3 1.00e+00 1.00e+00h 1
153r 1.0680318e+02 8.17e-02 2.95e+00 -6.1 9.25e-02 - 7.44e-01 9.84e-01f 1
154r 1.0714487e+02 7.55e-02 3.62e-01 -4.0 3.79e-02 -0.8 1.00e+00 1.00e+00f 1
155r 1.0703788e+02 6.91e-02 4.79e-02 -4.1 2.21e-02 -1.3 1.00e+00 1.00e+00h 1
156r 1.0710805e+02 5.04e-02 3.06e-01 -4.1 5.75e-02 - 1.00e+00 1.00e+00H 1
157r 1.0717016e+02 5.43e-02 3.70e-03 -4.1 1.24e-02 - 1.00e+00 1.00e+00h 1
158r 1.0664841e+02 6.80e-02 4.41e+00 -6.1 1.18e-01 - 6.70e-01 9.83e-01f 1
159r 1.0650714e+02 7.95e-02 5.55e-01 -6.1 1.15e-02 -1.7 8.89e-01 1.00e+00h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
160r 1.0834174e+02 1.05e-01 7.27e+01 -4.0 7.52e-01 -2.2 1.00e+00 2.73e-01f 1
161r 1.0771050e+02 8.09e-02 1.02e+00 -4.2 9.13e-02 - 1.00e+00 1.00e+00h 1
162r 1.0712385e+02 6.89e-02 5.11e-02 -4.2 1.21e-02 - 1.00e+00 1.00e+00h 1
163r 1.0708242e+02 6.21e-02 1.47e-03 -4.2 1.14e-02 - 1.00e+00 1.00e+00h 1
164r 1.0745568e+02 4.79e-02 8.13e-01 -4.0 7.57e-02 - 1.00e+00 1.00e+00f 1
165r 1.0708071e+02 5.02e-02 6.64e-01 -4.1 7.27e-02 - 1.00e+00 1.00e+00h 1
166r 1.0715879e+02 5.37e-02 1.56e-02 -4.1 1.25e-02 - 1.00e+00 1.00e+00h 1
167r 1.0715118e+02 5.32e-02 6.47e-06 -4.1 7.07e-04 - 1.00e+00 1.00e+00h 1
168r 1.0662987e+02 6.63e-02 4.29e+00 -6.1 1.17e-01 - 6.74e-01 9.83e-01f 1
169r 1.0648767e+02 7.79e-02 5.70e-01 -6.1 1.16e-02 -1.8 8.84e-01 1.00e+00h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
170r 1.0817482e+02 1.09e-01 5.29e+01 -4.0 8.18e-01 -2.3 7.27e-01 2.33e-01f 1
171r 1.0812277e+02 1.10e-01 1.00e+01 -4.4 5.48e-02 -0.0 8.22e-01 3.01e-01h 1
172r 1.0806106e+02 1.12e-01 3.81e+00 -4.4 9.18e-02 -0.5 9.45e-01 3.30e-01h 1
173r 1.0815771e+02 1.13e-01 4.65e+00 -4.4 1.32e-01 -0.1 1.00e+00 7.41e-02f 2
174r 1.0808617e+02 9.84e-02 2.56e+00 -4.4 1.63e-01 - 1.76e-01 1.13e-01h 1
175r 1.0809482e+02 9.75e-02 7.15e-02 -4.4 8.71e-03 -0.6 1.00e+00 1.00e+00f 1
176r 1.0768568e+02 8.08e-02 4.13e-02 -4.0 4.30e-02 - 3.86e-01 3.88e-01f 1
177r 1.0749310e+02 6.82e-02 5.29e-02 -4.3 2.29e-02 -1.0 1.00e+00 1.00e+00h 1
178r 1.0711869e+02 8.32e-02 5.50e-01 -4.3 6.97e-02 - 1.00e+00 1.00e+00h 1
179r 1.0708285e+02 6.87e-02 6.84e-03 -4.3 1.44e-02 - 1.00e+00 1.00e+00h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
180r 1.0707863e+02 6.74e-02 1.85e-04 -4.3 3.12e-03 - 1.00e+00 1.00e+00h 1
181r 1.0755320e+02 4.60e-02 1.52e+00 -4.0 1.03e-01 - 1.00e+00 1.00e+00f 1
182r 1.0705332e+02 4.87e-02 1.09e+00 -4.1 9.36e-02 - 1.00e+00 1.00e+00h 1
183r 1.0716724e+02 5.38e-02 1.72e-02 -4.1 1.40e-02 - 1.00e+00 1.00e+00h 1
184r 1.0715233e+02 5.30e-02 2.98e-05 -4.1 9.74e-04 - 1.00e+00 1.00e+00h 1
185r 1.0663092e+02 6.61e-02 4.31e+00 -6.1 1.18e-01 - 6.74e-01 9.83e-01f 1
186r 1.0651063e+02 7.42e-02 3.58e-01 -6.1 8.18e-03 -1.5 9.26e-01 1.00e+00h 1
187r 1.0658680e+02 8.24e-02 1.97e-01 -5.4 9.35e-03 -2.0 1.00e+00 8.71e-01h 1
188r 1.0781058e+02 1.23e-01 2.05e+01 -4.0 9.00e-01 -2.5 3.05e-01 1.47e-01f 1
189r 1.0777856e+02 1.26e-01 7.85e+00 -4.6 5.03e-02 -0.2 5.87e-01 2.87e-01h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
190r 1.0769840e+02 1.26e-01 9.67e-03 -4.6 9.32e-03 -0.7 1.00e+00 1.00e+00f 1
191r 1.0768687e+02 1.19e-01 3.82e-01 -4.0 5.73e-02 -1.2 2.74e-01 1.33e-01f 1
192r 1.0751592e+02 1.04e-01 3.28e+00 -4.5 5.81e-02 -1.7 5.54e-01 2.82e-01h 2
193r 1.0751631e+02 1.04e-01 2.49e-03 -4.5 6.82e-04 0.6 1.00e+00 1.00e+00h 1
194r 1.0751675e+02 8.85e-02 4.44e+00 -4.0 1.69e-01 - 4.77e-01 2.05e-01f 1
195r 1.0749742e+02 8.82e-02 2.39e-03 -4.4 1.96e-03 0.1 1.00e+00 1.00e+00f 1
196r 1.0701678e+02 8.14e-02 8.84e-01 -4.4 8.31e-02 - 1.00e+00 1.00e+00h 1
197r 1.0704893e+02 7.86e-02 1.64e-02 -4.4 1.00e-02 - 1.00e+00 1.00e+00h 1
198r 1.0705223e+02 7.80e-02 4.11e-06 -4.4 6.23e-04 - 1.00e+00 1.00e+00h 1
199r 1.0775046e+02 5.54e-02 3.27e+00 -4.0 1.50e-01 - 1.00e+00 1.00e+00f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
200r 1.0693367e+02 5.03e-02 2.17e+00 -4.1 1.34e-01 - 1.00e+00 1.00e+00h 1
Number of Iterations....: 200
(scaled) (unscaled)
Objective...............: 1.0693366730524681e+02 1.0693366730524681e+02
Dual infeasibility......: 1.0009013003817051e+01 1.0009013003817051e+01
Constraint violation....: 5.0253714295271298e-02 5.0253714295271298e-02
Variable bound violation: 0.0000000000000000e+00 0.0000000000000000e+00
Complementarity.........: 8.4871803978316831e-05 8.4871803978316831e-05
Overall NLP error.......: 6.1029350399702045e+00 1.0009013003817051e+01
Number of objective function evaluations = 332
Number of objective gradient evaluations = 112
Number of equality constraint evaluations = 332
Number of inequality constraint evaluations = 0
Number of equality constraint Jacobian evaluations = 206
Number of inequality constraint Jacobian evaluations = 0
Number of Lagrangian Hessian evaluations = 200
Total seconds in IPOPT = 0.773
EXIT: Maximum Number of Iterations Exceeded.
Time weight effects:
Weight | Total Time | ||u|| | Max |u|
---------------------------------------------
0.1 | 18.9651 s | 6.1477 | 0.9999
1.0 | 10.9514 s | 6.0699 | 1.0000
10.0 | 10.9465 s | 6.0823 | 1.0000
Observations:
- Lower weight → slower trajectory, gentler controls
- Higher weight → faster trajectory, more aggressive controlsStep 9: Time Step Adaptation
Δt_variation = std(Δt_sol_mintime)
println("\nTime step adaptation:")
println(" Std dev(Δt): ", Δt_variation)
println(
" Coefficient of variation: ",
@sprintf("%.3f", Δt_variation / mean(Δt_sol_mintime))
)
Time step adaptation:
Std dev(Δt): 0.21998616332003842
Coefficient of variation: 0.803Key Insights
- Free time variables: Setting
timestep=:Δtmakes time steps optimizable - Time bounds are crucial: Lower bound prevents Δt -> 0, upper bound prevents unrealistically large steps
- Time weight balances speed vs control: High weight -> fast but aggressive, low weight -> slow but gentle
- Control saturation: Time-optimal solutions often saturate control bounds (bang-bang behavior)
- Non-uniform time steps: Optimizer may choose variable Δt — larger steps where less control is needed
- Initial guess: Start with reasonable Δt to help convergence
Best Practices
Time Step Bounds
- Lower bound: ~0.01 to 0.05 (prevent numerical issues)
- Upper bound: 1/10 to 1/5 of expected total time
- Start conservative, relax if needed
Control Weights
- Usually small (1e-3 to 1e-2) for regularization
- Just enough to ensure well-conditioned problem
- Too large defeats the purpose of time minimization
Time Weights
- Start with ~1.0 and adjust
- Increase to prioritize speed more
- Decrease if controls become too aggressive
Number of Time Steps
- Fewer steps = less resolution, harder to satisfy dynamics
- More steps = more variables, slower solve
- Rule of thumb: 30-100 steps for most problems
Initialization
- Use solution from fixed-time problem as warm start
- Or solve with high control weight first, then reduce
Exercises
Exercise 1: Bang-Bang Control
Increase time weight to w_time=100.0. Do controls saturate more?
Exercise 2: Time Step Constraints
Try tighter bounds: Δt ∈ [0.05, 0.15]. How does total time change?
Exercise 3: Longer Distance
Change goal to x_goal = [2.0, 0.0]. How does optimal time scale?
Exercise 4: Multiple Objectives
Add terminal cost with soft goal:
obj = w_control * QuadraticRegularizer(:u, traj, 1.0) +
w_time * MinimumTimeObjective(traj, 1.0) +
100.0 * TerminalObjective(x -> norm(x - x_goal)^2, :x, traj)Exercise 5: Warm Starting
Solve fixed-time problem first, use as initial guess for free-time:
traj_warm = NamedTrajectory(
(x = prob_fixed.trajectory.x,
u = prob_fixed.trajectory.u,
Δt = Δt_guess);
# ... rest of setup
)Next Steps
- Smooth Controls Tutorial: Add derivative penalties while minimizing time
- How-To Guide: Tune the Solver: Improve convergence for difficult problems
- Advanced Topics: Performance: Optimize large-scale problems
This page was generated using Literate.jl.