CP Optimizer中如何为状态函数设置自定义初始值?
修改CP模型中状态函数的初始值
要给stateFunction设置自定义初始值(比如42),核心是手动在过渡时间列表的最前端添加一个指向时间0的初始值项。
具体操作
- 原状态函数定义:
stateFunction f(a in aRange) with TransitionTimes[a] - 调整
TransitionTimes[a]的结构,在所有现有过渡项前插入42 -> 0这一项,确保状态函数在时间0之前的初始值被覆盖为42。
调整后生成的状态函数输出将符合预期:
id,value 1,stepwise{ 42 -> 0; 1 -> 3; -1 -> 8; 1 -> 10; -1 }
注意事项
如果TransitionTimes[a]是通过数组、列表或集合形式定义的,直接在集合头部添加初始值与时间0的键值对即可(例如IBM ILOG CPLEX中,可在过渡时间数组开头加入(42, 0)这样的元素,语法需匹配你使用的CP工具链)。
内容的提问来源于stack exchange,提问作者Hajo Terbrack
相关产品推荐
相关产品推荐

