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

Giải thuật di truyển và ứng dụng vào bài toán lập lịch thi

69 855 8

Đ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 69
Dung lượng 1,94 MB

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

Nội dung

Trong lĩnh vực nghiên cứu GAs người ta thường sử dụng các thuật ngữ vay mượn của di truyền học như: cá thể, nhiễm sắc thể NST, gen, quần thể, độ thích nghi, lai ghép, đột biến, tái sinh,

Trang 1

Mục lục

Mục lục 1

LỜI NÓI ĐẦU 3

CHƯƠNG 1 GIỚI THIỆU VỀ GAs 4

1.1 Tổng quát 4

1.2 Sơ lược Lịch sử phát triển 5

1.3 Sơ lược về ưu và nhược của giải thuật di truyền 7

1.4 Sơ đồ tổng thể của GAs 8

1.5 Các cách biểu diễn trong giải thuật di truyền 10

1.6 Hàm thích nghi 12

1.7 Các toán tử của GAs 13

1.7.1 Chọn lọc 13

1.8 Lai ghép 16

1.8.1 Lai ghép một điểm 17

1.8.2 Lai ghép 2 điểm 17

1.8.3 Cắt và nối 17

1.8.4 Lai ghép đồng bộ và lai ghép bán đồng bộ 17

1.8.5 Lai ghép được ánh xạ từng phần 18

1.8.6 Lai ghép thứ tự 19

1.8.7 Lai ghép thứ tự tuyến tính 19

1.8.8 Lai ghép vòng 19

1.8.9 Lai ghép tuyến tính mở rộng với số thực 20

1.9 Đột biến 21

1.9.1 Đột biến chèn (Insertion Mutation) 21

1.9.2 Đột biến thay thế (Displacement Mutation) 21

1.9.3 Đột biến đảo đoạn (Inversion Mutation) 22

1.9.4 Đột biến tương hỗ (Reciprocal Exchange Mutation) 22

1.9.5 Đột biến dịch chuyển (Shift Mutation) 22

1.9.6 Đột biến ngẫu nhiên (đột biến đều) 22

1.9.7 Đột biến không đồng bộ (đột biến không đều) 22

1.10 Tái sinh 23

1.11 Các tham số của giải thuật di truyền 23

1.11.1 Kích thước quần thể 23

1.11.2 Xác suất lai ghép 24

1.11.3 Xác suất đột biến 24

CHƯƠNG 2 GIỚI THIỆU VỀ BÀI TOÁN LẬP LỊCH THI 25

2.1 Bài toán Lập Lịch Thi (LLT) 25

2.2 Các cách tiếp cho bài toán LLT và Sơ lược lịch sử của bài toán LLT 28

2.2.1 Cách tiếp cận tìm kiếm ngẫu nhiên và tìm kiếm vét cạn 28

2.2.2 Các cách tiếp cận vận trù học 29

2.2.3 Cách tiếp cận sử dụng GAs 31

CHƯƠNG 3 SỬ DỤNG GAs GIẢI QUYẾT BÀI TOÁN LLT 34

3.1 Phát biểu bài toán 34

3.2 Các loại ràng buộc 34

3.2.1 Ràng buộc cạnh 34

Trang 2

3.2.2 Các ràng buộc thứ tự 36

3.2.3 Các ràng buộc về độ dàn trải của các sự kiện 37

3.2.4 Các qui định trước và các loại trừ 37

3.2.5 Các ràng buộc về không gian 38

3.2.6 Ràng buộc cứng và ràng buộc mềm 38

3.3 Mô hình GA tổng quát cho bài toán LLT 39

3.3.1 Cách biểu diễn bài toán 39

3.3.2 Giải quyết các ràng buộc 41

3.3.3 Khởi tạo 44

3.3.4 Tái sinh (Recombination) 44

3.3.5 Độ thích nghi 45

3.3.6 Đột biến thông minh 47

CHƯƠNG 4 CÁC THỬ NGHIỆM CỦA GAs CHO EDAI 49

4.1 Giới thiệu bài toán LLT tại EDAI(1) 49

4.1.1 Mô tả bài toán cụ thể 50

4.1.2 Bài toán AI/CS MSc 51

4.1.3 Áp dụng GA cơ bản cho bài toán Lập lịch thi tại EDAI 52

4.1.4 Khung làm việc cụ thể cho bài toán EDAI 55

4.1.5 Lượng giá 55

4.1.6 Các thử nghiệm 58

KẾT LUẬN 67

NHẬN XÉT CỦA GIÁO VIÊN 68

TÀI LIỆU THAM KHẢO 69

Trang 3

LỜI NÓI ĐẦU

Xuất phát từ thực tế tồn tại nhiều bài toán chưa có phương pháp giải chấp nhận được hay lời giải tối ưu, các nhà nghiên cứu đã đề xuất một phương pháp tính toán dựa trên quan sát về quá trình tiến hoá trong tự nhiên Phương pháp tính toán đó được gọi là Tính toán tiến hóa (Evolutionary Computation) Tính toán tiến hóa có nhiều nhánh nhỏ khác nhau, trong đó có thể kể tới ba lĩnh vực thu hút nhiều quan tâm của các nhà khoa học: Các chiến lược tiến hóa (Evolutionary Strategies), Lập trình tiến hóa (Genetic Programming) và Giải thuật di truyền (Genetic Algorithms)

Giải thuật di truyền đã thu hút được nhiều chú ý trong những năm gần đây Lớp giải thuật này đã được chứng minh là có nhiều ưu điểm nổi trội so với các loại thuật toán khác đặc biệt khi áp dụng chúng vào lớp bài toán tối ưu - một lớp bài toán khó và có nhiều ứng dụng trong đời sống thực tiễn Lớp giải thuật này mô phỏng quá trình tiến hóa trong tự nhiên có kế thừa, đấu tranh sinh tồn để cải tiến lời giải và khảo sát không gian lời giải nhằm tìm kiếm lời giải tối ưu Giải thuật di truyền thích hợp đối với các hệ thống phức tạp mà các phương pháp

cổ điển làm việc không hiệu quả, hay thậm chí không thể tìm ra được lời giải

Chính những ưu điểm nổi bật của GAs thúc đẩy em nghiên cứu về lớp giải thuật này và thực hiện đề tài:

Giải thuật di truyền và ứng dụng vào bài toán Lập Lịch Thi

Đề tài gồm có 4 chương:

Chương 1: Giới thiệu về Giải thuật di truyền

Chương này giới thiệu tổng quát về GAs, sơ lược về về quá trình phát triển

và phân tích sơ lược về ưu, nhược của GAs và các thành phần chi tiết của GA

Chương 2: Giới thiệu về bài toán Lập Lịch Thi Chương này giới thiệu chi tiết bài toán Lập lịch thi theo tín chỉ (module)

Chương 3: Sử dụng GAs giải quyết bài toán LLT Chương này mô tả bài toán lập lịch thi chi tiết hơn và hướng giải quyết bài toán sử dụng GAs

Chương 4: Các thử nghiệm với GA cho bài toán AI/CS Chương này giới thiệu các kết quả mà các nhà nghiên cứu đi trước đã thu được Qua đó chúng ta

có thể thấy được ưu điểm của GAs để giải quyết các bài toán tối ưu khó nói chung và các bài toán lập lịch thi nói riêng

Thái Nguyên tháng 05 năm 2008

Trang 4

CHƯƠNG 1 GIỚI THIỆU VỀ GAs

1.1 Tổng quát

Từ lâu những người làm tin học đã rất quen thuộc với công thức:

Chương trình = giải thuật + cấu trúc dữ liệu

Trong đó giải thuật được định nghĩa là một dãy tuần tự hữu hạn các bước

mà chương trình bắt buộc phải thực hiện để sinh ra kết quả mong muốn Trong những thập niên gần đây, người ta bắt đầu quan tâm đến cách giải các bài toán dựa trên qui luật tiến hóa của tự nhiên (thường sử dụng trong các bài toán lớn, phức tạp, đặc biệt là các bài toán tối ưu) Các chương trình đó được gọi là các chương trình tiến hóa (Evolution Program - EP), đó là các chương trình có sử dụng các giả thuật đặc biệt dựa trên nguyên lý tiến hóa của tự nhiên Các nhà khoa học đã đưa ra một công thức mới trong việc xây dựng các chương trình:

EP = Giải thuật di truyền + cấu trúc dữ liệu

Chương trình tiến hóa được Rechenberg giới thiệu và những năm 1960 trong cuốn Evolution Strategies Ý tưởng của ông sau này được nhiều nhà khoa học kế thừa và phát triển Còn giải thuật di truyền (Genetic Algorithm - GAs) được ra đời sau, xuất hiện vào những năm 1970 do John Holland đề xuất

Tác giả Holland đã đề ra 2 mục tiêu:

(1) Nâng cao hiểu biết về quá trình thích nghi với tự nhiên

(2) Thiết kế hệ thống nhân tạo có các đặc tính tương tự với hệ thống tự nhiên GAs là một lớp giải thuật được sử đụng để tìm kiếm lời giải tốt nhất cho bài toán, đặc biệt các bài toán khó, nhờ việc áp dụng nguyên lý của thuyết tiến hóa của khoa học máy tính GAs có thể không tìm được giải pháp tối ưu, nhưng sẽ đưa ra lời giải tương đối tốt trong điều kiện thời gian và không gian cho phép GAs là một phương pháp tính toán thích hợp cho việc giải quyết các bài toán tìm kiếm và tối ưu

Trong lĩnh vực nghiên cứu GAs người ta thường sử dụng các thuật ngữ vay mượn của di truyền học như: cá thể, nhiễm sắc thể (NST), gen, quần thể, độ thích

nghi, lai ghép, đột biến, tái sinh, v.v… Trong đó cá thể (individuals, genotypes,

structure) biểu diễn một lời giải của bài toán (lời giải này có thể sai), trong giải

Trang 5

thuật di truyền thì một cá thể chỉ có một NST, khác với cá thể trong tự nhiên vậy

nên một cá thể cũng có thể được gọi là một NST (Chromosome) Các NST là một chuỗi tuyến tính các đơn vị nhỏ hơn đó là các gen (Gene), mỗi gen biểu diễn cho một đặc trưng và có một vị trí nhất định trong NST Quần thể

(population) là một tập hợp nhiều cá thể có số lượng hữu hạn xác định, trong

GAs quần thể là một tập các lời giải (có thể gồm có cả lời giải sai) Chọn lọc (selection), lai ghép (crosorver), đột biến (mutation), và tái sinh (generation) là

các phép toán thực hiện trên quần thể để tạo ra quần thể mới

Một bài toán được giải bằng giải thuật di truyền thông thường phải trải qua các bước:

 Biểu diễn di truyền cho lời giải của bài toán: biểu diễn bằng chuỗi nhị phân, số thập phân, ký tự……

 Khởi tạo quần thể ban đầu gồm có 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 lời giải theo độ thích nghi của chúng

 Xác định kích thước quần thể, xác suất lai, xác suất đột biến…

 Xây dựng các phép toán di truyền: lai ghép, đột biến, tái sinh, chọn lọc

1.2 Sơ lược Lịch sử phát triển

Vào những năm 1950 và 1960 một số nhà khoa học nghiên cứ các hệ thống tiến hóa độc lập nhau với ý tưởng là tiến hóa có thể được sử dụng như một công

cụ tối ưu hóa cho các bài toán kỹ thuật Ý tưởng trong tất cả các hệ thống liên quan tới một quần thể các lời giải cho một bài toán cho trước, sử dụng các toán

tử bắt nguồn từ biến đổi gen và lựa chọn tự nhiên

Vào những năm 1960, Rechenberg giới thiệu “các chiến lược tiến hóa”, một phương pháp được ông sử dụng để tối ưu hóa các tham số thực cho các thiết bị như máy bay Ý tưởng này được tiếp tục phát triển sau đó bởi Schwefel Lĩnh vực các chiến lược tiến hóa vẫn là một lĩnh vực nghiên cứu được quan tâm nhiều, hầu như phát triển độc lập với lĩnh vực giải thuật di truyền, nhưng gần đây 2 lĩnh vực này bắt đầu có sự tương tác rõ nét hơn Owens và Walsh (1966) đã phát triển

“Lập trình tiến hóa” một kỹ thuật trong đó các lời giải cho một bài toán cho trước được biểu diễn dưới dạng các máy có trạng thái xác định, các máy này “tiến hóa”

Trang 6

nhờ đột biến (biến đổi) ngẫu nhiên các biểu đồ biến đổi trạng thái của chúng và chọn những trạng thái tốt nhất Các chiến lược tiến hóa, lập trình tiến hóa và giải thuật di truyền cùng nhau tạo thành xương sống cho tính toán tiến hóa

GAs được phát minh bởi John Holland trong những năm 1960 và được phát triển bởi Holland với các sinh viên và đồng nghiệp của ông ở đại học Michigan Trong những năm 1960 và 1970 Không giống như các chiến lược tiến hóa và lập trình tiến hóa, mục tiêu ban đầu của Holland là thiết kế các thuật toán để giải quyết những bài toán cụ thể, nhưng sau đó từ những nghiên cứu hiện tượng thích nghi xảy ra trong tự nhiên và để phát triển các phương pháp sử dụng các thích nghi như trong tự nhiên ông thấy rằng chúng có thể được tích hợp trong máy tính

Cuốn sách của Holland xuất bản năm 1975: “Thích nghi trong tự nhiên và các hệ thống nhân tạo” giới thiệu giải thuật di truyền như là một khái niệm của tiến hóa sinh học và đưa ra một nền móng lý thuyết cho tính thích nghi trong GAs Giải thuật di truyền của Holland là một phương pháp để di chuyển từ một quần thể các NST sang một quần thể khác nhờ sử dụng một kiểu lựa chọn tự nhiên cùng với các toán tử lai ghép, đột biến và đảo ngược Mỗi NST gồm các gen, mỗi gen là một thể hiện của một alen cụ thể Toán tử lựa chọn chọn những NST trong quần thể mà chúng cho phép sinh sản, và nói chung các NST thích nghi tốt hơn tạo ra nhiều con hơn những NST có độ thích nghi thấp hơn Lai ghép là sự trao đổi những thành phần con của 2 NST, nó tương đối giống quá trình lai ghép của 2 cá thể trong tự nhiên; sự đột biến ngẫu nhiên thay đổi các giá trị alen của một số vị trí trong NST; và sự đảo ngược duy trì thứ tự của một phần

kề của NST, do đó sắp xếp lại thứ tự mà các gen được sắp đặt trước đó

Việc đưa vào khái niệm quần thể của Holland cùng với các khái niệm lai ghép, đảo ngược và đột biến thực sự là một cuộc cách mạng Các chiến lược tiến hóa của Rechenberg sử dụng quần thể với 2 cá thể, một cha/mẹ và một con, con được đột biến đảo ngược so với cha/mẹ; một quần thể có nhiều cá thể và có sự lai ghép đã không được đề cập lúc đầu Lập trình tiến hóa của các tác giả Fogel, Owens và Walsh cũng tương tự chỉ sử dụng đột biến để tăng tính đa dạng Hơn thế Holland là người đầu tiên cố gắng đặt sự tính toán tiến hóa trên nền tảng lý

Trang 7

thuyết vững chắc Cho tới gần đây nền tảng lý thuyết này, dựa trên khái niệm sơ

đồ (schemas) là cơ sở cho hầu hết các thành tựu lý thuyết sau này về GAs

1.3 Sơ lược về ưu và nhược của giải thuật di truyền

GAs được chú ý nhiều về mặt ứng dụng của nó trong các bài toán tối ưu phức tạp GAs đã được ứng dụng trong rất nhiều lĩnh vực khác nhau: khoa học tự nhiên, khoa học xã hội, kinh tế - tài chính, giáo dục… Những ứng dụng này có thể được chia như sau:

 Tìm mô hình tối ưu cho bài toán Đây có thể được xem là mặt mạnh nhất của GAs, các ứng dụng phổ biến như: tối ưu hàm số, tối ưu hóa

cơ sở dữ liệu, tối ưu trong hóa học…

 Chọn lựa các nhóm hay thành phần trong một tổ chức

 Hoạch định lộ trình, qui trình Các ứng dụng phổ biến thuộc mảng này như: điều khiển mạng lưới đèn giao thông, lập thời khóa biểu… GAs được ứng dụng rộng rãi là do có nhiều ưu điểm nổi bật:

 GAs là giải thuật rất mạnh và có thể giải quyết thành công một lượng lớn các bài toán có độ phức tạp cao

 Là phương pháp tìm kiếm tạo được sự cân đối đáng kể giữa việc khai thác vào khảo sát không gian tìm kiếm

 GAs thực hiện tiến trình tìm kiếm lời giải tối ưu theo nhiều hướng, duy trì và xử lý một tập các lời giải, thúc đẩy sự hình thành và trao đổi thông tin giữa các hướng này Điều này giúp giảm khả năng gặp cực tiểu địa phương

 Thích hợp cho bài toán tìm kiếm trong không gian lớn nhưng lại hạn chế về thời gian và chi phí

Mặc dù GAs mới được xuất hiện trong thời gian gần đây nhưng đã có những thành tựu nổi bật trong cả lý thuyết và ứng dụng Đặc biệt người ta có thể kết hợp GAs và các giải thuật khác để tạo nên một cơ chế điều khiển tự động nhiều tầng, cho phép giải những bài toán tối ưu phức tạp nhanh chóng với độ chính xác chấp nhận được

Trang 8

Bên cạnh những ưu điểm nổi bật thì GAs cũng có nhiều hạn chế Nhược điểm lớn nhất của GAs là tốc độ hội tụ chậm Sở dĩ có điều này là do sự kém hiệu quả của các phép toán lai ghép và đột biến Trong các toán tử này các NST được tạo ra đôi khi rất kém hiệu quả Do vậy mà quá trình tiến hóa của quần thể

sẽ bị chậm lại Sự kém hiệu quả của 2 phép toán vừa đề cập là do chúng xây dựng các NST mới dựa trên yếu tố ngẫu nhiên và không cần quan tâm tới hiệu quả của chúng

1.4 Sơ đồ tổng thể của GAs

GAs có thể được mô tả tổng quát như sau:

Bắt đầu

t = 0;

Khởi tạo quần thể P(t);

Tính giá trị thích nghi cho các cá thể của P(t);

Khi (điều kiện dừng chưa thỏa) lặp:

Trang 9

Quá trình hoạt động của GAs có thể được biểu diễn bởi lưu đồ

Chọn lọc

Trang 10

1.5 Các cách biểu diễn trong giải thuật di truyền

Để giải giải bài toán bằng GAs, trước hết phải tìm được cách biểu diễn di truyền cho lời giải của bài toán - biểu diễn NST Có nhiều phương pháp biểu diễn khác nhau, nhưng cần dựa vào nội dung, yêu cầu, những tri thức của bài toán cũng như yêu cầu đặt ra về tốc độ, lưu trữ….để lựa chọn cách biểu diễn phù hợp

Dưới đây là những cách biểu diễn NST thông dụng:

1.5.1.1 Biểu diễn bằng chuỗi nhị phân

Đây là phương pháp đầu tiên và cũng là phương pháp biểu diễn có tính truyền thống trong GAs Theo phương pháp này, mỗi gen của NST được mã hóa bởi một số lượng bit nào đó Một cá thể b có thể được biểu diễn

b = b1, b2, …, bn với bj  {0, 1} và n là độ dài chuỗi

Cách biểu diễn này có nhược điểm là độ chính xác không cao khi số bit dùng để biểu diễn nhỏ Muốn tăng độ chính xác thì phải tăng số lượng bit dùng

để biểu diễn Tuy nhiên điều này làm chậm thuật toán, tính chính xác có thể không được như mong muốn

1.5.1.2 Biểu diễn bằng số nguyên

Trong một số bài toán, phương pháp biểu diễn bằng chuỗi nhị phân không phù hợp thì người ta có thể sử dụng phương pháp này Ví dụ với bài toán người

du lịch, nếu như mã hóa một thành phố bởi một chuỗi bit cần [logn2], trong đó n

là số thành phố cần đi Với n = 20, cần 5 bit để mã hóa Khi đó có một chuỗi bit không tương ứng với thành phố nào cả (10101), nói cách khác nó nằm ngoài không gian tìm kiếm Một phương pháp có thể được sử dụng thay thế, khắc phục nhược điểm này là dùng số nguyên

Một véc tơ v = (i1, i2, …, in) biểu diễn một đường đi, xuất phát từ i1 qua i2,

…, rồi đến in và trở về i1 các số ii là các số nguyên Chúng ta có thể thấy rằng v

là một hoán vị của n thành phố trong không gian tìm kiếm

Trang 11

Ví dụ dùng 3 bit biểu diễn cho 8 thành phố, ta có thể thu được:

1.5.1.3 Biểu diễn bằng số thập phân

Mỗi NST được mã hóa thành một véc tơ số dấu phẩy động cùng chiều với chiều dài của véc tơ lời giải:

b = (x1, x2, …., xn)

Cách biểu diễn này có ưu điểm là khắc phục được nhược của cách biểu diễn

sử dụng xâu nhị phân, tuy nhiên độ chính xác còn phụ thuộc vào khả năng tính toán của phần cứng (số chữ số thập phân sau dấy phẩy), nhưng nói chung là tốt hơn cách biểu diễn nhị phân Mặc dù ta có thể tăng độ chính xác của biểu diễn nhị phân khi tăng thêm các bit, nhưng như thế thì làm cho tốc độ của giải thuật chậm một cách đáng kể Biểu diễn thực có khả năng biểu diễn được một miền rất lớn

Ví dụ: dùng 8 chữ số từ 1 đến 8 biểu diễn cho 8 thành phố: 1, 2, 3, 4, 5, 6, 7, 8

1.5.1.4 Biểu diễn bằng chữ cái

Phương pháp này biểu diễn các NST bởi các chuỗi ký tự Ví dụ của phương pháp này là phương pháp mã hóa các qui tắc ngữ pháp tác giả Hiroaki Kitano, trong đó sử dụng GAs để rút ra tập các luật cơ bản gọi là ngữ cảnh của ngữ pháp

Trang 12

Ví dụ: dùng các chữ cái: A, B, C, D để biểu diễn cho 8 thành phố

Hàm thích nghi được sử dụng để tạo ra một hệ số thích nghi cho các cá thể

và cho cả quần thể Thông thường thì hệ số thích nghi càng cao có nghĩa là cá thể càng thích nghi tốt với môi trường, có nghĩa là khả năng sống sót qua các thế hệ sau càng tăng

Nhờ có hàm thích nghi mà GAs tuy mang tính chất ngẫu nhiên nhưng là ngẫu nhiên có định hướng, hàm thích nghi đóng vai trò định hướng cho lời giải

Trang 13

1.7 Các toán tử của GAs

Trong GAs thường sử dụng 4 loại toán tử di truyền chính nhằm sản sinh ra thế hệ kế tiếp: chọn lọc, lai ghép, đột biến và tái sinh

1.7.1 Chọn lọc

Toán tử chọn lọc là toán tử được thực hiện đầu tiên trong bốn toán tử của GAs Toán tử này chọn các NST theo thuyết tiến hóa của Darwin: NST tốt nhất

sẽ tồn tại và tạo ra các cá thể con mới Cơ chế chọn lọc phải đảm bảo các NST có

độ thích hợp tốt hơn sẽ có xác suất được chọn cao hơn và kết quả của toán tử chọn lọc không phụ thuộc vào các cách biểu diễn của NST Chọn lọc là một trong nhiều kỹ thuật làm tăng sự tiến hóa của loài

Có nhiều phương pháp chọn lọc khác nhau được sử dụng: chọn lọc tỷ lệ, chọn lọc xếp hạng, chọn lọc cạnh tranh…

 Chọn lọc tỷ lệ

Chọn lọc tỷ lệ (roulette wheel selection) là phương pháp chọn lọc sử dụng thủ tục quay Rullet được đề xuất bởi Holland Giải thuật chọn lọc tỷ lệ có thể được

mô tả như sau:

Bước 1: Tính giá trị thích nghi fi, i = 1, 2, …, n của n cá thể Sau đó tính

tổng giá trị thích nghi fsum = 

Bước 4: Lặp lại bước 2, và 3 cho đến khi số cá thể được chọn bằng n

Trang 14

Roulette Wheel

20.8

16.7 23.8 6.3 22.1 10.3

Trên đây là một ví dụ của chọn lọc tỷ lệ, trong đó mỗi cá thể được gán một phần của vòng tròn bánh xe Roulette Các số biểu diễn trong mỗi phần tương ứng với xác suất mỗi cá thể được chọn

Chọn lọc giá trị kỳ vọng/ trung bình

Chọc lọc tỷ lệ nhằm chọn ra những cá thể tốt nhất nhưng lại có thể thất bại trong các lần tái sinh kế tiếp và có thể dẫn đến những lỗi ngẫu nhiên Để khắc phục hạn chế này, một vài phương pháp cải tiến được kết hợp cùng với việc chọn lọc tỷ lệ được đề xuất Tác giải De Jong đã giới thiệu phương pháp chọn lọc giá trị kỳ vọng (Expected value selection) Trong phương pháp này số con được kỳ vọng của cá thể i được tính như sau: f i/ f , trong đó f là giá trị thích nghi trung bình trong quần thể hiện tại

Trong chọn lọc giá trị kỳ vọng cho một quần thể gồm n NST, số con kỳ vọng của NST thứ i được tính như sau:

f

f n

1

Khi đó, phần nguyên của Ni ký hiệu số các NST của thế hệ thứ i được duy

trì trong thế hệ kế tiếp Còn phần thập phân của Ni là xácsuất sống sót đến thế hệ

tiếp theo của cá thể i

Chọn lọc khi lấy mẫu (Detemenistic Sampling)

Xác suất chọn lọc được tính như sau:

1

Trang 15

