1. Trang chủ
  2. » Công Nghệ Thông Tin

Giải thuật di truyền và ứng dụng vào bài toán lập thời khóa biểu

56 502 0

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

Nội dung

Mục đích chính của các thuật toán tìm kiếm lời giải là tìm ra lời giải tối ưu cho bài toán trong thời gian nhỏ nhất.. Do đó, cần thiết phải có những thuật giải tốt và sử dụng kỹ thuật tr

Trang 1

MỤC LỤC

DANH MỤC CÁC KÝ HIỆU, CÁC TỪ VIẾT TẮT 3

DANH MỤC CÁC BẢNG 4

DANH MỤC CÁC HÌNH 5

LỜI MỞ ĐẦU 6

CHƯƠNG 1 GIẢI THUẬT DI TRUYỀN TRONG KHAI PHÁ DỮ LIỆU 8

1.1 Quá trình khai phá dữ liệu và giải thuật di truyền (GA) 8

1.1.1 Quá trình khai phá dữ liệu 8

1.1.2 Giải thuật di truyền 11

Lịch sử phát triển giải thuật di truyền: 11

1.2 Các khái niệm cơ bản về GA 12

1.2.1 Nhiễm sắc thể 12

1.2.2 Quần thể, thế hệ, toán tử di truyền, tiến hóa 14

1.2.3 Hàm thích nghi 14

1.2.4 Chọn lọc 14

1.2.5 Lai ghép 17

1.2.6 Đột biến 19

1.2.7 Chiến lược nạp lại quần thể 20

1.3 Mô hình GA 22

1.4 Không gian tìm kiếm và điều kiện dừng của GA 23

1.4.1 Không gian tìm kiếm 23

1.4.2 Điều kiện dừng của GA 24

1.5 Đặc điểm và ứng dụng của GA 24

1.5.1 Đặc điểm của GA 24

1.5.2 Ứng dụng của GA 25

CHƯƠNG 2 BÀI TOÁN THUỘC LỚP NP 26

VÀ BÀI TOÁN LẬP THỜI KHÓA BIỂU 26

2.1 Lớp các bài toán NP 26

2.1.1 Một số khái niệm: 26

2.1.2 NP-khó và NP-đầy đủ 26

2.1.3 Tối ưu hóa đa mục tiêu 27

2.2 Bài toán lập thời khóa biểu 28

2.2.1 Một số khái niệm cơ sở 32

2.2.2 Mô hình bài toán 33

CHƯƠNG 3 XÂY DỰNG BÀI TOÁN THỜI KHOÁ BIỂU DỰA TRÊN GIẢI THUẬT DI TRUYỀN 37

3.1 Bài toán lập thời khóa biểu ở trường Cao đẳng Công nghệ và Kinh tế Hà Nội 37

3.1.1 Giới thiệu 37

3.1.2 Nội dung hoạt động nghiệp vụ 37

Trang 2

3.2 Áp dụng giải thuật di truyền vào bài toán lập thời khóa biểu 38

3.2.1 Các toán tử di truyền đối với bài toán hỗ trợ xếp thời khóa biểu 38

3.2.2 Thiết kế cơ sở dữ liệu 43

3.3 Cài đặt chương trình 50

3.4 Đánh giá kết quả thử nghiệm 50

KẾT LUẬN 53

TÀI LIỆU THAM KHẢO 54

Trang 3

DANH MỤC CÁC KÝ HIỆU, CÁC TỪ VIẾT TẮT

Trang 4

DANH MỤC CÁC BẢNG

BẢNG1: MÃ HÓA NHỊ PHÂN ĐỘ DÀI 20 BIT 12

BẢNG2: MÃ HÓA HOÁN VỊ 2 NST A&B 13

MÃ HOÁ HOÁN VỊ PHÙ HỢP CHO CÁC BÀI TOÁN LIÊN QUAN ĐẾN THỨ TỰ ĐỐI VỚI CÁC BÀI TOÁN NÀY, VIỆC THAO TÁC TRÊN CÁC NHIỄM SẮC THỂ CHÍNH LÀ HOÁN VỊ CÁC SỐ TRONG CHUỖI ĐÓ LÀM THAY ĐỔI TRÌNH TỰ CỦA NÓ MÃ HÓA HOÁN VỊ RẤT HỮU ÍCH VỚI CÁC BÀI TOÁN SẮP XẾP 13

BẢNG3: MÃ HÓA GIÁ TRỊ CÁC NST A, B, C 13

BẢNG4: MẶT NẠ LAI GHÉP ĐỒNG NHẤT 18

BẢNG 5: LAI GHÉP MỘT ĐIỂM CẮT MÃ HÓA HOÁN VỊ 19

BẢNG 6: PHÉP ĐẢO BIT MÃ HÓA NHỊ PHÂN 19

BẢNG 7: HOÁN VỊ THỨ TỰ MÃ HÓA HOÁN VỊ 20

BẢNG 8: THAY ĐỔI GIÁ TRỊ TRONG MÃ HÓA GIÁ TRỊ 20

BẢNG 9: BẢNG CHỈ SỐ 33

BẢNG 10: BẢNG KIỂM TRA RÀNG BUỘC VỀ PHÒNG 40

BẢNG 11: BẢNG KIỂM TRA RÀNG BUỘC VỀ GIẢNG VIÊN 40

BẢNG 12: BẢNG KIỂM TRA RÀNG BUỘC VỀ LỚP SINH VIÊN 41

Trang 5

DANH MỤC CÁC HÌNH

HÌNH 1: XÁC SUẤT CỦA MỖI NST THEO KIỂU LỰA CHỌN ROULET 15

HÌNH 2: LỰA CHỌN XẾP HẠNG 16

HÌNH 3: LAI GHÉP MỘT ĐIỂM CẮT MÃ HÓA NHỊ PHÂN 17

HÌNH 4: LAI GHÉP HAI ĐIỂM CẮT MÃ HÓA NHỊ PHÂN 17

