Đường đi Euler

Một phần của tài liệu một số vấn đề ứng dụng của đồ thị trong tin học (Trang 36 - 37)

II. tô màu đồ thị

2.Đường đi Euler

2.1 Định nghĩa

Đường Euler trong đồ thị G = <X, U> là đường đi qua tất cả các cạnh của đồ thị, mỗi cạnh đi qua đúng một lần.

Đinh lý 3: Cho G = <X, U> là đồ thị vô hướng liên thông. Điều kiện cần và đủ để đồ thị có đường Euler là số đỉnh bậc lẻ trong đồ thị là 0 hoặc 2.

x x1 x2 x

k-1

Chứng minh: Trường hợp số đỉnh bậc lẻ bằng 0 thì G là đồ thị liên thông và

mọi đỉnh đều có bậc chẵn. Theo định lý về chu trình Euler thì trong G có chu trình Euler, tức cũng là đường Euler.

Nếu số đỉnh bậc lẻ là 2, chẳng hạn đó là các đinh x1 và x2. Hãy thêm vào một đỉnh mới x và hai cạnh (x, x1) và (x, x2) vào đồ thị G = <X, U>. Ta có đồ thị mới G' = <X', U'>, ở đây X' = X ẩ {x}, U' = U ẩ {(x, x1), (x, x2)}. Rõ ràng là G' liên thông và mọi đỉnh đều có bậc chẵn. Theo định lý về chu trình Euler đã nêu ở trên thì trong G' có tồn tại chu trình Euler, cũng là đường Euler.

Định lý 4: Cho đồ thị có hướng G = <X, U>, điều kiện cần và đủ để có đường

đi Euler từ x đến y (x, y ẻ X) là G liên thông và đỉnh x có bậc ra lớn hơn bậc vào 1 đơn vị, đỉnh y có bậc vào lớn hơn bậc ra 1 đơn vị, còn tất cả các đỉnh khác đều có bậc vào bằng bậc ra.

2.2 Thuật toán tìm đường Euler

Bước 1: Kiểm tra xem đồ thị G có liên thông hay không. Nếu có thì chuyển sang bước 2. Ngược lại, thì dừng thuật toán và khẳng định rằng không có đường Euler.

Bước 2: Kiểm tra xem mọi đỉnh trong G đều có bậc chẵn hay không. Nếu có chuyển sang bước 4. Nếu không chuyển sang bước 3.

Bước 3: Kiểm tra xem số đỉnh bậc lẻ có bằng 2 hay không. Nếu có chuyển sang bước 4. Nếu không thì dừng lại và kết luận không có đường Euler.

Bước 4: Xây dựng đường Euler trong G.

Một phần của tài liệu một số vấn đề ứng dụng của đồ thị trong tin học (Trang 36 - 37)