我是Python中CP问题和OR-Tools方面的新手,我想做以下工作:
# declare variables
for i in range(I):
for k in range(K):
x[i,k]=solver.IntVar(0,N,"x %i %i " % (i,k))
#constraints
solver.Add(CustomFunction[(x[i,k])] == 1) # only consider the values of x[i,k] evaluated in CustomFunction is equal to 1
但是,在评
我正在尝试添加一个约束,它指定在优化过程中,求解器必须在设置的持续时间内选择u的值,并且只能在该设置的时间量之后切换。例如,假设我有一个机械设备,它每10秒只能切换一次输入值。然后,我希望优化器考虑到这一点。我只需将代码附加在这里:
for it_i in range(0, N-1, equivalence_samples):
print("N: {}".format(N))
for it_j in range(0, equivalence_samples - 1):
if (
我正在处理一个类似于的混合问题
我有这个约束,以确保生产的数量是所需的。
prob += lpSum([KG[i] * deposit_vars[i] for i in deposit]) == 64, "KGRequirement"
但是,我还需要对最小值加上另一个约束,这与零不同,这是因为我不方便拿一种成分的0.002KG,我必须服用0或至少2公斤,因此有效的情况是0,2,2.3,6,3.23。
我试着这样做:
for i in deposit:
prob += (KG[i] * deposit_vars[i] == 0) or (TM[i] * deposit_v
你知道有什么工具可以用来比较约束(不仅仅是数学上的)吗?用例子来解释会更容易:
A)简单示例
C1: x < 0 && y * y < x
C2: x < 0 && y * y < x - 1
我想知道C2是否比C1更强大,确实如此。也就是说,(x,y) of C2也在C1中。
B)复杂示例
C1: x > 0 && y > 0
C2: x > 0
C2比C1弱,因为它不包含对y的约束。
我可以试着手写一些东西,但我不认为这是一个解决方案。我知道解决约束的问题是无法决定的,但我想知道在这个方向上已经做了什