Tổng quan giải thuật di truyền cổ điển

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Một số phương pháp khai phá dữ liệu và ứng dụng trong bài toán lập thời khoá biểu (Trang 72)

CHƢƠNG 5 GIẢI THUẬT DI TRUYỀN VÀ BÀI TOÁN LẬP THỜI KHOÁ BIỂU

5.1. Tổng quan giải thuật di truyền cổ điển

5.1.1. í tƣởng của giải thuật

Sự ra đời của học thuyết tiến húa của Darwin

Năm 1859 Darwin cho ra đời học thuyết tiến húa bằng việc xuấtt bản cuốn sỏch “Nguồn gốc cỏc loài”. Cuốn sỏch đó dẫn tới một cuộc cỏch mạng trong suy nghĩ của mọi ngƣời và làm chuyển hƣớng nghiờn cứu trong sinh học.

Học thuyết cú thể túm tắt như sau [8]:

1. Cỏc sinh vật sinh ra một lƣợng con cỏi nhiều hơn số lƣợng cỏ thể cú thể sống sút.

2. Cỏc sinh vật khỏc nhau về cỏch thức mà sự sống cũn của chỳng bị tỏc động.

3. Phần lớn cỏc biến dị đƣợc kiểm soỏt bởi gen. 4. Chọn lọc tự nhiờn giỳp cỏc loài luụn thớch nghi. 5. Loài mới chỉ đƣợc hỡnh thành bằng sự cỏch ly.

Sự ra đời của giải thuật di truyền cổ điển (Genetic Algorithm - GA)

Năm 1975 thuyết tiến húa của Darwin lần đầu tiờn đƣợc Holland ỏp dụng vào tin học trong luận ỏn tiến sĩ “Adaptation in natural and Artificial Systems”.

Trong luận ỏn này Holland đó sử dụng giải thuật di truyền để giải quyết bài toỏn tỡm cực trị của hàm số : Max { f(x) / xM) }, trong đú M là hỡnh hộp trong khụng gian số thực n chiều, f(x) > 0 với mọi xM. Sự hội tụ của giải thuật cũng đƣợc ụng chứng minh bằng định lý về lƣợc đồ (schema theorem). Sau khi giải thuật di truyền cổ điển ra đời đó cú nhiều nghiờn cứu nhằm bổ sung, hoàn thiện giải thuật di truyền cổ điển. Cỏc bổ sung hoàn thiện đú đó làm phong phỳ hơn giải thuật di truyền trong việc nõng cao tốc độ tỡm kiếm và mở rộng khả năng ứng dụng của giải thuật [8].

Giải thuật di truyền cổ điển (GA) ỏp dụng quỏ trỡnh tiến húa của tự nhiờn để giải cỏc bài toỏn tối ƣu bằng cỏch tạo ra một tập cỏc lời giải cú thể ban đầu, thụng qua nhiều bƣớc trong quỏ tiến húa hỡnh thành cỏc tập hợp mới với những lời giải tốt

hơn và cuối cựng tỡm ra lời giải đủ tốt (trong đa số cỏc trƣờng hợp chỉ là cỏc lời giải gần với lời giải tối ƣu).

Giải thuật di truyền cổ điển thực hiện tỡm kiếm theo nhiều hƣớng bằng cỏch duy trỡ một tập lời giải cú thể, khuyến khớch sự hỡnh thành và trao đổi thụng tin giữa cỏc hƣớng, quỏ trỡnh tỡm kiếm đú đƣợc gọi là quỏ trỡnh tiến húa. Quỏ trỡnh tiến húa đƣợc thực hiện trờn một tập cỏc lời giải, đƣợc gọi là một quần thể, trong khụng gian cỏc lời giải cú thể. Việc tỡm kiếm phải đảm bảo đƣợc hai mục đớch: tỡm lời giải tốt nhất và khỏm phỏ toàn bộ khụng gian tỡm kiếm. Từ một tập cỏc lời giải ban đầu trải qua nhiều bƣớc tiến húa, tập lời giải sau mỗi bƣớc tiến húa đƣợc gọi là một thế hệ. Tại mỗi thế hệ những lời giải tƣơng đối tốt đƣợc chọn để tỏi sinh trong khi cỏc lời giải tồi sẽ bị loại bỏ, cuối cựng cho ta một lời giải đủ tốt theo yờu cầu. Để phõn biệt giữa cỏc lời giải khỏc nhau trong ngƣời ta dựng một hàm gọi là hàm phự hợp

(fitness function) để đỏnh giỏ mức độ tốt xấu của từng lời giải.

