Đường đi Euler và đường đi Hamilton

25 216 0
Đường đi Euler và đường đi Hamilton

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Đường Euler đường Hamilton Đường Định nghĩa: Cho G = (X, E) • Đường (path) dãy cạnh liên tiếp (x0, x1, x2, …, xk) xixi+1 cạnh ∈ E Độ dài (length) đường = k • Đường đơn (simple) khơng có cạnh xuất lần • Đường sơ cấp (elementary) khơng có đỉnh xuất q lần • Đường chu trình (cycle) đỉnh đầu trùng đỉnh cuối x0 = xk Ví dụ đường • (u, y, w, v) đường độ dài • (z, u, y, v, u) đường đơn khơng sơ cấp • (u, y, w, v, u) chu trình Có thể xem chu trình chu trình (w, v, u, y, w) Định lý ĐL: ếu đỉnh đồ thị G có bậc ≥ G có chu trình đơn Chứng minh (Xem giáo trình) Tính liên thơng đồ thị Đ : Hai đỉnh x y đồ thị vô hướng gọi liên thông (connected) với x = y có đường hai đỉnh x, y hận xét: • Quan hệ liên thơng quan hệ tương đương • Mỗi lớp tương đương thành phần liên thông (component) G • Nếu G có thành phần liên thơng G gọi đồ thị liên thơng (ln có đường hai đỉnh x, y bất kỳ) Ví dụ tính liên thơng • G liên thơng • H khơng liên thơng • H có thành phần liên thông Khớp Cầu Đối chu trình Đ : Cho G = (X,E) A⊂ X Đối chu trình A, ký hiệu w(A), gồm cạnh G có đỉnh A, đỉnh ngồi A VD: • Với A = {x, y}, w(A) = {xu, yu, yv, yw} • Với B = {x, u}, w(B) = {xy, uz, uv, uy} Đối chu trình sơ cấp Đ : w = w(A) gọi đối chu trình sơ cấp (tập cắt) nếu: – G – w không liên thông – G – w’ liên thơng với tập w’ w VD: với A = {x, y}, w(A) = {xu, yu, yv, yw} tập cắt Với B = {x, u}, w(B) = {xy, uz, uv, uy} không tập cắt G – {uz} khơng liên thơng Biểu diễn đồ thị ma trận Ma trận đồ thị vô hướng A(i,i) = 0, A(i,j) = đỉnh i kề j       A :=       1 1 1 1 0 1 0 1 1   0  1  0  0 10 Ma trận đồ thị có hướng B(i,i) = 0, B(i,j) = có cung ij       B :=       0 0 1 0 0 0 1 0   0  0  0  0 11 Ma trận khoảng cách đồ thị vơ hướng có trọng lượng K(i,j) = trọng lượng cạnh ij K(i,i) = 0, K(i,j) = ∞ cạnh ij  ∞ ∞ ∞ ∞ ∞    K :=  ∞    ∞ ∞   ∞ ∞  12 Ma trận khoảng cách đồ thị có hướng có trọng lượng K(i,j) = trọng lượng cung ij K(i,i) = 0, K(i,j) = ∞ khơng có cung ij  ∞ ∞ ∞ ∞ ∞ ∞    K :=  ∞ ∞     ∞ ∞ ∞  ∞ ∞  13 Đường Euler Đ : Một đường đồ thị G gọi đường Euler qua tất cạnh G, cạnh lần • Nếu G có chu trình Euler G gọi đồ thị Euler VD: đồ thị G bên có chu trình Euler a g e abdhbcdefa nên G đồ thị Euler 14 Sự tồn đường Euler ĐL: Cho G liên thơng Khi MĐ: Cho G liên thơng Khi đó, G có đường Euler đó, G Euler (nhưng khơng có chu đỉnh G trình Euler) có bậc chẵn G có hai bậc lẻ Vẽ nét 15 Thuật tốn Fleury tìm đường Euler • Xuất phát từ đỉnh bất kỳ, tạo đường Euler thoả hai quy tắc sau: Xoá cạnh qua đỉnh lập (nếu có) Tại đỉnh, ta qua cầu khơng lựa chọn khác Nếu đồ thị có hai bậc lẻ (có đường Euler) xuất phát từ đỉnh bậc lẻ 12 10 11 16 Đồ thị Hamilton Đ : Một đường đồ thị G gọi đường Hamilton qua tất đỉnh G, đỉnh lần • Nếu G có chu trình Hamilton G gọi đồ thị Hamilton VD: đồ thị G bên có chu trình Hamilton 17 Quy tắc kiểm tra đồ thị Hamilton Giả sử đồ thị G có chu trình Hamilton H Khi Tất cạnh kề với đỉnh bậc hai phải thuộc H Không có chu trình hình thành q trình xây dựng H Khi H có đường qua đỉnh u xố cạnh kề u lại mà khơng sử dụng tạo nên đỉnh có bậc Khơng có đỉnh treo đỉnh lập tạo nên áp dụng Qui tắc VD: theo quy tắc 1, cạnh fa, fe, ga, ge phải thuộc H • Khi có chu trình agef vi phạm quy tắc • đồ thị khơng Hamilton 18 Đường ngắn • Trong đồ thị có trọng lượng, có nhiều đường hai đỉnh a, b • Trong thực tế ta thường muốn tìm phương án tối ưu đường ngắn hà chàng hà nàng 19 Thuật tốn Dijsktra tìm đường ngắn • Input: đồ thị G khơng có trọng lượng âm, đỉnh xuất phát x0 • Output: đường ngắn từ x0 đến đỉnh lại Nguồn: ThS Trịnh Thanh Đèo 20 Thuật toán Dijkstra Khởi tạo: T = V; p(x0) = Với đỉnh i ≠ x0, đặt p(i) = ∞, đánh dấu đỉnh i (∞, -) Tìm i ∈ T cho p(i) = min{p(j), j ∈ T} Cập nhật T := T – {i} Nếu T = ∅ dừng Ngược lại đến bước 3 Nếu Kề(i) ∩ T ≠ ∅ đỉnh j ∈ Kề(i) ∩ T, chọn p(j) = min{p(j), p(i) + Dij} Nếu p(j) chọn p(i) + Dij đánh dấu j (p(j),i) Quay lại bước Đỉnh i có nhãn (x,y) nghĩa đường ngắn từ x0 đến i , trước đến i qua y, tổng độ dài x 21 Ví dụ đồ thị vơ hướng Nguồn: ThS Trịnh Thanh Đèo 22 Ví dụ đồ thị có hướng Nguồn: ThS Trịnh Thanh Đèo 23 Bài tập Cho ví dụ đồ thị Euler khơng Hamilton Cho ví dụ đồ thị Hamilton khơng Euler Cho ví dụ đồ thị vừa Euler vừa Hamilton Tìm đường ngắn đồ thị sau, xuất phát từ đỉnh 24 Cho đồ thị G sau Tìm đường ngắn từ đỉnh đến đỉnh lại 25 ... A(i,j) = đỉnh i kề j       A :=       1 1 1 1 0 1 0 1 1   0  1  0  0 10 Ma trận đồ thị có hướng B(i,i) = 0, B(i,j) = có cung ij       B :=       0 0 1 0... qua cầu khơng lựa chọn khác Nếu đồ thị có hai bậc lẻ (có đường Euler) xuất phát từ đỉnh bậc lẻ 12 10 11 16 Đồ thị Hamilton Đ : Một đường đồ thị G gọi đường Hamilton qua tất đỉnh G, đỉnh lần • Nếu

Ngày đăng: 20/12/2017, 08:50

Tài liệu cùng người dùng

Tài liệu liên quan