30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
OR1_03_IPmodeling.pptx
1. Introduction I P formulation Facility location Machine scheduling Vehicle routing
O R I: Integer Programming 1 / 45
Operations Research I:
Models & Applications
Integer Programming
Bui Trung Hiep
The Faculty of Business Administration
University of Economics – The University of Danang
Vận trù học I:
Mô hình và Ứng dụng
Quy hoạch nguyên
2. Introduction I P formulation Facility location Machine scheduling Vehicle routing
Road map
Giới thiệu về Quy hoạch nguyên.
Xây dựng mô hình Quy hoạch nguyên.
Bài toán xác định vị trí cơ sở.
Bài toán thiết lập lịch trình cho máy móc.
Bài toán thiết lập lộ trình vận tải.
O R I: Integer Programming 2 / 45
Introduction to integer programming.
Integer programming formulation.
Facility location problems.
Machine scheduling problems.
Vehicle routing problems.
3. Introduction I P formulation Facility location Machine scheduling Vehicle routing
Integer programming
We have worked with LPs. In some cases, variables must only take integer values.
The subject of formulating and solving models with integer variables is Integer Programming (IP).
An IP is typically a linear IP (LIP).
If the objective function or any functional constraint is nonlinear, it is a nonlinear IP (NLIP).
We will focus on linear IP.
O R I: Integer Programming 3 / 45
Quy hoạch nguyên
Chúng ta đã biết Mô hình tuyến tính. Sẽ có trường hợp mà một số biến chỉ nhận giá trị nguyên.
Xây dựng và giải quyết các Mô hình nguyên được gọi là Quy hoạch nguyên.
Mô hình nguyên về bản chất cũng là một Mô hình nguyên, tuyến tính (LIP).
Nếu hàm mục tiêu và các ràng buộc không tuyến tính thì đó là một Mô hình nguyên, phi
tuyến tính (NLIP).
Chúng ta sẽ tập trung vào Mô hình nguyên, tuyến tính.
4. Introduction I P formulation Facility location Machine scheduling Vehicle routing
Lập lịch trình nhân sự - Personnel scheduling (again)
United Airline đã phát triển một mô hình tuyến tính để xác định số lượng lao động
tại mỗi vị trí dịch vụ.
Vấn đề của Taco Bell cũng tương tự:
Taco Bell có hơn 6.500 nhà hàng khắp nước Mỹ.
Vấn đề: Cần bao nhiêu lao động/mỗi ca ở từng nhà hàng?
Taco Bell đã phát triển một Mô hình nguyên để giải quyết bài toán.
Tại sao không dùng Mô hình tuyến tính?
Số lao động tại mỗi nhà hàng thường không quá nhiều, vì vậy nếu dùng Mô
hình tuyến tính và làm tròn số Nghiệm tối ưu thì sẽ tạo ra kết quả không
chính xác.
13 triệu $ được tiết kiệm mỗi năm.1
O R I: Integer Programming 4 / 45
1 H u e t e r, J., & Swart, W . (1998). A n Integrated Labor-M an a gem en t System for Taco Bell. Interfaces, 28(1), 75-91.
5. Introduction I P formulation Facility location Machine scheduling Vehicle routing
Lựa chọn lộ trình (Route selection)
Waste Management Inc. vận hành một hệ thống thu gom rác tái chế với 293 bãi rác, 16
nhà máy chuyển hóa rác thành năng lượng, 72 nhà máy chuyển hóa gas thành năng
lượng, 146 nhà máy tái chế, 346 trạm trung chuyển và 435 điểm thu gom.
20.000 lộ trình cần được thực hiện mỗi ngày.
Cách xác định lộ trình?
Thiết kế một mạng lưới với các điểm (nodes) và cung đường (edges).
Mỗi điểm có giá trị (binary ) bằng: 1 nếu phải đi qua và 0 nếu ngược lại.
Các ràng buộc phải đảm bảo tạo nên được một lộ trình qua tất cả các điểm
được chọn.
Một mô hình nguyên đã được xây dựng và giúp công ty tiết kiệm 498 triệu $
chi phí vận hành qua 5 năm.2
O R I: Integer Programming 5 / 45
2 S ah oo , S., K i m , S., K i m , B., K r aas , B., & Pop ov , A. (2005). Routi n g O p t i m i z a t i o n for W as t e M an a g e m e n t . Interfaces, 35(1), 24-36.
6. Introduction I P formulation Facility location Machine scheduling Vehicle routing
O R I: Integer Programming 6 / 45
Road map
Giới thiệu về Quy hoạch nguyên.
Xây dựng mô hình Quy hoạch nguyên.
Bài toán xác định vị trí cơ sở.
Bài toán thiết lập lịch trình cho máy móc.
Bài toán thiết lập lộ trình vận tải.
Introduction to integer programming.
Integer programming formulation.
Facility location problems.
Machine scheduling problems.
Vehicle routing problems.
7. Introduction I P formulation Facility location Machine scheduling Vehicle routing
Mô tả bài toán cái túi truyền thống (classic knapsack problem).
Cái túi có thể chứa tối đa 10 kg.
Có 4 vật dụng cần được chọn để đựng trong túi:
Cần tối đa hoá giá trị các vật dụng để cất giữ vào túi nhưng không quá 10 kgs.
Mô hình như sau:
Vật dụng 1 2 3 4
Giá trị ($) 16 22 12 8
Khối lượng (kg) 5 7 4 3
O R I: Integer Programming 7 / 45
Bài toán cái túi (The knapsack problem)
8. Introduction I P formulation Facility location Machine scheduling Vehicle routing
Cách thức tạo ràng buộc để lựa chọn đúng yêu cầu
Quy hoạch nguyên cho phép thực hiện một số nguyên tắc lựa chọn.
Điều kiện Ít nhất / Nhiều nhất:
Chọn ít nhất một vật trong các vật 1, 2 và 3: x1 + x2 + x3 ≥ 1.
Chọn tối đa hai vật trong các vật 1, 2, và 3: x1 + x2 + x3 ≤ 2.
Điều kiện Hoặc:
Chọn vật 1 hoặc vật 2: x1 + x2 ≥ 1.
Chọn vật 2; hoặc lựa chọn hai vật 3 và vật 4 cùng nhau: 2x2 + x3 + x4 ≥ 2.
Điều kiện Nếu-thì (If-else):
Nếu chọn vật 2 thì phải chọn vật 3: x2 ≤ x3.
Nếu vật 1 được chọn thì không chọn vật 3 và vật 4: 2(1 − x1) ≥ x3 + x4.
O R I: Integer Programming 8 / 45
9. Introduction I P formulation Facility location Machine scheduling Vehicle routing
Sử dụng kỹ thuật tương tự, chúng ta có thể áp dụng để chọn Ràng buộc để thoả mãn.
Giả sử, chỉ cần thoả mãn một trong hai điều kiện: 𝑔1 𝑥 ≤ 𝑏1 hoặc 𝑔2 𝑥 ≤ 𝑏2
Giải pháp: Cần đặt một biến mới
z =
0 𝑛ế𝑢 𝑔1 𝑥 ≤ 𝑏1
1 𝑛ế𝑢 𝑔2 𝑥 ≤ 𝑏2
Với Mi là cận trên của hàm ràng buộc (LHS) thứ i, chúng ta có thể chuyển điều kiện lựa
chọn thành 2 ràng buộc sau:
𝑔1 𝑥 − 𝑏1 ≤ 𝑀1𝑧
𝑔2 𝑥 − 𝑏2 ≤ 𝑀2(1 − 𝑧)
O R I: Integer Programming 9 / 45
Cách thức tạo ràng buộc để lựa chọn đúng yêu cầu
10. Introduction I P formulation Facility location Machine scheduling Vehicle routing
Giả sử cần thoả mãn hai trong ba ràng buộc: 𝑔𝑖 𝑥 ≤ 𝑏𝑖 với i = 1, 2, 3
Giải pháp: Cần đặt một số biến mới
zi =
1 𝑛ế𝑢 𝑔𝑖 𝑥 ≤ 𝑏𝑖
0 𝑛ế𝑢 𝑔𝑖 𝑥 > 𝑏𝑖
Với Mi là cận trên của hàm ràng buộc (LHS) thứ i, chúng ta có thể chuyển điều kiện lựa
chọn thành các ràng buộc sau:
𝑔𝑖 𝑥 − 𝑏𝑖 ≤ 𝑀𝑖 1 − 𝑧𝑖 ∀𝑖 = 1, … , 3
𝑧1 + 𝑧2 + 𝑧3 ≥ 2
O R I: Integer Programming 10 / 45
Cách thức tạo ràng buộc để lựa chọn đúng yêu cầu
11. Introduction I P formulation Facility location Machine scheduling Vehicle routing
Ràng buộc chi phí cố định (Fixed-charge constraints)
Có n nhà máy, 1 thị trường và 1 sản phẩm.
Ki là công suất của nhà máy i.
Ci là chi phí sản xuất một đơn vị sản phẩm tại nhà máy i.
D là nhu cầu của sản phẩm.
Si là chi phí thiết đặt sản xuất của nhà máy i.
Mục tiêu: Đáp ứng nhu cầu với chi phí thấp nhất.
O R I: Integer Programming 11 / 45
12. Introduction I P formulation Facility location Machine scheduling Vehicle routing
O R I: Integer Programming 12 / 45
Công thức cơ bản
Đặt xi là mức sản xuất ở nhà máy i, i = 1, ..., n,
yi =
1 nếu nhà máy i có sản xuất
0 nếu ngược lại
Hàm mục tiêu:
Giới hạn công suất:
Đáp ứng nhu cầu:
13. Introduction I P formulation Facility location Machine scheduling Vehicle routing
Làm thế nào để biết có phát sinh chi phí thiết đặt sản xuất nhà máy i?
Nếu xi > 0 thì yi =1
Nếu xi = 0, yi có thể bằng 1 hoặc bằng 0.
Tại sao SOLVER sẽ cho giá trị yi = 0 nếu xi = 0?
Vậy, mối quan hệ giữa xi và yi : xi ≤ Ki yi với i = 1, ..., n.
Các ràng buộc không âm (nonnegative) và nhị phân (binary) của các biến:
xi ≥ 0, yi ∈ {0,1} với ∀i = 1, ..., n.
O R I: Integer Programming 13 / 45
Chi phí thiết đặt sản xuất
14. Introduction I P formulation Facility location Machine scheduling Vehicle routing
Ràng buộc xi ≤ Kiyi được gọi là Ràng buộc chi phí cố định.
Một ràng buộc chi phí cố định thường có dạng: x ≤ My.
Cả x và y đều là Biến
Biến y ∈ {0,1} được xác định bởi biến x.
M là biên trên (upper bound) của biến x.
Nếu x là biến Nhị phân (binary) thì Ràng buộc trở thành: x ≤ y
M là biên trên của x.
Trong ví dụ, Ki là giới hạn công suất nhà máy i và chính là biên trên của x.
Nếu không có giới hạn công suất thì sao?
O R I: Integer Programming 14 / 45
Ràng buộc chi phí cố định (Fixed-charge constraints)
15. Introduction I P formulation Facility location Machine scheduling Vehicle routing
O R I: Integer Programming 15 / 45
Road map
Giới thiệu về Quy hoạch nguyên.
Xây dựng mô hình Quy hoạch nguyên.
Bài toán xác định vị trí cơ sở.
Bài toán thiết lập lịch trình cho máy móc.
Bài toán thiết lập lộ trình vận tải.
Introduction to integer programming.
Integer programming formulation.
Facility location problems.
Machine scheduling problems.
Vehicle routing problems.
16. Introduction I P formulation Facility location Machine scheduling Vehicle routing
Một câu hỏi phổ biến trong quản trị là: “Xây dựng cơ sở ở đâu?”
Vị trí mở: cửa hàng tiện lợi / nhà kho / trung tâm phân phối?
Vị trí xây dựng: nhà xưởng / trạm cứu hoả / trạm cảnh sát / nhà máy điện?
Một câu hỏi tương tự khác là: “Phân bổ nguồn lực hữu hạn vào đâu?”
Vị trí bố trí xe cứu hoả / lính cứu hoả / cảnh sát?
Tất cả những vấn đề đó đều liên quan Bài toán xác định vị trí cơ sở (facility location
problems).
Môn học này chỉ tập trung vào Bài toán xác định vị trí cơ sở rời rạc (discrete
facility location problems): Lựa chọn một tập hợp con từ tập hợp các vị trí xác định.
O R I: Integer Programming 16 / 45
Bài toán xác định vị trí cơ sở (Facility location problems)
17. Introduction I P formulation Facility location Machine scheduling Vehicle routing
Thông thường, sẽ có một số Điểm nhu cầu (demand nodes) và một số Vị trí
tiềm năng (potential locations).
Xây dựng cơ sở tại một số vị trí để đáp ứng nhu cầu.
VD: Xây trung tâm phân phối để giao hàng cho các cửa hàng bán lẻ.
VD: Xây các trạm cứu hoả để bảo vệ một số thành phố, khu vực,...
Bài toán xác định vị trí cơ sở thường được phân loại dựa trên Hàm mục tiêu.
Trong môn học này, chúng ta sẽ làm quen với 03 loại bài toán xác định vị trí cơ sở:
Bài toán bao phủ tập hợp (Set covering problems): Tối thiểu hoá số cơ sở cần
xây dựng để đáp ứng toàn bộ nhu cầu.
Bài toán bao phủ tối đa (Maximum covering problems): Xây dựng một số
lượng xác định các cơ sở để đáp ứng nhiều điểm nhu cầu nhất có thể.
Bài toán vị trí chi phí cố định (Fixed charge location problems): Tìm ra sự cân
bằng giữa lợi ích của việc đáp ứng nhu cầu và chi phí xây dựng các cơ sở.
O R I: Integer Programming 17 / 45
Bài toán xác định vị trí cơ sở (Facility location problems)
18. Introduction I P formulation Facility location Machine scheduling Vehicle routing
Có một tập hợp các Điểm nhu cầu I và một tập hợp các Điểm cung ứng J.
Khoảng cách (thời gian di chuyển) giữa các Điểm nhu cầu và Điểm cung ứng là:
di j >0 với i∈I, j∈J
Mức dịch vụ (service level) s > 0
Điểm nhu cầu i được phục vụ nếu khoảng cách từ nó đến Điểm cung ứng j: di j < s.
Câu hỏi: Cách bố trí ít Điểm cung ứng nhất mà phục vụ được tất cả các Điểm nhu cầu?
O R I: Integer Programming 18 / 45
Bài toán bao phủ tập hợp (Set covering problems)
19. Introduction I P formulation Facility location Machine scheduling Vehicle routing
O R I: Integer Programming 19 / 45
Bài toán bao phủ tập hợp (Set covering problems)
Định nghĩa tham số: a i j = 1 nếu d i j < s hoặc a i j = 0 nếu ngược lại (I ∈ I, j ∈ J).
Định nghĩa các biến:
x j = 1 nếu bố trí cơ sở ở Điểm cung ứng j ∈ J hoặc x j = 0 nếu ngược lại
Mô hình toán:
Mô hình toán (có trọng số):
20. Introduction I P formulation Facility location Machine scheduling Vehicle routing
Có một tập hợp các Điểm nhu cầu I và một tập hợp các Điểm cung ứng J.
Cho biết: Khoảng cách: di j , Mức phục vụ: s và hệ số bao phủ (covering coefficient) ai j .
Chúng ta được phép xây dựng tối đa p ∈ N cơ sở (Điểm cung ứng).
Câu hỏi: Các để chọn vị trí xây dựng p cơ sở để đáp ứng nhiều nhu cầu nhất có thể?
O R I: Integer Programming 20 / 45
Bài toán bao phủ tối đa (Maximum covering problems)
21. Introduction I P formulation Facility location Machine scheduling Vehicle routing
O R I: Integer Programming 21 / 45
Đặt x j =1 nếu bố trí cơ sở ở Điểm cung ứng j ∈ J hoặc x j =0 nếu ngược lại.
Đặt y i =1 nếu Điểm nhu cầu được đáp ứng bởi bất cứ Điểm cung ứng nào hoặc y i=0
nếu ngược lại.
Mô hình toán học như sau:
Mô hình toán (với trọng số):
Bài toán bao phủ tối đa (Maximum covering problems)
22. Introduction I P formulation Facility location Machine scheduling Vehicle routing
Có một tập hợp các Điểm nhu cầu I và một tập hợp các Điểm cung ứng J.
Tại điểm nhu cầu i, quy mô nhu cầu là h i > 0.
d i j: Chi phí vân chuyển một đơn vị sản phẩm từ Điểm cung ứng j đến Điểm nhu cầu i.
fj: là chi phí cố định để xây dựng Điểm ung ứng j.
Câu hỏi: Cách bố trí các Điểm cung ứng để tối thiểu hoá chi phí giao
hàng và chi phí xây dựng?
O R I: Integer Programming 22 / 45
Bài toán vị trí chi phí cố định (Fixed charge location problems)
23. Introduction I P formulation Facility location Machine scheduling Vehicle routing
Đặt x j =1 nếu bố trí cơ sở ở Điểm cung ứng j ∈ J hoặc x j =0 nếu ngược lại.
Đặt y i j =1 nếu Điểm nhu cầu i ∈ I được đáp ứng bởi Điểm cung ứng j ∈ J hoặc y i j= 0 nếu ngược lại.
Tại điểm nhu cầu i, quy mô nhu cầu là hi > 0.
d i j: Chi phí vân chuyển một đơn vị sản phẩm từ Điểm cung ứng j đến Điểm nhu cầu i.
fj: là chi phí cố định để xây dựng Điểm ung ứng j.
Mô hình toán học như sau:
O R I: Integer Programming 23 / 45
Bài toán vị trí chi phí cố định (Fixed charge location problems)
24. Introduction I P formulation Facility location Machine scheduling Vehicle routing
Mô hình trên là phiên bản không giới hạn công suất: Một Điểm cung ứng có khả năng đáp ứng
mọi quy mô nhu cầu.
Phiên bản không giới hạn công suất gọi là Uncapacitated Facility Location problem
(UFL).
Nếu Điểm cung ứng j có công suất tối đa là Kj >0 thì cần phải thêm ràng buộc:
Phiên bản có giới hạn công suất gọi là Capacitated Facility Location problem (CFL).
O R I: Integer Programming 24 / 45
Bài toán vị trí chi phí cố định (Fixed charge location problems)
25. Introduction I P formulation Facility location Machine scheduling Vehicle routing
GHI NHỚ
Khi nào sử dụng Bài toán bao phủ tập hợp?
Khi cần phục vụ nhiều Điểm nhu cầu nhất có thể. Ví dụ: Trạm cứu hoả, trạm cảnh sát.
Khi nào sử dụng Bài toán bao phủ tối đa?
Khi ngân sách bị giới hạn. Ví dụ: Mạng lưới cung cấp dịch vụ viễn thông.
Khi nào sử dụng Bài toán vị trí chi phí cố định?
Khi chi phí phụ thuộc vào khoảng cách. Ví dụ: Các trung tâm phân phối hàng hoá.
O R I: Integer Programming 25 / 45