Tải bản đầy đủ (.doc) (83 trang)

Tìm hiểu thuật toán di truyền và xây dựng chương trình xếp thời khóa biểu trường THCS nguyễn thái bình

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.75 MB, 83 trang )

MỤC LỤC
MỞ ĐẦU...........................................................................................................1
I. Lý do chọn đề tài.............................................................................................................1
II. Mục đích và nhiệm vụ đề tài.........................................................................................1
i. Mục đích của đề tài.................................................................................................1
ii. Nhiệm vụ cần thực hiện.........................................................................................1
iii. Công cụ xây dựng.................................................................................................1
III. Bố cục luận văn............................................................................................................1

CHƯƠNG 1. CƠ SỞ LÝ THUYẾT...............................................................3
1.1.

1.2.

1.3.

MỘT SỐ PHƯƠNG PHÁP GIẢI BÀI TOÁN XẾP THỜI KHÓA BIỂU................3
1.1.1. Tìm kiếm cục bộ..............................................................................................3
1.1.2. Xung đột tối thiểu............................................................................................3
1.1.3. Thuật giải mô phỏng luyện kim.......................................................................3
1.1.4. Thuật giải leo đồi.............................................................................................3
1.1.5. Tìm kiếm Tabu.................................................................................................4
TỔNG QUAN VỀ THUẬT GIẢI DI TRUYỀN.........................................................4
1.2.1. Lịch sử phát triển.............................................................................................4
1.2.2. Đặc điểm của giải thuật di truyền...................................................................5
1.2.3. Cấu trúc của một thuật giải di truyền..............................................................6
1.2.4. Quá trình chính trong giải thuật di truyền.......................................................7
KẾT LUẬN...............................................................................................................12

CHƯƠNG 2. PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG..........................13
2.1.


2.2.

2.3.

2.4.

KHẢO SÁT BÀI TOÁN...........................................................................................13
MÔ TẢ HỆ THỐNG.................................................................................................13
2.2.1. Quy trình nghiệp vụ.......................................................................................13
2.2.2. Phân tích và thiết kế chức năng.....................................................................15
XÂY DỰNG SƠ ĐỒ.................................................................................................17
2.3.1. Sơ đồ Use Case..............................................................................................17
2.3.2. Sơ đồ hoạt động.............................................................................................25
2.3.3. Sơ đồ tuần tự..................................................................................................34
PHÂN TÍCH VÀ THIẾT KẾ CƠ SỞ DỮ LIỆU......................................................37
2.4.1. Sơ đồ quan hệ.................................................................................................37
2.4.2. Danh sách các bảng cơ sở dữ liệu.................................................................37
2.5. KẾT LUẬN.......................................................................................................39

CHƯƠNG 3. TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ..........................40
1.1.

1.2.

1.3.

ỨNG DỤNG THUẬT TOÁN DI TRUYỀN VÀO CHƯƠNG TRÌNH...................40
3.1.1. Mô hình áp dụng............................................................................................40
3.1.2. Dữ liệu............................................................................................................41
3.1.3. Ràng buộc của bài toán..................................................................................41

3.1.4. Áp dụng thuật giải di truyền vào bài toán.....................................................41
KẾT QUẢ CHƯƠNG TRÌNH..................................................................................59
3.1.5. Kết quả 1........................................................................................................59
3.1.6. Kết quả 2........................................................................................................61
3.1.7. Kết quả 3........................................................................................................61
KẾT LUẬN................................................................................................................63
i


KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN....................................................63
I. Đánh giá kết quả đạt được............................................................................................63
II. Ưu điểm .......................................................................................................................64
III. Hạn chế ......................................................................................................................64
IV. Hướng phát triển ........................................................................................................64

TÀI LIỆU THAM KHẢO.............................................................................66
[1] Nguyễn Đình Thúc. Trí tuệ nhân tạo Lập trình tiến hóa. Hà Nội: Nhà xuất bản Giáo
Dục 66
[2] Lê Tiến Mẫu, 2012. Thuật giải di truyền và ứng dụng lập thời khóa biểu theo học chế
tín chỉ cho trường đại học. Luận văn thạc sĩ kỹ thuật. Đại Học Đà Nẵng..........................66
[3] Trần Nguyên Hương. Bài giảng giải thuật di truyền..................................................66
[4] Trang web : />[5] Trang web : />[6] Trang web : />[7] Trang web : .......................................................................66
[8] Trang web : www.youtube.com..................................................................................66

PHỤ LỤC.......................................................................................................67
HƯỚNG DẪN SỬ DỤNG..............................................................................................67
I. Các bước xây dựng thời khóa biểu.......................................................................67
II. Giao diện chính chương trình..............................................................................67



DANH MỤC HÌNH VẼ
HÌNH 1: SƠ ĐỒ USE CASE TỔNG QUÁT...............................................17
HÌNH 2: SƠ ĐỒ USE CASE QUẢN LÝ GIÁO VIÊN..............................18
HÌNH 3: SƠ ĐỒ USE CASE QUẢN LÝ TIẾT CHUẨN MÔN HỌC......18
HÌNH 4: SƠ ĐỒ USE CASE PHÂN CÔNG GIÁO VIÊN GIẢNG DẠY 19
HÌNH 5: SƠ ĐỒ HOẠT ĐỘNG CỦA USE CASE NHÓM XEM THÔNG
TIN..................................................................................................................27
HÌNH 6: SƠ ĐỒ HOẠT ĐỘNG CỦA CÁC USE CASE NHÓM XEM DỮ
LIỆU THỜI KHÓA BIỂU............................................................................27
HÌNH 7: SƠ ĐỒ HOẠT ĐỘNG CỦA CÁC USE CASE THUỘC NHÓM
THÊM DỮ LIỆU...........................................................................................28
HÌNH 8: SƠ ĐỒ HOẠT ĐỘNG CỦA CÁC USE CASE THUỘC NHÓM
SỬA DỮ LIỆU...............................................................................................29
HÌNH 9: SƠ ĐỒ HOẠT ĐỘNG CỦA CÁC USE CASE THUỘC NHÓM
XÓA DỮ LIỆU...............................................................................................30
HÌNH 10: SƠ ĐỒ HOẠT ĐỘNG CỦA USE CASE THÊM PHÂN CÔNG
GIẢNG DẠY GIÁO VIÊN...........................................................................31
HÌNH 11: SƠ ĐỒ HOẠT ĐỘNG CỦA USE CASE CẬP NHẬP PHÂN
CÔNG GIÁO VIÊN.......................................................................................32
HÌNH 12: SƠ ĐỒ HOẠT ĐỘNG CỦA USE CASE XẾP THỜI KHÓA
BIỂU................................................................................................................33
HÌNH 13: SƠ ĐỒ HOẠT ĐỘNG CỦA USE CASE IN THỜI KHÓA BIỂU
.........................................................................................................................33
HÌNH 14: SƠ ĐỒ TUẦN TỰ CỦA USE CASE XEM DỮ LIỆU GIÁO
VIÊN...............................................................................................................34
HÌNH 15: SƠ ĐỒ TUẦN TỰ CỦA USE CASE THÊM MỚI GIÁO VIÊN34
HÌNH 16: SƠ ĐỒ TUẦN TỰ USE CASE SỬA GIÁO VIÊN...................35
HÌNH 17: SƠ ĐỒ TUẦN TỰ CỦA USE CASE XÓA GIÁO VIÊN.........35
HÌNH 18: SƠ ĐỒ TUẦN TỰ CỦA USE CASE XEM THỜI KHÓA BIỂU
LỚP.................................................................................................................36

