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

BÀI GIẢNG LÝ THUYẾT ĐỒ THỊ Graph Theory

352 1,1K 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 352
Dung lượng 3,98 MB

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

Nội dung

Các thuật ngữ Graph Terminology Chúng ta cần các thuật ngữ liên quan đến mối quan hệ giữa các đỉnh và các cạnh của đồ thị sau: • Kề nhau, nối, đầu mút, bậc, bắt đầu, kết thúc, bán bậc v

Trang 1

LÝ THUYẾT ĐỒ THỊ

Graph Theory

Trang 2

Nội dung

Chương 1 Các khái niệm cơ bản

– Đồ thị vô hướng và có hướng

– Các thuật ngữ cơ bản

– Một số dạng đồ thị vô hướng đặc biệt

Chương 2 Biểu diễn đồ thị

– Ma trận kề, ma trận trọng số, Ma trận liên thuộc đỉnh cạnh

– Danh sách cạnh, Danh sách kề

Chương 3 Duyệt đồ thị

– Tìm kiếm theo chiều sâu; Tìm kiếm theo chiều rộng

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

Trang 3

Nội dung

Chương 4 Cây và cây khung của đồ thị

– Cây và các tính chất của cây

– Cây khung của đồ thị

– Bài toán cây khung nhỏ nhất

Chương 5 Bài toán đường đi ngắn nhất

– Phát biểu bài toán

– Đường đi ngắn nhất xuất phát từ một đỉnh (Thuật toán Dijkstra, Ford-Bellman)

– Đường đi ngắn nhất trên đồ thị không có chu trình

– Đường đi ngắn nhất giữa mọi cặp đỉnh (Thuật toán Floyd)

Chương 6 Bài toán luồng cực đại trong mạng

– Mạng, luồng và bài toán luồng cực đại

– Định lý Ford-Fulkerson

– Thuật toán Ford-Fulkerson

– Một số ứng dụng

Trang 4

Chương 1

CÁC KHÁI NIỆM CƠ BẢN

Trang 6

• Trong toán học đời thường hiểu là:

Bản vẽ hay Sơ đồ biểu diễn dữ liệu nhờ sử dụng hệ thống toạ độ.

• Trong toán rời rạc:

Đây là cấu trúc rời rạc có tính trực quan cao, rất tiện ích để biểu diễn các quan hệ.

Đồ thị là gì?

Không phải cái ta muốn đề cập

Không phải cái này

Trang 7

Các ứng dụng thực tế của đồ thị

• Có tiềm năng ứng dụng trong nhiều lĩnh vực (Đồ thị có thể dùng để biểu diễn các quan

hệ Nghiên cứu quan hệ giữa các đối tượng là mục tiêu của nhiều lĩnh vực khác nhau)

• Ứng dụng trong mạng máy tính, mạng giao thông, mạng cung cấp nước, mạng điện,…) lập lịch, tối ưu hoá luồng, thiết kế mạch, quy hoạch phát triển

• Các ứng dụng khác: Phân tích gen, trò chơi máy tính, chương trình dịch, thiết kế hướng đối tượng, …

Trang 8

Mối liên hệ giữa các môn học

321 143

142

322

326

341 370

378

401

421 Đỉnh = môn học

Cạnh có hướng = đk tiên quyết

Trang 9

Biểu diễn mê cung

S

Đỉnh = phòng Cạnh = cửa thông phòng hoặc hành lang

S

E

B

E

Trang 11

Các câu lệnh của chương trình

Program statements

x1=q+y*z x2=y*z-q

Thoạt nghĩ:

Loại Biểu thức con chung:

y*z tính hai lần

Trang 13

Truyền thông trong mạng máy tính

(Information Transmission in a Computer Network)

Hà nội

New York

Bắc kinh Tokyo

Sydney

Seoul

Đỉnh = máy tính Cạnh = tốc độ truyền thông

128

140

181 30

16 56

Trang 14

Luồng giao thông trên xa lộ

(Traffic Flow on Highways)

Đỉnh = thành phố Cạnh = lượng xe cộ trên tuyến đường cao tốc kết nối giữa các thành phố

UW

Trang 15

Mạng xe buýt

Trang 16

