Bài tập về ràng buộc logic
Khách hàng của bạn đã đặt sáu sản phẩm sẽ được giao trong tháng tới. Bạn sẽ cần vận chuyển nhiều chuyến xe tải để giao hết các sản phẩm. Xe tải của bạn có giới hạn trọng lượng là 25.000 lbs. Vì lý do dòng tiền, bạn muốn gửi tổ hợp sản phẩm sinh lợi nhất có thể xếp vừa trên xe tải.
| Product | Weight (lbs) | Profitability ($US) |
|---|---|---|
| A | 12,583 | 102,564 |
| B | 9,204 | 130,043 |
| C | 12,611 | 127,648 |
| D | 12,131 | 155,058 |
| E | 12,889 | 238,846 |
| F | 11,529 | 197,030 |
Hai dictionary Python weight và prof, cùng danh sách prod, đã được tạo sẵn cho bạn, chứa trọng lượng, lợi nhuận và tên của từng sản phẩm. Bạn có thể khám phá chúng trong bảng điều khiển.
Bài tập này là một phần của khóa học
Phân tích Chuỗi Cung Ứng với Python
Hướng dẫn bài tập
- Thêm ràng buộc để đảm bảo tổng trọng lượng của xe tải nhỏ hơn hoặc bằng 25.000 lbs.
- Thêm ràng buộc để mô hình chọn, tối đa, chỉ một sản phẩm trong số D, E và F.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# Initialized model, defined decision variables and objective
model = LpProblem("Loading Truck Problem", LpMaximize)
x = LpVariable.dicts('ship_', prod, cat='Binary')
model += lpSum([prof[i] * x[i] for i in prod])
# Define Constraint
model += lpSum([weight[i] * x[i] for i in prod]) ____ ____
model += ____
model.solve()
for i in prod:
print("{} status {}".format(i, x[i].varValue))