from mip import Model, xsum, minimize, INTEGER
import numpy as np
def optModel(a, b, c):
model = Model("transportation")
x = [[model.add_var(var_type=INTEGER) for j in range(len(b))] for i in range(len(a))]
model.objective = minimize(xsum(x[i][j] * c[i][j] for i in range(len(a)) for j in range(len(b))))
for i in range(len(a)):
model += xsum(x[i][j] for j in range(len(b))) == a[i]
for j in range(len(b)):
model += xsum(x[i][j] for i in range(len(a))) == b[j]
model.verbose = 0
model.optimize()
resultLis = []
lis = []
for i in range(len(a)):
for j in range(len(b)):
lis.append(x[i][j].x)
resultLis.append(lis)
lis = []
print("最佳运输方案:", np.array(resultLis))
print("最小运费:", model.objective_value)
if __name__ == '__main__':
a = [7, 4, 9]
b = [3, 6, 5, 6]
c = [[3, 11, 3, 10], [1, 9, 2, 8], [7, 4, 10, 5]]
optModel(a, b, c)
运输问题
最新推荐文章于 2022-03-18 11:59:54 发布