1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Đồ thị - 2

19 187 0
Tài liệu được quét OCR, nội dung có thể không chính xác
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Tiêu đề Đồ thị - 2
Tác giả Lê Sỹ Vinh
Trường học Đại học Quốc gia Hà Nội
Chuyên ngành Khoa Học Máy Tính
Định dạng
Số trang 19
Dung lượng 454,29 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

ðồ thị Graph Lê Sỹ Vinh Bộ môn Khoa Học Máy Tính – Khoa CNTT ðại Học Công Nghệ - ðHQGHN Email: vinhioi@yahoo.com... ðồ thị có trọng số và không có trọng sốweighted and unweighted graph G

Trang 1

ðồ thị (Graph)

Lê Sỹ Vinh

Bộ môn Khoa Học Máy Tính – Khoa CNTT

ðại Học Công Nghệ - ðHQGHN

Email: vinhioi@yahoo.com

Trang 5

Đồ thị (graph)

• G = (V, E)

– V: Tập ñỉnh

– E = { (u,v) | u, v ∈ V}: Tập cạnh

Ví dụ: Biểu diễn bản ñồ ñường ñi trong thành phố bằng ñồ thị G = (V, E)

– V: Tập hợp các ñiểm trong thành phố

– E: Tập hợp các ñường ñi trong thành phố, mỗi ñường ñi nối hai ñiểm

Trang 6

ðồ thị có hướng và không có hướng

(directed and undirected graph)

G = (V, E) là ñồ thị không có hướng nếu (u, v) ∈ E thì (v, u) ∈ E

Trang 7

ðồ thị có trọng số và không có trọng số

(weighted and unweighted graph)

G = (V, E) là ñồ thị có trọng số nếu mỗi cạnh (u, v) ∈ E ñược gán một giá trị

Trang 8

ðồ thị có chu trình và không chu trình

(cyclic and acyclic graph)

Trang 9

ðồ thị không có nhãn và ñồ thị có nhãn

(unlabled and labled graph)

Trang 10

Friend graph

Trang 11

Bậc của ñỉnh (vertex degree)

Trang 12

Biểu diễn ñồ thị

G = (V, E); V = {0, 1,…, n-1}

• Biểu diễn bằng danh sách liền kề A

– A[u][v] = 1 nếu có cung (u,v)

– A[u][v] = 0 nếu không có cung (u,v)

Trang 13

Biểu diễn ñồ thị

G = (V, E); V = {0, 1,…, n-1}

• Biểu diễn bằng danh sách kề

Trang 14

ði qua ñồ thị

• ði qua tất cả các ñỉnh, mỗi ñỉnh một lần

0, 1, 2, 3, 4

• ði qua tất cả các cạnh, mỗi cạnh một lần

(0,1), (0, 2), (1, 2), (1, 4),

(2, 3), (2, 4), (4, 3), (3, 0)

Trang 15

ði qua ñồ thị theo chiều rộng

(Breadth first search)

• ði qua tất cả các ñỉnh của ñồ thị, mỗi ñỉnh ñúng một lần

Bắt ñầu xuất phát từ một ñỉnh s, lần lượt thăm các ñỉnh liền kề với s Tiếp

tục quá trình thăm các ñỉnh theo nguyên tắc: ðỉnh nào ñược thăm trước thì các ñỉnh liền kề với ñỉnh ñó sẽ ñược thăm trước

• Xem ví dụ

http://www.cs.princeton.edu/~wayne/cs423/lectures.html

Trang 16

đi qua ựồ thị theo chiều rộng

(Breadth first search)

//đi qua ựồ thị theo bề rộng xuất phát từ v

BreadthFirstSearch (v) {

(1) Khởi tạo hàng ựợi Q rỗng;

(3) Xen v vào hàng ựợi Q;

(2) đánh dấu ựỉnh v ựã ựược thăm;

(4) while (hàng ựợi Q không rỗng) {

(5) Lấy ựỉnh w ở ựầu hàng ựợi Q;

(6) for (mỗi ựỉnh u kề w)

(7) if ( u chưa ựược thăm) {

} (10) Loại w ra khỏi hàng ựợi Q

} // hết vòng lặp while.

}

Trang 17

đi qua ựồ thị theo chiều rộng

(Breadth first search)

// đi qua ựồ thị G=(V, E) theo bề rộng

BreadthFirstSearch_traversal (G) {

(10) for (mỗi v ∈V)

(11) đánh dấu v chưa ựược thăm;

(12) for (mỗi v ∈V)

(13) if (v chưa ựược thăm)

(14) BreadthFirstSearch(v);

}

Trang 18

ði qua ñồ thị theo chiều sâu

(Depth first search)

//ði qua ñồ thị theo chiều sâu xuất phát từ v

DepthFirstSearch (v) {

for (mỗi ñỉnh u kề với v)

if (u chưa ñược thăm) {

thăm u và ñánh dấu u ñã ñược thăm DepthFirstSearch (u)

} }

Xem ví dụ

http://www.cs.princeton.edu/~wayne/cs423/lectures.html

Trang 19

đi qua ựồ thị theo chiều rộng

(Depth first search)

// đi qua ựồ thị G=(V, E) theo chiều sâu

DepthFirstSearch_traversal (G) {

(10) for (mỗi v ∈V)

(11) đánh dấu v chưa ựược thăm;

(12) for (mỗi v ∈V)

(13) if (v chưa ựược thăm)

(14) DepthFirstSearch(v);

}

Ngày đăng: 06/11/2013, 01:15

Xem thêm

w