Bài giảng môn toán rời rạc học phần lý thuyết đồ thị

92 441 0
Bài giảng môn toán rời rạc học phần lý thuyết đồ thị

Đ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

MỤC LỤC MỤC LỤC Chƣơng LÝ THUYẾT ĐỒ THỊ 7.1 MỞ ĐẦU 7.2 CÁC THUẬT NGỮ VỀ ĐỒ THỊ 7.2.1 Những thuật ngữ sở 7.2.3 Những đồ thị đơn đặc biệt 7.2.4 Đồ thị phân đôi 7.2.5 Một vài ứng dụng đồ thị đặc biệt 7.2.6 Đồ thị 11 7.3 BIỂU DIỄN ĐỒ THỊ VÀ SỰ ĐẲNG CẤU 11 7.3.1 Mở đầu 11 7.3.2 Biểu diễn đồ thị danh sách liền kề 12 7.3.3 Ma trận liền kề, ma trận trọng số 12 7.3.4 Ma trận liên thuộc 13 7.3.5 Sự đẳng cấu đồ thị 13 7.4 TÍNH LIÊN THÔNG 14 7.4.1 Mở đầu 14 7.4.2 Đƣờng 14 7.4.3 Tính liên thơng đồ thị vô hƣớng 16 7.4.4 Tính liên thơng đồ thị có hƣớng 17 7.4.5 Đƣờng đẳng cấu 18 7.4.6 Đếm đƣờng đỉnh 19 7.4.7 Phƣơng pháp duyệt đồ thị 20 7.5 ĐƢỜNG ĐI EULER VÀ ĐƢỜNG ĐI HAMILTON 25 7.5.1 Đƣờng chu trình EULER 25 7.5.2 Đƣờng chu trình Hamilton 34 7.6 BÀI TOÁN ĐƢỜNG ĐI NGẮN NHẤT 36 7.6.1 Mở đầu 36 7.6.2 Thuật toán Dijkstra xác định đƣờng ngắn từ đỉnh đến đỉnh lại 37 7.6.3 Thuật toán Floyd xác định đƣờng ngắn cặp đỉnh 46 7.7 ĐỒ THỊ PHẲNG 47 7.7.1 Mở đầu 47 7.7.2 Công thức Euler 48 7.7.3 Định lý Kuratowski 51 7.8 TÔ MÀU ĐỒ THỊ 52 7.8.1 Mở đầu 52 7.8.2 Những ứng dụng tốn tơ màu đồ thị 54 7.8.3 Thuật tốn tơ màu đồ thị đơn 55 Chƣơng CÂY 56 8.1 MỞ ĐẦU 56 8.1.1 Cây nhƣ mơ hình 58 8.1.2 Những tính chất 59 8.2 CÁC ỨNG DỤNG CỦA CÂY 61 8.2.1 Mở đầu 61 8.2.2 Cây tìm kiếm nhị phân 61 8.2.3 Cây định 62 8.2.4 Các mã tiền tố 63 8.3 CÁC PHƢƠNG PHÁP DUYỆT CÂY 64 8.3.1 Mở đầu8 64 8.3.2 Hệ địa phổ dụng 64 8.3.3 Các phƣơng pháp duyệt 64 8.3.4 Các ký pháp trung tố, tiền tố hậu tố 66 8.4 CÂY KHUNG 67 8.4.1 Mở đầu 67 8.4.2 Những thuật toán xây dựng khung 68 8.4.3 Kỹ thuật quay lui 70 8.5 CÂY KHUNG NHỎ NHẤT 72 8.5.1 Mở đầu 72 8.5.2 Thuật tốn tìm khung nhỏ 72 BÀI TẬP 83 Chƣơng 7: Đồ thị 83 Chƣơng 8: CÂY 89 TÀI LIỆU THAM KHẢO 92 Chương7 Lý thuyết đồ thị Chương LÝ THUYẾT ĐỒ THỊ Lý thuyết đồ thị ngành khoa học đƣợc phát triển từ lâu nhƣng lại có nhiều ứng dụng đại Những ý tƣởng đƣợc đƣa từ kỷ thứ 18 nhà toán học Thụy Sĩ tên Leonard Euler Ông dùng dồ thị để giải toán cầu Konigsberg tiếng Đồ thị đƣợc dùng để giải nhiều toán khác Ví dụ dùng đồ thị để xác định xem có thực đƣợc mạch điện bảng điện phẳng khơng Chúng ta phân biệt hai hợp chất hóa học có cơng thức phân tử nhƣng có cầu trúc khác nhờ đồ thị Chúng ta xác định xem hai máy tính có đƣợc nối với đƣờng truyền thơng hay khơng dùng mơ hình đồ thị mạng máy tính Đồ thị với trọng số đƣợc gán cho cạnh dùng để giải tốn nhƣ tốn tìm đƣờng ngắn hai thành phố mạng giao thông Chúng ta dùng đồ thị để lập lịch thi phân chia kênh cho đài truyền hình 7.1 MỞ ĐẦU Đồ thị cấu trúc rời rạc gồm đỉnh cạnh nối đỉnh Ngƣời ta thƣờng ký hiệu đồ thị G = (V,E) , V tập hợp đỉnh (Vertex), E tập hợp cạnh (Edge) Ngƣời ta phân loại đồ thị theo đặc tính số cạnh nối cặp đỉnh đồ thị Các loại đồ thị Giả sử mạng máy tính gồm máy tính đƣờng điện thoại Ta biểu diễn vị trí máy tính điểm đƣờng điện thoại cung nhƣ hình Hình 7.1 Đơn đồ thị Trong mạng máy tính ta thấy có nhiều đƣờng điện thoại nối máy, đƣờng điện thoại hoạt động hai chiều, khơng có máy tính có đƣờng điện thoại dến Do mạng mơ hình một đơn đồ thị, bao gồm đỉnh biểu diễn máy tính cạnh vơ hƣớng biễu diễn đƣờng điện thoại nối hai đỉnh phân biệt hai cạnh nối cặp đỉnh Định nghĩa Một đơn đồ thị G = (V,E) gồm tập khơng rỗng V mà phần tử gọi đỉnh tập E mà phần tử gọi cạnh, cặp không thứ tự đỉnh phân biệt Đơi có nhiều đƣờng điện thoại máy tính mạng Đó có truyền thơng với cƣờng độ cao máy tính Mạng với nhiều đƣờng điện thoại đƣợc biểu diễn hình sau Đơn đồ thị khơng thể mơ hình mạng nhƣ đƣợc Thay vào ngƣời ta dùng đa đồ thị Đó đồ thị gồm đỉnh cạnh vơ hƣớng, nhƣng có nhiều cạnh nối cặp đỉnh Đơn đồ thị trƣờng hợp riêng đa đồ thị Ta dùng cặp đỉnh để xác định cạnh đa đồ thị Chương Lý thuyết đồ thị Định nghĩa Một đa đồ thị G = (V,E) gồm tập đỉnh V tập cạnh E hàm f từ E tới { {u,v} | u,v V, uv} Các cạnh e1 e2 đƣợc gọi song song hay cạnh bội f(e1) = f(e2) Một mạng máy tính có đƣờng điện thoại từ máy tới (đƣờng nội bộ) Ta khơng thể dùng da đồ thị để mơ hình mạng nhƣ đƣợc đa đồ thị khơng chứa khuyên Khi ta dùng loại đồ thị tổng quát giả đồ thị Định nghĩa Một giả đồ thị G = (V,E) gồm tập đỉnh V tập cạnh E hàm f từ E tới { {u,v} | u,v V, uv} Một cạnh đƣợc gọi khuyên f(e) = {u} Hình 7.2 Đa đồ thị Có thể thấy cạnh bội giả đồ thị gắn liền với cặp đỉnh Tuy nhiên ta nói {u,v} cạnh đồ thị G = (V,E) có cạnh e cho f(e) = {u,v} Ta không phân biệt cạnh e tập {u,v} tƣơng ứng với trừ đặc tính cạnh bội quan trọng Hình 7.3 Giả đồ thị Tóm lại, giả đồ thị loại đồ thị vơ hƣớng tổng qt chứa khuyên cạnh bội Đa đồ thị loại đồ thị vơ hướng chứa cạnh bội khơng thể có khun, cịn đơn đồ thị loại đồ thị vô hướng không chứa cạnh bội khuyên Các đƣờng điện thoại mạng máy tính hoạt động theo chiều Thí dụ máy chủ New York nhận liệu từ máy khác mà gửi liệu Khi đƣờng điện thoại hai chiều đƣợc biểu diễn cặp cạnh có chiều ngƣợc Hình 8.4 Đơn đồ thị có hƣớng (có thể có khun nhƣng khơng có cạnh bội chiều) Chương Lý thuyết đồ thị Chúng ta dùng đồ thị có hƣớng để mơ hình hóa mạng mà chiều đƣờng từ cạnh đến cạnh khác quan trọng Những cạnh đồ thị có hƣớng cặp đỉnh có thứ tự Trong (đơn) đồ thị có hƣớng ngƣời ta dùng khuyên, tức cặp có thứ tự đỉnh, nhƣng không dùng cạnh bội chiều nối cặp đỉnh Định nghĩa Một (đơn) đồ thị có hƣớng G = (V,E) gồm tập đỉnh V tập cạnh E cặp có thứ tự phần tử thuộc V Cuối mạng máy tính có nhiều đƣờngđiện thoại cho có nhiều đƣờng chiều từ địa phƣơng đến máy chủ New York có nhiều đƣờng từ máy chủ tới máy xa Trong trƣờng hợp ta dùng đa đồ thị có hƣớng, dó có nhiều cạnh có hƣớng từ đỉnh tới đỉnh khác (có thể tới nó) Định nghĩa Một đa đồ thị có hƣớng G = (V,E) gồm tập đỉnh V tập cạnh E hàm f từ E tới { (u,v) | u,v V, uv} Các cạnh e1 e2 đƣợc gọi song song hay cạnh bội f(e1) = f(e2).(Trong định nghĩa (u,v) cặp có thứ tự) Có thể thấy cạnh bội đa đồ thị có hƣớng gắn liền với cặp đỉnh Tuy nhiên ta nói (u,v) cạnh đồ thị G = (V,E) có cạnh e cho f(e) = (u,v) Ta không phân biệt cạnh e cặp đỉnh có thứ tự (u,v) tƣơng ứng với trừ đặc tính cạnh bội quan trọng Loại đồ thị Cạnh Có cạnh bội khơng? Có khun khơng? Đơn đồ thị Vơ hƣớng Khơng Khơng Đa đồ thị Vơ hƣớng Có Khơng Giả đồ thị Vơ hƣớng Có Có Đồ thị có hƣớng Có hƣớng Khơng Có Đa đồ thị có hƣớng Có hƣớng Có Có Chương Lý thuyết đồ thị 7.2 CÁC THUẬT NGỮ VỀ ĐỒ THỊ 7.2.1 Những thuật ngữ sở Định nghĩa Hai đỉnh u v đồ thị vô hƣớng đƣợc gọi liền kề (láng giềng) {u,v} cạnh G Nếu e = {u,v} e đƣợc gọi cạnh liên thuộc với đỉnh u v Cạnh e đƣợc gọi cạnh nối đỉnh u v Các đỉnh u v đƣợc gọi điểm đầu mút cạnh {u,v} Định nghĩa Bậc đỉnh đồ thị vô hƣớng số cạnh liên thuộc với nó, riêng khuyên đỉnh đƣợc tính hai lần cho bậc Ngƣời ta ký hiệu bậc đỉnh deg(v) Đỉnh cô lập đỉnh không nối với đỉnh Đỉnh treo đỉnh có bậc Định lý Định lý bắt tay Cho G = (V,E) đồ thị vơ hƣớng có e cạnh Khi 2e=  deg(v) vV (Định lý đồ thị có cạnh bội khuyên) Định lý tổng bậc tất đỉnh đồ thị vô hƣớng số chẵn Sự kiện đơn giản có nhiều hệ hay, số Định lý Định lý Trong đồ thị vô hƣớng số đỉnh bậc lẻ số chẵn Chứng minh Giả sử V1 V2 tƣơng ứng tập đỉnh bậc chẵn bậc lẻ đồ thị vơ hƣớng G = (V,E) Khi 2e=  deg(v) +  deg(v) vV1 vV2 deg(v) chẵn với vV1, nên tổng số chẵn Suy tổng thứ hai số chẵn Tổng thứ hai có thành phần số lẻ, nên để tổng số chẵn số thành phần phải số chẵn Định nghĩa Khi (u,v) cạnh đồ thị có hƣớng G, u đƣợc gọi nối tới v, v đƣợc gọi đƣợc nối từ u Đỉnh u đƣợc gọi đỉnh đầu, đỉnh v đƣợc gọi đỉnh cuối cạnh (u,v) Đỉnh đầu đỉnh cuối khuyên trùng Vì cạnh đồ thị có hƣớng cặp có thứ tự, nên định nghĩa bậc đỉnh cần phải tinh để phản ánh đƣợc số cạnh nhận đỉnh đỉnh đầu (ra khỏi đỉnh này) số cạnh nhận đỉnh đỉnh cuối (đi vào đỉnh này) Định nghĩa Trong đồ thị có hƣớng, bậc- vào đỉnh v ký hiệu deg-(v) số cạnh có đỉnh cuối v Bậc- đỉnh v ký hiệu deg+(v) số cạnh có đỉnh đầu v (Nhƣ khuyên đỉnh góp thêm đơn vị vào bậc vào đơn vị vào bậc đỉnh này) Chương Lý thuyết đồ thị Ví dụ Vì cạnh (hay cịn gọi cung) có đỉnh đầu đỉnh cuối nên tổng bậc vào tổng bậc tất đỉnh đồ thị có hƣớng nhƣ số cạnh Đó nội dung định lý sau Định lý Cho G = (V, E) đồ thị có hƣớng Khi  deg-(v) = vV  deg-(v) = |E| vV Một số tính chất đồ thị có hƣớng khơng phụ thuộc vào hƣớng cạnh Do đó, trƣờng hợp ta bỏ qua hƣớng nhận đƣợc đồ thị vô hƣớng Đồ thị vô hƣớng nhận đƣợc cách đƣợc gọi đồ thị vô hƣớng Đồ thị có hƣớng đồ thị vơ hƣớng có số cạnh Định nghĩa Đồ thị vô hƣớng G = (V,E) đƣợc gọi đồ thị đầy đủ, cặp đỉnh có cạnh nối chúng Hình 8.5 Đồ thị vơ hƣớng đầy đủ Đồ thị có hƣớng G = (V,E) đƣợc gọi đồ thị đầy đủ, cặp đỉnh có cung nối chúng (chiều cung tùy ý) Hình 8.6 Đồ thị có hƣớng đầy đủ 7.2.3 Những đồ thị đơn đặc biệt Bây xét vài lớp đồ thị đơn thƣờng gặp ứng dụng Ví dụ Đồ thị đầy đủ Đồ thị đầy đủ n đỉnh, ký hiệu Kn đơn đồ thị chứa cạnh nối cặp đỉnh phân biệt  K1 K2 K3 K4 Hình 7.7 Đơn đồ thị vơ hƣớng đầy đủ Ví dụ Chu trình (vịng) Chu trình , ký hiệu Cn , n 3, đơn đồ thị có n đỉnh v1,v2, , cạnh {v1,v2}, {v2,v3}, , {vn-1,vn},{vn,v1} Chương Lý thuyết đồ thị C3 C4 C5 Hình 7.8 Chu trình Ví dụ Đồ thị hình bánh xe Khi thêm đỉnh vào chu trình Cn với n3 nối đỉnh với n đỉnh Cn cạnh mới, ta nhận đƣợc đồ thị hình bánh xe W3 W4 W5 W6 Hình 7.9 Đồ thị hình bánh xe Ví dụ Các khối n chiều Đồ thị khối chiều Q3 Hình 7.10 Khối n chiều 7.2.4 Đồ thị phân đôi Đôi đỉnh đồ thị chia làm hai tập cho cạnh nối đỉnh tập với đỉnh tập Định nghĩa Một đồ thị đơn G đƣợc gọi đồ thị phân đôi tập đỉnh V phân làm hai tập khơng rỗng, rời V1 V2 cho cạnh đồ thị nối đỉnh V1 với đỉnh V2 Hình 7.11 Đồ thị phân đơi Định nghĩa Một đồ thị đơn Km,n đƣợc gọi đồ thị phân đôi đầy đủ tập đỉnh V phân làm hai tập khơng rỗng, rời V1 có m đỉnh V2 có n đỉnh cho có cạnh đỉnh đỉnh thuộc V1 đỉnh thứ hai thuộc V2 Ví dụ 11 Các đồ thị sau đồ thị phân đôi đầy đủ Chương Lý thuyết đồ thị K2,3 K3,3 Hình 7.12 Đồ thị phân đôi đầy đủ 7.2.5 Một vài ứng dụng đồ thị đặc biệt Bây cách dùng loại đồ thị đặc biệt mơ hình truyền liệu xử lý song song Ví dụ 12 Các mạng cục (LAN) Một số mạng cục có cấu trúc hình sao, tất thiết bị đƣợc nối với thiết bị điều khiển trung tâm Mạng cục dạng biểu diễn đồ thị phân đơi đầy đủ K1,n nhƣ hình 8.13.a Mạng cục có cấu trúc vịng trịn, thiết bị đƣợc nối với hai thiết bị khác Mạng cục với cấu trúc vịng trịn đƣợc mơ hình chu trình Cn nhƣ Hình 8.13.b Thông báo gửi từ thiết bị đến thiết bị khác đƣợc truyền theo vòng tròn đến nơi nhận Cuối cùng, số mạng cục dùng cấu trúc hỗn hợp hai cấu trúc Các thơng báo đƣợc truyền vịng quanh theo vịng trịn qua thiết bị trung tâm Sự dƣ thừa làm cho mạng đáng tin cậy hơn.Mạng cục với dƣ thừa mơ hình hóa đồ thị hình bánh xe nhƣ Hình 8.13.c (a) (b) (c) Hình 8.13 Các dạng mạng cục Ví dụ 13 Đồ thị việc thiết kế mạng kết nối vi xử lý tính tốn song song Chương Lý thuyết đồ thị Cho tới gần đây, máy tính thực đƣợc chƣơng trình có phép tốn thời điểm Do thuật tốn để giải toán đƣợc thiết kế để thực bƣớc thời điểm Đó cá thuật tốn nối tiếp (Phần lớn thuật tốn mơ tả thuật toán nối tiếp) Tuy nhiên, nhiều tốn với số lƣợng tính tốn lớn nhƣ tốn mơ thời tiết, tạo hình y học, hay phân tích mật mã, khơng thể giải đƣợc khoảng thời gian hợp lý dùng thuật toán nối tiếp dùng siêu máy tính Ngồi ra, giới hạn mặt vật lý tốc độ thực phép toán sở, nên thƣờng gặp toán giải trong khoảng thời gian hợp lý thuật toán nối tiếp Khi xử lý song song, ngƣời ta dùng máy tính có nhiều xử lý riêng biệt, xử lý có nhớ riêng, nhờ khắc phục đƣợc hạn chế máy nối tiếp Các thuật toán song song phân chia tốn thành số tốn cho giải đồng thời đƣợc Do thuật toán song song nhờ việc sử dụng máy tính có đa xử lý ngƣời ta hy vọng giải nhanh toán phức tạp Trong thuật toán song song có dãy thị theo dõi việc thực thuật toán, gửi toán tới xử lý khác nhau, chuyển thông tin vào, thơng tin tới xử lý thích hợp Khi dùng xử lý song song, xử lý cần thơng tin xử lý khác Do chúng cần phải đƣợc kết nối với Ngƣời ta dùng loại đồ thị thích hợp để biểu diễn mạng kết nối xử lý máy tính có nhiều xử lý Bây mô tả kiểu mạng kết nối thƣờng dùng cho máy xử lý song song Kiểu mạng kết nối thƣờng dùng để thực thuật toán song song cụ thể phụ thuộc vào yêu cầu việc trao đổi liệu xử lý, phụ thuộc vào tốc độ mong muốn, tất nhiên vào phần cứng có Mạng kết nối xử lý đơn giản đắt có liên kết hai chiều cặp xử lý Các mạng mơ hình Kn, đồ thị đầy đủ n đỉnh, n số xử lý Tuy nhiên, với mạng liên kết có vấn đề nghiêm túc đặt ra, chẳng hạn, số kết nối nhiều Thực ra, số kết nối cần phải có giới hạn Khi có nhiều xử lý khơng thể nối trực tiếp với tất xử lý khác Ví dụ ta có 64 xử lý có C(64,2) = 2016 kết nối, xử lý nối trực tiếp với 63 xử lý khác Mặt khác, hình nhƣ cách đơn giản để kết nối n xử lý với xếp chúng nhƣ bảng chiều hay mảng chiều Mỗi xử lý Pi, khác với P1 Pn đƣợc nối với xử lý cạnh Pi-1 Pi+1 đƣờng hai chiều P1 đƣợc nối với P2 Pn đƣợc nối với Pn-1 Nhƣợc điểm phƣơng pháp kết nối nhiều cần có nhiều kết nối trung gian để xử lý trao đổi thông tin với 10 Bài tập While ( | T | < (n-1) and (E  ) ){ Chọn cạnh e E cạnh có độ dài nhỏ nhất; E := E\ {e}; if (T  {e}: khơng tạo nên chu trình ) T = T  {e}; } if ( | T |

Ngày đăng: 30/03/2015, 10:13

Từ khóa liên quan

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

Tài liệu liên quan