JuMP/Gurobi: optimize! returns INFEASIBLE, but there is feasible point

I am solving a very large (>1M variables) linear program with Gurobi. After 3 hours, Gurobi returns with status INFEASIBLE. However, if I run primal_feasibility_report with all variables being zero, it returns an empty Dict, indicating that none of the variables violate any constraints (which also conceptually makes sense given my understanding of the problem). I’m wondering how this can be? Has anyone else run into this behavior?

I recognize that primal_feasibility_report doesn’t necessarily call Gurobi, so could it be a problem with numerical imprecision in the the handoff between JuMP and Gurobi?

1 Like

Do you have the Gurobi log? Did it complain about numerical issues? What version of Gurobi?

Did you try setting a start value?

set_start_value.(all_variables.(model), 0.0)

It’s also possible that this is a bug in Gurobi. One thing you could try is write_to_file(model, "bug.mps") and then pass the MPS file to gurobi_cl bug.mps and see if it also errors. That should help identify whether the problem is in JuMP or Gurobi. If it’s in Gurobi, you should reach out to their support with the MPS file.

You could also try another solver like CPLEX to see if it has the same problem. See Debugging · JuMP

Thanks for the response. The Gurobi log (which I don’t have permissions to upload and is too long to post in this response) has a couple of numerical trouble warnings:

Gurobi Optimizer version 9.5.1 build v9.5.1rc2 (win64)
Thread count: 48 physical cores, 48 logical processors, using up to 1 threads
Optimize a model with 4633052 rows, 1346751 columns and 10256904 nonzeros
Model fingerprint: 0x40252232
Coefficient statistics:
  Matrix range     [2e-01, 2e+05]
  Objective range  [1e-01, 2e+06]
  Bounds range     [0e+00, 0e+00]
  RHS range        [1e-03, 1e+04]
Presolve removed 2596666 rows and 554977 columns (presolve time = 7s) ...
Presolve removed 2609668 rows and 567979 columns (presolve time = 11s) ...
Presolve removed 3693259 rows and 594673 columns
Presolve time: 14.62s
Presolved: 939793 rows, 1046083 columns, 3203963 nonzeros

Elapsed ordering time = 5s
Elapsed ordering time = 9s
Elapsed ordering time = 10s
Elapsed ordering time = 15s
Elapsed ordering time = 16s
Elapsed ordering time = 20s
Elapsed ordering time = 23s
Elapsed ordering time = 25s
Elapsed ordering time = 30s
Elapsed ordering time = 31s
Elapsed ordering time = 35s
Ordering time: 37.02s

Barrier statistics:
 Dense cols : 52
 Free vars  : 7894
 AA' NZ     : 1.045e+07
 Factor NZ  : 1.627e+08 (roughly 1.7 GB of memory)
 Factor Ops : 2.303e+11 (roughly 9 seconds per iteration)
 Threads    : 1

# Barrier log table ...
Barrier performed 81 iterations in 2368.57 seconds (1285.79 work units)
Numerical trouble encountered

# Then appears to cross over to Simplex method with a simplex log.
Warning: very big Kappa = 5.95566e+13, try parameter NumericFocus

# Then seems to cross back over to barrier method?

Barrier statistics:
 Dense cols : 52
 Free vars  : 113584
 AA' NZ     : 1.916e+07
 Factor NZ  : 2.907e+08 (roughly 3.0 GB of memory)
 Factor Ops : 4.440e+11 (roughly 20 seconds per iteration)
 Threads    : 1

# Then a long Barrier log

Barrier performed 66 iterations in 6246.39 seconds (3336.08 work units)
Numerical trouble encountered

# Then switches to Simplex again with a very long simplex log

Warning: very big Kappa = 4.6182e+14, try parameter NumericFocus

Solved in 372531 iterations and 9757.11 seconds (5797.72 work units)
Infeasible model

I am using the following Gurobi settings

(;
        LogToConsole    = false,
        NumericFocus    = 3,
        BarHomogeneous  = 1,
        method          = 2,
        BarIterLimit    = 1000,
        Crossover       = 1,
        FeasibilityTol  = 1e-2,
        OptimalityTol   = 1e-6,
        BarConvTol      = 1e-8,
        Threads         = 1,
        DualReductions  = 0,  # This is only to see if infeasible or unbounded.
)

I did set the start value to be a value that is probably not feasible. I could try again with the all-zero initial value set. I’m currently running compute_conflict! which has been going for ~6 hours. After that, I can try saving the model, re-running with the all-zero starting point, etc.

Thanks!

1 Like

Okay, a few comments. This is because of numerical issues in your formulation.

  • Read https://www.gurobi.com/documentation/current/refman/guidelines_for_numerical_i.html.
  • Can you reformulate your model to strengthen the formulation? It’s hard to give advice without seeing the model, but a few things JuMP (if you will) out:
    • The model starts with 4.6e6 rows, and presolve quickly removes 3.6e6 rows. Are all of the constraints necessary? Is there some redundancy? Is there a different way of formulating the model?
    • The objective coefficients cover 7 orders of magnitude. Do they all make sense?
    • The bound range is empty? Have you given all variables good lower and upper bounds? Note that you should use @variable(model, x >= lower) instead of @variable(model, x) @constraint(model, x >= lower). The former adds a new row to the constraint matrix. (That might be the reason for your presolve row issue.)
  • Why all of the options? What happens with the default settings, and only NumericFocus = 3? You should probably also leave DualReductions unset. It can distinguish infeasible and unbounded, but it also limits what presolve techniques can be applied.
  • compute_conflict is unlikely to be helpful. The issue is numerical, not a modeling error.
3 Likes

Thanks for the detailed explanation! That was a very helpful Gurobi article. A little insight about the model - this is an electricity economic dispatch problem built on a DCOPF. There are variables for the voltage angle at each bus, each generator’s power capacity, each generator’s power generation, and the unmet load at each bus. The objective is in terms of costs of operation, and cost of unmet load.

Addressing some of your questions:

  • I didn’t realize it was not equivalent to use bounds vs constraints. I was able to bound most of the variables. I also uncovered some other redundant constraints that I cleaned up. In total, that cut the number of rows in half.
  • Unmet load generally has a much higher coefficient than many of the cost terms, but a multi-objective formulation wouldn’t be appropriate in this application. I tried scaling (changing the units) of the unmet load variables.
  • I was basing many options off of what worked for a previous, similar problem that was formulated using MATPOWER, in MATLAB. I have seen those problems solve with much larger coefficient ranges (not that it’s ideal), so I tried the settings we used successfully in the past.
  • compute_conflict! never converged.

After making the above changes, I’m still getting numerical instability, as shown in the log below. Is there anything else worth checking?

Gurobi 9.5.1 (win64) logging started Fri Feb 24 11:05:38 2023

Set parameter LogFile to value "L:\Project-Gurobi\Workspace3\E4ST\Data\mpc_210711_allTech\out_gurobi3a\Gurobi.log"
Set parameter LogToConsole to value 0
Set parameter NumericFocus to value 3
Set parameter BarHomogeneous to value 1
Set parameter Method to value 2
Set parameter Crossover to value 0
Set parameter Threads to value 1