GA sử dụng cỏc thuật ngữ lấy từ di truyền học. Tập cỏc lời giải cú thể đƣợc gọi là một quần thể (population), bao gồm một tập hợp cỏc lời giải cú thể đƣợc gọi là cỏc cỏ thể hay nhiễm sắc thể (chromoseme). Mỗi cỏ thể cú một hàm phự hợp đỏnh giỏ mức độ thớch ứng của nú với mụi trƣờng. quỏ trỡnh thay đổi quần thể đƣợc thực hiệnbằng cỏc toỏn tử chọn lọc (selection), đột biến (mutation) và tƣơng giao chộo (crossover).

5.1.2 Cấu trỳc của GA cổ điển

Cấu trỳc nhiễm sắc thể và kiểu gen

Cỏc cỏ thể (hay cũn gọi là cỏc nhiễm sắc thể viết tắt là NST) đƣợc mó húa bởi cỏc chuỗi nhị phõn. Mỗi vị trớ của chuỗi nhị phõn đú chỉ nhận giỏ trị 0 hoặc 1. Một NST trong GA cú dạng nhƣ sau [8]:

1 1 0 0 1 0 1 0

Mỗi kiểu gen (một NST cụ thể) biểu diễn một lời giải cú thể của bài toỏn.

Thủ tục tiến húa của GA [8]

Procedure GA Begin

t = 0;

Khởi tạo P(t); Đỏnh giỏ P(t);

while (not_ điều_kiện_kết_thỳc ) do begin t= t+1; Chọn lọc P(t) từ P(t-1); Thay đổi P(t); Đỏnh giỏ P(t); end End

Cỏc bƣớc của quỏ trỡnh tiến húa đƣợc diễn ra trong vũng lặp while, tại thế hệ thứ t giải thuật duy trỡ một tập lời giải P(t) ={xt1,. . ., xtn}. Mỗi lời giải đƣợc đỏnh giỏ độ thớch nghi của nú. Một tập hợp lời giải mới đƣợc xõy dựng bằng cỏch chọn lọc cỏc cỏ thể cú khả năng thớch nghi tốt hơn ta đƣợc một tập lời giải trung gian. Tiếp đú một số cỏ thể trong tập lời giải trung gian này bị thay đổi bằng cỏch ỏp dụng cỏc toỏn tử di truyền là đột biến và tƣơng giao chộo để tạo ra một tập lời giải mới. Sau đõy ta sẽ tỡm hiểu chi tiết hơn về hàm phự hợp và cỏc toỏn tử di truyền.

Hàm phự hợp (fitness) [8]

Hàm phự hợp đo mức độ tốt, xấu của lời giải (khả năng thớch nghi của cỏ thể với mụi trƣờng). Tựy theo từng bài toỏn mà ta xõy dựng hàm phự hợp cho thớch hợp. Một số phƣơng phỏp xõy dựng hàm phự hợp:

1. Hàm phự hợp thụ (Raw fitness) Rf.

Theo cỏch xõy dựng này hàm phự hợp đƣợc xõy dựng tuỳ theo từng hoàn cảnh cụ thể. Nếu giỏ trị hàm phự hợp đặc trƣng cho mức độ lỗi của lời giải thỡ sẽ đƣợc cực tiểuhúa, ngƣợc lại nú sẽ đƣợc cực đại húa.

2. Hàm phự hợp tiờu chuẩn húa (Standardized fitness) Sf.

Đối với phƣơng phỏp xõy dựng này hàm phự hợp luụn luụn đƣợc cực tiểu húa. Nếu Rf đặc trƣng cho mức độ lỗi thỡ Sf = Rf , ngƣợc lại Sf = Rmax- Rf. Trong đú Rmax đƣợc chọn

3. Hàm phự hợp điều chỉnh Af (Adjusted fitness)

4. Hàm phự hợp chuẩn húa Nf (Normalized fitness).

Nf đƣợc định nghĩa nhƣ sau;

Ở đõy T =Af . Hàm này là một hàm tăng và cú giỏ trị giữa 0 và 1.

Toỏn tử chọn lọc (Selection)

Chọn lọc là một quỏ trỡnh cỏc cỏ thể đƣợc chọn để tham gia vào cỏc pha tiếp theo của quỏ trỡnh tiến húa, việc lựa chọn này phụ thuộc vào mức độ thớch nghi của cỏ thể đú, nghĩa là những cỏ thể nào cú giỏ trị hàm thớch nghi cao hơn sẽ cú khả năng cú nhiều con chỏu hơn trong cỏc thế hệ tiếp theo.

