commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Benjamin McCann (JIRA)" <j...@apache.org>
Subject [jira] Commented: (MATH-288) SimplexSolver not working as expected 2
Date Tue, 25 Aug 2009 01:06:59 GMT

    [ https://issues.apache.org/jira/browse/MATH-288?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12747167#action_12747167
] 

Benjamin McCann commented on MATH-288:
--------------------------------------

Thanks for the bug report.  I've confirmed this is an issue.

Here's a slightly smaller version of the problem that causes the same bug, which might be
easier for debugging:

MAX 7 a + 3 b
s.t.
3 a -5 c <= 0
2 a -5 d <= 0
3 b -5 d <= 0
a <= 1
b <= 1

        LinearObjectiveFunction f = new LinearObjectiveFunction(new double[] { 7, 3, 0, 0
}, 0 );
        Collection<LinearConstraint> constraints = new ArrayList<LinearConstraint>();
        constraints.add(new LinearConstraint(new double[] { 3, 0, -5, 0 }, Relationship.LEQ,
0.0));
        constraints.add(new LinearConstraint(new double[] { 2, 0, 0, -5 }, Relationship.LEQ,
0.0));
        constraints.add(new LinearConstraint(new double[] { 0, 3, 0, -5 }, Relationship.LEQ,
0.0));
        constraints.add(new LinearConstraint(new double[] { 1, 0, 0, 0 }, Relationship.LEQ,
1.0));
        constraints.add(new LinearConstraint(new double[] { 0, 1, 0, 0 }, Relationship.LEQ,
1.0));
    
        SimplexSolver solver = new SimplexSolver();
        RealPointValuePair solution = solver.optimize(f, constraints, GoalType.MAXIMIZE, true);
        assertEquals(10.0, solution.getValue(), .0000001);


> SimplexSolver not working as expected 2
> ---------------------------------------
>
>                 Key: MATH-288
>                 URL: https://issues.apache.org/jira/browse/MATH-288
>             Project: Commons Math
>          Issue Type: Bug
>    Affects Versions: 2.1
>         Environment: Java 1.6.0_13 on Windows XP 32-bit 
>            Reporter: Stefan Radacovsky
>   Original Estimate: 8h
>  Remaining Estimate: 8h
>
> 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[]{7, 3, 0,
0}, 0);
> Collection<LinearConstraint> podmienky = new ArrayList<LinearConstraint>();
> podmienky.add(new LinearConstraint(new double[]{1, 0, 0, 0}, Relationship.LEQ, 1));
> podmienky.add(new LinearConstraint(new double[]{0, 1, 0, 0}, Relationship.LEQ, 1));
> podmienky.add(new LinearConstraint(new double[]{3, 0, -5, 0}, Relationship.LEQ, 0));
> podmienky.add(new LinearConstraint(new double[]{2, 0, 0, -5}, Relationship.LEQ, 0));
> podmienky.add(new LinearConstraint(new double[]{0, 2, -5, 0}, Relationship.LEQ, 0));
> podmienky.add(new LinearConstraint(new double[]{0, 3, 0, -5}, Relationship.LEQ, 0));
> podmienky.add(new LinearConstraint(new double[]{3, 2, 0, 0}, Relationship.LEQ, 5));
> podmienky.add(new LinearConstraint(new double[]{2, 3, 0, 0}, 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).

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message