Khi đó số con cháu ei trong mội chuỗi Ai được tính như sau: ei = n*pi Mỗi chuỗi sẽ cấp phát mội số con cháu tùy thuộc vào giá trị ei Những chuỗi còn lại cần phải điền vào cho đầy một quần thể thì sẽ được lấy ra theo thứ tự đầu quần thể được sắp xếp trước Trong phương pháp lấy mẫu lại có 2 phương pháp nhỏ khác:

 Lấy phần tử còn lại ngẫu nhiên có thay thế (Remainder Stochatic Samling with Replacement): Sau khi tính số con cháu ei trong phương pháp đã được chọn để lọc lấy mẫu trong giai đoạn trên thì phần nguyên của ei sẽ gán cho những cá thể có trong quần thể đó, còn phần thập phân của ei sẽ được sử dụng để tính trọng số cho việc lựa chọn trên vòng tròn bánh xe để sinh ra các thế hệ còn lại

 Lấu mẫu còn lại ngẫu nhiên không thay thế: (Remainder Stochatic Samling without Replacement): Phương pháp này cũng tương tự như trên nhưng phần thập phân của ei được xem như là xác suất Hay nói cách khác, số lần tham gia vào trong quá trình sinh sản của một chuỗi bằng với giá trị phần nguyên của ei Sau đó, để đảm bảo đủ kích thước quần thể, ta chọn những con cháu khác của những chuỗi với xác suất tương đương với phần thập phân của số cá thể kỳ vọng cho đến khi đạt được kích thước N

Chọn lọc xếp hạng (Rank Selection)

Phương Pháp chọn lọc xếp hạng sắp xếp cá thể dựa trên giá trị thích nghi của chúng Trong chọn lọc xếp hạng, quần thể được sắp xếp từ xấu nhất đến tốt nhất, cá thể xấu nhất sẽ có gá trị là 1, kế tiếp là 2, … Và cá thể tốt nhất có giá trị thích nghi là N (N là số NST trong quần thể)

Chọn lọc xếp hạng có hai phương pháp đó là: chọn lọc xếp hạng tuyến tính

và chọn lọc xếp hạng phi tuyến

 Chọn lọc xếp hạng tuyến tính: được đề xuất bởi Baker, trong đó mỗi cá thể trong quần thể được sắp xếp theo độ tăng dần của hệ số thích nghi và xác suất chọn lọc của mỗi cá thể i trong quần thể như sau:

Trang 16

Chọn lọc ưu tú (Elitist Selection)

Phương pháp chọn lọc ưu tú được De Jong giới thiệu Ý tưởng của phương pháp này như sau: một NST trong quần thể trước có hệ số thích nghi cao hơn so với mọi NST trong quần thể hiện tại thì cá thể đó được sao chép vào quần thể hiện tại

Phương pháp này có thể gia tăng tốc độ tối ưu của một quần thể bởi những NST tốt và do đó không những cải thiện được việc tìm kiếm cục bộ mà còn làm cho GAs được thực hiện một cách hoàn thiện hơn Tuy nhiên, cũng nên cẩn thận khi sử dụng phương pháp này vì nó cũng có thể dẫn đến sự hội tụ sớm

Chọn lọc cạnh tranh (Tounament Selection)

Trong chọn lọc cạnh tranh, mỗi lần lặp chọn ngẫu nhiên k NST và so sánh NST tốt nhất trong k NST đó được sao chép vào quần thể cha mẹ Quá trình được tiến hành N lần (N là số NST) Rõ ràng ta thấy nếu k lớn sẽ tăng thời gian tính toán, giá trị k còn được gọi là kích thước cạnh tranh, thông thường k =2

1.8 Lai ghép

Trong GAs, lai ghép là một toán tử di truyền được sử dụng để hình thành NST mới trên cơ sở các NST cha mẹ bằng cách ghép các đoạn gen của hai hay nhiều NST cha mẹ lại với nhau Lai ghép nhằm tạo ra các cá thể mới ở thế hệ sau tiến hóa hơn các cá thể cha mẹ Toán tử lai ghép có ảnh hưởng lớn tới tốc độ hội

tụ của giải thuật

Tuy nhiên không giống như toán tử chọn lọc, một số toán tử lai ghép chỉ hoạt động được với sơ đồ biểu diễn (mã hóa) NST bởi số thực

Dưới đây là một số kỹ thuật lai ghép

Trang 17

Chọn trên chuỗi cơ thể cha mẹ 2 điểm, 2 điểm này chia chuỗi cha mẹ làm

3 vùng dữ liệu riêng biệt Sau đó đem vùng 2 (vùng ở giữa) của chuỗi cha hoán đổi cho vùng 2 của chuỗi mẹ, ta sẽ thu được con

1.8.3 Cắt và nối

Đây là một phương pháp lai ghép khác, kết quả chuỗi con thu được có chiều dài khác với chuỗi cha mẹ Chuỗi cha mẹ được lựa chọn 2 vị trí lai ghép khác nhau,

do vậy mà chuỗi con có chiều dài khác nhau Tiến hành chọn ở chuỗi cha 2 điểm có

vị trí khác nhau, mỗi điểm chia chuỗi tương ứng thành 2 vùng dữ liệu Cắt lấy vùng

1 của chuỗi 1 ghép với vùng 2 của chuỗi 2 và đem vùng 2 của chuỗi 1 ghép với vùng 1 của chuỗi 2 ta được 2 con có chiều dài khác chiều dài bố mẹ

1.8.4 Lai ghép đồng bộ và lai ghép bán đồng bộ

Trong lai ghép đồng bộ (Uniform scheme - UX), người ta tạo ngẫu nhiên một “mặt nạ” Tùy theo giá trị các bit tương ứng trên mặt nạ mà bit của cha mẹ thứ nhất hay thứ 2 sẽ được sao chép sang cá thể con Các bit được trao đổi với một xác suất cố định, thường được chọn là 0.5 Trong mặt nạ lai ghép (Crossover Mask) nếu là bit 1 thì gen của con sẽ được sao chép từ cha/mẹ thứ nhất, và ngược lại, nếu là bit 0 thì gen sẽ được sao chép từ cha/mẹ thứ 2, như mô tả dưới đây:

Mặt nạ lai ghép: 1 0 0 1 0 1 1 1 0 0

Cha/mẹ thứ 1: 1 0 1 0 0 0 1 1 1 0

Con thứ 1: 1 1 0 0 0 0 1 1 1 1

Cha/mẹ thứ 2: 0 1 0 1 0 1 0 0 1 1

Trang 18

Quá trình này được lặp lại với các cha mẹ khác để tạo ra các con cháu khác Một mặt nạ lai ghép được tạo ngẫu nhiên cho mỗi cặp cha mẹ Vì vậy các con đều đảm bảo gồm sự pha trộn gen từ cha mẹ chúng

Trong sơ đồ lai ghép bán đồng bộ (Half Uniform Crossover Schemem HUX), các bit trong chuỗi được so sánh giữa hai cha mẹ và đúng một nửa số bit không giống sẽ được trao đổi

Ở đây nếu như toán tử lai ghép một điểm hay nhiều điểm được áp dụng cho các cá thể được tạo ra bởi hoán vị {1, 2, …, n} cho các bài toán hoán vị như bài toán người bán hàng, bài toán lập lịch thì cả hai con tạo ra một hoán vị giống nhau Để giải quyết vấn đề đó, người ta đưa ra một số phương pháp lai ghép khác

1.8.5 Lai ghép được ánh xạ từng phần

Kỹ thuật lai ghép được ánh xạ từng phần (Partially matched crossover - PMX) được tác giả Goldberg và Lingle đề xuất PMX được cải tiến từ phương pháp lai ghép 2 điểm Một chuỗi con được chọn bằng cách chọn ngẫu nhiên hai điểm cắt, được dùng làm hai giới hạn cho các thao tác hoán vị Mục đích của phương pháp này là thay thế một số gen nhưng giữ nguyên càng nhiều đoạn cấu trúc cha mẹ nếu có thể Ví dụ:

Cha/mẹ thứ nhất: 1 2 3 | 4 5 6 7 | 8 9

Cha/mẹ thứ hai: 7 4 8 | 6 3 2 9 | 1 4

Giả sử chọn hai điểm cắt là 3 và 8, tức chọn vị trí từ 4 tới 7 trên chuỗi cha/mẹ để thay đổi (như ví dụ sử dụng dấu | để đánh dấu) Ta sẽ thu được các con như sau:

Con thứ nhất: 1 * * | 6 3 2 9 | 8 *

Con thứ hai: * * 8 | 4 5 6 7| 1 *

