° Baäc cuûa moät ñænh trong ñoà thò voâ höôùng laø soá caùc caïnh.. lieân thuoäc vôùi noù.[r]
Trang 1Đồ thị
7.1 Mở đầu
Tài liệu này được soạn theo sách Toán học rời rạc ứng dụng trong tin học, K H
Rosen, người dịch: Phạm Văn Thiều và Đặng Hữu Thịnh, Nhà xuất bản Khoa học
và kỹ thuật, 1998.
Tài liệu lưu hành nội bộ
Trang 2Các loại đồ thị
– Đồ thị 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 đó.
– Chương này: Giới thiệu các loại đồ thị khác nhau bằng mô hình các loại mạng máy tính khác nhau.
– Định nghĩa 1 Một đơn đồ thị G = (V, E) gồm
° V: tập các đỉnh
° E: tập các cạnh
– cạnh là cặp không thứ tự của các đỉnh phân biệt.
TPHCM
A
Cần Giờ
Trang 3Các loại đồ thị
– Định nghĩa 2 Một đa đồ thị G = (V, E) gồm
° V: tập các đỉnh
° E: tập các cạnh
° hàm f từ E tới {{u, v} u, v V, u v} Các cạnh e1 và e2được gọi là song song hay cạnh bội nếu f(e1) = f(e2 ).
Tây Ninh
Cần Thơ
B TPHCM
A
C
Cần Giờ
Trang 4Các loại đồ thị
– Định nghĩa 3 Một giả đồ thị G = (V, E) gồm
° V: tập các đỉnh
° E: tập các cạnh
° hàm f từ E tới {{u, v} u, v V}.
° Một cạnh là một khuyên nếu f(e) = {u} với một đỉnh u nào
đó.
Tây Ninh
Cần Thơ
B TPHCM
A
C Cần Giờ
Trang 5Các loại đồ thị
• Nhận xét:
– Giả đồ thị là loại đồ thị vô hướng tổng quát nhất vì
° có thể chứa các khuyên
° có thể chứa các cạnh bội.
– Đa đồ thị: có thể chứa các cạnh bội, nhưng không chứa
khuyên.
– Đồ thị đơn: không chứa khuyên, không chứa cạnh bội.
Trang 6Các loại đồ thị
– Định nghĩa 4 Một đồ thị có hướng G = (V, E) gồm
° V: tập các đỉnh
° E: tập các cạnh
– cạnh là cặp có thứ tự (không cần phải khác nhau) của
các phần tử thuộc V.
Tây Ninh
Cần Thơ
B TPHCM
A
C
Cần Giờ
Trang 7Các loại đồ thị
– Định nghĩa 5 Một đa đồ thị có hướng G = (V, E) gồm
° V: tập các đỉnh
° E: tập các cạnh
° hàm f từ E tới {(u, v) u, v V}.
– Các cạnh e1 và e2 là các cạnh bội nếu f(e1) = f(e2)
Tây Ninh
Cần Thơ
B TPHCM
A
C
Cần Giờ
Trang 8Các loại đồ thị
• Bảng 1 Thuật ngữ đồ thị
Loại
Đơn đồ thị
Đa đồ thị
Giả đồ thị
Đồ thị có hướng
Đa đồ thị có hướng
Cạnh
Vô hướng Vô hướng Vô hướng Có hướng Có hướng
Có cạnh bội không?
Không Có Có Không Có
Có khuyên không?
Không Không Có Có Có
Trang 9Các mô hình đồ thị
– Ví dụ 1 Đồ thị “lấn tổ” trong sinh thái học,
° Mỗi loài được biểu diễn bằng một đỉnh
° Một cạnh vô hướng nối hai đỉnh nếu hai loài được biểu diễn bằng các đỉnh này là cạnh tranh với nhau (tức là chúng có chung nguồn thức ăn).
Cú Gấu trúc Cắt
Quạ
Sóc Thú có túi
Chuột trù
Chuột Chim gõ kiến
Mô hình của hệ sinh thái rừng
Trang 10Các mô hình đồ thị
– Ví dụ 2 Đồ thị ảnh hưởng dùng để mô hình ảnh hưởng của các
người trong một nhóm người
° Mỗi người của nhóm được biểu diễn bằng một đỉnh
° Khi một người được biểu diễn bằng đỉnh a có ảnh hưởng lên người được biểu diễn bằng đỉnh b thì đỉnh a và đỉnh b được
nối bằng một cạnh có hướng
Minh
Hùng
Hải
Trang 11Các mô hình đồ thị
– Ví dụ 3 Thi đấu vòng tròn Một cuộc thi đấu thể thao trong đó
mỗi đội đấu với mỗi đội khác đúng một lần gọi là đấu vòng
tròn Mô hình bằng một đồ thị có hướng:
° Mỗi đội là một đỉnh
° Một cạnh đi từ đỉnh a đến đỉnh b, ký hiệu là (a, b), nếu đội a thắng đội b.
Trang 12Các mô hình đồ thị
– Ví dụ 4 Đồ thị có ưu tiên trước sau.
° Mỗi câu lệnh được biểu diễn bằng một đỉnh
° Có một cạnh từ một đỉnh tới một đỉnh khác nếu câu lệnh được biểu diễn bằng đỉnh thứ hai không thể thực thi được trước khi câu lệnh được biểu diễn bằng đỉnh thứ nhất thực thi
Trang 13Đồ thị
7.2 Các thuật ngữ về đồ thị
Tài liệu này được soạn theo sách Toán học rời rạc ứng dụng trong tin học, K H
Rosen, người dịch: Phạm Văn Thiều và Đặng Hữu Thịnh, Nhà xuất bản Khoa học
và kỹ thuật, 1998.
Tài liệu lưu hành nội bộ
Trang 14Những thuật ngữ cơ sở
– Định nghĩa 1.
° Hai đỉnh u và v trong một đồ thị vô hướng G được gọi là
liền kề (hay láng giềng) nếu {u, v} là một cạnh của G.
° Nếu e = {u, v} thì e gọi là cạnh liên thuộc với các đỉnh u và
v.
° Cạnh e cũng được gọi là cạnh nối các đỉnh u và v.
° Các đỉnh u và v gọi là các điểm đầu mút của cạnh {u, v}.
– Định nghĩa 2.
° Bậc của một đỉnh trong đồ thị vô hướng là số các cạnh
liên thuộc với nó.
° Riêng khuyên tại một đỉnh được tính hai lần cho bậc của nó.
° Ký hiệu bậc của đỉnh v là deg(v).
Trang 15Những thuật ngữ cơ sở
– Ví dụ 1 Bậc của các đỉnh trong G và H là bao nhiêu?
deg(d) = 5
Trang 16Những thuật ngữ cơ sở
– Định lý 1 Định lý bắt tay Cho G = (V, E) là một đồ thị vô
hướng có e cạnh Khi đó
– Ví dụ 2 Có bao nhiêu cạnh trong đồ thị có 10 đỉnh, mỗi đỉnh có bậc bằng 6?
° Tổng các bậc của đồ thị là 10 6 = 60 Do đó: 2 e = 60 Vậy e = 30.
2 e = deg (v)
v V
Trang 17Những thuật ngữ cơ sở
– Định lý 2 Một đồ thị vô hướng có một số chẵn các đỉnh bậc
lẻ.
– Định nghĩa 3 Cho (u, v) là cạnh của đồ thị có hướng G
° u được gọi là nối tới v.
° v được gọi là được nối từ u.
° Đỉnh u gọi là đỉnh đầu của cạnh (u, v).
° Đỉnh v gọi là đỉnh cuối của cạnh (u, v).
° Đỉnh đầu và đỉnh cuối của khuyên là trùng nhau.
Trang 18Những thuật ngữ cơ sở
– Định nghĩa 4 Trong đồ thị có hướng,
° bậc-vào của đỉnh v ký hiệu là deg-(v) là số các cạnh có đỉnh cuối là v.
° bậc-ra của đỉnh v ký hiệu là deg+(v) là số các cạnh có đỉnh đầu là v.
° (Một khuyên tại một đỉnh góp 1 đơn vị vào bậc-vào và 1 đơn vị vào bậc-ra của đỉnh này.)
Trang 19Những thuật ngữ cơ sở
– Ví dụ 3 Tìm bậc-vào và bậc-ra của mỗi đỉnh trong G.
Các bậc-vào là
deg-(a) = 2 deg-(b) = 2 deg-(c) = 3 deg-(d) = 2 deg-(e) = 3 deg-(f ) = 0
Các bậc-ra là
deg+(a) = 4 deg+(b) = 1 deg+(c) = 2 deg+(d) = 2 deg+(e) = 3 deg+(f ) = 0
Trang 20Những thuật ngữ cơ sở
– Định lý 3 Gọi G = (V, E) là một đồ thị có hướng Khi đó
– Đồ thị vô hướng nền là đồ thị vô hướng nhận được khi lờ đi
các hướng của các cạnh của đồ thị có hướng.
– Nhận xét: Đồ thị có hướng và đồ thị vô hướng nền của nó có cùng số cạnh.
deg- (v) = deg + (v) = E
Trang 21Những đồ thị đơn đặc biệt
– Ví dụ 4 Đồ thị đầy đủ n đỉnh, ký hiệu là K n , là một đơn đồ thị
chứa đúng một cạnh nối mỗi cặp đỉnh phân biệt.
Trang 22Những đồ thị đơn đặc biệt
– Ví dụ 5 Chu trình (vòng) C n , với n 3, là một đồ thị có n đỉnh
v1, v2,…,v n và các cạnh {v1, v2}, {v2, v3},…, {v n - 1 , v n } và {v n , v1}
Trang 23Những đồ thị đơn đặc biệt
– Ví dụ 6 Đồ thị hình bánh xe W n , với n 3, là đồ thị có được từ chu trình C n bằng cách:
° thêm một đỉnh vào C n ,
° nối đỉnh này với mỗi đỉnh của C n bằng những cạnh mới
Trang 24Những đồ thị đơn đặc biệt
– Ví dụ 7 Các khối n chiều, ký hiệu là Q n , là các đồ thị:
° có 2n đỉ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 và chỉ nếu các xâu nhị phân biểu diễn chúng khác nhau đúng một bit
11 10
Trang 25Đồ thị phân đôi
– Định nghĩa 5 Một đồ thị đơn G được gọi là đồ thị phân đôi nếu 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ị G nối một đỉnh của V1 với
Trang 26Đồ thị phân đôi
– Ví dụ 9 K3 là không phân đôi Vì nếu chia các đỉnh của nó
thành hai phần rời nhau thì một trong hai phần này phải chứa 2 đỉnh; nếu đồ thị là phân đôi thì các đỉnh này không thể nối với
nhau bằng một cạnh, nhưng trong K3 mỗi đỉnh được nối với một đỉnh bất kỳ khác bằng một cạnh
– Ví dụ 10
c
d e
f g
c
d e
f
Trang 27Đồ thị phân đôi
– Ví dụ 10
c
d e
f g
c
d e
Đồ thị H là không phân đôi, vì
° f nối với tất cả các đỉnh khác;
do đó V1 = {f}.
° a và b lại nối với nhau.
Trang 28Đồ thị phân đôi
– Ví dụ 11 Đồ thị phân đôi đầy đủ K m,n là đồ thị
° có tập đỉnh được phân thành hai tập con tương ứng với m đỉnh và n đỉnh,
° có một cạnh giữa hai đỉnh nếu và chỉ nếu một đỉnh thuộc tập con này và đỉnh thứ hai thuộc tập con kia
Trang 29Một vài ứng dụng của các đồ thị đặc biệt
– Ví dụ 12 Các mạng cục bộ (LAN)
Cấu trúc hình sao
Đồ thị phân đôi đầy đủ K 1,n Cấu trúc vòng trònChu trình C n Đồ thị hình bánh xe WCấu trúc hỗn hợp n
Trang 30Một vài ứng dụng của các đồ thị đặc biệt
– Ví dụ 13
° Thuật toán tuần tự (hay nối tiếp)
° Thuật toán song song– Mảng một chiều– Mảng kiểu lưới (hay mảng hai chiều)– Mạng kiểu siêu khối
Trang 31Các đồ thị mới từ đồ thị cũ
– Định nghĩa 6 Đồ thị con của đồ thị G = (V,E) là đồ thị H = (W,F) trong đó W V và F E.
– Ví dụ 14 Đồ thị G là đồ thị con của đồ thị K5
a
Trang 32Các đồ thị mới từ đồ thị cũ
– Định nghĩa 7 (Đồ thị) hợp của hai đồ thị đơn G1 = (V1 , E1 )và G2
= (V2 , E2 )là đồ thị đơn có
° tập các đỉnh là V1V2
° tập các cạnh là E1E2 .– Ký hiệu: hợp của các đồ thị G1 và G2 là G1G2
– Ví dụ 15 Đồ thị hợp của G1 và G2
c b
Trang 33Đồ thị
7.3 Biểu diễn đồ thị và sự đẳng cấu
Tài liệu này được soạn theo sách Toán học rời rạc ứng dụng trong tin học, K H
Rosen, người dịch: Phạm Văn Thiều và Đặng Hữu Thịnh, Nhà xuất bản Khoa học
và kỹ thuật, 1998.
Tài liệu lưu hành nội bộ
Trang 34Biểu diễn đồ thị
– Ví dụ 1 Dùng danh sách liền kề để mô tả đồ thị đơn: liệt kê tất cả các đỉnh liền kề với mỗi đỉnh của đồ thị
Đỉnh Đỉnh liền kề
b, c, e a
a, d, e
c, e
a, c, d
Trang 35Biểu diễn đồ thị
– Ví dụ 2 Biểu diễn đồ thị có hướng: liệt kê tất cả các đỉnh cuối của các cung xuất phát từ mỗi đỉnh của đồ thị
Trang 36Ma trận liền kề
• Biểu diễn đồ thị bằng ma trận: Ma trận liền kề Cho G = (V, E) là đồ thị đơn có n đỉnh, các đỉnh của G là v1, v2,…, v n
• Ma trận liền kề A hay A G của G là ma trận không-một (0-1) cấp n
n có phần tử hàng i cột j là a ij bằng
° 1 nếu v i và v j liền kề nhau,
° 0 nếu chúng không được nối với nhau
• Nhận xét:
– Ma trận liền kề của một đồ thị tuỳ thuộc vào thứ tự liệt kê các đỉnh
– Ma trận liền kề của một đồ thị đơn là đối xứng Đồ thị đơn
không có khuyên nên a ii = 0 với i = 1, 2,…, n.
Trang 37Ma trận liền kề
• Biểu diễn đồ thị bằng ma trận: Ma trận liền kề.
– Ví dụ 3 Các đỉnh được sắp xếp theo thứ tự: a, b, c, d.
a
d c
Trang 38Ma trận liền kề
– Ví dụ 4 Cho ma trận liền kề với thứ tự các đỉnh là a, b, c, d Vẽ
đồ thị tương ứng
a
c d
Trang 39Ma trận liền kề
• Ma trận liền kề có thể dùng để biểu diễn đồ thị vô hướng có
khuyên và (hay) có cạnh bội
– Khuyên tại đỉnh a i được biểu diễn bằng 2 tại vị trí (i, i) của ma
trận liền kề
– Khi có cạnh bội, phần tử ở vị trí (i, j) của ma trận bằng số các cạnh nối các đỉnh a i và a j
• Nhận xét: Tất cả các đồ thị vô hướng (đơn đồ thị, đa đồ thị, giả đồ thị) đều có ma trận liền kề đối xứng
Trang 40Ma trận liền kề
– Ví dụ 5 Dùng ma trận liền kề để biểu diễn giả đồ thị
° Thứ tự các đỉnh là a, b, c, d.
a
c d
Trang 41Ma trận liền kề
• Cho G = (V, E) là đồ thị có hướng có n đỉnh, các đỉnh của G là v1, v2,
…, v n
• Ma trận liền kề A hay A G của G là ma trận không-một (0-1) cấp n
n có phần tử hàng i cột j là a ij bằng
° 1 nếu có cạnh đi từ v i tới v j ,
° 0 trong các trường hợp khác
• Nhận xét:
– Ma trận liền kề của một đồ thị tuỳ thuộc vào thứ tự liệt kê các đỉnh
– Ma trận liền kề của đồ thị có hướng không có tính đối xứng
– Cũng có thể dùng ma trận liền kề để biểu diễn đa đồ thị có
hướng Khi đó a ij bằng số các cung đi từ đỉnh v i tới đỉnh v j
Trang 42Ma trận liên thuộc
• Biểu diễn đồ thị bằng ma trận liên thuộc Cho G = (V, E) là đồ thị vô hướng có n đỉnh và m cạnh:
° các đỉnh của G là v1, v2,…, v n ,
° các cạnh của G là e1, e2,…, e m
• Ma trận liên thuộc M hay M G của G là ma trận M = [m ij ] trong đó m ij
bằng
° 1 nếu cạnh e j nối với đỉnh v i ,
° 0 nếu cạnh e j không nối với đỉnh v i
• Nhận xét:
– Ma trận liền thuộc của một đồ thị tuỳ thuộc vào thứ tự liệt kê các đỉnh và các cạnh
Trang 43Ma trận liên thuộc
• Ma trận liên thuộc
– Ví dụ 6 Xác định ma trận liên thuộc
Trang 44Ma trận liên thuộc
– Ví dụ 7 Biểu diễn cạnh bội và khuyên bằng ma trận liên thuộc
Trang 45Sự đẳng cấu của các đồ thị
– Định nghĩa 1 Các đồ thị đơn G1 = (V1, E1) và G2 = (V2, E2) là
đẳng cấu nếu có hàm song ánh f từ V1 lên V2 sao cho các đỉnh a và b là liền kề trong G1 nếu và chỉ nếu f(a) và f(b) là liền kề trong G2 với mọi a và b trong V1 Hàm f như thế được gọi là một
đẳng cấu.
Trang 46Sự đẳng cấu của các đồ thị
– Ví dụ 8 Các đồ thị G = (V, E) và H = (W, F) là đẳng cấu
Đinh nghĩa hàm f như sau f(u1) = v1, f(u2) = v4 , f(u3) = v3, f(u4) = v2
Hàm f là 1-1 giữa V và W Hàm f bảo toàn quan hệ liền kề vì:
° trong G các đỉnh liền kề là u1 và u2 , u1 và u3 , u2 và u4 , u3 và u4
° mỗi cặp f(u1) = v1 và f(u2) = v4 , f(u1) = v1 và f(u3) = v3 , f(u2) = v4 và
f(u4) = v2 , f(u3) = v3 và f(u4) = v2 là liền kề trong H.
Trang 47Sự đẳng cấu của các đồ thị
– Ví dụ 9 Các đồ thị G và H là không đẳng cấu.
d
e
H d
e
G
b
c a
c
b a
Cả G và H đều có 5 đỉnh và 6 cạnh Tuy nhiên H có đỉnh e bậc 1
còn G thì không có đỉnh nào bậc 1 cả Vậy G và H là không đẳng
cấu
Trang 48Sự đẳng cấu của các đồ thị
• Nhận xét:
– Số đỉnh, số cạnh, bậc của đỉnh là các bất biến đối với phép
đẳng cấu: nếu hai đồ thị là đẳng cấu thì
° chúng có cùng số đỉnh, số cạnh
° hai đỉnh tương ứng nhau trong phép đẳng cấu có cùng bậc.– Nếu các bất biến của hai đồ thị là khác nhau thì chúng là không đẳng cấu
– Tuy nhiên, nếu các bất biến của hai đồ thị là như nhau thì chưa chắc rằng chúng là đẳng cấu
Trang 49Sự đẳng cấu của các đồ thị
– Ví dụ 10 Các đồ thị G và H có đẳng cấu hay không?
c d
g h
u v
x
y z
w
Xét các bất biến: Cả hai đồ thị đều có 8 đỉnh, 10 cạnh, 4 đỉnh bậc 2,
và 4 đỉnh bậc 3.
Tuy nhiên G và H là không đẳng cấu: vì deg(a) = 2 nên a phải ứng
với một trong các đỉnh bậc 2 của H là t, u, x, y; nhưng cả 4 đỉnh này
đều có nối với một đỉnh bậc 2 khác của H, trong khi a chỉ nối với đỉnh
bậc 3 của G mà thôi.
Trang 50Sự đẳng cấu của các đồ thị
– Ví dụ 10 (tiếp theo) Cách khác: G và H là không đẳng cấu vì các đồ thị con của G và H tạo nên từ các đỉnh bậc 3 và các cạnh
nối chúng là không đẳng cấu
d
h
b f
v
z w s
Trang 51Sự đẳng cấu của các đồ thị
– Dùng ma trận liền kề để chứng tỏ hàm f là bảo tồn các cạnh:
° Ma trận liền kề của G, (với một thứ tự các đỉnh)
° Ma trận liền kề của H, với hàng và cột được gán nhãn tương ứng với ảnh qua f của các đỉnh trong G.
° Nếu các ma trận liền kề trên giống nhau thì G và H là đẳng
cấu
Trang 52Sự đẳng cấu của các đồ thị
– Ví dụ 11 Đồ thị G và H có đẳng cấu không?
f(u1) = v6 , f(u2) = v3 , f(u3) = v4 ,
f(u4) = v5 , f(u5) = v1 , f(u6) = v2
Trang 53Sự đẳng cấu của các đồ thị
– Ví dụ 11 (tiếp theo)
° Các ma trận liền kề của G và H là
° Vì A G = A H nên f bảo tồn các cạnh Vậy f là một phép đẳng
Trang 54Đồ thị
7.4 Tính liên thông
Tài liệu này được soạn theo sách Toán học rời rạc ứng dụng trong tin học, K H
Rosen, người dịch: Phạm Văn Thiều và Đặng Hữu Thịnh, Nhà xuất bản Khoa học
và kỹ thuật, 1998.
Tài liệu lưu hành nội bộ
Trang 55Đường đi
– Định nghĩa 1 Đường đi độ dài n từ u tới v, với n là một số
nguyên dương, trong một đồ thị vô hướng là một dãy các cạnh
e1, e2,…, e n của đồ thị sao cho f(e1) = {x0, x1}, f(e2) = {x1, x2},…,
f(e n ) = {x n - 1 , x n }, với x0 = u và x n = v
° Khi đồ thị là đơn, ta ký hiệu đường đi bằng dãy các đỉnh x0,
x1,…, x n
° Đường đi được gọi là chu trình nếu nó bắt đầu và kết thúc tại cùng một đỉnh, tức là u = v.
° Đường đi hay chu trình gọi là đơn nếu nó không chứa cùng
một cạnh quá một lần
Trang 56Đường đi
– Ví dụ 1.
° a, d, c, f, e là đường đi đơn độ dài 4 vì {a, d}, {d, c}, {c, f},
{f, e} đều là các cạnh.
° d, e, c, b không là đường đi vì {e, c} không là cạnh.
° b, c, f, e, b là chu trình độ dài 4 vì {b, c}, {c, f}, {f, e}, {e, b}
là các cạnh và đường đi này bắt đầu và kết thúc tại b.
° a, b, e, d, a, b độ dài 5 không là đường đi đơn vì chứa cạnh
Trang 57Đường đi
– Định nghĩa 2 Đường đi độ dài n, với n nguyên dương, từ u tới
v trong đa đồ thị có hướng là dãy các cạnh e1, e2,…, e n của đồ
thị sao cho f(e1) = (x0, x1), f(e2) = (x1, x2 ),…, f(e n ) = (x n - 1 , x n ), với
x0 = u và x n = v
° Khi không có cạnh bội trong đồ thị, ta ký hiệu đường đi
này bằng dãy các đỉnh x0, x1, x2,…, x n
° Đường đi bắt đầu và kết thúc tại cùng một đỉnh được gọi
là một chu trình.
° Đường đi hay chu trình gọi là đơn nếu nó không chứa
cùng một cạnh quá một lần.