Tải bản đầy đủ
Chương I: MỘT SỐ KHÁI NIỆM CƠ BẢN TRONG LÝ THUYẾT ĐỒ THỊ VÀ LÝ THUYẾT CÁC BÀI TOÁN NP-C

Chương I: MỘT SỐ KHÁI NIỆM CƠ BẢN TRONG LÝ THUYẾT ĐỒ THỊ VÀ LÝ THUYẾT CÁC BÀI TOÁN NP-C

Tải bản đầy đủ

10

Hình 1.1. Đồ thị vô hướng
Định nghĩa 1.3. Đồ thị G gọi là có hướng nếu ∃ u,v∈V: (u,v) ≠ (v,u)
Định nghĩa 1.4. Đơn đồ thị vô hướng G = (V,E) bao gồm V là tập các
đỉnh, và E là tập các cặp không có thứ tự gồm hai phần tử khác nhau của V
gọi là các cạnh.
+ Đồ thị G = (V,E) với đỉnh v ∈ V, e = (u,v) ∈ E
Khi đó: u,v là hai đỉnh đầu, cuối của cạnh e; e _ cạnh liên thuộc u,v
Định nghĩa 1.5. Hai đỉnh u và v trong đồ thị vô hướng được gọi là liền
kề (hay láng giềng) nếu (u,v) là một cạnh của đồ thị G. Nếu e=(u,v) thì e gọi
là cạnh liên thuộc với hai đỉnh u và v, hoặc cũng nói là cạnh e là nối đỉnh u và
đỉnh v, đồng thời các đỉnh u và v sẽ được gọi là các đỉnh đầu mút của cạnh
(u,v)..
Định nghĩa 1.6. Bậc của đỉnh u ∈ V kí hiệu deg(u) trong đồ thị vô
hướng là số cạnh liên thuộc với u (hay tập các láng giềng của u), riêng khuyên
tại một đỉnh được tính hai lần cho bậc của nó.
Đỉnh có bậc bằng không gọi là đỉnh cô lập (Không kề với bất kỳ đỉnh
nào). Đỉnh v gọi là đỉnh treo nếu deg(v)=1.
b
c
a

d

j
k

i
h

e
g
f
Hình 1.2. Đồ thị vô hướng và các bậc của đỉnh

11

deg (a) =4

deg (e) =4

deg (i) =2

deg(b) = 3

deg(f) = 3

deg(j) = 2

deg(c) = 5

deg(g) = 5

deg(k) = 0

deg(d) = 3
deg(h) = 3
Định lý 1.1. Ký hiệu E là số cạnh của đồ thị G = (V,E) khi đó
2E =

∑ deg(v)

v∈V

Hệ quả 1.1. Trong đồ thị vô hướng số đỉnh của đồ thị có bậc lẻ là số
chẵn.
Chứng minh:
Gọi O và U tương ứng là tập đỉnh bậc lẻ và tập đỉnh bậc chẵn của đồ thị
2E =

∑ deg(v) = ∑ deg(v) + ∑ deg(v)

v∈V

Ta có
Do

∑ deg(v)

v∈U

v∈O

v∈U

(tức là tổng số đỉnh bậc chẵn) – chẵn

∑ deg(v)

⇒ v∈O

- chẵn.

1.1.1.2. Một số dạng đơn đồ thị đặc biệt
Định nghĩa 1.7. (Đồ thị đầy đủ) Đồ thị đầy đủ n đỉnh, ký hiệu là Kn là
đơn đồ thị mà hai đỉnh phân biệt bất kỳ của nó luôn liền kề. Như vậy, Kn có
cạnh và mỗi đỉnh của Kn có bậc là n -1.
Ví dụ:
K2

K4

K5

K3

Hình 1.3. Một số đồ thị đầy đủ

12

Định nghĩa 1.8. Đồ thị vòng (Cn): Là đồ thị có n đỉnh, n cạnh liên
thông, mỗi đỉnh đều có bậc 2.
Ví dụ:

C3

C4

