1. Trang chủ
  2. » Giáo Dục - Đào Tạo

BÀI GIẢNG lý THUYẾT đồ THỊ CHƯƠNG 1,2 và 3 (lý THUYẾT đồ THỊ SLIDE)

275 33 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 275
Dung lượng 3,11 MB

Nội dung

Phần LÝ THUYẾT ĐỒ THỊ Graph Theory Phần LÝ THUYẾT ĐỒ THỊ Nội dung Chương Các khái niệm – – – Đồ thị vô hướng có hướng Các thuật ngữ Một số dạng đồ thị vô hướng đặc biệt Chương Biểu diễn đồ thị – – Ma trận kề, ma trận trọng số, Ma trận liên thuộc đỉnh cạnh Danh sách cạnh, Danh sách kề Chương Duyệt đồ thị – – Tìm kiếm theo chiều sâu; Tìm kiếm theo chiều rộng Tìm đường kiểm tra tính liên thông Phần LÝ THUYẾT ĐỒ THỊ Nội dung Chương Cây khung đồ thị – – – Cây tính chất Cây khung đồ thị Bài toán khung nhỏ Chương Bài toán đường ngắn – – – – Phát biểu toán Đường ngắn xuất phát từ đỉnh (Thuật toán Dijkstra, Ford-Bellman) Đường ngắn đồ thị khơng có chu trình Đường ngắn cặp đỉnh (Thuật toán Floyd) Chương Bài toán luồng cực đại mạng – – – – Mạng, luồng toán luồng cực đại Định lý Ford-Fulkerson Thuật toán Ford-Fulkerson Một số ứng dụng Phần LÝ THUYẾT ĐỒ THỊ Chương CÁC KHÁI NIỆM CƠ BẢN Phần LÝ THUYẾT ĐỒ THỊ Chương CÁC KHÁI NIỆM CƠ BẢN 1.1 Đồ thị thực tế 1.2 Các loại đồ thị 1.3 Bậc đỉnh 1.4 Đồ thị 1.5 Đồ thị đẳng cấu 1.6 Đường chu trình 1.7 Tính liên thơng 1.8 Một số loại đồ thị đặc biệt 1.9 Tô màu đồ thị Phần LÝ THUYẾT ĐỒ THỊ Đồ thị gì? • Khơng phải Trong toán học đời thường hiểu là: Bản vẽ hay Sơ đồ biểu diễn liệu nhờ sử dụng hệ thống toạ độ Khơng phải • ta muốn đề cập Trong toán rời rạc: Đây cấu trúc rời rạc có tính trực quan cao, tiện ích để biểu diễn quan hệ Phần LÝ THUYẾT ĐỒ THỊ Các ứng dụng thực tế đồ thị • Có tiềm ứng dụng nhiều lĩnh vực (Đồ thị dùng để biểu diễn quan hệ Nghiên cứu quan hệ đối tượng mục tiêu nhiều lĩnh vực khác nhau) • Ứng dụng mạng máy tính, mạng giao thông, mạng cung cấp nước, mạng điện,…) lập lịch, tối ưu hoá luồng, thiết kế mạch, quy hoạch phát triển • Các ứng dụng khác: Phân tích gen, trị chơi máy tính, chương trình dịch, thiết kế hướng đối tượng, … Phần LÝ THUYẾT ĐỒ THỊ Mối liên hệ môn học 461 322 143 373 413 326 142 415 410 321 370 341 417 378 421 Đỉnh = mơn học Cạnh có hướng = đk tiên 401 Phần LÝ THUYẾT ĐỒ THỊ Biểu diễn mê cung S S B E E Đỉnh = phịng Cạnh = cửa thơng phịng hành lang Phần LÝ THUYẾT ĐỒ THỊ Biểu diễn mạch điện (Electrical Circuits) Nguồn Công tắc Đỉnh = nguồn, công tắc, điện trở, … Điện trở Cạnh = đoạn dây nối 10 Phần LÝ THUYẾT ĐỒ THỊ Phân tích DFS • Vịng lặp dịng 1-2 5-7 địi hỏi thời gian Θ(|V|), chưa tính thời gian thực lệnh DFS(v) • DFS(v) thực đỉnh trắng v∈V sau thăm tơ màu xám Các dịng 3-6 DFS(v) thực |Adj[v]| lần Vậy thời gian tổng cộng DFS(v) ∑v∈V|Adj[v]| = Θ(|E|) • • Do thời gian DFS Θ(|V|+|E|) Thuật toán đồ thị có đánh giá thời gian gọi thuật tốn thời gian tuyến tính 261 Phần LÝ THUYẾT ĐỒ THỊ CÁC ỨNG DỤNG CỦA DFS • Tính liên thơng đồ thị • Tìm đường từ s đến t • Phát chu trình • Kiểm tra tính liên thơng mạnh • Định hướng đồ thị 262 Phần LÝ THUYẾT ĐỒ THỊ Bài tốn tính liên thơng • Bài tốn: Cho đồ thị vơ hướng G = (V,E) Hỏi đồ thị gồm thành phần liên thông, thành phần liên thông gồm đỉnh nào? • Giải: Sử dụng DFS (BFS) : – Mỗi lần gọi đến DFS (BFS) chương trình sinh thành phần liên thơng 263 Phần LÝ THUYẾT ĐỒ THỊ DFS giải tốn liên thơng (* Main Program*) (* Main Program*) DFS-Visit(u) DFS-Visit(u) for u ∈ V for u ∈ V 1.1 2.2 3.3 4.4 2 id[u] ← id[u] ← cnt ← (* cnt – số lượng tplt *) cnt ← (* cnt – số lượng tplt *) for u ∈ V for u ∈ V 5 6.6 7.7 if id[u] = if id[u] = id[u] ← cnt id[u] ← cnt for each v ∈ Adj[u] for each v ∈ Adj[u] if id[v] = if id[v] = then DFS-Visit(v) then DFS-Visit(v) then cnt ← cnt +1 then cnt ← cnt +1 DFS-Visit(u) DFS-Visit(u) 264 Phần LÝ THUYẾT ĐỒ THỊ Tìm đường • Bài tốn tìm đường – – • Input: Đồ thị G = (V,E) xác định danh sách kề hai đỉnh s, t Đầu ra: Đường từ đỉnh s đến đỉnh t, khẳng định không tồn đường từ s đến t Thuật toán: Thực DFS(s) (hoặc BFS(s)) – Nếu π[t] = NIL khơng có đường đi, trái lại ta có đường t : π[t] : π[π[ t]] : : s 265 Phần LÝ THUYẾT ĐỒ THỊ DFS giải toán đường (* Main Program*) (* Main Program*) DFS-Visit(u) DFS-Visit(u) for u ∈ V for u ∈ V 1.1 2.2 3.3 4.4 5.5 2 color[u] ← white color[u] ← white 3 π[u] ← NIL π[u] ← NIL DFS-Visit(s) DFS-Visit(s) color[u] ← GRAY (* Thăm đỉnh u *) color[u] ← GRAY (* Thăm đỉnh u *) for each v ∈ Adj[u] for each v ∈ Adj[u] if color[v] = WHITE if color[v] = WHITE then π[v] ← u then π[v] ← u DFS-Visit(v) DFS-Visit(v) 266 Phần LÝ THUYẾT ĐỒ THỊ DFS Chu trình • • Bài tốn: Cho đồ thị G=(V,E) Hỏi G có chứa chu trình hay khơng? Định lý: Đồ thị G khơng chứa chu trình q trình thực DFS ta khơng phát cạnh ngược • Chứng minh: – – • Nếu G khơng chứa chu trình rõ ràng khơng có cạnh ngược (bởi tồn cạnh ngược dẫn đến phát chu trình) Nếu khơng có cạnh ngược G khơng chứa chu trình (acyclic) Thực • Khơng có cạnh ngược tức có cạnh • Nếu có cạnh G rừng • Vậy G khơng chứa chu trinh Như DFS áp dụng để giải toán đặt 267 Phần LÝ THUYẾT ĐỒ THỊ DFS chu trình • Cần phải điều chỉnh để phát chu trình? (* Main Program*) (* Main Program*) for u ∈ V for u ∈ V 2 color[u] ← white color[u] ← white 3 π[u] ← NIL π[u] ← NIL time ← time ← for u ∈ V for u ∈ V 6 7 if color[u] = white if color[u] = white then DFS-Visit(u) then DFS-Visit(u) DFS(u) DFS(u) 1.1 2.2 3.3 4.4 5.5 6.6 7.7 8.8 9.9 color[u] ← GRAY (* Thăm đỉnh u *) color[u] ← GRAY (* Thăm đỉnh u *) time ← time + time ← time + d[u] ← time d[u] ← time for each v ∈ Adj[u] for each v ∈ Adj[u] if color[v] = WHITE if color[v] = WHITE then π[v] ← u then π[v] ← u DFS-Visit(v) DFS-Visit(v) color[u] ← BLACK (* Đỉnh u duyệt xong *) color[u] ← BLACK (* Đỉnh u duyệt xong *) f[u] ← time ← time + f[u] ← time ← time + 268 Phần LÝ THUYẾT ĐỒ THỊ DFS chu trình • Câu hỏi: Thời gian tính bao nhiêu? • Trả lời: Chính thời gian thực DFS: O(|V|+|E|) • Câu hỏi: Nếu G đồ thị vơ hướng đánh giá thời gian tính sát khơng? • Trả lời: Thuật tốn có thời gian tính O(|V|), vì: – Trong rừng (đồ thị khơng chứa chu trình) |E| ≤ |V| - – Vì đồ thị có |V| cạnh chắn chứa chu trình, thuật tốn kết thúc 269 Phần LÝ THUYẾT ĐỒ THỊ Kiểm tra tính liên thơng mạnh • Bài tốn: Hỏi đồ thị có hướng G có liên thơng mạnh? • Mệnh đề: Đồ thị có hướng G=(V,E) liên thơng mạnh ln tìm đường từ đỉnh v đến tất đỉnh lại ln tìm đường từ tất đỉnh thuộc V \ {v} đến v • Chứng minh: Hiển nhiên 270 Phần LÝ THUYẾT ĐỒ THỊ Thuật toán kiểm tra tính liên thơng mạnh • Thuật tốn – Chọn v V đỉnh tuỳ ý Thực DFS(v) G Nếu tồn đỉnh u không đợc thăm G không liên thông mạnh thuật toán kết thúc Trái lại thực tiếp Thùc hiƯn DFS(v) trªn GT = (V, ET), víi ET thu đợc từ E việc đảo ngợc h ớng cung Nếu tồn đỉnh u không đợc thăm G không liên thông mạnh, trái lại G liên thông mạnh ã Thi gian tớnh: O(|V|+|E|) 271 Phần LÝ THUYẾT ĐỒ THỊ Thuật toán kiểm tra tính liên thơng mạnh a a d f c b Đồ thị G d f c b e Đồ thị G e T 272 Phần LÝ THUYẾT ĐỒ THỊ nh hng th ã Bài toán: Cho đồ thị vô hớng liên thông G= (V, E) HÃy tìm cách định hớng cạnh để thu đợc đồ thị có hớng liên thông mạnh trả lời G không định hớng đợc ã Thuật toán định hớng : Trong trình thực DFS(G) định hớng cạnh DFS theo chiều từ tổ tiên đến cháu, cạnh ngợc theo hớng từ cháu đến tổ tiên Ký hiệu đồ thị thu đợc G() ã Bổ đề G định hớng đợc G() liên thông mạnh 273 Phn LÝ THUYẾT ĐỒ THỊ Ví dụ: Định hướng đồ thị a a d f c b Đồ thị G d f c b e e Đồ thị G(δ) 274 Phần LÝ THUYẾT ĐỒ THỊ Questions? 275 Phần LÝ THUYẾT ĐỒ THỊ ... 15 Phần LÝ THUYẾT ĐỒ THỊ Mạng tàu điện ngầm 16 Phần LÝ THUYẾT ĐỒ THỊ Sơ đồ đường phố 17 Phần LÝ THUYẾT ĐỒ THỊ 18 Phần LÝ THUYẾT ĐỒ THỊ 19 Phần LÝ THUYẾT ĐỒ THỊ 20 Phần LÝ THUYẾT ĐỒ THỊ Chương. .. loại đồ thị đặc biệt 1.9 Tô màu đồ thị 40 Phần LÝ THUYẾT ĐỒ THỊ Đồ thị (Subgraphs) • • Định nghĩa Đồ thị H=(W,F) gọi đồ thị đồ thị G=(V,E) W⊆V F⊆E Ký hiệu: H⊆G G H 41 Phần LÝ THUYẾT ĐỒ THỊ Ví... thay đổi cho dù ta xét đồ thị vơ hướng hay có hướng 39 Phần LÝ THUYẾT ĐỒ THỊ Chương CÁC KHÁI NIỆM CƠ BẢN 1.1 Đồ thị thực tế 1.2 Các loại đồ thị 1 .3 Bậc đỉnh 1.4 Đồ thị 1.5 Đồ thị đẳng cấu 1.6 Đường

Ngày đăng: 30/03/2021, 16:27

TỪ KHÓA LIÊN QUAN