4 Bài toán tối ưu
4.2 Bài toán tối ưu trong đồ thị
4.2.1 Các khái niệm cơ bản của lý thuyết đồ thị
Lý thuyết đồ thị là một lĩnh vực nghiên cứu đã có từ rất lâu và có nhiều ứng dụng. Những tư tưởng cơ bản của lý thuyết đồ thị được đề xuất vào
những năm đầu của thế kỉ XV III bởi nhà toán học lỗi lạc người Thụy Sĩ Leonhard Euler. Chính ơng là người đã sử dụng đồ thị để giải bài toán nổi tiếng về 7 cây cầu ở thành phố Konigsberg.
Đồ thị được sử dụng để giải các bài toán trong nhiều lĩnh vực khác nhau. Chẳng hạn, đồ thị có thể sử dụng để xác định các mạch vịng trong vấn đề giải tích mạch điện. Chúng ta có thể phân biệt các hợp chất hóa học hữu cơ khác nhau với cùng công thức phân tử nhưng khác nhau về cấu trúc phân tử nhờ đồ thị. Chúng ta có thể xác định xem hai máy tính trong mạng có thể trao đổi thơng tin được với nhau hay khơng nhờ mơ hình đồ thị của mạng máy tính. Đồ thị có trọng số trên các cạnh có thể sử dụng để giải các bài tốn như: tìm đường đi ngắn nhất giữa hai thành phố trong một mạng giao thông...
a) Định nghĩa đồ thị
Định nghĩa 4.1. Đơ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 cạnh khơng có thứ tự gồm hai phần tử khác nhau của V gọi là các cạnh.
Để được trực quan người ta thường biểu diễn đồ thị vô hướng G trên mặt phẳng như sau: các đỉnh của đồ thị được biểu diễn bằng các vòng tròn nhỏ, cịn các cạnh thì được biểu diễn bằng một đường cong nối các đỉnh của cạnh.
Ví dụ 4.1. Cho G = (V;E) với V = {a;b;c;d} và
E = {{a;a};{a;b};{b;d};{b;c};{c;d}}. Khi đó, G là một đồ thị vơ hướng và được biểu diễn bằng hình sau:
Định nghĩa 4.2. Đơn đồ thị có hướng G = (V;E) bao gồm V là tập các đỉnh và E là tập các cặp cạnh có thứ tự gồm hai phần tử khác nhau của V
gọi là các cung.
Các phần tử của V được gọi là đỉnh, còn các phần tử của E được gọi là các cung của đồ thị vô hướng G. Cụ thể hơn, nếu (a;b) ∈ E thì (a;b)
được gọi là cung của G với đỉnh đầu là a, đỉnh cuối là b và có hướng đi từ
a tới b.
Để được trực quan người ta thường biểu diễn đồ thị có hướng G trên mặt phẳng như sau. Các đỉnh của G được biểu diễn bằng các vòng tròn nhỏ cịn các cung thì được biểu diễn bằng các đường cong nối đỉnh đầu với đỉnh cuối và có mũi tên hướng từ đỉnh đầu tới đỉnh cuối.
Ví dụ 4.2. Cho G = (V;E) với V = {a;b;c;d;e;f} và
E = {(a;a); (a;b); (b;d); (d;b); (c;e); (e;a)}. Khi đó G là đồ thị có hướng được biểu diễn bởi hình sau
Đồ thị có hướng được định nghĩa ở trên cùng thường được gọi là đơn đồ thị có hướng. Lý do là vì với hai đỉnh a và b bất kì tồn tại duy nhất một cung với đỉnh đầu là a và đỉnh cuối là b. Với lý do tương tự, đồ thị vô hướng
được định nghĩa ở trên cũng thường được gọi là đơn đồ thi vô hướng. Tuy nhiên, trong một số ứng dụng ta cần có nhiều cung với cùng đỉnh đầu và cùng đỉnh cuối hay cần có nhiều cạnh cùng liên thuộc với hai đỉnh đã cho. Vì vậy người ta đưa ra khái niệm đa đồ thị có hướng và đa đồ thị vô hướng.
đỉnh và E là họ các cặp cạnh khơng có thứ tự gồm hai phần tử khác nhau của V gọi là các cạnh. Hai cạnh e1 và e2 được gọi là cạnh lặp nếu chúng cùng tương ứng với một cặp đỉnh.
Định nghĩa 4.4. Đa đồ thị có hướng G = (V;E) bao gồm V là tập các
đỉnh và E là họ các cặp cạnh có thứ tự gồm hai phần tử khác nhau của V
gọi là các cung. Hai cung e1 và e2 tương ứng với cùng một cặp đỉnh được gọi là cung lặp.
Ví dụ 4.3. Cặp G1 = {V;E1} với V = {a;b;c;d} và
E1 = {(a;d); (d;a); (d;a); (c;d); (a;c); (c;a); (b;a); (c;b); (c;b)} là một đa đồ thị có hướng. Cặp G2 = (V;E2) với V = {a;b;c;d} và
E2 = {{a;d};{a;d};{d;a};{c;d};{a;c};{c;a};{b;a};{c;b};{c;b}}là một đa đồ thị vô hướng .
Tương tự với bốn loại đồ thị định nghĩa ở trên là bốn loại đồ thị có trọng lượng mà ta sẽ định nghĩa dưới đây. Để đơn giản ta dùng thuật ngữ đồ thị để chỉ một trong bốn loại đồ thị đó. Đồ thị G = (V;E) được gọi là đồ thị có trọng số nếu ít nhất một trong hai hàm:
f : V −→Wv ;g : E −→ WE
được xác định, ở đây Wv và WE là các tập nào đấy. Các phần tử của Wv
và WE có thể chỉ đơn thuần là các dữ liệu nhưng thường chỉ có một ý nghĩa định lượng nào đấy. Giá trị f(v) cho v ∈ V được gọi là trọng số của đỉnh v, còn giá trị g(e) cho e ∈ E được gọ là trọng số của cung hay cạnh
e. Người ta cũng thường kí hiệu đồ thị có trọng số bằng G = (V;E;f)
hay G = (V;E;g) hay G = (V;E;f;g) tùy thuộc vào việc chỉ một hàm
Ví dụ 4.4.ChoG = (V;E;g)vớiV = {a;b;c;d;e};E = {(a;b); (a;c); (b;e); (e;d); (b;d); (c;e)}
và g : E −→ N được xác định như sau:
g(a;b) = g(b;e) = g(c;e) = 5 g(a;c) = 4
g(e;d) = g(b;d) = 7
Khi đó G là đồ thị có trọng số được biểu diễn bởi hình:
Đồ thị G0 = (V0;E0) được gọi là đồ thị con của đồ thị G = (V;E) nếu
V0 ⊆V và E0 ⊆ E. Đồ thị con G0 = (V0;E0) của đồ thị G = (V;E) được gọi là đồ thị con bao trùm của G nếu V0 = V.
Bậc của đỉnh v trong đồ thị vô hướng là số cạnh liên thuộc với nó và sẽ kí hiệu là deg(v).
Ví dụ 4.5. Xét đồ thị vô hướng G = (V;E) ta có: deg(a) = 1;deg(b) = 4;deg(c) = 4;deg(f) = 3;deg(d) = 1;deg(e) = 3;deg(g) = 0
Định lý 4.1. Giả sử G = (V;E) là đồ thị vô hướng với m cạnh. Khi đó:
2m = X
v∈V
deg(V)
Chứng minh. Rõ ràng mỗi cạnh e= (u;v) được tính 1 lần trong deg(u)
và một lần trong deg(v). Từ đó suy ra tổng tất cả các bậc của các đỉnh
bằng hai lần số cạnh
Hệ quả 4.1. Trong đồ thị vô hướng, số đỉnh bậc lẻ (nghĩa là có bậc là số lẻ) là một số chẵn.
b) Đường đi, chu trình, đồ thị liên thơng
Định nghĩa 4.5. Đường đi độ dài n từ đỉnh u đến đỉnh v, trong đó n là số ngun dương, trên đồ thị vơ hướng G = (V;E) là dãy
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 được gọi là đỉnh đầu còn đỉnh v được gọi là đỉnh cuối của đường
đi. Đường đi có đỉnh đầu trùng với đỉnh cuối (tức là u = v) được gọi là
chu trình. Đường đi hay chu trình được gọi là đơn nếu như khơng có cạnh nào bị lặp lại.
Định nghĩa 4.6. Đồ thị vô hướng G = (V;E) được gọi là liên thơng nếu ln tìm được đường đi giữa hai đỉnh bất kì của nó.
Ví dụ 4.6. Trong hình đồ thị G là liên thơng, cịn đồ thị H là không liên thông.
Định nghĩa 4.7. Đỉnh v được gọi là đỉnh rẽ nhánh nếu việc loại bỏ v
cùng với các cạnh liên thuộc với nó khỏi đồ thị làm tăng số thành phần liên thông của đồ thị. Cạnh e gọi là cầu nếu việc loại bỏ nó khỏi đồ thị làm tăng số thành phần liên thông của đồ thị.
c) Một số dạng đồ thị đặc biệt
+ Đồ thị đầy đủ: Đồ thị đầy đủ n đỉnh, kí hiệu bởi Kn là đơn đồ thị vô hướng mà giữa hai đỉnh bất kì của nó ln có cạnh nối.
Các đồ thị K3;K4;K5 được cho trong hình dưới đây.
Đồ thị đầy đủ Kn có tất cả: n(n−1)2 cạnh, nó là đơn đồ thị có nhiều cạnh nhất.
+ Đồ thị vịng: Đồ thị vòng Cn, n > 3 gồm n đỉnh v1;v2;· · · ;vn và các cạnh (v1;v2); (v2;v3);· · · ; (vn−1;vn); (vn;v1).
Đồ thị vịng C3;C4;C5;C6 cho trong hình sau:
+ Đồ thị bánh xe: Đồ thị Wn thu được từ Cn bằng cách bổ sung vào một đỉnh mới nối với tất cả các đỉnh của Cn.
+ Đồ thị hai phía: Đơn đồ thị G = (V;E) được gọi là hai phía nếu như tập đỉnh V của nó có thể phân hoạch thành hai tập X và Y sao cho mỗi cạnh của đồ thị chỉ nối một đỉnh nào đó trong X với một đỉnh nào đó trong Y. Khi đó ta sẽ sử dụng kí hiệu: G = (X ∪Y;E) để chỉ đồ thị hai phía với tập đỉnh X ∪Y.
+ Đồ thị hai phía G = (X ∪ Y;E) với |X| = m;|Y| = n được gọi là đồ thị hai phía đầy đủ và kí hiệu là Km;n nếu mỗi đỉnh trong tập X được nối với mỗi đỉnh trong Y. Các đồ thị K2;3;K3;3;K3;4 được cho trong hình sau:
+ Đồ 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 ngồi đỉnh. Cách vẽ như vậy được gọi là biểu diễn phẳng của đồ thị.
Ví dụ 4.7. Đồ thị K4 là phẳng vì có thể vẽ nó trên mặt phẳng sao cho các cạnh của nó khơng cắt nhau ngồi đỉnh.
d) Đồ thị Euler
Định nghĩa 4.8. Đường đi đơn trong G đi qua mỗi cạnh của nó một lần được gọi là đường đi Euler.Chu trình đơn trong G đi qua mỗi cạnh của nó một lần được gọi là chu trình Euler. Đồ thị được gọi là đồ thị nửa Euler nếu nó có đường đi Euler và gọi là đồ thị Euler nếu nó có chu trình Euler.
Định lý 4.2. Đồ thị vô hướng liên thông G là đồ thị Euler khi và chỉ khi
mọi đỉnh của G đều có bậc chẵn.
Hệ quả 4.2. Đồ thị vơ hướng liên thông G là nửa Euler khi và chỉ khi nó khơng có q hai đỉnh bậc lẻ.
e) Đồ thị Hamilton
Định nghĩa 4.9. Đường đi qua tất cả các đỉnh của đồ thị mỗi đỉnh đúng
một lần được gọi là đường đi Hamilton. Chu trình bắt đầu từ một đỉnh v
nào đó qua tất cả các đỉnh cịn lại mỗi đỉnh đúng một lần rồi quay trở về
v được gọi là chu trình Hamilton. Đồ thị được gọi là nửa Hamilton nếu nó chứa đường đi Hamilton và được gọi là đồ thị Hamilton nếu nó chứa chu trình Hamilton.
Định lý 4.3. Đơn đồ thị vô hướng G với n > 2 đỉnh, mỗi đỉnh có bậc khơng nhỏ hơn n2 là đồ thị Hamilton.
f) Cây
Định nghĩa 4.10. Một đồ thị vơ hướng liên thơng khơng có khun và khơng có chu trình được gọi là cây.
Định nghĩa 4.11. Một đồ thị vơ hướng khơng có khun (khơng nhất thiết phải là liên thơng) và khơng có chu trình được gọi là rừng. Từ các định
nghĩa trên dễ thấy rằng mỗi thành phần liên thông của rừng là cây. Các đỉnh bậc 1 của cây được gọi là đỉnh lá hay đỉnh cuối, còn các đỉnh bậc lớn hơn 1 của cây được gọi là các đỉnh cành hay đỉnh trong.
Định lý 4.4. [Định lý móc xích kiểu hoa cúc] Giả sử T = (V;E) là đồ thị vơ hướng khơng có khun. Khi đó, các khẳng định sau đây là tương đương với nhau:
(a) T là cây.
(b) T khơng chứa chu trình và |E| = |V| −1
(c) T liên thông và |E| = |V| −1
(d) T là đồ thị liên thơng nhưng nếu xóa đi một cạnh bất kì thì đồ thị nhận được là khơng liên thơng.
(e) Hai đỉnh khác nhau bất kì của T được nối với nhau bởi đúng một
đường.
(f) T khơng chứa chu trình, nhưng nếu ta thêm một cạnh nối hai đỉnh
không kề nhau trong T thì đồ thị nhận được có đúng một chu trình.