Tải bản đầy đủ (.pdf) (47 trang)

Nghiên cứu và xây dựng ứng dụng hỗ trợ tự động xếp lịch học theo tín chỉ dựa trên phương pháp tìm kiếm tối ưu

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.13 MB, 47 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO

VIỆN ĐẠI HỌC MỞ HÀ NỘI
------------------------------

BÁO CÁO TỔNG KẾT
ĐỀ TÀI KHOA HỌC VÀ CÔNG NGHỆ CẤP VIỆN

NGHIÊN CỨU VÀ XÂY DỰNG ỨNG DỤNG HỖ TRỢ
TỰ ĐỘNG XẾP LỊCH HỌC THEO TÍN CHỈ DỰA
TRÊN PHƢƠNG PHÁP TÌM KIẾM TỐI ƢU
Mã số: V2015.14

Xác nhận của cơ quan

Chủ nhiệm đề tài

chủ trì đề tài

TS. Dƣơng Thăng Long

Hà Nội – 11/2015


NGHIÊN CỨU VÀ XÂY DỰNG ỨNG DỤNG HỖ TRỢ TỰ ĐỘNG XẾP LỊCH HỌC THEO TÍN CHỈ
DỰA TRÊN PHƢƠNG PHÁP TÌM KIẾM TỐI ƢU

DANH SÁCH THÀNH VIÊN
THAM GIA NGHIÊN CỨU ĐỀ TÀI
VÀ ĐƠN VỊ PHỐI HỢP


1. Danh sách thành viên tham gia nghiên cứu đề tài
ThS Phạm Công Hòa
KS Trần Tiến Dũng
KS Dương Chí Bằng
KS Vương Thu Trang
2. Các đơn vị phối hợp
Khoa Công nghệ thông tin

Đề tài Khoa học Công nghệ cấp Viện 2015 (mã số: V2015.14)

2


NGHIÊN CỨU VÀ XÂY DỰNG ỨNG DỤNG HỖ TRỢ TỰ ĐỘNG XẾP LỊCH HỌC THEO TÍN CHỈ
DỰA TRÊN PHƢƠNG PHÁP TÌM KIẾM TỐI ƢU

MỤC LỤC
DANH MỤC BẢNG BIỂU ................................................................................... 4
DANH MỤC HÌNH VẼ ........................................................................................ 5
DANH MỤC TỪ VIẾT TẮT ............................................................................... 6
PHẦN I: MỞ ĐẦU ................................................................................................ 7
I.1. Tính cấp thiết của đề tài.......................................................................................................7
I.2. Tình hình nghiên cứu...........................................................................................................8
I.3. Mục đích nghiên cứu ...........................................................................................................9
I.4. Đối tượng và phạm vi nghiên cứu .......................................................................................9
I.5. Phương pháp nghiên cứu .....................................................................................................9

PHẦN II: NỘI DUNG VÀ KẾT QUẢ NGHIÊN CỨU ................................... 10
Chƣơng 1. Kiến thức cơ sở về giải thuật di truyền và ứng dụng.................... 10
1.1. Giới thiệu giải thuật di truyền ...........................................................................................10

1.2. Các vấn đề trong giải thuật di truyền ................................................................................13
1.2.1. Biểu diễn lời giải của bài toán .......................................................................................13
1.2.2. Đánh giá cá thể ..............................................................................................................15
1.2.3. Khởi tạo quần thể ban đầu.............................................................................................17
1.2.4. Các phép toán di truyền .................................................................................................17
1.3. Ứng dụng của giải thuật di truyền.....................................................................................23

Chƣơng 2. Ứng dụng giải thuật di truyền trong xếp lich học tín chỉ ............. 25
2.1. Bài toán xếp lịch học tín chỉ .............................................................................................25
2.2. Phương pháp biểu diễn - mã hóa cá thể và đánh giá độ phù hợp......................................31
2.2.1. Phƣơng pháp biểu diễn - mã hóa cá thể ........................................................................31
2.2.2. Đánh giá độ phù hợp .....................................................................................................32
2.3. Các phép toán di truyền áp dụng.......................................................................................33

Chƣơng 3. Xây dựng chƣơng trình phần mềm và thử nghiệm ...................... 36
3.1. Thử nghiệm với bài toán ví dụ mẫu ..................................................................................36
3.2. Thử nghiệm với bài toán thực tế .......................................................................................39

PHẦN III: KẾT LUẬN & KIẾN NGHỊ ........................................................... 45
III.1. Kết luận ...........................................................................................................................45
III.2. Kiến nghị.........................................................................................................................45

Đề tài Khoa học Công nghệ cấp Viện 2015 (mã số: V2015.14)

3


NGHIÊN CỨU VÀ XÂY DỰNG ỨNG DỤNG HỖ TRỢ TỰ ĐỘNG XẾP LỊCH HỌC THEO TÍN CHỈ
DỰA TRÊN PHƢƠNG PHÁP TÌM KIẾM TỐI ƢU


DANH MỤC BẢNG BIỂU
Bảng 2.1. Biểu diễn lịch của các lớp tín chỉ ......................................................... 28
Bảng 3.1- Các tham số của dữ liệu ví dụ thử nghiệm .......................................... 36
Bảng 3.2- Xác định giảng viên vào giảng các lớp tín chỉ..................................... 36
Bảng 3.3- Ràng buộc giữa lớp tín chỉ và phòng học (CR) ................................. 37
Bảng 3.4- Ràng buộc giữa giảng viên và thời gian (LT) ................................... 37
Bảng 3.5- Ràng buộc giữa sinh viên và các lớp tín chỉ (S×C) ............................. 37
Bảng 3.6- Các tham số chạy thuật toán xếp lịch .................................................. 38
Bảng 3.7- Kết quả lịch được xếp theo thuật toán ................................................. 38
Bảng 3.8- Kết quả lịch theo trọng số hàm fitness (w1=0.9, w2=0.01, w4=0.09) ... 39
Bảng 3.9- Xác định trước các giảng viên vào các lớp tín chỉ ............................... 41
Bảng 3.10- Các tham số chạy thuật toán trên dữ liệu thực................................... 42
Bảng 3.11- Lịch học được xếp bởi thuật toán ...................................................... 43

Đề tài Khoa học Công nghệ cấp Viện 2015 (mã số: V2015.14)

4


NGHIÊN CỨU VÀ XÂY DỰNG ỨNG DỤNG HỖ TRỢ TỰ ĐỘNG XẾP LỊCH HỌC THEO TÍN CHỈ
DỰA TRÊN PHƢƠNG PHÁP TÌM KIẾM TỐI ƢU

DANH MỤC HÌNH VẼ
Hình 1.1- Sơ đồ giải thuật di truyền ..................................................................... 12
Hình 1.2- Minh họa kiểu mã hóa nhị phân của hai chuỗi gen .............................. 14
Hình 1.3- Minh họa phương pháp mã hóa hoán vị ............................................... 14
Hình 1.4- Minh họa phương pháp mã hóa giá trị ................................................. 14
Hình 1.5- Minh họa phương pháp mã hóa dạng cây ............................................ 15
Hình 1.6- Minh họa sơ đồ chọn theo bánh xe Roulette ........................................ 18
Hình 1.7- Sơ đồ minh họa phép chọn lọc xếp hạng ............................................. 19

Hình 1.8- Minh họa lai ghép một điểm cắt trên chuỗi nhị phân........................... 20
Hình 1.9- Minh họa phép lai ghép đều ................................................................. 21
Hình 2.1- Biểu diễn lựa chọn mức độ ưu tiên của giảng viên theo thời gian ....... 29
Hình 2.2- Biểu diễn đánh giá mức độ thỏa mãn của giảng viên .......................... 30
Hình 2.3- Sơ đồ chuỗi gen mã hóa lời giải (bảng lịch) ........................................ 32
Hình 3.12- Biểu đồ sự biến đổi độ phù hợp cá thể (fitness) qua các lần tiến hóa 44
Hình 3.13- Biểu đồ sự biến đổi số vi phạm ràng buộc cứng qua các lần tiến hóa 44

