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

Xây dựng hệ thống phân lịch thi tín chỉ tại trường cao đẳng thương mại đà nẵng

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 (2.42 MB, 61 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
ĐẠI HỌC ĐÀ NẴNG

DƯƠNG HỒNG VINH

XÂY DỰNG HỆ THỐNG PHÂN LỊCH THI TÍN CHỈ
TẠI TRƯỜNG CAO ĐẲNG THƯƠNG MẠI ĐÀ NẴNG

LUẬN VĂN THẠC SĨ HỆ THỐNG THÔNG TIN

Đà Nẵng – Năm 2016


BỘ GIÁO DỤC VÀ ĐÀO TẠO
ĐẠI HỌC ĐÀ NẴNG

DƯƠNG HỒNG VINH

XÂY DỰNG HỆ THỐNG PHÂN LỊCH THI TÍN CHỈ
TẠI TRƯỜNG CAO ĐẲNG THƯƠNG MẠI ĐÀ NẴNG
Chuyên ngành: HỆ THỐNG THÔNG TIN
MÃ SỐ: 60 48 01 04

LUẬN VĂN THẠC SĨ HỆ THỐNG THƠNG TIN

Người hướng dẫn khoa học:
TS. Hồng Thị Thanh Hà

Đà Nẵng – Năm 2016



MỤC LỤC
MỞ ĐẦU .......................................................................................................... 1
1. Tính cấp thiết của đề tài ............................................................................ 1
2. Mục tiêu và nhiệm vụ đề tài ...................................................................... 1
3. Đối tượng và phạm vi nghiên cứu............................................................. 2
4. Phương pháp nghiên cứu........................................................................... 3
5. Bố cục đề tài .............................................................................................. 3
CHƯƠNG 1. TỔNG QUAN MỘT SỐ VẤN ĐỀ CƠ SỞ ............................ 4
1.1. TỔNG QUAN VỀ GIẢI THUẬT DI TRUYỀN ....................................... 4
1.1.1. Giới thiệu chung .............................................................................. 4
1.1.2. Các tính chất của giải thuật di truyền .............................................. 7
1.1.3. Cấu trúc giải thuật di truyền tổng qt ............................................ 8
1.2. THUẬT TỐN TƠ MÀU ĐỒ THỊ VÀ ỨNG DỤNG PHÂN LỊCH THI
TÍN CHỈ ............................................................................................................ 9
1.3. KẾT CHƯƠNG ........................................................................................ 14
CHƯƠNG 2. ỨNG DỤNG GIẢI THUẬT DI TRUYỀN ĐỂ PHÂN LỊCH
THI TÍN CHỈ TRƯỜNG CAO ĐẲNG THƯƠNG MẠI ĐÀ NẴNG ....... 15
2.1. GIỚI THIỆU VỀ TRƯỜNG CAO ĐẲNG THƯƠNG MẠI ĐÀ NẴNG 15
2.1.1. Giới thiệu chung ............................................................................ 15
2.1.2. Đội ngũ giảng viên và cán bộ của Trường .................................... 15
2.2. BÀI TỐN PHÂN LỊCH THI TÍN CHỈ ................................................. 16
2.2.1. Phát biểu bài toán........................................................................... 16
2.2.2. Mẫu phân lịch thi tín chỉ ................................................................ 16
2.3. ÁP DỤNG GIẢI THUẬT DI TRUYỀN PHÂN LỊCH THI TÍN CHỈ .... 21
2.3.1. Khảo sát hệ thống hiện tại ............................................................. 21
2.3.2. Áp dụng giải thuật di truyền phân lịch thi tín chỉ .......................... 22


2.4. KẾT CHƯƠNG ........................................................................................ 27
CHƯƠNG 3. XÂY DỰNG HỆ THỐNG PHÂN LỊCH THI TÍN CHỈ

TRƯỜNG CAO ĐẲNG THƯƠNG MẠI ĐÀ NẴNG ................................ 28
3.1. PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG ............................................. 28
3.1.1. Biểu đồ ca sử dụng ........................................................................ 28
3.1.2. Biểu đồ tuần tự phân lịch thi ......................................................... 30
3.1.3. Biểu đồ lớp..................................................................................... 31
3.2. TỪ ĐIỂN DỮ LIỆU................................................................................. 32
3.3. THIẾT KẾ DỮ LIỆU ............................................................................... 33
3.3.1. Mơ hình dữ liệu quan hệ (D-R) ..................................................... 33
3.3.2. Thiết kế cơ sở dữ liệu vật lý .......................................................... 34
3.3.3. Thiết kế các bảng dữ liệu ............................................................... 37
3.4. MÀN HÌNH CHÍNH CỦA HỆ THỐNG PHÂN LỊCH THI TÍN CHỈ ... 39
3.5. THIẾT KẾ CÁC GIAO DIỆN TRONG HỆ THỐNG ............................. 42
3.6. ĐÁNH GIÁ HỆ THỐNG ......................................................................... 44
3.6.1. Ưu điểm ......................................................................................... 44
3.6.2. Nhược điểm ................................................................................... 44
3.7. KẾT CHƯƠNG ........................................................................................ 45
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ................................................... 46
DANH MỤC TÀI LIỆU THAM KHẢO
QUYẾT ĐỊNH GIAO ĐỀ TÀI LUẬN VĂN (Bản sao)
PHỤ LỤC


LỜI CAM ĐOAN
Tơi cam đoan đây là cơng trình nghiên cứu của riêng tôi.
Các số liệu, kết quả nêu trong luận văn là trung thực và chưa từng được
ai công bố trong bất kỳ cơng trình nào khác.
Tác giả luận văn

Dương Hồng Vinh



DANH MỤC CÁC CHỮ VIẾT TẮT
GA

Gennetic Algorithims

KTT

Khơng tính tốn



Cao đẳng

D-R

Diagram – Relationship

NST

Nhiễm sắc thể

SV

Sinh viên

UML

Unified Modeing Language


OMG

Object Management Group


DANH MỤC CÁC BẢNG

Số hiệu bảng

Tên bảng

Trang

3.1.

Từ điển dữ liệu

32

3.2.

Bảng Học phần

34

3.3.

Bảng Sinh viên

34


3.4.

Bảng Phòng thi

35

3.5.

Bảng Sinh viên đăng ký

35

3.6.

Bảng Sinh viên được thi

36

3.7.

Bảng Lịch thi

36


DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ
Số hiệu hình

Tên hình


Trang

2.1.

Mẫu phân lịch thi tín chỉ HK2 (2015-2016)

21

3.1.

Biểu đồ ca sử dụng

29

3.2.

Biểu đồ tuần tự phân lịch thi

30

3.3.

Biểu đồ lớp

31

3.4.

Mơ hình dữ liệu quan hệ (D-R)


33

3.5.

Giao diện màn hình chính của hệ thống phân lịch thi

39

3.6.

Menu hệ thống

40

3.7.

Menu Xử lý danh sách

40

3.8.

Menu Lịch thi

40

3.9.

Menu Tra cứu


41

3.10.

Menu Tra cứu

41

3.11.

Menu Trợ giúp

41

3.12.

Giao diện phân lịch thi tín chỉ

42

3.13.

Lịch thi kết thúc học phần

42

3.14.

Giao diện tra cứu thông tin lịch thi


43

3.15.

Giao diện cập nhật thông tin học phần

43

3.16.

Giao diện cập nhật thông tin sinh viên

44


1

MỞ ĐẦU
1. Tính cấp thiết của đề tài
Trong cuộc sống ta thường gặp các bài toán liên quan đến phân lịch
như phân lịch làm việc, phân lịch thi đấu thể thao, phân lịch biểu cho việc
thực hiện một dự án,...Đối với loại bài tốn này cần phải tìm ra một phương
án phân 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 nguyên hiện có, giảm thời gian và chi phí thực hiện. Bài tốn phân
lịch thi tín chỉ trong trường học nói chung và trong trường Cao đẳng Thương
mại Đà Nẵng nói riêng là một trong những bài toán như vậy.
Ở Việt Nam hiện nay, các trường Đại học, Cao đẳng đang dần chuyển
sang hình thức đào tạo tín chỉ và trường Cao đẳng Thương mại đã áp dụng
hình thức đào tạo này. 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 phân lịch thi tín chỉ vẫn là một gánh
nặng thực sự cho trường.
Với hình thức học chế tín chỉ, sinh viên có thể chủ động chọn đăng ký
học phần theo kế hoạch của mình. Điều này làm cho việc phân lịch thi thi trở
nên khó khăn hơn. Phịng đào tạo phải phân lịch thi sao cho khơng có sinh
viên nào thi nhiều hơn một học phần tại cùng một thời điểm. Số buổi thi bị
giới hạn trong một khoảng thời gian theo kế hoạch chung. Số phòng thi của
từng buổi có thể khác nhau. Việc phân lịch thủ cơng như trước đây gặp nhiều
khó khăn. Do đó, em chọn đề tài “Xây dựng hệ thống phân lịch thi tín chỉ tại
Trường Cao đẳng Thương mại Đà Nẵng” nhằm góp phần tin học hóa cơng tác
đào tạo trường Cao đẳng Thương mại Đà Nẵng.
2. Mục tiêu và nhiệm vụ đề tài
2.1. Mục tiêu
Đề tài tập trung nghiên cứu và ứng dụng giải thuật di truyền để xây


2

dựng hệ thống phân lịch thi tín chỉ tại trường Cao đẳng Thương mại Đà Nẵng
nhằm đưa ra phương án phân lịch thi thỏa mãn tất cả các ràng buộc đặt ra,
đồng thời khai thác hiệu quả các nguồn lực của nhà trường với thời gian ngắn.
2.2. Nhiệm vụ
Để đạt được các mục tiêu trên, đề tài tập trung vào các nhiệm vụ cụ thể
như sau:
- Phân tích đặc điểm của bài tốn phân lịch thi tín chỉ trường Cao đẳng
Thương mại để từ đó đề ra các giải pháp hợp lý trong việc xây dựng và triển
khai hệ thống;
- Tìm hiểu giải thuật di truyền và ứng dụng của nó vào bài tốn phân
lịch thi tín chỉ trường Cao đẳng Thương mại;
- Phân tích và đánh giá kết quả đạt được khi thực hiện hệ thống đối với

các bộ dữ liệu thử đơn giản;
- Triển khai thực nghiệm với bộ dữ liệu phân lịch thi tín chỉ trường Cao
đẳng Thương mại Đà Nẵng.
3. Đối tượng và phạm vi nghiên cứu
3.1. Đối tượng nghiên cứu
- Hệ thống thông tin phân lịch thi tín chỉ trường Cao đẳng Thương mại
Đà Nẵng;
- Nghiên cứu giải thuật di truyền để giải quyết bài tốn phân lịch thi tín
chỉ trường Cao đẳng Thương mại Đà Nẵng.
3.2. Phạm vi nghiên cứu
Ứng dụng giải thuật di truyền vào bài tốn phân lịch thi tín chỉ tại
trường Cao đẳng Thương mại Đà Nẵng với các ràng buộc và những yêu cầu
cơ bản.


3

4. Phương pháp nghiên cứu
4.1. Phương pháp nghiên cứu tài liệu
- Nghiên cứu tài liệu, ngôn ngữ và công nghệ liên quan;
- Tổng hợp các tài liệu về giải thuật di truyền để phân lịch thi tín chỉ;
- Biểu diễn bài tốn phân lịch thi tín chỉ trong trường Cao đẳng Thương
mại sử dụng các mơ hình của giải thuật.
4.2. Phương pháp nghiên cứu thực nghiệm
- Phân tích và thiết kế hệ thống phân lịch thi tín chỉ theo quy trình xây
dựng ứng dụng phần mềm;
- Xây dựng hệ thống phân lịch thi tín chỉ sử dụng giải thuật di truyền;
- Thử nghiệm hệ thống và đánh giá kết quả đạt được dựa trên bộ dữ liệu
thực tế tại trường Cao đẳng Thương mại Đà Nẵng.
5. Bố cục đề tài

Nội dung chính của luận văn được chia thành 3 chương sau:
Chương 1: Tổng quan một số vấn đề cơ sở
Chương 2: Ứng dụng giải thuật di truyền để phân lịch thi tín chỉ trường
Cao đẳng Thương mại Đà Nẵng
Chương 3: Xây dựng hệ thống phân lịch thi tín chỉ trường Cao đẳng
Thương mại Đà Nẵng


4

CHƯƠNG 1

TỔNG QUAN MỘT SỐ VẤN ĐỀ CƠ SỞ
1.1. TỔNG QUAN VỀ GIẢI THUẬT DI TRUYỀN
1.1.1. Giới thiệu chung
Giải thuật di truyền (Gennetic Algorithims- GA) là giải thuật tối ưu
ngẫu nhiên dựa trên tự nhiên và tiến hóa di truyền. Nguyên lý cơ bản của giải
thuật di truyền đã được Holland giới thiệu vào năm 1962.
Giải thuật di truyền được ứng dụng đầu tiên trong hai lĩnh vực chính:
tối ưu hóa và học tập của máy. Trong lĩnh vực tối ưu hóa giải thuật di truyền
được phát triển nhanh chóng và ứng dụng trong nhiều lĩnh vực khác nhau như
tối ưu hàm, xử lý ảnh, bài tốn hành trình người bán hàng, nhận dạng hệ
thống và điều khiển.
Giải thuật di truyền là kỹ thuật chung giúp giải quyết vấn đề - bài tốn
bằng cách mơ phỏng sự tiến hóa của con người hay 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 là phương thức giải quyết vấn đề bắt chước lối
hành xử của con người để tồn tại và phát triển. Nó giúp tìm ra giải pháp tối ưu
hay tốt nhất trong điều kiện thời gian và không gian cho phép.
Giải thuật di truyền 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 tốn ứng dụng. 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 trên nhiều điểm. Tuy nhiên, đây không phải là thuật tốn tìm kiếm đa


5

điểm 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”.
Giải thuật di truyền xét đến toàn bộ các giải pháp, bằng cách xét trước
nhất một số giải pháp sau đó loại bỏ những thành phần khơng thích hợp và
chọn những thành phần thích nghi hơn để tạo sinh và biến hóa nhằm mục đích
tạo ra nhiều giải pháp mới có hệ số thích nghi ngày càng cao. Hệ số thích nghi
để dùng làm tiêu chuẩn đánh giá các giải pháp.
Giải thuật di truyền 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 toán tối ưu tổ hợp, là một phân ngành
của giải thuật 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óa, 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.
Giải thuật di truyền cũng như các thuật tốn tiến hóa nói chung hình
thành dựa trên quan niệm cho rằng q trình tiến hóa tự nhiên là q trình là
q trình hồn hảo nhất, hợp lý nhất và tự nó đã mang tính tối ưu. Quan niệm
này có thể được xem như một tiên đề đúng, không chứng minh được nhưng

phù hợp với thực tế khách quan. Q 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 hơn, hồn thiện hơn) thế hệ trước
bởi tính kế thừa và đấu tranh sinh tồn. Tiến hóa tự nhiên được duy trì nhờ 2
quá trình cơ bản: sinh sản và chọn lọc tự nhiên. Xuyên suốt quá trình tiến hóa
tự nhiên các thế hệ mới ln được sinh ra để bổ sung, thay thế thế hệ cũ. Cá
thể nào khơng thích ứng được với mơi trường sẽ bị đào thải. Sự thay đổi môi
trường cũng là tác động trở lại góp phần làm thay đổi mơi trường.
Các cá thể mới sinh ra trong q trình tiến hóa nhờ sự lai ghép thế hệ


