Bài giảng Toán rời rạc - Chương 4: Đồ thị Euler và đồ thị Hamilton

Tóm tắt Bài giảng Toán rời rạc - Chương 4: Đồ thị Euler và đồ thị Hamilton: ...uler (tt)Định lý 7.1 Đồ thị G có chu trình vô hướng Euler khi và chỉ khi mọi đỉnh đều có bậc chẵn.134258769Đồ thị Euler (tt)Ví dụ:C1 = [1, 3, 4, 5, 8, 2]C2 = [2, 3, 5, 6, 7]C3 = [6, 9, 7, 8]C = [ 1, 3, 4, 5, 8, 2, 3, 5, 6, 9, 7, 8, 6, 7, 2 ]134258769Đồ thị Euler (tt)Hệ quả 7.1: Đồ thị G có đường đi ...= r+(b) + 1còn các đỉnh khác đều cân bằng.Đồ thị Euler (tt)Thuật toán 7.1Dữ liệu: Đồ thị liên thông G = (V, E) không có đỉnhbậc lẻ được biểu diễn bởi mảng các danh sách kềDK.Kết quả: Chu trình vô hưóng Euler với danh sách cácđỉnh nằm trong stack CE.Sơ đồ giải thuật tìm chu trình Euler.Thuật toán tìm...Mỗi lần lặp của chu trình (5 - 20):- Hoặc là đặt đỉnh lên stack S và xoá cạnh, - Hoặc chuyển đỉnh từ stack S sang stack CE. Số lần lặp của chu trình không vượt quá số cạnh m. Độ phức tạp tổng thể của thuật toán là O(m). Đồ thị HamiltonĐịnh nghĩa 7.2Đường Hamilton là đường đi qua mỗi đỉnh của đồ thị...

