如何使用多个变量查找目标公式?

时间:2019-01-14 15:37:53

标签: python linear pulp

我试图找到一个由变量组成的对象方程,这些变量可以是1、0或-1,结果可以是0、60、90、180。 有没有可以帮助我的工具? 还是我需要找一个数学家来帮助我?

我正在尝试使用纸浆线性编程来解决生产计划问题。 机器的设置时间取决于设置时间之前和之后的项目。 我尝试使用if else语句为计划分配设置时间,但是纸浆线性编程似乎不允许我将if else语句与变量一起使用。 我使用一个简单的减法来指出设置时间前后的项目。

我的一小部分数据如下所示。 从t1到t9安排了三个项目a,b,c。 数据是二进制的,以显示该时隙是否正在处理。

   t0  t1  t2  t3  t4  t5  t6  t7  t8  t9
a   1   1   0   0   0   0   0   0   0   0
b   0   0   0   0   0   1   1   1   1   1
c   0   0   1   1   1   0   0   0   0   0

[[1, 1, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 1, 1, 1, 1, 1],
[0, 0, 1, 1, 1, 0, 0, 0, 0, 0]]

我在设置时间之前和之后搜索项目 减去连续变量。 设置时间之前的项目为1, -1是设置时间之后的项目。

   t0  t1  t2  t3  t4  t5  t6  t7  t8  t9
a   0   1   0   0   0   0   0   0   0   0
b   0   0   0   0   -1  0   0   0   0   1
c   0   -1  0   0   1   0   0   0   0   0

[[0, 1, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, -1, 0, 0, 0, 0, 1],
[0, -1, 0, 0, 1, 0, 0, 0, 0, 0]]

现在我需要计算每种情况的准备时间, 并尽量减少设置时间。

if a == 1 and b == -1 then setup_time == 60
if a == 1 and c == -1 then setup_time == 90
if b == 1 and a == -1 then setup_time == 60
if b == 1 and c == -1 then setup_time == 180
if c == 1 and a == -1 then setup_time == 90
if c == 1 and b == -1 then setup_time == 180
else 0

使用纸浆lp优化器时,我似乎无法使用带变量的if-else语句,因此每种情况下我都需要一个方程式。

任何评论或建议将不胜感激。

谢谢。

0 个答案:

没有答案