1. Trang chủ
  2. » Công Nghệ Thông Tin

Chương II. Lý thuyết đồ thị doc

49 837 7

Đ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 49
Dung lượng 2,36 MB

Nội dung

 G được gọi là đa đồ thị nếu giữa hai đỉnh phân biệt u, v của V có thể có nhiều hơn 1 cạnh trong E nối từ u tới v  G được gọi là giả đồ thị nếu G là đa đồ thị và có thể có cạnh nối từ

Trang 1

Ch ươ ng II Lý thuy t đ th ế ồ ị

I Các khái niệm cơ bản

II Biểu diễn đồ thịIII Tính liên thông

IV Chu trình Euler

V Bài toán tìm đường đi ngắn nhất

VI Đồ thị phẳngVII.Tô màu đồ thị

Trang 2

I Các khái ni m c b n ệ ơ ả

1 ĐỊNH NGHĨA ĐỒ THỊ (GRAPH)

 Là một cấu trúc rời rạc gồm các đỉnh và các cạnh nối các đỉnh

đó Được mô tả hình thức: G = (V, E)

V gọi là tập các đỉnh (Vertices) và E gọi là tập các cạnh

(Edges) Có thể coi E là tập các cặp (u, v) với u và v là hai

đỉnh thuộc V.

 Ví dụ:

Đường

Trang 3

2 Phân lo i đ th ạ ồ ị

 G được gọi là đơn đồ thị nếu giữa hai đỉnh phân biệt u,

v của V có nhiều nhất là 1 cạnh trong E nối từ u tới v

 G được gọi là đa đồ thị nếu giữa hai đỉnh phân biệt u, v của V có thể có nhiều hơn 1 cạnh trong E nối từ u tới v

 G được gọi là giả đồ thị nếu G là đa đồ thị và có thể có cạnh nối từ một đỉnh đến chính nó Cạnh đó được gọi là

khuyên

 G được gọi là đồ thị vô hướng nếu các cạnh trong E

đỉnh cuối

 G được gọi là đồ thị có hướng nếu các cạnh trong E có

Trang 4

Ví dụ

Đơn đồ thị

vô hướng

Đơn đồ thị

Trang 5

3 C nh liên thu c, đ nh k , b c ạ ộ ỉ ề ậ

 Đối với đồ thị vô hướng G = (V, E) Xét một cạnh e ∈ E, nếu

e = (u, v) thì ta nói hai đỉnh u và v là kề nhau (adjacent) và cạnh e này liên thuộc (incident) với đỉnh u và đỉnh v.

Với một đỉnh v trong đồ thị, ta định nghĩa bậc (degree) của v,

ký hiệu deg(v) là số cạnh liên thuộc với v

 Định lý: Giả sử G = (V, E) là đồ thị vô hướng với m cạnh, khi

đó tổng tất cả các bậc đỉnh trong V sẽ bằng 2m:

 Chứng minh: Khi lấy tổng tất cả các bậc đỉnh tức là mỗi cạnh

e = (u, v) bất kỳ sẽ được tính một lần trong deg(u) và một lần trong deg(v) Từ đó suy ra kết quả.

 Hệ quả: Trong đồ thị vô hướng, số đỉnh bậc lẻ là số chẵn

m

deg(v)

Trang 6

 Đối với đồ thị có hướng G = (V, E) Xét một cung e ∈ E, nếu

e = (u, v) thì đỉnh u khi đó được gọi là đỉnh đầu,đỉnh v được gọi là đỉnh cuối của cung e.

Với mỗi đỉnh v trong đồ thị có hướng, ta định nghĩa: bậc ra

của v ký hiệu deg+ (v) là số cung đi ra khỏi nó; bậc vào ký hiệu

deg-(v) là số cung đi vào đỉnh đó.

 Định lý: Giả sử G = (V, E) là đồ thị có hướng với m cung, khi

v

m v

