Tải bản đầy đủ (.docx) (31 trang)

ĐỒ ÁN CƠ SỞ KHOA HỌC DỮ LIỆU TÌM HIỂU GIẢI THUẬT DI TRUYỀN ĐỂ XẾP THỜI KHÓA BIỂU HỆ TÍN CHỈ CHO TRƯỜNG ĐẠI HỌC

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 (343.81 KB, 31 trang )

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

TRƯỜNG ĐẠI HỌC NGUYỄN TẤT THÀNH
KHOA CÔNG NGHỆ THÔNG TIN

ĐỒ ÁN CƠ SỞ KHOA HỌC DỮ LIỆU

TÌM HIỂU GIẢI THUẬT DI TRUYỀN
ĐỂ XẾP THỜI KHĨA BIỂU HỆ TÍN CHỈ
CHO TRƯỜNG ĐẠI HỌC
Giảng viên hướng dẫn: VƯƠNG XUÂN CHÍ
Sinh viên thực hiện:

LÊ THỊNH PHÁT
PHAN LÂM VĨNH HƯNG

MSSV:

2000005858
2000006365

Chun ngành:

Khoa học dữ liệu

Mơn học:

Đồ án cơ sở KHDL

Khóa:


2020
Tp.HCM, tháng 6 năm 2022


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

TRƯỜNG ĐẠI HỌC NGUYỄN TẤT THÀNH
KHOA CÔNG NGHỆ THÔNG TIN

ĐỒ ÁN CƠ SỞ KHOA HỌC DỮ LIỆU

TÌM HIỂU GIẢI THUẬT DI TRUYỀN
ĐỂ XẾP THỜI KHĨA BIỂU HỆ TÍN CHỈ
CHO TRƯỜNG ĐẠI HỌC
Giảng viên hướng dẫn: VƯƠNG XUÂN CHÍ
Sinh viên thực hiện:

LÊ THỊNH PHÁT
PHAN LÂM VĨNH HƯNG

MSSV:

2000005858
2000006365

Chun ngành:

Khoa học dữ liệu

Mơn học:


Đồ án cơ sở KHDL

Khóa:

2020
Tp.HCM, tháng 6 năm 2022


Trường Đại học Nguyễn Tất Thành

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM

Khoa Công Nghệ Thông Tin

Độc lập – Tự do – Hạnh phúc

   

   

NHIỆM VỤ ĐỒ ÁN CƠ SỞ KHOA HỌC DỮ LIỆU
(Sinh viên phải đóng tờ này vào báo cáo)
Họ và tên: LÊ THỊNH PHÁT – PHAN LÂM VĨNH HƯNG
MSSV: 2000005858 - 2000006365
Chuyên ngành: KHOA HỌC DỮ LIỆU

Lớp: 20DTH2A

Email:


SĐT:0332941310

Email:

SĐT:0977940530

Tên đề tài: TÌM HIỂU GIẢI THUẬT DI TRUYỀN ĐỂ XẾP THỜI KHĨA
BIỂU HỆ TÍN CHỈ CHO TRƯỜNG ĐẠI HỌC
Gíao viên hướng dẫn: VƯƠNG XUÂN CHÍ
Thời gian thực hiện: 03/07/2017 đến 24/09/2017
Nhiệm vụ/nội dung (mô tả chi tiết nội dung, yêu cầu, phương pháp… ) :
-

Tìm hiểu tổng quan về giải thuật di truyền
Tìm hiểu các phép tốn trong giải thuật di truyền để giải các bài toán tối

ưu
Áp dụng vào bài toán sắp xếp thời khóa biểu
Nội dung và yêu cầu đã được thông qua Bộ môn.
-

TP.HCM, ngày 26 tháng 6 năm 2022
TRƯỞNG BỘ MÔN
(Ký và ghi rõ họ tên)

GIÁO VIÊN HƯỚNG DẪN
(Ký và ghi rõ họ tên)



LỜI CẢM ƠN
Đối với một sinh viên trường Đại học Nguyễn Tất Thành, đồ án cơ sở là một minh
chứng cho những kiến thức đã có được sau một khoảng thời gian học tập. Trong q
trình hồn thành đị án cơ sở, ngoài những cố gắng của bản thân, em sẽ khơng hồn
thành tốt cơng việc của mình nếu khơng có sự chỉ bào và hướng dẫn tận tình của thầy
Vương Xuân Chí. Em xin được gửi lời cảm ơn chân thành nhất tới thầy.
Ngồi ra trong suốt q trình thực hiện em cũng nhận được những sự giúp đỡ, hỗ trợ
tận tình của các anh chị khóa trên và những người bạn cùng chuyên ngành tại trường
Đại học Nguyễn Tất Thành. Em xin được gửi lời cảm ơn các anh chị, bạn bè và ban
chủ nhiệm bộ môn, tập thể cán bộ giảng dạy môn Đồ án cơ sở khoa học dữ liệu trường
Đại học Nguyễn Tất Thành, đã hết sức tạo điều kiện để em có thể thực hiện tốt Đồ án
cơ sở này.
Cuối cùng, em xin gửi lời cảm ơn tới gia đình, bạn bè và Thầy Chí giúp đỡ, chia sẻ
cùng em trong q trình học tập và hồn thành đồ án của mình.
Em xin chân thành cảm ơn.