HÌNH 5: LAI GHÉP ĐỒNG NHẤT MÃ HÓA NHỊ PHÂN 18

HÌNH 6: LAI GHÉP SỐ HỌC MÃ HÓA NHỊ PHÂN 18

HÌNH 7: CHIẾN LƯỢC NẠP LẠI HOÀN TOÀN 20

HÌNH 8: CHIẾN LƯỢC NẠP LẠI NGẪU NHIÊN 21

HÌNH 9: CHIẾN LƯỢC NẠP LẠI THEO MÔ HÌNH CÁ THỂ ƯU TÚ 21

HÌNH 10: SƠ ĐỒ MÔ TẢ GA 22

HÌNH 11: PHÂN LỚP TẠM THỜI CÁC BÀI TOÁN 27

HÌNH 12: MA TRẬN CÁ THỂ 39

HÌNH 13: LAI GHÉP 1 ĐIỂM CẮT 42

HÌNH 14: SƠ ĐỒ GIẢI THUẬT DI TRUYỀN ĐỀ XUẤT 43

HÌNH 15: NHẬP DANH MỤC QUẢN LÝ HÌNH THỨC BÀI HỌC 46

HÌNH 16: QUẢN LÝ DANH MỤC LOẠI PHÒNG HỌC 46

HÌNH 17: QUẢN LÝ DANH MỤC LỚP HỌC 47

SAU KHI CHỌN DANH MỤC “LỚP HỌC” Ở KHUNG BÊN TRÁI THÌ YÊU CẦU NHẬP NĂM HỌC, NGÀNH, KHÓA, TÊN LỚP, VIẾT TẮT TÊN LỚP 47

D DANH MỤC MÔN HỌC 47

HÌNH 18: QUẢN LÝ DANH MỤC MÔN HỌC 47

HÌNH 19: QUẢN LÝ DANH MỤC PHÒNG HỌC 48

HÌNH 20: QUẢN LÝ DANH MỤC TÒA NHÀ 48

HÌNH 21: QUẢN LÝ CHƯƠNG TRÌNH ĐÀO TẠO 49

HÌNH 22: CẬP NHẬT CHƯƠNG TRÌNH ĐÀO TẠO KHUNG 49

HÌNH 23: CỬA SỔ XẾP THỜI KHÓA BIỂU 50

Trang 6

LỜI MỞ ĐẦU

Hiện nay trong ngành khoa học máy tính, việc tìm kiếm lời giải tối ưu cho các bài toán là vấn đề luôn được các nhà khoa học đặc biệt quan tâm Mục đích chính của các thuật toán tìm kiếm lời giải là tìm ra lời giải tối ưu cho bài toán trong thời gian nhỏ nhất Các thuật toán như tìm kiếm không có thông tin, vét cạn (tìm kiếm trên danh sách, trên cây hoặc đồ thị ) hoặc các thuật toán tìm kiếm có thông tin được sử dụng nhiều trong không gian tìm kiếm nhỏ Đối với không gian tìm kiếm lớn, việc tìm kiếm các lời giải tối ưu cho bài toán gặp nhiều khó khăn Do đó, cần thiết phải có những thuật giải tốt và sử dụng kỹ thuật trí tuệ nhân tạo khi giải quyết các bài toán có không gian tìm kiếm lớn Thuật giải di truyền (Genetic Algorithm - GA) là một trong những kỹ thuật tìm kiếm lời giải tối ưu đã đáp ứng được yêu cầu của nhiều bài toán và ứng dụng Cùng với logic mờ, GA được ứng dụng rất rộng rãi trong các lĩnh vực phức tạp Sự kết hợp giữa GA và logic mờ đã chứng tỏ được hiệu quả trong các vấn đề khó mà trước đây thường được giải quyết bằng các phương pháp thông thường hay các phương pháp cổ điển, nhất là trong các bài toán cần có

sự lượng giá, đánh giá sự tối ưu của kết quả thu được Chính vì vậy, GA đã trở thành một trong những đề tài nghiên cứu thu hút được nhiều sự quan tâm và hiện nay đã và đang đem đến rất nhiều ứng dụng trong thực tiễn

Xuất phát từ thuyết tiến hóa muôn loài của Darwin, GA là một kỹ thuật chung giúp giải quyết vấn đề bài toán bằng cách mô phỏng sự tiến hóa của con người hay của sinh vật nói chung trong những điều kiện được qui định sẵn của môi trường GA là một thuật giải và mục tiêu của GA không nhằm đưa ra lời giải chính xác tối ưu mà là đưa ra lời giải tương đối tối ưu

John Holland (1975) và Goldberg (1989) đã đề xuất và phát triển GA, là thuật giải tìm kiếm dựa trên cơ chế chọn lọc và di truyền tự nhiên Thuật giải này sử dụng các nguyên lý di truyền về sự thích nghi và sự sống các cá thể thích nghi nhất trong

tự nhiên

Do tính hấp dẫn và tính thời sự của khai phá dữ liệu, đặc biệt là giải thuật di

truyền, tôi đã chọn đề tài “Giải thuật di truyền và ứng dụng vào bài toán lập thời

Trang 7

khóa biểu” làm luận văn cao học của mình Trong đó tập trung nghiên cứu các kỹ thuật lập lịch và chọn ra một kỹ thuật tiêu biểu đề thực hiện bài toán thời khóa biểu phục vụ công tác giảng dạy của trường, nơi tôi đang công tác.

Trang 8

Chương 1 GIẢI THUẬT DI TRUYỀN TRONG KHAI PHÁ DỮ LIỆU 1.1 Quá trình khai phá dữ liệu và giải thuật di truyền (GA)

1.1.1 Quá trình khai phá dữ liệu

Theo Bách khoa toàn thư Việt Nam, tri thức là “kết quả của quá trình nhận

