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 Printf

Fixed 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 coupling

Step 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.0

Initial 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.000000000000002

Step 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 time

Step 5: Solve Minimum Time Problem

integrator_mintime = BilinearIntegrator(G, :x, :u, traj_mintime)
prob_mintime = DirectTrajOptProblem(traj_mintime, obj_mintime, integrator_mintime)

prob_mintime
DirectTrajOptProblem
  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.815061129717222

Check 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 / 40

Step 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.9984058079825935

Step 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 controls

Step 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.522

Key Insights

  1. Free time variables: Setting timestep=:Δt makes time steps optimizable
  2. Time bounds are crucial: Lower bound prevents Δt -> 0, upper bound prevents unrealistically large steps
  3. Time weight balances speed vs control: High weight -> fast but aggressive, low weight -> slow but gentle
  4. Control saturation: Time-optimal solutions often saturate control bounds (bang-bang behavior)
  5. Non-uniform time steps: Optimizer may choose variable Δt — larger steps where less control is needed
  6. 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.