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.8500413e+00 1.65e-01 1.00e+00   0.0 0.00e+00    -  0.00e+00 0.00e+00   0
   1  3.5271835e+00 8.08e-02 1.15e+00  -0.8 5.48e-01    -  9.98e-01 8.46e-01h  1
   2  2.2281675e+00 5.90e-02 1.90e+00  -4.0 1.75e+00    -  3.32e-01 2.67e-01f  1
   3  3.0664106e+00 7.74e-02 7.56e+00  -0.4 2.51e+00   0.0 6.04e-01 2.17e-01f  1
   4  3.3672934e+00 6.49e-02 3.77e+01   0.2 1.41e+00   1.3 4.76e-01 1.23e-01h  1
   5  3.9209729e+00 5.51e-02 1.29e+02   0.4 2.59e+00   0.9 9.24e-01 1.30e-01h  1
   6  4.1756561e+00 5.36e-02 1.72e+02   0.4 3.57e+00    -  7.12e-01 7.09e-02h  1
   7  4.8246117e+00 5.03e-02 7.95e+02   1.2 3.46e+00    -  8.04e-01 7.72e-02h  1
   8  4.7559593e+00 4.13e-02 2.75e+03   1.3 1.29e+00    -  9.62e-01 1.81e-01h  1
   9  4.4244523e+00 3.67e-02 1.40e+03  -4.0 2.74e+00    -  5.78e-02 1.18e-01f  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  10  4.9352373e+00 3.83e-02 2.96e+04   1.9 5.38e+00    -  8.47e-01 6.51e-02f  1
  11  5.0749194e+00 3.73e-02 2.90e+04   2.0 1.70e+01    -  7.31e-02 2.42e-02h  1
  12  5.0970574e+00 3.71e-02 3.26e+04   2.1 4.04e+00    -  5.18e-02 4.99e-03h  1
  13  5.3871791e+00 3.59e-02 2.94e+04   1.8 1.17e+01    -  2.21e-01 2.98e-02h  1
  14  5.7077419e+00 3.53e-02 3.02e+04   2.8 1.83e+01    -  2.14e-02 1.58e-02f  1
  15  5.6988517e+00 3.52e-02 4.98e+04  -4.0 4.23e+00    -  1.33e-01 5.31e-03h  1
  16  5.9346874e+00 3.48e-02 6.46e+04   2.6 2.63e+01   3.1 2.05e-01 9.78e-03f  1
  17  5.9226837e+00 3.23e-02 1.41e+05   1.5 2.49e+00    -  3.56e-01 7.65e-02h  1
  18  5.8346772e+00 3.15e-02 1.05e+05  -3.9 7.30e+00    -  7.45e-03 2.53e-02h  1
  19  5.9941700e+00 3.10e-02 1.26e+05   1.9 1.14e+01    -  7.59e-02 1.50e-02h  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  20  6.1192761e+00 3.07e-02 1.32e+06   2.8 1.19e+01   4.4 5.43e-01 1.03e-02f  1
  21  6.5257532e+00 3.01e-02 1.30e+06   2.8 2.28e+01    -  1.05e-02 1.77e-02h  1
  22  6.6565668e+00 2.97e-02 1.31e+06  -3.4 5.26e+00    -  3.50e-02 1.34e-02h  1
  23  6.8687293e+00 2.90e-02 2.01e+06   2.8 8.71e+00    -  1.88e-01 2.57e-02h  1
  24  6.8390819e+00 2.85e-02 1.51e+06  -3.2 1.21e+01    -  2.80e-03 1.42e-02h  1
  25  6.9058548e+00 2.85e-02 1.80e+06   2.6 2.56e+01    -  3.52e-02 2.82e-03h  1
  26  7.0338899e+00 2.82e-02 1.67e+06   2.8 2.67e+01    -  3.63e-03 9.64e-03h  1
  27  7.1070659e+00 2.81e-02 2.66e+06   2.8 3.24e+01    -  1.13e-02 2.66e-03h  1
  28  7.1380181e+00 2.81e-02 3.67e+06  -3.3 3.81e+01    -  6.38e-03 9.19e-04h  1
  29  7.1509735e+00 2.79e-02 1.98e+06   2.8 6.57e+00   5.7 4.14e-03 8.09e-03h  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  30  7.1905910e+00 2.78e-02 3.99e+06   2.8 8.38e+00   6.2 4.97e-03 2.10e-03h  1
  31  7.2964359e+00 2.77e-02 3.57e+06  -3.3 1.11e+01   5.7 1.77e-03 2.88e-03h  1
  32  7.4104966e+00 2.76e-02 6.38e+06   2.8 7.80e+00   6.1 7.04e-03 3.83e-03h  1
  33  7.5273855e+00 2.75e-02 1.20e+07   2.8 8.00e+00   6.5 6.28e-03 3.93e-03h  1
  34  7.6035803e+00 2.75e-02 1.19e+07   2.8 1.82e+01   6.1 1.32e-03 1.32e-03h  1
  35  7.7627971e+00 2.74e-02 2.40e+07   2.8 1.02e+01   6.5 7.24e-03 3.44e-03h  1
  36  7.9422291e+00 2.73e-02 5.72e+07   2.8 1.10e+01   6.9 7.31e-03 3.69e-03h  1
  37  8.0522820e+00 2.72e-02 1.12e+08   2.8 1.23e+01   7.3 3.82e-03 1.94e-03h  1
  38  8.2577369e+00 2.71e-02 3.13e+08   2.8 1.47e+01   6.9 1.73e-02 3.34e-03h  1
  39  8.4955998e+00 2.70e-02 2.16e+08   2.8 1.60e+01   7.3 9.05e-04 3.22e-03h  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  40  8.5412178e+00 2.70e-02 2.62e+08   2.8 2.30e+01   6.8 2.92e-03 7.85e-04h  1
  41  8.7199045e+00 2.69e-02 3.28e+08   2.3 3.56e+01   6.3 1.32e-02 5.38e-03h  1
  42  8.7277915e+00 2.69e-02 3.29e+08  -3.3 6.04e+01   5.9 9.87e-05 7.49e-04h  1
  43  8.7283752e+00 2.69e-02 1.13e+09   2.8 2.66e+01   8.1 7.88e-03 1.42e-05h  1
  44  8.9127039e+00 2.68e-02 1.10e+09   2.7 2.21e+01   7.6 1.86e-03 2.03e-03h  1
  45  8.9615092e+00 2.68e-02 1.06e+09   2.8 2.53e+01   8.0 4.40e-04 5.17e-04h  1
  46  8.9626772e+00 2.68e-02 2.06e+10   2.8 2.82e+01   8.5 1.28e-02 1.26e-05h  1
  47  9.2792030e+00 2.67e-02 1.94e+10   2.8 3.53e+01   8.0 1.45e-03 3.21e-03h  1
  48  9.2801668e+00 2.67e-02 2.38e+10   2.8 5.76e+01   7.5 1.69e-02 1.97e-05h  1
  49  9.3039099e+00 2.67e-02 3.09e+10   2.8 5.48e+01   7.0 1.05e-02 1.41e-04h  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  50  9.5106751e+00 2.67e-02 4.65e+10   2.8 5.97e+01   7.5 1.35e-02 8.91e-04h  2
  51  9.6167299e+00 2.67e-02 5.70e+10   2.8 9.19e+01   7.0 6.16e-03 4.71e-04h  1
  52  9.6260223e+00 2.67e-02 5.67e+10  -1.6 7.12e+01   8.3 3.11e-06 2.37e-05h  1
  53  9.6466476e+00 2.67e-02 5.74e+10   2.8 9.13e+01   7.8 1.36e-04 5.14e-05h  1
  54  9.7920278e+00 2.67e-02 9.14e+10   2.8 1.17e+02   7.4 6.37e-03 3.95e-04h  1
  55r 9.7920278e+00 2.67e-02 1.00e+03   2.8 0.00e+00   6.9 0.00e+00 4.17e-07R  4
  56r 9.8121207e+00 2.35e-02 9.80e+00   0.7 6.41e-01    -  9.90e-01 9.79e-01f  1
  57  9.7607620e+00 2.22e-02 1.61e+01  -1.2 5.23e-01    -  5.45e-01 5.22e-02h  1
  58  8.6930560e+00 2.15e-02 1.23e+02  -0.2 2.14e+01    -  6.63e-01 2.23e-02f  1
  59  8.7085537e+00 2.13e-02 1.57e+02  -4.0 8.26e+00    -  4.78e-02 7.61e-03h  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  60  9.0962688e+00 4.00e-02 3.11e+03   0.9 2.40e+02    -  5.36e-01 8.23e-03f  1
  61  9.3219840e+00 4.99e-02 4.10e+03   0.6 4.63e+00    -  8.31e-02 4.34e-02h  2
  62  9.5875432e+00 5.45e-02 4.73e+03   0.6 6.04e+00    -  3.11e-02 1.98e-02h  1
  63  9.6716101e+00 5.47e-02 3.98e+03   0.6 7.12e+01    -  1.08e-03 1.80e-02h  1
  64  9.7123107e+00 5.45e-02 2.70e+04   0.6 3.06e+00    -  1.13e-01 3.64e-03h  1
  65  1.0008104e+01 5.29e-02 7.82e+04   0.6 8.50e+00    -  8.85e-02 2.97e-02h  1
  66  1.0309644e+01 5.28e-02 1.90e+05  -4.0 6.38e+01    -  8.21e-03 3.19e-03h  1
  67  1.0474436e+01 5.27e-02 1.57e+08   2.0 1.23e+02    -  1.00e+00 1.42e-03h  1
  68  1.0151827e+01 5.27e-02 8.52e+07  -3.2 4.08e+02    -  2.19e-04 5.90e-04f  1
  69  1.0480921e+01 5.26e-02 1.05e+07   2.8 6.92e+02    -  2.30e-04 4.73e-04h  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  70  1.0430822e+01 5.26e-02 2.10e+08   2.8 7.24e+02    -  4.67e-06 6.31e-05h  1
  71  1.0425862e+01 5.26e-02 1.03e+11   2.8 2.46e+02    -  4.81e-03 1.28e-05h  1
  72  1.0221603e+01 5.26e-02 5.22e+10   2.8 3.41e+02    -  1.47e-04 5.60e-04h  1
  73  1.0457045e+01 5.26e-02 6.00e+10   2.8 1.39e+03    -  1.88e-04 1.71e-04h  1
  74  1.0401796e+01 5.26e-02 1.32e+11   2.8 5.51e+03    -  4.61e-07 9.78e-06h  1
  75  1.0409105e+01 5.26e-02 3.96e+16   2.8 1.35e+03    -  1.00e+00 5.49e-06h  1
  76  1.0409079e+01 5.26e-02 3.95e+14   2.8 1.06e-03  10.9 9.90e-01 1.00e+00f  1
  77  1.0422739e+01 1.38e+00 2.15e+14   2.8 1.44e+00    -  4.65e-01 1.00e+00f  1
  78  1.0495333e+01 1.38e+00 2.15e+14   2.8 6.19e+03    -  6.67e-05 1.17e-05h  1
  79  1.0461939e+01 1.38e+00 2.10e+14   2.1 3.89e-02  11.3 2.21e-02 1.00e+00f  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  80  1.0009900e+01 1.38e+00 2.10e+14   1.4 6.63e+02    -  5.16e-05 6.80e-04h  1
  81r 1.0009900e+01 1.38e+00 9.82e+02   1.4 0.00e+00    -  0.00e+00 2.58e-07R  6
  82r 1.0012105e+01 5.73e-01 8.54e+02  -3.8 2.79e+01    -  3.30e-01 2.98e-02f  1
  83  1.0012048e+01 5.73e-01 1.02e+03   0.7 9.08e+03    -  8.28e-07 6.24e-09f  1
  84  1.0010070e+01 5.73e-01 6.65e+01   0.7 2.18e+04    -  1.30e-09 1.38e-07f  1
  85  1.0316893e+01 5.73e-01 1.11e+03  -0.0 1.68e+03    -  3.11e-05 1.78e-04f  1
  86  1.0320728e+01 5.73e-01 6.04e+02  -0.0 1.21e+03    -  5.38e-05 1.77e-06f  2
  87  1.0381741e+01 5.73e-01 1.56e+03  -0.0 1.79e+03    -  2.96e-06 1.33e-05h  1
  88r 1.0381741e+01 5.73e-01 9.99e+02  -0.0 0.00e+00    -  0.00e+00 2.65e-07R  5
  89r 1.2610479e+01 5.55e-01 9.99e+02   1.7 7.40e+02    -  5.54e-02 6.25e-04f  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  90r 1.2546303e+01 1.01e-01 9.55e+02   0.3 1.08e+01    -  1.69e-02 4.56e-02f  1
  91  1.2465134e+01 1.00e-01 8.71e+01  -0.7 4.85e+00    -  6.29e-02 6.83e-03f  1
  92  1.1939539e+01 9.91e-02 5.30e+01  -0.7 1.16e+01    -  7.80e-03 1.14e-02h  1
  93  1.1730961e+01 9.89e-02 5.73e+02  -0.7 2.62e+01    -  6.82e-03 1.78e-03h  1
  94  1.1433308e+01 9.88e-02 1.90e+03  -0.7 7.83e+01    -  2.93e-03 7.72e-04h  2
  95  1.1268977e+01 9.88e-02 7.48e+03  -0.7 1.12e+02    -  2.67e-03 2.93e-04h  3
  96  1.1069291e+01 9.88e-02 4.17e+04  -0.7 1.27e+02    -  4.61e-03 2.82e-04h  3
  97  1.0888771e+01 9.87e-02 4.61e+05  -0.7 1.61e+02    -  8.07e-03 1.97e-04h  3
  98  1.0737285e+01 9.87e-02 3.67e+05  -0.7 2.93e+03    -  1.85e-05 1.30e-04h  3
  99  1.0715539e+01 9.87e-02 3.38e+05  -0.7 5.27e+04    -  8.56e-06 2.94e-05h  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
 100  1.0693286e+01 9.87e-02 4.70e+05  -0.7 5.11e+02    -  9.56e-05 3.03e-05h  1
 101  1.0731626e+01 9.87e-02 4.68e+05  -0.7 2.03e+03    -  1.44e-05 1.99e-05h  1
 102  1.0786321e+01 9.87e-02 4.70e+05  -0.7 2.14e+03    -  3.29e-05 2.64e-05h  1
 103  1.1136307e+01 9.87e-02 3.99e+07  -0.7 2.18e+03    -  2.06e-01 1.65e-04h  1
 104  1.1086725e+01 9.87e-02 3.87e+07  -0.7 4.06e+03    -  1.28e-05 2.47e-05h  1
 105  1.1086821e+01 9.87e-02 3.87e+07  -0.7 1.11e+00  10.9 8.30e-06 8.30e-06s  6
 106r 1.1086821e+01 9.87e-02 1.00e+03  -0.7 0.00e+00  10.4 0.00e+00 0.00e+00R  1
 107r 1.1091247e+01 4.97e-02 9.85e+02   1.0 5.77e+01    -  9.94e-01 3.01e-03f  1
 108  1.1090702e+01 4.97e-02 6.75e+03  -0.9 5.16e-01    -  1.00e+00 3.27e-04h  1
 109  1.0955961e+01 4.97e-02 3.04e+04   1.1 2.88e+02    -  1.97e-03 2.54e-04h  2
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
 110  1.0877498e+01 4.97e-02 1.20e+08   1.2 6.83e+03    -  1.00e+00 2.32e-04h  1
 111  1.0902852e+01 4.97e-02 1.25e+08   2.8 7.09e+04    -  1.10e-04 2.70e-05h  1
 112r 1.0902852e+01 4.97e-02 9.96e+02   2.8 0.00e+00    -  0.00e+00 4.50e-07R  7
 113r 1.1058377e+01 3.34e-02 8.97e+00   0.4 6.65e-01    -  9.91e-01 9.64e-01f  1
 114  1.1021157e+01 3.30e-02 9.68e+01  -0.3 1.11e+00    -  3.39e-01 1.10e-02f  1
 115  1.1428055e+01 3.20e-02 2.06e+02  -0.3 1.60e+01    -  1.28e-02 2.91e-02f  1
 116  1.1555228e+01 3.16e-02 7.99e+02  -0.3 1.35e+01    -  1.79e-01 1.24e-02h  1
 117  1.1373794e+01 3.11e-02 1.50e+03  -0.3 1.09e+01    -  3.55e-02 1.70e-02h  1
 118  1.1522596e+01 3.10e-02 3.87e+03  -0.3 4.14e+01    -  9.89e-03 1.77e-03h  1
 119  1.1799507e+01 3.09e-02 2.15e+03  -0.3 5.51e+01    -  1.92e-03 3.74e-03h  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
 120  1.1799915e+01 3.09e-02 8.90e+06  -0.3 1.80e-01   9.9 1.00e+00 5.26e-04h  1
 121  1.1801076e+01 3.09e-02 2.76e+09  -0.3 6.05e-01   9.4 2.59e-01 3.38e-04h  1
 122  1.1803787e+01 3.09e-02 1.30e+10  -0.3 1.86e+00   9.0 2.64e-01 1.57e-04h  1
 123  1.1812946e+01 3.09e-02 2.08e+10  -0.3 2.48e+01   8.5 1.36e-02 2.24e-04h  1
 124  1.1823064e+01 3.09e-02 2.47e+10  -0.3 4.01e+01   8.0 1.25e-02 2.27e-04h  1
 125  1.1827359e+01 3.09e-02 2.51e+10  -0.3 1.14e+02   7.5 1.88e-04 3.53e-05h  1
 126  1.1836186e+01 3.09e-02 2.51e+10  -0.3 3.58e+02   7.1 4.78e-05 1.79e-05h  1
 127r 1.1836186e+01 3.09e-02 1.00e+03  -0.3 0.00e+00   7.5 0.00e+00 3.33e-07R  5
 128r 1.1907024e+01 9.32e-03 2.91e+02  -0.4 4.96e+00    -  9.67e-01 1.43e-02f  1
 129  1.1907105e+01 9.32e-03 1.23e+03  -4.0 3.94e-01    -  2.22e-01 1.80e-04h  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
 130  1.2462793e+01 1.20e-02 1.32e+03   0.7 5.82e+02    -  8.15e-04 7.30e-04f  1
 131  1.2442907e+01 1.20e-02 4.99e+03  -0.4 5.97e+01    -  3.39e-03 1.44e-04h  1
 132  1.2161424e+01 1.20e-02 3.68e+03  -0.4 3.52e+02    -  3.64e-05 4.82e-04h  1
 133  1.2158710e+01 1.20e-02 4.28e+03  -0.4 2.34e+03    -  1.25e-04 4.00e-05h  5
 134  1.2161588e+01 1.20e-02 4.80e+03  -0.4 2.76e+03    -  2.08e-04 3.18e-05f  5
 135  1.2163995e+01 1.20e-02 5.72e+03  -0.4 2.43e+03    -  3.17e-04 3.39e-05h  5
 136  1.2162996e+01 1.20e-02 6.59e+03  -0.4 1.86e+03    -  2.09e-04 8.32e-05h  4
 137  1.2167195e+01 1.20e-02 1.03e+05  -0.4 1.60e+03    -  1.76e-02 8.49e-05h  4
 138  1.2155226e+01 1.20e-02 1.18e+05  -0.4 6.11e+02    -  1.33e-04 1.75e-05h  6
 139  1.2125269e+01 1.20e-02 1.35e+05  -0.4 7.49e+02    -  1.67e-04 7.13e-05h  4
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
 140  1.2224148e+01 1.20e-02 5.52e+04  -0.4 8.42e+02    -  5.03e-05 5.80e-04h  1
 141  1.2378013e+01 1.20e-02 1.06e+05  -0.4 3.47e+02    -  2.54e-04 1.16e-03f  1
 142  1.2378072e+01 1.20e-02 1.06e+05  -0.4 4.80e+00   7.0 5.47e-06 5.47e-06s  5
 143  1.2392342e+01 1.20e-02 1.06e+05  -0.4 7.12e+01    -  2.15e-04 0.00e+00S  5
 144r 1.2392342e+01 1.20e-02 9.99e+02  -0.4 0.00e+00   6.5 0.00e+00 4.01e-07R  2
 145r 1.2418656e+01 7.42e-03 8.73e+02   0.7 4.56e+01    -  9.81e-01 4.34e-02f  1
 146  1.2354649e+01 7.25e-03 9.01e+00  -4.0 7.49e-01    -  2.30e-01 2.30e-02f  1
 147  1.1878053e+01 8.02e-03 1.19e+02  -1.1 3.76e+00    -  4.98e-01 5.72e-02f  1
 148  1.2125243e+01 7.90e-03 1.59e+02  -1.7 1.43e+01    -  1.77e-02 1.59e-02h  1
 149  1.2212088e+01 7.87e-03 1.52e+03  -0.1 8.76e+01    -  2.98e-02 3.37e-03h  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
 150  1.2239155e+01 7.30e-03 1.66e+03   0.8 9.36e+02    -  1.32e-03 2.08e-03f  1
 151  1.2321534e+01 7.37e-03 1.62e+03  -1.7 7.02e+01    -  6.34e-03 2.52e-03h  1
 152  1.2320057e+01 7.35e-03 4.92e+05  -1.2 1.97e-01   6.0 1.00e+00 1.96e-03h  1
 153  1.2422019e+01 7.25e-03 4.61e+05   1.8 2.13e+02    -  5.22e-02 7.15e-03f  1
 154  1.2435383e+01 7.23e-03 4.53e+05  -0.1 4.33e+01    -  1.93e-02 1.74e-03h  1
 155  1.2406106e+01 6.74e-03 4.20e+05   1.3 1.07e+02    -  7.54e-02 1.47e-02f  1
 156  1.2474637e+01 6.64e-03 4.01e+05   1.0 5.30e+01    -  6.11e-02 1.12e-02h  1
 157  1.2433251e+01 6.59e-03 3.73e+05   1.8 2.70e+02    -  9.59e-02 7.21e-03f  1
 158  1.2626991e+01 6.50e-03 3.64e+05  -4.0 2.34e+01    -  5.97e-03 1.15e-02h  1
 159  1.3073248e+01 6.36e-03 2.64e+05   1.6 2.22e+01    -  3.70e-01 2.18e-02f  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
 160  1.3083032e+01 6.35e-03 2.60e+05   2.4 4.93e+01    -  2.15e-03 1.57e-03f  1
 161  1.3250065e+01 6.21e-03 1.39e+05   1.6 1.88e+01    -  8.78e-01 2.14e-02f  1
 162  1.3286336e+01 6.20e-03 1.34e+05  -4.0 1.51e+01    -  5.98e-04 1.34e-03h  1
 163  1.3322455e+01 6.18e-03 1.26e+05   1.5 1.99e+01    -  6.22e-03 3.20e-03f  1
 164  1.3646025e+01 6.03e-03 1.32e+05   1.1 1.42e+01    -  2.54e-01 2.37e-02f  1
 165  1.3759294e+01 5.98e-03 2.52e+06   2.3 9.19e+00    -  1.00e+00 9.62e-03h  1
 166  1.3965610e+01 5.91e-03 1.43e+07   2.8 2.04e+01    -  1.12e-01 1.05e-02h  2
 167  1.4200154e+01 5.90e-03 1.45e+07  -3.1 1.16e+02    -  2.30e-03 1.88e-03h  1
 168  1.4214558e+01 5.90e-03 1.41e+09   2.8 1.33e+01    -  1.00e+00 7.91e-04h  1
 169  1.4443800e+01 5.84e-03 8.94e+09   2.8 1.93e+01    -  6.64e-02 9.60e-03h  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
 170  1.4449831e+01 5.84e-03 4.70e+12   2.8 1.01e+01    -  3.42e-01 4.33e-04h  1
 171  1.4459560e+01 5.83e-03 8.49e+14   2.8 1.43e+01    -  6.52e-02 3.51e-04h  1
 172  1.4459566e+01 5.68e-03 1.63e+14   2.8 8.61e-01  10.1 8.08e-01 1.10e-03h  8
 173  1.4459568e+01 5.68e-03 6.14e+13   0.9 3.22e-01  10.5 6.23e-01 2.44e-04h 13
 174r 1.4459568e+01 5.68e-03 9.02e+02   2.8 0.00e+00    -  0.00e+00 3.87e-07R  3
 175r 1.4405541e+01 1.00e-02 7.58e+00   0.5 6.26e-01    -  9.92e-01 9.87e-01f  1
 176r 1.4396527e+01 3.10e-03 1.08e+01  -4.0 1.70e-01    -  9.46e-01 8.69e-01f  1
 177  1.4396531e+01 3.04e-03 8.97e+00  -4.0 4.15e-01    -  1.71e-01 1.71e-02h  1
 178  1.4776548e+01 4.73e-03 1.74e+00  -1.1 4.72e+00    -  4.83e-01 1.02e-01f  1
 179  1.4441092e+01 4.63e-03 1.11e+01  -1.8 1.07e+00    -  1.96e-01 2.20e-02f  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
 180  1.4409109e+01 4.44e-03 1.66e+01  -4.0 8.60e-01    -  7.21e-02 4.11e-02h  1
 181  1.0705071e+01 1.71e-02 8.68e+01   0.1 2.39e+01    -  3.18e-01 1.90e-02f  1
 182  1.2253845e+01 1.62e-02 1.18e+02  -1.3 2.15e+00    -  3.16e-01 1.50e-01H  1
 183  1.3330306e+01 1.57e-02 1.33e+02  -0.3 4.64e+00    -  7.52e-02 5.02e-02h  1
 184  1.3753720e+01 1.55e-02 1.72e+02  -0.3 1.24e+01    -  4.10e-02 1.59e-02h  1
 185  1.4594092e+01 1.52e-02 1.34e+02  -0.3 4.18e+00    -  2.18e-02 3.27e-02h  1
 186  1.5351624e+01 1.50e-02 3.26e+03  -0.3 1.08e+01    -  4.67e-01 2.48e-02h  1
 187  1.5897314e+01 1.50e-02 1.39e+04  -0.3 3.96e+00    -  2.18e-01 1.37e-02h  3
 188  1.6319099e+01 1.49e-02 9.03e+04  -0.3 7.12e+00    -  2.26e-01 9.68e-03h  3
 189  1.6960398e+01 1.52e-02 3.23e+04  -0.3 1.79e+01    -  5.30e-03 2.18e-02h  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
 190  1.6959098e+01 1.52e-02 1.09e+05  -0.3 6.14e+01    -  8.07e-03 6.35e-05h  1
 191  1.7012877e+01 1.52e-02 1.48e+05  -0.3 2.18e+01    -  3.56e-03 2.03e-03h  1
 192  1.6816283e+01 1.51e-02 1.02e+05  -0.3 1.22e+02    -  9.95e-04 2.97e-03h  1
 193  1.6815769e+01 1.51e-02 1.62e+05  -0.3 8.32e+01    -  1.45e-03 4.37e-05h  1
 194  1.6815846e+01 1.51e-02 5.08e+06  -0.3 9.11e-02  10.0 7.73e-03 3.16e-04h  1
 195  1.6816549e+01 1.51e-02 1.89e+07  -0.3 2.10e-01   9.6 4.57e-03 5.10e-04h  1
 196  1.6817300e+01 1.51e-02 5.56e+08  -0.3 4.51e-01   9.1 6.90e-02 1.43e-04h  1
 197  1.6817632e+01 1.51e-02 9.19e+08  -0.3 2.88e+00   8.6 2.10e-02 2.34e-05h  1
 198  1.6829216e+01 1.51e-02 3.90e+09  -0.3 5.05e+00   8.1 8.91e-02 2.58e-04h  1
 199  1.6979098e+01 1.51e-02 8.32e+09  -0.3 4.97e+00   7.6 1.25e-01 1.88e-03h  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
 200  1.7052418e+01 1.51e-02 8.47e+09  -0.3 1.93e+01   7.2 2.02e-03 5.89e-04h  1

Number of Iterations....: 200

                                   (scaled)                 (unscaled)
Objective...............:   1.7052418482743665e+01    1.7052418482743665e+01
Dual infeasibility......:   8.4675032232238035e+09    8.4675032232238035e+09
Constraint violation....:   1.5109943196774944e-02    1.5109943196774944e-02
Variable bound violation:   3.3876199623250614e-09    3.3876199623250614e-09
Complementarity.........:   5.8238395381850179e+05    5.8238395381850179e+05
Overall NLP error.......:   9.1236201480974808e+02    8.4675032232238035e+09


Number of objective function evaluations             = 329
Number of objective gradient evaluations             = 199
Number of equality constraint evaluations            = 329
Number of inequality constraint evaluations          = 0
Number of equality constraint Jacobian evaluations   = 209
Number of inequality constraint Jacobian evaluations = 0
Number of Lagrangian Hessian evaluations             = 200
Total seconds in IPOPT                               = 6.478

EXIT: Maximum Number of Iterations Exceeded.
==================================================
Minimum time solution found!
==================================================

Step 6: Analyze Time-Optimal Solution

x_sol_mintime = prob_mintime.trajectory.x
u_sol_mintime = prob_mintime.trajectory.u
Δt_sol_mintime = prob_mintime.trajectory.Δt

total_time_mintime = sum(Δt_sol_mintime)

println("\nMinimum time solution:")
println("  Total time: $total_time_mintime seconds")
println("  Average Δt: ", mean(Δt_sol_mintime))
println("  Min Δt: ", minimum(Δt_sol_mintime))
println("  Max Δt: ", maximum(Δt_sol_mintime))

println("\nControl statistics:")
println("  Max |u|: ", maximum(abs.(u_sol_mintime)))
println("  Mean |u|: ", mean(abs.(u_sol_mintime)))
println("  ||u||: ", norm(u_sol_mintime))

Minimum time solution:
  Total time: 17.26635110659278 seconds
  Average Δt: 0.43165877766481947
  Min Δt: 0.010002925639383264
  Max Δt: 0.4999573490285012

Control statistics:
  Max |u|: 1.00000000338762
  Mean |u|: 0.9481535430208462
  ||u||: 6.152668182015456

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: 36 / 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 = 17.26635110659278 seconds...
This is Ipopt version 3.14.19, running with linear solver MUMPS 5.8.2.

Number of nonzeros in equality constraint Jacobian...:      616
Number of nonzeros in inequality constraint Jacobian.:        0
Number of nonzeros in Lagrangian Hessian.............:      994

Total number of variables............................:      156
                     variables with only lower bounds:       40
                variables with lower and upper bounds:       40
                     variables with only upper bounds:        0
Total number of equality constraints.................:       78
Total number of inequality constraints...............:        0
        inequality constraints with only lower bounds:        0
   inequality constraints with lower and upper bounds:        0
        inequality constraints with only upper bounds:        0

iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
   0  3.4237879e-02 4.50e-01 1.02e+00   0.0 0.00e+00    -  0.00e+00 0.00e+00   0
   1  2.7576512e-02 1.10e-01 4.67e-01  -4.0 4.86e-01   0.0 8.49e-01 1.00e+00h  1
   2  3.8110585e-02 8.69e-02 1.03e+00  -1.4 4.99e-01  -0.5 7.35e-01 5.29e-01h  1
   3  1.1277802e-01 9.01e-02 2.51e+00  -0.5 5.63e+00  -0.1 1.11e-01 1.11e-01f  1
   4  1.3782769e-01 8.74e-02 5.56e+00  -2.2 1.79e+00   0.4 5.74e-01 3.27e-02h  1
   5  6.0943049e-01 6.01e-02 1.53e+01  -2.0 1.72e+00   0.8 1.00e+00 3.39e-01h  1
   6  7.9524900e-01 5.53e-02 2.15e+01  -1.3 1.51e+00   0.3 5.29e-01 8.24e-02h  1
   7  1.7349979e+00 7.03e-02 5.12e+01  -1.5 1.71e+00   0.7 1.00e+00 2.77e-01h  1
   8  3.4270569e+00 8.78e-02 3.44e+02  -1.2 2.38e+00   1.2 1.00e+00 2.29e-01h  1
   9  7.3461141e+00 9.53e-02 1.88e+03  -0.9 2.68e+00   1.6 1.00e+00 2.80e-01h  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  10  7.8758818e+00 8.57e-02 1.03e+03   0.6 2.94e+00   2.0 9.95e-01 1.01e-01f  1
  11  9.5750043e+00 6.19e-02 7.02e+03   0.6 1.17e+00   2.5 8.57e-01 2.81e-01f  1
  12  1.0143647e+01 4.32e-02 7.21e+03   0.2 3.08e-01   2.9 1.00e+00 3.02e-01h  1
  13  1.1102107e+01 2.25e-02 5.18e+03  -0.3 3.94e-01   2.4 1.00e+00 4.77e-01h  1
  14  1.2039900e+01 1.07e-02 1.19e+04  -0.4 2.21e-01   2.8 1.00e+00 5.19e-01h  1
  15  1.2514960e+01 8.51e-03 9.61e+03  -0.7 7.85e-01   2.4 1.00e+00 2.08e-01h  1
  16  1.2976420e+01 6.72e-03 9.36e+03  -0.6 2.40e-01   2.8 1.00e+00 2.09e-01h  1
  17  1.3731196e+01 4.93e-03 1.11e+04  -0.7 3.97e-01   2.3 1.00e+00 2.65e-01h  1
  18  1.4971724e+01 2.93e-03 5.15e+04  -1.1 3.51e-01   2.7 1.00e+00 3.91e-01h  1
  19  1.6405591e+01 1.88e-03 1.79e+05  -1.4 6.89e-01   2.2 1.00e+00 3.65e-01h  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  20  1.6464356e+01 1.85e-03 1.77e+05  -2.1 4.12e-01   2.7 1.00e+00 1.32e-02h  1
  21  1.9371551e+01 1.62e-03 4.89e+05  -2.7 8.12e-01   2.2 1.00e+00 5.94e-01h  1
  22  1.9404584e+01 1.61e-03 4.86e+05  -3.4 7.06e-01   2.6 1.00e+00 6.83e-03h  1
  23  2.1159851e+01 7.94e-04 5.34e+05  -2.0 5.36e-01   2.1 1.00e+00 1.66e-01H  1
  24  2.5327992e+01 1.14e-03 1.76e+06  -2.3 5.55e-01   2.6 9.22e-01 4.66e-01H  1
  25  2.7691629e+01 1.09e-03 1.65e+06  -2.8 6.81e-01   2.1 1.00e+00 2.31e-01h  1
  26  2.7852555e+01 1.08e-03 1.63e+06  -3.1 7.63e-01   2.5 1.00e+00 1.39e-02h  1
  27  3.0411291e+01 1.13e-03 3.23e+06  -2.9 7.69e-01   2.9 1.00e+00 2.13e-01h  2
  28  3.1798703e+01 6.57e-03 3.16e+06  -1.0 2.66e+00   2.5 1.00e+00 1.14e-01f  1
  29  3.1796074e+01 6.57e-03 3.16e+06  -1.1 4.61e+00   2.9 1.51e-02 6.56e-04h  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  30  4.0846164e+01 2.59e-03 1.58e+07  -1.1 8.54e-01   2.4 6.66e-01 6.06e-01f  1
  31  4.1259669e+01 2.54e-03 1.56e+07  -1.1 1.29e+00   2.8 1.00e+00 1.76e-02h  1
  32  4.7667429e+01 2.01e-03 1.52e+07  -1.1 1.37e+00   2.4 1.00e+00 2.50e-01f  3
  33  5.2418773e+01 1.91e-03 2.28e+07  -1.1 1.59e+00   2.8 1.00e+00 1.50e-01h  2
  34  6.6319766e+01 2.06e-03 6.43e+07  -1.1 1.84e+00   2.3 5.73e-01 3.09e-01H  1
  35  6.6442804e+01 2.06e-03 6.42e+07  -1.1 2.05e+00   3.6 1.00e+00 2.63e-03h  1
  36  7.0213619e+01 2.03e-03 8.11e+07  -1.1 2.33e+00   3.2 1.89e-01 7.13e-02h  3
  37  7.5777255e+01 2.09e-03 9.85e+07  -1.1 2.54e+00   2.7 3.16e-01 9.37e-02h  2
  38  7.5471217e+01 2.09e-03 9.85e+07  -1.1 2.08e+02   3.1 1.57e-03 8.18e-04h  1
  39  7.5483274e+01 2.09e-03 9.85e+07  -1.1 4.74e+00   3.5 7.27e-01 4.19e-04h  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  40  8.0506411e+01 2.10e-03 1.42e+08  -1.1 2.33e+00   3.1 1.60e-01 8.03e-02h  4
  41  8.2311459e+01 2.07e-03 1.45e+08  -1.1 2.52e+00   2.6 1.12e-01 2.44e-02h  3
  42  8.8471175e+01 2.16e-03 2.43e+08  -1.1 2.68e+00   3.0 1.00e+00 7.92e-02h  3
  43  9.2885998e+01 2.18e-03 2.92e+08  -1.1 3.09e+00   2.5 4.29e-01 4.66e-02h  3
  44  9.6577191e+01 2.17e-03 3.43e+08  -1.1 4.11e+00   2.1 9.37e-01 3.35e-02h  3
  45  9.7182483e+01 2.16e-03 3.42e+08  -1.1 3.84e+00   2.5 1.85e-01 5.17e-03h  1
  46  9.9328504e+01 2.15e-03 3.45e+08  -1.1 4.77e+00   2.0 5.73e-02 1.72e-02h  1
  47  1.0445458e+02 2.19e-03 3.90e+08  -1.1 4.20e+00   2.4 6.42e-01 4.00e-02f  3

Number of Iterations....: 48

Number of objective function evaluations             = 100
Number of objective gradient evaluations             = 49
Number of equality constraint evaluations            = 100
Number of inequality constraint evaluations          = 0
Number of equality constraint Jacobian evaluations   = 48
Number of inequality constraint Jacobian evaluations = 0
Number of Lagrangian Hessian evaluations             = 48
Total seconds in IPOPT                               = 0.232

EXIT: Invalid number in NLP function or derivative detected.