thức của con người về đối tượng được nhận thức, làm tái hiện trong tư tưởng của con người những thuộc tính, những mối quan hệ, những quy luật vận động, phát triển của đối tượng và diễn đạt bằng ngôn ngữ tự nhiên hay hệ thống ký hiệu khác”.

Phát hiện tri thức là một quá trình bao gồm một dãy các bước lặp sau:

Dữ liệu là những mô tả về sự vật, con người và sự kiện trong thế giới thực

Dữ liệu bao gồm số, ký tự, văn bản, hình ảnh, đồ họa,…có một giá trị nào đó đối với người sử dụng và chúng được lưu trữ, xử lý trong máy tính

Theo liệu bách khoa toàn thư, “khai phá dữ liệu ” là khâu chủ yếu trong quá trình phát hiện tri thức từ dữ liệu để trợ giúp cho việc làm quyết định trong quản lý

Trang 9

Khai phá dữ liệu (Data Mining-DM) là một khái niệm ra đời vào những năm

cuối của thập kỷ 80 Nó bao hàm một loạt các kỹ thuật nhằm phát hiện ra các thông tin có giá trị tiềm ẩn trong các tập dữ liệu lớn (các kho dữ liệu) Về bản chất, khai phá dữ liệu liên quan đến việc phân tích các dữ liệu và sử dụng các kỹ thuật để tìm

ra các mẫu hình có tính chính quy (regularities) trong tập dữ liệu

Năm 1989, Fayyad, Piatestsky-Shapiro và Smyth đã dùng khái niệm Phát hiện tri thức trong cơ sở dữ liệu (Knowledge Discovery in Database – KDD) để chỉ toàn bộ quá trình phát hiện các tri thức có ích từ các tập dữ liệu lớn Trong đó, khai phá dữ liệu là một bước đặc biệt trong toàn bộ quá trình, sử dụng các giải thuật đặc biệt để chiết xuất ra các mẫu (pattern) (hay các mô hình) từ dữ liệu

Có nhiều kỹ thuật khác nhau được sử dụng để khai phá dữ liệu nhằm thực hiện hai chức năng mô tả và dự đoán Với mỗi chức năng thì có các kỹ thuật DM tương ứng với nó Không có kỹ thuật nào tốt để áp dụng chung cho mọi trường hợp

Kỹ thuật khai phá dữ liệu mô tả có nhiệm vụ mô tả các tính chất hoặc các

đặc tính chung của dữ liệu trong CSDL hiện có Một số kỹ thuật khai phá trong nhóm này là: phân cụm dữ liệu, tổng hợp, trực quan hoá, phân tích sự phát triển và

độ lệch,…

Kỹ thuật khai phá dữ liệu dự đoán có nhiệm vụ đưa ra các dự đoán dựa vào

việc suy diễn trên CSDL hiện thời Một số kỹ thuật khai phá trong nhóm này là: phân lớp, hồi quy, cây quyết định, thống kê, mạng nơron, luật kết hợp,…

Một số kỹ thuật phổ biến thường được sử dụng để khai phá dữ liệu hiện nay bao gồm:

1.Cây quyết định

Kỹ thuật cây quyết định là một công cụ mạnh và hiệu quả trong việc phân lớp

và dự báo Các đối tượng dữ liệu được phân thành các lớp Các giá trị của đối tượng

Trang 10

dữ liệu chưa biết sẽ được dự đoán, dự báo Tri thức được rút ra trong kỹ thuật này thường được mô tả dưới dạng tường minh, đơn giản, trực quan, dễ hiểu đối với NSD.

2.Phân lớp dữ liệu và hồi quy

Mục tiêu của phân lớp dữ liệu là dự đoán nhãn lớp cho các mẫu dữ liệu Quá trình gồm hai bước: xây dựng mô hình, sử dụng mô hình để phân lớp dữ liệu

Mô hình được sử dụng để dự đoán nhãn lớp khi mà độ chính xác của mô hình chấp nhận được

Phương pháp hồi quy tương tự như phân lớp dữ liệu Nhưng khác ở chỗ nó dùng để dự đoán các giá trị liên tục còn phân lớp dữ liệu dùng để dự đoán các giá trị rời rạc

3.Phân cụm dữ liệu

Mục tiêu của phân cụm dữ liệu là nhóm các đối tượng tương tự nhau trong tập dữ liệu vào các cụm, sao cho những đối tượng thuộc cùng một lớp là tương đồng nhau

4.Khai phá luật kết hợp

Mục tiêu của phương pháp này là phát hiện và đưa ra mối liên hệ giữa các giá trị dữ liệu trong CSDL Đầu ra của giải thuật luật kết hợp là tập luật kết hợp tìm được Phương pháp khai phá luật kết hợp gồm có hai bước:

Bước 1: Tìm ra tất cả các tập mục phổ biến Một tập mục phổ biến được xác định thông qua việc tính độ hỗ trợ và thoả mãn độ hỗ trợ cực tiểu

Bước 2: Sinh ra các luật kết hợp mạnh từ tập mục phổ biến, luật phải thoả mãn độ hỗ trợ và độ tin cậy cực tiểu

5 Mạng nơron

Đây là một trong những kỹ thuật DM được ứng dụng phổ biến hiện nay

Trang 11

Kỹ thuật này phát triển dựa trên một nền tảng toán học vững vàng, khả năng huấn luyện trong kỹ thuật này dựa trên mô hình thần kinh trung ương của con người

Kết quả mà mạng nơron học được có khả năng tạo ra các mô hình dự báo, dự đoán với độ chính xác và độ tin cậy cao Nó có khả năng phát hiện ra được các xu hướng phức tạp mà kỹ thuật thông thường khác khó có thể phát hiện ra được Tuy nhiên phương pháp mạng nơ ron rất phức tạp và quá trình tiến hành nó gặp rất nhiều khó khăn: đòi hỏi mất nhiều thời gian, nhiều dữ liệu, nhiều lần kiểm tra thử nghiệm

6.Giải thuật di truyền