HÌNH 19: SƠ ĐỒ TUẦN TỰ CỦA USE CASE PHÂN NHÓM GIÁO VIÊN
.........................................................................................................................36
HÌNH 20: SƠ ĐỒ QUAN HỆ GIỮA CÁC BẢNG CSDL..........................37
HÌNH 21: MÔ HÌNH ÁP DỤNG GIẢI THUẬT DI TRUYỀN.................40
HÌNH 22: THỜI KHÓA BIỂU LỚP............................................................42
HÌNH 23: KẾT QUẢ 1 – LỚP 7/1................................................................60


HÌNH 24: KẾT QUẢ 1 – LỚP 8/1................................................................60
HÌNH 25: KẾT QUẢ 1 – LỚP 9/1................................................................61
HÌNH 26: KẾT QUẢ 2 – LỚP 9/1................................................................61
HÌNH 27: KẾT QUẢ 3 – LỚP 6/1................................................................62
HÌNH 28: KẾT QUẢ 3 – LỚP 7/1................................................................62
HÌNH 29: KẾT QUẢ 3 – LỚP 8/1................................................................63
HÌNH 30: KẾT QUẢ 3 – LỚP 9/1................................................................63
HÌNH 31: CÁC BƯỚC XÂY DỰNG THỜI KHÓA BIỂU........................67
HÌNH 32: GIAO DIỆN CHÍNH CHƯƠNG TRÌNH..................................68
HÌNH 33: THỰC ĐƠN DỮ LIỆU................................................................68
HÌNH 34: THỰC ĐƠN XÂY DỰNG CƠ SỞ DỮ LIỆU............................69
HÌNH 35: GIAO DIỆN THÔNG TIN CHUNG..........................................69
HÌNH 36: GIAO DIỆN LỚP HỌC...............................................................70
HÌNH 37: GIAO DIỆN GIÁO VIÊN..........................................................71
HÌNH 38: THỐNG BÁO LỖI KHI THÊM GIÁO VIÊN ĐÃ TỒN TẠI
TRONG CƠ SỞ DỮ LIỆU............................................................................71
HÌNH 39: THÔNG BÁO KHI TẢI TẬP TIN EXCEL THÀNH CÔNG. 71
HÌNH 40: GIAO DIỆN CHIA GIÁO VIÊN VÀO NHÓM........................72
HÌNH 41: GIAO DIỆN MÔN HỌC.............................................................73
HÌNH 42: GIAO DIỆN NHẤP SỐ TIẾT CHUẨN MÔN HỌC................74
HÌNH 43: GIAO DIỆN THÔNG BÁO LỖI KHI NHẬP GIÁ TRỊ KHÔNG
ĐÚNG.............................................................................................................74

HÌNH 44: GIAO DIỆN PHÂN CÔNG GIẢNG DẠY................................75
HÌNH 45: GIAO DIỆN THÔNG BÁO KHI CHƯA NHẬP SỐ TIẾT
CHUẨN..........................................................................................................75
HÌNH 46: GIAO DIỆN THÔNG BÁO KHI KHÔNG NHẬP ĐẦY ĐỦ
THÔNG TIN..................................................................................................75
HÌNH 47: THỐNG KÊ PHÂN CÔNG GIẢNG DẠY GIÁO VIÊN.........76
HÌNH 48: GIAO DIỆN KIỂM TRA DỮ LIỆU...........................................76
HÌNH 49: GIAO DIỆN THÔNG BÁO TẠO XONG CƠ SỞ DỮ LIỆU. .77
HÌNH 50: GIAO DIỆN NHẬP TIẾT NGHỈ GIÁO VIÊN.........................77
HÌNH 51: THỰC ĐƠN XẾP THỜI KHÓA BIỂU.....................................78


DANH MỤC BẢNG BIỂU
BẢNG 1: ĐẶC TẢ USE CASE XEM THÔNG TIN..................................19
BẢNG 2: ĐẶC TẢ USE CASE THÊM MỚI GIÁO VIÊN.......................19
BẢNG 3: ĐẶC TẢ USE CASE SỬA THÔNG TIN...................................20
BẢNG 4: ĐẶC TẢ USE CASE XÓA GIÁO VIÊN KHỎI DANH SÁCH20
BẢNG 5: ĐẶC TẢ USE CASE XEM THÔNG TIN..................................21
BẢNG 6: ĐẶC TẢ USE CASE CẬP NHẬP...............................................21
BẢNG 7: ĐẶC TẢ USE CASE XÓA TIẾT CHUẨN................................22
BẢNG 8: ĐẶC TẢ USE CASE XEM DỮ LIỆU PHÂN CÔNG...............22
BẢNG 9: ĐẶC TẢ USE CASE THÊM PHÂN CÔNG..............................23
BẢNG 10: ĐẶC TẢ USE CASE CẬP NHẬP PHÂN CÔNG GIÁO VIÊN
GIẢNG DẠY..................................................................................................23
BẢNG 11: ĐẶC TẢ USE CASE XÓA PHÂN CÔNG GIÁO VIÊN GIẢNG
DẠY................................................................................................................24
BẢNG 12: ĐẶC TẢ USE CASE THỐNG KÊ PHÂN CÔNG GIÁO VIÊN
GIẢNG DẠY..................................................................................................24
BẢNG 13: ĐẶC TẢ USE CASE KIỂM TRA DỮ LIỆU PHÂN CÔNG
GIÁO VIÊN...................................................................................................25

BẢNG 14: BẢNG NHÓM GIÁO VIÊN......................................................37
BẢNG 15: BẢNG MÔN HỌC......................................................................37
BẢNG 16: BẢNG TIẾT NGHỈ GIÁO VIÊN..............................................37
BẢNG 17: BẢNG GIÁO VIÊN....................................................................38
BẢNG 18: BẢNG KHỐI LỚP......................................................................38
BẢNG 19: BẢNG KHỐI_MÔN HỌC.........................................................38
BẢNG 20: BẢNG LỚP..................................................................................38
BẢNG 21: BẢNG TIẾT NGHỈ LỚP HỌC.................................................38
BẢNG 22: BẢNG PHÂN CÔNG.................................................................38
BẢNG 23: BẢNG THÔNG TIN CHUNG...................................................39
BẢNG 24: BẢNG THỜI KHÓA BIỂU.......................................................39


MỞ ĐẦU
I.

Lý do chọn đề tài

Vào đầu năm học mới việc sắp xếp các thời khóa biểu cho học sinh và lịch phân
công giáo viên giảng dạy lại được tiến hành. Thông qua buổi họp chuyên môn của
các bộ môn, những môn học và giáo viên phụ trách dạy từng lớp được xác định, kết
quả này sẽ được gửi lên ban giám hiệu nhà trường và việc lên lịch cho toàn trường
được tiến hành. Tại các trường việc này đa số vẫn làm thủ công, tốn khá nhiều thời
gian và công sức.
Tính phức tạp của bài toán xếp Thời khóa biểu nằm ở các quy định, ràng buộc
môn học chặt chẽ, ràng buộc nghỉ và không nghỉ của các giáo viên hết sức phức tạp,
đa dạng.
Vì vậy, em đã chọn đề tài “Tìm hiểu thuật toán di truyền và xây dựng chương
trình xếp thời khóa biểu trường THCS Nguyễn Thái Bình” làm đề tài tốt nghiệp,
nhằm tiết kiệm thời gian và công sức của ban giám hiệu, giúp cho việc lập thời khóa

