You are on page 1of 91

Toán tối ưu: Từ lý thuyết đến ứng dụng thực tế

Hà Minh Hoàng (aka Hoàng Vận Trù)

Nhóm nghiên cứu Tối ưu hóa Các hệ thống lớn


ORLab

0
Mục đích
• Hiểu về vận trù học, tối ưu hóa

• Nắm được các bài toán kinh điển nhất của Vận trù học

• Cách giải các bài toán đơn giản

• Phát hiện các vấn đề cần tối ưu hóa trong thực tế

• Các ứng dụng của toán tối ưu trong thực tế

• Luyện tập tư duy toán: cách mô hình bài toán dưới dạng toán học

• Thực hành lập trình: giải một số bài toán tối ưu sử dụng công cụ AMPL
Đối tượng có thể theo học
• Sinh viên tất cả các khối ngành

• Không nhất thiết cần có kỹ năng lập trình

• Sẽ thuận lợi hơn nếu đã học đại số tuyến tính


Nội dung
• Vận trù học, toán tối ưu là gì?

• Một số bài toán tối ưu hóa kinh điển


○ Bài toán quy hoạch tuyến tính
○ Bài toán cái túi
○ Bài toán lập tuyến đường vận chuyển (vehicle routing problem)
○ Bài toán lập kế hoạch (scheduling problem)
○ Bài toán đóng gói (packing problem)

• Tối ưu hóa trong thực tế


○ Ngành quảng cáo, truyền hình
○ Logistics
○ Quản trị nhân lực

• Hướng dẫn mô hình hóa và giải một số bài toán tối ưu chọn lọc
Ra quyết định ở khắp mọi nơi

• Tìm đường ngắn nhất từ A đến B?

• Nên đầu tư vào đâu, mua cổ phiếu nào để đạt lợi nhuận cao nhất, ít rủi ro nhất?

• Lập lịch làm việc, thời khóa biểu tối ưu cho nhân viên, giáo viên, học sinh

OPERATIONS RESEARCH
→ The art of decision making
→ The science of better
Định nghĩa, các lĩnh vực liên quan

• Operations research (Anh-Anh: operational research) (OR) là ngành học liên quan đến
việc áp dụng các phương pháp phân tích tiên tiến để giúp đưa ra các quyết định tốt
hơn.

• Sử dụng các kỹ thuật của Toán học như mô hình hóa, phân tích thống kê, tối ưu hóa,
vv… vận trù học đưa ra các lời giải tối ưu, hoặc gần tối ưu cho các vấn đề ra quyết định
phức tạp.

• Operations research - Optimization - Operations management - Industrial Engineering

• Một bài toán vận trù học thường gồm ít nhất một hàm mục tiêu và một tập hợp các
ràng buộc.
Lịch sử hình thành
• Hình thành từ trước chiến tranh thế giới lần II, các kĩ thuật của Vận trù học được áp
dụng trong rất nhiều các ngành nghề, lĩnh vực khác nhau.

• https://youtu.be/352W1GzCn6o
Vận trù học trong chiến tranh tại Việt Nam

7
Vậntrùtrù
Vận họchọc tạiNam
tại Việt Việt Nam
GS Hoàng Tụy
Cha đẻ của Lý thuyết Tối ưu toàn cục
Yun Chou → Vận trù

GS Hoàng Tụy và nhà toán học


nổi tiếng Leonid Kantorovich

8
Vậntrùtrù
Vận họchọc tạiNam
tại Việt Việt Nam

“Vận trù” là câu của Trương Lương: “Vận trù ư duy ác chi trung,
quyết thắng ư tiên lý chi ngại”. Vận trù cũng là tham mưu. Bộ đội ta
có nhiều người không học tính toán được nhiều mà làm “vận trù” cũng
khá là nhờ cái này...”.

Chủ tịch Hồ Chí Minh

9
Mạng lưới vận trù học Việt Nam
• Vietnam Operations Research Network (VORN):
https://www.facebook.com/groups/692458818867542
• Thành lập năm 2021 dưới sự bảo trợ của Viện nghiên cứu cấp cao về
Toán
• Gặp gỡ hàng năm (annual meeting)
• Seminar online hàng tháng (thứ 5 đầu tiên trong tháng)
• Các sự kiện khác

10
Operations research laboratory (ORLab)
• Các hướng nghiên cứu chính:
▫ Tối ưu chuỗi cung ứng và các hệ thống công nghiệp: TS. Vũ Đức Minh,
TS. Hà Minh Hoàng, Th.S Nguyễn Minh Anh, Th.S Phạm Hoàng Giang
▫ Thuật toán xấp xỉ và độ phức tạp: PGS. Nguyễn Trung Thành, TS. Phạm
Văn Cảnh
▫ Tối ưu hóa và học máy trong ra quyết định: PGS. Nguyễn Trung Thành,
TS. Hà Minh Hoàng, TS. Tạ Thúy Anh, TS. Dương Thị Kim Huyền, Th.S
Phạm Hoàng Giang

• Một số khách hàng tiêu biểu:

11
ORLab

Thành viên:
• 09 Tiến sĩ, 01 PGS
• 03 Thạc sĩ
• 08 Lập trình viên
• 08 Trợ lý nghiên cứu
• >10 Sinh viên thực tập

