In the continuous integration pipeline of qpsolvers, we have noticed a regression from HiGHS 1.14.0 on solving a small dense QP problem.
The test fails e.g. in this run (I reproduced it locally on my computer as well):
======================================================================
FAIL: test_highs_tolerances (tests.test_highs.TestHiGHS)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/runner/work/qpsolvers/qpsolvers/tests/test_highs.py", line 37, in test_highs_tolerances
self.assertIsNotNone(x)
AssertionError: unexpectedly None
The corresponding test only checks whether the solver returns a (primal vector in its) solution:
def test_highs_tolerances(self):
problem = get_sd3310_problem()
x = highs_solve_qp(
problem.P, problem.q, problem.G, problem.h, problem.A, problem.b,
time_limit=0.1,
primal_feasibility_tolerance=1e-1,
dual_feasibility_tolerance=1e-1,
)
self.assertIsNotNone(x)
The corresponding problem is:
def get_sd3310_problem() -> Problem:
"""
Get a small dense problem with 3 optimization variables, 3 inequality
constraints, 1 equality constraint and 0 box constraint.
"""
M = np.array([[1.0, 2.0, 0.0], [-8.0, 3.0, 2.0], [0.0, 1.0, 1.0]])
P = np.dot(M.T, M) # this is a positive definite matrix
q = np.dot(np.array([3.0, 2.0, 3.0]), M).reshape((3,))
G = np.array([[1.0, 2.0, 1.0], [2.0, 0.0, 1.0], [-1.0, 2.0, -1.0]])
h = np.array([3.0, 2.0, -2.0]).reshape((3,))
A = np.array([1.0, 1.0, 1.0])
b = np.array([1.0])
return Problem(P, q, G, h, A, b)
The test does not fail when we the version range of the dependency to highspy = ">=1.5.3,<1.14.0", which suggests highspy 1.14.0 may have a regression there.
Hoping this report helps!
In the continuous integration pipeline of qpsolvers, we have noticed a regression from HiGHS 1.14.0 on solving a small dense QP problem.
The test fails e.g. in this run (I reproduced it locally on my computer as well):
The corresponding test only checks whether the solver returns a (primal vector in its) solution:
The corresponding problem is:
The test does not fail when we the version range of the dependency to
highspy = ">=1.5.3,<1.14.0", which suggests highspy 1.14.0 may have a regression there.Hoping this report helps!