biểu trở nên thuận tiện hơn.

II.

Mục đích và nhiệm vụ đề tài
i.

Mục đích của đề tài

 Tiết kiệm thời gian và công sức trong việc xếp thời khóa biểu.
 Ứng dụng giải thuật di truyền và dữ liệu đầu vào xếp thời khóa biểu.
 Xuất ra các file báo cáo về thời khóa biểu theo mục đích người sử dụng.

ii.

Nhiệm vụ cần thực hiện

 Tìm hiểu thuật toán di truyền (Genetic Algorithms).
 Phân tích bài toán, tìm hiểu cách xếp thời khóa biểu ở trường THCS
Nguyễn Thái Bình.
 Ứng dụng thuật toán di truyền để xếp thời khóa biểu

iii.

Công cụ xây dựng

 Visual studio 2010
 SQL server 2008

III.


Bố cục luận văn

Mở đầu: Tổng quan đề tài: Chương này trình bày về bối cảnh, mục đích và
nhiệm vụ của đề tài.

1


Chương I: Cơ sở lý thuyết: Chương này trình bày các lý thuyết cơ bản về thuật
toán GA.
Chương II: Phân tích thiết kế hệ thống: Chương này trình bày về phân tích và
thiết kế xây dựng chương trình xếp thời khóa biểu trường THCS Nguyễn Thái Bình.
Chương III: Triển khai và đánh giá kết quả. Chương này trình bày về các bước
xây dựng thời khóa biểu bằng việc áp dụng thuật toán di truyền và kết quả của
chương trình.
Kết luận và hương phát triển: Chương này tổng kết về những kết quả đạt được,
những ưu khuyết điểm của chương trình và hướng phát triển.

2


Chương 1. CƠ SỞ LÝ THUYẾT
1.1. MỘT SỐ PHƯƠNG PHÁP GIẢI BÀI TOÁN XẾP THỜI KHÓA
BIỂU
1.1.1. Tìm kiếm cục bộ
Tìm kiếm cục bộ dựa vào một ý tưởng tổng quát và đơn giản. Gọi P là một bài
toán tối ưu tổ hợp cần giải, và s là lời giải hiện hành giả sử là một lời giải khả thi của
P, và có hàm chi phí f(s). Miền lân cận N(s) được định nghĩa cho s, là tập những lời
giải láng giềng khả thi s’ của s sao cho từ s ta có thể đạt tới s’ nhờ vào một bước

chuyển m. Bước chuyển có tác dụng biến đổi s thành ra một lời giải láng giềng. Thao
tác biến đổi này được lặp cho đến khi hội tụ về một lời giải tốt. Lời giải này là lời
giải cận tối ưu, mà trong một số bài toán thực tế, không sai biệt gì nhiều với lời giải
tối ưu.

1.1.2. Xung đột tối thiểu
Thuật giải xung đột tối thiểu, viết tắt là MC đã được dùng khá phổ biến để
giải hệ ràng buộc quá mức. Thuật giải MC chọn ngẫu nhiên một biến nào đó dính líu
đến một ràng buộc bị vi phạm và rồi chọn một trị từ miền trị của biến này sao cho tối
thiểu hoá số lượng những vị phạm ràng buộc có thể xảy ra. Vì Thuật giải MC thuần
túy có thể không thoát ra được điểm tối ưu cục bộ, Thuật giải thường kết hợp với một
chiến lược bước ra ngẫu nhiên (random walk). Với một biến nào đó được chọn, chiến
lược bước ra ngẫu nhiên lấy ngẫu nhiên một trị từ miền trị của biến này với xác xuất
p, và áp dụng theo Thuật giải MC với xác xuất 1- p. Giá trị của thông số p có ảnh
hưởng lên hiệu quả của Thuật giải. Thuật giải này được gọi là MCRW

1.1.3. Thuật giải mô phỏng luyện kim
Mô phỏng luyện kim(SA) là một kỹ thuật tìm kiếm ngẫu nhiên (stochastic
search) mà tỏ ra rất hữu hiệu cho những bài toán tối ưu hóa qui mô lớn. Trong kỹ
thuật này, nhiệt độ là biến được khởi tạo ở một giá trị cao và dần dần giảm dần
xuống trong quá trình tìm kiếm. Tại những trị nhiệt độ cao, các bước chuyển được
chấp nhận một cách ngẫu nhiên bất luận chúng là bước chuyển có cải thiện hàm chi
phí của lời giải hay không. Khi nhiệt độ được giảm xuống, xác xuất để chấp nhận một
lời giải có cải thiện sẽ tăng lên và xác xuất để chấp nhận một lời giải không cải thiện
sẽ giảm xuống. Có một số cách thức giảm nhiệt độ dần xuống được dùng trong một
Thuật giải SA, được gọi là lịch biểu làm nguội (cooling schedule).

1.1.4. Thuật giải leo đồi
Thuật giải leo đồi chính là nền tảng cơ sở của các kỹ thuật tìm kiếm cục bộ.
Mặc dù đây là Thuật giải đơn giản nhưng lại nó lại rất mạnh và hiệu quả trong việc

3


Tìm hiểu thuật toán di truyền và xây dựng chương trình xếp thời khóa biểu trường THCS
Nguyễn Thái Bình

giải quyết các bài toán CSP lớn. Thuật ngữ “leo đồi” (hill-climbing) xuất phát từ cơ
chế “tu chỉnh lập”: ở mỗi bước của việc tìm kiếm, chúng ta sẽ chọn một bước chuyển
mà nó cải thiện giá trị hàm mục tiêu để thực hiện. Trong Thuật giải leo đồi, chỉ
những bước chuyển cải thiện được hàm chi phí hoặc không làm cho hàm chi phí thay
đổi mới được chọn vì vậy việc tìm kiếm sẽ liên tục bước lên vị trí cao hơn cho đến
khi nó gặp điều kiện dừng.

1.1.5. Tìm kiếm Tabu
Tìm kiếm Tabu được đề xuất bởi Glover năm 1986. Phương pháp dò tìm trong
không gian lời giải bằng cách di chuyển từ một lời giải s tại lượt lặp t về một lời giải
tốt nhất s’ trong tập con N* của miền lân cận N(s). Vì s’ không nhất thiết cải thiện
chi phí của s, một cơ chế được đặt ra để ngăn chặn quá trình khỏi lặp vòng trên một
chuỗi các lời giải. Một cách để tránh sự lặp vòng là cấm quá trình tìm kiếm quay về
những lời giải đã gặp rồi, nhưng làm như vậy đòi hỏi phải lưu trữ khá nhiều thông
tin. Thay vì làm thế, chỉ một vài thuộc tính của những lời giải đã gặp sẽ được lưu
trong danh sách tabu (tabu list) và bất kỳ lời giải nào sở hữu những thuộc tính này sẽ
không được xét đến trong θ lần lặp. Cơ chế này thường được gọi là bộ nhớ ngắn hạn
và θ được gọi là kỳ hạn tabu. Tìm kiếm tabu được phát triển thành nhiều dạng cải
tiến như tìm kiếm tabu thích nghi (reactive tabu search) và tìm kiếm tabu với hai
danh sách tabu: bộ nhớ ngắn hạn và bộ nhớ dài hạn.
Như đã trình bày ở trên chúng ta có rất nhiều phương pháp tiếp cận giải bài toán
xếp lịch. Trong luận văn này em xin trình bày phương pháp áp dụng thuật toán di
truyền để giải bài toán này.


