1.2.1 Mục đích của chương trình sắp xếp thời khóa biểu môn học Chương trình sắp xếp thời khóa biểu môn học có nhiệm vụ sắp xếp thời khóa biểu cho tất cả các lớp trong một học kỳ thỏa mãn
Trang 1Đại Học Quốc Gia TP Hồ Chí Minh TRƯỜNG ĐẠI HỌC BÁCH KHOA
-TRẦN SƠN HÀ
DÙNG PHƯƠNG PHÁP COLUMN GENERATION Đ Ể SẮP
XẾP THỜI KHÓA BIỂU MÔN HỌC
Chuyên ngành: Khoa Học Máy Tính
LUẬN VĂN THẠC SĨ
TP Hồ Chí Minh, tháng 12 năm 2008
Trang 2CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
Cán bộ hướng dẫn khoa học : Tiến sĩ Trần Văn Hoài
Luận văn thạc sĩ được bảo vệ tại
HỘI ĐỒNG CHẤM BẢO VỆ LUẬN VĂN THẠC SĨ
TRƯỜNG ĐẠI HỌC BÁCH KHOA, ngày 10 tháng 02 năm 2009
Trang 3ĐẠI HỌC QUỐC GIA TP HCM CỘNG HOÀ XÃ HỘI CHỦ NGHIÃ VIỆT
NAM TRƯỜNG ĐẠI HỌC BÁCH KHOA Độc Lập - Tự Do - Hạnh Phúc
-oOo -Tp HCM, ngày 10 tháng 02 năm 2009
NHIỆM VỤ LUẬN VĂN THẠC SĨ
Chuyên ngành : Khoa Học Máy Tính
Khoá (Năm trúng tuyển) : 2006
1- TÊN ĐỀ TÀI:
“Dùng phương pháp Column Generation đ ể sắp xếp thời khóa biểu môn học”
2- NHIỆM VỤ LUẬN VĂN
Generation
biểu môn học
Đại Học Bách Khoa thành phố Hồ Chí Minh
3- NGÀY GIAO NHIỆM VỤ : 21/01/2008
4- NGÀY HOÀN THÀNH NHI ỆM VỤ : 10/02/2009
5- HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: Tiến sĩ Trần Văn Hoài
Nội dung và đề cương Luận văn thạc sĩ đã được Hội Đồng Chuyên Ngành thông qua
(Họ tên và chữ ký)
Tiến sĩ Trần Văn Hoài
Trang 4LỜI CẢM ƠN
Tôi xin gởi lời cảm đến gia đình, những người luôn sát cánh động vi ên, và tạo mọi điều kiệntốt để tôi hoàn thành luận văn này
Xin chân thành cám ơn anh Nguy ễn Dương Tường Lam, giám đốc công ty TNHH Niềm Tin
Việt, người đã tạo điều kiện cho tôi học Cao học trong thời gian công tác tại công ty Nếukhông có sự giúp đỡ quý báu của anh th ì tôi khó có thể hoàn thành khóa học của mình
Xin chân thành cám ơn th ầy TS Trần Văn Hoài, đã nhiệt tình hướng dẫn tôi hoàn thành tốt
luận văn này
Cuối cùng, xin gởi lời cám ơn đến các thầy cô đã tận tình dạy dỗ và giúp đỡ trong suốt thờigian tôi tham gia khóa h ọc
Trang 5TÓM TẮT
Bài toán sắp xếp thời khóa biểu môn học l à một bài toán tối ưu tổ hợp Các hướng tiếp cậncho bài toán này chủ yếu là lập trình ràng buộc và tìm kiếm cục bộ Luận văn n ày trình bàymột phương pháp mới, dựa vào nền tảng quy hoạch nguyên, đó là phương pháp ColumnGeneration Ý tưởng của phương pháp này là tạo ra các “column”, mỗi column sẽ đại diệncho một nghiệm của bài toán Các column này được tạo một phần hay tạo to àn bộ là tùythuộc vào kích thước của dữ liệu bài toán Sau đó, sử dụng các giải thuật của quy hoạch
nguyên để tìm ra nghiệm tối ưu
Luận văn đã sử dụng BCP framework để xây dựng ch ương trình sắp xếp thời khóa biểu mô nhọc cho trường Đại học Bách Khoa Tp HCM và tiến hành thử nghiệm, đánh giá trên dữ liệuthực
Trang 6The uinversity course timetabling is a well -studied combinatorial optimization problem Thecommon approachs for this problem are constraint programming and local search In this
thesis, we’d like to present a new approach, based on integer programming That is Column
Generation The basic idea of this approach is to produce some columns, each columnrepresents to a solution These columns are produced totally or partially depend on theproblem Subsequently, some integer programming algorithms are used to give an optimalsolution
We use BCP framework to implement university timetabling program for HCMC University
of Technology and test, evaluate problem’s results on real data
Trang 7MỤC LỤC
LỜI CẢM ƠN i
TÓM TẮT ii
ABSTRACT iii
MỤC LỤC iv
DANH MỤC HÌNH ẢNH vi
DANH MỤC BẢNG vii
Chương 1 GIỚI THIỆU 1
1.1 Mục tiêu nghiên cứu 1
1.2 Nhiệm vụ của luận văn 1
1.2.1 Mục đích của chương trình sắp xếp thời khóa biểu môn học 1
1.2.2 Các quy tắc học vụ 1
1.2.3 Các yêu cầu đặt ra 2
1.3 Kết quả của luận văn 3
1.4 Cấu trúc nội dung luận văn 4
Chương 2 CÁC CÔNG TRÌNH LIÊN QUAN 5
2.1 Phương pháp xây dựng tuần tự 5
2.2 Lập trình ràng buộc 5
2.3 Tìm kiếm cục bộ 6
2.4 Quy hoạch nguyên 7
2.5 Kết luận 7
Chương 3 CƠ SỞ LÝ THUYẾT 9
3.1 Quy hoạch tuyến tính 9
3.1.1 Định nghĩa quy hoạch tuyến tính 9
3.1.2 Sự tồn tại nghiệm và tính chất tập nghiệm của quy hoạch tuyến tính 11
3.1.3 Phương pháp đơn hình để giải bài toán quy hoạch tuyến tính chính tắc 11
3.1.4 Tìm phương án cực biên xuất phát và cơ sở xuất phát – Phương pháp biến giả cải biên 18
3.1.5 Đối ngẫu 20
3.2 Quy hoạch nguyên 22
3.2.1 Phương pháp nhánh cận 23
3.2.2 Phương pháp mặt phẳng cắt 26
3.2.3 Phương pháp branch-and-cut 28
3.3 Column Generation 28
3.3.1 Giới thiệu 28
3.3.2 Phân rã Dantzig-Wolfe 29
3.3.3 Column Generation cho bài toán quy ho ạch tuyến tính 30
3.3.4 Column Generation cho bài toán Quy ho ạch nguyên 32
3.4 Kết luận 38
Chương 4 PHƯƠNG PHÁP GIẢI BÀI TOÁN SẮP XẾP THỜI KHÓA BIỂU MÔN HỌC 40
4.1 Giới thiệu 40
4.2 Mô tả bài toán 40
4.2.1 Các quy tắc học vụ 40
4.2.2 Các yêu cầu đặt ra 41
4.2.3 Mô hình hóa bài toán 42
Trang 84.3 Các thành phần chính của giải thuật 46
4.3.1 Khởi tạo nghiệm ban đầu 46
4.3.2 Branching 47
4.3.3 Pricing 48
4.3.4 Upper bounding 51
Chương 5 HIỆN THỰC VÀ THỬ NGHIỆM 53
5.1 Hiện thực bài toán sắp xếp thời khóa biểu môn học 53
5.1.1 BCP Framework 53
5.1.2 Tổ chức dữ liệu của bài toán 54
5.2 Thử nghiệm 56
5.2.1 Thống kế số liệu thử nghiệm ch ương trình sắp xếp thời khóa biểu môn học 56 5.2.2 Kết quả thử nghiệm 56
Chương 6 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 60
6.1 Kết luận 60
6.2 Hướng phát triển 60
TÀI LIỆU THAM KHẢO 62
Phụ lục A CƠ SỞ DỮ LIỆU THẬT CỦA CH ƯƠNG TRÌNH 64
Phụ lục B BCP FRAMEWORK 70
Phụ lục C CÁC THUẬT NGỮ 72
Trang 9DANH MỤC HÌNH ẢNH
Hình 3.1: Giải thuật đơn hình 18
Hình 3.2: Giải thuật hai pha 19
Hình 3.3: Giải thuật branch-and-bound 23
Hình 3.4: Giải thuật cutting-plane 28
Hình 3.5: Sơ đồ khối phương pháp Column Generation 32
Hình 3.6: Giải thuật branch-and-price 37
Hình 4.1: Ma trận các vector cột 47
Hình 4.2: Giải thuật local search cho b ài toán pricing 49
Hình 4.3: Giải thuật branch-and-bound cho bài toán pricing 51
Hình 4.4: Giải thuật tìm upper bound 52
Hình 5.1: Sơ đồ khối của BCP framework 54
Hình 5.2: Dữ liệu bài toán theo mô hình UML 55
Hình 5.3: Thử nghiệm cho 15 lớp 58
Trang 10DANH MỤC BẢNG
Bảng 3.1: Cặp bài toán quy hoạch tuyến tính đối ngẫu 20
Bảng 5.1: Bảng các số liệu thử nghiệm 56
Bảng 5.2: Bảng các kết quả cần t hống kê 57
Bảng 5.3: Thử nghiệm cho 5 lớp 57
Bảng 5.4: Thử nghiệm cho 10 lớp 58
Trang 11Chương 1 GIỚI THIỆU
1.1 Mục tiêu nghiên cứu
Trong những năm gần đây, trường Đại học Bách Khoa Tp HCM, cũng nh ư nhiều trường đạihọc khá trong thành phố, đã liên tục phát triển về số lượng các khoa cũng nh ư số lượng sinhviên vào học Bài toán này nếu được thực hiện bằng tay th ì rất phức tạp Do đó cần một
chương trình hỗ trợ sắp xếp thời khóa biểu ho àn toàn tự động Đứng trước nhu cầu trên, đã
có nhiều nghiên cứu của các học viên và sinh viên khóa trư ớc đề xuất các cách tiếp cận khácnhau Tuy nhiên, hầu hết các nghiên cứu này đều sử dụng kỹ thuật lập tr ình ràng buộc vàtìm kiếm cục bộ để giải và kết quả là cho nghiệm khá tốt nhưng không tối ưu [18], [19]
Mục tiêu của luận văn này là nghiên cứu áp dụng một cách tiếp cận mới để giải b ài toán sắpxếp thới khóa biểu Đó l à phương pháp quy hoạch nguyên mà cụ thể là Column Generation.Thế mạnh của phương pháp này là giải ra nghiệm tối ưu và thích hợp cho các bài toán tối ưu
tổ hợp có kích thước lớn Đề tài này còn có nhiệm vụ nghiên cứu mô hình quy hoạchnguyên phù hợp với các ràng buộc mềm đặc thù của trường Đại học Bách Khoa Tp HCM.Tuy nhiên, kết quả thực hiện của luận văn cũng có thể mở rộng sang các c ơ sở đào tạo khácnếu tìm ra được cách mô hình hóa thích hợp
1.2 Nhiệm vụ của luận văn
Những đặc điểm của bài toán sắp xếp thời khóa biểu môn học th ường thay đổi theo từng
trường đại học/cao đẳng Ri êng đề tài nghiên cứu này chủ yếu dựa vào những đặc trưng
riêng của việc sắp xếp thời khóa biểu mô n học ở trường Đại học Bách Khoa Tp HCM
1.2.1 Mục đích của chương trình sắp xếp thời khóa biểu môn học
Chương trình sắp xếp thời khóa biểu môn học có nhiệm vụ sắp xếp thời khóa biểu cho tất cả
các lớp trong một học kỳ thỏa mãn tất cả các ràng buộc cứng và tối ưu hóa các ràng buộcmềm
1.2.2 Các quy tắc học vụ
Các thuật ngữ
đây, ta giả thiết rằng trong một học k ì, tất cả sinh viên thuộc cùng lớp cứng sẽ học
cùng lớp môn học ở tất cả các môn học mà các sinh viên này có đăng kí môn h ọc
học Mỗi lớp môn học do một hay nhiều lớp cứng ghép lại nhằm đủ một số l ượng
sinh viên nào đó để mở lớp
tuần Mỗi cụm tiết học của một lớp môn học cụ thể n ào đó được gọi là một phân tiết
Trang 12 Phòng học (room): Mỗi lớp môn học có thể đ ược tổ chức trong một ph òng học tạimột thời điểm nhất định Mỗi ph òng học được đặc trưng bởi sức chứa, loại phònghọc.
Quy trình nghiệp vụ
Trước khi bắt đầu học kì mới, Phòng Đào tạo sẽ dựa vào thông tin về chương trình đào tạo,
lớp sinh viên (lớp cứng) để tạo ra danh sách các lớp môn học dự kiến sẽ đ ược tổ chức giảngdạy trong học kì Mỗi lớp môn học có thể có một hay nhiều phân tiết trong tuần Thông tin
về các phòng học trong trường cũng được tập hợp
lại để làm dữ liệu đầu vào khi xếp thời khóa biểu
Các phân tiết là đơn vị được xếp thời khoá biểu : phân tiết được diễn ra vào tiết nào của một
ngày trong tuần, và tại phòng nào
Thời khoá biểu cho một lớp cứng , hay cho một sinh viên sẽ được trích ra dựa vào
thời khoá biểu đã xếp cho các phân tiết
1.2.3 Các yêu cầu đặt ra
Chương trình sắp xếp thời khóa biểu môn học phải đáp ứ ng các yêu cầu sau: thỏa mãn các
ràng buộc cứng, và tối ưu hóa các ràng buộc mềm
Ràng buộc cứng về xếp thời gian cho phân tiết
nhau
phân tiết không được cắt ra thành các tiết cuối buổi sáng và đầu buổi chiều hay cuồi
ngày này và đầu ngày kia
đó
Ràng buộc mềm về xếp thời gian cho phân tiết
hai buổi sáng và chiều
học nào đó phải liên tục, không có những tiết trống xen giữa
rải rác ở các buổi học trong tuần, khiến sinh vi ên phải vào trường quá nhiều buổi học
Trang 13 Các phân tiết cùng một môn học của các lớp cứng n ên được xểp rải rác vào các tiếthọc trong tuần để tiện cho việc xếp giảng vi ên.
Ràng buộc cứng về xếp phòng cho phân tiết
Ràng buộc mềm về xếp phòng cho phân tiết
đó
những phòng học gần nhau
lớn được xếp cho phân tiết có số sinh vi ên nhỏ hơn nhiều
Tóm lại bài toán sắp xếp thời khóa biểu bao gồm nhiều loại r àng buộc khác nhau mà chươngtrình phải cố gắng thỏa mãn Đối với các ràng buộc cứng, đây là bài toán thỏa mãn ràngbuộc Đối với ràng buộc mềm, đây là bài toán tối ưu tổ hợp
Dữ liệu mẫu cho bài toán sắp xếp thời khóa biểu môn học gồm 378 lớp, 1864 phân tiết và
212 phòng học
1.3 Kết quả của luận văn
Kết quả của luận văn gồm những nội dung chính sau:
được công bố gần đây trong đó chú ý đến các nghi ên cứu sử dụng quy hoạch nguy ên
Đề tài cũng tổng hợp lý thuyết về quy hoạch nguyên và Column Generation đ ể áp
dụng vào bài toán sắp xếp thời khóa biểu môn học
Đề tài cũng nghiên cứu mô hình sắp xếp thời khóa biểu hiện tại của tr ường Đại họcBách Khoa Tp.HCM, phân tích ưu như ợc điểm của mô hình này khi áp dụng phươngpháp Column Generation đ ồng thời cũng đề xuất ra mô h ình mới thỏa mãn các ràng
buộc cứng cũng như các ràng buộc mềm
khóa biểu môn học cho trường Đại học Bách Khoa Tp HCM
cũng phát hiện các hiệu ứng bất th ường và đã khắc phục các hiệu ứng n ày
Trang 141.4 Cấu trúc nội dung luận văn
Nội dung của luận văn đ ược trình bày thành 6 chương Trong chương 1, l uận văn giới thiệumục tiêu nghiên cứu của đề tài qua đó nêu rõ bài toán sắp xếp thời khóa biểu môn học của
trường Đai học Bách Khoa Tp HCM, xác định cụ thể các mục ti êu và kết quả đạt được của
luận văn
Trong chương 2, luận văn trình bày các công trình đã nghiên cứu gần đây có liên quan đến
nhiệm vụ của luận văn, phần n ày tập trung nêu rõ các tác giả và các công trình họ đã làm
được, đồng thời nêu lên các vấn đề còn tồn tại trong các nghiên cứu trước, qua đó nêu lênphương hướng mà đề tài sẽ giải quyết
Trong chương 3, luận văn trình bày cơ sở lý thuyết cho đề tài Phần đầu là lý thuyết về quy
hoạch tuyến tính Đây chính là cơ sở cho các phương pháp giải bài toán quy hoạch tuyếntính và quy hoạch nguyên Phần tiếp theo trình bày lý thuyết về quy hoạch nguyên, trongphần này giới thiệu hai phương pháp thông dụng để giải bài toán quy hoạch nguyên, đó là
phương pháp branch-and-bound và branch-and-cut Phần cuối cùng là cơ sở lý thuyết củaphương pháp Column Generation đ ể giải bài toán quy hoạch nguyên cỡ lớn Đây chính làphương pháp mà luận văn sử dụng để giải b ài toán sắp xếp thời khóa biểu môn học
Trong chương 4, luận văn trình bày chi tiết mô hình bài toán sắp xếp thời khóa biểu môn
học, phương pháp Column Generation đ ể giải bài toán trong đó gồm các giai đoạn: tạo ra lờigiải khả thi ban đầu, giai đoạn branching v à giai đoạn tạo ra các column
Trong chương 5, luận văn trình bày cách thức hiện thực bài toán sắp xếp thời khóa biểu môn
học bao gồm trình bày tổng quan BCP framework l à framework mà đề tài sử dụng để hiệnthực Luận văn cũng trình bày các mô hình d ữ liệu sử dụng trong bài toán Phần cuối cùng làcác thử nghiệm của bài toán
Chương 6 trình bày kết luận và hướng phát triển cho đề t ài
Trang 15Chương 2 CÁC CÔNG TRÌNH LIÊN QUAN
2.1 Phương pháp xây dựng tuần tự
Đây là nhóm phương pháp ra đ ời sớm nhất để giải bài toán sắp xếp thời khóa biểu môn họctrong trường học Theo những ph ương pháp này, các môn h ọc được chia tiết học tuần tự
từng môn một cho đến khi tất cả các môn học đ ã được chia Tiêu biểu của nhóm phươngpháp này là giải thuật tô màu đồ thị (graph coloring) Mỗi đỉnh của đồ thị là một môn học.Một cạnh nối hai đỉnh đó nếu hai môn học t ương ứng với mỗi đỉnh có cùng sinh viên đăng
ký Selim [20] đã sử dụng phương pháp tô màu đồ thị để sắp xếp thời khóa biểu môn học
trong đó các đỉnh được chia thành các tập khác nhau để giảm số m àu tô Neufeld và Tartar
[21] hiện thực giải thuật này cho bài toán lên lịch phân công giảng dạy (class-teacherscheduling) Trong thời gian gần đây có Asratian v à de Werra [22] cũng giải bài toán nàyvới nhiều nhóm giờ dạy khác nhau
Nhược điểm chính của phương pháp tô màu đồ thị cho bài toán sắp xếp thời khóa biểu môn
học là giải thuật này khó thích ứng với lớp bài toán có nhiều ràng buộc, nhất là các bài toán
có thêm các ràng buộc mềm do việc diễn tả quá nhiều r àng buộc sẽ làm mô hình đồ thị trởnên rất phức tạp, việc tối ưu cho các ràng buộc mềm không còn hiệu quả
2.2 Lập trình ràng buộc
Dùng lập trình ràng buộc, thông qua các ngôn ngữ lập tr ình ràng buộc (Constraint LogicProggramming - CLP) hoặc các giải thuật giải hệ r àng buộc để giải bài toán sắp xếp thờikhóa biểu môn học Các ngôn ngữ lập tr ình ràng buộc khá phổ biến là CHIP, OZ,
CLP(FD),v.v…
Để tìm kiếm lời giải, CLP sẽ sinh ra các trị cho biến, lan truyền các r àng buộc để loại bỏ các
nhánh không cần thiết trong quá tr ình tìm kiếm CLP sử dụng ph ương pháp tìm kiếm có
quay lui để hướng quá trình tìm kiếm sang các nhánh khác kh i các ràng buộc bị vi phạm
Azevedo và Barahoma [8] đã sử dụng ngôn ngữ lập tr ình ràng buộc DOMLOG kết hợp vớiheuristic kiểm tra hướng tới để sắp xếp thời khóa biểu cho tr ường đại học Lisbon
Zervoudakis và Stamatopoulus [14] đã sử dụng thư viện lập trình ràng buộc có hỗ trợ hướng
đối tượng ILOG SERVER C++ để sắp xếp thời khóa biểu cho khoa Công nghệ thông tin v à
Truyền thông của trường đại học Athens Tác giả đ ã sử dụng phương pháp tìm kiếm theochiều sâu (depth-first search) và heuristics th ứ tự biến (variables ordering heuristic) đ ể sắpxếp 68 môn học
Ưu điểm chính của nhóm ph ương pháp lập trình ràng buộc là thời gian phát triển nhanh,
thích hợp vời bài toán có nhiều ràng buộc Nhược điểm chính là nó không giải quyết hữuhiệu đồng thời cả ràng buộc cứng và ràng buộc mềm, tức là trong trường hợp các ràng buộc
được phân cấp có nhiều mức r àng buộc có độ ưu tiên khác nhau
Trang 162.3 Tìm kiếm cục bộ
Trong nhóm này có 3 phương pháp thư ờng hay được sử dụng là: giải thuật di truyền
(Genetic Algorithm), mô ph ỏng luyện kim (Simulated Annealing) và tìm ki ếm Tabu (Tabu
Search) Đặc điểm của tìm kiếm heuristics là có thể tránh rơi vào tối ưu cục bộ, việc tìm
kiếm cũng được thực hiện có hệ thống, nh ưng không quét hết được không gian nghiệm hoặc
có cách để loại bỏ bớt không gian nghiệm n ên dẫn đến nghiệm tìm được thông thường là
không tối ưu và cũng không thể chứng minh l à tối ưu ngay khi đó là nghi ệm tối ưu
Giải thuật di truyền là chiến lược tìm kiếm dựa vào sức mạnh của quần thể, mô phỏng theoquá trình chọn lọc tự nhiên trong giới sinh vật Giải thuật luôn luôn l ưu giữ một tậphợp(quần thể) các lời giải khả thi, thực hiện các phép toán lai ghép các cá thể bố mẹ hoặc
đột biến để tạo ra các cá thể con Sau đó thực h iện việc tái tạo lại quần thể bằng cách lựa
chọn các cá thể từ quần thể hiện có theo nguy ên tắc các cá thể đời sau phải tốt (thích nghi)
hơn các cá thể đời trước Cứ tiếp tục như vậy cho đến khi đạt đ ược lời giải tốt Erben v à
Keppler [9] đã dùng giải thuật di truyền cho b ài toán sắp xếp thời khóa biểu cho tr ường đại
mất hết 8.5 giờ
Mô phỏng luyện kim là chiến lược tìm kiếm phỏng theo quá trình luyện kim trong thực tế
Đầu tiên sẽ đốt nóng khối kim loại lên một nhiệt độ rất cao, sau đó l à quá trình làm nguội
khối kim loại đến một nhiệt độ gọi là điểm đóng băng Chuỗi các nhiệt độ v à thời gian luyệnkhối kim loại dưới nhiệu độ đó được gọi là lịch biểu làm nguội Việc mô phỏng quá tr ìnhluyện kim vào các bài toán tối ưu tổ hợp đã được Kirkpatrick và các đồng tác giả [10] giớithiệu vào năm 1983 Giải thuật bắt đầu bằng cách tạo ngẫu nhi ên một số lời giải Sau đóviệc tìm kiếm các lời giải láng giềng đ ược điều khiển bởi lịch làm nguội Elmohammed [11]
sử dụng giải thuật luyện kim với nhiều lịch biểu làm nguội khác nhau cho bài toán sắp xếpthời khóa biểu môn học của tr ường đại học Syracuse Tác giả đ ã tiến hành thử nghiệm chonhiều lịch biểu làm nguội và đạt được kết quả tốt hơn so với các phương pháp khác
Tìm kiếm tabu là một giải thuật tìm kiếm cục bộ nhưng có khả năng thoát khỏi các điểm tối
ưu cục bộ Cơ chế tìm kiếm dựa trên giải thuật leo đồi (hill-climbing algorithm) nhưng nó
có sử dụng một danh sách (gọi là danh sách tabu) chứa các bước chuyển mà nó đã thực hiệnnhằm tránh rơi vào điểm cục bộ Chiều dài của danh sách tabu sẽ đ iều khiển chiến lược tìmkiếm Nếu cần đa dạng hóa quá tr ình tìm kiếm (diversification), tức là muốn nhảy đến mộtkhông gian khác có kỳ vọng hơn thì duy trì danh sách tabu ng ắn (short-term tabu list) Nếuxét thấy không gian tìm kiếm hiện tại có khả năng đ em lại lời giải tốt thì nên tăng cường tìmkiếm (intensification), và duy trì danh sách tabu đủ dài (long-term tabu list)
Costa [12] đã sử dụng chiến lược tìm kiếm tabu với hai danh sách tabu cho b ài toán sắp xếpthời khóa biểu môn học Danh sách đầu ti ên là các bài giảng đã được sắp xếp vào các tiếthọc cụ thể trong tuần Các b ài giảng này không được sắp xếp lại nếu nó đ ã nằm trong danh
đã sắp xếp cho nó Tiết dạy l sẽ không được sắp xếp vào giờ học t nếu nó đã nằm trongdanh sách Tác giả sử dụng chiến lược đa dạng hóa không gian t ìm kiếm để điều khiển quá
Trang 17trình tìm kiếm Kết quả thử nghiệm cho thấy giải thuật có khả năng t ìm ra được lời giải khảthi Tuy nhiên, phải điều chỉnh nhiều thông số nh ư chiều dài và trọng số của danh sách tabu.
Alvarez-Valdes [13] áp dụng tìm kiếm tabu với hai pha để s ắp xếp lịch học cho các sinhviên thuộc khoa Toán của tr ường đại học Valencia Pha đầu ti ên là tạo ra các thời khóa biểutốt cho mỗi sinh viên Pha tiếp theo là dùng giải thuật tìm kiếm tabu với chiến lược tăng
cường để cải thiện lịch học cho mỗi sinh vi ên
Nói chung, các heuristics này là m ột chiến lược tiếp cận rất khả thi cho b ài toán sắp xếp thờikhóa biểu, đó là chỉ cần tìm ra các nghiệm xấp xỉ, chấp nhận đ ược trong một thời gian cho
phép Tuy nhiên nhóm phương pháp này ph ụ thuộc rất nhiều vào đặc trưng của bài toán, để
tạo ra một heuristic tốt th ì phải khảo sát kỹ lưỡng bài toán, phải tiến hành đo đạc thựcnghiệm nhiều mới điều chỉnh tốt các thông số Giải thuật di truyền cần phải điều chỉnh h àm
đánh giá độ thích nghi, các phép toán lai ghép lại “xa l ạ” với các ràng buộc Giải thuật mô
phỏng luyện kim thì phải có một lịch biểu làm nguội hợp lý và khó xác định nhiệt độ khởi
đầu Do đó việc áp dụng các ph ương pháp này vào thực tế thì lại khó khăn do người sử dụng
phải có hiểu biết về các ph ương pháp này
2.4 Quy hoạch nguyên
Đối với các bài toán có kích thước nhỏ, có thể áp dụng quy hoạch nguy ên để giải Phương
pháp này yêu cầu các ràng buộc phải được mô tả dưới các phương trình hoặc bất phươngtrình toán học Sử dụng chiến l ược nhánh và cận để tìm lời giải tối ưu, mỗi node trên câytìm kiếm là một bài toán quy hoạch tuyến tính dựa trên bài toán quy hoạch nguyên ban đầu
Đã có nhiều tác giả áp dụng phương pháp này như Breslaw [15], Shin và Sullivan [16],
Triphathy [17]
Với các bài toán có kích thước lớn, dữ liệu cho bài toán mô tả theo phương pháp này rất lớn,
do đó không thể giải trực tiếp ngay từ đầu đ ược, mà phải được tạo ra từ từ trong quá tr ình
giải Barnhard [1] và Maculan [2] đã đưa ra phương pháp Column Generation đ ể giải chobài toán quy hoạch nguyên có kích thước lớn Ý tưởng của phương pháp này khá đơn gi ản.Tại mỗi node trên cây tìm kiếm nhánh và cận (branch-and-bound tree), trước khi thực hiệnnới lỏng bài toán quy hoạch nguyên (LP relaxation) thành bài toán quy ho ạch tuyến tính,thực hiện gọi thủ tục sinh cột để tạo th êm các cột cho ma trận ràng buộc của bài toán quyhoạch tuyến tính, các cột đ ược tạo ra phải thỏa mãn thông số chi phí (reduced cost) không
âm để nhằm mục đích sinh ra các cột có lợi nhất cho b ài toán quy hoạch tuyến tính Chi tiết
của giải thuật sẽ được bàn kỹ trong chương sau Andrea [3] đã đưa ra phương hướng sửdụng phương pháp này cho bài toán s ắp xếp thời khóa biểu môn học trong đó các r àng buộcmềm sẽ được thỏa mãn trong thủ tục sinh cột Về thực nghiệm, Papousis [4] đã áp dụng
phương pháp này để sắp xếp thời khóa biểu cho một t rường trung học ở Hy Lạp
2.5 Kết luận
Qua nghiên cứu các công trình đã công bố, tôi rút ra một số kết luận sau:
buộc cho bài toán sắp xếp thời khóa biểu Có một số công tr ình sử dụng phương pháp
Trang 18quy hoạch nguyên Số lượng công trình sử dụng phương pháp Column Generation r ấtít.
toán có mô hình rất đơn giản Trong khi đó, mô hình sắp xếp thời khóa biểu của
trường Đại học Bách Khoa rất phức tạp với rất nhiều r àng buộc cứng và ràng buộc
mềm đặc thù Các đề tài này cũng tìm ra nghiệm tối ưu nhưng chỉ được thử nghiệmtrên dữ liệu có kích thước nhỏ so với số lượng dữ liệu rất lớn của tr ường Đại họcBách Khoa
Từ những kết luận trên và qua thảo luận với thầy hướng dẫn, tôi đã xác định một số vấn đềcần tập trung nghiên cứu như sau:
pháp Column Generation đ ể có cơ sở áp dụng cho đề tài
với phương pháp Column Generation
Generation
Trang 19Chương 3 CƠ SỞ LÝ THUYẾT
Chương này trình bày cơ sở lý thuyết và một số giải thuật quan trọng để giải b ài toán quy
hoạch nguyên
Phần đầu tiên giới thiệu về quy hoạch tuyến tính Phần n ày giới thiệu một số khái niệm vềquy hoạch tuyến tính Trong phần n ày cũng giới thiệu về giải thuật đơn hình, một giải thuậtquan trọng được sử dụng để giải hầu hết các b ài toán quy hoạch tuyến tính
Phần tiếp theo giới thiệu về quy hoạch hoạch nguy ên, là cách tiếp cận dưới góc độ toán họccho các bài toán tối ưu tổ hợp Phần này dựa vào các khái niệm đã có trong phần quy hoạchtuyến tính
Phần cuối cùng trình bày phương pháp Column Generation Đây là phương pháp đư ợc sửdụng để giải các bài toán quy hoạch nguyên cỡ lớn Đây cũng là phương pháp mà đề tài ápdụng để giải bài toán sắp xếp thời khóa biểu
3.1 Quy hoạch tuyến tính
Những ý niệm đầu tiên về quy hoạch tuyến tính lần đầu ti ên được nhà toán học Liên Xô
Leonid Vitaliyevich Kanto rovich giới thiệu trong cuốn sách “Phương pháp toán học về tổ
chức và kế hoạch hóa sản xuất ” được xuất bản vào năm 1939, trong đó tập trung vào xây
dựng các công thức về các vấn đề kinh tế c ơ bản, những biểu thức toán học của chúng v ànhững phác thảo cơ bản về phương pháp giải Sau đó, vào năm 1947, George Dantzig và cáccộng sự phát hiện lại mô h ình quy hoạch tuyến tính khi n ghiên cứu bài toán lập kế hoạch sảnxuất cho không quân Mỹ C ùng năm đó, Dantzig đ ã công bố thuật toán đơn hình nổi tiếng
để giải bài toán quy hoạch tuyến tính
Quy hoạch tuyến tính là một bộ phận quan trọng của quy hoạch toán học, nó l à mô hình toáncho nhiều bài toán của nhiều bài toán thực tế khác nhau như kinh tế, viễn thông, xâydựng…Hiệu quả của quy hoạch tuyến tính đ ã được chứng minh trong thực tiễn, l à một trongnhững động lực làm thay đổi bộ mặt kinh tế của thế giới v ào nửa cuối thế kỷ 20
Trong phần này sẽ trình bày một số khái niệm cơ bản về quy hoạch tuyến tính v à giải thuật
đơn hình để giải bài toán quy hoạch tuyến tính
3.1.1 Định nghĩa quy hoạch tuyến tính
Bài toán quy hoạch tuyến tính tổng quát được phát biểu như sau
},
| , ) ( min{f x c x xD
c c c
c ( 1, 2, , ) và n
R
phương trình tuyến tính
Trang 20m n mn m
m
n n
n n
b x a x
a x a
b x a x
a x a
b x a x
a x a
2 2
2 22 1 21
1 1
2 12 1 11
Trong bài toán trên, ta g ọi
n
n x c x
c x c x c x
n j
c j, 1 , , là các hệ số của hàm mục tiêu;
n j
x j, 1 , , là các biến;
m i
b x
a i, ( , ) i, 1 , ,
nghiệm chấp nhận được hày là một phương án khả thi (gọi tắt là phương án) Điểm xD
mà
D x x c x f x c x
, , ) ( ,
) (
được gọi là nghiệm tối ưu hay lời giải tối ưu của bài toán
Khi nghiên cứu quy hoạch tuyến tính, ng ười ta thường dùng hai dạng đặc thù sau:
Dạng chuẩn tắc
n j
x
m i
b x a subject
x c x
c x c x f
j
i n
j
j ij
n n
, , 1 , 0
, , 1 ,
) ( min
, , 1
2 2 1 1
x c x f
Dạng chính tắc
n j
x
m i
b x a subject
x c x
c x c x f
j
i n
j
j ij
n n
, , 1 , 0
, , 1 ,
) ( min
, , 1
2 2 1 1
Trang 21, ) ( min
x c x f
3.1.2 Sự tồn tại nghiệm và tính chất tập nghiệm của quy hoạch tuyến tính
Dưới đây trình bày một số định lý (không chứng minh) về tập nghiệm của quy hoạch tuyến
tính
Xét bài toán quy hoạch tuyến tính tổng quát
) ( },
| , ) ( min{f x c x xD LP
trong đó cR n và DR n là tập lồi đa diện khác rỗng
Sự tồn tại nghiệm
Hai định lý dưới đây cho biết điều kiện có nghiệm của một quy hoạch tuyến tính
Định lý 3.1: Nếu tập nghiệm chấp nhận đ ược D khác rỗng và bị chặn thì bài toán quy hoạch tuyến tính (LP) luôn có nghiệm tối ưu
Định lý 3.2: Nếu tập D khác rỗng và hàm mục tiêu f(x)c,x bị chặn dưới trên
D thì quy hoạch tuyến tính (LP) luôn có nghiệm tối ưu.
Tính chất tập nghiệm
Định lý 3.3: Nếu bài toán quy hoạch tuyến tính có nghiệm tối ưu thì tập nghiệm tối
ưu của nó phải là một mặt (face) của tập lồi đa diện D
Hệ quả 3.1: Nếu một quy hoạch tuyến tính có nghiệm tối ưu và tập lồi đa diện có
đỉnh thì nghiệm tối ưu phải đạt tại ít nhất một đỉnh, tức đạt tại một ph ương án cực
biên.
Định lý 3.4: Nếu một quy hoạch tuyến tính có nghiệm tối ưu thì nghiệm tối ưu đó cũng là nghiệm tối ưu toàn cục của quy hoạch tuyến tính.
3.1.3 Phương pháp đơn h ình để giải bài toán quy hoạch tuyến tính chính tắc
Như đã biết, phương pháp đơn hình giải bài toán quy hoạch tuyến tính do George Dantzig
đề xuất vào năm 1947 Mặc dù, về mặt lý thuyết, thuật toán đ ơn hình có độ phức tạp hàm
mũ và cho đến nay đã có nhiều thuật toán có độ phức tạp đa thức để giải quy hoạch tuyến
tính như thuật toán elipsoid của Khachiyan, thuật to án điểm trong của Karmarkar, nhưngcho đến nay, thuật toán đơn hình vẫn là phương pháp phổ biến nhất để giải các b ài toán quy
hoạch tuyến tính trong thực tế
Trang 22Vì mọi quy hoạch tuyến tính đều có thể chuyển về dạng chính tắc, n ên không giảm tính tổngquát, trong phần này sẽ trình bày thuật toán đơn hình để giải bài toán quy hoạch tuyến tínhdạng chính tắc.
Xét bài toán quy hoạch tuyến tính chính tắc
) ( },
| , min{ c x xD LP ct
, 0 ,
Định lý sau đây giúp ta xét b ài toán quy hoạch tuyến tính (LP ct)với giả thiết rằng: Ma trận
Định lý 3.5: Cho tập lồi đa diện khác rỗng D{x|Axb, x0}, trong đó A là ma trận cấp n
m Giả sử rank(A) k m và các hàng i i ik
a a
a1, 2, , độc lập tuyến tính Khi đó DD,
trong đó D là tập lồi đa diện được xác định bởi
}
0,,
, ,,
|{ 1 1
Phương pháp đơn hình giải bài toán quy hoạch tuyến tính dựa trên hai tính chất sau:
ưu đó phải nằm trên một đỉnh (phương án cực biên) của tập lồi đa diện chấp nhận
tắc (LP ct) Ký hiệu A j là cột thứ j của ma trận A, j 1 , ,n Hệ ràng buộc ( 3 1 ) của tập
n j
x b x A x
A x
Trang 230
| } , , 1 { ) (x0 j n x0j
Dưới đây là các hệ quả trực tiếp từ định lý 3.6
Hệ quả 3.2: Số thành phần dương trong mỗi phương án cực biên của bài toán quy hoạch
tuyến tính không vượt quá m
Hệ quả 3.3 : Số phương án cực biên của bài toán quy hoạch tuyến tính dạng chính tắc là
hữu hạn.
b Điều kiện tối ưu
Ta xét bài toán quy hoạch tuyến tính chính tắc
) ( },
| , min{ c x xD LP ct
trong đó cR n \ { }, và tập chấp nhận được
}, 0 ,
x0 ( 10, , 0) là một phương án cực biên của bài toán (LP ct) Theo định lý 3.6, các
vector {A j| jJ(x0 )} độc lập tuyến tính V ì rank(A) m nên
Nếu 0
x là phương án cực biên không suy biến, tức |J(x0) | m thì {A j | jJ(x0)} là
cơ sở duy nhất của A tương ứng với 0
x
Nếu 0
x là phương án cực biên suy biến, tức |J(x0) | m, thì ta bổ sung thêm cácvector cột của A thuộc tập {A j | jJ(x0)} vào bộ vector {A j | jJ(x0)} để nhậnđược bộ m vector độc lập tuyến tính {A j | jJ} với J J(x0) và |J | m Khi đó,
}
| {
_
J j A
Trang 24Xét bài toán quy hoạch tuyến tính chính tắc (LP ) với giả thiết thêm rằng: bài toán (LP )
x
n
x x x
x0 ( 10, 02, , 0) có |J(x0) | m Hệ
Ta gọi
}0
|}, ,1{{)
(x0 j n x0j
) (
\ }
{A j jJ x0 là các vector phi cơ sở
Do {A j | jJ(x0)} là cơ sở của ma trận A nên mỗi vector cột A k,k 1 , 2 , ,n} được biểu
j jk
x J j
j
( ) 0 0
x x
c x f
1 ( )
0 0
0 0
0 ,
)
Đại lượng
} , , 2 , 1 , )
( 0
n k
c c
x J j
k jk
Trang 25B B
B B
k Bk
Bk k
c A B C c Z C
X C x f
b B X b
BX
A B Z BZ
1 1
) (
Sau đây là điều kiện đủ dể phương án cực biên 0
x là phương án tối ưu của bài toán (LP ct)
Định lý 3.7: Nếu phương án cực biên 0
x không phải là phương án tối ưu duy nhất.
Định lý sau đây cho biết dấu hiệu b ài toán không có lời giải hoặc từ phương án cực biên 0
b A x A
x
x J j
j j n
j j
0
0
(3.7)và
0 , )
( )
x J j
x J j
j jk
)
Trang 26Đặt k T
n k
k j và x J j
x J j z z
jk k
j
, 1
) ( , 0
) ( ,
0 0
z x
( 0 k
z x
f x
c
c z c
x
c c z x x
f
k k
k x
J j jk x
J j
j j
k j x
J j
k j
) ( ,
) (
) (
) ( (
0 0
) ( )
( 0 ) ( 0
0 0
0
tức giá trị của hàm mục tiêu giảm vô hạn trên tập các phương án Do đó, bài toán không
có nghiệm tối ưu
Trường hợp 2: Tồn tại z jk 0 với ít nhất một jJ(x0) Trong trường hợp này
)()
()
(
(x f x0 f x0
x và theo hướng k
z
Đặt
) ( , )
( , 0
0 0
0
z
x x
J j z
z
x
jk
r jk
Trang 27tuyến tính chính tắc Cụ t hể, chúng thuộc cạnh hữu hạn của tập chấp nhận đ ược xuất
k j và x J j
x J j x
x
j j
, 1
) ( ,
0
) ( ,
0
0 0
0
1
(3.14)
c Thuật toán đơn hình
Phần này trình bày thuật toán đơn hình để giải bài toán quy hoạch tuyến tính dạng chính tắc
Bước khởi tạo Xuất phát từ một phương án cực biên 0
x và cơ sở {A j,jJ(x0 )} tươngứng của nó
Bước 1 Tính giá trị hàm mục tiêu
) (
0 0
0
) (
x J j
j
jx c x
f
Bước 2 Với mỗi kJ(x0), xác định các số z jk bằng việc giải hệ
k x
J j
J j
j jk
( 0)
Bước 3 Kiểm tra điều kiện tối ưu
If k 0 , kJ(x0) Then Dừng thuật toán ( 0
Else chuyển sang Bước 4.
Bước 4 Kiểm tra bài toán không có lới giải
If Tồn tại kJ(x0) sao cho k 0 ,z jk 0 , jJ(x0)
Then Dừng thuật toán (Bài toán không có nghiệm tối ưu, hàm mục tiêu giảm vô
Trang 28 Tìm vector A r để đưa ra khỏi cơ sở cũ với chỉ số r được xác định bởi công thức
(3.13)
) ( , )
( , 0
0 0
0
z
x x
J j z
z x
jk
r jk
}}
{ } {
\ ) ( { )
(x1 J x0 r s
Đặt 1 0
x
Hình 3.1: Giải thuật đơn hình 3.1.4 Tìm phương án cực biên xuất phát và cơ sở xuất phát – Phương pháp
biến giả cải biên
a Bài toán cải biên
Như đã biết, ta có thể biến đổi một bài toán quy hoạch tuyến tính chính tắc về dạng chuẩn
tắc bằng cách cộng vào vế trá của ràng buộc i một biến giả x ni 0 để làm xuất hiện ma
trận đơn vị Vì các biến giả cải biên có ảnh hưởng đến hàm mục tiêu nên cũng sẽ có sự cảibiên hàm mục tiêu
Vậy, ta có thể biến đổi một bài toán quy hoạch tuyến tính dạng tổng quát, gọi l à bài toánxuất phát về bài toán dạng chuẩn, gọi là bài toán cải biên
Xét quy hoạch tuyến tính chính tắc
) ( }
| , min{ c x xD LP ct
} ) , ( ,
| )
u x
Trang 29Để tìm một phương án cực biên của D ta xét bài toán cải biên
0 ) , (
) ( 0
) , ( min
*
2 1
LP b
Ax
u u
u u x g
ct m
dưới trên D Hơn nữa, ta có một phương án cực biên xuất phát là ( b0 , ) tương ứng với cơ
sở đơn vị Vậy có thể áp dụng ngay thuật toán đ ơn hình để giải
Định lý 3.10 Giả sử (x0,u0) là phương án cực biên của bài toán cải biên (LP*ct) Khi đó:
i Nếu g(x0,u0) 0 thì bài toán xuất phát vô nghiệm;
ii Nếu g(x0 ,u0 ) 0 thì x0 là một phương án cực biên của bài toán xuất phát.
Dưới đây là thuật toán hai pha để giải b ài toán quy hoạch tuyến tính tổng quát :
Pha 1 Tìm phương án cực biên cho bài toán xuất phát bằng cách giải b ài toán cải biên
}, 0 ) , ( ,
| ) , (
x là phương án cực biên của bài toán xuất phát) Chuyển sang Pha 2
xuất phát Chú ý rằng ở pha n ày các biến giả cải biên bị loại khỏi ma trận các hệ số r àngbuộc, các vector chi phí được cập nhật lại
Hình 3.2: Giải thuật hai pha
c Phương pháp big-M
Trong phương pháp đơn h ình hai pha ta phải thực hiện thuật toán đ ơn hình hai lần: một lần
để giải bài toán quy hoạch tuyến tính cải biên và một lần giải bài toán quy hoạch tuyến tính
xuất phát Phương pháp big-M cho phép ta kết hợp cả hai pha này lại Ý tưởng của phương
pháp này là đưa vào các h ệ số chi phí phí đủ lớn cho các biến giả để nhằm mục đích “hất”
các vector cột tương ứng với các biến giả ra khỏi ma trận c ơ sở Do đó, nếu bài toán cải biênnhận giá trị tối ưu (x* ,u* ) thì phải có u* 0
Bài toán cải biên có dạng như sau
0 ) , (
)
(
) , (
b u Ax
u u
M x c x
c u x
Trong đó M là một hằng số dương đủ lớn (lớn hơn bất kỳ số cụ thể nào mà ta có thể sosánh với nó)
Trang 303.1.5 Đối ngẫu
Đối ngẫu là một khái niệm cơ bản của quy hoạch tuyến tính v ì lý thuyết đối ngẫu dẫn đến
một kết quả có tầm quan trọng cả về lý thuyết lẫn thực h ành Đối ngẫu là một phương phápxây dựng cho bài toán quy hoạch tuyến tính đang xét (gọi l à bài toán gốc) một bài toán quyhoạch tuyến tính “đối” với nó (gọi l à bài toán đối ngẫu) sao cho từ nghiệm tối ưu của bàitoán này sẽ thu được thông tin về nghiệm tối ưu của bài toán kia
Cặp bài toán đối ngẫu
b b
Đối ngẫu của bài toán quy hoạch tuyến tính tổng quát
Giả sử bài toán quy hoạch tuyến tính có cấu trúc b ên trái của bảng 3.1 Khi đó bài toán quyhoạch tuyến tính đối ngẫu t ương ứng với nó ở bên phải bảng 3.1
Ràng buộc
3 2 1
, ,
, ,
, ,
M i b x a
M i b x a
M i b x a
i i
i i
i i
, 0
N j x
N j x
j j
j j
c y A
c y A
c y A
, ,
,
Ràng buộc
Bảng 3.1: Cặp bài toán quy hoạch tuyến tính đối ngẫu
Đối ngẫu của bài toán quy hoạch tuyến tính chuẩn tắc
0
, min
x c z
0
, max
y b w
T
Đối ngẫu của bài toán quy hoạch tuyến tính chính tắc
0
, min
x c z
0
, max
y b w
T
Trang 31Các định lý về đối ngẫu
Định lý 3.11 (Đối ngẫu yếu) Nếu x là phương án chấp nhận được bất kỳ của bài toán gốc
(P) và y là phương án chấp nhận được bất kỳ của bài toán đối ngẫu thì b,y c,x
Hệ quả 3.6 Giả sử x là phương án chấp nhận được của bài toán gốc (P) và y là phương
án chấp nhận được của bài toán đối ngẫu (D) và
x c y
b, ,
Khi đó x là phương án tối ưu của bài toán gốc (P) và y là phương án tối ưu của bài toán đối ngẫu (D).
Định lý 3.12 (Đối ngẫu mạnh) Nếu một bài toán quy hoạch tuyến tính có phương án tối ưu
thì bài toán đối ngẫu của nó cũng có ph ương án tối ưu và giá trị tối ưu của hai bài toán này bằng nhau.
Hệ quả 3.7 Điều kiện cần và đủ để cặp phương án chấp nhận được x, y của bài toán (P)
và (D) là phương án tối ưu là
x c y
Các kết quả trên cho thấy mối quan hệ sau đây giữa b ài toán gốc và bài toán đối ngẫu
Định lý 3.13 (Định lý tồn tại) Xét một cặp quy hoạch tuyến tính đối ngẫu (P) v à (D) Khi
đó chỉ xảy ra một trong bốn tr ường hợp sau:
i Cả hai bài toán trên đều không có phương án chấp nhận được.
ii Cả hai bài toán trên đều có phương án chấp nhận được Khi đó cả hai bài toán đều
có phương án tối ưu và giá trị tối ưu của hai bài toán này đều bằng nhau.
iii Bài toán (P) có phương án ch ấp nhận được và bài toán (D) không có Khi đó hàm
mục tiêu f(x) c,x của bài toán (P) không bị chặn dưới trong tập chấp nhận đ ược.
iv Bài toán (D) có phương án ch ấp nhận được và bài toán (D) không có Khi đó hàm
mục tiêu g(y) b,y của bài toán (D) không bị chặn trên trong tập chấp nhận được.
Hệ quả 3.7 cho ta điều kiện tối ưu của bài toán quy hoạch tuyến tính thông qua giá trị h àm
mục tiêu Điều kiện độ lệch bù (complement slackness) sau đây bi ểu thị điều kiện tối ưu
thông qua dữ liệu của bài toán
Định lý 3.14 (Định lý về độ lệch b ù) Giả sử x là phương án chấp nhận được của bài toán
gốc (P) và y là phương án chấp nhận được của bài toán đối ngẫu (D) Khi đó, x là một
Trang 32phương án tối ưu của bài toán gốc (P) và y là một phương án tối ưu của bài toán đối ngẫu (D) khi và chỉ khi
0 ,
x y A c
y b Ax
T
3.2 Quy hoạch nguyên
tối ưu thành hai dạng sau:
các số nguyên, hoán vị, tổ hợp, đồ thị,…
Quy hoạch nguyên là bài toán tối ưu tổ hợp với ràng buộc là các giá trị nguyên Dưới đây là
định nghĩa hình thức của quy hoạch nguy ên
n
m m
Z x
b x g
b x g
b x g subject
x f
) (
) (
) ( max min/
2 2
1 1
Trong đó f(x) :R n R là hàm mục tiêu
)(), ,(),
( 2
1 x g x g x
Do đặc điểm của quy hoạch nguy ên là cho lời giải tối ưu nên trong thời gian gần đây quy
hoạch nguyên được áp dụng để tìm nghiệm tối ưu cho rất nhiều các bài toán trên các lĩnhvực như các bài toán lập lịch, tìm đường đi, thiết kế mạng viễn thông,…
Dựa vào tính chất của hàm mục tiêu và hàm xác định các ràng buộc, người ta chia quyhoạch nguyên thành hai nhóm sau:
hoặc các hàm ràng buộc là phi tuyến
Do đó nó có thể được biểu diễn dựa vào quy hoạch tuyến tính với r àng buộc là các
biến nguyên
n
Z x Ax
x c x f
Trang 33Trong phần này trình bày các phương pháp giải cho bài toán quy hoạch nguyên Đó là các
phương pháp nhánh -cận (branch-and-bound), phương pháp dùng m ặt phẳng cắt (cuttingplanes) và các phương pháp kết hợp như brach-and-cut, branch-and-price
3.2.1 Phương pháp nhánh c ận
Về mặt lịch sử phát triển, ph ương pháp nhánh-cận (branch-and-bound) được Land và Doig[23] giới thiệu lần đầu tiên vào năm 1960 như là m ột ý tưởng để giải bài toán quy hoạch
nguyên Đến năm 1962, phương pháp này đư ợc phổ biến rộng rãi sau khi Little, Murphy,
Sweeney, Karel công b ố thuật toán giải bài toán người bán hàng rong Cho đến ngày nay,
phương pháp nhánh-cận là một trong những công cụ chủ yếu để giải b ài toán quy hoạch
D x x f
Dưới đây là mã giả cho giải thuật nhánh cận Giải thuật gồm các b ước sau
Bước 1 - Khởi tạo (Initialization): L{S} là tập hợp các bài toán con, ở thời điểm
ban đầu L được khởi tạo là bài toán cần giải, z và z
Bước 2 - Kiểm tra điều kiện dừng (Termination test): Nếu L {} thì nghiệm hiện
Bước 3 - Chọn bài toán con (Subproblem selection): Ch ọn một bài toán con và xóa
Bước 4 – Tính cận (Bounding): Tính cận d ưới và cận trên của bài toán Nếu tìm
loại bỏ (pruning) nhánh n ày
Bước 5 – Phân nhánh (Branching): Chia t ập con D i của bài toán hiện tại thành các
trở lại bước 2
Hình 3.3: Giải thuật branch-and-bound
Trang 34Điểm mấu chốt của giải thuật nhánh -cận là các bước phân nhánh, tính cận v à chiến lược lựa
chọn bài toán con để xử lý Do đó việc điều chỉnh cho các b ước này có ảnh hưởng rất lớn
đến độ hiệu hiệu của giải thuật
Đặc điểm của giải thuật nhánh -cận là tìm kiếm có hệ thống do nó khảo sát tất cả các v ùng
không gian có khả năng chứa nghiệm Điểm đặc sắc của giải thuật nhánh -cận so với các giảithuật tìm kiếm có hệ thống khác l à nó đánh giá được khả năng có nghiệm của một v ùngkhông gian Việc đánh giá này được thực hiện bằng cách tính toán cận d ưới của bài toán và
so sánh với cận trên hiện tại Ưu điểm thứ hai là nó có khả năng phối hợp với các kỹ thuật
khác để tăng độ hữu hiệu nh ư chiến lược tìm kiếm depth-first-search, best-first-search, các
kỹ thuật braching, các heuristic để t ìm kiếm nhanh cận trên Chính vì vậy, giải thuật cận được áp dụng rất phổ biến để giải b ài toán quy hoạch nguyên
nhánh-Đối với bài toán quy hoạch nguyên tuyến tính, phương pháp nhánh -cận tỏ ra rất thuận tiện
x là phương án tối ưu của quy
)
(x0
giải thuật nhánh-cận, ta sẽ bỏ các ràng buộc nguyên trên các biến, bước này gọi là bước nớilỏng và bài toán đạt được gọi là bài toán nới lỏng có dạng quy hoạch tuyến tính Sau đó giảibài toán quy hoạch tuyến tính này, ta được giá trị tối ưu của hàm mục tiêu chính là cận dướicủa bài toán con Nếu phương án tối ưu đạt được là nguyên, ta có giá trị tối ưu chính là cậntrên của bài toán con
Ví dụ: Giải quy hoạch nguyên sau bằng phương pháp nhánh-cận
eger x
x
x x
x x
x x
x x x
f
int ,
0 ,
72 9
16
6
10 15 ) ( min
2 1
2 1
2 1
2 1
2 1
Bước 1: Khởi tạo L S0 , z
Bườc 2: Điều kiện dừng không thỏa m ãn
Bước 3: Chọn S0 để giải
Trang 35Bước 4: Giải bài toán nới lỏng ta được nghiệm tối ưu x
18
z x
f S
7
510 )
( )
( 0 0
Bước 5: Phân nhánh Chia đôi t ập D0 bởi biến chia nhánh
7
18 0
Bươc 2: Điều kiện dừng không thỏa m ãn.
Bước 3: Chọn bài toán con S1
Bước 4: Giải bài toán nới lỏng ta được nghiệm tối ưu T
70 )
Bước 5: Do tại bước này đã tìm được nghiệm tối ưu cho bài toán con nên lo ại bỏ bài
Bước 2: Điều kiện dừng không thỏa m ãn.
Bước 3: Chọn bài toán con S2
Bước 4: Giải bài toán nới lỏng ta được nghiệm tối ưu
và giá trị tối ưu
67 71 )
2
3
8 2
Bước 2: Điều kiện dừng không thỏa m ãn.
Bước 3: Chọn bài toán con S3
Bước 4: Giải bài toán nới lỏng ta được nghiệm tối ưu
27
625 70 )
Bước 2: Điều kiện dừng không thỏa m ãn.
Bước 3: Chọn bài toán con S4
Bước 4: Bài toán nới lỏng vô nghiệm do D4 rỗng Quay lại bước 2 để chọn bài toánkhác
Trang 36 Lần thứ 6
Bước 2: Điều kiện dừng không thỏa m ãn.
Bước 3: Chọn bài toán con S5
Bước 4: Giải bài toán nới lỏng ta được nghiệm tối ưu T
x5 3 , 2 và giá trị tối ưu
65)
(x5
tìm kiếm Quay về bước 2
Bước 2: Điều kiện dừng không thỏa m ãn.
Bước 3: Chọn bài toán con S6
Bước 4: Giải bài toán nới lỏng ta được nghiệm tối ưu
và giá trị tối ưu là
88.68)
(x6
tìm kiếm Quay về bước 2
Bước 2: Điều kiện dừng thỏa mãn Giải thuật kết thúc Ta có nghiệm tối ưu là
T opt
upper bound hiện tại nên bị loại ra khỏi không gian t ìm kiếm Do đó, nếu sớm tìm được giátrị upper bound đủ tốt th ì ta có thể loại rất nhiều tập chấp nhận đ ược Đây là điểm cần lưu ýkhi vận dụng phương pháp nhánh-cận
3.2.2 Phương pháp mặt phẳng cắt
Năm 1956, Dantzig, Fulkerson và Johnson [25] đã đưa ra ý tưởng về phương pháp mặt
phẳng cắt (cutting planes) để giải bài toán quy hoạch nguyên tuyến tính Ý tưởng chính của
phương pháp này là t ại mỗi bước lặp sẽ dùng một siêu phẳng cắt để thu nhỏ miền chấp nhậnđược ở bước kế trước thỏa hai yêu cầu sau:
Yêu cầu lúc này là cần phải xây dựng một thuật toán hoàn chỉnh để giải một bài toán quyhoạch nguyên, chính vì lẽ đó, vào năm 1956, Ralph Gomory đã xây dựng được một thuậttoán hoán chỉnh đảm bảo thêm yêu cầu thứ 3: là sau một số hữu hạn các bước sẽ tìm đượcnghiệm nguyên tối ưu
Cơ sở lý thuyết
Xét bài toán quy hoạch tuyến tính sau
0
) (
, ) ( max
Ax
x c x f
Ký hiệu:
Trang 37D là tập lồi đa diện lồi chấp nhận đ ươc của LP
P
Định lý: Nếu D là đa diện lồi, D là tập các điểm nguyên của D và R (D ) là bao lồi của D, thì R là một đa diện lồi với các đỉnh nguy ên.
Từ định lý trên, ta tìm nghiệm tối ưu của bài toán quy hoạch nguyên bằng cách tìm bao lồi
pháp cắt là dùng các mặt phẳng cắt để cắt các đỉnh của đa diện lồi sao cho các mặt phẳng cắt
không được chạm vào các điểm nguyên cho đến khi đa diện lồi đạt đ ược có các đỉnh
nguyên
Tuy nhiên, trong thực tế đa diện lồi đạt được không cần phải có tất cả các đỉnh nguy ên màchỉ cần có một đỉnh nguy ên là nghiệm tối ưu của quy hoạch tuyến tính Do đó, ta chỉ cần cắt
đỉnh tối ưu của đa diện lồi cho đến khi đạt đ ược đỉnh tối ưu là nguyên
Dưới đây là trình bày chi tiết của phương pháp cắt
kiện nguyên Khi đó, bất đẳng thức:
của đa diện lồi
Điều kiện hợp lệ: a,x xD Điều kiện này nói rằng nhát cắt không đ ượcđụng vào bao lồi của tập các nghiệm nguyên
Như vậy việc giải bài toán quy hoạch nguyên biến thành việc giải một dãy các bài toán quy
hoạch tuyến tính Tại mỗi bước sẽ thêm vào các lát cắt hợp lệ làm cho tập chấp nhận đượccủa quy hoạch tuyến tính ở b ước sau ngày càng chặt hơn bước trước và ngày càng hội tụ
đến nghiệm nguyên
Giải thuật cutting-plane
Bước 1 Khởi tạo bài toán quy hoạch nguyên
eger x
b Ax cx
int , 0
Trang 38(RP)
Bước 3 Kiểm tra điều kiện tối ưu Nếu (RP) có nghiệm tối ưu nhận giá trị nguyên thì
nghiệm đó là nghiệm tối ưu của (P)
Bước 4 Kiểm tra điều kiện tồn tại nghiệm Nếu (RP) không có nghiệm th ì (P) cũng
toán thực tế, người ta ít áp dụng hai ph ương pháp này một cách riêng rẽ, mà thường kết hợp
hai phương pháp này l ại (gọi là branch-and-cut) để tận dụng ưu điểm của mỗi phương pháp
nhằm tăng độ hữu hiệu của giải thuật
Cách kết hợp hai phương pháp này rất đơn giản: tại bước tính toán cận dưới trong giải thuậtnhánh-cận, lần lượt thêm vào các mặt phẳng cắt cho bài toán nới lỏng, rồi giải bài toán nớilỏng này,… cho đến khi đạt được cận dưới tốt hơn (theo nghĩa ngày càng gần với cận trênthực tế của bài toán con)
3.3 Column Generation
3.3.1 Giới thiệu
Vào khoảng cuối thập niên 1950 và đầu thập niên 1960, Ford và Fulkerson [27] đã sử dụng
phương pháp phân rã Dantzig-Wolfe để mô hình hóa lại bài toán dòng trên mạng Cách tiếp
cận này đã áp dụng một cách không t ường minh phương pháp Column Generation Sau đó,Gilmore và Gomory [28] đã sử dụng Column Generation để t ìm ra nghiệm heuristic cho bàitoán cutting stock, mặc dù chưa kết hợp với phương pháp branch-and-bound Sự kết hợp
này được Desrosiers, Soumis v à Desrochers [26] đưa ra vào năm 1984 để giải bài toán
vehicle routing Đến năm 1998, Barnhart và các cộng sự [1] đã tổng kết và trình bày cơ sở
lý thuyết hoàn chỉnh của phương pháp Column Generation cho bài toán quy ho ạch nguyêntổng quát Các tác giả cũng tr ình bày các hướng tiếp cận và một số vấn đề nảy sinh khi ápdụng phương pháp Column Generation kết hợp với branch-and-bound trong thực tế
Các phần dưới đây trình bày cơ sở lý thuyết cho phương pháp Column Generation cho haidạng bài toán: quy hoạch tuyến tính và quy hoạch nguyên Để hiểu cách tiếp cận ColumnGeneration cho bài toán quy ho ạch nguyên, tôi trình bày phương pháp Column Generationcho bài toán quy hoạch tuyến tính trước
Trang 39Phần đầu tiên tôi trình bày phép phân rã Dantzig -Wolfe làm cơ sở lý thuyết cho phươngpháp Column Generation cho bài toán quy hoạch tuyến tính.
3.3.2 Phân rã Dantzig-Wolfe
Năm 1960, Dantzig và Wolfe đ ã đề xuất một phương pháp mô hình hóa mới cho các bài
toán có cấu trúc Phương pháp này gọi là phân rã Dantzig-Wolfe [5] và đây cũng là cơ sở lýthuyết cho Column Generation cho bài toán quy hoạch tuyến tính
Xét bài toán quy hoạch tuyến tính có dạng cấu trúc nh ư sau
0 , , ,
) (
) ( min
2 1
2 2 2
1 1 1
0 2
2 1 1
2 2 1 1
n n
n n
x x x
b x A
P b
x A
b x A
b x D x
D x D
x c x
c x c x f
Trong đó, mỗi bài toán A i x i b i; x i 0 ;i 1 , ,n, x i là một vector, được gọi là một bài toáncon của bài toán ban đầu
Ta nhắc lại định lý sau gọi l à định lý biểu diễn tập lồi đa diện:
i
i i
d v
x
1 1
Nhận xét: Nếu D là đa diện lồi thì tập các phương cực biên bằng rỗng Do đó biểu thức
các điểm cực biên của nó
diện nên theo định lý trên, ta có:
1
i Q
q
q i q i
P
p
p i p
Trang 40Trong đó x i p,p 1 , ,P(i) là các điểm cực biên và d i q,q 1 , ,Q(i) là các phương cực biên
Thay công thức trên vào bài toán quy ho ạch tuyến tính, xét trường hợp tập chấp nhận đ ược
là đa diện lồi, thì phân rã sau đây gọi là phân rã Dantzig-Wolfe:
0 , ,
,
; 1
0 , ,
,
; 1
0 , ,
,
; 1
) (
) (
) (
) (
) (
) (
) ( min
) 2
1 ) ( 2
1
) 2 ( 2 2 2 1 2 ) 2 ( 2 2
2 1 2
) 1 ( 1 2 1 1 1 ) 1 ( 1 2
1 1 1
0
) (
1
) 2 (
1 2 2 2
) 1 (
1 1 1 1
) (
1
) 2 (
1 2 2 2
) 1 (
1 1 1 1
P n n
n
P P
P P
n P
p
p n p n n P
p
p p P
p
p p
n P
p
p n p n n P
p
p p P
p
p p
b x D
x D
x D
x c
x c
x c
,
; 1
0 , ,
,
; 1
0 , ,
,
; 1
) ( min
) ( 2 1 ) ( 2
1
) 2 ( 2 2 2 1 2 ) 2 ( 2 2
2 1 2
) 1 ( 1 2 1 1 1 ) 1 ( 1 2
1 1 1
0
) (
1
) 2 (
1
2 2 2
) 1 (
1
1 1 1
) (
1
) 2 (
1 2 2 2
) 1 (
1 1 1 1
n P n n n n
P n n
n
P P
P P
n P
p
p n p n n P
p
p p P
p
p p
n P
p
p n p n n P
p
p p P
p
p p
b x
D x
D x
D
x c x
c x
c f
Như vậy, sau khi áp dụng phân r ã Dantzig-Wolfe ta cũng được một bài toán quy hoạch
i
trên các biến đó, gọi là convexity constraints Bài toán này gọi là bài toán master
3.3.3 Column Generation cho bài toán quy ho ạch tuyến tính
Column Generation là phương pháp dùng đ ể giải bài toán master sau khi áp dụng phân rã
Dantzig-Wolfe lên bài toán gốc Ý tưởng chính của phương pháp này là tại mỗi thời điểm,chỉ xem xét các điểm cực bi ên “hữu dụng” của bài toán gốc, tức là các điểm cực biên cótham gia vào ma trận cơ sở của bài toán master Trong mô hình của bài toán master, ta sẽkhông liệt kê hết tất cả các điểm cực bi ên của bài toán gốc, cách tiếp cận nh ư vậy được gọi
là bài toán master rút g ọn (restricted master problem) Do đó, Column Generation thư ờng
được sử dụng để giải các b ài toán quy hoạch tuyến tính cỡ lớn
Xét bài toán master rút g ọn sau