Comparison:
  Minimum time:
    Total time: 17.26635110659278 s
    ||u||: 6.152668182015456
    Max |u|: 1.00000000338762
  Fixed time:
    Total time: 58.77817224876642 s
    ||u||: 4.242818669818563
    Max |u|: 0.999998435042109

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.8504134e-01 1.65e-01 1.00e-01   0.0 0.00e+00    -  0.00e+00 0.00e+00   0
   1  5.8668146e-01 1.07e-01 2.32e+00  -0.8 8.02e-01    -  1.00e+00 9.47e-01h  1
   2  6.4525443e-01 1.06e-01 8.96e+00   1.1 1.21e+02    -  3.93e-02 7.79e-03f  1
   3  7.8032911e-01 1.91e-01 4.15e+00  -0.3 1.23e+00    -  5.39e-01 7.21e-01h  1
   4  7.9335744e-01 1.73e-01 3.48e+00  -4.0 4.36e+00    -  1.13e-01 9.50e-02h  1
   5  8.0275044e-01 1.27e-01 2.73e+00  -4.0 1.47e+00    -  2.52e-01 2.40e-01h  1
   6  8.3663909e-01 9.82e-02 2.50e+00  -4.0 1.29e+00    -  2.22e-01 2.25e-01h  1
   7  9.0143614e-01 6.95e-02 6.94e+00  -0.9 1.04e+00    -  3.22e-01 2.93e-01h  1
   8  9.5218893e-01 5.79e-02 7.47e+00  -0.7 1.44e+00    -  2.74e-01 1.65e-01h  1
   9  1.0368440e+00 4.06e-02 1.26e+01  -0.9 1.29e+00    -  6.02e-01 3.00e-01h  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  10  1.1258927e+00 3.24e-02 2.87e+01  -0.5 1.44e+00   0.0 8.79e-01 2.05e-01h  1
  11  1.1503057e+00 3.13e-02 1.15e+02   0.3 9.00e+00    -  8.17e-01 3.40e-02h  1
  12  1.2376135e+00 2.33e-02 5.54e+02   0.4 1.65e+00    -  1.00e+00 2.79e-01h  1
  13  1.2820560e+00 2.14e-02 6.90e+02  -4.0 2.27e+00    -  8.70e-02 8.10e-02h  1
  14  1.2980498e+00 2.09e-02 6.82e+02  -4.0 7.24e+00    -  3.37e-02 2.28e-02h  1
  15  1.3351533e+00 2.06e-02 1.61e+04   2.0 2.27e+01    -  7.78e-01 9.61e-03f  1
  16  1.3902780e+00 1.86e-02 3.88e+04   1.7 3.73e+00    -  3.24e-01 9.66e-02h  1
  17  1.4065771e+00 1.82e-02 6.40e+04   2.8 5.35e+00    -  7.89e-02 1.83e-02h  1
  18  1.4271847e+00 1.80e-02 1.21e+05   2.8 1.16e+01    -  9.15e-02 1.08e-02h  2
  19  1.4670788e+00 1.76e-02 3.20e+05   2.8 6.35e+00    -  8.67e-02 2.45e-02h  2
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  20  1.5153756e+00 1.71e-02 1.36e+06   2.8 6.26e+00    -  7.11e-02 2.98e-02h  1
  21  1.5801327e+00 1.65e-02 7.75e+06   2.8 8.81e+00    -  6.65e-02 3.20e-02h  1
  22  1.5813911e+00 1.65e-02 7.75e+06  -3.5 1.70e+01   3.1 4.67e-03 4.72e-04h  5
  23  1.5842226e+00 1.65e-02 7.74e+06   2.8 4.30e+01   2.7 7.25e-03 9.93e-04h  4
  24  1.5950603e+00 1.65e-02 7.72e+06   2.8 2.51e+01    -  1.72e-02 3.52e-03h  3
  25  1.6105742e+00 1.64e-02 7.70e+06   2.8 1.37e+01    -  3.86e-02 4.85e-03h  3
  26  1.6264888e+00 1.63e-02 7.68e+06   2.8 7.01e+00    -  4.55e-02 4.95e-03h  4
  27  1.6624821e+00 1.61e-02 7.78e+06   2.8 7.26e+00    -  3.71e-02 1.11e-02h  3
  28  1.6941382e+00 1.60e-02 8.74e+06   2.8 1.97e+01    -  3.64e-01 8.49e-03h  2
  29  1.7608624e+00 1.57e-02 1.21e+08   2.8 1.29e+01    -  1.95e-02 1.85e-02h  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  30  1.7645155e+00 1.56e-02 1.22e+08   2.8 5.63e+00    -  1.23e-01 2.15e-03h  1
  31  1.8066772e+00 1.53e-02 1.45e+08   2.8 6.25e+00    -  1.83e-01 2.30e-02h  2
  32  1.8351707e+00 1.52e-02 2.79e+08   2.8 3.76e+01    -  7.88e-03 5.29e-03h  1
  33  1.8373036e+00 1.52e-02 2.86e+08   2.8 8.75e+00    -  1.66e-02 1.29e-03h  1
  34  1.8448658e+00 1.51e-02 3.30e+08   2.8 1.85e+01    -  1.73e-03 3.87e-03h  2
  35  1.8508006e+00 1.51e-02 4.15e+09   2.8 5.99e+00   6.7 8.37e-01 3.57e-03h  3
  36  1.8535343e+00 1.51e-02 4.17e+09   2.8 6.86e+01    -  9.33e-04 3.84e-04h  5
  37  1.8545641e+00 1.51e-02 4.27e+09   2.8 6.54e+01    -  1.56e-03 1.47e-04h  6
  38  1.8556283e+00 1.51e-02 1.46e+10   2.8 6.24e+01    -  1.31e-01 1.57e-04h  6
  39  1.8753167e+00 1.50e-02 1.43e+10   2.8 1.00e+02    -  1.10e-03 1.87e-03h  2
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  40  1.8720664e+00 1.50e-02 1.51e+10   2.8 3.70e+01    -  5.11e-03 9.99e-04h  4
  41  1.8672298e+00 1.50e-02 1.71e+10   2.8 2.70e+01    -  8.35e-03 2.40e-03h  3
  42  1.8754327e+00 1.49e-02 3.19e+10   2.8 1.67e+01    -  2.82e-02 3.16e-03h  3
  43  1.8831748e+00 1.49e-02 1.12e+12   2.7 2.77e+01    -  1.00e+00 2.15e-03h  3
  44  1.8855963e+00 1.49e-02 1.21e+12   2.8 1.19e+02    -  2.56e-03 1.88e-04h  4
  45  1.9025405e+00 1.47e-02 5.34e+12   2.8 4.79e+00    -  1.02e-01 1.24e-02h  2
  46  1.9130303e+00 1.47e-02 5.82e+12   2.8 6.15e+01    -  6.62e-03 1.59e-03h  1
  47  1.9131364e+00 1.47e-02 1.42e+14   2.5 6.10e+01    -  1.00e+00 1.61e-05h  1
  48  1.9145913e+00 1.47e-02 1.60e+15   2.8 3.60e+00    -  1.46e-01 1.61e-03h  1
  49  1.9228847e+00 1.45e-02 1.16e+17   2.8 2.90e+00    -  1.00e+00 1.13e-02h  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  50  1.9233194e+00 1.45e-02 7.13e+17   2.8 1.83e+00    -  4.06e-02 1.52e-03h  1
  51  1.9236775e+00 1.45e-02 3.59e+18   2.8 2.22e+00    -  1.00e+00 6.41e-04h  1
  52  1.9241398e+00 1.45e-02 7.74e+18   2.8 4.18e+00    -  2.15e-01 3.28e-04h  1
  53  1.9244781e+00 1.45e-02 7.53e+19   2.8 6.78e+00    -  2.20e-01 2.41e-04h  1
  54  1.9245473e+00 1.45e-02 2.10e+20   2.8 3.21e+01    -  7.70e-02 7.83e-05h  1
  55  1.9245654e+00 1.45e-02 1.03e+22   2.8 3.41e+00    -  3.21e-01 1.57e-05h  1
  56r 1.9245654e+00 1.45e-02 9.00e+02   2.8 0.00e+00    -  0.00e+00 4.28e-07R  7
  57r 1.9110603e+00 1.28e-02 9.53e+00   0.5 6.33e-01    -  9.89e-01 9.85e-01f  1
  58  1.9060834e+00 1.24e-02 4.37e+01  -1.3 5.68e-01    -  9.65e-01 3.21e-02h  1
  59  1.9228613e+00 1.14e-02 5.78e+02  -1.6 2.17e-01    -  1.00e+00 7.27e-02h  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  60  1.9247183e+00 1.14e-02 2.05e+05  -0.9 4.96e+00    -  1.00e+00 2.73e-03h  1
  61  1.9248692e+00 1.14e-02 6.07e+08  -0.8 2.22e+01    -  1.00e+00 3.29e-04h  1
  62  1.9497336e+00 1.09e-02 5.97e+06   2.2 5.85e+00    -  9.90e-01 4.25e-02f  1
  63r 1.9497336e+00 1.09e-02 9.19e+02   2.8 0.00e+00    -  0.00e+00 3.20e-07R  6
  64r 1.9385096e+00 9.84e-03 8.48e+00   0.5 6.30e-01    -  9.91e-01 9.86e-01f  1
  65r 1.9384792e+00 2.62e-04 1.76e-01  -4.0 1.61e-02    -  9.81e-01 9.79e-01f  1
  66  1.9345872e+00 2.53e-04 4.05e+01  -1.4 3.95e-01    -  9.69e-01 3.38e-02h  1
  67  1.9475365e+00 2.39e-04 7.16e+02  -1.7 2.28e-01    -  1.00e+00 5.54e-02h  1
  68  1.9477521e+00 2.38e-04 3.84e+05  -0.9 6.72e+00    -  1.00e+00 1.86e-03h  1
  69  1.9477888e+00 2.38e-04 2.55e+09  -0.7 3.00e+01    -  1.00e+00 1.49e-04h  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  70  1.9019457e+00 2.41e-04 2.52e+07   0.8 7.15e+00    -  9.90e-01 6.41e-02h  1
  71  1.9022075e+00 3.20e-04 1.26e+00  -1.1 2.69e-03    -  1.00e+00 1.00e+00f  1
  72r 1.9022075e+00 3.20e-04 1.00e+03  -3.5 0.00e+00    -  0.00e+00 2.79e-07R  4
  73r 1.9022646e+00 3.91e-04 9.07e+02  -1.4 8.99e-02    -  9.90e-01 6.48e-03f  1
  74r 1.9050142e+00 6.57e-04 3.47e+01  -2.0 6.84e-02    -  7.13e-01 1.00e+00f  1
  75r 1.8993280e+00 9.32e-04 1.02e-01  -2.0 7.77e-02    -  1.00e+00 1.00e+00f  1
  76r 1.8805450e+00 1.03e-03 5.52e-01  -3.0 6.69e-02    -  9.65e-01 1.00e+00f  1
  77r 1.9060200e+00 9.97e-04 2.46e-02  -4.0 2.60e-02    -  1.00e+00 1.00e+00f  1
  78r 1.9079930e+00 9.94e-04 1.24e-04  -4.0 9.08e-03    -  1.00e+00 1.00e+00h  1
  79r 1.9070924e+00 9.94e-04 1.07e-06  -4.0 8.98e-03    -  1.00e+00 1.00e+00h  1

Number of Iterations....: 79

                                   (scaled)                 (unscaled)
Objective...............:   1.9070482818911412e+00    1.9070482818911412e+00
Dual infeasibility......:   1.0499932988265981e-01    1.0499932988265981e-01
Constraint violation....:   9.9390500900463320e-04    9.9390500900463320e-04
Variable bound violation:   0.0000000000000000e+00    0.0000000000000000e+00
Complementarity.........:   1.0000193869312377e-04    1.0000193869312377e-04
Overall NLP error.......:   1.0499932988265981e-01    1.0499932988265981e-01


Number of objective function evaluations             = 172
Number of objective gradient evaluations             = 73
Number of equality constraint evaluations            = 172
Number of inequality constraint evaluations          = 0
Number of equality constraint Jacobian evaluations   = 84
Number of inequality constraint Jacobian evaluations = 0
Number of Lagrangian Hessian evaluations             = 80
Total seconds in IPOPT                               = 0.366

EXIT: Converged to a point of local infeasibility. Problem may be infeasible.
This is Ipopt version 3.14.19, running with linear solver MUMPS 5.8.2.

Number of nonzeros in equality constraint Jacobian...:      616
Number of nonzeros in inequality constraint Jacobian.:        0
Number of nonzeros in Lagrangian Hessian.............:      994

Total number of variables............................:      156
                     variables with only lower bounds:        0
                variables with lower and upper bounds:       80
                     variables with only upper bounds:        0
Total number of equality constraints.................:       78
Total number of inequality constraints...............:        0
        inequality constraints with only lower bounds:        0
   inequality constraints with lower and upper bounds:        0
        inequality constraints with only upper bounds:        0

iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
   0  5.8500413e+00 1.65e-01 1.00e+00   0.0 0.00e+00    -  0.00e+00 0.00e+00   0
   1  3.5271835e+00 8.08e-02 1.15e+00  -0.8 5.48e-01    -  9.98e-01 8.46e-01h  1
   2  2.2281675e+00 5.90e-02 1.90e+00  -4.0 1.75e+00    -  3.32e-01 2.67e-01f  1
   3  3.0664106e+00 7.74e-02 7.56e+00  -0.4 2.51e+00   0.0 6.04e-01 2.17e-01f  1
   4  3.3672934e+00 6.49e-02 3.77e+01   0.2 1.41e+00   1.3 4.76e-01 1.23e-01h  1
   5  3.9209729e+00 5.51e-02 1.29e+02   0.4 2.59e+00   0.9 9.24e-01 1.30e-01h  1
   6  4.1756561e+00 5.36e-02 1.72e+02   0.4 3.57e+00    -  7.12e-01 7.09e-02h  1
   7  4.8246117e+00 5.03e-02 7.95e+02   1.2 3.46e+00    -  8.04e-01 7.72e-02h  1
   8  4.7559593e+00 4.13e-02 2.75e+03   1.3 1.29e+00    -  9.62e-01 1.81e-01h  1
   9  4.4244523e+00 3.67e-02 1.40e+03  -4.0 2.74e+00    -  5.78e-02 1.18e-01f  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  10  4.9352373e+00 3.83e-02 2.96e+04   1.9 5.38e+00    -  8.47e-01 6.51e-02f  1
  11  5.0749194e+00 3.73e-02 2.90e+04   2.0 1.70e+01    -  7.31e-02 2.42e-02h  1
  12  5.0970574e+00 3.71e-02 3.26e+04   2.1 4.04e+00    -  5.18e-02 4.99e-03h  1
  13  5.3871791e+00 3.59e-02 2.94e+04   1.8 1.17e+01    -  2.21e-01 2.98e-02h  1
  14  5.7077419e+00 3.53e-02 3.02e+04   2.8 1.83e+01    -  2.14e-02 1.58e-02f  1
  15  5.6988517e+00 3.52e-02 4.98e+04  -4.0 4.23e+00    -  1.33e-01 5.31e-03h  1
  16  5.9346874e+00 3.48e-02 6.46e+04   2.6 2.63e+01   3.1 2.05e-01 9.78e-03f  1
  17  5.9226837e+00 3.23e-02 1.41e+05   1.5 2.49e+00    -  3.56e-01 7.65e-02h  1
  18  5.8346772e+00 3.15e-02 1.05e+05  -3.9 7.30e+00    -  7.45e-03 2.53e-02h  1
  19  5.9941700e+00 3.10e-02 1.26e+05   1.9 1.14e+01    -  7.59e-02 1.50e-02h  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  20  6.1192761e+00 3.07e-02 1.32e+06   2.8 1.19e+01   4.4 5.43e-01 1.03e-02f  1
  21  6.5257532e+00 3.01e-02 1.30e+06   2.8 2.28e+01    -  1.05e-02 1.77e-02h  1
  22  6.6565668e+00 2.97e-02 1.31e+06  -3.4 5.26e+00    -  3.50e-02 1.34e-02h  1
  23  6.8687293e+00 2.90e-02 2.01e+06   2.8 8.71e+00    -  1.88e-01 2.57e-02h  1
  24  6.8390819e+00 2.85e-02 1.51e+06  -3.2 1.21e+01    -  2.80e-03 1.42e-02h  1
  25  6.9058548e+00 2.85e-02 1.80e+06   2.6 2.56e+01    -  3.52e-02 2.82e-03h  1
  26  7.0338899e+00 2.82e-02 1.67e+06   2.8 2.67e+01    -  3.63e-03 9.64e-03h  1
  27  7.1070659e+00 2.81e-02 2.66e+06   2.8 3.24e+01    -  1.13e-02 2.66e-03h  1
  28  7.1380181e+00 2.81e-02 3.67e+06  -3.3 3.81e+01    -  6.38e-03 9.19e-04h  1
  29  7.1509735e+00 2.79e-02 1.98e+06   2.8 6.57e+00   5.7 4.14e-03 8.09e-03h  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  30  7.1905910e+00 2.78e-02 3.99e+06   2.8 8.38e+00   6.2 4.97e-03 2.10e-03h  1
  31  7.2964359e+00 2.77e-02 3.57e+06  -3.3 1.11e+01   5.7 1.77e-03 2.88e-03h  1
  32  7.4104966e+00 2.76e-02 6.38e+06   2.8 7.80e+00   6.1 7.04e-03 3.83e-03h  1
  33  7.5273855e+00 2.75e-02 1.20e+07   2.8 8.00e+00   6.5 6.28e-03 3.93e-03h  1
  34  7.6035803e+00 2.75e-02 1.19e+07   2.8 1.82e+01   6.1 1.32e-03 1.32e-03h  1
  35  7.7627971e+00 2.74e-02 2.40e+07   2.8 1.02e+01   6.5 7.24e-03 3.44e-03h  1
  36  7.9422291e+00 2.73e-02 5.72e+07   2.8 1.10e+01   6.9 7.31e-03 3.69e-03h  1
  37  8.0522820e+00 2.72e-02 1.12e+08   2.8 1.23e+01   7.3 3.82e-03 1.94e-03h  1
  38  8.2577369e+00 2.71e-02 3.13e+08   2.8 1.47e+01   6.9 1.73e-02 3.34e-03h  1
  39  8.4955998e+00 2.70e-02 2.16e+08   2.8 1.60e+01   7.3 9.05e-04 3.22e-03h  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  40  8.5412178e+00 2.70e-02 2.62e+08   2.8 2.30e+01   6.8 2.92e-03 7.85e-04h  1
  41  8.7199045e+00 2.69e-02 3.28e+08   2.3 3.56e+01   6.3 1.32e-02 5.38e-03h  1
  42  8.7277915e+00 2.69e-02 3.29e+08  -3.3 6.04e+01   5.9 9.87e-05 7.49e-04h  1
  43  8.7283752e+00 2.69e-02 1.13e+09   2.8 2.66e+01   8.1 7.88e-03 1.42e-05h  1
  44  8.9127039e+00 2.68e-02 1.10e+09   2.7 2.21e+01   7.6 1.86e-03 2.03e-03h  1
  45  8.9615092e+00 2.68e-02 1.06e+09   2.8 2.53e+01   8.0 4.40e-04 5.17e-04h  1
  46  8.9626772e+00 2.68e-02 2.06e+10   2.8 2.82e+01   8.5 1.28e-02 1.26e-05h  1
  47  9.2792030e+00 2.67e-02 1.94e+10   2.8 3.53e+01   8.0 1.45e-03 3.21e-03h  1
  48  9.2801668e+00 2.67e-02 2.38e+10   2.8 5.76e+01   7.5 1.69e-02 1.97e-05h  1
  49  9.3039099e+00 2.67e-02 3.09e+10   2.8 5.48e+01   7.0 1.05e-02 1.41e-04h  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  50  9.5106751e+00 2.67e-02 4.65e+10   2.8 5.97e+01   7.5 1.35e-02 8.91e-04h  2
  51  9.6167299e+00 2.67e-02 5.70e+10   2.8 9.19e+01   7.0 6.16e-03 4.71e-04h  1
  52  9.6260223e+00 2.67e-02 5.67e+10  -1.6 7.12e+01   8.3 3.11e-06 2.37e-05h  1
  53  9.6466476e+00 2.67e-02 5.74e+10   2.8 9.13e+01   7.8 1.36e-04 5.14e-05h  1
  54  9.7920278e+00 2.67e-02 9.14e+10   2.8 1.17e+02   7.4 6.37e-03 3.95e-04h  1
  55r 9.7920278e+00 2.67e-02 1.00e+03   2.8 0.00e+00   6.9 0.00e+00 4.17e-07R  4
  56r 9.8121207e+00 2.35e-02 9.80e+00   0.7 6.41e-01    -  9.90e-01 9.79e-01f  1
  57  9.7607620e+00 2.22e-02 1.61e+01  -1.2 5.23e-01    -  5.45e-01 5.22e-02h  1
  58  8.6930560e+00 2.15e-02 1.23e+02  -0.2 2.14e+01    -  6.63e-01 2.23e-02f  1
  59  8.7085537e+00 2.13e-02 1.57e+02  -4.0 8.26e+00    -  4.78e-02 7.61e-03h  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  60  9.0962688e+00 4.00e-02 3.11e+03   0.9 2.40e+02    -  5.36e-01 8.23e-03f  1
  61  9.3219840e+00 4.99e-02 4.10e+03   0.6 4.63e+00    -  8.31e-02 4.34e-02h  2
  62  9.5875432e+00 5.45e-02 4.73e+03   0.6 6.04e+00    -  3.11e-02 1.98e-02h  1
  63  9.6716101e+00 5.47e-02 3.98e+03   0.6 7.12e+01    -  1.08e-03 1.80e-02h  1
  64  9.7123107e+00 5.45e-02 2.70e+04   0.6 3.06e+00    -  1.13e-01 3.64e-03h  1
  65  1.0008104e+01 5.29e-02 7.82e+04   0.6 8.50e+00    -  8.85e-02 2.97e-02h  1
  66  1.0309644e+01 5.28e-02 1.90e+05  -4.0 6.38e+01    -  8.21e-03 3.19e-03h  1
  67  1.0474436e+01 5.27e-02 1.57e+08   2.0 1.23e+02    -  1.00e+00 1.42e-03h  1
  68  1.0151827e+01 5.27e-02 8.52e+07  -3.2 4.08e+02    -  2.19e-04 5.90e-04f  1
  69  1.0480921e+01 5.26e-02 1.05e+07   2.8 6.92e+02    -  2.30e-04 4.73e-04h  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  70  1.0430822e+01 5.26e-02 2.10e+08   2.8 7.24e+02    -  4.67e-06 6.31e-05h  1
  71  1.0425862e+01 5.26e-02 1.03e+11   2.8 2.46e+02    -  4.81e-03 1.28e-05h  1
  72  1.0221603e+01 5.26e-02 5.22e+10   2.8 3.41e+02    -  1.47e-04 5.60e-04h  1
  73  1.0457045e+01 5.26e-02 6.00e+10   2.8 1.39e+03    -  1.88e-04 1.71e-04h  1
  74  1.0401796e+01 5.26e-02 1.32e+11   2.8 5.51e+03    -  4.61e-07 9.78e-06h  1
  75  1.0409105e+01 5.26e-02 3.96e+16   2.8 1.35e+03    -  1.00e+00 5.49e-06h  1
  76  1.0409079e+01 5.26e-02 3.95e+14   2.8 1.06e-03  10.9 9.90e-01 1.00e+00f  1
  77  1.0422739e+01 1.38e+00 2.15e+14   2.8 1.44e+00    -  4.65e-01 1.00e+00f  1
  78  1.0495333e+01 1.38e+00 2.15e+14   2.8 6.19e+03    -  6.67e-05 1.17e-05h  1
  79  1.0461939e+01 1.38e+00 2.10e+14   2.1 3.89e-02  11.3 2.21e-02 1.00e+00f  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  80  1.0009900e+01 1.38e+00 2.10e+14   1.4 6.63e+02    -  5.16e-05 6.80e-04h  1
  81r 1.0009900e+01 1.38e+00 9.82e+02   1.4 0.00e+00    -  0.00e+00 2.58e-07R  6
  82r 1.0012105e+01 5.73e-01 8.54e+02  -3.8 2.79e+01    -  3.30e-01 2.98e-02f  1
  83  1.0012048e+01 5.73e-01 1.02e+03   0.7 9.08e+03    -  8.28e-07 6.24e-09f  1
  84  1.0010070e+01 5.73e-01 6.65e+01   0.7 2.18e+04    -  1.30e-09 1.38e-07f  1
  85  1.0316893e+01 5.73e-01 1.11e+03  -0.0 1.68e+03    -  3.11e-05 1.78e-04f  1
  86  1.0320728e+01 5.73e-01 6.04e+02  -0.0 1.21e+03    -  5.38e-05 1.77e-06f  2
  87  1.0381741e+01 5.73e-01 1.56e+03  -0.0 1.79e+03    -  2.96e-06 1.33e-05h  1
  88r 1.0381741e+01 5.73e-01 9.99e+02  -0.0 0.00e+00    -  0.00e+00 2.65e-07R  5
  89r 1.2610479e+01 5.55e-01 9.99e+02   1.7 7.40e+02    -  5.54e-02 6.25e-04f  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  90r 1.2546303e+01 1.01e-01 9.55e+02   0.3 1.08e+01    -  1.69e-02 4.56e-02f  1
  91  1.2465134e+01 1.00e-01 8.71e+01  -0.7 4.85e+00    -  6.29e-02 6.83e-03f  1
  92  1.1939539e+01 9.91e-02 5.30e+01  -0.7 1.16e+01    -  7.80e-03 1.14e-02h  1
  93  1.1730961e+01 9.89e-02 5.73e+02  -0.7 2.62e+01    -  6.82e-03 1.78e-03h  1
  94  1.1433308e+01 9.88e-02 1.90e+03  -0.7 7.83e+01    -  2.93e-03 7.72e-04h  2
  95  1.1268977e+01 9.88e-02 7.48e+03  -0.7 1.12e+02    -  2.67e-03 2.93e-04h  3
  96  1.1069291e+01 9.88e-02 4.17e+04  -0.7 1.27e+02    -  4.61e-03 2.82e-04h  3
  97  1.0888771e+01 9.87e-02 4.61e+05  -0.7 1.61e+02    -  8.07e-03 1.97e-04h  3
  98  1.0737285e+01 9.87e-02 3.67e+05  -0.7 2.93e+03    -  1.85e-05 1.30e-04h  3
  99  1.0715539e+01 9.87e-02 3.38e+05  -0.7 5.27e+04    -  8.56e-06 2.94e-05h  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
 100  1.0693286e+01 9.87e-02 4.70e+05  -0.7 5.11e+02    -  9.56e-05 3.03e-05h  1
 101  1.0731626e+01 9.87e-02 4.68e+05  -0.7 2.03e+03    -  1.44e-05 1.99e-05h  1
 102  1.0786321e+01 9.87e-02 4.70e+05  -0.7 2.14e+03    -  3.29e-05 2.64e-05h  1
 103  1.1136307e+01 9.87e-02 3.99e+07  -0.7 2.18e+03    -  2.06e-01 1.65e-04h  1
 104  1.1086725e+01 9.87e-02 3.87e+07  -0.7 4.06e+03    -  1.28e-05 2.47e-05h  1
 105  1.1086821e+01 9.87e-02 3.87e+07  -0.7 1.11e+00  10.9 8.30e-06 8.30e-06s  6
 106r 1.1086821e+01 9.87e-02 1.00e+03  -0.7 0.00e+00  10.4 0.00e+00 0.00e+00R  1
 107r 1.1091247e+01 4.97e-02 9.85e+02   1.0 5.77e+01    -  9.94e-01 3.01e-03f  1
 108  1.1090702e+01 4.97e-02 6.75e+03  -0.9 5.16e-01    -  1.00e+00 3.27e-04h  1
 109  1.0955961e+01 4.97e-02 3.04e+04   1.1 2.88e+02    -  1.97e-03 2.54e-04h  2
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
 110  1.0877498e+01 4.97e-02 1.20e+08   1.2 6.83e+03    -  1.00e+00 2.32e-04h  1
 111  1.0902852e+01 4.97e-02 1.25e+08   2.8 7.09e+04    -  1.10e-04 2.70e-05h  1
 112r 1.0902852e+01 4.97e-02 9.96e+02   2.8 0.00e+00    -  0.00e+00 4.50e-07R  7
 113r 1.1058377e+01 3.34e-02 8.97e+00   0.4 6.65e-01    -  9.91e-01 9.64e-01f  1
 114  1.1021157e+01 3.30e-02 9.68e+01  -0.3 1.11e+00    -  3.39e-01 1.10e-02f  1
 115  1.1428055e+01 3.20e-02 2.06e+02  -0.3 1.60e+01    -  1.28e-02 2.91e-02f  1
 116  1.1555228e+01 3.16e-02 7.99e+02  -0.3 1.35e+01    -  1.79e-01 1.24e-02h  1
 117  1.1373794e+01 3.11e-02 1.50e+03  -0.3 1.09e+01    -  3.55e-02 1.70e-02h  1
 118  1.1522596e+01 3.10e-02 3.87e+03  -0.3 4.14e+01    -  9.89e-03 1.77e-03h  1
 119  1.1799507e+01 3.09e-02 2.15e+03  -0.3 5.51e+01    -  1.92e-03 3.74e-03h  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
 120  1.1799915e+01 3.09e-02 8.90e+06  -0.3 1.80e-01   9.9 1.00e+00 5.26e-04h  1
 121  1.1801076e+01 3.09e-02 2.76e+09  -0.3 6.05e-01   9.4 2.59e-01 3.38e-04h  1
 122  1.1803787e+01 3.09e-02 1.30e+10  -0.3 1.86e+00   9.0 2.64e-01 1.57e-04h  1
 123  1.1812946e+01 3.09e-02 2.08e+10  -0.3 2.48e+01   8.5 1.36e-02 2.24e-04h  1
 124  1.1823064e+01 3.09e-02 2.47e+10  -0.3 4.01e+01   8.0 1.25e-02 2.27e-04h  1
 125  1.1827359e+01 3.09e-02 2.51e+10  -0.3 1.14e+02   7.5 1.88e-04 3.53e-05h  1
 126  1.1836186e+01 3.09e-02 2.51e+10  -0.3 3.58e+02   7.1 4.78e-05 1.79e-05h  1
 127r 1.1836186e+01 3.09e-02 1.00e+03  -0.3 0.00e+00   7.5 0.00e+00 3.33e-07R  5
 128r 1.1907024e+01 9.32e-03 2.91e+02  -0.4 4.96e+00    -  9.67e-01 1.43e-02f  1
 129  1.1907105e+01 9.32e-03 1.23e+03  -4.0 3.94e-01    -  2.22e-01 1.80e-04h  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
 130  1.2462793e+01 1.20e-02 1.32e+03   0.7 5.82e+02    -  8.15e-04 7.30e-04f  1
 131  1.2442907e+01 1.20e-02 4.99e+03  -0.4 5.97e+01    -  3.39e-03 1.44e-04h  1
 132  1.2161424e+01 1.20e-02 3.68e+03  -0.4 3.52e+02    -  3.64e-05 4.82e-04h  1
 133  1.2158710e+01 1.20e-02 4.28e+03  -0.4 2.34e+03    -  1.25e-04 4.00e-05h  5
 134  1.2161588e+01 1.20e-02 4.80e+03  -0.4 2.76e+03    -  2.08e-04 3.18e-05f  5
 135  1.2163995e+01 1.20e-02 5.72e+03  -0.4 2.43e+03    -  3.17e-04 3.39e-05h  5
 136  1.2162996e+01 1.20e-02 6.59e+03  -0.4 1.86e+03    -  2.09e-04 8.32e-05h  4
 137  1.2167195e+01 1.20e-02 1.03e+05  -0.4 1.60e+03    -  1.76e-02 8.49e-05h  4
 138  1.2155226e+01 1.20e-02 1.18e+05  -0.4 6.11e+02    -  1.33e-04 1.75e-05h  6
 139  1.2125269e+01 1.20e-02 1.35e+05  -0.4 7.49e+02    -  1.67e-04 7.13e-05h  4
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
 140  1.2224148e+01 1.20e-02 5.52e+04  -0.4 8.42e+02    -  5.03e-05 5.80e-04h  1
 141  1.2378013e+01 1.20e-02 1.06e+05  -0.4 3.47e+02    -  2.54e-04 1.16e-03f  1
 142  1.2378072e+01 1.20e-02 1.06e+05  -0.4 4.80e+00   7.0 5.47e-06 5.47e-06s  5
 143  1.2392342e+01 1.20e-02 1.06e+05  -0.4 7.12e+01    -  2.15e-04 0.00e+00S  5
 144r 1.2392342e+01 1.20e-02 9.99e+02  -0.4 0.00e+00   6.5 0.00e+00 4.01e-07R  2
 145r 1.2418656e+01 7.42e-03 8.73e+02   0.7 4.56e+01    -  9.81e-01 4.34e-02f  1
 146  1.2354649e+01 7.25e-03 9.01e+00  -4.0 7.49e-01    -  2.30e-01 2.30e-02f  1
 147  1.1878053e+01 8.02e-03 1.19e+02  -1.1 3.76e+00    -  4.98e-01 5.72e-02f  1
 148  1.2125243e+01 7.90e-03 1.59e+02  -1.7 1.43e+01    -  1.77e-02 1.59e-02h  1
 149  1.2212088e+01 7.87e-03 1.52e+03  -0.1 8.76e+01    -  2.98e-02 3.37e-03h  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
 150  1.2239155e+01 7.30e-03 1.66e+03   0.8 9.36e+02    -  1.32e-03 2.08e-03f  1
 151  1.2321534e+01 7.37e-03 1.62e+03  -1.7 7.02e+01    -  6.34e-03 2.52e-03h  1
 152  1.2320057e+01 7.35e-03 4.92e+05  -1.2 1.97e-01   6.0 1.00e+00 1.96e-03h  1
 153  1.2422019e+01 7.25e-03 4.61e+05   1.8 2.13e+02    -  5.22e-02 7.15e-03f  1
 154  1.2435383e+01 7.23e-03 4.53e+05  -0.1 4.33e+01    -  1.93e-02 1.74e-03h  1
 155  1.2406106e+01 6.74e-03 4.20e+05   1.3 1.07e+02    -  7.54e-02 1.47e-02f  1
 156  1.2474637e+01 6.64e-03 4.01e+05   1.0 5.30e+01    -  6.11e-02 1.12e-02h  1
 157  1.2433251e+01 6.59e-03 3.73e+05   1.8 2.70e+02    -  9.59e-02 7.21e-03f  1
 158  1.2626991e+01 6.50e-03 3.64e+05  -4.0 2.34e+01    -  5.97e-03 1.15e-02h  1
 159  1.3073248e+01 6.36e-03 2.64e+05   1.6 2.22e+01    -  3.70e-01 2.18e-02f  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
 160  1.3083032e+01 6.35e-03 2.60e+05   2.4 4.93e+01    -  2.15e-03 1.57e-03f  1
 161  1.3250065e+01 6.21e-03 1.39e+05   1.6 1.88e+01    -  8.78e-01 2.14e-02f  1
 162  1.3286336e+01 6.20e-03 1.34e+05  -4.0 1.51e+01    -  5.98e-04 1.34e-03h  1
 163  1.3322455e+01 6.18e-03 1.26e+05   1.5 1.99e+01    -  6.22e-03 3.20e-03f  1
 164  1.3646025e+01 6.03e-03 1.32e+05   1.1 1.42e+01    -  2.54e-01 2.37e-02f  1
 165  1.3759294e+01 5.98e-03 2.52e+06   2.3 9.19e+00    -  1.00e+00 9.62e-03h  1
 166  1.3965610e+01 5.91e-03 1.43e+07   2.8 2.04e+01    -  1.12e-01 1.05e-02h  2
 167  1.4200154e+01 5.90e-03 1.45e+07  -3.1 1.16e+02    -  2.30e-03 1.88e-03h  1
 168  1.4214558e+01 5.90e-03 1.41e+09   2.8 1.33e+01    -  1.00e+00 7.91e-04h  1
 169  1.4443800e+01 5.84e-03 8.94e+09   2.8 1.93e+01    -  6.64e-02 9.60e-03h  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
 170  1.4449831e+01 5.84e-03 4.70e+12   2.8 1.01e+01    -  3.42e-01 4.33e-04h  1
 171  1.4459560e+01 5.83e-03 8.49e+14   2.8 1.43e+01    -  6.52e-02 3.51e-04h  1
 172  1.4459566e+01 5.68e-03 1.63e+14   2.8 8.61e-01  10.1 8.08e-01 1.10e-03h  8
 173  1.4459568e+01 5.68e-03 6.14e+13   0.9 3.22e-01  10.5 6.23e-01 2.44e-04h 13
 174r 1.4459568e+01 5.68e-03 9.02e+02   2.8 0.00e+00    -  0.00e+00 3.87e-07R  3
 175r 1.4405541e+01 1.00e-02 7.58e+00   0.5 6.26e-01    -  9.92e-01 9.87e-01f  1
 176r 1.4396527e+01 3.10e-03 1.08e+01  -4.0 1.70e-01    -  9.46e-01 8.69e-01f  1
 177  1.4396531e+01 3.04e-03 8.97e+00  -4.0 4.15e-01    -  1.71e-01 1.71e-02h  1
 178  1.4776548e+01 4.73e-03 1.74e+00  -1.1 4.72e+00    -  4.83e-01 1.02e-01f  1
 179  1.4441092e+01 4.63e-03 1.11e+01  -1.8 1.07e+00    -  1.96e-01 2.20e-02f  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
 180  1.4409109e+01 4.44e-03 1.66e+01  -4.0 8.60e-01    -  7.21e-02 4.11e-02h  1
 181  1.0705071e+01 1.71e-02 8.68e+01   0.1 2.39e+01    -  3.18e-01 1.90e-02f  1
 182  1.2253845e+01 1.62e-02 1.18e+02  -1.3 2.15e+00    -  3.16e-01 1.50e-01H  1
 183  1.3330306e+01 1.57e-02 1.33e+02  -0.3 4.64e+00    -  7.52e-02 5.02e-02h  1
 184  1.3753720e+01 1.55e-02 1.72e+02  -0.3 1.24e+01    -  4.10e-02 1.59e-02h  1
 185  1.4594092e+01 1.52e-02 1.34e+02  -0.3 4.18e+00    -  2.18e-02 3.27e-02h  1
 186  1.5351624e+01 1.50e-02 3.26e+03  -0.3 1.08e+01    -  4.67e-01 2.48e-02h  1
 187  1.5897314e+01 1.50e-02 1.39e+04  -0.3 3.96e+00    -  2.18e-01 1.37e-02h  3
 188  1.6319099e+01 1.49e-02 9.03e+04  -0.3 7.12e+00    -  2.26e-01 9.68e-03h  3
 189  1.6960398e+01 1.52e-02 3.23e+04  -0.3 1.79e+01    -  5.30e-03 2.18e-02h  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
 190  1.6959098e+01 1.52e-02 1.09e+05  -0.3 6.14e+01    -  8.07e-03 6.35e-05h  1
 191  1.7012877e+01 1.52e-02 1.48e+05  -0.3 2.18e+01    -  3.56e-03 2.03e-03h  1
 192  1.6816283e+01 1.51e-02 1.02e+05  -0.3 1.22e+02    -  9.95e-04 2.97e-03h  1
 193  1.6815769e+01 1.51e-02 1.62e+05  -0.3 8.32e+01    -  1.45e-03 4.37e-05h  1
 194  1.6815846e+01 1.51e-02 5.08e+06  -0.3 9.11e-02  10.0 7.73e-03 3.16e-04h  1
 195  1.6816549e+01 1.51e-02 1.89e+07  -0.3 2.10e-01   9.6 4.57e-03 5.10e-04h  1
 196  1.6817300e+01 1.51e-02 5.56e+08  -0.3 4.51e-01   9.1 6.90e-02 1.43e-04h  1
 197  1.6817632e+01 1.51e-02 9.19e+08  -0.3 2.88e+00   8.6 2.10e-02 2.34e-05h  1
 198  1.6829216e+01 1.51e-02 3.90e+09  -0.3 5.05e+00   8.1 8.91e-02 2.58e-04h  1
 199  1.6979098e+01 1.51e-02 8.32e+09  -0.3 4.97e+00   7.6 1.25e-01 1.88e-03h  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
 200  1.7052418e+01 1.51e-02 8.47e+09  -0.3 1.93e+01   7.2 2.02e-03 5.89e-04h  1

