MiniZinc决策变量非连续范围
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MiniZinc决策变量非连续范围相关的知识,希望对你有一定的参考价值。
除了编写太多的约束之外,当它不是一个连续的整数序列时,定义数组决策变量范围的最佳方法是什么?
例如:枚举产品= {product_1,product_2,product_3,product_4};
数组[产品] var 0..2:x; // var 0,3,10:y的连续数组[PRODUCTS]; ///非连续的序列和错误
我也尝试使用int的集合
例如int:y_range = 0,1,3;
枚举产品= {product_1,product_2,product_3,product_4};
数组[产品] var 0..2:x; // var y_range的连续数组[PRODUCTS]:y; ///非连续的序列和错误
但没有成功..
答案
MiniZinc允许使用非连续域。你的语法似乎只是犯了一个错误。以下代码有效:
enum PRODUCTS ={product_1,product_2,product_3,product_4};
array [PRODUCTS] of var {0,3,10} : y;
请注意,初始化变量域的非连续集合文字需要大括号({}
)。
以上是关于MiniZinc决策变量非连续范围的主要内容,如果未能解决你的问题,请参考以下文章
如何处理“rpart”中的连续和离散变量 - 使用 R 的决策树?