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.8500385e+00 1.50e-01 1.00e+00 0.0 0.00e+00 - 0.00e+00 0.00e+00 0
1 3.5105042e+00 7.36e-02 1.05e+00 -0.8 5.06e-01 - 9.96e-01 8.42e-01h 1
2 2.1626385e+00 5.18e-02 1.91e+00 -4.0 1.49e+00 - 3.67e-01 2.92e-01f 1
3 3.1875538e+00 7.02e-02 6.11e+00 -0.4 2.27e+00 0.0 5.58e-01 2.14e-01f 1
4 3.4945581e+00 6.72e-02 1.97e+01 -0.0 3.28e+00 0.4 5.00e-01 4.69e-02h 1
5 4.2712195e+00 5.40e-02 2.81e+01 0.1 2.86e+00 - 9.12e-01 1.98e-01h 1
6 4.8393801e+00 4.49e-02 3.01e+01 0.3 1.90e+00 - 1.57e-01 1.86e-01h 1
7 4.9610376e+00 4.26e-02 8.92e+01 -0.8 2.80e+00 - 4.03e-01 5.90e-02h 1
8 5.0738644e+00 4.26e-02 9.21e+01 -4.0 2.87e+02 -0.1 4.45e-04 1.00e-03h 1
9 5.3355575e+00 4.14e-02 1.24e+02 0.2 2.00e+00 - 4.31e-01 1.11e-01h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
10 5.3152529e+00 3.71e-02 1.56e+03 0.5 1.31e+00 2.2 1.00e+00 9.91e-02h 1
11 6.0587108e+00 3.61e-02 2.20e+03 1.9 1.61e+01 - 1.15e-01 2.27e-02f 1
12 6.3803963e+00 3.38e-02 1.19e+04 1.7 3.48e+00 - 1.00e+00 6.04e-02h 1
13 6.2732654e+00 3.03e-02 1.16e+05 2.4 2.68e+00 - 1.00e+00 1.05e-01h 1
14 6.2421722e+00 2.96e-02 2.17e+05 -3.6 4.72e+00 - 1.04e-01 2.37e-02h 1
15 6.5373690e+00 2.92e-02 2.13e+05 2.8 2.31e+01 - 4.91e-03 1.33e-02h 1
16 6.6332693e+00 2.89e-02 1.20e+06 2.8 1.23e+01 - 7.06e-01 1.03e-02h 1
17 6.8907891e+00 2.83e-02 8.64e+05 2.8 2.02e+01 - 1.78e-03 2.29e-02h 1
18 6.8838178e+00 2.83e-02 2.21e+06 -3.2 8.32e+00 - 6.25e-02 1.42e-03h 1
19 6.6952845e+00 2.77e-02 1.43e+07 2.8 2.13e+00 5.3 1.54e-01 1.89e-02h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
20 6.7194765e+00 2.77e-02 1.43e+07 2.8 4.60e+01 - 1.21e-03 1.26e-03h 1
21 6.8591537e+00 2.75e-02 1.44e+07 2.8 3.73e+01 - 3.98e-03 7.50e-03h 1
22 6.8788349e+00 2.74e-02 1.50e+07 2.4 2.50e+01 - 6.47e-02 3.84e-03h 1
23 6.9166992e+00 2.72e-02 1.37e+07 -2.8 3.79e+01 - 2.14e-05 5.36e-03h 1
24 6.9702481e+00 2.72e-02 1.42e+07 1.6 3.06e+01 - 1.56e-01 2.64e-03h 1
25 7.1650748e+00 2.69e-02 3.08e+07 1.7 2.75e+01 - 1.68e-01 8.72e-03h 1
26 6.9574071e+00 2.67e-02 1.88e+07 -2.6 1.44e+01 4.8 1.76e-03 7.69e-03f 1
27 7.0163463e+00 2.67e-02 1.84e+07 2.8 1.08e+02 4.4 5.17e-04 4.72e-04f 1
28 7.0965350e+00 2.66e-02 3.10e+07 2.0 3.81e+01 3.9 5.13e-02 2.34e-03h 1
29 7.3671975e+00 2.64e-02 3.09e+07 1.4 3.94e+01 4.3 8.21e-03 7.40e-03h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
30 7.3672234e+00 2.64e-02 7.79e+07 -2.7 1.36e+01 6.5 7.14e-03 1.06e-05h 1
31 7.4433408e+00 2.64e-02 8.23e+07 2.8 3.16e+02 6.1 1.30e-05 2.20e-04f 1
32 7.5009722e+00 2.64e-02 8.43e+07 2.8 4.60e+01 5.6 2.82e-03 1.47e-03h 1
33 7.8175234e+00 2.62e-02 9.76e+08 2.8 5.08e+01 5.1 1.00e+00 6.79e-03h 1
34 7.8161374e+00 2.62e-02 9.81e+08 -1.5 9.26e+02 - 2.76e-04 1.90e-04h 1
35 7.8079245e+00 2.62e-02 1.11e+09 2.8 3.07e+02 4.6 1.53e-03 2.82e-04h 1
36 7.7889703e+00 2.62e-02 1.18e+09 2.8 2.96e+03 4.2 1.57e-03 4.95e-04h 1
37 7.7876092e+00 2.62e-02 1.90e+09 -1.4 2.64e+02 - 4.97e-03 5.55e-05h 1
38 7.9067107e+00 2.61e-02 1.47e+09 -1.2 8.68e+01 - 2.52e-05 1.96e-03h 1
39 7.9390603e+00 2.61e-02 1.48e+09 2.8 7.33e+01 - 2.45e-03 4.63e-04h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
40 8.1236681e+00 2.61e-02 1.21e+10 2.8 7.48e+01 - 4.68e-01 2.56e-03h 1
41 8.2141913e+00 2.60e-02 1.23e+10 2.8 8.60e+01 - 4.58e-03 1.06e-03h 1
42 8.2126882e+00 2.60e-02 4.87e+10 -0.6 3.17e+01 - 1.70e-02 7.60e-05h 1
43 8.2513893e+00 2.60e-02 1.85e+10 2.8 5.25e+01 - 5.83e-05 3.10e-03h 1
44 8.2651919e+00 2.60e-02 1.79e+10 2.8 9.96e+01 - 1.65e-03 1.43e-04h 1
45 8.4146388e+00 2.59e-02 1.89e+10 2.8 1.03e+02 - 1.92e-03 1.48e-03h 1
46 8.5682318e+00 2.59e-02 4.38e+11 2.8 1.13e+02 - 1.45e-01 1.38e-03h 1
47 8.5697882e+00 2.59e-02 4.64e+11 2.8 1.34e+02 - 3.67e-03 1.17e-05h 1
48 8.5694112e+00 2.59e-02 5.33e+11 2.8 3.94e+01 - 2.28e-04 3.35e-05h 1
49 8.6994136e+00 2.59e-02 5.15e+11 2.8 2.10e+02 - 1.62e-05 6.26e-04h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
50 8.7748861e+00 2.58e-02 5.18e+11 2.8 1.63e+02 - 8.23e-04 4.69e-04h 1
51 8.9414473e+00 2.58e-02 5.20e+11 2.8 1.73e+02 - 1.22e-03 9.69e-04h 1
52 9.0497143e+00 2.58e-02 1.80e+13 2.7 2.01e+02 - 1.00e+00 5.44e-04h 1
53r 9.0497143e+00 2.58e-02 9.97e+02 2.8 0.00e+00 - 0.00e+00 3.00e-07R 5
54r 9.0816438e+00 2.04e-02 6.19e+00 0.9 6.37e-01 - 9.94e-01 9.87e-01f 1
55 9.0796199e+00 1.92e-02 2.43e+01 -0.7 7.47e-01 - 6.40e-01 5.96e-02f 1
56 7.2532096e+00 1.80e-02 1.15e+02 -0.4 7.13e+00 - 9.01e-01 6.33e-02f 1
57 7.3076821e+00 1.77e-02 2.22e+02 -4.0 6.28e+00 - 1.34e-01 1.32e-02h 1
58 7.5573111e+00 1.81e-02 8.08e+02 0.2 3.88e+01 - 1.98e-01 1.94e-02f 2
59 8.1870721e+00 1.95e-02 1.57e+03 0.9 3.08e+01 - 7.27e-02 2.00e-02f 2
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
60 8.1934343e+00 1.94e-02 2.00e+03 0.1 4.81e+01 - 2.86e-02 8.08e-04h 5
61 8.2268938e+00 1.92e-02 3.35e+03 0.1 1.36e+01 - 5.57e-02 4.78e-03h 4
62 8.2777199e+00 1.88e-02 3.78e+03 0.1 2.42e+01 - 1.59e-02 5.74e-03h 4
63 8.3172804e+00 1.87e-02 7.89e+03 0.1 1.90e+01 - 8.54e-02 3.59e-03h 4
64 8.4914043e+00 2.07e-02 9.10e+03 0.1 2.05e+01 - 2.63e-02 1.41e-02h 3
65 8.5076958e+00 2.09e-02 8.98e+04 0.1 1.56e+01 - 8.49e-01 1.20e-03h 5
66 9.5486981e+00 2.90e-02 4.72e+04 0.1 1.63e+01 - 2.00e-02 4.35e-02h 1
67 9.5169092e+00 6.13e-02 4.99e+04 -4.0 2.95e+01 - 1.12e-03 7.18e-03h 1
68 9.5375158e+00 6.12e-02 1.88e+05 0.9 5.41e+00 3.7 3.05e-02 1.50e-03h 1
69 9.5351829e+00 6.11e-02 1.89e+05 0.9 6.79e+01 - 2.35e-03 2.08e-03h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
70 9.4355983e+00 6.02e-02 1.61e+05 0.9 6.24e+01 - 6.35e-03 1.25e-02h 1
71 9.4391197e+00 6.02e-02 2.21e+05 0.9 1.13e+02 - 4.93e-03 7.19e-04h 1
72 9.5201399e+00 6.02e-02 2.20e+05 0.9 4.60e+02 - 2.10e-05 1.90e-04h 1
73 9.5895260e+00 6.01e-02 1.40e+06 0.9 1.26e+02 - 6.71e-02 8.97e-04h 1
74 9.6008488e+00 6.01e-02 1.50e+06 0.9 3.64e+02 - 1.53e-03 1.07e-04h 5
75 9.6257849e+00 6.01e-02 2.09e+07 0.9 3.26e+02 - 2.24e-01 2.23e-04h 4
76 9.9589388e+00 5.98e-02 1.92e+07 0.9 9.68e+01 - 3.31e-03 4.23e-03h 1
77 9.9737953e+00 5.96e-02 9.09e+07 0.9 1.41e+01 - 2.67e-02 3.77e-03h 1
78 1.0051165e+01 5.96e-02 8.44e+07 0.9 2.51e+02 - 2.17e-05 3.14e-04h 1
79 1.0083203e+01 5.96e-02 9.53e+07 0.9 1.45e+02 - 6.60e-04 2.23e-04h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
80 1.0166753e+01 5.95e-02 7.64e+09 0.9 1.21e+02 - 2.46e-01 6.97e-04h 1
81 1.0452774e+01 5.95e-02 7.47e+09 0.9 1.12e+03 - 1.79e-04 2.56e-04h 1
82 9.9662461e+00 5.95e-02 5.92e+09 0.9 4.79e+02 - 5.97e-06 1.01e-03h 1
83 1.0086182e+01 5.94e-02 5.00e+09 0.9 3.09e+02 - 1.86e-05 3.88e-04h 3
84 1.0267314e+01 5.94e-02 4.77e+10 0.9 1.89e+02 - 1.33e-02 9.57e-04h 2
85 1.0246952e+01 5.93e-02 3.30e+09 0.9 2.65e+01 - 4.64e-06 1.04e-03h 1
86 1.0245993e+01 5.93e-02 2.76e+09 0.2 1.81e+03 - 5.66e-06 3.65e-06f 2
87 1.0245603e+01 5.93e-02 2.85e+09 -0.5 8.09e+02 - 1.81e-05 2.43e-05h 1
88 1.0247014e+01 5.93e-02 2.91e+09 -0.5 6.68e+02 - 5.08e-05 4.87e-05h 1
89 1.0248406e+01 5.93e-02 1.10e+10 -0.5 6.85e+02 - 2.99e-04 4.60e-05h 2
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
90 1.0250597e+01 5.93e-02 8.66e+09 -0.5 7.16e+02 - 2.95e-06 6.97e-05f 3
91 1.0252258e+01 5.93e-02 6.66e+09 -0.5 7.43e+02 - 2.98e-08 5.06e-05f 3
92r 1.0252258e+01 5.93e-02 9.99e+02 -0.5 0.00e+00 9.5 0.00e+00 3.00e-09R 2
93r 1.0312114e+01 5.48e-02 9.17e+02 1.6 1.55e+01 - 2.58e-01 1.37e-02f 1
94r 1.0321144e+01 3.93e-02 8.17e+02 0.6 2.12e+00 - 3.19e-01 4.84e-02f 1
95 1.0314063e+01 3.87e-02 6.86e+01 -1.2 5.81e-01 - 5.00e-01 1.32e-02f 1
96 1.0135491e+01 3.83e-02 2.39e+01 -1.2 7.53e+00 - 3.73e-03 1.04e-02h 1
97 1.0221258e+01 3.83e-02 1.29e+03 -1.2 2.56e+01 - 1.25e-02 5.75e-04h 1
98 1.0289999e+01 3.83e-02 1.67e+03 -1.2 3.64e+02 - 5.11e-04 1.40e-04h 1
99 1.0372930e+01 3.83e-02 1.45e+03 -1.2 4.28e+02 - 4.54e-04 5.34e-04h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
100 1.0296838e+01 3.83e-02 3.10e+04 -1.2 6.23e+02 - 2.02e-03 1.06e-04h 1
101 1.0145892e+01 3.83e-02 1.03e+05 -1.2 1.10e+03 - 3.42e-04 9.12e-05h 1
102 1.0294367e+01 3.83e-02 9.52e+04 -1.2 1.71e+03 - 7.61e-05 8.22e-05h 1
103 1.0199955e+01 3.83e-02 2.47e+06 -1.2 1.71e+03 - 4.25e-04 3.28e-05h 1
104 1.0460159e+01 3.83e-02 1.95e+06 -1.2 5.57e+03 - 3.84e-05 4.86e-05h 1
105 1.0059293e+01 3.83e-02 2.48e+06 -1.2 9.09e+02 - 5.21e-06 4.37e-04h 1
106 1.0173626e+01 3.83e-02 3.52e+06 -1.2 1.14e+03 - 7.96e-05 1.01e-04h 1
107 1.0213291e+01 3.83e-02 8.52e+07 -1.2 2.90e+03 - 1.65e-04 1.37e-05h 1
108 1.0320383e+01 3.83e-02 1.29e+11 -1.2 1.57e+02 - 8.40e-01 6.80e-04f 1
109 1.0323882e+01 2.92e-02 3.19e+09 -1.2 6.07e-03 9.0 9.75e-01 1.00e+00f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
110 1.0334509e+01 1.33e-02 1.37e+09 -1.2 1.39e-02 8.6 5.71e-01 1.00e+00f 1
111 1.0343957e+01 1.72e-02 6.31e+07 0.7 1.82e-02 8.1 9.54e-01 1.00e+00f 1
112r 1.0343957e+01 1.72e-02 9.98e+02 0.6 0.00e+00 - 0.00e+00 3.76e-07R 4
113r 1.0314477e+01 8.68e-03 4.40e+02 0.5 2.66e-01 - 9.84e-01 2.77e-01f 1
114 1.0308246e+01 8.58e-03 1.16e+02 -0.9 6.58e-01 - 5.30e-01 1.10e-02f 1
115 9.2345200e+00 8.49e-03 1.52e+04 0.3 1.16e+02 - 1.00e+00 4.13e-03f 1
116 9.7027138e+00 8.42e-03 1.89e+04 -4.0 2.26e+01 - 1.31e-02 7.28e-03h 1
117 9.7524200e+00 8.42e-03 1.12e+05 1.7 4.12e+01 - 2.31e-02 5.19e-04h 1
118 1.0118780e+01 8.41e-03 1.56e+07 2.6 5.47e+02 - 1.00e+00 5.62e-04f 1
119 1.0214288e+01 8.40e-03 2.64e+07 2.8 6.01e+01 - 5.48e-03 1.02e-03h 3
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
120 1.0286320e+01 8.39e-03 4.51e+07 0.7 5.05e+01 - 4.79e-03 1.13e-03h 1
121 1.0300946e+01 8.37e-03 2.89e+07 2.8 1.07e+02 - 2.83e-05 1.41e-03h 1
122 1.0315133e+01 8.35e-03 1.57e+08 2.8 1.10e+02 - 8.78e-03 1.85e-03h 1
123 1.0337459e+01 8.35e-03 1.25e+09 2.8 6.97e+01 - 6.02e-03 8.09e-04h 1
124 1.0313046e+01 8.35e-03 1.91e+09 2.1 1.01e+03 - 1.76e-04 5.92e-05h 3
125 1.0318140e+01 8.35e-03 2.37e+09 1.4 1.57e+03 - 7.75e-05 3.60e-05h 3
126 1.0320342e+01 8.35e-03 3.94e+09 1.4 1.17e+03 - 1.58e-04 6.87e-05h 2
127 1.0315089e+01 8.35e-03 2.78e+10 1.4 7.39e+02 - 5.51e-04 9.19e-05h 1
128 1.0313891e+01 8.34e-03 3.89e+12 1.4 4.93e+02 - 2.92e-03 2.36e-05h 1
129r 1.0313891e+01 8.34e-03 1.00e+03 1.4 0.00e+00 - 0.00e+00 3.49e-07R 6
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
130r 1.0310566e+01 7.22e-03 2.23e+01 -0.1 4.71e-02 - 9.89e-01 8.72e-01f 1
131 1.0305314e+01 7.18e-03 3.74e+02 -0.6 8.62e-01 - 6.66e-01 5.53e-03f 1
132 9.5466234e+00 7.15e-03 2.68e+03 0.3 1.31e+02 - 9.47e-02 3.68e-03f 1
133 9.8160645e+00 7.12e-03 4.50e+03 -4.0 2.27e+01 - 1.29e-02 3.89e-03h 1
134 9.9805922e+00 7.11e-03 8.83e+04 1.4 1.39e+02 - 1.05e-01 7.28e-04f 1
135 1.0461533e+01 7.10e-03 9.13e+06 2.1 1.11e+03 - 1.00e+00 1.73e-03f 1
136 1.0422436e+01 7.09e-03 9.05e+06 2.4 2.12e+02 - 1.46e-03 1.58e-03h 1
137 1.0528363e+01 7.08e-03 9.07e+06 1.7 1.00e+02 - 3.02e-04 1.16e-03h 1
138 1.0701770e+01 7.07e-03 9.30e+06 1.7 9.17e+01 - 1.12e-02 1.90e-03h 1
139 1.0866062e+01 7.05e-03 9.81e+06 1.7 8.58e+01 - 5.66e-03 1.97e-03h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
140 1.0859094e+01 7.05e-03 9.01e+06 1.7 1.23e+03 - 1.98e-04 8.23e-04h 1
141 1.0863206e+01 7.05e-03 8.98e+06 1.0 7.41e+03 - 1.18e-04 9.95e-05h 1
142 1.0880762e+01 7.05e-03 8.97e+06 1.0 2.63e+02 - 3.26e-04 2.98e-04h 1
143 1.0914086e+01 7.04e-03 8.93e+06 1.0 2.26e+02 - 8.80e-04 6.05e-04h 1
144 1.1129417e+01 7.01e-03 8.70e+06 1.0 1.49e+02 - 9.29e-03 4.07e-03h 1
145 1.1324851e+01 6.99e-03 1.92e+07 1.8 5.11e+01 - 2.91e-01 3.84e-03h 1
146 1.1329739e+01 6.98e-03 1.92e+07 -3.3 7.10e+03 - 1.33e-05 2.66e-04h 1
147 1.1329581e+01 6.98e-03 2.07e+07 -3.3 1.66e+02 - 7.46e-04 1.14e-04h 1
148 1.1789981e+01 6.92e-03 1.97e+07 2.8 4.90e+01 - 3.00e-04 9.62e-03f 1
149 1.1794885e+01 6.91e-03 1.06e+07 2.8 2.63e+01 - 2.91e-02 1.79e-04h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
150 1.1796764e+01 6.91e-03 1.89e+07 -3.4 4.21e+01 - 6.39e-03 7.25e-05h 1
151 1.1809967e+01 6.90e-03 1.10e+09 2.8 1.05e+00 7.6 2.29e-01 2.63e-03h 1
152 1.1808715e+01 6.90e-03 1.12e+09 2.8 6.14e+02 - 7.78e-04 2.81e-05h 1
153 1.1811098e+01 6.90e-03 1.12e+09 -2.1 5.71e+02 - 3.99e-05 8.63e-05h 1
154 1.1812702e+01 6.89e-03 1.12e+09 2.8 6.30e+02 - 6.46e-06 3.47e-05h 1
155 1.1823051e+01 6.89e-03 1.13e+09 2.8 6.25e+02 - 3.50e-04 1.23e-04h 1
156 1.1821016e+01 6.89e-03 2.14e+10 2.8 2.85e+01 7.1 5.01e-02 1.17e-04h 1
157 1.1824240e+01 6.89e-03 2.14e+10 -0.9 9.84e+03 - 1.17e-05 1.89e-04h 1
158r 1.1824240e+01 6.89e-03 9.81e+02 -0.9 0.00e+00 - 0.00e+00 2.61e-07R 6
159r 1.1822691e+01 5.32e-03 6.48e+02 0.5 1.15e+00 - 9.91e-01 8.05e-02f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
160 1.1813548e+01 5.30e-03 1.80e+01 -0.3 1.17e+00 - 1.11e-02 2.39e-03f 1
161 1.2203253e+01 5.18e-03 8.41e+01 -0.3 2.00e+01 - 1.95e-01 2.37e-02f 1
162 1.2390509e+01 5.09e-03 4.29e+02 -0.3 1.59e+01 - 1.59e-01 1.63e-02h 1
163 1.2331068e+01 5.04e-03 1.16e+03 -0.3 7.60e+00 - 7.24e-02 1.15e-02h 1
164 1.2664125e+01 4.93e-03 8.34e+02 -0.3 3.59e+01 - 4.31e-03 2.15e-02h 1
165 1.2665681e+01 4.92e-03 7.27e+05 -0.3 1.95e-01 6.7 1.00e+00 1.28e-03h 1
166 1.2669821e+01 4.92e-03 2.44e+06 -0.3 4.53e-01 6.2 1.63e-01 7.69e-04h 1
167 1.2694353e+01 4.91e-03 2.66e+07 -0.3 3.29e+00 5.7 1.69e-01 8.52e-04h 1
168 1.2769573e+01 4.90e-03 2.57e+07 -0.3 3.12e+01 5.2 9.64e-04 2.39e-03h 1
169 1.2778290e+01 4.90e-03 2.57e+07 -0.3 9.79e+01 4.8 8.53e-05 7.89e-05h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
170 1.2784185e+01 4.90e-03 2.92e+07 -0.3 4.92e+01 5.2 1.18e-03 1.13e-04h 1
171 1.2795722e+01 4.90e-03 2.92e+07 -0.3 1.10e+02 4.7 1.12e-04 1.38e-04h 1
172 1.2801232e+01 4.90e-03 4.14e+07 -0.3 7.43e+01 5.1 3.04e-03 1.04e-04h 1
173 1.2857806e+01 4.89e-03 5.27e+07 -0.3 1.46e+02 4.7 6.32e-03 9.99e-04h 1
174 1.2956052e+01 4.88e-03 1.75e+08 -0.3 1.18e+02 5.1 3.69e-02 2.38e-03h 1
175 1.3064328e+01 4.84e-03 1.87e+08 -0.3 8.46e+01 4.6 2.28e-03 7.51e-03f 1
176 1.3246960e+01 4.77e-03 1.84e+08 -0.3 1.26e+01 5.9 7.86e-03 1.47e-02h 1
177 1.3248987e+01 4.77e-03 1.41e+08 -0.3 6.91e+00 5.5 3.19e-01 5.10e-04h 1
178 1.3250011e+01 4.76e-03 1.39e+08 -0.3 9.26e+00 5.0 2.09e-02 1.66e-03h 1
179 1.3250189e+01 4.76e-03 1.45e+08 -0.3 8.92e+00 4.5 4.35e-02 1.72e-05h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
180 1.3473876e+01 4.76e-03 1.46e+08 -0.3 2.84e+02 4.0 5.27e-04 3.67e-04h 1
181 1.3425669e+01 4.76e-03 1.49e+08 -0.3 4.68e+02 3.5 1.55e-03 2.02e-04h 1
182 1.3400134e+01 4.76e-03 1.52e+08 -0.3 6.77e+02 3.1 1.98e-03 3.40e-04h 1
183r 1.3400134e+01 4.76e-03 1.00e+03 -0.3 0.00e+00 3.5 0.00e+00 4.52e-07R 7
184r 1.4762215e+01 1.42e-02 8.18e+02 0.5 1.41e+01 - 9.88e-01 3.26e-02f 1
185r 1.3284390e+01 1.56e-02 2.51e+02 0.1 6.77e-01 - 2.46e-01 8.49e-01f 1
186r 1.3036960e+01 3.18e-02 2.56e+02 0.1 3.17e-01 - 3.20e-01 9.24e-02f 1
187r 1.1442144e+01 2.79e-02 4.44e+01 0.1 9.96e-02 2.0 1.00e+00 9.30e-01f 1
188r 1.0957676e+01 2.31e-02 1.62e+01 -0.5 1.84e-01 - 7.08e-01 7.15e-01f 1
189r 1.1092452e+01 2.64e-02 1.64e+00 -0.7 4.37e-02 1.5 9.88e-01 1.00e+00f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
190r 1.1035702e+01 3.81e-02 2.35e+02 -0.4 1.61e+00 1.0 1.00e+00 1.18e-01f 1
191r 1.1057593e+01 3.42e-02 1.48e+00 -0.7 4.51e-02 1.5 1.00e+00 1.00e+00f 1
192r 1.1259021e+01 3.35e-02 5.34e+00 -4.0 1.57e+00 - 8.70e-02 1.33e-01f 1
193r 1.2049826e+01 2.98e-02 3.48e+00 -1.5 4.36e-01 - 6.26e-01 7.87e-01f 1
194r 1.2558031e+01 2.84e-02 3.53e-01 -2.1 3.30e-02 1.0 1.00e+00 1.00e+00f 1
195r 1.3082453e+01 2.79e-02 1.42e+00 -2.6 5.70e-02 0.5 9.95e-01 8.16e-01f 1
196r 1.3368220e+01 2.78e-02 1.86e-01 -3.6 1.93e-02 0.9 1.00e+00 1.00e+00f 1
197r 1.3464159e+01 2.78e-02 2.00e-01 -4.0 8.35e-03 1.4 1.00e+00 1.00e+00h 1
198r 1.3544989e+01 2.77e-02 1.15e+00 -4.0 2.88e-02 0.9 1.00e+00 4.43e-01f 1
199r 1.3782788e+01 2.77e-02 3.45e-01 -4.0 1.04e-01 0.4 1.00e+00 9.20e-01f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
200r 1.3815119e+01 2.76e-02 7.03e-01 -4.0 1.13e+00 -0.1 1.15e-01 1.23e-01f 1
Number of Iterations....: 200
(scaled) (unscaled)
Objective...............: 1.3815119184380830e+01 1.3815119184380830e+01
Dual infeasibility......: 1.0053803814465088e+00 1.0053803814465088e+00
Constraint violation....: 2.7645879824577880e-02 2.7645879824577880e-02
Variable bound violation: 0.0000000000000000e+00 0.0000000000000000e+00
Complementarity.........: 1.1204141105594466e-04 1.1204141105594466e-04
Overall NLP error.......: 1.0053803814465088e+00 1.0053803814465088e+00
Number of objective function evaluations = 297
Number of objective gradient evaluations = 184
Number of equality constraint evaluations = 297
Number of inequality constraint evaluations = 0
Number of equality constraint Jacobian evaluations = 207
Number of inequality constraint Jacobian evaluations = 0
Number of Lagrangian Hessian evaluations = 200
Total seconds in IPOPT = 6.445
EXIT: Maximum Number of Iterations Exceeded.
==================================================
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: 14.039602852118861 seconds
Average Δt: 0.35099007130297155
Min Δt: 0.010035810568301684
Max Δt: 0.4999801384855519
Control statistics:
Max |u|: 0.9999984500566463
Mean |u|: 0.8766050121922484
||u||: 5.815061129717222Check 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: 32 / 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 = 14.039602852118861 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 2.1069949e-02 3.39e-01 9.96e-01 0.0 0.00e+00 - 0.00e+00 0.00e+00 0
1 1.0433784e-02 1.95e-01 1.81e+00 -4.0 7.80e-01 0.0 8.03e-01 1.00e+00f 1
2 1.7429849e-01 1.83e-01 6.17e+00 -0.5 2.43e+00 0.4 3.69e-01 2.90e-01f 1
3 2.1570879e-01 1.73e-01 1.70e+01 -1.2 1.19e+00 0.9 9.93e-01 5.46e-02h 1
4 1.0360792e+00 2.06e-01 3.18e+01 -0.8 1.31e+00 1.3 1.00e+00 5.98e-01h 1
5 1.4609264e+00 1.87e-01 4.13e+02 -0.1 1.65e+00 1.7 1.00e+00 1.39e-01h 1
6 1.8661813e+00 1.71e-01 4.24e+02 0.1 1.41e+00 1.2 1.00e+00 1.22e-01h 1
7 7.7875543e+00 3.36e-01 1.39e+03 0.8 1.77e+00 1.7 1.00e+00 7.60e-01f 1
8 8.2017030e+00 1.83e-01 8.72e+02 0.8 1.94e-01 3.0 8.25e-02 4.61e-01h 1
9 8.6244449e+00 9.75e-02 5.43e+02 0.4 2.14e-01 2.5 1.00e+00 4.61e-01h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
10 8.8029787e+00 8.23e-02 5.41e+02 0.8 2.24e+00 2.0 9.77e-01 1.56e-01f 1
11 9.1785003e+00 3.71e-02 5.27e+02 0.4 1.94e-01 2.5 1.00e+00 5.50e-01h 1
12 9.5777060e+00 5.84e-03 1.53e+03 0.2 5.13e-01 2.0 1.00e+00 8.82e-01h 1
13 1.0443698e+01 2.79e-03 2.36e+03 -0.3 1.60e-01 2.4 1.00e+00 6.15e-01h 1
14 1.1081048e+01 1.85e-03 4.08e+03 -0.9 3.76e-01 1.9 1.00e+00 3.55e-01h 1
15 1.1964604e+01 1.33e-03 1.24e+04 -1.4 3.08e-01 2.4 1.00e+00 4.10e-01h 1
16 1.2157191e+01 1.20e-03 1.14e+04 -1.3 8.41e-01 1.9 1.00e+00 9.86e-02h 1
17 1.2452955e+01 1.08e-03 1.22e+04 -1.0 1.37e+00 1.4 1.00e+00 1.05e-01f 1
18 1.3793851e+01 1.18e-03 1.74e+04 -1.3 3.87e-01 1.8 1.00e+00 3.73e-01h 1
19 1.4705236e+01 9.89e-04 8.75e+04 -1.0 1.45e+00 1.3 1.00e+00 2.30e-01h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
20 1.4964685e+01 9.45e-04 8.35e+04 -1.4 4.25e-01 1.8 1.00e+00 5.82e-02h 1
21 1.7197623e+01 1.08e-03 1.47e+05 -2.1 3.84e-01 2.2 9.72e-01 4.03e-01H 1
22 1.7336148e+01 1.02e-03 1.76e+05 0.1 4.05e+00 1.7 9.40e-01 5.66e-02f 1
23 2.1128834e+01 1.60e-01 1.10e+06 0.5 4.58e+00 1.2 1.00e+00 3.38e-01f 1
24 3.0925163e+01 6.08e-02 2.43e+06 0.5 8.47e-01 1.7 1.00e+00 9.46e-01h 1
25 3.1070595e+01 6.11e-02 2.40e+06 0.5 3.63e+00 2.1 7.11e-02 1.53e-02h 3
26 3.2588763e+01 5.60e-02 1.87e+06 0.5 4.56e-01 2.5 1.00e+00 1.82e-01h 1
27 5.2727149e+01 2.36e-02 7.71e+06 0.5 1.15e+00 2.0 6.83e-01 5.16e-01H 1
28 5.6186138e+01 2.25e-02 1.11e+07 0.5 1.86e+00 2.5 2.97e-01 6.37e-02h 1
29 6.1184989e+01 2.15e-02 3.44e+07 -0.2 2.20e+00 2.9 4.23e-01 7.50e-02h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
30 6.8661036e+01 2.05e-02 9.24e+07 -0.2 3.28e+00 2.4 1.86e-01 8.54e-02h 1
31 7.7020111e+01 1.95e-02 3.32e+08 -0.2 5.38e+00 1.9 1.15e-01 7.55e-02h 1
32 9.1720607e+01 1.93e-02 2.30e+09 -0.2 5.66e+00 2.4 3.23e-01 1.00e-01h 1
33r 9.1720607e+01 1.93e-02 1.00e+03 -0.2 0.00e+00 2.8 0.00e+00 1.93e-19R 54
34r 1.0101002e+02 4.84e-03 1.72e+01 0.3 7.48e+00 - 9.90e-01 3.29e-02f 1
35 1.0097593e+02 4.84e-03 1.91e+03 -0.2 1.16e+02 - 4.22e-02 7.81e-05h 1
36 1.0280768e+02 4.84e-03 1.93e+04 -0.2 5.00e+02 - 1.30e-03 6.74e-04f 2
37 1.0470469e+02 4.75e-03 6.80e+06 -0.2 1.03e+01 - 3.18e-02 2.75e-02h 1
38 9.9788903e+01 4.63e-03 1.03e+07 -0.2 2.85e+01 - 5.68e-02 1.17e-02f 1
39 9.0669572e+01 4.59e-03 1.16e+07 -0.2 2.99e+01 - 2.18e-02 1.96e-02f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
40 7.9861784e+01 4.89e-03 7.03e+07 -0.2 3.11e+01 - 7.25e-02 5.88e-02f 1
41 8.2396543e+01 4.93e-03 6.88e+07 -0.2 1.97e+01 - 2.76e-01 2.27e-02h 1
42 8.7028848e+01 4.96e-03 6.68e+07 -0.2 1.76e+01 - 1.46e-01 2.73e-02h 3
43 9.3858565e+01 5.01e-03 6.49e+07 -0.2 1.70e+01 - 2.97e-01 3.23e-02h 4
44 1.0346973e+02 5.00e-03 6.29e+07 -0.2 1.42e+01 - 3.39e-01 3.87e-02h 4
45 1.1477060e+02 4.91e-03 6.12e+07 -0.2 1.38e+01 - 7.52e-01 3.91e-02h 4
46 1.2674458e+02 4.74e-03 5.98e+07 -0.2 1.40e+01 - 6.50e-01 3.70e-02h 4
47 1.3029321e+02 4.69e-03 5.93e+07 -0.2 5.40e+01 - 3.17e-01 1.00e-02h 6
48 1.3608018e+02 4.63e-03 9.63e+07 -0.2 6.90e+00 2.3 2.89e-01 2.18e-02h 2
49 1.3557665e+02 4.62e-03 9.63e+07 -0.2 9.89e+02 - 2.83e-03 1.41e-04f 6
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
50 1.4306561e+02 4.56e-03 1.05e+08 -0.2 1.21e+01 1.8 3.27e-01 1.98e-02h 5
51 1.5305126e+02 4.50e-03 1.09e+08 -0.2 1.61e+01 1.4 6.44e-01 2.23e-02h 4
52 1.5549988e+02 4.49e-03 1.09e+08 -0.2 2.50e+01 0.9 3.72e-01 4.88e-03h 5
53 1.5608784e+02 4.48e-03 1.09e+08 -0.2 5.82e+01 0.4 6.94e-02 1.63e-03h 6
54 1.5822059e+02 4.47e-03 1.09e+08 -0.2 3.42e+01 0.8 1.30e-03 4.04e-03h 5
55 1.5815807e+02 4.47e-03 1.09e+08 -0.2 6.07e+01 2.2 1.65e-02 9.34e-05h 1
56 1.5833132e+02 4.47e-03 1.09e+08 -0.2 1.62e+01 1.7 2.26e-01 3.64e-04h 1
57 1.6308314e+02 4.44e-03 1.10e+08 -0.2 2.43e+01 1.2 4.80e-01 8.35e-03h 4
58 1.6472535e+02 4.43e-03 1.10e+08 -0.2 4.47e+01 0.7 1.38e-03 3.12e-03h 4
59 1.6473608e+02 4.43e-03 1.10e+08 -0.2 1.50e+01 2.1 8.78e-02 2.25e-05h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
60 1.7051425e+02 4.40e-03 1.14e+08 -0.2 2.10e+01 1.6 1.00e+00 9.07e-03h 4
61 1.7373184e+02 4.39e-03 1.13e+08 -0.2 4.30e+01 1.1 8.56e-02 5.02e-03h 3
62 1.7566322e+02 4.37e-03 1.13e+08 -0.2 4.96e+01 0.6 7.25e-04 3.27e-03h 3
63r 1.7566322e+02 4.37e-03 1.00e+03 -0.2 0.00e+00 2.9 0.00e+00 2.52e-07R 6
64r 2.0479570e+02 2.07e-03 1.54e+01 -0.2 4.94e+00 - 9.90e-01 1.41e-01f 1
Warning: Evaluation error during soft restoration phase step.
65r 2.0479570e+02 2.07e-03 7.56e+02 -0.2 0.00e+00 - 0.00e+00 2.29e-28R 67
66r 2.0257515e+02 6.41e-03 7.40e+00 -1.6 4.52e-01 - 9.90e-01 2.44e-01f 1
67r 1.9027806e+02 2.55e-02 9.99e-01 -2.7 1.70e-01 - 1.00e+00 9.89e-01f 1
68r 1.8923194e+02 1.87e-02 7.42e-02 -3.9 1.93e-01 - 1.00e+00 1.00e+00f 1
69r 1.8751234e+02 1.07e-02 3.87e-01 -4.0 2.54e-01 - 7.02e-01 5.41e-01h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
70r 1.8810577e+02 7.61e-03 3.60e+00 -4.0 3.92e-01 - 1.00e+00 2.86e-01h 1
71r 1.8702946e+02 6.70e-03 1.01e+02 -3.5 1.03e+00 - 1.00e+00 1.20e-01h 1
72r 1.9631332e+02 6.29e-03 8.48e+02 -3.8 5.49e+00 - 4.09e-01 6.08e-02h 1
73r 1.9878687e+02 6.25e-03 8.49e+02 -3.8 4.42e+01 - 6.99e-04 6.43e-03h 1
74r 1.9879422e+02 5.88e-03 7.87e+02 -3.8 6.78e-03 2.0 6.29e-02 5.97e-02h 1
75r 1.9874801e+02 5.48e-03 1.46e+03 -3.3 2.62e-02 1.5 1.00e+00 6.70e-02f 1
76r 2.0012527e+02 5.23e-03 1.44e+03 -4.0 1.15e+01 - 1.59e-02 4.64e-02h 1
77r 2.0009705e+02 4.80e-03 7.80e+02 -3.9 5.32e-01 - 7.55e-01 8.21e-02h 1
78r 1.9955180e+02 2.91e-03 4.75e+02 -4.0 5.46e-01 - 7.76e-01 3.93e-01h 1
79r 1.9955009e+02 4.92e-05 4.73e+00 -4.0 3.40e-03 1.0 1.00e+00 9.87e-01h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
80 1.9952304e+02 4.99e-05 8.88e+03 0.6 6.15e+00 2.4 4.72e-01 1.86e-04f 2
81 1.0885180e+01 4.42e-01 2.01e+05 1.6 1.60e+02 - 2.16e-01 4.82e-02f 1
82 1.3381373e+01 3.31e-01 1.51e+05 0.7 5.77e+00 - 1.22e-01 2.99e-01f 1
83 2.9252878e+01 4.98e-01 8.81e+05 0.7 6.20e+00 - 3.73e-01 7.84e-01f 1
Number of Iterations....: 84
Number of objective function evaluations = 310
Number of objective gradient evaluations = 72
Number of equality constraint evaluations = 310
Number of inequality constraint evaluations = 0
Number of equality constraint Jacobian evaluations = 86
Number of inequality constraint Jacobian evaluations = 0
Number of Lagrangian Hessian evaluations = 84
Total seconds in IPOPT = 0.488
EXIT: Invalid number in NLP function or derivative detected.
Comparison:
Minimum time:
Total time: 14.039602852118861 s
||u||: 5.815061129717222
Max |u|: 0.9999984500566463
Fixed time:
Total time: 70.08467123504855 s
||u||: 3.801127306447029
Max |u|: 0.9984058079825935Step 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.8503848e-01 1.50e-01 1.00e-01 0.0 0.00e+00 - 0.00e+00 0.00e+00 0
1 5.7606007e-01 1.04e-01 2.09e+00 -0.9 7.71e-01 - 9.98e-01 1.00e+00h 1
2 6.9552833e-01 7.35e-02 9.96e-01 -0.7 2.18e+00 - 6.72e-01 4.93e-01f 1
3 7.4634624e-01 6.81e-02 1.02e+00 -0.9 1.00e+00 - 5.68e-01 3.73e-01h 1
4 8.0230975e-01 4.61e-02 1.73e+00 -0.9 1.57e+00 - 6.19e-01 3.22e-01h 1
5 8.7539827e-01 2.59e-02 3.67e+00 -1.2 9.33e-01 - 6.95e-01 4.35e-01h 1
6 9.2126296e-01 2.02e-02 3.37e+00 -1.3 9.82e-01 0.0 9.81e-01 2.30e-01h 1
7 9.4450102e-01 1.95e-02 3.28e+00 -0.3 5.14e+00 -0.5 1.17e-01 2.60e-02f 2
8 9.5846547e-01 1.83e-02 3.13e+00 -1.0 5.77e+00 - 4.56e-02 4.53e-02h 1
9 9.7683280e-01 1.96e-02 5.24e+00 -0.4 9.83e+00 - 2.81e-01 2.80e-02f 2
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
10 1.0929325e+00 1.13e-02 2.14e+01 -0.9 6.50e-01 - 9.89e-01 4.98e-01h 1
11 1.1099747e+00 1.08e-02 2.06e+01 -4.0 3.74e+00 - 3.06e-02 4.29e-02h 1
12 1.1586309e+00 1.01e-02 6.06e+01 -0.1 2.94e+00 - 9.98e-01 5.53e-02f 1
13 1.2647269e+00 1.23e-02 4.44e+02 0.2 9.83e-01 - 1.00e+00 2.98e-01h 1
14 1.2828451e+00 1.21e-02 3.56e+03 1.3 1.31e+01 - 9.07e-01 1.21e-02f 1
15 1.3431591e+00 1.19e-02 3.18e+04 1.9 4.75e+00 - 9.85e-01 7.12e-02h 1
16 1.3478268e+00 1.13e-02 1.46e+05 2.3 5.61e+00 - 1.00e+00 5.83e-02h 1
17 1.3929256e+00 1.06e-02 1.30e+05 -3.6 4.18e+00 - 4.90e-02 6.45e-02h 1
18 1.4099173e+00 1.02e-02 1.57e+05 1.3 3.79e+00 - 9.09e-02 3.22e-02h 1
19 1.4403700e+00 1.00e-02 2.96e+05 2.8 1.50e+01 - 1.48e-01 1.96e-02h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
20 1.4446180e+00 9.94e-03 9.37e+05 2.8 4.43e+00 - 1.91e-01 8.34e-03h 3
21 1.4639590e+00 9.76e-03 1.30e+06 2.8 9.04e+00 - 6.20e-02 1.94e-02h 2
22 1.4907938e+00 9.68e-03 1.32e+06 2.8 3.03e+01 - 1.70e-02 8.24e-03h 1
23 1.4931334e+00 9.65e-03 4.85e+06 2.8 7.49e+00 - 2.13e-01 3.15e-03h 3
24 1.4951291e+00 9.50e-03 1.64e+07 2.8 1.23e+01 - 2.08e-01 1.58e-02h 3
25 1.5144732e+00 9.39e-03 1.80e+07 2.8 1.65e+01 - 4.92e-03 1.18e-02h 2
26 1.5298447e+00 9.34e-03 2.17e+07 2.8 2.76e+01 5.4 9.22e-02 4.99e-03h 1
27 1.5465921e+00 9.29e-03 2.27e+07 2.8 2.70e+01 - 1.32e-02 5.64e-03h 1
28 1.5494695e+00 9.24e-03 4.13e+07 2.8 3.08e+01 - 4.62e-02 5.46e-03h 1
29 1.5574541e+00 9.08e-03 9.57e+07 2.8 1.54e+01 - 1.44e-02 1.75e-02h 2
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
30 1.5702381e+00 9.04e-03 9.57e+07 2.8 2.97e+01 5.8 1.76e-03 3.97e-03h 1
31 1.5756541e+00 9.03e-03 1.22e+08 2.8 5.47e+01 - 3.41e-01 9.63e-04h 1
32 1.6037252e+00 8.98e-03 1.19e+08 2.8 4.65e+01 - 4.73e-03 5.74e-03h 1
33 1.6042909e+00 8.97e-03 4.36e+08 -1.7 9.54e+00 - 6.26e-02 1.26e-03h 1
34 1.6228012e+00 8.90e-03 3.26e+08 2.8 2.63e+01 - 6.57e-04 7.45e-03h 1
35 1.6265246e+00 8.90e-03 3.22e+08 2.8 1.27e+02 - 1.76e-03 2.89e-04h 1
36 1.6499890e+00 8.88e-03 4.07e+09 2.8 9.44e+01 - 7.15e-01 2.40e-03h 1
37 1.6513974e+00 8.87e-03 7.36e+09 2.8 2.34e+01 - 2.02e-02 5.51e-04h 1
38 1.6521173e+00 8.79e-03 2.66e+10 2.8 1.13e+01 - 6.12e-02 9.28e-03h 1
39 1.6685077e+00 8.79e-03 2.60e+10 2.8 2.11e+02 - 6.96e-05 7.82e-04h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
40 1.6762501e+00 8.78e-03 2.61e+10 2.8 1.98e+02 - 9.03e-04 3.84e-04h 1
41 1.6966369e+00 8.77e-03 2.64e+10 2.8 1.98e+02 - 1.96e-03 9.94e-04h 1
42 1.7005386e+00 8.77e-03 4.58e+11 2.3 2.09e+02 - 1.00e+00 1.78e-04h 1
43 1.7006624e+00 8.77e-03 1.24e+12 1.3 1.06e+01 - 1.84e-02 1.89e-04h 1
44 1.7498191e+00 8.74e-03 9.43e+11 2.8 1.37e+02 - 8.94e-05 3.46e-03h 1
45 1.7504083e+00 8.74e-03 9.43e+11 2.8 2.98e+02 9.8 4.62e-04 1.59e-05h 1
46r 1.7504083e+00 8.74e-03 9.87e+02 2.8 0.00e+00 10.3 0.00e+00 4.32e-07R 3
47r 1.7353783e+00 4.88e-03 9.76e+00 0.7 6.23e-01 - 9.90e-01 9.94e-01f 1
48 1.7299259e+00 4.65e-03 2.69e+01 -1.3 4.20e-01 - 8.91e-01 4.77e-02h 1
49 1.6985302e+00 5.12e-03 1.88e+03 0.7 4.66e+02 - 4.51e-01 4.17e-03f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
50 1.6819467e+00 8.63e-03 6.18e+03 1.8 1.75e+02 - 3.42e-01 9.94e-03f 1
51 1.7131511e+00 7.89e-03 6.48e+04 -4.0 3.88e+00 - 1.48e-01 8.49e-02h 1
52 1.7426953e+00 7.67e-03 1.05e+05 1.6 1.09e+01 - 3.81e-02 3.71e-02f 1
53 1.7430714e+00 7.60e-03 4.02e+06 1.8 9.51e-02 9.8 1.00e+00 9.08e-03h 1
54 1.7433374e+00 7.57e-03 3.13e+08 2.2 9.13e-02 9.3 1.00e+00 3.83e-03h 1
55 1.7448006e+00 7.53e-03 4.66e+08 2.5 1.47e-01 8.8 1.00e+00 5.28e-03h 1
56 1.7466692e+00 7.50e-03 5.44e+08 2.8 3.62e-01 8.3 5.99e-01 4.41e-03h 1
57 1.7477886e+00 7.48e-03 1.06e+09 2.8 1.68e+00 7.9 7.47e-01 1.98e-03h 1
58 1.7514491e+00 7.42e-03 1.65e+09 2.8 4.35e+00 7.4 1.38e-01 7.78e-03h 1
59 1.7617221e+00 7.40e-03 1.88e+09 2.8 1.70e+01 6.9 2.33e-02 3.80e-03h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
60 1.7661920e+00 7.37e-03 3.21e+09 2.8 1.68e+01 7.3 4.86e-02 2.98e-03h 1
61 1.7853023e+00 7.35e-03 2.79e+09 2.8 5.73e+01 6.9 3.28e-02 3.57e-03h 1
62 1.7863484e+00 7.34e-03 3.46e+09 2.8 2.22e+01 7.3 3.00e-02 4.86e-04h 1
63 1.7879100e+00 7.32e-03 3.54e+09 2.8 4.97e+01 6.8 7.42e-03 3.27e-03h 1
64 1.7909358e+00 7.20e-03 1.16e+10 1.5 9.02e+01 6.3 1.25e-02 1.70e-02f 1
65 1.7912861e+00 7.19e-03 1.16e+10 2.8 1.13e+01 5.9 2.44e-03 1.35e-03h 1
66 1.7912725e+00 7.19e-03 1.16e+10 2.8 9.23e+00 5.4 2.42e-04 4.24e-05h 1
67 1.7916444e+00 7.19e-03 1.16e+10 -0.4 7.04e+00 4.9 5.70e-02 2.95e-04h 1
68 1.7943047e+00 7.13e-03 1.15e+10 2.8 1.17e+02 - 9.40e-03 7.56e-03f 1
69 1.8014619e+00 7.05e-03 1.14e+10 2.8 6.09e+00 - 6.63e-01 1.13e-02h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
70 1.8099079e+00 6.96e-03 1.12e+10 2.8 6.31e+00 - 1.10e-01 1.28e-02h 1
71 1.8100337e+00 6.96e-03 1.12e+10 -0.9 1.38e+01 - 1.14e-03 1.74e-04h 1
72 1.8130035e+00 6.95e-03 1.12e+10 2.8 1.56e+01 - 3.25e-05 1.83e-03h 1
73 1.8212809e+00 6.92e-03 1.11e+10 2.8 1.72e+01 - 8.16e-03 4.76e-03h 1
74 1.8599814e+00 6.77e-03 1.09e+10 2.8 1.76e+01 - 9.88e-01 2.13e-02f 1
75 1.8605937e+00 6.77e-03 1.09e+10 -1.6 8.27e+00 - 3.45e-03 4.53e-04h 1
76 1.8658355e+00 6.78e-03 1.09e+10 2.8 1.09e+01 - 2.74e-05 3.42e-03h 1
77 1.8697443e+00 6.77e-03 1.08e+10 2.8 2.99e+01 - 4.58e-03 1.29e-03h 1
78 1.9123151e+00 6.68e-03 1.07e+10 2.5 3.00e+01 - 1.00e+00 1.36e-02h 1
79 1.9129721e+00 6.68e-03 1.07e+10 2.8 1.88e+01 - 5.25e-02 4.64e-04h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
80 1.9132602e+00 6.71e-03 1.07e+10 2.8 4.68e+01 - 6.57e-02 6.85e-04h 5
81 1.9135167e+00 6.74e-03 8.08e+10 2.8 4.79e+01 - 4.76e-01 6.28e-04h 5
82 1.9147113e+00 6.84e-03 2.86e+11 2.1 2.34e+01 - 6.29e-02 2.41e-03h 4
83 1.9173278e+00 7.09e-03 1.41e+13 2.8 1.82e+01 - 1.00e+00 5.05e-03h 3
84 1.9193241e+00 7.19e-03 9.73e+13 2.8 1.71e+01 - 9.78e-02 3.78e-03h 3
85 1.9223635e+00 7.46e-03 8.36e+15 2.8 1.84e+01 - 1.00e+00 5.76e-03h 2
86 1.9255523e+00 7.73e-03 1.31e+17 2.8 1.89e+01 - 9.79e-02 5.98e-03h 1
87 1.9256769e+00 7.73e-03 4.67e+20 2.8 6.89e+01 - 1.00e+00 2.75e-04h 1
88 1.9256769e+00 7.73e-03 1.18e+19 2.8 2.45e+01 14.8 9.90e-01 1.13e-06h 13
89 1.9256818e+00 7.73e-03 2.35e+21 2.8 3.48e-01 - 1.00e+00 2.27e-04h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
90 1.9256786e+00 7.70e-03 2.96e+21 2.8 1.98e-01 - 1.00e+00 4.69e-03h 2
91 1.9256759e+00 7.69e-03 3.94e+22 2.8 4.01e+00 - 5.15e-01 6.08e-04h 1
92 1.9256754e+00 7.69e-03 8.05e+22 2.8 1.37e+00 - 1.00e+00 6.43e-04h 1
93 1.9256756e+00 7.68e-03 1.35e+21 2.8 1.29e-03 19.7 9.83e-01 1.20e-02h 6
94r 1.9256756e+00 7.68e-03 6.89e+02 2.8 0.00e+00 - 0.00e+00 4.61e-07R 2
95r 1.9116611e+00 5.25e-03 5.72e+00 0.6 6.25e-01 - 9.92e-01 9.91e-01f 1
96 1.9073014e+00 5.04e-03 3.35e+01 -1.4 3.50e-01 - 9.65e-01 3.93e-02h 1
97 1.9236028e+00 4.72e-03 5.54e+02 -1.6 2.56e-01 - 1.00e+00 5.89e-02h 1
98 1.9255781e+00 4.71e-03 1.68e+05 -1.0 4.20e+00 - 1.00e+00 2.89e-03h 1
99 1.9258255e+00 4.70e-03 2.78e+08 -1.1 1.36e+01 - 1.00e+00 5.87e-04h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
100 1.9360025e+00 4.41e-04 2.71e+06 0.3 1.03e-01 - 9.90e-01 1.00e+00f 1
101r 1.9360025e+00 4.41e-04 9.99e+02 0.7 0.00e+00 - 0.00e+00 4.57e-07R 5
102r 1.9357785e+00 2.83e-04 1.00e+01 -1.6 5.59e-03 - 9.90e-01 9.70e-01f 1
103 1.9357501e+00 2.83e-04 3.41e+03 -1.6 2.15e-01 - 9.72e-01 3.98e-04h 1
104 1.9358677e+00 2.83e-04 7.18e+06 -1.2 6.16e-01 - 1.00e+00 4.71e-04h 1
105 1.9137373e+00 3.25e-04 6.86e+04 -0.8 2.21e-01 - 9.90e-01 1.00e+00f 1
106r 1.9137373e+00 3.25e-04 1.00e+03 0.4 0.00e+00 - 0.00e+00 4.20e-07R 4
107r 1.9482928e+00 3.32e-04 9.71e+00 -0.2 3.70e-01 - 9.90e-01 9.94e-01f 1
108r 1.9273781e+00 5.66e-04 4.31e+01 -1.2 2.75e-01 - 9.99e-01 8.57e-01f 1
109r 1.9023813e+00 4.13e-04 2.75e+02 -2.6 1.03e-01 - 9.26e-01 5.23e-01f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
110r 1.7548770e+00 1.38e-03 2.17e+00 -2.2 1.85e-01 - 1.00e+00 1.00e+00f 1
111r 1.8603780e+00 1.19e-03 6.54e-01 -3.0 1.61e-01 - 1.00e+00 9.94e-01f 1
112r 1.9088966e+00 1.11e-03 5.41e-02 -4.0 3.73e-02 - 1.00e+00 1.00e+00f 1
113r 1.9140631e+00 1.11e-03 5.98e-04 -4.0 1.20e-02 - 1.00e+00 1.00e+00h 1
114r 1.9135559e+00 1.11e-03 1.64e-06 -4.0 7.63e-03 - 1.00e+00 1.00e+00h 1
Number of Iterations....: 114
(scaled) (unscaled)
Objective...............: 1.9135397592084620e+00 1.9135397592084620e+00
Dual infeasibility......: 1.0499943391834864e-01 1.0499943391834864e-01
Constraint violation....: 1.1104984960604177e-03 1.1104984960604177e-03
Variable bound violation: 0.0000000000000000e+00 0.0000000000000000e+00
Complementarity.........: 1.0000087727814279e-04 1.0000087727814279e-04
Overall NLP error.......: 1.0499943391834864e-01 1.0499943391834864e-01
Number of objective function evaluations = 194
Number of objective gradient evaluations = 108
Number of equality constraint evaluations = 194
Number of inequality constraint evaluations = 0
Number of equality constraint Jacobian evaluations = 120
Number of inequality constraint Jacobian evaluations = 0
Number of Lagrangian Hessian evaluations = 115
Total seconds in IPOPT = 0.509
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.8500385e+00 1.50e-01 1.00e+00 0.0 0.00e+00 - 0.00e+00 0.00e+00 0
1 3.5105042e+00 7.36e-02 1.05e+00 -0.8 5.06e-01 - 9.96e-01 8.42e-01h 1
2 2.1626385e+00 5.18e-02 1.91e+00 -4.0 1.49e+00 - 3.67e-01 2.92e-01f 1
3 3.1875538e+00 7.02e-02 6.11e+00 -0.4 2.27e+00 0.0 5.58e-01 2.14e-01f 1
4 3.4945581e+00 6.72e-02 1.97e+01 -0.0 3.28e+00 0.4 5.00e-01 4.69e-02h 1
5 4.2712195e+00 5.40e-02 2.81e+01 0.1 2.86e+00 - 9.12e-01 1.98e-01h 1
6 4.8393801e+00 4.49e-02 3.01e+01 0.3 1.90e+00 - 1.57e-01 1.86e-01h 1
7 4.9610376e+00 4.26e-02 8.92e+01 -0.8 2.80e+00 - 4.03e-01 5.90e-02h 1
8 5.0738644e+00 4.26e-02 9.21e+01 -4.0 2.87e+02 -0.1 4.45e-04 1.00e-03h 1
9 5.3355575e+00 4.14e-02 1.24e+02 0.2 2.00e+00 - 4.31e-01 1.11e-01h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
10 5.3152529e+00 3.71e-02 1.56e+03 0.5 1.31e+00 2.2 1.00e+00 9.91e-02h 1
11 6.0587108e+00 3.61e-02 2.20e+03 1.9 1.61e+01 - 1.15e-01 2.27e-02f 1
12 6.3803963e+00 3.38e-02 1.19e+04 1.7 3.48e+00 - 1.00e+00 6.04e-02h 1
13 6.2732654e+00 3.03e-02 1.16e+05 2.4 2.68e+00 - 1.00e+00 1.05e-01h 1
14 6.2421722e+00 2.96e-02 2.17e+05 -3.6 4.72e+00 - 1.04e-01 2.37e-02h 1
15 6.5373690e+00 2.92e-02 2.13e+05 2.8 2.31e+01 - 4.91e-03 1.33e-02h 1
16 6.6332693e+00 2.89e-02 1.20e+06 2.8 1.23e+01 - 7.06e-01 1.03e-02h 1
17 6.8907891e+00 2.83e-02 8.64e+05 2.8 2.02e+01 - 1.78e-03 2.29e-02h 1
18 6.8838178e+00 2.83e-02 2.21e+06 -3.2 8.32e+00 - 6.25e-02 1.42e-03h 1
19 6.6952845e+00 2.77e-02 1.43e+07 2.8 2.13e+00 5.3 1.54e-01 1.89e-02h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
20 6.7194765e+00 2.77e-02 1.43e+07 2.8 4.60e+01 - 1.21e-03 1.26e-03h 1
21 6.8591537e+00 2.75e-02 1.44e+07 2.8 3.73e+01 - 3.98e-03 7.50e-03h 1
22 6.8788349e+00 2.74e-02 1.50e+07 2.4 2.50e+01 - 6.47e-02 3.84e-03h 1
23 6.9166992e+00 2.72e-02 1.37e+07 -2.8 3.79e+01 - 2.14e-05 5.36e-03h 1
24 6.9702481e+00 2.72e-02 1.42e+07 1.6 3.06e+01 - 1.56e-01 2.64e-03h 1
25 7.1650748e+00 2.69e-02 3.08e+07 1.7 2.75e+01 - 1.68e-01 8.72e-03h 1
26 6.9574071e+00 2.67e-02 1.88e+07 -2.6 1.44e+01 4.8 1.76e-03 7.69e-03f 1
27 7.0163463e+00 2.67e-02 1.84e+07 2.8 1.08e+02 4.4 5.17e-04 4.72e-04f 1
28 7.0965350e+00 2.66e-02 3.10e+07 2.0 3.81e+01 3.9 5.13e-02 2.34e-03h 1
29 7.3671975e+00 2.64e-02 3.09e+07 1.4 3.94e+01 4.3 8.21e-03 7.40e-03h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
30 7.3672234e+00 2.64e-02 7.79e+07 -2.7 1.36e+01 6.5 7.14e-03 1.06e-05h 1
31 7.4433408e+00 2.64e-02 8.23e+07 2.8 3.16e+02 6.1 1.30e-05 2.20e-04f 1
32 7.5009722e+00 2.64e-02 8.43e+07 2.8 4.60e+01 5.6 2.82e-03 1.47e-03h 1
33 7.8175234e+00 2.62e-02 9.76e+08 2.8 5.08e+01 5.1 1.00e+00 6.79e-03h 1
34 7.8161374e+00 2.62e-02 9.81e+08 -1.5 9.26e+02 - 2.76e-04 1.90e-04h 1
35 7.8079245e+00 2.62e-02 1.11e+09 2.8 3.07e+02 4.6 1.53e-03 2.82e-04h 1
36 7.7889703e+00 2.62e-02 1.18e+09 2.8 2.96e+03 4.2 1.57e-03 4.95e-04h 1
37 7.7876092e+00 2.62e-02 1.90e+09 -1.4 2.64e+02 - 4.97e-03 5.55e-05h 1
38 7.9067107e+00 2.61e-02 1.47e+09 -1.2 8.68e+01 - 2.52e-05 1.96e-03h 1
39 7.9390603e+00 2.61e-02 1.48e+09 2.8 7.33e+01 - 2.45e-03 4.63e-04h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
40 8.1236681e+00 2.61e-02 1.21e+10 2.8 7.48e+01 - 4.68e-01 2.56e-03h 1
41 8.2141913e+00 2.60e-02 1.23e+10 2.8 8.60e+01 - 4.58e-03 1.06e-03h 1
42 8.2126882e+00 2.60e-02 4.87e+10 -0.6 3.17e+01 - 1.70e-02 7.60e-05h 1
43 8.2513893e+00 2.60e-02 1.85e+10 2.8 5.25e+01 - 5.83e-05 3.10e-03h 1
44 8.2651919e+00 2.60e-02 1.79e+10 2.8 9.96e+01 - 1.65e-03 1.43e-04h 1
45 8.4146388e+00 2.59e-02 1.89e+10 2.8 1.03e+02 - 1.92e-03 1.48e-03h 1
46 8.5682318e+00 2.59e-02 4.38e+11 2.8 1.13e+02 - 1.45e-01 1.38e-03h 1
47 8.5697882e+00 2.59e-02 4.64e+11 2.8 1.34e+02 - 3.67e-03 1.17e-05h 1
48 8.5694112e+00 2.59e-02 5.33e+11 2.8 3.94e+01 - 2.28e-04 3.35e-05h 1
49 8.6994136e+00 2.59e-02 5.15e+11 2.8 2.10e+02 - 1.62e-05 6.26e-04h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
50 8.7748861e+00 2.58e-02 5.18e+11 2.8 1.63e+02 - 8.23e-04 4.69e-04h 1
51 8.9414473e+00 2.58e-02 5.20e+11 2.8 1.73e+02 - 1.22e-03 9.69e-04h 1
52 9.0497143e+00 2.58e-02 1.80e+13 2.7 2.01e+02 - 1.00e+00 5.44e-04h 1
53r 9.0497143e+00 2.58e-02 9.97e+02 2.8 0.00e+00 - 0.00e+00 3.00e-07R 5
54r 9.0816438e+00 2.04e-02 6.19e+00 0.9 6.37e-01 - 9.94e-01 9.87e-01f 1
55 9.0796199e+00 1.92e-02 2.43e+01 -0.7 7.47e-01 - 6.40e-01 5.96e-02f 1
56 7.2532096e+00 1.80e-02 1.15e+02 -0.4 7.13e+00 - 9.01e-01 6.33e-02f 1
57 7.3076821e+00 1.77e-02 2.22e+02 -4.0 6.28e+00 - 1.34e-01 1.32e-02h 1
58 7.5573111e+00 1.81e-02 8.08e+02 0.2 3.88e+01 - 1.98e-01 1.94e-02f 2
59 8.1870721e+00 1.95e-02 1.57e+03 0.9 3.08e+01 - 7.27e-02 2.00e-02f 2
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
60 8.1934343e+00 1.94e-02 2.00e+03 0.1 4.81e+01 - 2.86e-02 8.08e-04h 5
61 8.2268938e+00 1.92e-02 3.35e+03 0.1 1.36e+01 - 5.57e-02 4.78e-03h 4
62 8.2777199e+00 1.88e-02 3.78e+03 0.1 2.42e+01 - 1.59e-02 5.74e-03h 4
63 8.3172804e+00 1.87e-02 7.89e+03 0.1 1.90e+01 - 8.54e-02 3.59e-03h 4
64 8.4914043e+00 2.07e-02 9.10e+03 0.1 2.05e+01 - 2.63e-02 1.41e-02h 3
65 8.5076958e+00 2.09e-02 8.98e+04 0.1 1.56e+01 - 8.49e-01 1.20e-03h 5
66 9.5486981e+00 2.90e-02 4.72e+04 0.1 1.63e+01 - 2.00e-02 4.35e-02h 1
67 9.5169092e+00 6.13e-02 4.99e+04 -4.0 2.95e+01 - 1.12e-03 7.18e-03h 1
68 9.5375158e+00 6.12e-02 1.88e+05 0.9 5.41e+00 3.7 3.05e-02 1.50e-03h 1
69 9.5351829e+00 6.11e-02 1.89e+05 0.9 6.79e+01 - 2.35e-03 2.08e-03h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
70 9.4355983e+00 6.02e-02 1.61e+05 0.9 6.24e+01 - 6.35e-03 1.25e-02h 1
71 9.4391197e+00 6.02e-02 2.21e+05 0.9 1.13e+02 - 4.93e-03 7.19e-04h 1
72 9.5201399e+00 6.02e-02 2.20e+05 0.9 4.60e+02 - 2.10e-05 1.90e-04h 1
73 9.5895260e+00 6.01e-02 1.40e+06 0.9 1.26e+02 - 6.71e-02 8.97e-04h 1
74 9.6008488e+00 6.01e-02 1.50e+06 0.9 3.64e+02 - 1.53e-03 1.07e-04h 5
75 9.6257849e+00 6.01e-02 2.09e+07 0.9 3.26e+02 - 2.24e-01 2.23e-04h 4
76 9.9589388e+00 5.98e-02 1.92e+07 0.9 9.68e+01 - 3.31e-03 4.23e-03h 1
77 9.9737953e+00 5.96e-02 9.09e+07 0.9 1.41e+01 - 2.67e-02 3.77e-03h 1
78 1.0051165e+01 5.96e-02 8.44e+07 0.9 2.51e+02 - 2.17e-05 3.14e-04h 1
79 1.0083203e+01 5.96e-02 9.53e+07 0.9 1.45e+02 - 6.60e-04 2.23e-04h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
80 1.0166753e+01 5.95e-02 7.64e+09 0.9 1.21e+02 - 2.46e-01 6.97e-04h 1
81 1.0452774e+01 5.95e-02 7.47e+09 0.9 1.12e+03 - 1.79e-04 2.56e-04h 1
82 9.9662461e+00 5.95e-02 5.92e+09 0.9 4.79e+02 - 5.97e-06 1.01e-03h 1
83 1.0086182e+01 5.94e-02 5.00e+09 0.9 3.09e+02 - 1.86e-05 3.88e-04h 3
84 1.0267314e+01 5.94e-02 4.77e+10 0.9 1.89e+02 - 1.33e-02 9.57e-04h 2
85 1.0246952e+01 5.93e-02 3.30e+09 0.9 2.65e+01 - 4.64e-06 1.04e-03h 1
86 1.0245993e+01 5.93e-02 2.76e+09 0.2 1.81e+03 - 5.66e-06 3.65e-06f 2
87 1.0245603e+01 5.93e-02 2.85e+09 -0.5 8.09e+02 - 1.81e-05 2.43e-05h 1
88 1.0247014e+01 5.93e-02 2.91e+09 -0.5 6.68e+02 - 5.08e-05 4.87e-05h 1
89 1.0248406e+01 5.93e-02 1.10e+10 -0.5 6.85e+02 - 2.99e-04 4.60e-05h 2
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
90 1.0250597e+01 5.93e-02 8.66e+09 -0.5 7.16e+02 - 2.95e-06 6.97e-05f 3
91 1.0252258e+01 5.93e-02 6.66e+09 -0.5 7.43e+02 - 2.98e-08 5.06e-05f 3
92r 1.0252258e+01 5.93e-02 9.99e+02 -0.5 0.00e+00 9.5 0.00e+00 3.00e-09R 2
93r 1.0312114e+01 5.48e-02 9.17e+02 1.6 1.55e+01 - 2.58e-01 1.37e-02f 1
94r 1.0321144e+01 3.93e-02 8.17e+02 0.6 2.12e+00 - 3.19e-01 4.84e-02f 1
95 1.0314063e+01 3.87e-02 6.86e+01 -1.2 5.81e-01 - 5.00e-01 1.32e-02f 1
96 1.0135491e+01 3.83e-02 2.39e+01 -1.2 7.53e+00 - 3.73e-03 1.04e-02h 1
97 1.0221258e+01 3.83e-02 1.29e+03 -1.2 2.56e+01 - 1.25e-02 5.75e-04h 1
98 1.0289999e+01 3.83e-02 1.67e+03 -1.2 3.64e+02 - 5.11e-04 1.40e-04h 1
99 1.0372930e+01 3.83e-02 1.45e+03 -1.2 4.28e+02 - 4.54e-04 5.34e-04h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
100 1.0296838e+01 3.83e-02 3.10e+04 -1.2 6.23e+02 - 2.02e-03 1.06e-04h 1
101 1.0145892e+01 3.83e-02 1.03e+05 -1.2 1.10e+03 - 3.42e-04 9.12e-05h 1
102 1.0294367e+01 3.83e-02 9.52e+04 -1.2 1.71e+03 - 7.61e-05 8.22e-05h 1
103 1.0199955e+01 3.83e-02 2.47e+06 -1.2 1.71e+03 - 4.25e-04 3.28e-05h 1
104 1.0460159e+01 3.83e-02 1.95e+06 -1.2 5.57e+03 - 3.84e-05 4.86e-05h 1
105 1.0059293e+01 3.83e-02 2.48e+06 -1.2 9.09e+02 - 5.21e-06 4.37e-04h 1
106 1.0173626e+01 3.83e-02 3.52e+06 -1.2 1.14e+03 - 7.96e-05 1.01e-04h 1
107 1.0213291e+01 3.83e-02 8.52e+07 -1.2 2.90e+03 - 1.65e-04 1.37e-05h 1
108 1.0320383e+01 3.83e-02 1.29e+11 -1.2 1.57e+02 - 8.40e-01 6.80e-04f 1
109 1.0323882e+01 2.92e-02 3.19e+09 -1.2 6.07e-03 9.0 9.75e-01 1.00e+00f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
110 1.0334509e+01 1.33e-02 1.37e+09 -1.2 1.39e-02 8.6 5.71e-01 1.00e+00f 1
111 1.0343957e+01 1.72e-02 6.31e+07 0.7 1.82e-02 8.1 9.54e-01 1.00e+00f 1
112r 1.0343957e+01 1.72e-02 9.98e+02 0.6 0.00e+00 - 0.00e+00 3.76e-07R 4
113r 1.0314477e+01 8.68e-03 4.40e+02 0.5 2.66e-01 - 9.84e-01 2.77e-01f 1
114 1.0308246e+01 8.58e-03 1.16e+02 -0.9 6.58e-01 - 5.30e-01 1.10e-02f 1
115 9.2345200e+00 8.49e-03 1.52e+04 0.3 1.16e+02 - 1.00e+00 4.13e-03f 1
116 9.7027138e+00 8.42e-03 1.89e+04 -4.0 2.26e+01 - 1.31e-02 7.28e-03h 1
117 9.7524200e+00 8.42e-03 1.12e+05 1.7 4.12e+01 - 2.31e-02 5.19e-04h 1
118 1.0118780e+01 8.41e-03 1.56e+07 2.6 5.47e+02 - 1.00e+00 5.62e-04f 1
119 1.0214288e+01 8.40e-03 2.64e+07 2.8 6.01e+01 - 5.48e-03 1.02e-03h 3
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
120 1.0286320e+01 8.39e-03 4.51e+07 0.7 5.05e+01 - 4.79e-03 1.13e-03h 1
121 1.0300946e+01 8.37e-03 2.89e+07 2.8 1.07e+02 - 2.83e-05 1.41e-03h 1
122 1.0315133e+01 8.35e-03 1.57e+08 2.8 1.10e+02 - 8.78e-03 1.85e-03h 1
123 1.0337459e+01 8.35e-03 1.25e+09 2.8 6.97e+01 - 6.02e-03 8.09e-04h 1
124 1.0313046e+01 8.35e-03 1.91e+09 2.1 1.01e+03 - 1.76e-04 5.92e-05h 3
125 1.0318140e+01 8.35e-03 2.37e+09 1.4 1.57e+03 - 7.75e-05 3.60e-05h 3
126 1.0320342e+01 8.35e-03 3.94e+09 1.4 1.17e+03 - 1.58e-04 6.87e-05h 2
127 1.0315089e+01 8.35e-03 2.78e+10 1.4 7.39e+02 - 5.51e-04 9.19e-05h 1
128 1.0313891e+01 8.34e-03 3.89e+12 1.4 4.93e+02 - 2.92e-03 2.36e-05h 1
129r 1.0313891e+01 8.34e-03 1.00e+03 1.4 0.00e+00 - 0.00e+00 3.49e-07R 6
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
130r 1.0310566e+01 7.22e-03 2.23e+01 -0.1 4.71e-02 - 9.89e-01 8.72e-01f 1
131 1.0305314e+01 7.18e-03 3.74e+02 -0.6 8.62e-01 - 6.66e-01 5.53e-03f 1
132 9.5466234e+00 7.15e-03 2.68e+03 0.3 1.31e+02 - 9.47e-02 3.68e-03f 1
133 9.8160645e+00 7.12e-03 4.50e+03 -4.0 2.27e+01 - 1.29e-02 3.89e-03h 1
134 9.9805922e+00 7.11e-03 8.83e+04 1.4 1.39e+02 - 1.05e-01 7.28e-04f 1
135 1.0461533e+01 7.10e-03 9.13e+06 2.1 1.11e+03 - 1.00e+00 1.73e-03f 1
136 1.0422436e+01 7.09e-03 9.05e+06 2.4 2.12e+02 - 1.46e-03 1.58e-03h 1
137 1.0528363e+01 7.08e-03 9.07e+06 1.7 1.00e+02 - 3.02e-04 1.16e-03h 1
138 1.0701770e+01 7.07e-03 9.30e+06 1.7 9.17e+01 - 1.12e-02 1.90e-03h 1
139 1.0866062e+01 7.05e-03 9.81e+06 1.7 8.58e+01 - 5.66e-03 1.97e-03h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
140 1.0859094e+01 7.05e-03 9.01e+06 1.7 1.23e+03 - 1.98e-04 8.23e-04h 1
141 1.0863206e+01 7.05e-03 8.98e+06 1.0 7.41e+03 - 1.18e-04 9.95e-05h 1
142 1.0880762e+01 7.05e-03 8.97e+06 1.0 2.63e+02 - 3.26e-04 2.98e-04h 1
143 1.0914086e+01 7.04e-03 8.93e+06 1.0 2.26e+02 - 8.80e-04 6.05e-04h 1
144 1.1129417e+01 7.01e-03 8.70e+06 1.0 1.49e+02 - 9.29e-03 4.07e-03h 1
145 1.1324851e+01 6.99e-03 1.92e+07 1.8 5.11e+01 - 2.91e-01 3.84e-03h 1
146 1.1329739e+01 6.98e-03 1.92e+07 -3.3 7.10e+03 - 1.33e-05 2.66e-04h 1
147 1.1329581e+01 6.98e-03 2.07e+07 -3.3 1.66e+02 - 7.46e-04 1.14e-04h 1
148 1.1789981e+01 6.92e-03 1.97e+07 2.8 4.90e+01 - 3.00e-04 9.62e-03f 1
149 1.1794885e+01 6.91e-03 1.06e+07 2.8 2.63e+01 - 2.91e-02 1.79e-04h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
150 1.1796764e+01 6.91e-03 1.89e+07 -3.4 4.21e+01 - 6.39e-03 7.25e-05h 1
151 1.1809967e+01 6.90e-03 1.10e+09 2.8 1.05e+00 7.6 2.29e-01 2.63e-03h 1
152 1.1808715e+01 6.90e-03 1.12e+09 2.8 6.14e+02 - 7.78e-04 2.81e-05h 1
153 1.1811098e+01 6.90e-03 1.12e+09 -2.1 5.71e+02 - 3.99e-05 8.63e-05h 1
154 1.1812702e+01 6.89e-03 1.12e+09 2.8 6.30e+02 - 6.46e-06 3.47e-05h 1
155 1.1823051e+01 6.89e-03 1.13e+09 2.8 6.25e+02 - 3.50e-04 1.23e-04h 1
156 1.1821016e+01 6.89e-03 2.14e+10 2.8 2.85e+01 7.1 5.01e-02 1.17e-04h 1
157 1.1824240e+01 6.89e-03 2.14e+10 -0.9 9.84e+03 - 1.17e-05 1.89e-04h 1
158r 1.1824240e+01 6.89e-03 9.81e+02 -0.9 0.00e+00 - 0.00e+00 2.61e-07R 6
159r 1.1822691e+01 5.32e-03 6.48e+02 0.5 1.15e+00 - 9.91e-01 8.05e-02f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
160 1.1813548e+01 5.30e-03 1.80e+01 -0.3 1.17e+00 - 1.11e-02 2.39e-03f 1
161 1.2203253e+01 5.18e-03 8.41e+01 -0.3 2.00e+01 - 1.95e-01 2.37e-02f 1
162 1.2390509e+01 5.09e-03 4.29e+02 -0.3 1.59e+01 - 1.59e-01 1.63e-02h 1
163 1.2331068e+01 5.04e-03 1.16e+03 -0.3 7.60e+00 - 7.24e-02 1.15e-02h 1
164 1.2664125e+01 4.93e-03 8.34e+02 -0.3 3.59e+01 - 4.31e-03 2.15e-02h 1
165 1.2665681e+01 4.92e-03 7.27e+05 -0.3 1.95e-01 6.7 1.00e+00 1.28e-03h 1
166 1.2669821e+01 4.92e-03 2.44e+06 -0.3 4.53e-01 6.2 1.63e-01 7.69e-04h 1
167 1.2694353e+01 4.91e-03 2.66e+07 -0.3 3.29e+00 5.7 1.69e-01 8.52e-04h 1
168 1.2769573e+01 4.90e-03 2.57e+07 -0.3 3.12e+01 5.2 9.64e-04 2.39e-03h 1
169 1.2778290e+01 4.90e-03 2.57e+07 -0.3 9.79e+01 4.8 8.53e-05 7.89e-05h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
170 1.2784185e+01 4.90e-03 2.92e+07 -0.3 4.92e+01 5.2 1.18e-03 1.13e-04h 1
171 1.2795722e+01 4.90e-03 2.92e+07 -0.3 1.10e+02 4.7 1.12e-04 1.38e-04h 1
172 1.2801232e+01 4.90e-03 4.14e+07 -0.3 7.43e+01 5.1 3.04e-03 1.04e-04h 1
173 1.2857806e+01 4.89e-03 5.27e+07 -0.3 1.46e+02 4.7 6.32e-03 9.99e-04h 1
174 1.2956052e+01 4.88e-03 1.75e+08 -0.3 1.18e+02 5.1 3.69e-02 2.38e-03h 1
175 1.3064328e+01 4.84e-03 1.87e+08 -0.3 8.46e+01 4.6 2.28e-03 7.51e-03f 1
176 1.3246960e+01 4.77e-03 1.84e+08 -0.3 1.26e+01 5.9 7.86e-03 1.47e-02h 1
177 1.3248987e+01 4.77e-03 1.41e+08 -0.3 6.91e+00 5.5 3.19e-01 5.10e-04h 1
178 1.3250011e+01 4.76e-03 1.39e+08 -0.3 9.26e+00 5.0 2.09e-02 1.66e-03h 1
179 1.3250189e+01 4.76e-03 1.45e+08 -0.3 8.92e+00 4.5 4.35e-02 1.72e-05h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
180 1.3473876e+01 4.76e-03 1.46e+08 -0.3 2.84e+02 4.0 5.27e-04 3.67e-04h 1
181 1.3425669e+01 4.76e-03 1.49e+08 -0.3 4.68e+02 3.5 1.55e-03 2.02e-04h 1
182 1.3400134e+01 4.76e-03 1.52e+08 -0.3 6.77e+02 3.1 1.98e-03 3.40e-04h 1
183r 1.3400134e+01 4.76e-03 1.00e+03 -0.3 0.00e+00 3.5 0.00e+00 4.52e-07R 7
184r 1.4762215e+01 1.42e-02 8.18e+02 0.5 1.41e+01 - 9.88e-01 3.26e-02f 1
185r 1.3284390e+01 1.56e-02 2.51e+02 0.1 6.77e-01 - 2.46e-01 8.49e-01f 1
186r 1.3036960e+01 3.18e-02 2.56e+02 0.1 3.17e-01 - 3.20e-01 9.24e-02f 1
187r 1.1442144e+01 2.79e-02 4.44e+01 0.1 9.96e-02 2.0 1.00e+00 9.30e-01f 1
188r 1.0957676e+01 2.31e-02 1.62e+01 -0.5 1.84e-01 - 7.08e-01 7.15e-01f 1
189r 1.1092452e+01 2.64e-02 1.64e+00 -0.7 4.37e-02 1.5 9.88e-01 1.00e+00f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
190r 1.1035702e+01 3.81e-02 2.35e+02 -0.4 1.61e+00 1.0 1.00e+00 1.18e-01f 1
191r 1.1057593e+01 3.42e-02 1.48e+00 -0.7 4.51e-02 1.5 1.00e+00 1.00e+00f 1
192r 1.1259021e+01 3.35e-02 5.34e+00 -4.0 1.57e+00 - 8.70e-02 1.33e-01f 1
193r 1.2049826e+01 2.98e-02 3.48e+00 -1.5 4.36e-01 - 6.26e-01 7.87e-01f 1
194r 1.2558031e+01 2.84e-02 3.53e-01 -2.1 3.30e-02 1.0 1.00e+00 1.00e+00f 1
195r 1.3082453e+01 2.79e-02 1.42e+00 -2.6 5.70e-02 0.5 9.95e-01 8.16e-01f 1
196r 1.3368220e+01 2.78e-02 1.86e-01 -3.6 1.93e-02 0.9 1.00e+00 1.00e+00f 1
197r 1.3464159e+01 2.78e-02 2.00e-01 -4.0 8.35e-03 1.4 1.00e+00 1.00e+00h 1
198r 1.3544989e+01 2.77e-02 1.15e+00 -4.0 2.88e-02 0.9 1.00e+00 4.43e-01f 1
199r 1.3782788e+01 2.77e-02 3.45e-01 -4.0 1.04e-01 0.4 1.00e+00 9.20e-01f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
200r 1.3815119e+01 2.76e-02 7.03e-01 -4.0 1.13e+00 -0.1 1.15e-01 1.23e-01f 1
Number of Iterations....: 200
(scaled) (unscaled)
Objective...............: 1.3815119184380830e+01 1.3815119184380830e+01
Dual infeasibility......: 1.0053803814465088e+00 1.0053803814465088e+00
Constraint violation....: 2.7645879824577880e-02 2.7645879824577880e-02
Variable bound violation: 0.0000000000000000e+00 0.0000000000000000e+00
Complementarity.........: 1.1204141105594466e-04 1.1204141105594466e-04
Overall NLP error.......: 1.0053803814465088e+00 1.0053803814465088e+00
Number of objective function evaluations = 297
Number of objective gradient evaluations = 184
Number of equality constraint evaluations = 297
Number of inequality constraint evaluations = 0
Number of equality constraint Jacobian evaluations = 207
Number of inequality constraint Jacobian evaluations = 0
Number of Lagrangian Hessian evaluations = 200
Total seconds in IPOPT = 0.812
EXIT: Maximum Number of Iterations Exceeded.
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.8500038e+01 1.50e-01 1.00e+01 0.0 0.00e+00 - 0.00e+00 0.00e+00 0
1 2.0325559e+01 4.93e-02 8.45e+00 -0.7 2.12e-01 2.0 9.99e-01 6.56e-01f 1
2 1.9255046e+01 4.68e-02 5.10e+01 -0.1 1.31e+00 1.5 1.00e+00 8.00e-02h 1
3 1.9697627e+01 4.06e-02 1.90e+02 0.4 2.67e+00 1.0 1.00e+00 1.77e-01h 1
4 2.6216643e+01 6.04e-02 1.47e+03 1.3 1.89e+00 2.4 9.00e-01 1.77e-01h 1
5 2.6276602e+01 6.07e-02 1.43e+03 -4.0 3.97e+01 1.9 5.74e-03 7.41e-04h 4
6 2.6348632e+01 6.03e-02 1.01e+03 0.7 1.43e+00 2.3 8.80e-01 5.73e-03h 1
7 2.7882625e+01 6.04e-02 2.33e+03 1.2 9.59e-01 2.7 1.00e+00 2.05e-01h 1
8 2.9474550e+01 5.61e-02 1.30e+04 1.8 3.12e+00 3.2 1.00e+00 7.28e-02h 1
9 3.2381627e+01 5.50e-02 1.88e+04 2.8 1.29e+01 2.7 2.62e-01 2.00e-02f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
10 3.3536463e+01 4.69e-02 1.71e+04 -3.7 1.34e+00 - 1.61e-01 1.47e-01h 1
11 3.4480455e+01 4.58e-02 4.60e+04 2.1 3.62e+00 - 9.96e-01 2.47e-02h 1
12 3.4237794e+01 4.31e-02 4.80e+04 1.6 1.82e+00 - 4.34e-01 6.06e-02h 1
13 3.7100337e+01 4.30e-02 5.15e+04 -3.9 1.32e+02 3.1 3.16e-04 1.99e-03h 1
14 3.8683738e+01 4.11e-02 4.10e+04 1.3 4.22e+00 - 1.00e+00 4.36e-02h 1
15 3.5541194e+01 3.28e-02 1.13e+05 2.1 4.05e+00 - 1.00e+00 1.98e-01h 1
16 3.6098175e+01 3.19e-02 9.35e+04 -3.8 3.76e+00 - 1.07e-02 2.92e-02h 1
17 4.0336975e+01 2.95e-02 7.58e+05 2.6 5.48e+00 - 1.00e+00 7.53e-02f 1
18 4.0566522e+01 2.93e-02 7.71e+05 -3.5 1.77e+00 - 9.27e-03 4.84e-03h 1
19 4.1010569e+01 2.92e-02 7.83e+05 2.8 1.55e+01 - 2.34e-03 5.11e-03h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
20 4.2417462e+01 2.85e-02 6.15e+05 0.8 6.43e+00 - 2.25e-01 2.32e-02h 1
21 4.2590069e+01 2.84e-02 9.53e+05 1.1 6.14e+00 - 2.87e-01 2.84e-03h 1
22 4.2755516e+01 2.84e-02 9.63e+05 -3.6 1.93e+02 - 7.68e-06 2.17e-04h 1
23 4.3345693e+01 2.83e-02 8.02e+05 2.8 1.24e+01 - 5.59e-02 5.20e-03f 1
24 4.3736708e+01 2.81e-02 8.03e+05 -3.6 4.30e+00 - 2.42e-02 5.70e-03h 1
25 4.8084940e+01 2.67e-02 1.08e+06 2.7 7.16e+00 - 1.00e+00 4.95e-02f 1
26 4.9552577e+01 2.59e-02 1.04e+06 -3.3 4.72e+00 - 2.60e-02 3.03e-02h 1
27 5.0395435e+01 2.57e-02 9.80e+05 2.8 7.62e+00 5.4 5.04e-03 7.71e-03h 1
28 5.1351907e+01 2.54e-02 8.38e+05 2.8 3.06e+00 5.8 3.30e-03 9.87e-03h 1
29 5.1721934e+01 2.53e-02 1.07e+06 -3.4 2.57e+00 6.2 1.20e-02 4.67e-03h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
30 5.2385777e+01 2.51e-02 1.06e+06 2.8 2.19e+00 6.6 8.19e-03 8.01e-03h 1
31 5.2887119e+01 2.50e-02 1.97e+07 2.8 1.86e+00 7.1 7.32e-02 6.49e-03h 1
32 5.5082898e+01 2.44e-02 1.82e+07 2.8 2.53e+00 6.6 1.37e-02 2.14e-02h 1
33 5.5862246e+01 2.42e-02 5.23e+07 2.8 2.60e+00 7.0 8.91e-02 7.33e-03h 1
34 5.7822792e+01 2.38e-02 9.76e+07 2.8 2.71e+00 7.4 5.74e-02 1.75e-02h 1
35 5.8590687e+01 2.37e-02 3.03e+08 2.8 2.87e+00 7.9 6.12e-02 6.14e-03h 1
36 6.0461689e+01 2.34e-02 3.60e+08 2.8 2.97e+00 7.4 5.84e-02 1.29e-02h 1
37 6.3236024e+01 2.30e-02 5.61e+08 2.8 3.24e+00 7.8 6.61e-02 1.79e-02h 1
38 6.7308098e+01 2.24e-02 8.28e+08 2.8 3.55e+00 8.2 4.32e-02 2.33e-02h 1
39 6.8355452e+01 2.23e-02 1.31e+09 2.8 4.01e+00 8.7 1.36e-02 4.93e-03h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
40 6.8529782e+01 2.23e-02 8.51e+09 2.8 4.18e+00 9.1 4.65e-02 7.88e-04h 1
41 7.0539291e+01 2.21e-02 1.01e+10 2.8 4.28e+00 8.6 4.02e-02 8.63e-03h 1
42 7.2546518e+01 2.19e-02 1.11e+10 2.8 4.25e+00 8.1 4.39e-02 8.05e-03h 1
43 7.2626306e+01 2.19e-02 1.47e+10 2.8 5.29e+00 9.5 5.65e-03 2.81e-04h 1
44 7.5822265e+01 2.17e-02 2.52e+10 2.8 5.70e+00 9.0 5.40e-02 1.09e-02h 1
45 7.7246452e+01 2.16e-02 2.59e+10 2.8 6.96e+00 8.5 1.01e-02 4.39e-03h 1
46 7.8448166e+01 2.15e-02 3.08e+10 2.8 7.92e+00 8.0 4.68e-02 3.83e-03h 1
47 7.8910819e+01 2.15e-02 3.05e+10 -1.8 1.00e+01 8.5 1.03e-04 1.02e-03h 1
48 7.8947626e+01 2.15e-02 3.05e+10 2.8 2.04e+01 8.0 1.63e-04 7.19e-05h 1
49 7.9132111e+01 2.15e-02 3.11e+10 2.8 8.58e+00 9.3 7.78e-04 3.94e-04h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
50 7.9325162e+01 2.15e-02 3.48e+10 2.8 9.01e+00 9.7 1.26e-03 4.08e-04h 1
51 7.9425383e+01 2.15e-02 3.46e+10 2.8 4.53e+01 9.3 2.87e-05 1.46e-04h 1
52 7.9810842e+01 2.14e-02 4.18e+10 2.8 1.08e+01 8.8 1.07e-02 7.68e-04h 1
53 8.1129648e+01 2.14e-02 3.78e+10 2.8 1.06e+01 9.2 1.55e-04 2.47e-03h 1
54 8.1514305e+01 2.14e-02 4.19e+10 2.8 1.23e+01 8.7 5.29e-03 7.19e-04h 1
55 8.3025795e+01 2.13e-02 4.39e+10 2.8 1.35e+01 8.3 7.05e-03 3.25e-03h 1
56 8.3086201e+01 2.13e-02 4.49e+10 2.8 1.27e+01 9.6 2.33e-04 8.87e-05h 1
57 8.3214312e+01 2.13e-02 4.45e+10 2.8 1.97e+01 9.1 3.16e-05 1.61e-04h 1
58 8.4210943e+01 2.13e-02 5.80e+10 2.8 1.66e+01 8.6 1.14e-02 1.53e-03h 1
59 8.4462273e+01 2.13e-02 5.71e+10 -1.6 1.61e+01 9.1 4.15e-05 3.26e-04h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
60 8.5049311e+01 2.12e-02 6.17e+10 2.8 1.90e+01 8.6 3.74e-03 8.74e-04h 1
61 8.4997189e+01 2.12e-02 6.40e+10 2.8 7.32e+01 8.1 2.50e-03 2.67e-04h 1
62 8.5666003e+01 2.12e-02 6.64e+10 2.8 2.64e+01 7.6 4.11e-03 1.38e-03h 1
63 8.5804923e+01 2.12e-02 7.06e+10 2.8 1.75e+01 9.9 3.77e-04 1.54e-04h 1
64 8.6008839e+01 2.12e-02 6.93e+10 2.8 2.29e+01 9.4 2.30e-05 1.95e-04h 1
65 8.6634753e+01 2.12e-02 7.29e+10 2.8 1.76e+01 8.9 1.62e-03 6.88e-04h 1
66 8.7582281e+01 2.12e-02 8.48e+10 2.8 2.50e+01 8.4 4.80e-03 1.02e-03h 1
67 8.8074496e+01 2.11e-02 8.87e+10 2.8 4.52e+01 7.9 1.85e-03 5.72e-04h 1
68 8.8390240e+01 2.11e-02 9.19e+10 2.8 6.00e+01 7.5 1.70e-03 4.72e-04h 1
69 8.8616931e+01 2.11e-02 9.44e+10 2.8 5.49e+01 7.9 8.98e-04 2.45e-04h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
70 8.8899896e+01 2.11e-02 9.74e+10 2.8 6.83e+01 7.4 1.35e-03 3.93e-04h 1
71 8.9270108e+01 2.11e-02 1.03e+11 2.8 5.88e+01 7.8 1.56e-03 3.85e-04h 1
72 8.9891470e+01 2.11e-02 1.59e+11 2.8 4.50e+01 8.3 8.79e-03 5.01e-04h 1
73 9.0061961e+01 2.11e-02 1.58e+11 2.8 3.25e+01 9.6 7.12e-05 9.34e-05h 1
74 9.0959658e+01 2.11e-02 1.47e+11 2.8 4.15e+01 9.1 3.62e-05 4.68e-04h 1
75 9.1396774e+01 2.11e-02 1.44e+11 -1.4 6.36e+01 8.6 1.19e-04 2.42e-04h 1
76 9.1397002e+01 2.11e-02 1.44e+11 -1.4 1.10e+03 8.2 8.88e-09 1.62e-07f 2
77 9.1400370e+01 2.11e-02 1.65e+11 2.8 5.17e+01 9.5 2.89e-04 1.50e-06f 2
78r 9.1400370e+01 2.11e-02 9.85e+02 2.1 0.00e+00 9.9 0.00e+00 3.07e-07R 4
79r 9.1899511e+01 1.63e-02 1.33e+01 0.9 1.37e-01 - 9.87e-01 9.80e-01f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
80 9.1412466e+01 1.64e-02 3.24e+02 0.6 6.48e+00 - 4.87e-01 6.98e-03f 1
81 7.2234004e+01 1.46e-02 4.31e+02 0.2 4.14e+00 - 1.89e-01 1.08e-01f 1
82 7.9092253e+01 1.36e-02 8.14e+02 -4.0 1.35e+00 - 1.96e-01 6.17e-02h 1
83 8.6626603e+01 1.41e-02 7.14e+02 -4.0 5.31e+00 - 4.08e-02 4.17e-02h 1
84 8.7521248e+01 1.40e-02 7.78e+04 1.5 5.55e+01 - 1.00e+00 1.30e-03f 1
85 9.3764301e+01 1.38e-02 8.27e+04 2.5 2.14e+01 - 1.52e-02 1.24e-02h 1
86 9.5713962e+01 1.37e-02 1.61e+05 2.8 1.47e+01 - 2.15e-02 7.10e-03h 1
87 9.8396090e+01 1.37e-02 4.03e+05 2.8 3.18e+01 - 2.54e-02 6.79e-03h 1
88 1.0081592e+02 1.37e-02 3.87e+07 2.7 5.31e+01 - 1.00e+00 4.73e-03h 1
89 1.0094798e+02 1.36e-02 1.55e+08 2.8 2.70e+01 - 4.11e-02 7.65e-03h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
90 1.0529166e+02 1.37e-02 8.57e+07 2.8 2.05e+02 - 2.60e-04 1.98e-03h 1
91 1.0534417e+02 1.37e-02 1.41e+08 -2.8 3.82e+01 - 6.19e-04 1.33e-04h 1
92 1.0536747e+02 1.36e-02 2.52e+10 2.8 4.71e-01 9.4 1.08e-01 3.82e-04h 1
93 1.0541938e+02 1.36e-02 2.52e+10 2.8 3.38e+02 - 8.54e-05 1.58e-04h 1
94 1.0542643e+02 1.36e-02 2.51e+10 2.8 3.77e+02 - 1.77e-04 3.55e-04h 1
95 1.0533180e+02 1.36e-02 2.51e+10 2.8 4.12e+02 - 4.81e-04 6.57e-04h 1
96r 1.0533180e+02 1.36e-02 9.98e+02 2.8 0.00e+00 - 0.00e+00 4.28e-07R 5
97r 1.0533174e+02 1.11e-02 1.13e+01 -3.4 6.35e-01 - 9.89e-01 9.81e-01f 1
98 1.0530739e+02 1.11e-02 9.88e+01 -4.0 1.22e+00 - 8.77e-02 8.79e-04f 1
99 1.0487920e+02 1.11e-02 5.72e+03 0.0 9.69e+01 - 1.90e-02 3.45e-04f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
100 1.0508628e+02 1.11e-02 6.94e+03 1.6 2.85e+03 - 1.32e-03 6.90e-04f 1
101 1.0508707e+02 1.11e-02 7.52e+07 1.0 2.04e-01 9.0 1.00e+00 7.68e-05h 1
102 1.0502638e+02 1.11e-02 7.51e+07 2.8 2.84e+02 - 1.21e-03 1.89e-03f 1
103 1.0502894e+02 1.11e-02 2.10e+09 2.3 5.23e-01 8.5 1.00e+00 5.49e-05h 1
104 1.0666854e+02 1.10e-02 2.09e+09 2.8 1.17e+02 - 2.92e-03 8.22e-03h 1
105 1.0814263e+02 1.09e-02 2.01e+09 2.8 1.94e+01 - 4.16e-02 7.33e-03h 1
106 1.0890217e+02 1.08e-02 1.99e+09 2.8 4.24e+01 - 9.26e-03 3.85e-03h 1
107 1.1082704e+02 1.07e-02 1.98e+09 2.8 1.39e+02 - 6.05e-03 1.06e-02f 1
108 1.1136523e+02 1.07e-02 1.88e+09 2.2 2.05e+01 - 5.13e-02 2.70e-03h 1
109 1.1323888e+02 1.06e-02 1.87e+09 2.8 1.59e+02 - 5.30e-03 1.04e-02h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
110 1.1429509e+02 1.05e-02 1.82e+09 1.9 1.93e+01 - 2.37e-02 5.32e-03h 1
111 1.1524774e+02 1.05e-02 1.82e+09 2.8 2.54e+01 - 1.33e-03 3.70e-03f 1
112 1.1899043e+02 1.03e-02 1.77e+09 2.8 2.55e+01 - 2.98e-02 1.44e-02f 1
113 1.1906161e+02 1.03e-02 1.76e+09 2.8 7.16e+02 - 7.69e-04 9.67e-04h 1
114 1.1909985e+02 1.03e-02 1.75e+09 1.3 6.05e+02 - 7.08e-03 8.90e-04h 1
115 1.1910933e+02 1.03e-02 1.79e+09 2.8 4.18e+00 8.0 5.12e-03 3.30e-04h 1
116 1.1919595e+02 1.03e-02 1.79e+09 2.8 1.19e+01 7.5 6.51e-04 9.18e-04h 1
117 1.1920577e+02 1.03e-02 1.82e+09 2.2 1.54e+01 7.1 2.74e-03 4.63e-05h 1
118 1.1968680e+02 1.03e-02 1.81e+09 2.8 3.19e+01 6.6 4.09e-05 1.38e-03h 1
119 1.1970988e+02 1.03e-02 1.81e+09 2.8 2.07e+01 7.0 1.01e-03 7.20e-05h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
120 1.1978656e+02 1.03e-02 2.39e+09 2.6 2.96e+01 6.5 1.00e+00 2.26e-04h 1
121 1.2648815e+02 1.01e-02 2.32e+09 2.8 2.72e+01 6.1 1.04e-03 1.59e-02h 1
122 1.2679725e+02 1.01e-02 2.33e+09 2.8 3.81e+01 5.6 7.76e-03 6.99e-04h 1
123 1.2857195e+02 1.01e-02 2.41e+09 2.8 4.22e+01 5.1 1.08e-01 4.19e-03h 1
124 1.2868116e+02 1.01e-02 2.44e+09 2.8 7.04e+02 4.6 6.58e-04 3.86e-04h 1
125 1.2872250e+02 1.01e-02 2.41e+09 -2.2 4.79e+03 4.1 7.22e-05 4.32e-05h 1
126 1.2876579e+02 1.01e-02 2.53e+09 -2.2 4.33e+04 - 3.20e-07 1.31e-05f 2
127 1.2886148e+02 1.01e-02 2.53e+09 2.8 4.54e+02 4.6 7.22e-04 1.58e-04h 4
128 1.2905318e+02 1.01e-02 2.53e+09 2.8 9.31e+02 4.1 1.87e-04 2.73e-04f 2
129 1.2919436e+02 1.01e-02 2.43e+09 2.8 1.63e+03 3.6 6.20e-03 2.19e-04f 2
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
130 1.2989294e+02 1.01e-02 2.42e+09 2.1 1.81e+02 3.1 5.00e-03 1.60e-03h 1
131 1.3022322e+02 1.00e-02 2.41e+09 2.1 5.32e+02 - 1.74e-03 1.99e-03h 1
132 1.3024523e+02 1.00e-02 7.76e+08 2.8 1.51e+02 - 6.98e-01 7.00e-05h 1
133 1.3310946e+02 9.96e-03 7.66e+08 2.8 3.67e+01 - 5.40e-03 7.85e-03h 1
134 1.3318289e+02 9.96e-03 1.25e+09 2.8 1.60e+02 - 2.80e-03 1.32e-04h 1
135 1.3344210e+02 9.95e-03 1.06e+10 2.8 6.95e+01 - 9.94e-03 2.86e-04h 1
136 1.3350703e+02 9.95e-03 1.17e+10 -1.6 3.59e+01 - 3.17e-04 2.50e-04h 1
137 1.3364840e+02 9.95e-03 2.75e+09 2.8 3.23e+01 - 1.37e-06 3.92e-04h 1
138 1.3372962e+02 9.95e-03 2.79e+09 2.8 1.47e+02 - 1.13e-05 5.52e-05h 1
139 1.3431438e+02 9.94e-03 3.03e+09 2.8 1.48e+02 - 8.82e-05 3.97e-04h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
140 1.3671438e+02 9.93e-03 4.06e+10 1.4 1.50e+02 - 5.49e-02 1.60e-03h 1
141 1.3850527e+02 9.92e-03 7.39e+10 2.8 1.61e+02 - 3.70e-02 1.11e-03h 1
142 1.3852211e+02 9.92e-03 1.58e+11 2.8 1.68e+02 - 3.11e-03 1.07e-05h 1
143r 1.3852211e+02 9.92e-03 1.00e+03 2.8 0.00e+00 - 0.00e+00 3.57e-07R 7
144r 1.3852168e+02 9.68e-03 1.12e+01 -3.4 6.33e-01 - 9.89e-01 9.82e-01f 1
145r 1.3847070e+02 6.24e-03 4.41e+01 -4.0 1.16e-01 - 9.26e-01 7.71e-01f 1
146 1.3846821e+02 6.24e-03 1.40e+03 -1.5 1.22e+00 - 1.11e-01 1.31e-04h 1
147 1.3876533e+02 6.24e-03 1.20e+03 -4.0 3.36e+02 - 1.72e-05 4.74e-05h 1
148 1.3831804e+02 7.91e-03 6.40e+02 -0.3 7.50e+02 - 2.12e-04 2.64e-03f 1
149 1.3829148e+02 7.91e-03 4.17e+02 -0.7 6.39e+00 - 2.41e-01 3.10e-03f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
150 1.3852322e+02 7.85e-03 4.06e+02 -4.0 4.43e+00 - 1.17e-02 7.47e-03h 1
151 1.3811142e+02 7.31e-03 4.38e+02 -0.4 6.16e+00 - 4.12e-02 7.70e-02f 1
152 1.3830688e+02 7.29e-03 3.03e+04 -0.1 1.38e+00 2.7 1.00e+00 2.89e-03h 1
153 1.3934440e+02 7.27e-03 3.25e+04 -4.0 4.06e+01 - 1.22e-02 3.10e-03h 1
154 1.3919573e+02 7.26e-03 3.12e+04 1.2 1.40e+03 - 1.87e-03 9.69e-04f 1
155 1.3985987e+02 7.23e-03 3.11e+04 -0.1 1.33e+01 - 3.38e-03 5.16e-03h 1
156 1.4351594e+02 7.02e-03 7.74e+03 -0.1 1.36e+01 - 9.06e-01 2.80e-02h 1
157 1.4524425e+02 7.01e-03 2.13e+04 1.8 7.18e+01 - 9.42e-03 1.14e-03h 1
158 1.4686502e+02 6.97e-03 3.18e+06 1.0 4.36e+00 - 1.00e+00 5.90e-03h 1
159 1.4772083e+02 6.96e-03 1.93e+09 1.8 1.43e+01 - 1.00e+00 1.64e-03h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
160 1.4760394e+02 6.96e-03 1.35e+09 -2.9 3.44e+03 - 2.41e-05 7.31e-05f 1
161 1.4770408e+02 6.96e-03 3.26e+08 2.8 9.16e+03 4.9 3.64e-05 9.48e-05h 1
162 1.4768957e+02 6.96e-03 1.29e+09 -3.3 9.80e+03 - 2.40e-05 8.05e-05f 1
163r 1.4768957e+02 6.96e-03 9.98e+02 2.8 0.00e+00 - 0.00e+00 2.62e-07R 4
164r 1.4721247e+02 5.61e-03 8.74e+00 0.4 6.26e-01 - 9.91e-01 9.89e-01f 1
165 1.4583236e+02 5.54e-03 1.75e+01 -0.3 2.43e+00 - 7.18e-02 1.10e-02f 1
166 1.3595172e+02 5.34e-03 1.65e+01 -0.3 1.35e+01 - 5.58e-02 3.53e-02f 1
167 1.2256071e+02 5.29e-03 2.63e+02 0.3 1.03e+01 - 2.20e-01 8.73e-03f 1
168 1.3412849e+02 5.06e-03 5.35e+03 0.9 8.03e+00 - 1.00e+00 4.29e-02f 2
169 1.3111381e+02 4.70e-03 5.09e+03 0.8 9.37e+00 - 7.97e-02 7.22e-02h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
170 1.4186542e+02 4.36e-03 1.63e+03 0.8 5.34e+00 - 3.56e-02 7.28e-02h 1
171 1.4265055e+02 4.31e-03 2.49e+04 0.1 1.21e+00 4.4 3.81e-02 1.07e-02h 1
172 1.4557983e+02 4.26e-03 1.38e+04 0.1 6.25e+00 3.9 7.01e-03 1.08e-02h 1
173 1.4826877e+02 4.23e-03 3.24e+05 0.1 2.19e+01 3.5 7.35e-02 7.07e-03h 1
174 1.4628397e+02 4.20e-03 3.48e+05 0.1 4.89e+01 - 4.80e-03 7.50e-03f 1
175 1.4694332e+02 4.15e-03 3.29e+05 0.1 6.84e+00 - 4.75e-02 1.34e-02f 1
176 1.4927899e+02 4.07e-03 3.10e+05 0.1 7.87e+00 - 8.55e-02 1.91e-02h 1
177 1.4949178e+02 4.07e-03 3.27e+05 0.1 6.73e+01 - 4.03e-03 1.97e-04h 5
178 1.4976681e+02 4.07e-03 3.36e+05 0.1 1.83e+02 - 1.68e-03 2.78e-04h 5
179 1.4991822e+02 4.06e-03 6.88e+05 0.1 2.85e+01 3.0 1.79e-02 1.42e-04h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
180 1.4995407e+02 4.06e-03 6.95e+05 0.1 7.58e+02 - 4.83e-04 6.68e-05h 6
181 1.4999380e+02 4.06e-03 7.11e+05 0.1 6.83e+02 - 9.28e-04 7.18e-05h 6
182 1.5008706e+02 4.06e-03 7.08e+05 0.1 5.90e+02 - 9.69e-06 1.61e-04f 5
183 1.5045729e+02 4.06e-03 1.25e+06 0.1 6.23e+01 2.5 1.35e-02 3.10e-04f 5
184 1.5048718e+02 4.06e-03 1.27e+06 0.1 3.12e+02 2.0 3.92e-04 3.87e-05h 7
185 1.5049889e+02 4.06e-03 1.27e+06 0.1 1.97e+03 1.6 5.03e-05 1.10e-05f 7
186 1.5051780e+02 4.06e-03 1.36e+06 0.1 4.56e+02 2.0 1.53e-03 2.32e-05h 8
187 1.5053255e+02 4.06e-03 1.36e+06 0.1 1.18e+03 1.5 1.24e-04 1.80e-05f 7
188 1.5070844e+02 4.06e-03 1.28e+06 0.1 2.50e+03 1.0 8.42e-04 1.64e-04f 2
189 1.5072429e+02 4.06e-03 1.39e+06 0.1 3.31e+02 - 7.03e-03 4.43e-05h 7
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
190 1.5124198e+02 1.01e-02 1.38e+06 0.1 2.73e+02 - 2.02e-03 2.02e-03s 13
191 1.5130377e+02 1.01e-02 1.38e+06 0.1 1.79e+02 - 1.79e-04 1.79e-04s 13
192 1.5245398e+02 1.00e-02 1.38e+06 0.1 1.74e+02 - 3.54e-03 3.54e-03s 13
193 1.5294441e+02 9.99e-03 1.37e+06 0.1 1.31e+01 - 3.71e-03 3.71e-03s 13
194 1.5373830e+02 9.93e-03 1.37e+06 0.1 1.35e+01 - 5.71e-03 5.71e-03s 13
195 1.5614904e+02 9.77e-03 1.34e+06 0.1 1.39e+01 - 1.68e-02 1.68e-02s 13
196 1.5618803e+02 9.77e-03 1.34e+06 0.1 1.40e+01 - 1.68e-04 1.68e-04s 13
197r 1.5618803e+02 9.77e-03 1.00e+03 0.1 0.00e+00 - 0.00e+00 0.00e+00R 1
198r 1.5495194e+02 1.27e-02 3.55e+02 0.9 4.92e-01 - 8.16e-01 1.00e+00f 1
199r 1.5235318e+02 8.95e-03 5.65e+02 0.8 1.14e+00 - 5.28e-01 2.89e-01f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
200r 1.4509462e+02 8.93e-03 7.60e+02 0.8 1.89e-01 2.0 7.92e-01 4.80e-01f 1
Number of Iterations....: 200
(scaled) (unscaled)
Objective...............: 1.4509461738302699e+02 1.4509461738302699e+02
Dual infeasibility......: 2.9788312448842481e+02 2.9788312448842481e+02
Constraint violation....: 8.9310758621399949e-03 8.9310758621399949e-03
Variable bound violation: 0.0000000000000000e+00 0.0000000000000000e+00
Complementarity.........: 1.2510160788247482e+01 1.2510160788247482e+01
Overall NLP error.......: 2.9788312448842481e+02 2.9788312448842481e+02
Number of objective function evaluations = 325
Number of objective gradient evaluations = 198
Number of equality constraint evaluations = 325
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.826
EXIT: Maximum Number of Iterations Exceeded.
Time weight effects:
Weight | Total Time | ||u|| | Max |u|
---------------------------------------------
0.1 | 18.9283 s | 6.1495 | 0.9999
1.0 | 14.0396 s | 5.8151 | 1.0000
10.0 | 14.7616 s | 5.6575 | 0.9998
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.18321684260224974
Coefficient of variation: 0.522Key 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.