Đề tài Khoa học Công nghệ cấp Viện 2015 (mã số: V2015.14)

5


NGHIÊN CỨU VÀ XÂY DỰNG ỨNG DỤNG HỖ TRỢ TỰ ĐỘNG XẾP LỊCH HỌC THEO TÍN CHỈ
DỰA TRÊN PHƢƠNG PHÁP TÌM KIẾM TỐI ƢU

DANH MỤC TỪ VIẾT TẮT
Stt

Từ viết tắt

Ý nghĩa đầy đủ

1

GA

Genetic Algorithm, giải thuật di truyền

2


SA

Simulated Anualing, giải thuật mô phỏng tôi luyện

3

LISP

Locator/Identifier Separation Protocol, là ngôn
ngữ lập trình

4

CTP

Course timetabling problemd, bài toán lập lịch cho
lớp học tín chỉ

5

R

Room, phòng học

6

C

Course, lớp học tín chỉ


7

L

Lecture, giảng viên

8

S

Student, sinh viên

9

T

Timeslot, khe thời gian cho xếp lịch

10

LT

Lecture-Time, ma trận giảng viên và thời gian

11

CC

Course-Course, ma trận ràng buộc giữa các lớp

môn học

12

SC

Student-Course, ma trận ràng buộc giữa sinh viên
và lớp tín chỉ

13

TC

Time-Course, ma trận ràng buộc giữa lớp tín chỉ
và thời gian

14

GV

Giảng viên

Đề tài Khoa học Công nghệ cấp Viện 2015 (mã số: V2015.14)

6


NGHIÊN CỨU VÀ XÂY DỰNG ỨNG DỤNG HỖ TRỢ TỰ ĐỘNG XẾP LỊCH HỌC THEO TÍN CHỈ
DỰA TRÊN PHƢƠNG PHÁP TÌM KIẾM TỐI ƢU


PHẦN I: MỞ ĐẦU
I.1. Tính cấp thiết của đề tài
Bài toán xếp lịch là một bài toán kinh điển, và là một trong những bài toán
rất có ý nghĩa trong nhiều lĩnh vực của thực tế. Tuy nhiên nó thuộc lớp bài toán
khó với nhiều loại đầu vào khác nhau, các ràng buộc giữa các yếu tố và thường
có nhiều mục tiêu, yêu cầu đặt ra. Hiện nay, trong các cơ sở đào tạo và đặc biệt
là đào tạo đại học, công tác xếp lịch còn gặp nhiều khó khăn, đôi khi chúng ta rất
khó để kiểm soát hết các trường hợp của bài toán, vì thế hiệu quả đem lại chưa
cao. Bên cạnh đó, đã có nhiều tác giả nghiên cứu đưa ra các phương pháp để giải
quyết vấn đề này và trong đó, phương pháp tìm kiếm tối ưu dựa trên giải thuật di
truyền chứng tỏ hiệu quả ở nhiều công trình nghiên cứu.
Xếp lịch học theo tín chỉ trong trường đại học có rất nhiều yếu tố phức tạp
hơn so với dạng bài toán lập lịch thông thường, như giáo viên, sinh viên, thời
gian, phòng học, các lớp tín chỉ và đặc biệt là các ràng buộc giữa các yếu tố này.
Tổng quát hơn, bài toán xếp lịch học gồm nhiều yếu tố được xem xét liên quan,
chẳng hạn như việc thi cử, thực hành, giảng đường, vv [6]. Các nghiên cứu của
Even và Itai đề cập trong [6] đã chứng tỏ rằng bài toán lập lịch là thuộc lớp bài
toán NP-đầy đủ. Thông thường, bài toán lập lịch được tiến hành theo cách truyền
thống, bằng trực quan và tính toán trực tiếp của con người. Hiện nay, do sự đa
dạng và nhiều thay đổi của các ràng buộc giữa các yếu tố, đó là những hạn chế
về nguồn lực và sự phức tạp của các yếu tố, giải bài toán lập lịch thường mất rất
nhiều thời gian và nhân lực, kết quả do đó dẫn đến các ràng buộc mềm hầu như
không đạt được, thậm chí không thể thỏa mãn hết các ràng buộc cứng mà phải
chấp nhận sự thỏa hiệp. Vì vậy việc sử dụng máy tính để thực hiện quá trình lập
lịch, không những để cho thấy sự quan tâm nghiên cứu của các tác giả, mà còn
cho phép đạt được các mục tiêu kết quả cao mặc dù có nhiều ràng buộc. Rõ ràng,
điều này dẫn đến tiết kiệm rất nhiều thời gian và công sức.
Trong đề tài này, chúng tôi nghiên cứu sâu về bài toán lập lịch trong đào tạo
tín chỉ tại trường đại học. Cùng với đó là nghiên cứu về giải thuật di truyền, và
có đưa yếu tố nhiệt độ tôi luyện tham gia vào các phép toán di truyền để nhằm

điều khiển quá trình tiến hóa đạt hiệu quả cao. Trên cơ sở nghiên cứu các
phương pháp giải bài toán lập lịch của nhiều tác giả đã đề cập, đề tài sẽ đề xuất
một phương pháp cho bài toán lập lịch theo đào tạo tín chỉ với những điều kiện
Đề tài Khoa học Công nghệ cấp Viện 2015 (mã số: V2015.14)

7


NGHIÊN CỨU VÀ XÂY DỰNG ỨNG DỤNG HỖ TRỢ TỰ ĐỘNG XẾP LỊCH HỌC THEO TÍN CHỈ
DỰA TRÊN PHƢƠNG PHÁP TÌM KIẾM TỐI ƢU

ràng buộc được sử dụng tham số mờ gia tử. Phương pháp đề xuất sẽ sử dụng giải
thuật di truyền có đưa thêm yếu tố nhiệt độ để tác động vào các phép toán di
truyền (đề cập bởi [19]) nhằm đem lại hiệu quả cao.
I.2. Tình hình nghiên cứu
Bài toán lập lịch và phương pháp giải bài toán đã được các học giả nghiên
cứu từ những năm 1960. Trong [6], chỉ ra rằng, Hertz đã đề xuất sử dụng
phương pháp tìm kiếm tabu để giải quyết bài toán lập lịch gồm hai giai đoạn
(TATI/TAG) và chỉ ra rằng cách tiếp này là phù hợp để giải bài toán lập lịch học
và lịch thi với quy mô lớn. Thuật toán di truyền (GA) đã được áp dụng để giải
quyết bài toán lập lịch trong trường đại học nhằm khắc phục những hạn chế hạn
chế trong các phương pháp truyền thống. Thuật toán tối ưu hóa đàn kiến (ACO)
được Nothegger và cộng sự đề cập sử dụng để giải quyết bài toán này. Trong khi
đó, Tassopoulos và Beligiannis áp dụng phương pháp tối ưu hóa bầy đàn để lập
thời gian biểu cho các trường học khác nhau tại Hy Lạp. Al-Betar và cộng sự đề
xuất phương pháp tìm kiếm lai (HHS) để giải quyết bài toán lập lịch cho trường
đại học. Thuật toán HHS tích hợp tối ưu hóa bầy đàn và leo đồi để cân bằng giữa
yếu tố thăm dò và tìm kiếm.
Trong [2] chỉ ra rằng các thuật toán di truyền (GA) là phương pháp thích hợp
có thể được sử dụng để tìm kiếm, giải quyết một vấn đề tối ưu hóa, đặc biệt là

