Cbc icon indicating copy to clipboard operation
Cbc copied to clipboard

Very slow on infeasible problem

Open lovasoa opened this issue 3 years ago • 10 comments

Hello,

I found the following in my server logs. Unfortunately, I don't have the exact corresponding problem. It looks like cbc determined in less than one second that the problem was infeasible, but still ran for over 7 minutes before returning the result.

2021-04-07T13:10:54.285756111Z app[web.1]: Welcome to the CBC MILP Solver 
2021-04-07T13:10:54.285815602Z app[web.1]: Version: 2.9.9 
2021-04-07T13:10:54.285819954Z app[web.1]: Build Date: Aug 21 2017 
2021-04-07T13:10:54.285823272Z app[web.1]: 
2021-04-07T13:10:54.285827023Z app[web.1]: command line - Cbc_C_Interface -solve -quit (default strategy 1)
2021-04-07T13:10:54.285830493Z app[web.1]: Presolve determined that the problem was infeasible with tolerance of 1e-08
2021-04-07T13:10:54.285833993Z app[web.1]: Analysis indicates model infeasible or unbounded
2021-04-07T13:10:54.285849206Z app[web.1]: 1 infeasibilities
2021-04-07T13:10:54.285853240Z app[web.1]: Analysis indicates model infeasible or unbounded
2021-04-07T13:10:54.285856954Z app[web.1]: Perturbing problem by 0.001 %% of 16961.932 - largest nonzero change 9.7912192e-05 (%% 0.047165003) - largest zero change 9.7911624e-05
2021-04-07T13:10:54.285878894Z app[web.1]: 0  Obj 0 Primal inf 40000000 (8760)
2021-04-07T13:10:54.285882211Z app[web.1]: 1000  Obj 28.066767 Primal inf 39609818 (8760

[...] hundreds and hundreds of similar lines: XXX Obj XX.XXX Primal inf XXX (XXX)

2021-04-07T13:17:18.032751255Z app[web.1]: 44884  Obj 1800339.8 Primal inf 15620000 (4380)
2021-04-07T13:17:18.032774648Z app[web.1]: 44884  Obj 1800000 Primal inf 15620000 (4380)
2021-04-07T13:17:18.032779753Z app[web.1]: Primal infeasible - objective value 1800000
2021-04-07T13:17:18.032784399Z app[web.1]: PrimalInfeasible objective 1800000 - 44884 iterations time 355.052
2021-04-07T13:17:18.032788853Z app[web.1]: 
2021-04-07T13:17:18.032793113Z app[web.1]: Result - Linear relaxation infeasible
2021-04-07T13:17:18.032797385Z app[web.1]: 
2021-04-07T13:17:18.032801554Z app[web.1]: Enumerated nodes:           0
2021-04-07T13:17:18.032805787Z app[web.1]: Total iterations:           0
2021-04-07T13:17:18.032827804Z app[web.1]: Time (CPU seconds):         355.05
2021-04-07T13:17:18.032849672Z app[web.1]: Time (Wallclock Seconds):   387.95
2021-04-07T13:17:18.032856381Z app[web.1]: 
2021-04-07T13:17:18.032861313Z app[web.1]: Total time (CPU seconds):       355.05   (Wallclock seconds):       387.95

lovasoa avatar Apr 07 '21 13:04 lovasoa

Normally the user wants to find out why the problem is infeasible - so the default action for Clp is to solve it without presolve so the user can get a detailed solution.

You could use an event handler for presolveInfeasible, but simpler is to set moreSpecialOptions to 1

Below from code

moreS!pecialOptions", "Yet more dubious options for Simplex - see ClpSimplex.hpp",

and 1 bit - if presolve says infeasible in ClpSolve return

On 07/04/2021 14:25, Ophir LOJKINE wrote:

Hello,

I found the following in my server logs. Unfortunately, I don't have the exact corresponding problem. It looks like cbc determined in less than one second that the problem was infeasible, but still ran for over 7 minutes before returning the result.

|2021-04-07T13:10:54.285756111Z app[web.1]: Welcome to the CBC MILP Solver 2021-04-07T13:10:54.285815602Z app[web.1]: Version: 2.9.9 2021-04-07T13:10:54.285819954Z app[web.1]: Build Date: Aug 21 2017 2021-04-07T13:10:54.285823272Z app[web.1]: 2021-04-07T13:10:54.285827023Z app[web.1]: command line - Cbc_C_Interface -solve -quit (default strategy 1) 2021-04-07T13:10:54.285830493Z app[web.1]: Presolve determined that the problem was infeasible with tolerance of 1e-08 2021-04-07T13:10:54.285833993Z app[web.1]: Analysis indicates model infeasible or unbounded 2021-04-07T13:10:54.285849206Z app[web.1]: 1 infeasibilities 2021-04-07T13:10:54.285853240Z app[web.1]: Analysis indicates model infeasible or unbounded 2021-04-07T13:10:54.285856954Z app[web.1]: Perturbing problem by 0.001 %% of 16961.932 - largest nonzero change 9.7912192e-05 (%% 0.047165003) - largest zero change 9.7911624e-05 2021-04-07T13:10:54.285878894Z app[web.1]: 0 Obj 0 Primal inf 40000000 (8760) 2021-04-07T13:10:54.285882211Z app[web.1]: 1000 Obj 28.066767 Primal inf 39609818 (8760 [...] hundreds and hundreds of similar lines: XXX Obj XX.XXX Primal inf XXX (XXX) 2021-04-07T13:17:18.032751255Z app[web.1]: 44884 Obj 1800339.8 Primal inf 15620000 (4380) 2021-04-07T13:17:18.032774648Z app[web.1]: 44884 Obj 1800000 Primal inf 15620000 (4380) 2021-04-07T13:17:18.032779753Z app[web.1]: Primal infeasible - objective value 1800000 2021-04-07T13:17:18.032784399Z app[web.1]: PrimalInfeasible objective 1800000 - 44884 iterations time 355.052 2021-04-07T13:17:18.032788853Z app[web.1]: 2021-04-07T13:17:18.032793113Z app[web.1]: Result - Linear relaxation infeasible 2021-04-07T13:17:18.032797385Z app[web.1]: 2021-04-07T13:17:18.032801554Z app[web.1]: Enumerated nodes: 0 2021-04-07T13:17:18.032805787Z app[web.1]: Total iterations: 0 2021-04-07T13:17:18.032827804Z app[web.1]: Time (CPU seconds): 355.05 2021-04-07T13:17:18.032849672Z app[web.1]: Time (Wallclock Seconds): 387.95 2021-04-07T13:17:18.032856381Z app[web.1]: 2021-04-07T13:17:18.032861313Z app[web.1]: Total time (CPU seconds): 355.05 (Wallclock seconds): 387.95 |

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/coin-or/Cbc/issues/381, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABWJYHHFIVNLNGYJDDEBG63THRMMTANCNFSM42QZISFQ.

jjhforrest avatar Apr 07 '21 13:04 jjhforrest

@jjhforrest - I'm encountering a similar issue as @lovasoa in that I would like cbc to bail and report an infeasible problem if presolve determines infeasibility. However, my program calls cbc from the command line, and there are no command line options related to presolveInfeasible. Any suggestions?

blthayer avatar Mar 22 '22 22:03 blthayer

-moreSpecial 1 - output with fake problem

stable/debug/bin/cbc /tmp/infeas.mps -moreSpecial 1 -solve (default strategy 1) At line 1 NAME          AFIRO ..... Coin0008I AFIRO read with 0 errors moreSpecialOptions was changed from -1 to 1 Presolve determined that the problem was infeasible with tolerance of 1e-08 Analysis indicates model infeasible or unbounded

Result - Linear relaxation infeasible

On 22/03/2022 22:47, Brandon Thayer wrote:

@jjhforrest https://github.com/jjhforrest - I'm encountering a similar issue as @lovasoa https://github.com/lovasoa in that I would like |cbc| to bail and report an infeasible problem if |presolve| determines infeasibility. However, my program calls |cbc| from the command line, and there are no command line options related to |presolveInfeasible|. Any suggestions?

— Reply to this email directly, view it on GitHub https://github.com/coin-or/Cbc/issues/381#issuecomment-1075725817, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABWJYHBTXUWNXVZPAJDBWWLVBJEW5ANCNFSM42QZISFQ. You are receiving this because you were mentioned.Message ID: @.***>

jjhforrest avatar Mar 23 '22 08:03 jjhforrest

@jjhforrest - thank you. Unfortunately, this does not seem to work for my problem - cbc still moves past presolve (2.10.3).

Here's moreSpecial 1:

$ cbc -moreSpecial 1 -seconds 3 -threads 8 -RandomCbcSeed 42 -RandomSeed 42 -timeMode elapsed -preprocess on -printingOptions all -import tmpagw0rwsl.pyomo.lp -mipstart tmp5f2geuyi.cbc.soln -stat=1 -solve -solu tmpagw0rwsl.pyomo.soln
Welcome to the CBC MILP Solver 
Version: 2.10.3 
Build Date: Mar 24 2020 

command line - cbc -moreSpecial 1 -seconds 3 -threads 8 -RandomCbcSeed 42 -RandomSeed 42 -timeMode elapsed -preprocess on -printingOptions all -import tmpagw0rwsl.pyomo.lp -mipstart tmp5f2geuyi.cbc.soln -stat=1 -solve -solu tmpagw0rwsl.pyomo.soln (default strategy 1)
moreSpecialOptions was changed from -1 to 1
seconds was changed from 1e+100 to 3
threads was changed from 0 to 8
randomCbcSeed was changed from -1 to 42
randomSeed was changed from 1234567 to 42
Option for timeMode changed from cpu to elapsed
Option for preprocess changed from sos to on
Option for printingOptions changed from normal to all
opening mipstart file ./tmp5f2geuyi.cbc.soln.
MIPStart values read for 39 variables.
Presolve determined that the problem was infeasible with tolerance of 1e-08
Presolved model looks infeasible - will use unpresolved
Original problem has 946 integers (946 of which binary)
==== 947 zero objective 375 different
==== absolute objective values 375 different
==== for integers 946 zero objective 1 different
946 variables have objective of 0
==== for integers absolute objective values 1 different
946 variables have objective of 0
===== end objective counts


Problem has 1956 rows, 1772 columns (825 with objective) and 240706 elements
There are 1 singletons with no objective 
Column breakdown:
1 of type 0.0->inf, 0 of type 0.0->up, 0 of type lo->inf, 
363 of type lo->up, 11 of type free, 451 of type fixed, 
0 of type -inf->0.0, 0 of type -inf->up, 946 of type 0.0->1.0 
Row breakdown:
39 of type E 0.0, 40 of type E 1.0, 0 of type E -1.0, 
0 of type E other, 0 of type G 0.0, 0 of type G 1.0, 
491 of type G other, 0 of type L 0.0, 895 of type L 1.0, 
491 of type L other, 0 of type Range 0.0->1.0, 0 of type Range other, 
0 of type Free 
^CProblem is stopped - 18.14 seconds
Total time (CPU seconds):       18.40   (Wallclock seconds):       18.43

ClpSimplex.hpp shows the following:

 /** Set more special options
         1 bit - if presolve says infeasible in ClpSolve return
         2 bit - if presolved problem infeasible return
         4 bit - keep arrays like upper_ around
         8 bit - no free or superBasic variables
...

So, I tried -moreSpecial 2, but no joy:

$ cbc -moreSpecial 2 -seconds 3 -threads 8 -RandomCbcSeed 42 -RandomSeed 42 -timeMode elapsed -preprocess on -printingOptions all -import tmpagw0rwsl.pyomo.lp -mipstart tmp5f2geuyi.cbc.soln -stat=1 -solve -solu tmpagw0rwsl.pyomo.soln
Welcome to the CBC MILP Solver 
Version: 2.10.3 
Build Date: Mar 24 2020 

command line - cbc -moreSpecial 2 -seconds 3 -threads 8 -RandomCbcSeed 42 -RandomSeed 42 -timeMode elapsed -preprocess on -printingOptions all -import tmpagw0rwsl.pyomo.lp -mipstart tmp5f2geuyi.cbc.soln -stat=1 -solve -solu tmpagw0rwsl.pyomo.soln (default strategy 1)
moreSpecialOptions was changed from -1 to 2
seconds was changed from 1e+100 to 3
threads was changed from 0 to 8
randomCbcSeed was changed from -1 to 42
randomSeed was changed from 1234567 to 42
Option for timeMode changed from cpu to elapsed
Option for preprocess changed from sos to on
Option for printingOptions changed from normal to all
opening mipstart file ./tmp5f2geuyi.cbc.soln.
MIPStart values read for 39 variables.
Presolve determined that the problem was infeasible with tolerance of 1e-08
Presolved model looks infeasible - will use unpresolved
Original problem has 946 integers (946 of which binary)
==== 947 zero objective 375 different
==== absolute objective values 375 different
==== for integers 946 zero objective 1 different
946 variables have objective of 0
==== for integers absolute objective values 1 different
946 variables have objective of 0
===== end objective counts


Problem has 1956 rows, 1772 columns (825 with objective) and 240706 elements
There are 1 singletons with no objective 
Column breakdown:
1 of type 0.0->inf, 0 of type 0.0->up, 0 of type lo->inf, 
363 of type lo->up, 11 of type free, 451 of type fixed, 
0 of type -inf->0.0, 0 of type -inf->up, 946 of type 0.0->1.0 
Row breakdown:
39 of type E 0.0, 40 of type E 1.0, 0 of type E -1.0, 
0 of type E other, 0 of type G 0.0, 0 of type G 1.0, 
491 of type G other, 0 of type L 0.0, 895 of type L 1.0, 
491 of type L other, 0 of type Range 0.0->1.0, 0 of type Range other, 
0 of type Free 
^CProblem is infeasible - 22.41 seconds
Total time (CPU seconds):       22.66   (Wallclock seconds):       22.70

You can find the files tmp5f2geuyi.cbc.soln and tmpagw0rwsl.pyomo.lp attached to this comment.

As mentioned in this comment, @zengberg similarly did not have success with moreSpecial on cbc 2.10.7.

blthayer avatar Mar 23 '22 16:03 blthayer

Will look further - was fine when I tried on stable.

Otherwise I could modify one of the Cbc examples (which have all flexibility of standalone) and then have event handler to trap presolveinfesible.

On 23/03/2022 16:28, Brandon Thayer wrote:

@jjhforrest https://github.com/jjhforrest - thank you. Unfortunately, this does not seem to work for my problem - |cbc| still moves past presolve (|2.10.3|).

Here's |moreSpecial 1|:

|$ cbc -moreSpecial 1 -seconds 3 -threads 8 -RandomCbcSeed 42 -RandomSeed 42 -timeMode elapsed -preprocess on -printingOptions all -import tmpagw0rwsl.pyomo.lp -mipstart tmp5f2geuyi.cbc.soln -stat=1 -solve -solu tmpagw0rwsl.pyomo.soln Welcome to the CBC MILP Solver Version: 2.10.3 Build Date: Mar 24 2020 command line - cbc -moreSpecial 1 -seconds 3 -threads 8 -RandomCbcSeed 42 -RandomSeed 42 -timeMode elapsed -preprocess on -printingOptions all -import tmpagw0rwsl.pyomo.lp -mipstart tmp5f2geuyi.cbc.soln -stat=1 -solve -solu tmpagw0rwsl.pyomo.soln (default strategy 1) moreSpecialOptions was changed from -1 to 1 seconds was changed from 1e+100 to 3 threads was changed from 0 to 8 randomCbcSeed was changed from -1 to 42 randomSeed was changed from 1234567 to 42 Option for timeMode changed from cpu to elapsed Option for preprocess changed from sos to on Option for printingOptions changed from normal to all opening mipstart file ./tmp5f2geuyi.cbc.soln. MIPStart values read for 39 variables. Presolve determined that the problem was infeasible with tolerance of 1e-08 Presolved model looks infeasible - will use unpresolved Original problem has 946 integers (946 of which binary) ==== 947 zero objective 375 different ==== absolute objective values 375 different ==== for integers 946 zero objective 1 different 946 variables have objective of 0 ==== for integers absolute objective values 1 different 946 variables have objective of 0 ===== end objective counts Problem has 1956 rows, 1772 columns (825 with objective) and 240706 elements There are 1 singletons with no objective Column breakdown: 1 of type 0.0->inf, 0 of type 0.0->up, 0 of type lo->inf, 363 of type lo->up, 11 of type free, 451 of type fixed, 0 of type -inf->0.0, 0 of type -inf->up, 946 of type 0.0->1.0 Row breakdown: 39 of type E 0.0, 40 of type E 1.0, 0 of type E -1.0, 0 of type E other, 0 of type G 0.0, 0 of type G 1.0, 491 of type G other, 0 of type L 0.0, 895 of type L 1.0, 491 of type L other, 0 of type Range 0.0->1.0, 0 of type Range other, 0 of type Free ^CProblem is stopped - 18.14 seconds Total time (CPU seconds): 18.40 (Wallclock seconds): 18.43 |

ClpSimplex.hpp https://github.com/coin-or/Clp/blob/3c059343da68e45942c761bdbcdf911dd1f55c54/src/ClpSimplex.hpp#L1450 shows the following:

|/** Set more special options 1 bit - if presolve says infeasible in ClpSolve return 2 bit - if presolved problem infeasible return 4 bit - keep arrays like upper_ around 8 bit - no free or superBasic variables ... |

So, I tried |-moreSpecial 2|, but no joy:

|$ cbc -moreSpecial 2 -seconds 3 -threads 8 -RandomCbcSeed 42 -RandomSeed 42 -timeMode elapsed -preprocess on -printingOptions all -import tmpagw0rwsl.pyomo.lp -mipstart tmp5f2geuyi.cbc.soln -stat=1 -solve -solu tmpagw0rwsl.pyomo.soln Welcome to the CBC MILP Solver Version: 2.10.3 Build Date: Mar 24 2020 command line - cbc -moreSpecial 2 -seconds 3 -threads 8 -RandomCbcSeed 42 -RandomSeed 42 -timeMode elapsed -preprocess on -printingOptions all -import tmpagw0rwsl.pyomo.lp -mipstart tmp5f2geuyi.cbc.soln -stat=1 -solve -solu tmpagw0rwsl.pyomo.soln (default strategy 1) moreSpecialOptions was changed from -1 to 2 seconds was changed from 1e+100 to 3 threads was changed from 0 to 8 randomCbcSeed was changed from -1 to 42 randomSeed was changed from 1234567 to 42 Option for timeMode changed from cpu to elapsed Option for preprocess changed from sos to on Option for printingOptions changed from normal to all opening mipstart file ./tmp5f2geuyi.cbc.soln. MIPStart values read for 39 variables. Presolve determined that the problem was infeasible with tolerance of 1e-08 Presolved model looks infeasible - will use unpresolved Original problem has 946 integers (946 of which binary) ==== 947 zero objective 375 different ==== absolute objective values 375 different ==== for integers 946 zero objective 1 different 946 variables have objective of 0 ==== for integers absolute objective values 1 different 946 variables have objective of 0 ===== end objective counts Problem has 1956 rows, 1772 columns (825 with objective) and 240706 elements There are 1 singletons with no objective Column breakdown: 1 of type 0.0->inf, 0 of type 0.0->up, 0 of type lo->inf, 363 of type lo->up, 11 of type free, 451 of type fixed, 0 of type -inf->0.0, 0 of type -inf->up, 946 of type 0.0->1.0 Row breakdown: 39 of type E 0.0, 40 of type E 1.0, 0 of type E -1.0, 0 of type E other, 0 of type G 0.0, 0 of type G 1.0, 491 of type G other, 0 of type L 0.0, 895 of type L 1.0, 491 of type L other, 0 of type Range 0.0->1.0, 0 of type Range other, 0 of type Free ^CProblem is infeasible - 22.41 seconds Total time (CPU seconds): 22.66 (Wallclock seconds): 22.70 |

You can find the files |tmp5f2geuyi.cbc.soln| and |tmpagw0rwsl.pyomo.lp| attached to this comment https://github.com/coin-or/Cbc/issues/487#issuecomment-1076485017.

As mentioned in this comment https://github.com/coin-or/Cbc/issues/487#issuecomment-1076529542, @zengberg https://github.com/zengberg similarly did not have success with |moreSpecial| on cbc |2.10.7|.

— Reply to this email directly, view it on GitHub https://github.com/coin-or/Cbc/issues/381#issuecomment-1076540317, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABWJYHHSVEOXJENHNQBPXYLVBNBDLANCNFSM42QZISFQ. You are receiving this because you were mentioned.Message ID: @.***>

jjhforrest avatar Mar 23 '22 18:03 jjhforrest

@jjhforrest - thank you for your time, I sincerely appreciate your support. I look forward to hearing more as you dig in and/or modify examples!

blthayer avatar Mar 23 '22 18:03 blthayer

My mistake.  My suggestion stopped Clp but not cbc.  This is because Cbc does initialSolve and then resolve if it thinks there may be problems (resolve does not do the presolve).  I have added to stable a secondary status which says the problem was found infeasible by presolve and so there is no point trying again.  This involved changes to Clp/stable and Cbc/stable

On 23/03/2022 16:28, Brandon Thayer wrote:

@jjhforrest https://github.com/jjhforrest - thank you. Unfortunately, this does not seem to work for my problem - |cbc| still moves past presolve (|2.10.3|).

Here's |moreSpecial 1|:

|$ cbc -moreSpecial 1 -seconds 3 -threads 8 -RandomCbcSeed 42 -RandomSeed 42 -timeMode elapsed -preprocess on -printingOptions all -import tmpagw0rwsl.pyomo.lp -mipstart tmp5f2geuyi.cbc.soln -stat=1 -solve -solu tmpagw0rwsl.pyomo.soln Welcome to the CBC MILP Solver Version: 2.10.3 Build Date: Mar 24 2020 command line - cbc -moreSpecial 1 -seconds 3 -threads 8 -RandomCbcSeed 42 -RandomSeed 42 -timeMode elapsed -preprocess on -printingOptions all -import tmpagw0rwsl.pyomo.lp -mipstart tmp5f2geuyi.cbc.soln -stat=1 -solve -solu tmpagw0rwsl.pyomo.soln (default strategy 1) moreSpecialOptions was changed from -1 to 1 seconds was changed from 1e+100 to 3 threads was changed from 0 to 8 randomCbcSeed was changed from -1 to 42 randomSeed was changed from 1234567 to 42 Option for timeMode changed from cpu to elapsed Option for preprocess changed from sos to on Option for printingOptions changed from normal to all opening mipstart file ./tmp5f2geuyi.cbc.soln. MIPStart values read for 39 variables. Presolve determined that the problem was infeasible with tolerance of 1e-08 Presolved model looks infeasible - will use unpresolved Original problem has 946 integers (946 of which binary) ==== 947 zero objective 375 different ==== absolute objective values 375 different ==== for integers 946 zero objective 1 different 946 variables have objective of 0 ==== for integers absolute objective values 1 different 946 variables have objective of 0 ===== end objective counts Problem has 1956 rows, 1772 columns (825 with objective) and 240706 elements There are 1 singletons with no objective Column breakdown: 1 of type 0.0->inf, 0 of type 0.0->up, 0 of type lo->inf, 363 of type lo->up, 11 of type free, 451 of type fixed, 0 of type -inf->0.0, 0 of type -inf->up, 946 of type 0.0->1.0 Row breakdown: 39 of type E 0.0, 40 of type E 1.0, 0 of type E -1.0, 0 of type E other, 0 of type G 0.0, 0 of type G 1.0, 491 of type G other, 0 of type L 0.0, 895 of type L 1.0, 491 of type L other, 0 of type Range 0.0->1.0, 0 of type Range other, 0 of type Free ^CProblem is stopped - 18.14 seconds Total time (CPU seconds): 18.40 (Wallclock seconds): 18.43 |

ClpSimplex.hpp https://github.com/coin-or/Clp/blob/3c059343da68e45942c761bdbcdf911dd1f55c54/src/ClpSimplex.hpp#L1450 shows the following:

|/** Set more special options 1 bit - if presolve says infeasible in ClpSolve return 2 bit - if presolved problem infeasible return 4 bit - keep arrays like upper_ around 8 bit - no free or superBasic variables ... |

So, I tried |-moreSpecial 2|, but no joy:

|$ cbc -moreSpecial 2 -seconds 3 -threads 8 -RandomCbcSeed 42 -RandomSeed 42 -timeMode elapsed -preprocess on -printingOptions all -import tmpagw0rwsl.pyomo.lp -mipstart tmp5f2geuyi.cbc.soln -stat=1 -solve -solu tmpagw0rwsl.pyomo.soln Welcome to the CBC MILP Solver Version: 2.10.3 Build Date: Mar 24 2020 command line - cbc -moreSpecial 2 -seconds 3 -threads 8 -RandomCbcSeed 42 -RandomSeed 42 -timeMode elapsed -preprocess on -printingOptions all -import tmpagw0rwsl.pyomo.lp -mipstart tmp5f2geuyi.cbc.soln -stat=1 -solve -solu tmpagw0rwsl.pyomo.soln (default strategy 1) moreSpecialOptions was changed from -1 to 2 seconds was changed from 1e+100 to 3 threads was changed from 0 to 8 randomCbcSeed was changed from -1 to 42 randomSeed was changed from 1234567 to 42 Option for timeMode changed from cpu to elapsed Option for preprocess changed from sos to on Option for printingOptions changed from normal to all opening mipstart file ./tmp5f2geuyi.cbc.soln. MIPStart values read for 39 variables. Presolve determined that the problem was infeasible with tolerance of 1e-08 Presolved model looks infeasible - will use unpresolved Original problem has 946 integers (946 of which binary) ==== 947 zero objective 375 different ==== absolute objective values 375 different ==== for integers 946 zero objective 1 different 946 variables have objective of 0 ==== for integers absolute objective values 1 different 946 variables have objective of 0 ===== end objective counts Problem has 1956 rows, 1772 columns (825 with objective) and 240706 elements There are 1 singletons with no objective Column breakdown: 1 of type 0.0->inf, 0 of type 0.0->up, 0 of type lo->inf, 363 of type lo->up, 11 of type free, 451 of type fixed, 0 of type -inf->0.0, 0 of type -inf->up, 946 of type 0.0->1.0 Row breakdown: 39 of type E 0.0, 40 of type E 1.0, 0 of type E -1.0, 0 of type E other, 0 of type G 0.0, 0 of type G 1.0, 491 of type G other, 0 of type L 0.0, 895 of type L 1.0, 491 of type L other, 0 of type Range 0.0->1.0, 0 of type Range other, 0 of type Free ^CProblem is infeasible - 22.41 seconds Total time (CPU seconds): 22.66 (Wallclock seconds): 22.70 |

You can find the files |tmp5f2geuyi.cbc.soln| and |tmpagw0rwsl.pyomo.lp| attached to this comment https://github.com/coin-or/Cbc/issues/487#issuecomment-1076485017.

As mentioned in this comment https://github.com/coin-or/Cbc/issues/487#issuecomment-1076529542, @zengberg https://github.com/zengberg similarly did not have success with |moreSpecial| on cbc |2.10.7|.

— Reply to this email directly, view it on GitHub https://github.com/coin-or/Cbc/issues/381#issuecomment-1076540317, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABWJYHHSVEOXJENHNQBPXYLVBNBDLANCNFSM42QZISFQ. You are receiving this because you were mentioned.Message ID: @.***>

jjhforrest avatar Mar 24 '22 15:03 jjhforrest

Thank you very much! To date, I've been using a version of cbc installed through my OS package manager, but I'll try to make some time to get a source build going and try out your suggested -moreSpecial 1 trick.

blthayer avatar Mar 24 '22 18:03 blthayer

Brandon,

You mentioned the -primal flag. Normally the time in branch and bound is the vast majority of time in solving an integer problem, so it does not really matter if you add that flag.  But the primal algorithm is better than the dual algorithm at proving a problem is infeasible

f you want to stay with your current cbc, I would suggest that you just add that flag.

On 24/03/2022 18:35, Brandon Thayer wrote:

Thank you very much! To date, I've been using a version of |cbc| installed through my OS package manager, but I'll try to make some time to get a source build going and try out your suggested |-moreSpecial 1| trick.

— Reply to this email directly, view it on GitHub https://github.com/coin-or/Cbc/issues/381#issuecomment-1077927982, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABWJYHHYS2ZX6U5NIVRRQ6TVBSYYJANCNFSM42QZISFQ. You are receiving this because you were mentioned.Message ID: @.***>

jjhforrest avatar Mar 25 '22 14:03 jjhforrest

Thank you!

blthayer avatar Mar 25 '22 21:03 blthayer