Mạng tàu điện ngầm

Trang 17

Sơ đồ đường phố

Trang 18

18

Trang 23

f

h

Trang 26

Ví dụ: Đơn đồ thị có hướng G3= (V3, E3), trong đó

d

f

h

Trang 28

Các loại đồ thị: Tóm tắt

• Chú ý:

Một dạng đồ thị ít sử dụng hơn, đó là giả đồ thị Giả đồ thị là đa đồ thị mà trong đó có các

khuyên (cạnh nối 1 đỉnh với chính nó).

– Cách phân loại đồ thị dùng ở đây chưa chắc đã được chấp nhận trong các tài liệu khác

Khuyên (loop)

Trang 29

Các thuật ngữ

Graph Terminology

Chúng ta cần các thuật ngữ liên quan đến mối quan hệ giữa các đỉnh và các cạnh của đồ thị sau:

Kề nhau, nối, đầu mút, bậc, bắt đầu, kết thúc, bán bậc vào, bán bậc ra,…

u

v v

u

Cạnh vô hướng e=(u,v) Cạnh có hướng (cung) e=(u,v)

Trang 30

Kề (Adjacency)

Cho G là đồ thị vô hướng với tập cạnh E Giả sử eE là cặp (u,v) Khi đó ta nói:

u, v là kề nhau/lân cận/nối với nhau (adjacent / neighbors / connected).

Cạnh e là liên thuộc với hai đỉnh u và v.

v u

e

Trang 31

Tính kề trong đồ thị có hướng

Cho G là đồ thị có hướng (có thể là đơn hoặc đa) và giả sử e = (u,v) là cạnh của G Ta nói:

u và v là kề nhau, u là kề tới v, v là kề từ u

e đi ra khỏi u, e đi vào v.

e nối u với v, e đi từ u tới v

Đỉnh đầu (initial vertex) của e là u

Đỉnh cuối (terminal vertex) của e là v

u

v

e

Trang 33

Bậc của đỉnh (Degree of a Vertex)

Giả sử G là đồ thị vô hướng, vV là một đỉnh nào đó

Bậc của đỉnh v, deg(v), là số cạnh kề với nó

Đỉnh bậc 0 được gọi là đỉnh cô lập (isolated).

Đỉnh bậc 1 được gọi là đỉnh treo (pendant).

• Các ký hiệu thường dùng:

δ(G) = min {deg(v): v V},

(G) = max {deg(v): v V}.

Trang 35

Định lý về các cái bắt tay

(Handshaking Theorem)

Định lý Giả sử G là đồ thị vô hướng (đơn hoặc đa) với tập đỉnh V và tập cạnh E Khi đó

CM: Trong tổng ở vế trái mỗi cạnh e=(u,v)E được tính hai lần: trong deg(u) và deg(v).

Hệ quả: Trong một đồ thị vô hướng bất kỳ, số lượng đỉnh bậc lẻ (đỉnh có bậc là số lẻ) bao giờ

cũng là số chẵn

E

v V

v

2 )

Trang 37

Bậc của đỉnh của đồ thị có hướng

Cho G là đồ thị có hướng, v là đỉnh của G.

Bán bậc vào (in-degree) của v, deg − (v), là số cạnh đi vào v.

Bán bậc ra (out-degree) của v, deg + (v), là số cạnh đi ra khỏi v.

Bậc của v, deg(v): ≡ deg − (v)+deg + (v), là tổng của bán bậc vào và bán bậc ra của v.

Trang 38

Ví dụ

f a

e d

deg-(d) = 2 deg+(d)= 1

deg-(f) = 0 deg+(f)= 0

e – đỉnh đích (target)

Trang 39

Định lý về các cái bắt tay có hướng

Directed Handshaking Theorem

Định lý Giả sử G là đồ thị có hướng (có thể là đơn hoặc đa) với tập đỉnh V và tập cạnh E Khi

đó:

• Chú ý là khái niệm bậc của đỉnh là không thay đổi cho dù ta xét đồ thị vô hướng hay có hướng

E v

v

v

V v V

v V

( deg )

( deg

Trang 42

Ví dụ

Định nghĩa Đồ thị H là con của đồ thị G nếu

V(H) V(G) và E(H) E(G) (viết tắt H G).

Trang 43

Định nghĩa Cho G = (V, E) là đồ thị vô hướng.

Giả sử S V, S ≠ ∅ Đồ thị con cảm sinh bởi S là đồ thị con cực đại của G với tập đỉnh là S (thường ký hiệu là <S>)

Đồ thị con H của đồ thị G được gọi là đồ thị con cảm sinh đỉnh (vertex-induced subgraph) của G nếu tìm được S V sao cho H=<S>.

Trang 44

Loại bỏ đỉnh

The deletion of vertices

Định nghĩa Cho G = (V, E) là đồ thị vô hướng Giả sử S V Ta gọi việc loại bỏ tập đỉnh S khỏi đồ thị là việc loại bỏ tất cả các đỉnh trong S cùng các cạnh kề với chúng

Như vậy nếu ký hiệu đồ thị thu được là GS, ta có GS = <VS>.

Nếu S={v}, thì để đơn giản ta viết Gv.

Trang 45

Định nghĩa Cho G = (V, E) là đồ thị vô hướng.

Giả sử X E, X ≠ ∅ Đồ thị con cảm sinh bởi X là đồ thị con nhỏ nhất của G với tập cạnh là X (ký hiệu bởi <X>)

Đồ thị con H của G được gọi là đồ thị con cảm sinh cạnh (edge-induced subgraph) nếu H=<X> đối với một tập con nào đó X E.

Trang 46

Ví dụ Cho G=(V,E) là đồ thị vô hướng.

Nếu H=<E(G)>, thì có thể suy ra H=<V(G)> được không?

Trang 47

Định nghĩa.

Đồ thị con H G được gọi là đồ thị con bao trùm của G nếu tập đỉnh của H là tập đỉnh của G: V(H) = V(G).

Định nghĩa.

Ta viết H = G + {(u,v), (u,w)} hiểu là

E(H) = E(G) ∪ {(u,v), (u,w)}, trong đó (u,v), (u,w)E(G).

Đồ thị con bao trùm

Spanning Subgraph

47

Trang 49

Hợp của các đồ thị

Nếu S1, S2, S3, S4, S5, S6 là các hình vuông, khi đó Q3 là hợp của các diện của nó: Q3 =

S1S2S3S4S5S6

Trang 51

f là hàm đặt tên lại các đỉnh để cho hai đồ thị là đồng nhất.

• Có thể tổng quát định nghĩa này cho các loại đồ thị còn lại

Trang 52

Bất biến đối với đẳng cấu

E2) :

– Ta phải có |V1|=|V2| , và |E1|=|E2|

Trang 53

c

Trang 54

Khác số lượng đỉnh bậc 2

(1 < >3)

Trang 56

Ví dụ:

x, bu, cz, dv, ey:

56

Trang 57

Ví dụ:

• Hai đồ thị G1 và G2 sau đều có 5 đỉnh và 6 cạnh nhưng không đẳng cấu vì trong G1 có một đỉnh bậc 4 mà trong G2 không có đỉnh bậc 4 nào

57

Trang 58

Ví dụ:

• Hai đồ thị G1 và G2 đều có 7 đỉnh, 10 cạnh, cùng có một đỉnh bậc 4, bốn đỉnh bậc 3 và hai đỉnh bậc 2 Tuy nhiên G1 và G2 là không đẳng cấu vì hai đỉnh bậc 2 của G1 (a và d) là không kề nhau, trong khi hai đỉnh bậc 2 của G2 (y và z) là kề nhau

58

Trang 59

Ví dụ:

• Hãy xác định xem hai đồ thị sau có đẳng cấu hay không?

59

Trang 60

Các đồ thị G và G’ sau có đẳng cấu với nhau không?

60

Trang 62

Đường đi, Chu trình

Định nghĩa Đường đi P độ dài n từ đỉnh u đến đỉnh v, trong đó n là số nguyên dương, trên đồ thị G=(V,E) là dãy

P: x0, x1, , xn-1, xn

trong đó u = x0, v = xn, (xi, xi+1) E, i = 0, 1, 2, , n-1.

Đường đi nói trên còn có thể biểu diễn dưới dạng dãy các cạnh:

