1. Trang chủ
  2. » Luận Văn - Báo Cáo

Dùng phương pháp column generation để sắp xếp thời khóa biểu môn học

83 31 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 83
Dung lượng 657,82 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 2

CÔ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 4

LỜ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 5

TÓ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 6

The 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 7

MỤ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 8

4.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 9

DANH 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 10

DANH 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 11

Chươ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 14

1.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 15

Chươ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 16

2.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 17

trì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 18

quy 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 19

Chươ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 xxD

c c c

c ( 1, 2, , )  và n

R

phương trình tuyến tính

Trang 20

m 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 xD

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 xxD LP

trong đó cR nDR 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 22

Vì 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 xxD 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, x0}, trong đó A là ma trận cấp n

m Giả sử rank(A) km 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 23

0

| } , , 1 { ) (x0  jn 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 xxD 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 JJ(x0) và |J | m Khi đó,

}

| {

_

J j A

Trang 24

Xé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  jn 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 25

B 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 27

tuyế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

Ifk  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 xxD 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 30

3.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 31

Cá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,yc,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 32

phươ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 nR 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 33

Trong 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 35

Bướ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 37

D 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,xxD Đ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 39

Phầ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 ib 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 40

Trong đó 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

Ngày đăng: 15/02/2021, 18:42

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w