Trong thuật giải di truyền, người ta dùng thuật ngữ vay mượn của di truyền học.Trong đó, cá thể biểu diễn một lời giải, giải pháp của bài toán.. 1.2 Các bước cơ bản giải bài toán bằng th
Trang 1ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
o0o
-THUẬT TOÁN VÀ PHƯƠNG PHÁP GIẢI QUYẾT VẤN ĐỀ
THUẬT GIẢI DI TRUYỀN
VÀ ỨNG DỤNG TRONG BÀI TOÁN LẬP LỊCH
Trang 2MỤC LỤ
MỤC LỤC 1
LỜI CẢM ƠN 2
I THUẬT GIẢI DI TRUYỀN 4
1 Tổng quan về thuật giải di truyền 4
1.1 Giới thiệu 4
1.2 Các bước cơ bản giải bài toán bằng thuật giải di truyền 4
2 Các thành phần cơ bản của GA 4
2.1 Biểu diễn các cá thể 5
2.2 Hàm thích nghi 7
2.3 Quá trình lai ghép 7
2.5 Quá trình đột biến 9
2.6 Quá trình chọn lọc 9
3 Các toán tử 9
3.1 Toán tử chọn lọc 10
3.2 Toán tử đột biến 12
3.3 Toán tử lai ghép 13
4 Các tham số 15
5 Công thức 15
6 Cấu trúc giải thuật di truyền 16
7 Các giai đoạn của thuật giải di truyền 17
II BÀI TOÁN LẬP LỊCH 18
1 Giới thiệu bài toán 18
2 Khảo sát yêu cầu bài toán 19
3 Khảo sát, thu thập dữ liệu, thông tin, tri thức (DIK) 19
4 Hướng giải quyết bài toán 20
4.1 Ý tưởng 20
4.2 Các ràng buộc 21
4.3 Áp dụng thuật giải di truyền giải quyết bài toán lập lịch 21
5 Thiết kế cơ sở dữ liệu thuật toán 31
5.1 Các đối tượng của lịch học 32
5.2 Biểu diễn nhiễm sắc thể 33
5.4 Biểu diễn cá thể 33
6 Các tham số và thuật giải 34
6.1 Phép lai ghép 35
6.2 Phép đột biến 37
6.3 Độ thích nghi 38
III KẾT LUẬN VÀ ĐÁNH GIÁ 41
Tài liệu tham khảo 42
Trang 4LỜI CẢM ƠN
Em xin chân thành cảm ơn thầy PGS.TS Đỗ Văn Nhơn đã cung cấp cho emnhững kiến thức quan trọng, nền tảng, giúp em định hướng tìm tòi, học tập và nắmvững hơn những phương pháp giải quyết vấn đề, những thuật toán cơ bản và mởrộng để ứng dụng vào những bài toán cụ thể trên máy tính và trong thực tế
Trong bài này em xin trình bày nội dung về giải thuật di truyền qua những tìmhiểu từ các giáo trình, bài báo, tài liệu và ứng dụng của thuật giải di truyền vào bàitoán lập lịch cho trường đại học
Do thời gian có hạn nên bài viết chưa thực sự hoàn chỉnh, còn nhiều hạn chế vàhiểu biết chưa sâu rộng, mong thầy thông cảm
Tp Hồ Chí Minh, ngày 19 tháng 01 năm 2014
Học viên thực hiện
Nguyễn Thị Mai
Trang 5I THUẬT GIẢI DI TRUYỀN
1 Tổng quan về thuật giải di truyền
1.1 Giới thiệu
Genetic Algorithms tạm dịch là Thuật giải di truyền (viết tắt là GA) bắt nguồn từ
ý niệm tiến hóa để tồn tại và phát triển trong tự nhiên GA là phương thức giải quyếtvấn đề mô phỏng theo quá trình chọn lọc tự nhiên Nó giúp tìm ra giải pháp tối ưutrong điều kiện thời gian và không gian cho phép từ các giải pháp ban đầu, thôngqua quá trình chọn lọc, lai ghép và đột biến
Trong thuật giải di truyền, người ta dùng thuật ngữ vay mượn của di truyền học.Trong đó, cá thể biểu diễn một lời giải, giải pháp của bài toán Ở đây, ta quy ướcmỗi cá thể chỉ có một nhiễm sắc thể (NST) NST có thể là một chuỗi tuyến tính.Trong NST có các đơn vị nhỏ hơn là gen Mỗi gen đại diện cho một thuộc tính, tínhchất, có vị trí nhất định trong NST Quần thể là một tập hữu hạn xác định các cá thểbiểu diễn lời giải Trải qua quá trình tiến hóa, qua mỗi thế hệ, quần thể này tái sinhcác lời giải tốt hơn, thích nghi hơn, đồng thời loại bỏ dần các lời giải kém hiệu quả.Như vậy, mục tiêu cuối cùng của GA là tạo ra nhiều giải pháp mới có hệ số thíchnghi ngày càng cao Do đó, ta có thể đánh giá các giải pháp thông qua hệ số thíchnghi này
1.2 Các bước cơ bản giải bài toán bằng thuật giải di truyền
Một bài toán được giải bằng thuật giải di truyền thường gồm các bước sau:
- Biểu diễn lời giải của bài toán (nhiễm sắc thể) bằng chuỗi nhị phân, chuỗi ký
tự, số thập phân, …
- Khởi tạo quần thể ban đầu gồm 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á thể
- Xác định xác suất lai tạo, xác suất đột biến
- Xây dựng các phép lai tạo, chọn lọc, đột biến
2 Các thành phần cơ bản của GA
Trong GA, một tập các biến của bài toán đưa ra được mã hóa sang một chuỗi(hay một cấu trúc mã hóa khác) tương tự như một nhiễm sắc thể trong tự nhiên Mỗichuỗi bao gồm một giải pháp có thể của bài toán Giải thuật di truyền sử dụng cáctoán tử được sinh ra bởi sự chọc lọc tự nhiên một quần thể các chuỗi nhị phân (hoặc
Trang 6các cấu trúc khác), mã hóa khoảng tham số trên mỗi thế hệ, khảo sát các phạm vikhác nhau của không gian tham số, và định hướng tìm kiếm đối với khoảng mà làxác suất cao để tìm kiếm sự thực hiện tốt hơn Thuật toán di truyền gồm có bốn quy
luật cơ bản là lai ghép, đột biến, sinh sản và chọn lọc tự nhiên Sau đây, ta sẽ đi vào
chi tiết từ khâu đầu tiên là biểu diễn các cá thể
2.1 Biểu diễn các cá thể
Biểu diễn cá thể là ánh xạ các tham số của bài toán lên một chuỗi có chiều dàixác định Khi thực hiện giải bài toán bằng thuật giải di truyền, việc đầu tiên ta cầnlàm là xác định cách biểu diễn các cá thể Tùy theo từng bài toán cụ thể mà cónhững cách biểu diễn khác nhau sao cho phù hợp, thuận lợi khi giải toán
2.1.1 Biểu diễn nhị phân
Mỗi cá thể tương ứng với một chuỗi bao gồm các bit 0 và 1 Ý nghĩa của các bitnày phụ thuộc vào từng tình huống cụ thể Đây là cách biểu diễn đơn giản nhất vàthông dụng nhất
Ví dụ 1: hai NST được biểu diễn dưới dạng nhị phân như sau:
Ví dụ 2: Cho bài toán: có n đồ vật với trọng lượng và giá trị khác nhau được chotrước trong một cái túi có trọng lượng đã biết Yêu cầu: hãy chọn ra các đồ vật đểcho vào túi sao cho tổng giá trị các đồ vật trong túi là lớn nhất
Trong trường hợp này, ta đánh số đồ vật từ 1 đến n, mỗi cá thể được biểu diễnbằng một xâu nhị phân độ dài n Trong đó, bit thứ i bằng 1 có nghĩa là đồ vật thứ iđược cho vào túi, bằng 0 là bỏ lại
2.1.2 Biểu diễn sử dụng hoán vị
Biểu diễn hoán vị thường được sử dụng trong bài toán sắp xếp Mỗi cá thể tươngứng với một hoán vị của tập n ký hiệu nào đó Mỗi NST là một chuỗi các số thểhiện vị trí trong một dãy Ví dụ: cách biểu diễn 2 NST dưới đây là biểu diễn hoánvị
Trang 7Một ví dụ cụ thể hơn, cách biểu diễn này đã được áp dụng cho bài toán người dulịch:
Một thương gia phải đi qua nhiều thành phố (n) Hãy vạch lộ trình đi qua tất cảcác thành phố đó sao cho quãng đường đi là ngắn nhất Biết rằng mỗi thành phố chỉ
đi qua một lần
Ký hiệu các thành phố là T1, T2, …, Tn mỗi cá thể sẽ là một danh sách hoán vịcủa T1, T2, …, Tn biểu diễn lộ trình mà người thương gia đã đi qua Ví dụT8T5T9T3… là ký hiệu của hành trình từ T8→T5→T9→T3→…
Như vậy, mỗi chuỗi con sẽ biểu diễn cho một đỉnh của không gian tìm kiếm vàqua đó thể hiện được cách trả lời có thể có của bài toán Sau đó, mỗi chuỗi NST sẽđược giải mã lại để trả về các thông số ban đầu của bài toán
2.1.3 Biểu diễn bằng giá trị
Phương pháp này thường được dùng trong các bài toán có chứa những giá trịphức tạp Trong mã hóa giá trị, mọi NST là một chuỗi chứa những giá trị nào đó.Những giá trị này có thể có dạng bất kỳ 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
Ví dụ: Ta biểu diễn 3 NST bằng giá trị như sau:
NST A được biểu diễn dưới dạng số thực
NST B được biểu diễn dưới dạng chuỗi ký tự
NST C được biểu diễn dưới dạng danh sách thuộc tính
2.1.4 Biểu diễn dưới dạng cây
Mã hóa theo cây được dùng chủ yếu cho các chương trình ( hoặc biểu thức) tiếnhóa, cho lập trình gen Trong mã hóa theo cây, mọi NST là một cây chứa các đốitượng như hàm hoặc lệnh trong một ngôn ngữ lập trình nào đó Dưới đây là 2 NSTđược biểu diễn bằng phương pháp này
Trang 8NST A (Chromosome A) biểu diễn một nhánh công thức toán học
NST B (Chromosome B) biểu diễn lệnh trong ngôn ngữ lập trình
Ví dụ: Bài toán tìm hàm từ những giá trị cho trước Cho trước một số đầu vào vàđầu ra Tìm hàm cho ra kết quả tốt nhất với mọi đầu vào
Mã hóa: NST là các hàm được biểu diễn bằng cây
Sau khi biểu diễn được các cá thể cho bài toán, ta có thể bắt tay ngay vào việcthực hiện giải thuật di truyền theo các bước đã có trong phần trước Bước đầu là cần
có một quần thể ban đầu Nó có thể có được bằng cách chọn ngẫu nhiên các cá thểhoặc có thể dùng chiền thuật lựa chọn thông qua hàm thích nghi:
Giá trị hàm thích nghi là Tối đa hay Tối thiểu tùy theo bài toán sẽ quyết định xácsuất của mỗi chuỗi có thể tham gia vào các toán tử di truyền
Trang 9sắc thể con là m1 và m2 Hai chuỗi nhiễm sắc thể con lúc này sẽ là m11+m22
và m21+m12
Đưa hai cá thể mới này vào quẩn thể để tham gia các quá trình tiếnhóa tiếp theo
2.4 Quá trình sinh sản (tái sinh)
Phép tái sinh: là quá trình các cá thể được sao chép dựa trên độ thích nghi của
nó Phép tái sinh có thể mô phỏng như sau:
Tính độ thích nghi của từng cá thể trong quẩn thể hiện hành, lập bảng cộngdồn các giá trị thích nghi (theo số thứ tự gán cho từng cá thể) Giả sử quầnthể có n cá thể Gọi độ thích nghi của cá thể thứ i là Fi, tổng dồn thứ i làFti, tổng độ thích nghi của toàn quần thể là Fm
Tạo một số ngẫu nhiên F trong đoạn từ 0 đến Fm
Chọn cá thể thứ k đầu tiên thỏa mãn F ≥ Ftk đưa vào quần thể của thế hệmới
Ví dụ: Mỗi cặp bố mẹ sinh hai con theo một trong hai phương pháp sau
Vô tính
Mỗi ấu nhi là một bản sao chính xác từ cha
Mỗi ấu nhi là một bản sao chính xác từ mẹ
Hữu tính (giao nhau)
Một vài bits được sao từ mẹ, vài bits được sao chép từ cha
Cứ tiếp tục sao từ một cặp bố mẹ cho đến chừng nào điểm giao nhau,
Trang 10Sinh sản hữu tính giao nhau ba điểm
Chọn ngẫu nhiên một số k từ khoảng 1 ≥ k ≥ m
Thay đổi giá trị của gen thứ k
Đưa nhiễm sắc thể con vào quần thể để tham gia quá trình tiến hóa tiếp theo
2.6 Quá trình chọn lọc
Là quá trình loại bỏ các cá thể xấu và để lại những cá thể tốt Phép chọn được mô tả như sau:
Sắp xếp quần thể theo thứ tự độ thích nghi giảm dần
Loại bỏ các cá thể cuối dãy, chỉ để lại n cá thể tốt nhất
Trang 1100001010101
11101010101
00001001000 11111000000
11101001000
00001010101
11001011000
00101000101 00111110000
11101001000
00001010101
10001000100
01101011001 00111110000
Lai ghép điểm đơn:
Mục đích của việc chọn này nhằm nhấn mạnh sự lọc cá thể trong quần thể
và hi vọng tạo ra quần thể con của nó có giá trị thích nghi cao hơn.
- Chọn lọc Bánh xe Roulette (Roulette Wheel Selection)
Công thức:
i
i N
j j
f p
f
Trong đó, f i là giá trị thích nghi của cá thể
Lúc này ta biểu diễn p i (phần trăm) trong một vòng tròn(bánh xe) và ta chọn cá thể cha mẹ một cách ngẫu nhiên(như quay chiếc nón kỳ diệu) Dĩ
Trang 12nhiên với giá trị thích nghi càng lớn thì xác suất được chọn của cá thể càng cao.
Hình Bánh xe Roulette thể hiện 8 cá thể với hàm thích nghi tương ứng.
Cá thể thứ 5 có hàm thích nghi lớn hơn các cá thể khác nên bánh xe
Roulette sẽ lựa chọn cá thể 5 hơn các cá thể khác
- Chọn lọc ngẫu nhiên (Random Selection): Chọn cá thể cha mẹ một
cách ngẫu nhiên trong quần thể Việc này coi các cá thể là vai trò như nhau.
- Chọn lọc xếp hạng (Rank Selection)
Nếu như ta thực hiện cách chọn Roulette Wheel Selection thì có nhược điểm là: nếu sự khác biệt quá lớn: p i >> pj thì các trường hợp chọn đều rơi vào hết p i dẫn đến hội tụ quá sớm Vì thế để kiểm soát trường hợp này
ta có rất nhiều cách, đây là hai cách đơn giản nhất:
Cách 1: Chọn ngẫu nhiên các cặp cá thể trong quần thể Tạo giá trị R
(0, 1), nếu R < r thì chọn cá thể đầu, ngược lại chọn cá thể sau làm
cá thể cha mẹ Trong đó r là tham số đưa vào.
Cách 2: Chọn 2 cá thể random, giá trị cá thể nào lớn hơn thì chọn làm
cá thể cha mẹ.
- Chọn lọc cạnh tranh (Tournament Selection): Chọn u cá thể trong
quần thể và chọn giá trị cao nhất đưa vào “hồ chứa” Lặp lại quá trình trên
Trang 13cho đến khi “hồ chứa” các cá thể cha mẹ đầy Lúc này quần thể cha mẹ có giá trị thích nghi trung bình rất cao.
- Chọn lọc Boltzmann (Boltzmann Selection)
Lấy ý tưởng từ thuật toán giả luyện thép để tìm minimize hay maximize Điều khiển nhiệt độ làm lạnh thép chậm dần đi nếu muốn tìm minimize và ngược lại
Ví dụ fmax là giá trị thích nghi cao nhất hiện tại Nếu cá thể tiếp theo có độ thích nghi f i mà f i > fmax thì cá thể này được chọn vì cá thể này được chọn với xác suất Boltzmann:
, g là số lượng generate hiện tại, G
là số lượng tối đa của g Giá trị α được chọn nằm trong đoạn [0, 1] Dừng lại khi T = 0.
- Lấy mẫu ngẫu nhiên (Stochastic Universal Sampling)
Nếu muốn chọn ra N mẫu thì khoảng các giữa các mẫu được chọn là 1/N.
Ta cần tạo ngẫu nhiên một số α = [0,1/N] Số này là vị trí được chọn trong quần thể tức là từ vị trí α N, lấy N phần tử trong quần thể.
3.2 Toán tử đột biến
đổi thành 0 Toán tử này chỉ được sử dụng với các gen nhị phân
Cho hai chuỗi được chọn để đột biến:
Trang 14Đảo giá trị của gen đã chọn từ 0 sang 1 và từ 1 thành 0 Kết quả của chuỗi đãđược đột biết là:
hạn tăng hoặc giảm Toán tử này có thể sử dụng cho gen ở kiểu integer hoặcfloat
gen đã chọn Giá trị gen mới bị loại bỏ khỏi giới hạn trên và dưới của gen đó.Toán tử này chỉ dùng cho gen kiểu integer và float
3.3 Toán tử lai ghép
- Lai ghép một điểm (one-point crossover): lựa chọn ngẫu nhiên một điểm lai
ghép Sau đó, sao chép toàn bộ phần trước điểm lai ghép của NST cha Phần sauđiểm lai ghép được sao chép từ NST còn lại
Ví dụ: Cho hai NST cha để lai ghép
Sau khi tiến hành lai ghép một điểm ta có NST con như sau:
- Lai ghép hai điểm (two-point crossover): lựa chọn ngẫu nhiên 2 điểm lai ghép
trong một NST Sau đó, hoán vị hai NST cha giữa những điểm lai này để tạo ra
2 NST mới
Cho 2 NST cha để lai ghép:
Trang 15Hoán vị hai NST giữa các điểm lai ghép, ta được kết quả sau:
- Lai ghép đồng nhất (Uniform crossover): Phép lai ghép đồng nhất quyết định
(xác suất – tỉ lệ trộn) NST cha nào sẽ phân phối giá trị gen trong NST con Phéplai này cho phép NST cha được trộn ở mức độ gen hơn là mức độ phân đoạn(như phép lai 1 hoặc 2 điểm)
Cho 2 chuỗi NST cha:
Nếu tỉ lệ trộn là xấp xỉ 0.5 và phân nửa gen của NST con lấy từ NST Parent 1, phân nửa còn lại lấy từ NST Parent 2
Kết quả sau khi thực hiện phép lai đồng nhất:
- Lai ghép số học: phép lai này cộng tuyến tính hai vector NST cha để tạo ra 2
NST con theo công thức:
Trong đó, a: hệ số trọng lượng ngẫu nhiên được chọn trước phép lai
Cho 2 chuỗi NST cha Mỗi chuỗi có 4 gen kiểu float
Áp dụng công thức trên và giả sử hệ số trọng lượng là 0.7, ta có hai chuỗi kết quả như sau:
Trang 16- Lai ghép Heuristic: Phép lai này sử dụng giá trị thích nghi của 2 NST cha để
quyết định hướng nghiên cứu NST con được tạo ra từ công thức sau:
r: số ngẫu nhiên giữa 0 và 1
Có thể chuỗi kết quả offspring1 không tin cậy Có thể xảy ra nếu r được chọnnhư khi một hoặc nhiều gen rơi ra khỏi phạm vi trên dưới cho phép Vì thế, phéplai heuristic có một tham số n được định nghĩa bởi người dùng, là số lần thử đểtìm r và cho ra NST con đáng tin cậy Nếu sau n lần thử mà không tạo ra NSTcon đáng tin cậy nào, NST cha xấu nhất được trả về như offstring1
4 Các tham số
Xác suất lai ghép: là tham số cho biết tần suất thực hiện toán tử lai ghép Nếu
không có lai ghép, cá thể con sẽ chính là bản sao của cá thể “cha mẹ” Nếu xác suấtlai ghép bằng 100%, khi đó mọi cá thể con đều được tạo ra qua quá trình lai ghép
Xác suất đột biến: là tham số cho biết tần suất đột biến của nhiễm sắc thể Nếu
không có đột biến, thế hệ con được tạo ra ngay sau giai đoạn lai ghép mà không bịthay đổi Ngược lại, một hoặc một số phần của nhiễm sắc thể sẽ bị thay đổi Nếuxác suất đột biến là 100%, toàn bộ nhiễm sắc thể sẽ bị thay đổi Nếu tham số nàybằng 0%, không có gì bị thay đổi hết
Kích thước quần thể: là tham số cho biết có bao nhiêu cá thể (NST) trong 1 thế
hệ của quần thể Nếu có quá ít cá thể, khả năng thực hiện lai ghép rất nhỏ và khi đóchỉ có một vùng tìm kiếm nhỏ mới được khảo sát Ngược lại, việc kích thước quầnthể quá lớn cũng không tốt, do nó sẽ làm chậm quá trình giải bài toán
5 Công thức
Tính độ thích nghi eval( v i) của mỗi nhiễm sắc thể vi(i=1… n)
Trang 17Phát sinh một số ngẫu nhiên r trong khoảng [0, 1]
Nếu r < q1thì chọn nhiễm sắc thể v1, ngược lại chọn nhiễm sắc thể vi (2 ≤ i ≤kích thước quần thể) sao cho qi-1 < r ≤ qi
6 Cấu trúc giải thuật di truyền
Procedure Giải_thuật_di_truyền;
Trang 18Lai tạo các cá thể đã chọn tạo ra P(t) mới;
Đột biến các cá thể trong P(t) theo xác suất p m ; Đánh giá độ phù hợp các cá thể trong tập P(t);
Until (thoả điều kiện dừng);
End;
7 Các giai đoạn của thuật giải di truyền
Giai đoạn 1: Khởi tạo quần thể ban đầu
Tạo quần thể đầu tiên trong thuật giải, là nơi xuất phát quá trình tiến hóa, baogồm tất cả các giá trị thô ban đầu Tùy theo vấn đề của bài toán mà có cách khởiđộng khác nhau Trước một bài toán áp dụng thuật giải di truyền, ta cần phải xácđịnh rõ nhiễm sắc thể và cá thể cho vấn đề, và thông thường đó sẽ kết quả cuốicùng Việc phân tích sẽ dựa trên kết quả là cơ bản nhất
Giai đoạn 2: Đánh giá cá thể
Chắc chắn rằng việc chọn cá thể sẽ thông qua kết quả, hay mục đích của vấn
đề Dựa trên mức độ thích nghi của cá thể, bao gồm những vướng mắc mà cá thể
Trang 19gặp phải Thông thường, đặt mỗi vấn đề nhỏ tương ứng với một giá trị điểm thíchnghi, kết quả đánh giá gồm tổng các số điểm đó Cá thể tốt nhất sẽ có số điểm thấpnhất hoặc lớn nhất Theo thuyết tiến hóa của Darwin, nhiễm sắc thể tốt nhất sẽ tồntại và tạo ra các cá thể con mới
Giai đoạn 3: Lai ghép
Lai ghép nhằm nâng cao kết quả cá thể, do đó, toán tử lai ghép sẽ tạo điềukiện cho tiến trình hội tụ nhanh hay chậm Còn tùy thuộc vào cách tổ chức và phân
bố các nhiễm sắc thể mà chúng ta có xác suất lai ghép nhanh hay chậm
Giai đoạn 4: Đột biến
Cũng giống như lai ghép, toán tử đột biến làm tăng nhanh quá trình hội tụ,nhưng tăng một cách đột ngột, cũng có khi sẽ không gây tác dụng gì một khi khôngthành công Không ai có thể đánh giá được phương pháp đột biến nào tốt hơn, do đó
có một vài phương pháp đơn giản, cũng có vài trường hợp khá phức tạp
Giai đoạn 5: Xét Điều kiện kết thúc
Thoát ra quá trình tiến hóa quần thể, dựa vào bài toán mà có các cách kếtthúc vấn đề khác nhau, một khi đã đạt đến mức yêu cầu Một vài trường hợp thôngthường như sau:
-Kết thúc theo kết quả: một khi đạt đến mức giá trị yêu cầu thì chấm dứtngay quá trình thực hiện
-Kết thúc dựa vào số thế hệ: chọn số thế hệ, quá trình sẽ dừng đúng ngay sốthế hệ đã qui định trước, không cần biết kết quả như thế nào
-Tính theo thời gian: không cần biết đã bao nhiêu thế hệ hay kết quả nào, chỉdựa vào số giờ qui định mà kết thúc
Trang 20-Tổ hợp: dùng nhiều phương án khác nhau cho vấn đề, chẳng hạn như : chạytheo số thế hệ xong sau đó đánh giá cho chạy theo kết quả, hoặc ngược lại.
II BÀI TOÁN LẬP LỊCH
1 Giới thiệu bài toán
Lập lịch có thể được định nghĩa là một bài toán tìm kiếm chuỗi tối ưu đểthực hiện một tập các hoạt động chịu tác động của một tập các ràng buộc cần phảiđược thỏa mãn Người lập lịch thường cố gắng thử đến mức tối đa sự sử dụng các
cá thể, máy móc và tối thiểu thời gian đòi hỏi để hoàn thành toàn bộ quá trình nhằmsắp xếp lịch.Vì thế bài toán lập lịch là một vấn đề rất khó để giải quyết Hiện nay
có nhiều khả năng để phát triển các kỹ thuật hiện tại để giải quyết bài toán này.Những kỹ thuật đó bao gồm: các tiếp cận Trí tuệ nhân tạo như hệ thống tri thức cơ
sở (knowledge-based systems), bài toán thoả mãn ràng buộc, hệ chuyên gia, mạngNơron và các tiếp cận của các Nghiên cứu hoạt động: lập trình tính toán, lập trìnhđộng, tìm kiếm nhánh và đường biên, kỹ thuật mô phỏng, tìm kiếm Tabu và phươngpháp nút cổ chai
2 Khảo sát yêu cầu bài toán
Bài toán đặt ra vấn đề cần sắp xếp thời khoá biếu cho một trường đại học.Cần có sự sắp xếp lịch học cho các lớp tại các phòng ở mỗi địa điểm, sao cho vừaphù hợp lại vừa tiện dụng nhất
Cho số lượng lớp là K Mỗi lớp có một số môn học Ta có D giáo viên, mỗigiáo viên có thể dạy được một số môn nhất định Số môn thực tế được đưa bởi V Yêu cầu lập lịch cho năm ngày trong tuần, và 6 giờ mỗi ngày
3 Khảo sát, thu thập dữ liệu, thông tin, tri thức (DIK)
Danh sách cơ sở dữ liệu cần có:
Danh sách cơ sở trường
Trang 21 Danh sách môn học và số tiết
Bảng phân công giáo viên giảng dạy tại các lớp
Bảng yêu cầu ràng buộc của giáo viên vớI lịch dạy
Bảng yêu cầu ràng buộc của lớp với lịch học
Bảng yêu cầu ràng buộc của phòng với lịch sử dụng phòng đó
4 Hướng giải quyết bài toán
4.1 Ý tưởng
Dựa vào thuật toán di truyền cổ điển
Cấu trúc dữ liệu: Một lịch là một ma trận với n cột và K dòng (số lớp) Mỗi phần
tử của ma trận chỉ ra rằng giáo viên dạy lớp này đang dạy môn nào đó
Minh họa cấu trúc dữ liệu