(x0, x1), (x1, x2), , (xn-1, xn).

Đỉnh u gọi là đỉnh đầu, còn đỉnh v gọi là đỉnh cuối của đường đi.

Trang 63

Đường đi, Chu trình

Đường đi gọi là đường đi sơ cấp nếu không có đỉnh nào bị lặp lại trên nó.

Đường đi gọi là đường đi đơn giản nếu không có cạnh nào bị lặp lại trên nó.

Nếu có đường đi từ u đến v thì ta nói đỉnh v đạt đến được từ đỉnh u Ta quan

niệm rằng một đỉnh v luôn đạt đến được từ chính nó

Trang 64

Đường đi (Path)

Trang 65

P1

Ví dụ (cont.)

• P2=(4,c,5,e,2,g,6,f,5,d,1) là đường đi

f

g

h P2

Trang 66

P1

Ví dụ (cont.)

P1=(1, b, 2, h, 3) là đường đi đơn

P2=(4,c, 5 ,e,2,g,6,f, 5 ,d,1) là đường đi

f

g

h

P2

Trang 67

Chu trình

Đường đi có đỉnh đầu trùng với đỉnh cuối (tức là u = v) được gọi là chu trình

Chu trình được gọi là sơ cấp nếu như ngoại trừ đỉnh đầu trùng với đỉnh cuối, không có

đỉnh nào bị lặp lại

Trang 68

e

Chu trình (Cycle)

Trang 69

Ví dụ: Chu trình trên đồ thị vô hướng

C2=(U,c,W,e,X,g,Y,f,W,d,V,a,U) là chu trình nhưng không là chu trình đơn

C1

X U

f

g h

C2

Trang 70

Ví dụ: Chu trình trên đồ thị có hướng

C2=(U,c,W,e,X,g,Y,f,W,d,V,a,U) là chu trình nhưng không là chu trình đơn

C1

X U

f

g h

C2

Trang 72

Tính liên thông (Connectedness)

Đồ thị vô hướng được gọi là liên thông nếu luôn tìm được đường đi nối hai đỉnh bất kỳ của nó.

G1 và G2 là các đồ thị liên thông

Đồ thị G bao gồm G1 và G2 không là đồ thị liên thông

f i

G1

G2

Trang 73

Tính liên thông (Connectedness)

Mệnh đề: Luôn tìm được đường đi đơn nối hai đỉnh bất kỳ của đồ thị vô hướng liên thông.

Chứng minh.

Theo định nghĩa, luôn tìm được đường đi nối hai đỉnh bất kỳ của đồ thị liên thông Gọi P là đường đi ngắn nhất nối hai đỉnh u và v Rõ ràng P phải là đường đi đơn.

Trang 74

Tính liên thông (Connectedness)

Thành phần liên thông (Connected component): Đồ thị con liên thông cực đại của đồ thị vô

hướng G được gọi là thành phần liên thông của nó.

g

f i

G3

G2

Trang 75

Thành phần liên thông

Gỉa sử vV Gọi

V(v) – tập các đỉnh của đồ thị đạt đến được từ v,

E(v) – tập các cạnh có ít nhất một đầu mút trong V(v).

Khi đó G(v) = (V(v), E(v)) là đồ thị liên thông và được gọi là thành phần liên thông sinh bởi đỉnh v Dễ thấy G(v) là thành phần liên thông sinh bởi mọi đỉnh uV(v).

g

f i

G3 ≡G(i)

G2 ≡G(f)

Trang 76

Ví dụ: Cho G là đồ thị vô hướng n ≥ 2 đỉnh Biết rằng

Trang 77

Đỉnh rẽ nhánh và cầu (Connectedness)

Đỉnh rẽ nhánh (cut vertex): là đỉnh mà việc loại bỏ nó làm tăng số thành phần liên thông của đồ thị

Cầu (bridge): Cạnh mà việc loại bỏ nó làm tăng số thành phần liên thông của đồ thị

g

e là đỉnh rẽ nhánh

Trang 78

Mệnh đề Cạnh e của đồ thị liên thông G là cầu nếu e không thuộc bất cứ chu trình nào trên G.

Chứng minh