LỜI MỞ ĐẦU
Trong cuộc sống ta thường gặp các bài toán liên quan đến xếp lịch như xếp lịch vận
hành máy móc, xếp lịch biểu cho việc thực hiện một dự án, xếp lịch làm việc, xếp
lịch thi đấu thể thao,… Đối với loại bài tốn này cần phải tìm ra một phương án xếp
lịch thỏa mãn tất cả các ràng buộc cũng như khai thác hiệu quả các nguồn tài ngun
hiện có, giảm thời gian và chi phí thực hiện.Bài tốn xếp thời khóa biểu trong trường
học nói chung và trong trường Đại học nói riêng là một trong những bài tốn như vậy.
Có rất nhiều các ràng buộc được đặt ra trong bài toán này như ràng buộc về đối tượng
tham gia (giảng viên, lớp học, sinh viên), ràng buộc về tài nguyên phục vụ giảng dạy
(phòng học lý thuyết, phòng thực hành,…), ràng buộc về thời gian (số tiết học, số lần
học, số tiết mỗi lần), ràng buộc về chuyên môn và rất nhiều các ràng buộc khác tùy
thuộc vào từng trường. Vấn đề đặt ra là cần xây dựng một thời khóa biểu thỏa mãn tất
cả các ràng buộc trên đồng thời khai thác hiệu quả các nguồn tài nguyên phục vụ

giảng dạy.Bài toán xếp thời khóa biểu thuộc lớp các bài tốn NP-đầy đủ vì vậy có thể
khơng tìm ra được lời giải tối ưu. Đây là một bài tốn khơng mới và đã có nhiều giải
thuật được đưa ra để giải quyết như giải thuật nhánh cận, giải thuật leo đồi, giải thuật
luyện thép, giải thuật tô màu đồ thị, giải thuật xấp xỉ,… Tuy nhiên các giải thuật này
thường khơng có tính tổng quát và chỉ áp dụng hiệu quả đối với các trường học có quy
mơ nhỏ, ít ràng buộc về mặt dữ liệu.
Ở Việt Nam hiện nay, các trường Đại học đang dần chuyển sang hình thức đào tạo tín
chỉ. Mặc dầu hình thức đào tạo này có nhiều ưu điểm hơn so với đào tạo niên chế tuy
nhiên việc xếp thời khóa biểu vẫn là một gánh nặng thực sự cho các trường, đặc biệt là
các trường có quy mơ đào tạo lớn. Vả lại trên thị trường cũng chưa có sản phẩm phần
mềm nào giải quyết hiệu quả bài toán trên.Trong những năm gần đây, phương pháp
tiếp cận di truyền đã thu hút rất nhiều sự chú ý trong các lĩnh vực nghiên cứu khác
nhau trong đó có khoa học máy tính. Phương pháp này có nhiều đặc điểm nổi trội như
khơng địi hỏi tri thức, tránh tối ưu cục bộ, thực hiện tốt với các bài tốn có khơng
gian lời giải lớn và có thể áp dụng cho nhiều loại bài tốn tối ưu khác nhau.Vì vậy,
việc nghiên cứu và ứng dụng giải thuật di truyền (Genetic Algorithm - GA) để giải
quyết hiệu quả bài toán xếp thời khóa biểu nói trên là việc làm cần thiết.


NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN

.......................................................................................................
.......................................................................................................
.......................................................................................................
.......................................................................................................
.......................................................................................................
.......................................................................................................
.......................................................................................................
.......................................................................................................
.......................................................................................................

.......................................................................................................
.......................................................................................................
.......................................................................................................
.......................................................................................................
.......................................................................................................
Điểm đồ án: ......................................................................................
.......................................................................................................
.......................................................................................................
.......................................................................................................
TPHCM, Ngày …… tháng …… năm
Giáo viên hướng dẫn
(Ký tên, đóng dấu)

MỤC LỤC



DANH MỤC BẢNG HÌNH


CHƯƠNG 1: TÌM HIỆU VỀ BÀI TỐN LẬP THỜI KHĨA
BIỂU
1. Tìm hiểu chung
Lập lịch có thể được định nghĩa là một bài tố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 để hồn thành tồn bộ q trình nhằm sắp xếp
lịch.Vì thế bài tố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 tố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ở (knowledgebased systems), bài toán thoả mãn ràng buộc, hệ chuyên gia, mạng Nơ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 tố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ương pháp nút cổ chai.
2. Các đặc tính của bài tốn lập lịch
• Tài ngun: đó là các nguồn dữ liệu đầu vào của bài tốn. Các tài ngun này
có thể phục hồi hoặc khơng.
• Tác vụ: được đánh giá qua các tiêu chuẩn thực hiện như thời gian thực hiện, chi
phí, mức tiêu thụ nguồn tài nguyên
• Ràng buộc: đây là những điều kiện cần thỏa mãn để bài tốn có thể đưa ra lời
giải tốt nhất
• Mục tiêu: đánh giá độ tối ưu của lịch trình lời giải của bài tốn.
Khi các mục tiêu được thỏa mãn thì các ràng buộc cũng phải được thỏa mãn
3. Bài toán lập thời khóa biểu
Giới thiệu bài tốn: Bài tốn đặt ra vấn đề cần sắp xếp thời khoá biếu cho một trường
đại học với nhiều cơ sở khác nhau. 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ừa phù hợp lại vừa tiện dụng nhất
Dữ liệu bài toán


-

Danh sách cơ sở

-

Danh sách khoa

-

Danh sách khoá học


-

Danh sách học phần học và các lớp trong học kỳ

-

Danh sách lớp học

-

Danh sách giáo viên

-

Danh sách phịng học

-

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. Một số bước cơ bản để giải quyết bài tốn lập thời khố biếu
• Bước 1. Khởi tạo dữ liệu thời khóa biểu mới
• Bước 2. Nhập, điều chỉnh dữ liệu gốc thời khóa biểu
• Bước 3. Nhập, sửa, điều chỉnh các ràng buộc chính của thời khóa biểu
Các ràng buộc chính của thời khóa biểu là nhóm các dữ liệu có nhiệm
vụ định hình và khn dạng của thời khóa biểu. Đây là nhóm các lệnh
rất quan trọng của bài toán và phần mềm thời khóa biểu.
• Bước 4. Nhập bảng Phân cơng giảng dạy (PCGD)
Bảng phân cơng giảng dạy (hay cịn gọi là Phân công chuyên môn) là
phần dữ liệu quan trọngnhất và phức tạp nhất của mọi thời khóa biểu.
Bảng này chỉ ra các phân cơng cụ thể của thời khóa biểu: giáo viên nào
dạy lớp nào, môn học nào và một tuần dạy bao nhiêu tiết
• Bước 5. Chuẩn bị xếp thời khóa biểu
• Bước 6. Xếp tự động TKB
• Bước 7. Điều chỉnh, tinh chỉnh dữ liệu thời khóa biểu
• Bước 8. Hồn thiện thời khóa biểu (sử dụng RAD)
• Bước 9. In ấn TKB
• Bước 10. Tổng hợp, thống kê và truy vấn thơng tin thời khóa biểu


