1

私は現在、cplex で実装されているマルチキャパシティテッド ロット サイジング問題に基づいて、バイヤーとサプライヤー間の交渉を確立することに取り組んでいます。小規模なシナリオでは、バイヤーはアイテム 1 ~ 4 を生産し、サプライヤはアイテム 5 ~ 7 を供給する責任があります。

私がやりたいことは、3つのセットを作成することです:

{int} buyeroperations

{int} supplieroperations

{int} operations = buyerops union supplierops

私の質問は、cplex/opl にかなり慣れていないため、モデルでそれらを操作するために、それぞれのアイテムでセットを初期化する方法です。次の方法で内部的に初期化できると思います:

{int} buyeroperations = asSet(1..4) 

{int} supplieroperations = asSet(5..7) 

{int} operations = buyeroperations union supplieroperations

私は正しいですか?ただし、スクリプトと for ループを介してセットを別の方法で初期化できますか?

前述のように、最終的には、最初の 4 つの項目がバイヤーの操作に割り当てられ、項目 5 ~ 7 がサプライヤーの操作に割り当てられ、次にそれらすべてに関する一連の操作を含む 3 つのセットが必要です。

事前に助けてくれてありがとう。

4

1 に答える 1

1

I would separate out the model and data file to make things easier. In the model file, I will have:

{int} buyeroperations = ...;
{int} supplieroperations = ...;
{int} operations = buyeroperations union supplieroperations;

In the data file, I will have:

buyeroperations = [1,2,3,4] // same as [1..4]
supplieroperations = [5,6,7] // same as [5..7]

If there is a lot of data, the best way to initialize sets is with a database. What you showed should work as well.

于 2013-07-20T19:26:34.793 に答える