1. Trang chủ
  2. » Khoa Học Tự Nhiên

CHƯƠNG 5: ĐỒ THỊ potx

41 264 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 41
Dung lượng 276,09 KB

Nội dung

CH NG 5: Đ THƯƠ Ồ Ị Nguy n Văn Linhễ Khoa CNTT-TT Đ i h c C n Thạ ọ ầ ơ nvlinh@cit.ctu.edu.vn Nguy n Văn Linhễ Nguy n Văn Linhễ N I DUNGỘ • Các khái ni mệ • Bi u di n đ thể ễ ồ ị • Các phép duy t trên đ thệ ồ ị • Các bài toán trên đ th ồ ị Nguy n Văn Linhễ CÁC KHÁI NI M (1)Ệ • M t đ th G bao g m m t t p h p V các đ nh và m t t p ộ ồ ị ồ ộ ậ ợ ỉ ộ ậ h p E các c nh, ký hi u G=(V,E). ợ ạ ệ • Các đ nh còn đ c g i là nút (node) hay đi m (point). Các ỉ ượ ọ ể c nh n i gi a hai đ nh, hai đ nh này có th trùng nhau. ạ ố ữ ỉ ỉ ể • Hai đ nh có c nh n i nhau g i là hai đ nh k (adjacency). ỉ ạ ố ọ ỉ ề M t c nh n i gi a hai đ nh v, w có th coi nh là m t c p ộ ạ ố ữ ỉ ể ư ộ ặ đi m (v,w). ể • N u c p này có th t thì ta có c nh có th t , ng c l i ế ặ ứ ự ạ ứ ự ượ ạ thì c nh không có th t . ạ ứ ự • N u các c nh trong đ th G có th t thì G g i là đ th có ế ạ ồ ị ứ ự ọ ồ ị h ng (directed graph). ướ • N u các c nh trong đ th G không có th t thì đ th G là ế ạ ồ ị ứ ự ồ ị đ th vô h ng (undirected graph). ồ ị ướ Nguy n Văn Linhễ CÁC KHÁI NI M (2)Ệ • Thông th ng trong m t đ th , các đ nh bi u di n ườ ộ ồ ị ỉ ể ễ cho các đ i t ng còn các c nh bi u di n m i ố ượ ạ ể ễ ố quan h gi a các đ i t ng đó. ệ ữ ố ượ • M t đ ng đi (path) trên đ th là m t dãy tu n t ộ ườ ồ ị ộ ầ ự các đ nh v1, v2, , vn sao cho (vi,vi+1) là m t c nh ỉ ộ ạ trên đ th (i=1, ,n-1). ồ ị • Đ nh v1 còn g i là đ nh đ u, vn g i là đ nh cu i. ỉ ọ ỉ ầ ọ ỉ ố Đ dài c a đ ng đi này b ng s đ nh tr 1. ộ ủ ườ ằ ố ỉ ừ • Tr ng h p đ c bi t dãy ch có m t đ nh v thì ta ườ ợ ặ ệ ỉ ộ ỉ coi đó là đ ng đi t v đ n chính nó có đ dài ườ ừ ế ộ b ng không.ằ Nguy n Văn Linhễ CÁC KHÁI NI M (3)Ệ • Đ ng đi g i là đ n n u m i đ nh trên ườ ọ ơ ế ọ ỉ đ ng đi đ u đôi m t khác nhau, ngo i tr ườ ề ộ ạ ừ đ nh đ u và đ nh cu i có th trùng nhau. ỉ ầ ỉ ố ể • M t đ ng đi có đ nh đ u và đ nh cu i ộ ườ ỉ ầ ỉ ố trùng nhau g i là m t chu trình (cycle).ọ ộ • Đ th có tr ng s : các c nh ho c các đ nh ồ ị ọ ố ạ ặ ỉ có giá trị Nguy n Văn Linhễ BI U DI N Đ THỂ Ễ Ồ Ị • Bi u di n đ th b ng ma tr n k ể ễ ồ ị ằ ậ ề • Bi u di n đ th b ng danh sách các đ nh ể ễ ồ ị ằ ỉ k ề Nguy n Văn Linhễ BI U DI N B NG MA TR N K (1)Ể Ễ Ằ Ậ Ề • Dùng m ng A logic 2 chi u có n ph n t đ ả ề ầ ử ể bi u di n cho đ th G có n đ nh.ể ễ ồ ị ỉ • Gi s các đ nh c a đ th đ c đánh s t ả ử ỉ ủ ồ ị ượ ố ừ 0 đ n n-1. ế • N u có c nh (i,j) thì A[i,j] = 1, ng c l i thì ế ạ ượ ạ A[i,j] = 0. Nguy n Văn Linhễ BI U DI N B NG MA TR N K (2)Ể Ễ Ằ Ậ Ề 0 1 4 32 A 0 1 2 3 4 0 1 0 1 1 1 1 1 0 0 2 0 1 1 1 3 1 0 1 1 4 1 0 1 1 Ma tr n k c a đ th vô h ng là ậ ề ủ ồ ị ướ ma tr n đ i x ngậ ố ứ Nguy n Văn Linhễ BI U DI N B NG MA TR N K (3)Ể Ễ Ằ Ậ Ề A 0 1 2 3 4 0 1 0 1 1 1 0 1 0 0 2 0 0 0 1 3 0 0 1 1 4 0 0 0 0 Ma tr n k c a đ th có h ng là ậ ề ủ ồ ị ướ ma tr n không đ i ậ ố x ngứ 0 1 4 32 Nguy n Văn Linhễ MA TR N TR NG S (1)Ậ Ọ Ố 0 1 4 32 A 0 1 2 3 4 0 10 ∞ 30 100 1 10 50 ∞ ∞ 2 ∞ 50 10 10 3 30 ∞ 10 60 4 100 ∞ 10 60 Ma tr n tr ng s c a đ th vô h ng là ậ ọ ố ủ ồ ị ướ ma tr n đ i ậ ố x ngứ 0 1 4 32 10 30 50 10 100 10 60 [...]... E, G Nguyễn Văn Linh CÁC BÀI TOÁN TRÊN ĐỒ THỊ • Tìm đuờng đi ngắn nhất từ một đỉnh của đồ thị (the single source shorted path problem) • Tìm cây bao trùm tối thiểu (minimum-cost spanning tree) • Tìm đường đi ngắn nhất giữa tất cả các cặp đỉnh • Tìm bao đóng chuyển tiếp (transitive closure) Nguyễn Văn Linh TÌM ĐƯỜNG ĐI NGẮN NHẤT TỪ MỘT ĐỈNH CỦA ĐỒ THỊ (1) • Cho đồ thị với các cạnh có trọng số G =(V, E)... nhất từ 0 đến 4 là 0,3,2,4 với độ dài lưu trong D[4] = 50 Nguyễn Văn Linh TÌM CÂY BAO TRÙM TỐI THIỂU (1) • Giả sử ta có một đồ thị vô hướng G=(V,E) • Đồ thị G gọi là liên thông nếu tồn tại đường đi giữa hai đỉnh bất kỳ • Cây bao trùm tối thiểu (hoặc cây phủ tối thiểu) của đồ thị G là một cây T có tập các nút là V và tổng độ dài các cạnh trong T là nhỏ nhất • Một ứng dụng thực tế là bài toán thiết lập... 1 10 ∞ ∞ ∞ 2 ∞ 50 10 ∞ 3 4 30 100 ∞ ∞ ∞ 10 60 ∞ Ma trận trọng số của đồ thị có hướng là ma trận không đối xứng Nguyễn Văn Linh BIỂU DIỄN BẰNG DANH SÁCH CÁC ĐỈNH KỀ (1) • Lưu trữ các đỉnh kề với một đỉnh i trong một danh sách liên kết theo một thứ tự nào đó • Như vậy ta cần một mảng HEAD một chiều có n phần tử để biểu diễn cho đồ thị có n đỉnh • HEAD[i] là con trỏ trỏ tới danh sách các đỉnh kề với đỉnh... xem là khoảng cách giữa 2 đỉnh • Cho trước một đỉnh v, gọi là đỉnh nguồn • Tìm đường đi ngắn nhất từ v đến các đỉnh còn lại của G • Chú ý rằng nếu đồ thị có hướng thì đường đi này là đường đi có hướng Nguyễn Văn Linh TÌM ĐƯỜNG ĐI NGẮN NHẤT TỪ MỘT ĐỈNH CỦA ĐỒ THỊ (2) • Xác định một tập hợp S chứa các đỉnh mà khoảng cách ngắn nhất từ nó đến đỉnh nguồn v đã biết • Khởi đầu S={v}, sau đó tại mỗi bước ta sẽ... Văn Linh TÌM ĐƯỜNG ĐI NGẮN NHẤT TỪ MỘT ĐỈNH CỦA ĐỒ THỊ (3) 0 100 10 30 1 4 10 50 2 10 60 3 • • • • • • Giả sử đỉnh nguồn là 0 Khởi đầu S = {0} S = {0, 1} S = {0, 1, 3} S = {0, 1, 3, 2} S = {0, 1, 3, 2, 4} ĐĐNN từ 0 đến 2 là 0, 3, 2 với tổng độ dài 40 ĐĐNN từ 0 đến 4 là 0, 3, 2, 4 với tổng độ dài 50 Nguyễn Văn Linh TÌM ĐƯỜNG ĐI NGẮN NHẤT TỪ MỘT ĐỈNH CỦA ĐỒ THỊ (4) • Ta dùng mảng hai chiều C để lưu độ dài... độ dài của đường đi ngắn nhất từ mỗi đỉnh của đồ thị đến v • Khởi đầu khoảng cách này chính là độ dài cạnh (v,i), tức là D[i]:=C[v,i] • Tại mỗi bước của giải thuật thì D[i] sẽ được cập nhật lại để lưu độ dài đường đi ngắn nhất từ đỉnh v tới đỉnh i, đường đi này chỉ đi qua các đỉnh đã có trong S • Để cài đặt giải thuật dễ dàng, ta giả sử các đỉnh của đồ thị được đánh số từ 1 đến n, tức là V={1, ,n}... ĐƯỜNG ĐI NGẮN NHẤT TỪ MỘT ĐỈNH CỦA ĐỒ THỊ (5) void Dijkstra () { S=[0]; //S chỉ chứa một đỉnh nguồn for (i=1; i . CH NG 5: Đ THƯƠ Ồ Ị Nguy n Văn Linhễ Khoa CNTT-TT Đ i h c C n Thạ ọ ầ ơ nvlinh@cit.ctu.edu.vn Nguy n Văn

Ngày đăng: 31/07/2014, 16:20

TỪ KHÓA LIÊN QUAN

w