我有一个需要在 Python 中输出的 MIP 问题。到目前为止,请参阅以下尝试。我只需要一些可以为我指明正确方向的建议。
digits = [("00"+str(x))[-3:] for x in range(1, 10)]
var_1 = 2
var_2 = 1
var_3 = 3
LHS = [5,6,7]
RHS = [100,200,300]
count = 1
for v1 in range(var_1):
for v2 in range(var_2):
for v3 in range(var_3):
print("x"+digits[v1]+digits[v2]+digits[v3]+" - 20 z"+digits[v1]+digits[v2]+digits[v3]+" <= 0")
for v2 in range(var_2):
for v3 in range(var_3):
print("x"+digits[v2]+digits[v3]+" + "+"x" +digits[v2]+digits[v3]+" <= 123")
当前输出:
x001001001 - 20 z001001001 <= 0
x001001002 - 20 z001001002 <= 0
x001001003 - 20 z001001003 <= 0
x002001001 - 20 z002001001 <= 0
x002001002 - 20 z002001002 <= 0
x002001003 - 20 z002001003 <= 0
x001001 + x001001 <= 123
x001002 + x001002 <= 123
x001003 + x001003 <= 123
我的代码没有产生我想要的。这是我希望它产生的输出。
c1: x001001001 - 20 z001001001 <= 0
c2: x001001002 - 20 z001001002 <= 0
c3: x001001003 - 20 z001001003 <= 0
c4: x002001001 - 20 z002001001 <= 0
c5: x002001002 - 20 z002001002 <= 0
c6: x002001003 - 20 z002001003 <= 0
c7: x001001001 + x002001001 <= 123
c8: x001001002 + x002001002 <= 123
c9: x001001003 + x002001003 <= 123
任何帮助,将不胜感激。我需要用来简化编码的任何模块也会有所帮助。我有更多的代码行,其中这些数字的顺序有不同的组合,但如果我能获得体面的知识,那么我应该能够做到。
我还希望能够将此输出打印到文本文件中。最简单的方法是什么?有什么建议么?谢谢