bài toán lập lịch. Các tác giả tập trung vào bài toán lập lịch của trường đại học,
nó có thể được chia thành lập lịch học và lập lịch thi. Theo đó, phương pháp dựa
trên GA được cải tiến để giải quyết bài toán này với việc thay đổi phép chọn lọc,
lai ghép và đột biến để đạt được hiệu quả cao. Các tác giả cũng sử dụng một
chiến lược thay thế, để tránh rơi vào tối ưu địa phương.
M. Abbaszadeh và công sự trong [1] sử dụng thuật toán GA để giải bài toán
lập lịch trong trường đại học, họ đã có các thay đổi về cấu trúc biểu diễn chuỗi
gen, phép đột biến gen nhằm đạt được việc chuyển 15% các cá thể tốt hơn sang
thế hệ sau. Hơn nữa, để tránh rơi vào tối ưu địa phương họ đã xem xét tác động
tham số đột biến, xóa bỏ các chuỗi gen lặp lại và thay thế bằng chuỗi gen tốt
hơn. Kết quả đem lại hiệu quả cao và tối đa hóa độ chính xác đối với các ràng
buộc.
Các tác giả trong [5] đề xuất thuật toán di truyền với các yếu tố ràng buộc
của bài toán sử dụng độ đo mờ (fuzzy) nhằm thích nghi với các ràng buộc thực
Đề tài Khoa học Công nghệ cấp Viện 2015 (mã số: V2015.14)

8


NGHIÊN CỨU VÀ XÂY DỰNG ỨNG DỤNG HỖ TRỢ TỰ ĐỘNG XẾP LỊCH HỌC THEO TÍN CHỈ
DỰA TRÊN PHƢƠNG PHÁP TÌM KIẾM TỐI ƢU

tế, chẳng hạn như yêu cầu của giảng viên đối với thời gian, chuyên môn giảng
dạy.
I.3. Mục đích nghiên cứu
Nghiên cứu áp dụng phương pháp tính toán mềm mà ở đây là giải thuật di
truyền để giải quyết bài toán lập lịch và ứng dụng cho công tác xếp lịch học theo
tín chỉ trong các cơ sở đào tạo đại học, trước hết là ứng dụng tại Khoa CNTT –
Viện Đại học Mở Hà Nội.
I.4. Đối tƣợng và phạm vi nghiên cứu

Nghiên cứu giải thuật di truyền, các vấn đề liên như phương pháp mã hóa cá
thể, phương pháp đánh giá độ phù hợp cá thể theo mục tiêu của bài toán, các
phép toán di truyền. Ở đây, đề tài sẽ nghiên cứu sử dụng tham số nhiệt tôi luyện
để tác động vào quá trình tiến hóa nhằm đem lại hiệu quả cao cho phương pháp.
Nghiên cứu về bài toán lập lịch nói chung, các trường hợp áp dụng trong
thực tế, phương pháp hay giải thuật đã được nghiên cứu và công bố. Phân tích và
áp dụng một số ràng buộc dựa trên tham số mờ gia tử nhằm làm phù hợp hơn
yêu cầu thực tế của bài toán ứng dụng.
Đề xuất phương pháp (hay thuật toán giải) cho bài toán lập lịch, đưa ra
những điều kiện đặc trưng của phạm vi ứng dụng thực tế để có những thiết kế
phù hợp và hiệu quả. Xây dựng chương trình phần mềm và ứng dụng thử nghiệm
ở phạm vi khoa Công nghệ thông tin – Viện Đại học Mở Hà Nội.
I.5. Phƣơng pháp nghiên cứu
Thu thập, khảo sát và hệ thống hóa các kết quả nghiên cứu đã có về vấn đề
ứng dụng giải thuật di truyền cho bài toán lập lịch.
Nghiên cứu các mô hình lý thuyết, các thuật toán kết hợp lập trình thử
nghiệm trên máy tính. Đưa vào ứng dụng trong thực tế để so sánh và đánh giá
hiệu quả của phương pháp.

Đề tài Khoa học Công nghệ cấp Viện 2015 (mã số: V2015.14)

9


NGHIÊN CỨU VÀ XÂY DỰNG ỨNG DỤNG HỖ TRỢ TỰ ĐỘNG XẾP LỊCH HỌC THEO TÍN CHỈ
DỰA TRÊN PHƢƠNG PHÁP TÌM KIẾM TỐI ƢU

PHẦN II: NỘI DUNG VÀ KẾT QUẢ NGHIÊN CỨU
Chƣơng 1. Kiến thức cơ sở về giải thuật di truyền và ứng dụng
1.1. Giới thiệu giải thuật di truyền

Giải thuật di truyền (Gennetic Algorithims – GA) là một kỹ thuật trong tính
toán mềm giúp giải quyết bài toán bằng cách mô phỏng sự tiến hóa tự nhiên của
con người hay của sinh vật nói chung trong điều kiện quy định sẵn của môi
trường.
Giải thuật di truyền cũng như các giải thuật tiến hóa nói chung hình thành
dựa trên quan niệm cho rằng quá trình tiến hóa tự nhiên là quá trình hoàn hảo
nhất, hợp lý nhất và tự nó đã mang tính tối ưu. Quá trình tiến hóa thể hiện tính
tối ưu ở chỗ, thế hệ sau bao giờ cũng tốt hơn (phát triển và hoàn thiện hơn) thế
hệ trước. Tiến hóa được duy trì nhờ 2 quá trình cơ bản: sinh sản và chọn lọc.
Trong quá trình tiến hóa các thế hệ mới luôn được sinh ra để bổ sung, thay thế
cho thế hệ cũ. Những cá thể không tốt sẽ bị đào thải. Các cá thể mới sinh ra
trong quá trình tiến hóa nhờ sự lai ghép thế hệ cha mẹ. Một cá thể mới có thể
mang những tính trạng của cha mẹ (di truyền), cũng có thể mang những tính
trạng hoàn toàn khác (đột biến).
Giải thuật di truyền thực hiện tiến trình tìm kiếm lời giải tối ưu theo nhiều
hướng bằng cách duy trì một quần thể các lời giải và thúc đẩy sự hình thành và
trao đổi thông tin giữa các hướng này. Quần thể trải qua quá trình tiến hóa, ở
mỗi thế hệ lại tái sinh các lời giải tương đối “tốt” trong khi các lời giải tương đối
“xấu” thì chết đi. Để phân biệt các lời giải khác nhau (tốt – xấu) thì ta sử dụng
hàm mục tiêu để đánh giá.
Giải thuật di truyền (GA) là một trong những mô hình tính toán phổ biến và
thành công trong lĩnh vực tính toán mềm [20]. Cùng với các kỹ thuật tính toán
thông minh khác như tính toán mờ (fuzzy computing), mạng Nơ-ron (neural
networks), hệ đa tác tử (multiagent systems), trí tuệ bầy đàn (swarm
intelligence), giải thuật di truyền ngày càng phát triển, được áp dụng rộng rãi
trong các lĩnh vực của cuộc sống. Có thể nói, GA đã bước đầu được áp dụng
thành công trong các trường hợp, mà việc mô tả toán học cho bài toán gặp rất
nhiều khó khăn. Ví dụ: các hệ thống phức tạp (complex systems) với các hàm
mục tiêu ẩn và các mối ràng buộc phức tạp, các bài toán thiết kế với các hàm
Đề tài Khoa học Công nghệ cấp Viện 2015 (mã số: V2015.14)


10


NGHIÊN CỨU VÀ XÂY DỰNG ỨNG DỤNG HỖ TRỢ TỰ ĐỘNG XẾP LỊCH HỌC THEO TÍN CHỈ
DỰA TRÊN PHƢƠNG PHÁP TÌM KIẾM TỐI ƢU

