embotech / ecos

A lightweight conic solver for second-order cone programming.
GNU General Public License v3.0
478 stars 123 forks source link

ECOS 2.0.7 → 2.0.8 Integer QCQP regression (both via latest ecos-python 2.0.7). #194

Closed Viech closed 3 years ago

Viech commented 3 years ago

Since upgrading ECOS from 2.0.7 to 2.0.8, two integer QCQP test cases in the PICOS test bench (IQCQP1 and IQCQP2 defined here) are failing. The issue is tracked on PICOS end as #252. For both versions I'm using the same latest Python interface, that is ecos-python 2.0.7. I'm posting here first as the issue looks somewhat more backend than interface related though maybe all that's mssing is a release of ecos-python 2.0.8

I have attached a ZIP archive containing a Python script reproduce.py and a problem.pickle file that can be used to reproduce the regression. Please note the security warning with respect to loading pickled data. If you do not want to use the script, you could instead clone the PICOS repository and run ./test.py -s ecos -c IQCQP1 -d. I have also attached two log files, ecos_2.0.7.log and ecos_2.0.8.log, that show the output of reproduce.py with the respective version of ECOS installed on my end.

I'm running Arch Linux (Kernel 5.10.5) with Python 3.9.1 and theAUR packages ecos and python-ecos.

% md5sums *
32116275494fb8e405b621b8c2a551b7  problem.pickle
3891743a74c3e12be25f8d4f3a3a7eeb  reproduce.py
e5d8ac8d189bd5942e6f5c35ced1962f  reproduce.zip
Viech commented 3 years ago

ecos-python 2.0.8 was released six days later but I did not realize this until now as its AUR package wasn't updated so far. And indeed, updating ecos-python to match the ECOS version resolves this issue!