v) deg ( )(

deg

Trang 7

4 M t s d ng đ th đ c bi t ộ ố ạ ồ ị ặ ệ

 a Đồ thị đầy đủ Kn (n≥1) có n đỉnh và mỗi cặp đỉnh đều có đúng một cạnh nối.

Trang 8

 b Chu trình Cn (n≥3) có n đỉnh v1,v2, vn và các cạnh (v1,v2); (v2,v3) (vn-1,vn) và (vn,v1)

Trang 9

 c Đồ thị hình bánh xe

 Khi thêm một đỉnh vào giữa chu trình Cn và nối đỉnh này với các đỉnh của đồ thị Cn ta thu được đồ thị hình bánh xe.

Trang 10

 d Đồ thị hình khối Qn có 2 n đỉnh, mỗi đỉnh được biểu diễn bằng xâu nhị phân độ dài n Hai đỉnh là liền kề nếu các xâu nhị phân biểu diễn chúng khác nhau đúng một bit.

Q 2

010

011 001

000

101 100

Q3

Trang 11

 e Đồ thị phân đôi là đồ thị có tập các đỉnh V có thể phân làm hai tập con không rỗng, rời nhau V1 và V2 sao cho mỗi cạnh của đồ thị nối 1 đỉnh của V1 với 1 đỉnh của V2

 Đồ thị phân đôi đầy đủ Km,n là đồ thị có tập các đỉnh được phân thành hai tập con tương ứng có m đỉnh và n đỉnh

và có cạnh giữa hai đỉnh nếu đỉnh thứ nhất thuộc tập con này, đỉnh thứ hai thuộc tập con kia

Trang 12

 aij= 1 nếu (i, j) ∈ E

 aij = 0 nếu (i, j) E ∉

 Đối với đa đồ thị thì việc biểu diễn cũng tương tự trên, chỉ có điều nếu như (i, j) là cạnh thì không phải ta ghi số 1 vào vị trí

a mà là ghi số cạnh nối giữa đỉnh i và đỉnh j

Trang 13

Ví dụ

Trang 14

u đi m và nh c đi m

 Ưu điểm của ma trận liền kề:

 Đơn giản, trực quan, dễ cài đặt trên máy tính

 Để kiểm tra xem hai đỉnh (u, v) của đồ thị có kề nhau hay không, ta chỉ việc kiểm tra bằng một phép so

sánh: auv≠ 0

 Nhược điểm của ma trận liền kề:

 Tiêu tốn bộ nhớ: bất kể số cạnh của đồ thị là nhiều

hay ít, ma trận liền kề luôn luôn đòi hỏi n2 ô nhớ để lưu các phần tử ma trận

 Khó làm việc với đồ thị có số lượng đỉnh lớn

Trang 15

2 Danh sách c nh ạ

 Trong trường hợp đồ thị có n đỉnh, m cạnh, ta có thể biểu

diễn đồ thị dưới dạng danh sách cạnh, trong cách biểu diễn này, người ta liệt kê tất cả các cạnh của đồ thị trong một danh sách, mỗi phần tử của danh sách là một cặp (u, v) tương ứng với một cạnh của đồ thị.

 Danh sách được lưu trong bộ nhớ dưới dạng mảng hoặc

danh sách móc nối Ví dụ với đồ thị dưới đây:

Trang 16

 Ưu điểm của danh sách cạnh:

 Trong trường hợp đồ thị có số cạnh tương đối nhỏ: chẳng hạn m < 6n cách biểu diễn bằng danh sách cạnh sẽ tiết kiệm được không gian lưu trữ, bởi nó chỉ cần 2m ô nhớ

để lưu danh sách cạnh.

 Dể dàng duyệt tất cả các cạnh của đồ thị.

Nhược điểm của danh sách cạnh:

 Nhược điểm cơ bản của danh sách cạnh là khi ta cần duyệt tất cả các đỉnh kề với đỉnh v nào đó của đồ thị, thì chẳng có cách nào khác là phải duyệt tất cả các cạnh, lọc

ra những cạnh có chứa đỉnh v và xét đỉnh còn lại.

Trang 18

III Tính liên thông

dãy các cạnh e1, e2, en với (u,x1) = e1; (x1,x2) = e2; (xn-1,v) =

en

Trang 19

 Một đồ thị không liên thông là hợp của 1 hay nhiều đồ thị con liên thông Các đồ thị này được gọi là các thành phần liên thông

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

Trang 20

IV Chu trình và đ ườ ng đi Euler

 Bài toán bảy cây cầu Euler, còn gọi là Bảy cầu ở Königsberg nảy sinh từ vấn đề cụ thể Thành phố Königsberg, Đức (nay

là Kaliningrad, Nga) nằm trên sông Pregel, bao gồm hai hòn đảo lớn nối với nhau và với đất liền bởi bảy cây cầu Câu hỏi đặt ra là có thể đi theo một tuyến đường mà đi qua mỗi cây cầu đúng một lần rồi quay lại điểm xuất phát hay không Năm

1736, Leonhard Euler đã chứng minh rằng điều đó là không thể được Trong lịch sử toán học, lời giải của Euler cho bài toán bảy cây cầu ở Königsberg được coi là định lý đầu tiên của lý thuyết đồ thị.

Trang 22

Các đ nh nghĩa ị

 Đường đi Euler (Eulerian path, Eulerian trail hoặc Euler walk) trong đồ thị vô hướng là đường đi của đồ thị đi qua tất cả các cạnh của đồ thị mỗi cạnh đúng một lần

 Chu trình Euler (Eulerian cycle, Eulerian circuit hoặc Euler tour) trong đồ thị vô hướng là một chu trình đi qua tất cả các cạnh của đồ thị mỗi cạnh đúng một lần

 Đồ thị gọi là đồ thị Euler khi nó chứa chu trình Euler và được gọi là nửa Euler khi nó chứa đường đi Euler

Trang 23

Đ nh lý Euler v chu trình và đ ị ề ườ ng đi Euler

 Đối với các đồ thị có hướng, các thuật ngữ đường đi và chu trình được thay bằng đường đi có hướng và chu trình có hướng

 Đồ thị vô hướng liên thông G=(V, E) có chu trình Euler khi và chỉ khi G không có đỉnh nào bậc lẻ

 Đồ thị vô hướng liên thông G=(V, E) có đường đi Euler khi và chỉ khi G có không quá hai đỉnh bậc lẻ Nếu G có đúng hai đỉnh bậc lẻ thì đường đi Euler có hai đầu đường đi nằm ở hai đỉnh bậc lẻ

Trang 24

Mô t gi i thu t xây d ng chu trình Euler ả ả ậ ự

Input: Cho G = (V,E) là đồ thị vô hướng, liên thông , tất

cả các đỉnh đều có bậc chẵn

Output: Chu trình Euler

Giải thuật xây dựng chu trình Euler

 Bước 1: Xây dựng một chu trình đơn Xuất phát từ đỉnh bất kỳ, chẳng hạn x0, vì bậc x0 lớn hơn 1, nên chọn được cạnh u0 = (xo,x1) Đến lượt x1, vì x1 có bậc lớn hơn 1, nên chọn được cạnh u1 = (x1,x2) khác với u0 Tiếp tục như vậy,

vì số đỉnh là hữu hạn nên sau một số hữu hạn bước ta gặp lại x0 Khi đó ta có một chu trình đơn, kí hiệu là C

Trang 25

 Nếu tất cả các cạnh của G đã nằm trong C thì C là chu trình Euler của G.

 Bước 2: Nếu còn cạnh của G chưa nằm trong C thì loại các cạnh trong C và sau đó loại các đỉnh cô lập khỏi G, gọi phần còn lại của G là G' Khi đó G' vẫn là liên thông

và không có đỉnh bậc lẻ Thêm nữa, vì G là liên thông nên có ít nhất một đỉnh chung của C với G'

 Bước 3: Xuất phát từ đỉnh chung của G' và C, xây dựng chu trình đơn C' của G' như trong bước 1, ghép C' vào

C và quay về bước 2

Trang 27

Xuất phát từ B, xây dựng chu

trình đơn C 1 = (B,3,C,4,B), xóa

các cạnh trong C 1 khỏi G 0 , phần

còn lại là G 1

Ghép thêm chu trình đơn C 1 =

(B,3,C,4,B) vào chu trình đơn C 0

thành C=(A,1, B,4,C,3,B ,2,A)

Xuất phát từ A, xây dựng chu trình đơn C 2 = (A,6,D,7,C,5,A), xóa các cạnh trong C 2 khỏi G 1 Lúc này các cạnh của

Trang 28

V Bài toán tìm đ ườ ng đi ng n nh t ắ ấ

Bài toán

 Cho một đồ thị G = (V,E) có trọng số và một đỉnh khởi đầu s Cần tìm được đường đi ngắn nhất từ đỉnh khởi đầu s đến một đỉnh khác của đồ thị

10 5

4

9

12

Trang 29

Thuật toán Johnson: giải bài toán đường đi ngắn nhất

cho mọi cặp đỉnh, có thể nhanh hơn thuật toán Warshall trên các đồ thị thưa

Trang 30

Floyd-Thu t toán Dijkstra ậ

 Thuật toán Dijkstra, mang tên của nhà toán người Hà Lan Edsger Dijkstra, là một thuật toán giải quyết bài toán tìm đường đi ngắn nhất Ở đây ta sẽ xét thuật toán Dijkstra trong đồ thị vô hướng liên thông có trọng số dương

Trang 31

Mô t thu t toán Dijkstra ả ậ

 Xây dựng một tập các đỉnh S={s}, với s là đỉnh khởi đầu

 Với mỗi đỉnh v, chúng ta quản lý một nhãn d[v] là độ dài

bé nhất trong các đường đi từ đỉnh s đến đỉnh v

 Trong các đỉnh ngoài S, chúng ta chọn đỉnh u có nhãn d[u] bé nhất, bổ sung vào tập S Tập S được mở rộng thêm một đỉnh, khi đó chúng ta cần cập nhật lại các nhãn d cho phù hợp với định nghĩa

 Thuật toán kết thúc khi toàn bộ các đỉnh đã nằm trong tập S, hoặc nếu chỉ cần tìm đường đi ngắn nhất đến một đỉnh đích t, thì chúng ta dừng lại khi đỉnh t được bổ sung vào tập S

Trang 32

Mô ph ng thu t toán Dijkstra ỏ ậ

Input: + Đồ thị liên thông G có trọng số dương G có các

đỉnh V = {v1, v2, ,vn} và có trọng số w(vi, vj) với w(vi, vj) = ∞ nếu (vi, vj) không là một cạnh trong G

Trang 33

Procedure Dijkstra(G)

For i:=1 to n do

begin

d(vi) := ∞; {Khởi tạo độ dài ngắn nhất từ đỉnh xuất phát đến các đỉnh}

d(a) := 0; {Khởi tạo độ dài ngắn nhất từ đỉnh xuất phát đến chính nó}

For tất cả các đỉnh v không thuộc S

If d(u) + w(u,v) < d(v) then

begin d(v) := d(u) + w(u,v); truoc[v]:=u; end;

Trang 34

Ví dụ

 Tìm đường đi ngắn nhất giữa đỉnh a và đỉnh z trong đồ thị có trọng số sau

Trang 36

+ Đưa đỉnh d vào tập S={a,d}

+ Có L(d)+u(d,b)=3<d(b)= 4 nên thay d(b)=3

+ Có L(d)+u(d,c)=10<d(c)= ∞ nên thay d(c)=10

+ Có L(d)+u(d,e)=12<d(e)= ∞ nên thay d(e)=12

+ Các đỉnh khác giữ nguyên nhãn

+ Đưa đỉnh b vào tập S vì d(b)=3

là nhỏ nhất S={a,d,b}

+ Có L(b)+u(b,c)=8<d(c)= 10 nên thay d(c)=8

+ Các đỉnh khác giữ nguyên nhãn

Trang 37

+ Đưa đỉnh c vào tập S vì

d(c)=8 là nhỏ nhất S={a,d,b,c} + Có L(c)+u(c,e)=10<d(e)=12 nên thay d(e)=10

+ Có L(c)+u(c,z)=14<d(z)= ∞ nên thay d(z)=14

+ Đưa đỉnh e vào tập S vì

d(e)=10 là nhỏ nhất

S={a,d,b,c,e }

+ Có L(e)+u(e,z)=13<d(z)=14 nên thay d(z)=13

Trang 38

+ Đưa đỉnh z vào tập S={a,d,b,c,e,z}

Kết quả

Đường đi ngắn nhất là: a,d,b,c,e,z

Độ dài là d(z) = 13

Chương trình

Trang 39

VI Đ th ph ng ồ ị ẳ

 Đồ thị được gọi là đồ thị phẳng nếu ta có thể vẽ nó trên mặt phẳng sao cho các cạnh của nó không cắt nhau tại các điểm không phải là đỉnh Cách vẽ như vậy sẽ được gọi là biểu diễn phẳng của đồ thị

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

Q3 có là đồ thị phẳng hay không ?

Trang 40

diễn phẳng của đồ thị Khi đó r = e - v + 2

 Hệ quả 1: Nếu G là đơn đồ thị phẳng liên thông với e cạnh, v đỉnh trong đó v ≥ 3, khi đó e ≤ 3v - 6

 Hệ quả 2: Nếu 1 đơn đồ thị phẳng liên thông có e cạnh,

v đỉnh (v ≥3) và không có chu trình độ dài 3 thì e ≤ 2v - 4

Trang 41

Đ nh lí Kuratovski ị

 Phép chia cạnh trên đồ thị G đối với cạnh e {u,w} được một

đồ thị chứa một đỉnh mới v, và cạnh e được thay bởi hai cạnh mới {u,v} và {v,w}.

 Phép đồng phôi giữa hai đồ thị G và G′ nếu tồn tại một đồ thị

H sao cho cả G và G′ đều là kết quả thu được sau khi thực hiện một số phép chia cạnh đối với đồ thị H

Trang 42

VII Tô màu đ th ồ ị

 Tô màu cho một đơn đồ thị là sự gán màu cho các đỉnh của nó sao cho không có hai đỉnh liền kề được gán cùng

1 màu

kề nhau

 Số màu của một đồ thị là số tối thiểu các màu cần thiết

để tô màu đồ thị này

 Định lý 4 màu: Số màu của một đồ thị phẳng là không lớn hơn 4

 Ví dụ: Số màu của đồ thị Kn là n vì mọi cặp đỉnh của đồ thị đều có cạnh nối nên không thể có những đỉnh nào trùng màu được

Trang 43

Algorithm of Welsh and Powell

 Sort the vertices in decreasing order of degree and initially have every vertex uncolored.

 Traverse the vertices in order, giving a vertex color 1 if it is uncolored and it does not yet have a neighbor with color 1.

 Repeat this process with colors 2, 3, etc until

no vertex is uncolored.

Trang 44

Thu t toán tô màu Welsh and Powell ậ

 b1 Sắp xếp các đỉnh theo thứ tự giảm dần theo bậc Khởi tạo cho mọi đỉnh đều chưa có màu

 b2 Duyệt qua các đỉnh theo thứ tự, tô cho đỉnh màu 1 nếu nó chưa có màu và nó không có đỉnh liền kề có màu

là màu 1.(so sánh màu với các đỉnh, chữ không phải chắc đỉnh đầu tiên)

 b3 Lặp lại bước 2 với màu 2, màu 3, vv cho đến khi mọi đỉnh đều đã được tô màu

Trang 45

ng d ng c a bài toán tô màu đ th

Bài toán lập lịch thi

 Lập lịch thi sao cho không có sinh viên nào thi 2 môn cùng một lúc

Ý tưởng

 Xem mỗi môn thi là một đỉnh của đồ thị

 Giữa 2 đỉnh có cạnh nối nếu có sinh viên phải thi cả hai môn đó

 Thời gian thi của các môn được biểu diễn bởi các màu khác nhau

 Như vậy việc lập lịch thi sẽ tương ứng với việc tô màu cho đồ thị

Trang 47

Bài toán phân chia t n s ầ ố

 Các kênh truyền hình từ số 2 đến số 13 được phân chia cho các đài truyền hình ở bắc mỹ sao cho không có hai đài phát nào cách nhau nhỏ hơn 150 Km lại dùng chung 1 kênh Có thể chia kênh bằng mô hình đồ thị.

Trang 48

Đ th đ i ng u ồ ị ố ẩ

 Mọi bản đồ trên mặt phẳng có thể biểu diễn bằng một đồ thị bằng cách như sau

 Mỗi miền của bản đồ ứng với một đỉnh của đồ thị

 Có cạnh nối giữa hai đỉnh của đồ thị nếu hai miền tương ứng có chung biên giới.(Hai miền chỉ chung nhau một điểm thì không được gọi là chung nhau)

 Đồ thị nhận được bằng cách như thế gọi là đồ thị đối ngẩu của bản đồ

 Ví dụ:

Ngày đăng: 28/07/2014, 06:21

HÌNH ẢNH LIÊN QUAN

Đồ thị không có đỉnh - Chương II. Lý thuyết đồ thị doc
th ị không có đỉnh (Trang 26)
Đồ thị chứa một đỉnh mới v, và cạnh e được thay bởi hai cạnh  mới {u,v} và {v,w}. - Chương II. Lý thuyết đồ thị doc
th ị chứa một đỉnh mới v, và cạnh e được thay bởi hai cạnh mới {u,v} và {v,w} (Trang 41)

TỪ KHÓA LIÊN QUAN

w