Cbc
Cbc copied to clipboard
QP: wrong optimal value in solution file
The problem is follow:
NAME problem
ROWS
N obj
G c1
COLUMNS
a obj 1
a c1 1
b obj 1
b c1 1
RHS
rhs c1 10
QUADOBJ
a a 1
a b 2
b b 7
ENDATA
Logs and solution file are given below (solution was printed to the screen with command "solution $"):
Executing algorithm...
Executing on prod-exec-7.neos-server.org
Welcome to the CBC MILP Solver
Version: 2.10.7
Build Date: Apr 19 2022
command line - /opt/coin/cbc cbc.mps - (default strategy 1)
At line 1 NAME problem
At line 2 ROWS
At line 5 COLUMNS
At line 10 RHS
At line 12 QUADOBJ
Problem problem has 1 rows, 2 columns and 2 elements
Coin0008I problem read with 0 errors
At line 16 ENDATA
Switching to line mode
Coin:4 elements in sparse Cholesky, flop count 14
0 Primal 60200 Dual -210100 Complementarity 270300 - 0 fixed, rank 4
1 Primal 13344.911 Dual -12537.109 Complementarity 25882.021 - 0 fixed, rank 4
2 Primal 2062.0541 Dual -1716.3759 Complementarity 3778.4301 - 0 fixed, rank 4
3 Primal 356.42776 Dual -180.25674 Complementarity 536.6845 - 0 fixed, rank 4
4 Primal 95.873697 Dual 36.873803 Complementarity 58.999893 - 0 fixed, rank 4
5 Primal 65.120661 Dual 59.554227 Complementarity 5.5664336 - 0 fixed, rank 4
6 Primal 60.140509 Dual 59.995369 Complementarity 0.1451402 - 0 fixed, rank 4
7 Primal 60.000707 Dual 59.999979 Complementarity 0.00072841202 - 0 fixed, rank 4
8 Primal 60.000004 Dual 60 Complementarity 3.6420167e-06 - 0 fixed, rank 4
9 Primal 60.000001 Dual 60 Complementarity 1.2139844e-06 - 0 fixed, rank 4
10 Primal 60 Dual 60 Complementarity 4.0464046e-07 - 0 fixed, rank 4
11 Primal 60 Dual 60 Complementarity 1.3485916e-07 - 0 fixed, rank 4
12 Primal 60 Dual 60 Complementarity 4.4932049e-08 - 0 fixed, rank 4
Optimal
At end primal/dual infeasibilities 0/0, complementarity gap 0, objective 60
Optimal objective 60.00000001 - 24 iterations time 0.002
Coin:Optimal - objective value 10.00000000
0 a 10 1.4984352e-09
1 b 1.4974351e-09 10
Coin:Total time (CPU seconds): 0.00 (Wallclock seconds): 0.00
So, real optimum is 60; optimum is solution file is 10 (see row "Coin:Optimal - objective value 10.00000000"). There is no this problem in clp.
I guess that cbc loose quadratic part of optimization expression when it prints solution to the file.
Says 60 using clp not cbc. Also seems to be fixed in master. Not sure very important.