Hình 1.4. Đồ thị vòng
Định nghĩa 1.9. Đồ thị bánh xe (Wn): Nhận được từ Cn bằng cách thêm
một đỉnh mới kề với tất cả các đỉnh còn lại
v1

v1

v2
v5

v4
v3

v1

v2

v4

v3

v5

v2

v6
v4

v3

Hình 1.5. Đồ thị bánh xe
Định nghĩa 1.10. (Đồ thị hai phía): Đồ thị G = (V,E) là đồ thị hai phía
(hay đồ thị phân đôi) nếu tập các đỉnh V có thể phân thành hai tập con khác
rỗng rời nhau X và Y sao cho mỗi cạnh của đồ thị được kết nối từ một đỉnh
thuộc X với một đỉnh thuộc Y:
Nói dưới dạng toán học:
-

Có thể tìm được X, Y ∈ V sao cho

-

Và mọi

13

Ví dụ:
v1
v3

v2

v4

v5
K2,3

v6

v1

v2

v3

v4

v5

v6

K3,3

Hình 1.6. Đồ thị hai phía

1.1.1.3. Đồ thị đẳng cấu
Định nghĩa 1.11. [5]
Cho trước hai đồ thị G1 = (V1,E1) và G2 = (V2,E2). Ta nói G1 và G2 là
đẳng cấu với nhau nếu có một song ánh f: V1  V2 sao cho hai đỉnh u và v kề
nhau trong G1 khi và chỉ khi f(u) kề với f(v) trong G2 (hay nói cách khác (u,v)
∈ E1 khi và chỉ khi (f(u),f(v)) ∈ E2)
Ví dụ: Cho hai đồ thị, hỏi chứng có đẳng cấu với nhau hay không?
2

17
20

12
7
1

6

3
8

15
11

19
14

9

10

16
4

5

13

18
G1

G2

Hình 1.7. Đồ thị G1 đẳng cấu với G2
Theo ví dụ ta thấy, nếu chọn phép ánh xạ biến đỉnh u của đồ thị G1
thành f(u+10) của đồ thị G2 (đỉnh 1 biến thành đỉnh 11, đinh 2 thành đỉnh

14

12..., đỉnh 10 thành đỉnh 20), ta thấy đây là phép ánh xạ mà với hai đỉnh (u,v)
∈ E1 thì (10+u, 10+v) ∈ E2. Vậy hai đồ thị G1 và G2 là đẳng cấu với nhau.
1.1.1.4. Các đồ thị mới từ đồ thị cũ
Định nghĩa 1.12. Đồ thị con của đồ thị G = (V,E) là đồ thị G’ = (V’,E’)
trong đó V’ ⊆ V và E’ ⊆ E. Ký hiệu G’ ⊆ G
a

a
e

e

b
d

d

c

c

Hình 1.8. Đồ thị G và đồ thị con G’
Định nghĩa 1.13. Hợp của hai đồ thị G1 = (V1,E1) và G2 = (V2,E2) là
một đơn đồ thị có tập các đỉnh là V1 ∪ V2 và tập các cạnh E1 ∪ E2. Ta ký hiệu
hợp của các đồ thị G1 và G2 là G = G1 ∪ G2

G2

G1

G= G1 ∪ G2

Hình 1.9. Đơn đồ thị G1, G2 và đồ thị G = G1 ∪ G2
Định nghĩa 1.14. Cho đồ thị G = (V,E) và G’ = (V’,E’). Khi đó G và G’
được gọi là lạ nhau khi V ∩ V’ = ∅.
Định nghĩa 1.15. Hợp của hai đồ thị lạ nhau G = (V,E) và G’ = (V’,E’)
trong đó V ∩ V’= ∅ là đồ thị thu được khi ta nối tất cả các đỉnh của G với tất
cả các đỉnh của G’ (ký hiệu G*G’).

15

1.1.2. Đường đi, chu trình, đồ thị liên thông
Xét đơn đồ thị vô hướng G = (V,E)
1.1.2.1. Đường đi
Định nghĩa 1.16. Một đường đi độ dài n từ đỉnh u tới tới đỉnh v, trong
đó n là số nguyên dương, trên đồ thị vô hướng G=(V,E) là một dãy các đỉnh
x0, x1,...,xn sao cho:
 x0 = u , x n = v