6

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 hồn tồn khác (đột biến). Di truyền và
đột biến là 2 cơ chế có vai trị quan trọng như nhau trong q trình tiến hóa.
Dù rằng đột biến xảy ra xác suất nhỏ hơn nhiều so với hiện tượng di truyền.
Giải thuật di truyền gồm bốn quy luật cơ bản là lai ghép, đột biến, sinh
sản và chọn lọc tự nhiên như sau:
- Quá trình lai ghép (phép lai): Quá trình này diễn ra bằng cách ghép
một đoạn hay nhiều đoạn gen từ hai nhiễm sắc thể cha- mẹ để hình thành
nhiễm sắc thể mới mang đặc tính của cả cha lẫn mẹ.
- Q trình đột biến (phép đột biến): Q trình tiến hóa được gọi là q
trình đột biến khi một hoặc một số tính trạng của con không được thừa hưởng
từ hai chuỗi nhiễm sắc thể cha- mẹ. Phép đột biến xảy ra với xác suất thấp
hơn rất nhiều lần so với xác suất xảy ra phép lai.
- Quá trình sinh sản và chọn lọc (phép tái sinh và phép chọn):
+ Phép tái sinh: là quá trình các cá thể được sao chép dựa trên độ thích
nghi của nó. Độ thích nghi là một hàm được gán các giá trị thực cho các thể
trong quần thể của nó. Phép tái sinh có thể mơ phỏng như sau: Tính độ thích
nghi của từng cá thể trong quần thể, lập bảng cộng dồn các giá trị thích nghi

