NGUY NG NGỄN ỌC DƯƠ
bé gi¸o dôc vµ ®µo t¹o
trêng ®¹i häc b¸ch khoa hµ néi
---------------------------------------
NGUY NG NGỄN ỌC DƯƠ
ngµnh CNTT
NG D NG THU T TOÁN DI TRUY N
GII BÀI ÁN TO ĐÓNG THÙNG
luËn v¨n th¹c sÜ NGµNH C¤NG NGHÖ TH¤NG TIN
kho¸ 2007-2009
Hµ néi – 2009
bé gi¸o dôc vµ ®µo t¹o
trêng ®¹i häc b¸ch khoa hµ néi
---------------------------------------
NGUYỄN NGỌC DƯƠNG
ỨNG DỤNG THUẬT TOÁN DI TRUYỀN
GIẢI BÀI TOÁN ĐÓNG THÙNG
luËn v¨n th¹c sÜ C¤NG NGHÖ TH¤NG TIN
Ngêi híng dÉn khoa häc :
PGS.TS. NGUYÔN §øC NGHÜA
Hµ Néi – 2009
L ời cảm ơn
Đầ ết ơn sâu sắ ầy đã tậu tiên tôi xin bày t s bi c PGS. TS. Nguyễn Đức Nghĩa, th n tình
gi ng d y chúng tôi các môn h c chuyên ngành và nhi ng d ệt tình hướ ẫn, giúp đỡ tôi hn
thành lu ận văn này.
Tôi cũng muốn bày tỏ lòng biết ơn các thầy khoa Công nghệ Thông tin trường
Đại học Bách khoa Nội đã giảng dạy cho chúng tôi các môn học chuyên đề
trong khóa học.
Cuối cùng gia đình, đặc biệt người bạn đời của tôi, là những người rất quan trọng đã
một lòng động viên và tạo điều kiện giúp tôi tập trung hoàn thành luận văn này.
Mặc dù đã có nhiều cố gắng, nhưng vì kiến thức và thời gian hạn chế nên chắc chắn
luận văn này còn nhiều thiếu sót. Tôi xin chân thành cảm ơn và rất mong nhận được
những ý kiến đóng góp từ các thầy cô và các bạn. Những góp ý xin gửi về địa chỉ:
Nguy ễn Ngọc Dương
B môn Khoa h c máy tính, khoa Công ngh thông tin, trường Đại học Bách Khoa
Hà Nội.
Email: duongnn@it- c hut.edu.vn hoặ
nguyenngocduong@gmail.com
Hà Nội, ngày 21 tháng 7 năm 2009
Nguyễn Ngọc Dương
Học viên cao học
Lớp Công nghệ thông tin 2007 – 2009
Trường Đại học Bách Khoa Hà Nội
M C ỤC LỤ
Danh mục hình vẽ .....................................................................................................iv
Danh mục bảng .........................................................................................................vi
Danh mục thuật ngữ tiếng Anh ............................................................................. vii
Chương 1. MỞ ĐẦU ................................................................................................. 1
1.1. Lời mở đầu ....................................................................................................... 1
1.2. Các khái niệm và thuật ngữ cơ sở .................................................................... 3
1.2.1. Bài toán tính toán, thuật toán và độ phức tạp tính toán của thuật toán . 3
1.2.2. Các kí hiệu tiệm cận ............................................................................... 6
1.2.3. Độ phức tạp tính toán của bài toán ........................................................ 8
1.2.4. NP- đầy đủ (NP – completeness)......................................................... 11
1.3. Một số cách tiếp cận giải các bài toán NP-khó .............................................. 18
1.3.1. Phương pháp xấp xỉ .............................................................................18
1.3.2. Phương pháp xác xuất .......................................................................... 19
1.3.3. Phương pháp heuristic .......................................................................... 20
1.4. Bài toán đóng thùng ....................................................................................... 21
1.4.1. Phát biểu bài toán ................................................................................. 21
1.4.2. Các biến thể của bài toán đóng thùng .................................................. 23
1.4.3. Ứng dụng của bài toán đóng thùng ...................................................... 25
Chương 2 MỘT SỐ PHƯƠNG PHÁP GIẢI BÀI TOÁN ĐÓNG THÙNG ..... 27
2.1. Tổng quan các phương pháp giải bài toán đóng thùng .................................. 27
2.2. Các phương pháp heuristic đơn giản ............................................................. 27
2.2.1. Các thuật toán trực tiếp ........................................................................ 27
2.2.2. Các phương pháp không trực tiếp ........................................................ 34
2.3. Phương pháp xấp xỉ ....................................................................................... 37
Chương 3 THUẬT TOÁN DI TRUYỀN ............................................................... 43
3.1. Sơ lược về tính toán tiến hóa và thuật toán di truyền .................................... 43
3.1.1. Lịch sử phát triển ................................................................................. 43
3.1.2. Đặc điểm và khả năng ứng dụng của tính toán tiến hóa ...................... 45
3.2. Sơ đồ hoạt động của thuật toán di truyền ...................................................... 46
3.2.1. Giới thiệu một số khái niệm ................................................................. 46
3.2.2. Sơ đồ chung của thuật toán di truyền ................................................... 50
3.3. Các thành phần trong thuật toán di truyền ..................................................... 53
3.3.1. Mã hóa lời giải ..................................................................................... 53
3.3.2. Toán tử chọn lọc .................................................................................. 56
3.3.3. Toán tử lai ghép ................................................................................... 59
3.3.4. Toán tử đột biến ................................................................................... 63
3.3.5. Một số tham số quan trọng khác .......................................................... 65
3.4. Một số cơ sở toán học của thuật toán di truyền ............................................. 67
3.4.1. Định lý về các schemata ....................................................................... 67
3.4.2. Giả thuyết về các building block và cơ chế song song ngầm. ............. 69
3.5. Đặc điểm và khả năng ứng dụng của thuật toán di truyền ............................ 70
3.5.1. Đặc điểm của thuật toán di truyền ....................................................... 70
3.5.2. Ứng dụng của thuật toán di truyền ....................................................... 70
Chương 4 THUẬT TOÁN DI TRUYỀN GIẢI BÀI TOÁN ĐÓNG THÙNG ... 72
4.1. Mô tả cách tiếp cận bài toán đóng thùng theo thuật toán di truyền ............... 72
4.1.1. Biểu diễn lời giải .................................................................................. 72
4.1.2. Mô tả sơ đồ thực hiện của thuật toán ................................................... 74
4.1.3. Xác định các thông số cho thuật toán .................................................. 75
4.2. Kết quả thực nghiệm ...................................................................................... 98
4.2.1. Bộ dữ liệu thực nghiệm được sử dụng ................................................. 98
4.2.2. Kết quả chạy thực nghiệm ................................................................... 99
4.2.3. Nhận xét và đánh g.......................................................................... 103
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ........................................................... 109
Tài liệu tham khảo ................................................................................................ 111