Chiến lƣợc lựa chọn trong GA cổ điển là chiến lược bỏnh xe xổ số (Roulette

wheel selection): Phộp chọn lọc cú thể biểu diễn dƣới dạng một bỏnh xe xổ số. Đú

là một vũng trũn trong đú mỗi cỏ thể chiếm một phần tƣơng ứng với hàm mục tiờu của nú. Cỏc giỏ trị này là xỏc suất chọn lọc của mỗi cỏ thể. Xỏc suất chọn lọc pi của cỏ thể vi đƣợc tớnh theo cụng thức pi = eval(vi)/F, trong đú eval(vi) là giỏ trị hàm thớch nghi của cỏ thể vi, F là tổng giỏ trị cỏc hàm thớch nghi của quần thể

F=eval(vi).

Hỡnh vẽ sau đõy sẽ minh họacho phƣơng phỏp bỏnh xe xổ số:

Hỡnh 5.1 Bỏnh xe xổ số

Trong hỡnh vẽ này chẳng hạn cỏ thể 1 cú xỏc suất chọn lọc là 25%. Mỗi lần quay bỏnh xe xổ số nú cú khả năng đƣợc chọn là 25%. 25% 40% 15% 20% Af T Nf =

Ta cú thể cài đặt phƣơng phỏp bỏnh xe xổ số theo cỏc bƣớc nhƣ sau: 1. Tớnh tổng giỏ trị hàm thớch nghi của tất cả cỏc thành viờn trong quần

thể và gọi là tổng phự hợp (Total fitness) F= eval(vi).

2. Phỏt sinh một số n ngẫu nhiờn trong khoảng từ 0 tới tổng phự hợp. 3. Trả lại thành viờn tập hợp đầu tiờn mà độ phự hợp của nú cộng với độ

phự hợp của cỏc thành viờn đứng trƣớc nú lớn hơn n.

Toỏn tử đột biến (Mutation)

Phộp đột biến đƣợc thực hiện trờn từng bit của nhiễm sắc thể, xỏc suất đột biến là Pm cho ta tổng số bit bị đột biến trong quần thể là Pm*k*Pop_size; trong đú k là chiều dài của chuỗi nhị phõn; Pop_size là số lƣợng cỏ thể trong quần thể. Mọi bớt trờn nhiễm sắc thể đều cú xỏc suất bị đột biến nhƣ nhau. Quỏ trỡnh gõy đột biến cho một bit đƣợc tiến hành nhƣ sau:

 Sinh ra ngẫu nhiờn một số k (0,1).

 Nếu k < pm thỡ bớt đú đƣợc tiến hành cho đột biến (sửa 0 thành 1 và ngƣợc lại). Vớ dụ: Hai bớt thứ 1 và 6 đƣợc đột biến. Parent: 1 0 0 1 1 0 0 0 0 1 Child: 0 0 0 1 1 1 0 0 0 1

Toỏn tử tương giao chộo (Crossover)

Toỏn tử tƣơng giao chộo kết hợp cỏc đặc tớnh trờn hai NST bố mẹ để tạo ra hai cỏ thể mới bằng cỏch trỏo đổi cỏc đoạn gien trờn cỏc NST của bố và mẹ. Vớ dụ:

Parent 1: 

0 0 1 1 1 1 1 0 0 1

1 0 0 0 1 0 1 1 0 0 Sau khi tiến hành trao đổi chộo hai nhiễm sắc thể trờn (chẳng hạn sau vị trớ thứ 5) sẽ cho ta hai nhiễm sắc thể sau:

Child 1:

0 0 1 1 1 0 1 1 0 0

Child 2:

1 0 0 0 1 1 1 0 0 1

Cỏc tham số của GA

GA cú thể mụ tả bởi 3 tham số sau:

1. N: Kớch cỡ của quần thể (số lƣợng cỏ thể trong quần thể). 2. C: Tỷ lệ tƣơng giao chộo. Mỗi quỏ trỡnh tỏi tạo cú N*C cỏ thể tham gia vào quỏ trỡnh tƣơng giao chộo.

3. M: Tỷ lệ đột biến. Mỗi thế hệ sẽ cú M*N*L vị trớ bị đột biến, ở đõy L là chiều dài của NST.

5.2. GA VÀ BÀI TOÁN LẬP THỜI KHOÁ BIỂU Ở TRƢỜNG CAO ĐẲNG CễNG NGHIỆP HÀ NỘI.

5.2.1. Giới thiệu

