Bài toán bao gồm tất cả các vấn đề có liên quan đến việc PCCT tuyểnsinh vào lớp 10 THPT tại tỉnh Quảng Bình, chẳng hạn GV một trường đượcchia ra nhiều nhóm và đi coi thi tại nhiều hội đồ
Trang 1Tô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Ả
Đặng Ngọc Tuấn
Trang 2MỞ ĐẦU 1
1 Lý do chọn đề tài 1
2 Mục tiêu và nhiệm vụ nghiên cứu 2
3 Phương pháp nghiên cứu 3
4 Ý nghĩa khoa học và thực tiễn của đề tài 3
5 Nội dung của luận văn 4
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 5
1.1 GIỚI THIỆU 5
1.2 VẤN ĐỀ PCCT TUYỂN SINH VÀO LỚP 10 THPT 6
1.2.1 Dùng phương pháp thủ công để PCCT tuyển sinh vào lớp 10 THPT 6 1.2.2 Dùng phần mềm để PCCT tuyển sinh vào lớp 10 THPT 7
1.3 PCCT TUYỂN SINH VÀO LỚP 10 THPT 8
1.3.1 Giới thiệu bài toán 8
1.3.2 Phát biểu bài toán 9
1.3.3 Dữ liệu bài toán 10
1.3.4 Các ràng buộc bài toán 12
1.3.5 Các yêu cầu chức năng 17
1.3.6 Các yêu cầu phi chức năng 19
1.4 CÁC CÔNG CỤ HỖ TRỢ HIỆN TẠI 19
1.5 MỘT SỐ THUẬT TOÁN SỬ DỤNG ĐỂ GIẢI QUYẾT BÀI TOÁN PCCT 20
1.5.1 Giới thiệu 20
1.5.2 Thuật toán cặp ghép 21
1.5.3 Thuật toán tham lam 24
Trang 3CHƯƠNG 2 PHÂN TÍCH THIẾT KẾ HỆ THỐNG 28
2.1 BIỂU ĐỒ CA SỬ DỤNG 28
2.2.1 Mức 1 (Tổng quát hóa) 28
2.2.2 Mức 2 (Chi tiết từng Usecase) 38
2.2.3 Biểu đồ tuần tự 56
2.2.4 Biểu đồ hoạt động 58
2.2.5 Biểu đồ trạng thái đối tượng GV 60
2.3 THIẾT KẾ CƠ SỞ DỮ LIỆU 61
2.3.1 Bảng Người dùng 61
2.3.2 Bảng GV 61
2.3.3 Bảng Hội đồng 62
2.3.4 Bảng Khoảng cách 63
2.3.5 Bảng Loại GV 63
2.3.6 Bảng Loại GT 63
2.3.7 Bảng Huyện 64
2.3.8 Bảng Phòng thi 64
2.3.9 Bảng Trường học 64
2.3.10 Sơ đồ quan hệ giữa các bảng 65
2.4 TỔNG KẾT CHƯƠNG 2 65
CHƯƠNG 3 XÂY DỰNG CHƯƠNG TRÌNH VÀ THỬ NGHIỆM 66
3.1 THIẾT KẾ CHI TIẾT CÁC THUẬT TOÁN 66
3.1.1 Quản lý PCCT 66
3.1.2 Giải pháp chính cho bài toán PCCT 67
3.1.3 Kết hợp thuật toán cặp ghép và tham lam trong bài toán PCCT 68
3.1.4 Dữ liệu chính bài toán PCCT lớp 10 THPT 73
3.2 THỬ NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ 76
3.2.1 Phân công tự động hoàn toàn 77
Trang 43.2.3 Cách thức tinh chỉnh thủ công PCCT lớp 10 THPT 77
3.2.4 Thử nghiệm thực tế với dữ liệu kỳ thi tuyển sinh vào lớp 10 THPT.78 3.2.5 Đánh giá phần mềm 83
3.3 TỔNG KẾT CHƯƠNG 3 85
KẾT LUẬN 86
1 Kết quả đạt được 86
2 Hạn chế 87
3 Hướng phát triển 87
TÀI LIỆU THAM KHẢO 89
QUYẾT ĐỊNH GIAO ĐỀ TÀI LUẬN VĂN THẠC SĨ (BẢN SAO) PHỤ LỤC 92
Trang 5THPT: Trung học phổ thông.
THCS: Trung học cơ sở.
GDĐT: Giáo dục và Đào tạo.
PCCT: Phân công coi thi.
Trang 6Số hiệu Tên TrangBảng 3.1 Thống kê danh sách CB, GV đề nghị làm nhiệm vụ
Bảng 3.2 Thống kê số lượng CB, GV PCCT thô 80Bảng 3.3 Thống kê số lượng CB, GV PCCT đã tinh chỉnh 81
Trang 7Số hiệu Tên Trang
Hình 2.8 Biểu đồ tuần tự Usecase "Quản lý danh sách CTHĐ" 57Hình 2.9 Biểu đồ tuần tự Usecase “Nhập trường CT đã coi thi” 57Hình 2.10 Biểu đồ tuần tự Usecase “Phân công CTHĐ” 58Hình 2.11 Biểu đồ hoạt động Usecase “Quản lý danh sách CTHĐ” 59Hình 2.12 Biểu đồ hoạt động Usecase“Nhập trường CT đã coi thi” 59Hình 2.13 Biểu đồ hoạt động Usecase “Phân công CTHĐ” 60Hình 2.14 Biểu đồ trạng thái đối tượng GV 60
Hình 3.9 Danh sách HĐCT cho từng hội đồng 82Hình 3.10 Danh sách CB, GV tham gia coi thi của từng trường 82
Trang 8MỞ ĐẦ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êncạnh đó để đảm bảo quy chế, quy định là vấn đề hết sức khó khăn Vì PCCTtại tỉnh Quảng Bình có những đặc thù riêng biệt: ngoài những quy định của
Bộ GDĐT, tại tỉnh Quảng Bình còn có thêm nhiều yêu cầu, ràng buộc, nên tất
cả các khâu đều phải làm thủ công, dẫn đến kết quả chưa tối ưu, còn vi phạmquy chế, quy định
Công nghệ thông tin đã và đang trên đà phát triển mạnh mẽ trên toàn cầu,nhưng việc PCCT tuyển sinh vẫn phải làm thủ công, nên hiệu quả không cao,lại mất rất nhiều thời gian và công sức Bài toán đặt ra là làm thế nào để PCCTtuyển sinh vào lớp 10 THPT một cách tự động, ngẫu nhiên, sao cho vừa đúngquy chế, quy định lại vừa tiết kiệm, phù hợp với yêu cầu đặt ra
Bài toán bao gồm tất cả các vấn đề có liên quan đến việc PCCT tuyểnsinh vào lớp 10 THPT tại tỉnh Quảng Bình, chẳng hạn GV một trường đượcchia ra nhiều nhóm và đi coi thi tại nhiều hội đồng khác nhau, phân công saocho tương ứng về số lượng, tránh phân công một người nhiều việc tại nhiềuhội đồng; GV sẽ đi coi thi theo quy định trong bảng phân công, đảm bảo quychế của Bộ GDĐT và quy định của Sở GDĐT Quảng Bình Vấn đề của bàitoán là ngoài việc 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 bằng tay mà chúng ta vẫn phải làm SởGDĐT Quảng Bình có nhiều đặc trưng riêng như địa hình khó khăn, dài.Ngoài ra mỗi hội đồng đảm bảo các yêu cầu tương đương nhau về: Độ tuổitrung bình của các hội đồng, giới tính (tỷ lệ nam nữ), khoảng cách ngắn nhất(GV coi thi 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 đương nhau); CB,
Trang 9GV không đến những đơn vị mà năm trước đã đến coi thi, không đổi chéo GVcoi thi giữa hai trường (Ví dụ: Trường THPT Minh Hóa đến coi thi trườngTHPT Tuyên Hóa coi thi thì GV trường THPT Tuyên Hóa không đến coi thitại trường THPT Minh Hóa và ngược lại) GV không coi thi tại Hội đồng màCTHĐ là Lãnh đạo đơn vị mình đang công tác…
Thông thường, công việc này được làm bằng tay, tất nhiên chúng ta luônthực hiện được và cho ra kết quả tương đối tốt, nhưng phải mất nhiều thờigian và ít nhất phải có kinh nghiệm xếp GT nếu không muốn có sai sót xảy ra,chẳng hạn như: chỗ này thừa người, chỗ khác lại thiếu, sai chức danh, sai địađiểm,
Ngoài các ràng buộc trên, việc giải quyết chế độ cho một số CB GV mộtcách khác nhau, một số người phải coi thi gần vì lí do phải chăm sóc người
ốm, thai nghén hoặc con nhỏ, nên việc xếp coi thi cũng có nhiều điểm khác sovới các đơn vị khác Chính vì lý do này, đề tài nghiên cứu các thuật toán và ápdụng nó để làm sao thỏa mãn một cách tốt nhất các nhu cầu cần thiết, hợp lýcủa GV
Xuất phát từ những lý do trên, tôi đã chọn đề tài “Nghiên cứu xây dựng
hệ thống hỗ trợ PCCT tuyển sinh vào lớp 10 THPT tại tỉnh Quảng Bình”
ứng dụng tại Sở GDĐT Quảng Bình, có giải pháp và chương trình, sản phẩm
cụ thể làm đề tài luận văn tốt nghiệp thạc sĩ của mình Chương trình được xâydựng và ứng dụng sẽ giúp hoàn thiện hơn kiến thức được học và có ý nghĩakhoa học, thực tiễn cao
2 Mục tiêu và nhiệm vụ nghiên cứu
2.1 Mục tiêu
Hoàn thành sản phẩm là một chương trình PCCT tuyển sinh vào lớp 10THPT tại tỉnh Quảng Bình
Trang 10Tiếp tục phát triển ứng dụng chương trình PCCT tuyển sinh vào lớp 10THPT trên toàn quốc.
Xây dựng sản phẩm hoàn thiện sử dụng tại Sở GDĐT Quảng Bình
3 Phương pháp nghiên cứu
3.1 Tư liệu
Tổng hợp các tài liệu liên quan đến thuật toán, cũng như các quy chế của
Bộ GDĐT và quy định của Sở GDĐT Quảng Bình
Trang 114.2 Về mặt thực tiễn
Xây dựng một chương trình phục vụ nhu cầu thực hiện PCCT tự độngnhằ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 này trình bày tổng quan bài toán PCCT tuyển sinh vào lớp 10THPT và cơ sở lý thuyết của thuật toán cặp ghép và thuật toán tham lam, giảipháp kết hợp của hai thuật toán này vào việc giải quyết bài toán PCCT
Chương 2 Phân tích thiết kế hệ thống
Trong chương này, tôi đã trình bày quá trình sử dụng ngôn ngữ UML đểphân tích và thiết kế CSDL cho hệ thống phần mềm Nội dung chính củachương trình này là trình bày các Usecase và các luồng thao tác của cácUsecase đó Ngoài ra, chương này còn trình bà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
Chương 3 Xây dựng chương trình và thử nghiệm
Triển khai một chương trình máy tính cài đặt phần mềm PCCT được thểhiện chi tiết; thử nghiệm và đánh giá các kết quả đạt được thông qua việc ápdụng thuật toán cặp ghép và tham lam, tự động hóa bài toán PCCT tuyển sinh
và các chức năng tinh chỉnh thủ công, nhằm tạo ra một bảng PCCT tuyển sinhtinh về chất, áp dụng tốt cho Sở GDĐT Quảng Bình và các Sở GDĐT trêntoàn quốc
Trang 12CHƯƠNG 1BÀI TOÁN PCCT TUYỂN SINH VÀO LỚP 10 THPT TẠI
TỈNH QUẢNG BÌNH1.1 GIỚI THIỆU
Như chúng ta đã biết, những năm gần đây tại các tỉnh thành trên cả nước
và ở tỉnh Quảng Bình nói riêng luôn tổ chức các kỳ thi tuyển sinh vào lớp 10THPT Để chuẩn bị và tổ chức kỳ thi tuyển sinh vào lớp 10 THPT, các SởGDĐT các tỉnh thành nói chung và tỉnh Quảng Bình nói riêng luôn ra Quyếtđịnh thành lập các HĐCT Tuy nhiên, việc ra Quyết định thành lập các HĐCT
là một công việc rất phức tạp, gặp nhiều khó khăn và tốn nhiều thời gian Mộttrong số khó khăn lớn nhất đó là bài toán phân công GT cho các HĐCT, đây
là sản phẩm chính là cơ sở để lãnh đạo ra Quyết định thành lập các HĐCT.Bài toán PCCT tuyển sinh vào lớp 10 THPT tại tỉnh Quảng Bình tuy cũ,nhưng chưa có phần mềm giải quyết nên phải làm thủ công Bài toán nàykhông chỉ được đo bằng độ phức tạp của vấn đề, mà còn ở tính thực tiễn, khảnăng áp dụng rất cao trên thực tế Bất cứ một Sở GDĐT nào, bài toán phâncông GT cho các HĐCT là một việc làm quan trọng và luôn có sự quan tâmcủa lãnh đạo Sở, CB, GV, nhân viên toàn ngành và xã hội Chính vì lẽ đó bàitoán PCCT tuyển sinh vào lớp 10 THPT trở thành một trong những vấn đềchính và quan trọng bậc nhất của mỗi Sở GDĐT
Hiện nay ở tỉnh Quảng Bình có 33 trường THPT, THCS và THPT; cónghĩa mỗi kỳ thi tuyển sinh vào lớp 10 THPT, Sở GDĐT Quảng Bình raQuyết định thành lập nhiều hơn 33 HĐCT Việc ra Quyết định thành lập cácHĐCT là một công việc khó khăn và phức tạp thể hiện ở các lý do sau:
Trang 13- Thứ nhất, ở Việt Nam chưa có phần mềm chính thống nào được đưavào để PCCT, điều đó đồng nghĩa với việc PCCT sẽ tốn nhiều thời gian, côngsức và kinh phí.
- Thứ hai, việc PCCT là một công việc đòi hỏi tính khách quan, tư duy,suy luận, tính toán rất phức tạp, rất dễ nhầm lẫn và thực hiện một cách chínhxác khoa học Vì vậy phải là người có kinh nghiệm và hiểu biết về công việcnày mới làm được
- Thứ ba, người PCCT là người "làm dâu trăm họ", rất khó có thể đápứng được các nhu cầu khác nhau của toàn bộ đội ngũ GV trong ngành Cácràng buộc của các HĐCT và các đơn vị đến coi thi rất mâu thuẫn, chồng chéolẫn nhau
- Thứ tư, công việc PCCT đòi hỏi một số tư duy đặc biệt, rất đặc thù của
"nghề PCCT" Không phải ai cũng có thể rèn luyện để có những kinh nghiệm
và tư duy này Người PCCT, ngoài việc phải rất am hiểu về các địa điểm coithi, hiểu rõ năng lực và yêu cầu của các CB, GV trong toàn ngành, còn phải
có được những tư duy nghề nghiệp của công việc PCCT
Trong chương này, tôi trình bày các vấn đề PCCT theo yêu cầu của Quychế thi của Bộ GDĐT, và Quy định về việc coi thi của Sở GDĐT QuảngBình
1.2 VẤN ĐỀ PCCT TUYỂN SINH VÀO LỚP 10 THPT
1.2.1 Dùng phương pháp thủ công để PCCT tuyển sinh vào lớp 10 THPT
Bài toán PCCT tuyển sinh vào lớp 10 THPT tại tỉnh Quảng Bình là mộtbài toán rất khó và phức tạp, tất cả mọi người đều biết điều đó, không chỉphức tạp ở các ràng buộc GV chồng chéo lên nhau mà còn giữa các HĐCTnày với các hội đồng khác, giữa GV trường này với GV trường khác, giữa GV
và CT các hội đồng thi Qui mô của các HĐCT rất đa dạng với những yêu cầu
Trang 14đặc biệt khác nhau: số lượng thí sinh, số phòng thi, số lượng GT, lãnh đạo hộiđồng, địa điểm đặt hội đồng, điều kiện kinh tế xã hội …
Từ những vấn đề khó khăn trên trong việc giải quyết bài toán PCCTtuyển sinh vào lớp 10 THPT tại tỉnh Quảng Bình trước đây chủ yếu phải phâncông bằng tay, tức là phải làm thủ công; việc phân công GT bằng tay vừa khóvừa dễ, với công cụ sử dụng chủ yếu là:
- Máy vi tính, phần mềm Word, Excel, thước, tẩy, bút chì, giấy trắng
- Dùng phương pháp cắt, dán thủ công danh sách GV theo số lượng theotừng hội đồng
- Luôn phải đề phòng khỏi bị phân công một GV coi thi tại nhiều hộiđồng, GV hai trường coi thi chéo nhau, trùng địa điểm coi thi năm trước vànăm sau, tỉ lệ GV bộ môn không đảm bảo đúng yêu cầu
- Phải tư duy liền mạch nếu không quên ngay
- Kinh nghiệm nhiều năm được tích lũy
- Phải mất rất nhiều thời gian và công sức
Từ đó có thể đưa ra bản danh sách phân công GT coi thi tại các HĐCTtương đối dùng được, sau đó phải qua rà soát, kiểm tra, tinh chỉnh và cuốicùng cho ra được một sản phẩm tương đối tốt, áp dụng được trong thực tếnhưng phải mất rất nhiều thời gian và công sức Nhất là người làm công việcphân công GT phải có kinh nghiệm, hiểu rõ về qui trình và qui chế nghiệp vụ
tổ chức các kỳ thi; qui mô kỳ thi và qui mô các HĐCT, nắm nhiều vấn đề liênquan khác
1.2.2 Dùng phần mềm để PCCT tuyển sinh vào lớp 10 THPT
Hiện nay có một số phần mềm dùng để PCCT của một số tỉnh, hay một
số tổ chức khác nhưng hiệu quả không cao, không đáp ứng được yêu cầu của
Sở GDĐT Quảng Bình Chỉ mới thực hiện theo Quy chế của Bộ GDĐT, chưamang lại hiệu quả kinh tế cũng như việc ngăn chặn các hiện tượng tiêu cực
Trang 15trong thi cử Các công cụ hỗ trợ xếp tay, bán tự động và tự động hoàn toàn,các giao diện tương tác cho phép quan sát, tư duy, tính toán trực tiếp với phầnmềm; thuật toán xếp tự động và tối ưu hóa dữ liệu PCCT, in ấn, báo cáo,thống kê dữ liệu chưa đáp ứng nhu cầu của Sở GDĐT Quảng Bình.
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 PCCT tuyển sinh vào lớp 10 THPT tại tỉnh Quảng Bình là mộtvấn đề phức tạp nhưng chưa có phần mềm hỗ trợ giải quyết nên dẫn đến tốnnhiều thời gian và công sức, bên cạnh đó để đảm bảo quy chế, quy định là vấn
đề hết sức khó khăn Vì PCCT tại tỉnh Quảng Bình có những đặc thù riêngbiệt, ngoài những quy định của Bộ GDĐT, tại tỉnh Quảng Bình còn có thêmnhiều yêu cầu, ràng buộc, nên tất cả các khâu đều phải làm thủ công, dẫn đếnkết quả chưa tối ưu, tốn nhiều thời gian công sức, còn vi phạm quy chế, quyđịnh
Công nghệ Thông tin đã và đang trên đà phát triển mạnh mẽ trên toàn cầu,nhưng việc phân công GT coi thi tuyển sinh vẫn phải làm thủ công, nên hiệuquả không cao, lại mất rất nhiều thời gian và công sức Bài toán đặt ra là làmthế nào để PCCT tuyển sinh vào lớp 10 THPT một cách tự động, ngẫu nhiên,sao cho vừa đúng quy chế, quy định lại vừa tiết kiệm thời gian, công sức vàkinh phí, phù hợp với yêu cầu đặt ra
Bài toán bao gồm tất cả các vấn đề có liên quan đến việc PCCT tuyểnsinh vào lớp 10 THPT tại tỉnh Quảng Bình, chẳng hạn GV một trường đượcchia ra nhiều nhóm và đi coi thi tại nhiều hội đồng khác nhau, phân công saocho tương ứng về số lượng, tránh phân công một người nhiều việc tại nhiềuhội đồng CB, GV, nhân viê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ài
Trang 16việc 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ơncông việc phân công bằng tay mà chúng ta vẫn phải làm Sở GDĐT QuảngBình có nhiều đặc trưng riêng như địa hình khó khăn, khoảng cách giữa cácHĐCT với nhau dài Ngoài ra việc PCCT tại mỗi hội đồng phải đảm bảo cácyêu cầu tương đương nhau về: Độ tuổi trung bình của các hội đồng, giới tính(tỷ lệ nam nữ), khoảng cách ngắn nhất (GV coi thi 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 đương nhau); CB, GV không đến những đơn vị mànăm trước đã đến coi thi, không đổi chéo GV coi thi giữa các trường (Ví dụ:Trường THPT Minh Hóa đến coi thi trường THPT Tuyên Hóa thì GV trườngTHPT Tuyên Hóa không đến coi thi tại trường THPT Minh Hóa và ngượclại) GV không coi thi tại các hội đồng đặt trên huyện, thị, thành phố nơi côngtác GV không coi thi tại Hội đồng mà CTHĐ là Lãnh đạo đơn vị mình đangcông tác…
-Thông thường, công việc này được làm bằng tay, tất nhiên chúng ta luônthực hiện được và cho ra kết quả tương đối tốt, nhưng phải mất nhiều thờigian và ít nhất phải có kinh nghiệm xếp GT nếu không muốn có sai sót xảy ra,chẳng hạn như: chỗ này thừa người, chỗ khác lại thiếu, sai chức danh, sai địađiểm,
Ngoài các ràng buộc trên, việc giải quyết chế độ cho một số CB GV mộtcách khác nhau, một số người phải coi thi gần vì lí do phải chăm sóc người
ốm, thai nghén hoặc con nhỏ, nên việc xếp coi thi cũng có nhiều điểm khác sovới các đơn vị khác Chính vì lý do này, đề tài nghiên cứu các thuật toán và ápdụng nó để làm sao thỏa mãn một cách tốt nhất các nhu cầu của GV
1.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ảiquyế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
Trang 17phẩm phù hợp với thực tiễn, nhu cầu của ngành, của bài toán PCCT tuyểnsinh vào lớp 10 THPT tại tỉnh Quảng Bình, yêu cầ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àngbuộ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ảiphù 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ữngyêu cầu chung cũ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án trên haithành phần đó.
1.3.3 Dữ liệu bài toán
Như đã nói ở trên, thông tin sẽ phát sinh từ các đối tượng chính trong bàitoán Do đó, các dữ liệu luôn có mối liên hệ với nhau, phần lớn vì nhu cầunghiệp vụ mà dữ liệu xuất hiện tương đối nhiều Trong bài toán PCCT tuyểnsinh vào lớp 10 THPT tại tỉnh Quảng Bình, cụ thể sẽ đòi hỏi các thông tinsau:
+ Danh sách CB, GV đề nghị làm nhiệm vụ coi thi tại các HĐCT
+ Danh sách số lượng GT cần có tại các HĐCT
Trang 18+ Danh sách số lượng CB, GV từng đơn vị đề nghị làm nhiệm vụ coi thitại các HĐCT.
+ Danh sách số lượng GV từng đơn vị làm nhiệm vụ coi thi tại cácHĐCT
+ Danh sách số lượng GT tại các HĐCT
+ Danh sách CB, GV đoàn thanh tra
+ Danh sách CB, GV làm nhiệm vụ ra đề, in sao đề
+ Danh sách các thành viên làm nhiệm vụ bảo vệ, y tế, phục vụ kỳ thicủa từng HĐCT
+ Quyết định thành lập các HĐCT năm trước
+ Danh sách phân công nhiệm vụ tại các hội đồng thi năm trước
+ Danh sách điều động CB, GV của từng đơn vị năm trước
+ Bảng yêu cầu ràng buộc của từng HĐCT
+ Bảng yêu cầu ràng buộc của CB, GV các trường coi thi
+ Bảng khoảng cách giữa các HĐCT
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 GT coi thi tạicác HĐCT chính là thành phần đầy đủ tính năng của chương trình trong bàitoán Tất cả được liệt kê như sau:
Trang 19b Mối quan hệ giữa các đối tượng
Dựa trên Quyết định thành lập các HĐCT, thể hiện rõ thông tin các đốitượng liên quan nhau ở tại thời điểm tổ chức kỳ thi Hay nói cách khác Quyếtđịnh thành lập HĐCT là phần thể hiện mối quan hệ của các đối tượng: HĐCT,
CB, GV, nhân viên làm nhiệm vụ coi thi Sau nà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âyphá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ở
1.3.4 Các ràng buộc bài toán
Trong mô hình bài toán, các đối tượng có những yêu cầu, ràng buộcriêng biệt khác nhau với công việc của mình và được nhập vào kèm theo ngaykhi đối tượng xuất hiện Song song đó, với nghiệp vụ lịch thực thi, có rấtnhiều thông số, và mối quan hệ các đối tượng tạo ra một ràng buộc chung,như là bộ luật thống nhất trong toàn hệ thống Phần mềm phân công thi tuyểnsinh vào lớp 10 THPT tại tỉnh Quảng Bình phải thỏa mãn các ràng buộc dướiđây:
- 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ánh phân côngmột người nhiều việc tại nhiều hội đồng;
- Ngoài việc 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 bằng tay
- Sở GDĐT Quảng Bình có nhiều đặc trưng riêng như địa hình khó khăn,dài nên khoảng cách giữa các HĐCT với nhau xa
- Ngoài ra tại các hội đồng còn có các yêu cầu tương đương nhau về: + Khoảng cách ngắn nhất (GV coi thi gần đơn vị công tác nhất)
+ Tỷ lệ GV THPT, THCS
+ CB, GV không đến những đơn vị mà năm trước đã coi thi
Trang 20+ 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 theo nguyê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ông cùng coi thi quá một lần; GTtrong phòng thi là những người không dạy môn đang thi
a Ràng buộc dữ liệu nhập vào
Do yêu cầu riêng của các đối tượng đối với bài toán mà ràng buộc đượcnhập vào sau khi đã nhập đối tượng Các đối tượng và các yêu cầu bao gồmnhư sau:
Đối tượng Trường học
Đối tượng trường học được hiểu là một trường THPT hoặc trường THCS
và THPT hoặc có thể là đơn vị Phòng GDĐT Mỗi đơn vị có số lượng CB,
GV, nhân viên đề nghị làm nhiệm vụ coi thi khác nhau, do đó cần phải có cácthông tin cần thiết về các đơn vị cụ thể để làm dữ liệu ràng buộc cho bài toán.+ Tên đơn vị
+ Mã đơn vị
+ Địa chỉ
+ Mã huyện, thị/thành phố nơi đơn vị đóng
Đối tượng CB, GV, nhân viên
Mỗi CB, GV, nhân viên có một hồ sơ cá nhân riêng, do đó phải nhập đầy
đủ các thông tin cần thiết theo mẫu của bài toán
Trang 21+ Mã đề nghị làm nhiệm vụ tại hội đồng chấm thi.
+ Có người thân thi tại
+ Lý do xin nghỉ coi thi, chấm thi
Đối tượng HĐCT
Trong quá trình tổ chức kỳ thi theo một quy định chung nào đó mà cácHĐCT phải xảy ra cùng một thời điểm Các HĐCT phải có đầy đủ thông tincần thiết, các thông tin này cần được nhập vào làm dữ liệu ràng buộc cho bàitoán
+ Số lượng thành viên trong Lãnh đạo Hội đồng
+ Số lượng thành viên đoàn thanh tra
+ Số lượng GT coi thi
+ Số lượng nhân viên bảo vệ, phục vụ, y tế
Đối tượng Huyện thị/thành phố
Mỗi đơn vị công tác, Hội đồng có địa điểm đặt tại Huyện, thị khác nhau
Vì vậy, cần có đối tượng huyện thị để lưu thông tin:
+ Mã huyện thị/thành phố
+ Tên huyện/thành phố
Trang 22+ Thông tin ghi chú.
Đối tượng Phòng thi
Mỗi hội đồng tổ chức thi tuyển đều được chia thành nhiều phòng thi.Mỗi phòng thi có thông tin riêng về tên phòng, số lượng học sinh … Vì vậy,cần lưu đối tượng để sử dụng trong bài toán:
+ Mã phòng
+ Tên phòng
+ Số lượng học sinh dự thi
+ Mã hội đồng
Đối tượng Môn thi
Ở mỗi đợt thi tuyển, đều có nhiều hơn một môn thi Mỗi môn đều có tênmôn, hệ số điểm … cụ thể:
+ Mã môn thi
+ Tên môn thi
+ Ghi chú
Đối tượng Loại GT
Mỗi CB, GV, nhân viên khi nhận nhiệm vụ tại mỗi Hội đồng đều giữnhững chức vụ khác nhau: CTHĐ, Phó CTHĐ, TK, GT … Vì vậy, đối tượngnày cần lưu thông tin về:
+ Mã Loại GT
+ Tên Loại GT
Đối tượng Loại GV
Mỗi CB, GV được đề nghị PCCT đều giữ một vai trò nào đó tại đơn vịmình công tác như: Hiệu trưởng, phó hiệu trưởng, Tổ trưởng, GV, CB phòng
sở Vì vậy, đối tượng này cần lưu thông tin về:
+ Mã Loại GV
+ Tên Loại GV
Trang 23Đối tượng Nhóm GT
GV mỗi đơn vị được phân công theo nhóm tới các Hội đồng để coi thi
Vì vậy, có rất nhiều Nhóm GT được chia và PCCT Các thông tin cụ thể củađối tượng này:
+ Mã Nhóm GT
+ Tên Nhóm GT
+ Mã đơn vị
+ Mã hội đồng đến coi thi
Đối tượng Khoảng cách giữa các HĐCT.
Mỗi lần tổ chức thi, có rất nhiều HĐCT Mỗi hội đồng đều được đặt tạicác đơn vị trường học Trong ràng buộc của bài toán có một ràng buộc rấtquan trọng đó là phân công GV coi thi sao cho khoảng cách là tối ưu nhất + Mã Khoảng cách
+ Mã đơn vị
+ Mã Hội đồng
+ Khoảng cách
Tối ưu hóa bài toán
Bài toán PCCT tuyển sinh vào lớp 10 THPT tại tỉnh Quảng Bình phảiđược phân công sao cho đảm bảo đúng Qui chế tuyển sinh và phải thỏa mãnđược tất cả các yêu cầu của Sở GDĐT Quảng Bình Mỗi CB, GV, nhân viênkhi nhận được Quyết định coi thi phải biết được đầy đủ, chính xác nhiệm vụcoi thi của mình từ đó thực hiện chính xác, nghiêm túc nhiệm vụ được giao.Không có CB, GV, nhân viên nào được phân công hai nhiệm vụ cùng mộtlúc Số lượng GT tại một HĐCT phải đảm bảo so với tỉ lệ đề ra, phân công
GT phải thỏa mãn các ràng buộc của bài toán
Trang 24b Ràng buộc nghiệp vụ - thời gian
- Không có CB, GV, nhân viên nào được phân công hai nhiệm vụ cùngmột lúc
- Không có GV coi thi dạy cùng trường với CTHĐ coi thi
- Không có hai GV cùng trường vào coi thi cùng một phòng
- Không có GV dạy cùng môn với môn đang thi
- Không có hai GV cùng coi thi quá một lần
c Ràng buộc nghiệp vụ - chuyên mô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ánh phân côngmột người nhiều việc tại nhiều hội đồng;
- Các hội đồng còn có các yêu cầu tương đương nhau về:
+ Khoảng cách ngắn nhất (GV coi thi gần đơn vị công tác nhấ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 số GT để CTHĐ phân công đảm bảo nguyên tắc: hai GTtrong một phòng thi phải là GV dạy khác trường; GT không coi thi quá mộtmôn đối với mỗi phòng thi; hai GT không cùng coi thi quá một lần; GT trongphòng thi là những người không dạy môn đang thi
1.3.5 Các yêu cầu chức năng
Trang 25+ HĐCT (Tên hội đồng, địa điểm đặt hội đồng, qui mô hội đồng, sốlượng phòng thi, số lượng thí sinh, số lượng CB; GV; nhân viên làm nhiệm vụcoi thi).
+ Danh sách lãnh đạo HĐCT (Họ và tên, ngày sinh, đơn vị, chức vụ,chức vụ hội đồng, tên hội đồng, địa chỉ đặt hội đồng )
+ Danh sách GT tại HĐCT (Họ và tên, ngày sinh, giới tính, môn dạy,năm vào ngành, đơn vị công tác, chức vụ, HĐCT)
+ Bảng mã phân công GT (Tên hội đồng, mã hội đồng, số lượng phòngthi, số lượng GT cần, mã CT, mã đơn vị n, số lượng GT m, mã đơn vị dp n, sốlượng GT dp m)
+ Bảng mã hội đồng (Tên hội đồng, địa điểm, mã hội đồng, qui mô hộiđồng)
+ Khoảng cách giữa HĐCT và đơn vị công tác
b Chức năng tra cứu
Ngoài thông tin các đối tượng được lưu trữ, chương trình còn thể hiệnnhững bảng kết quả thực thi, trong quá trình phân công GT coi thi tuyển sinhvào lớp 10 THPT tại tỉnh Quảng Bình gồm các tra cứu sau:
+ Danh sách HĐCT
+ Danh sách GV làm nhiệm vụ coi thi tại các hội đồng thi
+ Danh sách Lãnh đạo HĐCT tại các hội đồng thi
+ Qui mô các HĐCT
+ Thống kê độ tuổi trung bình của từng hội đồng thi
+ Tỉ lệ GV dạy cùng với môn thi tại một HĐCT
+ Tỉ lệ nam, nữ tại các hội đồng thi
+ Tỉ lệ GV THPT và THCS của các HĐCT
+ Tỉ lệ GV trên một phòng thi của các HĐCT
Trang 26c Chức năng tính toán
+ Tính tỉ lệ GT trên một phòng thi
+ Tính tỉ lệ nam/nữ của một HĐCT
+ Tính độ tuổi trung bình của HĐCT
+ Tính thông số lưu trữ cho các lớp ghép và ngược lại
d Chức năng chiết xuất
Đây là chức năng đưa các bảng dữ liệu ra ngoài chương trình ở một dạngtệp khác, tệp Excel bao gồm các kết quả sau:
+ Danh sách CB, GV, nhân viên là nhiệm vụ coi thi theo trường
+ Danh sách CB, GV, nhân viên là nhiệm vụ coi thi theo hội đồng
+ Danh sách HĐCT
+ Danh sách GV làm nhiệm vụ coi thi
+ Danh sách Lãnh đạo HĐCT
+ Qui mô HĐCT
+ Thống kê độ tuổi trung bình của từng hội đồng thi
+ Tỉ lệ GV dạy cùng với môn thi tại một HĐCT
+ Tỉ lệ nam/nữ
+ Tỉ lệ GV THPT và THCS của các HĐCT
+ Tỉ lệ GV trên một phòng thi của các HĐCT
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ương trình khác
1.4 CÁC CÔNG CỤ HỖ TRỢ HIỆN TẠI
Hiện nay ở Việt nam chưa có phần mềm phân công GT cho các HĐCT.Chỉ có một số phần mềm dùng để phân công GT coi thi tại phòng thi ở HĐCTcủa một số tỉnh, hay một số tổ chức khác nhưng hiệu quả không cao, khôngđáp ứng được yêu cầu của Sở GDĐT Quảng Bình Chỉ mới thực hiện theo
Trang 27Quy chế của Bộ GDĐT, chưa mang lại hiệu quả kinh tế cũng như việc ngănchặn các hiện tượng tiêu cực trong thi cử Các công cụ hỗ trợ xếp tay, bán tựđộng và tự động hoàn toàn, các giao diện tương tác cho phép quan sát, tư duy,tính toán trực tiếp với phần mềm; thuật toán xếp tự động và tối ưu hóa dữ liệuPCCT, in ấn, báo cáo, thống kê dữ liệu chưa đáp ứng nhu cầu của Sở GDĐTQuảng Bình.
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
Bài toán xếp lịch công việc nảy sinh từ nhiều vấn đề thực tế khác nhau:giao việc, gia công các chi tiết trên máy, đóng gói hàng hóa vào một hoặcnhiều thùng, xếp lịch thi đấu, lịch học tập, hành trình du lịch, chọn đối tượng
và phương án thi công, bài toán vận tải xếp hàng, điều hành xe, chọn địa điểmxây dựng nhà máy, kế hoạch sản xuất và các sản phẩm, xếp thời khóa biểucông việc, PCCT… Trong những dạng trên có nhiều bài chưa thể giải tối ưutrong thời gian cho phép (chỉ có thể chọn ra phương án tương đối thích hợpvới điều kiện dữ liệu cụ thể nào đó), nhiều bài toán dưới dạng tổng quát cònđược xếp vào lớp bài toán mở, đến nay chưa có thuật toán hữu hiệu để giải
Do đó, trong chương này tôi chỉ hạn chế dựa vào một số bài toán thường gặp
và nêu ra một cách giải thích hợp nhất để giải quyết bài toán PCCT tuyển sinhvào lớp 10 tại tỉnh Quảng Bình [7]
Từ những yêu cầu bức thiết của Sở GDĐT Quảng Bình nói riêng, các SởGDĐT toàn quốc nói chung, áp dụng công nghệ thông tin vào việc sắp xếpPCCT chưa được tốt, chúng tôi đã chọn kết hợp thuật toán cặp ghép và thuậttoán tham lam giải quyết bài toán PCCT tuyển sinh vào lớp 10 THPT
Trang 28Trong phần này chúng ta trình bày cơ sở lý thuyết của thuật toán cặpghép và thuật toán tham lam, giải pháp kết hợp của hai thuật toán này vàoviệc giải quyết bài toán PCCT tuyển sinh vào lớp 10 THPT.
- Nếu ta định hướng lại các 0_cạnh như sau: Những 0_cạnh chưa ghépcho hướng từ tập X sang tập Y, những 0_cạnh đã ghép cho hướng từ tập Y vềtập X
- Đường pha (Alternating Path) là một đường đi cơ bản xuất phát từ
một X_đỉnh chưa ghép đi theo các 0_cạnh đã định hướng ở trên Như vậy dọctrên đường pha, các 0_cạnh chưa ghép và những thuật toán trên đồ thị 0_cạnh
đã ghép xen kẽ nhau Vì đường pha chỉ là đường đi cơ bản trên đồ thị địnhhướng nên việc xác định những đỉnh nào có thể đến được từ x X bằng một
đường pha có thể sử dụng các thuật toán tìm kiếm trên đồ thị (BFS hoặc DFS) Những đỉnh và những cạnh được duyệt qua tạo thành một cây pha gốc
x
- 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 Như vậy: Đường đi trực tiếp từ một Xđỉnh chưa ghép tới một Y đỉnh chưa ghép qua một 0_cạnh chưa ghép cũng làmột đường mở Dọc trên đường mở, số 0_cạnh chưa ghép nhiều hơn số0_cạnh đã ghép đúng 1 cạnh
Trang 29b 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ường nê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, ta đượ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án tìm kiếmtrê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ằng một đườngpha}
* VisitedY = {Tập những Y_đỉnh có thể đến được từ x* bằng một đườngpha}
Gọi Δ là trọng số nhỏ nhất của các cạnh nối giữa một đỉnh thuộcVisitedX với một đỉnh không thuộc VisitedY Dễ thấy Δ > 0 bở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 xbằng một đường pha và (x, y) là một 0_cạnh nên x* cũng đến được y bằngmộ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ào trọ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ất phát ở x* chotới khi tìm ra đường mở
Trang 30Bước 3: Sau bước 2 thì mọi X_đỉnh đều được ghép, in kết quả về bộ
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ạn Fx[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 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ật toán tìmkiế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:
Trang 31Hoặc tìm được đường mở thì dọc theo đường mở, ta loại bỏ nhữngcạ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ằng một đườngpha}
- VisitedY = {Tập những Y_đỉnh có thể đến được từ x* bằng một đườngpha}
Đặt := min{c[i, j] - Fx[i] - Fy[j] X[i] VisitedX; Y[j] 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 ra đườngmở
Đáng lưu ý ở phương pháp Kuhn-Munkres là nó không làm thay đổi
ma trận C ban đầu Điều đó thực sự hữu ích trong trường hợp trọng số củacạnh (X[i], Y[j]) không được cho một cách tường minh bằng giá trị C[i, j]
mà lại cho bằng hàm c(i, j): trong trường hợp này, việc trừ hàng/cộng cộttrực tiếp trên ma trận chi phí C là không thể thực hiện được [4]
1.5.3 Thuật toán tham lam
a Khái niệm
Thuật toán tham lam (Greedy algorithm) nhằm giải quyết một bài toán
theo kiểu metaheuristic để tìm kiếm lựa chọn tối ưu địa phương ở mỗi bước đivới hy vọng tìm được tối ưu toàn cục Chẳng hạn áp dụng thuật toán tham lamvới bài toán hành trình của người bán hàng ta có giải thuật sau: “Ở mỗi bướchãy đi đến thành phố gần thành phố hiện tại nhất” Nói chung, giải thuật thamlam có năm thành phần:
1 Một tập hợp các ứng viên (candidate), để từ đó tạo ra lời giải
Trang 322 Một hàm lựa chọn, để theo đó lựa chọn ứng viên tốt nhất để bổ sungvào lời giải.
3 Một hàm khả thi (feasibility), dùng để quyết định nếu một ứng viên cóthể được dùng để xây dựng lời giải
4 Một hàm mục tiêu, ấn định giá trị của lời giải hoặc một lời giải chưahoàn chỉnh
5 Một hàm đánh giá, chỉ ra khi nào ta tìm ra một lời giải hoàn chỉnh Cóhai thành phần quyết định nhất tới quyết định tham lam:
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ểmhiện tại và sau đó giải bài toán con nảy sinh từ việc thực hiện lựa chọn vừarồ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ọntrước đó Nhưng nó không thể phụ thuộc vào một lựa chọn nào trong tươnglai hay phụ thuộc vào lời giải của các bài toán con Thuật toán tiến triển theokiểu thực hiện các chọn lựa theo một vòng lặp, cùng lúc đó thu nhỏ bài toán
đã cho về một bài toán con nhỏ hơn Đấy là khác biệt giữa thuật toán này vàthuật toán quy hoạch động Thuật toán quy hoạch động duyệt hết và luôn đảmbảo tìm thấy lời giải Tại mỗi bước của thuật toán, quy hoạch động đưa raquyết định dựa trên các quyết định của bước trước, và có thể xét lại đường đicủa bước trước hướng tới lời giải Thuật toán tham lam quyết định sớm vàthay đổi đường đi thuật toán theo quyết định đó, và không bao giờ xét lại cácquyết định cũ Đối với một số bài toán, đây có thể là một thuật toán khôngchính xác
Tính chất cấu trúc con tối ưu
Một bài toán được gọi là "có cấu trúc tối ưu", nếu một lời giải tối ưu củabài toán con chứa lời giải tối ưu của bài toán lớn hơn Đối với nhiều bài toán,thuật toán tham lam hầu như không cho ra lời giải tối ưu toàn cục (nhưng
Trang 33không phải luôn như vậy), vì chúng thường không chạy trên tất cả các trườnghợp Chúng có thể bám chặt lấy một số lựa chọn nhất định một cách quá sớm,điều này dẫn đến hậu quả là trong giai đoạn sau, các thuật toán này không thểtìm ra các lời giải toàn cục tốt nhất Ví dụ, đối với bài toán tô màu đồ thị vàtất cả các bài toán đầy đủ khác, không một thuật toán tham lam đã được biếtnào đảm bảo tìm thấy các lời giải tối ưu Tuy nhiên, các thuật toán này vẫnhữu ích vì chúng dễ thiết kế và cho ra các ước lượng tốt về lời giải tối ưu.Nếu có thể chứng minh rằng một thuật toán tham lam cho ra kết quả tối
ưu toàn cục cho một lớp bài toán nào đó, thì thuật toán thường sẽ trở thànhphương pháp được chọn lựa, vì nó chạy nhanh hơn các phương pháp tối ưuhóa khác như quy hoạch động Các ví dụ cho loại này là thuật toán Kruskal vàthuật toán Prim dành cho bài toán cây bao trùm nhỏ nhất, thuật toán Dijkstradành cho bài toán đường đi ngắn nhất nguồn đơn, và thuật toán tìm câyHuffman tối ưu [12]
b Thuật toán
Phương pháp
Giả sử nghiệm của bài toán có thể biểu diễn dưới dạng một vector (x1,
x2, xn) mỗi thành phần xi (i=1, 2, , n) được chọn ra từ tập Si Mỗi nghiệmcủa bài toán X= (x1, x2, …xn), được xác định độ tốt bằng một hàm f(X) và mục tiêu cần tìm nghiệm có giá trị f(X) càng lớn càng tốt (hoặc càng nhỏ càng tốt).
Tư tưởng của thuật toán tham lam như sau: ta xây dựng vector nghiệm Xdần từng bước, bắt đầu từ vector không ( ) Giả sử đã xây dựng được (k-1)thành phần (x1, x2, xk-1) của nghiệm và khi mở rộng nghiệm ta sẽ chọn xk tốtnhất trong các ứng cử viên trong tập Sk để được (x1, x2, xk) Việc lựa chọn nhưthế được thực hiện bởi một hàm chọn Cứ tiếp tục xây dựng cho đến khi xâydựng hết thành phần của nghiệm [3]
Cấu trúc tổng quát của thuật toán
Trang 34Thamlam(C:tập hợp các ứng cử viên)
//hàm trả về giải pháp tối ưu, gồm các ứng cử viên
Begin
S = Ø //S là giải pháp tối ưu
While ( C Ø và S chưa là giải pháp) do
X = chọn( C) // chọn x từ tập c theo tiêu chí của hàm chọn
và PCCT tuyển sinh vào lớp 10 THPT tại tỉnh Quảng Bình nói riêng Vì vậy,tôi chọn kết hợp thuật toán cặp ghép và thuật toán tham lam giải quyết bàitoán PCCT tuyển sinh vào lớp 10 THPT tại tỉnh Quảng Bình
Trang 35CHƯƠNG 2PHÂN TÍCH THIẾT KẾ HỆ THỐNG2.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
a Usecase “Quản lý người dùng”
Hành động của Actor Đáp ứng của hệ thống Dữ liệu liên quan
3 Thực hiện các thao tác để
quản lý thông tin người dùng
Danh sách ngườidùng
4 Cập nhật thông tinvào CSDL Sau đó hiểnthị thông báo các thaotác đã thực hiện thành
Danh sách ngườidùng
Trang 36Điều kiện rẽ nhánh và luồng dữ liệu thay thế:
- Khi CB quản lý PCCT nhập user/ password hoặc quyền đăng nhậpkhông chính xác
- Luồng dữ liệu thay thế: Hệ thống sẽ hiển thị thông báo lỗi cho người sửdụng hệ thống Sau đó yên cầu nhập lại hoặc đăng ký tài khoản
3 CB quản lý nhập các thông
tin cần cấu hình: Số PCT, số
TK trên một HĐCT …
4 Kiểm tra tính hợp lệcủa các thông tin Nếuhợp lệ thì cập nhật vàoCSDL Nếu không hợp
lệ thì hiện thông báo lỗi
và yêu cầu nhập lại
Danh sách thôngtin cấu hình
Điều kiện rẽ nhánh và luồng dữ liệu thay thế:
- Khi CB quản lý nhập user/password hoặc quyền đăng nhập khôngchính xác
- Luồng dữ liệu thay thế: Hệ thống sẽ hiển thị thông báo lỗi cho người sửdụng hệ thống Sau đó yên cầu nhập lại hoặc đăng ký tài khoản
- Điều kiện rẽ nhánh: Khi thông tin người dùng cập nhật không hợp lệ:Định dạng không chính xác, dữ liệu đã tồn tại …
Trang 37- Luồng dữ liệu thay thế: Hệ thống sẽ hiện thông báo lỗi cho CB quản lý,đồng thời ngừng việc cập nhật dữ liệu do CB quản lý nhập vào CSDL.
c Usecase “Quản lý Danh mục”
Hành động của Actor Đáp ứng của hệ thống Dữ liệu liên quan
có quyền thao tác
5 CB quản lý chọn loại
danh mục cần thao tác
6 Hiển thị đầy đủ cácthông tin có sẵn củadanh mục mà CBquản lý chọn
Danh sách HuyệnDanh sách MônDanh sách Loại GTDanh sách Trường họcDanh sách GV
Danh sách HuyệnDanh sách MônDanh sách Loại GTDanh sách Trường họcDanh sách GV
Danh sách Hội đồng
Trang 38cầu CB quản lý nhậplại.
Điều kiện rẽ nhánh và luồng dữ liệu thay thế:
- Khi CB quản lý nhập user/password hoặc quyền đăng nhập khôngchính xác
- Luồng dữ liệu thay thế: Hệ thống sẽ hiển thị thông báo lỗi cho người sửdụng hệ thống Sau đó yên cầu nhập lại hoặc đăng ký tài khoản
- Điều kiện rẽ nhánh: Khi thông tin người dùng cập nhật không hợp lệ:Định dạng không chính xác, dữ liệu đã tồn tại …
- Luồng dữ liệu thay thế: Hệ thống sẽ hiện thông báo lỗi cho CB quản lý,đồng thời ngừng việc cập nhật dữ liệu do quản lý nhập vào CSDL
d Usecase “Phân công CTHĐ”
Hành động của Actor Đáp ứng của hệ thống Dữ liệu liên quan
Danh sách GVDanh sách Trường họcDanh sách Hội đồngDanh sách Khoảng cách
5 CB quản lý thao tác
để phân công CTHĐ
Trang 396 Kiểm tra tính hợp lệcủa dữ liệu CB quản lýthao tác Cho phép CBquản lý thực hiện cáctác vụ phân công CT:
chọn danh sách CTHĐ,nhập trường đã coi thi,phân công CTHĐ
Danh sách GVDanh sách Trường họcDanh sách Hội đồngDanh sách Khoảng cách
Điều kiện rẽ nhánh và luồng dữ liệu thay thế:
- Khi CB quản lý nhập user/password hoặc quyền đăng nhập khôngchính xác
- Luồng dữ liệu thay thế: Hệ thống sẽ hiển thị thông báo lỗi cho người sửdụng hệ thống Sau đó yên cầu nhập lại hoặc đăng ký tài khoản
- Điều kiện rẽ nhánh: Khi các dữ liệu CB quản lý thao tác không hợp lý
- Luồng dữ liệu thay thế: Hệ thống sẽ hiển thông báo lỗi cho CB quản lý
e Usecase “Phân công Phó CTHĐ”
Hành động của Actor Đáp ứng của hệ thống Dữ liệu liên quan
đề nghị Phó CTHĐhoặc danh sách PhóCTHĐ đã phân công),
Danh sách GVDanh sách Trường họcDanh sách Hội đồngDanh sách Khoảng cách
Trang 40cho phép CB quản lý cóthể phân công PhóCTHĐ.
5 CB quản lý thao tác
để phân công Phó
CTHĐ
6 Kiểm tra tính hợp lệcủa dữ liệu CB quản lýthao tác Cho phép CBquản lý thực hiện cáctác vụ phân công PCT:
chọn danh sách PhóCTHĐ, nhập trường đãcoi thi, phân công PhóCTHĐ
Danh sách GVDanh sách Trường họcDanh sách Hội đồngDanh sách Khoảng cách