( ⇒) Cho e là cầu của G

Giả sử e = (u,v), và giả sử ngược lại là e nằm trên chu trình

C  u, v, w, …, x, u.

 Khi đó

C e  v, w, …, x, u

là đường đi từ u đến v trên đồ thị G e.

Ta sẽ chứng minh: G e là liên thông.

(Điều đó sẽ mâu thuẫn với giả thiết e là cầu)

Ví dụ

78

Trang 79

Thực vậy, giả sử u1, v1 V(Ge)=V(G)

Do G là liên thông, nên đường đi P: u1v1 trên G.

Nếu e P, thì P cũng là đường đi trên Ge

⇒ ∃ đường đi u1v1 trên Ge

Nếu e P, thì

(PC)e là đường đi u1v1 trên Ge (xem hình)

Vậy luôn tìm được đường đi u1v1 trên Ge

Trang 80

(⇐) Giả sử e=(u,v) là cạnh không nằm trên bất cứ chu trình nào của G Khi đó Ge không chứa đường

đi uv.

Trái lại, nếu P là đường đi uv trên Ge, thì P{(u,v)} là chu trình trên G chứa e ?!

Chứng minh mệnh đề (cont)

80

Trang 81

Không phải tất cả các đồ thị liên thông là đồng giá trị!

Q: Hãy đánh giá xem đồ thị nào dưới đây là sơ đồ nối mạng máy tính có giá trị hơn:

Trang 82

k-Connectivity

A: Ta muốn mạng máy tính vẫn là thông suốt ngay cả khi có một máy bị hỏng:

1) 2nd best Vẫn có một điểm

yếu— “cut vertex”

2) 3rd best Thông suốt

nhưng mỗi máy đều là điểm “yếu”

Trang 85

Tính liên thông của Đồ thị có hướng

Đồ thị có hướng được gọi là liên thông mạnh (strongly connected) nếu như luôn tìm được đường đi nối hai đỉnh bất kỳ của nó

Đồ thị có hướng được gọi là liên thông yếu (weakly connected ) nếu như đồ thị vô

hướng thu được từ nó bởi việc bỏ qua hướng của tất cả các cạnh của nó là đồ thị vô hướng liên thông

Dễ thấy là nếu G là liên thông mạnh thì nó cũng là liên thông yếu, nhưng điều ngược

lại không luôn đúng

Trang 86

f a

e d

f

a

e d

f

Trang 88

Một số dạng đơn đồ thị vô hướng đặc biệt

Đồ thị đầy đủ (Complete graphs) Kn

Chu trình (Cycles) Cn

Bánh xe (Wheels) Wn

n-Cubes Qn

• Đồ thị hai phía (Bipartite graphs)

Đồ thị hai phía đầy đủ (Complete bipartite graphs) Km,n

• Đồ thị chính qui

• Cây và rừng

• Đồ thị phẳng

Trang 89

Đồ thị đầy đủ

Complete Graphs

• Với nN, đồ thị đầy đủ n đỉnh, Kn , là đơn đồ thị vô hướng với n đỉnh trong đó giữa hai đỉnh bất

kỳ luôn có cạnh nối: ∀u,vV: uv (u,v)E

1 1

n i

Trang 90

Đồ thị đầy đủ

Complete Graphs

K25

90

Trang 91

Đồ thị đầy đủ

Complete Graphs

Trang 95

Siêu cúp

(n-cubes /hypercubes)

• Với nN, siêu cúp Qn là đơn đồ thị vô hướng gồm hai bản sao của Qn-1 trong đó các đỉnh tương

ứng được nối với nhau Q0 gồm duy nhất 1 đỉnh

Trang 96

Siêu cúp Q4

Trang 97

– Với mọi nN, nếu Qn=(V,E), trong đó V={v1,…,va} và E={e1,…,eb}, thì Qn+1=(V{v1´,

…,va´}, E{e1´,…,eb´}{(v1,v1´),(v2,v2´),…,(va,va´)})

Nghĩa là siêu cúp Qn+1 thu được từ hai siêu cúp Qn và Q ’

n bằng việc nối các cặp đỉnh

tương ứng.

Trang 98

Định nghĩa Đồ thị G=(V,E) là hai phía nếu và chỉ nếu