Giải thuật di truyền là quá trình mô phỏng theo tiến hoá của tự nhiên Ý tưởng chính của giải thuật là dựa vào quy luật di truyền trong biến đổi, chọn lọc tự nhiên và tiến hoá trong sinh học

Giải thuật di truyền tuy không phải là kỹ thuật khai phá dữ liệu được triển khai mạnh nhất trong kinh tế - xã hội, nhưng nó có những lợi thế riêng, đặc biệt là trong ứng dụng trong ngành giáo dục với các bài toán lập lịch như sắp xếp thời khóa biểu Đây cũng là lý do mà đề tài tập trung nghiên cứu vào đó

1.1.2 Giải thuật di truyền

Lịch sử phát triển giải thuật di truyền:

Tính toán tiến hóa (Evolutionary computing) là các kỹ thuật tìm kiếm theo

xác suất có ý tưởng xuất phát từ nguyên lý “chọn lọc tự nhiên” trong học thuyết về

sự tiến hóa của Darwin, và các kỹ thuật về gen Các kỹ thuật này được áp dụng cho một quần thể bao gồm các cá thể nhân tạo, chúng chiến đấu trong cuộc đấu tranh sinh tồn trong đó các cá thể thích nghi nhất sẽ sống sót và cho phép sản sinh ra các

cá thể mới

Giải thuật di truyền (Genetic Algorithm) do John Holland phát minh và được

ông phát triển cùng với các đồng nghiệp và sinh viên vào những năm 1970 Cuốn sách " Sự thích nghi trong các hệ tự nhiên và nhân tạo” (Adaption in Natural and

Trang 12

Artificial Systems) xuất bản năm 1975 đã tổng hợp các kết quả của quá trình nghiên cứu và phát triển đó.

Năm 1992, John Koza đã dùng GA để xây dựng các chương trình giải quyết một số bài toán và gọi phương pháp này là "Lập trình di truyền" (Genetic Programming)

Năm 1996, thư viện các hàm C++ cho GA (GALib) đã được Mathew Wall, trường Đại học Massachussets (Massachusetts Institute of Technology) đưa ra.Đây

là các công cụ sử dụng giải thuật di truyền cho tối ưu hoá các chương trình có sử dụng sự biểu diễn hay các toán tử di truyền

1.2 Các khái niệm cơ bản về GA

1.2.1 Nhiễm sắc thể

Nhiễm sắc thể (NST) hay còn gọi là cá thể Các sinh vật sống đều cấu tạo từ các tế bào, và tất cả các tế bào này đều bao gồm một tập hợp các nhiếm sắc thể giống nhau Các NST này là một chuỗi các ADN, quy định đặc tính của cả cá thể Mỗi NST bao gồm rất nhiều GEN, mỗi gen quy định một trạng thái nào đó

Trong bài toán tối ưu, cá thể tương ứng với một lời giải tiềm tàng Việc mã hóa và giải mã gen, biến đổi giữa kiểu gen và kiểu hình được quyết định bởi tính

gặp sau:

1.2.1.1 Mã hóa nhị phân

Đây là cách mã hóa nhị phân phổ biến nhất.Mỗi một nhiễm sắc thể là một chuỗi bit nhị phân 0 & 1 Mỗi một bit có thể biểu diễn một đặc tính nào đó của lời giải, và số bit cần để mã hóa được tính toán hợp lý để chuỗi nhị phân không quá dài, mà chỉ vừa đủ cho biểu diễn thông tin cần thiết cho lời giải

Chronosome A 00110101000010111010Chronosome B 10111100110010001011

Bảng1: Mã hóa nhị phân độ dài 20 bit

Trang 13

Mã hoá nhị phân thường hay dùng trong các bài toán tối ưu các hàm một biến hay nhiều biến Khi đó, mỗi chuỗi nhị phân sẽ biểu diễn hàm tại một (tập) giá trị của (các) biến hoặc mỗi bộ chuỗi nhị phân sẽ biểu diễn một bộ nghiệm của hàm.

Mã hoá nhị phân tuy là phổ biến nhưng nó có một nhược điểm là có thể tạo

ra không gian mã hoá lớn hơn so với không gian giá trị của NST Do đó, với nhiều bài toán thì biểu diễn nhị phân là không hữu hiệu

1.2.1.2 Mã hóa hoán vị

Mỗi NST là một chuỗi hoán vị của các số (thường là số tự nhiên) để biểu diễn một trình tự nào đó

Chronosome A 4 7 9 3 2 1 8 6 5Chronosome B 9 6 5 1 4 3 2 7 8

Bảng2: Mã hóa hoán vị 2 NST A&B

Mã hoá hoán vị phù hợp cho các bài toán liên quan đến thứ tự Đối với các bài toán này, việc thao tác trên các nhiễm sắc thể chính là hoán vị các số trong chuỗi đó làm thay đổi trình tự của nó Mã hóa hoán vị rất hữu ích với các bài toán sắp xếp

1.2.1.3 Mã hóa giá trị

Mã hóa giá trị trực tiếp có thể được sử dụng trong các bài toán mà giá trị của nó

là các giá trị phức tạp nhất là số thực Sử dụng mã hóa nhị phân sẽ trở nên khó khăn Trong đó, mỗi NST là một chuỗi các giá trị Các giá trị có thể là các thông tin liên quan đến bài toán, từ số nguyên, số thực, kí tự cho đến các đối tượng phức tạp hơn

Trang 14

1.2.2 Quần thể, thế hệ, toán tử di truyền, tiến hóa

Quần thể (population) trong tự nhiên là một tập hợp các cá thể có cùng một

số đặc điểm nào đấy Trong giải thuật di truyền ta quan niệm quần thể là một tập các lời giải tiềm tàng của một bài toán

Khái niệm thế hệ (generation) gắn chặt với khái niệm quần thể Mỗi thế hệ được xác định bởi một quần thể chưa tham gia vào quá trình tiến hóa tiếp theo

