0
我使用SCPSolver來制定java中的線性問題。如何在SCPSolver中爲LP添加非負性約束?
玩具線性問題:
min x + y
x + 2y >= -1
x - 2y >= -1
可以用Java寫爲:
LinearProgram lp = new LinearProgram(new double[] { 1.0, 1.0 });
lp.addConstraint(new LinearBiggerThanEqualsConstraint(new double[] { 1.0, 2.0 }, -1.0, "c1"));
lp.addConstraint(new LinearBiggerThanEqualsConstraint(new double[] { 1.0, -2.0 }, -1.0, "c2"));
lp.setMinProblem(true);
LinearProgramSolver solver = SolverFactory.newDefault();
double[] sol = solver.solve(lp);
我們加上x
和y
非負限制,我可以添加:
lp.addConstraint(new LinearBiggerThanEqualsConstraint(new double[] { 1.0, 0.0 }, 0.0, "c3"));
lp.addConstraint(new LinearBiggerThanEqualsConstraint(new double[] { 0.0, 1.0 }, 0.0, "c4"));
但是有沒有一個函數調用來添加非負性約束fo所有的變量?像lp.addAllNonNegativityConstraints()
?
我認爲默認情況下變量是非負的。否則,請調用[setLowerbound](http://scpsolver.org/javadoc/scpsolver/problems/MathematicalProgram.html#setLowerbound(double []))。 –
@ErwinKalvelagen感謝鏈接到文檔。 'setLowerbound'的作品!但默認情況下,所有變量都是無界的 – raghavsood33