mục tiêu quá phức tạp không tuyến tính, hay các bài toán lập kế hoạch/lập lịch
với không gian tìm kiếm NP-khó (NP-hard).
Tương tự thuật toán GA, thuật toán SA [19] là những phương pháp thích
nghi để tìm kiếm tối ưu. Trong khi GA là một thuật toán tìm kiếm ngẫu nhiên
chủ yếu dựa trên hai phép toán gen là lai ghép và đột biến thì SA được xem như
một thuật toán áp dụng kỹ thuật “leo đồi” theo xác suất. Đã có nhiều tác giả
nghiên cứu áp dụng GA và SA để giải bài toán tối ưu. Tuy nhiên, mỗi thuật toán
đều có những thế mạnh riêng và một số tác giả đã kết hợp hai thuật toán trên làm
tăng sức mạnh tìm kiếm. Trong nhiều nghiên cứu, các tác giả đã nhúng tham số
nhiệt độ T mô phỏng nhiệt tôi luyện trong SA để điều khiển các phép toán gen
của GA. Trong đó, các tham số xác suất để chọn lọc, lai ghép và đột biến được
thay đổi qua từng thế hệ di truyền, chúng được tính dựa trên tham số nhiệt độ
của thế hệ hiện tại. Tham số nhiệt ban đầu được tính dựa trên số thế hệ tiến hóa
(thường khá lớn đảm bảo tính đa dạng của quần thể), sau mỗi thế hệ tham số
nhiệt giảm dần để đảm bảo tính hội tụ và tính ổn định. Kết hợp này phù hợp với
các chiến lược thay đổi tham số trong GA, làm tăng tốc độ hội tụ tìm kiếm và
hiệu quả của thuật toán, ta gọi đây là thuật toán di truyền lai (SGA).
Theo [20], giải thuật di truyền (hay giải thuật tiến hóa nói chung) là một
trong những phát triển quan trọng của những nhà nghiên cứu về tính toán ứng
dụng cuối thế kỷ trước trong việc giải xấp xỉ các bài toán tối ưu toàn cục. Việc
khai thác nguyên lí tiến hóa như là một định hướng heuristics đã giúp cho giải
thuật di truyền giải quyết hiệu quả các bài toán tối ưu (với các lời giải chấp nhận
được) mà không cần sử dụng các điều kiện truyền thống (liên tục hay khả vi)

như là điều kiện tiên quyết. Một trong những đặc tính quan trọng của giải thuật
di truyền là làm việc theo quần thể các giải pháp. Việc tìm kiếm bây giờ được
thực hiện song song song trên nhiều điểm (multipoints). Tuy nhiên, đây không
phải là là thuật toán tìm kiếm đa điểm đơn thuần vì các điểm có tương tác với
nhau theo nguyên lí tiến hóa tự nhiên. Trong ngữ cảnh sử dụng giải thuật di
truyền, người ta có thể dùng khái niệm “cá thể” tương đương với khái niệm “giải
pháp”.
Sơ đồ tổng thể của thuật toán di truyền nói chung được mô tả như sau:

Đề tài Khoa học Công nghệ cấp Viện 2015 (mã số: V2015.14)

11


NGHIÊN CỨU VÀ XÂY DỰNG ỨNG DỤNG HỖ TRỢ TỰ ĐỘNG XẾP LỊCH HỌC THEO TÍN CHỈ
DỰA TRÊN PHƢƠNG PHÁP TÌM KIẾM TỐI ƢU
Begin

Nhận các tham số đầu vào của bài toán

Khởi tạo quần thể ban đầu

Tính giá trị thích nghi

Điều kiện dừng

Đ

Lựa chọn giải pháp tốt nhất


S

Chọn lọc

Lai ghép

Đột biến

Tái tạo

End

Hình 1.1- Sơ đồ giải thuật di truyền
Các bước của giải thuật di truyền trong sơ đồ trên có thể được mô tả chi tiết
như sau:
• Bƣớc 1: Nhập các tham số đầu vào của bài toán, thiết lập các tham số cho
thuật toán từ các tham số đầu vào.
• Bƣớc 2: Xuất phát với thế hệ khởi đầu t=0; Khởi tạo quần thể xuất phát P(t)
= {x1, x2,… ,xN} ngẫu nhiên, với N là số lượng cá thể tại mỗi thế hệ (độ lớn của
quần thể).
• Bƣớc 3: Tính giá trị thích nghi hay còn gọi là hàm mục tiêu (fitness) của
các cá thể trong P(t).
• Bƣớc 4: Kiểm tra điều kiện dừng thuật toán, có thể đạt được cá thể tốt nhất
cần tìm kiếm hoặc đạt đến thế cuối cùng được thiết lập. Trường hợp chưa đạt,
thuật toán chuyển sang bước tiếp ở sau để thực hiện tiến hóa.

Đề tài Khoa học Công nghệ cấp Viện 2015 (mã số: V2015.14)

12



NGHIÊN CỨU VÀ XÂY DỰNG ỨNG DỤNG HỖ TRỢ TỰ ĐỘNG XẾP LỊCH HỌC THEO TÍN CHỈ
DỰA TRÊN PHƢƠNG PHÁP TÌM KIẾM TỐI ƢU

• Bƣớc 5: Chọn lọc các cá thể từ quần thể hiện tại để tạo bể lai ghép MP =
se{P(t)} gồm các thể đóng vai trò là bố mẹ, với se là toán tử lựa chọn.
• Bƣớc 6: Thực hiện lại ghép để tạo quần thể P’(t) = cr{MP} gồm các thể
con, với cr là toán tử lai ghép.
• Bƣớc 7: Thực hiện đột biến các cá thể trong P’(t) để tạo quần thể mới P”(t)
= mu{P’(t)} gồm các cá thể con sau khi áp dụng phép đột biến, với mu là toán tử
đột biến.
• Bƣớc 7: Xác định P(t+1) = P”(t), đặt t = t+1 và quay lại Bước 3.
1.2. Các vấn đề trong giải thuật di truyền
1.2.1. Biểu diễn lời giải của bài toán

Biểu diễn lời giải của bài toán hay còn gọi là mã hóa cá thể (chromosome
encoding) là việc biểu diễn một ứng viên lời giải của bài toán gồm nhiều yếu tố,
nhiều tham số thành một chuỗi gen (chromosome), một hoặc một số gen biểu
diễn cho một thành tố trong lời giải. Trong giải thuật di truyền cách mã hóa cá
thể rất quan trọng, nó không chỉ quyết định đến hiệu quả của thuật toán mà còn
ảnh hướng đến việc áp dụng các toán tử tiến hóa trong các bước lai ghép và đột
biến. Với đặc trưng của mỗi bài toán khác nhau chúng ta có thể có nhiều cách
biểu diễn cá thể.
Một trong những cách biểu diễn truyền thống của GA là biểu diễn nhị phân.
Với phép biểu diễn này, lời giải cho bài toán được biểu diễn như là một véc-tơ
gồm các chữ số nhị phân, trong đó chia thành các đoạn gọi là nhiễm sắc thể
(chromosome). Mỗi nhiễm sắc thể bao gồm nhiều gen, trong đó một gen đại diện
cho một tham số thành phần của lời giải. Cách biểu diễn thứ hai cũng thường
dùng là biểu diễn dạng giá trị (số nguyên hoặc số thực hoặc các ký tự). Với phép
biểu diễn này, các toán tử tiến hóa sẽ thực hiện trực tiếp trên các giá trị số

(genes) của cá thể. Phương pháp biểu diễn thứ ba là mã hóa hoán vị, trong đó lời
giải của bài toán là một hoán vị các tham số biểu diễn. Cuối cùng là phương
pháp mã hóa dưới dạng cây dựa trên lời định đạng giải của bài toán cần giải
quyết. Chi tiết các phương pháp mã hóa được mô tả như sau [21].
a) Mã hóa nhị phân
Đây là hình thức phổ biến nhất của mã hóa trong đó các giá trị dữ liệu được
chuyển đổi thành các chuỗi nhị phân. Mã hóa nhị phân cho nhiều nhiễm sắc thể
Đề tài Khoa học Công nghệ cấp Viện 2015 (mã số: V2015.14)

13


NGHIÊN CỨU VÀ XÂY DỰNG ỨNG DỤNG HỖ TRỢ TỰ ĐỘNG XẾP LỊCH HỌC THEO TÍN CHỈ
DỰA TRÊN PHƢƠNG PHÁP TÌM KIẾM TỐI ƢU

với một số lượng nhỏ của các alen. Một nhiễm sắc thể được biểu diễn trong bảng
mã nhị phân như thể hiện trong hình 1.2.

Hình 1.2- Minh họa kiểu mã hóa nhị phân của hai chuỗi gen
b) Mã hóa hoán vị
Mã hóa hoán vị là thích hợp nhất cho bài toán sắp thứ tự hoặc xếp hàng.
Trong đó, bài toán người đi du lịch là một bài toán thách thức nổi tiếng trong tối
ưu hóa, nơi mà phương pháp mã hóa hoán vị được sử dụng nếu áp dụng giải
thuật di truyền. Trong mã hóa hoán vị, mỗi nhiễm sắc thể là một chuỗi biểu diễn
một hoán vị tương ứng lời giải bài toán như thể hiện trong hình 1.3.