Các toán tử di truyền (GA operator) là các toán tử thao tác đối với các cá thể nhằm tạo ra các cá thể mới

Quá trình tiến hóa (evolution) là việc áp dụng các toán tử di truyền đối với các cá thể, chuyển quần thể từ thế hệ này sang thế hệ tiếp theo, với một bộ phận cá thể hoặc toàn bộ quần thể đã được biến đổi

1.2.3 Hàm thích nghi

Trong tự nhiên, chỉ có những cá thể nào thích nghi được với môi trường thì mới tồn tại, không nó sẽ bị diệt vong GA đưa ra khái niệm hàm thích nghi, hay hàm sức khỏe để đánh giá một cá thể so với quần thể Dựa vào giá trị hàm thích nghi của mỗi cá thể, thuật toán di truyền mới có thể chọn lựa được các cá thể tốt cho các thế hệ sau Hàm thích nghi cũng là một tiêu chí đánh giá mức độ tiến hóa của quần thể

1.2.4 Chọn lọc

Dựa vào nguyên lý của quá trình chọn lọc và đấu tranh sinh tồn trong tự nhiên, chọn lựa các cá thể trong GA chính là cách chọn các cá thể có độ thích nghi tốt để đưa vào thế hệ tiếp theo hoặc để cho lai ghép, với mục đích là sinh ra các cá thể mới tốt hơn Tuy nhiên, quá trình chọn lọc mang rất nhiều yếu tố ngẫu nhiên Có nhiều cách để lựa chọn nhưng cuối cùng đều nhằm đáp ứng mục tiêu là các cá thể tốt sẽ có khả năng được chọn cao hơn

Có nhiều cách để lựa chọn các cá thể từ một quần thể Sau đây sẽ giới thiệu một số cơ chế hay áp dụng Để tiện mô tả các cơ chế lựa chọn luận văn đưa ra một

số kí hiệu sau:

Trang 15

- Cách biểu diễn các NST thứ i là vi

- Hàm tính độ thích nghi của NST vi là f(vi )

- Kích thước quần thể là pop_size

- Số NST cần chọn là N

1.2.4.1 Lựa chọn theo bánh xe Roulet

Trước khi lựa chọn thì tính các giá trị sau:

- Tính xác suất chọn pi cho mỗi NST vi : pi = f(vi) / F

Hình 1: Xác suất của mỗi NST theo kiểu lựa chọn Roulet

Cơ chế lựa chọn theo bánh xe Roulet được thực hiện bằng cách quay bánh xe Roulet N lần Mỗi lần chọn một NST từ quần thể hiện hành vào quần thể mới bằng cách sau:

- Phát sinh ngẫu nhiên một số r trong khoảng [0, 1]

- Nếu r < q1 thì chọn NST v1; ngược lại thì chọn NST thứ i (2 ≤ i ≤pop_size) sao cho qi-1≤ r ≤ qi

Với cơ chế lựa chọn như thế này thì có một số nhiễm sắc thể sẽ được chọn nhiều lần Điều này phù hợp với lý thuyết lược đồ: Các NST tốt nhất thì có nhiều bản sao, NST trung bình thì không đổi, NST kém thì chết đi

Hoặc lựa chọn kiểu bánh xe Roulet có thể mô tả theo thuật toán sau:

Trang 16

(1) [SUM] Tính tổng giá trị thích nghi S của tất cả các cá thể hay nhiễm sắc thể trong toàn quần thể.

(2) [SELECT] sinh một số ngẫu nhiên trên đoạn (0 S) ta được r

(3) [LOOP] duyệt lại toàn bộ quần thể, tính tổng hàm thích nghi từ 0, ta gọi

là s Khi nào s > r thì ta dừng lại với nhiễm sắc thể hiện tại

1.2.4.2 Lựa chọn xếp hạng

Theo cơ chế lựa chọn trên khi sự khác biệt giữa các hàm thích nghi lớn,các NST có độ thích nghi kém sẽ rất ít có cơ hội được lựa chọn, nhất là khi có các NST tốt có độ thích nghi trên 90%

Cơ chế lựa chọn xếp hạng được mô tả như sau:

- Sắp xếp các NST trong quần thể theo độ thích nghi từ thấp đến cao

- Đặt lại độ thích nghi cho quần thể đã sắp xếp theo kiểu: NST thứ nhất có độ thích nghi là 1, nhiễm săc thể thứ hai có độ thích nghi là 2, v.v…, NST thứ pop_size

Trang 17

- Lấy một số NST trong quần thể ra để chọn, NST có độ thích nghi cao nhất được chọn.

- Lặp lại thao tác trên N lần

1.2.5 Lai ghép

Lai ghép trong tự nhiên là sự kết hợp các tính trạng của bố mẹ để sinh ra thế

hệ con Trong giải thuật di truyền, lai ghép được coi là một sự tổ hợp lại các tính chất (thành phần) trong hai hoặc nhiều cá thể cha mẹ nào đó để sinh ra một cá thể mới mà có đặc tính mong muốn là tốt hơn cá thể cha mẹ Đây là một quá trình xảy

ra chủ yếu trong giải thuật di truyền

Tùy theo cách mã hóa NST mà có các những cách lai ghép khác nhau:

1.2.5.1 Lai ghép theo mã hóa nhị phân

- Lai ghép một điểm cắt (One Points Crossover)

+ Điểm cắt là một gen vị trí ngẫu nhiên k trên NST

+ Cá thể con có phần đầu đến gen thứ k giống hệt cha, phần còn lại giống hệt mẹ

Hình 3: Lai ghép một điểm cắt mã hóa nhị phân

- Lai ghép 2 điểm cắt

+ Hai điểm cắt sẽ được chọn ngẫu nhiên

Hình 4: Lai ghép hai điểm cắt mã hóa nhị phân

- Lai ghép đồng nhất

Trang 18

+ Chuỗi nhị phân của con sẽ được lai ghép ngẫu nhiên hoặc từ mẹ hoặc từ cha Hay nói cách khác, ta sẽ xây dựng một mặt nạ lai ghép Nó cũng là một chuỗi nhị phân các bit 0&1.