Sau đó chúng ta thực hiện đối với các vị trí xung đột và thay thế những gen được đổi cho con khác Như ở ví dụ thay thế 9 vở NTS thứ 1 bởi 5 và thay thế 5 ở NST thứ 2 bởi 9 Thực hiện tương tự với các vị trí còn lại ta thu được con đầy đủ:

Con thứ nhất: 1 7 4 | 6 3 2 9 | 8 5

Con thứ hai: 2 3 8 | 4 5 6 7| 1 9

Trang 19

1.8.6 Lai ghép thứ tự

Kỹ thuật lai ghép thứ tự (Order Crossover - OX) được tác giả Davis đề xuất dựa vào ý tưởng là thứ tự của các thành phố quan trọng hơn vị trí của chúng trong chuỗi Tương tự như PMX, nó tạo ra các con bằng cách chọn một chuỗi con từ một cha mẹ và giữ nguyên thứ tự tương đối của các thành phố của cha mẹ kia

8 1 4 5 7 Thứ tự này được chèn vào con thứ nhất bắt đầu từ điểm cắt thứ hai, được:

1.8.8 Lai ghép vòng

Phương pháp lai ghép vòng (Circle Crossover - CX) phù hợp cho bài toán người du lịch và được tác giả Oliver đề xuất

Trang 20

1.8.9 Lai ghép tuyến tính mở rộng với số thực

Phương pháp này được thực hiện qua hai giai đoạn:

 Chọn một điểm cắt ngẫu nhiên trên chuỗi cơ thể cha mẹ tạo ra hai không gian con

 Thực hiện hai toán tử lai ghép tuyến tính trên các không gian con đó Khoảng mở rộng về hai phía của hai cá thể cha mẹ

Trang 21

1.9 Đột biến

Trong giải thuật di truyền, đột biến là một toán tử di truyền được dùng để duy trì tính đa dạng di truyền từ một thế hệ của một quần thể cho thế hệ tiếp sau Đột biến là sự biến đổi một hay nhiều gen của cá thể được chọn, nó tương tự như đột biến của sinh học

Mục đích của sự đột biến trong giải thuật di truyền là để giải thuật tránh gặp cực tiểu địa phương hay là hội tụ cục bộ

Cũng giống như lai ghép, toán tử này làm tăng nhanh quá trình hội tụ, nhưng có thể tăng một cách đột ngột và cũng có thể là không gây ra tác dụng nhiều Tùy thuộc vào cách biểu diễn NST mà có nhiều phương pháp đột biến khác nhau, từ đơn giản tới phức tạp Rất khó để kết luận rằng phương pháp nào là tối ưu nhất

Đối với cách biển diễn bằng bit, người ta có thể sử dụng một biến ngẫu nhiên cho mỗi bit trong chuỗi, và biến này sẽ quyết định bit đó được thay đổi hay không

Đối với cách biểu diễn bằng số nguyên, thì có một số phương pháp phổ

biến sau:

1.9.1 Đột biến chèn (Insertion Mutation)

Trong đột biến chèn, tiến hành chọn ngẫu nhiên một gen trong chuỗi NST

và sau đó chèn nó vào vị trí ngẫu nhiên

Ví dụ:

NST: 7 5 6 8 9 2 3 4 1

Đột biến: 7 5 3 6 8 9 2 4 1

1.9.2 Đột biến thay thế (Displacement Mutation)

Phương pháp này chọn ngẫu nhiên một chuỗi con trong chuỗi NST sau đó chèn nó vào vị trí ngẫu nhiên Đột biến chèn có thể được xem là trường hợp đặc biệt của đột biến thay thế, trong đó chuỗi được lựa chọn chỉ có một gen

Ví dụ:

NST: 7 5 6 8 9 2 3 4 1

Đột biến: 7 5 6 9 2 3 8 4 1

Trang 22

1.9.3 Đột biến đảo đoạn (Inversion Mutation)

Phương pháp đột biến đảo đoạn lựa chọn hai vị trí ngẫu nhiên trong chuỗi NST, sau đó đảo nghịch chuỗi giữa hai vị trí này

Ví dụ:

NST: 7 5 6 8 9 2 3 4 1

Đột biến: 7 5 6 3 2 9 8 4 1

1.9.4 Đột biến tương hỗ (Reciprocal Exchange Mutation)

Trong phương pháp này, chọn ngẫu nhiên hai vị trí trong chuỗi NST và sau

đó hoán vị gen trên những vị trí này

Ví dụ:

NST: 7 5 6 8 9 2 3 4 1

Đột biến: 7 5 3 8 9 2 6 4 1

1.9.5 Đột biến dịch chuyển (Shift Mutation)

Đột biến dịch chuyển tiến hành lựa chọn ngẫu nhiên một gen, sau đó dịch chuyển chúng đến mọt vị trí ngẫu nhiên sang trái hay phải trong NST

Ví dụ:

NST: 7 5 6 8 9 2 3 4 1

Đột biến trái: 7 5 6 8 9 3 2 4 1

Đột biến phải: 7 5 6 8 9 2 4 3 1

Các phương pháp đột biến cho không gian biểu diễn thực:

1.9.6 Đột biến ngẫu nhiên (đột biến đều)

Tiến hành Chọn ngẫu nhiên gen i của NST b = (x1, x2, …, xn), mỗi xi được thay bởi một giá trị ngẫu nhiên trong miền tham số tương ứng [ai, bi], xác suất đột biến của các xi là như nhau

1.9.7 Đột biến không đồng bộ (đột biến không đều)

Trong phương pháp này, tác động của đột biến có thể giảm the số thế hẹ của quần thể Giả sử tmax là số thế hệ tối đa cho trước Tương tự như đột biến ngẫu nhiên, mỗi xi được thay bởi một trong hai giá trị:

Trang 23

) ,

(

'

i i i

x     , nếu chữ số ngẫu nhiên là 0

) ,

(

''

i i i

x     , nếu chữ số ngẫu nhiên là 1

Trong đó hàm ( x t, )xác định được số bước đột biến trong miền [0, x] sao cho xác suất của ( x t, )gần bằng 0 sẽ tăng khi t tăng theo công thức sau:

x x

11 ) ,

Tron đó λ là một hệ số ngẫu nhiên trong khoảng [0,1], t là thế hệ đang khảo sát, r là tham số hệ thống xác định mức độ không đồng bộ, nghĩa là tham số r xác định ảnh hưởng của thế hệ t dựa vào sự phân phối của các bước đột biến trong miền [0, x]

Trang 24

1.11.2 Xác suất lai ghép

Xác suất lai ghép là xác suất mà mỗi cá thể trong quần thể có cơ hội được chọn để thực hiện lai ghép Nếu không lai ghép thì các con được sao chép nguyên bản từ cha mẹ của chúng Nếu có lai ghép thì các con được tạo ra từ một phần của cha mẹ của chúng Khi xác suất lai ghép là 1 hay 100% thì tất cả các con được tạo ra bởi lai ghép Ngược lại nếu xác suất lai ghép là 0 hay 0% thì tất cả các con được tạo ra bằng cách sao chép nguyên bản từ cha mẹ Việc xác định xác suất lai ghép là tùy thuộc vào bài toán và có tính chất kinh nghiệm

Thông thường thì xác suất đột biến nhỏ hơn xác suất lai ghép rất nhiều Theo như kết quả nghiên cứu của tác giả De Jong thì xác suất lai ghép trung bình

là 0.6 trong khi đó xác suất đột biến trung bình là 0.001 và 0.399 cho tái sinh

Trang 25

CHƯƠNG 2 GIỚI THIỆU VỀ BÀI TOÁN LẬP LỊCH THI

Như chúng ta đã biết, GAs là một nhóm phương pháp giải quyết bài toán nhờ sử dụng các thuật toán dựa theo quá trình tiến hóa theo lý thuyết tiến hóa của Darwin Trong GAs, kết quả của một tập lời giải khả thi cho bài toán (gọi là các NST) được đánh giá và sắp xếp, sau đó những lời giải mới được sinh ra bằng cách lựa chọn những lời giải khả thi làm cha mẹ và áp dụng các toán tử đột biến hay lai ghép để kết hợp các bit của 2 cha mẹ để sinh ra một hay nhiều con Tập lời giải mới được đánh giá, và chu kỳ như vậy lặp lại cho tới khi lời giải thỏa mãn yêu cầu được tìm thấy

2.1 Bài toán Lập Lịch Thi (LLT)

Một bài toán LLT là một dạng bài toán mà các sự kiện (môn thi) cần được sắp xếp vào một số khoảng thời gian (time slot) và tuân theo nhiều ràng buộc khác nhau Nhu cầu cần có những phương pháp giải bài toán LLT lớn là rất rõ

ràng, ví dụ như có e môn thi cần sắp xếp vào t khoảng thời gian khác nhau thì sẽ

có t e lời giải khả thi, mỗi lời giải có mức độ tối ưu khác nhau phụ thuộc vào các