Hình 1.3- Minh họa phương pháp mã hóa hoán vị
c) Mã hóa giá trị
Mã hóa trị có thể được cấu thành từ dạng số (nguyên hoặc thực), các ký tự
tạo nên một bản thể đối tượng phức tạp. Mã hóa giá trị là kỹ thuật trong đó mỗi

nhiễm sắc thể là một chuỗi các giá trị và kiểu mã hóa này được sử dụng một khi
nhiều các giá trị phức hợp được yêu cầu. Nó có thể được thể hiện như thể hiện
trong hình 1.4.

Hình 1.4- Minh họa phương pháp mã hóa giá trị

Đề tài Khoa học Công nghệ cấp Viện 2015 (mã số: V2015.14)

14


NGHIÊN CỨU VÀ XÂY DỰNG ỨNG DỤNG HỖ TRỢ TỰ ĐỘNG XẾP LỊCH HỌC THEO TÍN CHỈ
DỰA TRÊN PHƢƠNG PHÁP TÌM KIẾM TỐI ƢU

d) Mã hóa dạng cây
Là phương pháp phù hợp cho việc tiến hóa các biểu thức hoặc tiến hóa các
chương trình, chẳng hạn lập trình tiến hóa. Trong mã hóa dạng cây, mỗi nhiễm
sắc thể là một cây các đối tượng, hàm hoặc các lệnh trong ngôn ngữ lập trình.
Ngôn ngữ lập trình LISP (Locator/identifier separation protocol) được sử
dụng cho kiểu mã hóa này. Chương trình LISP có thể được biểu diễn trong một
cấu trúc cây với hai phép lai ghép và đột biến. Trong mã hóa dạng cây, các
nhiễm sắc thể được biểu diễn như thể hiện trong hình 1.5.

Hình 1.5- Minh họa phương pháp mã hóa dạng cây
Một điều đáng quan tâm là các phương pháp mã hóa ở trên có thể biểu diễn
trực tiếp lời giải của bài toán, tức là các tham số trong lời giải được thể hiện rõ
trong cách mã hóa. Tuy nhiên, trong một số bài toán hoặc các trường hợp đặc
biệt, lời giải bài toán khó để biểu diễn trực tiếp và do đó cần phải áp dụng việc
biễn diễn gián tiếp lời giải cho cá thể của GA. Theo cách này, chúng ta cần một
công cụ để sinh đầy đủ lời giải của bài toán từ cá thể được mã hóa và thường

được xây dựng bởi một đơn vị hàm hoặc đơn vị chương trình.
Theo [21], không có bất kỳ một công cụ hoặc phương pháp nào để xác định
việc sử dụng loại lược đồ mã hóa nào là thích hợp cho một vấn đề cụ thể, thay
vào đó, nó phụ thuộc vào cụ thể từng bài toán ứng dụng và các yêu cầu của bài
toán.
1.2.2. Đánh giá cá thể

Việc đánh giá cá thể (là biểu diễn lời giải ứng viên của bài toán) nhằm xác
định mức độ tốt xấu của lời giải tương ứng đối với bài toán. Thông thường để
đánh giá cá thể, chúng ta sử dụng một hàm để tính toán ra một giá trị thực với

Đề tài Khoa học Công nghệ cấp Viện 2015 (mã số: V2015.14)

15


NGHIÊN CỨU VÀ XÂY DỰNG ỨNG DỤNG HỖ TRỢ TỰ ĐỘNG XẾP LỊCH HỌC THEO TÍN CHỈ
DỰA TRÊN PHƢƠNG PHÁP TÌM KIẾM TỐI ƢU

mục đích đo lường độ phù hợp của lời giải (fitness). Giá trị của hàm là giá trị độ
phù hợp.
Hàm fitness là một dạng đặc biệt để tổng hợp các mục tiêu của bài toán thành
một giá trị đơn, giá trị này nhằm xác định mức độ gần với lời giải đúng của bài
toán cho lời giải ứng viên trong biểu diễn của cá thể.
Đặc biệt, trong lĩnh vực lập trình di truyền và các thuật toán di truyền, mỗi
lời giải ứng viên thường được biểu diễn như là một chuỗi các con số (nhiễm sắc
thể - chromosome). Sau mỗi đợt thử, hoặc kiểm nghiệm, ý tưởng là để xóa bỏ
các lời giải tồi, và nhân giống những lời giải mới từ các lời giải tốt. Mỗi lời giải,
do đó, cần phải được ghi nhận để chỉ cách biến đổi nó đến lời giải đúng của bài
toán. Điều này có được bằng cách áp dụng hàm fitness để thử, hoặc kiểm

nghiệm, xác định kết quả thu được từ các giải pháp ứng viên.
Việc thiết kế hàm fitness trong thuật toán di truyền không thể được xem nhẹ,
những nỗ lực tham gia thiết kế một hàm fitness hoàn toàn khả thi là rất cần thiết.
Nếu chúng ta có một thiết kế hàm fitness tồi, thuật toán di truyền hoặc sẽ hội tụ
về một giải pháp không phù hợp, hoặc sẽ gặp khó khăn khi hội tụ toàn cục.
Hơn nữa, hàm fitness không những phải tương quan chặt chẽ với mục tiêu
của bài toán, mà nó cũng phải được thiết kế để có thể tính toán một cách nhanh
chóng. Tốc độ thực hiện của thuật toán trong quá trình tiến hóa là rất quan trọng,
thuật toán di truyền là điển hình trong việc giải quyết các bài toán tối ưu phức
tạp, cần phải lặp lại nhiều lầm để tạo ra một lời giải chấp nhận được cho một bài
toán.
Hai lớp hàm fitness thường được xem xét thiết kế sử dụng: một là hàm
fitness không thay đổi cho mọi đánh giá cá thể; hai là hàm fitness có thể thay đổi
cấu trúc tính toán trong quá trình tiến hóa.
Việc định nghĩa rõ ràng một hàm fitness là không đơn giản trong nhiều
trường hợp và thường được thực hiện lặp đi lặp lại nếu lời giải ứng viên sinh bởi
GA là không biểu diễn trực tiếp những ý đáp số của bài toán cần. Trong một số
trường hợp, nó là rất khó hoặc không thể đưa ra ngay cả với một dự đoán về
những gì cần định nghĩa cho hàm fitness. Các thuật toán di truyền tương tác giải
quyết khó khăn này bằng cách đưa đánh giá độ phù hợp cá thể của GA cho các
bộ phận bên ngoài (thường là con người).

Đề tài Khoa học Công nghệ cấp Viện 2015 (mã số: V2015.14)

16


NGHIÊN CỨU VÀ XÂY DỰNG ỨNG DỤNG HỖ TRỢ TỰ ĐỘNG XẾP LỊCH HỌC THEO TÍN CHỈ
DỰA TRÊN PHƢƠNG PHÁP TÌM KIẾM TỐI ƢU


1.2.3. Khởi tạo quần thể ban đầu

Là quá trình sinh ngẫu nhiên các cá thể, mỗi cá thể gồm chuỗi nhiễm sắc thể
là các gen biểu diễn lời giải của bài toán. Mỗi gen theo phương pháp biểu diễn sẽ
có một miền giá trị và chúng ta sẽ khởi tạo giá trị ngẫu nhiên trong miền đó. Một
số trường hợp biểu diễn cần phải kiểm soát việc khởi tạo để sao cho lời giải
được biểu diễn trong cá thể tạo ra không mâu thuẫn và vi phạm các điều kiện đặt
ra của bài toán. Tạo quần thể khởi đầu trong giải thuật di truyền là nơi xuất phát
của quá trình tiến hóa, bao gồm tất cả các giá trị thô ban đầu. Tùy theo yêu cầu
của từng bài toán mà chúng ta có thể có các cách khởi tạo khác nhau.
1.2.4. Các phép toán di truyền

