在cplex / opl中初始化一个集合

时间:2013-06-27 15:47:57

标签: javascript cplex opl

我目前正致力于在cplex中实施的多容量批量调整问题的基础上建立买方和供应商之间的协商。 在一个小场景中,买方正在生产1-4项,而供应商则负责提供5-7项。

我想要做的是创建三组:

{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循环以不同方式初始化集合吗?

如上所述,最终我需要三组,其中前四项分配给买方操作,项目5-7分配给供应,然后是一组关于所有项目的操作。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

我会将模型和数据文件分开以使事情变得更容易。 在模型文件中,我将:

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

在数据文件中,我将:

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

如果有大量数据,初始化集合的最佳方法是使用数据库。你展示的内容也应该有效。