Skip to content

[BUG] Incorrect post-solve results for supportcase42 #423

@nguidotti

Description

@nguidotti

In the supportcase42 from the MIPLIB dataset, the post-solve reports the violation of constraints as well as an incorrect objective. This can be replicated by running the main branch with a short time limit.

cuopt-ref/cpp/build/solve_MIP --path datasets/miplib2017/supportcase42.mps.bz2 --time-limit 50
running file supportcase42.mps.bz2 on gpu : 0
cuOpt version: 25.10.0, git hash: ef90a38, host arch: x86_64, device archs: 90a-real
CPU: Intel(R) Xeon(R) Silver 4314 CPU @ 2.40GHz, threads (physical/logical): 16/32, RAM: 158.26 GiB
CUDA 13.0, device: NVIDIA H100 (ID 0), VRAM: 95.07 GiB
CUDA device UUID: 524162ffffffe7-5702-7fffffff8f-fffff

Unpresolved problem:: 18439 constraints, 19466 variables, 435653 nonzeros
Presolve status:: reduced the problem
Presolve removed:: 282 constraints, 283 variables, 564 nonzeros
Presolved problem:: 18157 constraints, 19183 variables, 435089 nonzeros
Third party presolve time: 0.221451
Solving a problem with 18157 constraints 19183 variables (1026 integers) and 435089 nonzeros
Objective offset -26775.000000 scaling_factor 1.000000
Free variable found! Make sure the correct bounds are given.
Running presolve!
After trivial presolve #constraints 18157 #variables 20069 objective offset -26775.000000.
Using 4 CPU threads for B&B
Solving LP root relaxation
Scaling matrix. Maximum column norm 5.562658e+01
Dual Simplex Phase 1
CPUFJ added a solution to population, solution queue size 0 with objective 39.9999
Dual feasible solution found.
Dual Simplex Phase 2
 Iter     Objective           Num Inf.  Sum Inf.     Perturb  Time
    1 +0.0000000000000000e+00       2 3.33333333e+02 1.00e-07 0.08
CPUFJ added a solution to population, solution queue size 0 with objective -26735
Failed to remove perturbation of 1.85e-04.

Root relaxation solution found in 504 iterations and 0.38s
Root relaxation objective +7.34366096e+00

Strong branching using 4 threads and 174 fractional variables
New solution from primal heuristics. Objective +1.199713e+01. Time 0.71
Running FP alone!
CPUFJ added a solution to population, solution queue size 0 with objective 38.9999
CPUFJ added a solution to population, solution queue size 0 with objective 37.9999
CPUFJ added a solution to population, solution queue size 0 with objective 36.9998
CPUFJ added a solution to population, solution queue size 0 with objective 35.9999
CPUFJ added a solution to population, solution queue size 0 with objective 34.9999
CPUFJ added a solution to population, solution queue size 0 with objective 33.9999
CPUFJ added a solution to population, solution queue size 0 with objective 32.9999
CPUFJ added a solution to population, solution queue size 0 with objective 31.9999
CPUFJ added a solution to population, solution queue size 0 with objective 30.9999
CPUFJ added a solution to population, solution queue size 0 with objective 29.9999
CPUFJ added a solution to population, solution queue size 0 with objective 28.9999
CPUFJ added a solution to population, solution queue size 0 with objective 27.9999
CPUFJ added a solution to population, solution queue size 0 with objective 26.9999
CPUFJ added a solution to population, solution queue size 0 with objective 25.9999
CPUFJ added a solution to population, solution queue size 0 with objective 24.9999
| Explored | Unexplored | Objective   |    Bound    | Depth | Iter/Node |  Gap   |    Time 
        1        1       +1.199713e+01  +7.343661e+00      1   0.0e+00     38.8%      2.08
CPUFJ added a solution to population, solution queue size 0 with objective 24.238
CPUFJ added a solution to population, solution queue size 0 with objective 23.238
CPUFJ added a solution to population, solution queue size 0 with objective 22.238
CPUFJ added a solution to population, solution queue size 0 with objective 22.2379
       48       48       +1.199713e+01  +7.343661e+00     14   4.2e-01     38.8%      3.09