CHƯƠNG 2: TỔNG QUAN VỀ GIẢI THUẬT DI TRUYỀN
1. Giới Thiệu
Khoa học xuất phát từ mong muốn rất con người để hiểu và kiểm soát thế giới. Trong
suốt lịch sử, con người chúng ta đã dần dần xây dựng một dinh thự lớn của kiến thức

đó cho phép chúng ta dự đoán, với mức độ khác nhau, thời tiết, sự chuyển động của
các hành tinh, nhật thực và nguyệt, các khóa học của bệnh, những thăng trầm tăng
trưởng kinh tế, các giai đoạn phát triển ngôn ngữ ở trẻ em, và một bức tranh toàn cảnh
rộng lớn của các hiện tượng tự nhiên, xã hội và văn hóa khác. Gần đây chúng tơi đã
thậm chí đến để hiểu một số giới hạn cơ bản đến khả năng của mình để dự đốn.
Trong thời gian rất dài, chúng tơi đã phát triển phương tiện ngày càng phức tạp để
kiểm soát nhiều khía cạnh của cuộc sống và tương tác của chúng tôi với thiên nhiên,
và chúng tôi đã học được, thường một cách khó khăn, mức độ mà các khía cạnh khác
là khơng kiểm sốt được.
Sự ra đời của máy tính điện tử đã cho là được sự phát triển tính cách mạng nhất trong
lịch sử khoa học và công nghệ. Cuộc cách mạng đang diễn ra này là sâu sắc tăng khả
năng tiên đoán và kiểm soát chất trong những cách mà hầu như đã được hình thành
ngay cả nửa thế kỷ trước. Đối với nhiều người, những thành tựu huy hoàng của cuộc
cách mạng này sẽ là việc tạo ra theo các hình thức của các chương trình của máy tính
của lồi mới của sinh vật thơng minh, và thậm chí cả các hình thức mới của cuộc
sống.
Các mục tiêu của việc tạo ra trí thơng minh nhân tạo và sự sống nhân tạo có thể được
truy trở lại khởi đầu của thời đại máy tính. Các nhà khoa học-Alan máy tính sớm nhất
Turing, John von Neumann, Norbert Wiener, và những người khác-đã được thúc đẩy
một phần lớn bởi hình ảnh của imbuing chương trình máy tính với trí thơng minh, có
khả năng giống như cuộc sống để tự sao chép, và có khả năng thích nghi để học và
kiểm sốt mơi trường của họ. Những người tiên phong đầu của khoa học máy tính đã
được nhiều quan tâm trong sinh học và tâm lý học như trong điện tử, và họ nhìn vào
các hệ thống tự nhiên như hướng dẫn những ẩn dụ cho cách để đạt được tầm nhìn của
họ. Nó khơng nên ngạc nhiên, sau đó, từ các máy tính ngày sớm nhất được áp dụng
khơng chỉ để tính tốn quỹ đạo tên lửa và giải mã mã qn sự mà cịn để mơ hình hóa


não, bắt chước học tập của con người, và mô phỏng sự tiến hóa sinh học. Những hoạt
động sinh học tính tốn động lực đã sáp và nhạt dần trong những năm qua, nhưng từ

đầu những năm 1980 họ đã trải qua tất cả một sự hồi sinh trong cộng đồng nghiên cứu
tính tốn. Việc đầu tiên đã trở thành lĩnh vực của mạng lưới thần kinh, thứ hai vào
máy tính học tập, và thứ ba vào những gì bây giờ được gọi là "tính tốn tiến hóa",
trong đó các thuật tốn di truyền là những ví dụ nổi bật nhất.
2. Giải thuật di truyền (GAs)
2.1 Giải thuật di truyền (Gas)
GAs là một kỹ thuật của khoa học máy tính nhằm tìm kiếm giải pháp thích hợp cho
các bài tốn tối ưu tổ hợp (combinatorial optimization), là một phân ngành của giải
thuật tiến hóa, vận dụng các nguyên lý của tiến hóa như: di truyền, đột biến, chọn lọc
tự nhiên, và trao đổi chéo. Nó sử dụng ngơn ngữ máy tính để mơ phỏng q trình tiến
hố của một tập hợp những đại diện trừu tượng (gọi là những nhiễm sắc thể), của các
giải pháp có thể (gọi là những cá thể) cho bài tốn tối ưu hóa vấn đề. Tập hợp này sẽ
tiến triển theo hướng chọn lọc những giải pháp tốt hơn.
GAs cũng như các thuật toán tiến hố, đều được hình thành dựa trên một quan niệm
được coi là một tiên đề phù hợp với thực tế khách quan. Đó là quan niệm "Q trình
tiến hố tự nhiên là q trình hồn hảo nhất, hợp lý nhất và tự nó đã mang tính tối ưu".
Q trình tiến hố thể hiện tính tối ưu ở chỗ thế hệ sau bao giờ cũng tốt hơn thế hệ
trước.
Ngày nay, GAs càng trở nên quan trọng, đặc biệt là trong lĩnh vực tối ưu hố, một lĩnh
vực có nhiều bài tốn thú vị, được ứng dụng nhiều trong thực tiễn nhưng thường khó
và chưa có phương pháp hiệu quả để giải quyết.
2.2 Các tính chất của giải thuật di truyền
• GAs là kỹ thuật chung, giúp giải quyết vấn đề bằng cách mơ phỏng sự tiến hóa
của con người hay của sinh vật nói chung (dựa trên thuyết tiến hóa mn lồi
của Darwin), trong điều kiện qui định sẵn của mơi trường. Mục tiêu của GAs
không nhằm đưa ra lời giải chính xác tối ưu mà là đưa ra lời giải tương đối tối


ưu.
• Một cá thể trong GAs sẽ biểu diễn một giải pháp của bài tốn. Tuy nhiên,

khơng giống với trong tự nhiên là một cá thể có nhiều nhiễm sắc thể (NST) mà
để giới hạn trong GAs, ta quan niệm một cá thể có một NST. Do đó, khái niệm
cá thể và NST trong GAs coi như là tương đương.
• Một NST được tạo thành từ nhiều gen, mỗi gen có thể có các giá trị khác nhau
để quy định một tình trạng nào đó. Trong GAs, một gen được coi như một phần
tử trong chuỗi NST.
• Một tập hợp các cá thể có cùng một số đặc điểm nào đấy được gọi là quần thể.
Trong thuật giải di truyền, ta quan niệm quần thể là một tập các lời giải của một
bài toán.
2.3 So sánh GAs với kỹ thuật tối ưu khác
Hoạt động của GAs đơn giản là việc mơ phỏng sự tiến hóa và chọn lọc tự nhiên bằng
máy tính bắt đầu từ một quần thể ngẫu nhiên. Bên cạnh đó để tối ưu ta cần hàm lượng
giá hoặc hàm thích nghi để chọn cá thể tốt và loại bỏ cá thể xấu. Thuật toán di truyền
(GAs) khác với kĩ thuật tối ưu khác ở chỗ:
• GAs làm việc với bộ mã của biến chứ không phải làm việc trực tiếp trên biến.
• Hầu hết các kĩ thuật tối ưu thơng thường tìm kiếm từ một đỉnh, trong khi đó
GAs ln hoạt động trên tập hợp đỉnh (điểm tối ưu), điều này là một ưu điểm
của GAs giúp tăng cơ hội tiếp cận tối ưu toàn cục và tránh hội tụ sớm tại điểm
cục bộ địa phương.
• GAs đánh giá hàm mục tiêu để phục vụ quá trình tìm kiếm, vì vậy có thể ứng
dụng cho bất kì bài tốn tối ưu nào (liên tục hay rời rạc).
• GAs thuộc lớp các thuật toán xác suất, các thao tác cơ bản của GAs dựa trên
khả năng tích hợp ngẫu nhiên trong quá trình xử lý.
2.4 Cơ chế thực hiện của giải thuật di truyền
Bước đầu tiên của quá trình tìm lời giải cho vấn đè là khởi tạo quần thể, nghĩa là phát
sinh ra một số lượng lớn, hữu hạn các cá thể. Sau đó, dựa trên một hàm số nào đó gọi
là hàm thích nghi để xác định giá trị độ thích nghi, giá trị này có thể hiểu là “ độ tốt”


của cá thể. Vì được phát sinh một cách ngẫu nhiên nên độ tốt của lời giải hay tính

thích nghi của một cá thể trong một quần thể là không xác định
Chúng ta hãy tưởng tượng một máy tính giải quyết bài tốn theo kiểu leo đồi. nghã là
tồn bộ những người leo đầu tiên(chẳng hạn 100 người) đều chưa gặp đỉnh đồi cao
nhất thì sẽ cho 100 người khác tiếp tục leo. Nhưng có khả năng trong nhóm những
người leo đổi mới, không ai trong số họ leo được những ngọn đồi cao hơn nhóm
người trước. hay nói một cách tổng quát: phải làm thế nào để giữ lại những người leo
cao nhất cho thế hệ sau. Tiến trình cứ tiếp tục cho đến khi có một thế hệ nào đó, có
một người leo đến đỉnh đồi cao nhất hoặc hết thời gian cho phép. Trong trường hợp
hết thời gian thì trong tồn bộ các thế hệ, người nào leo cao nhất sẽ được chọn
Như vậy, để cải thiện tính thích nghi của quần thể, người ta tìm cách tạo ra quần thể
mới. có 2 thao tác thực hiện trên thế hệ hiện tại để tạo ra một thế hệ khác có độ thích
nghi tốt hơn
• Thao tác 1: sao chép nguyên mẫu một nhom các cá thể từ thế hệ trước rồi đưa
sang thế hệ sau bằng phép tái sinh và chọn lọc. thao tác này đảm bảo độ thích
nghi của thế hệ sau ln ln tốt hơn hoặc bằng thế hệ trước
• Thao tác 2: là tạo ra các cá thế mới bằng phép lai ghép và đột biến. trong phép
lai ghép, gen của hai cá thể tốt được chọn trong thế hệ trước sẽ được phối hợp
với nhau ( theo một qui tắc nào đó) để tạo ra hai cá thể mới. phép đột biến là
biến đổi ngẫu nhiên một hoặc nhiều thành phần gen của một cá thể ở thế hệ
trước để tạo ra một cá thể hoàn toàn mới ở thế hệ sau. Phép đột biến có thể làm
xáo trộn và làm mất đi tính thích nghi cao của cá thể được chọn
2.5 Các bước cơ bản của thuật giải di truyền
-

Bước 1: khởi tạo một quần thể ban đầu gồm các chuỗi nhiễm sắc thể

-

Bước 2: xác định giá trị mục tiêu cho từng nhiễm sắc thể tương ứng


-

Bước 3: tạo các nhiễm sắc thể mới dựa trên các toán tử di truyền

-

Bước 4: loại bớt các nhiễm sắc thể có độ thíc nghi thấp

-

Bước 5: xác định hàm mục tiêu cho các nhiễm sắc thể mới và đưa vào quần thể

-

Bước 6: kiểm tra thỏa mãn điều kiện dừng. nếu điều kiện đúng , lấy ra nhiễm
sắc thể tốt nhất, giải thuật dừng lại: ngược lại, quay về bước 3


CHƯƠNG 3:CÁC PHÉP TOÁN TRONG GIẢI THUẬT DI
TRUYỀN
1. Tạo quần thể ban đầu
Quần thể ban đầu được tạo gồm N cá thể T1, T2,...,TN, trong đó mỗi cá thể là một lời
giải của bài tốn, tức là một thời khóa biểu toàn trường. Mỗi cá thể gồm nhiều gen,
mỗi gen được khởi tạo ngẫu nhiên từ tập các phân công đã cho sao cho trước hết phải
thỏa mãn được các ràng buộc cứng của bài toán.
Chất lượng các cá thể của quần thể ban đầu được khởi tạo ngẫu nhiên thường có chất
lượng kém hơn so với chất lượng của các cá thể được khởi tạo bằng các heuristic của
bài toán. Tuy nhiên do sự đa dạng của các cá thể khi khởi tạo ngẫu nhiên, nên lúc kết
thúc quá trình tiến hóa, giải thuật di truyền ứng với quần thể ban đầu (được khởi tạo
ngẫu nhiên) thường cho chất lượng lời giải tốt hơn.

2. Độ thích nghi của cá thể
Độ thích nghi của mỗi cá thể thời khóa biểu được xác định là giá trị của hàm mục tiêu.
Giá trị hàm mục tiêu càng nhỏ thì cá thể thời khóa biểu có chất lượng càng cao.
3. Điều kiện dừng
Thường các giải thuật di truyền chọn các điều kiện dừng sau đây:
1. lời giải tốt nhất tìm được của bài tốn khơng được cải thiện sau một số lần lặp
định trước
2. số lần lặp của giải thuật đạt đến một giá trị định trước
3. giải thuật chạy hết một lượng thời gian định trước.
Trong bài tốn xếp thời khóa biểu trường phổ thông đang xét, chúng tôi chọn điều
kiện dừng đầu tiên.
4. Các tốn tử di truyền


Tốn tử sinh sản: gồm 2 quá trình là quá trình sinh sản( phép tái sinh) và quá
trình chọn lọc (phép chọn)
- Phép tái sinh là quá trình các nhiễm sắc thể được sao chép trên cơ sở
độ thích nghi. Độ thích nghi là một hàm được gán giá trị thực, tương
ứng với mỗi nhiễm sắc thể trong quần thể


-

Phép chọn: phép chọn là quá trình chọn ra các nhiễm sắc thể có độ
thích nghi cao trong quần thể hiện tại để đưa vào quần thể ở thế hệ tiếp
theo

• Tốn tử đột biến: là hiện tượng nhiễm sắc thể con mang một số đặc tính khơng
có trong nhiễm sắc thể của cha và mẹ. Toán tử đột biến được thực hiện với một
xác suất pm nhỏ hơn nhiều so với xác suất lai ghép p c bởi vì trong tự nhiên đột

biến gen thường ít xáy ra.
• Tốn tử lai ghép: nhằm tạo ra nhiễm sắc thể con mới trên cơ sở cặp nhiễm sắc
thể cha - mẹ bằng cách ghép các đoạn gen trong nhiễm sắc thể cha – mẹ lại với
nhau. Toán tử lai ghép được thực hiện với một xác suất pc nào đó.

CHƯƠNG 4: ỨNG DỤNG GIẢI THUẬT DI TRUYỀN ĐỂ XẾP
THỜI KHÓA BIỂU HỆ TÍN CHỈ
Vấn đề của bài tốn khá phức tạp về mặt ràng buộc, nhưng phương pháp chia để trị
vẫn là biện pháp hữu hiệu trong mọi vấn đề phức tạp. ở đây cũng vậy, theo phân cấp
các ràng buộc mà ta giải quyết bài tốn xếp thời khóa biểu này thành hai giai đoạn
khác nhau:
-

Giai đoạn 1: nhằm giải quyết thành phần ràng buộc ở mức lớp học, với các vấn
đề cơ bản phức tạp của những đối tượng liên quan tới việc học của lớp. Khi đã
có được kết quả cuối cùng là lịch học cho từng lớp một cách hồn chỉnh, chúng
sẽ được dùng làm thơng tin cho giai đoạn sau.

-

Giai đoạn 2 : tổng hợp lại các ràng buộc còn lại và đã được đơn giản hóa trong giai
đoạn trước. Kết quả của giai đoạn này chính là mục tiêu cuối cùng của bài tốn. Đó là
lịch học của các lớp trong một cơ sở.

Cả hai giai đoạn tuy có mục tiêu và dữ liệu khác nhau, nhưng về cách giải quyết có
tính tương tự nhau, nên khơng khác gì nhiều khi áp dụng vào mơ hình thuật giải di
truyền.
1. Giai đoạn 1 - xếp lịch học các lớp
1.1 Chọn mơ hình cá thể
Lịch học của một lớp có hai thành phần chính, bao gồm: các môn học và các giờ học



trong tuần. Việc đặt ngẫu nhiên các môn học với các giờ học sẽ tạo thành một lịch học
cho từng lớp. Như vậy một lớp học tương ứng sẽ có nhiều lịch học khác nhau, do đó
ta chọn mỗi lịch học làm cá thể trong thuật giải di truyền và trong hai thành phần đó,
thì các giờ học là thành phần ổn định hơn về số lượng cũng như về giá trị của chúng,
cho nên ta chọn môn học làm đơn vị nhiễm sắc thể trong cá thể. Vì đối với môn học
việc làm nhiễm sắc thể là phù hợp với tính khơng ổn định của nó : với số lượng các
môn phụ thuộc từng lớp học, cũng giống như số lượng nhiễm sắc thể trong cá thể, có
chiều dài khơng nhất thiết phải cố định hay bằng nhau. Ngồi ra chưa kể đến tính
phức tạp của mơn học về số tiết phải học luôn bị thay đổi, trong khi giá trị các giờ học
thì ngược lại, có thể xác định một cách rõ ràng và nhanh chóng.

Hình 1 Mơ hình cá thể trong lịch lớp
Thay vì chọn ngẫu nhiên mơn học vào các tiết học như đã trình bày, chúng ta sẽ làm
ngược lại: chọn ngẫu nhiên tiết học theo mơn, vì chúng ta đã chọn mơn học làm đơn
vị trong cá thể ( theo mơ hình trên ). Có nghĩa là, với một cá thể của mơ hình xếp lịch
lớp, ở bất kỳ thời điểm nào, khi ta đặt nhiễm sắc thể đầu tiên như là môn thứ nhất,
nhiễm sắc thể kế tiếp sẽ là môn thứ hai, và tiếp tục cho các nhiễm sắc thể còn lại ... thì
sau này, lúc nào cũng theo thứ tự ấy mà lấy thơng tin ra, sẽ khơng có gì thay đổi
( ngoại trừ giá trị tiết học, nếu như sau này có xảy ra lai ghép hay đột biến ). Trong
trường hợp một môn được học nhiều lần trong tuần, do có nhiều chứng chỉ / học phần,
nên sẽ gây khó khăn cho việc xếp chúng vào trong cá thể. Cách giải quyết vấn đề này
rất đơn giản, chỉ cần đưa chúng vào cá thể với nhiễm sắc thể tương ứng, chẳng khác gì
một mơn học bình thường khác. Lúc đọc thông tin, chúng ta nên chú ý một chút thế
thơi.
Ví dụ: Giả sử có danh sách mơn học và số lần học trong một tuần như sau:
- Môn học a có 1 lần học.
- Mơn học b có 2 lần học.
- Mơn học d có 1 lần học.



Hình 2 Mơ tả phân bổ nhiễm sắc thể
Mỗi nhiễm sắc thể sẽ mang một giá trị số nguyên. Đó chính là vị trí tiết học bắt đầu
của mơn học. Phạm vi giá trị của nó từ 0 -> 35 theo thứ tự các tiết học trong tuần,
được đánh dấu theo vị trí liên tục của các ngày, tương tự cấu trúc mảng một chiều. Các
tiết học tiếp theo là giá trị liên tục kế tiếp nhau tùy theo số lượng tiết học của mơn mà
ta đang lưu trữ.

Hình 3 Giá trị các tiết học
Ví dụ: về cách xếp vị trí tiết học trong lịch học.
Mơn học a tiết bắt đầu 0 số tiết cần học là 3
Môn học b tiết bắt đầu 3 số tiết cần học là 2
Môn học c tiết bắt đầu 8 số tiết cần học là 4
Môn học d tiết bắt đầu 12 số tiết cần học là 3

Hình 4 Phân bố các mơn học trên lịch học


Như ta đã nói phần trên, tương ứng mỗi cá thể là một lịch học thực thụ của lớp. Vì
vậy, khi tạo cá thể, chúng ta vẫn phải đảm bảo sự đúng đắn về tính chất trong lịch học:
phải đủ số tiết học, số mơn học, khơng có sự chồng chéo lên nhau tại cùng thời điểm
trong các môn... Để giải quyết việc này, chúng ta sử dụng một tham biến đánh dấu các
tiết học đã lên lịch, để môn học sau sẽ không bị sắp trùng vào những vị trí này, mà
mơn học này sẽ được đưa vào vị trí khác. Tất nhiên, với mỗi lịch học sẽ có sự sắp xếp
khác nhau.
1.2 Tạo quần thể ban đầu
Trước khi tạo quần thể ban đầu trong phần này, chúng ta phải chuẩn bị sẵn về dữ liệu
cho quá trình thực thi, từ lúc khởi tạo đến khi cho ra kết quả, bao gồm đầy đủ thông
tin của một lớp đang được chọn.

Tất cả như sau:
• Các ràng buộc lớp, giáo viên được phân cơng dạy.
• Các mơn học và số chứng chỉ từng mơn.
• Tính tốn số tiết học tương ứng các mơn.
• Chọn qui định đọc và ghi nhận nhiễm sắc thể.
• …
Giống như cá thể được mơ tả ở trên, hàng loạt các cá thể được tạo ra và được xem như
quần thể ban đầu trong mơ hình thuật giải di truyền của phần xếp lịch lớp. Sau khi
quần thể có đủ số lượng, bước tiếp theo là đánh giá quần thể, kiểm tra xem độ thích
nghi tốt nhất hiện đang tồn tại của quần thể.
1.3 Độ thích nghi - chọn cá thể
Đây là phần giải quyết các yêu cầu đưa ra cho bài toán, chủ yếu vẫn xem xét trên các
thành phần ràng buộc. Tương ứng với mỗi loại ràng buộc, chúng ta sẽ gán cho chúng
một giá trị thích nghi nào đó, mà một khi cá thể đi qua, các ràng buộc được lắp đặt
vào, và sẽ cho ra giá trị thích nghi cụ thể cho cá thể đó, kết thúc cơng việc tính độ
thích nghi. Nghe rất đơn giản nhưng thực chất đây là vấn đề khó nhất, quan trọng nhất
của bài tốn. Chi tiết cụ thể như sau:
-

Trước hết ta nói về giáo viên. Khi chọn phân công giảng dạy, chúng ta phải biết chắc
rằng giáo viên đó sẽ trống vào giờ đó, mơn đó, buổi đó của lớp học. Hay nói cách


khác, chúng ta cần kiểm tra ràng buộc tiết học, mà đã tương ứng với mỗi môn trong
lịch học, xem xét lại các mơn có thể học giờ đó hay không. Kế tiếp là xét giờ học của
lớp. Do một qui định nào đó mà lớp có thể học giờ này hay giờ kia, chẳng hạn như
-

không học ba tiết đầu trong ngày thứ hai,…
Cuối cùng kiểm tra lại sự chồng chéo giờ lẫn nhau của các môn học. Việc kiểm tra

này nhất thiết phải làm, vì trong lúc lai ghép, đột biến, có thể gây ra sai lệch. Cho nên
tốt nhất ta phải kiểm tra chúng. Giống như lúc khởi động, ta dùng một biến chứa tất cả
giờ học ở các môn để giúp cho việc đánh giá. Tương tự các ràng buộc giáo viên và
lớp. Mỗi vấn đề sẽ có một biến lưu trữ giờ làm việc, để tránh các tiết học theo qui
định mà ta đã ghi nhận cho một giáo viên hay lớp học tương ứng.

Có nhiều cách để chọn một cá thể tốt. Chọn cách tính theo độ thích nghi cao nhất hoặc
thấp nhất.Thơng thường, người ta chọn cách tính tốt nhất. ở đây, chúng ta cũng chọn
cách tính tốt nhất tứclà xếp theo giá trị giảm dần của giá trị bị phạt theo độ thích nghi.
1.4 Thuật tốn lai ghép và đột biến
Về thuật toán lai ghép, ta dùng lai ghép đoạn: lấy ngẫu nhiên một đoạn nhiễm sắc thể
bên nhiễm sắc thể cha, số còn lại sẽ lấy ở bên nhiễm sắc thể mẹ. Cịn thuật tốn đột
biến : chỉ việc hốn vị hai nhiễm sắc thể một cách ngẫu nhiên trong cá thể. Ta có thể
sửa thơng số xác xuất về đột biến, lai ghép của chương trình trong lúc chạy thực thi.
Phần này áp dụng thực thi cho tất cả các lớp trong một cơ sở, tương ứng với mỗi lớp
sẽ có một file lưu trữ tất cả các lịch lớp mà có thể sử dụng, dưới hình thức các nhiễm
sắc thể trong quẩn thể. Ngồi mục đích xem xét kiểm tra, chúng cịn được dùng làm
thơng tin để chạy lịch cơ sở sau này.
2. Giai đoạn 2 - xếp lịch học cho tồn bộ cơ sở
2.1 Chọn mơ hình cá thể
Lịch học tại cơ sở bao gồm tất cả các lịch học của các lớp hiện có trong cơ sở, nếu
mỗi lớp đều có một lịch học rõ ràng thì đó có nghĩa là có lịch cơ sở. Dựa vào giai
đoạn đầu, trên mỗi lớp đã cho ra hàng loạt các lịch học, việc chọn ngẫu nhiên lịch học
của một lớp thì khơng có gì khó khăn. Nhìn mơ hình cá thể trong lịch lớp ta thấy lớp
học trong cơ sở có tính chất như mơn học trong lớp, cho nên ta chọn lớp học làm đơn
vị của nhiễm sắc thể trong mơ hình thuật tốn di truyền trong xếp lịch cơ sở. Và tương
tự, ta chọn lịch cơ sở làm cá thể. Ở mỗi nhiễm sắc thể là một con số mang tính chất


như một trong những chỉ số trong file lưu trữ thông tin cá thể của lịch lớp ( chỉ số một

lịch học của lớp). Như vậy phạm vi giá trị các nhiễm sắc thể sẽ khác nhau, nhưng ta
luôn xác định được phạm vi đó một cách rõ ràng, chỉ cần đọc giá trị kích thước của
file tương ứng của lớp mà thơi.
Mơ hình cá thể trong lịch cơ sở:

Hình 5 Mơ hình cá thể trong lịch cơ sở
Giống như trong lịch lớp, cá thể lịch cơ sở cũng phải qua một giai đoạn kiểm tra ban
đầu, để có thể ở mức đạt dược dạng đúng của một lịch cơ sở. Đó là việc đặt các lớp
học vào các phịng trong cơ sở, khơng phải chọn phịng cho lớp mà là kiểm tra phịng
với lớp, xem có thể phù hợp với cơ sở hay khơng về mặt kích thước hiện có. Nếu việc
kiểm tra này khơng thực hiện được thì bài toán đến đây đã kết thúc.
2.2 Tạo quần thể ban đầu
Quần thể khởi đầu gồm những cá thể được tạo ra như mơ hình trên, nhưng thơng tin
các lớp học phải được chọn cùng trong một buổi học thuộc cơ sở, và có file lịch lớp
đầy đủ. ở đây kích thước cá thể là số lớp hiện có, cho nên dài hay ngắn tùy theo cơ sở,
cũng giống như lịch lớp chiều dài được tính theo số mơn hiện có của lớp. Cơng việc
này sẽ tốn rất nhiều thời gian, vì cơng việc đọc file để kiểm tra, nhưng quần thể sẽ cho
ra kết quả đúng nhất về mặt áp dụng bài toán vào thuật giải di truyền.
2.3 Độ thích nghi - chọn cá thể
Giai đoạn hội tụ cá thể trong quần thể, trên cơ bản việc đánh giá cơ sở tùy theo số lớp,
số giờ học và số phòng học. Phòng học phải hợp lý về sức chứa của nó đối với lớp
học, thơng thường người ta chọn phòng lớn nhất cho lớp tương ứng lớn nhất. Nhưng ở
đây ta chọn phương pháp khác, lớp và phòng sẽ được xếp theo thứ tự lớn dần. Cho


nên khi xếp lịch, lớp sẽ được đặt ở một phịng vừa nhất mà cơ sở đang có. Điều này
tuy mất thời gian hơn nhưng thực tế thì nó sẽ hợp lý hơn. Về vấn đề trùng phòng học
giữa các lớp, chúng ta sẽ sử dụng một tham biến ghi nhận tất cả các giờ học của từng
phòng một khi có lớp nào vào học, đồng thời sau này đó cũng chính là lịch sử dụng
các phịng.

Cũng đánh giá lại ràng buộc lịch giáo viên, nhưng lần này chỉ xét về mặttrùng giờ dạy
ở các lớp cùng một thời điểm. Tương tự, ta sẽ sử dụng một tham biến lịch dạy cho mỗi
giáo viên, để ghi nhận và tránh trường hợp trùng giờ này. Với các lần kiểm tra tương
ứng với một giá trị thích nghi, cuối cùng tổng các giá trị này chính là độ thích nghi
của cá thể. Cơng việc khơng khác gì trong lịch lớp, cá thể được chọn là cá thể tốt
nhất, giá trị thích nghi đạt ở mức đỉnh là 0.
2.4 Thuật toán lai ghép và đột biến
Sử dụng lại của phần xếp lịch lớp, chọn cá thể theo độ thích nghi, lai ghép ngẫu nhiên
đoạn và đột biến hoán vị điểm. Do giống nhau về mặt dữ liệu, và yêu cầu và cấu trúc
thuật tốn cũng khơng khác nhau nhiều, việc dùng lại này, sẽ khơng gây ảnh hưởng gì
trong q trình thực hiện xếp lịch cơ sở. Một lần nữa nói về thời gian thực thi, sẽ mất
nhiều thời gian hơn công việc xếp lịch lớp, do số lượng và phạm vi ràng buộc khá lớn
và phải đọc dữ liệu trên các file. Nhưng về mặt hoạt động không khác nhau.
2.5 Chọn điểm dừng thuật tốn
Đã được nói ở trong từng giai đoạn của các phần áp dụng thuật giải di truyền vào bài
tốn, điểm dừng thuật tốn dựa trên độ thích nghi của nó. Một số bài tốn chọn điểm
dừng theo số thế hệ, hoặc dựa trên tính tương đối của kết quả, nhưng với bài tốn này
cần có một kết thúc tuyệt đối tốt nhất, mặt dù số thế hệ vẫn phải được chọn trước
nthuật giải di truyềny từ đầu. Vì tính chất u cầu trong bài tốn này là khơng bị sai
lệch. Nếu trong quá trình thực thi qua các giai đoạn, chỉ cần một kết quả không đạt
đến điểm dừng,
xem như bài tốn sẽ khơng có kết quả.


3. Quy trình sắp xếp thời khóa biểu

Hình 6 Quy trình sắp xếp thời khóa biểu đề xuất
4. Biểu diễn mơ hình cá thể
Mỗi NST dùng để chứa một phương án xếp thời khóa biểu.


Hình 7 Biểu diễn một nhiễm sắc thể


Mỗi NST có thể xem là một mảng 3 chiều: Chiều thứ nhất biểu diễn các tiết học trong
ngày, chiều thứ hai biểu diễn các ngày trong tuần, chiều thứ ba biểu diễn các phịng
học.

Hình 8 Cấu trúc của một nhiễm sắc thể
5. Mơ hình quần thể
Quần thể là tập hợp các NST. Ngoài việc lưu trữ danh sách các NST, quần thể cịn
chứa thêm các thơng tin khác như kích thước quần thể, độ thích nghi của quần thể, …
6. Khởi tạo quần thể
Trước khi thực hiện quá trình tiến hóa cần phải khởi tạo quần thể bằng cách gán cho
các gen trong NST bởi các giá trị ngẫu nhiên.
7. Phân nhóm lớp học phần

Hình 9 Mơ tả đoạn lệnh phân lớp học phần


8. Xếp TKB hệ tín chỉ theo yêu cầu của SV
8.1 Yêu cầu của sinh viên trong bài toán xếp TKB hệ tín chỉ
Trong đào tạo theo tín chỉ thì sinh viên được xem là trung tâm của quá trình đào tạo.
Với hình thức đào tạo này ngồi các ràng buộc cơ bản về giảng viên, phịng học,
chun mơn,… thì sinh viên cũng có thể chủ động lựa chọn chương trình học phù hợp
với điều kiện và năng lực của mình.
Tuy nhiên, số lượng sinh viên thường rất lớn, mỗi sinh viên lại có một yêu cầu về thời
khóa biểu khác nhau. Vì vậy chắc chắn khơng thể thỏa mãn đồng thời cho tất cả các
sinh viên được mà chỉ thỏa mãn tối đa trong điều kiện cho phép.
8.2 Phương pháp giải quyết
-


Đầu mỗi học kỳ, nhà trường lập danh sách các lớp học phần dự
kiến mở, phân công GV giảng dạy rồi cho sinh viên đăng ký học.

-

Dựa vào số liệu đăng ký học ta sẽ phân thành các nhóm. Mỗi nhóm
là tập hợp các sinh viên đăng ký các lớp học phần giống nhau.

-

Kết hợp các nhóm lại với nhau sao cho các lớp học phần không bị
trùng lặp và tổng số lớp học phần bằng với tổng số lớp cần xếp
thời khóa biểu.

-

Chọn phương án kết hợp các nhóm sao cho tổng số sinh viên đăng
ký học được thỏa mãn yêu cầu là lớn nhất.

-

Áp dụng giải thuật di truyền để xếp thời khóa biểu cho các nhóm
lớp được chọn ở trên.

9. Tính độ thích nghi của cá thể
Việc đánh giá độ thích nghi của cá thể được căn cứ vào số lần vi phạm các ràng buộc.
Để thực hiện, đầu tiên ta tính độ thích nghi của cá thể dựa trên từng ràng buộc, sau đó
cộng tất cả độ thích nghi dựa trên từng ràng buộc đó lại ta sẽ thu được độ thích nghi
của cá thể.

Để tăng tính hiệu quả của giải thuật, tùy thuộc vào từng loại ràng buộc mà ta nhân số
lần vi phạm với một trọng số thích hợp.


×