Tải bản đầy đủ (.pdf) (106 trang)

Kỹ thuật quy hoạch ràng buộc tìm kiếm cục bộ dựa trên ràng buộc và phân cụm cân bằng trong việc giải các bài toán tối ưu tổ hợp

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (4.04 MB, 106 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
HUỲNH THÀNH TRUNG

---------------------------------------

Huỳnh Thành Trung

HỆ THỐNG THÔNG TIN

KỸ THUẬT QUY HOẠCH RÀNG BUỘC, TÌM KIẾM CỤC
BỘ DỰA TRÊN RÀNG BUỘC VÀ PHÂN CỤM CÂN BẰNG
TRONG VIỆC GIẢI CÁC BÀI TOÁN TỐI ƯU TỔ HỢP

LUẬN VĂN THẠC SĨ KHOA HỌC
HỆ THỐNG THÔNG TIN

2016CLC

Hà Nội – 2017


BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
--------------------------------------Huỳnh Thành Trung

KỸ THUẬT QUY HOẠCH RÀNG BUỘC, TÌM KIẾM CỤC BỘ DỰA
TRÊN RÀNG BUỘC VÀ PHÂN CỤM CÂN BẰNG TRONG VIỆC GIẢI
CÁC BÀI TOÁN TỐI ƯU TỔ HỢP

Chuyên ngành : Hệ thống thông tin



LUẬN VĂN THẠC SĨ KHOA HỌC
HỆ THỐNG THÔNG TIN

NGƯỜI HƯỚNG DẪN KHOA HỌC :
1. TS. Phạm Quang Dũng
2. GS. Katsumi Inoue

Hà Nội – 2017


CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc

BẢN XÁC NHẬN CHỈNH SỬA LUẬN VĂN THẠC SĨ
Họ và tên tác giả luận văn: Huỳnh Thành Trung
Đề tài luận văn: Kỹ thuật quy hoạch ràng buộc, tìm kiếm cục bộ dựa trên ràng

buộc và phân cụm cân bằng trong việc giải các bài toán tối ưu tổ hợp
Chuyên ngành: Hệ thống thông tin
Mã số SV: CBC16001

Tác giả, Người hướng dẫn khoa học và Hội đồng chấm luận văn xác
nhận tác giả đã sửa chữa, bổ sung luận văn theo biên bản họp Hội đồng ngày
24/03/2017 với các nội dung sau:
-

Cấu trúc lại luận văn thành 4 chương (từ 7 chương trong bản luận văn ban
đầu). Cấu trúc của luận văn sau chỉnh sửa như sau:
Chương 1: Giới thiệu đề tài. Giới thiệu đề tài thực hiện

Chương 2: Cơ sở lý thuyết. Nêu lên các cơ sở lý thuyết về bài tốn tối
ưu hóa tổ hợp, bài toán xếp lịch bảo vệ cao học, các hướng tiếp cận
giải bài tốn tối ưu tổ hợp như tìm kiếm cục bộ, quy hoạch ràng buộc,
tìm kiếm cục bộ dựa trên ràng buộc và các kỹ thuật bổ trợ như Loại
bỏ đối xứng, Phân rã bài toán, Phân cụm.
Chương 3: Đề xuất thuật toán giải bài toán xếp lịch bảo vệ cao học.
Trình bày thuật tốn đề xuất với các phương pháp sử dụng để cải thiện
mơ hình hóa bài tốn và các phương pháp sử dụng để tìm kiếm lời giải
cho bài tốn, sau đó là thực nghiệm đánh giá so sánh kết quả của thuật
toán đề xuất.


Chương 4: Kết luận và các hướng phát triển. Tổng hợp các công việc
đã làm được và các hướng phát triển trong tương lai.
-

Đánh số các trang bắt đầu từ phần nội dung chính của luận văn (thay vì từ
phần mục lục)

-

Chỉnh sửa lại lỗi văn bản hình vẽ và tên hình vẽ bị nhảy (hình 20)

-

Chỉnh sửa lại văn phong khoa học hơn (phần 2.3.2.1)

-

Chỉnh sửa lại cách đánh số các định nghĩa cho khơng cịn trùng lặp (phần

2.1.1 và 3.1.2.1)

-

Chỉnh sửa lại phần tài liệu tham khảo cho thống nhất và chuẩn xác hơn
Ngày 29 tháng 03 năm 2017

Giáo viên hướng dẫn

Tác giả luận văn

CHỦ TỊCH HỘI ĐỒNG


LỜI CẢM ƠN
Để hoàn thành luận văn tốt nghiệp này, lời đầu tiên tôi xin chân thành cảm ơn
các thầy giáo, cô giáo của Viện Công nghệ thông tin và Truyền thông Trường Đại học
Bách Khoa Hà Nội, những người đã dạy dỗ, trang bị những kíến thức bổ ích trong những
năm học vừa qua.
Tơi xin bày tỏ lịng biết ơn sâu sắc nhất tới thầy giáo Phạm Quang Dũng, người
đã tận tình hướng dẫn, chỉ bảo trong suốt thời gian học tập, thực tập và làm luận văn.
Tôi xin bày tỏ lòng biết ơn sâu sắc nhất tới giáo sư Katsumi Inoue cùng hai
nghiên cứu sinh Maxime Clement và Emir Demirovic, những người đã tận tình giúp đỡ
trong suốt thời gian thực tập nghiên cứu và làm luận văn tại National Institute of
Infomatics, Tokyo
Nhân dịp này tôi xin gửi lời cảm ơn chân thành tới gia đình, bạn bè, những người
thân đã cổ vũ, động viên tiếp thêm cho em nghị lực để tơi hồn thành luận văn tốt
nghiệp.
Tơi xin chân thành cảm ơn!
Hà Nội, ngày 12 tháng 03 năm 2017

Học viên

Huỳnh Thành Trung


Danh mục các bảng biểu sử dụng trong đồ án
Bảng 1: Một số API tiêu biểu của thư viện OpenCBLS .................................. 40
Bảng 2: Bảng so sánh hiệu năng mơ hình nQueen sử dụng Symmetry Breaking
......................................................................................................................... 43
Bảng 3: Bảng thực nghiệm đánh giá hiệu quả của kỹ thuật phân rã thu gọn 60
Bảng 4: Bảng thực nghiệm đánh giá hiệu quả của các kỹ thuật loại bỏ đối xứng
......................................................................................................................... 65
Bảng 5: Bảng thực nghiệm đánh giá hiệu quả của thuật toán KPBC ............ 74
Bảng 6: Bảng thực nghiệm đánh giá hiệu quả của Heuristic phân cụm ........ 75
Bảng 7: Bảng thực nghiệm đánh giá hiệu quả của Tìm kiếm lời giải tối ưu từng
phần với một phân hoạch ................................................................................ 83
Bảng 8: Bảng thực nghiệm đánh giá hiệu quả của Tìm kiếm cục bộ sử dụng lời
giải từng phần ................................................................................................. 88
Bảng 9: Bảng thực nghiệm đánh giá kết quả.................................................. 90


Danh mục các hình vẽ sử dụng trong đồ án
Hình 1: Minh họa cho bài toán TSP với 4 thành phố ..................................... 11
Hình 2: Ví dụ về chu trình con của bài tốn TSP ........................................... 12
Hình 3: Minh họa Local search với bài tốn 4-queen .................................... 20
Hình 4: Minh họa lời giải cực trị địa phương trong LS ................................. 21
Hình 5: Minh họa Backtracking Search với bài toán 4-queen ....................... 30
Hình 6: Tổng quan kiến trúc Constraint-based Local Search [7] ................. 32
Hình 7: Minh họa sự họat động của Dependency Graph ............................... 35
Hình 8: Minh họa Symmetry Breaking với bài tốn N-queens ....................... 42

Hình 9: Sơ đồ khối thuật tốn phân cụm K-means ......................................... 47
Hình 10: Ví dụ minh họa bài tốn ghép cặp cực đại ...................................... 51
Hình 11: Ví dụ về ma trận biểu diễn hàm độ đo W ........................................ 51
Hình 12: Sơ đồ khối của thuật tốn K-means balanced clustering ................ 56
Hình 13: Minh họa trường hợp khơng bảo tồn nghiệm khi phân rã kíp thời gian
......................................................................................................................... 59
Hình 14: Minh họa đối xứng giữa các cụm hội đồng – phịng ....................... 61
Hình 15: Minh họa đối xứng giữa chủ tịch – thư ký....................................... 63
Hình 16: Mơ hình pha 1-1 của bài tốn MTDT .............................................. 67
Hình 17: Minh họa ghép cặp cực đại các hội đồng vào các cụm .................. 69
Hình 18: Ví dụ minh họa trường hợp kết quả phân cụm khơng sử dụng được70
Hình 19: Ví dụ minh họa thuật toán hậu xử lý kết quả phân cụm .................. 72
Hình 20: Mơ hình pha 1-2 của bài tốn ......................................................... 78
Hình 21: Minh họa phân hoạch láng giềng trong tìm kiếm cục bộ ................ 85


Danh mục các từ ngữ viết tắt và thuật ngữ
Chữ viết tắt

Tên đầy đủ

Ý nghĩa

NP

Non-determistic

Lớp bài toán quyết định chưa có thuật

polynomial


tốn độ phức tạp đa thức để giải

LS

Local search

Tìm kiếm cục bộ

CP

Constraint

Quy hoạch ràng buộc

Programming
CBLS

Constraint-based
Local search

Tìm kiếm cục bộ dựa trên ràng buộc


MỤC LỤC
MỤC LỤC...........................................................................................................
Chương 1: Giới thiệu đề tài............................................................................... 1
1.1. Giới thiệu chung ................................................................................... 1
1.2. Ngữ cảnh và lý do thực hiện ................................................................ 1
1.2.1. Bài tốn tối ưu tổ hợp: tính cần thiết và các khó khăn ..................... 1

1.2.2. Các phương pháp giải quyết ............................................................. 2
1.2.3. Bài toán xếp lịch bảo vệ cao học ...................................................... 4
1.2.4. Lý do thực hiện ................................................................................. 4
1.3. Nội dung luận văn ................................................................................ 5
Chương 2: Cơ sở lý thuyết ................................................................................ 6
2.1. Bài tốn tối ưu hóa tổ hợp .................................................................... 6
2.1.1. Một số khái niệm .............................................................................. 6
2.1.2. Phương pháp tổng trọng số trong bài tốn tối ưu hóa tổ hợp đa mục tiêu
.................................................................................................................... 9
2.1.3. Ví dụ - Bài toán người du lịch (TSP) ............................................. 10
2.2. Bài toán xếp lịch bảo vệ cao học (MTDT) ......................................... 13
2.2.1. Mô tả bài tốn ................................................................................. 13
2.2.2. Mơ hình tốn học của bài tốn ....................................................... 14
2.2.3. Ví dụ minh họa ............................................................................... 16
2.3. Các hướng tiếp cận giải bài toán tối ưu tổ hợp .................................. 19
2.3.1. Tìm kiếm cục bộ ............................................................................. 19
2.3.2. Quy hoạch ràng buộc ...................................................................... 25


2.3.3. Tìm kiếm cục bộ dựa trên ràng buộc .............................................. 31
2.3.4. Các kỹ thuật bổ trợ ......................................................................... 40
Chương 3: Đề xuất thuật toán giải bài toán xếp lịch bảo vệ cao học ............. 57
3.1. Các phương pháp sử dụng cải thiện mơ hình bài tốn ....................... 57
3.1.1. Kỹ thuật phân rã thu gọn bài toán .................................................. 57
3.1.2. Kỹ thuật loại bỏ đối xứng ............................................................... 60
3.1.3. Đánh giá hiệu quả ........................................................................... 64
3.2. Các phương pháp sử dụng để tìm kiếm lời giải cho bài toán ............. 65
3.2.1. Heuristic phân cụm cân bằng.......................................................... 65
3.2.2. Tìm kiếm cục bộ sử dụng lời giải từng phần .................................. 76
Chương 4: Thực nghiệm đánh giá kết quả ...................................................... 89

4.1. Thực nghiệm ......................................................................................... 89
4.2. Đánh giá kết quả ................................................................................... 90
Chương 5: Kết luận và các hướng phát triển .................................................. 92
5.1. Kết luận ................................................................................................. 92
5.2. Các hướng phát triển ............................................................................. 93
CƠNG TRÌNH NGHIÊN CỨU CỦA TÁC GIẢ ........................................... 94
TÀI LIỆU THAM KHẢO .............................................................................. 95


Chương 1: Giới thiệu đề tài
1.1. Giới thiệu chung
Tên đề tài luận văn: Quy hoạch ràng buộc, tìm kiếm cục bộ dựa trên ràng buộc
và phân cụm cân bằng trong việc giải các bài toán tối ưu tổ hợp.
Sơ lược: Trong luận văn này, chúng tơi sẽ tìm hiểu chi tiết nền tảng kiến thức
về quy hoạch ràng buộc (constraint programming), tìm kiếm cục bộ dựa trên ràng
buộc (constraint-based local search) trong việc giải các bài toán tối ưu tổ hợp. Sau
đó, chúng tơi sẽ tiến hành triển khai các phương pháp nêu trên vào mơ hình hóa và
thiết kế giải thuật cho bài toán xếp lịch bảo vệ cao học (Master thesis defense
timetabling), với đề xuất nổi bật là sử dụng phân cụm cân bằng (K-means balance
clustering) để phân rã bài toán thành các bài toán con để song song tìm các lời giải
tối ưu từng phần, giúp giảm thiểu đáng kể thời gian tính tốn trong khi vẫn đảm bảo
được những phương án lịch đưa ra đạt chất lượng cao cho người quyết định (giáo vụ).

1.2. Ngữ cảnh và lý do thực hiện
1.2.1. Bài toán tối ưu tổ hợp: tính cần thiết và các khó khăn
Bài tốn tối ưu tổ hợp là lớp bài tốn trong đó chúng ta phải đưa ra lời giải quyết
định thỏa mãn một số những ràng buộc và đồng thời tối ưu hóa một hoặc nhiều những
mục tiêu có tính mâu thuẫn với nhau (ví dụ: trong bài tốn lên kế hoạch sản xuất, chất
lượng sản phẩm, tốc độ sản xuất, hiệu quả sản xuất và chi phí sản xuất là những mục
tiêu có tính mâu thuẫn với nhau).

Trên thực tế hiện nay, các bài tốn tối ưu hóa tổ hợp xuất hiện rất phổ biến trên
mọi khía cạnh của cuộc sống, từ sản xuất, năng lượng, vận chuyển hậu cần, giao
thông, tổ chức hành chính, y tế, etc … Việc giải quyết tốt các bài toán như vậy là rất
quan trọng, bởi chất lượng của các phương án đưa ra liên quan trực tiếp đến chất


lượng của cuộc sống chúng ta: công việc sản xuất được tối ưu hơn giúp đưa ra các
sản phẩm có chất lượng tốt mà giá thành hợp lý; năng lượng được sử dụng tối ưu nên
tiết kiệm hơn mà vẫn đảm bảo được hiệu năng; việc xếp lịch được tối ưu giúp cho
mọi người làm việc hiệu quả hơn và tránh được những rắc rối không mong muốn
(trùng thời gian, khơng cân đối, v.v…). Có rất, rất nhiều những ví dụ tương tự như
vậy, qua đó thể hiện mức độ phổ biến và nhu cầu giải quyết của các bài tốn tối ưu
hóa tổ hợp trong cuộc sống là rất lớn.
Tuy rất phổ biến và cần thiết như vậy, việc giải các bài tốn tối ưu hóa tổ hợp
nhìn chung gặp nhiều khó khăn. Các bài tốn này thuộc lớp NP-đầy đủ, trong đó
chúng ta có thể kiểm chứng nhanh chóng bất kỳ một lời giải nào có phải là lời giải
thỏa mãn cho bài tốn hay khơng (trong thời gian đa thức), nhưng hiện chưa có cách
nào tìm ra lời giải thỏa mãn một cách hiệu quả (độ phức tạp thuật toán vẫn là độ phức
tạp lũy thừa) [2, 6]. Nói cách khác, thời gian thực thi của tất cả các thuật toán hiện tại
cho những bài toán này đều tăng rất nhanh theo kích thước bài tốn.

1.2.2. Các phương pháp giải quyết
Mặc dù các bài toán tối ưu hóa tổ hợp rất khó để giải quyết, các nhà nghiên
cứu về tối ưu hóa trong những năm qua vẫn cố gắng nghiên cứu tìm ra các phương
pháp để giải các bài tốn này một cách tốt nhất có thể được. Có thể chia các phương
pháp thành hai dạng chính:
-

Các phương pháp giải đúng: tiêu biểu có thể kể đến
o Constraint programming (Quy hoạch ràng buộc): là khn mẫu lập

trình trong đó mối quan hệ của các biến quyết định được biểu diễn bằng
các ràng buộc. Người dùng có thể sử dụng các ràng buộc và các biến
quyết định để mơ hình hóa bài tốn cần giải, sau đó sử dụng các phương
pháp cắt tỉa khơng gian tìm kiếm dựa vào sự lan truyền của các ràng
buộc để tìm ra lời giải cho bài toán. Phương pháp này đảm bảo đưa ra
2


được lời giải tốt nhất nhờ vào việc tìm kiếm quay lui, không gian lời
giải được vét cạn. Ưu điểm của quy hoạch ràng buộc là người dùng có
thể sử dụng các ràng buộc được định nghĩa trước hoặc tự mình định
nghĩa để mơ hình hóa bài tốn, các ràng buộc này khá tự nhiên với cách
hiểu của con người và linh hoạt cho việc mơ hình hóa.
o Integer Linear Programming (Quy hoạch ngun): là khn mẫu lập
trình trong đó sử dụng các biến nguyên và sử dụng các quan hệ tuyến
tính để biểu diễn mơ hình bài tốn cần giải, sau đó sử dụng các phương
pháp như cắt tỉa, đơn hình, v.v… để tìm ra lời giải của bài tốn.
o Logic Programming (Quy hoạch logic): là khn mẫu lập trình trong
đó sử dụng các vị từ (có thể hiểu là các biến boolean, nhận giá trị true
hoặc false) để mơ hình hóa bài tốn thơng qua các mệnh đề, sau đó sử
dụng các giải thuật để tìm kiếm lời giải của bài tốn, phổ biến nhất là
tìm kiếm quay lui (backtracking search).
-

Các phương pháp xấp xỉ: sử dụng các metaheuristic, có thể chia thành 2 loại
o Local search (Tìm kiếm cục bộ): là thuật tốn xấp xỉ trong đó địi hỏi
chúng ta phải mơ hình hóa được khơng gian lời giải của bài toán và mối
quan hệ láng giềng giữa các lời giải. Trong quá trình tìm kiếm, giải
thuật sẽ di chuyển lần lượt qua các lời giải lân cận với lời giải hiện tại
tại mỗi bước với mong muốn tìm được lời giải tối ưu. Ưu điểm của tìm

kiếm cục bộ là có thể làm việc trong thời gian tùy ý, do đó có ích khi
giải quyết các bài toán tối ưu tổ hợp cần đưa ra một lời giải tốt trong
thời gian bị hạn chế. Tuy nhiên nhược điểm của tìm kiếm cục bộ là lời
giải tìm được có thể là khơng tối ưu nhất mà bị kẹt ở một tối ưu cục bộ.
Các metaheuristic là local search tiêu biểu có thể kể đến là hillclimbing, tabu search, simulated annealing, v.v…
3


o Global search (Tìm kiếm tồn cục): trái với local search – thực hiện
việc tìm kiếm lời giải tối ưu thông qua thông tin cục bộ của một lời giải
với các lời giải láng giềng của nó, tìm kiếm tồn cục thường dựa vào
thông tin của một quần thể các lời giải để tìm kiếm lời giải tối ưu. Các
metaheuristic là global search tiêu biểu có thể kể đến là genetic
algorithm, ant colony optimization, evolutionary computation, v.v…

1.2.3. Bài toán xếp lịch bảo vệ cao học
Bài toán xếp lịch cao học là một bài tốn tối ưu hóa tổ hợp xuất hiện ở các
trường đại học của Việt Nam hiện nay. Tại trường Bách Khoa Hà Nội nói riêng và
các trường đại học nói chung, nghiệp vụ quản lý xếp lịch bảo vệ của trường vẫn được
thực hiện một cách thủ công, bằng công sức và kinh nghiệm của con người. Phương
pháp này có nhiều nhược điểm, bởi nghiệp vụ xếp lịch bảo vệ cao học là một nghiệp
vụ phức tạp bởi nhiều các ràng buộc (các giáo viên của một hội đồng khơng trùng
nhau, các giáo viên khơng trùng kíp, các hội đồng khơng trùng kíp phịng, u cầu
giảng viên trong/ngồi trường cho các vị trí thành viên trong hội đồng, v.v…) mà
người xếp lịch thủ cơng rất khó khăn trong việc theo dõi và kiểm soát. Hơn nữa, kể
cả khi những ràng buộc chặt này được thỏa mãn, thì lịch bảo vệ được xếp bởi con
người khó lịng đạt được sự tối ưu với tổ hợp các mục tiêu phức tạp như: mức độ phù
hợp của các phản biện với đề tài, một giáo viên không ngồi quá nhiều hội đồng, v.v…
Do đó việc giải quyết bài tốn xếp lịch cao học tự động bằng thuật toán là nhu cầu
cần thiết.


1.2.4. Lý do thực hiện
Xuất phát từ nhu cầu thực tiễn của các bài tốn tối ưu hóa tổ hợp nói chung
(phần 1.2.1) và bài tốn xếp lịch bảo vệ cao học nói riêng (phần 1.2.3), chúng tơi:

4


-

Tìm hiểu việc sử dụng quy hoạch ràng buộc và tìm kiếm cục bộ trong việc giải
quyết các bài tốn tối ưu hóa tổ hợp với mong muốn có nền tảng kiến thức
vững chắc trong việc giải quyết các bài toán này.

-

Đề xuất một thuật toán hiệu quả giải quyết bài toán xếp lịch bảo vệ cao học,
sử dụng quy hoạch ràng buộc, tìm kiếm cục bộ dựa trên ràng buộc. Ngồi ra,
thuật tốn đề xuất cịn sử dụng phân cụm cân bằng để phân rã bài toán thành
các bài toán con và xử lý song song. Với thuật toán đề xuất, chúng tôi mong
muốn đây sẽ là một giải pháp được áp dụng vào thực tế để giảm thiểu công
sức của các giáo vụ và tăng chất lượng tối ưu của các lịch được xếp.

1.3. Nội dung luận văn
Luận văn gồm có 5 chương chính:
Chương 1: Giới thiệu đề tài. Giới thiệu đề tài thực hiện
Chương 2: Cơ sở lý thuyết. Nêu lên các cơ sở lý thuyết về bài tốn tối ưu hóa tổ hợp,
bài tốn xếp lịch bảo vệ cao học, các hướng tiếp cận giải bài tốn tối ưu tổ hợp như
tìm kiếm cục bộ, quy hoạch ràng buộc, tìm kiếm cục bộ dựa trên ràng buộc và các kỹ
thuật bổ trợ như Loại bỏ đối xứng, Phân rã bài toán, Phân cụm.

Chương 3: Đề xuất thuật toán giải bài toán xếp lịch bảo vệ cao học. Trình bày thuật
tốn đề xuất với các phương pháp sử dụng để cải thiện mơ hình hóa bài tốn và các
phương pháp sử dụng để tìm kiếm lời giải cho bài tốn, sau đó là thực nghiệm đánh
giá so sánh kết quả của thuật toán đề xuất.
Chương 4: Kết luận và các hướng phát triển. Tổng hợp các công việc đã làm được
và các hướng phát triển trong tương lai.

5


Chương 2: Cơ sở lý thuyết
2.1. Bài toán tối ưu hóa tổ hợp
2.1.1. Một số khái niệm
Như phần 1.2.1 đã giới thiệu, bài tốn tối ưu hóa tổ hợp là lớp bài tốn trong
đó chúng ta phải đưa ra lời giải/ quyết định thỏa mãn một số những ràng buộc/ giới
hạn và đồng thời tối ưu hóa một hoặc nhiều những mục tiêu có tính mâu thuẫn với
nhau. Đây là những bài tốn xuất hiện và có vai trị quan trọng trên mọi lĩnh vực của
cuộc sống, từ năng lượng, giao thơng vận tải, tổ chức hành chính, sản xuất, v.v… Sau
đây là định nghĩa cụ thể hơn cho các khái niệm liên quan và cho bài toán tối ưu hóa
tổ hợp.
Định nghĩa 2.1: Biến quyết định của bài tốn (Decision variable)
Biến quyết định của bài tốn tối ưu hóa tổ hợp là một biến nằm trong mơ hình
của bài tốn mà người ra quyết định có thể kiểm sốt được giá trị của biến đó và cần
xác định giá trị cho biến đó.
Biến quyết định có thể coi như những tế bào xây dựng nên bài toán tối ưu hóa tổ
hợp. Đó khơng phải là những biến ngẫu nhiên, người ra quyết định hồn tồn có thể
kiểm sốt và quyết định được giá trị của nó. Ví dụ: số lượng những chiếc xe sẽ được
sản xuất, giá thành của một chiếc xe, v.v…. Biến quyết định của bài toán thường
được ký hiệu là x, và tập hợp các biến quyết định của bài toán là X.
Định nghĩa 2.2: Miền xác định của biến quyết định (Domain)

Miền giá trị của biến quyết định là tập hợp các giá trị có thể gán tới các biến đó.
Miền quyết định của biến có thể là một tập hữu hạn hoặc vơ hạn các giá trị, miền
đó có thể là liên tục và rời rạc. Trong khuôn khổ của luận văn, chúng tôi chỉ xét các
bài tốn tối ưu hóa tổ hợp rời rạc, trong đó miền của tất cả các biến quyết định cấu

6


thành nên bài toán là hữu hạn và rời rạc. Miền xác định của biến quyết định x thường
được ký hiệu là 𝐷𝑥 .
Định nghĩa 2.3: Ràng buộc (Constraint)
Một ràng buộc của bài tốn tối ưu hóa tổ hợp là một điều kiện mà một tập các
biến quyết định của bài tốn cần thỏa mãn.
Ví dụ: 𝑥1 + 𝑥2 < 3, 𝑥3 ≥ 𝑥4 , 𝑣. 𝑣 …
Một ràng buộc được định nghĩa trên các biến quyết định của bài toán. Trong
thực tế, ràng buộc là điều chúng ta rất thường gặp, ví dụ: ngân sách chi tiêu khơng
vượt q một con số nhất định, giá bán của chiếc xe khơng được thấp hơn tổng chi
phí sản xuất ra nó, v.v… Ràng buộc của bài toán thường được ký hiệu là c, tập các
ràng buộc của bài toán thường được ký hiệu là C.
Định nghĩa 2.4: Hàm mục tiêu của bài toán (Objective function)
Hàm mục tiêu của bài toán tối ưu hóa tổ hợp là một hàm được định nghĩa trên
một tập các biến quyết định và cần được tối ưu hóa (cực đại hóa hoặc cực tiểu hóa).
Ví dụ: 𝑓 = 𝑥1 × 𝑥2 với:
-

𝑥1 là biến quyết định thể hiện giá thành sản phẩm.

-

𝑥2 là biến quyết định thể hiện số lượng của sản phẩm bán ra.


-

f là hàm mục tiêu thể hiện doanh thu từ việc bán sản phẩm, cần được cực đại
hóa.
Hàm mục tiêu cũng là khái niệm chúng ta rất thường gặp trong cuộc sống, như

cực đại hóa doanh thu, cực tiểu hóa chi phí, v.v… Hàm mục tiêu thường được ký hiệu
là f, tập hợp các hàm mục tiêu của bài toán ký hiệu là F.
Định nghĩa 2.5: Lời giải của bài toán (Solution)
Một lời giải của bài tốn tối ưu hóa tổ hợp là một bộ giá trị xác định gán cho
tập các biến quyết định của bài toán: s = {<𝑥𝑖 , 𝑣𝑖 >, 𝑥𝑖 ∊ X, 𝑣𝑖 ∊ 𝐷𝑥𝑖 }.

7


Việc giải bài toán tối ưu tổ hợp thực chất là đi tìm lời giải tối ưu cho bài tốn,
do đó các thuật tốn tìm kiếm như Tìm kiếm cục bộ có thể áp dụng được vào cho việc
giải các bài toán dạng này. Lời giải của bài toán thường được ký hiệu là s.
Định nghĩa 2.6: Lời giải chấp nhận được của bài toán (Feasible Solution)
Một lời giải chấp nhận được của bài tốn tối ưu hóa tổ hợp là một lời giải thỏa
mãn mọi ràng buộc c trong tập ràng buộc C của bài tốn.
Định nghĩa 2.7: Khơng gian lời giải của bài tốn (Solution space)
Khơng gian lời giải của bài tốn tối ưu hóa tổ hợp là tập tất cả các lời giải có
thể của bài tốn.
Vì chúng ta đang chỉ xét các bài toán tối ưu hóa tổ hợp rời rạc, với miền giá trị
của các biến là rời rạc và hữu hạn, do đó khơng gian lời giải của bài toán là hữu hạn.
Tuy vậy, khơng gian lời giải của bài tốn tối ưu hóa tổ hợp thường có kích thước vơ
cùng lớn, tăng với tốc độ hàm mũ theo kích thước của tập các biến quyết định, do đó
việc xét hết tồn bộ lời giải trong khơng gian là khơng thể, địi hỏi phải có những

chiến lược tìm kiếm phù hợp. Khơng gian lời giải của bài toán thường được ký hiệu
là S.
Định nghĩa 2.8: Bài tốn tối ưu hóa tổ hợp
Một bài tốn tối ưu hóa tổ hợp là một bộ ba (X, C, F), với:
-

X: tập hợp các biến quyết định của bài toán.

-

C: tập hợp các ràng buộc của bài toán.

-

F: tập hợp các hàm mục tiêu của bài toán.

Nhiệm vụ của việc giải bài tốn tối ưu hóa tổ hợp là tìm ra lời giải s, thỏa mãn
mọi ràng buộc c ∊ C và tối ưu hóa đồng thời các hàm mục tiêu 𝑓 ∊ F.
Trong bài toán tối ưu hóa tổ hợp đa mục tiêu, việc một lời giải tối ưu hóa tuyệt đối
tồn bộ các hàm mục tiêu là rất hiếm khi xảy ra, do đó các khái niệm trội Pareto
(Pareto dominance) và biên Pareto (Pareto front) được định nghĩa.

8


Định nghĩa 2.9: Trội Pareto (Pareto dominance)
Xét 2 vector 𝐹1 = [𝑓11 , 𝑓21 ,…𝑓𝑛1 ] và 𝐹2 = [𝑓12 , 𝑓22 , … 𝑓𝑛2 ] là 2 vector n chiều,
khi đó ta nói vector 𝐹1 trội Pareto hơn 𝐹2 nếu 𝑓𝑖1 ≥ 𝑓𝑖2 với mọi i và tồn tại ít nhất 1
số k sao cho 𝑓𝑘1 > 𝑓𝑘2 , ký hiệu là 𝐹1 ≻ 𝐹2 .
Ví dụ: 𝐹1 = [3, 4], 𝐹2 = [3, 3] , ta có 𝐹1 ≻ 𝐹2 .

Trong bài tốn tổng qt, có thể coi bài tốn tối ưu hóa đa mục tiêu cần cực tiểu
hóa tất cả các hàm mục tiêu. Khi đó, nếu ta có 2 lời giải 𝑠1 và 𝑠2 đều là lời giải chấp
nhận được các ràng buộc và ứng với 2 vector giá trị các hàm mục tiêu 𝐹1 và 𝐹2 , nếu
ta có 𝐹1 ≻ 𝐹2 thì chắc chắn lời giải 𝑠2 sẽ tốt hơn lời giải 𝑠1 .
Định nghĩa 2.10: Biên Pareto (Pareto frontier)
Biên Pareto của bài toán tối ưu hóa tổ hợp là tập hợp P các lời giải chấp nhận
được s thuộc không gian các lời giải S sao cho với bất kỳ lời giải s nào thuộc P, không
tồn tại bất kỳ lời giải chấp nhận được s’ nào khác thuộc S mà có vector hàm mục tiêu
của s trội Pareto so với vector hàm mục tiêu của s’.
Trong các bài tốn tối ưu hóa tổ hợp đa mục tiêu, một hướng tiếp cận là xác định
được biên Pareto và chọn ra những lời giải trong đó để đưa cho người ra quyết định
(decision maker).
Ngồi ra, chuyển bài toán đa mục tiêu thành bài toán tối ưu hóa đơn mục tiêu với
phương pháp tổng trọng số chấp nhận cũng là một hướng tiếp cận được sử dụng phổ
biến.

2.1.2. Phương pháp tổng trọng số trong bài tốn tối ưu hóa tổ hợp đa mục
tiêu
Phương pháp tổng trọng số (weighted-sum) là một trong nhưng phương pháp đơn
giản nhưng hiệu quả để giải các bài toán tối ưu hóa tổ hợp đa mục tiêu. Ý tưởng của
phương pháp là sử dụng một vector các trọng số để chuyển hóa bài tốn tối ưu hóa
đa mục tiêu trở thành một bài tốn tối ưu hóa tổ hợp đơn mục tiêu. Cụ thể, dựa trên

9


đánh giá mức độ quan trọng của các hàm mục tiêu, người dùng có thể đưa ra một véc
tơ trọng số như sau:
𝑊 = [𝑤1 , 𝑤2 , … , 𝑤𝑛 ]
với n là số các hàm mục tiêu của bài tốn. Khi đó, chúng ta có thể định nghĩa được

hàm tổng trọng số các hàm mục tiêu sau:
𝑓𝑤𝑒𝑖𝑔ℎ𝑡𝑒𝑑−𝑠𝑢𝑚 = ∑ 𝑓𝑖 × 𝑤𝑖
𝑓𝑖 ∈𝐹

và sau đó, bài tốn tối ưu hóa đa mục tiêu được chuyển hóa thành bài tốn tối ưu hóa
đơn mục tiêu hàm mục tiêu này. Ưu điểm của phương pháp này là đơn giản nhưng
hiệu quả, tuy nhiên nhược điểm là người dùng cần ước lượng và xác định bộ trọng
số.

2.1.3. Ví dụ - Bài toán người du lịch (TSP)
Để minh họa cho bài toán tối ưu hóa tổ hợp, chúng tơi chọn bài tốn “Người du
lịch” (Traveling salesman problem – viết tắt TSP), bởi đây là bài tốn rất nổi tiếng,
có nguồn gốc từ lâu đời (năm 1930), có ứng dụng rộng rãi trong nhiều lĩnh vực như
lên kế hoạch, hậu cần, sản xuất microchip, v,v… [2].
Bài tốn TSP có thể được phát biểu như sau: Một nguời du lịch muốn tham quan
n thành phố 𝑇1 ,.., 𝑇𝑛 . Xuất phát từ một thành phố nào đó, người du lịch muốn đến tất
cả các thành phố còn lại, mỗi thành phố đi qua đúng 1 lần rồi quay trở lại thành phố
xuất phát. Gọi 𝑑𝑖𝑗 là chi phí đi từ thành phố 𝑇𝑖 đến thành phố 𝑇𝑗 . Hãy tìm một hành
trình thỏa yêu cầu bài tốn sao cho chi phí là nhỏ nhất.
Dưới dạng đồ thị, bài tốn có thể được mơ hình hóa như một đồ thị vơ hướng
có trọng số, trong đó mỗi thành phố là một đỉnh của đồ thị, khoảng cách giữa 2 thành
phố là một độ dài cạnh. Đồ thị này thường là một đồ thị đầy đủ. Nhiệm vụ của bài
10


tốn là tìm một chu trình đi lần lượt qua các đỉnh của đồ thị, cuối cùng quay về điểm
xuất phát, sao cho tổng độ dài của chu trình là nhỏ nhất.

Hình 1: Minh họa cho bài tốn TSP với 4 thành phố


Mơ hình hóa bài tốn: có nhiều cách để mơ hình hóa bài tốn, sau đây chúng
tơi giới thiệu 2 mơ hình khác nhau của bài tốn.
Mơ hình hóa 1
Đầu vào (input):
-

n – số thành phố

-

d[n][n] – mảng 2 chiều lưu giữ khoảng cách, d[i][j] là khoảng cách giữa thành
phố i và thành phố j

Biến quyết định (Decision variables):
-

x[1..n]: mảng n biến quyết định, x[i] = j thể hiện rằng trên chu trình, du khách
sẽ đi đến thành phố j sau khi ở thành phố i. Miền xác định: 𝐷𝑥[𝑖] = {1. . 𝑛}, ∀𝑖 ∈
{1. . 𝑛}

Ràng buộc (Constraints):
-

circuit(x): constraint định nghĩa trên mảng biến quyết định x, ràng buộc rằng
mảng x sẽ hình thành 1 chu trình với x[i] = j thể hiện rằng j là điểm đến tiếp
theo từ i

11



Hàm mục tiêu (Objective functions):
-

minimize ∑ 𝑑 [𝑖 ][𝑥[𝑖]]: Cực tiểu hóa đường đi của chu trình

Mơ hình hóa 2
Đầu vào (input):
-

n – số thành phố

-

d[n][n] – mảng 2 chiều lưu giữ khoảng cách, d[i][j] là khoảng cách giữa thành
phố i và thành phố j

Biến quyết định (Decision variables):
-

x[1..n][1..n]: mảng 𝑛2 biến quyết định, x[i][j] = 1 thể hiện rằng đường đi từ
thành phố i đến thành phố j nằm trong chu trình và ngược lại, x[i][j] = 0 thể
hiện đường đi từ thành phố i đến thành phố j khơng nằm trong chu trình. Miền
xác định: 𝐷𝑥[𝑖][𝑗] = {0,1}, ∀𝑖, 𝑗 ∈ {1. . 𝑛}.

Ràng buộc (Constraints):
-

∑𝑛𝑗=1 𝑥 [𝑖 ][𝑗] = 2, ∀𝑖 ∈ {1. . 𝑛}: ràng buộc thể hiện rằng với mọi thành phố
(đỉnh) có đúng duy nhất 2 đường đi (cạnh) với một đầu là thành phố đó, đảm
bảo mỗi thành phố có một đường vào và một đường ra.


-

∑𝑖,𝑗 ∈{1..𝑛},𝑖≠𝑗 𝑥 [𝑖 ][𝑗] ≤ |𝑆| − 1, ∀ 𝑆 ∁ 𝑉, 𝑆 ≠ ∅: ràng buộc ngăn cản khơng có
một chu trình nào được hình thành. Nếu khơng có ràng buộc này, n thành phố
có thể bị chia ra thành nhiều chu trình con.

Hình 2: Ví dụ về chu trình con của bài tốn TSP
12


Hàm mục tiêu (Objective functions):
-

minimize ∑ 𝑑 [𝑖 ][𝑗] × 𝑥 [𝑖 ][𝑗]: Cực tiểu hóa đường đi của chu trình

2.2. Bài tốn xếp lịch bảo vệ cao học (MTDT)
Như đã giới thiệu ở phần 1.2.3, bài toán xếp lịch bảo vệ cao học (Master Thesis
Defense Timetabling – MTDT) là một bài tốn tối ưu hóa tổ hợp xuất hiện ở các
trường đại học của Việt Nam hiện nay. Đây là một nghiệp vụ phức tạp với các ràng
buộc và mục tiêu mà người xếp lịch rất khó khăn trong việc theo dõi và kiểm sốt, do
đó nhu cầu giải bài tốn xếp lịch tự động là cần thiết.

2.2.1. Mơ tả bài toán
Bài toán xếp lịch bảo vệ cao học được phát biểu như sau:
Có n học viên, mỗi học viên có một đề tài bảo vệ do một giảng viên hướng dẫn,
đề tài đó thuộc 1 hướng nghiên cứu . Mỗi giảng viên có một só các hướng nghiên cứu
chuyên sâu được thể hiện bởi 1 danh sách các từ khóa chuyên ngành. Ở mỗi đợt bảo
vệ, các giảng viên trong trường và ngoài trường tham gia vào đợt bảo vệ, thời gian
các kíp và phịng được chọn trước. Bài toán đặt ra là xếp các giảng viên vào các hội

đồng bảo vệ của các học viên và phân kíp phịng cho các hội đồng. Mỗi một hội đồng
gồm năm giảng viên: chủ tịch hội đồng, phản biện 1, phản biện 2, thư ký và ủy viên
, mỗi 1 hội đồng diễn ra tại 1 phịng vào 1 kíp thời gian. Các giảng viên, kíp, phịng
được phân phải thỏa mãn các ràng buộc sau:
-

Năm giảng viên phân vào hội đồng phải khác nhau và khác giáo viên hướng
dẫn của học viên.

-

Chủ tịch hội đồng, phản biện 1, thư ký là các giảng viên trong trường, phản
biện 2 và ủy viên là các thành viên ngoài trường.

-

Các giảng viên chỉ được tham gia tối đa 1 hội đồng trong 1 kíp thời gian.

-

Trong 1 kíp thời gian ở 1 phịng, có tối đa 1 hội đồng.

-

Một giảng viên khơng thể ngồi phản biện ở quá nhiều hội đồng.
13


Ngồi ra việc xếp lịch cịn hướng đến việc tối ưu hóa mục tiêu:
-


Sự cân bằng trong việc ngồi hội đồng của các giáo viên.

-

Mức độ phù hợp cho phản biện 1 và phản biện 2 với hướng đề tài của học
viên trong các hội đồng là lớn nhất.

2.2.2. Mô hình tốn học của bài tốn
Từ bài tốn đã phát biểu ở trên, ta có thể lên mơ hình tốn học cho bài toán như
sau:
-

Dữ liệu đầu vào (Inputs):
+ S = {0,1, . . , 𝑛 − 1}: Tập n đề tài bảo vệ trong hội đồng, sup(i) là giảng viên

hướng dẫn của để tài thứ i
+ IP = {0,1, . . , 𝑝 − 1}: Tập p giảng viên trong trường
+ EP = {𝑝, 𝑝 + 1, . . , 𝑝 + 𝑞 − 1}: Tập q giảng viên ngoài trường
+ P = IP ∪ EP: Tập p+q giảng viên tham gia vào đợt bảo vệ
+ l(p): Học hảm học vị của giảng viên p, 𝑝 ∈ 𝑃 (0 cho GS.TS, 1 cho PGS, ..)
+ T = {0,1, … 𝑡 − 1}: Tập t kíp thời gian dùng cho đợt bảo vệ
+ R = {0,1, … 𝑟 − 1}: Tập r phòng dùng cho đợt bảo vệ
+ KW = {0,1, … 𝑘 − 1}: Tập k các từ khóa chuyên ngành
+ 𝐾𝑠𝑡 (s) = [𝑠𝑡𝑘𝑤0 , 𝑠𝑡𝑘𝑤1 , … , 𝑠𝑡𝑘𝑤𝑘−1 ]: Vector thể hiện độ phù hợp giữa đề
tài 𝑠 ∈ 𝑆 của đợt bảo vệ và các từ khóa chuyên ngành
+ 𝐾𝑝𝑓 (p) = [𝑝𝑓𝑘𝑤0 , 𝑝𝑓𝑘𝑤1 , … , 𝑝𝑓𝑘𝑤𝑘−1 ]: Vector thể hiện độ phù hợp giữa
giảng viên p ∈ 𝑃 của đợt bảo vệ và các từ khóa chuyên ngành
+ 𝑚(𝑠, 𝑝) = 𝐾𝑠𝑡 (s) . 𝐾𝑝𝑓 (p)𝑇 với 𝑠 ∈ 𝑆, 𝑝 ∈ 𝑃: Độ đo đánh giá mức độ phù hợp
của giảng viên với đề tài, xác định bằng tích vơ hướng giữa 2 vector thể hiện độ phù

hợp của giảng viên và đề tài
-

Các biến (Variables):

14


+ xp(𝑠, 𝑖) : giảng viên được phân vào vị trí thứ i của hội đồng có đề tài 𝑠 ∈ 𝑆,

với:
o 𝑥𝑝(𝑠, 1): giảng viên ngoài trường được phân làm phản biện 1 của hội
đồng, 𝑥𝑝(𝑠, 1) ∈ 𝐸𝑃
o 𝑥𝑝(𝑠, 2): giảng viên trong trường được phân làm phản biện 2 của hội
đồng, 𝑥𝑝(𝑠, 2) ∈ 𝐼𝑃
o 𝑥𝑝(𝑠, 3): giảng viên trong trường được phân làm chủ tịch của hội đồng,
𝑥𝑝(𝑠, 3) ∈ 𝐼𝑃
o 𝑥𝑝(𝑠, 4): giảng viên trong trường được phân làm thư ký của hội đồng,
𝑥𝑝(𝑠, 4) ∈ 𝐼𝑃
o 𝑥𝑝(𝑠, 5): giảng viên ngoài trường được phân làm ủy viên của hội đồng,
𝑥𝑝(𝑠, 5) ∈ 𝐸𝑃
+ 𝑥𝑡(𝑠): kíp thời gian được phân cho hội đồng có đề tài 𝑠 ∈ 𝑆 , 𝑥𝑡(𝑠) ∈ 𝑇
+ 𝑥𝑟(𝑠): phòng được phân cho hội đồng có đề tài 𝑠 ∈ 𝑆 , 𝑥𝑟(𝑠) ∈ 𝑅

-

Các đại lượng phụ thuộc biến (Invariants):
+ 𝑜(𝑝) = #{𝑥𝑝(𝑠, 𝑖) | (𝑖 ∈ {1, … , 5}) ˄ (𝑠 ∈ 𝑆) ˄ (𝑥𝑝(𝑠, 𝑖) = 𝑝)}, ∀ 𝑝 ∈ 𝑃 :

số


hội đồng mà giảng viên p tham dự
+ 𝑒(𝑝) = #{𝑥𝑝(𝑠, 𝑖) | (𝑖 ∈ {1,2}) ˄ (𝑠 ∈ 𝑆) ˄ (𝑥𝑝(𝑠, 𝑖) = 𝑝)}, ∀ 𝑝 ∈ 𝑃 : số hội
đồng mà giảng viên p làm phản biện
+ 𝑚𝑖𝑛𝑂 = 𝑚𝑖𝑛𝑝 ∈𝑃 {𝑜(𝑝)} : số hội đồng của giảng viên ngồi hội đồng ít nhất
tham dự
+ 𝑚𝑎𝑥𝑂 = 𝑚𝑎𝑥𝑝 ∈𝑃 {𝑜(𝑝)} : số hội đồng của giảng viên ngồi hội đồng nhiều
nhất tham dự

-

Các ràng buộc (Constraints):
+𝑥𝑝(𝑠, 𝑖) ≠ 𝑠𝑢𝑝(𝑠), ∀ 1 ≤ 𝑖 ≤ 5 , 𝑠 ∈ 𝑆 : thành viên của một
15

(0)


×