CPUFJ added a solution to population, solution queue size 0 with objective 22.2378
       97       97       +1.199713e+01  +7.343661e+00     22   2.1e-01     38.8%      4.11
      146      146       +1.199713e+01  +7.343661e+00     29   1.4e-01     38.8%      5.13
      194      194       +1.199713e+01  +7.343661e+00     35   1.0e-01     38.8%      6.13
      242      242       +1.199713e+01  +7.343661e+00     41   8.3e-02     38.8%      7.14
      289      289       +1.199713e+01  +7.343661e+00     47   6.9e-02     38.8%      8.16
      337      337       +1.199713e+01  +7.343661e+00     52   5.9e-02     38.8%      9.17
      383      383       +1.199713e+01  +7.343661e+00     57   5.2e-02     38.8%     10.19
      423      423       +1.199713e+01  +7.343661e+00     60   4.7e-02     38.8%     11.21
      468      468       +1.199713e+01  +7.343661e+00     65   4.3e-02     38.8%     12.21
      516      516       +1.199713e+01  +7.343661e+00     72   3.9e-02     38.8%     13.22
      564      564       +1.199713e+01  +7.343661e+00     77   3.5e-02     38.8%     14.23
      612      612       +1.199713e+01  +7.343661e+00     82   3.3e-02     38.8%     15.24
      660      660       +1.199713e+01  +7.343661e+00     75   3.0e-02     38.8%     16.25
      708      708       +1.199713e+01  +7.343661e+00     91   2.8e-02     38.8%     17.25
      756      756       +1.199713e+01  +7.343661e+00     96   2.6e-02     38.8%     18.26
      804      804       +1.199713e+01  +7.343661e+00    101   2.5e-02     38.8%     19.27
      852      852       +1.199713e+01  +7.343661e+00    106   2.3e-02     38.8%     20.27
      900      900       +1.199713e+01  +7.343661e+00     99   2.2e-02     38.8%     21.29
      948      948       +1.199713e+01  +7.343661e+00    115   2.1e-02     38.8%     22.30
      996      996       +1.199713e+01  +7.343661e+00    120   2.0e-02     38.8%     23.31
     2000     2000       +1.199713e+01  +7.343661e+00    173   1.0e-02     38.8%     44.74
     2218     2218       +1.199713e+01  +7.343661e+00    180   9.0e-03     38.8%     49.28