V = V1V2 với V1∩V2=∅ và

eE: v1V1, v2V2: e=(v1,v2)

Bằng lời: Có thể phân hoạch

tập đỉnh thành hai tập sao cho

mỗi cạnh nối hai đỉnh thuộc

hai tập khác nhau

Đồ thị hai phía (Bipartite Graphs)

Định nghĩa này là chung cho cả đơn lẫn

đa đồ thị vô hướng, có hướng.

Trang 99

Đồ thị hai phía đầy đủ

(Complete Bipartite Graphs)

• Với m, nN, đồ thị hai phía đầy đủ Km,n là đồ thị hai phía trong đó |V1| = m, |V2| = n, và

Trang 100

Định nghĩa Đồ thị G được gọi là đồ thị chính qui bậc r nếu tất cả các đỉnh của nó có bậc bằng r

Đồ thị chính qui bậc 3

Trang 101

Octahedron Bát diện

Dodecahedron Thập nhị diện

Icosahedron Thập bát diện

Trang 103

Bài tập

• Một đồ thị bánh xe Wn có 36 cạnh Tìm số đỉnh của đồ thị?

• Cho đồ thị G= (V,E) có 10 đỉnh, mỗi đỉnh có bậc bằng 6 Tìm số cạnh của đồ thị?

• Đồ thị nào có kích thước ma trận liên kề bằng ma trận liên thuộc.(vẽ hình minh họa)

103

Trang 104

Bài tập

• Đồ thị vòng có phải là đồ thị phân đôi không? Giải thích, vẽ hình minh họa?

104

Trang 105

• Cho biết tên gọi của đồ thị?

105

Trang 106

Cây và rừng (Tree and Forest)

Định nghĩa Ta gọi cây là đồ thị vô hướng liên thông không có chu trình Đồ thị không có chu trình được gọi là

Trang 107

VÍ DỤ

G1, G2 là cây G3, G4 không là cây

Trang 108

Các tính chất cơ bản của cây

Định lý Giả sử T=(V,E) là đồ thị vô hướng n đỉnh Khi đó các mệnh đề sau đây là tương đương:

(1) T là cây;

(2) T không chứa chu trình và có n-1 cạnh;

(3) T liên thông và có n-1 cạnh;

(4) T liên thông và mỗi cạnh của nó đều là cầu;

(5) Hai đỉnh bất kỳ của T được nối với nhau bởi đúng một đường đi đơn;

(6) T không chứa chu trình nhưng hễ cứ thêm vào nó một cạnh ta thu được đúng một chu trình.

Trang 109

Đồ thị phẳng

(Planar Graphs)

Định nghĩa Đồ thị vô hướng G được gọi là đồ thị phẳng nếu như có thể vẽ nó trên mặt phẳng sao

cho không có hai cạnh nào cắt nhau ngoài ở đỉnh

Ví dụ: K4 là đồ thị phẳng?

K4 là đồ thị phẳng!

Trang 110

Các đồ thị Platonic đều phẳng

• Tất cả 5 đồ thị Platonic đều là đồ thị phẳng

110

Trang 111

3-Cube là đồ thị phẳng

Trang 112

4-Cube có là đồ thị phẳng không?

Có vẻ phẳng, nhưng chứng minh bằng cách nào?

Trang 113

K3,3 và K5 không là đồ thị phẳng

Đồ thị K3,3 và K5 không là đồ thị phẳng

Mọi cách vẽ K3,3 đều phải có ít nhất một giao điểm ngoài đỉnh (gọi là vết cắt).

113

Trang 114

Khảo sát đồ thị phẳng

• Để khảo sát đồ thị phẳng ta có thể chỉ hạn chế ở đơn đồ thị Bởi vì:

• Nếu đồ thị phẳng có cạnh lặp hay là khuyên (loop)

– Chập các cạnh lặp lại thành một cạnh đơn

– Loại bỏ tất cả các khuyên

• Vẽ đơn đồ thị thu được sao cho không có vết cắt

• Sau đó chèn vào các khuyên và cạnh lặp

114

Ngày đăng: 25/08/2017, 09:33

TỪ KHÓA LIÊN QUAN

w