1.2.

TỔNG QUAN VỀ THUẬT GIẢI DI TRUYỀN

1.2.1. Lịch sử phát triển
Vào những năm 1950 và 1960 một số nhà khoa học nghiên cứu các hệ thống tiến
hóa độc lập với nhau với ý tưởng là tiến hóa có thể được sử dụng như một công cụ tối
ưu hóa cho các bài toán kỹ thuật. Ý tưởng trong tất cả các hệ thống liên quan tới một
quần thể các lời giải cho một bài toán cho trước, dử dụng các toán tử bắt nguồn từ
biến đổi gen và lựa chọn tự nhiên.
Năm 1960, Rechenberg giới thiệu “các chiến lược tiến hóa”, một phương pháp
được ông sử dụng để tối ưu hóa các tham số thực cho các thiết bị như máy bay. Ý
tưởng này được tiếp tục phát triển sau đó bởi Schwefel. Lĩnh vực các chiến lược tiến
hóa vẫn là một lĩnh vực nghiên cứu được quan tâm nhiều, hầu như phát triển độc lập
với lĩnh vực giải thuật di truyền, nhưng gần đây 2 lĩnh vực này bắt đầu có sự tương
tác rõ nét hơn. Owens và Walsh (1966) đã phát triển “lập trình tiến hóa” một kỹ
thuật trong đó các lời giải cho một bài toán cho trước được biểu diễn dưới dạng các
máy có trạng thái xác định, các máy này “tiến hóa” nhờ đột biến (biến đổi) ngẫu
nhiên các biểu đồ biến đổi trạng thái của chúng và chọn những trạng thái tốt nhất.
4


Tìm hiểu thuật toán di truyền và xây dựng chương trình xếp thời khóa biểu trường THCS
Nguyễn Thái Bình

Các chiến lược tiến hóa, lập trình tiến hóa và giải thuật di truyền cùng nhau tạo thành
xương sống cho tính tiến hóa.
GAs được phát minh bởi John Holland trong những năm 1960 và được phát triển
bởi Holland với các sinh viên và đồng nghiệp của ông ở đại học Michigan trong
những năm 1960 và 1970. Không giống như các chiến lược tiến hóa và lập trình tiến

hóa, mục tiêu ban đầu của Holland là thiết kế các thuật toán để giải quyết những bài
toán cụ thể, nhưng sau đó từ những nghiên cứu hiện tượng thích nghi xảy ra trong tự
nhiên và ông thấy rằng chúng có thể được tích hợp trong máy tính.
Cuốn sách của Holland xuất bản năm 1975: “Thích nghi trong tự nhiên và các hệ
thống nhân tạo” giới thiệu giải thuật di truyền như là một khái niệm của tiến hóa sinh
học và đưa ra một nền móng lý thuyeert cho tính thích nghi trong GAs. Giải thuật di
truyền của Holland là một phương pháp để di chuyển từ một quần thể các NST sang
một quần thể khác nhờ sử dụng một kiểu lựa chọn tự nhiên cùng các toán tử lai ghép,
đột biến và đảo ngược. Mỗi NST gồm các gen, mỗi gen là một biểu hiện của một alen
cụ thể. Toán tử lựa chọn chọn những NST trong quần thể mà chúng cho phép sinh
sản, và nói chung các NST thích nghi tốt hơn tạo ra nhiều con hơn những NST có độ
thích nghi thấp hơn.
Việc đưa vào khái niệm quần thể của Holland cùng với các khái niệm lai ghép,
đảo ngược và đột biến thực sự là một cuộc cách mạng.Các chiến lược tiến hóa của
Rechenberg sử dụng quần thể với 2 các thể, một cha/mẹ và một con, con ghép đã
không được đề cập lúc đầu.
Lần đầu tiên Holland nghiên cứu các giải thuật này, chúng hoàn toàn không có
tên. Do nguồn gốc của phương pháp này là từ các gen di truyền, Holland đã đặt tên
cho nó là giải thuật di truyền.

1.2.2. Đặc điểm của giải thuật di truyền
Thuật giải di truyền sử dụng các thuật ngữ vay mượn của di truyền học. Ta có
thể nói về các cá thể (hay kiểu gen, cấu trúc) trong một quần thể; những cá thể này
cũng còn được gọi là các chuỗi hay các nhiễm sắc thể. Các nhiễn sắc thể được tạo
thành từ các đơn vị - các gen – biểu diễn trong một chuỗi tuyến tính; mỗi gen kiểm
soát một đặc trưng. Gen với những đặc trưng nhất định có vị trí nhất định trong
nhiễm sắc thể.
Mỗi kiểu (nhóm) gen (ta gọi là một nhiễm sắc thể) sẽ biểu diễn một lời giải của
bài toán đang giải. Một quá trình tiến hóa được thực hiện trên một quần thể các
nhiễm sắc thể ương ứng với một quá trình tìm kiếm lời giải trong không gian lời giải.

Tìm kiếm đó cần cân đối hai mục tiêu: khai thác những lời giải tốt nhất và khảo sát
không gian tìm kiếm. Thuật giải di truyền (GA) là phương pháp tìm kiếm độc lập
miền, tạo được sự cân đối đáng kể giữa việc khai thác và khảo sát không gian tìm
kiếm.
5


Tìm hiểu thuật toán di truyền và xây dựng chương trình xếp thời khóa biểu trường THCS
Nguyễn Thái Bình

Khác biệt quan trọng giữa tìm kiếm của GA và các phương pháp tìm kiếm khác
là GA duy trì và xử lý một quần thể các lời giải – tất cả những phương pháp khác chỉ
xử lý một điểm trong không gian tìm kiếm. Quần thể trải qua tiến 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, hàm mục tiêu được dùng đóng vai trò
môi trường.

1.2.3. Cấu trúc của một thuật giải di truyền
Một thuật giải di truyền có cấu trúc đơn giản tương tự với cấu trúc của bất kỳ
chương trình tiến hóa nào. Ở bước lặp t, thuật giải di truyền duy trì một quần thể các
lời giải (các nhiễm sắc thể, vectơ), P(t) = {x 1t,…..,xnt}. Mỗi lời giải xit được lượng
giá để biết độ thích nghi của nó. Rồi một quần thể mới (lặp lần thứ t+1) được hình
thành bằng cách chọn giữ lại những cá thể thích nghi nhất. Một số cá thể của quần
thể này trải qua những biến đổi nhờ lai tạo (phép lai) và đột biến (phép đột biến),
hình thành nên những lời giải mới.
Một thuật giải di truyền giải một bài toán cụ thể phải gồm 5 thành phần sau:
 Một cấu trúc dữ liễu biểu diễn di truyền theo lời giải của bài toán: Đây là
