Mô phỏng thuật toán của lý thuyết đồ thị

28 29 0
Mô phỏng thuật toán của lý thuyết đồ thị

Đ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

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM TP HỒ CHÍ MINH KHOA CƠNG NGHỆ THƠNG TIN TIỂU LUẬN Học phần: Thành phố Hồ Chí Minh, ngày 15 tháng 12 năm 2021 LỜI CAM ĐOAN Nhóm Windows Progamming chúng em xin giới thiệu với thầy người đề tài ”Mô thuật toán Lý Thuyết Đồ Thị” Chúng em chọn đề tài thiết thực bổ ích cho bạn sinh viên học tập tron Trong q trình thực đề tài cịn có nhiều thiếu sót kiến thức cịn sơ sài nội dung trình bày báo cáo biểu kết chúng em đạt hướng dẫn Thạc sĩ Võ Tiến An Chúng em xin cam đoan rằng: Những nội dung trình bày báo cáo đồ án mơn Lập Trình Window chúng em viết dựa tài liệu hướng dẫn thầy Nếu không thật, chúng em xin chịu trách nhiệm trước thầy MỤC LỤC NHIỆM VỤ THÀNH VIÊN NHÓM MỞ ĐẦU NỘI DUNG 1 GIỚI THIỆU THUẬT TOÁN 1.1 THUẬT TOÁN XÉT LIÊN THÔNG 1.2 THUẬT TOÁN BFS – DFS 1.2.1 Thuật toán BFS 1.2.2 Thuật toán DFS .2 1.3 THUẬT TOÁN PRIM .2 1.4 THUẬT TOÁN KRUSKAL .3 1.5 THUẬT TOÁN DIJKSTRA GIỚI THIỆU VỀ CHƯƠNG TRÌNH .5 2.1 TỔNG QUAN VỀ GIAO DIỆN  CODE Giao Diện Chính .5 2.2 CÁC FILE XỬ LÍ THUẬT TỐN TRONG CHƯƠNG TRÌNH 2.3 FORMGRAPH.CS 2.3.1 Vẽ Đồ Thị .9 2.3.2 Các thuật tốn chương trình hỗ trợ: 15 HƯỚNG DẪN SỬ DỤNG .19 3.1 DOWNLOAD SOURCE CODE .19 3.2 CHẠY CHƯƠNG TRÌNH 19 KẾT LUẬN 20 TÀI LIỆU THAM KHẢO 21 NHIỆM VỤ THÀNH VIÊN NHÓM - Thành viên 1: 46.01.104.176 – Nguyễn Phước Thịnh – COMP101904 (CODE BFS-DFS,GIAO DIỆN,EVENT XỬ LÝ HIỂN THỊ ,CLICK) - Thành viên 2: 46.01.104.069 – Lâm Chấn Huy – COMP101904 (CODE PRIM,WORD,GIAO DIỆN) - Thành viên 3: 46.01.104.100 – Nguyễn Đạt Minh – COMP101904 (CODE KRUSKAL,WORD,GIAO DIỆN) - Thành viên 4: 46.01.104.209 – Lê Đình Anh Tuấn – COMP101904 (CODE DIJKSTRA,VIDEO DEMO) DANH MỤC CÁC HÌNH VẼ Hình 2.3.2.a Các chức chương trình .15 Hình 2.3.2.b Mơ thuật tốn Xét liên thơng .15 Hình 2.3.2.c Mơ thuật tốn DFS 16 Hình 2.3.2.d Mơ Phỏng thuật toán BFS 16 Hình 2.3.2.e Mơ thuật tốn Kruskal .17 Hình 2.3.2.f Mơ Phỏng thuật toán Prim 17 Hình 2.3.2.g Mơ thuật tốn Dịkstra 18 MỞ ĐẦU Lý chọn đề tài 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 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ỹ Lenhard Euler Đồ thị sử dụng để giải toán nhiều lĩnh lực khác Chẳng hạn , đồ thị sử để xác định mạch vòng vấn đề giải tích mạch điện Đồ thị có trọng số cạnh sử dụng để giải tốn như: Tìm đường ngắn hai thành phố mạnh giao thơng Chúng ta sử dụng đồ thị để giải toán lập lịch , thời khoa biểu… Đặc biệt khoảng vài mươi năm trở lại đây, với đời máy tính điện tử phát triển nhanh chóng tin học, lí thuyến đồ thị quan tâm đến nhiều Các thuật toán đồ thị có nhiều ứng dụng nhiều lĩnh vực khác như: Mạng máy tính, Lí thuyết mã, Tối ưu hố,… Chính nhóm em lựa chọn đề tài “ Minh họa trực quan giao diện đồ họa thuật tốn tìm thành phần liên thông đồ thị, duyệt đồ thị theo chiều rộng theo chiều sâu, thuật toán Prim, thuật toán Kruskal, thuật tốn Dijsktra” để nghiên cứu, tìm hiểu tạo giao diện trực quan giúp cho người dùng dễ tiếp cận sử dụng , hiểu thuật tốn tìm đường duyệt theo chiều sâu (DFS) hay duyệt theo chiều rộng (BFS), tìm thành phần liên thơng của đồ thị, thuật tốn Prim, thuật tốn Kruskal, thuật toán Dijkstra Mục tiêu nghiên cứu Mục tiêu đồ án nhằm giúp chúng em có hiểu biết sâu thuật toán tìm đường duyệt theo chiều sâu (DFS) hay duyệt theo chiều rộng (BFS), tìm thành phần liên thơng của đồ thị, tìm khung ngắn hai thuật tốn Kruskal Prim tìm đường ngắn thuật toán Dijkstra Đồng thời tạo giao diện trực quan để giúp cho người dùng có hướng tiếp cận dễ dàng có cách nhìn trực quan thuật tốn NỘI DUNG GIỚI THIỆU THUẬT TOÁN 1.1 Thuật tốn xét liên thơng Định nghĩa: đồ thị có 01 thành phần liên thơng, hay nói cách khác đỉnh bất kỷ đồ thị có đường từ đỉnh tới đỉnh (trực tiếp hay gián tiếp qua đỉnh trung gian) Một đồ thị không liên thông bao gồm nhiều đồ thị liên thông, đồ thị gọi thành phần liên thông (connected component) Các thành phần liên thông: Một đồ thị không liên thông bao gồm nhiều đồ thị liên thông, đồ thị gọi thành phần liên thông Đồ thị liên thông có thành phần liên thơng 1.2 Thuật tốn BFS – DFS 1.1.1 Thuật toán BFS Định nghĩa: Trong lý thuyết đồ thị, tìm kiếm theo chiều rộng (BFS) thuật tốn tìm kiếm đồ thị việc tìm kiếm bao gồm thao tác: (a) cho trước đỉnh đồ thị; (b) thêm đỉnh kề với đỉnh vừa cho vào danh sách hướng tới Có thể sử dụng thuật tốn tìm kiếm theo chiều rộng cho hai mục đích: tìm kiếm đường từ đỉnh gốc cho trước tới đỉnh đích, tìm kiếm đường từ đỉnh gốc tới tất đỉnh khác Các bước duyệt đồ thị sau: Cho G đồ thị liên thông với tập đỉnh {v1, v2, , vn} Bước Xuất phát từ đỉnh cho trước Bước Xử lý đỉnh đánh dấu để không xử lý lần sau Bước Đưa tất đỉnh kề với vào danh sách xử lý xử lý đỉnh kề với đỉnh xét Bước Quay lại Bước khơng cịn đỉnh danh sách Cây T thu khung đồ thị 1.1.2 Thuật tốn DFS Định nghĩa: Tìm kiếm ưu tiên chiều sâu hay tìm kiếm theo chiều sâu ( Depth-first search - DFS) thuật tốn duyệt tìm kiếm một đồ thị Thuật toán khởi đầu gốc (hoặc chọn đỉnh coi gốc) phát triển xa theo nhánh Thơng thường, DFS dạng tìm kiếm thơng tin khơng đầy đủ mà q trình tìm kiếm phát triển tới đỉnh nút tìm kiếm gặp đỉnh cần tìm tới nút khơng có Khi giải thuật quay lui đỉnh vừa tìm kiếm bước trước Trong dạng không đệ quy, tất đỉnh chờ phát triển bổ sung vào ngăn xếp Các bước duyệt đồ thị sau: Cho G đồ thị liên thông với tập đỉnh {v1, v2, , vn} Bước 1: Xuất phát từ đỉnh cho trước Bước 2: Xử lý đỉnh đánh dấu duyệt để không xử lý lần sau Bước 3: Đưa tất đỉnh kề với vào danh sách xử lý chọn đỉnh để xử lý Bước 4: Quay lại Bước khơng cịn đỉnh danh sách Cây T thu khung đồ thị 1.3 Thuật toán Prim Định Nghĩa:Thuật toán Prim thuật tốn tham lam để tìm bao trùm nhỏ đồ thị vơ hướng có trọng số liên thơng Nghĩa tìm tập hợp cạnh đồ thị tạo thành chứa tất đỉnh, cho tổng trọng số cạnh nhỏ Cho G = (V, E) đồ thị liên thơng có trọng số gồm n đỉnh Bước 1: Chọn tùy ý đỉnh v ∈ V khởi tạo: Y = {v} T = ∅ this.ControlBox = false; this.DoubleBuffered = true; this.MaximizedBounds = Screen.FromHandle(this.Handle).WorkingArea; } // Hàm RGBcolor để lưu màu giao diện private struct RGBcolors { public static Color color1 = Color.FromArgb(172, 126, 241); public static Color color2 = Color.FromArgb(249, 118, 176); public static Color color3 = Color.FromArgb(253, 138, 114); public static Color color4 = Color.FromArgb(95, 77, 221); public static Color color5 = Color.FromArgb(249, 88, 115); public static Color color6 = Color.FromArgb(24, 161, 251); } //methods // thay đổi hoạt ảnh button chọn button “Đồ Thị” ho ặc “Thông tin sản phảm” private void ActivateButton(object senderBtn, Color color) { if (senderBtn != null) { DisableButton(); //button currentBtn = (IconButton)senderBtn; currentBtn.BackColor = Color.FromArgb(37, 36, 81); currentBtn.ForeColor = color; currentBtn.TextAlign = ContentAlignment.MiddleCenter; currentBtn.IconColor = color; currentBtn.TextImageRelation = TextImageRelation.TextBeforeImage; currentBtn.ImageAlign = ContentAlignment.MiddleRight; //left border button leftBorderBtn.BackColor = color; leftBorderBtn.Location = new Point(0, currentBtn.Location.Y); leftBorderBtn.Visible = true; leftBorderBtn.BringToFront(); //iconTittle iconcurrentChildform.IconChar = currentBtn.IconChar; iconcurrentChildform.IconColor = currentBtn.IconColor; lblTittleChildForm.Text = currentBtn.Text; } } // hàm giao diện để chuyển giao diện thành xem thông tin hay đồ th ị private void openChildForm(Form childForm) { if (currentChildForm != null) { currentChildForm.Close(); } currentChildForm = childForm; childForm.TopLevel = false; childForm.FormBorderStyle = FormBorderStyle.None; childForm.Dock = DockStyle.Fill; pnlDesktop.Controls.Add(childForm); pnlDesktop.Tag = childForm; childForm.BringToFront(); childForm.Show(); } //Trả lại ban đầu private void DisableButton() { if (currentBtn != null) { currentBtn.BackColor = Color.FromArgb(31, 30, 68); currentBtn.ForeColor = Color.Gainsboro; currentBtn.TextAlign = ContentAlignment.MiddleCenter; currentBtn.IconColor = Color.Gainsboro; currentBtn.TextImageRelation = TextImageRelation.ImageBeforeText; currentBtn.ImageAlign = ContentAlignment.MiddleLeft; leftBorderBtn.Visible = false; iconcurrentChildform.IconChar = IconChar.Home; lblTittleChildForm.Text = "Home"; iconcurrentChildform.IconColor = Color.MediumPurple; } } //mở giao diện đồ thị private void btnGraph_Click(object sender, EventArgs e) { ActivateButton(sender, RGBcolors.color1); openChildForm(new FormGraph()); panelMenu.BorderStyle = BorderStyle.FixedSingle; } [DllImport("user32.DLL", EntryPoint = "ReleaseCapture")] private extern static void ReleaseCapture(); [DllImport("user32.DLL", EntryPoint = "SendMessage")] private extern static void SendMessage(System.IntPtr hWnd, int wMsg, int wParam, int lParam); private void pnlTittle_MouseDown(object sender, MouseEventArgs e) { ReleaseCapture(); SendMessage(this.Handle, 0x112, 0xf012, 0); } //reset lại trang giao diện private void logoHCMUE_Click(object sender, EventArgs e) { if(currentChildForm != null) { currentChildForm.Close(); } DisableButton(); } //thoát khỏi chương trình private void btnClose_Click(object sender, EventArgs e) { Application.Exit(); } //mở rộng thu nhỏ sổ chương trình private void btnZoom_Click(object sender, EventArgs e) { if (WindowState == FormWindowState.Normal) { btnZoom.IconChar = IconChar.WindowRestore; WindowState = FormWindowState.Maximized; } else { btnZoom.IconChar = IconChar.WindowMaximize; WindowState = FormWindowState.Normal; } } //ẩn chương trình private void btnhide_Click(object sender, EventArgs e) { WindowState = FormWindowState.Minimized; } // Mở giao diện Thông Tin Sản Phẩm private void btnThongTin_Click(object sender, EventArgs e) { ActivateButton(sender, RGBcolors.color1); openChildForm(new ThongTinSanPham()); panelMenu.BorderStyle = BorderStyle.FixedSingle; } 1.7 Các file xử lí thuật tốn chương trình Chúng ta giới thiệu file, hàm kiện cịn lại chương trình Egde.cs: Định nghĩa cạnh đồ thị hàm bổ trợ có liên quan FS-Graph.cs: Xử lí thuật tốn chương trình NodeGraphs.cs: Định nghĩa đỉnh hàm bổ trợ liên quan 1.8 FormGraph.cs 2.1.1 Vẽ Đồ Thị a) Vẽ Đỉnh Hình 2.3.1.a Vẽ Đỉnh Dùng kiện Mouseclick panel để tạo button đại diện cho đỉnh Code : private void pnlVeDoThi_MouseClick(object sender, MouseEventArgs e) { if (Checkiconbtn == true) { Button btn = new Button(); btn.Width = 30; btn.Height = 30; btn.Location = new Point(e.X, e.Y); btn.Name = string.Format("{0},{1}", e.X, e.Y); btn.Text = string.Format("{0}", sodinh++); btn.Click += new EventHandler(getToaDo); pnlVeDoThi.Controls.Add(btn); Nod.x = e.X; Nod.y = e.Y; ListarrNod.Add(Nod); Nod = new Class_FS_Graph.NodeGraph(); 10 } b) Vẽ Cạnh Thông qua button “Thêm Cạnh” để tạo liên kết đỉnh mà người dùng chọn, với lựa chọn cạnh vô hướng cạnh có hướng với trọng số nhập từ người dùng chương trình mặt định Hình 2.3.1.b Vẽ Cạnh private void btnThemCanh_Click(object sender, EventArgs e) { if(txtTrongSo.Text == "0" && cbxChucNang.Text != "Dijkstra") { MessageBox.Show("Trọng số vẽ cạnh", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Warning); Egdes = new Class_FS_Graph.Egde(); Nod = new Class_FS_Graph.NodeGraph(); btncreate = null; dx = dy = dx1 = dy1 = 0; d1 = d2 = -1; Dinh1 = Dinh2 = -1; labTrongSo.Text = "Trọng Số"; txtTrongSo.Text = String.Empty; 11 txtKetqua.Text = "Kết Quả"; return; } VeDoThi(Egdes); Egdes = new Class_FS_Graph.Egde(); Nod = new Class_FS_Graph.NodeGraph(); btncreate = null; dx = dy = dx1 = dy1 = 0; d1 = d2 = -1; Dinh1 = Dinh2 = -1; labTrongSo.Text = "Trọng Số"; txtKetqua.Text = "Kết Quả"; txtTrongSo.Text =String.Empty; } c) Xóa cạnh Người dùng lựa chọn cạnh mà muốn xóa sau click vào button “Xóa Cạnh” Cạnh trước xóa: Hình 2.3.1.c Trước xóa Cạnh Cạnh sau xóa: 12 Code: pnlVeDoThi.Invalidate(); pnlVeDoThi.Refresh(); int n = ListarrEgde.Count; for (int i = 0; i < ListarrEgde.Count; i++) { if (cbxLoaiDoThi.Text == "Đồ Thị Vô Hướng") { if (!ListarrEgde[i].SoSanhEgdeVH(Egdes)) { VeDoThi1(ListarrEgde[i]); } else { ListarrEgde.RemoveAt(i); i = i - 1; Matrix[d1, d2] = 0; Matrix[d2, d1] = 0; } } if (cbxLoaiDoThi.Text == "Đồ Thị Có Hướng") { if (!ListarrEgde[i].SoSanhEgdeCH(Egdes)) { VeDoThi1(ListarrEgde[i]); } else { ListarrEgde.RemoveAt(i); i = i - 1; Matrix[d1, d2] = 0; } if (!CheckHuong && ListarrEgde.Count >= 0) { CheckHuong = ListarrEgde[i].CheckHuong(Egdes); } } } d) Chức Xóa Đỉnh Người dùng xóa đỉnh đỉnh muốn xóa sau click vào button “Xóa Đỉnh” Đỉnh trước xóa: 13 Hình 2.3.1.e Trước xóa Đỉnh Đính sau xóa: Hình 2.3.1.f Sau xóa Đỉnh Sau xóa đỉnh, cạnh nối đỉnh tự động xóa đỉnh lại tự động thay đổi số cho phù hợp với đồ thị for (int i = 0; i < ListarrNod.Count; i++) { if (!Nod.SoSanhNode(ListarrNod[i])) { Button btn = new Button(); btn.Width = 30; btn.Height = 30; btn.Location = new Point(ListarrNod[i].x, ListarrNod[i].y); 14 btn.Text = string.Format("{0}", n++); btn.Click += new EventHandler(getToaDo); pnlVeDoThi.Controls.Add(btn); } else { PtuxoaNod = i; } } if (PtuxoaNod != -1 && ListarrNod.Count > 0) { ListarrNod.RemoveAt(PtuxoaNod); Nod = new Class_FS_Graph.NodeGraph(); Egdes = new Class_FS_Graph.Egde(); btncreate = null; dx = dy = dx1 = dy1 = 0; d1 = d2 = -1; Dinh1 = Dinh2 = -1; } 2.1.2 Các thuật tốn chương trình hỗ trợ: Hình 2.3.2.a Các chức chương trình Người dùng chọn thuật tốn để mơ thuật tốn ♦ Xét liên thơng 15 Hình 2.3.2.b Mơ thuật tốn Xét liên thơng ♦ DFS Hình 2.3.2.c Mơ thuật tốn DFS ♦ BFS 16 Hình 2.3.2.d Mơ Phỏng thuật tốn BFS ♦ Kruskal Hình 2.3.2.e Mơ thuật tốn Kruskal ♦ Prim 17 Hình 2.3.2.f Mơ Phỏng thuật tốn Prim ♦ Dijkstra Hình 2.3.2.g Mơ thuật tốn Dịkstra 18 1.9 HƯỚNG DẪN SỬ DỤNG Download Source Code Bạn download source code GitHub https://github.com/pthinh106/LTTW tải file đóng gói chương trình file 1.10 Chạy chương trình Chương trình chạy Visual Studio, dùng ngơn ngữ C#, GUI C# dùng thư viện NET Có thể xem video demo để hiểu rõ cách sữ dụng 19 KẾT LUẬN Thơng qua q trình học tập nghiên cứu giúp đỡ thầy nhóm tụi em hồn thành đồ án cuối kì với đề tài Mơ giao diện thuật tốn Prim,Kruskal,Dijkstra, BFS, DFS, thành phần liên thông Sản phẩm cuối chúng em hoàn thành phần mềm hỗ trợ học tập môn Lý thuyết đồ thị ứng dụng với nội dung duyệt khung thuật tốn Prim,Kruskal,Dijkstra, BFS, DFS thành phần liên thơng Mặt hạn chế: Giao diện chưa tiện ích sữ dụng, cịn có thiếu sót thuật tốn, chưa đầy đủ tất thuật tốn mơn Lí thuyết đồ thị 20 TÀI LIỆU THAM KHẢO [1] Võ Tiến An, Slide giáo trình C#, 2018 [2]Trần Thanh Nhã, tập Lab học phần Lý Thuyết Đồ Thị [3]Tài liệu học tập môn Lý thuyết đồ thị ứng dụng : https://drive.google.com/drive/folders/1SxjymHWLUAlV6cmnI5p5AFxenTtxY IwG [4]Tài liệu tham khảo Windows Form : https://drive.google.com/drive/folders/1pYDWNlE_ssRyDBz4V8Nw3yWXbiO 0pIlx? fbclid=IwAR2Y7qrEVPqinVUO1XAgZyivcENjN6cl2K6clnOVPkbqWtZsXUA ZjfyqxPA ... THIỆU THUẬT TOÁN 1.1 THUẬT TOÁN XÉT LIÊN THÔNG 1.2 THUẬT TOÁN BFS – DFS 1.2.1 Thuật toán BFS 1.2.2 Thuật toán DFS .2 1.3 THUẬT TOÁN PRIM .2 1.4 THUẬT... 1.4 Thuật Toán Kruskal Định nghĩa: Thuật toán Kruskal thuật tốn lý thuyết đồ thị để tìm bao trùm nhỏ đồ thị liên thông có trọng số Nói cách khác, tìm tập hợp cạnh tạo thành chứa tất đỉnh đồ thị. .. liên thông Đồ thị liên thơng có thành phần liên thơng 1.2 Thuật tốn BFS – DFS 1.1.1 Thuật toán BFS Định nghĩa: Trong lý thuyết đồ thị, tìm kiếm theo chiều rộng (BFS) thuật tốn tìm kiếm đồ thị việc

Ngày đăng: 26/04/2022, 17:57

Hình ảnh liên quan

2 GIỚI THIỆU VỀ CHƯƠNG TRÌNH. 1.6 Tổng quan về giao diện. - Mô phỏng thuật toán của lý thuyết đồ thị

2.

GIỚI THIỆU VỀ CHƯƠNG TRÌNH. 1.6 Tổng quan về giao diện Xem tại trang 13 của tài liệu.
Hình 2.3.1.a Vẽ Đỉnh - Mô phỏng thuật toán của lý thuyết đồ thị

Hình 2.3.1.a.

Vẽ Đỉnh Xem tại trang 17 của tài liệu.
Hình 2.3.1.b Vẽ Cạnh - Mô phỏng thuật toán của lý thuyết đồ thị

Hình 2.3.1.b.

Vẽ Cạnh Xem tại trang 18 của tài liệu.
Hình 2.3.1.c Trước khi xóa Cạnh - Mô phỏng thuật toán của lý thuyết đồ thị

Hình 2.3.1.c.

Trước khi xóa Cạnh Xem tại trang 19 của tài liệu.
Hình 2.3.1.e Trước khi xóa Đỉnh - Mô phỏng thuật toán của lý thuyết đồ thị

Hình 2.3.1.e.

Trước khi xóa Đỉnh Xem tại trang 21 của tài liệu.
Hình 2.3.1.f Sau khi xóa Đỉnh - Mô phỏng thuật toán của lý thuyết đồ thị