( xi , xi +1 ) ∈ E , i = 0, n − 1

Trong đó: Đỉnh u gọi là đỉnh đầu, đỉnh v gọi là đỉnh cuối. Đường đi trên
gọi là đơn nếu không có cạnh nào lặp lại. Số cạnh của đường đi được gọi là
độ dài của đường đi đã cho.
Ví dụ: Đường đi có độ dài 4 đi từ đỉnh 1 đến đỉnh 6
3
5
1

2

4

6

Hình 1.10. Đường đi trên đồ thị có độ dài 4
1.1.2.2. Chu trình
Định nghĩa 1.17. Chu trình là một đường đi có đỉnh đầu và đỉnh cuối
trùng nhau.
Định nghĩa 1.18. Chu trình đơn: là một chu trình mà đường đi của nó
không có cạnh nào lặp lại.
Định nghĩa 1.19. Trong một đồ thị G, chu trình có độ dài lớn nhất gọi
là chu trình dài nhất.

16

1.1.2.3. Đồ thị liên thông – chỉ số liên thông
Định nghĩa 1.20. (Đồ thị liên thông) Một đồ thị vô hướng được gọi là
liên thông nếu có đường đi giữa mọi cặp đỉnh phân biệt của đồ thị.
- Đồ thị vô hướng G = (V,E) được gọi là liên thông nếu với bất kỳ hai
đỉnh u,v E luôn tìm được đường đi từ đỉnh u tới đỉnh v.

G

G’

Hình 1.11. Đồ thị G liên thông, đồ thị G’ không liên thông
Định lý 1.2. Giữa mọi cặp đỉnh phân biệt của một đồ thị vô hướng liên
thông luôn có đường đi đơn.
Định nghĩa 1.21 (Thành phần liên thông)
Một đồ thị G = (V,E) không liên thông bao gồm các đồ thị con liên
thông với nhau và được gọi là thành phần liên thông của G. Số thành phần
liên thông của G được ký hiệu w(G).

Hình 1.12. Đồ thị liên thông G và đồ thị H gồm 3 thành phần liên thông
H1, H2, H3
Định nghĩa 1.22[ 5 ] [19] ( Đồ thị k-liên thông)

17

Cho trước đồ thị G và một số tự nhiên k > 0. G là đồ thị k-liên thông
nếu G là đồ thị liên thông và nếu như bỏ đi một số t < k đỉnh tùy ý và các cạnh
liên thuộc với các đỉnh đó ta vẫn thu được đồ thị liên thông.
Nhận xét:
- Mọi đồ thị liên thông đều là 1-liên thông
- Đồ thị đầy đủ Kn là (n-1)-liên thông
- Một đồ thị là k-liên thông thì cũng là h-liên thông với mọi 0 < h < k

Hình 1.13. Đồ thị 4-liên thông
Ví dụ: Đồ thị trong hình 1.12 là đồ thị 4-liên thông vì chỉ khi bỏ đi tới
4 đỉnh bất kì của đồ thị và các cạnh liên thuộc với chúng ta mới thu được đồ
thị không liên thông. Còn khi bỏ đi 1 hoặc 2 hoặc 3 đỉnh tùy ý thì đồ thị vẫn
còn liên thông.
Định nghĩa 1.23.[ 5 ] ( Chỉ số liên thông)
Trong đồ thị liên thông G, số đỉnh tối thiểu có thể vứt bỏ để G trở nên
không còn liên thông nữa gọi là chỉ số liên thông của G. Đồ thị có chỉ số liên
thông bằng k được gọi là k-liên thông. Chỉ số liên thông của G được ký hiệu
k(G)

18