ppt17 trang | Chia sẻ: havih72 | Lượt xem: 367 | Lượt tải: 0download
Nội dung tài liệu Bài giảng Toán rời rạc - Chương 4: Đồ thị Euler và đồ thị Hamilton, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Chương 4Đồ thị Euler và đồ thị HamiltonĐồ thị EulerBài toán mở đầu:Sông Pregel và cù lao Kneiphof chia thành phố Konigsberg ở nước CH Litva thành 4 vùng đất.7 cây cầu nối giữa các vùng đất.	 B	 A	 D	 Pregel C	Đồ thị Euler (tt)Bài toán: Liệu có thể đi qua cả 7 cây cầu, mỗi cầu đúng một lần, rồi quay về chỗ xuất phát được hay không?	Bài toán đã làm say mê cư dân của thành phố. Họ háo hức đi thử nhưng không thành công.	Năm 1736, L.Euler đã chứng minh rằng bài toán không giải được.Từ bài toán này đưa đến các khái niệm về đường và chu trình Euler.Đồ thị Euler (tt)Biểu diễn mỗi vùng đất bằng một đỉnh của một đa đồ thị vô hướng, hai đỉnh có cạnh nối nếu có cầu nối tương ứng.Bài toán trên đưa về việc tìm một chu trình của đồ thị đi qua mỗi cạnh của đồ thị đúng một lần.Đồ thị biểu diễn bài toán KonigsbergĐồ thị Euler (tt)Định nghĩa 7.1Đường Euler của đa đồ thị là đường đi qua mỗi cạnh của đồ thị đúng một lần.Chu trình Euler của đa đồ thị là đường đi qua mỗi cạnh của đồ thị đúng một lần.Đồ thị Euler (tt)Ví dụ:Chu trình Euler: E = [1, 2, 3, 4, 5, 8, 9, 10, 6, 7] abdce21345678910Đồ thị Euler (tt)Định lý 7.1	Đồ thị G có chu trình vô hướng Euler khi và chỉ khi mọi đỉnh đều có bậc chẵn.134258769Đồ thị Euler (tt)Ví dụ:C1 = [1, 3, 4, 5, 8, 2]C2 = [2, 3, 5, 6, 7]C3 = [6, 9, 7, 8]C = [ 1, 3, 4, 5, 8, 2, 3, 5, 6, 9, 7, 8, 6, 7, 2 ]134258769Đồ thị Euler (tt)Hệ quả 7.1: Đồ thị G có đường đi Euler vô hướng khi và chỉ khi số đỉnh bậc lẻ bằng 2.Định lý 7.2:Đồ thị có hướng liên thông G có chu trình Eulercó hướng khi và chỉ khi tại mỗi đỉnh số cạnh đi vàobằng số cạnh đi ra:x  V , r-(x) = r+(x) , trong đó:- r-(x): số cạnh đi vào đỉnh x - r+(x): số cạnh đi ra khỏi đỉnh x.Đồ thị Euler (tt)Hệ quả 7.2Đồ thị có hướng liên thông G có đường Euler cóhướng khi và chỉ khi trong G có 2 đỉnh a, b thoảmãn:r-(a) = r+(a) - 1r-(b) = r+(b) + 1còn các đỉnh khác đều cân bằng.Đồ thị Euler (tt)Thuật toán 7.1Dữ liệu: Đồ thị liên thông G = (V, E) không có đỉnhbậc lẻ được biểu diễn bởi mảng các danh sách kềDK.Kết quả: Chu trình vô hưóng Euler với danh sách cácđỉnh nằm trong stack CE.Sơ đồ giải thuật tìm chu trình Euler.Thuật toán tìm chu trình EulerThuật toán: 1 Begin2 S :=  ; CE :=  ;3 v := đỉnh tuỳ ý của đồ thị ; push v onto S ;4. while S   do6 begin7 v := top(S) ;if DK(v)   then	 9 	begin 10 	u := đỉnh đầu tiên trong danh sách DK[v] ;11 	push u onto S ;12 	DK[v] := DK[v] \ {u} ; 13 	DK[u] := DK[u] \ {v}; { Xoá cạnh (v,u) }14 endelse 17 begin 18 v := pop(S) ; 19 push v onto CE 20 end21 end22 End .Thuật toán tìm chu trình Euler (tt)Độ phức tạp: 	Mỗi lần lặp của chu trình (5 - 20):- Hoặc là đặt đỉnh lên stack S và xoá cạnh, - Hoặc chuyển đỉnh từ stack S sang stack CE.	Số lần lặp của chu trình không vượt quá số cạnh m. 	Độ phức tạp tổng thể của thuật toán là O(m). Đồ thị HamiltonĐịnh nghĩa 7.2Đường Hamilton là đường đi qua mỗi đỉnh của đồ thị đúng một lần.Chu trình Hamilton là chu trình đi qua mỗi đỉnh của đồ thị đúng một lần.Đồ thị Hamilton (tt)Tổ chức tour du lịch sao cho người du lịch thăm quan mỗi thắng cảnh trong thành phố đúng một lầnBài toán mã đi tuần: cho con mã đi trên bàn cờ vua sao cho nó đi qua mỗi ô đúng một lần. Đường Hamilton biểu diễn nước đi của con mã trên bàn cờ 3x4123456789101112H = [ 8, 10, 1, 7, 9, 2, 11, 5, 3, 12, 6, 4 ] Đồ thị Hamilton (tt)Định lý (Dirac)	Nếu  a  V, r(a)  (n/2) thì đồ thị G có chu trình vô hướng Hamilton.Nhận xét:Đồ thị có đỉnh bậc ≤ 1 thì không có chu trình Hamilton.Nếu đồ thị có các đỉnh đều có bậc  2 và có một đỉnh bậc 2 thì mọi chu trình Hamilton (nếu có) phải đi qua 2 cạnh kề của đỉnh này.Nếu trong đồ thị có một đỉnh kề với 3 đỉnh bậc 2 thì không có chu trình Hamilton.

File đính kèm:

  • pptbai_giang_toan_roi_rac_chuong_4_do_thi_euler_va_do_thi_hamil.ppt