vấn đề cần giải quyết trước khi giải bài toán với GA. Các phương pháp mã
hóa thường được sử dụng:
o Mã hóa dạng chuỗi nhị phân: mỗi NST là một chuỗi bit 0 và 1

o Mã hóa thứ tự: mỗi nhiễm sắc thể là một chuỗi các số nguyên thể hiện
thứ tự phân bố lời giải của bài toán
o Mã hóa theo giá trị: mỗi nhiễm sắc thể là một chuỗi các giá trị có mối
quan hệ tương ứng với bài toán
o Mã hóa dạng cây: mỗi nhiễm sắc thể là một cây của nhóm đối tượng
nào đó
 Cách khởi tại quần thể ban đầu P(0): Tập lời giải ban đầu được khởi tạo
một cách ngẫu nhiên từ không gian lời giải
 Hàm đánh giá cá thể: đánh giá khả năng thích nghi của tập lời giải theo
yêu cầu bài toán.
 Các phép toán di truyền.
 Các tham số khác
o Xác suất lai ghép Pc: là mức độ thương xuyên của thao tác lai ghép.
Nếu không lai ghép thì nhiễm sắc thể con sao chép nguyên vẹn nhiễm
sắc thể cha mẹ. Nếu có lai ghép thì nhiễm sắc thể con được xây dựng
từ những thành phần của nhiễm sắc thể cha mẹ.
6


Tìm hiểu thuật toán di truyền và xây dựng chương trình xếp thời khóa biểu trường THCS
Nguyễn Thái Bình

o Xác suất đột biến Pm: là mức độ thường xuyên của việc đột biến một
phần của nhiễm sắc thể. Xác suất đột biến phải nhỏ, vì nếu xác suất
này cao sẽ làm tăng khả năng hội tụ.
o Xác suất tái sinh Pr: cho biết tần suất thực hiện toán tử tái sinh.
Kích thước quần thể: nếu kích thước quần thể quá nhỏ thì khả năng lai ghép sẽ
nhỏ và chỉ một phần nhỏ của tập tìm kiếm được xử lý. Ngược lại, nếu kích thước quá
lớn thì tốc độ xử lý chậm. Số lượng cá thể tối ưu phụ thuộc vào bài toán cụ thể và
phương pháp mã hóa cụ thể.


1.2.4. Quá trình chính trong giải thuật di truyền
1.2.4.1. Quá trình lai ghép (Phép lai)
Phép lai là quá trình hình thành nhiễm sắc thể mới trên cơ sở các nhiễm sắc thể
cha – mẹ để tạo ra nhiễm sắc thể con có đặc tính mong muốn là tốt hơn thế hệ bố mẹ.
Trong thuật toán di truyền có rất nhiều phương pháp lai như: Lai ghép một điểm, lai
ghép đa điểm, lai ghép có trật tự, lai ghép dựa trên vị trí,…
Lai ghép một điểm
Là phương pháp lai ghép đơn giản nhất, thường được sử dụng trong cách biểu
diễn của nhiễm sắc thể là chuỗi nhị phân. Phép lai được thực hiện như sau:
 Chọn ngẫu nhiên hai (hay nhiều) cá thể bất kỳ trong quần thể. Giả sử các
nhiễm sắc thể của cha – mẹ đều có m gen.
 Tạo một số ngẫu nhiên trong khoảng từ 1 đến m-1 (ta gọi là điểm lai).
Điểm lai chia các chuỗi cha – mẹ dài m thành hai nhóm chuỗi con m1 và
m2. Hai chuỗi nhiễm sắc thể con mới 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ến hóa tiếp
theo.
Ví dụ: cho 2 nhiễm sắc thể cha mẹ có độ dài là 9, điểm lai k=4
Cha:

110011000

Con1: 110011000

Mẹ:

110011000

Con2: 110001100
Lai ghép đa điểm


Lai ghép đa điểm là sự mở rộng của lai ghép một điểm, chọn ngẫu nhiên k điểm
k1, k2,….., kn từ cặp nhiễm sắc thể cha mẹ, sao cho 1≤ k 1 ≤ k2 ≤….sắc thể con.
Ví dụ: cho 2 nhiễm sắc thể cha mẹ có độ dài 18, k = 3 tương ứng các điểm 3,7,13
Cha: 110 1000 110010 100010 Mẹ: 110 000011101 111100
Con1: 110 0000 110010 111100 Con2: 110 1000 11101 100010
7


Tìm hiểu thuật toán di truyền và xây dựng chương trình xếp thời khóa biểu trường THCS
Nguyễn Thái Bình

Lai ghép ánh xạ từng phần
Lai ghép ánh xạ từng phần do Golberg và Lingde đề nghị, là phương pháp tạo ra
con mới bằng cách chọn một chuỗi con từ cha mẹ, đồng thời bảo toàn thứ tự và vị trí
của tối đa cá thể của cha mẹ kia. Thuật toán gồm các bước sau:
 Chọn hai điểm cắt nhau cùng với 1 chuỗi một cách ngẫu nhiên, chuỗi con
được định nghĩa bởi hai điểm cắt được gọi là ánh xạ từng phần.
 Trao đổi hai chuỗi con giữa hai điểm nhiễm sắc thể cha mẹ để tạo ra nhiễm
sắc thể con.
 Xác định ánh xạ giữa các thành phần ánh xạ.
 Hợp thức cá thể con tương ứng với các quan hệ ánh xạ.
Lai ghép có trật tự
Lai ghép có trật tự có thể được xem là một biến thể của lai ghép ánh xạ từng
phần. Thuật toán gồm các bước sau:
 Chọn ngẫu nhiên một chuỗi con từ một cá thể cha mẹ.
 Tạo ra cá thể con bằng cách sao chép chuỗi con vào những vị trí tương ứng
như trong cá thể cha mẹ.
 Tạo ra một trình tự bắt đầu từ điểm cắt của cha (mẹ) được chọn và xóa các

gen đã được chọn ở cha (mẹ).
 Bổ sung các gen vào cá thể được chọn bắt đầu điểm cắt.
Ví dụ: Cha: 9 3 8 5 7 1 6 4 2
Con1: x x 8 5 7 1 x x x

Mẹ: 3 5 2 6 1 4 8 7 9

Con2 : x x 2 6 1 4 x x x

Tạo ra một thứ tự bắt đầu từ điểm cắt, cá thể được chọn ở đây là cá thể cha : 6
– 4 – 2 – 9 – 3 – 8 – 5 – 7 – 1. Và xóa các gen đã có trong cá thể cha mẹ : 9 – 3 – 8 –
5 – 7. Bổ sung các gen vào trong con 2 bắt đầu điểm cắt ta được : 5 7 2 6 1 4 9 3 8
Tương tự với cá thể con 1 bắt đầu điểm cắt ta được : 6 4 8 5 7 1 9 3 2
Lai ghép dựa trên vị trí
Trong quá trình lai ghép dựa trên vị trí một mặt nạ nhị phân được sinh ra có kích
thước sau đó trao đổi các gen liên quan giữa các cá thể cha mẹ dựa vào mặt nạ. Với
mỗi giá trị của mặt nạ, nếu mặt nạ có giá trị 1 thì cá thể con sẽ nhận gen của cha,
ngược lại là gen của mẹ. Các bước thực hiện thuật toán như sau
Ví dụ : Cha : 9 5 2 1 6 3 8 7 4