ràng buộc của bài toán

Các phương pháp LLT thông thường quan tâm tới việc tìm thời gian biểu ngắn nhất thỏa mãn tất cả các ràng buộc, thường sử dụng thuật toán tô màu (graph-colouring algorithm) và ít quan tâm tới sự tối ưu với một tập các ràng buộc mềm Đó là tìm ra một tập các môn thi có thể sắp xếp vào cùng thời điểm, tương ứng với việc tìm ra một cách tô màu sao cho những điểm kề có màu khác nhau: mỗi màu biểu diễn một khoảng thời gian và mỗi cạnh biểu diễn một ràng buộc mà 2 đỉnh nối với nhau phải ở những khoảng thời gian khác nhau (có màu khác nhau) Các cách tiếp cận dựa tri thức hay dựa vào phép OR để giải những bài toán này rất khó có thể xây dựng, và thường không mềm dẻo Những ứng dụng lập lịch truyền thống thường chỉ thỏa mãn các ràng buộc đơn giản nhưng rất khó thỏa mãn các ràng buộc mềm Thường thì con người vẫn phải sắp xếp lại bằng tay xuất phát từ một lời giải có sẵn và thay đổi lời giải đó Điều này thường dẫn tới những lời giải tối ưu địa phương và gây ra bất lợi về tổ chức cũng như tài chính, kinh tế

Trang 26

Cách tiếp cận sử dụng GAs có thể giải quyết các ràng buộc cứng và mềm theo cùng một cách, hơn thế nữa, sử dụng cách tiếp cận được phát triển dưới đây khi thêm ràng buộc hay thay đổi độ quan trọng của ràng buộc ta chỉ cần thêm thành phần của hàm giá chứ không cần thay đổi thuật toán

Một ví dụ đơn giản về bài toán LLT có thể được phát biểu như sau:

Giải sử có 10 sinh viên (s1, …, s10) và 6 môn thi (e1, …, e6) vào 8 khoảng thời gian (t1, …, t8) sao cho t1-t4 ở ngày thứ 1 còn t5 -t8 ở ngày thứ 2 Mỗi ngày có

4 khoảng thời gian với 2 khoảng trong buổi sáng và 2 khoảng còn lại cho buổi chiều Mỗi sinh viên (viết tắt là SV) tham gia số môn thi khác nhau như trong bảng sau (bảng 1.1)

Bảng 1.1: Dữ liệu sinh viên - môn thi

Một bảng dạng 1.2 với mỗi khoảng được gán nhãn bởi số thứ tự

Trang 27

Các ràng buộc cho bài toán này là: một SV không thể tham gia 2 môn thi khác nhau ở cùng một khoảng thời gian và cố gắng tránh việc 1 sv tham gia 3 môn thi khác nhau trong cùng một ngày Cũng cần phải tránh việc 1 SV tham gia liên tục 2 môn thi trong 2 khoảng thời gian gần kề nhau Ánh xạ bài toán này vào bài toán tô màu trong hình 1.1, mỗi cạnh biểu diễn ràng buộc “không thi ở cùng thời điểm” Có nghĩa là e1e2, e1e4, e1e6, e2e4, e2e6 và e4e6 là các cạnh thu được từ thông tin về SV 1 tham gia các môn thi e1, e2, e4, e6 vậy nên không thể tham gia 2 môn thi ở cùng thời điểm

Hình 1.1: Mô phỏng sử dụng thuật toán tô màu đồ thị

Một thời gian biểu khả thi được cho bởi bảng 1.3, trong đó các môn thi e1,

e2, e3, e4, e5 và e6 được bố trí lần lượt tại các khoảng thời gian t1, t5, t2, t4, t7, t8

Bảng 1.3: Một thời gian biểu khả thi

Các bài toán LLT là các bài toán tính toán rất phức tạp và chúng thường có các đặc điểm phụ thuộc miền xác định (có nghĩa là một bài toán LLT cụ thể sẽ có

Trang 28

độ phức tạp phụ thuộc các chi tiết của miền xác định cụ thể) Vậy nên chúng có

xu hướng cần tới những thuật toán tối ưu có miền xác định không cụ thể Tuy nhiên GAs cung cấp một phương phương pháp tách biệt thuật toán tối ưu với miền tri thức và do vậy trả về một kết quả hứa hẹn trong lĩnh vực LLT, cũng như một số lĩnh vực khác Ưu điểm nổi bật của GAs là phân biệt miền xác định độc lập và kỹ thuật tối ưu rất mạnh (các toán tử đột biến, lai ghép áp dụng cho quần thể của các NST) từ các khía cạnh cụ thể về miền xác định của bài toán (hàm đánh giá của các NST)

Trong phần tiếp theo chúng ta sẽ nghiên cứu cách giải quyết bài toán ra sao

2.2 Các cách tiếp cho bài toán LLT và

Sơ lược lịch sử của bài toán LLT

2.2.1 Cách tiếp cận tìm kiếm ngẫu nhiên và tìm kiếm vét cạn

Kết quả của các phương pháp tìm kiếm ngẫu nhiên để giải quyết bài toán LLT sẽ là một hàm điển hình cho biết phần nào của không gian lời giải thực sự chứa lời giải tốt, thường thì tỉ lệ này rất thấp bởi vì những bài toán như vậy thường có những ràng buộc rất chặt chẽ, ví dụ các môn thi phải được lập lịch trong một khoảng thời gian ngắn và tất cả các ràng buộc mở rộng làm giảm tỉ lệ này Vậy nên việc sử dụng tìm kiếm ngẫu nhiên để đưa ra một LT tốt được ví như là tìm kim đáy bể Các kỹ thuật tìm kiếm heuristic truyền thống thường đưa

ra lời giải thỏa mãn với những bài toán LLT kích thước nhỏ Nhưng với những bài toán có kích thước không gian tìm kiếm lớn thì chúng không thể đưa ra lời giải thỏa mãn và thời gian tính toán là rất lớn Tìm kiếm heuristic truyền thống có thể mô tả khá giống với cách làm bởi các chuyên gia lập lịch thi Và hai cách này này cũng có thể gặp phải cực tiểu địa phương Chúng ta cũng biết rằng tìm kiếm vét cạn cũng là một phương pháp không khả thi cho các bài toán NP đầy đủ vì không gian tìm kiếm khổng lồ của chúng Một số cách tiếp cận thỏa mãn các ràng buộc thì xem một lời giải bất kỳ là lời giải tốt; chúng không sử dụng công

cụ đánh giá chất lượng nào ngoài các ràng buộc cứng Tuy nhiên có tồn tại những thuật toán chính xác cho bài toán LLT nhỏ ví dụ như thuật toán tô màu chính xác được giới thiệu bởi tác giải Korman Thuật toán này có thể dùng cho những bài

Trang 29

toán LLT nhỏ Sau đó tác giải Cangalovie và Schreuder đề xuất một thuật toán tô màu để giải quyết bài toán LLT với các môn thi có độ dài khác nhau với một không gian khá nhỏ Tuy nhiên những cách tiếp cận này nhanh chóng trở nên không khả thi về mặt tính toán khi mà kích thước bài toán tăng Trong lịch sử cũng có nhiều thuật toán khác được đề xuất Bởi vì không gian tìm kiếm khổng

lồ của bài toán mà tìm kiếm vét cạn không thể thỏa mãn được yêu cầu và hạn chế các thuật toán chính xác Các phương pháp liệt kê không tường minh hay là các phương pháp heuristic hiệu quả cũng đã thường được sử dụng cho bài toán LLT Những thuật toán này được miêu tả trong phần tiếp theo

2.2.2 Các cách tiếp cận vận trù học

2.2.2.1 Tìm kiếm liệt kê

Qui hoạch toán học: qui hoạch toán học (Mathematical Programming) là

một lớp kỹ thuật để tối ưu một hàm ràng buộc bởi những biến độc lập Tuy nhiên nó chỉ phù hợp với những bài toán LLT nhỏ Một số cách tiếp cận

như vậy trong LLT gồm: qui hoạch tuyến tính, qui hoạch nguyên

Qui hoạch động: qui hoạch động (Dynamic Programming) là một phương

pháp tìm kiếm liệt kê không tường minh, nó có thể được xem như là một kỹ thuật chia để trị Để giải bài toán chúng ta cần chia nhỏ nó ra làm nhiều bài toán con độc lập Khi mà không biết bài toán con nào cần phải giải đầu tiên thì chúng ta giải tất cả các bài toán con và giữ kết quả thu được để sử dụng trong lần tiếp theo Với các bài toán LLT lớn thì cách tiếp cận này không

hiệu quả

Nhánh và cận: nhánh và cận (Branch and Bound) cũng là một kỹ thuật liệt

