Hi! I'm trying to solve the following toy MPLP: maximize i + j + k, subject to:
i + j <= m
i + k <= m
k + j <= m
i, j, k all fall within [0,n].
The parameters m and n are only required to be nonnegative.
Following the documentation here, I've set up the problem as follows:
A=np.array([
[1,1,0],
[1,0,1],
[0,1,1],
[-1,0,0],
[0,-1,0],
[0,0,-1],
[1,0,0],
[0,1,0],
[0,0,1]])
b=np.array([0,0,0,0,0,0,0,0,0]).reshape(-1,1)
c = np.array([-1,-1,-1]).reshape(-1,1)
F = np.array([
[1, 0],
[1, 0],
[1, 0],
[0, 0],
[0, 0],
[0, 0],
[0, 1],
[0, 1],
[0, 1]])
CRa = -np.eye(2)
CRb = np.array([[0],[0]])
H = np.zeros((A.shape[1],F.shape[1]))
prog = MPLP_Program(A, b, c, H, CRa, CRb, F)
This generates the warning:
/Users/grace/projects/mplp/.venv/lib/python3.13/site-packages/ppopt/mplp_program.py:104:
UserWarning: The chebychev ball has either a radius of zero, or the problem is not feasible!
warnings.warn(warning, UserWarning)
and an attempt to solve it gives an empty solution.
This is clearly incorrect: the LP is definitely feasible, and the objective should be either -3n (if m<=2n) or -3m/2 (otherwise).
Interestingly, removing n entirely works: the following code:
A=np.array([
[1,1,0],
[1,0,1],
[0,1,1],
[-1,0,0],
[0,-1,0],
[0,0,-1]])
b=np.array([0,0,0,0,0,0]).reshape(-1,1)
c = np.array([-1,-1,-1]).reshape(-1,1)
F = np.array([ [1], [1], [1], [0], [0], [0]])
CRa = -np.eye(1)
CRb = np.array([[0]])
H = np.zeros((A.shape[1],F.shape[1]))
prog = MPLP_Program(A, b, c, H, CRa, CRb, F)
prog.process_constraints()
solve_mpqp(prog, mpqp_algorithm.combinatorial)
produces the same "The chebychev ball has either a radius of zero" warning, but does produce the correct solution with the combinatorial solver:
Solution(program=<ppopt.mplp_program.MPLP_Program object at 0x108be4490>, critical_regions=[Critical region with active set [0, 1, 2]
The Omega Constraint indices are [0]
The Lagrange multipliers Constraint indices are []
The Regular Constraint indices are [[0, 1, 2], [3, 4, 5]]
x(θ) = Aθ + b
λ(θ) = Cθ + d
Eθ <= f
A = [[0.5]
[0.5]
[0.5]]
b = [[0.]
[0.]
[0.]]
C = [[0.]
[0.]
[0.]]
d = [[0.8660254]
[0.8660254]
[0.8660254]]
E = [[ 1]
[-1]]
f = [[inf]
[ 0.]]])
(The graph and geometric solvers fail with both LPs).
Do you have any insight on what the underlying issue might be?
Thanks!
Hi! I'm trying to solve the following toy MPLP: maximize i + j + k, subject to:
i + j <= m
i + k <= m
k + j <= m
i, j, k all fall within [0,n].
The parameters m and n are only required to be nonnegative.
Following the documentation here, I've set up the problem as follows:
This generates the warning:
and an attempt to solve it gives an empty solution.
This is clearly incorrect: the LP is definitely feasible, and the objective should be either -3n (if m<=2n) or -3m/2 (otherwise).
Interestingly, removing n entirely works: the following code:
produces the same "The chebychev ball has either a radius of zero" warning, but does produce the correct solution with the combinatorial solver:
(The graph and geometric solvers fail with both LPs).
Do you have any insight on what the underlying issue might be?
Thanks!