Hit time limit. Stopping
FP alone finished!
Explored 2218 nodes in 49.32s.
Absolute Gap 4.653474e+00 Objective 1.1997134856410412e+01 Lower Bound 7.3436609543532541e+00
oob var 18605 val 0.000000 l 255.000000 u inf integer 1
oob var 18606 val 0.000000 l 255.000000 u inf integer 1
oob var 18863 val 0.000000 l 255.000000 u inf integer 1
oob var 18670 val 0.000000 l 255.000000 u inf integer 1
oob var 18927 val 0.000000 l 255.000000 u inf integer 1
oob var 18928 val 0.000000 l 255.000000 u inf integer 1
oob var 18929 val 0.000000 l 255.000000 u inf integer 1
oob var 19118 val 0.000000 l 255.000000 u inf integer 1
oob var 19119 val 0.000000 l 255.000000 u inf integer 1
oob var 19087 val 0.000000 l 255.000000 u inf integer 1
oob var 18637 val 0.000000 l 255.000000 u inf integer 1
oob var 18638 val 0.000000 l 255.000000 u inf integer 1
oob var 18991 val 0.000000 l 255.000000 u inf integer 1
oob var 18992 val 0.000000 l 255.000000 u inf integer 1
oob var 19181 val 0.000000 l 255.000000 u inf integer 1
oob var 19182 val 0.000000 l 255.000000 u inf integer 1
oob var 18959 val 0.000000 l 255.000000 u inf integer 1
oob var 18960 val 0.000000 l 255.000000 u inf integer 1
oob var 18702 val 0.000000 l 255.000000 u inf integer 1
oob var 18734 val 0.000000 l 255.000000 u inf integer 1
oob var 19150 val 0.000000 l 255.000000 u inf integer 1
oob var 19151 val 0.000000 l 255.000000 u inf integer 1
oob var 19055 val 0.000000 l 255.000000 u inf integer 1
oob var 19023 val 0.000000 l 255.000000 u inf integer 1
oob var 18895 val 0.000000 l 255.000000 u inf integer 1
oob var 18896 val 0.000000 l 255.000000 u inf integer 1
oob var 18897 val 0.000000 l 255.000000 u inf integer 1
oob var 18898 val 0.000000 l 255.000000 u inf integer 1
oob var 18899 val 0.000000 l 255.000000 u inf integer 1
oob var 18356 val 0.000000 l 255.000000 u inf integer 1
oob var 18323 val 0.000000 l 255.000000 u inf integer 1
oob var 18324 val 0.000000 l 255.000000 u inf integer 1
oob var 18325 val 0.000000 l 255.000000 u inf integer 1
oob var 18176 val 0.000000 l 255.000000 u inf integer 1
oob var 18177 val 0.000000 l 255.000000 u inf integer 1
oob var 18178 val 0.000000 l 255.000000 u inf integer 1
oob var 18179 val 0.000000 l 255.000000 u inf integer 1
oob var 18180 val 0.000000 l 255.000000 u inf integer 1
oob var 18181 val 0.000000 l 255.000000 u inf integer 1
oob var 18182 val 0.000000 l 255.000000 u inf integer 1
oob var 18183 val 0.000000 l 255.000000 u inf integer 1
oob var 18184 val 0.000000 l 255.000000 u inf integer 1
oob var 18185 val 0.000000 l 255.000000 u inf integer 1
oob var 18186 val 0.000000 l 255.000000 u inf integer 1
oob var 18187 val 0.000000 l 255.000000 u inf integer 1
oob var 18188 val 0.000000 l 255.000000 u inf integer 1
oob var 18189 val 0.000000 l 255.000000 u inf integer 1
oob var 18190 val 0.000000 l 255.000000 u inf integer 1
oob var 18191 val 0.000000 l 255.000000 u inf integer 1
oob var 18192 val 0.000000 l 255.000000 u inf integer 1
oob var 18193 val 0.000000 l 255.000000 u inf integer 1
oob var 18194 val 0.000000 l 255.000000 u inf integer 1
oob var 18195 val 0.000000 l 255.000000 u inf integer 1
oob var 18196 val 0.000000 l 255.000000 u inf integer 1
oob var 18197 val 0.000000 l 255.000000 u inf integer 1
oob var 18198 val 0.000000 l 255.000000 u inf integer 1
oob var 18199 val 0.000000 l 255.000000 u inf integer 1
oob var 18200 val 0.000000 l 255.000000 u inf integer 1
oob var 18201 val 0.000000 l 255.000000 u inf integer 1
oob var 18202 val 0.000000 l 255.000000 u inf integer 1
oob var 18203 val 0.000000 l 255.000000 u inf integer 1
oob var 18204 val 0.000000 l 255.000000 u inf integer 1
oob var 18255 val 0.000000 l 255.000000 u inf integer 1
oob var 18256 val 0.000000 l 255.000000 u inf integer 1
oob var 18257 val 0.000000 l 255.000000 u inf integer 1
oob var 18258 val 0.000000 l 255.000000 u inf integer 1
oob var 18259 val 0.000000 l 255.000000 u inf integer 1
oob var 18260 val 0.000000 l 255.000000 u inf integer 1
oob var 18261 val 0.000000 l 255.000000 u inf integer 1
oob var 18262 val 0.000000 l 255.000000 u inf integer 1
oob var 18263 val 0.000000 l 255.000000 u inf integer 1
oob var 18264 val 0.000000 l 255.000000 u inf integer 1
oob var 18265 val 0.000000 l 255.000000 u inf integer 1
oob var 18266 val 0.000000 l 255.000000 u inf integer 1
oob var 18267 val 0.000000 l 255.000000 u inf integer 1
oob var 18268 val 0.000000 l 255.000000 u inf integer 1
oob var 18269 val 0.000000 l 255.000000 u inf integer 1
oob var 18287 val 0.000000 l 255.000000 u inf integer 1
oob var 18288 val 0.000000 l 255.000000 u inf integer 1
oob var 18289 val 0.000000 l 255.000000 u inf integer 1
oob var 18290 val 0.000000 l 255.000000 u inf integer 1
oob var 18291 val 0.000000 l 255.000000 u inf integer 1
oob var 18292 val 0.000000 l 255.000000 u inf integer 1
oob var 18293 val 0.000000 l 255.000000 u inf integer 1
oob var 18294 val 0.000000 l 255.000000 u inf integer 1
oob var 18295 val 0.000000 l 255.000000 u inf integer 1
oob var 18300 val 0.000000 l 255.000000 u inf integer 1
oob var 18301 val 0.000000 l 255.000000 u inf integer 1
oob var 18159 val 0.000000 l 255.000000 u inf integer 1
oob var 18160 val 0.000000 l 255.000000 u inf integer 1
oob var 18161 val 0.000000 l 255.000000 u inf integer 1
oob var 18162 val 0.000000 l 255.000000 u inf integer 1
oob var 18163 val 0.000000 l 255.000000 u inf integer 1
oob var 18164 val 0.000000 l 255.000000 u inf integer 1
oob var 18165 val 0.000000 l 255.000000 u inf integer 1
oob var 18166 val 0.000000 l 255.000000 u inf integer 1
oob var 18167 val 0.000000 l 255.000000 u inf integer 1
oob var 18168 val 0.000000 l 255.000000 u inf integer 1
oob var 18169 val 0.000000 l 255.000000 u inf integer 1
oob var 18170 val 0.000000 l 255.000000 u inf integer 1
oob var 18171 val 0.000000 l 255.000000 u inf integer 1
oob var 18172 val 0.000000 l 255.000000 u inf integer 1
oob var 18173 val 0.000000 l 255.000000 u inf integer 1
oob var 18174 val 0.000000 l 255.000000 u inf integer 1
oob var 18175 val 0.000000 l 255.000000 u inf integer 1
Post-solve status:: Post solved solution violates constraints. This is most likely due to different tolerances.
Solution objective: -26735.000000 , relative_mip_gap 1.000275 solution_bound 7.343661 presolve_time 0.249292 total_solve_time 50.200501 max constraint violation 0.000000 max int violation 0.000000 max var bounds violation 255.000000 nodes 2218 simplex_iterations 20
first obj: 0.000000 last improvement of best feasible: 50.096296 last improvement after recombination: 0.000000
run_solver 50305
supportcase42.mps.bz2: solution found, obj: -26735.000000

Metadata

Metadata

Assignees

Labels

awaiting responseThis expects a response from maintainer or contributor depending on who requested in last comment.bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions