T01Phong (danh mục thơng tin phịng thi) gồm cĩ các thuộc tính: Loại phịng, Cơ sở, Mơ tả, Sức chứa thi.
T02Lop (danh mục thơng tin lớp) gồm cĩ các thuộc tính: Tên lớp, Phịng khoa, Lớp ngày/đêm, Sĩ số lớp.
T03Mon (danh mục các thơng tin mơn thi) gồm cĩ thuộc tính: Tên mơn.
T04CanBoCoiThi (danh mục các thơng tin cán bộ của trường) gồm cĩ các thuộc tính: Họ cán bộ, Tên cán bộ, Phịng khoa, Chức Danh, Cơ hữu.
T08NamHoc (thơng tin năm học) gồm cĩ thuộc tính: Năm học.
T09LichSuDung (thơng tin thời gian sử dụng phịng thi) gồm cĩ các thuộc tính: Ngày giờ bắt đầu, Ngày giờ kết thúc, Lí do.
T10LichLopBan (thơng tin thời gian lớp khơng thể thi) gồm cĩ các thuộc tính: Ngày giờ bắt đầu, Ngày giờ kết thúc, Lí do.
T12SinhVienHocLai (thơng tin sinh viên học lại 1 mơn trong lớp khác) gồm cĩ các thuộc tính: Mơn, Kì thi.
T13LichLamViec (thơng tin thời gian làm việc của cán bộ) gồm cĩ các thuộc tính: Ngày giờ bắt đầu, Ngày giờ kết thúc, Cơng việc.
T16LichThi (thơng tin lịch thi) gồm cĩ các thuộc tính: Tên lịch thi, Ngày bắt đầu thi, Học kì, Kì thi.
T20DacThu (danh mục đặc thù giữa mơn thi và phịng thi) gồm cĩ thuộc tính: Mơ tả đặc thù.
3.1.2 Mơ hình thực thể kết hợp
Xem hình 3.1.
3.1.3 Mơ hình quan hệ
Hì nh 3 .1 : M ơ hì nh th ực th ể kế t h ợp
T02Lop(UMaLopU, MaPhongKhoa, LopNgay, SiSolop) T03Mon(UMaMHU, TenMH)
T04NguonCBCT(UMaCanBoU, HoCanBo, TenCanBo, MaPhongKhoa, ChucDanh, CoHuu)
T05CoSo(UMaCSU, TenCS, DiaDiem)
T06LoaiPhong(UMaLoaiPhongU, TenLoaiPhong) T07PhongKhoa(UMaPhongKhoaU, TenPhongKhoa) T08NamHoc(UMaNHU, NamHoc)
T09LichSuDungPhong(UMaPhong, NgayGioBatDau, NgayGioKetThucU, LiDo) T10LichLopBan(UMaLop, NgayGioBatDau, NgayGioKetThucU, LiDo) T11NhomHocLai(UMaNH,HocKi,KiThi,MaMH,MaNhomHocLaiU,TenNho
mHocLai,LopNgay,MaPhongKhoa,SiSo,MaLopGhep)
T12SinhVienHocLai(UMaSinhVienU, MaLop, MaNH, HocKi, KiThi, MaNhomHocLai, MaMH)
T13LichLamViec(UMaCanBo,NgayGioBatDau,NgayGioKetThuc,MaCongViecU)
T14CongViec(UMaCongViecU, MoTaCV, CoTheCoiThi)
T15ChiTietLopTheoMon(UMaNH, HocKi, MaLop, MaMH, KiThiU, HinhThucThi, ThoiLuongThi, TinhTrangThi, LoaiBo, ThoiGianChiDinh, SiSoThiLan2)
T16LichThi(UMaLichThiU, TenLichThi, NgayBatDauThi, MaNH, HocKi, KiThi)
T17ChiTietLichThi(UMaLichThi,MaLop,MaNhom,MaMHU,SoNhom,SoLuo ngNhom,NgayGioThi,MaPhong,SoThuTuCaThi,GhiChu) T20DacThu(UMaDacThuU, MoTaDacThu)
T21DacThuPhong(UMaPhong, MaDacThuU) T22DacThuMonThi(UMaMH, MaDacThuU)
3.1.4 Mơ hình dữ liệu
Hì nh 3 .2 C ấu t rúc cơ s ở dữ li ệu c ủa LL Tdh
3.1.5 Ý nghĩa
Bảng T01Phong quản lý các phịng thi, chứa các thuộc tính:
MaPhong : Mỗi phịng cĩ một mã duy nhất MaLoaiPhong : Cho biết phịng loại nào
MaCS : Cho biết phịng thuộc cơ sở nào MoTaPhong : Cho biết thơng tin phịng
SucChuaThi : Cho biết phịng cĩ thể chứa bao nhiêu thí sinh/ca thi
Bảng T02Lop quản lý các lớp theo khố học cụ thể, chứa các thuộc tính:
MaLop : Mỗi lớp cĩ một mã duy nhất MaPhongKhoa : Cho biết lớp thuộc Khoa nào
LopNgay : Cho biết lớp học ban ngày hay đêm SiSolop : Cho biết sĩ số chính qui của lớp
Bảng T03Mon quản lý các mơn học, chứa các thuộc tính:
MaMH : Mỗi mơn học cĩ một mã duy nhất TenMH : Mỗi mơn học cĩ một tên
Bảng T04NguonCBCT quản lý nguồn nhân sự cĩ thể tham gia coi thi, chứa các thuộc tính:
MaCanBo : Mỗi cán bộ cĩ một mã duy nhất HoCanBo : Mỗi cán bộ cĩ một họ
TenCanBo : Mỗi cán bộ cĩ một tên
MaPhongKhoa : Cho biết cán bộ thuộc phịng ban/khoa nào ChucDanh : Cho biết chức danh của cán bộ
CoHuu : Cho biết cán bộ cĩ phải là cơ hữu hay khơng
Bảng T05CoSo quản lý các cơ sở hiện cĩ của trường, chứa các thuộc tính:
MaCS : Mỗi cơ sở cĩ một mã duy nhất TenCS : Mỗi cơ sở cĩ một tên
Bảng T06LoaiPhong quản lý loại phịng, chứa các thuộc tính:
MaLoaiPhong : Mỗi loại phịng cĩ một mã duy nhất TenLoaiPhong : Mỗi loại phịng cĩ một tên
Bảng T07PhongKhoa quản lý các phịng ban và các khoa thuộc một cơ quan cụ thể, chứa các thuộc tính:
MaPhongKhoa : Mỗi phịng/khoa cĩ một mã duy nhất TenPhongKhoa : Mỗi phịng/khoa cĩ một tên
Bảng T08NamHoc quản lý các năm học, chứa các thuộc tính:
MaNH : Mỗi năm học cĩ một mã duy nhất NamHoc : Mỗi năm học cĩ một tên
Bảng T09LichSuDungPhong quản lý thời gian bận của phịng cụ thể, chứa các thuộc tính:
MaPhong : Cho biết phịng nào đang đầy
NgayGioBatDau/NgayGioKetThuc : Cho biết khoảng thời gian nào phịng bị đầy
LiDo : Cho biết lí do phịng bị đầy (cĩ đổi được khơng)
Bảng T10LichLopBan quản lý thời gian bận của lớp, chứa các thuộc tính:
MaLop : Cho biết lớp nào đang bận
NgayGioBatDau/NgayGioKetThuc : Cho biết khoảng thời gian nào lớp bận LiDo : Cho biết lí do lớp bận (cĩ đổi được khơng)
Bảng T11NhomHocLai quản lý các nhĩm học lại, chứa các thuộc tính:
MaNH : Cho biết nhĩm học lại năm học nào HocKi : Cho biết nhĩm học lại học kì nào
KiThi : Cho biết nhĩm học lại tham gia kì thi nào MaMH : Cho biết nhĩm thi lại mơn nào
MaNhomHocLai : Mỗi nhĩm học lại cĩ một mã duy nhất TenNhomHocLai : Cho biết tên nhĩm học lại
LopNgay : Cho biết nhĩm học lại thuộc lớp ngày hay đêm MaPhongKhoa : Cho biết nhĩm học lại thuộc Khoa nào
SiSo : Cho biết số lượng thí sinh của mỗi nhĩm MaLopGhep : Cho biết nhĩm học lại chung lớp chính qui nào
Bảng T12SinhVienHocLai quản lý các thí sinh học lại, chứa các thuộc tính:
MaSinhVien : Mỗi thí sinh cĩ một mã duy nhất
MaLop : Cho biết thí sinh thuộc lớp chính qui nào MaNH : Cho biết thí sinh học lại năm học nào HocKi : Cho biết thí sinh học lại học kì nào KiThi : Cho biết thí sinh tham gia kì thi nào MaNhomHocLai : Cho biết thí sinh thuộc nhĩm học lại nào MaMH : Cho biết thí sinh thi lại mơn nào
Bảng T13LichLamViec quản lý lịch làm việc của nguồn cán bộ coi thi, chứa các thuộc tính:
MaCanBo : Cho biết cán bộ nào làm việc gì
NgayGioBatDau/NgayGioKetThuc: Cho biết giờ làm việc của cán bộ MaCongViec : Cho biết cán bộ làm cơng việc cụ thể nào
Bảng T14CongViec quản lý các cơng việc của nguồn cán bộ coi thi, chứa các thuộc tính:
MaCongViec : Mỗi cơng việc cĩ một mã duy nhất MoTaCV : Mỗi cơng việc cĩ một mơ tả
CoTheCoiThi : Cho biết với cơng việc nào thì cán bộ cĩ thể tham gia coi thi
Bảng T15ChiTietLopTheoMon quản lý sĩ số lớp theo mơn cụ thể, chứa các thuộc tính:
MaNH : Cho biết lớp thuộc năm học nào HocKi : Cho biết lớp thuộc học kì nào MaLop : Cho biết lớp nào tham gia kì thi MaMH : Cho biết lớp cĩ mơn thi nào KiThi : Cho biết lớp thuộc kì thi nào
ThoiLuongThi : Cho biết mơn thi cĩ thời lượng thi là bao nhiêu TinhTrangThi : Cho biết lớp đã thi mơn đĩ hay chưa
LoaiBo : Cho biết cĩ loại bỏ lớp khỏi lịch thi khơng ThoiGianChiDinh : Cho biết ngày giờ thi được chỉ định
SiSoThiLan2 : Cho biết số thí sinh của lớp sẽ thi lần 2
Bảng T16LichThi quản lý các lịch thi đã được chấp nhận, chứa các thuộc tính:
MaLichThi : Mỗi lịch thi được chấp nhận cĩ một mã duy nhất TenLichThi : Mỗi lịch thi được chấp nhận cĩ một tên gọi,
thường được ghép từ tên kì thi, tên học kì và tên năm học.
NgayBatDauThi : Cho biết lịch thi sẽ bắt đầu từ ngày nào MaNH : Cho biết lịch thi thuộc năm học nào HocKi : Cho biết lịch thi thuộc học kì nào
KiThi : Cho biết lịch thi được xếp cho kì thi nào
Bảng T17ChiTietLichThi quản lý các chi tiết các lịch thi đã được chấp nhận, chứa các thuộc tính:
MaLichThi : Cho biết chi tiết thuộc lịch thi nào MaLop : Cho biết lớp nào tham gia kì thi
SoNhom : Cho biết lớp được chi thành mấy nhĩm MaNhom : Cho biết nhĩm nào tham gia lịch thi
SoLuongNhom : Cho biết số thí sinh của nhĩm tham gia lịch thi MaMH : Cho biết mơn thi nào
NgayGioThi : Cho biết thi vào ngày giờ nào MaPhong : Cho biết phịng thi nào
SoThuTuCaThi : Mỗi ca thi cĩ một số thứ tự duy nhất GhiChu : Cho biết thêm thơng tin về lịch thi
Bảng T20DacThu quản lý các đặc thù của mơn thi hoặc của phịng thi, chứa các thuộc tính:
MaDacThu : Mỗi đặc thù cĩ một mã duy nhất MoTaDacThu : Mỗi đặc thù cĩ một mơ tả
Bảng T21DacThuPhong quản lý các đặc thù của từng phịng thi cụ thể, chứa các thuộc tính:
MaPhong : Cho biết phịng nào cĩ đặc thù MaDacThu : Cho biết phịng cĩ đặc thù gì
Bảng T22DacThuMonThi quản lý các đặc thù của từng mơn thi cụ thể, chứa các thuộc tính:
MaMH : Cho biết mơn thi nào cĩ đặc thù MaDacThu : Cho biết mơn thi cĩ đặc thù gì
3.2 Các bước xử lý
Bước 1: Rút trích cơ sở dữ liệu, xây dựng bảng Vế trái chứa các thơng tin: khĩa, khoa, lớp, buổi học, mơn thi, hình thức thi, thời lượng thi, số thí sinh, số nhĩm, số thứ tự nhĩm, sĩ số nhĩm, đặc thù mơn.
Bước 2: Rút trích cơ sở dữ liệu, xây dựng bảng Vế phải chứa các thơng tin: giờ thi, ngày thi, thứ, phịng trống, sức chứa phịng thi, loại phịng, đặc thù phịng thi, cơ sở
Bước 3: Kiểm tra, nếu số cá thể lịch thi i hiện cĩ là nhỏ hơn 50 thì thực hiện tạo thêm lịch thi thứ i+1 bằng cách, lần lượt chọn một dịng bất kì ở Vế trái và một dịng bất kì ở Vế phải và ghép lại hai vế với nhau thành một dịng trong lịch thi nếu các thơng tin của hai vế thỏa các điều kiện: ngày thi mơn kế tiếp của lớp đang được chọn phải cách ngày thi mơn trước đĩ từ hai ngày trở lên; Buổi học tương ứng với Giờ thi; Tổng sĩ số nhĩm thỏa
Sức chứa thí sinh; Đặc thù mơn thitương ứng với Đặc thù phịng. Nếu hai dịng khơng tương ứng các điều kiện thì lấy một dịng đĩ ở vế trái so với một dịng khác ở vế phải. Lặp đi lặp lại bước 3 cho đến khi tất cả các dịng của Vế trái được gắn với các dịng ở Vế phải. Sau khi gắn được một dịng, lưu tạm dịng đĩ vào bảng Lịch thi.
Bước 5: Thực hiện 50 lần bước 3 và 4 để cĩ 50 cá thể ban đầu trong bảng Quần thể.
Bước 6: Lập bảng Tối ưu Ràng buộc, liệt kê các điều kiện ràng buộc, và điểm cho mỗi điều kiện được thỏa là 1, khơng thỏa là 0. Đối với mỗi ràng buộc, gán điểm cho từng mức độ tối ưu. Lấy 6 mức điểm tối ưu: 10, 9, 8, 7, 4, 1. Căn cứ trên số ràng buộc, điểm tối ưu cao nhất và điểm tối ưu thấp nhất, đưa ra điểm chuẩn dùng để lượng giá quần thể ở bước 7.
Bước 7: Đối với mỗi cá thể (lịch thi) trong Quần thể, thực hiện việc tính độ thích nghi trên từng nhiễm sắc thể (dịng) bằng cách cộng điểm những ràng buộc thỏa trên nhiễm sắc thể đĩ. Sau đĩ, tính tổng độ thích nghi của các nhiễm sắc thể để cĩ độ thích nghi của từng cá thể.
Bước 8: Nếu cĩ cá thể nào đạt điểm chuẩn trong bảng Tối ưu Ràng buộc thì thực hiện bước 14, ngược lại thì sang bước 9. Nếu cá thể nào cĩ độ thích nghi nhỏ hơn chuẩn điểm tối ưu thấp nhất thì loại chúng khỏi quần thể.
Bước 9: Sắp xếp độ thích nghi của các cá thể trong quần thể theo thứ tự giảm dần.
Bước 10: Chọn 50 cá thể cĩ độ thích nghi cao nhất, tiến hành lai ghép/đột biến. Phép lai thực hiện bằng cách chọn từng cặp cá thể, trong mỗi cá thể chọn một nhiễm sắc thể bất kì, hốn đổi vế trái của hai nhiễm sắc thể với nhau. Thu được hai cá thể con.
Bước 11: Lượng giá hai cá thể con vừa sinh ra và lưu tạm chúng vào bảng Quần thể, lúc này, quần thể sẽ bao gồm những cá thể ban đầu trước khi lai ghép/đột biến, cộng với hai cá thể con.
Bước 12: So sánh số thế hệ j trên quần thể với n=100. Nếu i ≤ n thì sang bước 13, ngược lại, thực hiện bước 14.
Bước 13: Lặp lại n lần từ bước 7 đến bước 12.
Bước 14: Chọn cá thể cĩ độ thích nghi cao nhất trong quần thể làm lịch thi.
Bước 15: Lưu cá thể được chọn vào bảng LichThi
Bước 17: So trùng thời gian cĩ thể tham gia coi thi của CBCT với giờ thi trên mỗi dịng trong lịch thi, nếu trùng thì gợi ý tên CBCT vào dịng đĩ. Ngược lại, so trùng với dịng khác.
Bước 18: Lặp lại bước 17 cho đến khi khơng thể điền thêm vào dịng nào thì dừng.
Bước 19: Thu được lịch thi tối ưu (chấp nhận được) cĩ gợi ý CBCT.
3.3 Xây dựng quần thể
3.3.1 Xây dựng vế trái
Vế trái là danh sách các dịng chứa các thơng tin chắc chắn sẽ cĩ và khơng đổi trong lịch thi, trong đĩ:
Lớp ngày: True, cho biết lớp học ban ngày; False, lớp học ban đêm.
Sĩ số: là tổng số sinh viên thuộc lớp chính qui với số sinh viên học lại một mơn cụ thể nào đĩ thuộc lớp.
Xem hình 3.3.
3.3.2 Xây dựng vế phải
Vế phải là danh sách các dịng chứa các thơng tin cĩ thể sẽ cĩ hoặc khơng cĩ và cĩ thể sẽ thay đổi trong lịch thi, trong đĩ:
Giờ bắt đầu, Giờ kết thúc: cho biết khoảng thời gian giữa chúng là phịng trống. Xem hình 3.4.