Number of Iterations....: 200

                                   (scaled)                 (unscaled)
Objective...............:   1.7052418482743665e+01    1.7052418482743665e+01
Dual infeasibility......:   8.4675032232238035e+09    8.4675032232238035e+09
Constraint violation....:   1.5109943196774944e-02    1.5109943196774944e-02
Variable bound violation:   3.3876199623250614e-09    3.3876199623250614e-09
Complementarity.........:   5.8238395381850179e+05    5.8238395381850179e+05
Overall NLP error.......:   9.1236201480974808e+02    8.4675032232238035e+09


Number of objective function evaluations             = 329
Number of objective gradient evaluations             = 199
Number of equality constraint evaluations            = 329
Number of inequality constraint evaluations          = 0
Number of equality constraint Jacobian evaluations   = 209
Number of inequality constraint Jacobian evaluations = 0
Number of Lagrangian Hessian evaluations             = 200
Total seconds in IPOPT                               = 0.799

EXIT: Maximum Number of Iterations Exceeded.
This is Ipopt version 3.14.19, running with linear solver MUMPS 5.8.2.

Number of nonzeros in equality constraint Jacobian...:      616
Number of nonzeros in inequality constraint Jacobian.:        0
Number of nonzeros in Lagrangian Hessian.............:      994

Total number of variables............................:      156
                     variables with only lower bounds:        0
                variables with lower and upper bounds:       80
                     variables with only upper bounds:        0
Total number of equality constraints.................:       78
Total number of inequality constraints...............:        0
        inequality constraints with only lower bounds:        0
   inequality constraints with lower and upper bounds:        0
        inequality constraints with only upper bounds:        0

iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
   0  5.8500041e+01 1.65e-01 1.00e+01   0.0 0.00e+00    -  0.00e+00 0.00e+00   0
   1  2.0812265e+01 5.30e-02 8.62e+00  -0.7 2.15e-01   2.0 1.00e+00 6.46e-01f  1
   2  1.9913745e+01 4.84e-02 5.39e+01   0.1 1.27e+00   1.5 9.91e-01 8.74e-02h  1
   3  1.9614195e+01 4.81e-02 4.84e+01  -4.0 2.76e+01   1.0 2.62e-02 5.85e-03f  1
   4  1.9611145e+01 4.80e-02 5.54e+01  -4.0 6.87e+00   0.6 5.45e-02 2.01e-03h  1
   5  2.0776490e+01 4.10e-02 2.95e+02   0.6 3.37e+00   1.0 9.63e-01 1.16e-01f  1
   6  2.3792218e+01 1.05e-01 4.34e+02   1.5 1.50e+01   1.4 2.18e-01 3.35e-02f  1
   7  2.5861025e+01 8.30e-02 4.15e+02   0.9 2.91e+00    -  4.69e-01 1.97e-01h  1
   8  3.2035572e+01 7.47e-02 7.34e+02   1.6 7.03e+00    -  3.72e-01 1.01e-01f  1
   9  3.5718464e+01 6.07e-02 1.97e+03   1.4 1.17e+00   2.7 9.52e-01 1.86e-01h  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  10  3.8553714e+01 4.81e-02 1.53e+03  -4.0 8.51e-01    -  1.57e-01 2.06e-01h  1
  11  4.2395193e+01 4.11e-02 2.82e+03   1.0 2.19e+00    -  5.45e-01 1.47e-01h  1
  12  4.5338690e+01 3.83e-02 2.44e+04   1.8 2.22e+00   3.2 1.00e+00 6.68e-02h  1
  13  5.0852414e+01 3.72e-02 3.38e+04   2.8 1.29e+01    -  1.86e-01 3.02e-02f  1
  14  5.2777080e+01 3.42e-02 1.30e+05   2.3 2.65e+00    -  1.00e+00 8.03e-02h  1
  15  5.2760422e+01 2.94e-02 9.75e+04   2.8 3.66e+00    -  1.20e-01 1.39e-01h  1
  16  5.3924241e+01 2.91e-02 4.89e+05   2.2 9.58e+00    -  2.87e-01 1.24e-02h  1
  17  5.6514111e+01 2.83e-02 4.85e+05   2.8 6.50e+00   4.5 3.96e-02 2.53e-02h  1
  18  5.7897499e+01 2.80e-02 5.00e+05   2.4 1.63e+01   4.0 3.49e-02 1.02e-02h  1
  19  5.6116807e+01 2.78e-02 4.97e+05   2.8 5.62e+01    -  9.84e-04 8.40e-03f  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  20  5.8325810e+01 2.73e-02 5.47e+05   2.8 6.05e+00    -  9.19e-02 1.87e-02h  1
  21  5.9770463e+01 2.69e-02 5.88e+05  -3.5 4.46e+00    -  2.77e-02 1.51e-02h  1
  22  6.0657196e+01 2.67e-02 5.85e+05   2.8 2.43e+01   4.5 3.16e-03 4.80e-03h  1
  23  6.3694377e+01 2.62e-02 2.62e+06   2.8 1.67e+01    -  4.40e-01 1.92e-02h  1
  24  6.3882090e+01 2.62e-02 2.75e+06   2.8 2.04e+01    -  2.32e-02 8.56e-04h  1
  25  6.4291822e+01 2.61e-02 2.81e+06  -3.2 7.75e+00    -  8.62e-03 5.00e-03h  1
  26  6.6528330e+01 2.60e-02 2.76e+06   2.8 5.59e+01   4.0 1.83e-03 4.63e-03h  1
  27  6.7991096e+01 2.58e-02 2.80e+07   2.8 3.16e+01    -  1.00e+00 4.82e-03h  1
  28  6.6430155e+01 2.53e-02 4.15e+07  -2.4 2.50e+01    -  3.49e-02 1.90e-02f  1
  29  6.6795085e+01 2.53e-02 4.55e+07   2.8 5.89e+01   6.2 1.02e-04 9.84e-04h  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  30  6.7162240e+01 2.53e-02 4.62e+07   2.8 2.58e+01    -  1.41e-02 1.78e-03h  1
  31  7.0897566e+01 2.49e-02 4.46e+07   2.8 2.55e+01    -  7.97e-03 1.48e-02h  1
  32  7.0935310e+01 2.49e-02 1.17e+08   1.1 2.65e+01    -  5.65e-02 1.42e-04h  1
  33  7.2556423e+01 2.49e-02 1.32e+08  -2.3 1.94e+02    -  3.15e-05 8.69e-04h  1
  34  7.5677769e+01 2.47e-02 1.31e+08   2.8 3.67e+01    -  8.79e-03 8.50e-03h  1
  35  7.5708458e+01 2.47e-02 3.71e+08   2.8 3.77e+01    -  1.43e-01 8.27e-05h  1
  36  7.5223352e+01 2.45e-02 9.95e+08   2.8 7.79e+01    -  1.83e-02 5.32e-03h  1
  37  7.5591180e+01 2.45e-02 2.80e+08  -1.9 1.04e+02    -  1.26e-04 1.66e-03h  1
  38  7.5727682e+01 2.45e-02 2.83e+08   2.8 8.70e+01    -  9.95e-05 1.78e-04h  1
  39  7.5957987e+01 2.45e-02 2.93e+08   2.8 7.25e+01    -  5.38e-04 3.17e-04h  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  40  7.7459835e+01 2.44e-02 2.60e+08   2.8 7.34e+01    -  1.33e-03 2.04e-03h  1
  41  8.0258268e+01 2.43e-02 2.21e+08   1.6 7.82e+01    -  2.85e-03 3.52e-03h  1
  42  8.0218951e+01 2.43e-02 3.08e+08   2.8 4.18e+02   7.5 7.23e-06 4.42e-05h  1
  43  8.0334372e+01 2.43e-02 3.10e+08   2.8 7.68e+01    -  3.43e-04 2.74e-04h  1
  44  8.0661548e+01 2.43e-02 3.13e+08   2.8 7.04e+01    -  7.57e-04 6.89e-04h  1
  45  8.3291085e+01 2.42e-02 1.50e+09   2.7 7.20e+01    -  2.41e-02 5.41e-03h  1
  46  8.3333368e+01 2.42e-02 2.64e+09   2.8 6.75e+01    -  7.65e-03 5.78e-05h  1
  47  8.5013906e+01 2.41e-02 2.78e+09   2.8 1.21e+02    -  2.95e-03 1.39e-03h  1
  48  8.5030714e+01 2.41e-02 3.00e+09   2.8 1.38e+02    -  1.55e-03 1.22e-05h  1
  49r 8.5030714e+01 2.41e-02 9.98e+02   2.8 0.00e+00    -  0.00e+00 3.30e-07R  2
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  50r 8.5348764e+01 1.55e-02 1.65e+01   0.7 6.36e-01    -  9.84e-01 9.86e-01f  1
  51  8.5972444e+01 1.56e-02 4.01e+02   0.5 4.67e+00    -  5.18e-01 5.42e-03f  1
  52  7.8177915e+01 1.45e-02 7.42e+02   0.1 6.14e+00    -  1.86e-01 6.68e-02f  1
  53  7.9862062e+01 1.44e-02 1.60e+03  -0.6 4.62e+00    -  7.01e-02 1.05e-02h  1
  54  8.0902207e+01 1.43e-02 4.97e+03   0.6 3.64e+01    -  1.57e-01 2.65e-03h  1
  55  8.3862260e+01 1.41e-02 5.22e+03  -4.0 7.57e+00    -  2.07e-02 1.71e-02h  1
  56  8.3986131e+01 1.40e-02 2.17e+06   1.4 2.37e-01   7.1 9.48e-01 9.30e-03h  1
  57  8.3990840e+01 1.40e-02 2.05e+06   2.8 3.36e+00    -  5.75e-02 2.04e-03h  1
  58  8.4705657e+01 1.39e-02 2.02e+06  -4.0 3.58e+00    -  1.06e-02 5.99e-03h  1
  59  8.9214564e+01 1.38e-02 1.95e+06   2.8 5.25e+01    -  3.87e-02 7.26e-03h  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  60  8.9852880e+01 1.37e-02 1.92e+06   2.8 2.90e+01    -  1.27e-02 3.30e-03h  1
  61  9.3529872e+01 1.36e-02 1.91e+06   2.8 4.12e+01    -  4.59e-03 7.79e-03h  1
  62  9.4994608e+01 1.36e-02 1.90e+06  -4.0 2.36e+01    -  5.78e-03 2.66e-03h  1
  63  9.5091664e+01 1.36e-02 1.90e+06   2.8 7.30e+02    -  8.72e-05 1.61e-04h  1
  64  9.7660313e+01 1.35e-02 4.63e+06   2.8 9.07e+01    -  3.91e-02 3.41e-03h  1
  65  1.0001025e+02 1.35e-02 4.70e+06  -3.8 1.07e+02    -  1.80e-03 1.67e-03h  1
  66  1.0101941e+02 1.35e-02 1.16e+07   2.8 1.73e+02    -  4.85e-03 6.56e-04h  1
  67  1.0226432e+02 1.35e-02 1.19e+07  -3.7 8.71e+02    -  6.76e-06 1.95e-04h  1
  68  1.0232921e+02 1.35e-02 1.22e+07   2.8 4.31e+02    -  4.94e-04 3.56e-04h  1
  69  1.0239494e+02 1.35e-02 1.31e+07   2.2 3.49e+02    -  6.85e-04 3.87e-04h  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  70  1.0227969e+02 1.35e-02 1.20e+07   2.8 2.95e+02    -  1.68e-04 4.32e-04h  1
  71  1.0229030e+02 1.35e-02 6.02e+07   2.6 2.93e+02    -  8.40e-03 5.13e-04h  1
  72r 1.0229030e+02 1.35e-02 9.92e+02   2.8 0.00e+00    -  0.00e+00 4.79e-07R  5
  73r 1.0008939e+02 1.06e-02 9.02e+00   0.9 6.27e-01    -  9.91e-01 9.93e-01f  1
  74  9.9145414e+01 1.11e-02 2.25e+02   0.7 8.02e+00    -  2.81e-01 5.70e-03f  1
  75  6.6048330e+01 2.75e-02 2.35e+02  -0.3 2.64e+00    -  1.75e-01 1.71e-01f  1
  76  7.2753499e+01 2.61e-02 4.62e+02  -4.0 1.68e+00    -  1.77e-01 5.23e-02h  1
  77  8.3271149e+01 2.74e-02 1.68e+03   1.5 1.91e+01    -  5.56e-02 1.08e-02f  1
  78  8.8068032e+01 2.86e-02 1.89e+03   0.3 6.64e+00    -  5.00e-02 3.75e-02h  1
  79  9.1256729e+01 2.85e-02 2.69e+03   0.3 1.57e+01    -  2.20e-02 1.13e-02h  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  80  9.5058723e+01 2.84e-02 4.71e+03   0.3 1.44e+01    -  2.45e-02 1.23e-02h  1
  81  9.8507096e+01 2.83e-02 7.64e+03   0.3 1.55e+01    -  1.49e-02 9.22e-03h  1
  82  1.0047953e+02 2.82e-02 3.57e+04   0.3 5.21e+01    -  1.65e-02 3.05e-03h  1
  83  1.0319523e+02 2.82e-02 4.48e+04   0.3 3.67e+01    -  5.63e-03 4.47e-03h  1
  84  1.0320035e+02 2.82e-02 1.37e+06   0.3 4.04e+01    -  1.76e-02 8.78e-04h  1
  85  1.0248664e+02 2.81e-02 2.27e+06   0.3 1.61e+02    -  8.33e-04 3.73e-04h  2
  86  1.0355192e+02 2.81e-02 8.85e+06   0.3 3.00e+02    -  1.04e-03 3.31e-04h  1
  87r 1.0355192e+02 2.81e-02 1.00e+03   0.3 0.00e+00    -  0.00e+00 2.86e-07R 10
  88r 9.9566755e+01 2.59e-02 1.68e+02   1.0 4.99e+01    -  9.12e-01 8.01e-03f  1
  89r 9.9567769e+01 2.25e-02 5.57e+02   0.5 1.28e+00    -  4.09e-01 1.80e-01f  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  90r 9.9578128e+01 1.63e-02 5.63e+02   0.5 5.77e-01    -  9.41e-01 2.34e-01f  1
  91  9.1219896e+01 1.29e-02 9.08e+00  -0.4 2.07e+00    -  9.54e-02 8.75e-02f  1
  92  2.4491238e+01 5.48e-02 8.58e+00  -0.4 4.96e+00    -  5.91e-02 8.39e-02f  1
  93  3.7767742e+01 5.28e-02 2.34e+01  -0.0 1.08e+00    -  1.00e+00 1.12e-01f  1
  94  4.8265220e+01 5.54e-02 7.99e+01  -0.1 6.00e+00    -  6.63e-01 1.19e-01h  1
  95  5.4173128e+01 5.20e-02 7.11e+01  -0.1 1.84e+00    -  9.64e-02 7.28e-02h  1
  96  5.9252468e+01 4.99e-02 7.87e+01  -0.1 3.32e+00    -  6.43e-02 4.32e-02h  1
  97  6.4438113e+01 4.83e-02 1.23e+02  -0.1 4.71e+00    -  5.03e-02 3.46e-02h  1
  98  6.9386376e+01 4.71e-02 1.36e+02  -0.1 6.16e+00    -  2.92e-02 2.59e-02h  1
  99  7.3459430e+01 4.63e-02 1.83e+02  -0.1 8.76e+00    -  2.05e-02 1.69e-02h  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
 100  7.7526044e+01 4.58e-02 3.47e+02  -0.1 1.69e+01    -  1.91e-02 1.32e-02h  1
 101  7.9592872e+01 4.55e-02 5.48e+02  -0.1 3.74e+01    -  8.56e-03 4.84e-03h  1
 102  8.2337688e+01 4.52e-02 8.36e+02  -0.1 1.32e+01    -  1.02e-02 7.56e-03h  1
 103  8.4091496e+01 4.51e-02 9.17e+02  -0.1 7.30e+01    -  2.99e-03 2.45e-03h  1
 104  8.5778997e+01 4.50e-02 5.45e+03  -0.1 3.73e+01    -  1.62e-02 3.15e-03h  1
 105  8.5788465e+01 4.50e-02 5.58e+05  -0.1 4.30e-01   6.6 2.98e-02 3.46e-04h  1
 106  8.5833778e+01 4.49e-02 2.76e+07  -0.1 2.43e+00   6.1 2.78e-01 5.34e-04h  1
 107  8.6348556e+01 4.48e-02 2.90e+07  -0.1 4.53e+00   5.6 1.22e-02 3.09e-03h  1
 108  8.6897630e+01 4.48e-02 2.96e+07  -0.1 1.08e+01   5.2 3.79e-03 1.26e-03h  1
 109  8.7205357e+01 4.47e-02 3.38e+07  -0.1 1.11e+01   5.6 5.08e-03 5.86e-04h  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
 110  8.7729585e+01 4.47e-02 3.40e+07  -0.1 3.95e+01   5.1 7.64e-04 3.80e-04h  1
 111  8.8120189e+01 4.47e-02 3.96e+07  -0.1 1.76e+01   5.5 3.41e-03 3.70e-04h  1
 112  8.8689790e+01 4.47e-02 7.00e+07  -0.1 1.94e+01   6.0 6.31e-03 5.37e-04h  1
 113  8.9522898e+01 4.47e-02 7.12e+07  -0.1 3.91e+01   5.5 7.36e-04 3.91e-04h  1
 114  9.0009405e+01 4.46e-02 9.74e+07  -0.1 3.32e+01   5.9 2.93e-03 2.42e-04h  1
 115  9.1660120e+01 4.46e-02 1.77e+08  -0.1 3.25e+01   6.3 4.01e-03 8.31e-04h  1
 116  9.2541915e+01 4.46e-02 1.76e+08  -0.1 7.51e+01   5.9 2.50e-04 2.80e-04h  1
 117  9.2993731e+01 4.46e-02 2.00e+08  -0.1 5.00e+01   6.3 6.46e-04 1.48e-04h  1
 118  9.3285020e+01 4.46e-02 2.68e+08  -0.1 6.93e+01   5.8 2.33e-03 9.05e-05h  1
 119  9.5845553e+01 4.45e-02 2.56e+08  -0.1 9.20e+01   5.3 3.51e-04 9.33e-04h  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
 120  9.5896566e+01 4.45e-02 2.68e+08  -0.1 1.96e+02   4.8 5.97e-04 2.98e-05h  1
 121  9.6624008e+01 4.45e-02 6.95e+08  -0.1 9.26e+01   6.2 4.25e-03 1.88e-04h  1
 122  9.7809649e+01 4.45e-02 7.50e+08  -0.1 1.41e+02   5.7 1.04e-03 3.38e-04h  2
 123  9.9141898e+01 4.45e-02 7.29e+08  -0.1 1.49e+02   6.1 2.06e-04 3.07e-04h  1
 124  9.9282945e+01 4.45e-02 7.23e+08  -0.1 2.29e+02   5.6 4.25e-05 7.64e-05h  1
 125  9.9330176e+01 4.45e-02 7.12e+08  -0.1 1.14e+02   7.0 2.84e-06 1.27e-05h  1
 126r 9.9330176e+01 4.45e-02 1.00e+03  -0.1 0.00e+00   6.5 0.00e+00 1.64e-07R  2
 127r 1.0962830e+02 3.31e-02 1.11e+03   1.1 6.57e+01    -  7.43e-01 6.92e-03f  1
 128  1.0957525e+02 3.30e-02 4.15e+02  -0.1 6.60e+00    -  3.69e-02 3.14e-04f  1
 129  1.0938875e+02 3.29e-02 4.21e+02  -0.1 7.16e+01    -  3.68e-03 3.62e-03h  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
 130  1.0755886e+02 3.29e-02 2.87e+03  -0.1 1.74e+02    -  4.33e-03 5.26e-04h  1
 131  1.0455610e+02 3.29e-02 2.94e+03  -0.1 1.84e+02    -  6.50e-04 6.25e-04h  2
 132  1.0359019e+02 3.29e-02 1.19e+04  -0.1 2.23e+02    -  1.55e-03 5.40e-04h  1
 133  1.0231638e+02 3.29e-02 2.68e+04  -0.1 7.20e+02    -  3.74e-04 1.98e-04h  1
 134  1.0192380e+02 3.29e-02 2.17e+05  -0.1 1.60e+03    -  3.02e-04 5.09e-05h  1
 135  1.0118506e+02 3.29e-02 5.94e+05  -0.1 5.96e+03    -  7.27e-05 2.69e-05h  1
 136  1.0145998e+02 3.29e-02 5.93e+05  -0.1 8.87e+03    -  7.53e-06 7.53e-06s  5
 137r 1.0145998e+02 3.29e-02 1.00e+03  -0.1 0.00e+00    -  0.00e+00 0.00e+00R  1
 138r 1.0432956e+02 1.14e-02 9.86e+02   0.9 3.91e+00    -  9.81e-01 3.52e-02f  1
 139  1.0420980e+02 1.14e-02 1.03e+02  -0.7 1.28e+00    -  9.23e-02 2.36e-03f  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
 140  9.3588248e+01 1.13e-02 4.59e+01   0.4 1.22e+02    -  6.06e-02 3.94e-03f  1
 141  9.3828605e+01 1.13e-02 3.03e+02  -4.0 1.51e+00    -  6.01e-02 2.47e-03h  1
 142  1.0034938e+02 3.62e-02 6.81e+03   1.9 5.11e+02    -  1.14e-01 9.25e-04f  1
 143  1.0029842e+02 3.61e-02 8.07e+03   0.8 2.24e+01    -  2.17e-02 3.41e-03h  1
 144  1.0045638e+02 3.49e-02 7.92e+03   0.8 4.23e+00    -  2.05e-02 2.02e-02f  1
 145  1.0017774e+02 3.46e-02 4.48e+04   0.8 2.61e+00    -  2.50e-01 7.80e-03h  1
 146  1.0099100e+02 3.37e-02 5.69e+04   0.8 7.87e+00    -  3.72e-02 2.74e-02h  1
 147  1.0188646e+02 3.36e-02 3.09e+05   0.8 2.85e+01    -  1.89e-02 2.22e-03h  1
 148  1.0299705e+02 3.35e-02 2.08e+06   0.8 2.29e+01    -  1.26e-02 1.90e-03h  1
 149  1.0094358e+02 3.35e-02 1.89e+06   0.8 2.11e+02    -  5.14e-04 5.63e-04h  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
 150  1.0186606e+02 3.35e-02 1.88e+06   0.8 1.77e+03    -  1.10e-04 1.10e-04s 10
 151r 1.0186606e+02 3.35e-02 1.00e+03   0.8 0.00e+00    -  0.00e+00 0.00e+00R  1
 152r 1.0187253e+02 7.00e-03 4.83e+02  -0.7 1.87e-01    -  9.89e-01 1.98e-01f  1
 153  1.0186886e+02 7.00e-03 3.63e+04   0.1 2.04e+00    -  1.00e+00 1.09e-04f  1
 154  1.0332666e+02 7.00e-03 4.10e+04  -4.0 1.54e+02    -  5.91e-04 4.20e-04h  2
 155  1.0272852e+02 6.99e-03 2.13e+05  -4.0 7.67e+01    -  2.91e-03 4.31e-04f  1
 156  1.0427318e+02 6.99e-03 2.12e+05   1.8 1.25e+03    -  2.67e-04 2.67e-04s 11
 157r 1.0427318e+02 6.99e-03 1.00e+03  -0.1 0.00e+00    -  0.00e+00 3.53e-07R  9
 158r 1.0438523e+02 7.06e-03 8.28e+02  -0.6 8.78e-02    -  9.86e-01 1.70e-01f  1
 159r 1.0920933e+02 7.31e-03 6.31e+02  -0.5 7.75e-01    -  1.00e+00 1.84e-01f  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
 160r 1.0452774e+02 8.60e-03 9.47e+00  -1.8 2.80e-01    -  9.02e-01 9.80e-01f  1
 161r 1.0578808e+02 1.41e-02 6.33e+00  -1.9 1.32e-01    -  8.28e-01 7.13e-01f  1
 162r 1.0652404e+02 1.55e-02 1.85e+01  -2.1 3.38e-01    -  9.62e-01 5.67e-01f  1
 163r 1.0641488e+02 1.60e-02 5.92e-01  -3.1 5.91e-03   2.0 1.00e+00 1.00e+00f  1
 164r 1.0664701e+02 1.78e-02 2.77e+00  -3.9 1.02e-02   1.5 1.00e+00 5.94e-01f  1
 165r 1.0691944e+02 1.89e-02 3.20e+00  -3.6 3.58e-02   1.0 1.00e+00 2.06e-01f  1
 166r 1.0715177e+02 1.93e-02 1.26e+00  -4.0 5.26e-03   1.5 1.00e+00 6.16e-01f  1
 167r 1.0740166e+02 1.79e-02 1.90e+00  -4.0 1.16e-02   1.0 1.00e+00 3.96e-01f  1
 168r 1.0763514e+02 1.80e-02 1.02e-01  -4.0 3.89e-03   1.4 1.00e+00 1.00e+00f  1
 169r 1.0774502e+02 1.83e-02 1.01e-01  -4.0 1.15e-02   0.9 1.00e+00 9.46e-01h  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
 170r 1.0749592e+02 2.12e-02 9.68e-02  -4.0 3.31e-02   0.5 1.00e+00 1.00e+00h  1
 171r 1.0738050e+02 2.39e-02 1.57e+00  -4.0 8.85e-02  -0.0 1.00e+00 4.38e-01h  1
 172r 1.0742451e+02 3.53e-02 8.68e-01  -4.0 2.06e-01  -0.5 2.98e-01 3.34e-01h  1
 173r 1.0738180e+02 3.42e-02 7.71e-02  -4.0 1.11e-02   0.8 1.00e+00 1.00e+00h  1
 174r 1.0737577e+02 3.40e-02 7.31e-01  -4.0 1.35e-02   0.4 1.00e+00 2.94e-01h  1
 175r 1.0734351e+02 3.21e-02 5.11e-03  -4.0 6.60e-03  -0.1 1.00e+00 1.00e+00f  1
 176r 1.0729634e+02 2.97e-02 1.25e-02  -4.0 1.39e-02  -0.6 1.00e+00 1.00e+00h  1
 177r 1.0724112e+02 3.68e-02 8.21e-01  -4.0 2.04e-02  -1.1 1.00e+00 8.57e-01H  1
 178r 1.0712459e+02 5.05e-02 3.12e-01  -4.0 6.08e-02  -1.5 1.00e+00 1.00e+00F  1
 179r 1.0716552e+02 5.04e-02 5.68e-01  -4.0 2.85e-01  -2.0 1.39e-01 1.91e-01h  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
 180r 1.0727185e+02 4.28e-02 1.38e+00  -4.0 6.24e-02  -1.6 1.00e+00 3.77e-01h  2
 181r 1.0728433e+02 4.28e-02 6.85e-02  -4.1 1.70e-03   0.6 1.00e+00 5.99e-01h  1
 182r 1.0729516e+02 4.30e-02 1.89e-03  -4.0 1.32e-03   0.2 1.00e+00 1.00e+00f  1
 183r 1.0728444e+02 5.52e-02 1.63e-01  -4.0 4.65e-02    -  1.00e+00 1.00e+00h  1
 184r 1.0728313e+02 5.67e-02 8.04e-04  -4.0 6.29e-03    -  1.00e+00 1.00e+00h  1
 185r 1.0728458e+02 5.66e-02 2.92e-06  -4.0 2.97e-04    -  1.00e+00 1.00e+00h  1

