Các kết quả nghiên cứu trong luận văn một lầnnữa khẳng định tính ứng dụng hiệu quả của thuật toán di truyền đối với cácbài toán tối ưu khó nói chung và bài toán thời khóa biểu nói riêng.
Trang 1Xin chân thành cảm ơn Lãnh đạo Trường Đại học Vinh, Viện Kỹ thuật
và Công nghệ đã giúp đỡ, hỗ trợ để tôi hoàn thành tốt công việc học tập vànghiên cứu khoa học Tôi cũng xin cảm ơn Lãnh đạo Trường THPT QuỳChâu đã tạo điều kiện về thời gian, công việc để tôi có thể theo học và hoànthành khóa học của mình
Đặc biệt em xin tỏ lòng kính trọng và biết ơn sâu sắc đối với thầy giáo
TS Vũ Chí Cường đã trực tiếp tận tình hướng dẫn, đưa ra những gợi ý, góp ý,chỉnh sửa cũng như cung cấp tài liệu thông tin khoa học cần thiết cho luậnvăn này
Cuối cùng tôi xin chân thành cảm ơn đồng nghiệp, gia đình và bạn bè
đã động viên, giúp đỡ tôi trong quá trình học tập và thực hiện luận văn
Nghệ An, ngày 10 tháng 7 năm 2018
Phan Văn Thế
Trang 2MỤC LỤC
DANH MỤC CÁC BẢNG VÀ CÁC HÌNH 5
MỞ ĐẦU 6
1 Lý do chọn đề tài 6
2 Lịch sử vấn đề 7
3 Đối tượng và phạm vi nghiên cứu 8
4 Mục đích, nhiệm vụ nghiên cứu 8
5 Phương pháp nghiên cứu 9
6 Đóng góp của luận văn 9
7 Cấu trúc của luận văn 10
Chương I 11
BÀI TOÁN SẮP XẾP THỜI KHÓA BIỂU 11
1.1 Tổng quan về bài toán lập lịch 11
1.1.1 Bài toán 12
1.1.2 Các thuộc tính 12
1.1.3 Một số bài toán lập lịch cơ bản 12
1.2 Bài toán xếp thời khóa biểu 13
1.2.1 Bài toán 13
1.2.2 Dữ liệu đầu vào 14
1.2.3 Các ràng buộc 14
1.3 Một số Phần mềm xếp tời khóa biểu THPT 15
Chương II 16
THUẬT TOÁN DI TRUYỀN 16
2.1 Tổng quan về thuật toán di truyền 17
2.1.1 Giới thiệu 17
2.1.2 Sự khác biệt của thuật toán di truyền và thuật toán khác 18
2.1.3 Các tính chất của thuật toán di truyền 19
2.1.4 Sơ đồ và cấu trúc thuật toán di truyền 20
2.2 Các thành phần trong thuật toán di truyền 22
2.2.1 Biểu diễn nhiễm sắc thể 22
2.2.1.1 Biểu diễn nhị phân 22
2.2.1.2 Biểu diễn số thực 22
2.2.2 Khởi tạo quần thể ban đầu 23
Trang 32.2.3 Đánh giá cá thể 23
2.2.4 Các phép toán di truyền 24
2.2.4.1 Phương pháp chọn lọc 24
2.2.4.2 Phương pháp lai ghép 27
2.2.4.3 Phương pháp đột biến 27
2.2.5 Điều kiện dừng của thuật toán 28
2.2.6 Các tham số của thuật toán di truyền 28
2.3 Ứng dụng của thuật toán di truyền 28
2.3.1 Bài toán người du lịch (TSP) 29
2.3.2 Bài toán lập lịch 29
2.3.3 Lập thời khóa biểu cho trường học 30
2.3.4 Phân hoạch đối tượng và đồ thị 31
2.3.5 Vạch đường cho Robot di chuyển 31
Chương III 33
ỨNG DỤNG THUẬT TOÁN DI TRUYỀN 33
CHO BÀI TOÁN LẬP THỜI KHÓA BIỂU 33
3.1 Phát biểu bài toán 33
3.1.1 Dữ liệu đầu vào 33
3.1.1.1 Danh sách lớp học 33
3.1.1.2 Danh sách môn học 34
3.1.1.3 Danh sách giáo viên 35
3.1.1.4 Bảng phân côn giảng dạy 35
3.1.2 Biểu diễn nhiễm sắc thể 37
3.1.3 Khởi tạo quần thể 38
3.1.4 Các phép toán di truyền 42
3.1.4.1 Lai ghép 43
3.1.4.2 Đột biến 44
3.1.4.3 Chọn lọc 44
3.1.4.4 Hàm đánh giá độ thích nghi 45
3.1.5 Thuật toán sắp xếp thời khóa biểu 49
3.2 Phân tích và thiết kế chương trình 52
3.2.1 Một số bước cơ bản để giải quyết bài toán lập lịch thời khoá biếu 52
3.2.2 Phân tích và Mô tả dữ liệu đầu vào 52
3.2.3 Thiết kế chương trình 54
3.2.3.1 Menu chính của chương trình 55
3.2.3.1 Các Form nhập dữ liệu 55
3.3 Thử nghiệm và đánh giá kết quả 58
3.3.1 Số liệu thử nghiệm 58
3.3.2 Biểu đồ so sánh Lai ghép 58
Trang 43.3.2.1 Thời khóa biểu lớp 59
3.3.2.2 Thời khóa biểu giáo viên 60
KÉT LUẬN 62
1 Kết quả đạt được 62
2 Hạn chế, hướng phát triển 62
TÀI LIỆU THAM KHẢO 63
Trang 5DANH MỤC CÁC BẢNG VÀ CÁC HÌNH
Hình 1.1 Quy trình xếp thời khóa biểu
Hình 2.1: Thuật toán di truyền
Hình 2.2 Minh họa cho kỹ thuật chọn lọc theo kiểu quay bánh xeHình 3.1 Cấu trúc Nhiễm sắc thể
Hình 3.9 Form nhập liệu Phân công giảng dạy
Hình 3.10 Form nhập liệu Các ràng buộc mềm
Hình 3.11 Form các tham số di truyền
Hình 3.12 Form thao tác xếp TKB
Hình 3.13 Biểu đồ so sánh giá trị thích nghi
Bảng 1.1 Nội dung công việc xếp thời khóa biểu
Bảng 3.1 Danh sách lớp học
Bảng 3.2 Danh sách môn học
Bảng 3.3 Danh sách Giáo viên
Bảng 3.4 Bảng phân công giảng dạy
Bảng 3.5 Ví dụ về danh sách các tiết học
Bảng 3.6 Ví dụ về phân phối các tiết học
Bảng 3.7 Ví dụ về các tiết cố định
Bảng 3.8 Ví dụ về thời khóa biểu 1 lớp
Bảng 3.9 Quy định tiết được học trong thời khóa biếu
Bảng 3.10 Thời khóa biểu lớp học
Bảng 3.11 Thời khóa biểu Giáo viên
Trang 6MỞ ĐẦU
1 Lý do chọn đề tài
Thời khóa biểu của trường học là một kế hoạch giảng dạy của giáo viên
và học tập của học sinh Một bảng thời khóa biểu hợp lý giúp giáo viên thuậnlợi, chủ động khi lên lớp và giúp học sinh thoải mái khi học tập
Việc lập hay xếp thời khóa biểu là hoạt động quan trọng của mỗi mộtnhà trường và phải luôn luôn hoàn thành trước khi triển khai giảng dạy Lậpthời khóa biểu bằng phương pháp thủ công là công việc rất nặng nề, tốn nhiềuthời gian và dễ vi phạm các ràng buộc về nghiệp vụ Do vậy, khi áp dụng phảitrải qua một vài lần điều chỉnh mới có thể đạt được yêu cầu cơ bản
Đã từ lâu, việc lập thời khóa biểu cho các trường học đã được tổng quáthóa thành bài toán, các nhà nghiên cứu đã và đang tìm các phương pháp giải
nó bằng các công cụ, thuật toán tin học Các bài toán xếp thời khóa biểu rấtphong phú và đa dạng bởi những ràng buộc và yêu cầu đặc trưng của từngtrường học, thậm chí từng môn học Bởi vậy lời giải của bài toán xếp thờikhóa biểu thường là những giải pháp chấp nhận được, hay nói cách khác bàitoán xếp thời khóa biểu là một bài toán tối ưu
Trong khoảng 50 năm qua, thuật toán di truyền và các cải tiến - pháttriển của nó gọi chung là thuật toán tiến hóa đã thực sự tạo ra các kết quả rấtkhả quan khi áp dụng giải quyết các bài toán tối ưu Thuật toán di truyền môphỏng sự tiến hóa tự nhiên của sinh học với quan niệm sự tiến hóa tự nhiêncủa sinh học là một quá trình tối ưu Thuật toán trên tỏ ra rất hiệu quả trong
Trang 7việc áp dụng giải quyết các bài toán tối ưu trong thực tế, tiêu biểu là bài toánlập thời khóa biểu trường học.
Ở Việt Nam đã có một vài phần mềm lập thời khóa biểu khá tốt, nhưngchưa đáp ứng hết các yêu cầu thực tế cũng như cách tổ chức giảng dạy củatừng trường Trường THPT Quỳ Châu, nơi tôi đang giảng dạy, chưa có phầnmềm lập thời khóa biểu riêng để đáp ứng các điều kiện cụ thể của nhà trường
Xuất phát từ những vấn đề trên, đề tài “Nghiên cứu thuật toán di
truyền cho bài toán xếp thời khóa biểu ở Trường trung học phổ thông” được
tôi lựa chọn làm luận văn tốt nghiệp Luận văn tập trung nghiên cứu về thuậttoán di truyền và đồng thời giải quyết bài toán thời khóa biểu về mặt lý thuyếtlẫn thực hành, xem như là một thử nghiệm đầu tiên
Do khả năng và thời gian hạn chế, tôi chỉ mới hoàn thành phần mềm ởmức cơ bản nhất, chỉ tạm sử dụng nội bộ trong trường nơi tôi công tác Hyvọng trong thời gian tới, tôi sẽ bổ sung thêm chức năng cho phần mềm vàhoàn chỉnh thành sản phẩm sử dụng được trong ngành giáo dục nói chung
2 Lịch sử vấn đề
Thuật toán di truyền (tên tiếng Anh là Genetic Algorithms, viết tắt làGA) đã được giáo sư J.H Holland công bố lần đầu tiên vào năm 1962 Thuậttoán di truyền được hình thành dựa trên quan niệm rằng “quá trình tiến hóa tựnhiên là một quá trình hoàn hảo và hợp lý nhất, tự quá trình này đã mang tínhtối ưu” Từ khi ra đời cho đến nay, thuật toán di truyền đã được nhiều nhàtoán học, nhà tin học nghiên cứu các vấn đề về lý thuyết và ứng dụng
Thuật toán di truyền là một nhánh lớn trong lĩnh vực nghiên cứu vềthuật toán tiến hóa (tên tiếng Anh là Evolutionary Algorithms, viết tắt làEAs) Thuật toán di truyền nói riêng và EAs nói chung có thế mạnh thật sựtrong việc giải quyết các bài toán khó, bài toán tối ưu số và tối ưu tổ hợp Mộttrong các ứng dụng kinh điển của Thuật toán di truyền là bài toán sắp xếp thời
Trang 8khóa biểu.
Ở nước ta, thuật toán di truyền và ứng dụng nhận được sự quan tâmcủa nhiều nhà khoa học Đối với bài toán ứng dụng thuật toán di truyền để sắpxếp thời khóa biểu, đã có một số tác giả nghiên cứu và triển khai trong cácluận văn tốt nghiệp cao học thạc sĩ ngành công nghệ thông tin Tiêu biểutrong số này có thể kể đến:
- Tính toán tiến hóa và ứng dụng lập thời khóa biểu trường trung họcphổ thông của ThS Trần Quốc Hưng tại Trường Đại học Công nghệ - Đạihọc Quốc gia Hà Nội năm 2004 (xem [8])
- Ứng dụng giải thuật di truyền để xếp thời khóa biểu hệ tín chỉ chotrường đại học của ThS Phạm Anh Tuấn tại Trường Đại học Đà Nẵng năm
2012 (xem [7])
- Giải thuật di truyền và bài toán lập thời khóa biểu của ThS ĐồngVăn Tuấn tại Trường Đại học Công nghệ thông tin và Truyền thông - Đại họcThái Nguyên năm 2014 (xem [4])
Trong các công trình này, bài toán sắp xếp thời khóa biểu được nghiêncứu và giải quyết Tuy nhiên chỉ dừng lại ở các bài toán rất cụ thể của từngđơn vị, từng trường mà chưa thể mở rộng một cách tổng quát
3 Đối tượng và phạm vi nghiên cứu
Tìm hiểu bài toán lập lịch
Tìm hiểu thuật toán di truyền, ứng dụng thuật toán di truyền vào bài toánlập thời khóa biểu
Xây dựng ứng dụng lập thời khóa biểu cho trường THPT nói chung vàTrường THPT Quỳ Châu nói riêng
4 Mục đích, nhiệm vụ nghiên cứu
Xây dựng được phần mềm sắp xếp thời khóa biểu của Trường THPTQuỳ Châu thích nghi, linh hoạt, đáp ứng các yêu cầu ràng buộc của bài toán
Trang 9và thực tế của nhà trường Phần mềm hướng tới có thể đáp ứng các yêu cầuràng buộc của trường THPT nói chung.
5 Phương pháp nghiên cứu
- Nghiên cứu, tìm hiểu các tài liệu liên quan;
- Phân tích và thiết kế phần mềm;
- Viết chương trình;
- Thử nghiệm và phân tích kết quả
6 Đóng góp của luận văn
Luận văn bổ sung thêm một tài liệu tham khảo lý thuyết và thựcnghiệm về giải thuật di truyền Các kết quả nghiên cứu trong luận văn một lầnnữa khẳng định tính ứng dụng hiệu quả của thuật toán di truyền đối với cácbài toán tối ưu khó nói chung và bài toán thời khóa biểu nói riêng
Phần mềm sắp xếp thời khóa biểu được nghiên cứu, xây dựng trongluận văn thỏa mãn các điều kiện ràng buộc chung của bài toán xếp thời khóabiểu, phần mềm còn cho phép các trường THPT nói chung và Trường THPTQuỳ Châu nói riêng có thể linh hoạt và chủ động các phương án khác nhautrong việc sắp xếp thời khóa biểu năm học:
- Cho phép khai báo tiết cố định của môn học
- Cho phép khai báo thời gian bận của các giáo viên
- Cho phép giảm thiểu số tiết trống
0 + Môn Toán, môn Văn có 1 cặp tiết xếp liền
1 + Môn Thể dục, Quốc phòng không dạy tiết 5 và tiết 6
2 + Môn được phân 2 tiết trên 1 buổi thì không rời nhau
3 + Không phân 3 tiết 1 môn trên 1 buổi
4 + Hạn chế giáo viên không dạy 5 tiết trong 1 buổi
5
Trang 107 Cấu trúc của luận văn
Báo cáo luận văn được cấu trúc trong 03 chương
Chương 1 Bài toán sắp xếp thời khóa biểu Mô tả chung về bài toán
thời khóa biểu và một số phần mềm xếp thời khóa biểu dành cho trườngTHPT hiện nay
Chương 2 Giải thuật di truyền Mô tả các lý thuyết về giải thuật di
truyền, trình bày một số lĩnh vực ứng dụng của giải thuật di truyền
Chương 3 Ứng dụng giải thuật di truyền cho bài toán thời khóa biểu Trường THPT Là nội dung chính của luận văn và được chia làm 3
phần Phần thứ nhất trình bày các thành phần cơ bản của thuật toán di truyềnđược mã hóa và mô tả một cách cụ thể bài toán và các yêu cầu của bài toánxếp thời khóa biểu của trường THPT Phần thứ 2 là phân tích và thiết kếchương trình Phần thứ ba là các kết quả thực nghiệm và đánh giá
Trang 11Chương I
BÀI TOÁN SẮP XẾP THỜI KHÓA BIỂU
Bài toán xếp Thời khóa biểu thuộc lớp Bài toán lập lịch, là một trongnhững bài toán thú vị nhất trong lớp các bài toán tối ưu vì tính chất đa dạng
về mô hình thời khóa biểu, có nhiều ràng buộc phức tạp và tính chất thực tiễncủa nó
Bài toán thời khóa biểu thuộc loại bài toán NP-khó, là trường hợp riêngcủa bài toán lập lịch, trong đó đưa ra một chuỗi các sự kiện (các môn học, bàigiảng hoặc môn thi) và bao gồm các giáo viên và học sinh trong một khoảngthời gian định trước, và một tập các ràng buộc phải thỏa mãn của từng loạithời khóa biểu khác nhau Tập ràng buộc bao gồm khả năng tham dự của họcsinh, khả năng làm việc của giáo viên, số lượng và sức chứa của phòng học vàcác yêu cầu của các sự kiện
1.1 Tổng quan về bài toán lập lịch
Bài toán lập lịch là chọn một chuỗi các thao tác, đồng thời chỉ định vềthời gian bắt đầu/ kết thúc và các tài nguyên cần thiết cho mỗi thao tác Điềucần quan tâm chính yếu là chi phí thời gian máy rỗi, năng lực lao động và cácđơn đặt hàng cần hoàn thành đúng hạn Ý tưởng chính trong phương pháp là
mã hóa biểu diễn của lịch phân công là các toán tử di truyền phải thực hiệntheo cách có ý nghĩa, và một bộ giải mã phải luôn tạo ra một lời giải hợp lệcho bài toán Thủ tục giải mã mô phỏng các thao tác của công việc theo cách
mà khi một máy tính sẵn sàng chọn lựa, thì thao tác cho phép đầu tiên từ danhsách ưu tiên được lấy ra
Trang 121.1.1 Bài toán
Lập lịch có thể được định nghĩa là một bài toán tìm kiếm chuỗi tối ưu
để thực hiện một tập các hoạt động chịu tác động của một tập các ràng buộccần phải được thỏa mãn Người lập lịch thường cố gắng thử đến mức tối đa sự
sử dụng các cá thể, máy móc và tối thiểu thời gian đòi hỏi để hoàn thành toàn
bộ quá trình nhằm sắp xếp lịch Vì thế bài toán lập lịch là một vấn đề rất khó
để giải quyết Hiện nay có nhiều khả năng để phát triển các kỹ thuật hiện tại
để giải quyết bài toán này Những kỹ thuật đó bao gồm: các tiếp cận Trí tuệnhân tạo như hệ thống tri thức cơ sở (knowledge-based systems), bài toánthoả mãn ràng buộc, hệ chuyên gia, mạng Nơron và các tiếp cận của cácnghiên cứu hoạt động: lập trình tính toán, lập trình động, tìm kiếm nhánh vàđường biên, kỹ thuật mô phỏng, tìm kiếm Tabu và phương pháp nút cổ chai,
1.1.3 Một số bài toán lập lịch cơ bản
- Bài toán lập lịch Job Shop;
- Bài toán gia công;
- Bài toán lịch trực;
- Lập lịch ưu tiên đúng hạn;
Trang 13- Bài toán xếp thời khóa biểu trường học,…
1.2 Bài toán xếp thời khóa biểu
1.2.1 Bài toán
Bài toán sắp xếp thời khóa biểu ở trường học nói chung và sắp xếp thờikhóa biểu ở trường trung học phổ thông nói riêng là một bài toán khó Sựphức tạp của bài toán không chỉ ở vấn đề tìm ra môt thời khóa biểu chotrường học thỏa mãn các ràng buộc về thời gian, ràng buộc chuyên môn, quyđịnh của Bộ Giáo dục và Đào tạo mà còn một vấn đề khó khăn hơn là ta phảitìm được một thời khóa biểu tốt thích hợp cho tất cả các giáo viên, phải thỏamãn các điều kiện, yêu cầu về thời gian, hạn chế số tiết trống trong một ngày
và số ngày lên lớp của giáo viên trong thời khóa biểu
Quy trình để xếp thời khóa biểu có thể biểu diễn như sau:
Việc sắp xếp thời khóa biểu của các trường phổ thông luôn luôn phảithực hiên trước khi học kỳ mới bắt đầu Theo đó, nội dung các môn học và
Chia lớp và ổn định
lớp học
Danh sách giáo viên
Môn học của lớp
và môn dạy của giáo viên
Danh sách lớp học
Danh sách giáo viên
Yêu cầu ràng buộc của Giáo viên và của Lớp
XẾP TKB
TKB của lớp và TKB của giáo viên
Các ràng buộc mềm
Hình 1.1 Quy trình xếp thời khóa biểu
Trang 14giáo viên phụ trách môn học của từng lớp phải được xác định thông qua cuộchọp chuyên môn, kết quả của cuộc họp này được gửi cho Ban giám hiệu nhàtrường và việc lên lịch cho toàn bộ trường do Phó hiệu trưởng phụ tráchchuyên môn hoặc Thư kí Hội đồng trường đảm nhiệm Hiện nay, việc sắp thờikhóa biểu này ở hầu hết các trường phổ thông đều được thực hiện một cáchthủ công và hầu như phải dựa vào kinh nghiệm thực tế mới có thể làm được.Thông thường việc sắp xếp thời khóa biểu này phải mất trung bình một tuần.
Vậy bài toán đặt ra là cần phải sắp xếp thời khoá biểu cho một trườngTHPT hay sắp xếp lịch học của các lớp học sao cho vừa phù hợp lại vừa tiệndụng nhất
1.2.2 Dữ liệu đầu vào
- Danh sách môn học;
- Danh sách lớp học;
- Danh sách giáo viên;
- Bảng phân công giáo viên giáo dạy tại các lớp;
- Bảng yêu cầu ràng buộc của giáo viên với lịch dạy;
- Bảng yêu cầu ràng buộc của lớp với lịch học
1.2.3 Các ràng buộc
Ràng buộc cứng:
- Một giáo viên chỉ dạy được một lớp trong cùng một tiết;
- Mỗi lớp chỉ học 1 môn tại 1 thời điểm;
- Các lớp chỉ có một môn học trong cùng một tiết;
- Một giáo viên không thể dạy quá 30 tiết mỗi tuần
Ràng buộc mềm:
- Một giáo viên không dạy quá 5 tiết/buổi;
- Môn Toán, Văn có 1 cặp 2 tiết liền nhau;
- Một môn học không quá 3 tiết trong 1 buổi;
Trang 15- Hai tiết của 1 môn trong 1 buổi thì liên nhau;
- Một lớp có thể có cùng một môn nhiều lần trong một ngày;
CM
Bảng phân công Giảng dạy
CM
6 Các yêu cầu cố định tiết dạy
(lịch bận/rỗi)
Giáo viên, Phó HT phụ trách CM
Bảng dữ liệu bận/rỗi
Bảng 1.1 Nội dung công việc xếp thời khóa biểu
1.3 Một số phần mềm xếp thời khóa biểu THPT
Hiện nay có 2 phần mềm sắp xếp thời khóa biểu THPT được nhiềungười biết đến, đó là Phần mềm xếp thời khóa biểu SmartScheduler của công
ty Hoàng Gia và Phần mềm xếp thời khóa biểu của công ty SchoolNet
Phần mềm xếp thời khóa biểu SmartScheduler là sản phẩm dự thi Trítuệ Việt Nam 2001 của hai kỹ sư tin học Lê Hữu Sơn và Hoàng Cường Theocác tác giả, phần mềm có khả năng tự động sắp xếp thời khoá biểu rất nhanh,phần mềm cũng cung cấp khả năng soạn thảo thời khoá biểu bằng tay nhằmđáp ứng các yêu cầu tế nhị, sát hợp với đặc thù của mỗi trường học
Phần mềm xếp thời khóa biểu của công ty SchoolNet ra đời năm 1989,cho đến nay đã có hơn 25 năm liên tục phát triển Phần mềm có khá nhiềutính năng phù hợp như hỗ trợ hoàn toàn các bảng mã và phông chữ tiếng Việt,
hỗ trợ các mô hình thời khóa biểu, hỗ trợ các ràng buộc cứng và ràng buộcmềm, …
Trang 16Theo đánh giá chung thì hai phần mềm là có hiệu quả khi sử dụng đểxếp thời khóa biểu cho các trường THPT Tuy nhiên, đây là những phần mềm
có phí và là phần mềm đóng mã nguồn nên không thể tìm hiểu hay cải tiếncho phù hợp với đặc điểm riêng của nhà trường
Trang 17Chương II
THUẬT TOÁN DI TRUYỀN
Thuật toán di truyền trong lĩnh vực tin học là một trong những thuậttoán thú vị, bởi vì nó mô phỏng qui luật đấu tranh sinh tồn của tự nhiên vàcũng là một thuật toán vô cùng hiệu quả đối với các loại bài toán tối ưu
2.1 Tổng quan về thuật toán di truyền
Thuật toán di truyền là một kỹ thuật của khoa học máy tính nhằm tìmkiếm giải pháp thích hợp cho các bài toán tối ưu tổ hợp (combinatorialoptimization), là một phân ngành của thuật toán tiến hóa, vận dụng cácnguyên lý của tiến hóa như: di truyền, đột biến, chọn lọc tự nhiên, và trao đổichéo (lai ghép) Nó sử dụng ngôn ngữ máy tính để mô phỏng quá trình tiếnhoá của một tập hợp những đại diện trừu tượng (gọi là những nhiễm sắc thể),của các giải pháp có thể (gọi là những cá thể) cho bài toán tối ưu hóa vấn đề.Tập hợp này sẽ tiến triển theo hướng chọn lọc những giải pháp tốt hơn
Thuật toán di truyền cũng như các thuật toán tiến hoá, đều được hìnhthành dựa trên một quan niệm được coi là một tiên đề phù hợp với thực tếkhách quan Đó là quan niệm “Quá trình tiến hoá tự nhiên là quá trình hoànhảo nhất, hợp lý nhất và tự nó đã mang tính tối ưu” 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 thế hệ trước
2.1.1 Giới thiệu
Trong thuật toán di truyền, người ta dùng thuật ngữ vay mượn của ditruyền học như: cá thể, nhiễm sắc thể, gen, quần thể, độ thích nghi, chọn lọc,lai ghép, đột biến, v.v Trong đó cá thể biểu diễn một lời giải, giải pháp củabài toán Không giống như trong tự nhiên, một cá thể có thể có nhiều nhiễmsắc thể, ở đây chúng ta quy ước mỗi cá thể chỉ có một nhiễm sắc thể Cácnhiễm sắc thể là một cá thể, là một chuỗi tuyến tính Trong nhiễm sắc thể có
Trang 18thể có các đơn vị nhỏ hơn đó là gen Mỗi gen đại diện một thuộc tính, tínhchất và có vị trí nhất định trong nhiễm sắc thể Quần thể là một tập hợp hữuhạn xác định các cá thể Trong thuật toán di truyền, quần thể là một tập các cáthể biểu diễn một tập các lời giải Các phép toán di truyền như chọn lọc, laighép, đột biến được thực hiện trên quần thể để tạo ra một quần thể mới.
Một bài toán được giải bằng thuật toán di truyền thường phải qua cácbước sau:
> Biểu diễn lời giải của bài toán (hay nhiễm sắc thể) bằng chuỗinhị phân, chuỗi ký tự, số thập phân,
> Khởi tạo quần thể ban đầu gồm N cá thể một cách ngẫu nhiên
> Xây dựng hàm thích nghi làm tiêu chuẩn đánh giá các cá thểtheo độ thích nghi của chúng
> Xác định xác suất lai ghép, xác suất đột biến,
> Xây dựng các phương pháp lai ghép, chọn lọc, đột biến
2.1.2 Sự khác biệt của thuật toán di truyền và thuật toán khác
Khi dùng phương pháp truyền thống có một số cách giải sau:
- Phương pháp liệt kê
- Phương pháp giải tích
- Phương pháp tìm kiếm ngẫu nhiên
Đặc trưng của thuật toán di truyền so với các phương pháp truyền thống:
-Thuật toán di truyền làm việc với sự mã hoá của tập thông số chứkhông làm việc với các giá trị của các thông số
-Thuật toán di truyền tìm kiếm từ một quần thể các điểm chứ không phải
Trang 19chứ không phải là các luật chuyển đổi mang tính xác định.
- Thuật toán di truyền thường khó cài đặt, áp dụng Tuy nhiên khôngphải lúc nào cũng cho lời giải chính xác Một số thuật toán di truyền có thểcung cấp lời giải tiềm năng cho một bài toán xác định để người sử dụng lựachọn
* Ưu điểm
- Ưu điểm chính là khả năng song song của thuật toán
- Thuật toán di truyền duyệt qua không gian tìm kiếm sử dụng nhiều cáthể (and with genotype rather than phenotype) và ít mắc phải cực trị địaphương như các thuật toán khác
- Dễ thể hiện
- Khi đã có thuật toán gen cơ bản, chỉ cần viết một NST mới (just oneobject) để xử lý bài toán khác
- Với cùng cách mã hóa bạn có thể thay đổi hàm thích nghi
Mặc dù vậy, trong một số trường hợp chọn và thể hiện mã hóa sẽ gặp
khó khăn
* Nhược điểm
- Nhược điểm chính của thuật toán di truyền là thời gian tính toán
- Thuật toán di truyền có thể chậm hơn các thuật toán khác
- Có thể kết thúc tính toán bất cứ lúc nào
2.1.3 Các tính chất của thuật toán di truyền
Thuật toán di truyền là kỹ thuật chung, giúp giải quyết vấn đề bằng cách
mô phỏng sự tiến hóa của con người hay của sinh vật nói chung trong điềukiện qui định sẵn của môi trường Mục tiêu của thuật toán di truyền khôngnhằm đưa ra lời giải chính xác tối ưu mà là đưa ra lời giải tương đối tối ưu.Một cá thể trong thuật toán di truyền sẽ biểu diễn một giải pháp của bàitoán Tuy nhiên, không giống với trong tự nhiên là một cá thể có nhiều nhiễm
Trang 20sắc thể mà để giới hạn trong thuật toán di truyền, ta quan niệm một cá thể cómột nhiễm sắc thể Do đó, khái niệm cá thể và nhiễm sắc thể trong thuật toán
di truyền coi như là tương đương
Một nhiễm sắc thể được tạo thành từ nhiều gen, mỗi gen có thể có cácgiá trị khác nhau để quy định một tình trạng nào đó Trong thuật toán ditruyền, một gen được coi như một phần tử trong chuỗi nhiễm sắc thể
Một tập hợp các cá thể có cùng một số đặc điểm nào đấy được gọi làquần thể Trong thuật toán di truyền, ta quan niệm quần thể là một tập các lờigiải của một bài toán
2.1.4 Sơ đồ và cấu trúc thuật toán di truyền
Hình 2.1: Thuật toán di truyền
Nhận các tham số của bài toán
Khởi tạo quần thể ban đầu
Kết thúc
Bắt đầu
Lựa chọn giải pháp tốt
nhất
Trang 21Cấu trúc thuật toán:
Begin
t =0;
Tính độ thích nghi cho các cá thể trong P(t);
Begin
Lai P(t) Đột biến P(t) Tính độ thích nghi cho các cá thể trong P(t)
End End
[Bắt đầu ] Nhận các tham số cho thuật toán.
[Khởi tạo quần thể] Sinh ngẫu nhiên một quần thể gồm n cá thể (là n
lời giải cho bài toán)
[Quần thể mới] Tạo quần thể mới bằng cách lặp lại các bước sau cho
đến khi quần thể mới hoàn thành
a.[Thích nghi] Ước lượng độ thích nghi eval(x) của mỗi cá thể.
b.[Kiểm tra ] Kiểm tra điều kiện kết thúc giải thuật
c.[Chọn lọc] Chọn hai cá thể bố mẹ từ quần thể cũ theo độ thích
nghi của chúng (cá thể có độ thích nghi càng cao thì càng có nhiều khả năngđược chọn)
d.[Lai ghép] Với một xác suất lai ghép được chọn, lai ghép hai
cá thể bố mẹ để tạo ra một cá thể mới
Trang 22e.[Đột biến] Với một xác suất đột biến được chọn, biến đổi cá
thể mới
[Chọn kết quả] Nếu điều kiện dừng được thỏa mãn thì thuật toán kết
thúc và trả về lời giải tốt nhất trong quần thể hiện tại
2.2 Các thành phần trong thuật toán di truyền
2.2.1 Biểu diễn nhiễm sắc thể
Để áp dụng giải một bài toán bằng thuật toán di truyền, thao tác quantrọng nhất là phải biết chọn cấu trúc dữ liệu phù hợp Để giải bài toán trongthuật toán di truyền, ta thường chọn sử dụng một trong 3 loại cấu trúc dữ liệusau: Biểu diễn nhị phân, biểu diễn số thực và cấu trúc cây Trong đó biểu diễnnhị phân và biểu diễn số thực thường được sử dụng nhiều hơn
2.2.1.1 Biểu diễn nhị phân
Quy tắc biểu diễn gen qua chuỗi nhị phân: Chọn chuỗi nhị phân ngắnnhất nhưng đủ thể hiện được tất cả kiểu gen Để biểu diễn chuỗi nhị phân, tathường dùng các cách sau: Mảng byte, mảng bit biểu diễn bằng mảng byte,mảng bit biểu diễn bằng mảng interger Mảng byte và mảng bit bây giờ ít sửdụng Đối với máy tính ngày nay, người ta thường dùng mảng integer để tối
ưu truy xuất Vì vậy ở đây tôi chỉ giới thiệu về mảng integer
VD: Nhiễm sắc thể x ta biểu diễn bằng 1 chuỗi 15 bit
2.2.1.2 Biểu diễn số thực
Sau khi thuật toán di truyền cổ điển được Holland công bố, nó chứng tỏ
là phương pháp tốt để giải các bài toán tối ưu khó và nó được cải tiến phongphú để tăng hiệu quả ứng dụng
Đối với các bài toán khó có miền chấp nhận lớn và đòi hỏi sai số nhỏthì độ dài của mỗi nhiễm sắc thể theo phương pháp thuật toán di truyền cổđiển rất lớn, nên việc áp dụng thuật toán di truyền rất khó khăn Do vậy,
Trang 23người ta cải tiến cách biểu diễn nhiễm sắc thể bằng vector số thực để giải bàitoán Trong cách biểu diễn này, người ta dùng các vector số thực trong miềnchấp nhận được (thuộc tập M) làm nhiễm sắc thể và thiết kế các nhómphương pháp di truyền cho thích hợp với cách biểu diễn này mà vẫn giữnguyên thủ tục thuật toán di truyền đã đặc tả ở trên
2.2.2 Khởi tạo quần thể ban đầu
Tạo quần thể đầu tiên trong thuật toán, là nơi xuất phát quá trình tiếnhóa, bao gồm tất cả các giá trị thô ban đầu Tùy theo vấn đề của bài toán mà
có cách khởi tạo khác nhau
Quần thể 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ủamột bài toán
Quần thể ban đầu ảnh hưởng khá nhiều đến hiệu quả giải thuật, tuynhiên trong nhiều bài toán thì quần thể ban đầu thường được lựa chọn ngẫunhiên Thường phụ thuộc vào kích thước chuỗi mã hóa VD: Nếu có NST 32bits, thì kích thước quần thể nên cao hơn 16
Kích thước quần thể cho biết có bao nhiêu cá thể trong một quần thểtrong mỗi thế hệ Các nghiên cứu và các thử nghiệm đã cho thấy kích thướcquần thể không nên quá bé cũng như không quá lớn Nếu có quá ít cá thể thì
sẽ làm giảm không gian tìm kiếm của giải thuật và dễ rơi vào các cục bộ địaphương, như vậy sẽ dễ xảy ra trường hợp bỏ qua các lời giải tốt Tuy nhiênnếu có quá nhiều cá thể cũng sẽ làm cho giải thuật chạy chậm đi, ảnh hưởngđến hiệu quả tính toán của giải thuật Các nghiên cứu cũng đã chỉ ra không cólợi khi tăng kích thước quần thể lên quá một giới hạn cho phép
2.2.3 Đánh giá cá thể
Chắc chắn rằng việc chọn cá thể sẽ thông qua kết quả, hay mục đíchcủa vấn đề Các cá thể tốt được chọn lọc để đưa vào thế hệ sau Sự lựa chọn
Trang 24này được thực hiện dựa vào độ thích nghi với môi trường của mỗi cá thể.
Có nhiều phương pháp để chọn các nhiễm sắc thể tốt nhất, ví dụ: chọnlọc Quay bánh xe, chọn lọc Xếp hàng, chọn lọc Cạnh tranh, chọn lọc theo cơchế lấy mẫu ngẫu nhiên, chọn lọc tranh đấu, vv…
cá thể không thích nghi được với điều kiện sống thì dần mất đi Dựa vàonguyên lý của quá trình chọn lọc và đấu tranh sinh tồn trong tự nhiên, chọnlựa các cá thể trong thuật toán di truyền chính là cách 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
là sinh ra các cá thể mới tốt hơn Có nhiều cách để lựa chọn nhưng cuối cùngđều nhằm đáp ứng mục tiêu là các cá thể tốt sẽ có khả năng được chọn caohơn
Việc chọn lọc các cá thể từ một quần thể dựa vào độ thích nghi của mỗi
cá thể Các cá thể có độ thích nghi cao có nhiều khả năng được chọn lựa(những cá thể khỏe mạnh có nhiều khả năng được phối giống) Hàm thíchnghi chỉ cần là một hàm thực dương, nó có thể không tuyến tính, không liêntục, không khả vi
Cơ chế lựa chọn được áp dụng khi quần thể P(t+1) được tạo ra từ việc chọn các cá thể từ quần thể P(t) để thực hiện việc lai ghép và đột biế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ệu một
số cơ chế hay áp dụng
Trang 25Để tiện mô tả các cơ chế lựa chọn ta đưa ra một số kí hiệu sau:
- Cách biểu diễn các nhiễm sắc thể thứ i là vi
- Hàm tính độ thích nghi của nhiễm sắc thể vi là f(vi).
- Kích thước quần thể là pop_size.
- Số nhiễm sắc thể cần chọn là N.
* Chọn lọc tỷ lệ (bánh xe Roulet)
Trước khi lựa chọn thì tính các giá trị sau :
size pop i i v f
1
) (
- Tính xác suất chọn pi cho mỗi nhiễm sắc thể vi : pi = f(vi)/F
- Tính vị trí xác suất qi của mỗi nhiễm sắc thể :
i j j
q
1
Cơ chế lựa chọn theo bánh xe Roulet được thực hiện bằng cách quay
bánh xe Roulet N lần Mỗi lần chọn một nhiễm sắc thể từ quần thể hiện hành
vào quần thể mới bằng cách sau :
- Phát sinh ngẫu nhiên một số r trong khoảng [0,1]
- Nếu r < q1 (tức là r<1)thì chọn nhiễm sắc thể v1; ngược lại thì chọn
nhiễm sắc thể thứ i ( 2 i pop_size=M ) sao cho qi-1 r qi
Việc chọn lọc theo cách trên có thể minh
họa như sau: Ta có một bánh xe được chia thành n
phần, mỗi phần ứng với độ thích nghi của một cá
thể Một mũi tên chỉ vào bánh xe Quay bánh xe,
khi bánh xe dừng, mũi tên chỉ vào phần nào thì có thể ứng với phần đó đượcchọn
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
Hình 2.2 Minh họa cho kỹ thuật chọn lọc theo kiểu quay bánh xe
Trang 26phù hợp với lý thuyết lược đồ: Các nhiễm sắc thể tốt nhất thì có nhiều bản
sao, nhiễm sắc thể trung bình thì không đổi, nhiễm sắc thể kém thì chết đi.
* Chọn lọc xếp hạng
Cơ chế lựa chọn xếp hạng được mô tả như sau:
- Sắp xếp các nhiễm sắc thể 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: nhiễm sắc thểthứ nhất có độ thích nghi là 1, nhiễm sắc thể thứ hai có độ thích nghi là 2, v.v.,nhiễm sắc thể thứ pop_size có độ thích nghi là pop_size
Theo phương pháp này việc một nhiễm sắc thể được chọn nhiều lần nhưtrong lựa chọn theo kiểu bánh xe Roulet đã giảm đi Nhưng nó có thể dẫn đến
sự hội tụ chậm và nhiễm sắc thể có độ thích nghi cao cũng không khác mấy sovới các nhiễm sắc thể khác
* Chọn lọc theo cơ chế lấy mẫu ngẫu nhiên
Cơ chế lựa chọn:
- Biểu diễn xác suất chọn các nhiễm sắc thể lên trên một đường thẳng
- Đặt N điểm chọn lên đường thẳng Các điểm chọn này cách nhau 1/N,điểm đầu tiên đặt ngẫu nhiên trong khoảng [0,1/N]
- Với một điểm chọn, nhiễm sắc thể gần với nó nhất về bên phải sẽ đượcchọn
Phương pháp này có đặc điểm là các điểm chọn được phân bố đều trêntrục số, do đó sẽ gần với điểm xứng đáng được chọn
Trang 272.2.4.2 Phương pháp lai ghép
Trên các cá thể được chọn lọc (sau khi thực hiện xong phương phápchọn lọc), ta tiến hành lai ghép Với cỡ của quần thể là n, ta đưa ra một xácsuất lai ghép là pc Xác suất này đưa ra hy vọng là có n*pc cá thể được laighép
Với mỗi cá thể, ta thực hiện hai bước sau đây:
Bước 1: Sinh ra một xác suất lai ghép là số thực r nào đó trong đoạn[0,1]
Bước 2: Nếu r < pc thì cá thể đó được chọn để lai ghép từ các cá thểđược chọn để lai ghép, ta cặp đôi chúng một cách ngẫu nhiên Trong trườnghợp nhiễm sắc thể là các chuỗi nhị phân có độ dài cố định, giả sử là m, ta cóthể thực hiện phép lai ghép như sau:
Với mỗi cặp, sinh ra một vị trí ngẫu nhiên làm điểm bắt đầu ghép làmột số nguyên p trong đoạn [0, m-1]
Tổng quát, giả sử có hai cặp nhiễm sắc thể của hai cá thể được chọn laighép: a = (a[1], , a[p], a[p+1], , a[m]) và b =(b[1], , b[p], b[p+1], , b[m])
Cặp này được thay thế bởi hai đoạn con của nhau từ vị trí thứ p+1: a’ = (a[1], , a[p], b[p+1], , b[m]);
và b’ = (b[1], , b[p], a[p+1], , a[m])
2.2.4.3 Phương pháp đột biến
Ta thực hiện đột biến trên các cá thể sau khi đã lai ghép Đột biến làthay đổi trạng thái của một số gen nào đó trong nhiễm sắc thể Một gen chịumột xác suất đột biến là pm Xác suất đột biến pm do ta xác định và là xácsuất thấp
Tổng quát, với nhiễm sắc thể là chuỗi nhị phân Với mỗi vị trí i trongnhiễm sắc thể: a = (a[1], , a[p], a[p+1], , a[m])
Trang 28Ta sinh ra một số thực ngẫu nhiên pi trong đoạn [0,1] Đột biến a đượcbiến thành a’ như sau:
a' = [a’[1], , a’[*], , a’[m]), trong đó:
a’[*] = a[*] nếu pi >= pm và a’[*] = 1 - a[*] nếu pi < pm
Sau quá trình chọn lọc, lai ghép, đột biến, một thế hệ mới được sinh ra.Công việc còn lại của thuật toán là chỉ việc lặp lại các bước trên
2.2.5 Điều kiện dừng của thuật toán
Một số điều kiện dừng của thuật toán:
- Kết thúc theo kết quả, tức khi giá trị thích nghi của cá thể trong quần
thể có giá trị sai số nhỏ hơn một giá trị £ cho truớc, thì dừng thuật toán.
- Kết thúc dựa trên số thế hệ, một số vấn đề dựa vào số thế hệ trongquần thể Khi số luợng tiến hoá của quần thể đến một giới hạn cho phép thìthuật toán sẽ dừng, mà trong khi không quan tâm đến chất lượng của cá thểtrong quần thể như thế nào
- Tính theo thời gian, phụ thuộc vào thời gian chạy chương trình đượcquy định trước và thuật toán dừng
Kết hợp nhiều phương pháp khác nhau, thuật toán cũng có thể sử dụngkết hợp nhiều phương pháp khác nhau để giải quyết vấn đề
2.2.6 Các tham số của thuật toán di truyền
- Kích thước quần thể: Pop_Size, là số cá thể duy trì qua mỗi thế hệtiến hóa của thuật toán di truyền
- Xác xuất đột biến: pm là xác suất đột biến của gen
- Xác suất lai ghép: pc là xác suất một cá thể được chọn cho phép laighép
2.3 Ứng dụng của thuật toán di truyền
Thuật toán di truyền được sử dụng cho những bài toán khó, và đã đượcứng dụng thành công cho một số bài toán như: lập kế hoạch, điều khiển tương
Trang 29thích, chương trình trò chơi, các bài toán vận tải, bài toán người đi du lịch, Sau đây là một vài ứng dụng tiêu biểu của Thuật toán di truyền.
2.3.1 Bài toán người du lịch (TSP)
TSP được mô tả như sau: Một du khách muốn thăm những thành phốanh quan tâm; mỗi thành phố thăm qua đúng một lần; rồi trở về điểm khởihành Biết trước chi phí di chuyển giữa hai thành phố bất kỳ Yêu cầu của bàitoán là xây dựng một lộ trình thỏa các điều kiện trên với tổng chi phí nhỏnhất
TSP là bài toán tối ưu tổ hợp, không gian tìm kiếm là tập các hoán vịcủa n thành phố Bất cứ hoán vị nào của n thành phố cũng là một lời giải chấpnhận được Lời giải tối ưu là một hoán vị với chi phí tối thiểu của hành trình.Không gian tìm kiếm là n! Có thể giải bài toán này bằng nhiều phương pháp:phương pháp nhánh cận, phương pháp gần đúng hay những phương pháp tìmkiếm heuristic Phương pháp nhánh cận đã được chứng minh đạt sự tối ưu vềlời giải, tuy nhiên phương pháp này lại mất khá nhiều thời gian khi số đỉnhcủa đồ thị lớn
Trong những năm gần đây, đã xuất hiện nhiều thuật toán đạt gần đếnlời giải tối ưu của bài toán TSP: láng giềng gần nhất, đảo gần nhất, đảo xanhất và TSP cũng trở thành một đích ngắm của cộng đồng Thuật toán ditruyền
Với bài toán này chúng ta sẽ đánh số các thành phố và dùng một vectornguyên để biểu diễn một nhiễm sắc thể lộ trình v=<ii,i2, ,in> biểu diễn một lộtrình: từ i1 đến i2 , từ in-1 đến in và trở về ii (v là một hoán vị của vector(<1,2, ,n>), hàm lượng giá chính là chi phí của lộ trình
2.3.2 Bài toán lập lịch
Lập lịch là bài toán tổ chức sản xuất Một công ty cần sản xuất nhiềuloại hàng hóa; những hàng hóa này có thể được sản xuất theo những kế hoạch
Trang 30khác nhau Mỗi kế hoạch xử lý gồm một chuỗi thao tác; những thao tác này
sử dụng một số tài nguyên và cần thời gian chạy máy Một lịch sản xuất làmột kế hoạch thực hiện các đơn đặt hàng Trong đó, một số đơn đặt hàng cóthể được thực hiện với cùng những thao tác tương đương Nhiệm vụ là lên kếhoạch, lập lịch sản xuất, để thực hiện các đơn đặt hàng này nhanh nhất có thể
Bài toán lập lịch là chọn một chuỗi các thao tác đồng thời chỉ định vềthời gian bắt đầu/ kết thúc và các tài nguyên cần thiết cho mỗi thao tác Điềucần quan tâm chính yếu là chi phí thời gian máy rỗi, năng lực lao động và cácđơn đặt hàng cần hoàn thành đúng hạn.Ý tưởng chính trong phương pháp là
mã hóa biểu diễn của lịch phân công là các toán tử di truyền phải thực hiệntheo cách có ý nghĩa, và một bộ giải mã phải luôn tạo ra một lời giải hợp lệcho bài toán Thủ tục giải mã mô phỏng các thao tác của công việc theo cách
mà khi một máy tính sẵn sàng chọn lựa, thì thao tác cho phép đầu tiên từ danhsách ưu tiên được lấy ra Biểu diễn sao để bảo đảm tạo một lịch phân cônghợp lệ
2.3.3 Lập thời khóa biểu cho trường học
Bài toán thời khóa biểu là một bài toán kết hợp nhiều ràng buộc khôngtầm thường thuộc nhiều loại Có nhiều phiên bản của bài toán thời khóa biểu,một trong những bài toán này có thể được mô tả như sau: Có một danh sáchcác giáo viên, một danh sách các khoảng thời gian, một danh sách các lớp.Bài toán cần tìm thời khóa biểu tối ưu (giáo viên - thời gian - lớp); hàm mụctiêu phải thỏa những mục tiêu này (các ràng buộc mềm) gồm: Có một số giờđược xác định trước cho mỗi giáo viên và mỗi lớp; Chỉ một giáo viên trongmột lớp vào một giờ nhất định; Một giáo viên không thể dạy hai lớp cùng lúc;Đối với mỗi lớp được xếp thời khóa biểu vào một khoảng thời gian, phải cómột giáo viên Ngoài ra còn có các mục tiêu sư phạm như trải một số lớp ranguyên tuần, những mục tiêu thuộc cá nhân như những giáo viên hợp đồng
Trang 31không phải dạy buổi chiều, và các mục tiêu về tổ chức như mỗi giờ có mộtgiáo viên bổ sung sẵn sàng chỗ dạy tạm thời.
Biểu diễn nhiễm sắc thể tự nhiên nhất cho bài toán này là biểu diễn matrận: một ma trận Fij(l < i < m và 1 < j < n), ở đây mỗi hàng tương ứng với
một giáo viên, mỗi cột tương ứng với một giờ, các phần tử của ma trận là cáclớp I Các ràng buộc chủ yếu được xử lý bởi các toán tử di truyền và thuật giảisửa chữa được sử dụng để loại bỏ những trường hợp mà có nhiều hơn mộtgiáo viên xuất hiện trong cùng một lớp vào cùng một giờ
2.3.4 Phân hoạch đối tượng và đồ thị
Bài toán phân hoạch là cần chia n đối tượng thành k loại Lớp bài toánnày gồm nhiều bài toán nổi tiếng như bài toán đóng thùng (gán các mặt hàngvào các thùng), bài toán tô màu đồ thị (gán các nút của đồ thị vào các màu cụthể )
Bài toán đóng thùng (Bin Packing - BP) được phát biểu như sau: Chodanh sách gồm n đồ vật L=a1,a2,a3, ,an và các thùng giống nhau với cùng sứcchứa B Kích thước của đồ vật Oi là Si thỏa mãn 0 < Si < B với i = 1,2,…,n.Vấn đề đặt ra là tìm cách xếp các đồ vật vào các thùng sao cho số lượng thùngcần phải sử dụng là ít nhất
2.3.5 Vạch đường cho Robot di chuyển
Tìm đường là hướng dẫn robot di chuyển đến đích mà không bị lạc hay
va vào những đối tượng khác Trong bài toán này, một lộ trình được lập trước
để robot đi theo, lộ trình này có thể dẫn dắt robot đi tới đích một cách hoànhảo Tuy nhiên, các nhà khoa học muốn cải tiến hơn bằng cách vạch lộ trìnhnội tại, phụ thuộc vào tri thức thu được từ việc cảm nhận môi trường cục bộ
để xử lý các chướng ngại chưa biết
Bộ tìm đường tiến hóa (EN) được đề xuất Phần đầu của thuật giải làtìm lộ trình toàn cục tối ưu từ điểm khởi đầu đến đến đích, phần thứ hai có
Trang 32trách nhiệm xử lý những va chạm có thể xảy ra hay những vật cản chưa đượcbiết trước bằng cách thay một phần của lộ trình toàn cục gốc bằng một lộtrình con tối ưu.