Bài toán lập kế hoạch logistics 2
Bạn tiếp tục tư vấn cho một nhà sản xuất lò nướng nhà bếp để lập kế hoạch logistics. Lần này, bạn đang cố gắng xây dựng kế hoạch cho sáu tháng tới (Tháng 1–Tháng 6). Vẫn có hai kho hàng (New York và Atlanta), và bốn khu vực khách hàng (Đông, Nam, Trung Tây, Tây). Chi phí vận chuyển từ mỗi kho đến từng khu vực khách hàng được liệt kê trong bảng dưới đây. Mục tiêu của bạn là xác định số lô hàng từ mỗi kho đến các khách hàng sao cho tổng chi phí thấp nhất.
| Khách hàng | New York | Atlanta |
|---|---|---|
| Đông | $211 | $232 |
| Nam | $232 | $212 |
| Trung Tây | $240 | $230 |
| Tây | $300 | $280 |
Một dictionary Python tên là costs chứa các chi phí của mô hình, cùng ba danh sách months, warehouse và customers đã được tạo sẵn cho bạn. costs đã được in ra để bạn xem, bạn cũng có thể khám phá các danh sách trong console. Ngoài ra, mô hình đã được khởi tạo sẵ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
- Định nghĩa các biến quyết định trong mô hình bằng cách dùng list comprehension để lặp qua các danh sách
months,warehousevàcustomersnhằm tạo một danh sách các khóa. Dùng danh sách khóa đó vớiLpVariable.dicts()để định nghĩa các biến cần thiết. - Định nghĩa hàm mục tiêu bằng cách cộng tất cả chi phí vận chuyển từ một kho và khách hàng cụ thể trong sáu tháng.
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.
# Define decision variables
key = [(m, w, ____) for m in months for w in warehouse for c in customers]
var_dict = LpVariable.dicts('num_of_shipments',
key,
lowBound=____, cat=____)
# Use the LpVariable dictionary variable to define objective
model += lpSum([costs[(w, c)] * ____[(____, ____, ____)]
for m in months for w in warehouse for c in customers])