Hình 1.14. Đồ thị có k(G) = 2 và k(H) = 3
1.1.3. Biểu diễn đồ thị trên máy tính
Để lưu trữ đồ thị và thực hiện các thuật toán khác nhau với đồ thị trên
máy tính cần phải tìm những cấu trúc dữ liệu thích hợp để mô tả đồ thị. Việc
chọn cấu trúc dữ liệu nào để biểu diễn đồ thị có tác động rất lớn đến hiệu quả
của thuật toán. Vì vậy, việc chọn lựa cấu trúc dữ liệu để biểu diễn đồ thị phụ
thuộc vào từng tình huống cụ thể (bài toán và thuật toán cụ thể).
Tại sao phải biểu diễn đồ thị trên máy tính?
- Lý thuyết đồ thị ngày càng được ứng dụng rộng rãi.
- Để xây dựng được các ứng dụng của đồ thị trên máy tính thì cần phải
tìm cách biểu diễn đồ thị trên máy tính thích hợp.
- Máy tính không thể hiểu được các đồ thị dưới dạng hình vẽ thông
thường.
Tiêu chuẩn để lựa chọn cách thức biểu diễn đồ thị trên máy tính?
- Cấu trúc dữ liệu phải đơn giản, phù hợp với từng bài toán ứng dụng.
- Dễ biểu diễn, dễ cài đặt các ứng dụng trên đó.
Dưới đây ta sẽ xét một số phương pháp cơ bản được sử dụng để biểu
diễn đồ thị trên máy tính, đồng thời cũng phân tích một cách ngắn gọn những
ưu điểm cũng như những nhược điểm của chúng.

19

1.1.3.1. Biểu diễn đồ thị bằng ma trận kề và ma trận trọng số
Định nghĩa 1.24. Ma trận kề:
Giả sử G = (V, E) là một đơn đồ thị có số đỉnh |V| = n.
Ma trận kề của đơn đồ thị G là một ma trận vuông A[n.n] Với các phần
tử được xác định theo quy tắc như sau:
với i,j = 1,2,...,n là các đỉnh của đồ thị
Quy ước A[i,i] = 0 với ∀i;
Ví dụ: Cho đồ thị vô hướng như hình vẽ

v1
v5

v2
Ma trận kề

v4

v3

v1

v2

v3

v4

0

0

1

1

0

0

0

1

1

0

0

0

1

1

0

0

0

1

1

0

Hình 1.15. Đồ thị và ma trận kề
- Đối với đồ thị vô hướng G, thì ma trận kề là ma trận đối xứng
(A[i,j]=A[j,i]).
- Nếu G là đồ thị vô hướng và A là ma trận kề tương ứng thì trên ma
trận A: Tổng các số trên hàng i = Tổng các số trên cột i = Bậc của đỉnh i =
deg(i)
Ưu điểm của ma trậ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.
Nhược điểm của ma trận liền kề:

20

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, điều đó gây lãng phí bộ nhớ dẫn tới
việc không thể biểu diễn được đồ thị với số đỉnh lớn.
Ma trận trọng số:
Định nghĩa 1.25. Đồ thị có trọng số là đồ thị ứng với mỗi cạnh (u,v) ∈

E gán một giá trị C(u,v) nào đó gọi là trọng số của (u,v)
Ma trận trọng số là ma trận vuông A[n,n] trong đó giá trị được xác định
như sau:
Trong đó ∅ được xác định tuỳ theo đề bài toán cụ thể, thường gặp là
-∞, 0, +∞
Ví dụ: Cho đồ thị G = (V,E).
A

5

B

5

Ma trận trọng số tương ứng là:

C
9

1

1

10

6
3
4

G

2

F

2

E

D

A

B

C

D

E

F

G

A



5





∅ 10

1

B

5



5



3

1



C



5



9

6





D





9



4





E



3

6

4



2



F

10

1





2



2

G

1









2



Hình 1.16. Đồ thị và ma trận trọng số
1.1.3.2. Biểu diễn đồ thị bằng danh sách cạnh
Dùng trong trường hợp đồ thị có ít cạnh, số cạnh m < 6n, với n là số
đỉnh.
Danh sách cạnh của đồ thị G = (V,E) có m cạnh sẽ bao gồm hai mảng
một chiều có kích thước m.