4
Apache Commonsの数学でint
,double
などの決定変数の型を設定する方法SimplexSolver
?以下のプログラムの出力はこれです:バイナリ、int、doubleのような決定変数の型をApache Commons Math SimplexSolverで設定するには?
332.6666666666667
1.0
8331.666666666668
私は決定変数の型int
ないdouble
のようにしたいです。整数決定変数として解決された場合、出力は333, 0, 8325
でなければなりません。
public static void testSample() throws OptimizationException {
LinearObjectiveFunction f = new LinearObjectiveFunction(new double[]{25, 15}, 0);
Collection<LinearConstraint> constraints = new ArrayList<LinearConstraint>();
constraints.add(new LinearConstraint(new double[]{5, 8}, Relationship.LEQ, 5000));
constraints.add(new LinearConstraint(new double[]{1, 4}, Relationship.LEQ, 1500));
constraints.add(new LinearConstraint(new double[]{3, 2}, Relationship.LEQ, 1000));
constraints.add(new LinearConstraint(new double[]{1, 0}, Relationship.GEQ, 1));
constraints.add(new LinearConstraint(new double[]{0, 1}, Relationship.GEQ, 1));
SimplexSolver solver = new SimplexSolver();
RealPointValuePair solution = solver.optimize(f, constraints, GoalType.MAXIMIZE, true);
System.out.println(solution.getPoint()[0]);
System.out.println(solution.getPoint()[1]);
System.out.println(solution.getValue());
}
こんにちは、ありがとうございます。あなたの答えでは、それは最適化とは何の関係もない番号のフォーマットです。 333 1 8332は最適化された答えではありません。最適化された解は333 0 8325です。決定変数の型を設定することにより、実際の最適化を得ることができます。それを行う方法を身体が知っていますか? – user1020082
ああ、私は誤解しました。上記より。申し訳ありませんがあなたの質問を誤って編集しました。 – trashgod