[Cbc-tickets] Re: [COIN-OR Branch-and-Cut MIP Solver] #36:
CbcSolve.exe (windows) stable release 1.2 returns wrong optimum
COIN-OR Branch-and-Cut MIP Solver
coin-trac at coin-or.org
Tue Oct 30 07:56:14 EDT 2007
#36: CbcSolve.exe (windows) stable release 1.2 returns wrong optimum
-------------------------+--------------------------------------------------
Reporter: mserg | Owner: somebody
Type: defect | Status: new
Priority: major | Milestone:
Component: component1 | Version:
Resolution: | Keywords:
-------------------------+--------------------------------------------------
Comment (by mserg):
Seems you use other version... See the follow step by step instruction:
Step 1. Download the file "http://www.coin-
or.org/download/source/Cbc/Cbc-1.2.0.zip" and unzip it
Step 2. Open "Cbc.sln" in Visual Studio 2005 and set in menu
Build/Configuration Manager "Release"
Step 3. Build the solution. I have 93 link errors like that:
Error 77 error LNK2019: unresolved external symbol "public: void
__thiscall OsiSolverInterface::setRowColNames(class CoinModel &)"
(?setRowColNames at OsiSolverInterface@@QAEXAAVCoinModel@@@Z) referenced in
function "public: virtual int __thiscall
OsiSolverInterface::loadFromCoinModel(class CoinModel &,bool)"
(?loadFromCoinModel at OsiSolverInterface@@UAEHAAVCoinModel@@_N at Z) libosi.lib
Step 4. Add OsiNames.cpp to libosi project and build again. I receive 12
error like:
Error 1 error LNK2019: unresolved external symbol "public: __thiscall
OsiSimpleInteger::OsiSimpleInteger(class OsiSolverInterface const *,int)"
(??0OsiSimpleInteger@@QAE at PBVOsiSolverInterface@@H at Z) referenced in
function "public: void __thiscall OsiSolverInterface::findIntegers(bool)"
(?findIntegers at OsiSolverInterface@@QAEX_N at Z) libosi.lib
Setp 5. Add OsiBranchingObject.cpp to the project libosi.lib and build
solution again. Ok, compiled.
Step 6. Download https://projects.coin-
or.org/Cbc/attachment/ticket/36/mps.zip,
unpack it to ....\Cbc-1.2.0\MSVisualStudio\v8\Cbc\cbcSolve\Release\
Step 7. Run
cbcSolve.exe Shipping.mps
What is the minimum? I have 25601 ...
See the log:
************************************
Coin Cbc and Clp Solver version 1.02.00, build Oct 30 2007
command line - cbcSolve.exe Shipping.mps
At line 1 NAME Shipping
At line 2 ROWS
At line 1899 COLUMNS
At line 5716 RHS
At line 5819 BOUNDS
At line 7593 ENDATA
Problem Shipping has 1895 rows, 1773 columns and 7172 elements
Model was imported from .\Shipping.mps in 0.016 seconds
Optimal - objective value 18749
Cgl0006I 16 SOS (1347 members out of 1773) with 0 overlaps - too much
overlap or too many others
Cgl0003I 123 fixed, 0 tightened bounds, 0 strengthened rows, 0
substitutions
Cgl0003I 65 fixed, 0 tightened bounds, 0 strengthened rows, 0
substitutions
Cgl0003I 30 fixed, 0 tightened bounds, 0 strengthened rows, 0
substitutions
Cgl0003I 16 fixed, 0 tightened bounds, 0 strengthened rows, 0
substitutions
Cgl0003I 8 fixed, 0 tightened bounds, 0 strengthened rows, 0 substitutions
Cgl0003I 2 fixed, 0 tightened bounds, 0 strengthened rows, 0 substitutions
Cgl0003I 9 fixed, 0 tightened bounds, 0 strengthened rows, 0 substitutions
Cgl0004I processed model has 1418 rows, 1307 columns (1307 integer) and
5890 elements
processed model has 1418 rows, 1307 columns and 5890 elements
Optimal - objective value 19264.6
1307 integer variables
Cbc0009I Objective coefficients multiple of 1
cutoff increment increased from 1e-005 to 0.999
pass 1: obj. 13.56594 --> up = 0 , down = 0 -- rand = 17 (
17)
pass 2: obj. 16.15786 --> up = 1 , down = 9
pass 3: obj. 7.35244 --> up = 0 , down = 0 -- rand = 15 (
15)
pass 4: obj. 10.22393 --> up = 2 , down = 7
pass 5: obj. 2.93948 --> up = 0 , down = 0 -- rand = 18 (
19)
pass 6: obj. 6.80558 --> up = 1 , down = 5
pass 7: obj. 3.26336 --> up = 0 , down = 1
pass 8: obj. 3.00020 --> up = 0 , down = 0 -- rand = 10 (
24)
pass 9: obj. 3.15385 --> up = 0 , down = 3
pass 10: obj. 1.47253 --> up = 0 , down = 1
pass 11: obj. 1.00000 --> up = 0 , down = 0 -- rand = 4 (
19)
pass 12: obj. 3.00000 --> up = 0 , down = 4 Perturbation
applied
pass 13: obj. 157.03010 --> up = 0 , down = 157
pass 14: obj. 1.43318 --> up = 0 , down = 0 -- rand = 7 (
16)
pass 15: obj. 3.24769 --> up = 0 , down = 4
pass 16: obj. 1.48485 --> up = 0 , down = 0 -- rand = 5 (
12)
pass 17: obj. 2.66667 --> up = 0 , down = 2
pass 18: obj. 1.13580 --> up = 0 , down = 0 -- rand = 6 (
13)
pass 19: obj. 2.85714 --> up = 0 , down = 1
pass 20: obj. 2.38462 --> - no solution found
Cbc0031I 123 added rows had average density of 7.02439
Cbc0013I At root node, 123 cuts changed objective from 19264.6 to 25253.7
in 38 passes
Cbc0014I Cut generator 0 (Probing) - 327 row cuts (123 active), 2 column
cuts in 0.313 seconds - new frequency is 1
Cbc0014I Cut generator 1 (Gomory) - 424 row cuts (0 active), 0 column cuts
in 0.654 seconds - new frequency is 1
Cbc0014I Cut generator 2 (Knapsack) - 193 row cuts (0 active), 0 column
cuts in 0.363 seconds - new frequency is 1
Cbc0014I Cut generator 3 (Clique) - 0 row cuts (0 active), 0 column cuts
in 0 seconds - new frequency is -100
Cbc0014I Cut generator 4 (MixedIntegerRounding2) - 0 row cuts (0 active),
0 column cuts in 0.015 seconds - new frequency is -100
Cbc0014I Cut generator 5 (FlowCover) - 0 row cuts (0 active), 0 column
cuts in 0 seconds - new frequency is -100
Cbc0014I Cut generator 6 (TwoMirCuts) - 352 row cuts (0 active), 0 column
cuts in 0.314 seconds - new frequency is -100
Cbc0010I After 0 nodes, 1 on tree, 1e+050 best solution, best possible
25267 (8.87 seconds)
Cbc0016I Integer solution of 25601 found by strong branching after 1959
iterations and 3 nodes (12.47 seconds)
Cbc0001I Search completed - best objective 25601, took 2482 iterations and
8 nodes (20.93 seconds)
Cbc0032I Strong branching done 412 times (18298 iterations), fathomed 4
nodes and fixed 36 variables
Cuts at root node changed objective from 19264.6 to 25267
Probing was tried 46 times and created 334 cuts of which 125 were active
after adding rounds of cuts ( 0.359 seconds)
Gomory was tried 46 times and created 424 cuts of which 0 were active
after adding rounds of cuts ( 0.67 seconds)
Knapsack was tried 46 times and created 220 cuts of which 10 were active
after adding rounds of cuts ( 0.473 seconds)
Clique was tried 1 times and created 0 cuts of which 0 were active after
adding rounds of cuts ( 0 seconds)
MixedIntegerRounding2 was tried 1 times and created 0 cuts of which 0 were
active after adding rounds of cuts ( 0.015 seconds)
FlowCover was tried 1 times and created 0 cuts of which 0 were active
after adding rounds of cuts ( 0 seconds)
TwoMirCuts was tried 38 times and created 352 cuts of which 0 were active
after adding rounds of cuts ( 0.314 seconds)
Result - Finished objective 25601 after 8 nodes and 2482 iterations - took
29.84 seconds
************************************
--
Ticket URL: <https://projects.coin-or.org/Cbc/ticket/36#comment:3>
COIN-OR Branch-and-Cut MIP Solver <http://projects.coin-or.org/Cbc>
An LP-based branch-and-cut MIP solver.
More information about the Cbc-tickets
mailing list