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

Một phần của tài liệu 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 73)

1. Tổ chức và khai thỏc cơ sở dữ liệu truyền thống

5.1.2Cấ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). (adsbygoogle = window.adsbygoogle || []).push({});

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]: (adsbygoogle = window.adsbygoogle || []).push({});

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. (adsbygoogle = window.adsbygoogle || []).push({});

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

Tiết 2 ….. …. …. … ….

Tiết 3 ….. Tờn mụn Giảng viờn Phũng học

…. … ….

Tiết 4 ….. …. …. … ….

Tiết 5 ….. …. …. … ….

Tiết 6 ….. …. …. … ….

Bảng 1: Mụ hỡnh thời khoỏ biểu thực tế

Cỏch trỡnh bày này rất dễ hiểu và cú ớch cho việc lập thời khoỏ biểu, tuy nhiờn ta khụng thể dựng nú để biểu diễn cỏc nhiễm sắc thể trong cỏc thời gian nhƣ nhau. Nguyờn nhõn là do khi dựng bảng này thỡ việc tƣơng giao chộo và đột biến trở nờn khú khăn, ngoài ra theo truyền thống thỡ cỏc nhiễm sắc thể đƣợc biểu diễn bằng chuỗi cỏc bit. Nhƣ đó núi ở trờn, cỏc thành phần cần thiết cho thời khoỏ biểu gồm: khe thời gian (tiết học), giảng viờn, sinh viờn, sự kiện(buổi học), phũng học, lớp học. Ta cần kết hợp giữa thời khoỏ biểu của lớp học và lịch trỡnh của giảng viờn và khụng gian là cần thiết.

Trong thời khoỏ biểu và để làm cho giải thuật tiến hoỏ cú hiệu quả cỏc nhiễm sắc thể đƣợc thiết kế nhƣ bảng 2 :

Thứ 2 – 1 Thứ 2 - 2 ….. Thứ 6 – 5 Thứ 6 – 6

Phũng 1 Sự kiện 1-1 Sự kiện 2-2 … … ..

…… … … …

Phũng thực hành 1 .. .. .. .. …

…. .. .. .. .. ..

Phũng thực hành j .. .. .. .. Sự kiện i-6

Bảng 2: mụ hỡnh thiết kế cho nhiễm sắc thể.

5.2.3.1. Cỏc khe thời gian

Cỏc sự kiện (buổi học) chiếm cỏc phũng trong một ngày làm việc. Trong mụ hỡnh thời khoỏ biểu đƣa ra ở bảng hai chiều nhƣ bảng 2, chiều cột biểu diễn ngày làm việc, chiều hàng là một số khe thời gian trong mỗi ngày làm việc. Trong thiết kế nhiễm sắc thể, tất cả cỏc khe thời gian đƣợc đƣa vào trong một cột, vớ dụ: Một tuần bắt đầu từ thứ 2 đến thứ 6 và mỗi buổi học cú 6 khe thời gian (6 tiết), do đú tổng số khe thời gian (tiết) trong một tuần là 6x5=30. Tuy nhiờn, cỏc thụng số này cú thể thay đổi tuỳ theo hoàn cảnh.

5.2.3.2. Cỏc phũng.

Cỏc phũng gồm phũng học, phũng thực hành… chớnh là cỏc chiều hàng. Trong khớa cạnh này ta đƣa ra định nghĩa về khu vực. Một khu vực chỉ một tập cỏc phũng, mỗi khu vực cú một số thuộc tớnh chung nhƣ: kiểu phũng, cỡ phũng…Tập lớn nhất cỏc khu vực trong trƣờng hợp chỳng ta đang nghiờn cứu chớnh là sự phõn loại theo kiểu, vớ dụ: tất cả cỏc phũng thớ nghiệm tạo thành khu vực thực hành, tập cỏc phũng học tạo thành khu vực lý thuyết. Tập lớn thứ hai đƣợc phõn loại bằng độ lớn của cỏc phũng. Độ lớn cú thể là rộng, trung bỡnh hoặc nhỏ. Cỏc khu vực đƣợc phõn loại theo kiểu của chỳng. Vớ dụ: một buổi học thực hành cú số lƣợng sinh viờn thuộc loại trung bỡnh cú thể đƣợc phõn vào cỏc phũng cú cỡ trung bỡnh hoặc cỡ lớn của khu vực thực hành, nhƣng khụng bao giờ đƣợc phõn vào khu vực lý thuyết vỡ chỳng khụng cựng loại.

Trong chiều hàng, tất cả cỏc phũng đầu tiờn đƣợc phõn loại vào hai khu vực lớn nhất là khu vực thực hành và khu vực lý thuyết. Sau đú, với mỗi khu vực thỡ cỏc phũng đƣợc phõn loại vào cỏc khu vực con dựa trờn cỡ của nú. Vớ dụ: cỏc phũng cỡ lớn phải đƣa vào cỏc khu vực cỡ lớn, cỏc phũng trung bỡnh cú thể đƣa vào cỏc khu vực cỡ trung bỡnh hoặc cỡ lớn nếu cũn chỗ.

Tuõn theo quy tắc này, khi tất cả cỏc sự kiện đó đƣợc gỏn cho cỏc khu vực, chỳng cần đƣợc sắp xếp theo thứ tự abc. Theo thứ tự thẳng đứng, tập cỏc khu vực lý

Một phần của tài liệu 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 73)