2 Đồ thị và một số bài toán phổ thông
2.4 Đồ thị Euler Đồ thị Hamilton
2.4.1 Đường đi Euler và đồ thị Euler
Định nghĩa
Xích α trong đồ thị vơ hướng G(X, E)được gọi là xích Euler nếu nó đi qua tất cả các cạnh củaG và qua mỗi cạnh đúng một lần. Nói cách khác, xích Euler của đồ thị G là một xích đơn và đi qua tất cả các cạnh của G.
Chu trình α của đồ thị G được gọi là chu trình Euler nếu nó đi qua tất cả các cạnh của G và qua mỗi cạnh đúng một lần. Nói cách khác, chu trình Euler của đồ thị G là một chu trình đơn và đi qua tất cả các cạnh của G.
Đồ thị vô hướng G được gọi là đồ thị Euler nếu nó có chu trình Euler. Đường β của đồ thị có hướng G được gọi là đường Euler nếu nó đi qua tất cả các cung của đồ thị G và qua mỗi cung đúng một lần. Nói cách khác, đường Euler của đồ thị có hướng G là một đường đơn và đi qua tất cả các cung của
G.
Vòng (mạch) β của đồ thị có hướng G được gọi là vịng (mạch) Euler nếu nó đi qua tất cả các cung của đồ thị G và qua mỗi cung đúng một lần. Nói cách khác, vịng (mạch) Euler của đồ thị có hướng G là một vòng (mạch) đơn và đi qua tất cả các cung của G.
Đồ thị có hướng G được gọi là đồ thị Euler nếu nó có vịng Euler.
Hình 2.9
Một số kết quả nhận được từ [5] như sau:
Điều kiện cần và đủ để một đa đồ thị vô hướng là đồ thị Euler
Bổ đề 2.4.1. Nếu tất cả các đỉnh của đa đồ thị vô hướng G đều có bậc chẵn thì xuất phát từ đỉnh A tùy ý của G ta đều vạch ra được một chu trình đơn đi qua A.
Chứng minh.
1) Nếu A là đỉnh biệt lập thì chu trình đi qua A có độ dài 0.
2) Nếu A có bậc dương thì xuất phát từ A phải có ít nhất 2 cạnh. Giả sử hai trong các cạnh của đỉnh A là (A, B) và (A, C).
Theo (A, B), (A, C) đi theo hướng độc lập nhau, mỗi khi đi qua một đỉnh, thì đi vào bằng một cạnh và đi ra theo một cạnh khác và không bao giờ lặp lại. Vì đồ thịG hữu hạn nên sau một số bước hai xích phải gặp nhau và ta được chu trình đơn đi qua A.
Bổ đề 2.4.2. Nếu đa đồ thị vơ hướng G là đồ thị Euler, thì G phải chứa khơng q một thành phần liên thơng có cạnh và các đỉnh đều bậc chẵn.
Chứng minh.
Giả sử đồ thị Gcó chu trình Euler, nhưng hoặc chứa khơng ít hơn hai thành phần liên thơng có cạnh, hoặc có đỉnh bậc lẻ.
1) Giả sử Gchứa khơng ít hơn 2 thành phần liên thơng có cạnh và hai trong các thành phần liên thông chứa cạnh của G làG1, G2 vàα là một trong những chu trình Euler của G. Khi đó, nếu α xuất phát từ G1 và qua cạnh a thuộc G1
thì nó khơng thể sang G2 để đi qua cạnh b thuộc G2. Ngược lại, nếu α xuất phát từ G2 và qua cạnh b thuộc G2 thì nó khơng thể sang G1 để đi qua cạnh
a thuộc G1. Điều này mâu thuẫn với giả thiết cho G là một đồ thị Euler. Vậy đồ thị G phải có khơng q một thành phần liên thơng chứa cạnh.
2) Giả sử G có đỉnh bậc lẻ và A là một trong các đỉnh bậc lẻ của G đồng thời A có bậc bằng 3. Giả sử 3 cạnh thuộc A là (A, B),(A, C) và (A, D).
Khi đó nếu chu trình Euler α muốn đi qua cả 3 cạnh thuộc A thì nó phải đi 2 lần, trường hợp qua mỗi cạnh không quá một lần thì α khơng đi được qua cả 3 cạnh thuộc đỉnh A. Điều này mâu thuẫn với tính chất của chu trình Euler.
Do đó, G khơng chứa đỉnh bậc lẻ. Bổ đề được chứng minh.
Bổ đề 2.4.3. Nếu đa đồ thị vô hướng G = (X, E) chứa không quá một thành phần liên thơng có cạnh và các đỉnh đều bậc chẵn thì G có chu trình Euler.
1) Nếu tất cả các đỉnh của G đều biệt lập thì chu trình Euler trong trường hợp này có độ dài 0.
2) Giả sử G1 là thành phần liên thơng duy nhất trongG có chứa cạnh. Khi đó xuất phát từ đỉnh A ∈G1, theo bổ đề 2.4.2 vạch ra trong G1 một chu trình đơn, ký hiệu p11, dùng số 1 để ghi trên các cạnh thuộc p11.
“Xóa” p11 khỏi đồ thị G1, đồ thị con nhận được ký hiệu bằngG2. Vì G1 liên thơng nên p11 và G2 phải có ít nhất một đỉnh chung. Do p11 là chu trình đơn, nên mỗi khi đi qua một đỉnh thì nó đi vào bằng một cạnh, đi ra bằng một cạnh khác và không bao giờ lặp lại. Vì vậy, tại mỗi đỉnh mà p11 đi qua bị “xóa” đi một số chẵn cạnh. Do đó G2 cũng là một đồ thị với các đỉnh đều bậc chẵn.
Giả sử B là một trong những đỉnh chung của p11 vàG2. Qua B, theo bổ đề
2.4.2, lại vạch ra trong G2 một chu trình đơn, ký hiệu bằng p12 và dùng số 2 để ghi trên các cạnh thuộc p12.
Thống nhất hai chu trình p11 và p12 thành một chu trình đơn mới p1 bằng cách đi từ đỉnh A theo p11 tới đỉnh B, sau đó đi theo tiếp p12 để trở về B, rồi
tiếp tục đi theo p11 để trở về A.
Tiếp tục áp dụng bổ đề 2.4.2 và thực hiện quá trình tương tự như trên cho tới khi nhận được chu trình đơn đi qua tất cả các cạnh của G1. Khi đó ta được chu trình Euler trong G.
Bổ đề được chứng minh.
Từ các bổ đề đã nêu ta có các hệ quả:
Hệ quả 2.4.1. Đồ thị vô hướng G= (X;E)là đa đồ thị Euler khi và chỉ khi nó chứa khơng q một thành phần liên thơng có cạnh và các đỉnh đều bậc chẵn.
Hệ quả 2.4.2. Đồ thị vô hướng G = (X;E) có xích Euler khi và chỉ khi nó chứa khơng q một thành phần liên thơng có cạnh và số đỉnh bậc lẻ là 0 hoặc 2.
Chứng minh.
Vì nếu trong G có xích Euler α thì nó phải đi qua tất cả các cạnh của đồ thị, nên G khơng thể chứa q một thành phần liên thơng có cạnh. Ngồi ra, chỉ có thể là đỉnh đầu và đỉnh cuối của α (nếu chúng khác nhau) là có bậc lẻ vàα qua mỗi đỉnh đều đi vào bằng một cạnh và đi ra bằng cạnh khác và không lặp lại, nên chỉ có hai đỉnh đầu củaα có bậc lẻ. Do đó số đỉnh bậc lẻ của G chỉ có thể là 0 hoặc 2.
2) Điều kiện đủ:
a) Nếu đồ thị G khơng chứa đỉnh bậc lẻ, theo bổ đề 2.4.3, nó có chu trình Euler – Xích Euler khép kín.
b) Nếu trong đồ thị G có đúng hai đỉnh bậc lẻ, chẳng hạn A, B là hai đỉnh bậc lẻ của G. Nếu thêm vào cạnh mới (A, m, B), thì đồ thị nhận được G1 thỏa mãn điều kiện bổ đề 2.4.3, nên nó có chu trình Euler α. Chu trình α đi qua mỗi cạnh của đồ thị G đúng một lần và qua cạnh (A, m, B) cũng đúng một lần, nên khi loại cạnh mới ra khỏi α thì phần cịn lại chính là xích Euler của đồ thị G.
Hệ quả được chứng minh.
Thuật tốn để tìm trực tiếp chu trình Euler
Để tìm chu trình Euler của đa đồ thị G ta thực hiện thuật toán sau:
Xuất phát từ một đỉnh tùy ý của G, mỗi khi đi qua một cạnh ta “xóa” cạnh
đó đi và ghi lại theo thứ tự từ trái sang phải.
Khi thực hiện thuật toán này cần lưu ý: Mỗi khi gặp cạnh bắc cầu cần “xóa” hết một trong hai thành phần liên thơng rồi mới “xóa” cạnh bắc cầu.
Chú ý: Nếu đa đồ thị có hai đỉnh bậc lẻ, thì khi tìm xích Euler cần xuất phát từ một trong hai đỉnh bậc lẻ và sẽ kết thúc tại đỉnh bậc lẻ kia.