我试图对一个系统组件的操作进行建模,该组件将有两种操作模式,我们称它们为1和2,再加上空闲模式0连续变量块在混合整数线性编程中具有相同的值
怠速没有限制,但每个操作模式将持续正好3个时间序列点,所以x_ {i} = 1意味着x_ {i + 1} = x_ {i + 2} = 1(无法发布图像,请使用下面的方程中的链接) operation mode 1
同样适用于操作模式2
例如。 011102220是有效的,但是01110220不是。
111111或222222无效,但这是在其他资源相关约束(系统将没有足够的资源来操作超过3个时间系列点)时处理的,所以只要涉及到在变量数组中强制三个连续的1或2s是地址,应该没问题。
由于提前,
感谢您的快速回复! 你能详细介绍一下你的代码的第二块吗? !start_block v X [x]部分是否使start_block [x]为0以指示X中的三个连续的1? – BeWater
不,它说:如果start_block [x] == 1 - >在x的pos x,x + 1,x + 2处将会有1。因此,它取决于您的剩余模型如何合并它(一般流程是:start-block意味着X上的东西;因此可能start_block是在其余模型中使用的变量)。在代码块中,只有最后一部分是相关的。上面的两个模块只是为了显示它来自哪里。 – sascha
如果您需要某些其他方向的效果,您可以始终对其进行建模(例如,从X到start_block)。但对于至少3个大小的这种特殊情况,这个方向非常实用。 – sascha