Number of Iterations....: 185

                                   (scaled)                 (unscaled)
Objective...............:   1.0728457864252975e+02    1.0728457864252975e+02
Dual infeasibility......:   1.0004999811440399e+01    1.0004999811440399e+01
Constraint violation....:   5.6608925962964927e-02    5.6608925962964927e-02
Variable bound violation:   0.0000000000000000e+00    0.0000000000000000e+00
Complementarity.........:   1.0000000001640000e-04    1.0000000001640000e-04
Overall NLP error.......:   6.1102084512674004e+00    1.0004999811440399e+01


Number of objective function evaluations             = 258
Number of objective gradient evaluations             = 157
Number of equality constraint evaluations            = 258
Number of inequality constraint evaluations          = 0
Number of equality constraint Jacobian evaluations   = 194
Number of inequality constraint Jacobian evaluations = 0
Number of Lagrangian Hessian evaluations             = 186
Total seconds in IPOPT                               = 0.691

EXIT: Converged to a point of local infeasibility. Problem may be infeasible.

Time weight effects:
Weight | Total Time | ||u||   | Max |u|
---------------------------------------------
0.1   | 18.8569 s   | 6.1503 | 0.9999
1.0   | 17.2664 s   | 6.1527 | 1.0000
10.0   | 10.9811 s   | 6.0688 | 1.0000

Observations:
  - Lower weight → slower trajectory, gentler controls
  - Higher weight → faster trajectory, more aggressive 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.15050293328501838
  Coefficient of variation: 0.349

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.