Bài toỏn lập thời khoỏ 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 thoả món đƣợc nhiều nhất cỏc mong ƣớc của tập mục tiờu, hay núi cỏch khỏc là ra đƣợc kết quả tụt nhất, gần nhất với mục tiờu. Bài toỏn lập thời khúa biểu đƣợc biết là bài toỏn dạng NP đầy đủ, do đú cỏc kết quả đƣa ra chỉ đảm bảo một thời khoỏ biểu tối ƣu.

Trƣớc đõy bài toỏn này đó co một số hƣớng giải quyết, phƣơng phỏp đầu tiờn là bằng bài toỏn tụ màu đồ thị, tuy nhiờn phƣơng phỏp này khụng đạt đƣợc nhiều hiệu quả và cho đến nay khụng đƣợc dựng nữa. Một hƣớng tiếp cận khỏc là cụng thức hoỏ cỏc vấn đề bằng chƣơng trỡnh cỏc số nguyờn, nhƣng do số lƣợng cỏc biến ngày càng lớn nờn cũng khụng thực hiện đƣợc. Một số khỏc lại sử dụng lập trỡnh

logic cú ràng buộc kết hợp với một số phƣơng phỏp khỏc để giải quyết vấn đề nhƣng cũng khụng thành cụng[7].

Hiện nay, nỗi bật lờn trong vấn đề giải quyết bài toỏn lập thời khoỏ biểu là phƣơng phỏp dựng giải thuật di truyền.

Giải thuật di truyền học cú cơ chế tỡm kiếm ngẫu nhiờn dựa trờn cơ chế tự chọn lọc tự nhiờn và di truyền học. Một giải thuật di truyền tiờu biểu bắt đầu với một tập cỏc cỏch giải quyết ban đầu gọi là quần thể, mỗi thành phần trong quần thể đƣợc gọi là nhiễm sắc thể. Một nhiễm sắc thể cú thể hiểu hiểu theo cỏch thụng thƣờng nhƣng khụng nhất thiết phải hiểu nhƣ vậy, nú là một chuỗi nhị phõn biểu diễn một cỏch giải quyết vấn đề. Cỏc nhiễm sắc thể cú thể tồn tại qua cỏc lần lặp đi lặp lại thỡ đƣợc gọi là thế hệ. Trong thời gian của mỗi thế hệ cỏc nhiễm sắc thể cú thể đƣợc ƣớc lƣợng bằng một vài đơn vị đo lƣờng thớch hợp. Khi tạo một thế hệ tiếp theo, cỏc nhiễm sắc thể mới đƣợc gọi là con cỏi đƣợc hỡnh thành từ việc kết hợp hai nhiễm sắc thể hiện thời bằng phƣơng phỏp tƣơng giao chộo hoặc đột biến. Một thế hệ mới đƣợc hỡnh thành bằng:

a. Chọn lọc theo cỏc giỏ trị thớch hợp từ một vài nhiễm sắc thể bố, mẹ hoặc con cỏi.

b. Chọn lọc bằng cỏch loại bỏ cỏc nhiễm sắc thể khỏc để số lƣợng nhiễm sắc thể trong quần thể khụng thay đổi.

Sau một vài thế hệ, giải thuật hội tụ tới nhiễm sắc thể tốt nhất, mà hy vọng nú đại diện sự tối ƣu hoặc giải phỏp gần tối ƣu để giải quyết vấn đề.

Giải thuật di truyền trở thành kỹ thuật thụng dụng để xử lý cỏc vấn đề tối ƣu hoỏ chủ yếu dựa trờn 3 lợi thế sau [8]:

1. Giải thuật di truyền khụng kộo theo cỏc vấn đề toỏn học phức tạp 2. Tớnh tuần hoàn của cỏc toỏn tử di truyền làm cho giải thuật di truyền

cú ảnh hƣởng lớn trong việc tỡm kiếm trờn toàn cầu.

3. Giải thuật di truyền rất mềm dẻo, chỳng dễ dàng kết hợp với cỏc lĩnh vực dựa trờn kinh nghiệm, điều đú cú thể dõn đến một kết quả tốt hơn cho việc tỡm kiếm trong cỏc vấn đề đặc biệt.

Sau đõy là cấu trỳc chung của giải thuật di truyền, trong thuật toỏn P(t) và C(t) là cha mẹ và con cỏi trong thế hệ hiện tại.

Procedure GA Begin

t = 0;

Khởi tạo P(t); Đỏnh giỏ P(t);

while (điều_kiện_kết_thỳc chưa xảy ra ) do begin

Tổ hợp P(t) giao cho C(t): đỏnh giỏ C(t); Chọn lọc P(t+1) từ P(t) và/hoặc C(t); t=t+1;

end End