Gurobi 9.5.1 (win64) logging started Fri Feb 24 11:05:38 2023

Set parameter LogFile to value "L:\Project-Gurobi\Workspace3\E4ST\Data\mpc_210711_allTech\out_gurobi3a\Gurobi.log"
Gurobi Optimizer version 9.5.1 build v9.5.1rc2 (win64)
Thread count: 24 physical cores, 24 logical processors, using up to 1 threads
Optimize a model with 2301832 rows, 1346751 columns and 6949436 nonzeros
Model fingerprint: 0x79483959
Coefficient statistics:
  Matrix range     [1e-03, 2e+05]
  Objective range  [1e-01, 4e+04]
  Bounds range     [2e-02, 1e+06]
  RHS range        [1e-03, 1e+04]
Presolve removed 193856 rows and 11856 columns (presolve time = 6s) ...
Presolve removed 823784 rows and 11856 columns
Presolve time: 9.55s
Presolved: 1478048 rows, 1941735 columns, 5943756 nonzeros
Elapsed ordering time = 5s
Ordering time: 6.36s

Barrier statistics:
 AA' NZ     : 3.555e+06
 Factor NZ  : 3.529e+07 (roughly 600 MB of memory)
 Factor Ops : 2.475e+10 (roughly 1 second per iteration)
 Threads    : 1

                  Objective                Residual
Iter       Primal          Dual         Primal    Dual     Compl     Time
   0   1.83190336e+19 -4.32267594e+21  1.14e+06 6.75e+10  6.04e+15    25s
   1   8.37179011e+18 -5.13354961e+20  5.19e+05 6.69e+09  1.19e+15    29s
   2   1.03835904e+18 -6.15870211e+19  6.43e+04 6.93e+08  1.44e+14    33s
   3   1.06758637e+17 -6.22279522e+18  6.61e+03 6.90e+07  1.46e+13    40s
   4   1.38220068e+16 -6.41749837e+17  8.55e+02 7.11e+06  1.72e+12    44s
   5   2.25271989e+15 -8.15822366e+16  1.38e+02 9.04e+05  2.37e+11    48s
   6   5.49600769e+14 -2.07942128e+16  3.30e+01 2.30e+05  4.61e+10    52s
   7   2.10198394e+14 -6.17362854e+15  1.21e+01 6.85e+04  1.13e+10    57s
   8   8.63806668e+13 -1.89107778e+15  4.87e+00 2.10e+04  3.15e+09    64s
   9   4.11986865e+13 -6.56421260e+14  2.38e+00 7.29e+03  1.05e+09    73s
  10   2.56036982e+13 -2.69134278e+14  1.52e+00 2.98e+03  4.52e+08    84s
  11   2.52693245e+13 -2.67059666e+14  1.50e+00 2.96e+03  4.47e+08    90s
  12   2.52701596e+13 -2.67072034e+14  1.50e+00 2.96e+03  4.47e+08    95s
  13   2.47783700e+13 -2.60987638e+14  1.47e+00 2.89e+03  4.36e+08   105s
  14   2.42150559e+13 -2.51453863e+14  1.87e+00 4.42e+02  4.20e+08   111s
  15   2.42212248e+13 -2.51439969e+14  1.87e+00 4.42e+02  4.20e+08   116s
  16   2.41842533e+13 -2.49438609e+14  1.87e+00 4.38e+02  4.17e+08   124s
  17   2.28480211e+13 -2.27950764e+14  1.78e+00 3.99e+02  3.81e+08   131s
  18   2.28465635e+13 -2.27950330e+14  1.78e+00 3.98e+02  3.81e+08   138s
  19   2.28221799e+13 -2.27788001e+14  1.77e+00 3.98e+02  3.80e+08   143s
  20   2.26962243e+13 -2.25400296e+14  1.77e+00 3.94e+02  3.77e+08   153s
  21   2.14709663e+13 -2.14177503e+14  3.35e+00 3.74e+02  3.55e+08   163s
  22   2.14738829e+13 -2.14191719e+14  6.57e+00 3.74e+02  3.55e+08   169s
  23   2.13870563e+13 -2.12940179e+14  6.53e+00 3.72e+02  3.53e+08   175s
  24   2.13553195e+13 -2.11345135e+14  6.52e+00 3.69e+02  3.51e+08   181s
  25   2.10417289e+13 -2.10533310e+14  6.43e+00 3.67e+02  3.47e+08   188s
  26   2.10328273e+13 -2.10242653e+14  7.80e+00 3.67e+02  3.47e+08   198s
  27   2.09594761e+13 -2.07492436e+14  7.79e+00 3.62e+02  3.44e+08   207s
  28   2.09594639e+13 -2.07488999e+14  7.79e+00 3.62e+02  3.44e+08   214s
  29   2.09288527e+13 -2.07290325e+14  7.78e+00 3.62e+02  3.43e+08   220s
  30   2.09220473e+13 -2.07309217e+14  7.78e+00 3.62e+02  3.43e+08   228s
  31   2.08958296e+13 -2.07205263e+14  7.77e+00 3.61e+02  3.43e+08   236s
  32   2.08893250e+13 -2.07129207e+14  7.77e+00 3.61e+02  3.43e+08   242s
  33   2.08828311e+13 -2.07011052e+14  7.77e+00 3.61e+02  3.43e+08   248s
  34   2.07090345e+13 -2.04267075e+14  1.40e+01 3.56e+02  3.38e+08   257s
  35   2.07166324e+13 -2.04326293e+14  1.40e+01 3.56e+02  3.38e+08   262s
  36   2.05284233e+13 -2.00456701e+14  1.39e+01 3.49e+02  3.33e+08   270s
  37   2.00328092e+13 -1.94944329e+14  1.36e+01 3.40e+02  3.23e+08   282s
  38   2.00314872e+13 -1.94943863e+14  1.36e+01 3.40e+02  3.23e+08   289s
  39   1.99917125e+13 -1.94308061e+14  1.35e+01 3.38e+02  3.21e+08   296s
  40   1.96704672e+13 -1.90745104e+14  1.33e+01 3.32e+02  3.15e+08   302s
  41   1.96672173e+13 -1.90712195e+14  1.33e+01 3.32e+02  3.15e+08   311s
  42   1.95625024e+13 -1.89671456e+14  1.33e+01 3.30e+02  3.13e+08   318s
  43   1.94477293e+13 -1.87545854e+14  1.32e+01 3.27e+02  3.10e+08   326s
  44   1.94414768e+13 -1.87385194e+14  1.32e+01 3.26e+02  3.09e+08   334s
  45   1.94419507e+13 -1.87386999e+14  1.32e+01 3.26e+02  3.09e+08   341s
  46   1.94410044e+13 -1.87377506e+14  1.32e+01 3.26e+02  3.09e+08   347s
  47   1.94381471e+13 -1.87355411e+14  1.32e+01 3.26e+02  3.09e+08   352s
  48   1.94395704e+13 -1.87398863e+14  1.32e+01 3.26e+02  3.09e+08   359s
  49   1.94248674e+13 -1.87296663e+14  1.32e+01 3.26e+02  3.09e+08   368s
  50   1.94217748e+13 -1.87220787e+14  1.32e+01 3.26e+02  3.09e+08   373s
  51   1.94183806e+13 -1.87181497e+14  1.32e+01 3.26e+02  3.09e+08   379s
  52   1.94091265e+13 -1.87179850e+14  1.32e+01 3.26e+02  3.09e+08   385s
  53   1.94037753e+13 -1.87152096e+14  1.32e+01 3.26e+02  3.09e+08   392s
  54   1.93965782e+13 -1.86925901e+14  1.32e+01 3.25e+02  3.09e+08   399s
  55   1.90472235e+13 -1.85682126e+14  1.48e+01 3.23e+02  3.05e+08   405s
  56   1.90316105e+13 -1.85542290e+14  1.48e+01 3.23e+02  3.04e+08   410s
  57   1.89780952e+13 -1.85472893e+14  1.47e+01 3.23e+02  3.04e+08   416s
  58   1.89588729e+13 -1.85486449e+14  1.47e+01 3.23e+02  3.04e+08   427s
  59   1.89660249e+13 -1.85464831e+14  1.47e+01 3.23e+02  3.04e+08   434s
  60   1.89611597e+13 -1.85384872e+14  1.47e+01 3.23e+02  3.04e+08   438s
  61   1.89621981e+13 -1.85382301e+14  1.47e+01 3.23e+02  3.04e+08   443s
  62   1.89574234e+13 -1.85274514e+14  1.47e+01 3.22e+02  3.03e+08   450s
  63   1.89364779e+13 -1.85091346e+14  1.47e+01 3.22e+02  3.03e+08   458s
  64   1.88907169e+13 -1.84488802e+14  1.47e+01 3.21e+02  3.02e+08   464s
  65   1.87571503e+13 -1.83910051e+14  2.06e+01 3.20e+02  3.01e+08   471s
  66   1.87554466e+13 -1.83881831e+14  3.90e+01 3.20e+02  3.01e+08   483s
  67   1.87396185e+13 -1.83869021e+14  3.90e+01 3.20e+02  3.01e+08   488s
  68   1.87381758e+13 -1.83861415e+14  3.90e+01 3.20e+02  3.01e+08   494s
  69   1.87298530e+13 -1.83767462e+14  3.90e+01 3.20e+02  3.00e+08   501s
  70   1.87204940e+13 -1.83738685e+14  3.90e+01 3.20e+02  3.00e+08   510s
  71   1.87176060e+13 -1.83673295e+14  3.89e+01 3.20e+02  3.00e+08   517s
  72   1.87177006e+13 -1.83670357e+14  3.89e+01 3.20e+02  3.00e+08   526s
  73   1.87331818e+13 -1.83617124e+14  3.89e+01 3.20e+02  3.00e+08   533s

Barrier performed 73 iterations in 533.24 seconds (278.41 work units)
Numerical trouble encountered


User-callback calls 5067, time in user-callback 0.00 sec

The one thing I’m a little uncertain about is that optimal solutions for the objective function are likely in the 1e11 to 1e12 range. Is this worth reformulating? The simplest way would be to scale all of the objective coefficients down by 10^6 or something, so that the objective is in terms of millions of dollars rather than dollars. But that would yield very small objective coefficients. Are there better ways to reformulate?

Thank you so much for your help!!

Yes, you should probably scale down the objective. This way, you also scale down the duals, which improves the numerics (especially if you use an interior-point method).

After scaling down the objective by 10^6, I’m still seeing the same issues. Any thoughts on why this might be?


Gurobi 9.5.1 (win64) logging started Fri Feb 24 16:00:07 2023

Set parameter LogFile to value "L:\Project-Gurobi\Workspace3\E4ST\Data\mpc_210711_allTech\out_gurobi2\Gurobi.log"
Set parameter LogToConsole to value 0
Set parameter Method to value 2
Set parameter Crossover to value 0
Set parameter Threads to value 1

Gurobi 9.5.1 (win64) logging started Fri Feb 24 16:00:07 2023

Set parameter LogFile to value "L:\Project-Gurobi\Workspace3\E4ST\Data\mpc_210711_allTech\out_gurobi2\Gurobi.log"
Gurobi Optimizer version 9.5.1 build v9.5.1rc2 (win64)
Thread count: 24 physical cores, 24 logical processors, using up to 1 threads
Optimize a model with 2301832 rows, 1346751 columns and 6949436 nonzeros
Model fingerprint: 0xbb6434e0
Coefficient statistics:
  Matrix range     [1e-03, 2e+05]
  Objective range  [1e-07, 4e-02]
  Bounds range     [2e-02, 1e+06]
  RHS range        [1e-03, 1e+04]
Presolve removed 196664 rows and 14664 columns (presolve time = 8s) ...
Presolve removed 225368 rows and 14664 columns (presolve time = 10s) ...
Presolve removed 829400 rows and 14664 columns
Presolve time: 11.80s
Presolved: 1472432 rows, 1936119 columns, 5939024 nonzeros
Elapsed ordering time = 5s
Ordering time: 7.11s

Barrier statistics:
 AA' NZ     : 3.535e+06
 Factor NZ  : 3.616e+07 (roughly 600 MB of memory)
 Factor Ops : 2.649e+10 (roughly 1 second per iteration)
 Threads    : 1

                  Objective                Residual
