Bài tập ràng buộc logic 2
Bạn làm việc tại một trung tâm phân phối vận tải đường bộ và cần quyết định sẽ gửi xe tải đến những địa điểm khách hàng nào trong số 6 địa điểm. Mục tiêu là tối thiểu hóa quãng đường xe tải phải đi.
| Location | Distance |
|---|---|
| A | 86 |
| B | 95 |
| C | 205 |
| D | 229 |
| E | 101 |
| F | 209 |
Một dictionary dist và một list cust đã được tạo sẵn, chứa khoảng cách và tên của từng địa điểm khách hàng. Các dữ liệu đầu vào này đã được in ra console cho bạ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
- Cập nhật các ràng buộc để mô hình chọn ít nhất một địa điểm
- Thêm ràng buộc: nếu chọn địa điểm A thì cũng phải chọn địa điểm D.
- Thêm ràng buộc: nếu chọn địa điểm B thì cũng phải chọn địa điểm E.
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.
model = LpProblem("Loading Truck Problem", LpMinimize)
x = LpVariable.dicts('ship_', cust, cat='Binary')
model += lpSum([dist[i]*x[i] for i in cust])
# Define Constraint
model += ____ + ____ + ____ + ____ + ____ + ____ >= ____
model += ____ - ____ <= ___
model += ____ - ____ <= 0
model.solve()
for i in cust:
print("{} status {}".format(i, x[i].varValue))