Mẹ: 3 5 2 6 1 4 8 7 9

Mặt nạ M : 100010011
Thực hiện lai ghép tạo ra cá thể con bằng cách, với mỗi giá trị tương ứng của
mặt nạ M, nếu m[i] = 1 thì cá thể con nhận gen của cha, ngược lại m[i] = 0 thì cá thể
8


Tìm hiểu thuật toán di truyền và xây dựng chương trình xếp thời khóa biểu trường THCS
Nguyễn Thái Bình


con nhận gen của mẹ. Trong quá trình thực hiện kết hợp với thuật toán sửa chữa để
tránh xung đột. Trong ví dụ ta thực hiện từng bước sau :
Giá trị m[1] = 1 tức gen đầu tiên của cá thể con X’ nhận gen của cá thể cha, nếu
trong cá thể con chưa nhận gen đó : 9xxxxxxxx
Giá trị m[2] = 0 gen thứ 2 của cá thể con X’ nhận gen của cá thể mẹ, nếu rong cá
thể con chưa tồn tại gen đó: 95xxxxxxx
Tương tự với các giá trị m[i], ta có cá thể con X’ 9 5 2 6 1 3 8 7 4
Lai ghép thứ tự tuyến tính
Lai ghép thứ tự tuysn tính được phát triển như một sửa đổi của lai ghép dựa trên
thứ tự. Lai ghép dựa trên thứ tự có khuynh hướng truyền những vị trí tương đối với
các gen thay vì những vịt rí tuyệt đối. Trong lai ghép thứ tự, nhiễm sắc thể được xem
xét xoay vòng. Thuật toán được mô tả như sau :
 Chọn ngẫu nhiên chuỗi con từ hai cá thể cha, mẹ.
 Xóa các gen đã xuất hiện ở vùng chọn ở cá thẻ cha, mẹ và đánh dấu các vị
trí đó bằng ký tự x, ở cá thể.
 Dịch chuyển các ký tự x vào vùng chọn ở các cá thể cha, mẹ cho đến khi
chúng gặp miền giao nhau.
 Thay thế chuỗi chọn từ cá thể cha vào cá thể mẹ và ngược lại.
1.2.4.2. Quá trình đột biến (Phép đột biến)
Đột biến là hiện tượng cá thể con mang một số tính trạng không có trong mã di
truyền của cha – mẹ. Phép đột biến cho phép đưa thêm các thông tin mới vào quần
thể làm cho chất liệu di truyền phong phú thêm. Phép đột biến xảy ra với xác suất
pm, nhỏ hơn rất nhiều so với xác suất lai pc.
Độ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.
Đột biến chèn:
 Chọn ngẫu nhiên một cá thể bất kỳ cha – mẹ trong quần thể.
 Tạo một số ngẫu nhiên k trong khoảng từ 1 đến m, 1 ≤ k ≤ m.
 Thay đổi gen thứ k và trả cá thể này về quần thể để tham gia quá trình tiến

hóa tiếp theo.
 Đột biến chèn có thể xem như trường hợp đặc biệt của đột biến thay thế.
Đột biến đảo ngược: chọn hai vị trí ngẫu nhiên trong một nhiễm sắc thể, sau đó
nghịch đảo chuỗi giữa hai vị trí này.
Đột biến tương hỗ: chọn hai vị trí và sau đó hoán vị gen trên những vị trí này.
9


Tìm hiểu thuật toán di truyền và xây dựng chương trình xếp thời khóa biểu trường THCS
Nguyễn Thái Bình

Đột biến chuyển dịch: chọn ngẫu nhiên một gen sau đó dịch chuyển nó đến một
vị trí ngẫu nhiên khác trong nhiễn sắc thể.
1.2.4.3. Quá trình sinh sản (phép tái sinh)
Phép tái sinh là quá trình trong đó các cá thể được sao chép trên cơ sở độ thích
nghi của nó. Độ thích nghi là một hàm gán một giá trị thực cho các cá thể trong quần
thể. Quá trình này có thể được 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ộng
dồn các giá trị thích nghi (theo số thứ tự gán cho từng cá thể). Giả sử quần
thể có n cá thể. Gọi độ thích nghi của cá thể thứ i là Fi, tổng dồng 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 F > Ftk đưa vào quần thể của thế hệ mới.
1.2.4.4. Quá trình chọn lọc (phép chọn)
Phép chọn là quá trình loại bỏ các cá thể xấu trong quần thể để chỉ giữ lại trong
quần thể các cá thể tốt. Cơ chế chọn lọc phải đảm bảo các cá thể có độ phù hợp tốt
hơn sẽ có xác suất được lựa chọn cao hơn. Có nhiều phương pháp để chọn các nhiễm
sắc thể tốt nhất: chọn lọc cạnh tranh, chọn lọc xếp hạng, bánh xe quay Ru-let
(roulette wheel),…
Chọn lọc cạnh tranh (Tournament Selection): Trong sơ đồ chọn lọc cạnh tranh,

mỗi lần chọn lọc ta tiến hành chọn ngẫu nhiên t cá thể từ quần thể hiện tại. Bản sao
của cá thể tốt nhất trong t cá thể kể trên được sao chép vào quần thể bố mẹ. Tiến
hành n lần chọn như vậy ta thu được quần thể bố mẹ. Giá trị t được gọi là kích cỡ
cạnh tranh.
Chọn lọc xếp hạng (Rank Selection): Xếp hạng cá thể dựa trên độ thích nghi của
chúng. Cá thể xấu nhất sẽ có giá trị 1, tiếp theo là 2,…và cá thể tốt nhất sẽ có độ
thích nghi n (n là số nhiễm sắc thể trong quần thể).
Chọn lọc bánh xe quay Ru-let (Roulette Wheel): Đối với tiến trình chọn lọc
(quần thể mới thỏa phân bố xác suất dựa trên độ thích nghi), ta dùng bánh xe quay
Ru-let với các rãnh được định kích thước theo độ thích nghi. Ta xây dựng bánh xe
Ru-lét như sau (giả định rằng, các độ thích nghi đều dương, trong trường hợp ngược
lại ta có thể dùng một số phép biến đổi tương ứng để định lại tỷ lệ sao cho các độ
thích nghi đều dương)
 Tính độ thích nghi eval (vi) của mỗi nhiễm sắc thể vi (i=1….pop_size)
 Tính tổng giá trị thích nghi toàn quần thể

10


Tìm hiểu thuật toán di truyền và xây dựng chương trình xếp thời khóa biểu trường THCS
Nguyễn Thái Bình

 Tính xác suất chọn pi của mỗi nhiễm sắc thể vi (i = 1…pop_size) :
pi = eval (vi) / F
 Tính vị trí xác suất của qi của mỗi nhiễm sắc thể vi, (i=1…pop_size)

 Tiến trình chọn lọc được thực hiện bằng cách quay bánh xe Ru_let
pop_size lần ; mỗi lần chọn một nhiễm sắc thể từ quần thể hiện hành vào
quần thể mới theo cách sau :
o Phát sinh ngẫu nhiên một số r trong đoạn [0…1]