Iter       Primal          Dual         Primal    Dual     Compl     Time
   0   1.67667648e+13 -4.26631141e+15  1.06e+06 4.79e+01  5.96e+09    31s
   1   6.66269156e+12 -9.32550733e+13  4.19e+05 2.91e-11  6.74e+08    32s
   2   8.12060754e+10 -3.06993558e+12  5.10e+03 4.34e-09  9.92e+06    35s
   3   2.41944473e+09 -3.48249133e+10  1.51e+02 5.09e-10  2.40e+05    37s
   4   3.41306826e+08 -1.71545549e+10  2.04e+01 3.71e-10  4.03e+04    40s
   5   1.01833789e+08 -6.77572452e+09  5.56e+00 5.75e-10  1.14e+04    43s
   6   8.32068642e+07 -4.87494701e+09  4.48e+00 3.64e-10  8.21e+03    46s
   7   7.62333032e+07 -4.09057352e+09  4.08e+00 1.19e-09  6.96e+03    49s
   8   6.87755028e+07 -3.86872288e+09  3.66e+00 1.37e-09  6.38e+03    52s
   9   5.88356077e+07 -3.39314733e+09  3.11e+00 1.86e-09  5.41e+03    54s
  10   5.84701833e+07 -3.37663152e+09  3.10e+00 1.83e-09  5.38e+03    57s
  11   5.59809162e+07 -3.23446968e+09  2.96e+00 1.69e-09  5.12e+03    60s
  12   5.51274477e+07 -3.21261713e+09  2.91e+00 1.72e-09  5.06e+03    63s
  13   5.50600419e+07 -3.21131632e+09  2.91e+00 1.72e-09  5.06e+03    66s
  14   5.48709388e+07 -3.20528914e+09  2.90e+00 1.69e-09  5.04e+03    69s
  15   5.47465471e+07 -3.19407257e+09  2.89e+00 1.69e-09  5.02e+03    72s
  16   5.47393602e+07 -3.19390511e+09  2.89e+00 1.69e-09  5.02e+03    76s
  17   5.42751660e+07 -3.18394899e+09  2.87e+00 1.69e-09  4.99e+03    79s
  18   5.36596116e+07 -3.15806405e+09  2.83e+00 1.66e-09  4.94e+03    82s
  19   5.03205581e+07 -2.91076839e+09  2.65e+00 2.50e-09  4.53e+03    85s
  20   5.03133443e+07 -2.91037120e+09  2.65e+00 2.49e-09  4.53e+03    88s
  21   5.02851946e+07 -2.90327460e+09  2.65e+00 2.60e-09  4.52e+03    91s
  22   4.98910385e+07 -2.89523061e+09  2.63e+00 2.55e-09  4.49e+03    94s
  23   4.70590363e+07 -2.69941551e+09  2.47e+00 1.72e-09  4.17e+03    97s
  24   4.69118193e+07 -2.69231656e+09  2.69e+00 1.70e-09  4.15e+03   100s
  25   4.69056647e+07 -2.69217349e+09  2.69e+00 1.72e-09  4.15e+03   103s
  26   4.68802234e+07 -2.68657722e+09  2.69e+00 1.63e-09  4.15e+03   106s
  27   4.68026946e+07 -2.67448746e+09  2.68e+00 1.66e-09  4.13e+03   109s
  28   4.67805864e+07 -2.67343179e+09  2.68e+00 1.64e-09  4.13e+03   112s
  29   4.67799270e+07 -2.67343740e+09  2.68e+00 1.64e-09  4.13e+03   115s
  30   4.67839736e+07 -2.67341827e+09  2.68e+00 1.64e-09  4.13e+03   118s
  31   4.67841214e+07 -2.67335262e+09  2.68e+00 1.66e-09  4.13e+03   121s
  32   4.61330409e+07 -2.66715707e+09  2.64e+00 1.62e-09  4.10e+03   124s
  33   4.56386475e+07 -2.65187429e+09  2.62e+00 1.41e-09  4.06e+03   127s
  34   4.43424747e+07 -2.57792334e+09  2.59e+00 3.46e-09  3.93e+03   130s
  35   4.38772605e+07 -2.55915046e+09  2.57e+00 3.19e-09  3.89e+03   133s
  36   4.37367455e+07 -2.54998859e+09  2.56e+00 3.22e-09  3.88e+03   136s
  37   4.37441629e+07 -2.54997189e+09  2.56e+00 3.22e-09  3.88e+03   139s
  38   4.34660525e+07 -2.53424623e+09  2.54e+00 2.88e-09  3.85e+03   142s
  39   4.34466562e+07 -2.53219465e+09  2.54e+00 2.88e-09  3.85e+03   145s
  40   4.32492397e+07 -2.53045782e+09  2.52e+00 2.88e-09  3.84e+03   148s
  41   4.32494093e+07 -2.53045968e+09  2.52e+00 2.87e-09  3.84e+03   151s
  42   4.31765556e+07 -2.53018725e+09  2.52e+00 2.85e-09  3.83e+03   154s
  43   4.31759172e+07 -2.53018870e+09  2.52e+00 2.85e-09  3.83e+03   157s
  44   4.31405200e+07 -2.52984994e+09  2.52e+00 2.85e-09  3.83e+03   160s
  45   4.31294155e+07 -2.52989094e+09  2.52e+00 2.85e-09  3.83e+03   164s
  46   4.31296858e+07 -2.52986061e+09  2.52e+00 2.85e-09  3.83e+03   167s
  47   4.30961853e+07 -2.52654923e+09  2.51e+00 2.76e-09  3.83e+03   170s
  48   4.30885012e+07 -2.52639321e+09  2.51e+00 2.76e-09  3.83e+03   173s
  49   4.31066323e+07 -2.52633164e+09  2.51e+00 2.76e-09  3.83e+03   176s
  50   4.30932485e+07 -2.52636037e+09  2.51e+00 2.76e-09  3.83e+03   179s
  51   4.24587958e+07 -2.47539845e+09  2.47e+00 3.06e-09  3.75e+03   183s
  52   4.24515762e+07 -2.47530254e+09  2.47e+00 3.06e-09  3.75e+03   186s
  53   4.24412466e+07 -2.47513406e+09  2.47e+00 3.04e-09  3.75e+03   189s
  54   4.24130283e+07 -2.47160680e+09  2.47e+00 2.94e-09  3.74e+03   192s
  55   4.23461131e+07 -2.46936580e+09  2.47e+00 2.98e-09  3.74e+03   195s
  56   4.16360776e+07 -2.45448645e+09  2.43e+00 2.55e-09  3.69e+03   198s
  57   4.16232237e+07 -2.45374103e+09  2.43e+00 2.53e-09  3.69e+03   202s
  58   4.16277720e+07 -2.45369948e+09  2.43e+00 2.53e-09  3.69e+03   205s
  59   4.14961047e+07 -2.44584908e+09  2.42e+00 2.24e-09  3.68e+03   208s
  60   4.14960448e+07 -2.44572966e+09  2.42e+00 2.26e-09  3.68e+03   211s
  61   4.14955883e+07 -2.44565083e+09  2.42e+00 2.24e-09  3.68e+03   214s
  62   4.08514150e+07 -2.43639402e+09  2.38e+00 2.02e-09  3.65e+03   217s
  63   4.06122305e+07 -2.42837089e+09  2.37e+00 2.04e-09  3.63e+03   219s
  64   4.03951976e+07 -2.41773764e+09  2.35e+00 2.50e-09  3.61e+03   222s
  65   4.03407267e+07 -2.41306070e+09  2.35e+00 2.47e-09  3.60e+03   225s
  66   4.03459368e+07 -2.41300996e+09  2.35e+00 2.46e-09  3.60e+03   228s
  67   4.03508810e+07 -2.41300965e+09  2.35e+00 2.46e-09  3.60e+03   232s
  68   4.03452504e+07 -2.41283755e+09  2.35e+00 2.49e-09  3.60e+03   235s
  69   4.03450712e+07 -2.41276485e+09  2.35e+00 2.47e-09  3.60e+03   238s
  70   4.03102838e+07 -2.41164895e+09  2.35e+00 2.52e-09  3.60e+03   242s
  71   4.03091513e+07 -2.41165526e+09  2.35e+00 2.52e-09  3.60e+03   245s
  72   4.02939907e+07 -2.41078696e+09  2.35e+00 2.50e-09  3.60e+03   248s
  73   4.02865536e+07 -2.41068922e+09  2.35e+00 2.52e-09  3.60e+03   251s
  74   4.02851036e+07 -2.41049426e+09  2.35e+00 2.50e-09  3.60e+03   254s
  75   4.02839730e+07 -2.41053077e+09  2.35e+00 2.50e-09  3.60e+03   257s
  76   4.02221592e+07 -2.40686874e+09  2.35e+00 2.44e-09  3.59e+03   260s
  77   4.02078196e+07 -2.40475313e+09  2.35e+00 2.43e-09  3.59e+03   264s
  78   4.01034178e+07 -2.39907831e+09  2.34e+00 2.37e-09  3.58e+03   267s
  79   3.99256151e+07 -2.38543235e+09  2.32e+00 2.53e-09  3.55e+03   270s
  80   3.99222513e+07 -2.38536980e+09  2.32e+00 2.53e-09  3.55e+03   274s
  81   3.99164302e+07 -2.38504138e+09  2.32e+00 2.55e-09  3.55e+03   277s
  82   3.96825099e+07 -2.37950314e+09  2.31e+00 2.33e-09  3.54e+03   280s
  83   3.97004834e+07 -2.37949455e+09  2.31e+00 2.33e-09  3.54e+03   283s
  84   3.96805328e+07 -2.37811187e+09  2.31e+00 2.31e-09  3.54e+03   286s
  85   3.96685030e+07 -2.37795931e+09  2.31e+00 2.30e-09  3.54e+03   289s
  86   3.96554299e+07 -2.37795413e+09  2.31e+00 2.30e-09  3.54e+03   292s
  87   3.96442338e+07 -2.37723166e+09  2.31e+00 2.33e-09  3.53e+03   295s
  88   3.96124943e+07 -2.37472020e+09  2.31e+00 2.24e-09  3.53e+03   298s
  89   3.95067299e+07 -2.35916581e+09  2.32e+00 2.04e-09  3.51e+03   301s
  90   3.94765797e+07 -2.35878166e+09  2.32e+00 2.05e-09  3.51e+03   305s
  91   3.94722774e+07 -2.35738879e+09  2.32e+00 2.04e-09  3.51e+03   308s
  92   3.94803469e+07 -2.35721740e+09  2.32e+00 2.05e-09  3.51e+03   311s
  93   3.94826364e+07 -2.35720665e+09  2.32e+00 2.04e-09  3.51e+03   314s
  94   3.94825176e+07 -2.35719584e+09  2.32e+00 2.02e-09  3.51e+03   317s
  95   3.94583720e+07 -2.35521481e+09  2.32e+00 2.04e-09  3.50e+03   320s
  96   3.94508533e+07 -2.34137460e+09  2.32e+00 2.71e-09  3.49e+03   323s
  97   3.94529466e+07 -2.34134887e+09  2.32e+00 2.69e-09  3.49e+03   326s
  98   3.94584302e+07 -2.34131975e+09  2.32e+00 2.71e-09  3.49e+03   329s
  99   3.94548943e+07 -2.34117713e+09  2.32e+00 2.71e-09  3.49e+03   332s
 100   3.94082564e+07 -2.34107096e+09  2.78e+00 2.71e-09  3.49e+03   335s
 101   3.94073845e+07 -2.34084760e+09  2.78e+00 2.71e-09  3.49e+03   338s
 102   3.94077463e+07 -2.34082626e+09  2.78e+00 2.71e-09  3.49e+03   341s

