Các khái niệm Lý thuyết đồ thị Đồ thị Euler (phan 2) Các khái niệm Lý thuyết đồ thị Đồ thị Euler (phan 2) Bởi: Khoa CNTT ĐHSP KT Hưng Yên Các khái niệm Lý thuyết đồ thị Đồ thị Euler Đồ thị eule Định nghĩa Chu trình đơn đồ thị G qua cạnh lần gọi chu trình Euler Đường đơn G qua cạnh lần gọi đường Euler Đồ thị gọi đồ thị Euler có chu trình Euler, gọi đồ thị nửa Euler có đường Euler Rõ ràng đồ thị Euler nửa Euler, điều ngược lại không Các thí dụ Ví dụ Đồ thị G1 hình đồ thị Euler có chu trình Euler a, e, c, d, e, b, a Đồ thị G3 chu trình Euler có đường Euler a, c, d, e, b, d, a, b, G3 đồ thị cửa Euler Đồ thị G2 chu trình đường Euler Hình : Đồ thị G , G , G 1/5 Các khái niệm Lý thuyết đồ thị Đồ thị Euler (phan 2) Ví dụ : Đồ thị H2 hình đồ thị Euler có chu trình Euler a, b, c, d, e, a Đồ thị H3 chu trình Euler có đường Euler c, a, b, c, d, b H3 đồ thị nửa Euler Đồ thị H1 chu trình đường Euler Hình 1: Đồ thị H , H , H Điều kiện cần đủ để đồ thị đồ thị Euler Euler tìm vào năm 1736 ông giải toán hóc búa tiếng giới thời bảy cầu thành phố Konigsberg định lý lý thuyết đồ thị Định lý Euler và thuật toán Flor Định lý (Euler) Đồ thị vô hướng liên thông G đồ thị Euler đỉnh G có bậc chẵn Để chứng minh định lý trước hết ta chứng minh bổ để: Bổ đề Nếu bậc đỉnh đồ thị G không nhỏ G chứa chu trình Chứng minh Nếu G có cạnh lặp khẳng định bồ đề hiển nhiên Vì giả sử G đơn đồ thị Gọi v đỉnh G Ta xây dựng theo qui nạp đường v → v1 →v2 → v1 đỉnh kề với v, với i ≥ chọn vi+1 ≠ vi-l (có thể chọn vi+1 deg(vi) ≥2) Do tập đỉnh G hữu hạn , nên sau số hữu hạn bước ta phải quay lại đỉnh xuất trước Gọi đỉnh vk Khi đó, đoạn đường xây dựng nằm hai đỉnh vk chu trình cần tìm Chứng minh định lý: 2/5 Các khái niệm Lý thuyết đồ thị Đồ thị Euler (phan 2) Cần Giả sử G đồ thị Euler tức tồn chu trình Euler P G Khi lần chu trình P qua đỉnh G bậc đỉnh tăng lên mặt khác cạnh đồ thị xuất P lần, suy đỉnh đồ thị điều có bậc chẵn Đủ.Quy nạp theo số đỉnh số cạnh G Do G liên thông deg(v) số chẵn nên bậc đỉnh không nhỏ Từ theo bổ đề G phải chứa chu trình C Nếu C qua tất cạnh G chu trình Euler Giả sử C không qua tất cạnh G Khi loại bỏ khỏi G tất cạnh thuộc C ta thu đồ thị H có bậc chẵn Theo giả thiết qui nạp, thành phần liên thông H điều tìm chu trình Euler Do G liên thông nên thành phần H có đỉnh chung với chu trình C Vì vậy, ta xây dựng chu trình Euler G sau: đỉnh chu trình C, theo cạnh C chừng chưa gặp phải đỉnh không cô lập H Nếu gặp phải đỉnh ta theo chu trình Euler thành phần liên thông H chứa đỉnh Sau lại tiếp tục theo cạnh C gặp phải đỉnh không cô lập H lại theo chu trình Euler thành phần liên thông tương ứng H v.v… (xem hình 12) Quá trình kết thúc ta trở đỉnh xuất phát , tức thu chu trình qua cạnh đồ thị lần Hình 12 Minh hoạ cho chứng minh định lý Hệ Đồ thị vô hướng liên thông G nửa Euler có không đỉnh bậc lẻ Chứng minh Thực , G có không đỉnh bậc lẻ số đỉnh bậc lẻ Nếu G đỉnh bậc lẻ theo định lý 4, đồ thị Euler Giả sử G có đỉnh bậc lẻ u v Gọi H đồ thị thu từ G cách thêm vào G đỉnh w hai cạnh (w,u) và(w,v) Khi tất đỉnh H điều có bậc chẵn, theo định lý 4, có chu trình Euler C Xoá bỏ khỏi chu trình đỉnh w hai cạnh kề ta thu đường Euler đồ thị G 3/5 Các khái niệm Lý thuyết đồ thị Đồ thị Euler (phan 2) Giả sử G đồ thị Euler, từ chứng minh định lý ta có thủ tục sau để tìm chu trình Euler G Procedure Euler_Cycle; Begin STACK:= ∅ ; CE:= ∅ ; Chon u la mot dinh nao cua thi; STACK ? u; While STACK ∅ Begin X:=top(STACK); (* x la phan tu dau STACK) If Ke(x) ∅ then Begin Y:=dinh dau tien danh sach Ke(x); STACK ? y; (* loai bo canh (x,y) khoi thi *) Ke(x):=Ke(x)\ { y} ; Ke(y):=Ke(y)\{ x} ; End Else Begin x ⇐ STACK; CE ⇐ x; End; End; 4/5 Các khái niệm Lý thuyết đồ thị Đồ thị Euler (phan 2) End; Giả sử G đồ thị Euler, thuật toán đơn giản sau cho phép xác định chu trình Euler làm tay Thuật toán Flor Xuất phát từ đỉnh u G ta theo cạnh cách tuỳ ý cần tuân thủ qui tắc sau: (1) Xoá bỏ cạnh qua đồng thời xoá bỏ đỉnh cô lập tạo thành (2) Ở bước ta qua cầu không cách lựa chon khác Chứng minh tính đắn thuật toán Trước tiên ta thủ tục thực bước Giả sử ta đến đỉnh v đó, v ≠ u đồ thị lại H liên thông chứa hai đỉnh bậc lẻ v u Theo hệ H có đường Euler P từ v tới u Do việc xoá bỏ cạnh đường P không làm tính liên thông H, từ suy thủ tục thực bước Nếu v=u lập luận chừng cạnh kề với u Như phải thủ tục dẫn đến đường Euler Thực G cạnh chưa qua mà ta sử dụng cạnh cuối kề với u (trong trường hợp ngược lại, việc loại bỏ cạnh kề với số cạnh lại chưa qua dẫn đến đồ thị không liên thông, điều mâu thuẫn với giả thiết ii) Chứng minh tương tự định lý ta thu kết sau cho đồ thị có hướng Định lý Đồ thị có hướng liên thông mạnh đồ thị Euler Deg+(v) = deg- (v), ∀ v ∈ V 5/5 .. .Các khái niệm Lý thuyết đồ thị Đồ thị Euler (phan 2) Ví dụ : Đồ thị H2 hình đồ thị Euler có chu trình Euler a, b, c, d, e, a Đồ thị H3 chu trình Euler có đường Euler c, a, b, c, d, b H3 đồ thị. . . thu đường Euler đồ thị G 3/5 Các khái niệm Lý thuyết đồ thị Đồ thị Euler (phan 2) Giả sử G đồ thị Euler, từ chứng minh định lý ta có thủ tục sau để tìm chu trình Euler G Procedure Euler_ Cycle;... khái niệm Lý thuyết đồ thị Đồ thị Euler (phan 2) Cần Giả sử G đồ thị Euler tức tồn chu trình Euler P G Khi lần chu trình P qua đỉnh G bậc đỉnh tăng lên mặt khác cạnh đồ thị xuất P lần, suy đỉnh đồ