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

Mô hình bài toán

Một phần của tài liệu GIẢI THUẬT DI TRUYỀN VÀ ỨNG DỤNG VÀO BÀI TOÁN LẬP THỜI KHÓA BIỂU (Trang 34 -56 )

2.2.2.1 Các chỉ số và các biến

a/ Các chỉ số

Chỉ số Ý nghĩa Miền giá trị

g Chỉ số giảng viên 1≤g≤G n Chỉ số ngày 2≤n≤6

t Chỉ số tiết trong ngày 1≤t≤12 m Chỉ số môn học 1≤m≤M

l Chỉ số lớp học 1≤l≤L p Chỉ số phòng học 1≤p≤P

Bảng 9: Bảng chỉ số

Trong đó: G là tổng số giảng viên M là tổng số môn học L là tổng số lớp học P là tổng số phòng học b/ Các biến

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn 35 D(n,t,l,p) = E(n,t,l,m) = F(n,t,g) = G(n,t,l) = H(n,g) = K(n,g) = X(n,l) = Y(n,l) = Z(n,p) =

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn 36

2.2.2.2 Công thức cho các hàm ràng buộc

Một giảng viên không dạy hai lớp cùng một thời điểm:

F1 = với mọi n,t,g

Một phòng tại một thời điểm không thể có 2 lớp học:

F2 = với mọi n,t,p

Một lớp không thể học 2 môn cùng một thời điểm:

F3 = với mọi n,t,l

Một giảng viên không dạy liền 12 tiết một ngày:

F4 = với mọi n,g

Một lớp học tiết 6 buổi sang không học tiết 1 buổi chiều: F5 = Nếu G(n,6,l) = 1 thì G(n,7,l) = 0 với mọi n,l

Môn thể dục không học vào tiết 5-6 buổi sang và tiết 1-2 buổi chiều: Gọi

m0là chỉ số của môn thể dục. F6 = Khi đó: E(n,t,l,m0) =0 nếu t = 5,6,7,8 với mọi n,l

Một lớp học thể dục xong sẽ không học tiết liền ngay sau đó:

F7 = Nếu E(n,t-1,l,m0) = E(n,t,l,m0) =1 thì E(n,t+1,l,m0) = 0 với mọi n,l

2.2.2.3 Công thức cho các hàm mục tiêu

Tối thiểu thời gian trống của lớp sinh viên:

Fit1 = Min ( ) với mọi l

Tối thiểu số phòng sử dụng

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn 37

Chương 3. XÂY DỰNG BÀI TOÁN THỜI KHOÁ BIỂU DỰA TRÊN GIẢI THUẬT DI TRUYỀN

3.1 Bài toán lập thời khóa biểu ở trường Cao đẳng Công nghệ và Kinh tế Hà Nội

3.1.1 Giới thiệu

Bài toán sắp xếp thời khóa biểu ở các trƣờng học là một bài toán khó, sự phức tạp của bài toán này không chỉ ở vấn đề tìm ra một thời khóa biểu cho học sinh, sinh viên thỏa các ràng buộc thời gian, ràng buộc chuyên môn, quy định của Bộ giáo dục, mà một vấn đề khó hơn nữa là phải tìm ra một thời khóa biểu tốt thích hợp cho tất cả giáo viên (thỏa mãn các yêu cầu về thời gian, hạn chế tối đa các tiết trống trong một ngày và số ngày lên lớp trong một tuần của mọi giáo viên trong thời khóa biểu).

Việc sắp thời khóa biểu tại các trƣờng là bài toán luôn thực hiện trƣớc khi học kỳ mới bắt đầu. Hiện nay, trƣờng Cao đẳng Công nghệ và kinh tế Hà Nội thực hiện cách thủ công và những sai sót xảy ra là điều không tránh khỏi nhƣ: khi kết thúc khóa học chuẩn bị xét điều kiện tốt nghiệp mới phát hiện ra có môn chƣa đƣợc học. Trùng phòng học,...