Hình 2.3.1.f.

Sau khi xóa Đỉnh Xem tại trang 21 của tài liệu.
Hình 2.3.2.a Các chức năng trong chương trình - Mô phỏng thuật toán của lý thuyết đồ thị

Hình 2.3.2.a.

Các chức năng trong chương trình Xem tại trang 22 của tài liệu.
Hình 2.3.2.b Mô phỏng thuật toán Xét liên thông - Mô phỏng thuật toán của lý thuyết đồ thị

Hình 2.3.2.b.

Mô phỏng thuật toán Xét liên thông Xem tại trang 23 của tài liệu.
Hình 2.3.2.c Mô phỏng thuật toán DFS - Mô phỏng thuật toán của lý thuyết đồ thị

Hình 2.3.2.c.

Mô phỏng thuật toán DFS Xem tại trang 23 của tài liệu.
Hình 2.3.2.e Mô phỏng thuật toán Kruskal - Mô phỏng thuật toán của lý thuyết đồ thị

Hình 2.3.2.e.

Mô phỏng thuật toán Kruskal Xem tại trang 24 của tài liệu.
Hình 2.3.2.d Mô Phỏng thuật toán BFS - Mô phỏng thuật toán của lý thuyết đồ thị

Hình 2.3.2.d.

Mô Phỏng thuật toán BFS Xem tại trang 24 của tài liệu.
Hình 2.3.2.g Mô phỏng thuật toán DịkstraHình 2.3.2.f Mô Phỏng thuật toán Prim - Mô phỏng thuật toán của lý thuyết đồ thị

Hình 2.3.2.g.

Mô phỏng thuật toán DịkstraHình 2.3.2.f Mô Phỏng thuật toán Prim Xem tại trang 25 của tài liệu.

Từ khóa liên quan

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

Tài liệu liên quan