a) Phép chọn lọc (selection)
Phép chọn lọc là một phần quan trọng trong thuật toán di truyền (GA), dựa
trên một tiêu chí đánh giá (hàm fitness) để trả về một phép đo giá trị cho bất kỳ
nhiễm sắc thể trong không gian của bài toán. Đó là giai đoạn của giải thuật di
truyền nhằm thực hiện chọn một tập cá thể bố mẹ từ các thể của thế hệ hiện tại
để thực hiện các phép toán lai ghép. Các kỹ thuật thường được sử dụng để chọn
lọc các nhiễm sắc thể là phương pháp bánh xe Roulette, chọn lọc theo xếp hạng
và chọn lọc dựa trên trạng thái ổn định.
- Chọn lọc theo bánh xe Roulette
Trong phương pháp này, các cá thể bố mẹ được chọn lọc dựa trên độ phù
hợp cá thể (fitness). Theo đó, các cá thể ở thế hệ hiện tại có chuỗi gen tốt hơn sẽ
có nhiều cơ hội để được chọn làm bố mẹ cho lai ghép. Đây là phương pháp phổ
biến nhất để thực hiện phép chọn lọc theo tỷ lệ của độ phù hợp cá thể. Mỗi cá thể
được gắn với một phần của bánh xe Roulette, và kích thước của mỗi phần là tỷ lệ
thuận với độ phù hợp của cá thể đó, tức là giá trị độ phù hợp càng lớn thì kích
thước phần bánh xe Roulette càng to. Cơ chế chọn lọc theo phương pháp bánh
xe Roulette được mô tả như sau:
Bƣớc 1) Tính tổng độ phù hợp của tất cả các cá thể trong quần thể, từ đây có

thể xác định tỷ lệ phần trăm tương ứng phần bánh xe Roulette cho mỗi cá thể.
Bƣớc 2) Lấy số ngẫu nhiên trong đoạn [0,1].
Bƣớc 3) Đi từ đầu và qua lần lượt các cá thể trong quần thể, đồng thời tính
tổng mức phần trăm đã xác định ở bước 1 của mỗi cá thể đi qua. Khi một cá thể
Đề tài Khoa học Công nghệ cấp Viện 2015 (mã số: V2015.14)

17


NGHIÊN CỨU VÀ XÂY DỰNG ỨNG DỤNG HỖ TRỢ TỰ ĐỘNG XẾP LỊCH HỌC THEO TÍN CHỈ
DỰA TRÊN PHƢƠNG PHÁP TÌM KIẾM TỐI ƢU

mà tại đó số tổng này là nhiều hơn hoặc bằng giá trị lấy ở bước 2 thì dừng lại và
trả về cá thể đó.
Hình 1.6 cho thấy bánh xe Roulette có sáu cá thể (F1,F2,…,F6) với giá trị
fitness khác nhau. Cá thể thứ sáu chiếm phần bánh xe to hơn so các cá thể còn
lại vì nó có độ phù hợp lớn nhất. Điều này với hy vọng rằng xác suất để bánh xe
Roulette chọn cá thể thứ sáu cao hơn bất kỳ cá thể nào khác.

Hình 1.6- Minh họa sơ đồ chọn theo bánh xe Roulette
- Phương pháp chọn lọc xếp hạng
Việc áp dụng phương pháp chọn lọc theo bánh xe Roulette là không phù hợp
trong các thuật toán di truyền (GA) khi mà giá trị độ phù hợp của các cá thể là có
sự khác nhau rất lớn. Nó là một kỹ thuật hội tụ chậm, trong đó việc xếp hạng các
cá thể theo các tiêu chí nhất định và mỗi nhiễm sắc thể của cá thể nhận giá trị độ
phù hợp được xác định dựa trên bảng xếp hạng này. Phương pháp này ngăn chặn
sự hội tụ nhanh vào lời giải cục bộ của thuật toán. Các cá thể trong quần thể
được xếp hạng dựa trên giá trị độ phù hợp và kỳ vọng của mỗi cá thể được lựa
chọn phụ thuộc vào thứ hạng của nó chứ không phải là giá trị độ phù hợp tuyệt
đối của nó.

Phương pháp chọn lọc xếp hạng được thể hiện trong hình 1.7. Ví dụ, nếu giá
trị fitness của cá thể tốt nhất là 80%, chu vi của nó chiếm 80% của bánh xe
roulette và vì vậy các cá thể khác sẽ có ít cơ hội để được lựa chọn. Việc chọn lọc
theo thứ hạng được thực hiện như sau, đầu tiên xếp các cá thể theo giá trị fitness
của chúng và sau đó mỗi nhiễm sắc thể (của cá thể) nhận thứ tự xếp hạng. Cá thể
kém nhất sẽ là giá độ phù hợp fitness bằng 1, cá thể kém thứ hai là giá trị độ phù
Đề tài Khoa học Công nghệ cấp Viện 2015 (mã số: V2015.14)

18


NGHIÊN CỨU VÀ XÂY DỰNG ỨNG DỤNG HỖ TRỢ TỰ ĐỘNG XẾP LỊCH HỌC THEO TÍN CHỈ
DỰA TRÊN PHƢƠNG PHÁP TÌM KIẾM TỐI ƢU

hợp bằng 2, và một trong những cá thể tốt nhất sẽ có giá trị fitness là n, với n là
số lượng cá thể trong quần thể.

Hình 1.7- Sơ đồ minh họa phép chọn lọc xếp hạng
- Chọn lọc theo trạng thái ổn định
Phương pháp này thay thế một số cá thể trong mỗi thế hệ, và không phải là
một phương pháp điển hình cho phép chọn lọc thành các thể bố mẹ. Chỉ có một
số lượng nhỏ các thể con mới được tạo ra thay thế vào cá thể bố mẹ tương ứng.
Ý tưởng chính của chọn lọc theo trạng thái ổn định là việc giữa lại phần lớn các
nhiễm sắc thể của các thể trong thế hệ kế tiếp.
- Chọn lọc cạnh tranh
Chọn K cá thể từ quần thể hiện tại một cách ngẫu nhiên và chọn cá thể tốt
nhất trong K cá thể đó để sao chép sao chép sang quần thể tạm thời. Lặp lại bước
chọn trên N lần chúng ta sẽ có quần thể tạm thời làm quần thể bố mẹ. Giá trị K
được gọi là kích cỡ của chọn lọc cạnh tranh. Khi K=2 chúng ta chọn lọc cạnh
tranh nhị phân.

b) Phép lai ghép (crossover)
Nó là quá trình trong đó các gen được lựa chọn từ các nhiễm sắc thể của bố
mẹ (parents) để tạo ra cá thể con (children hoặc offspring) mới. Phép lai ghép
thường được áp dụng theo một xác suất lai ghép là pc. Phép lai ghép có thể được
thực hiện với mã hóa nhị phân, mã hóa hoán vị, mã hóa giá trị và mã hóa dạng
cây.

Đề tài Khoa học Công nghệ cấp Viện 2015 (mã số: V2015.14)

19


NGHIÊN CỨU VÀ XÂY DỰNG ỨNG DỤNG HỖ TRỢ TỰ ĐỘNG XẾP LỊCH HỌC THEO TÍN CHỈ
DỰA TRÊN PHƢƠNG PHÁP TÌM KIẾM TỐI ƢU

Trong sinh sản hữu tính, theo cách mà phép lai ghép xuất hiện trong thế giới
thực, các sinh vật được di truyền từ cả hai bố mẹ là hỗn hợp (trộn) các gen từ bố
mẹ của chúng. Thông thường, nhiễm sắc thể được chia tách ngẫu nhiên và sáp
nhập, kết quả là cá thể con có một số gen đến từ một trong hai bố mẹ trong khi
những gen khác đến từ cá thể bố mẹ còn lại.
Phép lai ghép là một công cụ rất mạnh để sinh cá thể mới và duy trì sự đa
dạng trong di truyền, theo đó đặc điểm nổi bật là cá thể bố mẹ tốt thì cũng sản
sinh cá thể con tốt hoặc thậm chí còn tốt hơn bố mẹ. Một số nghiên cứu [22] đã
đi đến kết luận rằng lai ghép là lý do tại sao các loài sinh sản hữu tính đã thích
nghi nhanh hơn so với những loài sinh sản vô tính.
Về cơ bản, lai ghép là việc trao đổi gen giữa các nhiễm sắc thể của hai bố
mẹ. Trong trường hợp đơn giản, chúng ta có thể nhận ra quá trình này bằng cách
cắt hai chuỗi gen của bố mẹ tại một vị trí được chọn ngẫu nhiên và hoán đổi hai
phần đuôi sẽ tạo hai cá thể con mới. Quá trình này, chúng ta sẽ gọi là lai ghép
một điểm cắt (one-point crossover), xem trong hình 1.8.


Hình 1.8- Minh họa lai ghép một điểm cắt trên chuỗi nhị phân
Theo [22], trong các thuật toán GA đơn giản, ngoài lại ghép một điểm cắt,
chúng ta có thể thực hiện lai ghép N điểm cắt, lai ghép phân đoạn, lai ghép đều,
lai ghép hỗn hợp.
- Phép lai ghép N-điểm cắt (N-point crossover): Thay vì chỉ có một, N điểm
cắt được lựa chọn ngẫu nhiên trên chiều dài chuỗi gen. Trong đó, mỗi đoạn cắt
số chẵn tính từ đầu là đổi chỗ trên hai bố mẹ để tạo hai cá thể con. Theo cách
này, lai ghép hai điểm cắt là đặc biệt quan trọng.
- Lai ghép phân đoạn (segmented crossover): Tương tự như lai ghép N-điểm
cắt nhưng có sự khác biệt đó là số các điểm có thể khác nhau trong quá trình tiến
hóa. Tức N là không cố định.
Đề tài Khoa học Công nghệ cấp Viện 2015 (mã số: V2015.14)

20


NGHIÊN CỨU VÀ XÂY DỰNG ỨNG DỤNG HỖ TRỢ TỰ ĐỘNG XẾP LỊCH HỌC THEO TÍN CHỈ
DỰA TRÊN PHƢƠNG PHÁP TÌM KIẾM TỐI ƢU

- Lai ghép đều (uniform crossover): Với mỗi vị trí trên chiều dài chuỗi gen,
sẽ quyết định ngẫu nhiên xem giá trị gen tại vị trí đó được đổi chỗ trên hai bố mẹ
hay không. Minh họa bởi hình sau.

Hình 1.9- Minh họa phép lai ghép đều
- Lai ghép hỗn hợp: Trước hết một hoán vị ngẫu nhiên được chọn để áp dụng
trên hai bố mẹ, sau đó lai ghép N-điểm cắt được áp dụng tạo hai cá thể con. Cuối
cùng, các cá thể con được biến đổi ngược trở lại với hoán vị của bố mẹ tương
ứng.
Ngoài ra, tùy vào từng phương pháp biểu diễn, các nhà nghiên cứu [21] đề

xuất áp dụng nhiều biến thể của phép lại ghép khác nhau nhằm đem lại hiệu quả
cho thuật toán được áp dụng đối với bài toán tương ứng. Chẳng hạn như lại ghép
toán học (Arithmetic Crossover), lai ghép theo mã hóa hoán vị (Permutation
encoding crossover), lai ghép theo mã hóa giá trị (Value encoding crossover) hay
lai ghép theo mã hóa dạng cây (Tree encoding crossover).
c) Phép đột biến (mutation)
Hội tụ sớm là một vấn đề quan trọng trong hầu hết các kỹ thuật tối ưu, bao
gồm quần thể mà chúng ta đạt được khi chuỗi gen của bố mẹ có độ phù hợp cao
trong quần thể sinh sản nhiều cá thể con tương tự nhau trong thời gian đầu của
tiến hóa. Phép lai ghép của thuật toán di truyền không thể tạo ra con cái hoàn
toàn khác với cha mẹ của chúng, vì những thông tin có được sử dụng để lai ghép
trên chuỗi gen. Một phép toán khác đó là đột biến, có thể tìm kiếm trên các khu
vực mới trong không gian lời giải của bài toán, đây là sự tương phản với lai
ghép. Lai ghép được xem như là phép khai thác trong khi đột biến như là phép
thăm dò hay khám phá. Giống như lai ghép, đột biến cũng có thể được thực hiện
cho tất cả các loại kỹ thuật mã hóa cá thể.
Trong sinh sản tự nhiên, xác suất mà một gen nào đó bị đột biến là gần như
bằng nhau cho tất cả các gen. Tuy nhiên, chúng ta cần một xác suất đột biến pm
Đề tài Khoa học Công nghệ cấp Viện 2015 (mã số: V2015.14)

21


NGHIÊN CỨU VÀ XÂY DỰNG ỨNG DỤNG HỖ TRỢ TỰ ĐỘNG XẾP LỊCH HỌC THEO TÍN CHỈ
DỰA TRÊN PHƢƠNG PHÁP TÌM KIẾM TỐI ƢU

đủ bé để quá trình tiến hóa không bị phân tán lung tung dẫn đến khó hội tụ.
Tương tự như phép lai ghép, sự lựa chọn phù hợp kỹ thuật đột biến phụ thuộc
vào phương pháp mã hóa cá thể và chính bài toán đang giải quyết. Chúng ta sẽ
đề cập đến một vài phép đột biến như sau [22].

- Đột biến đảo ngược: chọn hai vị trí ngẫu nhiên trong một nhiễm sắc thể và
sau đó, lấy đảo ngược chuỗi gen giữa hai vị trí này.
Ví dụ:
Nhiễm sắc thể ban đầu:

938571642

Nhiễm sắc thể sau khi đột biến : 9 3 1 7 5 8 6 4 2
- Đột biến chèn: chọn ngẫu nhiên một gen và sau đó chèn nó vào vị trí ngẫu
nhiên khác.
Ví dụ:
Nhiễm sắc thể: 9 3 8 5 7 1 6 4 2
Sau đột biến: 9 3 5 7 8 1 6 4 2
- Đột biến thay thế: chọn ngẫu nhiên một chuỗi con và chèn nó vào một vị trí
ngẫu nhiên khác. Đột biến chèn có thể được xem như trường hợp đặc biệt của
đột biến thay thế, trong đó, chuỗi con chỉ chứa một gen.
Ví dụ:
Nhiễm sắc thể: 9 3 8 5 7 1 6 4 2
Sau đột biến: 9 3 6 4 8 5 7 1 2
- Đột biến tương hỗ: chọn ngẫu nhiên hai vị trí và sau đó hoán vị gen trên
những vị trí này.
Ví dụ:
Nhiễm sắc thể: 9 3 8 5 7 1 6 4 2
Sau đột biến: 9 3 1 5 7 8 6 4 2
- Đột biến chuyển dịch: trước hết, chọn ngẫu nhiên một gen, sau đó, dịch
chuyển nó đến một vị trí ngẫu nhiên bên phải hoặc bên trái vị trí của gen.
Ví dụ:
Nhiễm sắc thể:

938571642


Đề tài Khoa học Công nghệ cấp Viện 2015 (mã số: V2015.14)

22


NGHIÊN CỨU VÀ XÂY DỰNG ỨNG DỤNG HỖ TRỢ TỰ ĐỘNG XẾP LỊCH HỌC THEO TÍN CHỈ
DỰA TRÊN PHƢƠNG PHÁP TÌM KIẾM TỐI ƢU

