Skip to content

bpourhamzeh/highs-ipm-debugging

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 

Repository files navigation

highs-ipm-debugging

To run the script, execute

./run_solver.py

A requirements file is in this repository so you can create a virtual environment with the version of SciPy I am using. I am running Python 3.8.5 on Ubuntu 20.04.2 LTS.

Example

(.ve3) ubuntu@desktop:~/highs-ipm-debugging$ ./run_solver.py 
Loading files: data/A3.csv.gz data/b3.csv.gz
n_a: 9984
n_u: 40909
Using options:
 {
    "disp": true,
    "dual_feasibility_tolerance": 1e-06,
    "primal_feasibility_tolerance": 1e-06,
    "ipm_optimality_tolerance": 1e-07
}
./run_solver.py:36: OptimizeWarning: Sparse constraint matrix detected; setting 'sparse':True.
  res = linprog(
./run_solver.py:36: OptimizeWarning: Unknown solver options: sparse
  res = linprog(
Presolve : Reductions: rows 15500(-4468); columns 48659(-2234); elements 255668(-4468)
INFO   : Solving the presolved LP
INFO   : IPX model has 15500 rows, 48659 columns and 255668 nonzeros
IPX version 1.0
Input
    Number of variables:                                48659
    Number of free variables:                           0
    Number of constraints:                              15500
    Number of equality constraints:                     0
    Number of matrix entries:                           255668
    Matrix range:                                       [1e+00, 1e+00]
    RHS range:                                          [1e+00, 1e+04]
    Objective range:                                    [1e+00, 1e+00]
    Bounds range:                                       [0e+00, 0e+00]
Preprocessing
    Dualized model:                                     no
    Number of dense columns:                            0
    Range of scaling factors:                           [1.00e+00, 1.00e+00]
Interior Point Solve
 Iter     P.res    D.res            P.obj           D.obj        mu     Time
   0   1.78e+03 1.56e+00   0.00000000e+00 -8.09310592e-08  3.00e+03       0s
   1   8.75e+01 7.56e-02   8.96112151e+06 -8.18668050e+05  2.83e+02       0s
   2   2.18e+01 3.42e-02   3.10351097e+06 -6.30322257e+05  8.59e+01       0s
   3   3.93e+00 1.56e-02   1.23131101e+06 -4.23855169e+05  3.06e+01       0s
   4   8.18e-01 6.67e-03   5.65399325e+05 -2.63250251e+05  1.38e+01       0s
   5   2.12e-01 2.63e-03   1.96068277e+05 -1.45101402e+05  5.51e+00       0s
   6   7.45e-02 9.21e-04   8.03161461e+04 -7.31560299e+04  2.44e+00       1s
 Constructing starting basis...
   7   4.13e-02 1.48e-04   5.24256471e+04 -2.83560769e+04  1.27e+00       5s
   8   2.78e-03 6.16e-05   1.04094897e+04 -1.75710738e+04  4.37e-01       5s
   9   6.87e-04 1.10e-05   2.98555950e+03 -3.57779671e+03  1.03e-01       6s
  10   1.87e-04 1.24e-06   9.07900007e+02 -6.03495254e+02  2.36e-02       8s
  11   1.67e-05 1.24e-12   1.40115087e+02 -1.14922511e+02  3.98e-03       8s
  12   6.23e-06 3.68e-13   5.24368550e+01 -3.43295094e+01  1.35e-03       9s
  13   2.55e-06 1.32e-13   2.14833649e+01 -1.23242331e+01  5.27e-04       9s
  14   1.43e-06 3.02e-14   1.35171927e+01 -7.26993198e+00  3.24e-04      10s
  15   1.15e-11 4.46e-15   7.46657019e-04 -1.01157017e+00  1.58e-05      10s
  16   1.35e-11 1.46e-15   2.55801425e-03 -2.62549779e-01  4.13e-06      11s
  17   8.43e-12 4.66e-16   2.88203153e-03 -2.07193274e-02  3.68e-07      11s
  18   1.07e-11 4.12e-16   6.82223214e-04 -5.99210151e-03  1.04e-07      12s
  19   6.62e-12 3.65e-16   2.39604108e-04 -1.33379680e-03  2.45e-08      12s
  20   6.26e-12 4.76e-16   1.20057859e-04 -4.55390040e-04  8.97e-09      13s
  21   6.88e-12 4.72e-16   9.11901044e-05 -9.63403198e-05  3.01e-09      14s
  22   4.25e-12 3.92e-16   2.71614116e-05 -1.53979882e-05  9.33e-10      22s
  23   2.97e-12 3.85e-16   3.02081744e-06 -5.92251490e-07  1.12e-10      28s
  24*  1.61e-12 3.62e-16   8.89449319e-09 -5.12743118e-08  2.62e-12      29s
Crossover
    Primal residual before push phase:                  1.82e-12
    Dual residual before push phase:                    1.19e-10
    Number of dual pushes required:                     7750
    Number of primal pushes required:                   33159
    27638 primal pushes remaining (   5322 pivots)
    22161 primal pushes remaining (  10682 pivots)
    16921 primal pushes remaining (  15775 pivots)
Summary
    Runtime:                                            45.11s
    Status interior point solve:                        imprecise
    Status crossover:                                   failed
    objective value:                                    6.72195793e-09
    interior solution primal residual (abs/rel):        2.76e-12 / 2.55e-16
    interior solution dual residual (abs/rel):          1.10e-10 / 5.48e-11
    interior solution objective gap (abs/rel):          2.84e-07 / 2.84e-07
WARNING: Ipx: Stopped
WARNING: Ipx: IPM       imprecise
ERROR  : Ipx: Crossover failed
Status: 4
Message: HiGHS Status Code 0: HighsModelStatusNOTSET
Iterations: 0
No solutions available: True

Data legend

File number Description
1 highs-ipm: Crossover failed; highs-ds: successful
2 highs-ipm: Infinite loop with default tolerances; success with lowered tolerances
3 highs-ipm: Crossover failed when feasibility_tolerance=1e-6 and optimality_tolerance=1e-7, success when feasibility_tolerance=1e-7 and optimality_tolerance=1e-8
4 highs-ipm: Crossover failed when feasibility_tolerance=1e-7 and optimality_tolerance=1e-8, success when feasibility_tolerance=1e-8 and optimality_tolerance=1e-9, all rows of A are inearly independent

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages