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

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ỉ

70 643 2

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 70
Dung lượng 1,3 MB

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

Nội dung

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 1

BỘ 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 2

BỘ GIÁO DỤC VÀ ĐÀO TẠO

VIỆN ĐẠI HỌC MỞ HÀ NỘI

Trang 3

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

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

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

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

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

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

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

MỞ ĐẦ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 11

chỉ 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 12

CHƯƠ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 13

Hì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 15

vượ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 16

khô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 17

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

Mặ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 20

CHƯƠ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 21

tạ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 22

Nhậ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 25

Hì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 26

Theo [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 27

Việ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 28

vớ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 30

Chọ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 31

Hì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 32

Ngoà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 33

Nhiễ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 35

Wei-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ữ

Ngày đăng: 20/06/2016, 20:29

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] 2013, Bùi Thu Lâm & Phan Việt Anh, Giải thuật di truyền và ứng dụng trong hỗ trợ lập lịch điều hành công tác bệnh viện, Chuyên san Công nghệ thông tin và Truyền thông - Số 02 (4-2013) Khác
[2] 2011, Dương Thăng Long, Luận án tiến sĩ, Viện Công nghệ thông tin – Viện Khoa học và Công nghệ Việt Nam Khác
[3] 2011, Dương Thăng Long & Trần Duy Hùng, Phương pháp thiết kế hàm định lƣợng ngữ nghĩa của các giá trị ngôn ngữ trong hệ luật mờ phân lớp dựa trên đại số gia tử, Nghiên cứu cơ bản ứng dụng CNTT, Đồng Nai Khác
[4] Phạm Thọ Hàm & Phạm Thị Anh Lê (2011), Trí tuệ nhân tạo, khoa công nghệ thông tin trường đại học sư phạm Hà Nội.Tiếng Anh Khác
[5] 2013, R.Perzina & J.Ramik, Self-learning genetic algorithm for a timetable problem with fuzzy constraints, International Journal of Innovative, Computing, Information and Control, Vol. 9, No. 11, pp. 4565-4582 Khác
[6] 2011, Rahul Malhotra, Narinder Singh & Yaduvir Singh, Genetic Algorithms: Concepts, Design for Optimization of Process Controllers, Computer and Information Science, Vol. 4, No. 2, pp. 39-54 Khác
[7] 2004, Ulrich Bodenhofer, Genetic Algorithms - Theory and Applications, Lecture Notes, Third Edition—Winter 2003/2004, Fuzzy Logic Laboratorium Linz-Hagenberg Khác

HÌNH ẢNH LIÊN QUAN

Hình 1. 2. Ví dụ lịch học của một trường đại học - 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ỉ
Hình 1. 2. Ví dụ lịch học của một trường đại học (Trang 13)
Hình 1. 1. Ví dụ thời khóa biểu của một trường phổ thông - 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ỉ
Hình 1. 1. Ví dụ thời khóa biểu của một trường phổ thông (Trang 13)
Hình 2. 1. Sơ đồ giải thuật di truyền - 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ỉ
Hình 2. 1. Sơ đồ giải thuật di truyền (Trang 22)
Hình 2. 5. Minh họa phương pháp mã hóa dạng cây - 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ỉ
Hình 2. 5. Minh họa phương pháp mã hóa dạng cây (Trang 25)
Hình 2. 8. Minh họa lai ghép một điểm cắt trên chuỗi nhị phân - 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ỉ
Hình 2. 8. Minh họa lai ghép một điểm cắt trên chuỗi nhị phân (Trang 31)
Hình 2. 10. Độ đo tính mờ của biến TRUTH - 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ỉ
Hình 2. 10. Độ đo tính mờ của biến TRUTH (Trang 37)
Hình 2.11 của ví dụ nêu trên. - 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ỉ
Hình 2.11 của ví dụ nêu trên (Trang 39)
Hình 2. 12. Thiết kế hàm định lượng dựa trên hệ khoảng tương tự - 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ỉ
Hình 2. 12. Thiết kế hàm định lượng dựa trên hệ khoảng tương tự (Trang 40)
Bảng 3. 1: Biểu diễn lịch của các lớp tín chỉ - 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ỉ
Bảng 3. 1: Biểu diễn lịch của các lớp tín chỉ (Trang 43)
Hình 3. 2: Biểu diễn đánh giá mức độ thỏa mãn của giảng viên - 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ỉ
Hình 3. 2: Biểu diễn đánh giá mức độ thỏa mãn của giảng viên (Trang 46)
Hình 4. 1. Sơ đồ lớp thiết kế trong chương trình - 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ỉ
Hình 4. 1. Sơ đồ lớp thiết kế trong chương trình (Trang 54)
Bảng 4. 6: Các tham số chạy thuật toán xếp lịch - 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ỉ
Bảng 4. 6: Các tham số chạy thuật toán xếp lịch (Trang 57)
Bảng 4. 10: Các tham số chạy thuật toán trên dữ liệu thực - 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ỉ
Bảng 4. 10: Các tham số chạy thuật toán trên dữ liệu thực (Trang 64)
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 - 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ỉ
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 (Trang 68)
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 - 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ỉ
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 (Trang 68)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

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

w