+ Duyệt mặt nạ: ở vị trí bit mặt nạ = 1 thì gen ở vị trí tương ứng của mẹ được lai ghép cho con, nếu bit mặt nạ = 0 thì gen ở vị trí tương ứng của cha được lai ghép cho con

Hình 5: Lai ghép đồng nhất mã hóa nhị phân

Cụ thể hơn ta có bảng sau:

Bảng4: Mặt nạ lai ghép đồng nhất

- Lai ghép số học: Cá thể con được sinh ra bằng một phép toán logic nào đó (AND,OR,…) với cặp NST bố mẹ

Hình 6: Lai ghép số học mã hóa nhị phân

1.2.5.2 Lai ghép theo mã hóa hoán vị

Lai ghép một điểm cắt:

Trang 19

- Vị trí cắt được chọn một cách ngẫu nhiên

- Con mới được sinh ra sẽ có phần gen đầu cho đến vị trí cắt giống mẹ

- Duyệt NST cha từ đầu, gen nào chưa có trong NST của con thì đưa vào

Bảng 5: Lai ghép một điểm cắt mã hóa hoán vị 1.2.5.3 Lai ghép theo mã hóa giá trị

Mã hoá theo giá trị có thể áp dụng tất cả các toán tử lai ghép có trong mã hoá nhị phân

1.2.6 Đột biến

Đột biến là một sự biến đổi tại một (hay một số) gen của cá thể ban đầu để tạo ra một cá thể mới Đột biến có thể tạo ra một cá thể mới tốt hơn hoặc xấu hơn cá thể ban đầu Tuy nhiên, trong giải thuật di truyền thì ta luôn muốn tạo ra những phép đột biến cho phép cải thiện lời giải qua từng thế hệ Đột biến cũng mang tính chất ngẫu nhiên

Tương tự lai ghép, mỗi cách mã hóa NST khác nhau sẽ có những phép đột biến khác nhau

1.2.6.1 Đột biến theo mã hóa nhị phân

Phép đảo bit: Bit được chọn sẽ được đảo.

Bảng 6: Phép đảo bit mã hóa nhị phân 1.2.6.2 Đột biến theo mã hóa hoán vị

Hoán đổi thứ tự:

Thứ tự các gen được hoán đổi được lựa chọn ngẫu nhiên

Trang 20

Bảng 7: Hoán vị thứ tự mã hóa hoán vị 1.2.6.3 Đột biến theo mã hóa giá trị

Ví dụ: Nếu mã hóa số thực, ta có thể thêm hoặc bớt một lượng rất nhỏ vào các gen được chọn để đột biến

Bảng 8: Thay đổi giá trị trong mã hóa giá trị

1.2.7 Chiến lược nạp lại quần thể

Chiến lược nạp lại quần thể là một trong những bước rất quan trọng của thuật toán di truyền Nó dường như quyết định khả năng và tốc độ hội tụ của thuật toán di truyền Dựa vào chiến lược nạp lại quần thể có thể phân loại các thuật toán di truyền Sau đây là một số chiến lược nạp lại quần thể:

1.2.7.1 Chiến lược nạp lại quần thể

Tạo ra số NST mới bằng kích thước quần thể và quần thể mới bao gồm toàn các NST mới này, không có NST nào của thế hệ trước

Hình 7: Chiến lược nạp lại hoàn toàn

Đây là chiến lược đơn giản nhất Mỗi NST chỉ tồn tại trong một thế hệ, sang thế hệ tiếp theo sẽ được thay mới hoàn toàn Như vậy sẽ xảy ra trường hợp là các

Trang 21

NST tốt sẽ không được giữ lại, do đó chiến lược này không phải là chiến lược phù hợp cho việc cải thiện lời giải qua các thế hệ.

1.2.7.2 Chiến lược nạp lại ngẫu nhiên

Tạo ra số NST mới ít hơn kích thước quần thể và thay thế một cách ngẫu nhiên các NST ở thế hệ trước bằng NST ở thế hệ sau:

Hình 8: Chiến lược nạp lại ngẫu nhiên

Chiến lược này luôn đảm bảo toàn bộ số con được sinh ra sẽ được nạp vào, nhưng số lượng con mới được sinh ra ít, và chiến lược ngẫu nhiên không đảm báo các NST tốt của thế hệ trước sẽ được giữ lại, và có thể nó sẽ được thay thế bởi một NST tồi hơn rất nhiều so với nó Nạp lại ngẫu nhiên vẫn khả thi hơn chiến lược nạp lại hoàn toàn khi các NST có thể tồn tại lớn hơn hoặc bằng hai thế hệ

1.2.7.3 Chiến lược nạp lại theo mô hình cá thể ưu tú

Tạo ra số NST mới ít hơn kích thước quần thể và thay thế chúng cho các bố

mẹ có độ thích nghi thấp:

Hình 9: Chiến lược nạp lại theo mô hình cá thể ưu tú

Đây được coi là chiến lược tối ưu Các NST tốt sẽ sống sót qua nhiều thế hệ Qua mỗi thế hệ, sẽ có một số lượng nhất định các NST tồi bị thay thế Tuy chiến lược

Trang 22

này không kiểm tra các NST con nạp vào có tốt hơn NST bố mẹ bị thay thế hay không nhưng tính chất của quần thể không bị ảnh hưởng Vì nếu quần thể nạp vào các NST con tồi thì những NST con này chắc chắn sẽ bị loại ra trong thế hệ tiếp.

1.3 Mô hình GA

Với các khái niệm được giới thiệu ở trên, GA được mô tả bởi sơ đồ sau đây

Hình 10: Sơ đồ mô tả GA

1 Xác lập các tham số ban đầu của bài toán.

2 Khởi tạo: Sinh ngẫu nhiên một quần thể gồm n cá thể (là n lời giải ban đầu

của bài toán)

