Tìm đường đi và kiểm tra tính liên thông Tìm đường đi và kiểm tra tính liên thông Bởi: Thạc sĩ Nguyễn Thanh Hùng Trong mục này ta xét ứng dụng các thu

Tài liệu tương tự
Trung Tâm Gia Sư Tài Năng Việt Đề Số 1 Câu 1: Sau khi thực hiện đoạn chương trình sau, giá trị của biến S bằng bao nhiêu: S

Mảng Mảng Bởi: Thu Nguyen DỮ LIỆU KIỂU MẢNG (ARRAY) I. KHAI BÁO MẢNG Cú pháp: TYPE VAR <Kiểu mảng> = ARRAY [chỉ số] OF <Kiểu dữ liệu>; <Biến mảng>:<ki

Bài toán cây khung nhỏ nhất Bài toán cây khung nhỏ nhất Bởi: Khoa CNTT ĐHSP KT Hưng Yên Bài toán cây khung nhỏ nhất Bài toán cây khung nhỏ nhất của đồ

Con trỏ và cấu trúc động Con trỏ và cấu trúc động Bởi: Thu Nguyen CON TRỎ VÀ CẤU TRÚC ĐỘNG 1. Khái niệm: Khi khai báo một biến, dù là biến đơn hay biế

NGÔN NGƯ LÂ P TRIǸH Biên tập bởi: nguyenvanlinh

HỘI THI TIN HỌC TRẺ TỈNH AN GIANG ĐỀ CHÍNH THỨC ĐỀ THI LÝ THUYẾT BẢNG A - KHỐI TIỂU HỌC Khóa ngày: Thời gian : 20 phút (không kể thời gian

Slide 1

Tìm hiểu ngôn ngữ lập trình Visual Basic Tìm hiểu ngôn ngữ lập trình Visual Basic Bởi: Khuyet Danh Tìm hiểu ngôn ngữ lập trình Visual Basic Tổng quan

Phương pháp biểu diễn thuật toán Phương pháp biểu diễn thuật toán Bởi: Khoa CNTT ĐHSP KT Hưng Yên Khi chứng minh hoặc giải một bài toán trong toán học

OpenStax-CNX module: m Xâu ký t. * Thu Nguyen This work is produced by OpenStax-CNX and licensed under the Creative Commons Attribution License

Bài tập chương 1 ngôn ngữ lập trình visual basic Bài tập chương 1 ngôn ngữ lập trình visual basic Bởi: Khoa CNTT ĐHSP KT Hưng Yên MỤC TIÊU: SAU KHI HO

ĐỀ cương chương trình đẠi hỌc

TRƯỜnG ĐẠI HỌC BÁCH KHOA HÀ nội VIỆn CÔnG nghệ THÔnG TIn VÀ TRUYỀn THÔnG TIN HỌC ĐẠI CƯƠNG Bài 10. Các cấu trúc lập trình trong C Nội dung 1. Cấu trúc

I. MSWLogo là gì. Giới thiệu. Là một ngôn ngữ lập trình được thiết kế và phát triển bởi Seymour Papert, Daniel Bobrow và Wallace Feurzeig. Trong chươn

Lập trình cấu trúc trong Visual Basic Lập trình cấu trúc trong Visual Basic Bởi: Nguyễn Sơn Học xong chương này, sinh viên phải nắm bắt được các vấn đ

9-KiemThu

TẬP ĐOÀN VIỄN THÔNG QUÂN ĐỘI VIETTEL TRUNG TÂM CÔNG NGHỆ THÔNG TIN 1 HƯỚNG DẪN SỬ DỤNG HỆ THỐNG QUẢN LÝ VÀ ĐIỀU HÀNH VĂN BẢN ĐIỆN TỬ Đối tượng Văn thư

Lập trình và ngôn ngữ lập trình

Trường ĐHBK Hà Nội Khoa Điện Bộ môn Điều khiển Tự động Tài liệu hướng dẫn thực hành: KĨ THUẬT LẬP TRÌNH C/C++ Bài 1: Lập trình cơ sở 1 Mục đích bài th

Tài liệu Hướng dẫn sử dụng

Chương 1:

Câu lệnh (statement) Câu lệnh (statement) Bởi: Khuyet Danh Trong C# một chỉ dẫn lập trình đầy đủ được gọi là câu lệnh. Chương trình bao gồm nhiều câu

Microsoft Word - Huong dan su dung phan mem Evyhome.docx

Microsoft Word - emulator_trong_android.docx

Kiểu dữ liệu văn bản Kiểu dữ liệu văn bản Bởi: PGS. TS. NGƯT Phạm Văn Huấn Ngoài những dữ liệu số như các số nguyên, số thực, máy tính còn có thể lưu

TÀI LIỆU HƯỚNG DẪN CÀI ĐẶT HƯỚNG DẪN CÀI ĐẶT VÀ KIỂM TRA ỨNG DỤNG QUẢN LÝ BÁN HÀNG

MỤC LỤC CÁC PHÍM CHỨC NĂNG CHUNG TRONG PHẦN MỀM... 3 PHẦN 1: KHAI BÁO... 3 KHAI BÁO NHÀ CUNG CẤP: Chọn Khai báo Danh mục nhà cung cấp KHAI BÁO

Những cơ sở của ngôn ngữ C# Những cơ sở của ngôn ngữ C# Bởi: phamvanviet truonglapvy Trong chương này sẽ trình bày về hệ thống kiểu trong C#; phân biệ

Chương trình dịch

Phụ lục 2: HỒ SƠ NĂNG LỰC NĂM 2014

HD reset mật khẩu cho các hệ điều điều hành HƯỚNG DẪN RESET MẬT KHẨU CHO CÁC HỆ ĐIỀU HÀNH MỤC LỤC 1 Hướng dẫn chỉnh boot bằng cd-rom trên vps R

Phụ lục 2: HỒ SƠ NĂNG LỰC NĂM 2014

PowerPoint Presentation

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG TIN HỌC ĐẠI CƯƠNG Bài 11. Tệp tin Nội dung 1. Khái niệm cơ bản 2. Các thao tá

TẬP ĐOÀN ĐIỆN LỰC VIỆT NAM TRUNG TÂM CÔNG NGHỆ THÔNG TIN TÀI LIỆU HƯỚNG DẪN SỬ DỤNG DIM OPERATOR v1.2 (Dành cho Đơn vị phát điện) Hà Nội, tháng 2/2008

Nhúng mã-cách khai báo biến Nhúng mã-cách khai báo biến Bởi: Khoa CNTT ĐHSP KT Hưng Yên Nhúng mã javascript trong trang HTML Bạn có thể nhúng JavaScri

Microsoft Word - TaiLieuTNKTD1PhanPLC-05[1].2008.doc

Moduel 7:Trinh chiếu bài thuyết trình 163 Moduel 7: rình chiếu bài thuyết trình 7.1. rình chiếu bài thuyết trình Thiết lập các tùy ch n cho chế độ Sli

Microsoft Word - cau-truc-du-lieu-hang-doi.docx

MỘT SỐ LƯU Ý KHI DẠY CÁC TIẾT ÔN TẬP CHƯƠNG Môn Tin học cung cấp cho học sinh những kiến thức phổ thông về ngành khoa học tin học, hình thành và phát

Các cấu trúc logic trong lập trình 1 Cấu trúc tuần tự (Sequence) 1.1 Những câu lệnh phải được sắp xếp theo thứ tự Một số hướng dẫn cho việc tổ chức câ

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG TIN HỌC ĐẠI CƯƠNG Bài 5. Kiểu dữ liệu và biểu thức trong C Nội dung 1. Các ki

OpenStax-CNX module: m Lập trình hàm ThS. Nguyễn Văn Linh This work is produced by OpenStax-CNX and licensed under the Creative Commons Attribu

TÀI LIỆU HƯỚNG DẪN SỬ DỤNG SMAS Tổ tin học TABLE OF CONTENTS I. Thông tin tài liệu... 2 II. Đăng nhập vào hệ thống... 3 III. Đổi mật khẩu đăng nhập...

SỞ THÔNG TIN VÀ TRUYỀN THÔNG KIÊN GIANG TRUNG TÂM CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG HƯỚNG DẪN SỬ DỤNG PHẦN MỀM QUẢN LÝ THI ĐUA KHEN THƯỞNG Kiên Gian

Nội dung chương 3 IT1110 Tin học đại cương Phần I: Tin học căn bản Chương 3: Hệ thống máy tính 3.1. Giới thiệu 3.2. Chức năng và các thành phần của má

LỌC ĐIỆN

Hãy chọn phương án đúng CÂU HỎI TRẮC NGHIỆM TIN HỌC 7 HK1 Câu 1: Bảng tính thường được dùng để: a. Tạo bảng điểm của lớp em b. Bảng theo dõi kết quả h

iCeeNee iOS User's Manual.docx

0. Hướng dẫn sử dụng phần mềm chấm công

100 CÂU TRẮC NGHIỆM TIN HỌC 6 I. CÂU HỎI TRẮC NGHIỆM Câu 1: Để viết đơn đăng kí tham gia câu lạc bộ, em nên sử dụng phần mềm nào dưới đây? A. Chương t

HƯỚNG DẪN SỬ DỤNG PHẦN MỀM KBHXH NỘI DUNG I. Giới thiệu... 2 II. Hướng dẫn sử dụng phần mềm kê khai BHXH Nhập thông tin Doanh nghiệp Q

VI. HƯỚNG DẪN SỬ DỤNG CỔNG THÔNG TIN ĐHQGHN A. Hướng dẫn truy cập: 1. Vào địa chỉ: 2. Màn hình đăng nhập xuất

OpenStax-CNX module: m Giới thiệu về ngôn ngữ C và môi trường turbo C 3.0 ThS. Nguyễn Văn Linh This work is produced by OpenStax-CNX and licens

Dell UltraSharp U2518D Trình Quản Lý Màn Hình Dell Sổ tay hướng dẫn sử dụng

Kiến trúc tập lệnh1

50. Làm cách nào để người ta ngoan ngoãn bước vào trại tù mặc dù không biết trước ngày về? Đó là câu hỏi mà nhiều người không bị nếm mùi «học tập cải

Hướng dẫn sử dụng Web Trading Online

Trang 1/13 Mua chữ tín Bán niềm tin CHI NHÁNH CÔNG TY CỔ PHẦN DANH KIỆT Danh Kiet Joint Stock Company Branch Địa chỉ: Số 108 Láng Hạ - Q.Đống Đa - TP.

Chương trình dịch

HƯỚNG DẪN SỬ DỤNG ĐẦU GHI LILIN DVR 708/716/ Cấu tạo đầu ghi 1.1 Đầu ghi DVR 816 Mặt trước: Stt Tên Chức năng 1 Phím sang trái Di chuyển sang tr

Microsoft Word - jsp_syntax.docx

HƯỚNG DẪN CÁC NGHIỆP VỤ KÊ KHAI (Trên phần mềm ebh của công ty Thái Sơn) Nghiệp vụ : Đăng ký đóng BHXH bắt buộc (Người lao động có thời hạn ở nước ngo

OpenStax-CNX module: m Ôtômat hữu hạn và biểu thức chính quy ThS. Võ Huỳnh Trâm This work is produced by OpenStax-CNX and licensed under the Cr

HỘI LHPN TP ĐÀ NẴNG CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự do - Hạnh phúc Đà Nẵng, ngày 03 tháng 7 năm 2015 BÁO CÁO THÀNH TÍCH ĐỀ NGHỊ TẶNG T

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG TIN HỌC ĐẠI CƯƠNG Bài 13. Hàm Nội dung 1. Khái niệm hàm 2. Khai báo và sử dụn

HƯỚNG DẪN CHUYỂN KHOẢN VÀ THANH TOÁN HÓA ĐƠN

ĐÊ CƯƠNG CHI TIẾT HỌC PHẦN

THÔNG CÁO BÁO CHÍ

Bài thực hành 6 trang 106 SGK Tin học 10

Công Ty Công Nghệ Tin Học Mũi Tên Vàng Địa chỉ: Số 7 Nam Quốc Cang, Quận 1, TP HCM Điện thoại: Hotline: Website:

HƯỚNG DẪN CÀI ĐẶT & CẬP NHẬT DỮ LIỆU CỔ PHIẾU TỪ DATA24 VÀO PHẦN MỀM AMIBROKER I. CÀI ĐẶT PHẦN MỀM DATA24 Bước 1: Download file cài đặt Data24 tại Web

Các biến và các kiểu dữ liệu trong JavaScript Các biến và các kiểu dữ liệu trong JavaScript Bởi: Hà Nội Aptech Các biến (Variables) Biến là một tham c

Danh sách tuyến tính kiểu hàng đợi Danh sách tuyến tính kiểu hàng đợi Bởi: Khoa CNTT ĐHSP KT Hưng Yên ĐỊNH NGHĨA Hàng đợi là một vật chứa (container)

Chương trình dịch

HƯỚNG DẪN GIAO DỊCH TIỀN TẠI MBS I. Giao dịch nộp tiền mặt/chuyển tiền vào tài khoản giao dịch chứng khoán Quý khách hàng có thể đến các điểm cung cấp

1. Xem tin tuyển dụng Khi lựa chọn vào Thông tin tuyển dụng hoặc các tin tuyển dụng tại các vị trí, thí sinh sẽ nhìn thây nút Nộp đơn, khi lựa chọn sẽ

[HDSD] - Tìm kiếm

Bài tập thực hành Chuyên đề 1 CNPM - Java Khoa CNTT- Trường ĐH Công nghệ TP.HCM Lab 01: LẬP TRÌNH JAVA CƠ BẢN VỚI NET BEANS A. MỤC TIÊU: Hướng dẫn tải

Java cơ bản

HƯỚNG DẪN GIAO DỊCH VNCS WEB TRADING 1. Bảng mô tả Thuật ngữ viết tắt Viết tắt CTCK KH TK PHT Mô tả Công ty chứng khoán Khách hàng Tài khoản Phát hành

Animation, Modules 6 - Hoạt hình, tách file

HƯỚNG DẪN SỬ DỤNG HỆ THỐNG HÓA ĐƠN ĐIỆN TỬ LẦN BAN HÀNH: 01 HÀ NỘI 2019

TRUNG TÂM KINH DOANH VNPT ĐỒNG THÁP o0o TÀI LIỆU HƯỚNG DẪN KHAI THÁC Website QUẢN LÝ CÔNG NỢ - HÓA ĐƠN ĐIỆN TỬ dongthap.vnpt.vn/tt

Ví dụ về duyệt đồ thị ưu tiên chiều sâu DFS và ứng dụng Đồ thị ví dụ: Nguyễn Hữu Tuân vimaru.edu.vn Hình 1: Đồ thị vô hướng có 8 đỉnh Với đồ thị trên,

Hệ điều hành Bài tập tuần 6 1 Quản lý bộ nhớ Bài tập 1 : Xem thông tin bộ nhớ 1. Sử dụng top, ps đọc thông tin về kích thước vùng nhớ của 1 tiến trình

XJ-UT311WN_XJ-UT351WN

Slide 1

Inspiron Series Sổ tay dịch vụ

Bài 1:

HƯỚNG DẪN SỬ DỤNG PHÂN HỆ EDU (Theo T/B Số: 710 /TB-ĐHKTKTCN ngày 29 tháng 12 năm 2014 V/v nâng cấp hệ thống phần mềm Quản lý Nhà trường) LƯU Ý: - Tài

Lkgjlfjq?etyuiiofjkfjlsfjkslddghdgertt

Microsoft Word - 3.QC tiep nhan, xu ly quan ly VB(R.1).doc

Ch­ng I

CÂN ĐÔNG ĐÔ

Bài Thay lời tựa trích trong quyển sấm giảng Hòa Đồng Tôn Giáo tr. 5-7, do Thiền Tịnh Bửu Sơn Sydney ấn tống năm 2001, nội dung nói lên tinh thần cao

SM-N9208 SM-N920C SM-N920CD SM-N920I Sách hướng dẫn sử dụng Vietnamese. 08/2015. Rev.1.0

Hàm và lớp template trong Lập trình hướng đối tượng Hàm và lớp template trong Lập trình hướng đối tượng Bởi: unknown Trong phần này, chúng ta tìm hiểu

Copyright vietjack.com Chuỗi (String) trong C# Trong C#, bạn có thể sử dụng các chuỗi (string) như là mảng các ký

Bản ghi:

Tìm đường đi và kiểm tra tính liên thông Bởi: Thạc sĩ Nguyễn Thanh Hùng Trong mục này ta xét ứng dụng các thuật toán tìm kiếm mô tả trong các mục trước vào việc giải bài toán cơ bản trên đồ thị: bài toán về tìm đường đi và bài toán về xác định tính liên thông của đô thị.7 Bài toán tìm đường đi giữa hai đỉnh: Giả sử s và t là hai đỉnh nào đó của đồ thị. Hãy tìm đường đi từ s đến t.như trên đã phân tích, thủ tục DFS(s) (BS(s)) sẽ cho thăm tất cả các đỉnh thuộc cùng một thành phần liên thông với s. vì vậy, sau khi thực hiện xong thủ tục, nếu Chuaxet[t]=true, thì điều đó có nghĩa là không có đường đi từ s đến t, còn nếu Chuaxet[t]=false thì t thuộc cùng thành phần liên thông với s, hay nói một cách khác: tồn tại đường đi từ s đến t. Trong trường hợp tồn tại đường đi, để ghi nhận đường đi, ta dùng thêm biểu thức Truoc[v] để ghi nhận đỉnh đi trước đỉnh v trong đường đi tìm kiếm tứ s đến v. Khi đó, đối với thủ tục DFS(v) cần sửa đổi câu lệnh ì trong nó như sau: If Chuaxet[u] then Truoc[u]:=v; DFS(u); Còn đối với thủ tục BFS(v) cần sửa đổi câu lện if trong nó như sau: If Chuaxet [u] then 1/10

QUEUE u; Chuaxet[u]:=false; Truoc[u]:=p; Chú ý: Đường đi tìm được theo thuật toán tìm kiếm theo chiều rộng là đường đi ngắn nhất (theo số cạnh) từ s đến t. Điều này suy trực tiếp từ thứ tự thăm đỉnh theo thuật toán tìm kiếm theo chiều rộng. Tìm các thành phần liên thông của đồ thị: Hãy cho biết đồ thị gồm bao nhiêu thành phần liên thông và từng thành phần liên thông của nó là gồm những đỉnh nào. Do thủ tục DFS(v) (BFS(s)) cho phép thăm tất cả các đỉnh thuộc cùng một thành phần liên thông với s, nên số thành phần liên thông cỉa đồ thị bằng số lần gọi đến thủ tục này. Vấn đề còn lại là cách ghi nhận các đỉnh trong từng thành phần liên thông. Ta dùng thêm biến Index[v] đê ghi nhận chỉ số của thành phần liên thông chứa đỉnh v, và dùng thêm biến Inconnect để đếm số thành phần liên thông (biến này cần khởi tạo giá trị 0). Thủ tục Tham_dinh(v) trong các thủ tục DFS(v) và BFS(v) có nhiệm vụ gán: Index[v]:=connect, còn câu lện if trong các chương trình chính gọi đến các thủ tục này cần được sửa lại như sau: Inconnect:=0; If Chuaxet[v] then Inconnect:=Inconnect+1; DFS(v); (*BFS(v)*) Kết thúc vòng lặp thứ hai trong chương trình chính, Inconnect cho số thành phần liên thông của đồ thị, còn biến mảng Index[v], v V cho phép liệt kê các đỉnh thuộc cùng một thành phần liên thông. Chương trình PASCAL giải bài toán trên có thể viết như sau: 2/10

? CHUONG TRINH TIM DUONG DI VA KIEM TRA TINH LIEN THONG THEO CAC THUAT TOAN TIM KIEM TREN DO THI? uses crt; var a:array[1..20,1..20] fo byte; QUEUE, Chuaxet, Truoc: array[1..20] of byte; i,j,n,solt,k,s,t: integer; Stop: boolean; Ch: char; Procedure Nhapsolieu; Write( Cho so dinh cua do thi: ); readln(n); Writeln( Nhap so lieu ma tran ke: ); For i:= 1 to n do For j:= i+1 to n do Write( a[,i,,,j, ]= ); readln(a[i,j]); a[i,j}:=0; writeln; {===========================} 3/10

Procedure readfile; Var f:text; fn:string; Write( Cho ten file du lieu: ); readln (fn); Assign(fnfn); reset(f); readln(f,n); Writeln( Nhap so lieu ma tran ke: ); For i:= 1 to n do For j:=1 to n do read(f, a[i,j}); Close(f); {===========================} Procedure Insolieu; Writeln( Ma tran ke: ); For i:= 1 to n do For j:=1 to n do write(a[i,j]:3); Writeln; {===============================} Procedure Ketqualienthon; 4/10

Insolieu; If solt=1 then writeln( Do thi la lien thong ) Else Wriyeln( Thanh phan lien thon thu,i, gom cac dinh: ); For j:=1 to n do if Chuaxet[j]=i then write(j:3); writeln; Write( Go Enter de tiep tuc #7); readln; {========================================} Procedure BFS(i:integer); (*tim kiem theo chieu rong bat dau tu dinh i*); var u, dauq, CuoiQ,: integer; begin dauq=1; cuoiq:=1; QUEUE[cuoiQ]:=i; Chuaxet[i]:=Solt; While dauq<=cuoiq do U:= QUEUE[sauQ]; dauq:=dauq+1; For j:=1 to n do If a[u,j]=1) and (Chuaxet[j]=0) then 5/10

cuoiq:=cuoiq+1; QUEUE:[cuoiQ]:=j; Chuaxet[j]:=Solt; Truoc[j]:=u;? of procedure BFS? {==================================} Procedure DFS(v:integer); (*Tim kiem theo chieu sau bat dau tu dinh v*); var U: integer; begin Chuaxet[v]:=solt; For u:=1 to n do If (a[v,u]=1) and (Chuaxet[u]=0) then Truoc[u]:=v; DFS9(u); {=================================} Procedure Lienthong; 6/10

? Khoi toa so lieu? for j:=1 to n do Chuaxet[j]:=0; solt:=0; for i:=1 to n do if Chuaxet[i]=0 then begin solt:=solt+1;? BFS(i);? DFS(i); end; Ketqualienthong; {===============================} Procedure Ketquaduongdi; If Truoc[t]=0 then writeln( Khong co duong di tu, s, den,t) Else Writeln( Duong di tu,s, den,t, la: ); J:=t; Write(t, <== ); While Truoc[j]<>s do 7/10

Write(Truoc[g], <== ); J:=Truoc[j]; Writeln(s); Write( Go Enter de tiep tuc #7); readln; {============================} Procedure duongdi; Insolieu; Write( Tim duon di tu dinh: ); readln(s); Write( den dinh: ); readln(t); For j:=1 to n do? Khoi tao so lieu? Truoc[j[:=0; Chuaxet[j]:=0; Silt:=1; BFS(s);? DFS(s);? Ketquaduondi; {============================} 8/10

Procedure menu; Clrscr; Writeln( TIM DUONG DI VA KIEM TRA TINH LIEN THONG ); Writeln( CUA DO THIJ THEO THUAT TOAN TIM KIEM TREN DO THI ); Writeln( =============================================== ); Writeln( 1. Nhap so lieu tu ban phim ); Writeln( 2. Nhap so lieu tu file ); Writeln( 3. Kiem tra tinh lien thong ); Writeln( 4. Tim duong di giua hai dinh ); Writeln( 5. Thoat ); Writeln( -------------------------------------------------------------- ); Write( Hay go phim so de chon chuc nang #7); Ch:=readkey; Writeln(ch); {===================================}? Main program? repeat menu; case ch of 9/10

1 :Nhapsolieu; 2 :Readfile; 3 :Lienthong; 4 :Duongdi; until (ch= 5 ) or (upcase (ch)= Q); End. 10/10