Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
2.1
-
None
-
None
-
Java 1.6.0_13 on Windows XP 32-bit
Description
SimplexSolver didn't find the optimal solution.
Program for Lpsolve:
=====================
/* Objective function */
max: 7 a 3 b;
/* Constraints */
R1: +3 a -5 c <= 0;
R2: +2 a -5 d <= 0;
R3: +2 b -5 c <= 0;
R4: +3 b -5 d <= 0;
R5: +3 a +2 b <= 5;
R6: +2 a +3 b <= 5;
/* Variable bounds */
a <= 1;
b <= 1;
=====================
Results(correct): a = 1, b = 1, value = 10
Program for SimplexSolve:
=====================
LinearObjectiveFunction kritFcia = new LinearObjectiveFunction(new double[]
, 0);
Collection<LinearConstraint> podmienky = new ArrayList<LinearConstraint>();
podmienky.add(new LinearConstraint(new double[]
, Relationship.LEQ, 1));
podmienky.add(new LinearConstraint(new double[]
, Relationship.LEQ, 1));
podmienky.add(new LinearConstraint(new double[]
, Relationship.LEQ, 0));
podmienky.add(new LinearConstraint(new double[]
, Relationship.LEQ, 0));
podmienky.add(new LinearConstraint(new double[]
, Relationship.LEQ, 0));
podmienky.add(new LinearConstraint(new double[]
, Relationship.LEQ, 0));
podmienky.add(new LinearConstraint(new double[]
, Relationship.LEQ, 5));
podmienky.add(new LinearConstraint(new double[]
, Relationship.LEQ, 5));
SimplexSolver solver = new SimplexSolver();
RealPointValuePair result = solver.optimize(kritFcia, podmienky, GoalType.MAXIMIZE, true);
=====================
Results(incorrect): a = 1, b = 0.5, value = 8.5
P.S. I used the latest software from the repository (including MATH-286 fix).