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

Toán rời rạc CHƯƠNG 7 CÁC THUẬT TOÁN tìm kiếm trên đồ thị euler và đồ thị haminton

64 5 0

Đ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

Định dạng
Số trang 64
Dung lượng 1,33 MB

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

Nội dung

Microsoft PowerPoint Chương 7 Pa Compatibility Mode LOGO CHƯƠNG 7 CÁC THUẬT TOÁN TÌM KIẾM TRÊN ĐỒ THỊ ĐỒ THỊ Euler VÀ ĐỒ THỊ Hamilton CÁC THUẬT TOÁN TÌM KIẾM TRÊN ĐỒ THỊ ĐỒ THỊ Euler VÀ ĐỒ THỊ Hamilton 1 Các thuật toán duyệt đồ thị Duyệt đồ thị Graph Searching hoặc Graph Traversal  Duyệt qua mỗi đỉnh và mỗi cạnh của đồ thị Ứng dụng  Cần để khảo sát các tính chất của đồ thị  Là thành phần cơ bản của nhiều thuật toán trên đồ thị Hai thuật toán duyệt cơ bản  Tìm kiếm theo chiều rộng (Bre.

Trang 1

CHƯƠNG 7

CÁC THUẬT TOÁN TÌM KIẾM TRÊN ĐỒ THỊ

ĐỒ THỊ Euler VÀ ĐỒ THỊ Hamilton

CÁC THUẬT TOÁN TÌM KIẾM TRÊN ĐỒ THỊ

ĐỒ THỊ Euler VÀ ĐỒ THỊ Hamilton

Trang 2

Các thuật toán duyệt đồ thị

 Duyệt đồ thị: Graph Searching hoặc Graph Traversal

 Duyệt qua mỗi đỉnh và mỗi cạnh của đồ thị

 Ứng dụng:

 Cần để khảo sát các tính chất của đồ thị

 Là thành phần cơ bản của nhiều thuật toán trên đồ thị

 Hai thuật toán duyệt cơ bản:

 Tìm kiếm theo chiều rộng (Breadth First Search – BFS)

 Tìm kiếm theo chiều sâu (Depth First Search –

Trang 3

Ý tưởng chung của các thuật toán duyệt

 Trong quá trình thực hiện thuật toán, mỗi đỉnh ở một trong ba trạng thái:

 Chưa thăm, thể hiện bởi màu trắng

 Đã thăm (nhưng chưa duyệt xong), thể hiện bởi màu xám

 Đã duyệt xong, thể hiện bởi màu đen

 Trạng thái của đỉnh sẽ biến đổi theo qui tắc sau:

 Thoạt đầu mỗi đỉnh đều có màu trắng (chưa thăm - not visited).

 Đỉnh đã được thăm sẽ chuyển thành màu xám (trở thành

đã thăm nhưng chưa duyệt xong - visited).

 Khi tất cả các đỉnh kề của một đỉnh v là đã được thăm,

Trang 4

7.1 Tìm kiếm theo chiều sâu

Depth-first Search (DFS)

đồ thị Sau đó chọn u là một đỉnh tuỳ ý kề với s

và lặp lại quá trình đối với u.

đỉnh w là chưa được thăm thì ta sẽ thăm đỉnh này (nó sẽ trở thành đã thăm nhưng chưa duyệt xong)

và bắt đầu từ nó ta sẽ tiếp tục quá trình tìm kiếm.

Trang 5

7.1 Tìm kiếm theo chiều sâu

Depth-first Search (DFS)

 Nếu như không còn đỉnh nào kề với v là chưa thăm thì ta sẽ nói rằng đỉnh này là đã duyệt xong và quay trở lại tiếp tục tìm kiếm

từ đỉnh mà trước đó ta đến được đỉnh v (nếu

Trang 6

Mô tả DFS

 Input: Đồ thị G = (V, E) cho bởi danh sách kề

 Output:

 2 mốc thời gian cho mỗi đỉnh

• d[v] = thời điểm bắt đầu thăm (v chuyển từ trắng sang xám)

• f [v] = thời điểm kết thúc thăm (v chuyển từ xám sang đen)

 [v] : đỉnh đi trước v – tức là đỉnh mà từ đó ta đến thăm v.

 Sử dụng biến color để ghi nhận trạng thái của các

Trang 7

cb

Trang 9

b

Trang 11

b

Trang 12

dc

b

Trang 13

b

Trang 14

c

Trang 15

b

Trang 16

h

f

de

Trang 18

f

g

Trang 19

f

Trang 22

h

Trang 24

Đỉnh bắt đầu duyệt Các đỉnh đã duyệt Các đỉnh chưa duyệt

Trang 25

Duyệt đồ thị trên theo thuật toán DFS

và BFS

c

e b

f

Trang 26

• Các cạnh này tạo thành một rừng gọi là rừng tìm kiếm DFS.

• Các đỉnh được thăm khi thực hiện DFS(v) và các cạnh của cây tạo thành cây được gọi là cây DFS(v)

Trang 27

Cây DFS(g)

fb

Trang 28

 Cạnh ngược (Back edge): đi từ con cháu(descendent) đến tổ tiên (ancestor)

• Đi vào đỉnh xám (đi từ đỉnh xám đến đỉnh xám)

Trang 30

 Cạnh ngược (Back edge): đi từ con cháu(descendent) đến tổ tiên (ancestor)

 Cạnh tới (Forward edge): đi từ tổ tiên đến concháu

• Không là cạnh của cây

Trang 31

b

Trang 32

 Cạnh ngược (Back edge) : đi từ con cháu (descendent) đến tổ tiên (ancestor)

 Cạnh tới (Forward edge) : đi từ tổ tiên đến con cháu

 Cạnh vòng (Cross edge) : cạnh nối hai đỉnh không

có quan hệ họ hàng

• Không là cạnh của cây, và giống như cạnh vòng cũng

Trang 33

b

Trang 34

 Back edge: đi từ con cháu đến tổ tiên

 Forward edge: đi từ tổ tiên đến con cháu

 Cross edge: giữa hai đỉnh không có họ hàng

quan trọng; nhiều thuật toán khôngđòi hỏi phân biệt cạnh tới và cạnh

Trang 36

7.2 Tìm kiếm theo chiều rộng Breadth-first Search

 Input: Đồ thị G = (V, E), vô hướng hoặc có hướng.

 Output:

 d[v] = khoảng cách (độ dài của đường đi ngắn nhất)

từ s (là đỉnh xuất phát tìm kiếm) đến v, với mọi vV d[v] =  nếu v không đạt tới được từ s.

 [v] = u đỉnh đi trước v trong đường đi từ s (là đỉnh xuất phát tìm kiếm) đến v có độ dài d[v].

 Xây dựng cây BFS với gốc tại s chứa tất cả các đỉnh đạt tới được từ s.

Trang 48

Bài tập

Trang 49

7.3 Tìm kiếm đường đi và kiểm tra tính liên thông

Trang 50

Bài toán về tính liên thông

Bài toán: Cho đồ thị vô hướng G =(V,E) Hỏi đồ thị gồm bao nhiêu thànhphần liên thông, và từng thành phầnliên thông gồm các đỉnh nào?

trình chính sẽ sinh ra một thành phần liênthông

Trang 51

Bài toán về tính liên thông

Bài toán: Cho đồ thị vô hướng G =(V,E) Hỏi đồ thị gồm bao nhiêu thànhphần liên thông, và từng thành phầnliên thông gồm các đỉnh nào?

trình chính sẽ sinh ra một thành phần liênthông

Trang 52

DFS giải bài toán liên thông

Trang 53

Tìm đường đi

 Input: Đồ thị G = (V,E) xác định bởi danh sách

Trang 54

Thuật toỏn kiểm tra tớnh liờn thụng mạnh

 Chọn v  V là một đỉnh tuỳ ý

 Thực hiện DFS(v) trên G Nếu tồn tại đỉnh u khôngđược thăm thì G không liên thông mạnh và thuậttoán kết thúc Trái lại thực hiện tiếp

 Thực hiện DFS(v) trên GT = (V, ET), với ET thu được

từ E bởi việc đảo ngợc hớng các cung Nếu tồn tại

đỉnh u không được thăm thì G không liên thôngmạnh, nếu trái lại G là liên thông mạnh

Trang 55

e b

e b

f

Trang 56

BÀI THẢO LUẬN 3

Trang 57

chu trình Euler.

Trang 59

7.4 Đồ thị Euler

Điều kiện cần và đủ

thông G là đồ thị Euler  Mọi đỉnh của Gđều có bậc chẵn

Nếu G có hai đỉnh bậc lẻ còn mọi đỉnh khácđều có bậc chẵn thì G có đường đi Euler

ii Cho G là đồ thị có hướng liên thông G là đồ

thị Euler  G cân bằng

Trang 60

Đường đi Euler-Đường đi Hamilton

tuân theo qui tắc sau: Mỗi khi đi quamột cạnh nào đó thì xoá nó đi, sau đóxoá đỉnh cô lập nếu có

không còn cách đi nào khác

Thuật toán Fleury để tìm chu trình Euler.

Trang 61

Đường đi Euler-Đường đi Hamilton

e f

g h

abcfdcefghbga

Trang 62

7.5 Đồ thị Hamilton

Định nghĩa.

các đỉnh của đồ thị mỗi đỉnh đúng một lần

trình bắt đầu từ một đỉnh đi qua tất cả cácđỉnh còn lại mỗi đỉnh một lần rồi quay vềđỉnh xuất phát

trình Hamilton

Trang 63

Qui tắc để xây dựng một chu trìnhHamilton H hoặc chỉ ra đồ thị vô hướngkhông là Hamilton

phải ở trong H

trình có chiều dài <n) nào được tạothành trong quá trình xây dựng H

Trang 64

Qui tắc 3 Khi chu trình Hamilton mà tađang xây dựng đi qua đỉnh i thì xoá tất

cả các cạnh kề với I mà ta chưa dùng(vìkhông được dùng đến nữa)

Điều này lại có thể cho ta một số đỉnh bậc

2 và ta lại dùng qui tắc 1

treo nào được tạo nên sau khi áp dụngqui tắc 3

Ngày đăng: 22/05/2022, 12:22

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w