Barrier performed 102 iterations in 340.65 seconds (161.26 work units)
Numerical trouble encountered

Model may be infeasible or unbounded.  Consider using the
homogeneous algorithm (through parameter 'BarHomogeneous')


User-callback calls 6162, time in user-callback 0.03 sec

The matrix and RHS elements range from tiny to huge. Surely this has an influence on the numerical difficulties. How come you have such a large range?

A couple of things contribute to the wide ranges, and are hard to resolve:

  • Wide range of demanded power at the buses is a RHS coefficient. [1E3, 8E3] (also zero values here, since not all buses have demand)
  • Wide range of reactance values as constraint coefficients. [2e-1, 1e6]
  • Wide range of line power flow limits as RHS coefficients. [5, 1e4]

After removing line power flow constraints and setting the reactance values to be uniform, I was able to solve to optimality (quickly too). However, it is not the same problem, as those constraints and reactance values matter.

Gurobi 9.5.1 (win64) logging started Fri Feb 24 17:20:08 2023

Set parameter LogFile to value "L:\Project-Gurobi\Workspace3\E4ST\Data\mpc_210711_allTech\out_gurobi2\Gurobi.log"
Set parameter LogToConsole to value 0
Set parameter NumericFocus to value 3
Set parameter BarHomogeneous to value 1
Set parameter Method to value 2
Set parameter Crossover to value 0
Set parameter Threads to value 1

Gurobi 9.5.1 (win64) logging started Fri Feb 24 17:20:08 2023

Set parameter LogFile to value "L:\Project-Gurobi\Workspace3\E4ST\Data\mpc_210711_allTech\out_gurobi2\Gurobi.log"
Gurobi Optimizer version 9.5.1 build v9.5.1rc2 (win64)
Thread count: 24 physical cores, 24 logical processors, using up to 1 threads
Optimize a model with 882960 rows, 1346751 columns and 4111692 nonzeros
Model fingerprint: 0xb6b536c6
Coefficient statistics:
  Matrix range     [1e-03, 7e+02]
  Objective range  [1e-07, 4e-02]
  Bounds range     [2e-02, 1e+06]
  RHS range        [1e-03, 7e+03]
Presolve removed 19916 rows and 20020 columns (presolve time = 5s) ...
Presolve removed 19916 rows and 20072 columns
Presolve time: 5.74s
Presolved: 863044 rows, 1326679 columns, 4112732 nonzeros
Ordering time: 2.37s

Barrier statistics:
 AA' NZ     : 1.633e+06
 Factor NZ  : 2.001e+07 (roughly 400 MB of memory)
 Factor Ops : 1.111e+10 (roughly 1 second per iteration)
 Threads    : 1

                  Objective                Residual