3 Xác lập quần thể mới: tạo quần thể mới bằng cách lặp lại các bước sau cho

đến khi quần thể mới hoàn thành, bao gồm:

- Tính độ thích nghi của mỗi cá thể

Trang 23

- Kiểm tra điều kiện kết thúc giải thuật.

- Chọn lọc các cá thể bố mẹ từ quần thể cũ theo độ thích nghi của chúng (cá thể có độ thích nghi càng cao thì càng có nhiều khả năng được chọn)

- Tiến hành lai ghép các cặp bố-mẹ với một xác suất lai ghép được chọn để tạo ra một cá thể mới

- Tiến hành đột biến với xác suất đột biến được chọn xác định cá thể đột biến

4 Kiểm tra điều kiện dừng: Nếu điều kiện được thỏa mãn thì thuật toán kết

thúc và trả về lời giải tốt nhất chính là quần thể hiện tại

1.4 Không gian tìm kiếm và điều kiện dừng của GA

1.4.1 Không gian tìm kiếm

Khi giải một bài toán, các bộ lời giải sẽ được sinh ra và lời giải hoặc bộ lời

giải tốt nhất sẽ được xem là đáp án của bài toán Không gian của tất cả các lời giải khả thi được gọi là không gian tìm kiếm (hay không gian trạng thái) Mỗi một điểm trong không gian tìm kiếm biểu diễn cho 1 lời giải tiềm tàng Mỗi lời giải tiềm tàng được đánh dấu bằng giá trị hay sức khỏe của nó trong bài toán Với GA, lời giải tốt nhất sẽ được tìm ra trong số rất nhiều các lời giải tiềm tàng

Tìm kiếm một lời giải tương ứng với việc tìm một giá trị cực nào đó (lớn nhất hoặc nhỏ nhất) trong không gian tìm kiếm Đôi khi không gian tìm kiếm là rất tốt, nhưng chỉ là một số Trong tiến trình sử dụng GA, quá trình tìm kiếm lời giải sẽ sinh ra những điểm khác trong quá trình tiến hóa

Vấn đề là việc tìm kiếm rất là phức tạp Tìm lời giải ở đâu và bắt đầu từ đầu cũng là một vấn đề khó khăn Có rất nhiều cách để tìm lời giải thích hợp, nhưng những phương pháp này có thể không cần phải đưa ra lời giải tốt nhất như các giải thuật leo đồi (hill climbing), tìm kiếm tabu (tabu search), mô phỏng luyện kim(simulated annealing) và giải thuật di truyền (genetic algorithm)

Trang 24

1.4.2 Điều kiện dừng của GA

GA không phải là lặp lại vô tận, sinh sản liên tục, mà nó còn cần có điều kiện dừng để kết thúc giải thuật và chọn ra lời giải tốt nhất

Kết thúc cưỡng bức: Ta sẽ thực hiện GA để sinh ra số thế hệ đúng bằng một

số đã được cho trước GA sẽ dừng khi đã tạo đến thế hệ cuối cùng Sử dụng phương pháp cưỡng bức có thể gây ra lãng phí thời gian nếu như các thế hệ sau gần như không tốt lên Tuy nhiên, cơ chế kiểm soát không phức tạp

Kết thúc tự nhiên: Đến một thế hệ nào đó mà hàm thích nghi cho các con

trong thế hệ đó không tốt hơn thì ta sẽ dừng giải thuật

f(P(t+1) )- f(P(t)) ≤ εPhương pháp kết thúc này có cơ chế kiểm soát phức tạp hơn nhưng không biết chính xác khi nào kết thúc giải thuật

1.5 Đặc điểm và ứng dụng của GA

1.5.1 Đặc điểm của GA

Giải thuật di truyền có các đặc điểm nổi bật sau:

- Giải thuật di truyền tìm kiếm nhiều đỉnh (điểm tối ưu) cùng một lúc Các toán tử di truyền sẽ giúp trao đổi thông tin giữa các đỉnh Như vậy, khả năng kết thúc tại một điểm cực trị địa phương sẽ giảm bớt

- Giải thuật di truyền chỉ làm việc với các NST là mã của các lời giải Do đó với một GA có sẵn, đôi khi chỉ cần thay đổi cách biểu diễn NST là có giải thuật cho một bài toán mới

- Giải thuật di truyền chỉ cần đánh giá hàm mục tiêu để phục vụ quá trình tìm kiếm chứ không đòi hỏi các thông tin bổ trợ các

- Các thao tác cơ bản trong giải thuật di truyền dựa trên khả năng tích hợp tính ngẫu nhiên trong quá trình xử lý

Trang 25

- Thời gian tính toán lâu hơn các giải thuật khác Đây là một nhược điểm của

GA nhưng với sự phát triển của máy tính ngày nay thì đây không phải là một vấn đề quá lớn

1.5.2 Ứng dụng của GA

Với các đặc điểm được chỉ ra ở trên, GA thường được áp dụng để giải các bài toán khó (ví dụ như các bài toán thuộc lớp bài toán NP- khó), máy học và cũng

để cải tiến các chương trình Cụ thể nó được áp dụng trong các lĩnh vực sau:

- Các hệ phi tuyến động - phỏng đoán, phân tích dữ liệu

- Thiết kế mạng nơron, cả về phần kiến trúc lẫn phần trọng số

- Thiết lập quỹ đạo cho người máy

- Quy hoạch chiến lược

-Các bài toán tối ưu trên đồ thị - ví dụ như các bài toán cây khung nhỏ nhất

bị ràng buộc

- Tìm dạng của các phần tủ Protein

- Bài toán người du lịch và lập thời gian biểu

- Các hàm tạo ảnh

Trang 26

Chương 2 BÀI TOÁN THUỘC LỚP NP

VÀ BÀI TOÁN LẬP THỜI KHÓA BIỂU 2.1 Lớp các bài toán NP

2.1.1 Một số khái niệm:

