Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 67 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
67
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 Diễn giải 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 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ọng số tăng dần 12 12 23 DANH MỤC HÌNH Trang Hình 1.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 5 10 11 11 12 13 14 15 19 20 22 25 30 32 35 36 37 38 39 40 41 44 45 53 Hình 1.14 Mô hình phân lớp toán 53 Hình 2.1 Đồ thị có trọng số biểu thị tiền thuê bao hàng tháng đường truyền thông mạng máy tính 54 Hình 2.2 Đồ thị có trọng số G 54 Hình 2.3 Đơn đồ thị có trọng số 55 Hình 2.4 Dùng thuật toán Dijsktra tìm đường ngắn từ đỉnh a tới 56 đỉ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 56 57 57 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 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 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án rời rạc Toán học rời rạc nghiên cứu cấu trúc có tính chất rời rạc không liên tục Toán rời rạc bao gồm lĩnh vực quan hệ, lý thuyết đồ thị, logic toán, ngôn ngữ hình thức Trong lý 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án rời rạ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ọng số trọng số 10 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án tố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á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 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 chúng Nhiệm vụ nghiên cứu - Tìm hiểu chung tối ưu rời rạc lý thuyết đồ thị 53 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 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 54 } } 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 thi thi privatevoid btnXepLichThi_Click(object sender, EventArgs e) { 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 55 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 56 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 } 57 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 } 58 catch (Exception) { 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 } 59 // 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) { } } 60 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 để 61 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 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 62 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 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 63 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 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 64 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 65 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 66 KẾT LUẬN Với mục đích nghiên cứu vấn đề số toán tối ưu rời rạc lý 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ết toá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 67 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ột số 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án rời rạ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án rời rạ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 [...]... thức cơ bản về lý thuyết đồ thị các bài toán NP-C Chương hai, trình bày một số bài toán tối ưu lớp P trong đồ thị Chương 3, một số bài toán tối ưu thuộc lớp NP-C trong đồ thị, trong chương này tôi trình bày phần cài đặt chương trình ứng dụng Với những kết quả đạt được, phần cuối của luận văn nêu ra tính hiệu quả của nghiên cứu, đánh giá thuật toán và nêu vài đề xuất nhằm tối ưu thuật toán, đánh giá... tổng hợp lý thuyết - Phương pháp thực nghiệm 12 Chương 1: MỘT SỐ KIẾN THỨC CƠ BẢN VỀ LÝ THUYẾT ĐỒ THỊ CÁC BÀI TOÁN NP-C 1.1 Các khái niệm cơ bản về đồ thị Định nghĩa đồ thị Trong toán học và tin học, đồ thị là đối tượng nghiên cứu cơ bản của lý thuyết đồ thị Một cách không chính thức, đồ thị là một tập các đối tượng gọi là đỉnh nối với nhau bởi các cạnh Thông thường, đồ thị được vẽ dưới dạng một tập... hiểu một số bài toán tối ưu thuộc lớp P (Polynomial) trong lý thuyết đồ thị và thuật giải - Tìm hiểu một số bài toán tối ưu thuộc lớp NP-hard trong lý thuyết đồ thị và thuật giải - Cài đặt một thuật toán và thử nghiệm 5 Những nội dung nghiên cứu chính Bố cục của luận văn gồm phần mở đầu trình bày lý do chọn đề tài, đối tượng và nhiệm vụ nghiên cứu của đề tài Chương một, tập trung trình bày một số kiến... các đỉnh trong V Cần tìm bè lớn nhất của G Bè là tập các đỉnh trong đồ thị mà đôi một có cạnh nối với nhau (là một đồ thị con đầy đủ trong đồ thị G) Bài toán phủ đỉnh (Vertex cover): Ta gọi một phủ đỉnh của đồ thị vô hướng G = (V, E) là một tập con các đỉnh của đồ thị S ⊆ V sao cho mỗi cạnh của đồ 26 thị có ít nhất một đầu mút trong S Bài toán đặt ra là: Cho đồ thị vô hướng G = (V, E) và số nguyên... cùng tương ứng với một cặp đỉnh Hình 1.3: Đa đồ thị Hai loại đồ thị cơ bản: a) Đồ thị vô hướng (6 đỉnh, 9 cạnh) b) Đồ thị có hướng (5 đỉnh, 7 cung) Định nghĩa 1.5 [3] Đồ thị hỗn hợp G=(V, E, A ) bao gồm V là tập các đỉnh, E là tập các cạnh (E≠Ø) và A là tập các cung (A ≠Ø) của đồ thị 14 Hình 1.4: Đồ thị hỗn hợp Đồ thị hỗn hợp (6 đỉnh 5 cạnh, 4 cung) Số đỉnh của đồ thị G là số phần tử trong V Chúng ta... mũ Sau đây là định nghĩa chính thức của bài toán NP-khó Định nghĩa 1.22.[1] Một bài toán A được gọi là NP- khó (NP-hard) nếu như sự tồn tại thuật toán đa thức để giải nó kéo theo sự tồn tại thuật toán đa thức để giải mọi bài toán trong NP Như vậy mọi bài toán NP-C đều là NP-Hard Một số bài toán NP-khó tiêu biểu như: Bài toán bè cực đại (MaxClique): Cho một đồ thị vô hướng G = (V, E) V là tập các đỉnh,... với kích thước k hay không? Một cách không hình thức, có thể nói rằng nếu ta có thể giải được một cách hiệu quả một bài toán NP-khó cụ thể, thì ta cũng có thể giải hiệu quả bất kỳ bài toán trong NP bằng cách sử dụng thuật toán giải bài toán NP-khó như một chương trình con Từ định nghĩa bài toán NP-khó có thể suy ra rằng mỗi bài toán NP-đầy đủ đều là NP-khó Tuy nhiên một bài toán NP-khó không nhất thiết... cần lượng bộ nhớ lớn nếu đồ thị có kích thước lớn Biểu diễn đồ thị: [2] Một cách biểu diễn đồ thị không có cạnh bội là liệt kê tất cả các cạnh của đồ thị Nói cách khác, để biểu diễn đồ thị không có cạnh bội ta dùng danh sách kề Danh sách này chỉ rõ các đỉnh nối với mỗi đỉnh của đồ thị Ví dụ 1.6 Dùng danh sách kề để mô tả đơn đồ thị trên hình 1.9 19 b c a d e Hình 1.9 Đơn đồ thị Bảng 1.1 Liệt kê tất... dụ 1.1: Đồ thị với n đỉnh và mỗi đỉnh có bậc là 6 có bao nhiêu cạnh? 15 Giải: Theo định lý 1.1, ta có 2m=6n Từ đó suy ra số cạnh của đồ thị là 3n Hệ quả 1.1.[3] Trong đồ thị vô hướng, số đỉnh bậc lẻ (nghĩa là có bậc là số lẻ) là một số chẵn Chứng minh Thực vậy, gọi O và U tương ứng là tập đỉnh bậc lẻ và tập đỉnh bậc chẵn của đồ thị Ta có Do deg(v) là chẵn với v là đỉnh trong U nên tổng thứ hai trong. .. trọng số nhỏ nhất và không tạo ra chu trình trong T, khi ghép nó vào T T:= T với cạnh e đã được ghép thêm vào end { T là cây khung nhỏ nhất} Độ phức tạp [6] Nếu E là số cạnh và V là số đỉnh của đồ thị thì thuật toán Kruskal chạy trong thời gian O(E log V) Ví dụ 2.1 Cho đồ thị G như hình 2.2, yêu cầu tìm ra cây khung nhỏ nhất của đồ thị G ? 30 Hình 2.2 Đồ thị có trọng số G G gồm có 8 đỉnh Đồ thị G có ... 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... hiểu chung tối ưu rời rạc lý thuyết đồ thị 11 - 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... 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