Iter       Primal          Dual         Primal    Dual     Compl     Time
   0   2.02024086e+12 -2.19325184e+14  5.24e+05 4.87e+01  4.27e+08    14s
   1   9.15029414e+11 -2.74456492e+13  2.36e+05 1.82e-12  7.95e+07    16s
   2   1.12753098e+11 -3.24654910e+12  2.90e+04 1.23e-11  9.38e+06    18s
   3   1.26352214e+10 -3.36360612e+11  3.24e+03 1.05e-11  1.01e+06    21s
   4   1.39326328e+09 -3.52669730e+10  3.54e+02 1.21e-11  1.07e+05    27s
   5   1.84400283e+08 -6.26422220e+09  4.38e+01 1.16e-11  1.48e+04    29s
   6   5.03221940e+07 -1.69690685e+09  1.02e+01 7.26e-12  3.39e+03    31s
   7   1.08267646e+07 -2.55185923e+08  2.22e+00 5.30e-12  4.76e+02    34s
   8   2.24565695e+06 -4.21627938e+07  4.30e-01 3.52e-12  6.81e+01    39s
   9   4.55079877e+05 -9.42551206e+06  4.23e-02 1.87e-12  1.33e+01    43s
  10   2.74224025e+05 -4.38385833e+06  1.60e-02 1.39e-12  6.19e+00    49s
  11   2.17652584e+05 -2.36427532e+06  1.02e-02 1.38e-12  3.44e+00    55s
  12   2.09367429e+05 -1.33648567e+06  2.39e-01 1.70e-10  2.11e+00    58s
  13   1.43979760e+05 -8.86926095e+05  2.17e+00 1.21e-10  1.40e+00    63s
  14   1.13544695e+05 -5.46630803e+05  1.52e+00 2.09e-09  8.98e-01    66s
  15   6.11635860e+04 -3.48006430e+05  5.49e-01 6.48e-11  5.46e-01    69s
  16   4.55602954e+04 -2.33361353e+05  3.25e-01 5.76e-11  3.71e-01    73s
  17   4.08447409e+04 -1.52302090e+05  2.65e-01 6.61e-11  2.58e-01    77s
  18   3.68014361e+04 -9.63764754e+04  2.17e-01 5.27e-11  1.79e-01    82s
  19   3.31076671e+04 -5.78965935e+04  1.77e-01 4.61e-11  1.23e-01    85s
  20   2.99890158e+04 -3.22192272e+04  1.44e-01 1.18e-08  8.53e-02    89s
  21   2.64271199e+04 -1.80073558e+04  1.09e-01 1.87e-08  6.13e-02    92s
  22   2.40438881e+04 -7.39527874e+03  8.65e-02 2.09e-08  4.38e-02    95s
  23   2.18889562e+04 -3.10413036e+02  6.72e-02 1.93e-08  3.12e-02    98s
  24   2.03101420e+04  3.96180880e+03  5.37e-02 1.66e-08  2.31e-02   101s
  25   1.81594156e+04  6.54754782e+03  3.65e-02 1.34e-08  1.64e-02   105s
  26   1.76282148e+04  8.18477564e+03  3.27e-02 8.92e-09  1.34e-02   109s
  27   1.66444985e+04  9.34346556e+03  2.52e-02 7.11e-09  1.03e-02   112s
  28   1.60357698e+04  1.02832658e+04  2.07e-02 5.64e-09  8.15e-03   115s
  29   1.55900875e+04  1.09357437e+04  1.74e-02 4.45e-09  6.60e-03   120s
  30   1.53545458e+04  1.13236121e+04  1.58e-02 3.21e-09  5.71e-03   123s
  31   1.51162934e+04  1.16525921e+04  1.40e-02 2.84e-09  4.91e-03   127s
  32   1.48545687e+04  1.20177981e+04  1.22e-02 2.03e-09  4.03e-03   130s
  33   1.45471201e+04  1.22837036e+04  1.01e-02 1.32e-09  3.21e-03   133s
  34   1.43024198e+04  1.25291044e+04  8.38e-03 8.99e-10  2.52e-03   137s
  35   1.40947529e+04  1.26603510e+04  6.91e-03 7.01e-10  2.04e-03   140s
  36   1.40065676e+04  1.27067212e+04  6.29e-03 4.40e-10  1.84e-03   143s
  37   1.38272281e+04  1.27867646e+04  5.03e-03 2.68e-10  1.47e-03   147s
  38   1.37347062e+04  1.28647921e+04  4.38e-03 1.72e-10  1.23e-03   150s
  39   1.36460669e+04  1.29364127e+04  3.75e-03 7.62e-11  1.00e-03   153s
  40   1.35229160e+04  1.29931961e+04  2.84e-03 8.64e-11  7.49e-04   157s
  41   1.34725089e+04  1.30224165e+04  2.45e-03 9.25e-11  6.37e-04   160s
  42   1.34250241e+04  1.30441540e+04  2.09e-03 8.14e-11  5.39e-04   164s
  43   1.33986579e+04  1.30616966e+04  1.90e-03 8.03e-11  4.77e-04   167s
  44   1.33575350e+04  1.30777271e+04  1.59e-03 7.29e-11  3.96e-04   170s
  45   1.33276285e+04  1.30911992e+04  1.37e-03 1.01e-10  3.34e-04   174s
  46   1.32895763e+04  1.31055361e+04  1.11e-03 1.07e-10  2.60e-04   177s
  47   1.32633325e+04  1.31176337e+04  9.08e-04 9.72e-11  2.06e-04   180s
  48   1.32388105e+04  1.31240594e+04  7.15e-04 8.42e-11  1.62e-04   183s
  49   1.32272110e+04  1.31341637e+04  6.27e-04 1.91e-10  1.32e-04   187s
  50   1.32211855e+04  1.31374468e+04  5.79e-04 1.70e-10  1.19e-04   190s
  51   1.32129533e+04  1.31403626e+04  5.13e-04 2.42e-10  1.04e-04   193s
  52   1.32048718e+04  1.31416394e+04  4.50e-04 2.29e-10  9.00e-05   197s
  53   1.31954398e+04  1.31440470e+04  3.75e-04 2.62e-10  7.32e-05   200s
  54   1.31864196e+04  1.31455325e+04  2.99e-04 2.31e-10  5.82e-05   203s
  55   1.31800700e+04  1.31467268e+04  2.46e-04 1.86e-10  4.75e-05   206s
  56   1.31748980e+04  1.31477273e+04  2.02e-04 1.97e-10  3.86e-05   210s
  57   1.31705523e+04  1.31483467e+04  1.66e-04 2.12e-10  3.15e-05   213s
  58   1.31677054e+04  1.31491981e+04  1.42e-04 1.58e-10  2.64e-05   216s
  59   1.31650991e+04  1.31495136e+04  1.20e-04 1.73e-10  2.22e-05   220s
  60   1.31627242e+04  1.31499926e+04  9.90e-05 1.37e-10  1.81e-05   223s
  61   1.31604911e+04  1.31502650e+04  7.94e-05 1.20e-10  1.45e-05   227s
  62   1.31576995e+04  1.31506051e+04  1.24e-04 8.00e-11  9.90e-06   230s
  63   1.31564438e+04  1.31509088e+04  9.71e-05 7.23e-11  7.76e-06   234s
  64   1.31552407e+04  1.31513873e+04  7.31e-05 9.58e-11  5.55e-06   237s
  65   1.31543772e+04  1.31515457e+04  6.52e-05 7.51e-11  4.12e-06   240s
  66   1.31538661e+04  1.31515741e+04  4.92e-05 5.15e-11  3.32e-06   243s
  67   1.31536979e+04  1.31515991e+04  4.60e-05 8.06e-11  3.04e-06   246s
  68   1.31534525e+04  1.31516275e+04  4.24e-05 6.94e-11  2.65e-06   248s
  69   1.31533254e+04  1.31516617e+04  3.40e-05 8.13e-11  2.43e-06   251s
  70   1.31522131e+04  1.31517088e+04  1.02e-05 7.20e-11  7.18e-07   254s
  71   1.31518384e+04  1.31517619e+04  5.12e-06 7.30e-11  1.08e-07   257s
  72   1.31517840e+04  1.31517722e+04  4.55e-06 1.32e-10  1.57e-08   260s
  73   1.31517783e+04  1.31517746e+04  1.02e-06 7.28e-11  4.41e-09   263s
  74   1.31517773e+04  1.31517757e+04  2.67e-07 1.24e-09  1.85e-09   265s
  75   1.31517770e+04  1.31517768e+04  3.30e-08 1.29e-08  2.39e-10   268s
  76   1.31517770e+04  1.31517770e+04  3.87e-09 1.24e-09  2.73e-11   271s

Barrier solved model in 76 iterations and 270.99 seconds (126.35 work units)
Optimal objective 1.31517770e+04


User-callback calls 3438, time in user-callback 0.01 sec

Can the problem be decomposed so that the scaling can be done within the subproblems? That may prevent having a large range. Just an idea.

Have you tried leaving the default settings?

Your scalings are still too large. See this series of articles by Gurobi:

Since it’s struggling, you’re probably going to need to give up some accuracy in the input data in order to obtain a solution.

Are you using a standard formulation from PowerModels.jl? Or did you code it yourself? @ccoffrin might have some other suggestions.

I have tried the default settings - I found that it would choose to crossover to simplex and simplex would take a very long time before returning that the model was infeasible.

I am using a custom formulation. I made a few more changes based on all the above suggestions, and while my ranges are still pretty large, Gurobi is finding optimal solutions in ~7 minutes. I may need to revisit some of these things later on as our model grows (though I don’t anticipate growing will change the bounds much)

Thanks again for all the help!!

Here is a winning log:

Gurobi 10.0.1 (win64) logging started Mon Feb 27 15:52:21 2023

Set parameter LogFile to value "L:\Project-Gurobi\Workspace3\E4ST\Data\mpc_210711_allTech\out_gurobi2\Gurobi.log"
Set parameter LogToConsole to value 0
Set parameter NumericFocus to value 3
Set parameter BarHomogeneous to value 1
Set parameter Method to value 2
Set parameter Crossover to value 0
Set parameter Threads to value 1

Gurobi 10.0.1 (win64) logging started Mon Feb 27 15:52:24 2023

Set parameter LogFile to value "L:\Project-Gurobi\Workspace3\E4ST\Data\mpc_210711_allTech\out_gurobi2\Gurobi.log"
Gurobi Optimizer version 10.0.1 build v10.0.1rc0 (win64)

CPU model: Intel(R) Xeon(R) CPU E5-2690 v3 @ 2.60GHz, instruction set [SSE2|AVX|AVX2]
Thread count: 24 physical cores, 24 logical processors, using up to 1 threads

Optimize a model with 2002728 rows, 1346751 columns and 6341972 nonzeros
Model fingerprint: 0xc2ee89f7
Coefficient statistics:
  Matrix range     [2e-01, 1e+05]
  Objective range  [1e-07, 2e+00]
  Bounds range     [2e-02, 1e+06]
  RHS range        [1e-03, 2e+04]
Presolve removed 26000 rows and 14144 columns (presolve time = 5s) ...
Presolve removed 593476 rows and 14144 columns
Presolve time: 7.81s
Presolved: 1409252 rows, 1872679 columns, 5734248 nonzeros
Elapsed ordering time = 5s
Ordering time: 6.16s

Barrier statistics:
 AA' NZ     : 4.585e+06
 Factor NZ  : 3.790e+07 (roughly 800 MB of memory)
 Factor Ops : 2.092e+10 (roughly 2 seconds per iteration)
 Threads    : 1

                  Objective                Residual
Iter       Primal          Dual         Primal    Dual     Compl     Time
   0   3.51958941e+13 -1.22733913e+16  5.06e+07 3.14e+00  1.25e+10    25s
   1   1.51580035e+13 -1.69781893e+15  2.17e+07 2.73e-12  2.59e+09    28s
   2   2.19287515e+12 -2.26493702e+14  3.14e+06 9.55e-12  3.52e+08    33s
   3   2.50196048e+11 -2.45466100e+13  3.58e+05 9.55e-12  3.91e+07    42s
   4   4.08936353e+10 -2.60215781e+12  5.84e+04 1.11e-11  5.29e+06    46s
   5   1.02184303e+10 -6.64688681e+11  1.45e+04 8.82e-12  1.23e+06    50s
   6   3.24799315e+09 -1.65266690e+11  4.59e+03 6.81e-12  3.07e+05    54s
   7   1.00266986e+09 -3.51085864e+10  1.40e+03 5.02e-12  6.10e+04    60s
   8   2.40170962e+08 -8.16642300e+09  3.10e+02 2.91e-12  9.94e+03    67s
   9   1.22128675e+08 -2.81183322e+09  1.42e+02 2.60e-12  3.18e+03    76s
  10   8.34925949e+07 -1.72424160e+09  8.85e+01 2.12e-12  1.80e+03    84s
  11   5.25492574e+07 -9.25834081e+08  4.92e+01 5.20e-12  9.01e+02    98s
  12   2.75528755e+07 -4.67565841e+08  2.30e+01 4.45e-12  4.18e+02   110s
  13   2.11963119e+07 -3.03774590e+08  1.69e+01 8.81e-07  2.74e+02   120s
  14   1.60157078e+07 -2.03686707e+08  1.22e+01 1.42e-06  1.83e+02   127s
  15   1.55866793e+07 -2.00701427e+08  1.18e+01 1.42e-06  1.80e+02   135s
  16   1.52840972e+07 -1.97981362e+08  1.15e+01 1.42e-06  1.77e+02   143s
  17   1.52364659e+07 -1.96549503e+08  1.15e+01 1.42e-06  1.76e+02   150s
  18   1.35856153e+07 -1.49316961e+08  1.01e+01 1.44e-06  1.37e+02   168s
  19   9.01868938e+06 -1.44149483e+08  6.28e+00 1.42e-06  1.19e+02   178s
  20   6.55063068e+06 -1.18815661e+08  4.24e+00 1.29e-06  9.51e+01   183s
  21   5.46597408e+06 -8.18043965e+07  3.40e+00 1.01e-06  6.66e+01   192s
  22   3.86391728e+06 -6.34204313e+07  2.18e+00 9.14e-07  5.03e+01   202s
  23   2.28044093e+06 -3.64530763e+07  1.09e+00 7.35e-07  2.85e+01   212s
  24   1.48487847e+06 -2.36108205e+07  6.38e-01 5.31e-07  1.83e+01   224s
  25   1.06048287e+06 -1.44676100e+07  4.33e-01 3.67e-07  1.14e+01   231s
  26   8.93105432e+05 -1.09817792e+07  3.54e-01 2.96e-07  8.74e+00   236s
  27   6.79775185e+05 -8.00288126e+06  2.58e-01 2.34e-07  6.39e+00   242s
  28   5.41395393e+05 -6.55179586e+06  1.97e-01 2.01e-07  5.20e+00   248s
  29   3.91046657e+05 -4.84065945e+06  1.33e-01 1.59e-07  3.81e+00   254s
  30   2.80567674e+05 -2.59415011e+06  1.46e+00 9.50e-08  2.12e+00   266s
  31   2.15690042e+05 -1.67446302e+06  1.01e+00 6.56e-08  1.40e+00   274s
  32   1.83538097e+05 -1.46636700e+06  7.80e-01 5.90e-08  1.21e+00   280s
  33   1.67252658e+05 -1.12416347e+06  6.62e-01 4.60e-08  9.53e-01   284s
  34   1.55925824e+05 -9.13034840e+05  5.83e-01 3.79e-08  7.92e-01   289s
  35   1.37476979e+05 -5.86787579e+05  4.57e-01 2.72e-08  5.42e-01   295s
  36   1.12091656e+05 -3.79322545e+05  2.85e-01 1.94e-08  3.66e-01   303s
  37   9.89299071e+04 -2.25914880e+05  2.01e-01 1.37e-08  2.44e-01   311s
  38   9.01203885e+04 -1.57808361e+05  1.45e-01 1.13e-08  1.86e-01   318s
  39   8.43615075e+04 -9.74261500e+04  1.10e-01 9.58e-09  1.36e-01   324s
  40   8.24400678e+04 -7.95646842e+04  9.91e-02 9.02e-09  1.22e-01   329s
  41   7.81711680e+04 -4.31028573e+04  7.39e-02 8.04e-09  9.12e-02   334s
  42   7.46103576e+04 -1.71518433e+04  5.36e-02 6.81e-09  6.89e-02   340s
  43   7.21894455e+04  1.21921333e+03  4.07e-02 6.00e-09  5.32e-02   347s
  44   7.03149092e+04  2.24204127e+04  3.13e-02 4.55e-09  3.63e-02   355s
  45   6.81121893e+04  3.42255612e+04  2.04e-02 4.31e-09  2.56e-02   361s
  46   6.69088240e+04  4.29569204e+04  1.50e-02 3.40e-09  1.81e-02   368s
  47   6.59046506e+04  4.89306136e+04  1.06e-02 3.21e-09  1.29e-02   376s
  48   6.51180925e+04  5.15932484e+04  7.26e-03 2.96e-09  1.02e-02   381s
  49   6.48665397e+04  5.35210401e+04  6.26e-03 3.16e-09  8.54e-03   387s
  50   6.45245597e+04  5.61928080e+04  4.92e-03 2.28e-09  6.30e-03   394s
  51   6.40645084e+04  5.80859647e+04  3.15e-03 1.98e-09  4.50e-03   401s
  52   6.38169047e+04  5.99398479e+04  2.28e-03 2.11e-09  2.94e-03   408s
  53   6.35658927e+04  6.07384138e+04  1.42e-03 2.03e-09  2.13e-03   414s
  54   6.34406393e+04  6.14460305e+04  1.10e-03 3.79e-09  1.50e-03   419s
  55   6.33675502e+04  6.18133503e+04  1.18e-03 5.28e-09  1.17e-03   424s
  56   6.33169880e+04  6.21342973e+04  1.28e-03 7.22e-09  8.95e-04   429s
  57   6.32652776e+04  6.24455865e+04  1.25e-03 8.41e-09  6.23e-04   434s
  58   6.32168634e+04  6.26961318e+04  1.27e-03 8.39e-09  3.98e-04   441s
  59   6.31758748e+04  6.28249047e+04  1.93e-03 1.05e-08  2.67e-04   447s
  60   6.31433638e+04  6.28948813e+04  1.24e-03 1.27e-08  1.88e-04   454s
  61   6.31219906e+04  6.29419937e+04  7.96e-04 1.69e-08  1.36e-04   460s
  62   6.31123618e+04  6.29802188e+04  5.93e-04 1.20e-08  1.00e-04   465s
  63   6.31059485e+04  6.30077903e+04  4.64e-04 3.79e-08  7.45e-05   469s
  64   6.31009940e+04  6.30324020e+04  3.64e-04 4.98e-08  5.23e-05   474s
  65   6.30941567e+04  6.30409414e+04  2.30e-04 7.51e-08  4.03e-05   479s
  66   6.30898619e+04  6.30611763e+04  1.46e-04 1.40e-07  2.19e-05   486s
  67   6.30848777e+04  6.30694115e+04  4.25e-05 2.14e-07  1.17e-05   492s
  68   6.30832964e+04  6.30771951e+04  1.57e-05 2.37e-06  4.69e-06   499s
  69   6.30825574e+04  6.30796678e+04  5.70e-06 1.76e-06  2.22e-06   504s
  70   6.30823549e+04  6.30808570e+04  1.08e-05 8.73e-06  1.15e-06   510s
  71   6.30822523e+04  6.30815662e+04  1.01e-05 6.78e-06  5.39e-07   515s
  72   6.30821374e+04  6.30818381e+04  2.74e-06 9.57e-06  2.32e-07   521s
  73   6.30821022e+04  6.30819842e+04  9.16e-07 1.35e-05  9.56e-08   525s
  74   6.30820894e+04  6.30820364e+04  1.91e-06 2.25e-05  4.15e-08   529s
  75   6.30820907e+04  6.30820274e+04  1.39e-06 5.86e-05  2.27e-08   534s
  76   6.30820938e+04  6.30820248e+04  9.68e-07 5.19e-05  2.06e-08   538s
  77   6.30820900e+04  6.30819328e+04  1.59e-06 2.35e-04  1.97e-08   543s
  78   6.30820973e+04  6.30820434e+04  4.02e-06 9.32e-05  8.00e-09   547s
  79   6.30820996e+04  6.30820826e+04  6.92e-06 5.24e-05  4.59e-09   552s
  80   6.30820927e+04  6.30820832e+04  2.26e-06 3.34e-05  2.33e-09   557s
  81   6.30820940e+04  6.30820838e+04  2.02e-06 3.74e-05  1.89e-09   563s
  82   6.30820986e+04  6.30821018e+04  3.11e-06 4.11e-05  1.05e-09   568s
  83   6.30820991e+04  6.30820926e+04  3.10e-06 4.31e-05  9.26e-10   572s
  84   6.30820975e+04  6.30820974e+04  2.57e-06 7.88e-05  8.00e-10   577s

Barrier solved model in 84 iterations and 576.88 seconds (303.54 work units)
Optimal objective 6.30820975e+04


User-callback calls 6624, time in user-callback 0.03 sec
1 Like

That’s definitely a possibility. I could imagine separating the lines into “low” and “high” reactance lines with different scalings on the units. Fortunately I was able to achieve optimal solutions with a simple objective scaling, but will consider revisiting this idea if the problem grows more unwieldy.