Bài giảng Cấu trúc dữ liệu và giải thuật (Data structures and Algorithms): Chương 2 - Ngô Công Thắng

14 17 0
Bài giảng Cấu trúc dữ liệu và giải thuật (Data structures and Algorithms): Chương 2 - Ngô Công Thắng

Đ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

Bài giảng Cấu trúc dữ liệu và giải thuật (Data structures and Algorithms) - Chương 2 trang bị cho người học những kiến thức cơ bản về đồ thị. Những nội dung chính được trình bày trong chương này gồm có: Định nghĩa đồ thị, biểu diễn đồ thị, phép duyệt đồ thị, cây khung và cây khung với giá trị cực tiểu. Mời các bạn cùng tham khảo.

Chương 2: Đồ thị Các khái niệm 1.1 Định nghĩa đồ thị Đồ thị G(V,E) bao gồm tập hữu hạn V đỉnh (hay nút) tập hữu hạn E cặp đỉnh mà ta gọi cung ( hay cạnh) Ví dụ 1: Một mạng gồm máy tính kênh điện thoại nối máy tính đồ thị Ví dụ 2: Một mạng gồm thành phố, thị xã đường nối thành phố, thị xã đồ thị 1.2 Định nghĩa đồ thị vô hướng Đồ thị vô hướng G=(V,E) bao gồm V tập đỉnh E tập cặp đỉnh khơng có thứ tự gọi cung Bài giảng Cấu trúc liệu giải thuật - Chương 02 2.1 Bài giảng Cấu trúc liệu giải thuật - Chương 02 2.2 * Nếu (v1, v2) cung tập E(G) v1 v2 gọi lân cận Ví dụ 1,2 lân cân, 1,3 lân cận * Một đường từ đỉnh u đến đỉnh v đồ thị dãy đỉnh u=x0, x1, , xn-1, xn=v mà dãy cạnh (x0, x1), (x1, x2), , (xn-1, xn) cung thuộc E(G) * Số lượng cung đường gọi độ dài đường Ví dụ đường từ đến có độ dài * Đường đơn: Là đường mà đỉnh đó, trừ đỉnh đầu đỉnh cuối khác * Một chu trình đường đơn mà đỉnh đầu đỉnh cuối trùng Ví dụ: 1→ → 5→ 4→1 Bài giảng Cấu trúc liệu giải thuật - Chương 02 2.3 Bài giảng Cấu trúc liệu giải thuật - Chương 02 2.4 Bài giảng Cấu trúc liệu giải thuật - Chương 02 2.5 Bài giảng Cấu trúc liệu giải thuật - Chương 02 2.6 Bài giảng Cấu trúc liệu giải thuật - Chương 02 2.7 Bài giảng Cấu trúc liệu giải thuật - Chương 02 2.8 Bài giảng Cấu trúc liệu giải thuật - Chương 02 2.9 Bài giảng Cấu trúc liệu giải thuật - Chương 02 2.10 Bài giảng Cấu trúc liệu giải thuật - Chương 02 2.11 Bài giảng Cấu trúc liệu giải thuật - Chương 02 2.12 Phép duyệt đồ thị * Xét đồ thị vô hướng G(V,E) đỉnh v∈V Ta cần thăm tất đỉnh G mà “ với tới” từ đỉnh v ( nghĩa đồ thị liên thơng) Có cách duyệt đồ thị: - Phép tìm kiếm theo chiều sâu ( Depth first search ) - Phép tìm kiếm theo chiều rộng (Breadth first search ) 3.1 Phép tìm kiếm theo chiều sâu ( Depth first search ) Xét đồ thị vơ hướng Phép tìm kiếm theo chiều sâu thể sau: - Đỉnh xuất phát v thăm - Tiếp theo ta thăm đỉnh w đỉnh chưa thăm lân cận v Phép tìm kiếm theo chiều sâu xuất phát từ w lại thực Trong trường hợp đỉnh u thăm mà đỉnh lân cận thăm ta quay lại đỉnh cuối vừa thăm ( mà đỉnh đỉnh w lân cận chưa thăm) phép tìm kiếm theo chiều sâu xuất phát từ w lại thực Bài giảng Cấu trúc liệu giải thuật - Chương 02 2.13 Bài giảng Cấu trúc liệu giải thuật - Chương 02 2.14 Phép duyệt theo chiều sâu theo trình tự sau: v1 → v2 → v4 → v8 → v5 → v6 → v3 → v7 * Thủ tục phép duyệt theo chiều sâu sau: Cho đồ thị G(V,E) vơ hướng có n đỉnh véc tơ Visited(n) gồm n phần tử, ban đầu véc tơ có giá trị =0 Thuật giải thực thăm đỉnh “ với tới “ từ đỉnh v Procedure DFS(v) Write(v); {Thăm v} Visited(v):=1 {Đánh dấu v thăm} FOR đỉnh w lân cận với v DO If Visited(w) = then CALL DFS(w); Return * Đánh giá thuật toán: + Trường hợp biểu diễn đồ thị dùng danh sách móc nối: G có e cung, nút với tới lần, nên thời gian tìm kiếm O(e) + Trường hợp biểu diễn đồ thị dùng ma trận lân cận : thời gian xác định điểm lân cận v O(n) Có n đỉnh nên thời gian tìm kiếm O(n2) Bài giảng Cấu trúc liệu giải thuật - Chương 02 2.15 3.2 Phép tìm kiếm theo chiều rộng (Breadth first search ) Xét đồ thị vô hướng Phép tìm kiếm theo chiều rộng thể sau: - Đỉnh xuất phát v thăm - Tiếp theo đỉnh chưa thăm mà lân cận v thăm, đến đỉnh chưa thăm lân cận lượt đỉnh tương tự Ví dụ trên: Phép duyệt theo chiều rơng theo trình tự sau: v1 → v2 → v3 → v4 → v5 → v6 → v7 → v8 * Thủ tục phép duyệt theo chiều rong sau: Cho đồ thị G(V,E) vơ hướng có n đỉnh véc tơ Visited(n) gồm n phần tử, ban đầu véc tơ có giá trị =0 Thuật giải thực thăm đỉnh “ với tới “ từ đỉnh v Bắt đầu từ đỉnh v Mọi đỉnh i thăm đánh dấu Visited(i):=1 Dùng hàng đợi Q có kích thước n; F, R lối trước lối sau hàng đợi Khi thăm đình loại bỏ khỏi hàng đợi; chưa thăm bổ sung vào hàng đợi Bài giảng Cấu trúc liệu giải thuật - Chương 02 2.16 Procedure BFS(v) Khởi tạo hàng đợi Q với v đưa vào Visited(v):=1 { đánh dấu v thăm } While Q khác rỗng DO Begin Call CQDELETE(v,Q) { loại bỏ v khỏi Q} FOR đỉnh w lân cận với v DO Begin If Visited(w)=0 then Begin CALL CQINSERT(w,Q); { Bổ sung w vào Q} Visited(w):=1 End End End Return Bài giảng Cấu trúc liệu giải thuật - Chương 02 2.17 * Đánh giá giải thuật: Vòng lặp While lặp lại n lần - Nếu biểu diễn đồ thị ma trận lân cận thời gian thực O(n2) - Nếu biểu diễn đồ thị danh sách lân cận thời gian thực O(e) Cây khung khung với giá trị cực tiểu 4.1 Cây khung * Nếu G đồ thị liên thơng phép tìm kiếm theo chiều sâu theo chiều rộng xuất phát từ đỉnh thăm đỉnh Như cung G phân thành tập: - Tập T chứa cung duyệt qua - Tập b gồm cung lại * Tất cung đỉnh T tạo thành bao gồm đỉnh G Cây gọi khung G Bài giảng Cấu trúc liệu giải thuật - Chương 02 2.18 Bài giảng Cấu trúc liệu giải thuật - Chương 02 2.19 Bài giảng Cấu trúc liệu giải thuật - Chương 02 2.20 Bài giảng Cấu trúc liệu giải thuật - Chương 02 2.21 Bài giảng Cấu trúc liệu giải thuật - Chương 02 2.22 4.2 Cây khung với giá trị cực tiểu * Bài toán: Xác định khung với giá trị cực tiểu đồ thị liên thông có trọng số Gía trị khung tổng trọng số ứng với cạnh khung * Có nhiều giải thuật xác định khung với giá trị cực tiểu phần ta xét giải thuật Kruskal Với giải thuật khung T xây dựng dần cung Các cung đưa vào T thoả mãn: - Cung có giá trị cực tiểu cung cịn lại - Khơng tạo chu trình với cung có T Bài giảng Cấu trúc liệu giải thuật - Chương 02 2.23 * Giải thuật Kruskal viết sau: T=Φ { T rỗng While T chứa (n-1) cung Do Begin Chọn cung (v,w) từ E có giá trị nhỏ Loại (v,w) khỏi E If (v,w) không tạo nên chu trình T Then đưa (v,w) vào T End; Return Bài giảng Cấu trúc liệu giải thuật - Chương 02 2.24 Bài giảng Cấu trúc liệu giải thuật - Chương 02 2.25 Bài giảng Cấu trúc liệu giải thuật - Chương 02 2.26 * Đánh giá giải thuật: Thời gian thực giải thuật xác định qua thực bước Trường hợp xấu O(e.log e) e số cung đồ thị G Bài giảng Cấu trúc liệu giải thuật - Chương 02 2.27 ... Bài giảng Cấu trúc liệu giải thuật - Chương 02 2.3 Bài giảng Cấu trúc liệu giải thuật - Chương 02 2.4 Bài giảng Cấu trúc liệu giải thuật - Chương 02 2.5 Bài giảng Cấu trúc liệu giải thuật - Chương. .. 02 2.6 Bài giảng Cấu trúc liệu giải thuật - Chương 02 2.7 Bài giảng Cấu trúc liệu giải thuật - Chương 02 2.8 Bài giảng Cấu trúc liệu giải thuật - Chương 02 2.9 Bài giảng Cấu trúc liệu giải thuật. .. giải thuật - Chương 02 2.19 Bài giảng Cấu trúc liệu giải thuật - Chương 02 2 .20 Bài giảng Cấu trúc liệu giải thuật - Chương 02 2 .21 Bài giảng Cấu trúc liệu giải thuật - Chương 02 2 .22 4 .2 Cây khung

Ngày đăng: 03/03/2021, 08:29

Từ khóa liên quan

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

Tài liệu liên quan