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.8500413e+00 1.65e-01 1.00e+00 0.0 0.00e+00 - 0.00e+00 0.00e+00 0
1 3.5271835e+00 8.08e-02 1.15e+00 -0.8 5.48e-01 - 9.98e-01 8.46e-01h 1
2 2.2281675e+00 5.90e-02 1.90e+00 -4.0 1.75e+00 - 3.32e-01 2.67e-01f 1
3 3.0664106e+00 7.74e-02 7.56e+00 -0.4 2.51e+00 0.0 6.04e-01 2.17e-01f 1
4 3.3672934e+00 6.49e-02 3.77e+01 0.2 1.41e+00 1.3 4.76e-01 1.23e-01h 1
5 3.9209729e+00 5.51e-02 1.29e+02 0.4 2.59e+00 0.9 9.24e-01 1.30e-01h 1
6 4.1756561e+00 5.36e-02 1.72e+02 0.4 3.57e+00 - 7.12e-01 7.09e-02h 1
7 4.8246117e+00 5.03e-02 7.95e+02 1.2 3.46e+00 - 8.04e-01 7.72e-02h 1
8 4.7559593e+00 4.13e-02 2.75e+03 1.3 1.29e+00 - 9.62e-01 1.81e-01h 1
9 4.4244523e+00 3.67e-02 1.40e+03 -4.0 2.74e+00 - 5.78e-02 1.18e-01f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
10 4.9352373e+00 3.83e-02 2.96e+04 1.9 5.38e+00 - 8.47e-01 6.51e-02f 1
11 5.0749194e+00 3.73e-02 2.90e+04 2.0 1.70e+01 - 7.31e-02 2.42e-02h 1
12 5.0970574e+00 3.71e-02 3.26e+04 2.1 4.04e+00 - 5.18e-02 4.99e-03h 1
13 5.3871791e+00 3.59e-02 2.94e+04 1.8 1.17e+01 - 2.21e-01 2.98e-02h 1
14 5.7077419e+00 3.53e-02 3.02e+04 2.8 1.83e+01 - 2.14e-02 1.58e-02f 1
15 5.6988517e+00 3.52e-02 4.98e+04 -4.0 4.23e+00 - 1.33e-01 5.31e-03h 1
16 5.9346874e+00 3.48e-02 6.46e+04 2.6 2.63e+01 3.1 2.05e-01 9.78e-03f 1
17 5.9226837e+00 3.23e-02 1.41e+05 1.5 2.49e+00 - 3.56e-01 7.65e-02h 1
18 5.8346772e+00 3.15e-02 1.05e+05 -3.9 7.30e+00 - 7.45e-03 2.53e-02h 1
19 5.9941700e+00 3.10e-02 1.26e+05 1.9 1.14e+01 - 7.59e-02 1.50e-02h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
20 6.1192761e+00 3.07e-02 1.32e+06 2.8 1.19e+01 4.4 5.43e-01 1.03e-02f 1
21 6.5257532e+00 3.01e-02 1.30e+06 2.8 2.28e+01 - 1.05e-02 1.77e-02h 1
22 6.6565668e+00 2.97e-02 1.31e+06 -3.4 5.26e+00 - 3.50e-02 1.34e-02h 1
23 6.8687293e+00 2.90e-02 2.01e+06 2.8 8.71e+00 - 1.88e-01 2.57e-02h 1
24 6.8390819e+00 2.85e-02 1.51e+06 -3.2 1.21e+01 - 2.80e-03 1.42e-02h 1
25 6.9058548e+00 2.85e-02 1.80e+06 2.6 2.56e+01 - 3.52e-02 2.82e-03h 1
26 7.0338899e+00 2.82e-02 1.67e+06 2.8 2.67e+01 - 3.63e-03 9.64e-03h 1
27 7.1070659e+00 2.81e-02 2.66e+06 2.8 3.24e+01 - 1.13e-02 2.66e-03h 1
28 7.1380181e+00 2.81e-02 3.67e+06 -3.3 3.81e+01 - 6.38e-03 9.19e-04h 1
29 7.1509735e+00 2.79e-02 1.98e+06 2.8 6.57e+00 5.7 4.14e-03 8.09e-03h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
30 7.1905910e+00 2.78e-02 3.99e+06 2.8 8.38e+00 6.2 4.97e-03 2.10e-03h 1
31 7.2964359e+00 2.77e-02 3.57e+06 -3.3 1.11e+01 5.7 1.77e-03 2.88e-03h 1
32 7.4104966e+00 2.76e-02 6.38e+06 2.8 7.80e+00 6.1 7.04e-03 3.83e-03h 1
33 7.5273855e+00 2.75e-02 1.20e+07 2.8 8.00e+00 6.5 6.28e-03 3.93e-03h 1
34 7.6035803e+00 2.75e-02 1.19e+07 2.8 1.82e+01 6.1 1.32e-03 1.32e-03h 1
35 7.7627971e+00 2.74e-02 2.40e+07 2.8 1.02e+01 6.5 7.24e-03 3.44e-03h 1
36 7.9422291e+00 2.73e-02 5.72e+07 2.8 1.10e+01 6.9 7.31e-03 3.69e-03h 1
37 8.0522820e+00 2.72e-02 1.12e+08 2.8 1.23e+01 7.3 3.82e-03 1.94e-03h 1
38 8.2577369e+00 2.71e-02 3.13e+08 2.8 1.47e+01 6.9 1.73e-02 3.34e-03h 1
39 8.4955998e+00 2.70e-02 2.16e+08 2.8 1.60e+01 7.3 9.05e-04 3.22e-03h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
40 8.5412178e+00 2.70e-02 2.62e+08 2.8 2.30e+01 6.8 2.92e-03 7.85e-04h 1
41 8.7199045e+00 2.69e-02 3.28e+08 2.3 3.56e+01 6.3 1.32e-02 5.38e-03h 1
42 8.7277915e+00 2.69e-02 3.29e+08 -3.3 6.04e+01 5.9 9.87e-05 7.49e-04h 1
43 8.7283752e+00 2.69e-02 1.13e+09 2.8 2.66e+01 8.1 7.88e-03 1.42e-05h 1
44 8.9127039e+00 2.68e-02 1.10e+09 2.7 2.21e+01 7.6 1.86e-03 2.03e-03h 1
45 8.9615092e+00 2.68e-02 1.06e+09 2.8 2.53e+01 8.0 4.40e-04 5.17e-04h 1
46 8.9626772e+00 2.68e-02 2.06e+10 2.8 2.82e+01 8.5 1.28e-02 1.26e-05h 1
47 9.2792030e+00 2.67e-02 1.94e+10 2.8 3.53e+01 8.0 1.45e-03 3.21e-03h 1
48 9.2801668e+00 2.67e-02 2.38e+10 2.8 5.76e+01 7.5 1.69e-02 1.97e-05h 1
49 9.3039099e+00 2.67e-02 3.09e+10 2.8 5.48e+01 7.0 1.05e-02 1.41e-04h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
50 9.5106751e+00 2.67e-02 4.65e+10 2.8 5.97e+01 7.5 1.35e-02 8.91e-04h 2
51 9.6167299e+00 2.67e-02 5.70e+10 2.8 9.19e+01 7.0 6.16e-03 4.71e-04h 1
52 9.6260223e+00 2.67e-02 5.67e+10 -1.6 7.12e+01 8.3 3.11e-06 2.37e-05h 1
53 9.6466476e+00 2.67e-02 5.74e+10 2.8 9.13e+01 7.8 1.36e-04 5.14e-05h 1
54 9.7920278e+00 2.67e-02 9.14e+10 2.8 1.17e+02 7.4 6.37e-03 3.95e-04h 1
55r 9.7920278e+00 2.67e-02 1.00e+03 2.8 0.00e+00 6.9 0.00e+00 4.17e-07R 4
56r 9.8121207e+00 2.35e-02 9.80e+00 0.7 6.41e-01 - 9.90e-01 9.79e-01f 1
57 9.7607620e+00 2.22e-02 1.61e+01 -1.2 5.23e-01 - 5.45e-01 5.22e-02h 1
58 8.6930560e+00 2.15e-02 1.23e+02 -0.2 2.14e+01 - 6.63e-01 2.23e-02f 1
59 8.7085537e+00 2.13e-02 1.57e+02 -4.0 8.26e+00 - 4.78e-02 7.61e-03h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
60 9.0962688e+00 4.00e-02 3.11e+03 0.9 2.40e+02 - 5.36e-01 8.23e-03f 1
61 9.3219840e+00 4.99e-02 4.10e+03 0.6 4.63e+00 - 8.31e-02 4.34e-02h 2
62 9.5875432e+00 5.45e-02 4.73e+03 0.6 6.04e+00 - 3.11e-02 1.98e-02h 1
63 9.6716101e+00 5.47e-02 3.98e+03 0.6 7.12e+01 - 1.08e-03 1.80e-02h 1
64 9.7123107e+00 5.45e-02 2.70e+04 0.6 3.06e+00 - 1.13e-01 3.64e-03h 1
65 1.0008104e+01 5.29e-02 7.82e+04 0.6 8.50e+00 - 8.85e-02 2.97e-02h 1
66 1.0309644e+01 5.28e-02 1.90e+05 -4.0 6.38e+01 - 8.21e-03 3.19e-03h 1
67 1.0474436e+01 5.27e-02 1.57e+08 2.0 1.23e+02 - 1.00e+00 1.42e-03h 1
68 1.0151827e+01 5.27e-02 8.52e+07 -3.2 4.08e+02 - 2.19e-04 5.90e-04f 1
69 1.0480921e+01 5.26e-02 1.05e+07 2.8 6.92e+02 - 2.30e-04 4.73e-04h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
70 1.0430822e+01 5.26e-02 2.10e+08 2.8 7.24e+02 - 4.67e-06 6.31e-05h 1
71 1.0425862e+01 5.26e-02 1.03e+11 2.8 2.46e+02 - 4.81e-03 1.28e-05h 1
72 1.0221603e+01 5.26e-02 5.22e+10 2.8 3.41e+02 - 1.47e-04 5.60e-04h 1
73 1.0457045e+01 5.26e-02 6.00e+10 2.8 1.39e+03 - 1.88e-04 1.71e-04h 1
74 1.0401796e+01 5.26e-02 1.32e+11 2.8 5.51e+03 - 4.61e-07 9.78e-06h 1
75 1.0409105e+01 5.26e-02 3.96e+16 2.8 1.35e+03 - 1.00e+00 5.49e-06h 1
76 1.0409079e+01 5.26e-02 3.95e+14 2.8 1.06e-03 10.9 9.90e-01 1.00e+00f 1
77 1.0422739e+01 1.38e+00 2.15e+14 2.8 1.44e+00 - 4.65e-01 1.00e+00f 1
78 1.0495333e+01 1.38e+00 2.15e+14 2.8 6.19e+03 - 6.67e-05 1.17e-05h 1
79 1.0461939e+01 1.38e+00 2.10e+14 2.1 3.89e-02 11.3 2.21e-02 1.00e+00f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
80 1.0009900e+01 1.38e+00 2.10e+14 1.4 6.63e+02 - 5.16e-05 6.80e-04h 1
81r 1.0009900e+01 1.38e+00 9.82e+02 1.4 0.00e+00 - 0.00e+00 2.58e-07R 6
82r 1.0012105e+01 5.73e-01 8.54e+02 -3.8 2.79e+01 - 3.30e-01 2.98e-02f 1
83 1.0012048e+01 5.73e-01 1.02e+03 0.7 9.08e+03 - 8.28e-07 6.24e-09f 1
84 1.0010070e+01 5.73e-01 6.65e+01 0.7 2.18e+04 - 1.30e-09 1.38e-07f 1
85 1.0316893e+01 5.73e-01 1.11e+03 -0.0 1.68e+03 - 3.11e-05 1.78e-04f 1
86 1.0320728e+01 5.73e-01 6.04e+02 -0.0 1.21e+03 - 5.38e-05 1.77e-06f 2
87 1.0381741e+01 5.73e-01 1.56e+03 -0.0 1.79e+03 - 2.96e-06 1.33e-05h 1
88r 1.0381741e+01 5.73e-01 9.99e+02 -0.0 0.00e+00 - 0.00e+00 2.65e-07R 5
89r 1.2610479e+01 5.55e-01 9.99e+02 1.7 7.40e+02 - 5.54e-02 6.25e-04f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
90r 1.2546303e+01 1.01e-01 9.55e+02 0.3 1.08e+01 - 1.69e-02 4.56e-02f 1
91 1.2465134e+01 1.00e-01 8.71e+01 -0.7 4.85e+00 - 6.29e-02 6.83e-03f 1
92 1.1939539e+01 9.91e-02 5.30e+01 -0.7 1.16e+01 - 7.80e-03 1.14e-02h 1
93 1.1730961e+01 9.89e-02 5.73e+02 -0.7 2.62e+01 - 6.82e-03 1.78e-03h 1
94 1.1433308e+01 9.88e-02 1.90e+03 -0.7 7.83e+01 - 2.93e-03 7.72e-04h 2
95 1.1268977e+01 9.88e-02 7.48e+03 -0.7 1.12e+02 - 2.67e-03 2.93e-04h 3
96 1.1069291e+01 9.88e-02 4.17e+04 -0.7 1.27e+02 - 4.61e-03 2.82e-04h 3
97 1.0888771e+01 9.87e-02 4.61e+05 -0.7 1.61e+02 - 8.07e-03 1.97e-04h 3
98 1.0737285e+01 9.87e-02 3.67e+05 -0.7 2.93e+03 - 1.85e-05 1.30e-04h 3
99 1.0715539e+01 9.87e-02 3.38e+05 -0.7 5.27e+04 - 8.56e-06 2.94e-05h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
100 1.0693286e+01 9.87e-02 4.70e+05 -0.7 5.11e+02 - 9.56e-05 3.03e-05h 1
101 1.0731626e+01 9.87e-02 4.68e+05 -0.7 2.03e+03 - 1.44e-05 1.99e-05h 1
102 1.0786321e+01 9.87e-02 4.70e+05 -0.7 2.14e+03 - 3.29e-05 2.64e-05h 1
103 1.1136307e+01 9.87e-02 3.99e+07 -0.7 2.18e+03 - 2.06e-01 1.65e-04h 1
104 1.1086725e+01 9.87e-02 3.87e+07 -0.7 4.06e+03 - 1.28e-05 2.47e-05h 1
105 1.1086821e+01 9.87e-02 3.87e+07 -0.7 1.11e+00 10.9 8.30e-06 8.30e-06s 6
106r 1.1086821e+01 9.87e-02 1.00e+03 -0.7 0.00e+00 10.4 0.00e+00 0.00e+00R 1
107r 1.1091247e+01 4.97e-02 9.85e+02 1.0 5.77e+01 - 9.94e-01 3.01e-03f 1
108 1.1090702e+01 4.97e-02 6.75e+03 -0.9 5.16e-01 - 1.00e+00 3.27e-04h 1
109 1.0955961e+01 4.97e-02 3.04e+04 1.1 2.88e+02 - 1.97e-03 2.54e-04h 2
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
110 1.0877498e+01 4.97e-02 1.20e+08 1.2 6.83e+03 - 1.00e+00 2.32e-04h 1
111 1.0902852e+01 4.97e-02 1.25e+08 2.8 7.09e+04 - 1.10e-04 2.70e-05h 1
112r 1.0902852e+01 4.97e-02 9.96e+02 2.8 0.00e+00 - 0.00e+00 4.50e-07R 7
113r 1.1058377e+01 3.34e-02 8.97e+00 0.4 6.65e-01 - 9.91e-01 9.64e-01f 1
114 1.1021157e+01 3.30e-02 9.68e+01 -0.3 1.11e+00 - 3.39e-01 1.10e-02f 1
115 1.1428055e+01 3.20e-02 2.06e+02 -0.3 1.60e+01 - 1.28e-02 2.91e-02f 1
116 1.1555228e+01 3.16e-02 7.99e+02 -0.3 1.35e+01 - 1.79e-01 1.24e-02h 1
117 1.1373794e+01 3.11e-02 1.50e+03 -0.3 1.09e+01 - 3.55e-02 1.70e-02h 1
118 1.1522596e+01 3.10e-02 3.87e+03 -0.3 4.14e+01 - 9.89e-03 1.77e-03h 1
119 1.1799507e+01 3.09e-02 2.15e+03 -0.3 5.51e+01 - 1.92e-03 3.74e-03h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
120 1.1799915e+01 3.09e-02 8.90e+06 -0.3 1.80e-01 9.9 1.00e+00 5.26e-04h 1
121 1.1801076e+01 3.09e-02 2.76e+09 -0.3 6.05e-01 9.4 2.59e-01 3.38e-04h 1
122 1.1803787e+01 3.09e-02 1.30e+10 -0.3 1.86e+00 9.0 2.64e-01 1.57e-04h 1
123 1.1812946e+01 3.09e-02 2.08e+10 -0.3 2.48e+01 8.5 1.36e-02 2.24e-04h 1
124 1.1823064e+01 3.09e-02 2.47e+10 -0.3 4.01e+01 8.0 1.25e-02 2.27e-04h 1
125 1.1827359e+01 3.09e-02 2.51e+10 -0.3 1.14e+02 7.5 1.88e-04 3.53e-05h 1
126 1.1836186e+01 3.09e-02 2.51e+10 -0.3 3.58e+02 7.1 4.78e-05 1.79e-05h 1
127r 1.1836186e+01 3.09e-02 1.00e+03 -0.3 0.00e+00 7.5 0.00e+00 3.33e-07R 5
128r 1.1907024e+01 9.32e-03 2.91e+02 -0.4 4.96e+00 - 9.67e-01 1.43e-02f 1
129 1.1907105e+01 9.32e-03 1.23e+03 -4.0 3.94e-01 - 2.22e-01 1.80e-04h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
130 1.2462793e+01 1.20e-02 1.32e+03 0.7 5.82e+02 - 8.15e-04 7.30e-04f 1
131 1.2442907e+01 1.20e-02 4.99e+03 -0.4 5.97e+01 - 3.39e-03 1.44e-04h 1
132 1.2161424e+01 1.20e-02 3.68e+03 -0.4 3.52e+02 - 3.64e-05 4.82e-04h 1
133 1.2158710e+01 1.20e-02 4.28e+03 -0.4 2.34e+03 - 1.25e-04 4.00e-05h 5
134 1.2161588e+01 1.20e-02 4.80e+03 -0.4 2.76e+03 - 2.08e-04 3.18e-05f 5
135 1.2163995e+01 1.20e-02 5.72e+03 -0.4 2.43e+03 - 3.17e-04 3.39e-05h 5
136 1.2162996e+01 1.20e-02 6.59e+03 -0.4 1.86e+03 - 2.09e-04 8.32e-05h 4
137 1.2167195e+01 1.20e-02 1.03e+05 -0.4 1.60e+03 - 1.76e-02 8.49e-05h 4
138 1.2155226e+01 1.20e-02 1.18e+05 -0.4 6.11e+02 - 1.33e-04 1.75e-05h 6
139 1.2125269e+01 1.20e-02 1.35e+05 -0.4 7.49e+02 - 1.67e-04 7.13e-05h 4
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
140 1.2224148e+01 1.20e-02 5.52e+04 -0.4 8.42e+02 - 5.03e-05 5.80e-04h 1
141 1.2378013e+01 1.20e-02 1.06e+05 -0.4 3.47e+02 - 2.54e-04 1.16e-03f 1
142 1.2378072e+01 1.20e-02 1.06e+05 -0.4 4.80e+00 7.0 5.47e-06 5.47e-06s 5
143 1.2392342e+01 1.20e-02 1.06e+05 -0.4 7.12e+01 - 2.15e-04 0.00e+00S 5
144r 1.2392342e+01 1.20e-02 9.99e+02 -0.4 0.00e+00 6.5 0.00e+00 4.01e-07R 2
145r 1.2418656e+01 7.42e-03 8.73e+02 0.7 4.56e+01 - 9.81e-01 4.34e-02f 1
146 1.2354649e+01 7.25e-03 9.01e+00 -4.0 7.49e-01 - 2.30e-01 2.30e-02f 1
147 1.1878053e+01 8.02e-03 1.19e+02 -1.1 3.76e+00 - 4.98e-01 5.72e-02f 1
148 1.2125243e+01 7.90e-03 1.59e+02 -1.7 1.43e+01 - 1.77e-02 1.59e-02h 1
149 1.2212088e+01 7.87e-03 1.52e+03 -0.1 8.76e+01 - 2.98e-02 3.37e-03h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
150 1.2239155e+01 7.30e-03 1.66e+03 0.8 9.36e+02 - 1.32e-03 2.08e-03f 1
151 1.2321534e+01 7.37e-03 1.62e+03 -1.7 7.02e+01 - 6.34e-03 2.52e-03h 1
152 1.2320057e+01 7.35e-03 4.92e+05 -1.2 1.97e-01 6.0 1.00e+00 1.96e-03h 1
153 1.2422019e+01 7.25e-03 4.61e+05 1.8 2.13e+02 - 5.22e-02 7.15e-03f 1
154 1.2435383e+01 7.23e-03 4.53e+05 -0.1 4.33e+01 - 1.93e-02 1.74e-03h 1
155 1.2406106e+01 6.74e-03 4.20e+05 1.3 1.07e+02 - 7.54e-02 1.47e-02f 1
156 1.2474637e+01 6.64e-03 4.01e+05 1.0 5.30e+01 - 6.11e-02 1.12e-02h 1
157 1.2433251e+01 6.59e-03 3.73e+05 1.8 2.70e+02 - 9.59e-02 7.21e-03f 1
158 1.2626991e+01 6.50e-03 3.64e+05 -4.0 2.34e+01 - 5.97e-03 1.15e-02h 1
159 1.3073248e+01 6.36e-03 2.64e+05 1.6 2.22e+01 - 3.70e-01 2.18e-02f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
160 1.3083032e+01 6.35e-03 2.60e+05 2.4 4.93e+01 - 2.15e-03 1.57e-03f 1
161 1.3250065e+01 6.21e-03 1.39e+05 1.6 1.88e+01 - 8.78e-01 2.14e-02f 1
162 1.3286336e+01 6.20e-03 1.34e+05 -4.0 1.51e+01 - 5.98e-04 1.34e-03h 1
163 1.3322455e+01 6.18e-03 1.26e+05 1.5 1.99e+01 - 6.22e-03 3.20e-03f 1
164 1.3646025e+01 6.03e-03 1.32e+05 1.1 1.42e+01 - 2.54e-01 2.37e-02f 1
165 1.3759294e+01 5.98e-03 2.52e+06 2.3 9.19e+00 - 1.00e+00 9.62e-03h 1
166 1.3965610e+01 5.91e-03 1.43e+07 2.8 2.04e+01 - 1.12e-01 1.05e-02h 2
167 1.4200154e+01 5.90e-03 1.45e+07 -3.1 1.16e+02 - 2.30e-03 1.88e-03h 1
168 1.4214558e+01 5.90e-03 1.41e+09 2.8 1.33e+01 - 1.00e+00 7.91e-04h 1
169 1.4443800e+01 5.84e-03 8.94e+09 2.8 1.93e+01 - 6.64e-02 9.60e-03h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
170 1.4449831e+01 5.84e-03 4.70e+12 2.8 1.01e+01 - 3.42e-01 4.33e-04h 1
171 1.4459560e+01 5.83e-03 8.49e+14 2.8 1.43e+01 - 6.52e-02 3.51e-04h 1
172 1.4459566e+01 5.68e-03 1.63e+14 2.8 8.61e-01 10.1 8.08e-01 1.10e-03h 8
173 1.4459568e+01 5.68e-03 6.14e+13 0.9 3.22e-01 10.5 6.23e-01 2.44e-04h 13
174r 1.4459568e+01 5.68e-03 9.02e+02 2.8 0.00e+00 - 0.00e+00 3.87e-07R 3
175r 1.4405541e+01 1.00e-02 7.58e+00 0.5 6.26e-01 - 9.92e-01 9.87e-01f 1
176r 1.4396527e+01 3.10e-03 1.08e+01 -4.0 1.70e-01 - 9.46e-01 8.69e-01f 1
177 1.4396531e+01 3.04e-03 8.97e+00 -4.0 4.15e-01 - 1.71e-01 1.71e-02h 1
178 1.4776548e+01 4.73e-03 1.74e+00 -1.1 4.72e+00 - 4.83e-01 1.02e-01f 1
179 1.4441092e+01 4.63e-03 1.11e+01 -1.8 1.07e+00 - 1.96e-01 2.20e-02f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
180 1.4409109e+01 4.44e-03 1.66e+01 -4.0 8.60e-01 - 7.21e-02 4.11e-02h 1
181 1.0705071e+01 1.71e-02 8.68e+01 0.1 2.39e+01 - 3.18e-01 1.90e-02f 1
182 1.2253845e+01 1.62e-02 1.18e+02 -1.3 2.15e+00 - 3.16e-01 1.50e-01H 1
183 1.3330306e+01 1.57e-02 1.33e+02 -0.3 4.64e+00 - 7.52e-02 5.02e-02h 1
184 1.3753720e+01 1.55e-02 1.72e+02 -0.3 1.24e+01 - 4.10e-02 1.59e-02h 1
185 1.4594092e+01 1.52e-02 1.34e+02 -0.3 4.18e+00 - 2.18e-02 3.27e-02h 1
186 1.5351624e+01 1.50e-02 3.26e+03 -0.3 1.08e+01 - 4.67e-01 2.48e-02h 1
187 1.5897314e+01 1.50e-02 1.39e+04 -0.3 3.96e+00 - 2.18e-01 1.37e-02h 3
188 1.6319099e+01 1.49e-02 9.03e+04 -0.3 7.12e+00 - 2.26e-01 9.68e-03h 3
189 1.6960398e+01 1.52e-02 3.23e+04 -0.3 1.79e+01 - 5.30e-03 2.18e-02h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
190 1.6959098e+01 1.52e-02 1.09e+05 -0.3 6.14e+01 - 8.07e-03 6.35e-05h 1
191 1.7012877e+01 1.52e-02 1.48e+05 -0.3 2.18e+01 - 3.56e-03 2.03e-03h 1
192 1.6816283e+01 1.51e-02 1.02e+05 -0.3 1.22e+02 - 9.95e-04 2.97e-03h 1
193 1.6815769e+01 1.51e-02 1.62e+05 -0.3 8.32e+01 - 1.45e-03 4.37e-05h 1
194 1.6815846e+01 1.51e-02 5.08e+06 -0.3 9.11e-02 10.0 7.73e-03 3.16e-04h 1
195 1.6816549e+01 1.51e-02 1.89e+07 -0.3 2.10e-01 9.6 4.57e-03 5.10e-04h 1
196 1.6817300e+01 1.51e-02 5.56e+08 -0.3 4.51e-01 9.1 6.90e-02 1.43e-04h 1
197 1.6817632e+01 1.51e-02 9.19e+08 -0.3 2.88e+00 8.6 2.10e-02 2.34e-05h 1
198 1.6829216e+01 1.51e-02 3.90e+09 -0.3 5.05e+00 8.1 8.91e-02 2.58e-04h 1
199 1.6979098e+01 1.51e-02 8.32e+09 -0.3 4.97e+00 7.6 1.25e-01 1.88e-03h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
200 1.7052418e+01 1.51e-02 8.47e+09 -0.3 1.93e+01 7.2 2.02e-03 5.89e-04h 1
Number of Iterations....: 200
(scaled) (unscaled)
Objective...............: 1.7052418482743665e+01 1.7052418482743665e+01
Dual infeasibility......: 8.4675032232238035e+09 8.4675032232238035e+09
Constraint violation....: 1.5109943196774944e-02 1.5109943196774944e-02
Variable bound violation: 3.3876199623250614e-09 3.3876199623250614e-09
Complementarity.........: 5.8238395381850179e+05 5.8238395381850179e+05
Overall NLP error.......: 9.1236201480974808e+02 8.4675032232238035e+09
Number of objective function evaluations = 329
Number of objective gradient evaluations = 199
Number of equality constraint evaluations = 329
Number of inequality constraint evaluations = 0
Number of equality constraint Jacobian evaluations = 209
Number of inequality constraint Jacobian evaluations = 0
Number of Lagrangian Hessian evaluations = 200
Total seconds in IPOPT = 6.478
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: 17.26635110659278 seconds
Average Δt: 0.43165877766481947
Min Δt: 0.010002925639383264
Max Δt: 0.4999573490285012
Control statistics:
Max |u|: 1.00000000338762
Mean |u|: 0.9481535430208462
||u||: 6.152668182015456Check 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: 36 / 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 = 17.26635110659278 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 3.4237879e-02 4.50e-01 1.02e+00 0.0 0.00e+00 - 0.00e+00 0.00e+00 0
1 2.7576512e-02 1.10e-01 4.67e-01 -4.0 4.86e-01 0.0 8.49e-01 1.00e+00h 1
2 3.8110585e-02 8.69e-02 1.03e+00 -1.4 4.99e-01 -0.5 7.35e-01 5.29e-01h 1
3 1.1277802e-01 9.01e-02 2.51e+00 -0.5 5.63e+00 -0.1 1.11e-01 1.11e-01f 1
4 1.3782769e-01 8.74e-02 5.56e+00 -2.2 1.79e+00 0.4 5.74e-01 3.27e-02h 1
5 6.0943049e-01 6.01e-02 1.53e+01 -2.0 1.72e+00 0.8 1.00e+00 3.39e-01h 1
6 7.9524900e-01 5.53e-02 2.15e+01 -1.3 1.51e+00 0.3 5.29e-01 8.24e-02h 1
7 1.7349979e+00 7.03e-02 5.12e+01 -1.5 1.71e+00 0.7 1.00e+00 2.77e-01h 1
8 3.4270569e+00 8.78e-02 3.44e+02 -1.2 2.38e+00 1.2 1.00e+00 2.29e-01h 1
9 7.3461141e+00 9.53e-02 1.88e+03 -0.9 2.68e+00 1.6 1.00e+00 2.80e-01h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
10 7.8758818e+00 8.57e-02 1.03e+03 0.6 2.94e+00 2.0 9.95e-01 1.01e-01f 1
11 9.5750043e+00 6.19e-02 7.02e+03 0.6 1.17e+00 2.5 8.57e-01 2.81e-01f 1
12 1.0143647e+01 4.32e-02 7.21e+03 0.2 3.08e-01 2.9 1.00e+00 3.02e-01h 1
13 1.1102107e+01 2.25e-02 5.18e+03 -0.3 3.94e-01 2.4 1.00e+00 4.77e-01h 1
14 1.2039900e+01 1.07e-02 1.19e+04 -0.4 2.21e-01 2.8 1.00e+00 5.19e-01h 1
15 1.2514960e+01 8.51e-03 9.61e+03 -0.7 7.85e-01 2.4 1.00e+00 2.08e-01h 1
16 1.2976420e+01 6.72e-03 9.36e+03 -0.6 2.40e-01 2.8 1.00e+00 2.09e-01h 1
17 1.3731196e+01 4.93e-03 1.11e+04 -0.7 3.97e-01 2.3 1.00e+00 2.65e-01h 1
18 1.4971724e+01 2.93e-03 5.15e+04 -1.1 3.51e-01 2.7 1.00e+00 3.91e-01h 1
19 1.6405591e+01 1.88e-03 1.79e+05 -1.4 6.89e-01 2.2 1.00e+00 3.65e-01h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
20 1.6464356e+01 1.85e-03 1.77e+05 -2.1 4.12e-01 2.7 1.00e+00 1.32e-02h 1
21 1.9371551e+01 1.62e-03 4.89e+05 -2.7 8.12e-01 2.2 1.00e+00 5.94e-01h 1
22 1.9404584e+01 1.61e-03 4.86e+05 -3.4 7.06e-01 2.6 1.00e+00 6.83e-03h 1
23 2.1159851e+01 7.94e-04 5.34e+05 -2.0 5.36e-01 2.1 1.00e+00 1.66e-01H 1
24 2.5327992e+01 1.14e-03 1.76e+06 -2.3 5.55e-01 2.6 9.22e-01 4.66e-01H 1
25 2.7691629e+01 1.09e-03 1.65e+06 -2.8 6.81e-01 2.1 1.00e+00 2.31e-01h 1
26 2.7852555e+01 1.08e-03 1.63e+06 -3.1 7.63e-01 2.5 1.00e+00 1.39e-02h 1
27 3.0411291e+01 1.13e-03 3.23e+06 -2.9 7.69e-01 2.9 1.00e+00 2.13e-01h 2
28 3.1798703e+01 6.57e-03 3.16e+06 -1.0 2.66e+00 2.5 1.00e+00 1.14e-01f 1
29 3.1796074e+01 6.57e-03 3.16e+06 -1.1 4.61e+00 2.9 1.51e-02 6.56e-04h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
30 4.0846164e+01 2.59e-03 1.58e+07 -1.1 8.54e-01 2.4 6.66e-01 6.06e-01f 1
31 4.1259669e+01 2.54e-03 1.56e+07 -1.1 1.29e+00 2.8 1.00e+00 1.76e-02h 1
32 4.7667429e+01 2.01e-03 1.52e+07 -1.1 1.37e+00 2.4 1.00e+00 2.50e-01f 3
33 5.2418773e+01 1.91e-03 2.28e+07 -1.1 1.59e+00 2.8 1.00e+00 1.50e-01h 2
34 6.6319766e+01 2.06e-03 6.43e+07 -1.1 1.84e+00 2.3 5.73e-01 3.09e-01H 1
35 6.6442804e+01 2.06e-03 6.42e+07 -1.1 2.05e+00 3.6 1.00e+00 2.63e-03h 1
36 7.0213619e+01 2.03e-03 8.11e+07 -1.1 2.33e+00 3.2 1.89e-01 7.13e-02h 3
37 7.5777255e+01 2.09e-03 9.85e+07 -1.1 2.54e+00 2.7 3.16e-01 9.37e-02h 2
38 7.5471217e+01 2.09e-03 9.85e+07 -1.1 2.08e+02 3.1 1.57e-03 8.18e-04h 1
39 7.5483274e+01 2.09e-03 9.85e+07 -1.1 4.74e+00 3.5 7.27e-01 4.19e-04h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
40 8.0506411e+01 2.10e-03 1.42e+08 -1.1 2.33e+00 3.1 1.60e-01 8.03e-02h 4
41 8.2311459e+01 2.07e-03 1.45e+08 -1.1 2.52e+00 2.6 1.12e-01 2.44e-02h 3
42 8.8471175e+01 2.16e-03 2.43e+08 -1.1 2.68e+00 3.0 1.00e+00 7.92e-02h 3
43 9.2885998e+01 2.18e-03 2.92e+08 -1.1 3.09e+00 2.5 4.29e-01 4.66e-02h 3
44 9.6577191e+01 2.17e-03 3.43e+08 -1.1 4.11e+00 2.1 9.37e-01 3.35e-02h 3
45 9.7182483e+01 2.16e-03 3.42e+08 -1.1 3.84e+00 2.5 1.85e-01 5.17e-03h 1
46 9.9328504e+01 2.15e-03 3.45e+08 -1.1 4.77e+00 2.0 5.73e-02 1.72e-02h 1
47 1.0445458e+02 2.19e-03 3.90e+08 -1.1 4.20e+00 2.4 6.42e-01 4.00e-02f 3
Number of Iterations....: 48
Number of objective function evaluations = 100
Number of objective gradient evaluations = 49
Number of equality constraint evaluations = 100
Number of inequality constraint evaluations = 0
Number of equality constraint Jacobian evaluations = 48
Number of inequality constraint Jacobian evaluations = 0
Number of Lagrangian Hessian evaluations = 48
Total seconds in IPOPT = 0.232
EXIT: Invalid number in NLP function or derivative detected.
Comparison:
Minimum time:
Total time: 17.26635110659278 s
||u||: 6.152668182015456
Max |u|: 1.00000000338762
Fixed time:
Total time: 58.77817224876642 s
||u||: 4.242818669818563
Max |u|: 0.999998435042109Step 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.8504134e-01 1.65e-01 1.00e-01 0.0 0.00e+00 - 0.00e+00 0.00e+00 0
1 5.8668146e-01 1.07e-01 2.32e+00 -0.8 8.02e-01 - 1.00e+00 9.47e-01h 1
2 6.4525443e-01 1.06e-01 8.96e+00 1.1 1.21e+02 - 3.93e-02 7.79e-03f 1
3 7.8032911e-01 1.91e-01 4.15e+00 -0.3 1.23e+00 - 5.39e-01 7.21e-01h 1
4 7.9335744e-01 1.73e-01 3.48e+00 -4.0 4.36e+00 - 1.13e-01 9.50e-02h 1
5 8.0275044e-01 1.27e-01 2.73e+00 -4.0 1.47e+00 - 2.52e-01 2.40e-01h 1
6 8.3663909e-01 9.82e-02 2.50e+00 -4.0 1.29e+00 - 2.22e-01 2.25e-01h 1
7 9.0143614e-01 6.95e-02 6.94e+00 -0.9 1.04e+00 - 3.22e-01 2.93e-01h 1
8 9.5218893e-01 5.79e-02 7.47e+00 -0.7 1.44e+00 - 2.74e-01 1.65e-01h 1
9 1.0368440e+00 4.06e-02 1.26e+01 -0.9 1.29e+00 - 6.02e-01 3.00e-01h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
10 1.1258927e+00 3.24e-02 2.87e+01 -0.5 1.44e+00 0.0 8.79e-01 2.05e-01h 1
11 1.1503057e+00 3.13e-02 1.15e+02 0.3 9.00e+00 - 8.17e-01 3.40e-02h 1
12 1.2376135e+00 2.33e-02 5.54e+02 0.4 1.65e+00 - 1.00e+00 2.79e-01h 1
13 1.2820560e+00 2.14e-02 6.90e+02 -4.0 2.27e+00 - 8.70e-02 8.10e-02h 1
14 1.2980498e+00 2.09e-02 6.82e+02 -4.0 7.24e+00 - 3.37e-02 2.28e-02h 1
15 1.3351533e+00 2.06e-02 1.61e+04 2.0 2.27e+01 - 7.78e-01 9.61e-03f 1
16 1.3902780e+00 1.86e-02 3.88e+04 1.7 3.73e+00 - 3.24e-01 9.66e-02h 1
17 1.4065771e+00 1.82e-02 6.40e+04 2.8 5.35e+00 - 7.89e-02 1.83e-02h 1
18 1.4271847e+00 1.80e-02 1.21e+05 2.8 1.16e+01 - 9.15e-02 1.08e-02h 2
19 1.4670788e+00 1.76e-02 3.20e+05 2.8 6.35e+00 - 8.67e-02 2.45e-02h 2
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
20 1.5153756e+00 1.71e-02 1.36e+06 2.8 6.26e+00 - 7.11e-02 2.98e-02h 1
21 1.5801327e+00 1.65e-02 7.75e+06 2.8 8.81e+00 - 6.65e-02 3.20e-02h 1
22 1.5813911e+00 1.65e-02 7.75e+06 -3.5 1.70e+01 3.1 4.67e-03 4.72e-04h 5
23 1.5842226e+00 1.65e-02 7.74e+06 2.8 4.30e+01 2.7 7.25e-03 9.93e-04h 4
24 1.5950603e+00 1.65e-02 7.72e+06 2.8 2.51e+01 - 1.72e-02 3.52e-03h 3
25 1.6105742e+00 1.64e-02 7.70e+06 2.8 1.37e+01 - 3.86e-02 4.85e-03h 3
26 1.6264888e+00 1.63e-02 7.68e+06 2.8 7.01e+00 - 4.55e-02 4.95e-03h 4
27 1.6624821e+00 1.61e-02 7.78e+06 2.8 7.26e+00 - 3.71e-02 1.11e-02h 3
28 1.6941382e+00 1.60e-02 8.74e+06 2.8 1.97e+01 - 3.64e-01 8.49e-03h 2
29 1.7608624e+00 1.57e-02 1.21e+08 2.8 1.29e+01 - 1.95e-02 1.85e-02h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
30 1.7645155e+00 1.56e-02 1.22e+08 2.8 5.63e+00 - 1.23e-01 2.15e-03h 1
31 1.8066772e+00 1.53e-02 1.45e+08 2.8 6.25e+00 - 1.83e-01 2.30e-02h 2
32 1.8351707e+00 1.52e-02 2.79e+08 2.8 3.76e+01 - 7.88e-03 5.29e-03h 1
33 1.8373036e+00 1.52e-02 2.86e+08 2.8 8.75e+00 - 1.66e-02 1.29e-03h 1
34 1.8448658e+00 1.51e-02 3.30e+08 2.8 1.85e+01 - 1.73e-03 3.87e-03h 2
35 1.8508006e+00 1.51e-02 4.15e+09 2.8 5.99e+00 6.7 8.37e-01 3.57e-03h 3
36 1.8535343e+00 1.51e-02 4.17e+09 2.8 6.86e+01 - 9.33e-04 3.84e-04h 5
37 1.8545641e+00 1.51e-02 4.27e+09 2.8 6.54e+01 - 1.56e-03 1.47e-04h 6
38 1.8556283e+00 1.51e-02 1.46e+10 2.8 6.24e+01 - 1.31e-01 1.57e-04h 6
39 1.8753167e+00 1.50e-02 1.43e+10 2.8 1.00e+02 - 1.10e-03 1.87e-03h 2
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
40 1.8720664e+00 1.50e-02 1.51e+10 2.8 3.70e+01 - 5.11e-03 9.99e-04h 4
41 1.8672298e+00 1.50e-02 1.71e+10 2.8 2.70e+01 - 8.35e-03 2.40e-03h 3
42 1.8754327e+00 1.49e-02 3.19e+10 2.8 1.67e+01 - 2.82e-02 3.16e-03h 3
43 1.8831748e+00 1.49e-02 1.12e+12 2.7 2.77e+01 - 1.00e+00 2.15e-03h 3
44 1.8855963e+00 1.49e-02 1.21e+12 2.8 1.19e+02 - 2.56e-03 1.88e-04h 4
45 1.9025405e+00 1.47e-02 5.34e+12 2.8 4.79e+00 - 1.02e-01 1.24e-02h 2
46 1.9130303e+00 1.47e-02 5.82e+12 2.8 6.15e+01 - 6.62e-03 1.59e-03h 1
47 1.9131364e+00 1.47e-02 1.42e+14 2.5 6.10e+01 - 1.00e+00 1.61e-05h 1
48 1.9145913e+00 1.47e-02 1.60e+15 2.8 3.60e+00 - 1.46e-01 1.61e-03h 1
49 1.9228847e+00 1.45e-02 1.16e+17 2.8 2.90e+00 - 1.00e+00 1.13e-02h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
50 1.9233194e+00 1.45e-02 7.13e+17 2.8 1.83e+00 - 4.06e-02 1.52e-03h 1
51 1.9236775e+00 1.45e-02 3.59e+18 2.8 2.22e+00 - 1.00e+00 6.41e-04h 1
52 1.9241398e+00 1.45e-02 7.74e+18 2.8 4.18e+00 - 2.15e-01 3.28e-04h 1
53 1.9244781e+00 1.45e-02 7.53e+19 2.8 6.78e+00 - 2.20e-01 2.41e-04h 1
54 1.9245473e+00 1.45e-02 2.10e+20 2.8 3.21e+01 - 7.70e-02 7.83e-05h 1
55 1.9245654e+00 1.45e-02 1.03e+22 2.8 3.41e+00 - 3.21e-01 1.57e-05h 1
56r 1.9245654e+00 1.45e-02 9.00e+02 2.8 0.00e+00 - 0.00e+00 4.28e-07R 7
57r 1.9110603e+00 1.28e-02 9.53e+00 0.5 6.33e-01 - 9.89e-01 9.85e-01f 1
58 1.9060834e+00 1.24e-02 4.37e+01 -1.3 5.68e-01 - 9.65e-01 3.21e-02h 1
59 1.9228613e+00 1.14e-02 5.78e+02 -1.6 2.17e-01 - 1.00e+00 7.27e-02h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
60 1.9247183e+00 1.14e-02 2.05e+05 -0.9 4.96e+00 - 1.00e+00 2.73e-03h 1
61 1.9248692e+00 1.14e-02 6.07e+08 -0.8 2.22e+01 - 1.00e+00 3.29e-04h 1
62 1.9497336e+00 1.09e-02 5.97e+06 2.2 5.85e+00 - 9.90e-01 4.25e-02f 1
63r 1.9497336e+00 1.09e-02 9.19e+02 2.8 0.00e+00 - 0.00e+00 3.20e-07R 6
64r 1.9385096e+00 9.84e-03 8.48e+00 0.5 6.30e-01 - 9.91e-01 9.86e-01f 1
65r 1.9384792e+00 2.62e-04 1.76e-01 -4.0 1.61e-02 - 9.81e-01 9.79e-01f 1
66 1.9345872e+00 2.53e-04 4.05e+01 -1.4 3.95e-01 - 9.69e-01 3.38e-02h 1
67 1.9475365e+00 2.39e-04 7.16e+02 -1.7 2.28e-01 - 1.00e+00 5.54e-02h 1
68 1.9477521e+00 2.38e-04 3.84e+05 -0.9 6.72e+00 - 1.00e+00 1.86e-03h 1
69 1.9477888e+00 2.38e-04 2.55e+09 -0.7 3.00e+01 - 1.00e+00 1.49e-04h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
70 1.9019457e+00 2.41e-04 2.52e+07 0.8 7.15e+00 - 9.90e-01 6.41e-02h 1
71 1.9022075e+00 3.20e-04 1.26e+00 -1.1 2.69e-03 - 1.00e+00 1.00e+00f 1
72r 1.9022075e+00 3.20e-04 1.00e+03 -3.5 0.00e+00 - 0.00e+00 2.79e-07R 4
73r 1.9022646e+00 3.91e-04 9.07e+02 -1.4 8.99e-02 - 9.90e-01 6.48e-03f 1
74r 1.9050142e+00 6.57e-04 3.47e+01 -2.0 6.84e-02 - 7.13e-01 1.00e+00f 1
75r 1.8993280e+00 9.32e-04 1.02e-01 -2.0 7.77e-02 - 1.00e+00 1.00e+00f 1
76r 1.8805450e+00 1.03e-03 5.52e-01 -3.0 6.69e-02 - 9.65e-01 1.00e+00f 1
77r 1.9060200e+00 9.97e-04 2.46e-02 -4.0 2.60e-02 - 1.00e+00 1.00e+00f 1
78r 1.9079930e+00 9.94e-04 1.24e-04 -4.0 9.08e-03 - 1.00e+00 1.00e+00h 1
79r 1.9070924e+00 9.94e-04 1.07e-06 -4.0 8.98e-03 - 1.00e+00 1.00e+00h 1
Number of Iterations....: 79
(scaled) (unscaled)
Objective...............: 1.9070482818911412e+00 1.9070482818911412e+00
Dual infeasibility......: 1.0499932988265981e-01 1.0499932988265981e-01
Constraint violation....: 9.9390500900463320e-04 9.9390500900463320e-04
Variable bound violation: 0.0000000000000000e+00 0.0000000000000000e+00
Complementarity.........: 1.0000193869312377e-04 1.0000193869312377e-04
Overall NLP error.......: 1.0499932988265981e-01 1.0499932988265981e-01
Number of objective function evaluations = 172
Number of objective gradient evaluations = 73
Number of equality constraint evaluations = 172
Number of inequality constraint evaluations = 0
Number of equality constraint Jacobian evaluations = 84
Number of inequality constraint Jacobian evaluations = 0
Number of Lagrangian Hessian evaluations = 80
Total seconds in IPOPT = 0.366
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.8500413e+00 1.65e-01 1.00e+00 0.0 0.00e+00 - 0.00e+00 0.00e+00 0
1 3.5271835e+00 8.08e-02 1.15e+00 -0.8 5.48e-01 - 9.98e-01 8.46e-01h 1
2 2.2281675e+00 5.90e-02 1.90e+00 -4.0 1.75e+00 - 3.32e-01 2.67e-01f 1
3 3.0664106e+00 7.74e-02 7.56e+00 -0.4 2.51e+00 0.0 6.04e-01 2.17e-01f 1
4 3.3672934e+00 6.49e-02 3.77e+01 0.2 1.41e+00 1.3 4.76e-01 1.23e-01h 1
5 3.9209729e+00 5.51e-02 1.29e+02 0.4 2.59e+00 0.9 9.24e-01 1.30e-01h 1
6 4.1756561e+00 5.36e-02 1.72e+02 0.4 3.57e+00 - 7.12e-01 7.09e-02h 1
7 4.8246117e+00 5.03e-02 7.95e+02 1.2 3.46e+00 - 8.04e-01 7.72e-02h 1
8 4.7559593e+00 4.13e-02 2.75e+03 1.3 1.29e+00 - 9.62e-01 1.81e-01h 1
9 4.4244523e+00 3.67e-02 1.40e+03 -4.0 2.74e+00 - 5.78e-02 1.18e-01f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
10 4.9352373e+00 3.83e-02 2.96e+04 1.9 5.38e+00 - 8.47e-01 6.51e-02f 1
11 5.0749194e+00 3.73e-02 2.90e+04 2.0 1.70e+01 - 7.31e-02 2.42e-02h 1
12 5.0970574e+00 3.71e-02 3.26e+04 2.1 4.04e+00 - 5.18e-02 4.99e-03h 1
13 5.3871791e+00 3.59e-02 2.94e+04 1.8 1.17e+01 - 2.21e-01 2.98e-02h 1
14 5.7077419e+00 3.53e-02 3.02e+04 2.8 1.83e+01 - 2.14e-02 1.58e-02f 1
15 5.6988517e+00 3.52e-02 4.98e+04 -4.0 4.23e+00 - 1.33e-01 5.31e-03h 1
16 5.9346874e+00 3.48e-02 6.46e+04 2.6 2.63e+01 3.1 2.05e-01 9.78e-03f 1
17 5.9226837e+00 3.23e-02 1.41e+05 1.5 2.49e+00 - 3.56e-01 7.65e-02h 1
18 5.8346772e+00 3.15e-02 1.05e+05 -3.9 7.30e+00 - 7.45e-03 2.53e-02h 1
19 5.9941700e+00 3.10e-02 1.26e+05 1.9 1.14e+01 - 7.59e-02 1.50e-02h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
20 6.1192761e+00 3.07e-02 1.32e+06 2.8 1.19e+01 4.4 5.43e-01 1.03e-02f 1
21 6.5257532e+00 3.01e-02 1.30e+06 2.8 2.28e+01 - 1.05e-02 1.77e-02h 1
22 6.6565668e+00 2.97e-02 1.31e+06 -3.4 5.26e+00 - 3.50e-02 1.34e-02h 1
23 6.8687293e+00 2.90e-02 2.01e+06 2.8 8.71e+00 - 1.88e-01 2.57e-02h 1
24 6.8390819e+00 2.85e-02 1.51e+06 -3.2 1.21e+01 - 2.80e-03 1.42e-02h 1
25 6.9058548e+00 2.85e-02 1.80e+06 2.6 2.56e+01 - 3.52e-02 2.82e-03h 1
26 7.0338899e+00 2.82e-02 1.67e+06 2.8 2.67e+01 - 3.63e-03 9.64e-03h 1
27 7.1070659e+00 2.81e-02 2.66e+06 2.8 3.24e+01 - 1.13e-02 2.66e-03h 1
28 7.1380181e+00 2.81e-02 3.67e+06 -3.3 3.81e+01 - 6.38e-03 9.19e-04h 1
29 7.1509735e+00 2.79e-02 1.98e+06 2.8 6.57e+00 5.7 4.14e-03 8.09e-03h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
30 7.1905910e+00 2.78e-02 3.99e+06 2.8 8.38e+00 6.2 4.97e-03 2.10e-03h 1
31 7.2964359e+00 2.77e-02 3.57e+06 -3.3 1.11e+01 5.7 1.77e-03 2.88e-03h 1
32 7.4104966e+00 2.76e-02 6.38e+06 2.8 7.80e+00 6.1 7.04e-03 3.83e-03h 1
33 7.5273855e+00 2.75e-02 1.20e+07 2.8 8.00e+00 6.5 6.28e-03 3.93e-03h 1
34 7.6035803e+00 2.75e-02 1.19e+07 2.8 1.82e+01 6.1 1.32e-03 1.32e-03h 1
35 7.7627971e+00 2.74e-02 2.40e+07 2.8 1.02e+01 6.5 7.24e-03 3.44e-03h 1
36 7.9422291e+00 2.73e-02 5.72e+07 2.8 1.10e+01 6.9 7.31e-03 3.69e-03h 1
37 8.0522820e+00 2.72e-02 1.12e+08 2.8 1.23e+01 7.3 3.82e-03 1.94e-03h 1
38 8.2577369e+00 2.71e-02 3.13e+08 2.8 1.47e+01 6.9 1.73e-02 3.34e-03h 1
39 8.4955998e+00 2.70e-02 2.16e+08 2.8 1.60e+01 7.3 9.05e-04 3.22e-03h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
40 8.5412178e+00 2.70e-02 2.62e+08 2.8 2.30e+01 6.8 2.92e-03 7.85e-04h 1
41 8.7199045e+00 2.69e-02 3.28e+08 2.3 3.56e+01 6.3 1.32e-02 5.38e-03h 1
42 8.7277915e+00 2.69e-02 3.29e+08 -3.3 6.04e+01 5.9 9.87e-05 7.49e-04h 1
43 8.7283752e+00 2.69e-02 1.13e+09 2.8 2.66e+01 8.1 7.88e-03 1.42e-05h 1
44 8.9127039e+00 2.68e-02 1.10e+09 2.7 2.21e+01 7.6 1.86e-03 2.03e-03h 1
45 8.9615092e+00 2.68e-02 1.06e+09 2.8 2.53e+01 8.0 4.40e-04 5.17e-04h 1
46 8.9626772e+00 2.68e-02 2.06e+10 2.8 2.82e+01 8.5 1.28e-02 1.26e-05h 1
47 9.2792030e+00 2.67e-02 1.94e+10 2.8 3.53e+01 8.0 1.45e-03 3.21e-03h 1
48 9.2801668e+00 2.67e-02 2.38e+10 2.8 5.76e+01 7.5 1.69e-02 1.97e-05h 1
49 9.3039099e+00 2.67e-02 3.09e+10 2.8 5.48e+01 7.0 1.05e-02 1.41e-04h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
50 9.5106751e+00 2.67e-02 4.65e+10 2.8 5.97e+01 7.5 1.35e-02 8.91e-04h 2
51 9.6167299e+00 2.67e-02 5.70e+10 2.8 9.19e+01 7.0 6.16e-03 4.71e-04h 1
52 9.6260223e+00 2.67e-02 5.67e+10 -1.6 7.12e+01 8.3 3.11e-06 2.37e-05h 1
53 9.6466476e+00 2.67e-02 5.74e+10 2.8 9.13e+01 7.8 1.36e-04 5.14e-05h 1
54 9.7920278e+00 2.67e-02 9.14e+10 2.8 1.17e+02 7.4 6.37e-03 3.95e-04h 1
55r 9.7920278e+00 2.67e-02 1.00e+03 2.8 0.00e+00 6.9 0.00e+00 4.17e-07R 4
56r 9.8121207e+00 2.35e-02 9.80e+00 0.7 6.41e-01 - 9.90e-01 9.79e-01f 1
57 9.7607620e+00 2.22e-02 1.61e+01 -1.2 5.23e-01 - 5.45e-01 5.22e-02h 1
58 8.6930560e+00 2.15e-02 1.23e+02 -0.2 2.14e+01 - 6.63e-01 2.23e-02f 1
59 8.7085537e+00 2.13e-02 1.57e+02 -4.0 8.26e+00 - 4.78e-02 7.61e-03h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
60 9.0962688e+00 4.00e-02 3.11e+03 0.9 2.40e+02 - 5.36e-01 8.23e-03f 1
61 9.3219840e+00 4.99e-02 4.10e+03 0.6 4.63e+00 - 8.31e-02 4.34e-02h 2
62 9.5875432e+00 5.45e-02 4.73e+03 0.6 6.04e+00 - 3.11e-02 1.98e-02h 1
63 9.6716101e+00 5.47e-02 3.98e+03 0.6 7.12e+01 - 1.08e-03 1.80e-02h 1
64 9.7123107e+00 5.45e-02 2.70e+04 0.6 3.06e+00 - 1.13e-01 3.64e-03h 1
65 1.0008104e+01 5.29e-02 7.82e+04 0.6 8.50e+00 - 8.85e-02 2.97e-02h 1
66 1.0309644e+01 5.28e-02 1.90e+05 -4.0 6.38e+01 - 8.21e-03 3.19e-03h 1
67 1.0474436e+01 5.27e-02 1.57e+08 2.0 1.23e+02 - 1.00e+00 1.42e-03h 1
68 1.0151827e+01 5.27e-02 8.52e+07 -3.2 4.08e+02 - 2.19e-04 5.90e-04f 1
69 1.0480921e+01 5.26e-02 1.05e+07 2.8 6.92e+02 - 2.30e-04 4.73e-04h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
70 1.0430822e+01 5.26e-02 2.10e+08 2.8 7.24e+02 - 4.67e-06 6.31e-05h 1
71 1.0425862e+01 5.26e-02 1.03e+11 2.8 2.46e+02 - 4.81e-03 1.28e-05h 1
72 1.0221603e+01 5.26e-02 5.22e+10 2.8 3.41e+02 - 1.47e-04 5.60e-04h 1
73 1.0457045e+01 5.26e-02 6.00e+10 2.8 1.39e+03 - 1.88e-04 1.71e-04h 1
74 1.0401796e+01 5.26e-02 1.32e+11 2.8 5.51e+03 - 4.61e-07 9.78e-06h 1
75 1.0409105e+01 5.26e-02 3.96e+16 2.8 1.35e+03 - 1.00e+00 5.49e-06h 1
76 1.0409079e+01 5.26e-02 3.95e+14 2.8 1.06e-03 10.9 9.90e-01 1.00e+00f 1
77 1.0422739e+01 1.38e+00 2.15e+14 2.8 1.44e+00 - 4.65e-01 1.00e+00f 1
78 1.0495333e+01 1.38e+00 2.15e+14 2.8 6.19e+03 - 6.67e-05 1.17e-05h 1
79 1.0461939e+01 1.38e+00 2.10e+14 2.1 3.89e-02 11.3 2.21e-02 1.00e+00f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
80 1.0009900e+01 1.38e+00 2.10e+14 1.4 6.63e+02 - 5.16e-05 6.80e-04h 1
81r 1.0009900e+01 1.38e+00 9.82e+02 1.4 0.00e+00 - 0.00e+00 2.58e-07R 6
82r 1.0012105e+01 5.73e-01 8.54e+02 -3.8 2.79e+01 - 3.30e-01 2.98e-02f 1
83 1.0012048e+01 5.73e-01 1.02e+03 0.7 9.08e+03 - 8.28e-07 6.24e-09f 1
84 1.0010070e+01 5.73e-01 6.65e+01 0.7 2.18e+04 - 1.30e-09 1.38e-07f 1
85 1.0316893e+01 5.73e-01 1.11e+03 -0.0 1.68e+03 - 3.11e-05 1.78e-04f 1
86 1.0320728e+01 5.73e-01 6.04e+02 -0.0 1.21e+03 - 5.38e-05 1.77e-06f 2
87 1.0381741e+01 5.73e-01 1.56e+03 -0.0 1.79e+03 - 2.96e-06 1.33e-05h 1
88r 1.0381741e+01 5.73e-01 9.99e+02 -0.0 0.00e+00 - 0.00e+00 2.65e-07R 5
89r 1.2610479e+01 5.55e-01 9.99e+02 1.7 7.40e+02 - 5.54e-02 6.25e-04f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
90r 1.2546303e+01 1.01e-01 9.55e+02 0.3 1.08e+01 - 1.69e-02 4.56e-02f 1
91 1.2465134e+01 1.00e-01 8.71e+01 -0.7 4.85e+00 - 6.29e-02 6.83e-03f 1
92 1.1939539e+01 9.91e-02 5.30e+01 -0.7 1.16e+01 - 7.80e-03 1.14e-02h 1
93 1.1730961e+01 9.89e-02 5.73e+02 -0.7 2.62e+01 - 6.82e-03 1.78e-03h 1
94 1.1433308e+01 9.88e-02 1.90e+03 -0.7 7.83e+01 - 2.93e-03 7.72e-04h 2
95 1.1268977e+01 9.88e-02 7.48e+03 -0.7 1.12e+02 - 2.67e-03 2.93e-04h 3
96 1.1069291e+01 9.88e-02 4.17e+04 -0.7 1.27e+02 - 4.61e-03 2.82e-04h 3
97 1.0888771e+01 9.87e-02 4.61e+05 -0.7 1.61e+02 - 8.07e-03 1.97e-04h 3
98 1.0737285e+01 9.87e-02 3.67e+05 -0.7 2.93e+03 - 1.85e-05 1.30e-04h 3
99 1.0715539e+01 9.87e-02 3.38e+05 -0.7 5.27e+04 - 8.56e-06 2.94e-05h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
100 1.0693286e+01 9.87e-02 4.70e+05 -0.7 5.11e+02 - 9.56e-05 3.03e-05h 1
101 1.0731626e+01 9.87e-02 4.68e+05 -0.7 2.03e+03 - 1.44e-05 1.99e-05h 1
102 1.0786321e+01 9.87e-02 4.70e+05 -0.7 2.14e+03 - 3.29e-05 2.64e-05h 1
103 1.1136307e+01 9.87e-02 3.99e+07 -0.7 2.18e+03 - 2.06e-01 1.65e-04h 1
104 1.1086725e+01 9.87e-02 3.87e+07 -0.7 4.06e+03 - 1.28e-05 2.47e-05h 1
105 1.1086821e+01 9.87e-02 3.87e+07 -0.7 1.11e+00 10.9 8.30e-06 8.30e-06s 6
106r 1.1086821e+01 9.87e-02 1.00e+03 -0.7 0.00e+00 10.4 0.00e+00 0.00e+00R 1
107r 1.1091247e+01 4.97e-02 9.85e+02 1.0 5.77e+01 - 9.94e-01 3.01e-03f 1
108 1.1090702e+01 4.97e-02 6.75e+03 -0.9 5.16e-01 - 1.00e+00 3.27e-04h 1
109 1.0955961e+01 4.97e-02 3.04e+04 1.1 2.88e+02 - 1.97e-03 2.54e-04h 2
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
110 1.0877498e+01 4.97e-02 1.20e+08 1.2 6.83e+03 - 1.00e+00 2.32e-04h 1
111 1.0902852e+01 4.97e-02 1.25e+08 2.8 7.09e+04 - 1.10e-04 2.70e-05h 1
112r 1.0902852e+01 4.97e-02 9.96e+02 2.8 0.00e+00 - 0.00e+00 4.50e-07R 7
113r 1.1058377e+01 3.34e-02 8.97e+00 0.4 6.65e-01 - 9.91e-01 9.64e-01f 1
114 1.1021157e+01 3.30e-02 9.68e+01 -0.3 1.11e+00 - 3.39e-01 1.10e-02f 1
115 1.1428055e+01 3.20e-02 2.06e+02 -0.3 1.60e+01 - 1.28e-02 2.91e-02f 1
116 1.1555228e+01 3.16e-02 7.99e+02 -0.3 1.35e+01 - 1.79e-01 1.24e-02h 1
117 1.1373794e+01 3.11e-02 1.50e+03 -0.3 1.09e+01 - 3.55e-02 1.70e-02h 1
118 1.1522596e+01 3.10e-02 3.87e+03 -0.3 4.14e+01 - 9.89e-03 1.77e-03h 1
119 1.1799507e+01 3.09e-02 2.15e+03 -0.3 5.51e+01 - 1.92e-03 3.74e-03h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
120 1.1799915e+01 3.09e-02 8.90e+06 -0.3 1.80e-01 9.9 1.00e+00 5.26e-04h 1
121 1.1801076e+01 3.09e-02 2.76e+09 -0.3 6.05e-01 9.4 2.59e-01 3.38e-04h 1
122 1.1803787e+01 3.09e-02 1.30e+10 -0.3 1.86e+00 9.0 2.64e-01 1.57e-04h 1
123 1.1812946e+01 3.09e-02 2.08e+10 -0.3 2.48e+01 8.5 1.36e-02 2.24e-04h 1
124 1.1823064e+01 3.09e-02 2.47e+10 -0.3 4.01e+01 8.0 1.25e-02 2.27e-04h 1
125 1.1827359e+01 3.09e-02 2.51e+10 -0.3 1.14e+02 7.5 1.88e-04 3.53e-05h 1
126 1.1836186e+01 3.09e-02 2.51e+10 -0.3 3.58e+02 7.1 4.78e-05 1.79e-05h 1
127r 1.1836186e+01 3.09e-02 1.00e+03 -0.3 0.00e+00 7.5 0.00e+00 3.33e-07R 5
128r 1.1907024e+01 9.32e-03 2.91e+02 -0.4 4.96e+00 - 9.67e-01 1.43e-02f 1
129 1.1907105e+01 9.32e-03 1.23e+03 -4.0 3.94e-01 - 2.22e-01 1.80e-04h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
130 1.2462793e+01 1.20e-02 1.32e+03 0.7 5.82e+02 - 8.15e-04 7.30e-04f 1
131 1.2442907e+01 1.20e-02 4.99e+03 -0.4 5.97e+01 - 3.39e-03 1.44e-04h 1
132 1.2161424e+01 1.20e-02 3.68e+03 -0.4 3.52e+02 - 3.64e-05 4.82e-04h 1
133 1.2158710e+01 1.20e-02 4.28e+03 -0.4 2.34e+03 - 1.25e-04 4.00e-05h 5
134 1.2161588e+01 1.20e-02 4.80e+03 -0.4 2.76e+03 - 2.08e-04 3.18e-05f 5
135 1.2163995e+01 1.20e-02 5.72e+03 -0.4 2.43e+03 - 3.17e-04 3.39e-05h 5
136 1.2162996e+01 1.20e-02 6.59e+03 -0.4 1.86e+03 - 2.09e-04 8.32e-05h 4
137 1.2167195e+01 1.20e-02 1.03e+05 -0.4 1.60e+03 - 1.76e-02 8.49e-05h 4
138 1.2155226e+01 1.20e-02 1.18e+05 -0.4 6.11e+02 - 1.33e-04 1.75e-05h 6
139 1.2125269e+01 1.20e-02 1.35e+05 -0.4 7.49e+02 - 1.67e-04 7.13e-05h 4
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
140 1.2224148e+01 1.20e-02 5.52e+04 -0.4 8.42e+02 - 5.03e-05 5.80e-04h 1
141 1.2378013e+01 1.20e-02 1.06e+05 -0.4 3.47e+02 - 2.54e-04 1.16e-03f 1
142 1.2378072e+01 1.20e-02 1.06e+05 -0.4 4.80e+00 7.0 5.47e-06 5.47e-06s 5
143 1.2392342e+01 1.20e-02 1.06e+05 -0.4 7.12e+01 - 2.15e-04 0.00e+00S 5
144r 1.2392342e+01 1.20e-02 9.99e+02 -0.4 0.00e+00 6.5 0.00e+00 4.01e-07R 2
145r 1.2418656e+01 7.42e-03 8.73e+02 0.7 4.56e+01 - 9.81e-01 4.34e-02f 1
146 1.2354649e+01 7.25e-03 9.01e+00 -4.0 7.49e-01 - 2.30e-01 2.30e-02f 1
147 1.1878053e+01 8.02e-03 1.19e+02 -1.1 3.76e+00 - 4.98e-01 5.72e-02f 1
148 1.2125243e+01 7.90e-03 1.59e+02 -1.7 1.43e+01 - 1.77e-02 1.59e-02h 1
149 1.2212088e+01 7.87e-03 1.52e+03 -0.1 8.76e+01 - 2.98e-02 3.37e-03h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
150 1.2239155e+01 7.30e-03 1.66e+03 0.8 9.36e+02 - 1.32e-03 2.08e-03f 1
151 1.2321534e+01 7.37e-03 1.62e+03 -1.7 7.02e+01 - 6.34e-03 2.52e-03h 1
152 1.2320057e+01 7.35e-03 4.92e+05 -1.2 1.97e-01 6.0 1.00e+00 1.96e-03h 1
153 1.2422019e+01 7.25e-03 4.61e+05 1.8 2.13e+02 - 5.22e-02 7.15e-03f 1
154 1.2435383e+01 7.23e-03 4.53e+05 -0.1 4.33e+01 - 1.93e-02 1.74e-03h 1
155 1.2406106e+01 6.74e-03 4.20e+05 1.3 1.07e+02 - 7.54e-02 1.47e-02f 1
156 1.2474637e+01 6.64e-03 4.01e+05 1.0 5.30e+01 - 6.11e-02 1.12e-02h 1
157 1.2433251e+01 6.59e-03 3.73e+05 1.8 2.70e+02 - 9.59e-02 7.21e-03f 1
158 1.2626991e+01 6.50e-03 3.64e+05 -4.0 2.34e+01 - 5.97e-03 1.15e-02h 1
159 1.3073248e+01 6.36e-03 2.64e+05 1.6 2.22e+01 - 3.70e-01 2.18e-02f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
160 1.3083032e+01 6.35e-03 2.60e+05 2.4 4.93e+01 - 2.15e-03 1.57e-03f 1
161 1.3250065e+01 6.21e-03 1.39e+05 1.6 1.88e+01 - 8.78e-01 2.14e-02f 1
162 1.3286336e+01 6.20e-03 1.34e+05 -4.0 1.51e+01 - 5.98e-04 1.34e-03h 1
163 1.3322455e+01 6.18e-03 1.26e+05 1.5 1.99e+01 - 6.22e-03 3.20e-03f 1
164 1.3646025e+01 6.03e-03 1.32e+05 1.1 1.42e+01 - 2.54e-01 2.37e-02f 1
165 1.3759294e+01 5.98e-03 2.52e+06 2.3 9.19e+00 - 1.00e+00 9.62e-03h 1
166 1.3965610e+01 5.91e-03 1.43e+07 2.8 2.04e+01 - 1.12e-01 1.05e-02h 2
167 1.4200154e+01 5.90e-03 1.45e+07 -3.1 1.16e+02 - 2.30e-03 1.88e-03h 1
168 1.4214558e+01 5.90e-03 1.41e+09 2.8 1.33e+01 - 1.00e+00 7.91e-04h 1
169 1.4443800e+01 5.84e-03 8.94e+09 2.8 1.93e+01 - 6.64e-02 9.60e-03h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
170 1.4449831e+01 5.84e-03 4.70e+12 2.8 1.01e+01 - 3.42e-01 4.33e-04h 1
171 1.4459560e+01 5.83e-03 8.49e+14 2.8 1.43e+01 - 6.52e-02 3.51e-04h 1
172 1.4459566e+01 5.68e-03 1.63e+14 2.8 8.61e-01 10.1 8.08e-01 1.10e-03h 8
173 1.4459568e+01 5.68e-03 6.14e+13 0.9 3.22e-01 10.5 6.23e-01 2.44e-04h 13
174r 1.4459568e+01 5.68e-03 9.02e+02 2.8 0.00e+00 - 0.00e+00 3.87e-07R 3
175r 1.4405541e+01 1.00e-02 7.58e+00 0.5 6.26e-01 - 9.92e-01 9.87e-01f 1
176r 1.4396527e+01 3.10e-03 1.08e+01 -4.0 1.70e-01 - 9.46e-01 8.69e-01f 1
177 1.4396531e+01 3.04e-03 8.97e+00 -4.0 4.15e-01 - 1.71e-01 1.71e-02h 1
178 1.4776548e+01 4.73e-03 1.74e+00 -1.1 4.72e+00 - 4.83e-01 1.02e-01f 1
179 1.4441092e+01 4.63e-03 1.11e+01 -1.8 1.07e+00 - 1.96e-01 2.20e-02f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
180 1.4409109e+01 4.44e-03 1.66e+01 -4.0 8.60e-01 - 7.21e-02 4.11e-02h 1
181 1.0705071e+01 1.71e-02 8.68e+01 0.1 2.39e+01 - 3.18e-01 1.90e-02f 1
182 1.2253845e+01 1.62e-02 1.18e+02 -1.3 2.15e+00 - 3.16e-01 1.50e-01H 1
183 1.3330306e+01 1.57e-02 1.33e+02 -0.3 4.64e+00 - 7.52e-02 5.02e-02h 1
184 1.3753720e+01 1.55e-02 1.72e+02 -0.3 1.24e+01 - 4.10e-02 1.59e-02h 1
185 1.4594092e+01 1.52e-02 1.34e+02 -0.3 4.18e+00 - 2.18e-02 3.27e-02h 1
186 1.5351624e+01 1.50e-02 3.26e+03 -0.3 1.08e+01 - 4.67e-01 2.48e-02h 1
187 1.5897314e+01 1.50e-02 1.39e+04 -0.3 3.96e+00 - 2.18e-01 1.37e-02h 3
188 1.6319099e+01 1.49e-02 9.03e+04 -0.3 7.12e+00 - 2.26e-01 9.68e-03h 3
189 1.6960398e+01 1.52e-02 3.23e+04 -0.3 1.79e+01 - 5.30e-03 2.18e-02h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
190 1.6959098e+01 1.52e-02 1.09e+05 -0.3 6.14e+01 - 8.07e-03 6.35e-05h 1
191 1.7012877e+01 1.52e-02 1.48e+05 -0.3 2.18e+01 - 3.56e-03 2.03e-03h 1
192 1.6816283e+01 1.51e-02 1.02e+05 -0.3 1.22e+02 - 9.95e-04 2.97e-03h 1
193 1.6815769e+01 1.51e-02 1.62e+05 -0.3 8.32e+01 - 1.45e-03 4.37e-05h 1
194 1.6815846e+01 1.51e-02 5.08e+06 -0.3 9.11e-02 10.0 7.73e-03 3.16e-04h 1
195 1.6816549e+01 1.51e-02 1.89e+07 -0.3 2.10e-01 9.6 4.57e-03 5.10e-04h 1
196 1.6817300e+01 1.51e-02 5.56e+08 -0.3 4.51e-01 9.1 6.90e-02 1.43e-04h 1
197 1.6817632e+01 1.51e-02 9.19e+08 -0.3 2.88e+00 8.6 2.10e-02 2.34e-05h 1
198 1.6829216e+01 1.51e-02 3.90e+09 -0.3 5.05e+00 8.1 8.91e-02 2.58e-04h 1
199 1.6979098e+01 1.51e-02 8.32e+09 -0.3 4.97e+00 7.6 1.25e-01 1.88e-03h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
200 1.7052418e+01 1.51e-02 8.47e+09 -0.3 1.93e+01 7.2 2.02e-03 5.89e-04h 1
Number of Iterations....: 200
(scaled) (unscaled)
Objective...............: 1.7052418482743665e+01 1.7052418482743665e+01
Dual infeasibility......: 8.4675032232238035e+09 8.4675032232238035e+09
Constraint violation....: 1.5109943196774944e-02 1.5109943196774944e-02
Variable bound violation: 3.3876199623250614e-09 3.3876199623250614e-09
Complementarity.........: 5.8238395381850179e+05 5.8238395381850179e+05
Overall NLP error.......: 9.1236201480974808e+02 8.4675032232238035e+09
Number of objective function evaluations = 329
Number of objective gradient evaluations = 199
Number of equality constraint evaluations = 329
Number of inequality constraint evaluations = 0
Number of equality constraint Jacobian evaluations = 209
Number of inequality constraint Jacobian evaluations = 0
Number of Lagrangian Hessian evaluations = 200
Total seconds in IPOPT = 0.799
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.8500041e+01 1.65e-01 1.00e+01 0.0 0.00e+00 - 0.00e+00 0.00e+00 0
1 2.0812265e+01 5.30e-02 8.62e+00 -0.7 2.15e-01 2.0 1.00e+00 6.46e-01f 1
2 1.9913745e+01 4.84e-02 5.39e+01 0.1 1.27e+00 1.5 9.91e-01 8.74e-02h 1
3 1.9614195e+01 4.81e-02 4.84e+01 -4.0 2.76e+01 1.0 2.62e-02 5.85e-03f 1
4 1.9611145e+01 4.80e-02 5.54e+01 -4.0 6.87e+00 0.6 5.45e-02 2.01e-03h 1
5 2.0776490e+01 4.10e-02 2.95e+02 0.6 3.37e+00 1.0 9.63e-01 1.16e-01f 1
6 2.3792218e+01 1.05e-01 4.34e+02 1.5 1.50e+01 1.4 2.18e-01 3.35e-02f 1
7 2.5861025e+01 8.30e-02 4.15e+02 0.9 2.91e+00 - 4.69e-01 1.97e-01h 1
8 3.2035572e+01 7.47e-02 7.34e+02 1.6 7.03e+00 - 3.72e-01 1.01e-01f 1
9 3.5718464e+01 6.07e-02 1.97e+03 1.4 1.17e+00 2.7 9.52e-01 1.86e-01h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
10 3.8553714e+01 4.81e-02 1.53e+03 -4.0 8.51e-01 - 1.57e-01 2.06e-01h 1
11 4.2395193e+01 4.11e-02 2.82e+03 1.0 2.19e+00 - 5.45e-01 1.47e-01h 1
12 4.5338690e+01 3.83e-02 2.44e+04 1.8 2.22e+00 3.2 1.00e+00 6.68e-02h 1
13 5.0852414e+01 3.72e-02 3.38e+04 2.8 1.29e+01 - 1.86e-01 3.02e-02f 1
14 5.2777080e+01 3.42e-02 1.30e+05 2.3 2.65e+00 - 1.00e+00 8.03e-02h 1
15 5.2760422e+01 2.94e-02 9.75e+04 2.8 3.66e+00 - 1.20e-01 1.39e-01h 1
16 5.3924241e+01 2.91e-02 4.89e+05 2.2 9.58e+00 - 2.87e-01 1.24e-02h 1
17 5.6514111e+01 2.83e-02 4.85e+05 2.8 6.50e+00 4.5 3.96e-02 2.53e-02h 1
18 5.7897499e+01 2.80e-02 5.00e+05 2.4 1.63e+01 4.0 3.49e-02 1.02e-02h 1
19 5.6116807e+01 2.78e-02 4.97e+05 2.8 5.62e+01 - 9.84e-04 8.40e-03f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
20 5.8325810e+01 2.73e-02 5.47e+05 2.8 6.05e+00 - 9.19e-02 1.87e-02h 1
21 5.9770463e+01 2.69e-02 5.88e+05 -3.5 4.46e+00 - 2.77e-02 1.51e-02h 1
22 6.0657196e+01 2.67e-02 5.85e+05 2.8 2.43e+01 4.5 3.16e-03 4.80e-03h 1
23 6.3694377e+01 2.62e-02 2.62e+06 2.8 1.67e+01 - 4.40e-01 1.92e-02h 1
24 6.3882090e+01 2.62e-02 2.75e+06 2.8 2.04e+01 - 2.32e-02 8.56e-04h 1
25 6.4291822e+01 2.61e-02 2.81e+06 -3.2 7.75e+00 - 8.62e-03 5.00e-03h 1
26 6.6528330e+01 2.60e-02 2.76e+06 2.8 5.59e+01 4.0 1.83e-03 4.63e-03h 1
27 6.7991096e+01 2.58e-02 2.80e+07 2.8 3.16e+01 - 1.00e+00 4.82e-03h 1
28 6.6430155e+01 2.53e-02 4.15e+07 -2.4 2.50e+01 - 3.49e-02 1.90e-02f 1
29 6.6795085e+01 2.53e-02 4.55e+07 2.8 5.89e+01 6.2 1.02e-04 9.84e-04h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
30 6.7162240e+01 2.53e-02 4.62e+07 2.8 2.58e+01 - 1.41e-02 1.78e-03h 1
31 7.0897566e+01 2.49e-02 4.46e+07 2.8 2.55e+01 - 7.97e-03 1.48e-02h 1
32 7.0935310e+01 2.49e-02 1.17e+08 1.1 2.65e+01 - 5.65e-02 1.42e-04h 1
33 7.2556423e+01 2.49e-02 1.32e+08 -2.3 1.94e+02 - 3.15e-05 8.69e-04h 1
34 7.5677769e+01 2.47e-02 1.31e+08 2.8 3.67e+01 - 8.79e-03 8.50e-03h 1
35 7.5708458e+01 2.47e-02 3.71e+08 2.8 3.77e+01 - 1.43e-01 8.27e-05h 1
36 7.5223352e+01 2.45e-02 9.95e+08 2.8 7.79e+01 - 1.83e-02 5.32e-03h 1
37 7.5591180e+01 2.45e-02 2.80e+08 -1.9 1.04e+02 - 1.26e-04 1.66e-03h 1
38 7.5727682e+01 2.45e-02 2.83e+08 2.8 8.70e+01 - 9.95e-05 1.78e-04h 1
39 7.5957987e+01 2.45e-02 2.93e+08 2.8 7.25e+01 - 5.38e-04 3.17e-04h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
40 7.7459835e+01 2.44e-02 2.60e+08 2.8 7.34e+01 - 1.33e-03 2.04e-03h 1
41 8.0258268e+01 2.43e-02 2.21e+08 1.6 7.82e+01 - 2.85e-03 3.52e-03h 1
42 8.0218951e+01 2.43e-02 3.08e+08 2.8 4.18e+02 7.5 7.23e-06 4.42e-05h 1
43 8.0334372e+01 2.43e-02 3.10e+08 2.8 7.68e+01 - 3.43e-04 2.74e-04h 1
44 8.0661548e+01 2.43e-02 3.13e+08 2.8 7.04e+01 - 7.57e-04 6.89e-04h 1
45 8.3291085e+01 2.42e-02 1.50e+09 2.7 7.20e+01 - 2.41e-02 5.41e-03h 1
46 8.3333368e+01 2.42e-02 2.64e+09 2.8 6.75e+01 - 7.65e-03 5.78e-05h 1
47 8.5013906e+01 2.41e-02 2.78e+09 2.8 1.21e+02 - 2.95e-03 1.39e-03h 1
48 8.5030714e+01 2.41e-02 3.00e+09 2.8 1.38e+02 - 1.55e-03 1.22e-05h 1
49r 8.5030714e+01 2.41e-02 9.98e+02 2.8 0.00e+00 - 0.00e+00 3.30e-07R 2
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
50r 8.5348764e+01 1.55e-02 1.65e+01 0.7 6.36e-01 - 9.84e-01 9.86e-01f 1
51 8.5972444e+01 1.56e-02 4.01e+02 0.5 4.67e+00 - 5.18e-01 5.42e-03f 1
52 7.8177915e+01 1.45e-02 7.42e+02 0.1 6.14e+00 - 1.86e-01 6.68e-02f 1
53 7.9862062e+01 1.44e-02 1.60e+03 -0.6 4.62e+00 - 7.01e-02 1.05e-02h 1
54 8.0902207e+01 1.43e-02 4.97e+03 0.6 3.64e+01 - 1.57e-01 2.65e-03h 1
55 8.3862260e+01 1.41e-02 5.22e+03 -4.0 7.57e+00 - 2.07e-02 1.71e-02h 1
56 8.3986131e+01 1.40e-02 2.17e+06 1.4 2.37e-01 7.1 9.48e-01 9.30e-03h 1
57 8.3990840e+01 1.40e-02 2.05e+06 2.8 3.36e+00 - 5.75e-02 2.04e-03h 1
58 8.4705657e+01 1.39e-02 2.02e+06 -4.0 3.58e+00 - 1.06e-02 5.99e-03h 1
59 8.9214564e+01 1.38e-02 1.95e+06 2.8 5.25e+01 - 3.87e-02 7.26e-03h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
60 8.9852880e+01 1.37e-02 1.92e+06 2.8 2.90e+01 - 1.27e-02 3.30e-03h 1
61 9.3529872e+01 1.36e-02 1.91e+06 2.8 4.12e+01 - 4.59e-03 7.79e-03h 1
62 9.4994608e+01 1.36e-02 1.90e+06 -4.0 2.36e+01 - 5.78e-03 2.66e-03h 1
63 9.5091664e+01 1.36e-02 1.90e+06 2.8 7.30e+02 - 8.72e-05 1.61e-04h 1
64 9.7660313e+01 1.35e-02 4.63e+06 2.8 9.07e+01 - 3.91e-02 3.41e-03h 1
65 1.0001025e+02 1.35e-02 4.70e+06 -3.8 1.07e+02 - 1.80e-03 1.67e-03h 1
66 1.0101941e+02 1.35e-02 1.16e+07 2.8 1.73e+02 - 4.85e-03 6.56e-04h 1
67 1.0226432e+02 1.35e-02 1.19e+07 -3.7 8.71e+02 - 6.76e-06 1.95e-04h 1
68 1.0232921e+02 1.35e-02 1.22e+07 2.8 4.31e+02 - 4.94e-04 3.56e-04h 1
69 1.0239494e+02 1.35e-02 1.31e+07 2.2 3.49e+02 - 6.85e-04 3.87e-04h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
70 1.0227969e+02 1.35e-02 1.20e+07 2.8 2.95e+02 - 1.68e-04 4.32e-04h 1
71 1.0229030e+02 1.35e-02 6.02e+07 2.6 2.93e+02 - 8.40e-03 5.13e-04h 1
72r 1.0229030e+02 1.35e-02 9.92e+02 2.8 0.00e+00 - 0.00e+00 4.79e-07R 5
73r 1.0008939e+02 1.06e-02 9.02e+00 0.9 6.27e-01 - 9.91e-01 9.93e-01f 1
74 9.9145414e+01 1.11e-02 2.25e+02 0.7 8.02e+00 - 2.81e-01 5.70e-03f 1
75 6.6048330e+01 2.75e-02 2.35e+02 -0.3 2.64e+00 - 1.75e-01 1.71e-01f 1
76 7.2753499e+01 2.61e-02 4.62e+02 -4.0 1.68e+00 - 1.77e-01 5.23e-02h 1
77 8.3271149e+01 2.74e-02 1.68e+03 1.5 1.91e+01 - 5.56e-02 1.08e-02f 1
78 8.8068032e+01 2.86e-02 1.89e+03 0.3 6.64e+00 - 5.00e-02 3.75e-02h 1
79 9.1256729e+01 2.85e-02 2.69e+03 0.3 1.57e+01 - 2.20e-02 1.13e-02h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
80 9.5058723e+01 2.84e-02 4.71e+03 0.3 1.44e+01 - 2.45e-02 1.23e-02h 1
81 9.8507096e+01 2.83e-02 7.64e+03 0.3 1.55e+01 - 1.49e-02 9.22e-03h 1
82 1.0047953e+02 2.82e-02 3.57e+04 0.3 5.21e+01 - 1.65e-02 3.05e-03h 1
83 1.0319523e+02 2.82e-02 4.48e+04 0.3 3.67e+01 - 5.63e-03 4.47e-03h 1
84 1.0320035e+02 2.82e-02 1.37e+06 0.3 4.04e+01 - 1.76e-02 8.78e-04h 1
85 1.0248664e+02 2.81e-02 2.27e+06 0.3 1.61e+02 - 8.33e-04 3.73e-04h 2
86 1.0355192e+02 2.81e-02 8.85e+06 0.3 3.00e+02 - 1.04e-03 3.31e-04h 1
87r 1.0355192e+02 2.81e-02 1.00e+03 0.3 0.00e+00 - 0.00e+00 2.86e-07R 10
88r 9.9566755e+01 2.59e-02 1.68e+02 1.0 4.99e+01 - 9.12e-01 8.01e-03f 1
89r 9.9567769e+01 2.25e-02 5.57e+02 0.5 1.28e+00 - 4.09e-01 1.80e-01f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
90r 9.9578128e+01 1.63e-02 5.63e+02 0.5 5.77e-01 - 9.41e-01 2.34e-01f 1
91 9.1219896e+01 1.29e-02 9.08e+00 -0.4 2.07e+00 - 9.54e-02 8.75e-02f 1
92 2.4491238e+01 5.48e-02 8.58e+00 -0.4 4.96e+00 - 5.91e-02 8.39e-02f 1
93 3.7767742e+01 5.28e-02 2.34e+01 -0.0 1.08e+00 - 1.00e+00 1.12e-01f 1
94 4.8265220e+01 5.54e-02 7.99e+01 -0.1 6.00e+00 - 6.63e-01 1.19e-01h 1
95 5.4173128e+01 5.20e-02 7.11e+01 -0.1 1.84e+00 - 9.64e-02 7.28e-02h 1
96 5.9252468e+01 4.99e-02 7.87e+01 -0.1 3.32e+00 - 6.43e-02 4.32e-02h 1
97 6.4438113e+01 4.83e-02 1.23e+02 -0.1 4.71e+00 - 5.03e-02 3.46e-02h 1
98 6.9386376e+01 4.71e-02 1.36e+02 -0.1 6.16e+00 - 2.92e-02 2.59e-02h 1
99 7.3459430e+01 4.63e-02 1.83e+02 -0.1 8.76e+00 - 2.05e-02 1.69e-02h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
100 7.7526044e+01 4.58e-02 3.47e+02 -0.1 1.69e+01 - 1.91e-02 1.32e-02h 1
101 7.9592872e+01 4.55e-02 5.48e+02 -0.1 3.74e+01 - 8.56e-03 4.84e-03h 1
102 8.2337688e+01 4.52e-02 8.36e+02 -0.1 1.32e+01 - 1.02e-02 7.56e-03h 1
103 8.4091496e+01 4.51e-02 9.17e+02 -0.1 7.30e+01 - 2.99e-03 2.45e-03h 1
104 8.5778997e+01 4.50e-02 5.45e+03 -0.1 3.73e+01 - 1.62e-02 3.15e-03h 1
105 8.5788465e+01 4.50e-02 5.58e+05 -0.1 4.30e-01 6.6 2.98e-02 3.46e-04h 1
106 8.5833778e+01 4.49e-02 2.76e+07 -0.1 2.43e+00 6.1 2.78e-01 5.34e-04h 1
107 8.6348556e+01 4.48e-02 2.90e+07 -0.1 4.53e+00 5.6 1.22e-02 3.09e-03h 1
108 8.6897630e+01 4.48e-02 2.96e+07 -0.1 1.08e+01 5.2 3.79e-03 1.26e-03h 1
109 8.7205357e+01 4.47e-02 3.38e+07 -0.1 1.11e+01 5.6 5.08e-03 5.86e-04h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
110 8.7729585e+01 4.47e-02 3.40e+07 -0.1 3.95e+01 5.1 7.64e-04 3.80e-04h 1
111 8.8120189e+01 4.47e-02 3.96e+07 -0.1 1.76e+01 5.5 3.41e-03 3.70e-04h 1
112 8.8689790e+01 4.47e-02 7.00e+07 -0.1 1.94e+01 6.0 6.31e-03 5.37e-04h 1
113 8.9522898e+01 4.47e-02 7.12e+07 -0.1 3.91e+01 5.5 7.36e-04 3.91e-04h 1
114 9.0009405e+01 4.46e-02 9.74e+07 -0.1 3.32e+01 5.9 2.93e-03 2.42e-04h 1
115 9.1660120e+01 4.46e-02 1.77e+08 -0.1 3.25e+01 6.3 4.01e-03 8.31e-04h 1
116 9.2541915e+01 4.46e-02 1.76e+08 -0.1 7.51e+01 5.9 2.50e-04 2.80e-04h 1
117 9.2993731e+01 4.46e-02 2.00e+08 -0.1 5.00e+01 6.3 6.46e-04 1.48e-04h 1
118 9.3285020e+01 4.46e-02 2.68e+08 -0.1 6.93e+01 5.8 2.33e-03 9.05e-05h 1
119 9.5845553e+01 4.45e-02 2.56e+08 -0.1 9.20e+01 5.3 3.51e-04 9.33e-04h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
120 9.5896566e+01 4.45e-02 2.68e+08 -0.1 1.96e+02 4.8 5.97e-04 2.98e-05h 1
121 9.6624008e+01 4.45e-02 6.95e+08 -0.1 9.26e+01 6.2 4.25e-03 1.88e-04h 1
122 9.7809649e+01 4.45e-02 7.50e+08 -0.1 1.41e+02 5.7 1.04e-03 3.38e-04h 2
123 9.9141898e+01 4.45e-02 7.29e+08 -0.1 1.49e+02 6.1 2.06e-04 3.07e-04h 1
124 9.9282945e+01 4.45e-02 7.23e+08 -0.1 2.29e+02 5.6 4.25e-05 7.64e-05h 1
125 9.9330176e+01 4.45e-02 7.12e+08 -0.1 1.14e+02 7.0 2.84e-06 1.27e-05h 1
126r 9.9330176e+01 4.45e-02 1.00e+03 -0.1 0.00e+00 6.5 0.00e+00 1.64e-07R 2
127r 1.0962830e+02 3.31e-02 1.11e+03 1.1 6.57e+01 - 7.43e-01 6.92e-03f 1
128 1.0957525e+02 3.30e-02 4.15e+02 -0.1 6.60e+00 - 3.69e-02 3.14e-04f 1
129 1.0938875e+02 3.29e-02 4.21e+02 -0.1 7.16e+01 - 3.68e-03 3.62e-03h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
130 1.0755886e+02 3.29e-02 2.87e+03 -0.1 1.74e+02 - 4.33e-03 5.26e-04h 1
131 1.0455610e+02 3.29e-02 2.94e+03 -0.1 1.84e+02 - 6.50e-04 6.25e-04h 2
132 1.0359019e+02 3.29e-02 1.19e+04 -0.1 2.23e+02 - 1.55e-03 5.40e-04h 1
133 1.0231638e+02 3.29e-02 2.68e+04 -0.1 7.20e+02 - 3.74e-04 1.98e-04h 1
134 1.0192380e+02 3.29e-02 2.17e+05 -0.1 1.60e+03 - 3.02e-04 5.09e-05h 1
135 1.0118506e+02 3.29e-02 5.94e+05 -0.1 5.96e+03 - 7.27e-05 2.69e-05h 1
136 1.0145998e+02 3.29e-02 5.93e+05 -0.1 8.87e+03 - 7.53e-06 7.53e-06s 5
137r 1.0145998e+02 3.29e-02 1.00e+03 -0.1 0.00e+00 - 0.00e+00 0.00e+00R 1
138r 1.0432956e+02 1.14e-02 9.86e+02 0.9 3.91e+00 - 9.81e-01 3.52e-02f 1
139 1.0420980e+02 1.14e-02 1.03e+02 -0.7 1.28e+00 - 9.23e-02 2.36e-03f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
140 9.3588248e+01 1.13e-02 4.59e+01 0.4 1.22e+02 - 6.06e-02 3.94e-03f 1
141 9.3828605e+01 1.13e-02 3.03e+02 -4.0 1.51e+00 - 6.01e-02 2.47e-03h 1
142 1.0034938e+02 3.62e-02 6.81e+03 1.9 5.11e+02 - 1.14e-01 9.25e-04f 1
143 1.0029842e+02 3.61e-02 8.07e+03 0.8 2.24e+01 - 2.17e-02 3.41e-03h 1
144 1.0045638e+02 3.49e-02 7.92e+03 0.8 4.23e+00 - 2.05e-02 2.02e-02f 1
145 1.0017774e+02 3.46e-02 4.48e+04 0.8 2.61e+00 - 2.50e-01 7.80e-03h 1
146 1.0099100e+02 3.37e-02 5.69e+04 0.8 7.87e+00 - 3.72e-02 2.74e-02h 1
147 1.0188646e+02 3.36e-02 3.09e+05 0.8 2.85e+01 - 1.89e-02 2.22e-03h 1
148 1.0299705e+02 3.35e-02 2.08e+06 0.8 2.29e+01 - 1.26e-02 1.90e-03h 1
149 1.0094358e+02 3.35e-02 1.89e+06 0.8 2.11e+02 - 5.14e-04 5.63e-04h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
150 1.0186606e+02 3.35e-02 1.88e+06 0.8 1.77e+03 - 1.10e-04 1.10e-04s 10
151r 1.0186606e+02 3.35e-02 1.00e+03 0.8 0.00e+00 - 0.00e+00 0.00e+00R 1
152r 1.0187253e+02 7.00e-03 4.83e+02 -0.7 1.87e-01 - 9.89e-01 1.98e-01f 1
153 1.0186886e+02 7.00e-03 3.63e+04 0.1 2.04e+00 - 1.00e+00 1.09e-04f 1
154 1.0332666e+02 7.00e-03 4.10e+04 -4.0 1.54e+02 - 5.91e-04 4.20e-04h 2
155 1.0272852e+02 6.99e-03 2.13e+05 -4.0 7.67e+01 - 2.91e-03 4.31e-04f 1
156 1.0427318e+02 6.99e-03 2.12e+05 1.8 1.25e+03 - 2.67e-04 2.67e-04s 11
157r 1.0427318e+02 6.99e-03 1.00e+03 -0.1 0.00e+00 - 0.00e+00 3.53e-07R 9
158r 1.0438523e+02 7.06e-03 8.28e+02 -0.6 8.78e-02 - 9.86e-01 1.70e-01f 1
159r 1.0920933e+02 7.31e-03 6.31e+02 -0.5 7.75e-01 - 1.00e+00 1.84e-01f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
160r 1.0452774e+02 8.60e-03 9.47e+00 -1.8 2.80e-01 - 9.02e-01 9.80e-01f 1
161r 1.0578808e+02 1.41e-02 6.33e+00 -1.9 1.32e-01 - 8.28e-01 7.13e-01f 1
162r 1.0652404e+02 1.55e-02 1.85e+01 -2.1 3.38e-01 - 9.62e-01 5.67e-01f 1
163r 1.0641488e+02 1.60e-02 5.92e-01 -3.1 5.91e-03 2.0 1.00e+00 1.00e+00f 1
164r 1.0664701e+02 1.78e-02 2.77e+00 -3.9 1.02e-02 1.5 1.00e+00 5.94e-01f 1
165r 1.0691944e+02 1.89e-02 3.20e+00 -3.6 3.58e-02 1.0 1.00e+00 2.06e-01f 1
166r 1.0715177e+02 1.93e-02 1.26e+00 -4.0 5.26e-03 1.5 1.00e+00 6.16e-01f 1
167r 1.0740166e+02 1.79e-02 1.90e+00 -4.0 1.16e-02 1.0 1.00e+00 3.96e-01f 1
168r 1.0763514e+02 1.80e-02 1.02e-01 -4.0 3.89e-03 1.4 1.00e+00 1.00e+00f 1
169r 1.0774502e+02 1.83e-02 1.01e-01 -4.0 1.15e-02 0.9 1.00e+00 9.46e-01h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
170r 1.0749592e+02 2.12e-02 9.68e-02 -4.0 3.31e-02 0.5 1.00e+00 1.00e+00h 1
171r 1.0738050e+02 2.39e-02 1.57e+00 -4.0 8.85e-02 -0.0 1.00e+00 4.38e-01h 1
172r 1.0742451e+02 3.53e-02 8.68e-01 -4.0 2.06e-01 -0.5 2.98e-01 3.34e-01h 1
173r 1.0738180e+02 3.42e-02 7.71e-02 -4.0 1.11e-02 0.8 1.00e+00 1.00e+00h 1
174r 1.0737577e+02 3.40e-02 7.31e-01 -4.0 1.35e-02 0.4 1.00e+00 2.94e-01h 1
175r 1.0734351e+02 3.21e-02 5.11e-03 -4.0 6.60e-03 -0.1 1.00e+00 1.00e+00f 1
176r 1.0729634e+02 2.97e-02 1.25e-02 -4.0 1.39e-02 -0.6 1.00e+00 1.00e+00h 1
177r 1.0724112e+02 3.68e-02 8.21e-01 -4.0 2.04e-02 -1.1 1.00e+00 8.57e-01H 1
178r 1.0712459e+02 5.05e-02 3.12e-01 -4.0 6.08e-02 -1.5 1.00e+00 1.00e+00F 1
179r 1.0716552e+02 5.04e-02 5.68e-01 -4.0 2.85e-01 -2.0 1.39e-01 1.91e-01h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
180r 1.0727185e+02 4.28e-02 1.38e+00 -4.0 6.24e-02 -1.6 1.00e+00 3.77e-01h 2
181r 1.0728433e+02 4.28e-02 6.85e-02 -4.1 1.70e-03 0.6 1.00e+00 5.99e-01h 1
182r 1.0729516e+02 4.30e-02 1.89e-03 -4.0 1.32e-03 0.2 1.00e+00 1.00e+00f 1
183r 1.0728444e+02 5.52e-02 1.63e-01 -4.0 4.65e-02 - 1.00e+00 1.00e+00h 1
184r 1.0728313e+02 5.67e-02 8.04e-04 -4.0 6.29e-03 - 1.00e+00 1.00e+00h 1
185r 1.0728458e+02 5.66e-02 2.92e-06 -4.0 2.97e-04 - 1.00e+00 1.00e+00h 1
Number of Iterations....: 185
(scaled) (unscaled)
Objective...............: 1.0728457864252975e+02 1.0728457864252975e+02
Dual infeasibility......: 1.0004999811440399e+01 1.0004999811440399e+01
Constraint violation....: 5.6608925962964927e-02 5.6608925962964927e-02
Variable bound violation: 0.0000000000000000e+00 0.0000000000000000e+00
Complementarity.........: 1.0000000001640000e-04 1.0000000001640000e-04
Overall NLP error.......: 6.1102084512674004e+00 1.0004999811440399e+01
Number of objective function evaluations = 258
Number of objective gradient evaluations = 157
Number of equality constraint evaluations = 258
Number of inequality constraint evaluations = 0
Number of equality constraint Jacobian evaluations = 194
Number of inequality constraint Jacobian evaluations = 0
Number of Lagrangian Hessian evaluations = 186
Total seconds in IPOPT = 0.691
EXIT: Converged to a point of local infeasibility. Problem may be infeasible.
Time weight effects:
Weight | Total Time | ||u|| | Max |u|
---------------------------------------------
0.1 | 18.8569 s | 6.1503 | 0.9999
1.0 | 17.2664 s | 6.1527 | 1.0000
10.0 | 10.9811 s | 6.0688 | 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.15050293328501838
Coefficient of variation: 0.349Key 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.