o Nếu r < q i thì chọn nhiễm sắc thể đầu tiên v i; ngược lại thì chọn nhiễm
sắc thể thứ I là vi (2 ≤ i ≤ pop_size) sao cho qi-1 < r ≤ qi.
1.2.4.5. Giải thuật di truyền
Thuật toán :
Bắt đầu
t = 0, giatri=0 ;
Khởi tạo P(t);
Khi (điều kiện dừng chưa thỏa) lặp (*)
Lai Q(t) từ P(t-1) ;
Đột biến R(t) từ Q(t-1) ;
Tính giá trị vi phạm ràng buộc cho các cá thể R(t);
Chọn lọc P(t) từ R(t);
giatri = giá trị P[0]

//giá trị vi phạm ràng buộc thấp nhất

khi (giá trị thỏa)
Hết lặp
t = t + 1;
Hết lặp
Kết thúc
1.2.4.6. Điều kiện kết thúc lặp của GAs
Tùy thuộc điều kiện về tốc độ và tài nguyên máy tính mà có các cách kết thúc
vấn đề khác nhau. Một số trường hợp thông thường như sau :
11


Tìm hiểu thuật toán di truyền và xây dựng chương trình xếp thời khóa biểu trường THCS
Nguyễn Thái Bình


 Kết thúc theo kết quả : khi đạt đến mức giá trị yêu cầu thì dừng quá trình
thực hiện.
 Kết thúc dựa vào số thế hệ : chọn trước số thế hệ, quá trình sẽ dừng ở số
thế hệ đã quy định trước.
 Kết thúc theo thời gian : dựa vào số giờ quy định để kết thúc.

1.3.

KẾT LUẬN

Chương 1 đã trình bày một số phương pháp giải quyết bài toán xếp thời khóa
biểu, đi sâu vào việc tìm hiểu thuật toán di truyền như đặc điểm, cấu trúc và các quá
trình chính trong thuật toán di truyền. Những cơ sở lý thuyết này sẽ được áp dụng
vào bài toán được trình bày ở chương 3.

12


Chương 2. PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
2.1.

KHẢO SÁT BÀI TOÁN

Tại trường THCS Nguyễn Thái Bình, khối 7 và khối 9 sẽ học buổi sáng, khối 6
và khối 8 học buổi chiều. Các lớp sẽ học vào thứ 2, thứ 3, thứ 4, thứ 6 và thứ 7, thứ 5
toàn trường được nghỉ.
Mỗi buổi học có 5 tiết, tất cả các tiết đều được học.
Môn thể dục sẽ được dạy trái buổi so với buổi học chính. Riêng đối với khối 7
và khối 8 sẽ có thêm môn tin học được học trái buổi.
Danh sách môn học – số tiết chuẩn mỗi môn sẽ căn cứ theo quyết định của bộ

giáo dục và đào tạo. Trong bài toán này sẽ sử dụng những thông tin có trong “Quyết định
số 1866 /QĐ-BGDĐT ngày 17/5/2012 của Bộ Giáo dục và Đào tạo về việc Ban hành
Khung kế hoạch thời gian năm học 2012-2013 của giáo dục mầm non, giáo dục phổ
thông và giáo dục thường xuyên”.
Cả năm học có 37 tuần thực học, trong đó: Học kỳ I: 19 tuần; Học kỳ II: 18 tuần
(Học kỳ I có 01 tuần dự trữ).

Tiết học tối đa /tuần – tiết học tối đa/ buổi của các môn sẽ dựa vào số tiết chuẩn
của môn đó và số tuần học trong mỗi kỳ để chia hợp lý.
Vào đầu mỗi học kỳ ở các tổ bộ môn sẽ tiến hành họp để phân công giảng dạy
lớp – môn học cho từng giáo viên, kể cả phân công chủ nhiệm. Những giáo viên nào
có yêu cầu nghỉ 1 số tiết cố định trong tuần sẽ được xem xét. Kết thúc cuộc họp danh
sách phân công và danh sách tiết nghỉ giáo viên sẽ được đưa về cho thầy hiệu phó, là
người tổng hợp các danh sách ở tất cả bộ môn và tiến hành xếp thời khóa biểu.

2.2.

MÔ TẢ HỆ THỐNG

2.2.1. Quy trình nghiệp vụ
Trong lần sử dụng chương trình đầu tiên người dùng phải xây dựng cơ sở dữ liệu
chung, những dữ liệu này sẽ được sử dụng trong suốt thời gian sau, những dữ liệu cần
nhập:
 Dữ liệu lớp học:
o Khối lớp học
o Danh sách lớp học
 Dữ liệu giáo viên: viên sẽ được nhập theo tổ bộ môn, vì vậy những giáo
viên đứng gần nhau thường thuộc cùng một tổ và khi phân công giáo viên
giảng dạy sẽ thuận tiện hơn.
Đinh Thị Lệ Thu – 11TLT


13


o Danh sách giáo viên.
o Danh sách nhóm giáo viên.
o Chia giáo viên vào từng nhóm.
 Dữ liệu môn học:
o Danh sách môn học
o Số tiết chuẩn: tiết tối đa/tuần và tiết tối đa/buổi.
Những lần sử dụng tiếp theo người dùng không cần nhập lại những thông tin đó,
nhưng có thể sửa chữa để phù hợp. Ngoài những dữ liệu trên, khi xếp thời khóa biểu
vào mỗi học kỳ cần cập nhập những dữ liệu sau:
 Năm học, học kỳ.
 Tiết nghỉ của giáo viên.
 Phân công giảng dạy: có thể phân công theo lớp hoặc theo giáo viên, thông
thường là phân công theo giáo viên.
Sau khi nhập dữ liệu phân công giảng dạy, người dùng có thể thống kê và kiểm
tra dữ liệu.
 Phân công theo lớp:
o Thống kê:
-

Những môn mà lớp được học.

-

Tổng số tiết trên 1 tuần. Những lớp cùng một khối số tiết trên một
tuần sẽ bằng nhau.


o Những thông tin kiểm tra:
-

Kiểm tra lớp chưa có giáo viên chủ nhiệm.

-

Kiểm tra giáo viên chưa được phân công giảng dạy.

-

Kiểm tra lớp chưa được phân công giảng dạy.

-

Kiểm tra môn học nào chưa được phân công cho lớp.

 Phân công theo giáo viên
o Thống kê
-

Lớp chủ nhiệm..

-

Những lớp giáo viên giảng dạy.

-

Tổng số tiết giáo viên dạy/tuần


o Những thông tin kiểm tra: Giống như phân công theo lớp
Đinh Thị Lệ Thu – 11TLT

14


Tìm hiểu thuật toán di truyền và xây dựng chương trình xếp thời khóa biểu trường THCS
Nguyễn Thái Bình

Sau khi dữ liệu đã được chuẩn bị xong có thể tiến hành xếp thời khóa biểu.
Thời khóa biểu được xếp xong người dùng có thể xuất báo cáo thời khóa biểu
trường – lớp – giáo viên.

2.2.2. Phân tích và thiết kế chức năng
Qua quá trình phân tích những chức năng của đề tài, hệ thống sẽ gồm những
chức năng sau:
 Nhập dữ liệu: dữ liệu về giáo viên, lớp học, môn học, khối lớp, phân công
lịch dạy cho giáo viên/lớp học,…
 Nhập tiết nghỉ của giáo viên/lớp học
 Sắp xếp thời khóa biểu
 Xem và in thời khóa biểu.