Nhu cầu cấp thiết hiện nay là sắp thời khóa biểu sao cho hỗ trợ nhân viên phòng Đào tạo thực hiện một cách nhanh nhất nhƣng đồng thời sắp đƣợc một thời khóa biểu tối ƣu nhất.

3.1.2 Nội dung hoạt động nghiệp vụ

Lên danh sách các lớp sẽ được học trong kỳ: Vào đầu năm học, nhân viên phòng Đào tạo phụ trách phần quản lý giảng dạy và học tập phải ra kế hoạch lập thời khóa biểu. Nhân viên phòng Đào tạo sẽ lập ra danh sách các lớp sẽ học trong kỳ học đó. Đồng thời gửi số lớp học về phòng Quản trị đời sống đề nghị chuẩn bị lớp. Phòng quản trị đời sống gửi lại danh sách và quy mô phòng học.

Xác định môn học cho mỗi lớp (lớp – môn): Với mỗi môn học trong danh sách ở trên, nhân viên phòng Đào tạo đối chiếu với chƣơng trình đào tạo đã đƣợc áp

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn 38 dụng để đƣa ra danh sách môn học của từng lớp. Từ danh sách các môn học, nhân viên phòng Đào tạo trích ra các môn học cho mỗi bộ môn và số trình phải dạy và gửi về các khoa để các thầy đăng ký hay phân công giảng viên.

Phân công giảng dạy (lớp – môn – thầy): Sau khi nhận danh sách các thầy đăng ký giảng dạy từ các bộ môn, phòng Đào tạo tiến hành lập danh sách các thầy tƣơng ứng với mỗi môn học của lớp.

Lên danh sách các phòng học: Dựa vào danh sách các phòng học và quy mô của từng lớp do phòng Quản trị đời sống gửi lại, nhân viên phòng Đào tạo lên danh sách các giảng đƣờng có thể đƣa vào sử dụng.

Lập thời khóa biểu: Từ danh sách các lớp và các môn học tƣơng ứng, danh sách các giảng viên đăng ký và ý kiến của lãnh đạo khoa về chƣơng trình đào tạo đƣa ra, nhân viên phòng Đào tạo lập thời khóa biểu dự kiến và gửi đi các đơn vị liên quan.

3.2 Áp dụng giải thuật di truyền vào bài toán lập thời khóa biểu

3.2.1 Các toán tử di truyền đối với bài toán hỗ trợ xếp thời khóa biểu

3.2.1.1 Mã hóa cá thể

Phƣơng pháp mã hóa cá thể (tức Thời Khóa Biểu) sử dụng trong chƣơng trình đƣợc trình bày nhƣ sau: .

Các Môn đƣợc sắp xếp theo một thứ tự nhất định, thứ tự đó không thay đổi ở mỗi cá thể.

Gọi tổng số Môn học là n, mỗi Môn học có đầy đủ các thông tin: Thứ, Tiết học, Phòng học, Giảng viên. Mỗi môn là 1 gen tƣơng ứng với 1 hàng trong ma trận cá thể, một cá thể (Nhiễm sắc thể) có n gen tƣơng ứng với n Môn học.

Gen 1 Môn 1 Lớp Phòng học Thứ Tiết Gen 2 Môn 2 Lớp Phòng học Thứ Tiết

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

Gen n Môn n Lớp Phòng học Thứ Tiết Mỗi cá thể là một Thời Khóa Biểu của 1 kỳ học.

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn 39

Hình 12: Ma trận cá thể 3.2.1.2 Khởi tạo quần thể

Khởi tạo lần lƣợt từng Môn – gen trong ma trận cá thể theo phƣơng pháp ngẫu nhiên nhƣng phải kiểm tra ràng buộc.

Khi khởi tạo xong một gen trong ma trận cá thể ta sẽ kiểm tra tất cả các ràng buộc 1 lần, nếu các ràng buộc đều thỏa mãn thì sẽ khởi tạo tiếp tới khi đƣợc cá thể hoàn chỉnh, ngƣợc lại bị vi phạm sẽ sinh lại từ bƣớc đó.

a/ Kiểm tra ràng buộc

Kiểm tra ràng buộc liên quan tới phòng:

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn 40

Bảng 10: Bảng kiểm tra ràng buộc về phòng

Một phòng sẽ đƣợc xét theo từng thứ và 12 tiết trong thứ đó. Trƣờng tiết có 12 bit nhị phân tƣơng ứng với 12 tiết trong ngày. Khi 1 Môn học đƣợc sinh ra ta sẽ có các thông số: Thứ, Phòng, Tiết.

Từ đó tìm tới các trƣờng tƣơng ứng trong bảng trên để cập nhật, nếu tiết nào đã đƣợc học ta cập nhật 2 bit tƣơng ứng với tiết đó thành 1.

Tƣơng tự sinh Môn học tiếp theo cập nhật tiếp vào bảng, nếu trong trƣờng tiết tƣơng ứng với Thứ, Phòng của môn đó mà bị xung đột, tức các bit đã đƣợc cập nhật là 1 rồi thì sẽ sinh lại Môn học đó.

Kiểm tra ràng buộc liên quan tới giảng viên

Tạo bảng kiểm tra ràng buộc về Giảng Viên:

Bảng 11: Bảng kiểm tra ràng buộc về giảng viên

Một Giảng Viên sẽ đƣợc xét theo từng thứ và 12 tiết trong thứ đó. Trƣờng tiết có 12 bit nhị phân tƣơng ứng với 12 tiết trong ngày.

Khi sinh ra 1 Môn học đƣợc sinh ra ta sẽ có các thông số: Thứ, Giảng Viên, Tiết. Từ đó tìm tới các trƣờng tƣơng ứng trong bảng trên để cập nhật, nếu tiết nào đã đƣợc học ta cập nhật 2 bit tƣơng ứng với tiết đó thành 1.

Tƣơng tự sinh Môn học tiếp theo cập nhật tiếp vào bảng, nếu trong trƣờng tiết tƣơng ứng với Thứ, Phòng của môn đó mà bị xung đột, tức các bit đã đƣợc cập nhật là 1 rồi thì sẽ sinh lại Môn học đó.

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn 41

Kiểm tra ràng buộc liên quan tới Lớp sinh viên

Tạo bảng kiểm tra ràng buộc về Lớp sinh viên:

Bảng 12: Bảng kiểm tra ràng buộc về lớp sinh viên

Một Lớp sinh viên sẽ đƣợc xét theo từng thứ và 12 tiết trong thứ đó. Trƣờng tiết có 12 bit nhị phân tƣơng ứng với 12 tiết trong ngày.

Khi một Môn học đƣợc sinh ra ta sẽ có các thông số: Thứ, Lớp sinh viên, Tiết. Từ đó tìm tới các trƣờng tƣơng ứng trong bảng trên để cập nhật, nếu tiết nào đã đƣợc học ta cập nhật hai bit tƣơng ứng với tiết đó thành 1.

Tƣơng tự sinh Môn học tiếp theo cập nhật tiếp vào bảng, nếu trong trƣờng tiết tƣơng ứng với Thứ, Phòng của môn đó mà bị xung đột, tức các bit đã đƣợc cập nhật là 1 rồi thì sẽ sinh lại Môn học đó.

3.2.1.3 Xếp hạng đồng thời tính giá trị mục tiêu các cá thể trong quần thể

Mỗi cá thể trong quần thể luôn đƣợc đặc trƣng bởi thông số: số tiết trống của lớp sinh viên, và số phòng sử dụng.

Sau khi khởi tạo quần thể bao gồm các cá thể thỏa mãn ràng buộc, mỗi cá thể có một độ thích nghi nhất định trong quần thể. Công thức để tính độ thích nghi đó nhƣ sau:

F = a × + b×

Trong đó: a là hệ số thời gian trống của lớp sinh viên b là hệ số của phòng sử dụng

Mỗi cá thể có độ thích nghi là Fi, độ thích nghi của cá thể nào càng thấp thì xếp hạng càng cao. Hạng của mỗi cá thể sẽ đƣợc đánh theo thứ tự từ 1 tới N (1 là

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn 42 cao nhất, N là thấp nhất, N là số cá thể trong quần thể). Tƣơng ứng với sự tăng dần của độ thích nghi. Độ thích nghi Fi cũng chính là hàm tính giá trị mục tiêu của mỗi cá thể, mục đích của giải thuật là tìm ra cá thể có giá trị F nhỏ nhất đồng nghĩa với việc tối ƣu đồng thời đƣơc ba mục tiêu: tiết trống của lớp sinh viên ít nhất và số phòng sử dụng là ít nhất.

3.2.1.4 Phương pháp chọn lọc

Chọn 30 cá thể có hạng cao nhất từ quần thể hiện tại để làm cha mẹ mang đi lai ghép.

3.2.1.5 Toán tử lai ghép a/ Lai ghép 1 điểm cắt

Ghép tất cả các cá thể trong 30 cá thể xếp hạng cao nhất thành cặp đem đi lai ghép, điểm cắt đƣợc chọn ngẫu nhiên trong các cặp lai đó.

Hình 13: Lai ghép 1 điểm cắt

Sau bƣớc lai ghép ra cá thể mới, sẽ thực hiện kiểm tra các ràng buộc cho cá thể này. Nếu cá thể mới không thỏa mãn các ràng buộc sẽ đƣợc bỏ đi khỏi quần thể.

b/ Lai ghép nhiều điểm cắt

Tƣơng tự nhƣ lai ghép một điểm cắt, chỉ khác điểm cắt trên hai cá thể cha mẹ không phải là một mà là hai điểm, hai điểm này sẽ đƣợc chọn ngẫu nhiên.

3.2.1.6 Toán tử đột biến

Chọn ra 10 cá thể có hạng cao nhất trong 30 cá thể đã chọn ở trên kiểm tra lớp sinh viên trong từng buổi của từng cá thể, tiến hành dồn tiết sao cho số tiết trống đó là nhỏ nhất.

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn 43 Sau bƣớc đột biến ra cá thể mới, sẽ thực hiện kiểm tra các ràng buộc cho cá thể này. Nếu cá thể mới không thỏa mãn các ràng buộc sẽ đƣợc bỏ đi khỏi quần thể.

3.2.1.7 Đấu tranh sinh tồn

Sau khi lai ghép và đột biến trên quần thể với N cá thể, ta sinh ra đƣợc p cá thể con mới. Từ tập N + p cá thể, ta chọn N cá thể tốt nhất đƣa vào quần thể mới để cho thế hệ tiếp theo.

3.2.1.8 Sơ đồ giải thuật di truyền

Hình 14: Sơ đồ giải thuật di truyền đề xuất

3.2.2 Thiết kế cơ sở dữ liệu

- Tòa nhà

STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Diễn giải

1 ID Interger Primary

key

Mã để phân biệt giữa các tòa nhà

2 TenToaNha NVarchar (20) Tên tòa nhà

3 TT Interger Thứ tự

Khởi tạo quần thể

Thực hiện các phép lai ghép, đột biến

Thế hệ tiếp theo

Cá thể tốt nhất

Lời giải cho bài toán

Lặp lại qua N thế hệ

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn 44 - Loại phòng

STT Tên thuộc tính Kiểu dữ liệu Ràng

buộc Diễn giải

1 ID Interger Primary

key

Mã để phân biệt giữa các loại phòng

2 Ten NVarchar (20) Tên

3 STT Interger Số thứ tự

- Phòng học

STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Diễn giải

1 ID Interger Primary

key

Mã để phân biệt giữa các phòng học

2 Nha NVarchar (20) Nhà

3 Tang Interger Tầng

4 TenPhong NVarchar (20) Tên phòng

5 Chua Interger Sức chứa

6 LoaiPhong NVarchar (20) Loại phòng

7 ThietBi NVarchar (20) Thiết bị

8 STT Interger Số thứ tự

- Môn học

STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Diễn giải

1 ID Interger Primary

key

Mã để phân biệt giữa các môn học

2 TenMonHoc NVarchar (20) Tên môn học

3 VietTat NVarchar (10) Viết tắt

4 DVHT Interger Đơn vị học trình

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn 45 - Hình thức bài học

STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Diễn giải

1 ID Interger Primary

key

Mã để phân biệt giữa các hình thức bài học

2 Ten NVarchar (20) Tên hình thức bài học

- Ngành học

STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Diễn giải

1 ID Interger Primary

key

Mã để phân biệt giữa các ngành học

2 VietTat NVarchar (20) Tên viết tắt

3 STT Interger Số thứ tự

- Lớp học

STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Diễn giải

1 TenLop NVarchar (20) Primary

key

Để phân biệt giữa các lớp

2 Nam Interger Năm

3 Nganh NVarchar (20) Ngành

4 Khoa Interger Khóa

5 VietTat NVarchar (20) Viết tắt

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn 46

Giao diện chương trình

a. Nhập hình thức bài học.

Hình 15: Nhập danh mục quản lý hình thức bài học

Trong “Danh mục” chọn “Hình thức bài học” chúng ta nhập Mã, tên hình thức nhƣ: Bài tập, kiểm tra, lý thuyết, ôn, thi…

b. Danh mục quản lý phòng học

Hình 16: Quản lý danh mục loại phòng học

Khi chọn trong “Danh mục” là Loại phòng: Nhập thông tin Phòng ở giảng đƣờng, phòng thực hành hay ngoài bãi tập....

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn 47 c. Danh mục Lớp học

Hình 17: Quản lý danh mục lớp học

Sau khi chọn danh mục “Lớp học” ở khung bên trái thì yêu cầu nhập năm học, Ngành, Khóa, tên lớp, viết tắt tên lớp

d. Danh mục Môn học

Hình 18: Quản lý danh mục môn học

Khi chọn trong Danh mục là Môn học ngƣời quản trị nhập thông tin môn học nhƣ: Tên môn, Viết tắt, số tín chỉ, đã tốt nghiệp hay chƣa.

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn 48 e. Danh mục Phòng học

Hình 19: Quản lý danh mục phòng học

Khi danh mục Phòng học đƣợc chọn, ngƣời sử dụng nhập thông tin: Tòa nhà, tên phòng, sức chứa, loại phòng.

f. Danh mục tòa nhà

Hình 20: Quản lý danh mục tòa nhà

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn 49 g. Quản lý chƣơng trình đào tạo

Hình 21: Quản lý chương trình đào tạo

Quản lý chƣơng trình đào tạo, ngƣời quản trị nhập tên chƣơng trình, chuyên ngành, khóa học.

h. Cập nhật chƣơng trình đào tạo khung

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn 50

Hình 23: Cửa sổ xếp Thời khóa biểu

Ngƣời quản trị nhập thông tin: số cá thể, số cá thể thay thế, số điểm lai ghép, xác suất lai ghép, xác suất đột biến, trọng số tiết trống, trọng số phòng sử dụng sau khi nhập các danh mục quản lý chọn nút Xếp lịch.

3.3. Cài đặt chương trình

Yêu cầu cài đặt: Cài đặt trên môi trƣờng Window - Hệ quản trị cơ sở dữ liệu Microsoft SQL.

Một phần của tài liệu GIẢI THUẬT DI TRUYỀN VÀ ỨNG DỤNG VÀO BÀI TOÁN LẬP THỜI KHÓA BIỂU (Trang 34 -56 )

×