目的関数にx1、x2、x3、x4を含むlinprogコードがあります。
私が得た結果は、次の形式で値を示します。
x =
6.6667
0.0420
0
0
xは特定のテクノロジーのユニット数を表すため、モデル化しようとしている場合は物理的に意味がありません。したがって、たとえば0.0420は実際には存在しません。とにかく、linprogにxの最適な整数値を見つけるように「強制」する方法はありますか?
ありがとうございました
目的関数にx1、x2、x3、x4を含むlinprogコードがあります。
私が得た結果は、次の形式で値を示します。
x =
6.6667
0.0420
0
0
xは特定のテクノロジーのユニット数を表すため、モデル化しようとしている場合は物理的に意味がありません。したがって、たとえば0.0420は実際には存在しません。とにかく、linprogにxの最適な整数値を見つけるように「強制」する方法はありますか?
ありがとうございました
これは整数計画法と呼ばれ、一般に NP 困難です。linprog
これは、まったく異なる、はるかに難しい問題であるため、 でカバーされていません。
Stack Overflow about Integer Programming からの関連する質問 (重複ではありません) を次に示します。
混合整数計画法の使用を検討する必要があります (linprog の線形計画に「x integer」などの「整数制約」を追加すると、混合整数計画法が得られます)。
率直に言って、「無料」のScipまたは商用製品であるが小規模なインスタンス用の無料試用版を提供するGamsを使用することをお勧めします。
混合整数計画法と対応するソルバーに関する詳細な投稿は、[scicomp][3] にあります。
[3]: https://scicomp.stackexchange.com/questions/2679/objects-in-buckets-assignment-optimization-problem "scicomp".