Độ phức tạp của thuật toán: là đánh giá luợng tài nguyên các loại mà các thuật toán đòi hỏi sử dụng Có hai loại tài nguyên quan trọng là thời gian và bộ nhớ Đánh giá độ phức tạp tính toán của bài toán là đưa ra thời gian tính của thuật toán tốt nhất tổng số các thuật toán giải bài toán đã và chưa biết

Thuật toán có thời gian tính đa thức: là thuật toán mà độ phức tạp thời gian của nó trong truờng hợp xấu nhất được giới hạn trên bởi một hàm đa thức của kích thuớc dữ liệu đầu vào (kích thuớc dữ liệu đầu vào được tính bằng số bit cần thiết để biểu diễn nó) Tức là nếu n là kích thuớc dữ liệu đầu vào, thì luôn tồn tại một đa

Có hai cách tiếp cận chính để đanh giá độ phức tạp tính toán:

- Đánh giá cận duới độ phức tạp bài toán

- Chỉ ra mức độ khó của nó có thể so sánh với bất ký bài toán khó hiện đa biết

Bài toán quyết định: là bài toán mà đầu ra của nó chỉ có thể là yes hoặc no

(0 hoặc 1, đúng hoặc sai…)

2.1.2 NP-khó và NP-đầy đủ

Một bài toán là NP-đầy đủ nếu nó có 2 tính chất:

- Tồn tại một thuật toán đa thức không đơn định để giải nó (tức là chỉ ra nó thuộc lớp NP)

- Có một bài toán NP-đầy đủ có thể quy dẫn về nó

Thông thuờng việc chứng minh tính chất 1 đối với nhiều bài toán là rất khó khăn, thế nhưng việc chứng minh nó có tính chất 2 lại đơn giản hơn Những bài toán thỏa mãn tính chất 2 vể mặt độ phức tạp là khó tương đương Vì vậy nguời ta gọi những bài toán nhu vậy là NP-khó

Trang 27

Vậy, bài toán ∏ là NP-khó nếu sự tồn tại một thuật toán có thời gian đa thức

để giải nó kéo theo sự tồn tại thuật toán đa thức để giải mọi bài toán trong lớp NP Nói cách khác, nếu có thể giải một bài toán NP-khó nào đo một cách nhanh chóng, thì cũng có thể nhanh chóng giải quyết bất kỳ một bài toán nào khác Bài toán NP-khó ít nhất là khó bằng bất cứ một bài toán nào trong NP NP-đầy đủ là những bài toán khó nhất trong NP Hình 11 biểu diễn cách phân lớp tạm thời các bài toán

Hình 11: Phân lớp tạm thời các bài toán

Bài toán “Hỗ trợ xếp thời khóa biểu” thuộc vào lớp NP-khó, vì vậy không thể giải nó một cách chính xác khi kích thuớc dữ liệu đầu vào lớn Luận văn này sẽ không huớng vào tìm kiếm lời giải chính xác tốt nhất cho bài toán mà chuyển sang tìm kiếm lời giải xấp xỉ Trong truờng hợp lý tuởng, lời giải xấp xỉ này sẽ rất gần với lời giải tốt nhất và chỉ mất một thời gian nhất định để tìm được lời giải xấp xỉ này

Một trong những phương pháp hay được sử dụng để tìm lời giải xấp xỉ cho

2.1.3 Tối ưu hóa đa mục tiêu

Bài toán tối ưu hóa đa mục tiêu (Multi-objective Optimization problem - MOOP) thường có nhiều mục tiêu mà trong đó các mục tiêu thường được cực tiểu hóa hoặc cực đại hóa và các lời giải thường được ràng buộc bởi các điều kiện Cụ thể, bài toán tối ưu hóa đa mục tiêu được phát biểu tổng quát như sau:

Tìm cực đại / cực tiểu của fm (x) , m = 1, 2, …, MĐiều kiện gj (x) ≥ 0, j = 1,2,…, J

Trang 28

hk (x) = 0, k = 1,2,…, K

xi (L) ≤ xi ≤ xi(U) i = 1,2,…, n

định Ngoài ra trong điều kiện của bài toán có J bất đẳng thức và K đẳng thức Các

thức dạng lớn hơn hoặc bằng nhưng điều kiện ràng buộc dạng bé hơn hoặc bằng cũng được xét bằng cách nhân 2 vế với -1 (Deb, 1995) Nếu một lời giải thỏa mãn

(J+K) điều kiện ràng buộc và 2N giá trị ràng buộc lời giải thì lời giải được gọi là

chấp nhận được Với (J+K) ràng buộc, không gian quyết định D sẽ được thu hẹp

thành không gian tìm kiếm S

Các yêu cầu của tối ưu hóa đa mục tiêu:

Thông thường MOOP thường tìm ra một bộ các lời giải tùy vào các mục tiêu Vì thế, có thể nhận thấy hai yêu cầu của MOOP là:

- Tìm được bộ lời giải càng gần đường Pareto tối ưu càng tốt

- Bộ lời giải tìm được càng đa dạng càng tốt

Yêu cầu đầu tiên của MOOP là khá rõ ràng và nó cũng giống với mục đích của tối ưu hóa đơn mục tiêu (Single objective optimization problem - SOP) Tuy nhiên mục đích thứ hai thì lại khá đặc trưng cho MOOP Để đảm bảo được mục đích thứ nhất, thì các lời giải phải đa dạng trong không gian tối ưu Pareto Vì MOOP có hai không gian (không gian biến quyết định, không gian mục tiêu) nên độ

đa dạng của hai lời giải được hiểu là độ đa dạng của hai lời giải trong cả hai không gian này

2.2 Bài toán lập thời khóa biểu

Bài toán lập thời khóa biểu liên quan đến sự phân chia, phụ thuộc vào các ràng buộc, các tài nguyên của đối tượng trong không gian và thời gian sao cho thỏa

Ngày đăng: 15/04/2017, 20:48

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w