LocalSolver快速入门指南(连载二十一) ---- 列表、集合变量1

 

列表和集合变量(List /Set variables

 

除了布尔型,整数型和浮点型以外,localsolver还提供了两个更高层次的决策变量,即列表变量(list)和集合变量(sets)。

Creation operator(创建运算符)

列表(List)和集合(set)运算符允许定义一个决策变量,其值是值域是[0n-1]的整数集合,其中n是运算符的唯一操作数。它们不一定包含[0n-1]中的所有值,并且列表或集合中的所有值都是两两不同的、非负的,并且严格小于n。请注意,操作数必须是一个常量、严格的正整数。

例如,以下行创建了一个域大小为10的列表决策变量:

x <- list(10);
 

 

列表和集合之间的区别在于,列表保持其元素的顺序。从数学上讲,列表是[0n-1]的子集的排列,集合是[0n-1]的子集。

设置和检索值

如上所述,列表或集合的值是整数的集合。这个值是通过LSP语言中的语法x.valueLocalSolverapi中的getCollectionValue()方法获得的。它返回LSCollection类的对象,可以通过以下方法读取和修改:countgetclearadd方法。

修改此LSCollection对象将修改相应列表或集合变量的值。下面的代码说明了这些方法的用法:

println(x.value.count()); // 集合的当前大小
x.value.clear(); // 空列表
x.value.add(3); // 如果x被定义为list(10),则添加一个值,如果该值不在区间[0,9]中,则抛出一个错误
x.value.add(5); //添加一个值,如果该值已经包含在列表中,则抛出一个错误
for[e in x.value] println(e); //打印列表的内容
println(x.value); // 打印列表的内容,本例中为“`[35]”

未完待续,任何问题请联系LocalSolver中国区独家代理商 无锡迅合信息科技有限公司开发人员。

下一节: 列表变量、集合变量的操作符!

Guess you like

Origin blog.csdn.net/qq_31243247/article/details/117879189