Sau đột biến (trái): 9 8 3 5 7 1 6 4 2
Sau đột biến (phải): 9 3 5 8 7 1 6 4 2
Ngoài ra, theo [21], chúng ta có thể áp dụng các biến thể của phép đột biến
khác nhau tùy theo cách mã hóa cá thể và bài toán. Chẳng hạn có phép đột biến
theo mã hóa hoán vị, đột biến theo mã hóa giá trị, đột biến theo mã hóa dạng
cây.
1.2.5. Điều kiện kết thúc
Để kết thúc quá trình tiến hóa, thì tùy thuộc vào bài toán sẽ có các cách kết
thúc khác nhau một khi đã đạt đến điều kiện yêu cầu. Một vài trường hợp kết
thúc quá trình tiến hóa thông thường như sau:
- Kết thúc theo kết quả: khi có một cá thể trong thế hiện tại đạt đến mức giá
trị độ phù hợp theo yêu cầu thì dừng quá trình tiến hóa.
- Kết thúc dựa vào số thế hệ: chọn số thế hệ tối đa trước khi tiến hóa, quá
trình sẽ dừng đạt số thế hệ đã chọn đó, không cần kiểm tra kết quả là như thế
nào.
- Tính theo thời gian: bỏ qua việc tiến hóa bao nhiêu thế hệ hay kết quả như
thế nào, chỉ dựa vào thời gian tiến hóa đã qui định trước để kết thúc.
- Hỗn hợp: dùng nhiều phương án khác nhau ở trên, khi đạt đến một trong
các điều kiện thì dừng thuật toán.
1.3. Ứng dụng của giải thuật di truyền
Giải thuật di truyền (GA) được ứng dụng cho những bài toán khó, chẳng hạn

như điều khiển quá trình phi tuyến phức tạp với bài toán tối ưu theo tham số. GA
hiện đã được ứng dụng thành công cho một số bài toán như: lập kế hoạch, điều
khiển tương thích, chương trình trò chơi, các bài toán vận tải, bài toán người đi
du lịch,…
Để ứng dụng giải thuật di truyền vào việc giải quyết bài toán cụ thể ta cần
xem xét các yếu tố sau:
- Lựa chọn phương pháp mã hóa cá thể, nó là mô hình biểu diễn nhiễm sắc
thể sao cho mỗi nhiễm sắc thể có thể chứa đựng được một lời giải của bài toán.
- Xây dựng hàm đánh giá độ thích nghi cho từng nhiễm sắc thể, đây là bước
khó khăn và ảnh hưởng đến hiệu quả của giải thuật.
Đề tài Khoa học Công nghệ cấp Viện 2015 (mã số: V2015.14)

23


NGHIÊN CỨU VÀ XÂY DỰNG ỨNG DỤNG HỖ TRỢ TỰ ĐỘNG XẾP LỊCH HỌC THEO TÍN CHỈ
DỰA TRÊN PHƢƠNG PHÁP TÌM KIẾM TỐI ƢU

- Lựa chọn các toán tử di truyền phù hợp mà chủ yếu tập trung vào ba toán
tử chính là chọn lọc, lai ghép và đột biến.
- Xác định các tham số của giải thuật di truyền như kích thước quần thể, xác
suất lai ghép, xác suất đột biến.
- Xác định điều kiện dừng cho quá trình tiến hóa.
Theo [21], các thuật toán di truyền đã được áp dụng cho vấn đề nhận dạng
mẫu đề xuất bởi Raymer ML và cộng sự năm 2000. Một cách tiếp cận mới được
đề xuất để trích chọn đặc trưng, trong đó việc lựa chọn đặc trưng và trích chọn
đặc trưng được thực hiện đồng thời bằng cách sử dụng các thuật toán di truyền.
Theo đó, thuật toán di truyền sẽ tối ưu hóa một véc-tơ trọng số được sử dụng để
nhân tỷ lệ với cá nhân từng đặc trưng trong các véc-tơ mẫu ban đầu.
Wei-Yen Wang và Li năm 2003 đề xuất một phương pháp mới để điều chỉnh

cả các điểm kiểm soát các hàm thuộc B-spline và trọng số của mạng nơron mờ
bằng cách sử dụng thuật toán di truyền dạng tối giản (RGA). Kết quả mô phỏng
cho thấy sự hội tụ nhanh hơn của quá trình tiến hóa và hiệu quả của thuật toán di
truyền dạng tối giản.
Việc tìm kiếm các lời giải mạnh mẽ và linh hoạt cho bài toán lập kế hoạch
trong ứng dụng thực tế đã được đề xuất bởi Jensen M. T năm 2003. Thực
nghiệm cho thấy bằng cách sử dụng một thuật toán di truyền, nó có thể tìm thấy
lịch trình mạnh mẽ và linh hoạt với một chi phí thấp.
Tối ưu hóa điều hòa của các bộ chuyển đổi đa cấp sử dụng thuật toán di
truyền đã được đề xuất bởi Ozpineci và cộng sự năm 2004. Kĩ thuật tối ưu được
áp dụng cho biến tần đa cấp để xác định góc độ chuyển mạch tối ưu cho đợt biến
tần đa cấp để loại bỏ một số sóng điều hòa thứ tự cao hơn trong khi duy trì điện
áp cơ bản cần thiết.
Và còn rất nhiều ứng dụng của thuật toán di truyền đã được nghiên cứu và áp
dụng trong thực tế rất thành công. Xem chi tiết trong [1][22].

Đề tài Khoa học Công nghệ cấp Viện 2015 (mã số: V2015.14)

24


NGHIÊN CỨU VÀ XÂY DỰNG ỨNG DỤNG HỖ TRỢ TỰ ĐỘNG XẾP LỊCH HỌC THEO TÍN CHỈ
DỰA TRÊN PHƢƠNG PHÁP TÌM KIẾM TỐI ƢU

Chƣơng 2. Ứng dụng giải thuật di truyền trong xếp lich học tín chỉ
2.1. Bài toán xếp lịch học tín chỉ
Bài toán lập lịch nói chung trong trường đại học (course timetabling problem
- CTP) bao gồm việc tìm kiếm việc phân bổ thời gian chính xác trong một
khoảng thời gian giới hạn cho một số sự kiện (như lớp tín chỉ, thi học kỳ) và gán
chúng vào một số tài nguyên (giáo viên, sinh viên và phòng học) để đảm bảo

rằng các ràng buộc được thỏa mãn. Tuy nhiên, trong đào tạo tín chỉ, tùy theo đặc
thù của từng trường, bài toán xếp lịch được triển khai có sự khác nhau nhất định.
Trong bài báo này, chúng tôi sử dụng tài nguyên gồm các giảng viên và phòng
học. Còn yếu tố sinh viên sẽ tham gia trong tính toán hàm mục tiêu, đề cập ở
sau. Điều này sẽ thích hợp cho trường hợp lịch tín chỉ sẽ được triển khai trước
khi sinh viên đăng ký học.
Theo đặc thù của từng trường đại học và công tác tổ chức đào tạo tín chỉ, để
cho thuận tiện trong việc thiết kế thuật toán, trong nghiên cứu này chúng tôi giả
định cách thức tổ chức như sau: đầu mỗi học kỳ dựa vào khả năng đăng ký học
tập của sinh viên, chúng ta dự kiến các lớp tín chỉ để lập lịch và công bố cho sinh
viên đăng ký. Mỗi lớp tín chỉ gồm ký hiệu lớp, môn học, phân loại (lớp học
phòng lý thuyết nhỏ hoặc phòng hội trường hoặc thực hành phòng máy). Bài
toán lập lịch bây giờ sẽ trở thành công việc phân công giảng viên, thời gian,
phòng học cho mỗi lớp tín chỉ đã dự kiến này sao cho thỏa mãn các yêu cầu,
ràng buộc đặt ra.
Thông thường, các ràng buộc của bài toán cần thỏa mãn được chia thành hai
loại: ràng buộc cứng và ràng buộc mềm. Những ràng buộc cứng phải chắc chắn
được đáp ứng và thỏa mãn. Những ràng buộc cứng này bao gồm những yêu cầu
sau đây:
(H1) Không được phép phân bổ một tài nguyên (giảng viên, phòng học) cho
các sự kiện khác nhau (lớp tín chỉ) trong cùng một thời điểm.
(H2) Các phòng học được gán cho một sự kiện (lớp tín chỉ) phải nằm trong
bộ nguồn tài nguyên phù hợp dành cho sự kiện đó. Theo đó, một sự kiện được tổ
chức trong một phòng phải có cơ sở hạ tầng phù hợp để có thể tổ chức sự kiện,
ví dụ lớp học phòng máy, lớp học hội trường, v.v.

Đề tài Khoa học Công nghệ cấp Viện 2015 (mã số: V2015.14)

25



×