Nghiên cứu bài toán tô màu đồ thị và ứng dụng lập lịch thi trong đào tạo theo hệ thống tín chỉ

64 758 0
Nghiên cứu bài toán tô màu đồ thị và ứng dụng lập lịch thi trong đào tạo theo hệ thống tín chỉ

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

NGUYỄN VĂN LƯỢNG BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI ả NGUYỄN VĂN LƯỢNG LUẬN VĂN THẠC SĨ MÁY TÍNH NGHIÊN CỨU BÀI TOÁN TÔ MÀU ĐỒ THỊ VÀ ỨNG DỤNG LẬP LỊCH THI TRONG ĐÀO TẠO THEO HỆ THỐNG TÍN CHỈ LUẬN VĂN THẠC SĨ MÁY TÍNH KHÓA 2011 - 2013 HÀ NỘI, 2013 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI NGUYỄN VĂN LƯỢNG NGHIÊN CỨU BÀI TOÁN TÔ MÀU ĐỒ THỊ VÀ ỨNG DỤNG LẬP LỊCH THI TRONG ĐÀO TẠO THEO HỆ THỐNG TÍN CHỈ Chuyên ngành: Khoa học máy tính Mã số: 60 48 01 01 LUẬN VĂN THẠC SĨ MÁY TÍNH Người hướng dẫn khoa học: PGS TS Lê Huy Thập HÀ NỘI, 2013 LỜI CẢM ƠN Trước tiên, em xin gửi lời cảm ơn lòng biết ơn sâu sắc tới thầy giáo PGS TS Lê Huy Thập, người động viên, tận tình hướng dẫn giúp đỡ em nhiều kiến thức, kinh nghiệm trình thực đề tài Em xin chân thành cảm ơn thầy cô phòng Sau Đại học, thầy cô khoa Công nghệ thông tin, thầy cô thuộc Viện Công nghệ Thông tin Viện Khoa học Công nghệ Việt Nam, tất thầy cô Trường Đại học Sư phạm Hà Nội tạo điều kiện truyền đạt kiến thức quý báu cho em suốt trình học tập Xin chân thành cảm ơn anh, chị bạn học viên lớp Cao học K15KHMT- trường Đại học sư phạm Hà Nội động viên, giúp đỡ, nhiệt tình chia sẻ kinh nghiệm học tập công tác suốt khoá học Mặc dù cố gắng, song luận văn tránh khỏi thiếu sót, kính mong dẫn quý thầy cô bạn Hà Nội, tháng 12 năm 2013 Tác giả Nguyễn Văn Lượng LỜI CAM ĐOAN Tôi xin cam đoan số liệu kết nghiên cứu luận văn trung thực không trùng lặp với đề tài khác Tôi xin cam đoan giúp đỡ cho việc thực luận văn cảm ơn thông tin trích dẫn luận văn rõ nguồn gốc Hà Nội, tháng 12 năm 2013 Tác giả Nguyễn Văn Lượng MỤC LỤC MỞ ĐẦU Chương 1: CƠ SỞ LÝ THUYẾT 1.1 Tổng quan đơn đồ thị vô hướng hữu hạn 1.1.1 Đơn đồ thị vô hướng liên thông 1.1.2 Đồ thị phẳng 1.1.3 Đồ thị vô hướng đầy đủ màu đồ thị 1.2 Giới thiệu thuật toán tô màu 11 1.2.1 Thuật toán thu gọn (hòa nhập) đỉnh (Contraction Algorithm) 11 1.2.2 Thuật toán tô màu (Sequential Coloring) 14 1.2.3 Thuật toán duyệt theo chiều sâu có chặn nhánh 19 1.2.4 Thuật toán tham lam (Greedy Coloring) 20 1.3 Giới thiệu phương pháp lập lịch thi 22 1.3.1 Các phương pháp thông thường 22 1.3.2 Phương pháp lập lịch thi dựa vào tô màu đồ thị 22 1.4 Kết luận chương 26 Chương 2: ỨNG DỤNG LÝ THUYẾT ĐỒ THỊ VÀO LẬP LỊCH THI 27 2.1 Ma trận liền kề 27 2.2 Xác định đồ thị đầy đủ dựa vào ma trận liền kề 29 2.3 Tô màu đồ thị dựa vào ma trận liền kề 34 2.3.1 Thuật toán xếp đỉnh đơn đồ thị 34 2.3.2 Thuật toán tô màu đơn đồ thị với ma trận liền kề 35 2.4 Lập lịch thi 37 2.4.1 Đặt vấn đề 37 2.4.2 Bài toán lập lịch thi theo hệ thống tín 37 2.5 Kết luận chương 48 Chương 3: XÂY DỰNG ỨNG DỤNG LẬP LỊCH THI TRONG ĐÀO TẠO THEO HỆ THỐNG TÍN CHỈ 49 3.1 Ứng dụng lập lịch thi Trường Đại học Sư phạm Hà Nội 49 3.1.1 Phân tích, thiết kế UML 49 3.1.2 Các chức chương trình 50 KẾT LUẬN 56 TÀI LIỆU THAM KHẢO 57 DANH MỤC TỪ VIẾT TẮT RLF Recursive - Largest - First LF Largest First DSATUR Degree of Saturation BSC Backtracking Sequential Coloring MỞ ĐẦU Lý chọn đề tài Lập lịch biểu việc thiếu tổ chức hoạt động xã hội loài người Từ ngàn xưa, người thực việc lập kế hoạch cách ghi chép tay kí hiệu hay số liệu, thông tin vách đá, tre, vải giấy, … gọi chung sổ sách Ngày nay, với tiến xã hội, khoa học máy tính có bước tiến dài, đem lại tiện lợi hiệu kinh tế cao nhiều lĩnh vực từ công nghiệp đời sống Việc lập lịch biểu bắt đầu có giúp sức máy tính, giúp ghi nhớ số liệu lớn cách dễ dàng thuận lợi so với ghi chép tay sổ sách, vận chuyển Nhiều phần mềm máy tính có chức hỗ trợ lập lịch MS.Excel, MS.Project,… “thiếu thông minh” chúng làm cho người phải tiêu tốn nhiều thời gian công sức lập lịch Nhu cầu máy tính thông minh người trở thành thiết Các kỹ thuật mạnh mẽ công nghệ tri thức sớm cho đời cỗ máy có trí thông minh nhân tạo dạng hệ chuyên gia máy chẩn đoán bệnh, máy dự báo thời tiết, … dạng hệ tư vấn hỗ trợ người định nhiều tình vô hữu ích Từ đó, kỹ thuật hỗ trợ việc lập lịch biểu máy tính trở nên dễ dàng Thông thường, trường đại học, nhu cầu có công cụ hỗ trợ tự động lập lịch biểu cần thiết cho hai việc cụ thể: lập lịch giảng dạy (hay lịch công tác) lập lịch thi Tùy vào đặc thù nhu cầu trường mà trường tự xây dựng công cụ lập lịch thi cho riêng mình, công cụ xây dựng kỹ thuật khác nhằm đạt kết gần với mong muốn tốt Một số kỹ thuật thường dùng để giải toán lập lịch thi giải thuật di truyền, leo đồi, luyện thép, … Thế nhưng, qua khảo sát cho thấy sử dụng kỹ thuật kết toán nhiều hạn chế Vì thế, người hướng đến giải pháp cho kết toán lập lịch thi “tối ưu” Đề tài: “Nghiên cứu toán tô màu đồ thị ứng dụng lập lịch thi đào tạo theo hệ thống tín chỉ” tập trung nghiên cứu lý thuyết đồ thị mà cụ thể toán “Tô màu đồ thị”, qua tác giả đề xuất phương pháp lập lịch thi dựa thuật toán tô màu đồ thị Mục đích nghiên cứu Nghiên cứu thuật toán tô màu đồ thị Ứng dụng xây dựng chương trình lập lịch thi với tiêu chí: phân bổ thời gian cho môn học hệ môn thi sử dụng chung phòng thực hành không thi trùng nhau, thời gian rải cho môn lớp toàn thời gian Nhiệm vụ nghiên cứu Lưu tham số đơn đồ thị vô hướng hữu hạn vào sở liệu quan hệ, tô màu lập lịch biểu Đối tượng phạm vi nghiên cứu Lý thuyết đồ thị ngành khoa học phát triển từ lâu lại có nhiều ứng dụng đại Một đồ thị tập hợp đỉnh đường nối đỉnh gọi cạnh (cung) Tô màu đồ thị phép gán màu cho đỉnh cho hai đỉnh liền kề gán màu Bài toán lập lịch thi mô hình hóa thành toán tô màu đồ thị sau: lập đồ thị có đỉnh môn thi, hai môn thi kề có sinh viên thi hai môn Thời điểm thi môn biểu thị màu khác Những đóng góp đề tài Sự phát triển nhanh chóng giáo dục song song với phát triển mạnh mẽ công nghệ thông tin nói chung Trường Đại học Sư phạm Hà Nội nói riêng, đề tài nguyên cứu tác giả giúp phần tin học hóa công tác đào tạo cụ thể công tác lập lịch thi khoa Hiện khoa Trường Đại học Sư phạm Hà Nội lập lịch thi thủ công, Trợ lý giáo vụ khoa xếp tay file liệu excel word Với đề tài tác giả nghiên cứu thích hợp với thực tiễn sử dụng Trường Đại học Sư phạm Hà Nội Phương pháp nghiên cứu Nghiên cứu tài liệu, tìm hiểu thông tin Internet phương pháp lập lịch biểu Nghiên cứu thuật toán tô màu Ứng dụng lý thuyết tô màu đồ thị vào việc lập lịch biểu, xây dựng chương trình demo 43 tô Số lượng phòng thi sử dụng môn thi ảnh hưởng tới số lượng môn thi ca thi Cụ thể, ta lâpk lịch thi cho môn thi cần nhiều phòng thi (tức ta tô màu cho đỉnh chứa môn thi đó), số lượng phòng thi lại phục vụ thi ca thi giảm lượng số lượng phòng thi sử dụng Để thể điều này, thêm vào đỉnh ci đồ thị tham số CL(ci) với số lượng phòng thi cần thiết để tổ chức thi môn ci Đến đây, ta thiết lập giới hạn số lượng đỉnh đồng màu màu tô Np(CIJ) Sau tô màu cho nút ci ta tiến hành giảm giới hạn số lượng đỉnh đồng màu xuống lượng CL(ci) Giới hạn số lượng đỉnh đồng màu thiết lập người dùng, phụ thuộc vào số lượng giảng đường có khả đáp ứng cán coi thi cho phòng thi trường  Thuật toán lập lịch thi sử dụng tô màu đồ thị: Thuật toán gồm hai bước Bước thứ xây dựng đồ thị ma trận trọng số dựa liệu sinh viên - môn thi tham số đầu vào Bước tô màu cho đỉnh đồ thị xây dựng bước A Xây dựng ma trận trọng số đồ thị Dựa liệu lưu trữ danh sách sinh viên môn thi mà sinh viên tham gia thi, ta tiến hành xây dựng đồ thị G, môn thi tương ứng với đỉnh đồ thị, giá trị CL đỉnh số phòng thi cần sử dụng cho môn thi (dựa vào số sinh viên tham gia thi sức chứa phòng thi ta tính giá trị này) Với đỉnh, xác định tập hợp đỉnh kề với trọng số cạnh nối với đỉnh Điền giá trị trọng số w vào ma trận trọng số W Tạo đồ thị vô hướng sử dụng ma trận trọng số W 44 Xác định bậc cho đỉnh đồ thị B Tô màu đồ thị Sắp xếp đỉnh đồ thị G (trong ma trận trọng số) theo bậc giảm dần Các đỉnh bậc xếp dựa trọng số w lớn danh sách cạnh kề với đỉnh Với đỉnh có bậc trọng số w trên, việc xếp dựa thứ tự (ID) đỉnh (ưu tiên đỉnh có thứ tự nhỏ trước) C = danh sách đỉnh xếp đề cập bước 1; Num_Of_Colored_Courses =0; // Số lượng đỉnh tô màu Num_Of_Courses=|V|; // Số lượng môn thi for (i=1; i ≤ C.length; i++){ if (Num_Of_Colored_Courses == Num_Of_Courses{// tô hết đỉnh break; // Thoát khỏi vòng lặp kết thúc thuật toán } if (ci chưa tô màu){ if (i==1){ Rab = get_First_Node_Color(ci); // lấy màu tô cho ci If (Rab==null) exit; // không tìm lịch khả thi } else{ Rab=get_Smallest_Available_Color(ci); // lấy màu nhỏ tô cho ci } if (Rab!= null){ Color(ci)= Rab; // tô màu cho ci Num_Of_Colored_Courses++; // tăng số màu cần dùng lên 45 CL(Rab)=CL(Rab) – CL(ci); // giảm số lượng phòng thi cho ca thi } } M=tập hợp đỉnh (môn thi) kề với đinh ci thứ tự theo bậc; for (j=1; j ≤ M.length; j++){ if (Mj chưa tô){ Rcd=get_Smallest_Available_Color(Mj); if (Rcd !=null){ Color(Mj) = Rcd; Num_Of_Colored_Cources++; CL(Rcd) = CL(Rcd) – CL(Mj); } } } }  Một số hàm thủ tục sử dụng thuật toán: Thủ tục “get_First_Node_Color”: Đầu vào: môn thi ci cần tô màu Đầu ra: đưa màu tô cho ci null Thuật toán: for (j=1; j ≤ Max_Schedule_Days; j++) for (k=1; k ≤ Num_Of_Time_Slots; k++){ if (CL(Colorjk) ≥ CL(ci) return Colorjk; return null; } Thủ tục “get_Smallest_Available_Color”: Đầu vào: môn thi ci cần tô màu 46 Đầu ra: màu tô cho ci null Thuật toán: AL(ci) = danh sách đỉnh kề với đỉnh ci; for (j=1; j ≤ Max_Schedule_Days; j++){ for (k=1; k ≤ Num_Of_Time_Slots; k++){ Valid = true; for (r=1; r ≤ Length(AL(ci)); r++){ Ref= Color(ALr); if (Ref !=null){ if ((e!=j) || (f!=k)){ if ( D2{(Ref), (Rjk)} ≤ 1){ if ( D1{(Ref), (Rjk)} ≤ 1){ Valid=false; Exit loop; } } if (CL(Rjk) ≤ CL(ci)){ Valid=false; Exit loop; } if (Check_3Exams_Constraint(ci,Rjk,j) ==false) { Valid=false; Exit loop; } } else{ Valid=false; 47 Exit loop; } } else break; } if (Valid ==true) return Rjk; } } return null; Thủ tục “Check_3Exams_Constraint”: Đầu vào: - môn thi ci cần tô màu - Màu Rjk cần phải kiểm tra - Ngày j cho Colorkd Đầu ra: trả giá trị true màu tô, ngược lại trả false Thuật toán: Si= danh sách sinh viên tham gia thi môn ci; for (r=1; r ≤ Length(Si); r++){ Counter=0; for (q=1; q ≤ Num_Of_Time_Slots; q++){ CRSRjq= danh sách môn thi tô màu Rjq; for (u=1; u ≤ Length(CRSRjq); u++){ Su= danh sách sinh viên tham gia thi môn cu; if (Sir  Su){ Counter++; if (Counter==2) return false; } } 48 } } return true; Từ thuật toán thu thông tin để lập lịch thi sau: Phải bố trí Num_Of_Time_Slots khoảng thời gian thi không chồng chéo Tại khoảng thời gian thi q; ≤ q ≤ Num_Of_Time_Slots có k = Length(CRSRjq) môn thi thi Danh sách sinh viên tham gia thi S u uk 1 2.5 Kết luận chương Trong chương này, tác giả tập trung nghiên cứu “Ứng dụng lý thuyết đồ thị việc lập lịch thi” Cụ thể đây, tác giả nghiên cứu cách biểu diễn lưu trữ đồ thị dạng ma trận liền kề, ưu nhược điểm Tiếp đến, tác giả trình bày thuật toán xác định đồ thị đầy đủ dựa ma trận liền kề phương pháp tô màu đồ thị dựa vào ma trận liền kề Việc xác định đồ thị đầy đủ phục vụ cho thuật toán tô màu đồ thị Một đồ thị đầy đủ có kích thước k - lớn (nhiều đỉnh nhất) k cận số màu cần tô đồ thị Nếu ta tìm phương án tô đồ thị với k màu rõ ràng phương án tối ưu toán tô màu đồ thị Trong chương này, tác giả trình bày chi tiết toán lập lịch thi theo hệ thống đào tạo tín Với ràng buộc đưa vào phân tích, tác giả đề xuất phương pháp lập lịch thi dựa thuật toán tô màu đồ thị Trong chương tiếp theo, tác giả vận dụng phương pháp để xây dựng ứng dụng “Lập lịch thi cho trường Đại học Sư phạm Hà Nội 2” để đánh giá cách xác kết mức độ hiệu thuật toán 49 Chương 3: XÂY DỰNG ỨNG DỤNG LẬP LỊCH THI TRONG ĐÀO TẠO THEO HỆ THỐNG TÍN CHỈ 3.1 Ứng dụng lập lịch thi Trường Đại học Sư phạm Hà Nội 3.1.1 Phân tích, thiết kế UML Hệ thống có tác nhân (Actor) là: - Giảng viên: cung cấp liệu sinh viên học môn học giảng dạy - Phòng Tài vụ: cung cấp liệu sinh viên chưa nộp học phí nộp học phí muộn so với thời gian quy định Những sinh viên không phép thi 50 - Sinh viên: đăng ký học học phần học kỳ - Phòng Đào tạo: cung cấp liệu môn thi chung môn thi liên thông ngang ngành học, liệu ngày thi (từ ngày … đến ngày …), công văn xếp lịch thi - Khoa: cung cấp liệu môn thi khoa phụ trách Hệ thống có chức (được thể Use case hình vẽ): - Xử lý liệu đầu vào: xử lý liệu sinh viên dự thi - Lập lịch thi: thực lập lịch thi - Xem lịch thi: thực lập lịch thi xong, cho phép xem lịch thi - In lịch thi: thực lập lịch thi xong, cho phép in lịch thi 3.1.2 Các chức chương trình 3.1.2.1 Giao diện chương trình Hình 3.1 Mẫu giao diện chương trình 51 3.1.2.2 Chức quản lý bậc học Hình 3.2 Mẫu quản lý bậc học Chức cho phép người sử dụng nhập tên bậc học vào textbox để thêm vào danh sách nút xóa sau tên bậc học danh sách cho phép xóa bậc học không quản lý nữa, để hoàn tất cài đặt Bậc học, nhấn lưu để lưu lại thay đổi, ngược lại nhấn thoát để thoát 3.1.2.3 Chức quản lý phòng học Hình 3.3 Mẫu quản lý phòng thực hành Tương tự chức quản lý bậc học, chức quản lý phòng học cho phép người dùng nhập tên phòng học, sức chứa phòng, nút xóa để xóa phòng không quản lý nữa, nút lưu để hoàn tất 52 trình cài đặt, nút thoát để thoát khỏi cài đặt mà không lưu lại thay đổi 3.1.2.4 Chức quản lý thời gian Hình 3.4 Mẫu quản lý thi Chức quản lý thời gian thi cho phép người dùng chọn ngày bắt đầu ngày kết thúc mùa thi, click vào lấy ngày chương trình tự động lấy thi khoảng thời gian với quy tắc ngày có ca thi để đưa vào danh sách, thi danh sách có nút xóa để xóa thuộc cấm 3.1.2.5 Chức chọn nhóm Hình 3.5 Mẫu chọn nhóm cho môn thi 53 Chức chọn nhóm lấy danh sách môn thi đưa vào chương trình, từ cho phép người dùng chọn nhóm thủ công cho môn thi cách click chuột vào nút chọn môn thi để thêm nhóm cho môn thi chọn tự động, để chương trình tự động xếp nhóm cho môn thi 3.1.2.6 Chức chọn phòng Hình 3.6 Mẫu chọn phòng thực hành Chức tự động lọc môn thi có hình thức thi thực hành, vấn đáp lên form CHỌN PHÒNG THI để thực gán phòng thi cho môn thi, nút chấp nhận để lưu lại thay đổi người dùng hủy để thoát khỏi cài đặt mà không lưu lại thay đổi 54 3.1.2.7 Chức xếp lịch Hình 3.7 Mẫu xếp lịch thi Sau chọn nhóm phòng thực hành cho môn thi, người dùng nhấp vô nút Xếp Lịch để chương trình tự động gắn thời gian thi cho môn thi 3.1.2.8 Chức đăng ký tài khoản, đổi mật a Chức đăng ký tài khoản mật Hình 3.8 Mẫu đăng kí tài khoản 55 Nếu chương trình chạy lần đầu tiên, chưa có thông tin người sử dụng chương trình có phép người dùng tạo tài khoản hệ thống lần sử dụng sau bắt buộc phải đăng nhập để sử dụng chương trình b Chức đổi mật Hình 3.9 Mẫu đổi mật Chức cho phép người dùng thay đổi mật trình sử dụng để bảo đảm an toàn thông tin 3.1.2.9 Chức lưu kết file excel Sau xếp lịch, chương trình cho phép lưu kết lại dạng file excel để tiện xem lại 3.1.2.10 Chức in ấn Sau xếp lịch chương trình cho phép in kết xếp lịch 56 KẾT LUẬN Kết đạt Qua trình nghiên cứu thực luận văn, đạt số kết sau: Với thân hệ thống số kiến thức Lý thuyết đồ thị hiểu sâu toán tô màu đồ thị Đưa phương pháp vận dụng: từ lý thuyết thuật toán tô màu đồ thị, đề xuất thuật toán lập lịch thi với môn thi nút, thời điểm thi màu tô Xây dựng ứng dụng lập lịch thi triển khai cho khoa Trường Đại học Sư phạm Hà Nội Hướng phát triển Một số chức chương trình chưa thực tối ưu hóa Trong thời gian tới, báo cáo chương trình nghiên cứu để phát triển thêm số chức năng:  Cải tiến chương trình cho việc xếp lịch tự động hoàn toàn: tự động phân nhóm, tự động xếp phòng thực hành phần bổ thời gian thi cho lớp học  Bổ sung chức tổ chức thi: lọc sinh viên không đủ điều kiện dự thi, lập danh sách thi học phần theo lịch thi  Bổ sung chức tra cứu lịch thi: tra cứu lịch thi theo tiêu chí theo ngày thi theo mã môn học 57 TÀI LIỆU THAM KHẢO [1] Nguyễn Văn Ba, Phát triển hệ thống hướng đối tượng với UML, Đại học Bách Khoa hà Nội, 2004 [2] Đỗ Đức Giáo, Toán rời rạc, NXB Đại học Quốc gia Hà Nội, 2000 [3] Đỗ Xuân Lôi, Cấu trúc liệu giải thuật, NXB Khoa học Kỹ thuật, 1996 [4] Nguyễn Đức Nghĩa-Nguyễn Tô Thành, Toán rời rạc, NXB Đại học Quốc gia Hà Nội, 2003 [5] Lưu Thị Thảo, (HD) TS.Lê Huy Thập, Nghiên cứu "Phương pháp bôi màu đơn đồ thị đề xuất hướng ứng dụng", Báo cáo thực tập chuyên ngành Viện CNTT, Viện khoa học công nghệ Việt Nam, tháng năm 2006 [6] Lê Huy Thập, Giáo trình kỹ thuật lập trình, Tập 1, NXB Khoa học tự nhiên công nghệ, 10/2008 [7] Kenneth H.Rosen, Toán rời rạc ứng dụng tin học, NXB Khoa học Kỹ thuật [8] Sổ tay dành cho sinh viên, Quy định đào tạo đại học theo hệ thống tín chỉ, Trường Đại học Sư phạm Hà Nội 2, 2012

Ngày đăng: 23/11/2016, 21:00

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan