b) Mô tả thuật toán
4.2.1. Chứng minh đồ thị là Euler
Đối với đồ thị vô hƣớng, để chứng minh đồ thi có là Euler hay không ta chỉ cần thực hiện:
Kiểm tra đồ thị có liên thông hay không? Điều này dễ dàng thực hiện bằng cách kiểm tra DFS(u) = V hoặc BFS(u) = V thì ta kết luận đồ thị là liên thông (u là đỉnh bất kỳ của đồ thị).
Sử dụng tính chất của ma trận kề biểu đồ thị vô hƣớng để tính toán bậc của các đỉnh.
Đối với đồ thị có hƣớng, để chứng minh đồ thi có là Euler hay không ta chỉ cần thực hiện:
Kiểm tra đồ thị có liên thông yếu hay không? Điều này dễ dàng thực hiện bằng cách kiểm tra nếu tồn tại đỉnh uV để DFS(u) = V hoặc BFS(u) = V thì ta kết luận đồ thị là liên thông yếu.
Sử dụng tính chất của ma trận kề biểu đồ thị có hƣớng để tính bán đỉnh bậc ra và bán đỉnh bậc vào của các đỉnh.Bán đỉnh bậc ra của đỉnh u là deg+(u) là số các số 1 của hàng u. Bán đỉnh bậc vào của đỉnh u là deg-(u) là số các số 1 của cột u.
Ví dụ để chứng minh đồ thị có hƣớng đƣợc biểu diễn dƣới dạng ma trận kề nhƣ dƣới đây ta thực hiện nhƣ sau:
0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 1 1 0 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 1 0 0 1 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 1 0 0 0 0 0 0 0 1 1 0 1 1 0 0 0 1 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 - Vì BFS(1) = { 1, 2, 6, 3, 5, 7, 4, 11, 8, 10, 12, 9, 13} = V. Do vậy, G liên thông. - Ta lại có : deg(1) = deg(13) = 2. deg (2) = deg(3) = 4 deg(4) = deg(5) = 4 deg(6) = deg(7) = 4 deg(8) = deg(9) = 4
deg(10) = deg(11) = deg(12) = 4 Chú ý: Tổng các phần tử của hàng u (cột u) là bậc của đỉnh u. Ví dụ tổng các phần tử của hàng 1 là 2 nên deg(1) = 2.
G liên thông yếu và có bán đỉnh bậc ra bằng bán đỉnh bậc vào nên G là đồ thị Euler.