đó (theo thứ tự gán cho từng cá thể) ta được tổng độ thích nghi.
+ Phép chọn: là q trình loại bỏ các cá thể xấu và để lại những cá thể
tốt. Phép chọn được mô tả như sau: Sắp phân quần thể theo thứ tự độ thích
nghi giảm dần. Loại bỏ các cá thể cuối dãy, chỉ để lại n cá thể tốt nhất.
Các toán tử di truyền
- Toán tử sinh sản: gồm quá trình sinh sản (phép tái sinh) và q trình
chọn lọc (phép chọn);
- Tốn tử ghép chéo: là quá trình tạo nhiễm sắc thể mới trên cơ sở các
nhiễm sắc thể cha - mẹ bằng cách ghép một đoạn nhiễm sắc thể cha – mẹ lại
với nhau.


7

- Toá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 mã di truyền của cha – mẹ.
Cơ chế tạo mẫu
Có hai vấn đề quan trọng trong tiến trình tiến hóa của giải thuật di
truyền là tính đa dạng của quần thể và áp lực chọn lọc. Hai yếu tố này liên
quan mật thiết với nhau: khi tăng áp lực chọn lọc thì tính đa dạng của qn
thể sẽ giảm và ngược lại. Nói cách khác, áp lực hội tụ mạnh sẽ dẫn tới sự hội
tụ sớm của giải thuật nhưng nếu áp lực chọn lọc yếu có thể làm cho tìm kiếm
thành vô hiệu, như vậy, cần thỏa hiệp hai vấn đề. Hiện nay, các phương pháp
đưa ra đều có khuynh hướng để đạt tới mục đích này.
1.1.2. Các tính chất của giải thuật di truyền
GA 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 quy định sẵn của môi trường. Mục
tiêu của GA 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 GA 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 GA, ta quan niệm một cá thể có một NST. Do đó, khái
niệm cá thể và NST trong GA 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 GA, 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 giải thuật di truyền, ta quan niệm quần thể là một tập hợp các
lời giải của một bài toán.


8

1.1.3. Cấu trúc giải thuật di truyền tổng quát
- Đầu vào: Một quần thể gồm các chuỗi nhiễm sắc thể;
- Đầu ra: Một quần thể gồm các chuỗi nhiễm sắc thể thích nghi nhất.
Giải thuật di truyền bao gồm các bước sau:
- Bước 1: Khởi tạo một quần thể ban đầu gồm các chuỗi nhiễm sắc.
- Bước 2: Xác định giá trị thích nghi của từng nhiễm sắc thể.
- Bước 3: Sao chép lại các nhiễm sắc thể dựa vào giá trị thích nghi của
chúng và tạo ra những nhiễm sắc thể mới bằng các phép toán di truyền.
- Bước 4: Loại bỏ những thành viên khơng thích nghi trong quần thể.
- Bước 5: Chèn những nhiễm sắc thể mới vào quần thể để hình thành
một quần thể mới.
- Bước 6: Nếu mục tiêu tìm kiếm đạt được thì dừng lại, nếu không trở
lại bước 3.
So sánh GA với kỹ thuật tối ưu khác
Hoạt động của GA đơ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 khác với các kỹ thuật tối ưu khác ở chỗ:
- GA 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 đó GA luôn hoạt động trên tập đỉnh (điểm tối ưu), điều này là một ưu
điểm của GA giúp tăng cơ hội tiếp cận toàn cục và tránh hội tụ sớn tại điểm
cục bộ địa phương.
- GA đá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).


9

1.2. THUẬT TỐN TƠ MÀU ĐỒ THỊ VÀ ỨNG DỤNG PHÂN LỊCH
THI TÍN CHỈ
a. Mục tiêu
Xây dựng một chương trình phân lịch thi sử dụng thuật tốn tơ màu đồ
thị, nhằm góp phần tin học hóa cơng tác đào tạo.
b. Hướng giải quyết
Bài tốn phân lịch thi được mơ hình hóa thành bài tốn tơ màu đồ thị
như sau: lập đồ thị có các đỉnh là các học phần thi, hai học phần thi kề nhau
nếu có một sinh viên thi cả hai học phần này. Thời điểm thi của mỗi học phần
được biểu thị bằng các màu khác nhau.
Sử dụng thuật tốn tơ màu đồ thị [11]
Input: đồ thị G= (V,E)
Output: đồ thị G= (v,E) có các đỉnh đã được gán màu.
Các bước:
 Lập danh sách các đỉnh của đồ thị E‘: =[v1,v2,....,vn] được sắp phân

theo thứ tự bậc giảm dần: d(v1) ≥ d(v2) ≥ ... ≥ d(vn)
Đặt i:=1;
 Tô màu i cho đỉnh đầu tiên trong danh sách. Duyệt lần lượt các đỉnh
tiếp theo và tô màu i cho đỉnh không kề đỉnh đã được tô màu i.
 Nếu tất cả các đỉnh đã được tơ màu thì kết thúc, đị thị được tơ màu
bằng i màu. Ngược lại, sang bước 
 Loại khỏi E‘ các đỉnh đã tô màu. Sắp phân lại các đỉnh trong E‘ theo
thứ tự giảm dần. Đặt i:= i + 1 và quay lại bước 
Xây dựng các heuristic
Largest degree first: Các đỉnh được sắp phân theo bậc. Q trình tơ
màu là chọn từng học phần thi từ đỉnh của danh sách và gán cho màu thấp
nhất (để đơn giản các màu được đánh theo số) không xung đột.


10

Largest degree first: fill from top – Các đỉnh vẫn được sắp phân theo
bậc. Chúng ta sẽ duyệt hết danh sách các đỉnh, đặt càng nhiều đỉnh có thể
được vào slot thời gian đầu tiên (màu thấp nhất) sau đó trở về đầu danh sách
tiếp tục cho màu thứ hai và cứ như vậy.
Largest degree first recursive: fill from top – tương tự như heuristic thứ
hai, chỉ khác ở chỗ khi tô màu xong đỉnh nào, ta loại bỏ đỉnh đó khỏi danh sách.
Heuristic này rất phù hợp với đề tài và đã được chọn để cài đặt chương trình.
Xây dựng giải thuật cho bài toán [5]
- Đầu

vào:

+ dsInpMHoc: là danh sách các học phần;
+ dsInpDK: là danh sách đặc tả mối quan hệ sinh viên đăng ký dự thi

học phần nào;
+ dsInpPHoc: là danh sách các phòng học, tương ứng với thơng tin về
số hiệu phịng, sức chứa của phòng;
+ dtiBegin: là ngày bắt đầu tổ chức thi;
+ nDay: là số lượng ngày tối thiểu tương ứng với khoảng cách hai lần
thi của một thí sinh tương ứng;
+ numOfCathi: là số lượng ca thi tổ chức trong ngày, mặc định nhận
giá trị là 1 hoặc 2 ca thi/1 ngày;
+ numOfRoom: là số lượng thí sinh tối thiểu. Trong trường hợp số
lượng thí sinh khơng vượt q numOfRoom là khơng tổ chức thi.
- Đầu ra:
+ numOfSubject: là số lượng học phần được tổ chức thi, nghĩa là có thể
có một số học phần trong danh sách các học phần không đủ thí sinh để tổ
chức thi, nên sẽ khơng được phép tổ chức thi;
+ numOfDate: là số lượng ngày cần thiết tối ưu để tổ chức đợt thi tương
ứng với danh sách các học phần đó;


11

+ dtiBegin và dtiEndDate: tương ứng là ngày bắt đầu tổ chức thi và
ngày kết thúc đợt thi. Và lstDate: là danh sách các ngày thi tương ứng sẽ tổ
chức thi cho các học phần với số lượng ca thi trong một ngày cho trước;
+ dsLichThi: là danh sách lịch thi tương ứng với thông tin ngày thi với
từng ca thi sẽ tổ chức thi ở các phòng thi tương ứng với học phần thi và số
lượng thí sinh dự thi.
- CÁC BƯỚC GIẢI THUẬT
+ Bước 1: Định nghĩa đồ thị với tập đỉnh là các học phần đủ, mối
quan hệ giữa các đỉnh của đồ thị dựa vào thông tin đăng ký dự thi của thí
sinh đầu vào.

 n = dsInpMHoc.Tables[0].Rows.Count là số lượng đỉnh của đồ thị
trong giải thuật lập lịch.
 arrSubjectColor[i]: đặc tả thông tin đỉnh thứ i của đồ thị tương ứng
với học phần i sẽ được tô với màu là arrSubjectColor[i]. Nếu
arrSubjectColor[i] nhận giá trị là 0 tức là học phần thứ i chưa được
tô màu.
 graph[i][j]: thể hiện mối quan hệ giữa học phần thứ i và học phần
thứ j, trong đó: i và j thể hiện học phần có sinh viên thi cả hai học
phần.
+ Bước 2: . Áp dụng bài tốn tơ màu trong lập lịch
 Bắt đầu với màu colorCurrent được khởi tạo bằng 0
 Lặp lại cho đến khi giải thuật tơ màu kết thúc
while (true)
1:Tìm đỉnh có bậc lớn nhất chưa được tô màu
int iHasMaxLevelCurrent = findMaxLevelCurrent();
2: Nếu không tìm được đỉnh nào chưa tơ có bậc nhỏ hơn 0 thì
thuật tốn dừng if (iHasMaxLevelCurrent < 0) break;


12