2.2.2.1. Chức năng nhập thông tin chung
 Giáo viên: chương trình cho phép người dùng nhập trực tiếp trên giao diện
hoặc nhập giáo viên từ tập tin excel. Những thông tin được nhập là họ tên
giáo viên, tên viết tắt. Tên viết tắt của giáo viên không được trùng nhau.
Trước khi lưu dữ liệu chương trình sẽ kiểm tra tên viết tắt của giáo viên đó
đã tồn tại hay chưa, nếu đã tồn tại sẽ thông báo cho người dùng.
Khi nhập dữ liệu từ tập tin excel chương trình sẽ kiểm tra giáo viên đã tồn
tại trong cơ sở dữ liệu hay chưa và chỉ nhập những giáo viên chưa có trong

cơ sở dữ liệu.
Ngoài ra người dùng còn có thể chỉnh sửa, xóa những giáo viên khi cần
thiết.
 Nhóm giáo viên: Danh sách các tổ bộ môn trong trường.
Sau khi giáo viên và nhóm giáo viên được nhập dữ liệu sẽ phân công giáo
viên vào nhóm tương ứng.
 Thông tin về lớp, môn học, khối học.
 Tiết chuẩn môn học: gồm có khối lớp, môn học, tiết quy định (tiết tối
đa/tuần) và tiết giới hạn (tiết tối đa/buổi) theo quy định của Bộ giáo dục.
Dữ liệu này được dùng khi phân công giảng dạy.


Phân công giảng dạy: phân công theo giáo viên, lớp học.

2.2.2.2. Nhập tiết nghỉ giáo viên
Chức năng nhập tiết nghỉ giáo viên sẽ hiển thị danh sách những giáo viên trong
được phân công giảng dạy. Chọn giáo viên và kích chọn vào những buổi, thứ, tiết mà
15


Tìm hiểu thuật toán di truyền và xây dựng chương trình xếp thời khóa biểu trường THCS
Nguyễn Thái Bình

giáo viên đó nghỉ. Trong khi xếp thời khóa biểu chương trình sẽ không chia giáo viên
vào những tiết này.
2.2.2.3. Sắp xếp thời khóa biểu
Khi chọn sắp xếp thờ khóa biểu chương trình sẽ lấy dữ liệu đã nhập ở trên và
sắp xếp một cách ngẫu nhiên nhằm thỏa mãn các ràng buộc của bài toán để cho ra
một thời khóa biểu thích hợp. Nếu người dùng chưa hài lòng họ có thể tiếp tục chọn
chức năng xếp lịch cho đến khi có thời khóa biểu thỏa mãn.

2.2.2.4. Xem và in thời khóa biểu
Sau khi sắp xếp xong thời khóa biểu thì người dùng có thể chọn thời khóa biểu
muốn xem gồm thời khóa biểu toàn trường, thời khóa biểu lớp và thời khóa biểu giáo
viên. Với thời khóa biểu lớp thì người dùng cần phải chọn lớp cần xem. Với thời
khóa biểu giáo viên thì người dùng chọn giáo viên cần xem. Chương trình sẽ hiển thị
thời khóa biểu tương ứng. Đồng thời người dùng cũng có thể chọn chức năng in dữ
liệu khi cần thiết.

16


Tìm hiểu thuật toán di truyền và xây dựng chương trình xếp thời khóa biểu trường THCS
Nguyễn Thái Bình

2.3.

XÂY DỰNG SƠ ĐỒ

2.3.1. Sơ đồ Use Case

Hình 1: Sơ đồ use case tổng quát

17


Tìm hiểu thuật toán di truyền và xây dựng chương trình xếp thời khóa biểu trường THCS
Nguyễn Thái Bình

Hình 2: Sơ đồ use case quản lý giáo viên


Hình 3: Sơ đồ use case quản lý tiết chuẩn môn học

18


Tìm hiểu thuật toán di truyền và xây dựng chương trình xếp thời khóa biểu trường THCS
Nguyễn Thái Bình

Hình 4: Sơ đồ use case phân công giáo viên giảng dạy

2.3.1.1. Đặc tả Use Case
1. Đặc tả use case quản lý giáo viên
Bảng 1: Đặc tả use case xem thông tin

Thuộc tính
Tác nhân

Mô tả

Hiệu phó
Là ca sử dụng cho phép người dùng xem những thông tin về
giáo viên
Mô tả
- Tên giáo viên
- Tên viết tắt
- Dữ liệu đang hiển thị menu chính
Điều kiện trước
- Có ít nhất 1 giáo viên đã được thêm vào danh sách
1. Chọn “Dữ liệu” trên thanh menu
Các bước thực

2. Chọn “Dữ liệu giáo viên”
hiện chính
3. Chọn “Danh sách giáo viên”
Hiển thị thành công danh sách giáo viên với những thông tin
Kết quả mong
đợi
đã liệt kê ở trên
- Chương trình không kết nối được SQLServer
Trường hợp lỗi
- Người dùng chưa thêm bất cứ ai vào danh sách giáo
viên.
Bảng 2: Đặc tả use case thêm mới giáo viên

Thuộc tính

Mô tả
19


Tìm hiểu thuật toán di truyền và xây dựng chương trình xếp thời khóa biểu trường THCS
Nguyễn Thái Bình

Tác nhân

Hiệu phó
Là ca sử dụng cho phép người dùng thêm một giáo viên vào
Mô tả
cơ sở dữ liệu.
Điều kiện trước Chương trình đang hiển thị danh sách giáo viên
Thêm trực tiếp từ giao diện

1. Nhập tên giáo viên
2. Nhập tên viết tắt của giáo viên
3. Kích vào “Thêm mới”
4. Chương trình cập nhập lại danh sách giáo viên
Các bước thực Thêm giáo viên từ tập tin excel
hiện chính
1. Chọn checkbox “Lấy dữ liệu từ excel”
2. Kích chọn “Đường dẫn tập tin”
3. Chọn trang chứa dữ liệu
4. Kích chọn “Tải tập tin”
5. Kích chọn “Lưu xuống CSDL”
6. Chương trình cập nhập lại danh sách giáo viên
Kết quả mong
Thêm giáo viên thành công
đợi
- Chương trình không kết nối được cơ sở dữ liệu
Trường hợp lỗi
- Tên viết tắt của giáo viên đã tồn tại
- Tập tin excel tải không thành công
Bảng 3: Đặc tả use case sửa thông tin

Thuộc tính
Tác nhân

Mô tả

Hiệu phó
Là ca sử dụng cho phép người dùng thay đổi họ và tên, tên
Mô tả
viết tắt của giáo viên.

Điều kiện trước Giáo viên đã tồn tại trong cơ sở dữ liệu
1. Chọn giáo viên muốn sửa
Các bước thực
2. Nhập lại họ và tên/tên viết tắt trên ô textbox
hiện chính
3. Kích chọn “Sửa”
4. Thông tin về giáo viên được cập nhập lại
Kết quả mong
Sửa giáo viên thành công
đợi
- Chương trình không kết nối được cơ sở dữ liệu
- Ô textbox không có dữ liệu
Trường hợp lỗi
- Tên viết tắt của giáo viên đã tồn tại
- Người dùng kích chọn nhầm nút khác
Bảng 4: Đặc tả use case xóa giáo viên khỏi danh sách

20


×