Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 57 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
57
Dung lượng
1,17 MB
Nội dung
1 MỤC LỤC Trang LỜI CẢM ƠN Em xin chân thành cảm ơn Ban Giám hiệu, Phòng Đào tạo Sau Đại học, Khoa Công nghệ Thông tin Trường Đại học công nghệ thông tin truyền thông Thái Nguyên tận tình giúp đỡ, tạo điều kiện thuận lợi cho em trình học tập, nghiên cứu thực luận văn Đặc biệt, em xin gửi lời tri ân sâu sắc đến GS TS Đặng Quang Á – người dành nhiều thời gian, công sức tận tình hướng dẫn khoa học cho em suốt trình hình thành hoàn chỉnh luận văn Xin chân thành cảm ơn Quý Thầy, Cô giảng dạy, truyền đạt cho em tri thức quý báu, thiết thực suốt khóa học Cuối xin bày tỏ lòng biết ơn gia đình, người thân, bạn bè, đồng nghiệp giúp đỡ, động viên, đóng góp ý kiến quý báu cho em việc hoàn thành luận văn Thái Nguyên, ngày tháng năm 2014 Tác giả Nguyễn Anh Văn LỜI CAM ĐOAN Tôi xin cam đoan công trình nghiên cứu riêng hướng dẫn trực tiếp GS.TS Đặng Quang Á Mọi trích dẫn sử dụng báo cáo ghi rõ nguồn tài liệu tham khảo theo qui định Mọi chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, xin chịu hoàn toàn trách nhiệm Thái Nguyên, ngày tháng Tác giả Nguyễn Anh Văn năm 2014 DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT Ký hiêu Từ viết tắt V Tập đỉnh đồthị E Tập cạnh đồthị G=(V,E) Đồthị G với tập đỉnh V, tập cạnh E G=(V,E,A) Đồthị G với tập đỉnh V, tập cạnh E, tập cung A e = (u,v) e cạnh đồ thị, u,v đỉnh deg(v) Bậc đỉnh v deg-(v), deg+(v) Bán bậc vào, bán bậc đỉnh v P Polynomial NP Nondeterministic Polynomial NP-C Nondeterministic Polynomial-Complete NP-Hard Nondeterministic Polynomial-Hard NTM Nondeterministic Turing Machine DTM Deterministic Turing Machines Diễn giải DANH MỤC BẢNG Trang Bảng 1.1 Liệt kê tất đỉnh kề với đỉnh đồthị Bảng 1.2 Biểu diễn đồthị có hướng hình 1.10 Bảng 2.1: Sắp xếp cạnh theo thứ tự trọngsố tăng dần 12 12 23 DANH MỤC HÌNH Trang Hình 1.: Đồthị vô hướng Hình 1.2: Đồthị có hướng Hình 1.3: Đa đồthị Hình 1.4: Đồthị hỗn hợp Hình 1.5 Đồthị có hướng Hình 1.6 Đường đồthị vô hướng Hình 1.7 Đường đồthị có hướng Hình 1.8 Đồthị liên thông G đồthị H gồm thành phần liên thông H1, H2, H3 Hình 1.9 Đơn đồthị Hình 1.10 Đồthị có hướng Hình 1.11 Đơn đồthị Hình 1.12 Giả đồthị Hình 1.13 Đồthị vô hướng Hình 1.14 Mô hình phân lớp toán Hình 2.1 Đồthị có trọngsố biểu thị tiền thuê bao hàng tháng đường truyền thông mạng máy tính Hình 2.2 Đồthị có trọngsố G Hình 2.3 Đơn đồthị có trọngsố Hình 2.4 Dùng thuật toán Dijsktra tìm đường ngắn từ đỉnh a tới đỉnh z Hình 2.5 Đồthị vô hướng Hình 2.6 Đơn đồthị Hình 2.7 Hai đồ Hình 2.8 Các đồthị đối ngẫu đồ hình 2.7 Hình 2.9 Đồthị đơn G H Hình 2.10 Đồthị G H tô màu Hình 2.11 Tô màu đồthị vô hướng Hình 3.1 Bảng danh sách môn thi Hình 3.2 Đồthị biểu diễn môn thi Hình 3.3 Đồthị môn thi lên lịch Hình 3.4 Mẫu quản lý bậc học Hình 3.5 Mẫu quản lý phòng thực hành Hình 3.6 Mẫu quản lýthi Hình 3.7 Mẫu chọn nhóm cho môn thi Hình 3.8 Mẫu chọn phòng thực hành Hình 3.9 Mẫu xếp lịch thi 5 10 11 11 12 13 14 15 19 20 22 25 30 32 35 36 37 38 39 40 41 44 45 53 53 54 54 55 56 56 57 Hình 3.10 Mẫu đăng kí tài khoản Hình 3.11 Mẫu đăng nhập hệ thống Hình 3.12 Mẫu đổi mật 57 MỞ ĐẦU Lý chọn đề tài Trong vài trăm năm qua người đạt nhiều thành tựu khoa học, thành tựu bùng nổ ngành khoa học máy tính Sự phát triển kỳ diệu máy tính kỷ gắn liền với phát triển toán học đại, toánrờirạcToán học rờirạc nghiên cứu cấu trúc có tính chất rờirạc không liên tục Toánrờirạc bao gồm lĩnh vực quan hệ, lýthuyếtđồ thị, logic toán, ngôn ngữ hình thức Tronglýthuyếtđồthị phận trọng tâm với nhiều khối lượng kiến thức lý thú nghiên cứu nhiều Toánrờirạc nói chung lýthuyếtđồthị nói riêng công cụ thiết yếu cho nhiều ngành khoa học kỹ thuật, thành phần quan trọng học vấn sinh viên ngành kỹ thuật Lýthuyếtđồ thị, với cách tiếp cận đối tượng nghiên cứu phương pháp tư độc đáo thực ngày hữu ích có nhiều ứng dụng phong phú gây không bất ngờ Lýthuyếtđồthị lĩnh vực nghiên cứu có ý nghĩa thực tiễn cao lâu Những tư tưởng lýthuyếtđồthị đề xuất vào năm đầu kỷ 18 nhà toán học lỗi lạc người Thụy Sỹ: Leonhard Euler Chính ông người sử dụng đồthị để giải toán tiếng cầu thành phố Konigberg Một cách không thức, đồthị tập đối tượng gọi đỉnh (hoặc nút) nối với cạnh (hoặc cung) Cạnh có hướng vô hướng Đồthị thường vẽ dạng tập điểm (các đỉnh nối với đoạn thẳng (các cạnh) Có nhiều loại đồthị nghiên cứu cây, đồthị ngẫu nhiên, đồthị có hướng vô hướng, đồthịtrọngsốtrọngsố Tuy nhiên, việc tính toánđồthị thường cần khối lượng tính toán không gian nhớ lớn,vì gần với phát triển mạnh mẽ kỹ thuật máy tính điện tử, toántốiưuđồthị ngày quan tâm đạt nhiều kết khả quan Ngày nay, với phát triển mạnh mẽ khoa học công nghệ, đặc biệt máy tính, người ta có khả giải nhiều toán phức tạp Tuy nhiên, vấn đề “không giải được” cho dù kỹ thuật máy tính có phát triển có vấn đề xem “quá phức tạp”, vượt khả tính toán thực tế nhiều thời gian Việc nghiên cứu độ phức tạp thuật toán cho phép phân loại lớp toán theo mức độ phức tạp khác nhau, ranh giới lớp toán giải lớp toán giải thời gian đa thức Trong khuôn khổ luận văn thạc sỹ, chọn đề tài “Một sốtoántốiưurờirạclýthuyếtđồ thị” nhằm nghiên cứu lýthuyếtđồ thị, độ phức tạp thuật toán Đối tượng nghiên cứu Tìm hiểu tổng quan tốiưurời rạc, sốtoántốiưu thuộc lớp P , NP-C lýthuyếtđồthị Phạm vi nghiên cứu Luận văn nghiên cứu kiến thức chung tốiưurờirạclýthuyếtđồ thị, tập trung vào sốtoántốiưu thuộc lớp P, NP-C lýthuyếtđồthị thuật giải chúng Nhiệm vụ nghiên cứu Tìm hiểu chung tốiưurờirạclýthuyếtđồthị Tìm hiểu sốtoántốiưu thuộc lớp P (Polynomial) lýthuyếtđồthị thuật giải - Tìm hiểu sốtoántốiưu thuộc lớp NP-hard lýthuyếtđồthị thuật giải - Cài đặt thuật toán thử nghiệm Những nội dung nghiên cứu - Bố cục luận văn gồm phần mở đầu trình bày lý chọn đề tài, đối tượng nhiệm vụ nghiên cứu đề tài Chương một, tập trung trình bày số kiến thức lýthuyếtđồthịtoán NP-C Chương hai, trình bày sốtoántốiưu lớp P đồthị Chương 3, sốtoántốiưu thuộc lớp NP-C đồ thị, chương trình bày phần cài đặt chương trình ứng dụng Với kết đạt được, phần cuối luận văn nêu tính hiệu nghiên cứu, đánh giá thuật toán nêu vài đề xuất nhằm tốiưu thuật toán, đánh giá kết đạt được, hạn chế đề xuất hướng nghiên cứu đề tài Phương pháp nghiên cứu - Phương pháp đọc tài liệu - Phương pháp quan sát - Phương pháp phân tích – tổng hợp lýthuyết - Phương pháp thực nghiệm 10 Chương 1: MỘTSỐ KIẾN THỨC CƠ BẢN VỀ LÝTHUYẾTĐỒTHỊ CÁC BÀITOÁN NP-C 1.1 Các khái niệm đồthị Định nghĩa đồthịTrongtoán học tin học, đồthị đối tượng nghiên cứu lýthuyếtđồthịMột cách không thức, đồthị tập đối tượng gọi đỉnh nối với cạnh Thông thường, đồthị vẽ dạng tập điểm (đỉnh, nút) nối với đoạn thẳng (cạnh) Tùy theo ứng dụng mà số cạnh có hướng Chúng ta phân biệt loại đồthị khác kiểu số lượng cạnh nối hai đỉnh đồthị Định nghĩa 1.1 [3] Đơn đồthị vô hướng G=(V, E) bao gồm V tập đỉnh, E tập cặp thứ tự gồm hai phần tử khác V gọi cạnh Hình 1.: Đồthị vô hướng Định nghĩa 1.2.[3] Đa đồthị vô hướng G=(V, E) bao gồm V tập đỉnh, E họ cặp thứ tự gồm hai phần tử khác V gọi cạnh Hai cạnh e1 e2 gọi cạnh lặp chúng tương ứng với cặp đỉnh Định nghĩa 1.3.[3] Đơn đồthị có hướng G=(V, E) bao gồm V tập đỉnh, E tập cặp có thứ tự gồm hai phần tử khác V gọi cung Hình 1.2: Đồthị có hướng Định nghĩa 1.4 [3] Đa đồthị có hướng G=(V, E) bao gồm V tập đỉnh, E họ cặp có thứ tự gồm hai phần tử khác V gọi cung Hai cung e1 e2 gọi cung lặp chúng tương ứng với cặp đỉnh 43 Chương ÁP DỤNG THUẬT TOÁN TÔ MÀU ĐỒ THỊ, XÂY DỰNG CHƯƠNG TRÌNH XẾP LỊCH THI CHO KHOA KHOA HỌC CƠ BẢN CỦA TRƯỜNG CAO ĐẲNG NGHỀ CƠ GIỚI NINH BÌNH 3.1 Nghiệp vụ xếp lịch thi Khoa Khoa học Vào cuối học kỳ năm học, giáo vụ Khoa Khoa học phải lên lịch thủ công Excel cho nhiều học phần học kì bảng sau: Hình 3.1 Bảng danh sách môn thi Với 50 học phần học kì xếp lịch thủ công thời gian dễ có sai sót Vì với phát triển công nghệ thông tin việc xếp lịch thi cần thiết phải tin học hóa 3.2 Mối liên quan tô màu đồthị xếp lịch thi Tô màu đồthị có nhiều ứng dụng, có ứng dụng cho việc xếp lịch thi Thật ta phát biểu toán xếp lịch thi sau: xếp lịch thi gán thời gian thi cho học phần, cho sinh viên phải thi nhiều môn thời điểm Mối liên quan tô màu đồthị xếp lịch thi rõ ràng, tô màu đồthị gồm có yếu tố: tập đỉnh, tập cạnh tập màu tô Xếp lịch thi bao gồm: môn thi, sinh viên thời điểm thi Từ ta chuyển toán xếp lịch thi thành toán tô màu đồthị sau: môn thi xem đỉnh đồ thị, môn thi kề môn có sinh viên đăng kí học ( không tô màu hay nói cách khác không thi thời điểm) từ nói sinh viên cạnh nối môn mà họ học, thời điểm thi xem tập màu tô Xây dựng thuật toán xếp lịch thi dựa thuật toán tô màu đồthị Input: Danh sách môn thi, danh sách thời gian thi, danh sách phòng thực hành, danh sách nhóm 44 Output: Danh sách môn thi lên lịch, môn thực hành phải gán phòng thực hành Các bước thực hiện: B1: Gom nhóm môn thi theo nhóm cho môn không thi trùng thành nhóm (các môn cao đẳng, môn trung cấp, môn sử dụng chung phòng thi viết, vấn đáp thực hành,….) B2: Xếp phòng thực hành môn thi thực hành B3: Thiết lập đồthị cho toàn môn thi: hai môn thi nhóm nối với B4: Áp dụng thuật toán tô màu đồthị để gán thời điểm thi cho môn thi: B4.1: Lập danh sách môn thi theo thứ tự giảm bậc, đặt i=1, với i thứ tự thời điểm thi B4.2: Gán thời điểm thi thứ i cho môn đầu tiên, duyệt môn gán thời điểm thứ i cho môn chung cạnh với môn gán thời điểm thứ i B4.3: Nếu gán xong thời điểm thi cho môn dừng thuật toán, lịch thi xếp i thời điểm, ngược lại chuyển sang B4.4 B4.4: Xóa khỏi danh sách môn thi xếp lịch, lập lại danh sách với môn thi chưa lên lịch với thứ tự bậc giảm dần, đặt i=i+1; quay lại B4.2 Ví dụ: Xếp lịch thi cho môn sau: Mạng máy tính, hệ cao đẳng, thi máy Toánrời rạc, hệ cao đẳng, thi tự luận Lập trình web, hệ trung cấp, thi máy Phát triển ứng dụng web với ASP.NET, hệ cao đẳng, thi máy Kiến trúc tổ chức máy tính, hệ trung cấp, thi tự luận Tin học sở, hệ trung cấp, thi máy Chuyên đề 1, hệ trung cấp, thi tự luận Với phòng thực hành: A6.MT, A21.3 Thời gian thi: 7h-15/10, 9h-15/10, 13h-15/10, 15h-15/10, 7h-16/10, 9h16/10 Xếp lịch: B1: phân nhóm + Nhóm cao đẳng: Toánrời rạc(2) + Nhóm trung cấp: Kiến trúc tổ chức máy tính(5), Chuyên đề 1(7) + Nhóm cao đẳng, thực hành: Mạng máy tính(1), Phát triển ứng dụng web với ASP.NET(4) + Nhóm trung cấp, thực hành: Lập trình web(3), Tin học sở(6) B2: gán phòng cho môn thực hành + Mạng máy tính(1): phòng A21.3 + Phát triển ứng dụng web với ASP.NET(4): phòng A6.MT 45 + Lập trình web(3): phòng A6.MT + Tin học sở(6): phòng A21.3 B3: tạo đồthị tương ứng với môn học Hình 3.2 Đồthị biểu diễn môn thiSố đỉnh số thứ tự môn thi B4: áp dụng thuật toán tô màu đồthị để tiến hành xếp lịch thi cho môn B4.1: tạo danh sách môn theo bậc giảm dần E’=(3,6,1,4,5,7,2), đặt i=1; B4.2: lấy thi thứ xếp cho môn thứ (3), duyệt danh sách xếp cho môn thứ (1) B4.3: môn chưa xếp lịch xong, chuyển sang B4.4 B4.4: loại bỏ môn (3) (1) khỏi danh sách, xếp lại E’ ta E’=(6,4,5,7,2), tăng i=2, trở B4.2 B4.2: lấy thi thứ hai xếp cho môn thứ (6), duyệt danh sách xếp cho môn thi thứ (4) B4.3: môn chưa xếp lịch xong, chuyển sang B4.4 B4.4: loại bỏ môn (6) (4) khỏi danh sách, xếp lại E’ ta E’=(5,7,2), tăng i=3, trở B4.2 B4.2: lấy thi thứ xếp cho môn thi thứ (5), duyệt môn danh sách xếp cho môn thứ (2) B4.3: môn chưa xếp lịch xong, chuyển sang B4.4 B4.4: loại bỏ môn (5) (2) danh sách, xếp lại E’ ta E’=(7), tăng i=4, quay lại B4.2 B4.2: lấy màu thứ tư xếp cho môn thi thứ (7) B4.3: môn thi xếp lịch, dừng thuật toán, cần dùng thi để xếp lịch cho môn thi 46 Hình 3.3 Đồthị môn thi lên lịch 3.3 Xây dựng chương trình xếp lịch thi Cài đặt bước thuật toán: Trong chương trình sử dụng khái niệm sau: Có nhóm thi: Cao đẳng; Trung cấp; nhóm thực hành, vấn đáp, thi máy; nhóm thi lại - Các nhóm Cao đẳng nối với - Các nhóm Trung cấp nối với - Các nhóm thực hành, vấn đáp, thi máy dùng chung phòng nối với (số lượng phòng thực hành có hạn ) Bước 1: Gom nhóm môn thi theo nhóm cho môn không thi trùng thành nhóm (các môn cao đẳng, môn trung cấp, môn thực hành sử dụng chung phòng thực hành,….) Bước 2: Xếp phòng thực hành môn thi thực hành Bước 3: Thiết lập đồthị cho toàn môn thi: hai môn thi nhóm nối với ( Cài đặt bước hàm sau) DanhSachMonThi DsMonThi() { DanhSachMonThi Dsmt = newDanhSachMonThi(newList()); foreach (DataGridViewRow r in grwDanhSach.Rows) if (Convert.ToString(r.Cells["NHÓM"].Value) != "") //Duyệt qua tất môn thi mà xét thuộc hệ (Cao đẳng, Trung cấp ) { MonThi mt = newMonThi(Convert.ToString(r.Cells["MÃ HP"].Value)); // Với môn, tạo đối tượng môn học 47 string phong1 =Convert.ToString (((DataGridViewTextBoxCell) r.Cells["PHÒNG"]).Value); // xem môn xếp vào phòng string nhom1 = Convert.ToString(r.Cells["NHÓM"].Value); // vào thuộc nhóm thi (cao đẳng hay trung cấp) if (phong1 != "") // không xếp phòng phòng thi máy mt.DungPhongMay = true; foreach (DataGridViewRow r2 in grwDanhSach.Rows) //Duyệt qua danh sách môn học lần nữa, tìm môn học hệ với môn học xét cho vào danh sách láng giềng { if (r2.Index != r.Index) //những môn học "khác" có nghĩa không xét { string nhom2 = Convert.ToString(r2.Cells["NHÓM"].Value); // xem môn thuộc nhóm string phong2 = Convert.ToString(((DataGridViewTextBoxCell) r2.Cells["PHÒNG"]).Value); // thuộc phòng if (DuLieu.KiemTraTrung(nhom1, nhom2) || DuLieu.KiemTraTrung(phong1, phong2)) // chung hệ , khác hệ mà chung phòng, ta xét cho láng giềng mt.ThemMonCungNhom(Convert.ToString(r2.Cells[1].Valu e)); // xét cho môn r2 láng giềng môn r1 } } Dsmt.ds.Add(mt); // thêm r1 vào danh sách môn thi } return Dsmt; // duyệt qua tất dòng ta trả danh sách môn thi với đầy đủ thông tin môn thi láng giềng } Bước 4: Áp dụng thuật toán tô màu đồthị để gán thời điểm thi cho môn thi: Sau có danh sách môn thi rồi, ta tiến hành thực xếp lịch Input cho lịch thi list môn cần xếp list thithi privatevoid btnXepLichThi_Click(object sender, EventArgs e) 48 { LenLichThi llt = newLenLichThi(DsMonThi(), GioThi.GetAll);//Tạo đối tượng xếp lịch thi với đầy đủ input if (llt.ThucHien())// Sau thực sếp lịch thi với thuật toán tô màu XuLyDataGridView.ShowData(llt.DsMonThiDaXep, grwDanhSach, "NGÀY", "GIỜ THI"); } Hàm quan trọng thuật toán tô màu phải tìm số lượng màu tối thiểu để tô cho đỉnh đồthị Ở màu số tiết đỉnh môn cần xếp Số lượng màu tối thiểu số bậc lớn đồthị (bậc số lượng môn thi nhóm) publicint SoLuongMau { get { int sl = 0; foreach (MonThi mt in ds) if (sl < mt.DSMonCungNhom.Count) sl = mt.DSMonCungNhom.Count; return sl; } } // Sắp xếp danh sách giảm dần theo bậc publicvoid SortGiam() { ds.Sort(delegate(MonThi mt1, MonThi mt2) { return -mt1.DSMonCungNhom.Count.CompareTo(mt2.DSMonCungNhom.Count); } } publicbool ThucHien() { if (DsMonThi.SoLuongMau > DSGioThi.Count) //Nếu số lượng màu số lượng màu tối thiểu, báo lỗi 49 return BatLoi.ThongBao2("Số lượng thi sử dụng không đủ để xếp lịch Vui lòng kiểm tra lại"); try { TienTrinh = newThread(ShowProcess); TienTrinh.Start(); int TietXep = 0; // đánh dấu tiết xét while (DsMonThi.Length > 0) //duyệt qua danh sách môn thi { DsMonThi.SortGiam(); // Bước 4.1 xếp giảm dần theo bậc if (DuocPhepTo(DsMonThi[0], TietXep)) // Với môn thi đầu tiên, kiểm tra môn thi "có thể gán cho tiết i" hay không { DsMonThi.SetGio(DsMonThi[0], DSGioThi[TietXep]); // Nếu được, bước 4.2 Gán thời điểm thi thứ i cho môn đầu tiên, UpdateDs(DsMonThi[0]); // thực việc cập nhật lại dánh sách môn thi } for (int i = 0; i < DsMonThi.Length; i++) // Duyệt qua danh sách môn thi lại { MonThi mt2 = DsMonThi[i]; if (!GioDaDung(DsMonThi[i], TietXep) && DuocPhepTo(DsMonThi[i], TietXep)) //Kiểm tra xem tiết có tô hay không { DsMonThi.SetGio(mt2, DSGioThi[TietXep]); // Nếu phép gán tiết cho môn học UpdateDs(mt2); //Sau update lại danh sách môn thi i- -; } } TietXep++; // Với màu thứ nhất, không môn xếp cho màu này, ta chuyển qua màu }//B4.4: Xóa khỏi danh sách môn thi xếp lịch, lập lại danh sách với môn thi chưa lên lịch với thứ tự bậc giảm dần, đặt i=i+1; quay lại B4.2 } catch (Exception) 50 { TienTrinh.Abort(); returnfalse; } TienTrinh.Abort(); returntrue; } } void UpdateDs(MonThi mt) { DsMonThi.ThemTietDaTo(mt, DSGioThi.IndexOf(mt.Tiet)); // sử dụng hàm bên để đánh dấu màu cấm DsMonThi.Remove(mt); //Xóa môn khỏi danh sách cần xếp DsMonThiDaXep.Add(mt); // thêm vào danh sách môn xếp } // Hàm sử dụng để đánh dấu tiết sử dụng để tô màu cho môn học (nghĩa cho vào danh sách cấm) publicvoid ThemTietDaTo(MonThi mthi, int Tiet) { foreach (string mhp in mthi.DSMonCungNhom) //Duyệt qua danh sách môn chung nhóm với môn sau try { this[mhp].ThemMauCam(Tiet); // thêm tiết i vào danh sách màu cấm cho môn } catch (Exception) { } } 51 Các chức chương trình: a) Chức quản lý bậc học Hình 3.4 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 b) Chức quản lý phòng thực hành Hình 3.5 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 thực hành cho phép người dùng nhập tên phòng thực hành, 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 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 c) Chức quản lý thời gian Hình 3.6 Mẫu quản lýthi 52 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(7h, 9h, 13h 15h) để đưa vào danh sách, thi danh sách có nút xóa để xóa thuộc cấm d) Chức chọn nhóm Hình 3.7 Mẫu chọn nhóm cho môn thi Chức chọn nhóm lấy danh sách môn thi ta đư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, chức tự động phân nhóm cho nhóm trung cấp trung cấp 53 e) Chức chọn phòng Hình 3.8 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 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 f) Chức xếp lịch Hình 3.9 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 nút Xếp Lịch để chương trình tự động gắn thời gian thi cho môn thi 54 Các chức phụ chương trình: a) Chức tạo tài khoản, đăng nhập Hình 3.10 Mẫu đăng kí tài khoản Hình 3.11 Mẫu đăng nhập hệ thống 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.12 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 55 c) Chức lưu kết tập tin 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 d) Chức in ấn Sau xếp lịch chương trình cho phép in kết xếp lịch e) Chức hướng dẫn sử dụng Chức hướng dẫn sử dụng hướng dẫn cho người dùng bước để sử dụng chương trình cách hiệu 56 KẾT LUẬN Với mục đích nghiên cứu vấn đề sốtoántốiưurờirạclýthuyếtđồthị Luận văn tập trung nghiên cứu giải vấn đề sau: Kiến thức lýthuyếtđồ thị, lýthuyếttoán lớp P, NP NPC Trình bày vấn đề xoay quanh toán tìm khung bé - thuật toán Kruskal, toán tìm đường ngắn -thuật toán Dijkstra, toán phủ đỉnh, toán bè cực đại, toán tô màu đồthị Từ lýthuyết thuật toán tô màu đồ thị, đề xuất thuật toán xếp lịch thi với môn thi nút, thời điểm thi màu tô Xây dựng hoàn chỉnh chương trình xếp lịch thi triển khai áp dụng cho khoa Trường Cao đẳng nghề Cơ Giới Ninh Bình Chương trình chạy thử nghiệm cho kết tốt với mẫu liệu lấy từ Khoa Khoa học học kì I học kì II năm học 2013-2014 57 DANH MỤC TÀI LIỆU THAM KHẢO Tài liệu tiếng Việt [1] Đặng Quang Á, Bài giảng Mộtsố phương pháp toán học chọn lọc CNTT [2] Kenneth H Rosen (Người dịch: Phạm Văn Thiều, Đặng Hữu Thịnh), Toánrờirạc ứng dụng tin học, NXB Khoa học Kỹ thuật, 2003 [3] Nguyễn Tô Thành, Nguyễn Đức Nghĩa, Giáo trình Toánrờirạc NXB, Trường Đại học Bách Khoa Hà Nội [4] Nguyễn Đức Nghĩa, Nguyễn Thanh Hùng, Giáo trình lýthuyếtđồthị NXB Đại học Quốc gia TPHCM Tài liệu tiếng Anh [5] Panos M Pardalos and Jue Xue, The Maximum Clique Problem Journal of Global Optimization, 4:301–324, 1994 [6] C Fulves and M Gardner, The Kruskal Principle, The Pallbearers Review, June 1975 [7] C.L Liu, Introduction to Combinatorial mathematics, McGraw-Hill Book Com-pany, 1968 ... chọn đề tài Một số toán tối ưu rời rạc lý thuyết đồ thị nhằm nghiên cứu lý thuyết đồ thị, độ phức tạp thuật toán Đối tượng nghiên cứu Tìm hiểu tổng quan tối ưu rời rạc, số toán tối ưu thuộc lớp... Tìm hiểu chung tối ưu rời rạc lý thuyết đồ thị Tìm hiểu số toán tối ưu thuộc lớp P (Polynomial) lý thuyết đồ thị thuật giải - Tìm hiểu số toán tối ưu thuộc lớp NP-hard lý thuyết đồ thị thuật giải... lớp P , NP-C lý thuyết đồ thị Phạm vi nghiên cứu Luận văn nghiên cứu kiến thức chung tối ưu rời rạc lý thuyết đồ thị, tập trung vào số toán tối ưu thuộc lớp P, NP-C lý thuyết đồ thị thuật giải