Python GEKKO 赋值问题(线性规划)

问题描述 投票:0回答:1

稍后我会添加一堆约束,但现在我想做的就是定义 16 个常量资源(唯一的整数),并将它们分配给网格。我创建了一个 4 x 4 的

Var
数组,以及我的 16 个
Const

我正在努力指定方程式,这些方程式表示每个常量的值都应分配给单元格,并且每个单元格都应该是唯一的。

可能是一个非常微不足道的问题,但我在这个问题上停留的时间比我承认的要长。这对我来说是新的。当我尝试以不同的方式比较单元格时,我得到了一堆不同的错误。毫不奇怪,

==
不会抛出错误。

我知道对此没有唯一的解决方案。稍后添加进一步的限制将为我缩小范围。目前,任何使单元格采用 0 到 15(含)之间的所有值的分配都是有帮助的。

from gekko import GEKKO

m = GEKKO()  # Initialize gekko

squares = []

for i in range(0,16):
    squares.append(m.Const(i))

grid = m.Array(m.Var, (4,4), integer=True)

# here I want to add my constraints

m.solve(disp=False)
print(grid)
python linear-programming gekko
1个回答
0
投票

可以使用方程式来赋值:

from gekko import GEKKO

m = GEKKO()  # Initialize gekko

squares = []

for i in range(16):
    squares.append(m.Const(i))

grid = m.Array(m.Var, (4,4), integer=True)

k = 0
for i in range(4):
    for j in range(4):
        m.Equation(grid[i,j]==squares[k])
        k+=1

m.solve(disp=False)
print(grid)

创建唯一性更具挑战性,在有关创建数独求解器的相关问题中进行了讨论:如何在 Gekko 中强制使用“!=”(编写数独求解器)

© www.soinside.com 2019 - 2024. All rights reserved.