kê không tường minh Phương pháp này bao gồm 2 thủ tục cơ bản: (tìm) nhánh là quá trình chia nhỏ bài toán lớn thành 2 hay nhiều bài toán con, và (tìm) cận là quá trình tính toán cận dưới của lời giải tối ưu của bài toán con đang giải Các thủ tục có thể biến đổi đa dạng phụ thuộc chủ yếu vào thủ tục tìm nhánh và việc sinh ra các cận Với những bài toán LLT lớn thì

những cách tiếp cận này cũng không hiệu quả

Trang 30

2.2.2.2 Tìm kiếm heuristic

Các luật heuristic nói chung: Vì hầu hết các bài toán LLT là NP đầy đủ

nên hầu như các kỹ thuật liệt kê không thể thỏa mãn yêu cầu bài toán trong khoảng thời gian chấp nhận được Vậy nên chúng ta phải sử dụng một số mẹo để quyết bài toán hiệu quả hơn, dù cho luật đó không đảm bảo một lời giải tối ưu Tác giả Werra đã nghiên cứu nhiều mô hình mạng và

lý thuyết đồ thị để cung cấp và giới thiệu một công thức mô hình cho bài toán LLT nhỏ Ông đã nói rằng các bài toán LLT thực tế không thể được giải với những mô hình đơn giản như vậy, tuy nhiên nhiều phương pháp heuristic đã được thiết kế dựa trên các phương pháp chính xác phát triển

từ các mô hình đơn giản như vậy Tác giải Carter sử dụng phương pháp tô màu heuristic, phương pháp này đã được áp dụng cho các bài toán LLT thực tế Tác giả Panwalkar và Iskander đã phân loại hơn 100 luật lập lịch

và cố gắng phân tích những ý tưởng từ các luật này

Mô phỏng luyện thép: công trình nghiên cứu của tác giả Kirkpatrick đã

thu hút nhiều chú ý tới mô phỏng luyện thép (Simulated Annealing - SA) Luyện thép là một quá trình nhiệt học để thu được chất rắn ở trạng thái năng lượng thấp trong một bể nhiệt (heat bath) Quá trình gồm 2 bước: đầu tiên tăng nhiệt độ của bể nhiệt tới giá trị tối đa để chất rắn tan chảy, tiếp theo giảm từ từ nhiệt độ của bể nhiệt cho tới khi các hạt tự sắp xếp tạo chất rắn SA có thể được xem là một thuật toán tìm kiếm địa phương, trong đó mục tiêu là chọn hướng di chuyển Thay vì luôn chọn hướng đi tốt nhất, cách này tạo ra leo đồi dốc nhất, SA ban đầu chọn hướng đi ngẫu nhiên hoặc bán ngẫu nhiên để cuối cùng tới lời giải tốt nhất Vậy nên việc chọn hướng đi được điều khiển bởi một số tham số tạm thời nào đó,

những biến này được gọi “nhiệt độ”, theo thuật ngữ trong luyện thép

Có rất nhiều ứng dụng của SA trong lịch sử phát triển của vận trù học Ví dụ như ứng dụng của các tác giả Eglese và Rand; Dowsland, nhưng họ xem xét bài toán LLT là bài toán không có lời giải thỏa đáng vậy nên họ đã phá vỡ một số ràng buộc Tác giả Abramson áp dụng SA

vào bài toán LLT sử dụng trên cả máy tuần tự và máy song song…

Trang 31

Tìm kiếm Tabu: Các dạng mới của tìm kiếm Tabu (Tabu Search - TS) hiện

nay có nguồn gốc từ kết quả nghiên cứu của Glover và Hansen Tác giả Glover và Laguna mô tả TS như sau: “TS có những tiền định trong phương pháp được thiết kế để vượt qua giới hạn khả thi hay là những tối

ưu địa phương thường được xem là những rào cản; áp đặt và giải phóng các ràng buộc một cách có hệ thống để cho phép việc xem xét các khu vực

bị cấm.” … “TS hầu như không liên quan tới việc tham chiếu tới những xem xét bình thường hay siêu nhiên mà thay vào đó quan tâm tới việc sử dụng các hạn chế để hướng dẫn quá trình tìm kiếm nhằm thỏa hiệp với những khu vực khó khăn”…Thực tế cho thấy các áp dụng của TS cho bài toán LLT cũng không thu được những kết quả thật sự tốt.

2.2.3 Cách tiếp cận sử dụng GAs

Tác giả Colorni xây dựng một LT cho một trường cấp 3 ở Ý sử dụng cách tiếp cận GAs và đó dường như là ứng dụng thành công đầu tiên của GAs trong lĩnh vực này Cách biểu diễn của họ gồm một bộ 5 thành phần: giáo viên, khoảng thời gian (giờ), một công việc (môn thi), một ma trận (LT) và một hàm cần phải cực đại Họ sử dụng một ma trận R để biểu diễn một LT Mỗi hàng là một giáo viên, mỗi cột là một giờ và mỗi thành phần của R là một môn thi Trong cách biểu diễn của họ, ràng buộc hàng luôn được thỏa mãn, tuy nhiên các ràng buộc cột có thể không khả thi vì có những giờ quá tải và giờ quá nhàn rỗi Do vậy họ

sử dụng các toán tử lọc (filtering operators) để giúp gải quyết những vấn đề này

Họ nhận thấy rằng các tiếp cận của họ có thể thỏa mãn tất cả các ràng buộc cứng của bài toán LLT cho trường cấp 3, và làm tiền đề để tiến tới thỏa mãn các ràng buộc mềm

Tác giải Davis giới thiệu một các tiếp cận kết hợp giữa GAs và thuật toán tham ăn để giải các bài toán tô màu đồ thị đơn giản, các bài toán này liên quan

khá mật thiết với bài toán LLT Chúng ta có thể xem xét một tập các sự kiện E làm các đỉnh của một đồ thị và một tập các khoảng thời gian T là màu (hay nhãn)

mà có thể được sử dụng để vẽ các đỉnh của đồ thị Chúng ta có thể biểu diễn ràng

buộc dạng “e i và e j không xẩy ra ở cùng một khoảng thời gian” thành một cạnh

Trang 32

tất cả các đỉnh sao cho 2 đỉnh nối trực tiếp không có cùng màu Các môn thi không được kết nối với nhau có thể được lập lịch ở cùng thời điểm nếu không có xung đột

Tác giả Abramson và Abela sử dụng một số thuật toán gắn kết trước một môn thi, giáo viên, phòng thành một bộ và sau đó xử lý bộ này sau Tiếp theo họ

sử dụng một biểu diễn NST trong đó các vị trí là các khoảng thời gian và các giá trị của một vị trí trong gen có thể nhận là một tập của các bộ mà có thể xẩy ra ở cùng một thời điểm Tuy nhiên cách biểu diễn này dẫn tới một vấn đề gọi là vấn

đề thay đổi nhãn (label replacement problem); vấn đề được hiểu như sau: toán tử lai ghép có thể dễ dàng dẫn tới việc sinh ra một LT bỏ qua quá nhiều môn thi cần được lập lịch Phải sử dụng một thuật toán thay đổi nhãn để sửa NST nhằm sinh

ra một LT có chứa tất cả các môn thi cần thiết và bỏ đi các môn thi bị lặp

Tác giả Chan sử dụng cách tiếp cận dùng mã hóa nhị phân, và chia hàm lượng giá làm hàm giá và một hàm phạt, hàm này biểu diễn việc phạt lần lượt các ràng buộc mềm và ràng buộc cứng Hàm thích nghi tổng chỉ là một bộ tổng tuyến tính của hàm giá và hàm phạt Sau đó ông sử dụng thuật toán sinh ràng buộc (constraint propagation algorithm), việc sinh một ràng buộc là việc giới hạn giá trị hợp lệ của một số biến, để cải thiện tính hiệu quả Tuy nhiên như đã chứng minh thì “một giá trị được sinh để thỏa mãn một LT trước có thể bị thay đổi ở lần sinh tiếp theo và gây ra phá vỡ những yêu cầu của LT trước đó” Vậy nên ông đã

sử dụng thêm một phương pháp lặp để lặp thuật toán một số lần, với hi vọng rằng

có thể thỏa mãn hầu hết ràng buộc

Tác giả Burke sử dụng thuật toán tô màu đồ thị để đưa ra một LT khả thi,

LT này thỏa mãn các ràng buộc cứng là không có SV nào tham gia 2 môn thi ở cùng thời điểm và các phòng thi cần phải đủ rộng đáp ứng chỗ ngồi cho số SV