3: Ngược lại thì tơ màu đỉnh này colorCurrent++;
arrSubjectColor[iHasMaxLevelCurrent]= colorCurrent;
4: Tô màu các đỉnh không kề với đỉnh iHasMaxLevelCurrent với
cùng màu colorCurrent
//Lặp lại cho đến khi khơng tìm thấy đỉnh nào khơng kề với đỉnh
iHasMaxLevelCurrent nữa thì giải thuật quay lại 1:
while (true)
{
Tìm đỉnh v có số bậc lớn nhất chưa được tô

int v = findVOptimized(iHasMaxLevelCurrent, colorCurrent);
if (v < 0)
break;
Tô màu đỉnh v với màu hiện hành
arrSubjectColor[v] = colorCurrent;
}
5: Xoá mối quan hệ tương ứng các đỉnh đã tô màu ra khỏi đồ thị
for (int i = 0; i < n; i++) for (int j = 0; j < n; j++)
graph[i][j] = 0;
Trong bước 2 này, đã thiết kế một số hàm đặc trưng cho một số chức
năng chuyên biệt, xem chi tiết trong code chương trình minh họa, cụ thể là
hàm:
Hàm findMaxLevelCurrent(): đảm nhận chức năng tìm đỉnh có số bậc
lớn nhất trong đồ thị cho đến thời điểm hiện tại của vịng lặp, nhưng chưa
được tơ màu.
+ Hàm findVOptimized(iHasMaxLevelCurrent, colorCurrent): đảm
nhận chức năng tìm đỉnh v để tơ màu thỏa mãn ràn g buộc v đi đến
iHasMaxLevelCurrent thông qua một đỉnh duy nhất và v có bậc lớn nhất


13

trong số các đỉnh có cùng tính chất hoặc đỉnh v có số bậc lớn nhất khơng kề
với đỉnh iHasMaxLevelCurrent trong số tập các đỉnh khơng kề với nó.
Bước 3: Lập lịch thi – dựa trên các đợt thi tương ứng với từng màu
thu được
 Gọi hàm kiểm tra tuỳ chọn số ca thi trên 1 ngày
 Sắp phân các ca thi đã thực hiện ở bước trên tương ứng vào các
ngày thi để tổ chức thi
1: Lấy về số lượng ngày cần thiết dùng để tổ chức thi

int

numOfDateNeed

=

