Bắt đầu ngayBắt đầu miễn phí

Thêm ràng buộc logic trong bài tập tình huống

Tiếp tục nghiên cứu tình huống mô hình Định vị Nhà máy Có giới hạn công suất cho một hãng sản xuất ô tô. Bạn được cung cấp bốn DataFrame của Pandas demand, var_cost, fix_cost, và cap lần lượt chứa nhu cầu theo khu vực (nghìn xe), chi phí sản xuất biến đổi (nghìn $US), chi phí sản xuất cố định (nghìn $US), và công suất sản xuất (nghìn xe). Hai danh sách Python locsize cũng đã được tạo, chứa các địa điểm khác nhau và hai loại công suất nhà máy. Tất cả các biến này đã được in ra bảng điều khiển để bạn xem. Mã để khởi tạo, định nghĩa biến quyết định, tạo hàm mục tiêu và các ràng buộc đã được hoàn thành sẵn 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

Xem khóa học

Hướng dẫn bài tập

  • Thêm một ràng buộc logic sao cho nếu nhà máy công suất cao tại USA được mở thì một nhà máy công suất thấp tại Germany cũng được mở.

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.

# Initialize, Define Decision Vars., Object. Fun., and Constraints
model = LpProblem("Capacitated Plant Location Model", LpMinimize)
loc = ['USA', 'Germany', 'Japan', 'Brazil', 'India']
size = ['Low_Cap','High_Cap']
x = LpVariable.dicts("production_", [(i,j) for i in loc for j in loc],
                     lowBound=0, upBound=None, cat='Integer')
y = LpVariable.dicts("plant_", 
                     [(i,s) for s in size for i in loc], cat='Binary')
model += (lpSum([fix_cost.loc[i,s] * y[(i,s)] for s in size for i in loc])
          + lpSum([var_cost.loc[i,j] * x[(i,j)] for i in loc for j in loc]))
for j in loc:
    model += lpSum([x[(i, j)] for i in loc]) == demand.loc[j,'Dmd']
for i in loc:
    model += lpSum([x[(i, j)] for j in loc]) <= lpSum([cap.loc[i,s]*y[(i,s)] 
                                                       for s in size])

# Define logical constraint
model += ____ - ____ <= ____
Chỉnh sửa và Chạy Mã