Giới thiệu bài toán Bài toán bao gồm tất cả các vấn đề có liên quan đến việcPCCT tuyển sinh vào lớp 10 THPT tại tỉnh Quảng Bình, chẳng hạn GV một trường được chia ra nhiều nhóm và đi coi
Trang 1MỞ ĐẦU
1 Lý do chọn đề tài
- Việc PCCT vào lớp 10 THPT tại tỉnh Quảng Bình là một vấn
đề tuy cũ nhưng chưa có phần mềm nên dẫn đến tốn nhiều thời gian
và công sức, bên cạnh đó để đảm bảo quy chế, quy định là vấn đề hếtsức khó khăn
- Việc ứng dụng công nghệ thông tin vào công tác quản lý giáodục hiện nay rất phổ biến
- Nếu như có phần mềm PCCT vào lớp 10 THPT sẽ tiết kiệmđược rất nhiều chi phí, thời gian và nhân lực Ngoài ra, nó còn giúptăng độ chính xác hiệu quả và đảm bảo tính khách quan
2 Mục tiêu và nhiệm vụ nghiên cứu
Phân tích các đặc thù chung và riêng biệt, đề ra giải pháp hợp
lý một cách tự động trong việc xây dựng và triển khai hệ thống.Nghiên cứu kết hợp các thuật toán để giải quyết bài toánPCCT tuyển sinh vào lớp 10 THPT
Xây dựng sản phẩm hoàn thiện sử dụng tại Sở GDĐT QuảngBình
3 Phương pháp nghiên cứu
3.1 Tư liệu
Trang 2Tổng hợp các tài liệu liên quan đến thuật toán, cũng như cácquy chế của Bộ GDĐT và quy định của Sở GDĐT Quảng Bình.
Xây dựng một chương trình phục vụ nhu cầu thực hiện PCCT
tự động nhằm giảm thời gian và chi phí bằng tay như hiện nay
5 Nội dung của luận văn
Luận văn được trình bày có 3 chương chính
Chương 1 Bài toán PCCT tuyển sinh vào lớp 10 THPT tại
tỉnh Quảng Bình
Chương 2 Phân tích thiết kế hệ thống
Chương 3 Xây dựng chương trình và thử nghiệm
Trang 3CHƯƠNG 1 BÀI TOÁN PCCT TUYỂN SINH VÀO LỚP 10 THPT
TẠI TỈNH QUẢNG BÌNH 1.1 GIỚI THIỆU
1.3 PCCT TUYỂN SINH VÀO LỚP 10 THPT
1.3.1 Giới thiệu bài toán
Bài toán bao gồm tất cả các vấn đề có liên quan đến việcPCCT tuyển sinh vào lớp 10 THPT tại tỉnh Quảng Bình, chẳng hạn
GV một trường được chia ra nhiều nhóm và đi coi thi tại nhiều hộiđồng khác nhau, phân công sao cho tương ứng về số lượng, tránhphân công một người nhiều việc tại nhiều hội đồng CB, GV, nhânviên của tất cả các đơn vị phải thực hiện nhiệm vụ coi thi theo quyđịnh trong bảng phân công, đảm bảo quy chế thi của Bộ GDĐT vàquy định của Sở GDĐT Quảng Bình Vấn đề của bài toán là ngoàiviệc thực hiện đúng, chính xác, còn phải tốt hơn, nhanh hơn và hiệuquả hơn công việc phân công bằng tay mà chúng ta còn phải đảmbảo các yêu cầu tương đương nhau về: Độ tuổi trung bình của cáchội đồng, giới tính (tỷ lệ nam nữ), khoảng cách ngắn nhất (GV coithi gần đơn vị công tác nhất); tỷ lệ GV THPT, THCS (điều động hết
GV THPT, còn lại điều động GV THCS, tỷ lệ GV tương đươngnhau); CB, GV không đến những đơn vị mà năm trước đã đến coithi, không đổi chéo GV coi thi giữa các trường … tại mỗi Hội đồng
Trang 41.3.2 Phát biểu bài toán
Ngay khi vấn đề được đặt ra, chúng ta đã thấy bài toán phảiđược giải quyết trên hai nền tảng cơ bản: nghiệp vụ và kỹ thuật Đểtạo ra những sản phẩm phù hợp với thực tiễn, nhu cầu của ngành, củabài toán PCCT tuyển sinh vào lớp 10 THPT tại tỉnh Quảng Bình, yêucầu dữ liệu của bài toán phải được hiển thị đầy đủ, không thiếu sót,không bị sai lệch, hệ thống các ràng buộc của bài toán phải logic,trùng khớp với nhau, không chồng chéo và phải phù hợp với yêu cầu
đề ra Phần kỹ thuật cũng vậy, phải xử lý tất cả những yêu cầu chungcũng như những yêu cầu riêng biệt từ các đối tượng gửi đến, chúngđược xem như là thành phần ràng buộc của bài toán, bắt buộc vấn đềphải thỏa mãn và đáp ứng hoàn toàn Vì vậy, tôi sẽ phân tích bài toántrên hai thành phần đó
1.3.3 Dữ liệu bài toán
a Các đối tượng sử dụng
Các đối tượng chính yếu xung quanh mô hình phân công GTcoi thi tại các HĐCT chính là thành phần đầy đủ tính năng củachương trình trong bài toán Tất cả được liệt kê như sau: CB, GV;Trường học; HĐCT; Phòng thi; Môn thi; Huyện thị; Khoảng cáchgiữa các hội đồng
b Mối quan hệ giữa các đối tượng
Quyết định thành lập HĐCT là phần thể hiện mối quan hệ củacác đối tượng: HĐCT, CB, GV, nhân viên làm nhiệm vụ coi thi Saunày HĐCT đặt tại một điểm cụ thể với số lượng phòng thi cụ thểtương ứng số lượng thí sinh dự thi cụ thể, gây phát sinh mới, tạo quan
hệ thứ hai giữa GT làm nhiệm vụ thi và phòng thi Đó là mối quan hệ
cơ sở
Trang 51.3.4 Các ràng buộc bài toán
+ Khoảng cách ngắn nhất (GV coi thi gần đơn vị công tácnhất)
+ Tỷ lệ GV THPT, THCS
+ CB, GV không đến những đơn vị mà năm trước đã coi thi.+ Không đổi chéo GV coi thi
+ GV coi thi không dạy cùng trường với CTHĐ coi thi
+ Đảm bảo đủ về số lượng GT để CTHĐ phân công theonguyên tắc: hai GT trong một phòng thi phải là GV dạy khác trường;
GT không coi thi quá một môn đối với mỗi phòng thi; hai GT khôngcùng coi thi quá một lần; GT trong phòng thi là những người khôngdạy môn đang thi
+ Không có CB, GV, nhân viên nào được phân công hai nhiệm
d Chức năng chiết xuất
1.3.6 Các yêu cầu phi chức năng
- Giao diện đồ họa gần gũi, dễ sử dụng
- Dữ liệu dạng Excel có thể trực tiếp truy xuất bằng chươngtrình khác
1.4 CÁC CÔNG CỤ HỖ TRỢ HIỆN TẠI
1.5 MỘT SỐ THUẬT TOÁN SỬ DỤNG ĐỂ GIẢI QUYẾT BÀI TOÁN PCCT
1.5.1 Giới thiệu
Trang 6Chúng tôi đã chọn kết hợp thuật toán cặp ghép và thuật toántham lam giải quyết bài toán PCCT tuyển sinh vào lớp 10 THPT.
- Những 0_cạnh thuộc M gọi là những 0_cạnh đã ghép, những0_cạnh còn lại là những 0_ cạnh chưa ghép
- Nếu ta định hướng lại các 0_cạnh như sau: Những 0_cạnhchưa ghép cho hướng từ tập X sang tập Y, những 0_cạnh đã ghépcho hướng từ tập Y về tập X
- Đường pha (Alternating Path) là một đường đi cơ bản xuấtphát từ một X_đỉnh chưa ghép đi theo các 0_cạnh đã định hướng ởtrên
- Một đường mở (Augmenting Path) là một đường pha đi từmột X đỉnh chưa ghép tới một Y đỉnh chưa ghép
b Thuật toán Hungari (cặp ghép)
Bước 1: Khởi tạo:
Một bộ ghép M := Ø
Bước 2: Với mọi đỉnh x*X, ta tìm cách ghép x* như sau:Bắt đầu từ đỉnh x* chưa ghép, thử tìm đường mở bắt đầu ở x*bằng thuật toán tìm kiếm trên đồ thị (BFS hoặc DFS - thông thườngnên dùng BFS để tìm đường qua ít cạnh nhất) có hai khả năng xảy ra:
- Hoặc tìm được đường mở thì dọc theo đường mở, ta loại bỏnhững cạnh đã ghép khỏi M và thêm vào M những cạnh chưa ghép,
Trang 7ta được một bộ ghép mới nhiều hơn bộ ghép cũ 1 cạnh và đỉnh x* trởthành đã ghép.
- Hoặc không tìm được đường mở thì do ta sử dụng thuật toántìm kiếm trên đồ thị nên có thể xác định được hai tập:
* VisitedX = {Tập những X_đỉnh có thể đến được từ x* bằngmột đường pha}
* VisitedY = {Tập những Y_đỉnh có thể đến được từ x* bằngmột đường pha}
Gọi Δ là trọng số nhỏ nhất của các cạnh nối giữa một đỉnhthuộc VisitedX với một đỉnh không thuộc VisitedY Dễ thấy Δ > 0bởi nếu Δ = 0 thì tồn tại một 0_cạnh (x, y) với xVisitedX và yVisitedY Vì x* đến được x bằng một đường pha và (x, y) là một0_cạnh nên x* cũng đến được y bằng một đường pha, dẫn tới y VisitedY, điều này vô lý
Biến đổi đồ thị G như sau: Với x VisitedX, trừ Δ vàotrọng số những cạnh liên thuộc với x, Với y VisitedY, cộng Δvào trọng số những cạnh liên thuộc với y
Lặp lại thủ tục tìm kiếm trên đồ thị thử tìm đường mở xuấtphát ở x* cho tới khi tìm ra đường mở
Bước 3: Sau bước 2 thì mọi X_đỉnh đều được ghép, in kết quả
Trang 8<Tìm đường mở xuất phát ở x*>;
if <Không tìm thấy đường mở> then <Biến đổi đồ thị G: Chọn
Δ := …>;
until <Tìm thấy đường mở>;
<Dọc theo đường mở, loại bỏ những cạnh đã ghép khỏi M vàthêm vào M những cạnh chưa ghép>;
end;
<Kết quả>; [4]
c Cài đặt thuật toán
- Sơ đồ cài đặt phương pháp Kuhn-Munkres
Bước 1: Khởi tạo
M := Ø;
Việc khởi tạo các Fx, Fy có thể có nhiều cách chẳng hạnFx[i] := 0; Fy[j] := 0 với i, j Hoặc: Fx[i] := min(c[i, j]) với i Sau
đó đặt Fy[j] := min(c[i, j] Fx[i]) với Fx[i]) với j
Bước 2: Với mọi đỉnh x*X, ta tìm cách ghép x* như sau:Bắt đầu từ đỉnh x*, thử tìm đường mở bắt đầu ở x* bằng thuậttoán tìm kiếm trên đồ thị (BFS hoặc DFS) Lưu ý rằng 0_cạnh làcạnh thoả mãn c[i, j] = Fx[i] + Fy[j] Có hai khả năng xảy ra:
Hoặc tìm được đường mở thì dọc theo đường mở, ta loại bỏnhững cạnh đã ghép khỏi M và thêm vào M những cạnh chưa ghép.Hoặc không tìm được đường mở thì xác định được hai tập:
- VisitedX = {Tập những X_đỉnh có thể đến được từ x* bằngmột đường pha}
- VisitedY = {Tập những Y_đỉnh có thể đến được từ x* bằngmột đường pha}
Trang 9Đặt := min{c[i, j] - Fx[i] - Fy[j] X[i] X[i] VisitedX; Y[j] X[i] VisitedY}
Với X[i] VisitedX: Fx[i] := Fx[i] + ;
Với Y[j] VisitedY: Fy[j] := Fy[j] - ;
Lặp lại thủ tục tìm đường mở xuất phát tại x* cho tới khi tìm
Tính chất lựa chọn tham lam
Chúng ta có thể lựa chọn giải pháp nào được cho là tốt nhất ởthời điểm hiện tại và sau đó giải bài toán con nảy sinh từ việc thựchiện lựa chọn vừa rồi Lựa chọn của thuật toán tham lam có thể phụthuộc vào các lựa chọn trước đó Nhưng nó không thể phụ thuộc vàomột lựa chọn nào trong tương lai hay phụ thuộc vào lời giải của cácbài toán con Thuật toán tiến triển theo kiểu thực hiện các chọn lựatheo một vòng lặp, cùng lúc đó thu nhỏ bài toán đã cho về một bàitoán con nhỏ hơn
S = Ø //S là giải pháp tối ưu
While ( C Ø và S chưa là giải pháp) do
Trang 10X = chọn( C) // chọn x từ tập c theo tiêu chí của hàm chọn
Trang 11CHƯƠNG 2 PHÂN TÍCH THIẾT KẾ HỆ THỐNG 2.1 BIỂU ĐỒ CA SỬ DỤNG
2.2.1 Mức 1 (Tổng quát hóa)
Hình 2.1 Usecase Tổng quát hóa
2.2.2 Mức 2 (Chi tiết từng Usecase)
2.2.3 Biểu đồ tuần tự
2.2.4 Biểu đồ hoạt động
2.2.4 Biểu đồ hoạt động
2.2.5 Biểu đồ trạng thái đối tượng GV
2.3 THIẾT KẾ CƠ SỞ DỮ LIỆU
Lớp CSDL chính là các bảng dữ liệu được xây dựng bằng hệquản trị CSDL MS SQL Server 2005
Sau đây là cách xây dựng các bảng dữ liệu cùng với các thuộctính của chúng:
Trang 122.3.10 Sơ đồ quan hệ giữa các bảng
Hình 2.15 Sơ đồ quan hệ giữa các bảng
Trang 132.4 TỔNG KẾT CHƯƠNG 2
Trong chương này, tôi đã trình bày quá trình sử dụng ngônngữ UML để phân tích và thiết kế CSDL cho hệ thống phần mềm.Nội dung chính của chương trình này là trình bày các usecase và cácluồng thao tác của các usecase đó Ngoài ra, chương này còn trìnhbày thiết kế các bảng dữ liệu từ các đối tượng tham gia trong hệthống và mối quan hệ giữa các bảng
Trang 14CHƯƠNG 3 XÂY DỰNG CHƯƠNG TRÌNH VÀ THỬ NGHIỆM 3.1 THIẾT KẾ CHI TIẾT CÁC THUẬT TOÁN
3.1.1 Quản lý PCCT
Quy chế về việc PCCT THPT do Bộ Giáo dục và Đào tạo banhành chỉ nêu rõ các bước triển khai và yêu cầu chung từng bước Tuynhiên, việc triển khai PCCT THPT tại mỗi tỉnh lại có từng đặc thùkhác nhau nên việc áp dụng quy chế của Bộ Giáo dục và Đào tạomỗi nơi một khác Vì vậy, tại Việt Nam mỗi tỉnh lại có quy địnhPCCT khác nhau không tỉnh nào giống tỉnh nào
3.1.2 Giải pháp chính cho bài toán PCCT
Việc PCCT lớp 10 THPT tỉnh Quảng Bình có những đặc thùrất riêng biệt và rất khác so với các tỉnh khác trên toàn quốc Vì vậy,
để giải quyết này cần phải có mô hình và giải pháp riêng
Trước hết, dùng thuật toán cặp ghép để phân công CT, PCT và
TK hội đồng Sau đó, tiếp tục dùng giải thuật cặp ghép để chọn cáccặp GV - HĐCT thỏa mãn các yêu cầu theo quy chế Sau đó dùngthuật toán tham lam đồng thời kiểm tra các yêu cầu của những GVcòn lại nhằm thỏa mãn các ràng buộc của bài toán PCCT, để cho radanh sách PCCT thô và tinh chỉnh để xuất ra tệp Excel, pdf ( hình3.2)
Trang 15Hình 3.2 Giải pháp cho bài toán PCCT.
Yêu cầu của
GV
Bảng danh sách GV
Dùng thuật toán Cặp ghép để ghép từng cặp Nhóm GV – Hội đồng để phân công GT, đồng thời kiểm tra yêu cầu của
GV
Danh sách PCCT chưa hoàn chỉnh
Dùng thuật toán Tham lam để phân công cho các GV
còn lại, đồng thời kiểm tra các ràng buộc của các GV
phân công TK Hội đồng
Trang 163.1.3 Kết hợp thuật toán cặp ghép và tham lam trong bài toán PCCT
a Thuật toán cặp ghép
Từ bảng danh sách GV, sau khi phân công CT, PCT và TKHội đồng, ta lọc những GV còn lại, đồng thời chúng ta kiểm tra cácràng buộc nếu thỏa mãn ta dùng thuật toán cặp ghép PCCT chonhững GV này Thuật toán được mô tả qua hình 3.3
Hình 3.3 Thuật toán cặp ghép PCCT
Khởi tạo dữ liệu
Tìm đường mở có trong số = min
Tìm thấy
Mở rộng đường mở
Hoàn tất ?
Trang 17b Xây dựng bộ ghép đầy đủ
Áp dụng thuật toán cặp ghép để chọn ra nhóm cặp GV thỏa
mãn các yêu cầu ràng buộc của bài toán PCCT nhằm xây dựng được
bộ ghép đầy đủ cho những GV này được mô tả qua hình 3.4
Hình 3.4 Sơ đồ ghép cặp GV có tổng số khoảng cách di chuyển ngắn nhất.
Trang 18c Thuật toán tham lam
Sau khi áp dụng thuật toán cặp ghép phân công coi thi chonhững nhóm GV có khoảng cách di chuyển ngắn nhất, chúng ta ápdụng thuật toán tham lam để giải quyết các GV còn lại, cho ra đượcmột danh sách coi thi thô của toàn trường được mô tả qua hình 3.5 Hình 3.5 thể hiện việc ứng dụng thuật toán tham lam để phâncông coi cho những nhóm GV trong một trường có tổng GV nhỏ hơn
5 Lựa chọn tham lam trong trường hợp này là tập các GV trong mộttrường có số lượng chưa xét nhỏ hơn 5, ta sắp xếp theo chiều giảmdần của số lượng, đồng thời giải quyết tất cả các trường này và cho
ra được danh sách PCCT dưới dạng bảng
Sau bước này ta có thể sử dụng các chức năng tinh chỉnh nhằm tạo ramột danh sách coi thi tốt nhất dưới dạng bảng, tại đây ta sẽ xuất ratệp Excel
3.2 THỬ NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ
3.2.1 Phân công tự động hoàn toàn
Nếu không có lỗi dữ liệu đầu vào thì phần mềm sẽ tiến hànhPCCT cho toàn bộ các hội đồng trong thời gian một vài phút
3.2.2.Tinh chỉnh dữ liệu của các GV tham gia
Do không thể tự động đánh giá các GV bị thay đổi dữ liệu này
là tốt lên hay xấu đi, yêu cầu bắt buộc phải có của một lệnh tinhchỉnh dữ liệu là cho phép người dùng quan sát các thay đổi trước vàsau khi thực hiện lệnh tinh chỉnh của các GV trung gian NgườiPCCT quan sát và quyết định cuối cùng xem có thực hiện thao táctinh chỉnh đó không
Trang 193.2.3 Cách thức tinh chỉnh thủ công PCCT lớp 10 THPT
Sau khi phần mềm phân công tự động xong, chúng ta xem kếtquả phân công từ bảng thống kê số lượng GT theo từng hội đồng
Từ bảng thống kê này chúng ta có thể thấy hội đồng nào thiếu
GT Đó là căn cứ để ta tinh chỉnh cho phù hợp Để tinh chỉnh thủcông, chúng ta vào chức năng phân công thủ công
Hình 3.5 Thuật toán tham lam PCCT cho nhóm GV của 1 trường
có số GV nhỏ hơn 5
Tìm nhóm GV M1 ở trường L1 mà sogiaovien(M1,L1) ≤ 4
Tìm thấySai
Đúng
Tìm Hội đồng sao cho sao cho
sogiaovien(M1,L1)≤hoidongt
hieu() vàsogiaovien(M1,L1) thỏa yêu
cầu
Tìm thấy
Ghép xen kẽ nhóm GV vào danh sách coi thi
Đúng
S ai
Bắt đầu
Kết thúcSai
Đúng
Trang 203.2.4 Thử nghiệm thực tế với dữ liệu kỳ thi tuyển sinh vào lớp 10 THPT.
Thực hiện đúng, chính xác, còn phải tốt hơn,
nhanh hơn và hiệu quả hơn công việc phân công
6 GV coi thi không dạy cùng trường với CTHĐ coi
7 Số lượng GV trùng môn < ½ số lượng phòng thi Đạt
8 Hội đồng tới coi thi khác huyện với trường đang
9 Mỗi hội đồng phải có một PCT, TK sở tại Đạt
10 Nếu hội đồng có nhiều hơn một TK thì hội đồng
Trang 21b Khả năng áp dụng
Phần mềm PCCT đã được kiểm thử rất nhiều lần và đã triểnkhai áp dụng PCCT cho kỳ thi tuyển sinh vào lớp 10 THPT tại tỉnhQuảng Bình năm 2013 với kết quả kỳ thi diễn ra thành công tốt đẹp.Hơn nữa có thể sử dụng phần mềm này vào PCCT cho các kỳ thi Tốtnghiệp trung học phổ thông, các kỳ thi chọn học sinh giỏi, kiểm trakhảo sát chất lượng giáo dục trên toàn tỉnh, thi tốt nghiệp nghề phổthông, thi tuyển công chức,
3.3 TỔNG KẾT CHƯƠNG 3
Trong chương này, chúng tôi đã phân tích chi tiết bài toánPCCT lớp 10 THPT; thể hiện được giải pháp chính của bài toán, ứngdụng thuật toán cặp ghép và thuật toán tham lam trong khi giải quyếtbài toán Sử dụng bộ dữ liệu thực của tỉnh Quảng Bình trong việcPCCT lớp 10 THPT làm dữ liệu cơ sở để minh họa cho bài toán,đồng thời đưa ra được một số chức năng tinh chỉnh thủ công và đãgiải quyết tốt hơn bài toán PCCT