Họ sử dụng một cách biểu diễn GAs giống như trong đề tài này để điều khiển việc tìm ra một LT khả thi Hàm lượng giá được sử dụng chỉ để điều khiển độ dài của LT, số xung đột thứ tự và số chỗ ngồi trong 1 phòng Để đạt tới độ khả thi của LT, các toán tử GA thông thường hầu như không thích hợp, vậy nên họ đã sử dụng các toán tử lai ghép “giảm vi phạm” (violation-healing) và đột biến phức tạp để đảm bảo tính khả thi của LT

Trang 33

Gần đây tác giả Paechter nghiên cứu việc sử dụng các biểu diễn không trực tiếp của bài toán LLT Trong một cách biểu diễn gián tiếp thì NST biểu diễn các chỉ lệnh (instructions) để xây dựng một LT chứ không biểu diễn một cách trực tiếp chính LT Paechter sử dụng một phương pháp đặt và tìm (place and seek); trong phương pháp này NST cho biết sự kiện nào cần phải được xếp lịch kế tiếp,

và cần đặt chúng vào đâu; nếu sự kiện không thể được xếp lịch mà không vi phạm ràng buộc cứng thì NST mã hóa (encode) tiếp theo sẽ đi tới đâu (trong một danh sách các khoảng thời gian và phòng hợp lệ) để tìm kiếm một vị trí mà có thể xếp sự kiện vào đó Cách tiếp cận này có thể tìm thấy một không gian con lọc

xa (far filter subspace), và sẽ tìm thấy một lời giải gần tối ưu hay tối ưu sau ít bước tính toán hơn Tuy nhiên vì phương pháp này không tìm kiếm toàn bộ không gian tìm kiếm nên không đảm bảo nó sẽ tìm được tối ưu toàn cục và dễ gặp phải tối ưu cục bộ

Cách tiếp cận của tác giải Fang, Corne và Ross sử dụng các NST trong đó, các vị trí là các sự kiện và các giá trị mà một vị trí gen (position gene) có thể nhận là một tập của các thời điểm bắt đầu, phòng hay giáo viên có thể liên quan

sự kiện đó Cách biểu diễn này có thể biểu diễn các LT mà không phải tất cả các khoảng thời gian đều được lấp đầy: Tuy nhiên điều này hoàn toàn hợp lệ và LT

đó hoàn toàn có thể là LT tốt Sử dụng cách biểu diễn này GAs không cần phải được sửa với một số thuật toán đắt đỏ và phức tạp như đã đề cập trong các phương pháp ở trên Các tác giả này sử dụng hàm phạt để đánh giá chất lượng của LT và xử lý tất cả các ràng buộc cứng và mềm gần giống nhau Các giá trị phạt tương đối có thể được chọn để phản ánh những nhận xét trực giác về độ quan trọng tương đối của các dạng ràng buộc khác nhau Hơn thế nữa, các tác giả

này cũng sử dụng một số toán tử đột biến “theo huớng vi phạm ràng buộc”

(constraint violation directed) để cải thiện chất lượng lời giải và tốc độ Ý tưởng chỉ đơn giản là theo dõi đóng góp của các cá thể vào sự vi phạm ràng buộc trong mỗi sự kiện trong quá trình lượng giá; thông tin này sau đó được sử dụng để hướng dẫn toán tử đột biến vị trí cần nó Các thông tin chi tiết hơn như là phân

bổ khoảng thời gian và các phòng học đồng thời và một số điều chỉnh sự vi phạm theo xác suất và các toán tử đột biến không liên quan sự kiện được giới thiệu trong các phần tiếp theo

Trang 34

CHƯƠNG 3 SỬ DỤNG GAs GIẢI QUYẾT BÀI TOÁN LLT

3.1 Phát biểu bài toán

Bài toán LLT đơn giản nhất có thể xem như một bài toán xếp v sự kiện (môn thi) vào s khoảng thời gian (time slots) Tổng quan hơn ta có định nghĩa sau:

Gọi E là tập hữu hạn của v sự kiện {e 1 , e 2 , …, e v} và

Gọi T là tập hữu hạn s khoảng thời gian {t 1 , t 2 , …, t s}

Gọi một sự sắp xếp (assignment) là một cặp có thứ tự (a,b) sao cho a є E và

b є T, và được hiểu đơn giản là sự kiện a xẩy ra vào khoảng thời gian b Bài toán LLT khi này được định nghĩa là việc xác định xem trong v sự sắp xếp, sự sắp xếp

3.2 Các loại ràng buộc

3.2.1 Ràng buộc cạnh

Chúng ta gọi các ràng buộc mà 2 sự kiện không thể cùng xẩy ra ở cùng khoảng thời gian là ràng buộc cạnh (edge contraint) Một cách suy nghĩ đơn giản

về ràng buộc này là xem xét sự tương đồng với bài toán tô màu đồ thị Theo sự

tương đồng này, chúng ta xét tập sự kiện E là tập đỉnh của đồ thị và tập khoảng thời gian T là tập các màu (hay nhãn) để tô các đỉnh của đồ thị Ràng buộc này có thể được biểu diễn bởi một cạnh giữa các đỉnh e và e, và bài toán LLT đơn giản

Ngày đăng: 03/08/2016, 16:03

HÌNH ẢNH LIÊN QUAN

1.4  Sơ đồ tổng thể của GAs - Giải thuật di truyển và ứng dụng vào bài toán lập lịch thi
1.4 Sơ đồ tổng thể của GAs (Trang 8)
Bảng 1.1: Dữ liệu sinh viên - môn thi - Giải thuật di truyển và ứng dụng vào bài toán lập lịch thi
Bảng 1.1 Dữ liệu sinh viên - môn thi (Trang 26)
Hình 1.1: Mô phỏng sử dụng thuật toán tô màu đồ thị - Giải thuật di truyển và ứng dụng vào bài toán lập lịch thi
Hình 1.1 Mô phỏng sử dụng thuật toán tô màu đồ thị (Trang 27)
Bảng 1.3: Một thời gian biểu khả thi - Giải thuật di truyển và ứng dụng vào bài toán lập lịch thi
Bảng 1.3 Một thời gian biểu khả thi (Trang 27)
Bảng 5.1: Phân bố các khoảng thời gian dùng cho kỳ thi - Giải thuật di truyển và ứng dụng vào bài toán lập lịch thi
Bảng 5.1 Phân bố các khoảng thời gian dùng cho kỳ thi (Trang 51)
Bảng 5.2: Thông tin về bài toán - Giải thuật di truyển và ứng dụng vào bài toán lập lịch thi
Bảng 5.2 Thông tin về bài toán (Trang 57)
Bảng  5.2  liệt  kê d ữ  liệu  thực  và  thông  tin  về bài  toán lập  lịch  thi  EDAI  AI/CS MSc 90/91, 91/92, 92/93 và MSc UG 93/94 - Giải thuật di truyển và ứng dụng vào bài toán lập lịch thi
ng 5.2 liệt kê d ữ liệu thực và thông tin về bài toán lập lịch thi EDAI AI/CS MSc 90/91, 91/92, 92/93 và MSc UG 93/94 (Trang 58)
Bảng 5.4 LT được tạo ra bởi con người 90/91 - Giải thuật di truyển và ứng dụng vào bài toán lập lịch thi
Bảng 5.4 LT được tạo ra bởi con người 90/91 (Trang 59)
Bảng 5.5: LT do con người xếp năm 91/92 - Giải thuật di truyển và ứng dụng vào bài toán lập lịch thi
Bảng 5.5 LT do con người xếp năm 91/92 (Trang 60)
Bảng 5.7: LT do GAs sinh ra cho bai toán MSc/ UG 93/ 94 - Giải thuật di truyển và ứng dụng vào bài toán lập lịch thi
Bảng 5.7 LT do GAs sinh ra cho bai toán MSc/ UG 93/ 94 (Trang 61)
Bảng 5.8: So sánh LT do GA sinh ra cho bài toán 90/91 - Giải thuật di truyển và ứng dụng vào bài toán lập lịch thi
Bảng 5.8 So sánh LT do GA sinh ra cho bài toán 90/91 (Trang 63)
Bảng 5.9: So sánh LT sinh ra bởi GA cho bài toán LLT 91-92 - Giải thuật di truyển và ứng dụng vào bài toán lập lịch thi
Bảng 5.9 So sánh LT sinh ra bởi GA cho bài toán LLT 91-92 (Trang 63)
Bảng 5.11: So sánh LT sinh ra bởi GAs cho bài toán LLT 92-93 - Giải thuật di truyển và ứng dụng vào bài toán lập lịch thi
Bảng 5.11 So sánh LT sinh ra bởi GAs cho bài toán LLT 92-93 (Trang 64)
Bảng 5.10: So sánh LT sinh ra bởi GAs cho bài toán LLT 92-93 - Giải thuật di truyển và ứng dụng vào bài toán lập lịch thi
Bảng 5.10 So sánh LT sinh ra bởi GAs cho bài toán LLT 92-93 (Trang 64)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w