Pulp: Thêm giới hạn vào LpVariable.dicts ()
Sep 02 2020
Giả sử tôi có từ điển này:
cars = ["car1","car2","car3","car4","car5"]
x = LpVariable.dicts("car",cars, cat='Integer', lowBound=0, upBound=800)
Có cách nào để thêm lowBound và upBounds khác nhau cho mỗi chiếc xe không, xin vui lòng?
Ghi chú
Phiên bản mã dễ dàng trông như thế này:
car1 = LpVariable("car1", 0, 40)
car2 = LpVariable("car2", 0, 1000)
Xin lưu ý rằng xe 1 upBound là 40 và xe 2 upBound là 1000.
Trả lời
1 test1500 Sep 02 2020 at 20:18
Cuối cùng, tôi đã hoàn thành nó, bằng cách sử dụng đoạn mã tuyệt vời của anh ấy: Làm cách nào để tạo các biến và ràng buộc PuLP mà không sử dụng tệp thi hành? Cảm ơn rất nhiều, DSM, người anh em!
prob = LpProblem("problem", LpMaximize)
# Setting LP variables
lpVars =["car1","car2","car3"]
upbounds=[40,80,30]
xs = [LpVariable("car{}".format(i+1), lowBound = 0, upBound = upbounds[i], cat='Integer' ) for i in range(len(lpVars))]
# add objective
margin = [3,2,3]
total_prof = sum(x * value for x,value in zip(xs, margin))
prob += total_prof
# add constraint
labour = [2,1,4]
total_labour = sum(x * w for x,w in zip(xs, labour))
prob += total_labour <= 100
# Solve the problem
prob.solve()
Bước tiếp theo là lấy các biến mảng từ ứng dụng giao diện người dùng (tăng, lợi nhuận, lao động, v.v.), cảm ơn bạn, anh bạn, hãy xem github của tôi