Cũng vì lý do đó nên tôi lựa chọn đề tài: ―Phương pháp ứng dụng giải thuật di truyền cho bài toán xếp thời khóa biểu tín chỉ‖ với mong muốn giải quyết được các vấn đề về nhân lực, thời
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
VIỆN ĐẠI HỌC MỞ HÀ NỘI
LUẬN VĂN THẠC SĨ
CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN
PHƯƠNG PHÁP ỨNG DỤNG GIẢI THUẬT DI TRUYỀN CHO BÀI TOÁN XẾP THỜI KHÓA BIỂU TÍN CHỈ
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO
VIỆN ĐẠI HỌC MỞ HÀ NỘI
Trang 3LỜI CAM ĐOAN
Tôi cam đoan đây là công trình nghiên cứu của riêng tôi
Các số liệu, kết quả phân tích, đánh giá và hiện thực hóa nêu trong luận văn
là trung thực và chƣa từng đƣợc ai công bố trong bất kỳ công trình nào khác
Tác giả luận văn
Dương Chí Bằng
Trang 4LỜI CẢM ƠN
Để thành công trong cuộc sống ngoài sự nỗ lực, cố gắng của bản thân thì cũng không thể thiếu những sự hỗ trợ, giúp đỡ của người khác dù ít hay nhiều dù trực tiếp hay gián tiếp Trong suốt thời gian từ khi bắt đầu học tập cho đến khi hoàn thành luận văn, em đã nhận được rất nhiều sự quan tâm giúp đỡ của quý thầy cô, gia đình và bạn bè
Với lòng biết ơn sâu sắc nhất, em xin gửi lời cảm ơn đến thầy PGS.TSKH Nguyễn Cát Hồ, người đã truyền đạt những kiến thức cũng nhưtận tình chỉ bảo, hướng dẫn và giúp đỡ em để hoàn thành đề tài luận văn
Em cũng xin gửi cảm ơn chân thành nhất tới các thầy cô giáo ở khoa Sau đại học và khoa Công nghệ thông tin – Viện đại học Mở Hà Nội đã cho em những kiến thức quý báu và tạo điều kiện tốt nhất cho em trong quá trình học tập cũng như hoàn thành luận văn
Em xin chân thành cảm ơn gia đình, người thân và bạn bè đã động viên, giúp
đỡ em trong quá trình học tập và thực hiện luận văn này
Trong quá trình thực hiện luận văn, mặc dù em đã rất nỗ lực và cố gắng nhưng chắc chắn khó tránh được những sai sót, rất mong được sự thông cảm và chỉ bảo của các thầy, cô và các bạn để luận văn này được hoàn thiện hơn
Cuối cùng em xin kính chúc các thầy, cô sức khỏe, thành công và hạnh phúc
Chân thành cảm ơn!
Trang 5MỤC LỤC
LỜI CAM ĐOAN 1
LỜI CẢM ƠN II MỤC LỤC III DANH MỤC CÁC TỪ VIẾT TẮT V DANH MỤC CÁC BẢNG BIỂU VI DANH MỤC CÁC HÌNH VẼ VII MỞ ĐẦU 1
1.1 Tính cấp thiết của đề tài 1
1.2 Mục tiêu nghiên cứu 1
1.3 Đối tượng và phương pháp nghiên cứu 2
1.3.1 Đối tượng nghiên cứu 2
1.3.2 Phương pháp nghiên cứu 2
CHƯƠNG 1 GIỚI THIỆU BÀI TOÁN XẾP LỊCH 3
1.1 Bài toán xếp lịch học tín chỉ 3
1.2 Một số cách tiếp cận bài toán 5
1.3 Ràng buộc trong bài toán 8
CHƯƠNG 2 KIẾN THỨC CƠ SỞ 11
2.1 Giải thuật di truyền (GA) 11
2.1.1 Giới thiệu giải thuật di truyền 11
2.1.2 Các vấn đề trong giải thuật di truyền 14
2.1.2.1 Biểu diễn cá thể 14
2.1.2.2 Đánh giá cá thể 17
2.1.2.3 Khởi tạo quần thể ban đầu 18
2.1.2.4 Phép chọn lọc (selection) 18
2.1.2.5 Phép lai ghép (crossover) 21
2.1.2.6 Phép đột biến (mutation) 23
2.1.2.7 Điều kiện dừng 24
2.1.3 Ứng dụng của giải thuật di truyền 25
2.2 Khái niệm cơ bản về đại số gia tử 26
Trang 62.2.2 Định lượng ngữ nghĩa trong đại số gia tử 27
CHƯƠNG 3 PHƯƠNG PHÁP XẾP THỜI KHÓA BIỂU TÍN CHỈ DỰA TRÊN GIẢI THUẬT DI TRUYỀN 33
3.1 Mô tả ràng buộc dưới hạng mô hình bài toán 33
3.2 Ứng dụng giải thuật di truyền vào trong bài toán 38
3.2.1 Phương pháp biểu diễn – mã hóa cá thể 39
3.2.2 Đánh giá độ phù hợp 39
3.2.3 Các phép toán di truyền áp dụng 41
3.2.3.1 Phép chọn lọc (selection) 41
3.2.3.2 Phép lai ghép (crossover) 41
3.2.3.3 Phép đột biến (mutation): 42
3.2.3.4 Phép thay thế (replacement) 43
3.2.3.5 Điều kiện dừng thuật toán 43
CHƯƠNG 4 XÂY DỰNG ỨNG DỤNG VÀ THỬ NGHIỆM 44
4.1 Chương trình thử nghiệm 44
4.2 Thử nghiệm với bài toán ví dụ mẫu 46
4.3 Thử nghiệm với bài toán thực thế 50
KẾT LUẬN 60
5.1 Kết quả đạt được 60
5.2 Hạn chế và định hướng phát triển 60
TÀI LIỆU THAM KHẢO 61
Trang 7DANH MỤC CÁC TỪ VIẾT TẮT
GA Genetic Algorithm Giải thuật di truyền
SA Simulated Anualing Giải thuật mô phỏng tôi luyện
LT Lecture-Time Ma trận giảng viên và thời gian
CC Course-Course Ma trận ràng buộc giữa các lớp môn
Trang 8DANH MỤC CÁC BẢNG BIỂU
Bảng 4 1: Các tham số của dữ liệu ví dụ thử nghiệm 46
Bảng 4 2: Xác định giảng viên vào giảng các lớp tín chỉ 46
Bảng 4 3: Ràng buộc giữa lớp tín chỉ và phòng học (CR) 46
Bảng 4 4: Ràng buộc giữa giảng viên và thời gian (LT) 47
Bảng 4 5: Ràng buộc giữa sinh viên và các lớp tín chỉ (S×C) 47
Bảng 4 8: Kết quả lịch theo trọng số hàm fitness (w 1 =0.9, w 2 =0.01, w 4 =0.09) 49 Bảng 4 9: Xác định trước các giảng viên vào các lớp tín chỉ 50
Bảng 4 10: Các tham số chạy thuật toán trên dữ liệu thực 55
Trang 9DANH MỤC CÁC HÌNH VẼ
Hình 1 1 Ví dụ thời khóa biểu của một trường phổ thông 4
Hình 1 4 Bài toán tìm kiếm cục bộ với không gian trạng thái và hàm mục tiêu 7
Hình 2 2 Minh họa kiểu mã hóa nhị phân của hai chuỗi gen 15
Hình 2 6 Minh họa sơ đồ chọn theo bánh xe Roulette 19
Hình 2 8 Minh họa lai ghép một điểm cắt trên chuỗi nhị phân 22
Hình 2 11 Khoảng tính mờ của các hạng từ của biến TRUTH 30
Hình 2 12 Thiết kế hàm định lượng dựa trên hệ khoảng tương tự 31
Hình 2 13 Thiết kế hàm định lượng tam giác dựa trên khoảng tính mờ ở mức1,2,3 32
Hình 3 1: Biểu diễn lựa chọn mức độ ưu tiên của giảng viên theo thời gian 36
Hình 3 2: Biểu diễn đánh giá mức độ thỏa mãn của giảng viên 37
Hình 3 3: Sơ đồ chuỗi gen mã hóa lời giải (bảng lịch) 39
Hình 4 2: Biểu đồ sự biến đổi độ phù hợp cá thể (fitness) qua các lần tiến hóa 59 Hình 4 3: Biểu đồ sự biến đổi số vi phạm ràng buộc cứng qua các lần tiến hóa 59
Trang 10MỞ ĐẦU
1.1 Tính cấp thiết của đề tài
Bài toán xếp lịch là một bài toán kinh điển và là một trong những bài toán rất
có ý nghĩa trong thực tiễn hiện nay Tuy nhiên đây là một bài toán khó với nhiều loại đầu vào khác nhau, các ràng buộc giữa các yếu tố và thường có nhiều mục tiêu, yêu cầu đặt ra Hiện nay, trong các cơ sở đào tạo và đặc biệt là đào tạo đại học, cao đẳng công tác xếp lịch còn gặp nhiều khó khăn, đôi khi chúng ta rất khó để kiểm soát hết các trường hợp của bài toán, vì thế hiệu quả mang mại chưa cao Bên cạnh
đó, đã có nhiều tác giả nghiên cứu và đưa ra các phương pháp để giải quyết vấn đề này và trong đó, phương pháp tìm kiếm tối ưu dựa trên giải thuật di truyền đã chứng
tỏ được hiệu quả tốt hơn
Xếp lịch học theo tín chỉ trong trường đại học có rất nhiều yếu tố phức tạp hơn so với dạng bài toán lập lịch thông thường, như giáo viên, sinh viên, thời gian, phòng học, các lớp tín chỉ và đặc biệt là các ràng buộc giữa các yếu tố này Tổng quát hơn, bài toán xếp lịch học gồm nhiều yếu tố được xem xét liên quan, chẳng hạn như việc thi cử, thực hành, giảng đường, vv….Thông thường, bài toán lập lịch được tiến hành theo cách truyền thống, bằng trực quan và tính toán trực tiếp của con người Nhưng hiện nay, do sự đa dạng và nhiều thay đổi của các ràng buộc giữa các yếu tố, đó là những hạn chế về nguồn lực và sự phức tạp của các yếu tố, giải bài toán lập lịch thường mất rất nhiều thời gian và nhân lực, kết quả do đó dẫn đến các ràng buộc mềm hầu như không đạt được, thậm chí không thể thỏa mãn hết các ràng buộc cứng mà phải chấp nhận sự thỏa hiệp
Cũng vì lý do đó nên tôi lựa chọn đề tài: ―Phương pháp ứng dụng giải thuật di truyền cho bài toán xếp thời khóa biểu tín chỉ‖ với mong muốn giải
quyết được các vấn đề về nhân lực, thời gian thực hiện và giải quyết được các ràng buộc cứng và thõa mãn các ràng buộc mềm được đặt ra
1.2 Mục tiêu nghiên cứu
Nghiên cứu áp dụng phương pháp tính toán mềm mà ở đây là giải thuật di truyền để giải quyết bài toán lập lịch và ứng dụng cho công tác xếp lịch học theo tín
Trang 11chỉ trong các cơ sở đào tạo đại học, cao đẳngđể đáp ứng được các nhu cầu cần thiết thực tế hiện nay
1.3 Đối tượng và phương pháp nghiên cứu
1.3.1 Đối tượng nghiên cứu
Nghiên cứu giải thuật di truyền, các vấn đề liên như phương pháp mã hóa cá thể, phương pháp đánh giá độ phù hợp cá thể theo mục tiêu của bài toán, các phép toán di truyền Ở đây, đề tài nghiên cứu sử dụng tham số nhiệt tôi luyện để tác động vào quá trình tiến hóa nhằm đem lại hiệu quả cao cho phương pháp
Nghiên cứu về bài toán lập lịch nói chung, các trường hợp áp dụng trong thực tế, phương pháp hay giải thuật đã được nghiên cứu và công bố Phân tích và áp dụng một số ràng buộc dựa trên tham số mờ gia tử nhằm làm phù hợp hơn yêu cầu thực tế của bài toán ứng dụng
1.3.2 Phương pháp nghiên cứu
Thu thập, khảo sát và hệ thống hóa các kết quả nghiên cứu đã có về vấn đề ứng dụng giải thuật di truyền cho bài toán lập lịch
Nghiên cứu các mô hình lý thuyết, các thuật toán kết hợp lập trình thử nghiệm trên máy tính Đưa vào ứng dụng trong thực tế để so sánh và đánh giá hiệu quả của phương pháp
Trang 12CHƯƠNG 1 GIỚI THIỆU BÀI TOÁN XẾP LỊCH
1.1 Bài toán xếp lịch học tín chỉ
Bài toán lập lịch nói chung trong các trường đại học, cao đẳng (course timetabling problem - CTP) bao gồm việc tìm kiếm việc phân bổ thời gian chính xác trong một khoảng thời gian giới hạn cho một số sự kiện (như lớp tín chỉ, thi học kỳ) và gán chúng vào một số tài nguyên (giáo viên, sinh viên và phòng học) để đảm bảo rằng các ràng buộc được thỏa mãn Tuy nhiên, trong đào tạo tín chỉ, tùy theo đặc thù của từng trường, bài toán xếp lịch được triển khai có sự khác nhau nhất định Trong luận văn này, tôi sử dụng tài nguyên gồm các giảng viên và phòng học Còn yếu tố sinh viên sẽ tham gia trong tính toán hàm mục tiêu (được đề cập ở phần sau) Điều này sẽ thích hợp cho trường hợp lịch tín chỉ sẽ được triển khai trước khi sinh viên đăng ký học
Theo đặc thù của từng trường đại học, cao đẳng và công tác tổ chức đào tạo tín chỉ, để cho thuận tiện trong việc thiết kế thuật toán, trong luận văn này tôi giả định cách thức tổ chức như sau: đầu mỗi học kỳ dựa vào khả năng đăng ký học tập của sinh viên, chúng ta dự kiến các lớp tín chỉ để lập lịch và công bố cho sinh viên đăng ký Mỗi lớp tín chỉ gồm ký hiệu lớp, môn học, phân loại (lớp học phòng lý thuyết nhỏ hoặc phòng hội trường hoặc thực hành phòng máy) Bài toán lập lịch bây giờ sẽ trở thành công việc phân công giảng viên, thời gian, phòng học cho mỗi lớp tín chỉ đã dự kiến này sao cho thỏa mãn các yêu cầu, ràng buộc đặt ra
Trong thực tế hiện nay đã có rất nhiều bài toán lập lịch đã được xây dựng và đưa vào ứng dụng thực tiễn:
(i) Bài toán xếp thời khóa biểu cho trường phổ thông: là bài toán phân chia giáo viên, lớp học trong một tuần với tất cả các môn học của một trường học, với một ma trận ràng buộc số bài giảng một giáo viên được phân công dạy một lớp
Trang 13Hình 1 1 Ví dụ thời khóa biểu của một trường phổ thông
(ii) Bài toán xếp lịch thi: là bài toán có nhiều thành phần tham gia sinh viên, môn thi, phòng thi,… từ những thành phần đó ta phân bổ số sinh viên, môn thi vào một phòng thi sao cho phù hợp với các yêu cầu như: mỗi môn thi chỉ có 1 lần thi, sinh viên không được bỏ qua một thì, trong một thời gian không thể có quá nhiều môn thi liên tiếp nhau,…
Hình 1 2 Ví dụ lịch học của một trường đại học
Trang 14(iii) Bài toán lập lịch trực cho bệnh viên: là bài toán phân công cán bộ trực vào một thời điểm để làm sao thỏa mãn các điều kiện: nhiều cán bộ được phân công trực, mỗi người tại một thời điểm chỉ thực hiện duy nhất một nhiệm vụ, thời gian trực của các cán bộ phải tương đương nhau
Hình 1 3 Ví dụ lịch thi của một trường học 1.2 Một số cách tiếp cận bài toán
Các bài toán tối ưu nói chung và bài toán xếp lịch nói riêng là bài toán rất khó giải, sự khó khăn của nó thể hiện ở độ phức tạp tính toán và là những bài toán thuộc lớp NP-khó như vậy tương ứng với thời gian để giải sẽ tăng lên theo kích thước của bài toán Trong những thời gian gần đây để giải quyết bài toán, các nhà nghiên cứu đã đưa ra một số phương pháp giải quyết như sau:
(i) Phương pháp tìm kiếm cục bộ:là phương pháp tìm kiếm sẽ duyệt qua các lời giải trong không tin tìm kiếm cho đến khi tìm ra lời giải được cho là tối ưu hoặc
Trang 15vượt quá thời gian tìm kiếm cho phép Thuật toán có thể được sử dụng cho bài toán tìm kiếm lời giải gần đúng tối ưu trong một loạt các lời giải ứng viên Gọi P là một bài toán tối ưu tổ hợp cần giải, và s là lời giải hiện hành giả sử là một lời giải khả thi của P, và có hàm chi phí f(s) Miền lân cận N(s) được định nghĩa cho s là tập những lời giải láng giềng khả thi s’ của s sao cho từ s ta có thể đạt tới s’ nhờ vào một bước chuyển m Thao tác biến đổi này được lặp cho đến khi hội tụ về một lời giải tốt Lời giải này là lời giải cận tối ưu, mà trong một số bài toán thực tế không sai biệt gì nhiều với lời giải tối ưu Tìm kiếm cục bộ thường được sử dụng cho những bài toán tối ưu hóa tổ hợp hoặc tối ưu hóa rời rạc, tức là những bài toán trong
đó cần tìm trạng thái tối ưu hoặc tổ hợp tối ưu trong không gian rời rạc các trạng thái, và không quan tâm tới đường đi dẫn tới trạng thái đó
(ii) Phương pháp dùng thuật giải mô phỏng luyện kim (simulated annealing):
là một kỹ thuật tìm kiếm ngẫu nhiên mà tỏ ra rất hữu kiệu cho các bài toán tối ưu hóa quy mô lớn Trong kỹ thuật này, ta sử dụng tham số nhiệt độ để điều khiển tốc
độ hội tụ trong giải thuật Khi khởi tạo tham số nhiệt cho ở mức cao và nhiệt độ sẽ giảm dần trong quá trình tìm kiếm lời giải, tại những mức nhiệt độ cao, các bước chuyển được chấp nhận một cách ngẫu nhiên (bất luận là bước chuyển có cải thiện được hàm chi phí của lời giải hay không), khi nhiệt độ được giảm xuống thì xác suất để chấp nhận một lời giải có cải thiện sẽ được tăng lên và xác suất chấp nhận một lời giải không cải thiện được giảm xuống
(iii) Phương pháp tìm kiếm Tabu: được đề xuất bởi Glover năm 1986, là phương pháp dò tìm trong không gian với lời giải bằng cách di chuyển từ một lời giải s tại lượt lặp t về một lời giải tốt nhất s’ trong tập con N* của miền lân cận N(s) Vì s’ không nhất thiết cải thiện chi phí của s, một cơ chế được đặt ra để ngăn chặn quá trình khỏi vòng lặp trên một chuỗi các lời giải Một cách để tránh sự lặp vòng là cấm quá trình tìm kiếm quay về những lời giải đã gặp rồi nhưng làm như vậy đòi hỏi phải lưu trữ khá nhiều thông tin Như chúng ta đã biết, trong thuật toán
―vét cạn‖ (tìm kiếm theo bề rộng hoặc theo độ sâu), về mặt nguyên tắc các phương pháp tìm được nghiệm của bài toán nếu bài toán có nghiệm, song trên thực tế bài toán NP-khó không thể áp dụng được phương pháp này, vì ta phải phát triển một
Trang 16không gian trạng thái rất lớn, trước khi tới được trạng thái đích, do những hạn chế
về mặt thời gian tính toán và dung lượng bộ nhớ, không cho phép ta làm được điều
đó
(iv) Phương pháp thuật giải leo đồi (Hill climbing): là tên chung để chỉ một
họ các thuật toán Thuật toán thực hiện bằng cách tạo ra hàng xóm cho các trạng thái hiện thời và di chuyển sang hàng xóm có hàm mục tiêu tốt hơn, tức là di chuyển lên cao đối với trường hợp cần cực đại hóa hàm mục tiêu Thuật toán dừng lại khi đạt tới một đỉnh của đồ thị hàm mục tiêu, tương ứng với trạng thái không có hàng xóm nào tốt hơn Đỉnh này có thể là đỉnh cao nhất, hoặc cũng có thể là đỉnh thấp hơn (hình) Trong trường hợp thứ nhất, thuật toán tìm được giá trị cực trị, trong trường hợp thứ 2 thuật toán chỉ tìm được cực trị địa phương Thuật toán leo đồi không lưu lại những trạng thái đã qua, đồng thời không nhìn xa hơn hàng xóm của trạng thái hiện thời
Hình 1 4 Bài toán tìm kiếm cục bộ với không gian trạng thái và hàm mục tiêu
Ngoài những thuật toán kể trên, còn rất nhiều những thuật giải khác như thuật giải vét cạn, giải thuật tối ưu đàn kiến hay giải thuật di truyền (GA) được nghiên cứu và trình bày ở phần sau
Trang 171.3 Ràng buộc trong bài toán
Bài toán xếp thời khóa biểu tín chỉ là việc phân công giảng viên, thời gian, phòng học cho mỗi lớp tín chỉ đã dự kiến sao cho thỏa mãn các yêu cầu, ràng buộc
đã đặt ra
Thông thường, các ràng buộc của bài toán cần thỏa mãn được chia thành hai loại: ràng buộc cứng và ràng buộc mềm Những ràng buộc cứng phải chắc chắn được đáp ứng và thỏa mãn Những ràng buộc cứng này bao gồm những yêu cầu sau đây:
- (H1) Không được phép phân bổ một tài nguyên (giảng viên, phòng học) cho các sự kiện khác nhau (lớp tín chỉ) trong cùng một thời điểm
Ví dụ:
Một giáo viên không thể dạy hai lớp môn cùng một thời điểm
Hay cùng một thời điểm không thể xếp hai lớp môn vào cùng một phòng học được
- (H2) Các phòng học được gán cho một sự kiện (lớp tín chỉ) phải nằm trong
bộ nguồn tài nguyên phù hợp dành cho sự kiện đó Theo đó, một sự kiện được tổ chức trong một phòng phải có cơ sở hạ tầng phù hợp để có thể tổ chức sự kiện, ví
Ví dụ:
Không thể phân một giáo viên chuyên về Tiếng Anh tham gia giảng dạy lớp môn Lập trình hướng đối tượng Vì giáo viên này sẽ không đủ kiến thức chuyên môn cũng như năng lực để đảm nhận
- (H4) Giảng viên chỉ được phân công giảng dạy trong nhữngkhe thời gian có mặt làm việc tại trường, và sẽ được xác lập trước khi xếp lịch
Trang 18Mặt khác, các ràng buộc mềm với mong muốn thỏa mãn ở mức độ càng cao càng tốt và đáp ứng cho càng nhiều ràng buộc càng tốt, nhưng nó không phải là bắt buộc cần phải đầy đủ cho một giải pháp lịch cụ thể của bài toán Một số ràng buộc mềm thường được xem xét trong các nghiên cứu và triển khai như sau:
- (S1) Phân công giảng viên vào lớp sao cho chuyên môn giảng dạy ở lớp của giảng viên là ở mức chuyên gia càng cao càng tốt
Ví dụ:
Thầy A có chuyên môn và yêu thích dạy môn Lập trình mạng hơn môn lập trình hướng đối tượng thì chúng ta nên phân thầy A đảm nhận dạy môn Lập trình mạng (được ưu tiên nhất trong các môn thầy A đăng ký dạy)
- (S2) Ưu tiên phân công thời gian cho giảng viên đạt được mong muốn đã xác định
Ví dụ:
Cô C có đăng ký dạy vào sáng thứ 5 và cả ngày thứ 6 (rổi sáng thứ 5 và ngày thứ 6) thì chúng ta nên xếp lịch ưu tiên cho cô C được dạy vào sáng thứ 5 và ngày thứ 6
- (S3) Đảm bảo yếu tố cân bằng cho các giảng viên khi phân công, tức số lớp tối thiểu và tối đa được phân công cần được ưu tiên
Ví dụ:
Không thể xếp lịch cho cô D dạy một 5 môn mà thầy T được xếp dạy 1 môn, khi trong 5 môn cô D dạy thầy T cũng đủ trình độ chuyên môn và năng lực và thầy cũng đã đăng ký dạy (phần chia không công bằng các môn cho giáo viên)
- (S4) Nên ưu tiên xếp các lớp tín chỉ có ràng buộc tiên quyết về chuyên môn vào cùng một khe thời gian Điều này nhằm làm tăng khả năng đăng ký cho nhiều sinh viên đối với lịch được xếp
Ví dụ:
Chúng ta nên xếp ưu tiên cho môn cơ sở lập trình và môn lập trình hướng đối tượng vào cùng ca học, vì môn cơ sở lập trình là điều kiện tiên quyết để học môn lập trình hướng đối tượng (để đảm bảo cho sinh viên đăng ký học được nhiều nhất)
Trang 19- (S5) Khả năng đăng ký học của mỗi sinh viên đối với lịch được xếp là cao nhất có thể Điều này đặc biệt đáp ứng cho việc tổ chức đào tạo tín chỉ, lịch học các lớp tín chỉ được sắp xếp trước, sau đó sinh viên sẽ đăng ký tham gia học, thay vì cách xếp lịch theo niên chế là dành cho từng lớp hành chính gồm các sinh viên cố định
Trang 20CHƯƠNG 2 KIẾN THỨC CƠ SỞ
2.1 Giải thuật di truyền (GA)
2.1.1 Giới thiệu giải thuật di truyền
Giải thuật di truyền (Gennetic Algorithims – GA) là một kỹ thuật trong tính toán mềm giúp giải quyết bài toán bằng cách mô phỏng sự tiến hóa tự nhiên của con người hay của sinh vật nói chung trong điều kiện quy định sẵn của môi trường
Giải thuật di truyền cũng như các giải thuật tiến hóa nói chung hình thành dựa trên quan niệm cho rằng quá trình tiến hóa 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 Quá trình tiến hóa thể hiện tính tối ưu ở chỗ, thế hệ sau bao giờ cũng tốt hơn (phát triển và hoàn thiện hơn) thế hệ trước Tiến hóa được duy trì nhờ 2 quá trình cơ bản: sinh sản và chọn lọc Trong quá trình tiến hóa các thế hệ mới luôn được sinh ra để bổ sung, thay thế cho thế hệ cũ Những
cá thể không tốt sẽ bị đào thải Các cá thể mới sinh ra trong quá trình tiến hóa nhờ
sự lai ghép thế hệ cha mẹ Một cá thể mới có thể mang những tính trạng của cha mẹ (di truyền), cũng có thể mang những tính trạng hoàn toàn khác (đột biến)
Giải thuật di truyền thực hiện tiến trình tìm kiếm lời giải tối ưu theo nhiều hướng bằng cách duy trì một quần thể các lời giải và thúc đẩy sự hình thành và trao đổi thông tin giữa các hướng này Quần thể trải qua quá trình tiến hóa, ở mỗi thế hệ lại tái sinh các lời giải tương đối ―tốt‖ trong khi các lời giải tương đối ―xấu‖ thì chết
đi Để phân biệt các lời giải khác nhau (tốt – xấu) thì ta sử dụng hàm mục tiêu (đề cập ở phần sau) để đánh giá
Giải thuật di truyền (GA) là một trong những mô hình tính toán phổ biến và thành công trong lĩnh vực tính toán mềm 0 Cùng với các kỹ thuật tính toán thông minh khác như tính toán mờ (fuzzy computing), mạng Nơ-ron (neural networks), hệ
đa tác tử (multiagent systems), trí tuệ bầy đàn (swarm intelligence), giải thuật di truyền ngày càng phát triển, được áp dụng rộng rãi trong các lĩnh vực của cuộc sống Có thể nói, GA đã bước đầu được áp dụng thành công trong các trường hợp,
mà việc mô tả toán học cho bài toán gặp rất nhiều khó khăn Ví dụ: các hệ thống phức tạp (complex systems) với các hàm mục tiêu ẩn và các mối ràng buộc phức
Trang 21tạp, các bài toán thiết kế với các hàm mục tiêu quá phức tạp không tuyến tính, hay các bài toán lập kế hoạch/lập lịch với không gian tìm kiếm NP-khó (NP-hard)
Tương tự thuật toán GA, thuật toán SA[2] là những phương pháp thích nghi
để tìm kiếm tối ưu Trong khi GA là một thuật toán tìm kiếm ngẫu nhiên chủ yếu dựa trên hai phép toán gen là lai ghép và đột biến thì SA được xem như một thuật toán áp dụng kỹ thuật ―leo đồi‖ theo xác suất Đã có nhiều tác giả nghiên cứu áp dụng GA và SA để giải bài toán tối ưu Tuy nhiên, mỗi thuật toán đều có những thế mạnh riêng và một số tác giả đã kết hợp hai thuật toán trên làm tăng sức mạnh tìm kiếm Trong nhiều nghiên cứu, các tác giả đã nhúng tham số nhiệt độ T mô phỏng nhiệt tôi luyện trong SA để điều khiển các phép toán gen của GA Trong đó, các tham số xác suất để chọn lọc, lai ghép và đột biến được thay đổi qua từng thế hệ di truyền, chúng được tính dựa trên tham số nhiệt độ của thế hệ hiện tại Tham số nhiệt ban đầu được tính dựa trên số thế hệ tiến hóa (thường khá lớn đảm bảo tính đa dạng của quần thể), sau mỗi thế hệ tham số nhiệt giảm dần để đảm bảo tính hội tụ và tính
ổn định Kết hợp này phù hợp với các chiến lược thay đổi tham số trong GA, làm tăng tốc độ hội tụ tìm kiếm và hiệu quả của thuật toán, ta gọi đây là thuật toán di truyền lai (SGA)
Theo 0, giải thuật di truyền (hay giải thuật tiến hóa nói chung) là một trong những phát triển quan trọng của những nhà nghiên cứu về tính toán ứng dụng cuối thế kỷ trước trong việc giải xấp xỉ các bài toán tối ưu toàn cục Việc khai thác nguyên lí tiến hóa như là một định hướng heuristics đã giúp cho giải thuật di truyền giải quyết hiệu quả các bài toán tối ưu (với các lời giải chấp nhận được) mà không cần sử dụng các điều kiện truyền thống (liên tục hay khả vi) như là điều kiện tiên quyết Một trong những đặc tính quan trọng của giải thuật di truyền là làm việc theo quần thể các giải pháp Việc tìm kiếm bây giờ được thực hiện song song trên nhiều điểm (multipoints) Tuy nhiên, đây không phải là thuật toán tìm kiếm đa điểm đơn thuần vì các điểm có tương tác với nhau theo nguyên lí tiến hóa tự nhiên Trong ngữ cảnh sử dụng giải thuật di truyền, người ta có thể dùng khái niệm ―cá thể‖ tương đương với khái niệm ―giải pháp‖
Sơ đồ tổng thể của thuật toán di truyền nói chung được mô tả như sau:
Trang 22Nhận các tham số đầu vào của bài toán
Khởi tạo quần thể ban đầu
Tái tạo
Hình 2 1 Sơ đồ giải thuật di truyền
Các bước của giải thuật di truyền trong sơ đồ trên có thể được mô tả chi tiết như sau:
• Bước 1: Nhập các tham số đầu vào của bài toán, thiết lập các tham số cho
thuật toán từ các tham số đầu vào
• Bước 2: Xuất phát với thế hệ khởi đầu t=0; Khởi tạo quần thể xuất phát
P(t) = {x1, x2,… ,xN} ngẫu nhiên, với N là số lượng cá thể tại mỗi thế hệ (độ lớn của quần thể)
• Bước 3: Tính giá trị thích nghi hay còn gọi là hàm mục tiêu (fitness) của
các cá thể trong P(t)
Trang 23• Bước 4: Kiểm tra điều kiện dừng thuật toán, có thể đạt được cá thể tốt nhất
cần tìm kiếm hoặc đạt đến thế cuối cùng được thiết lập Trường hợp chưa đạt, thuật toán chuyển sang bước tiếp ở sau để thực hiện tiến hóa
• Bước 5: Chọn lọc các cá thể từ quần thể hiện tại để tạo bể lai ghép MP =
se{P(t)} gồm các thể đóng vai trò là bố mẹ, với se là toán tử lựa chọn
• Bước 6: Thực hiện lại ghép để tạo quần thể P’(t) = cr{MP} gồm các thể
con, với cr là toán tử lai ghép
• Bước 7: Thực hiện đột biến các cá thể trong P’(t) để tạo quần thể mới P‖(t)
= mu{P’(t)} gồm các cá thể con sau khi áp dụng phép đột biến, với mu là toán tử đột biến
Một trong những cách biểu diễn truyền thống của GA là biểu diễn nhị phân Với phép biểu diễn này, lời giải cho bài toán được biểu diễn như là một véc-tơ gồm các chữ số nhị phân, trong đó chia thành các đoạn gọi là nhiễm sắc thể (chromosome) Mỗi nhiễm sắc thể bao gồm nhiều gen, trong đó một gen đại diện cho một tham số thành phần của lời giải Cách biểu diễn thứ hai cũng thường dùng
là biểu diễn dạng giá trị (số nguyên hoặc số thực hoặc các ký tự) Với phép biểu diễn này, các toán tử tiến hóa sẽ thực hiện trực tiếp trên các giá trị số (genes) của cá thể Phương pháp biểu diễn thứ ba là mã hóa hoán vị, trong đó lời giải của bài toán
là một hoán vị các tham số biểu diễn Cuối cùng là phương pháp mã hóa dưới dạng cây dựa trên lời định đang giải của bài toán cần giải quyết Chi tiết các phương pháp
mã hóa được mô tả như sau [6]
a) Mã hóa nhị phân
Trang 24Đây là hình thức phổ biến nhất của mã hóa trong đó các giá trị dữ liệu được chuyển đổi thành các chuỗi nhị phân Mã hóa nhị phân cho nhiều nhiễm sắc thể với một số lượng nhỏ của các alen Một nhiễm sắc thể được biểu diễn trong bảng mã nhị phân như thể hiện trong hình 2.2
Hình 2 2 Minh họa kiểu mã hóa nhị phân của hai chuỗi gen
b) Mã hóa hoán vị
Mã hóa hoán vị là thích hợp nhất cho bài toán sắp thứ tự hoặc xếp hàng Trong đó, bài toán người đi du lịch là một bài toán thách thức nổi tiếng trong tối ưu hóa, nơi mà phương pháp mã hóa hoán vị được sử dụng nếu áp dụng giải thuật di truyền Trong mã hóa hoán vị, mỗi nhiễm sắc thể là một chuỗi biểu diễn một hoán
vị tương ứng lời giải bài toán như thể hiện trong hình 2.3
Hình 2 3 Minh họa phương pháp mã hóa hoán vị
c) Mã hóa giá trị
Mã hóa trị có thể được cấu thành từ dạng số (nguyên hoặc thực), các ký tự tạo nên một bản thể đối tượng phức tạp Mã hóa giá trị là kỹ thuật trong đó mỗi nhiễm sắc thể là một chuỗi các giá trị và kiểu mã hóa này được sử dụng một khi nhiều các giá trị phức hợp được yêu cầu Nó có thể được thể hiện như thể hiện trong hình 2.4
Trang 25Hình 2 4.Minh họa phương pháp mã hóa giá trị
d) Mã hóa dạng cây
Là phương pháp phù hợp cho việc tiến hóa các biểu thức hoặc tiến hóa các chương trình, chẳng hạn lập trình tiến hóa Trong mã hóa dạng cây, mỗi nhiễm sắc thể là một cây các đối tượng, hàm hoặc các lệnh trong ngôn ngữ lập trình
Ngôn ngữ lập trình LISP (Locator/identifier separation protocol) được sử dụng cho kiểu mã hóa này Chương trình LISP có thể được biểu diễn trong một cấu trúc cây với hai phép lai ghép và đột biến Trong mã hóa dạng cây, các nhiễm sắc thể được biểu diễn như thể hiện trong hình 2.5
Hình 2 5 Minh họa phương pháp mã hóa dạng cây
Một điều đáng quan tâm là các phương pháp mã hóa ở trên có thể biểu diễn trực tiếp lời giải của bài toán, tức là các tham số trong lời giải được thể hiện rõ trong cách mã hóa Tuy nhiên, trong một số bài toán hoặc các trường hợp đặc biệt, lời giải bài toán khó để biểu diễn trực tiếp và do đó cần phải áp dụng việc biểu diễn gián tiếp lời giải cho cá thể của GA Theo cách này, chúng ta cần một công cụ để sinh đầy đủ lời giải của bài toán từ cá thể được mã hóa và thường được xây dựng bởi một đơn vị hàm hoặc đơn vị chương trình
Trang 26Theo [6], không có bất kỳ một công cụ hoặc phương pháp nào để xác định việc sử dụng loại lược đồ mã hóa nào là thích hợp cho một vấn đề cụ thể, thay vào
đó, nó phụ thuộc vào cụ thể từng bài toán ứng dụng và các yêu cầu của bài toán 2.1.2.2 Đánh giá cá thể
Để đánh giá cá thể, chúng ta sử dụng một hàm để tính toán ra một giá trị thực với mục đích đo lường độ phù hợp của lời giải (fitness) Giá trị của hàm là giá trị độ phù hợp
Hàm fitness là một dạng đặc biệt để tổng hợp các mục tiêu của bài toán thành một giá trị đơn, giá trị này nhằm xác định mức độ gần với lời giải đúng của bài toán cho lời giải ứng viên trong biểu diễn của cá thể
Đặc biệt, trong lĩnh vực lập trình di truyền và các thuật toán di truyền, mỗi lời giải ứng viên thường được biểu diễn như là một chuỗi các con số (nhiễm sắc thể
- chromosome) Sau mỗi đợt thử, hoặc kiểm nghiệm, ý tưởng là để xóa bỏ các lời giải tồi, và nhân giống những lời giải mới từ các lời giải tốt Mỗi lời giải, do đó, cần phải được ghi nhận để chỉ cách biến đổi nó đến lời giải đúng của bài toán Điều này
có được bằng cách áp dụng hàm fitness để thử, hoặc kiểm nghiệm, xác định kết quả thu được từ các giải pháp ứng viên
Việc thiết kế hàm fitness trong thuật toán di truyền không thể được xem nhẹ, những nỗ lực tham gia thiết kế một hàm fitness hoàn toàn khả thi là rất cần thiết Nếu chúng ta có một thiết kế hàm fitness tồi, thuật toán di truyền hoặc sẽ hội tụ về một giải pháp không phù hợp, hoặc sẽ gặp khó khăn khi hội tụ toàn cục
Hơn nữa, hàm fitness không những phải tương quan chặt chẽ với mục tiêu của bài toán, mà nó cũng phải được thiết kế để có thể tính toán một cách nhanh chóng Tốc độ thực hiện của thuật toán trong quá trình tiến hóa là rất quan trọng, thuật toán di truyền là điển hình trong việc giải quyết các bài toán tối ưu phức tạp, cần phải lặp lại nhiều lần để tạo ra một lời giải chấp nhận được cho một bài toán
Hai lớp hàm fitness thường được xem xét thiết kế sử dụng: một là hàm fitness không thay đổi cho mọi đánh giá cá thể; hai là hàm fitness có thể thay đổi cấu trúc tính toán trong quá trình tiến hóa
Trang 27Việc định nghĩa rõ ràng một hàm fitness là không đơn giản trong nhiều trường hợp và thường được thực hiện lặp đi lặp lại nếu lời giải ứng viên sinh bởi
GA là không biểu diễn trực tiếp những ý đáp số của bài toán cần Trong một số trường hợp, nó là rất khó hoặc không thể đưa ra ngay cả với một dự đoán về những
gì cần định nghĩa cho hàm fitness Các thuật toán di truyền tương tác giải quyết khó khăn này bằng cách đưa đánh giá độ phù hợp cá thể của GA cho các bộ phận bên ngoài (thường là con người)
2.1.2.3 Khởi tạo quần thể ban đầu
Là quá trình sinh ngẫu nhiên các cá thể, mỗi cá thể gồm chuỗi nhiễm sắc thể
là các gen biểu diễn lời giải của bài toán Mỗi gen theo phương pháp biểu diễn sẽ có một miền giá trị và chúng ta sẽ khởi tạo giá trị ngẫu nhiên trong miền đó Một số trường hợp biểu diễn cần phải kiểm soát việc khởi tạo để sao cho lời giải được biểu diễn trong cá thể tạo ra không mâu thuẫn và vi phạm các điều kiện đặt ra của bài toán Tạo quần thể khởi đầu trong giải thuật di truyền là nơi xuất phát của quá trình tiến hóa, bao gồm tất cả các giá trị thô ban đầu Tùy theo yêu cầu của từng bài toán
mà chúng ta có thể có các cách khởi tạo khác nhau
2.1.2.4 Phép chọn lọc (selection)
Phép chọn lọc là một phần quan trọng trong thuật toán di truyền (GA), dựa trên một tiêu chí đánh giá (hàm fitness) để trả về một phép đo giá trị cho bất kỳ nhiễm sắc thể trong không gian của bài toán Đó là giai đoạn của giải thuật di truyền nhằm thực hiện chọn một tập cá thể bố mẹ từ các thể của thế hệ hiện tại để thực hiện các phép toán lai ghép Các kỹ thuật thường được sử dụng để chọn lọc các nhiễm sắc thể là phương pháp bánh xe Roulette, chọn lọc theo xếp hạng và chọn lọc dựa trên trạng thái ổn định
a) Chọn lọc theo bánh xe Roulette
Trong phương pháp này, các cá thể bố mẹ được chọn lọc dựa trên độ phù hợp cá thể (fitness) Theo đó, các cá thể ở thế hệ hiện tại có chuỗi gen tốt hơn sẽ có nhiều cơ hội để được chọn làm bố mẹ cho lai ghép Đây là phương pháp phổ biến nhất để thực hiện phép chọn lọc theo tỷ lệ của độ phù hợp cá thể Mỗi cá thể được gắn với một phần của bánh xe Roulette, và kích thước của mỗi phần là tỷ lệ thuận
Trang 28với độ phù hợp của cá thể đó, tức là giá trị độ phù hợp càng lớn thì kích thước phần bánh xe Roulette càng to Cơ chế chọn lọc theo phương pháp bánh xe Roulette được
mô tả như sau:
Bước 1) Tính tổng độ phù hợp của tất cả các cá thể trong quần thể, từ đây có
thể xác định tỷ lệ phần trăm tương ứng phần bánh xe Roulette cho mỗi cá thể
Bước 2) Lấy số ngẫu nhiên trong đoạn [0,1]
Bước 3) Đi từ đầu và qua lần lượt các cá thể trong quần thể, đồng thời tính
tổng mức phần trăm đã xác định ở bước 1 của mỗi cá thể đi qua Khi một cá thể mà tại đó số tổng này là nhiều hơn hoặc bằng giá trị lấy ở bước 2 thì dừng lại và trả về
cá thể đó
Hình vẽ 2.6 cho thấy bánh xe Roulette có sáu cá thể (F1,F2,…,F6) với giá trị fitness khác nhau Cá thể thứ sáu chiếm phần bánh xe to hơn so với các cá thể còn lại vì nó có độ phù hợp lớn nhất Điều này với hy vọng rằng xác suất để bánh xe Roulette chọn cá thể thứ sáu cao hơn bất kỳ cá thể nào khác
Hình 2 6 Minh họa sơ đồ chọn theo bánh xe Roulette
b) Phương pháp chọn lọc xếp hạng
Việc áp dụng phương pháp chọn lọc theo bánh xe Roulette là không phù hợp trong các thuật toán di truyền (GA) khi mà giá trị độ phù hợp của các cá thể là có sự khác nhau rất lớn Nó là một kỹ thuật hội tụ chậm, trong đó việc xếp hạng các cá thể theo các tiêu chí nhất định và mỗi nhiễm sắc thể của cá thể nhận giá trị độ phù hợp
Trang 29được xác định dựa trên bảng xếp hạng này Phương pháp này ngăn chặn sự hội tụ nhanh vào lời giải cục bộ của thuật toán Các cá thể trong quần thể được xếp hạng dựa trên giá trị độ phù hợp và kỳ vọng của mỗi cá thể được lựa chọn phụ thuộc vào thứ hạng của nó chứ không phải là giá trị độ phù hợp tuyệt đối của nó
Phương pháp chọn lọc xếp hạng được thể hiện trong hình 2.7 Ví dụ, nếu giá trị fitness của cá thể tốt nhất là 80%, chu vi của nó chiếm 80% của bánh xe roulette
và vì vậy các cá thể khác sẽ có ít cơ hội để được lựa chọn Việc chọn lọc theo thứ hạng được thực hiện như sau, đầu tiên xếp các cá thể theo giá trị fitness của chúng
và sau đó mỗi nhiễm sắc thể (của cá thể) nhận thứ tự xếp hạng Cá thể kém nhất sẽ
là giá độ phù hợp fitness bằng 1, cá thể kém thứ hai là giá trị độ phù hợp bằng 2, và một trong những cá thể tốt nhất sẽ có giá trị fitness là n, với n là số lượng cá thể trong quần thể
Hình 2 7 Sơ đồ minh họa phép chọn lọc xếp hạng
c) Chọn lọc theo trạng thái ổn định
Phương pháp này thay thế một số cá thể trong mỗi thế hệ, và không phải là một phương pháp điển hình cho phép chọn lọc thành các cá thể bố mẹ Chỉ có một
số lượng nhỏ các cá thể con mới được tạo ra thay thế vào cá thể bố mẹ tương ứng
Ý tưởng chính của chọn lọc theo trạng thái ổn định là việc giữ lại phần lớn các nhiễm sắc thể của các thể trong thế hệ kế tiếp
d) Chọn lọc cạnh tranh
Trang 30Chọn K cá thể từ quần thể hiện tại một cách ngẫu nhiên và chọn cá thể tốt nhất trong K cá thể đó để sao chép sang quần thể tạm thời Lặp lại bước chọn trên N lần chúng ta sẽ có quần thể tạm thời làm quần thể bố mẹ Giá trị K được gọi là kích
cỡ của chọn lọc cạnh tranh Khi K=2 chúng ta chọn lọc cạnh tranh nhị phân
2.1.2.5 Phép lai ghép (crossover)
Nó là quá trình trong đó các gen được lựa chọn từ các nhiễm sắc thể của bố
mẹ (parents) để tạo ra cá thể con (children hoặc offspring) mới Phép lai ghép thường được áp dụng theo một xác suất lai ghép là pc Phép lai ghép có thể được thực hiện với mã hóa nhị phân, mã hóa hoán vị, mã hóa giá trị và mã hóa dạng cây
Trong sinh sản hữu tính, theo cách mà phép lai ghép xuất hiện trong thế giới thực, các sinh vật được di truyền từ cả hai bố mẹ là hỗn hợp (trộn) các gen từ bố mẹ của chúng Thông thường, nhiễm sắc thể được chia tách ngẫu nhiên và sáp nhập, kết quả là cá thể con có một số gen đến từ một trong hai bố mẹ trong khi những gen khác đến từ cá thể bố mẹ còn lại
Phép lai ghép là một công cụ rất mạnh để sinh cá thể mới và duy trì sự đa dạng trong di truyền, theo đó đặc điểm nổi bật là cá thể bố mẹ tốt thì cũng sản sinh
cá thể con tốt hoặc thậm chí còn tốt hơn bố mẹ Một số nghiên cứu [7] đã đi đến kết luận rằng lai ghép là lý do tại sao các loài sinh sản hữu tính đã thích nghi nhanh hơn
so với những loài sinh sản vô tính
Về cơ bản, lai ghép là việc trao đổi gen giữa các nhiễm sắc thể của hai bố
mẹ Trong trường hợp đơn giản, chúng ta có thể nhận ra quá trình này bằng cách cắt hai chuỗi gen của bố mẹ tại một vị trí được chọn ngẫu nhiên và hoán đổi hai phần đuôi sẽ tạo hai cá thể con mới Quá trình này, chúng ta sẽ gọi là lai ghép một điểm cắt (one-point crossover), xem trong hình 2.8
Trang 31Hình 2 8 Minh họa lai ghép một điểm cắt trên chuỗi nhị phân
Theo [7], trong các thuật toán GA đơn giản, ngoài lại ghép một điểm cắt, chúng ta có thể thực hiện lai ghép N điểm cắt, lai ghép phân đoạn, lai ghép đều, lai ghép hỗn hợp
- Phép lai ghép N-điểm cắt (N-point crossover): Thay vì chỉ có một, N điểm cắt được lựa chọn ngẫu nhiên trên chiều dài chuỗi gen Trong đó, mỗi đoạn cắt số chẵn tính từ đầu là đổi chỗ trên hai bố mẹ để tạo hai cá thể con Theo cách này, lai ghép hai điểm cắt là đặc biệt quan trọng
- Lai ghép phân đoạn (segmented crossover): Tương tự như lai ghép N-điểm cắt nhưng có sự khác biệt đó là số các điểm có thể khác nhau trong quá trình tiến hóa Tức N là không cố định
- Lai ghép đều (uniform crossover): Với mỗi vị trí trên chiều dài chuỗi gen,
sẽ quyết định ngẫu nhiên xem giá trị gen tại vị trí đó được đổi chỗ trên hai bố mẹ hay không Minh họa bởi hình sau
Hình 2 9 Minh họa phép lai ghép đều
- Lai ghép hỗn hợp: Trước hết một hoán vị ngẫu nhiên được chọn để áp dụng trên hai bố mẹ, sau đó lai ghép N-điểm cắt được áp dụng tạo hai cá thể con Cuối cùng, các cá thể con được biến đổi ngược trở lại với hoán vị của bố mẹ tương ứng
Trang 32Ngoài ra, tùy vào từng phương pháp biểu diễn, các nhà nghiên cứu [6] đề xuất áp dụng nhiều biến thể của phép lại ghép khác nhau nhằm đem lại hiệu quả cho thuật toán được áp dụng đối với bài toán tương ứng Chẳng hạn như lại ghép toán học (Arithmetic Crossover), lai ghép theo mã hóa hoán vị (Permutation encoding crossover), lai ghép theo mã hóa giá trị (Value encoding crossover) hay lai ghép theo mã hóa dạng cây (Tree encoding crossover)
2.1.2.6 Phép đột biến (mutation)
Hội tụ sớm là một vấn đề quan trọng trong hầu hết các kỹ thuật tối ưu, bao gồm quần thể mà chúng ta đạt được khi chuỗi gen của bố mẹ có độ phù hợp cao trong quần thể sinh sản nhiều cá thể con tương tự nhau trong thời gian đầu của tiến hóa Phép lai ghép của thuật toán di truyền không thể tạo ra con cái hoàn toàn khác với cha mẹ của chúng, vì những thông tin có được sử dụng để lai ghép trên chuỗi gen Một phép toán khác đó là đột biến, có thể tìm kiếm trên các khu vực mới trong không gian lời giải của bài toán, đây là sự tương phản với lai ghép Lai ghép được xem như là phép khai thác trong khi đột biến như là phép thăm dò hay khám phá Giống như lai ghép, đột biến cũng có thể được thực hiện cho tất cả các loại kỹ thuật
- Đột biến đảo ngược: chọn hai vị trí ngẫu nhiên trong một nhiễm sắc thể và sau đó, lấy đảo ngược chuỗi gen giữa hai vị trí này
Ví dụ:
Nhiễm sắc thể ban đầu: 4 3 6 5 7 17 4 2
Nhiễm sắc thể sau khi đột biến : 4 3 71756 4 2
- Đột biến chèn: chọn ngẫu nhiên một gen và sau đó chèn nó vào vị trí ngẫu nhiên khác
Trang 33Nhiễm sắc thể ban đầu: 9 3 8 5 7 1 6 4 2
Sau đột biến (trái): 9 8 3 5 7 1 6 4 2
Sau đột biến (phải): 9 3 5 87 1 6 4 2
Ngoài ra, theo [6], chúng ta có thể áp dụng các biến thể của phép đột biến khác nhau tùy theo cách mã hóa cá thể và bài toán Chẳng hạn có phép đột biến theo
mã hóa hoán vị, đột biến theo mã hóa giá trị, đột biến theo mã hóa dạng cây
2.1.2.7 Điều kiện dừng
Để kết thúc quá trình tiến hóa, thì tùy thuộc vào bài toán sẽ có các cách kết thúc khác nhau một khi đã đạt đến điều kiện yêu cầu Một vài trường hợp kết thúc quá trình tiến hóa thông thường như sau:
- Kết thúc theo kết quả: khi có một cá thể trong thế hệ hiện tại đạt đến mức giá trị độ phù hợp theo yêu cầu thì dừng quá trình tiến hóa
Trang 34- Kết thúc dựa vào số thế hệ: chọn số thế hệ tối đa trước khi tiến hóa, quá trình sẽ dừng đạt số thế hệ đã chọn đó, không cần kiểm tra kết quả là như thế nào
- Tính theo thời gian: bỏ qua việc tiến hóa bao nhiêu thế hệ hay kết quả như thế nào, chỉ dựa vào thời gian tiến hóa đã qui định trước để kết thúc
- Hỗn hợp: dùng nhiều phương án khác nhau ở trên, khi đạt đến một trong các điều kiện thì dừng thuật toán
2.1.3 Ứng dụng của giải thuật di truyền
Giải thuật di truyền (GA) được ứng dụng cho những bài toán khó, chẳng hạn như điều khiển quá trình phi tuyến phức tạp với bài toán tối ưu theo tham số GA hiện đã đượ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 thí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,…
Để ứng dụng giải thuật di truyền vào việc giải quyết bài toán cụ thể ta cần xem xét các yếu tố sau:
- Lựa chọn phương pháp mã hóa cá thể, nó là mô hình biểu diễn nhiễm sắc thể sao cho mỗi nhiễm sắc thể có thể chứa đựng được một lời giải của bài toán
- Xây dựng hàm đánh giá độ thích nghi cho từng nhiễm sắc thể, đây là bước khó khăn và ảnh hưởng đến hiệu quả của giải thuật
- Lựa chọn các toán tử di truyền phù hợp mà chủ yếu tập trung vào ba toán tử chính là chọn lọc, lai ghép và đột biến
- 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
- Xác định điều kiện dừng cho quá trình tiến hóa
Theo [6], các thuật toán di truyền đã được áp dụng cho vấn đề nhận dạng mẫu đề xuất bởi Raymer ML và cộng sự năm 2000 Một cách tiếp cận mới được đề xuất để trích chọn đặc trưng, trong đó việc lựa chọn đặc trưng và trích chọn đặc trưng được thực hiện đồng thời bằng cách sử dụng các thuật toán di truyền Theo
đó, thuật toán di truyền sẽ tối ưu hóa một véc-tơ trọng số được sử dụng để nhân tỷ
lệ với cá nhân từng đặc trưng trong các véc-tơ mẫu ban đầu
Trang 35Wei-Yen Wang và Li năm 2003 đề xuất một phương pháp mới để điều chỉnh
cả các điểm kiểm soát các hàm thuộc B-spline và trọng số của mạng nơron mờ bằng cách sử dụng thuật toán di truyền dạng tối giản (RGA) Kết quả mô phỏng cho thấy
sự hội tụ nhanh hơn của quá trình tiến hóa và hiệu quả của thuật toán di truyền dạng tối giản
Việc tìm kiếm các lời giải mạnh mẽ và linh hoạt cho bài toán lập kế hoạch trong ứng dụng thực tế đã được đề xuất bởi Jensen M T năm 2003 Thực nghiệm cho thấy bằng cách sử dụng một thuật toán di truyền, nó có thể tìm thấy lịch trình mạnh mẽ và linh hoạt với một chi phí thấp
Tối ưu hóa điều hòa của các bộ chuyển đổi đa cấp sử dụng thuật toán di truyền đã được đề xuất bởi Ozpineci và cộng sự năm 2004 Kĩ thuật tối ưu được áp dụng cho biến tần đa cấp để xác định góc độ chuyển mạch tối ưu cho đợt biến tần
đa cấp để loại bỏ một số sóng điều hòa thứ tự cao hơn trong khi duy trì điện áp cơ bản cần thiết
Và còn rất nhiều ứng dụng của thuật toán di truyền đã được nghiên cứu và áp dụng trong thực tế rất thành công Xem chi tiết trong [7]
2.2 Khái niệm cơ bản về đại số gia tử
2.2.1 Đại số gia tử
Để mô phỏng các quá trình suy luận của con người, lý thuyết đại số gia tử (ĐSGT) đã cố gắng nhúng tập ngôn ngữ tự nhiên vào một cấu trúc đại số thích hợp
và tìm cách xem chúng như là một đại số để tiên đề hoá sao cho cấu trúc thu được
mô phỏng tốt ngữ nghĩa ngôn ngữ
Xét một tập giá trị ngôn ngữ là miền của biến ngôn ngữ
Ví dụ tập: T:= AGE
T = {young, old, very young, little young, rather young, extremely old, rather old, …}
Ta có thể xem tập này như là một cấu trúc đại số: AT = (T, G, H,≤) trong đó:
T - là tập các từ của biến ngôn ngữ