getNumOfRoomForSubject(indexCathi,

numOfCathi);
CS.clsNgayThi[]lstNgayThi=
newvCheduler.CS.clsNgayThi[numOfDateNeed];
2: Sắp phân các ca thi vào các ngày thi tương ứng
Bảo đảm điều kiện hai học phần thi liên tiếp của một thí sinh cách
nhau nDay ngày
for (int iDate = 0; iDate < numOfDateNeed; iDate++)
for (i=0; ifor (j=0; ifor (k=j+1;kif(sv[i].DayOfxam[j] - sv[i].DayOfxam[k] < nDay)
{ DayOfxam = DayOfxam + nDay – abs(sv[i].DayOfxam[j] –
sv[j].DayOfxam[k]
Gọi thủ tục sắp phân ca thi
}


14

Bước 4: Hiển thị kết quả phân lịch thi Gọi hàm lấy ngày thi
 Chuẩn hóa tham số đầu ra: numOfSubject, numOfDate
Gọi hàm lấy ngày thi

 Chuẩn hóa danh sách các ngày thi tương ứng với lịch thi thỏa mãn ràng
buộc số lượng ngày tối thiểu giữa hai lần thi là nDay cho trước.
for (int i = 1; i < numOfDate; i++)
In lịch thi
 Chuẩn hóa dữ liệu thành lịch thi tương ứng
for (int i = 0; i < numOfDate; i++)
{
string ngaythi = lstDate[i];
for (int iCathi = 0; iCathi < numOfCaThi; iCathi++)
CS.clsCaThi
CS.clsPhongThi
}
c. Kết quả
Nội dung trên khái quát được các kiến thức chung về lý thuyết đồ thị và
ứng dụng. Nêu được chi tiết bài tốn tơ màu và thuật tốn tơ màu trên đồ thị.
Phân tích các u cầu của bài tốn lập lịch thi cho học chế tín chỉ, thiết kế cơ
sở dữ liệu, áp dụng giải thuật tô màu đồ thị để xây dựng giải thuật cải tiến cho
yêu cầu mới của bài toán đề ra.
1.3. KẾT CHƯƠNG
Trong chương 1, tơi đã trình bày kiến thức tổng quan, cơ sở lý luận
phục vụ cho luận văn. Các nội dung được đề cập bao gồm kiến thức về giải
thuật di truyền, thuật tốn tơ màu đồ thị, tìm hiểu các thuật toán liên quan để
ứng dụng xây dựng nên hệ thống mà luận văn nghiên cứu.


15

CHƯƠNG 2

ỨNG DỤNG GIẢI THUẬT DI TRUYỀN ĐỂ PHÂN LỊCH THI

TÍN CHỈ TRƯỜNG CAO ĐẲNG THƯƠNG MẠI ĐÀ NẴNG
2.1. GIỚI THIỆU VỀ TRƯỜNG CAO ĐẲNG THƯƠNG MẠI ĐÀ
NẴNG
2.1.1. Giới thiệu chung
Trường Cao đẳng Thương mại Đà Nẵng (trực thuộc Bộ Thương mại,
nay là Bộ Công Thương) được thành lập ngày 26/6/2006, là đơn vị sự nghiệp
giáo dục công lập, hoạt động trên phạm vi cả nước về đào tạo, bồi dưỡng cán
bộ có trình độ cao đẳng và các trình độ thấp hơn trong lĩnh vực thương mại và
du lịch theo đúng các quy định hiện hành; tổ chức nghiên cứu và thực nghiệm
khoa học công nghệ phục vụ công tác giáo dục- đào tạo, sản xuất kinh doanh
của ngành thương mại, du lịch; hợp tác đào tạo, nghiên cứu khoa học với các
trường, các cơ quan nghiên cứu trong và ngoài nước. Thực hiện liên kết với
các cơ sở kinh doanh để gắn giữa đào tạo và sử dụng.
Trên 40 năm phấn đấu xây dựng và trưởng thành, đến nay nhà trường
đã tuyển sinh trên cả nước với 17 chuyên ngành bậc cao đẳng, chỉ tiêu tuyển
sinh cao đẳng chính quy 2100 sinh viên mỗi năm và bậc trung cấp chuyên
nghiệp với 3 chuyên ngành, chỉ tiêu 100 học sinh mỗi năm. Ngồi ra trường
cịn đào tạo bậc THCN vừa học vừa làm, đào tạo thường xuyên nghiệp vụ
ngắn hạn và bồi dưỡng…
2.1.2. Đội ngũ giảng viên và cán bộ của Trường
Đội ngũ giảng viên luôn được bồi dưỡng, bổ sung để có thể đảm nhiệm
tốt chức năng giảng dạy. Trường Cao đẳng Thương Đà Nẵng mại luôn tạo
điều kiện tốt nhất để các giảng viên theo học các chương trình sau đại học.
Tính đến tháng 9/2015, nhà trường hiện đang có 238 cán bộ, cơng chức, viên


16

chức, trong đó có 171 giảng viên cơ hữu, 3 Tiến sĩ, 40 NCS, 149 thạc sĩ, 26
cao học.

2.2. BÀI TỐN PHÂN LỊCH THI TÍN CHỈ
2.2.1. Phát biểu bài tốn
Bài tốn phân lịch thi tín chỉ tại trường Cao đẳng Thương mại Đà Nẵng
được phát biểu như sau:
Trường Cao đẳng Thương mại Đà Nẵng tổ chức học theo học chế tín
chỉ, việc học và thi khơng tổ chức theo lớp sinh hoạt mà theo các học phần.
Đầu mỗi học kỳ nhà trường thông báo các học phần sẽ học để sinh viên tự
đăng ký học các học phần theo chuyên ngành mình chọn. Cuối học kỳ nhà
trường tổ chức thi cho các học phần đã giảng dạy trong học kỳ. Phòng đào tạo
phải phân lịch thi sao cho: Mỗi học phần thi trong một ngày nhưng trong một
ngày có thể tổ chức thi nhiều học phần. Do một sinh viên có thể đăng ký học
nhiều học phần nên lịch thi cần phải bố trí để nếu có một sinh viên đăng ký
học nhiều học phần thì các học phần đó khơng được thi tại cùng một thời
điểm.
Để sinh viên có thời gian ôn tập, lịch thi sẽ được phân sao cho:
- Nếu sinh viên thi nhiều học phần thì điều kiện là hai học phần thi kế
tiếp phải cách nhau tối thiểu là 2 ngày.
- Mỗi đợt thi chỉ giới hạn trong một khoảng thời gian nhất định. Số
buổi thi bị giới hạn trong một khoảng thời gian theo kế hoạch chung.
- Số phịng thi của từng buổi có thể khác nhau.Trong một ngày, một
phịng có thể tổ chức nhiều ca thi.
2.2.2. Mẫu phân lịch thi tín chỉ
Mẫu phân lịch thi tín chỉ trường Cao đẳng Thương mại trong học kỳ 2
năm học 2015-2016 được thực hiện thủ công bằng Excel như Hình 2.1:


17



×