Website: http://orlab.com.vn/
Địa chỉ: phòng 703, nhà A6, Khoa Công
nghệ Thông tin, trường Đại học Phenikaa

12
Cơ hội học tập và làm việc tại ORLab

• Làm nghiên cứu:


▫ Sinh viên thực tập
▫ Trợ lý nghiên cứu
▫ Nghiên cứu sinh
▫ Giảng viên
▫ Học bổng trong và ngoài nước
• Làm ứng dụng
▫ Lập trình viên
▫ Kỹ sư thuật toán, phân tích dữ
liệu

13
Cơ hội việc làm ngành OR

• Khối học thuật:


• Toán (ứng dụng)
• Công nghệ thông tin, Khoa học máy tính
• Quản trị chuỗi cung ứng & logistics
• Quản trị kinh doanh
• Khoa học dữ liệu, trí tuệ nhân tạo
• Phân tích kinh doanh
• Các viện, trung tâm nghiên cứu
• Khối doanh nghiệp

14
Cơ hội việc làm ngành OR
• Nguồn: https://www.cbsnews.com

15
Nội dung
• Vận trù học, toán tối ưu là gì?

• Một số bài toán tối ưu hóa kinh điển


○ Bài toán quy hoạch tuyến tính
○ Bài toán cái túi
○ Bài toán lập tuyến đường vận chuyển (vehicle routing problem)
○ Bài toán lập kế hoạch (scheduling problem)
○ Bài toán đóng gói (packing problem)

• Tối ưu hóa trong thực tế


○ Ngành quảng cáo, truyền hình
○ Logistics
○ Quản trị nhân lực

• Hướng dẫn mô hình hóa một số bài toán tối ưu dưới dạng toán học
Basic notion
Bài toán quy hoạch tuyến tính
❖ Các thành phần của một hệ quy hoạch tuyến tính và ví dụ
Linear Programming = LP
Một nhà máy sản xuất hai loại xi măng, bán với giá 50$ và 70$ một tấn. Sản
xuất một tấn loại 1 mất 40 phút trong lò nung và 20 phút trong máy nghiền.
Sản xuất một tấn loại 2 mất 30 phút nung và 30 phút nghiền. Lò nung và
máy nghiền hoạt động 6 tiếng và 8 tiếng một ngày. Cần sản xuất mỗi loại
bao nhiêu để nhận được doanh thu lớn nhất?
Basic notion
Bài toán quy hoạch tuyến tính
❖ Các thành phần của một hệ quy hoạch tuyến tính và ví dụ
Linear Programming = LP
Một nhà máy sản xuất hai loại xi măng, bán với giá 50$ và 70$ một tấn. Sản xuất
một tấn loại 1 mất 40 phút trong lò nung và 20 phút trong máy nghiền. Sản xuất
một tấn loại 2 mất 30 phút nung và 30 phút nghiền. Lò nung và máy nghiền hoạt
động 6 tiếng và 8 tiếng một ngày. Cần sản xuất mỗi loại bao nhiêu để nhận được
doanh thu lớn nhất?

x1: số lượng xi măng loại 1 được sản xuất


x2: số lượng xi măng loại 2 được sản xuất
Hàm mục tiêu tối đa hóa lợi nhuận
Ràng buộc về thời gian nung
Ràng buộc về thời gian nghiền
Ràng buộc về miền giá trị của biến
Bài toán
Basic quy
notion hoạch tuyến tính
❖ Dạng tổng quát và các mở rộng
Quy hoạch toán học: là một biểu diễn toán học (mô hình hóa dưới dạng toán học)
nhằm mục tiêu lập kế hoạch tốt nhất sử dụng các nguồn lực.
Ít nhất một hàm mục tiêu: max hoặc min
Một tập hợp các ràng buộc thể hiện các chính sách, quy định liên quan đến tài
chính, công nghệ, marketing, cơ cấu tổ chức, luật pháp, v.v.
Khi biểu diễn toán học sử dụng hoàn toàn các hàm tuyến tính → LP model
Basic notion
Bài toán quy hoạch tuyến tính
❖ Dạng tổng quát và các mở rộng (tiếp)
n các biến không âm (3)
m các ràng buộc (>, <, =) (2)
z giá trị hàm mục tiêu (1).

cj hệ số → chi phí hoặc lợi nhuận của biến xj


aij hệ số của xj trong ràng buộc i
bi hằng số bên phải của ràng buộc i.

Lời giải khả thi: thỏa mãn tất cả các ràng buộc, ví dụ: x1 = 4 và x2 = 2
trong bài toán sản xuất xi măng.
Lời giải tối ưu: nếu không tồn tại lời giải nào khác có giá trị hàm mục
tiêu tốt hơn lời giải này.
Basic notion
Bài toán quy hoạch tuyến tính
❖ Dạng tổng quát và các mở rộng (tiếp tục)
Nếu chỉ có các biến liên tục: Linear programming (LP - quy hoạch tuyến
tính)
Nếu có biến nguyên: Integer programming (IP - quy hoạch nguyên)
Quy hoạch tuyến tính với biến nhị phân: một trường hợp đặc biệt của IP
với biến nhận 2 giá trị 0 hoặc 1 (biến nhị phân hoặc biến quyết định).
Quy hoạch biến nguyên hỗn hợp (MIP - Mixed Integer Programming): bao
gồm tất cả các loại biến.
Nếu có ít nhất một ràng buộc hoặc hàm mục tiêu là PHI TUYẾN 🡪 Quy
hoạch phi tuyến (Non-linear Programming – NLP).

IP khó giải hơn LP.


NLP khó giải hơn LP. Thông thường, các thuật toán hiện tại chỉ tìm được
các tối ưu địa phương.
Phương
Bài toánpháp
Graphical đồ (1/7)
method thị (1/7)
quy hoạch tuyến tính

Có thể sử dụng khi có n = 2 biến.

Ta có m = 2, n = 2, c = (1, 2), x = (x1, x2)T, b = (6, 3)T, A =


Phương
Bài toánpháp
Graphical đồ (2/7)
method thị (2/7)
quy hoạch tuyến tính
Vẽ hai trục tọa độ cho các giá trị không âm của x1 và x2
Vẽ hai đường thẳng tương ứng với hai phương trình x1 + x2 = 6 và x2 = 3
Cho mỗi đường thẳng, mũi tên chỉ nửa mặt phẳng thỏa mãn.
Chúng ta nhận được miền nghiệm khả thi (feasible region), đa giác OIJK
Phương
Bài toánpháp
Graphical đồ (3/7)
method thị (3/7)
quy hoạch tuyến tính
Điểm cắt của đường thẳng z = x1 + 2x2 = k và miền nghiệm khả thi thể hiện
một tập hợp các lời giải có lợi nhuận là k.
Với z = 0, chúng ta có điểm O, nghiệm hiển nhiên khi ta không sản xuất gì
cả, không lợi nhuận.
Với k = 9, ta tiến tới điểm J: x1 = 3, x2 = 3. Đây là lời giải tối ưu vì nếu chúng
ta tăng k, chúng ta sẽ bị thoát ra khỏi vùng nghiệm khả thi.
Bằng cách thay các biến của hệ LP bằng các giá trị nghiệm tương ứng, ta có
thể kiểm tra lại lợi nhuận và sự thỏa mãn của các ràng buộc.
Phương
Bài toánpháp
Graphical đồ (4/7)
method thị (4/7)
quy hoạch tuyến tính
❖ Chú ý
Ràng buộc không âm đòi hỏi lời giải phải nằm trong góc phần tư thứ nhất.
Từng ràng buộc sẽ xác định nửa không gian (nửa mặt phẳng nếu n = 2).

Các điểm giao của các không gian này tạo nên một đa diện lồi, ví dụ ở đây là
đa giác OIJK. Tính lồi có nghĩa là với 2 điểm bất kì A và B nằm trong đa giác,
đoạn [A,B] cũng thuộc đa giác đó.

Khi tăng k lên, các đường thẳng tạo ra bởi phương trình z = k là song song.
z tăng theo hướng của vec-tơ c của hàm mục tiêu. Nghiệm tối ưu x*, duy
nhất ở đây, đạt được tại điểm J = (3,3) của đa giác, với giá trị lợi nhuận là z*
= 9.
Phương
Bài toánpháp
Graphical đồ (5/7)
method thị (5/7)
quy hoạch tuyến tính
❖ Một số trường hợp đặc biệt:
Nếu không có ràng buộc x1+x2 ≤ 6, miền nghiệm sẽ không bị giới hạn, giá trị
mục tiêu của nghiệm tối ưu cũng không bị giới hạn.
Nghiệm tối ưu có thể hữu hạn dù miền nghiệm là vô hạn: ví dụ trường hợp c
= (-1,2), điểm tối ưu là điểm I.
Nếu chúng ta thêm ràng buộc x1 – x2 ≤ 4, miền nghiệm là rỗng và không tồn
tại nghiệm khả thi.
Nếu, nếu chúng ta cực đại hóa hàm mục tiêu z = x1+x2, có nhiều nghiệm tối
ưu (tất cả các điểm nằm trên cạnh JK).
Tuy nhiên chú ý rằng tập hợp các nghiệm tối ưu, nếu không rỗng, luôn bao
gồm một đỉnh thuộc đa giác.
Phương
Bài toánpháp
Graphical đồ (6/7)
method thị (6/7)
quy hoạch tuyến tính

Với bài toán thực tế (lập kế hoạch sản xuất), miền nghiệm thường sẽ không
rỗng vì luôn có ít nhất một nghiệm: kế hoạch sản xuất hiện tại của công ty.
Hơn nữa, nghiệm tối ưu thường bị chặn vì các nguồn lực luôn có giới hạn.
Vô nghiệm thường xảy ra khi bài toán bị ràng buộc quá chặt. Bỏ quên 1 ràng
buộc lại có thể dẫn tới bài toán có nghiệm tối ưu không bị chặn.
Khi sử dụng các công cụ giải LP, nhập sai dấu của ràng buộc cũng có thể
gây ra các hiện tượng này. Lưu ý cần xem xét cẩn thận mô hình toán học.
Nếu có nhiều hơn 2 nghiệm, phương pháp đồ thị không thể sử dụng được,
lúc đó cần sử dụng phương pháp đại số.
Phương
Bài toánpháp
Graphical đồ (7/7)
method thị (7/7)
quy hoạch tuyến tính
Luyện tập:
Phương
Bài toánpháp
Graphical số (7/7)tuyến
method
quy hoạch tính
● Thuật toán → chạy trên máy tính

● Dựa trên tính chất “Nghiệm tối ưu luôn nằm trên


đỉnh của đa giác biểu diễn miền nghiệm khả thi”.

● Tìm cách kiểm tra thông minh các điểm nằm trên
điểm giao tạo ra bởi các ràng buộc.

● Phương pháp bảng đơn hình.

● Phương pháp điểm trong.


Các
Bàicông
toáncụmethod
Graphical giải bài
quy các bài
(7/7)
hoạch toán tính
tuyến quy hoạch toán học

● Cplex, Gurobi, Scip, Or-tool, …

● Thường gồm 2 phần:


○ Công cụ mô hình hóa (AMPL, OPL, v.v.) →
giúp người lập trình viết mã giống ngôn ngữ tự
nhiên.
○ Solver engine (thuật toán đơn hình, điểm
trong)
Các
Bàicông
toáncụmethod
Graphical giải bài
quy các bài
(7/7)
hoạch toán tính
tuyến quy hoạch toán học

Consider the following example. Berkeley Paint Company makes


two colors of paint, blue and gold. The blue paint sells for $10 per
gallon, while the gold paint sells for $15 per gallon. The company
has one factory, and can make only one color of paint at a time.
However, blue paint is easier to make so the factory can make 40
gallons per hour of blue paint, but only 30 gallons per hour of gold
paint. In addition, the marketing department tells manufacturing
that they can sell at most 860 gallons of gold paint and 1000
gallons of blue paint. If a week is 40 hours and paint can’t be
stored until next week, we need to determine how many gallons
of blue and gold paint to make; so that the total revenue is
maximized.
PaintB → the gallons of blue paint
PaintG → the gallons of gold
Các
Bàicông
toáncụmethod
Graphical giải bài
quy các bài
(7/7)
hoạch toán tính
tuyến quy hoạch toán học
Bài
Bàitoán
Graphicaltổng
toán quáthoạch
method
quy (7/7)tuyến tính
Trộm cũng cần tối ưu?
• Một kẻ trộm vào ăn trộm tại một cửa hàng có một tập hợp I gồm n đồ vật
• Đồ vật i có giá trị vi và trọng lượng wi, (vi and wi là số nguyên dương).
• Cái túi có tải trọng W
• Quyết định lấy đồ vật nào sao cho giá trị cái túi mang ra là lớn nhất trong khi thỏa mãn
điều kiện tải trọng của túi?
Trộm cũng cần tối ưu?
xi: biến nhị phân, = 1 nếu đồ vật i được lấy

• I: tập hợp gồm n đồ vật


• vi: giá trị của đồ vật i
• wi: khối lượng của đồ
vật i.
• W: tải trọng của cái túi

Quy hoạch nguyên tuyến tính (MILP)


→ giải bằng các công cụ như: Cplex, Gurobi
Bài toán cái túi
Vehicle routing problem (VRP)
• Cho trước: đồ thị G = (V, E)
▫ n khách hàng với vị trí và khối lượng
hàng hóa xác định
▫ Khoảng cách giữa tất các cặp đỉnh
▫ Tại kho hàng, có một tập hợp gồm m
xe có tải trọng Q giống nhau.

• Cần tìm:
▫ Các tuyến giao hàng cho từng xe (mỗi
xe tối đa một tuyến) phục vụ hết tất cả
các khách hàng
▫ Tải trọng của xe phải thỏa mãn
▫ Tổng quãng đường các xe đi là nhỏ
nhất
• Khi bài toán chỉ có 1 xe duy nhất →
Bài toán người đưa thư (Traveling
Salesman Problem - TSP)
VRP trong thực tế
Giải chính xác

Xét bài toán TSP với n khách hàng


• Giải chính xác: tìm và chứng minh được lời giải là tốt nhất
• Vét cạn (brute force)
▫ Mỗi lời giải của bài toán TSP là một hoán vị của n thành phố
▫ Đếm tất cả các lời giải (hoán vị) có thể có
▫ Giả sử n = 3:
1-2-3-1
1-3-2-1
2-1-3-2
2-3-1-2
3-1-2-3
3-2-1-3
Bùng nổ tổ hợp

• 100 khách hàng, số lượng lời giải có thể xảy ra:


100! =
9332621544394415268169923885626670049071596826438162146859296389
5217599993229915608941463976156518286253697920827223758251185210
916864000000000000000000000000 = 10158

• Nếu tính toán trên một hệ thống SIÊU máy tính


▫ Số lượng CPU = số nguyên tử trong vũ trụ = 1080
▫ Thực hiện một phép tính trong thời gian Planck: 5,39 * 10- 44 (giây)
▫ Để kiểm tra tất cả lời giải:
5,39 * 10- 44 * 10158/1080 = 5,39 * 1034 (giây)
▫ Tuổi thọ của vũ trụ : 4,33 * 1017 giây

From slides of Thibaut Vidal (SOICT, Nha Trang 2017)


TSP Việt
Nam
n = 22755 (khu dân cư)
Chiều dài: 569 288 (km)
Nguồn:
http://www.math.uwaterloo.
ca/tsp/world/countries.html

41
Bài toán lập kế hoạch thực hiện công việc tối ưu

• Optimal job scheduling


• Đầu vào:
▫ Một danh sách các công việc, mỗi công việc có một
thời gian thực hiện nhất định
▫ Một danh sách các máy (nhân viên)
• Đầu ra: một kế hoạch làm việc - gán công việc và máy thỏa
mãn các ràng buộc và tối ưu một hàm mục tiêu nào đó.
Bài toán 2D-strip packing

• Input:
▫ Một tập hợp các hình chữ
nhật nhỏ, mỗi hình i có kích
thước w(i) và h(i) cố định
▫ Một hình chữ nhật lớn với
chiều rộng L cho trước
• Output:
▫ Cách xếp các hình chữ nhật
nhỏ vào hình chữ nhật lớn
sao cho không chồng lấn,
các cạnh song song với hình
chữ nhật lớn sao cho chiều
cao của phần hình chữ nhật
chiếm chỗ là nhỏ nhất
Ràng buộc guillotine

• Các hình chữ nhật nhỏ


được tách ra bằng các nhát
cắt từ cạnh này đến cạnh
kia (edge-to-edge cut)
song song với các cạnh của
hình chữ nhật to.
Nội dung
• Vận trù học, toán tối ưu là gì?

• Một số bài toán tối ưu hóa kinh điển


○ Bài toán quy hoạch tuyến tính
○ Bài toán cái túi
○ Bài toán lập tuyến đường vận chuyển (vehicle routing problem)
○ Bài toán lập kế hoạch (scheduling problem)
○ Bài toán đóng gói (packing problem)

• Tối ưu hóa trong thực tế


○ Ngành quảng cáo, truyền hình
○ Logistics
○ Quản trị nhân lực

• Hướng dẫn mô hình hóa một số bài toán tối ưu dưới dạng toán học
Lập kế hoạch phát sóng quảng cáo truyền hình

• Một tập hợp các nhãn hàng cần quảng cáo,


mỗi nhãn hàng có clip quảng cáo với thời
gian phát cố định
• Đài truyền hình có một tập hợp các cut
(break), mỗi cut có thời gian nhất định.
• Cần xếp các clip quảng cáo vào các cut sao
cho đáp ứng được càng nhiều yêu cầu của
khách hàng càng tốt (doanh thu đạt lớn nhất)

Nếu chỉ xét 1 cut quảng cáo


• I: tập hợp gồm n clip quảng cáo
• vi: giá phát quảng cáo cho nhãn
hàng i
• wi: thời gian phát sóng của quảng
cáo i
• W: tổng thời gian của một cut
Lập kế hoạch phát sóng quảng cáo truyền hình

Các yêu cầu của bài toán Ràng buộc tương đương cho bài Knapsack

Có nhiều cut Có nhiều hơn 1 chiếc túi

Một số khách hàng cho phép phát nhiều spot trong 1 Một đồ vật có thể lấy nhiều lần
cut

Pepsi và Coca không được chung một cut Một số đồ vật không được xếp cùng nhau vào
túi → ràng buộc xung đột

Mỗi khách hàng yêu cầu một khung giờ phát nhất định Mỗi đồ vật có một danh sách túi có thể xếp
được nhất định

Một số sản phẩm “nhạy cảm” không được xếp vào Một số đồ vật không được xếp vào một số túi
khung thời sự nhất định

Một số khách hàng yêu cầu 1 trong 6 vị trí Quan tâm tới thứ tự lấy đồ vật

Một số khách hàng mua vị trí và cut phát sóng Đồ vật được chỉ định thứ tự lấy và túi đựng

Một số khách hàng yêu cầu phát rải spot quảng cáo đều
trong ngày

Không được phát quá ngân sách cho phép của khách Mỗi đồ vật chỉ lấy được một số lần nhất định
hàng (thể hiện qua lượng GRP cho phép)
Dự đoán GRP
• GRP: Gross Rating Point → phụ thuộc vào thời điểm phát, đối
tượng khách hàng, thị trường mục tiêu.

• Mỗi khách hàng yêu cầu phát một lượng GRP nhất định trong
một khoảng thời gian nhất định.
▫ Ví dụ: 100 GRP từ ngày x đến ngày y cho đối tượng khách
hàng FE50+ABC, thị trường Hà Nội - Hồ Chí Minh

• Dữ liệu lượng GRP phát được do một bên thứ ba là Kantar


Media cung cấp sau hai ngày phát sóng

• Đài truyền hình phải dự đoán lượng GRP phát được sao cho
dữ liệu khớp với Kantar nhất có thể
Bài toán có kích cỡ dữ liệu lớn

• ~ 100 cut/ngày.
• Lập kế hoạch cho 1 tháng (~30 ngày)
• ~ 200 đối tượng khách hàng
• 4 thị trường mục tiêu và các tổ hợp
• GRP theo từng phút (> 40k records)
Logistics

• Lập kế hoạch, thực hiện và


kiểm soát việc lưu chuyển
và lưu trữ hàng hóa, dịch vụ
và thông tin liên quan giữa
điểm xuất xứ và điểm tiêu
thụ một cách hiệu quả để
đáp ứng yêu cầu của khách
hàng.

• Tối ưu hoá việc sử dụng các


nguồn lực là động lực chung
trong mọi khía cạnh của
logistics.
Chi phí logistics

Nguồn: Ngân hàng thế giới (2020)


Logistics

• Một số bài toán tối ưu trong lĩnh vực logistics điển hình
○ Tìm vị trí đặt các cơ sở sản xuất (facility location)
○ Quản lý tồn kho
○ Tối ưu hoá hoạt động vận chuyển
Logistics

• Một số bài toán tối ưu trong lĩnh vực logistics điển hình
○ Tìm vị trí đặt các cơ sở sản xuất (facility location)
○ Quản lý tồn kho
○ Tối ưu hoá hoạt động vận chuyển
Logistics

• Một số bài toán tối ưu trong lĩnh vực logistics điển hình
○ Tìm vị trí đặt các cơ sở sản xuất (facility location)
○ Quản lý tồn kho
○ Tối ưu hoá hoạt động vận chuyển
Thu gom rác thải
Thu gom rác thải

Bài toán VRP với các ràng buộc mới:


• Một điểm thu gom rác thải là một khách hàng, vì
khối lượng rác thải tại mỗi điểm lớn → một điểm
phải được phục vụ nhiều lần tại nhiều thời điểm
trong ngày (trung bình 6 khung thời gian).
• Xe xuất phát từ kho xe rồi quay đi quay lại bãi
chứa rác nhiều lần (multiple trip VRP)
• Khoảng thời gian giữa hai lần đến thu gom rác
thải tại một điểm phải lớn hơn một hằng số cho
trước.
Vận chuyển đồ nội thất

Bài toán VRP với ràng buộc đồng


bộ hoá Khách hàng đặc biệt

• Khung thời gian. Khách hàng thường

• Hai loại xe cung cấp 2 dịch vụ


khác nhau: chuyên chở + lắp
đặt
• Một số khách hàng đặc biệt cần
sự phục vụ của cả 2 loại xe
• Ràng buộc đồng bộ hoá: thời
gian bắt đầu phục vụ của 2 loại Depot
xe tại khách hàng đặc biệt nằm
trong giới hạn [a, b] cho trước

57
VRP với ràng buộc đồng bộ hóa

• Dịch vụ chăm sóc tại nhà (homecare service)

• Các công ty cung cấp dịch vụ lắp đặt, bảo trì mạng internet
▫ Đội xử lý phần cứng và đội xử lý phần mềm

• Vận chuyển các hàng hoá lớn như đồ nội thất, đồ gia dụng
▫ Đội chuyên chở
▫ Đội lắp đặt
Minh Hoàng Hà, Tat Dat Nguyen, Thinh Nguyen Duy, Giang Hoang Pham, Thuy Do,
Louis-Martin Rousseau (2020). A new constraint programming model and a linear
programming-based adaptive large neighborhood search for the vehicle routing
problem with synchronization constraints. (Computers and Operations Research 124,
105085).

58
Câu chuyện thành công
• Dự án ORION của UPS

• Hệ thống giải bài toán TSP,


mỗi tuyến đường với 100-120
điểm giao hàng

• Kéo dài hơn 10 năm với tổng


chi phí gần 400 triệu USD

• Tiết kiệm 10 triệu gallon


nhiên liệu, giảm 100k m3
CO2 → 300-400 triệu USD
hàng năm.
Bài toán xếp lịch làm việc cho các bác sĩ

• Một tập hợp các bác sĩ:


▫ Có chuyên môn nhất định, làm được ở một số phòng cho trước
▫ Lịch nghỉ phép, nghỉ công tác, nghỉ việc riêng, v...v
• Một tập hợp các phòng, vị trí làm việc
▫ Mỗi phòng yêu cầu một số lượng bác sĩ nhất định
▫ Chia nhóm theo mức độ ưu tiên (phòng ít quan trọng hơn có thể
đóng nếu không đủ người)
▫ Chia theo nhóm theo mức độ nặng nhẹ của công việc: rất nặng,
nặng, bình thường. Phòng nặng thường phải làm công việc áp
lực, đông bệnh nhân, đi làm về muộn.
▫ Chia nhóm theo loại hình công việc yêu cầu đi sớm
• Lập lịch làm việc cho các ngày trong tuần (tháng), mỗi ngày 2 ca làm
việc
Bài toán xếp lịch làm việc cho các bác sĩ

• Cần xác định gán bác sĩ nào làm phòng nào, vào ngày nào thỏa
mãn một danh sách các ràng buộc:
▫ Bác sĩ làm đúng chuyên môn
▫ Đủ lượng bác sĩ yêu cầu tại từng phòng
▫ Bác sĩ nên làm 2 ca trong ngày tại cùng một phòng (nhưng
không bắt buộc)
▫ Không được xếp lịch làm việc vào lịch nghỉ đã đăng ký trước
của bác sĩ
▫ Làm phòng rất nặng thì hôm sau không được xếp phòng nặng
hoặc rất nặng
▫ Cân bằng số buổi làm phòng nặng và rất nặng giữa các bác sĩ
▫ Bác sĩ có con nhỏ, hoặc lớn tuổi hạn chế xếp vào phòng cần
đi sớm
▫ Số phòng phải đóng là ít nhất
▫ Nếu buộc phải đóng một số phòng thì các phòng có độ ưu tiên
thấp đóng trước, ưu tiên cao đóng sau
▫ V...v
Một số hệ thống tiêu biểu đã triển khai
• Hệ thống quản lý và xếp lịch làm việc tối ưu cho ngành y tế: đã triển khai tại Bệnh
viện Đại học Y Hà Nội (xem thêm tại http://orlab.com.vn/products/ohos ).
• Hệ thống quản lý và xếp lịch trực ca, đã triển khai tại:
○ Nhà máy thủy điện Lai Châu, nhà máy thủy điện Sơn La: xếp lịch làm việc
trực nhà máy 24/24 cho công nhân làm việc theo chế độ ngày 3 ca.
○ Tokyo Gas (công ty cung cấp khí ga dân dụng lớn nhất Nhật Bản): xếp lịch
làm việc năm cho nhân viên trực đêm đề phòng sự cố. Đã triển khai tại 7 chi
nhánh của Tokyo Gas trên toàn nước Nhật.
○ Ngành viễn thông: xếp lịch làm việc cho nhân viên thực hiện việc thay đổi
thông số mạng viễn thông tại các thị trường trong và ngoài nước.
○ Planday (1 trong 10 công ty startup phát triển nhanh nhất Đan Mạch, dẫn
đầu thị trường châu Âu và Bắc Mỹ về các hệ thống quản lý lịch làm việc):
chuyển giao công nghệ xếp lịch tự động cho hơn 5000 khách hàng của
Planday là các nhà hàng, khách sạn, quán bar, phòng tập thể hình, v.v.
• Hệ thống sắp xếp thời khóa biểu, phân công lịch dạy cho giảng viên: đã triển khai
tại trường Đại học Phenikaa.
Các hệ thống xếp lịch làm việc khác
Bài toán “dồn điền đổi thửa” tại Việt Nam

• Thực trạng: ruộng


được chia quá nhỏ,
mỗi hộ gia đình có
nhiều mảnh ruộng tại
nhiều địa điểm khác
nhau
• Ở Vĩnh Phúc, có hộ
gia đình được chia
47 mảnh ruộng nhỏ,
mỗi mảnh rộng 10
m2.
• Vấn đề xảy ra ở hầu
hết các tỉnh thành ở
Việt Nam
Bài toán “dồn điền đổi thửa” tại Việt Nam

• Khó quản lý, mất


công chăm nom

• Khó cơ giới hóa


nông nghiệp

→ Chính sách “dồn


điền, đổi thửa”.
Bài toán “dồn điền đổi thửa” tại Việt Nam

• Hình chữ nhật lớn với


hai chiều cố định
• n hình chữ nhật nhỏ với
diện tích cố định
• Hai nhát cắt guillotine
• Chia sao cho:
▫ tổng chu vi các hình
chữ nhật con là nhỏ
nhất (P1)
▫ chu vi của hình chữ
nhật có chu vi lớn
nhất là nhỏ nhất (P2)
▫ tỉ số của hai cạnh
của hình chữ nhật có
tỉ số lớn nhất là nhỏ
nhất (P3)
Bài toán “dồn điền đổi thửa” tại Việt Nam

Quoc Trung Bui, Thibaut Vidal, Minh Hoàng Hà. On


three soft rectangle packing problems with guillotine
constraints. Journal of Global Optimization 74, 45-
62(2019).

• P1 có thể giải chính xác bởi thuật toán chạy trong thời
gian đa thức O(nlogn) nhanh hơn Beaumont et al.
(2002) O(n2logn)

• Chứng minh P2 và P3 là NP-khó. Đề xuất các MILP và


thuật toán chặt nhị phân giải được các bài toán có kích
cỡ từ 10-40 hình chữ nhật nhỏ.
Nội dung
• Vận trù học, toán tối ưu là gì?

• Một số bài toán tối ưu hóa kinh điển


○ Bài toán quy hoạch tuyến tính
○ Bài toán cái túi
○ Bài toán lập tuyến đường vận chuyển (vehicle routing problem)
○ Bài toán lập kế hoạch (scheduling problem)
○ Bài toán đóng gói (packing problem)

• Tối ưu hóa trong thực tế


○ Ngành quảng cáo, truyền hình
○ Logistics
○ Quản trị nhân lực

• Hướng dẫn mô hình hóa một số bài toán tối ưu dưới dạng toán học
Linear programming: modeling (1/3)
Bài toán quy hoạch tuyến tính
The car rental company

A car rental company has two garages with 12 and 8 cars respectively, and
three rental agencies that require 8, 7 and 5 cars respectively. The costs of
transporting cars from depots to agencies are given by the following table C.
The goal is to transport cars at minimum cost. Model the problem as a LP!
Bài toán
Linear quy hoạch
programming: tuyến(2/3)
modeling tính
Exercise 2: Alloy manufacturing

The Steel company has received an order for five tons of steel intended for
the manufacture of boat hulls. This steel must have the particular
characteristics of the following table.

Chemical element Minimum percentage Maximum percentage


Carbon (C) 2 3
Copper (Cu) 0.4 0.6
Manganese (Mn) 1.2 1.65
Bài toán
Linear quy hoạch
programming: tuyến(3/3)
modeling tính
Exercise 2: Alloy manufacturing (continue)
To manufacture this steel, Steel has seven raw materials whose
characteristics, available quantities and purchase costs are given in the table
below.
Raw material C% Cu % Mn % Available stock in kg Cost ($/kg)

Iron alloy 1 2.5 0 1.3 4000 1.2

Iron alloy 2 3 0 0.8 3000 1.5

Iron alloy 3 0 0.3 0 6000 0.9

Copper alloy 1 0 90 0 5000 1.3

Copper alloy 2 0 96 4 2000 1.45

Aluminum alloy 1 0 0.4 1.2 3000 1.2

Aluminum alloy 2 0 0.6 0 2500 1

Formulate the problem to define the composition of the steel to be


manufactured to minimize the production cost.
Bài toán cái túi nguyên

• Each item can be chosen multiple times.


• For each item j, an upper bound uj (which may be a
positive integer, or infinity) on the number of times
item j can be selected:
Bài toán cái túi nguyên

• Each item can be chosen multiple times.


• For each item j, an upper bound uj (which may be a
positive integer, or infinity) on the number of times
item j can be selected:
Bài toán cái túi với nhiều nhóm đồ vật

• If the items are subdivided into k classes


denoted Ni, and exactly one item must be
taken from each class
Bài toán cái túi với nhiều nhóm đồ vật

• If the items are subdivided into k classes


denoted Ni, and exactly one item must be
taken from each class
Bài toán có nhiều túi

• If we have n items and m knapsacks with


capacities Wi
Bài toán có nhiều túi

• If we have n items and m knapsacks with


capacities Wi
Bài toán bao phủ

• Set of nodes V that can cover a subset of


nodes in W
• aij Binary covering coefficients
• Find a minimum subset of V that can cover
all nodes of W
Bài toán người đưa thư: mô hình 1

• cij: chi phí di chuyển từ i đến j


• xij: biến nhị phân
= 1 nếu xe đi trên cung từ i đến j
= 0 nếu xe không đi trên cung i → j.
Bài toán người đưa thư: mô hình 1

• Tạo ra nghiệm không khả thi chứa các chu trình con
• (1-2-3-4-1) và (5-6-7-5)

3
2

1
4

5 6

7
Bài toán người đưa thư: mô hình 1

• xij: biến nhị phân


= 1 nếu xe đi trên cung từ i đến j
= 0 nếu xe không đi trên cung i → j.
• ui: biến thực thể hiện thứ tự của điểm i trong lời giải

u6 ≥ u5 + 1
u7 ≥ u6 + 1
u5 ≥ u7 + 1

5 6

→ giải trực tiếp với các công cụ (mixed integer linear


programming) như Cplex, Gurobi, Scip v.v.
Bài toán người đưa thư: mô hình 2

• cij: chi phí di chuyển từ i đến j


• xij: biến nhị phân
= 1 nếu xe đi trên cung từ i đến j
= 0 nếu xe không đi trên cung i → j.

x56 + x67 + x75 ≤2

5 6

7
Bài toán người đưa thư: mô hình 2

• Số lượng ràng buộc xử lý sub-tour là vô cùng lớn (tăng theo


hàm số mũ với kích cỡ bài toán)
• Xử lý bằng cách giải MILP lặp (cutting planes)

x56 + x67 + x75 ≤2

5 6

7
Những thuật toán tốt nhất hiện tại

• Concord giải TSP: 100 000 khách hàng

• Thuật toán chính xác tốt nhất cho VRP: ~300-400 khách
hàng. (Uchoa et al., 2013)

• Đa số các nghiên cứu sử dụng metaheuristic. Thuật toán tốt


nhất hiện tại đề xuất trong Vidal et al. (2013).
Bài toán orienteering

A salesman wishes to service a number of customers; each is


associated with a given profit. Due to time constraints, he cannot
service all the customers and has to find a route passing through a
subset of them such that collected profits are maximized.

The problem can be formulated in the following way. Given n nodes in


the Euclidean plane each with a profit pi [note that p1 = 0]. Let cij be
the length of edge <i, j>. The goal of the problem is to find a route of
maximum profit through these nodes beginning and ending at node
1 of length no greater than L. Formulate mathematically the
problem.
Bài toán Orienteering
Bài toán người đưa thư với khung thời gian

Traveling Salesman with Time Window


• Each node i is
associated with
a time window
[oi, ei]
Thực hành: Bài toán GTSP

Generalized traveling salesman problem

Given a complete graph G = (V, E). The set of


nodes V is partitioned into m disjoint clusters. Each
edge e in E is associated to a cost ce. The
objective is to find a minimum cost tour passing
through exactly one node from each cluster.
Kết luận

• Nhu cầu giải quyết các bài toán Vận trù học đang tăng nhanh, tuy nhiên
Vận trù học còn chưa được phổ biến và chưa được nhận thức đúng tầm
quan trọng ở Việt Nam → cần thêm nhiều chương trình đào tạo, các khóa
học, các hiệp hội ngành, nghề, v...v.

• Kỹ năng toán học (toán tối ưu) là vô cùng cần thiết


▫ Phát hiện vấn đề, mô hình hóa, chuyển vấn đề của khách hàng thành
bài toán tối ưu
▫ Thiết kế thuật toán
▫ Giải thích kết quả, thuyết phục khách hàng

• Thị trường trong nước đang thiếu nhân lực làm toán ứng dụng
Toán tối ưu: Từ lý thuyết đến ứng dụng thực tế

Hà Minh Hoàng
Nhóm nghiên cứu tối ưu hóa các hệ thống lớn
ORLab

90

You might also like