我们如何才能在 ampl 中制作数千集?

How we can make thousands of set in ampl?

我想知道是否有办法在 ampl 中为以下问题定义集合?!

我想制作一个参数 X 为 n 维的模型。它是关于家庭中每个人的信息。比如年龄,工作,... 现在我有 1000 个家庭,我想为每个家庭定义一个参数,其中包含每个 person.For 信息 X 例如,如果我有一个家庭,我可以定义:

set G,  default{1..p};
set F,  default{1..t}; #number of family
set K, within G cross F;
param X{K};

在上面的例子中,X显示了家庭中每个人的信息。

如果我有1000户人家呢?如果我想用我的手定义1000套就没有意义了!

您可以在一个集合上索引另一个集合;请参阅 AMPL book 的第 6.5 节。

附带说明一下,我建议您为每条信息(年龄、工作等)创建单独的参数,而不是将它们全部包含在一个参数中 X.