1 ĐỒ THỊ 1.Biểu diễn đồ thị máy tính +Định nghĩa 1: Đơn đồ thị vô hướng 𝐺 = (𝑉, 𝐸) bao gồm V tập đỉnh, E tập cặp có thứ tự gồm hai phần tử khác V gọi cạnh (không kể thứ tự) +Định nghĩa 2: Đơn đồ thị có hướng 𝐺 = (𝑉, 𝐸) bao gồm V tập đỉnh, E tập cặp có thứ tự gồm hai phần tử V gọi cung (có thứ tự) +Xét đồ thị đơn vơ hướng 𝐺 = (𝑉, 𝐸), với tập đỉnh 𝑉 = {1, 2, , 𝑛}, tập cạnh 𝐸 = {𝑒1 , 𝑒2 , , 𝑒𝑚 ) Ta gọi ma trận kề đồ thị G ma trận có phần tử 𝐴 = 𝑎𝑖𝑗 : 𝑎𝑖𝑗 = 𝑛ế𝑢 𝑖, 𝑗 ∈ 𝐸, 𝑎𝑖𝑗 = 𝑛ế𝑢 𝑖, 𝑗 ∉ 𝐸; 𝑖, 𝑗 = 1, 2, , 𝑛 KHOA CÔNG NGHỆ THƠNG TIN ĐỒ THỊ Ví dụ 1: (Hình 1) Hình đồ thị G = (V, E), tập đỉnh 𝑉 = {𝑥1 , 𝑥2 , 𝑥3 , 𝑥4 , 𝑥5 , 𝑥6 } Và tập cạnh 𝐸 = {𝑒1 , 𝑒2 , 𝑒3 , 𝑒4 , 𝑒5 , 𝑒6 , 𝑒7 } Đường dãy đỉnh cạnh nối tiếp Độ dài đường số cạnh KHOA CƠNG NGHỆ THƠNG TIN ĐỒ THỊ Ví dụ 2: cho đồ thị (Hình 1) dãy (𝑥1 , 𝑒1 , 𝑥2 , 𝑒4 , 𝑥4 , 𝑒7 , 𝑥6 ) đường từ 𝑥1 đến 𝑥6 có độ dài Ví dụ 3: cho đồ thị (Hình 1) dãy (𝑥1 , 𝑒1 , 𝑥2 , 𝑒4 , 𝑥4 , 𝑒3 , 𝑥3 , 𝑒2 , 𝑥1 ) chu trình từ 𝑥1 quay 𝑥1 Đồ thị G gọi liên thơng hai đỉnh tồn đường nối chúng với Đồ thị khơng liên thơng từ 𝑥5 khơng có đường đến đỉnh khác Đỉnh 𝑥5 gọi đỉnh lập KHOA CƠNG NGHỆ THƠNG TIN CÂY 2.Cây Cây đồ thị liên thông không chứa chu trình (giữa đỉnh tồn đường nối chúng với nhau) Ví dụ 4: Một người tên A có ba B, C D B có hai E F C độc thân khơng có D có ba G, H I H có hai J K (Hình 2) KHOA CƠNG NGHỆ THÔNG TIN CÂY +Gốc đỉnh đặc biệt người dùng ấn định, thông thường đỉnh +Cho T có gốc 𝑣0 Giả sử x, y, z đỉnh T (𝑣0 , 𝑣1 , , 𝑣𝑛 ) đường T +Khi ta gọi 𝑣𝑘−1 cha 𝑣𝑘 , k =1, …, n +𝑣0 , 𝑣1 , , 𝑣𝑘−1 tiền bối 𝑣𝑘 , k =1, …, n +𝑣𝑘 𝑣𝑘−1 , k=1, …, n + y hậu x, x tiền bối y + y z anh em chúng đỉnh x +Nếu tập nút rỗng ta có rỗng +Một nút (không phải gốc) nút hậu tạo thành gọi +Bậc nút số nút nút +Bậc bậc lớn nút Cây có bậc n gọi n-phân +Nút nút có bậc > +Nút ngồi (nút lá) nút có bậc +Mức nút gốc Các gốc có mức +Nếu nút có mức m, nút có mức m+1 +Chiều cao (sâu) mức lớn nút KHOA CÔNG NGHỆ THÔNG TIN BIỂU DIỄN ĐỒ THỊ TRÊN MÁY TÍNH Ví dụ 1: Biểu diễn đồ thị vơ hướng hình ma trận kề Ví dụ 5: Biểu diễn đồ thị vơ hướng hình sau ma trận kề Hình 1: Đồ thị vơ hướng G ma trận kề KHOA CÔNG NGHỆ THÔNG TIN BIỂU DIỄN ĐỒ THỊ TRÊN MÁY TÍNH Ví dụ 2: Biểu diễn đồ thị có hướng hình ma trận kề Hình 2: Đồ thị có hướng G 6 0 0 0 1 0 0 0 0 0 1 0 0 0 0 ma trận kề KHOA CÔNG NGHỆ THÔNG TIN THUẬT TỐN ĐƯỜNG NGẮN 2.Thuật tốn Dijkstra’s tìm đường ĐI ngắn NHẤT – DIJKSTRA’S 4.1 Phát biểu 2.1.Phát biểubài bàitốn tốn: Cho đồ thị có trọng số G = ( V, E, w) Ký hiệu w(i, j) trọng số cạnh (i, j) Độ dài đường đi: 𝝁 = 𝒗𝟎 → 𝒗𝟏 → 𝒗𝟐 → 𝒗𝟑 → ⋯ → 𝒗𝒏−𝟏 → 𝒗𝒏 tổng trọng số: 𝒏 𝑳 𝝁 = 𝐰(𝒗𝒊−𝟏 , 𝒗𝒊 ) 𝒊=𝟏 + Bài toán 1: (1-1) Cho hai đỉnh a, z đồ thị Bài tốn đặt tìm đường ngắn từ a đến z +Bài toán 2: (1-n) Cho đỉnh a đồ thị Bài toán đặt tìm đường ngắn từ a đến tất đỉnh +Bài tốn 3: (n-n) Tìm đường ngắn cặp đỉnh KHOA CÔNG NGHỆ THÔNG TIN 4.2 Thuật toán đường ngắn 2.2 Thuật tốn đường ngắn Thuật tốn tìm đường ngắn từ đỉnh a đến đỉnh z đồ thị có trọng số Trọng số cạnh (i, j) w(i,j) > đỉnh x mang nhãn L(x) Khi kết thúc thuật giải L(z) chiều Bước 3: Nếu z = v, L(z) chiều dài đường ngắn từ a đến z Từ z lần ngược theo đỉnh ghi nhớ hàm P(x) ta tìm đường ngắn sau: dài ngắn từ a đến z *Đầu vào: Đồ thị G = (V, E, w) có trọng số w(i,j) > với cạnh (i,j) đỉnh a đỉnh z Đặt z1 = P(z) , z2 =P(z1), , zk = P(zk-1), a = P(𝒛𝒌 ) *Đầu ra: L(z) chiều dài đường ngắn từ a đến z, đường ngắn Suy đường ngắn (nếu L(z) < +∞) 𝒂 → 𝒛𝒌 → 𝒛𝒌−𝟏 → ⋯ → 𝒛𝟏 → 𝒛 *Bước thực hiện: Kết thúc Bước 1: Khởi tạo: Gán L(a):= Với đỉnh x≠ a gán L(x) := ∞ Đặt T:= V Ngược lại, z ≠ v, sang bước Gán P(x):=∅, ∀𝒙 𝛜 𝐕 (P(x) đỉnh trước đỉnh x đường ngắn từ a đến x) Bước 4: Với x 𝛜 T (kề sau đồ thị có hướng) v, tức tồn cạnh (cung đồ thị Bước 2: Tính m := {L(u) |u ϵ T} có hướng) (v, x), L(x) > L(v) + w(v, x) Nếu m = +∞ , kết luận không tồn đường từ a đến z Kết thúc Ngược lại, m < +∞, chọn v ϵ T cho L(v) = m, đặt gán L(x) := L(v) + w(v, x) T:= T – {v} Sang bước ghi nhớ đỉnh v cạnh đỉnh x, gán P(x) := v (để sau xây dựng đường ngắn nhất) Quay bước KHOA CÔNG NGHỆ THÔNG TIN 10 ... CÔNG NGHỆ THÔNG TIN BIỂU DIỄN ĐỒ THỊ TRÊN MÁY TÍNH Ví dụ 1: Biểu diễn đồ thị vơ hướng hình ma trận kề Ví dụ 5: Biểu diễn đồ thị vơ hướng hình sau ma trận kề Hình 1: Đồ thị vơ hướng G ma trận kề KHOA... DIỄN ĐỒ THỊ TRÊN MÁY TÍNH Ví dụ 2: Biểu diễn đồ thị có hướng hình ma trận kề Hình 2: Đồ thị có hướng G 6 0 0 0 1 0 0 0 0 0 1 0 0 0 0 ma trận kề KHOA CÔNG NGHỆ THÔNG TIN THUẬT TỐN ĐƯỜNG NGẮN 2 .Thuật. .. toán 1: (1-1) Cho hai đỉnh a, z đồ thị Bài tốn đặt tìm đường ngắn từ a đến z +Bài toán 2: (1-n) Cho đỉnh a đồ thị Bài toán đặt tìm đường ngắn từ a đến tất đỉnh +Bài tốn 3: (n-n) Tìm đường ngắn