5.2.2. Cỏc định nghĩa.

Thời khoỏ biểu của trƣờng bao gồm cỏc đặc tớnh đƣợc mụ tả tiờu biểu nhƣ sau:

Tập cỏc sự kiện: E ={e1, e2,…em} là cỏc cỏc buổi học, nú cú thể là lý thuyết, thực hành…mỗi sự kiện phải cú ngƣời tham dự, giảng viờn, khe thời gian, vị trớ nơi giảng viờn giảng bài.

Khe thời gian: T ={t1, t2,…tn}. Khe thời gian chớnh là khoảng thời gian xảy ra sự kiện, nú cú thời gian bắt đầu và thời gian kết thỳc. Cỏc thành phần trong tập khe thời gian cú mẫu dạng: thứ 2, thứ 3,…Mỗi khe thời gian cú giỏ trị mặc định thời gian là Vt vớ dụ trong thời gian tự nghiờn cứu thời gian mặc định là 1 tiếng, đõy cũng là thời gian tối thiểu của một lớp.

Tập hợp phũng học: P ={p1, p2,…pt} Sự kiện xảy ra trong cỏc phũng học. Trong tập phũng học, mỗi thành phần chứ thụng tin liờn quan đến tờn, cỡ, và cỏc thuộc tớnh khỏc.

Tập hợp giảng viờn: L ={l1, l2,…lh}. Trong thực tế một khoỏ học sẽ do cựng một giảng viờn giảng dạy.

Tập lớp học: C ={c1, c2,…ck}. Cỏc lớp chứa thụng tin liờn quan đến tờn và số lƣợng sinh viờn. Số lƣợng sinh viờn liờn quan đến số chỗ ngồi trong phũng học.

Ngoài ra, bài toỏn thời khoỏ biểu cũn cú cỏc ràng buộc. Cỏc ràng buộc cú thể đƣợc phõn theo hai phạm trự: ràng buộc cứng và ràng buộc mềm. Cỏc ràng buộc cứng là cỏc ràng buộc bắt buộc phải tuõn theo và thoả món trong chƣơng trỡnh. Cỏc ràng buộc mềm thỡ cú thể đƣợc vi phạm nhƣng cỏi giỏ phải trả cho sự vi phạm đú phải nằm trong sự cho phộp.

Cỏc ràng buộc cứng tiờu biểu:

1. Mỗi lớp cú một lịch trỡnh để đăng ký trong một thời kỳ cụ thể.

2. Một lớp học, một giảng viờn, một phũng học đều khụng đƣợc gỏn hơn một bài học trong cựng một khe thời gian.

3. Khụng đƣợc bỏ sút lớp nào trong thời khoỏ biểu. 4. Tất cả cỏc phũng học đều đủ lớn để chứa lớp học

5. Mọi cỏc yờu cầu đặc biệt về phũng học đều phải xem xột trƣớc

6. Cỏc bài học đó cú lịch từ trƣớc thỡ phải đƣợc đặt lịch trong khe thời gian xỏc định

7. Tất cả cỏc mụn học phải phõn bố đều nhau.

Cỏc ràng buộc mềm tiờu biểu:

1. Khụng cú cỏc giảng viờn và sinh viờn cú thời khoỏ biểu cú nhiều khe thời gian rỗi (thời gian trống giữa cỏc khoỏ học quỏ nhiều)

2. Cỏc sự kiện cần phải phõn chia đều. 3. Sự ƣu tiờn của giảng viờn.

4. Phũng học cần phải gần văn phũng khoa/ban 5. Cỏc phũng đủ lớn để đỏp ứng đƣợc cỏc yờu cầu.

Mặc dự cỏc ràng buộc mềm khụng giải quyết cỏc khoản xung đột nhƣng chỳng cú vai trũ rất quan trọng trong bài toỏn thời khoỏ biểu thực tế. Nếu tổng chi phớ cho việc vi phạm ràng buộc mềm tiến gần đến 0 thỡ thời khoỏ biểu phỏt sinh sẽ gần đến thời khoỏ biểu tối ƣu.

5.2.3. Giải thuật di truyền cho thời khoỏ biểu.

Trƣớc hết ta nhỡn vào bảng 1 sau đõy để thấy đƣợc thời gian biểu thụng thƣờng trong thực tế của một lớp học:

Thứ 2 Thứ 3 Thứ 4 Thứ 5 Thứ 6

Tiết 1 ….. …. …. … ….

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Một số phương pháp khai phá dữ liệu và ứng dụng trong bài toán lập thời khoá biểu (Trang 72)

Tải bản đầy đủ (PDF)

(126 trang)