MỤC LỤC2DANH MỤC THUẬT NGỮ VIẾT TẮT6DANH MỤC HÌNH VẼ, ĐỒ THỊ7DANH MỤC BẢNG9MỞ ĐẦU11CHƯƠNG 1. GIỚI THIỆU151.1.ĐẶT VẤN ĐỀ151.2.CÁC NGHIÊN CỨU LIÊN QUAN151.3.PHÁT BIỂU BÀI TOÁN161.3.1.Mô tả quy trình lập kế hoạch học tập của Trường Sĩ quan Tăng thiết giáp.161.3.2.Đầu vào171.3.3.Các ràng buộc171.3.4.Mục tiêu181.3.5.Đầu ra181.4.MÔ HÌNH BÀI TOÁN191.4.1.Các chỉ số191.4.2.Các biến191.4.3.Công thức cho các hàm ràng buộc201.4.4.Công thức cho các hàm mục tiêu201.4.5.Phương pháp giải quyết21CHƯƠNG 2. GIẢI THUẬT DI TRUYỀN222.1.KHÁI NIỆM CƠ BẢN222.1.1. Lịch sử giải thuật di truyền222.1.2. Khái niệm232.2.CÁC THAM SỐ CỦA GIẢI THUẬT DI TRUYỀN352.3.ỨNG DỤNG GIẢI THUẬT DI TRUYỀN352.4.BÀI TOÁN TỐI ƯU362.4.1.Một số khái niệm362.4.2.Các bài toán tối ưu37CHƯƠNG 3. ÁP DỤNG GIẢI THUẬT DI TRUYỀN GIẢI BÀI TOÁN LẬP KẾ HOẠCH HỌC TẬP TẠI TRƯỜNG SĨ QUAN TĂNG THIẾT GIÁP423.1.CÁC ĐỐI TƯỢNG423.2.BIỂU DIỄN MÔ HÌNH CÁ THỂ433.3.KHỞI TẠO QUẦN THỂ453.4.BIỂU DIỄN CÁC RÀNG BUỘC463.5.CÁC TOÁN TỬ DI TRUYỀN493.5.1.Đột biến493.5.2.Lai ghép503.6.TÍNH ĐỘ THÍCH NGHI CỦA CÁ THỂ523.7.THAM SỐ CỦA GIẢI THUẬT53CHƯƠNG 4. KẾT QUẢ ĐẠT ĐƯỢC544.1.GIẢI PHÁP CÔNG NGHỆ544.1.1.Hệ điều hành544.1.2.Nền tảng, ngôn ngữ lập trình544.1.3.Hệ quản trị CSDL544.1.4.Công cụ phát triển ứng dụng quản lý554.1.5.Giải pháp phân quyền sử dụng và dữ liệu554.1.6.Giải pháp sao lưu phục hồi564.2.MÔ HÌNH HỆ THỐNG574.2.1.Mô hình triển khai574.2.2.Mô hình xây dựng ứng dụng584.3.THỰC NGHIỆM604.3.1.Cơ sở dữ liệu604.3.2.Dữ liệu mẫu674.3.3.Tham số thử nghiệm684.3.4.Kết quả thử nghiệm684.3.5.Giao diện phần mềm694.4.NHẬN XÉT73CHƯƠNG 5. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN755.1.CÁC KẾT QUẢ ĐẠT ĐƯỢC755.2.HẠN CHẾ755.3.HƯỚNG PHÁT TRIỂN76TÀI LIỆU THAM KHẢO77
Trang 1GIẢI THUẬT DI TRUYỀN GIẢI BÀI TOÁN LẬP KẾ HOẠCH HỌC TẬP
Chuyên ngành : Công Nghệ Thông Tin
LUẬN VĂN THẠC SĨ KỸ THUẬT
Công nghệ thông tin
Hà Nội – Năm 2014
Trang 2MỤC LỤC
MỤC LỤC 2
LỜI CAM ĐOAN 5
DANH MỤC THUẬT NGỮ - VIẾT TẮT 6
DANH MỤC HÌNH VẼ, ĐỒ THỊ 7
DANH MỤC BẢNG 9
MỞ ĐẦU 11
CHƯƠNG 1 GIỚI THIỆU 15
1.1 ĐẶT VẤN ĐỀ 15
1.2 CÁC NGHIÊN CỨU LIÊN QUAN 15
1.3 PHÁT BIỂU BÀI TOÁN 16
1.3.1 Mô tả quy trình lập kế hoạch học tập của Trường Sĩ quan Tăng thiết giáp 16 1.3.2 Đầu vào 17
1.3.3 Các ràng buộc 17
1.3.4 Mục tiêu 18
1.3.5 Đầu ra 18
1.4 MÔ HÌNH BÀI TOÁN 19
1.4.1 Các chỉ số 19
1.4.2 Các biến 19
1.4.3 Công thức cho các hàm ràng buộc 20
1.4.4 Công thức cho các hàm mục tiêu 20
1.4.5 Phương pháp giải quyết 21
CHƯƠNG 2 GIẢI THUẬT DI TRUYỀN 22
2.1 KHÁI NIỆM CƠ BẢN 22
2.1.1 Lịch sử giải thuật di truyền 22
2.1.2 Khái niệm 23
Trang 32.2 CÁC THAM SỐ CỦA GIẢI THUẬT DI TRUYỀN 35
2.3 ỨNG DỤNG GIẢI THUẬT DI TRUYỀN 35
2.4 BÀI TOÁN TỐI ƯU 36
2.4.1 Một số khái niệm 36
2.4.2 Các bài toán tối ưu 37
CHƯƠNG 3 ÁP DỤNG GIẢI THUẬT DI TRUYỀN GIẢI BÀI TOÁN LẬP KẾ HOẠCH HỌC TẬP TẠI TRƯỜNG SĨ QUAN TĂNG THIẾT GIÁP 42
3.1 CÁC ĐỐI TƯỢNG 42
3.2 BIỂU DIỄN MÔ HÌNH CÁ THỂ 43
3.3 KHỞI TẠO QUẦN THỂ 45
3.4 BIỂU DIỄN CÁC RÀNG BUỘC 46
3.5 CÁC TOÁN TỬ DI TRUYỀN 49
3.5.1 Đột biến 49
3.5.2 Lai ghép 50
3.6 TÍNH ĐỘ THÍCH NGHI CỦA CÁ THỂ 52
3.7 THAM SỐ CỦA GIẢI THUẬT 53
CHƯƠNG 4 KẾT QUẢ ĐẠT ĐƯỢC 54
4.1 GIẢI PHÁP CÔNG NGHỆ 54
4.1.1 Hệ điều hành 54
4.1.2 Nền tảng, ngôn ngữ lập trình 54
4.1.3 Hệ quản trị CSDL 54
4.1.4 Công cụ phát triển ứng dụng quản lý 55
4.1.5 Giải pháp phân quyền sử dụng và dữ liệu 55
4.1.6 Giải pháp sao lưu phục hồi 56
4.2 MÔ HÌNH HỆ THỐNG 57
4.2.1 Mô hình triển khai 57
4.2.2 Mô hình xây dựng ứng dụng 58
4.3 THỰC NGHIỆM 60
Trang 44.3.1 Cơ sở dữ liệu 60
4.3.2 Dữ liệu mẫu 67
4.3.3 Tham số thử nghiệm 68
4.3.4 Kết quả thử nghiệm 68
4.3.5 Giao diện phần mềm 69
4.4 NHẬN XÉT 73
CHƯƠNG 5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 75
5.1 CÁC KẾT QUẢ ĐẠT ĐƯỢC 75
5.2 HẠN CHẾ 75
5.3 HƯỚNG PHÁT TRIỂN 76
TÀI LIỆU THAM KHẢO 77
Trang 5DANH MỤC THUẬT NGỮ - VIẾT TẮT
excel
Trang 6DANH MỤC HÌNH VẼ, ĐỒ THỊ
Hình 1 Xác xuất của mỗi NST theo kiểu lựa chọn Roulet 26
Hình 2: Lựa chọn xếp hạng 28
Hình 3: Lai ghép một điểm cắt mã hóa nhị phân 29
Hình 4: Lai ghép một điểm cắt mã hóa nhị phân 29
Hình 5: Lai ghép đồng nhất mã hóa nhị phân 30
Hình 6 Mặt nạ lai ghép đồng nhất 30
Hình 7: Lai ghép số học mã hóa nhị phân 30
Hình 8 Lai ghép một điểm cắt mã hóa hoán vị 31
Hình 9 Phép đảo bit mã hóa nhị phân 31
Hình 10 Hoán vị thứ tự mã hóa hoán vị 32
Hình 11 Thay đổi giá trị trong mã hóa giá trị 32
Hình 12 Sơ đồ chiến lược nạp lại hoàn toàn 33
Hình 13 Sơ đồ chiến lược nạp lại ngẫu nhiên 33
Hình 14 Sơ đồ chiến lược nạp lại theo mô hình cá thể tối ưu 34
Hình 15 Mô hình giải thuật 35
Hình 16 Mạch logic, đầu vào được nhập từ bên trái và đầu ra ở bên phải 38
Hình 17: Các lớp bài toán P, NP và co-NP 40
Hình 18: Phân lớp tạm thời các bài toán 41
Hình 19 Biểu diễn mô hình cá thể 43
Hình 20 Mô hình triển khai 58
Hình 21 Mô hình ứng dụng client/server 59
Hình 22 Kiến trúc ứng dụng 3 lớp 60
Hình 23 Giao diện đăng nhập 69
Hình 24 Giao diện quản lý danh mục 69
Hình 25 Giao diện phân công giáo viên dạy môn và lớp học 70
Trang 7Hình 26 Giao diện dữ liệu chuẩn bị trước khi giải thuật thực hiện 70
Hình 27 Giao diện kết quả của phần mềm 71
Hình 28 Giao diện cập nhật chương trình đào tạo 71
Hình 29 Thiết lập lớp thuộc chương trình đào tạo 72
Hình 30 Giao diện thiết lập tham số hệ thống 73
Hình 31 Giao diện thiết lập tham số giải thuật 73
Trang 8DANH MỤC BẢNG
Bảng 1 Bảng chỉ số 19
Bảng 2: Mã hóa nhị phân độ dài 20 bit 23
Bảng 3: Mã hóa hoán vị 2 NST A&B 24
Bảng 4: Mã hóa giá trị các NST A, B, C 25
Bảng 5 Khởi tạo cá thể 44
Bảng 6 Sao chép cá thể 44
Bảng 7 Khởi tạo dữ liệu vector của cá thể 45
Bảng 8 Khởi tạo quần thể 46
Bảng 9 Biểu diễn ràng buộc giảng viên không dạy 2 lớp cùng thời điểm 46
Bảng 10 Biểu diễn ràng buộc phòng không tồn tại 2 lớp cùng thời điểm 47
Bảng 11 Biểu diễn ràng buộc số học viên không quá số ghế ngồi của phòng 47
Bảng 12 Biểu diễn ràng buộc lớp không học 2 môn cùng thời điểm 48
Bảng 13 Biểu diễn ràng buộc môn thể dục không học tiết 5, 6 48
Bảng 14 Biểu diễn ràng buộc bài học bắt buộc sử dụng phòng thực hành, bãi tập 49 Bảng 15 Đột biến 50
Bảng 16 Chọn điểm lai ghép 51
Bảng 17 Lai ghép 52
Bảng 18 Tính độ thích nghi của cá thể 53
Bảng 19 Danh mục đơn vị 61
Bảng 20 Danh mục hình thức bài học 61
Bảng 21 Danh mục loại phòng học 61
Bảng 22 Danh mục môn học 62
Bảng 23 Danh mục phòng học 62
Bảng 24 Bảng dữ liệu người dùng 63
Bảng 25 Bảng phân quyền người dùng 63
Bảng 26 Bảng nhật ký sử dụng 64
Trang 9Bảng 27 Bảng dữ liệu chương trình đào tạo 64
Bảng 28 Bảng dữ liệu chương trình đào tạo chi tiết 65
Bảng 29 Bảng dữ liệu chi tiết bài học của môn học trong chương trình đào tạo 66
Bảng 30 Bảng dữ liệu phân công Giảng viên – Lớp học 66
Bảng 31 Bảng dữ liệu phân công Giảng viên – Môn học 66
Bảng 32 Bảng dữ liệu kết quả xếp lịch 67
Bảng 33 Bảng dữ liệu thử nghiệm đơn giản 68
Bảng 34 Bảng dữ liệu thử nghiệm thực tế 68
Bảng 35: Bảng tham số thử nghiệm 68
Bảng 36 Bảng kết quả thử nghiệm đơn giản 69
Bảng 37 Bảng kết quả thử nghiệm thực tế 69
Trang 10MỞ ĐẦU
1 Lý do chọn đề tài
Trong cuộc sống ta thường gặp các bài toán liên quan đến xếp lịch như lịchvận hành cho máy móc, lịch thực hiện dự án, lịch làm việc, lịch thi đấu trong thểthao, lịch sửa dụng tài nguyên,… Đối với mỗi loại bài toán này cần tìm ra phương
án xếp lịch thoả mãn tất cả các ràng buộc cũng như khai thác hiệu quả các nguồn tàinguyên hiện có, giảm thời gian và chi phí thực hiện
Bài toán lập kế hoạch học tập trong trường học nói chung và trong trường Đạihọc nói riêng là một trong những bài toán như vậy Có rất nhiều ràng buộc được đặt
ra trong bài toán này như ràng buộc về đối tượng tham gia (giảng viên, học viện,lớp học), ràng buộc về tài nguyên phục vụ giảng dạy (phòng học lý thuyết, phònghọc thực hành, máy chiếu, đồ dùng hỗ trợ giảng dạy…), ràng buộc về thời gian (sốtiết học, số lần học, số tiết mỗi lần học), ràng buộc về chuyên mồn và nhiều ràngbuộc khác phụ thuộc vào từng trường Vấn đề đặt ra là xây dựng một thời khoá biểuthoả mãn tất cả các ràng buộc trên đồng thời khai thác hiệu quả các nguồn tàinguyên phục vụ giảng dạy
Bài toán lập kế hoạch học tập thuộc lớp các bài toán NP-đầy đủ vì vậy có thểkhông tìm ra lời giải tối ưu Đây là một bài toán không mới và đã có nhiều giảithuật được đưa ra để giải quyết như giải thuật nhánh cận, giải thuật leo đồi, giảithuật luyện thép, giải thuật tô màu đồ thị, giải thuật xấp xỉ,… Tuy nhiên các giảithuật này thường không có tính tổng quát và chỉ áp dụng hiệu quả đối với các bàitoán quy mô nhỏ, ràng buộc ít về mặt dữ liệu
Ở Việt Nam hiện nay, các trường Đại học đang có nhiều hình thức đào tạokhác nhau như đào tạo tín chỉ, đạo tạo niên chế và có cả trường áp dụng cả 2 hìnhthức Do vậy việc xếp kế hoạch học tập vẫn là một gánh nặng cho các trường, đặcbiệt với những trường có quy mô đào tạo lớn Mặt khác trên thị trường hiện tại cũngchưa có sản phẩm nào giải quyết hiệu quả bài toán
Trong những năm gần đây, phương pháp tiếp cận di truyền đã thu hút rất nhiều
sự chú ý trong các lĩnh vực nghiên cứu khác nhau trong đó có khoa học máy tính.Phương pháp này có nhiều đặc điểm nổi trội như không đòi hỏi tri thức, tránh tối ưucục bộ, thực hiện tốt các bài toán có không gian lời giải lớn và có thể áp dụng chonhiều loại bài toán tối ưu khác nhau Trên thế giới hiện nay giải thuật di truyền kếthợp với tin học được ứng dụng để giải quyết những bài toán tối ưu một cách rấthiệu quả Vì vậy việc nghiên cứu và ứng dụng giải thuật di truyền (Genetic
Trang 11Algorithm - GA) để giải quyết hiệu quả bài toán lập kế hoạch học tập là việc làmcần thiết.
2 Mục tiêu của đề tài
Đề tài tập trung nghiên cứu và ứng dụng giải thuật di truyền vào bài toán lập
kế hoạch học tập cho Trường Sĩ quan Tăng Thiết Giáp (TSQTTG) Đây là trườngtrong ngành quân đội có một số đặc thù riêng trong quá trình lập kế hoạch học tậpvới nhiều ràng buộc đặt ra
Để đạt được các mục tiêu trên, đề tài tập trung vào các nhiệm vụ cụ thể sau:
- Phân tích đặc điểm của bài toán lập kế hoạch học tập tại trường để từ đó đề
ra các giải pháp hợp lý trong việc xây dựng và triển khai hệ thống
- Tìm hiểu giải thuật di truyền và ứng dụng của nó trong việc giải quyết cácbài toán tối ưu
- Ứng dụng giải thuật di truyền vào bài toán lập kế hoạch học tập cho trường
- Thiết kế hệ thống và xây dựng ứng dụng
- Phân tích, đánh giá kết quả đạt được khi thực hiện hệ thống với các bộ dữliệu thử đơn giản
- Triển khai thực nghiệm với bộ dữ liệu của Trường SQTTG
3 Đối tượng và phạm vi nghiên cứu
Nghiên cứu các đặc điểm, đặc trưng của giải thuật di truyền, các thành phần
cơ bản như khởi tạo quần thể ban đầu, đánh giá độ thích nghi của các cá thể, cáctoán tử di truyền (chọn lọc, lai ghép, đột biến), điều kiện dừng
Ứng dụng giải thuật di truyền vào bài toán lập kế hoạch học tập tại mộttrường cấp Đại học trong ngành Quân đội theo học niên chế với những ràng buộc vànhững yêu cầu cơ bản
4 Phương pháp nghiên cứu
a Phương pháp nghiên cứu lý thuyết
- Nghiên cứu tài liệu, ngôn ngữ và công nghệ liên quan
- Tổng hợp các tài liệu lý thuyết về giải thuật di truyền
- Biểu diễn bài toán lập kế hoạch học tập trong trường bằng mô hình giải thuật
di truyền
Trang 12b Phương pháp nghiên cứu thực nghiệm
- Phân tích, thiết kế hệ thống theo quy trình xây dựng phần mềm
- Xây dựng hệ thống lập kế hoạch học tập sử dụng giải thuật di truyền
- Thử nghiệm hệ thống và đánh giá kết quả dựa trên bộ dữ liệu thử và dữ liệuthực tế của trường
6 Ý nghĩa khoa học và thực tiễn
- Áp dụng giải thuật di truyền vào máy tính là phương pháp áp dụng các quyluật của quá trình tiến hoá tự nhiên vào việc giải quyết các bài toán phức tạp
mà các thuật giải trước đó không đáp ứng được
- Việc lập kế hoạch học tập sử dụng giải thuật di truyền là vấn đề không mớinhưng chưa được áp dụng hiệu quả trong thực tế
- Giải thuật di truyền không những áp dụng trong lĩnh vực lập lịch mà còn cóthể được ứng dụng trong nhiều bài toán tối ưu khác Vì vậy kết quả nghiêncứu của đề tài sẽ là nền tảng và cơ sở để tiếp tục nghiên cứu về sau
- Kết quả của đề tài là hệ thống phần mềm TTGScheGA dùng để lập kế hoạchhọc tập có tính dễ sử dụng, tính tuỳ biến cao, đáp ứng tốt nhu cầu người sửdụng
- Hệ thống có thể chạy tốt với bộ dữ liệu thực tế tại các trường đại học giúpgiảm đáng kể thời gian và công sức trong việc lập kế hoạch học tập
7 Bố cục của luận văn
Bố cục của luận văn được chia thành 5 chương như sau:
Chương 1 Giới thiệu
Chương 1 nêu rõ tình hình lập kế hoạch học tập của trường Sĩ quan Tăng thiết giáp và yêu cầu bài toán đặt ra, quy trình cần tin học hoá, các ràng buộc, dữ liệu đầu vào, dữ liệu đầu ra, các yêu cầu chức năng.
Chương 2: Giải thuật di truyền
Trang 13Chương 2 tập trung vào giới thiệu giải thuật di truyền, lịch sử phát triển, hướng tiếp cận giải các bài toán tối ưu, quy trình thực hiện giải thuật và các ứng dụng của giải thuật trong thực tế.
Chương 3: Giải thuật di truyền giải bài toán lập kế hoạch học tập tại trường Sĩ
quan Tăng Thiết giáp
Chương 3 nêu cách giải quyết bài toán lập kế hoạch học tập tại trường Sĩ quan Tăng thiết giáp bằng Giải thuật di truyền, từ biểu diễn các thành phần của giải thuật, dữ liệu đầu vào, dữ liệu đầu ra và cài đặt giải thuật để giải quyết bài toán
Chương 4: Kết quả đạt được
Chương 4 trình bày kết quả đạt được của phần mềm được cài đặt với các bộ
dữ liệu thử nghiệm và dữ liệu thực tế với những thay đổi các tham số của giải thuật
để có sự so sánh bộ tham số phù hợp.
Chương 5: Kết luận và hướng phát triển.
Chương 5 bàn về những vấn đề đã giải quyết được và những vấn đề còn chưa giải quyết được trong phạm vi của đề tài và đề xuất hướng phát triển tiếp theo cho
đề tài.
Trang 14CHƯƠNG 1 GIỚI THIỆU
1.1 ĐẶT VẤN ĐỀ
Trong lĩnh vực lập lịch, giải thuật di truyền đã thu hút được rất nhiều cácnghiên cứu và đề xuất Bài toán lập lịch thuộc lớp các bài toán NP-khó và vì vậy, rấtcần các giải thuật xấp xỉ Tính đến nay có rất nhiều các đề xuất sử dụng giải thuật ditruyền cho bài toán lập lịch Tuy nhiên, bài toán lập lịch là một trong những bài toán
mà có nhiều thể loại đa dạng, mỗi một thể loại cần có thiết kế giải thuật di truyềnđặc biệt Về cơ bản, bài toán lập lịch được coi như là việc gán các mốc thời gian(time slots) thực hiện cho các cặp tiết học, phòng học sao cho phù hợp với khả năng
về tài nguyên (giảng viên, phòng học và trang thiết bị hỗ trợ) Tuy nhiên, sự đa dạng
thể hiện ở các thể loại ràng buộc khác nhau và mỗi một bài toán thực tế sẽ có những
ràng buộc đặc trưng riêng Chính vì vậy, mà các nghiên cứu đề xuất giải thuật di
truyền cho bài toán lập lịch luôn luôn là một chủ đề nóng
Trường Sĩ quan Tăng thiết giáp là trường trong quân đội nên lập kế hoạch họctập (kế hoạch huấn luyện) có nhiều đặc thù riêng không giống các trường học dân
sự Mục tiêu chính là xếp kế hoạch huấn luyện cho học viên của trường theo từngtháng để trường có kế hoạch huấn luyện cho toàn bộ học viên về kế hoạch giảngdạy của giảng viên
1.2 CÁC NGHIÊN CỨU LIÊN QUAN
Công việc lập kế hoạch học tập (lập lịch) trong trường đại học đã được côngnhận là khó cả về phương diện lý thuyết cũng như thực tế Một vài mô hình lập lịch
đã được mô tả trong thực tế, bao gồm từ lập lịch học của một trường đại học, lập
Chương này sẽ trình bày các vấn đề sau:
Phát biểu bài toán
Các nghiên cứu liên quan
Ứng dụng của bài toán
Trang 15lịch thi, hoặc một vài sự kiện trong trường đại học Các bài toán này được xem làbài toán lập lịch mà được định nghĩa như là các bài toán gán một số sự kiện như kìthi, khóa học với các khoảng thời gian và phòng thỏa mãn các ràng buộc.
Trong 20 năm trở lại đây, các cách tiếp cận heuristic đã được áp dụng thànhcông cho các bài toán lập lịch Ví dụ, heuristics dựa trên đồ thị, tabu search, largeneighborhood search, giải thuật great deluge algorithms, hybrid algorithms, vàpopulation based algorithms including memetic algorithms, ant colonyoptimization, genetic algorithms, honeybee mating optimization (HBMO)algorithms đã được ứng dụng Tuy nhiên, các giải thuật này đặc trưng cho dạng bàitoán lập lịch tổng quát, nhưng khó khăn trong việc cài đặt giải quyết các bài toán cụthể
Các giải thuật trên có thể được cải tiến phù hợp với những bài toán thực tếhơn, nhưng quá trình này thường khó và không hiệu quả Dựa trên một mô hình bàitoán cụ thể, ta sẽ xây dựng các ràng buộc đặc trưng cho bài toán đó Từ đó, luận văn
đề xuất một giải thuật GA giải bài toán lập kế hoạch học tập
1.3 PHÁT BIỂU BÀI TOÁN
1.3.1 Mô tả quy trình lập kế hoạch học tập của Trường Sĩ quan Tăng thiết
giáp.
- Tại trường Sĩ quan Tăng thiết hàng năm trước khi vào năm học mới, bộ phậnlàm kế hoạch (Ban kế hoạch của Phòng Đào tạo) sẽ phải chuẩn bị chươngtrình học chi tiết cho khoá học mới vào cho cả quá trình học tuỳ theo từngđối tượng học (đối tượng 3 năm, 4 năm, ngắn hạn…)
- Mỗi chương trình học chỉ rõ từng môn học với số lượng tổng số tiết học (lýthuyết, thực hành, bãi tập), danh sách các bài học cụ thể đến từng bài học và
số tiết Tiết nào học thực hành hoặc ngoài bãi tập có thông tin trang bị hỗ trợphục vụ đi kèm của bài đó (tài nguyên sử dụng trong buổi học) Một số bàihọc chỉ định phòng học bắt buộc
- Dựa theo chương trình học, Ban Kế hoạch sẽ phân bổ kế hoạch học cho từngđối tượng ứng với chương trình học cụ thể và lập lịch theo từng tháng Thángtrước lập lịch cho tháng tiếp theo Do đặc thù của trường quân đội, giảng
Trang 16viên thường xuyên có lịch công tác đột xuất do nhiệm vụ nên trong tháng lậplịch cho tháng tiếp giảng viên phải đăng ký thời gian bận trong tháng tiếp.Ban Kế hoạch dựa vào thông tin giảng viên bận hay rảnh để phân bổ bài họccủa môn học cho phù hợp trong tháng để kịp theo chương trình học trongnăm.
- Sau khi đã có lịch của tháng tiếp theo, Ban Kế hoạch in ra trên giấy A0 vàxin xác nhận của Trưởng phòng Đào tạo, ký đóng dấu của nhà trường và gửicông khai đến các khoa giảng viên, các đơn vị quản lý học viên
Một số lưu ý trong lịch của trường:
- Cùng môn học nhưng với mỗi bài học có độ dài khác nhau thì xếp ở các tuầncũng có độ dài số tiết học khác nhau Ví dụ môn Vũ khí trong tuần hiện tạihọc bài số 1 là 2 tiết nhưng ở tuần sau có thể học 4 tiết lý thuyết liên tục hoặc
6 tiết thực hành liên tục Do vậy số tiết học phụ thuộc vào bài học của mônhọc
- Số tiết lý thuyết được xếp theo cặp (2, 4 tiết, 6 tiết)
- Thời gian học tập lý thuyết vào buổi sáng, buổi chiều ôn
- Số lượng lớp học viên không lớn và mỗi lớp học một chuyên ngành riêng nênkhông áp dụng ghép lớp
- Danh sách giảng viên
- Các yêu cầu bắt buộc đối với bài học cụ thể (phòng học bắt buộc, trang bị hỗtrợ bắt buộc)
- Bảng phân công giảng viên giảng dạy môn học, lớp học
1.3.3 Các ràng buộc
Ràng buộc của bài toán được chia thành 2 loại là ràng buộc cứng và ràng buộcmềm Ràng buộc cứng là những ràng buộc bắt buộc kết quả phải thoả mã các ràng
Trang 17buộc đó Ràng buộc mềm là ràng buộc tuỳ chọn và thường là mục tiêu tối ưu củabài toán.
1.3.3.1 Ràng buộc cứng
- Một giảng viên không thể dạy 2 lớp học cùng một thời điểm
- Một phòng tại một thời điểm không thể có 2 lớp học (trừ phòng học chung)
- Số lượng sinh viên không thể vượt quá số ghế ngồi của phòng
- Một lớp không thể học 2 môn cùng một thời điểm
- Môn thể dục sẽ không vào tiết 5-6 của buổi sáng
- Bài học bắt buộc sử dụng phòng thực hành, bãi tập
1.3.3.2 Ràng buộc mềm
- Khoảng trống giữa 2 lần dạy của giảng viên trong một buổi càng gần nhaucàng tốt
- Thời gian trống của các lớp học viên càng ít càng tốt
- Số tiết giảng viên dạy chênh lệch không quá lớn
- Số phòng sử dụng càng ít càng tốt
1.3.4 Mục tiêu
- Tìm một kế hoạch học tập thoả mã các ràng buộc cứng
- Tối thiểu thời gian trống của các lớp học viên
- Tối thiểu thời gian trống của các giảng viên
- Các biểu thống kê độ căng của giảng viên, của phòng trong từng ngày
- Tổng thời gian dạy của từng giảng viên trong tháng
Trang 181.4 MÔ HÌNH BÀI TOÁN
Trang 191.4.3 Công thức cho các hàm ràng buộc
Một giảng viên không dạy hai lớp cùng một thời điểm:
Trang 20- F4 = với mọi n,g
Một lớp học tiết 6 buổi sang không học tiết 1 buổi chiều:
- F5 = Nếu G(n,6,l) = 1 thì G(n,7,l) = 0 với mọi n,l
Môn thể dục không học vào tiết 5-6 buổi sáng:
- Gọi m 0 là chỉ số của môn thể dục.
- F6 = Khi đó: E(n,t,l,m 0 ) =0 nếu t = 5,6 với mọi n,l
1.4.4 Công thức cho các hàm mục tiêu
Tối thiểu thời gian trống của lớp sinh viên:
- Fit1 = Min ( ) với mọi l
Tối thiểu thời gian trống của giảng viên:
- Fit2 = Min ( với mọi g
Tối thiểu số phòng sử dụng
- Fit3 = Min ( với mọi n
1.4.5 Phương pháp giải quyết
Việc lập kế hoạch trong tháng có thể chia thành các tuần rời rạc trong tháng đểthực hiện, mỗi tuần lập kế hoạch từ thứ 2 đến thứ 6 Mỗi tháng có thể lập kế hoạchcho 5 tuần Mỗi tuần sau đi được xếp lịch, môn học sẽ được đánh dấu đã xếp lịchđến bài học nào của môn, tuần tiếp theo sẽ thực hiện xếp cho bài học tiếp theo
Trang 21CHƯƠNG 2 GIẢI THUẬT DI TRUYỀN
2.1 KHÁI NIỆM CƠ BẢN
2.1.1 Lịch sử giải thuật di truyền
Ý niệm về giải thuật di truyền đã được một số nhà sinh vật học đưa ra từnhững năm 50-60, thế kỉ XX A.S Fraser là người tiên phong nêu lên sự tươngđồng giữa sự tiến hóa của sinh vật và chương trình tin học giả tưởng về GeneticAlgorithms (GA)
Tuy nhiên, chính John Henry Holland mới là người triển khai ý tưởng vàphương pháp giải quyết vấn đề dựa theo sự tiến hóa Từ những bài giảng, bài báocủa mình, ông đã đúc kết các ý tưởng vào trong cuốn sách đầu tay Adaptation inNatural and Artificial Systems, xuất bản năm 1975 Dựa trên lý thuyết cơ bản về
GA của Holand, Keneth De Jong đã triển khai và chứng minh những thành quả doông thực hiện đã góp phần quan trọng trong việc tạo ra nền tảng toán học cho lýthuyết GA
Giải thuật di truyền hình thành trên quan niệm cho rằng quá trình tiến hoá tựnhiên là quá trình hoàn hảo nhất, hợp lý nhất, và tự nó đã mang tính tối ưu Quanniệm này có thể được xem như một tiên đề đúng không chứng minh được nhưngphù hợp với thực tế khách quan Quá trình tiến hoá thể hiện tính tối ưu ở chỗ thế hệsau bao giờ cũng tốt hơn (phát triển hơn, hoàn thiện hơn) thế hệ trước Tiến hoá tựnhiên được duy trì nhờ hai quá trình cơ bản : sinh sản và chọn lọc tự nhiên Xuyênsuốt quá trình tiến hoá tự nhiên, thế hệ mới luôn được sinh ra và bổ sung thay thếthế hệ cũ Cá thể nào phát triển hơn, thích ứng hơn với môi trường sẽ tồn tại, ngược
Chương này sẽ trình bày các vấn đề sau:
Khái niệm cơ bản
Tham số của giải thuật di truyền
Ứng dụng của giải thuật di truyền
Trang 22lại sẽ bị đào thải Sự thay đổi môi trường là động lực thúc đẩy quá trình tiến hoá vàngược lại tiến hoá góp phần thay đổi môi trường
2.1.2 Khái niệm
2.1.2.1 Nhiễm sắc thể
Các sinh vật sống đều cấu tạo từ các tế bào, và tất cả các tế bào này đều baogồm một tập hợp các nhiếm sắc thể giống nhau Các NST này là một chuỗi cácAND, quy định đặc tính của cả cá thể Mỗi NST bao gồm rất nhiều GEN, mỗi genquy định một trạng thái nào đó
Trong bài toán tối ưu, mỗi cá thể tương ứng với một lời giải chấp nhận được.Việc mã hóa và giải mã gen, biến đổi giữa kiểu gen và kiểu hình được quyết địnhbởi tính chất của bài toán
Trong giải thuật di truyền, nhiễm sắc thể được biểu diễn trên máy tính bằngcách mã hoá nhiễm sắc thể và với từng bài toán khác nhau mà có cách mã hoá NSTcho phù hợp Có các cách mã hoá NST sau :
2.1.2.1.1 Mã hóa nhị phân
Đây là cách mã hóa nhị phân phổ biến nhất.Mỗi một nhiễm sắc thể là mộtchuỗi bit nhị phân 0 & 1 Mỗi một bit có thể biểu diến một đặc tính nào đó của lờigiải, và số bit cần để mã hóa được tính toán hợp lý để chuỗi nhị phân không quá dài,
mà chỉ vừa đủ cho biểu diễn thông tin cần thiết cho lời giải
Chromosome A 00110101000010111010Chromosome B 10111100110010001011
Bảng 2: Mã hóa nhị phân độ dài 20 bit
Mã hoá nhị phân thường hay dùng trong các bài toán tối ưu các hàm một biếnhay nhiều biến Khi đó, mỗi chuỗi nhị phân sẽ biểu diễn hàm tại một (tập) giá trịcủa (các) biến hoặc mỗi bộ chuỗi nhị phân sẽ biểu diễn một bộ nghiệm của hàm
Trang 23Ví dụ: Trong bài toán cái túi, dùng một chuỗi nhị phân để biểu diễn một cách
xếp đồ vào túi có kích thước bằng số đồ vật, mỗi bit tương ứng với các đồ vật sẽ cóhai giá trị : giá trị 0 nếu đồ vật đó không được cho vào túi và giá trị 1 nếu đồ vậtđược cho vào túi
Mã hoá nhị phân tuy là phổ biến nhưng nó có một nhược điểm là có thể tạo rakhông gian mã hoá lớn hơn so với không gian giá trị của NST Do đó, với nhiều bàitoán thì biểu diễn nhị phân là không hữu hiệu
2.1.2.1.2 Mã hóa hoán vị
Mỗi NST là một chuỗi hoán vị của các số (thường là số tự nhiên) để biểu diễnmột trình tự nào đó
Chromosome A 4 7 9 3 2 1 8 6 5Chromosome B 9 6 5 1 4 3 2 7 8
Bảng 3: Mã hóa hoán vị 2 NST A&B
Mã hoá hoán vị phù hợp cho các bài toán liên quan đến thứ tự Đối với các bàitoán này, việc thao tác trên các nhiễm sắc thể chính là hoán vị các số trong chuỗi đólàm thay đổi trình tự của nó Mã hóa hoán vị rất hữu ích với các bài toán sắp xếp
Ví dụ: Bài toán người du lịch Cho trước một số thành phố và khoảng cách
giữa chúng Tìm đường đi cho người du lịch để anh ta có thể đi thăm tất cả cácthành phố, mỗi thành phố chỉ đi qua một lần đồng thời tổng đường đi là ngắn nhất
Cách mã hóa: Mỗi một lời giải hay một cách đi của người du lịch được biểu
diến bằng một dãy các số chỉ trình tự người đó sẽ đi
2.1.2.1.3 Mã hóa giá trị
Mã hóa giá trị trực tiếp có thể được sử dụng trong các bài toán mà giá trị của
nó là các giả trị phức tạp như là số thực Sử dụng mã hóa nhị phân sẽ trở nên khókhăn Trong đó, mỗi NST là một chuỗi các giá trị Các giá trị có thể là các thông tin
Trang 24liên quan đến bài toán, từ số nguyên, số thực, kí tự cho đến các đối tượng phức tạphơn.
Ví dụ: Tìm trọng số cho mạng Nơron.
2.1.2.2 Quần thể, thế hệ, toán tử di truyền, tiến hóa
Quần thể (Population): là một tập hợp các cá thể có cùng một số đặc điểm nàođấy Trong giải thuật di truyền ta quan niệm quần thể là một tập các lời giải của mộtbài toán
Thế hệ (Generation): được xác định bởi một quần thể chưa tham gia vào quátrình tiến hóa tiếp theo
Toán tử di truyền (GA operator) là các toán tử thao tác đối với các cá thểnhằm tạo ra các cá thể mới
Quá trình tiến hóa (Evolution) là việc áp dụng các toán tử di truyền đối với các
cá thể, chuyển quần thể từ thế hệ này sang thế hệ tiếp theo, với một bộ phận cá thểhoặc toàn bộ quần thể đã được biến đổi
2.1.2.3 Hàm thích nghi
Trong tự nhiên, chỉ có những cá thể nào thích nghi được với môi trường thìmới tồn tại, ngược lại sẽ bị đào thải GA đưa ra khái niệm hàm thích nghi, hay hàmsức khỏe để đánh giá một cá thể so với quần thể Dựa vào giá trị hàm thích nghi của
Trang 25mỗi cá thể, giải thuật di truyền mới có thể chọn lựa được các cá thể tốt cho các thế
hệ sau Hay nói cách khác, hàm thích nghi là một tiêu chí đánh giá mức độ tiến hóacủa quần thể
2.1.2.4 Chọn lọc
Dựa vào nguyên lý của quá trình chọn lọc và đấu tranh sinh tồn trong tự nhiên,chọn lựa các cá thể trong GA là chọn các cá thể có độ thích nghi tốt để đưa vào thế
hệ tiếp theo hoặc để cho lai ghép, với mục đích sinh ra các cá thể mới tốt hơn
Có nhiều cách để lựa chọn các cá thể từ một quần thể Sau đây sẽ giới thiệumột số cơ chế hay áp dụng Để tiện mô tả các cơ chế lựa chọn luận văn đưa ra một
2.1.2.4.1 Lựa chọn theo bánh xe Roulet
Trước khi lựa chọn thì tính các giá trị sau:
Tính tổng độ thích nghi của cả quần thể: F = i )
Tính xác suất chọn p i cho mỗi NST v i : p i = f(v i ) / F
Tính vị trí xác suất q i của mỗi NST: q i = j
Trang 26-Hình 1 Xác xuất của mỗi NST theo kiểu lựa chọn Roulet
Cơ chế lựa chọn theo bánh xe Roulet được thực hiện bằng cách quay bánh xeRoulet N lần Mỗi lần chọn một NST từ quần thể hiện hành vào quần thể mới bằngcách sau:
Phát sinh ngẫu nhiên một số r trong khoảng [0, 1]
Nếu r < q 1 thì chọn NST v1; ngược lại thì chọn NST thứ i (2 ≤ i
≤pop_size) sao cho q i-1 ≤ r ≤ q i.Với cơ chế lựa chọn như thế này thì có một số nhiếm sắc thể sẽ được chọn
nhiều lần Điều này phù hợp với lý thuyết lược đồ: Các NST tốt nhất thì có nhiều
bản sao, NST trung bình thì không đổi, NST kém thì chết đi.
Hoặc lựa chọn kiểu bánh xe Roulet có thể mô tả theo thuật toán sau:
(1) [SUM] Tính tổng giá trị thích nghi S của tất cả các cá thể hay nhiễm săcthể trong toàn quần thể
(2) [SELECT] sinh một số ngẫu nhiên trên đoạn (0 S) ta được r.
(3) [LOOP] duyệt lại toàn bộ quần thể, tính tổng hàm thích nghi từ 0, ta gọi
là s Khi nào s > r thì ta dừng lại với nhiễm sắc thể hiện tại.
2.1.2.4.2 Lựa chọn xếp hạng
Theo cơ chế lựa chọn trên khi sự khác biệt giữa các hàm thích nghi lớn,cácNST có độ thích nghi kém sẽ rất ít có cơ hội được lựa chọn, nhất là khi cócác NSTtốt có độ thích nghi trên 90%
Trang 27Cơ chế lựa chọn xếp hạng được mô tả như sau:
Sắp xếp các NST trong quần thể theo độ thích nghi từ thấp đến cao
Đặt lại độ thích nghi cho quần thể đã sắp xếp theo kiểu: NST thứ nhất
có độ thích nghi là 1, nhiễm săc thể thứ hai có độ thích nghi là 2,
v.v…, NST thứ pop_size có độ thích nghi là pop_size
(a) Trạng thái quần thể trước khi (b) Trạng thái quần thể sau
Hay còn được gọi là lựa chọn theo trạng thái ổn định Cơ chế lựa chọn:
Lấy một số NST trong quần thể ra để chọn, NST có độ thích nghi caonhất được chọn
Lặp lại thao tác trên N lần
2.1.2.5 Lai ghép
Lai ghép là sự kết hợp các tính trạng của bố mẹ để sinh ra thế hệ con Tronggiải thuật di truyền, lai ghép được coi là một sự tổ hợp lại các tính chất (thành phần)trong hai hoặc nhiều cá thể cha mẹ nào đó để sinh ra một cá thể mới mà có đặc tínhmong muốn là tốt hơn cá thể cha mẹ
Hình 2: Lựa chọn xếp hạng
Trang 28Tùy theo cách mã hóa NST mà có các những cách lai ghép khác nhau:
2.1.2.5.1 Lai ghép theo mã hóa nhị phân
Lai ghép một điểm cắt (One Points Crossover)
- Điểm cắt là một gen vị trí ngẫu nhiên k trên NST
- Cá thể con có phần đầu đến gen thứ k giống hệt mẹ, phần còn lạigiống hệt cha
Hình 3: Lai ghép một điểm cắt mã hóa nhị phân
Lai ghép 2 điểm cắt
- Hai điểm cắt sẽ được chọn ngẫu nhiên
Hình 4: Lai ghép một điểm cắt mã hóa nhị phân
- Con sinh ra từ đầu cho đến điểm cắt thứ nhất được sao chép từcha, từ điểm cắt thứ nhất đến điểm cắt thứ hai sao chép từ mẹ vàphần còn lại sao chép từ cha
Lai ghép đồng nhất
- Chuỗi nhị phân của con sẽ được lai ghép ngẫu nhiên hoặc từ mẹhoặc từ cha Hay nói cách khác, ta sẽ xây dựng một mặt nạ laighép Nó cũng là một chuỗi nhị phân các bit 0&1
Trang 29- Duyệt mặt nạ: ở vị trí bit mặt nạ = 1 thì gen ở vị trí tương ứng của
mẹ được lai ghép cho con, nếu bit mặt nạ = 0 thì gen ở vị trí tươngứng của cha được lai ghép cho con
Hình 5: Lai ghép đồng nhất mã hóa nhị phân
Cụ thể hơn ta có bảng sau:
Hình 6 Mặt nạ lai ghép đồng nhất
Lai ghép số học: Cá thể con được sinh ra bằng một phép toán logic
nào đó (AND,OR,…) với cặp NST bố mẹ
Hình 7: Lai ghép số học mã hóa nhị phân 2.1.2.5.2 Lai ghép theo mã hóa hoán vị
Lai ghép một điểm cắt:
Vị trí cắt được chọn một cách ngẫu nhiên
Trang 30 Duyệt NST cha từ đầu, gen nào chưa có trong NST của con thì đưavào.
2.1.2.6.1 Đột biến theo mã hóa nhị phân
Phép đảo bit: Bit được chọn sẽ được đảo.
Hình 9 Phép đảo bit mã hóa nhị phân 2.1.2.6.2 Đột biến theo mã hóa hoán vị
Hoán đổi thứ tự:
Thứ tự các gen được hoán đổi được lựa chọn ngẫu nhiên
Trang 31Hình 10 Hoán vị thứ tự mã hóa hoán vị 2.1.2.6.3 Đột biến theo mã hóa giá trị
Ví dụ: Nếu mã hóa số thực, ta có thể thêm hoặc bớt một lượng rất nhỏ vàocác gen được chọn để đột biến
Hình 11 Thay đổi giá trị trong mã hóa giá trị
2.1.2.7 Chiến lược nạp lại quần thể
Chiến lược nạp lại quần thể là một trong những bước rất quan trọng của giảithuật di truyền, quyết định khả năng và tốc độ hội tụ của giải thuật di truyền Dựavào chiến lược nạp lại quần thể có thể phân loại các giải thuật di truyền
Một số chiến lược nạp lại quần thể:
2.1.2.7.1 Chiến lược nạp lại hoàn toàn
Tạo ra số NST mới bằng kích thước quần thể và quần thể mới bao gồm toàncác NST mới này, không có NST nào của thế hệ trước
Trang 32Thế hệ n-1: p cá thể
Thế hệ n: p cá thể
Thế hệ con: p cá thể Lai ghép
Nạp lại hoàn toàn
Hình 12 Sơ đồ chiến lược nạp lại hoàn toàn 2.1.2.7.2 Chiến lược nạp lại ngẫu nhiên
Tạo ra số NST mới ít hơn kích thước quần thể và thay thế một cách ngẫunhiên các NST ở thế hệ trước bằng NST ở thế hệ sau:
Trang 33Thế hệ n-1: p cá thể
Thế hệ con: m cá thể
Lai ghép
Nạp m con
Hình 14 Sơ đồ chiến lược nạp lại theo mô hình cá thể tối ưu
2.1.2.8 Mô hình giải thuật
Begin
Khởi tạo quần thể ban đầu
Tính độ thích nghi của các cá thể trong quần thể
Thoả mãn điều kiện dừng?
- Lựa chọn cá thể
Chọn lời giải tốt nhất từ cá thể có độ thích nghi cao nhất
End
Lai ghép Đột biến
Trang 34Hình 15 Mô hình giải thuật
2.1.2.9 Điều kiện dừng của GA
GA không lặp lại vô tận, sinh sản liên tục, mà cần có điều kiện dừng để kếtthúc giải thuật và chọn ra lời giải tốt nhất
Có hai cách để kết thúc giải thuật di truyền:
- Kết thúc cưỡng bức: Ta sẽ thực hiện GA để sinh ra số thế hệ đúng bằng
một số đã được cho trước GA sẽ dừng khi đã tạo đến thế hệ cuối cùng
Sử dụng phương pháp cưỡng bức có thể gây ra lãng phí thời gian nếu nhưcác thế hệ sau gần như không tốt lên Tuy nhiên, cơ chế kiểm soát khôngphức tạp
- Kết thúc tự nhiên: Đến một thế hệ nào đó mà hàm thích nghi cho các con
trong thế hệ đó không tốt hơn thì ta sẽ dừng giải thuật
Phương pháp kết thúc này có cơ chế kiểm soát phức tạp hơn nhưng không biếtchính xác khi nào kết thúc giải thuật
-2.2 CÁC THAM SỐ CỦA GIẢI THUẬT DI TRUYỀN
Giải thuật di truyền có các tham số quan trọng như kích thước quần thể
(popsize), xác suất lai ghép (p c ), xác suất đột biến (p m) Việc lựa chọn các tham sốphù hợp sẽ tăng tính hiệu quả của giải thuật
Trong các tham số trên thì popsize là quan trọng nhất, nếu chọn kích thước
quần thể quá nhỏ thì tính đa dạng của quần thể bị hạn chế và ảnh hưởng đến kết quảcòn nếu quá lớn sẽ làm hao phí tài nguyên của máy tính và làm chậm quá trình tiếnhoá
Trang 352.3 ỨNG DỤNG GIẢI THUẬT DI TRUYỀN
Để ứng dụng giải thuật di truyền vào việc giải quyết một bài toán nào đó cầnphải thực hiện một số công việc quan trọng sau:
1 Lựa chọn cách biểu diễn mô hình NST sao cho mỗi NST có thể chứađựng được một lời giải của bài toán
2 Xây dựng hàm đánh giá độ thích nghi cho từng NST Đây là bước khókhăn và ảnh hưởng lớn đến tính hiệu quả của giải thuật
3 Lựa chọn các toán tử di truyền phù hợp, trong đó tập trung cho ba toán tửchính là chọn lọc, lai ghép và đột biến
4 Xác định các tham số của giải thuật di truyền như kích thước quần thể,xác suất lai ghép, xác suất đột biến
5 Xác định điều kiện dừng cho quá trình tiến hoá
2.4 BÀI TOÁN TỐI ƯU
2.4.1 Một số khái niệm
Độ phức tạp của thuật toán: là đánh giá luợng tài nguyên các loại mà các thuậttoán đòi hỏi sử dụng Có hai loại tài nguyên quan trọng là thời gian và bộ nhớ Đánhgiá độ phức tạp tính toán của bài toán là đưa ra thời gian tính của thuật toán tốt nhấttổng số các thuật toán giải bài toán đã và chưa biết
Thuật toán có thời gian tính đa thức: là thuật toán mà độ phức tạp thời giancủa nó trong truờng hợp xấu nhất được giới hạn trên bởi một hàm đa thức của kíchthuớc dữ liệu đầu vào (kích thuớc dữ liệu đầu vào được tính bằng số bit cần thiết để
biểu diễn nó) Tức là nếu n là kích thuớc dữ liệu đầu vào, thì luôn tồn tại một đa thức p(n) sao cho W(n) ∈ O(p(n)).
Ví dụ:
Các thuật toán có độ phức tạp thời gian trong truờng hợp xấu nhất sau đều cóthời gian tính đa thức
Trang 36O(p(n)) = 2n 3n + 4 5n + n nlgn
Các thuật toán có độ phức tạp thời gian trong truờng hợp xấu nhất sau không
có thời gian tính đa thức
O(f(n)) = 2n 20.01n n!
Có hai cách tiếp cận chính để đanh giá độ phức tạp tính toán:
- Đánh giá cận duới độ phức tạp bài toán
- Chỉ ra mức độ khó của nó có thể so sánh với bất ký bài toán khó hiện đabiết
Bài toán quyết định: là bài toán mà đầu ra của nó chỉ có thể là yes
hoặc no (0 hoặc 1, đúng hoặc sai…)
- Một số bài toán quyết định:
- Bài toán về tính số nguyên tố sau là bài toán quyết định “Hỏi số nguyên
tố n có là số nguyên tố hay không?”
- Với dữ liệu vào n = 23 thì câu trả lời là yes, còn với dữ liệu vào n
= 24 thì câu trả lời là no.
- Bài toán tổng con (Subset sum): “Cho tập I số nguyên dương a 1 , a 2, …, a n
và một số nguyên dương T Hỏi có thể tìm được một tập con S của I mà tổng các số trong S = T?”
2.4.2 Các bài toán tối ưu
Truớc những năm 1970, phương pháp chủ yếu để giải các bài toán tối ưu làxây dựng phương pháp giải đúng Nhưng qua kinh nghiệm tính toán cũng như phântích tính hữu hiệu của phương pháp này, nguời ta nhận ra rất nhiều hạn chế của nó,nhất là về mặt thời gian tính toán Phương pháp giải đúng chỉ được áp dụng khi giảibài toán với kích thuớc trung bình Từ rất sớm, các nhà khoa học về lý thuyết máytính nhu Steve Cook và Dick Karp đã quyết định rằng yêu cầu tối thiểu của bất cứ
một bài toán tối ưu nào là thời gian chạy đa thức: O(n c ) , với c là hằng số Tuy
nhiên, không phải mọi bài toán đều có thể được giải quyết một cách nhanh chóng
Trang 37Rất khó xác định bài toán nào có thể giải quyết một cách nhanh chóng, bài toán nàokhông thể Bởi vậy Cook, Karp, và một số nhà khoa học khác định nghia ra lớp bàitoán NP-khó, mà phần lớn mọi nguời đều tin rằng chúng không thể được giải quyếttrong thời gian đa thức.
Bài toán về tính thực hiện của được của mạch CIR-SAT (Circuit satisfiability)
là một ví dụ điển hình của bài toán mà chúng ta chua biết cách để giải nó trong thờigian đa thức Trong bài toán này, cho một mạch logic bao gồm một tập các cổngAND, OR, và NOT được kết nối với nhau bởi dây dẫn Đầu vào cho mạch này là
tập m giá trị logic (true/false) x 1 , x 2 ,…, x m (xem hình 5) Đầu ra là một giá trị logic
đơn TRUE/FALSE Cho một bộ giá trị đầu vào, có thể tính được đầu ra trong thời
gian đa thức (thực tế là tuyến tính) sử dụng tìm kiếm theo chiều sâu và đánh giá đầu
ra của mỗi cổng trong thời gian tuyến tính Bài toán về tính thực hiện của mạch đặt
ra rằng, cho một mạch bất kỳ, liệu rằng có một bộ đầu vào làm cho đầu ra của mạch
luôn là TRUE, hoặc ngược lại, luôn là FALSE hay không Chưa ai biết được cách
giải quyết bài toán này nhanh hơn cách thử tất cả 2m đầu vào có thể của mạch,nhung nó đòi hỏi thời gian là hàm mũ Mặt khác, không ai có thể chứng minh được
đó là cách tốt nhất chúng ta có thể làm Liệu rằng có một thuật toán thông minh nào
mà chưa từng có ai phát hiện ra không?
Hình 16 Mạch logic, đầu vào được nhập từ bên trái và đầu ra ở bên phải
Trang 382.4.2.1 Các lớp bài toán P, NP và co - NP
Dưới đây là phân loại các lớp của bài toán
- P: là lớp bài toán quyết định có thể được giải quyết trong thời gian đa thức.Hay nói cách khác, P là lớp các bài toán có thể được giải một cách nhanhchóng
- NP: là lớp bài toán quyết định mà để xác nhận câu trả lời là yes của nó, cóthể đưa ra bằng chứng ngắn ngọn dễ kiểm tra Hay có thể nói NP là lớp các bàitoán mà có thể kiểm tra câu trả lời yes một cách nhanh chóng trong thời gian
đa thức nếu đã có được lời giải Ví dụ, trong bài toán về tính thực hiện củamạch là NP, nếu câu trả lời là yes, thì bất cứ bộ giá trị đầu vào nào cho giá trịđầu ra là yes đều sẽ chứng minh cho câu trả lời Ta có thể kiểm tra lại bằngcách đánh giá mạch logic trong thời gian đa thức
- co-NP hoàn toàn nguợc với NP Đó là lớp bài toán mà để xác nhận câu trả lời
no thì có thể đưa ra bằng chứng ngắn gọn để kiểm tra.
Nếu một bài toán thuộc lớp P, thì nó cung thuộc lớp NP-để kiểm tra một câutrả lời yes trong thời gian đa thức, ta có thể tính toán lại câu trả lời từ đầu trong thờigian đa thức Tương tự như vậy, bất cứ bài toán nào thuộc lớp P thì cũng thuộc lớpco-NP
P |NP P co-NP
Một câu hỏi lớn đặt ra trong lý thuyết khoa học máy tính là liệu có đẳng thức P
= NP hay không Không ai biết được chính xác câu trả lời Một cách trực quan cóthể thấy rõ ràng rằng NP ≠ P, như minh họa trong hình 6 Các nghiên cứu đã khiến
ta tin rằng các bài toán có thể vô cùng khó để giải quyết, mặc dù lời giải lại rất rõràng khi đa biết được nó Nhưng không ai có thể chứng minh được điều này