Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 111 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
111
Dung lượng
2,77 MB
Nội dung
BỘ GIAO THÔNG VẬN TẢI TRƢỜNG ĐẠI HỌC HÀNG HẢI BỘ MÔN: KHOA HỌC MÁY TÍNH KHOA: CÔNG NGHỆ THÔNG TIN BÀI GIẢNG LÝ THUYẾT ĐỒ THỊ TÊN HỌC PHẦN MÃ HỌC PHẦN TRÌNH ĐỘ ĐÀO TẠO DÙNG CHO SV NGÀNH : LÝ THUYẾT ĐỒ THỊ : 17205 : ĐẠI HỌC CHÍNH QUY : CÔNG NGHỆ THÔNG TIN HẢI PHÒNG - 2009 MỤC LỤC CHƢƠNG 1: CÁC KHÁI NIỆM CƠ BẢN CỦA LÝ THUYẾT ĐỒ THỊ .1 1.1 Tổng quan đồ thị 1.1.1 Định nghĩa đồ thị 1.1.2 Các thuật ngữ 1.1.3 Một số dạng đồ thị 1.2 Biểu diễn đồ thị 1.2.1 Biểu diễn ma trận kề, ma trận liên thuộc 1.2.2 Danh sách cạnh, cung đồ thị 11 1.2.3 Danh sách kề 12 Bài tập 16 CHƢƠNG 2: CÁC THUẬT TOÁN TÌM KIẾM TRÊN ĐỒ THỊ 17 2.1 Tìm kiếm theo chiều sâu đồ thị 17 2.2 Tìm kiếm theo chiều rộng đồ thị 20 2.3 Tìm đƣờng kiểm tra tính liên thông 21 2.4 Tô màu đồ thị 28 2.4.1 Giới thiệu 28 2.4.2 Các khái niệm 29 2.4.3 Ví dụ 30 2.4.5 Thuật toán 33 Bài tập 33 CHƢƠNG 3: ĐỒ THỊ EULER VÀ ĐỒ THỊ HAMINTON 34 3.1 Đồ thị Euler 34 3.1.1 Khái niệm đƣờng chu trình Euler 34 3.1.2 Điều kiện tồn đƣờng chu trình Euler 35 3.1.3 Thuật toán tìm đƣờng chu trình Euler 36 3.1.4 Một số vấn đề khác đƣờng chu trình Euler 37 3.2 Đồ thị Haminton 37 3.2.1 Khái niệm đƣờng chu trình Haminton 38 3.2.2 Điều kiện tồn đƣờng chu trình Haminton 38 3.2.3 Thuật toán tìm đƣờng chu trình Haminton 39 Bài tập 40 4.1 Khái niệm tính chất khung 43 4.2 Cây khung đồ thị 44 4.3 Xây dựng tập chu trình đồ thị 47 4.4 Cây khung nhỏ đồ thị 49 4.4.1 Thuật toán Kruskal 50 4.4.2 Thuật toán Prim 56 4.4.3 Ứng dụng toán tìm khung nhỏ 59 Bài tập 60 CHƢƠNG 5: BÀI TOÁN ĐƢ NG ĐI NGẮN NHẤT 63 5.1 Các khái niệm mở đầu 63 5.2 Đƣờng ngắn xuất phát từ đỉnh 65 5.3 Thuật toán Dijkstra 68 5.4 Thuật toán Floyd-Washall 71 5.5 Thuật toán Bellman-Ford 75 Bài tập 80 CHƢƠNG 6: BÀI TOÁN LUỒNG C C ĐẠI TRONG MẠNG 83 6.1 Mạng Luồng mạng Bài toán luồng cực đại .83 6.2 Lát cắt Đƣờng tăng luồng Định lý Ford Fulkerson 84 6.4 Một số toán luồng tổng quát 91 6.4.1 Mạng với nhiều điểm phát điểm thu 91 6.4.2 Bài toán với khả thông qua cung đỉnh 92 Bài tập 95 TÀI LIỆU THAM KHẢO 99 T n ọc p ần: Lý thuyết đồ thị ọc p ần:2 Lo Bộ môn p ụ trác g ảng d y: Khoa học Máy tính K oa p ụ trác : CNTT Mã ọc p ần: 17205 Tổng số TC: TS tiết Lý thuyết Thực hành/Xemina Tự học Bài tập lớn Đồ án môn học 60 45 15 0 Đ ều k ện t n quyết: Sinh viên phải học xong học phần sau đƣợc đăng ký học phần này: Kỹ thuật lập trình (C), Cấu trúc liệu Mục t u ọc p ần: Cung cấp kiến thức lý thuyết đồ thị vận dụng toán tin học Nộ dung c ủ yếu Gồm phần: - Phần kiến thức thức đồ thị, ứng dụng toán tin học đồ thị: phƣơng pháp biểu diễn đồ thị, thuật toán tìm kiếm đồ thị, chu trình thuật toán tìm khung nhỏ nhất, thuật toán tìm đƣờng ngắn nhất, toán luồng cực đại - Phần thực hành: Sinh viên cài đặt chƣơng trình tập liên quan đến đồ thị Nộ dung c t ết ọc p ần: PHÂN PHỐI SỐ TIẾT TÊN CHƢƠNG MỤC TS LT TH/Xemina BT KT C ƣơng Các k n ệm lý t uyết đồ t ị 5 0 2.1 Tìm kiếm theo chiều sâu đồ thị 2.2 Tìm kiếm theo chiều rộng đồ thị 2.3 Tìm đƣờng kiểm tra tính liên thông 2.4 Tô màu đồ thị 0 1.1 Tổng quan đồ thị 1.1.1 Định nghĩa đồ thị 1.1.2 Các thuật ngữ 1.1.3 Một số dạng đồ thị 1.2 Biểu diễn đồ thị 1.2.1 Biểu diễn ma trận kề, ma trận liên thuộc 1.2.2 Danh sách cạnh, cung đồ thị C ƣơng Các t uật toán tìm k ếm tr n đồ t ị C ƣơng Đồ t ị Euler đồ t ị Ham nton 11 10 PHÂN PHỐI SỐ TIẾT TÊN CHƢƠNG MỤC TS 3.1 Đồ thị Euler LT TH/Xemina 3 BT KT 1 0 3.1.1 Khái niệm đƣờng chu trình Euler 3.1.2 Điều kiện tồn đƣờng chu trình Euler 3.1.3 Thuật toán tìm đƣờng chu trình Euler 3.1.4 Một số vấn đề khác đƣờng chu trình Euler 3.2 Đồ thị Haminton 3.2.1 Khái niệm đƣờng chu trình Haminton 3.2.2 Điều kiện tồn đƣờng chu trình Haminton 3.2.3 Thuật toán tìm đƣờng chu trình Haminton 3.2.4 Một số vấn đề khác đƣờng chu trình Haminton C ƣơng Cây k ung đồ t ị 12 4.1 Khái niệm tính chất khung 4.2 Cây khung đồ thị 4.3 Xây dựng tập chu trình đồ thị 4.4 Cây khung nhỏ đồ thị 4.4.1 Thuật toán Kruskal 4.4.2 Thuật toán Prim 4.4.3 Ứng dụng toán tìm khung nhỏ C ƣơng Bà toán đƣờng đ ngắn n ất 12 5.1 Các khái niệm mở đầu 5.2 Đƣờng ngắn xuất phát từ đỉnh 5.3 Thuật toán Dijkstra 5.4 Thuật toán Floyd-Washall 1 5.5 Thuật toán Bellman-Ford C ƣơng Bà toán luồng cực đ m ng 10 6.1 Mạng Luồng mạng Bài toán luồng cực đại 6.2 Lát cắt, luồng Định lý Ford Fulkerson 6.3 Thuật toán tìm luồng cực đại 6.4 Một số toán luồng tổng quát PHÂN PHỐI SỐ TIẾT TÊN CHƢƠNG MỤC TS LT TH/Xemina BT 6.4.1 Mạng với nhiều điểm phát điểm thu 6.4.2 Bài toán với khả thông qua cung đỉnh 6.4.3 Mạng khả thông qua cung bị chặn phía 6.4.4 Một số ứng dụng khác N ệm vụ s n v n : Tham dự buổi thuyết trình giáo viên, tự học, tự làm tập giáo viên giao, tham dự kiểm tra định kỳ cuối kỳ Tà l ệu ọc tập : Nguyễn Thanh Hùng Nguyễn Đức Nghĩa, Giáo Trình Lý Thuyết Đồ Thị, NXB Đại học Quốc Gia TPHCM, 2007 - Doãn Châu Long Lý thuyết quy hoạch tuyến tính lý thuyết đồ thị NXB Giáo dục 1982 - Kenneth Rosen Toán học rời rạc ứng dụng tin học NXB KHKT Hà nội 1998 Hìn t ức t u c uẩn đán g s n v n: - - Hình thức thi cuối kỳ : Thi viết Sinh viên phải đảm bảo điều kiện theo Quy chế Nhà trƣờng Bộ T ang đ ểm: T ang đ ểm c ữ A, B, C, D, F Đ ểm đán g ọc p ần: Z = 0,3X + 0,7Y Bài giảng tài liệu c ín t ức t ống n ất Bộ môn Khoa học Máy tính, Khoa Công nghệ Thông tin đƣợc dùng để giảng dạy cho sinh viên Ngày p duyệt: / /20 TRƢỞNG BỘ MÔN: THS NGUY N H U TUÂN KÝ VÀ GHI R HỌ TÊN KT CHƢƠNG 1: CÁC KHÁI NIỆM CƠ BẢN CỦA LÝ THUYẾT ĐỒ THỊ 1.1 Tổng quan đồ thị Lý thuyết đồ thị lĩnh vực có từ lâu có nhiều ứng dụng đại Những tƣ tƣởng lý thuyết đồ thị đƣợc đề xuất vào năm đầu kỷ 18 nhà toán học lỗi lạc ngƣời Thụy Sỹ Lenhard Eurler Chính ông ngƣời sử dụng đồ thị để giải toán tiếng cầu thành phố Konigsberg Đồ thị đƣợc sử dụng để giải toán nhiều lĩnh vực khác Chẳng hạn, đồ thị sử dụng để xác định mạch vòng vấn đề giải tích mạch điện Chúng ta phân biệt hợp chất hóa học hữu khác với công thức phân tử nhƣng khác cấu trúc phân tử nhờ đồ thị Chúng ta xác định hai máy tính mạng trao đổi thông tin đƣợc với hay không nhờ mô hình đồ thị mạng máy tính Đồ thị có trọng số cạnh sử dụng để giải toán nhƣ: Tìm đƣờng ngắn hai thành phố mạng giao thông Chúng ta sử dụng đồ thị để giải toán lập lịch, thời khóa biểu, phân bố tần số cho trạm phát truyền hình… 1.1.1 Địn ng ĩa đồ thị Đồ thị cấu trúc rời rạc bao gồm đỉnh cạnh nối đỉnh Chúng ta phân biệt loại đồ thị khác kiểu số lƣợng cạnh nối hai đỉnh đồ thị Để hình dung đƣợc lại cần đến loại đồ thị khác nhau, nêu ví dụ sử dụng chúng để mô tả mạng máy tính Giả sử ta có mạng gồm máy tính kênh điện thoại (gọi tắt kênh thoại) nối máy tính Chúng ta biểu diễn vị trí đặt náy tính điểm kênh thoại nối chúng đoạn nối, xem hình Hình Sơ đồ mạng máy tính Nhận thấy mạng hình 1, hai máy có nhiều kênh thoại nối chúng, kênh thoại naỳ cho phép liên lạc hai chiều máy tính lại đƣợc nối với Sơ đồ mạng máy cho hình đƣợc gọi đơn đồ thị vô hƣớng Ta đến định nghĩa sau Định nghĩa 1: Đơn đồ thị vô hƣớng G = (V,E) bao gồm V tập đỉnh, E tập cặp thứ tự gồm hai phần tử khác V gọi cạnh Trong trƣờng hợp hai máy tính thƣờng xuyên phải truyền tải nhiều thông tin ngƣời ta phải nối hai máy nàu nhiều kênh thoại Mạng với đa kênh thoại máy đƣợc cho hình Trong trƣờng hợp hai máy tính thƣờng xuyên phải truyền tải nhiều thông tin ngƣời ta phải nối hai máy nàu nhiều kênh thoại Mạng với đa kênh thoại máy đƣợc cho hình Hình Sơ đồ mạng máy tính với đa kênh thoại Định nghĩa Đa đồ thị vô hƣớng G= (V, E) bao gồm V tập đỉnh, E tập cặp thứ tự gồm hai phần tử khác V gọi cạnh Hai cạnh e1 e2 đƣợc gọi cạnh lặp chúng tƣơng ứng với cặp đỉnh Hình Sơ đồ mạng máy tính với kênh thoại thông báo Rõ ràng đơn đồ thị đa đồ thị, nhƣng đa đồ thị đơn đồ thị, đa đồ thị có hai (hoặc nhiều hơn) cạnh nối cặp đỉnh Trong mạng máy tính có kênh thoại nối náy với (chẳng hạn vời mục đính thông báo) Mạng nhƣ đƣợc cho hình Khi đa đồ thị mô tả đƣợc mạng nhƣ vậy, có khuyên (cạnh nối đỉnh với nó) Trong trƣờng hợp nàychúng ta cần sử dụng đến khái niệm giả đồ thị vô hƣớng, đƣợc định nghĩa nhƣ sau: Định nghĩa Giả đồ thị vô hƣớng G = (V, E) bao gồm V tập đỉnh E tập cặp thứ tự gồm hai phần tử (không thiết phải khác nhau) V gọi cạnh Cạnh e đƣợc gọi khuyên có dạng e = (u, u) Hình Mạng máy tính với kênh thoại chiều Các kênh thoại mạng máy tính cho phép truyền tin theo chiều Chẳng hạn, hình máy chủ Hà Nội nhận tin từ máy địa phƣơng, có số máy gửi tin đi, kênh thoại cho phép truyền tin theo hai chiều đƣợc thay hai cạnh có hƣớng ngƣợc chiều Ta đến định nghĩa sau Định nghĩa Đơn đồ thị có hƣớng G = (V, E) 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 cung Nếu mạng có đa kênh thoại chiều, ta phải sử dụng đến khái niệm đa đồ thị có hƣớng: Định nghĩa Đa đồ thị có hƣớng G = (V, E) 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 cung Hai cung e1, e2 tƣơng ứng với cặp đỉnh đƣợc gọi cung lặp Trong phần chủ yếu làm việc v?i đơn đồ thị vô hƣớng đơn đồ thị có hƣớng Vì vậy, ngắn gọn, ta bỏ qua tính từ đơn nhắc đến chúng Địn lý (Định lý tính nguyên) Nếu tất khả thông qua số nguyên luồng tìm đƣợc cực đại với luồng cung số nguyên Tuy nhiên, khả thông qua số lớn giá trị luồng cực đại lớn thuật toán mô tả đòi hỏi thực nhiều bƣớc tăng luồng Thí dụ hình minh hoạ cho điều Hình 2(a) mô tả mạng cần xét với khả thông qua cung Hình 2(b) mô tả luồng cung (số thứ hai bên cạnh cung) sau thực tăng luồng dọc theo đƣờng tăng luồng (s, a, b, t) Hình 2(c) mô tả luồng cung sau thực tăng luồng dọc theo đƣờng tăng luồng (s, b, a, t) Rõ ràng, sau 2.10 lần tăng luồng theo đƣờng (s, a, b, t) (s, b, a, t) cách luân phiên ta thu đƣợc luồng cực đại Hình Ví dụ tồi tệ thuật toán Ford_Fulkerson Hơn nữa, khả thông qua số vô tỉ, ngƣời ta xây dựng đƣợc ví dụ thuật toán không dừng, tệ dãy giá trị luồng xây dựng theo thuật toán hội tụ không hội tụ đến giá trị luồng cực đại Nhƣ vậy, muốn thuật toán làm việc hiệu quả, việc lựa chọn đƣờng tăng luồng cần đƣợc tiến hành cẩn thận Edmonds Karp đƣờng tăng luồng đƣợc chọn đƣờng ngắn từ s đến t đồ thị Gf Điều thực hiện, thủ tục tìm đƣờng tăng Find_Path mô tả trên, danh sách VT đƣợc tổ chức dƣới dạng QUEUE (nghĩa ta thực tìm đƣờng tăng thủ tục tìm kiếm theo chiều rộng) thuật toán kết thúc sau không mn/2 lần sử dụng đƣờng tăng luồng Nếu để ý rằng, tìm kiếm theo chiều rộng đồ thị đòi hỏi thời gian O(m+n), thuật toán thu đƣợc có độ phức tạp tính toán O(nm2) Nhờ cách tổ chức tìm đƣờng tăng khéo léo hơn, ngƣời ta xây dựng đƣợc thuật toán với độ phức tạp tính toán tốt nhƣ: O(n2m) (Dinic, 1970) O(n3) (Karzanov, 1974), O(n2m2), (Cherkasky, 1977), O(nm log n) (Sleator, - Tarrjan, 1980) Ta kết thúc mục ví dụ minh hoạ cho thuật toán Ford_Fulkerson sau Hình 3(a) cho mạng G với thông qua tất cung luồng giá trị 10 Hai số viết 90 bên cạnh cung khả thông qua cung (số ngoặc) luồng cung Đƣờng tăng luồng có dạng (s, v3, v2, v6, v7 lên Hình (b) cho luồng thu đƣợc sau tăng luồng theo đƣờng tăng tìm đƣợc Hình Tăng luồng dọc theo đƣờng tăng Luồng hình (b) cực đại Lát cắt hẹp 2, v3, v 4, v6, v7 Giá trị luồng cực đại 11 6.4 Một số toán luồng tổng quát Trong phần ta nêu số dạng toán luồng tổng quát mà việc giải chúng dẫn toán luồng cực đại trình bày 6.4.1 M ng với nhiều đ ểm p át điểm thu Xét mạng G với p điểm phát s1, s2, , sp q điểm thu t1, t2, , tq Giả sử luồng từ điểm phát đến tất điểm thu Bài toán tìm luồng cực đại từ điểm phát đến điểm thu đƣa toán với điểm phát điểm thu cách đƣa vào điểm phát giả s điểm thu giả t cạnh nối s với tất điểm phát cạnh nối điểm thu với t 91 Hình minh hoạ cho cách đƣa mạng với nhiều điểm phát nhiều điểm thu mạng có điểm phát điểm thu Khả thông qua cung nối s với điểm phát sk chế bk cung (s, sk) có khả thông qua bk Cũng nhƣ vậy, cung nối tk với điểm thu t, giả sử khả thông qua (tk, t) giới hạn không giới hạn tuỳ theo lƣợng thu điểm thu có bị giới hạn hay không Trƣờng hợp số điểm thu nhận "hàng" từ số điểm phát ta có toán nhiều luồng toán phức tạp nhiều so với toán luồng cực đại điểm phát s điểm thu t Hình Mạng với nhiều điểm phát thu 6.4.2 Bài toán với khả t ông qua cung đỉnh Giả sử đồ thị G, khả thông qua khả thông qua đỉnh d(v), đòi hỏi tổng luồng vào đỉnh v không đƣợc vƣợt d(v), tức Cần phải tìm luồng cực đại s t mạng nhƣ Xây dựng mạng G’ cho: đỉnh v G tƣơng ứng với đỉnh v+, v- G’, cung (u,v) G ứng với cung (u-,v+) G’, cung (v, e) G ứng với cung (v-, w+) G’ Ngoài ra, cung (v+, v-) G’ có khả thông qua d(v), tức khả thông qua đỉnh v G Do luồng vào đỉnh v+ phải qua cung (v+, v-) với khả thông qua d(v), nên luồng cực đại G’ luồng cực đại G với khả thông qua cung đỉnh 92 Hình Hình 5a cho ví dụ mạng G với khả thông qua cung đỉnh Hình 5b mạng G’ tƣơng ứng có khả thông qua cung 6.4.3 M ng k ả t ông qua mỗ cung bị c ặn a p ía Xét mạng G mà cung (u, v) có khả thông qua (cận luồng cung) c(u,v) cận dƣới luồng d(u,v) Bài toán đặt liệu có tồn luồng tƣơng hay không? Đƣa vào mạng G đỉnh phát sa đỉnh thu ta xây dựng mạng Ga theo qui tắc: qua d(u,v) Giảm c(u,v) d(u,v) tức thay khả thông qua cung (u,v) c(u,v) – d(u,v) cận dƣới đặ 93 Hình Mạng với khả thông qua bị chặn hai phía Hình 6(a) cho ví dụ mạng G với khả thông qua cung bị chặn hai phía Đồ thị Ga tƣơng ứng đƣợc cho hình 6(b) Ký hiệu d* d(u,v) Địn lý 1) Nếu luồng lớn mạng Ga từ sa đến ta d* tồn luồng tƣơng thích G 2) Nếu luồng lớn mạng Ga từ sa đến ta khác d* không tồn luồng tƣơng thích G 94 Bài tập Bài Cho G=(V,E) đồ thị có hƣớng cung (s,t) Chứng minh số đƣờng nối hai đỉnh s t số đỉnh đồ thị cần loại bỏ để đồ thị không đƣờng nối s với t Bài Xây dựng thuật toán tìm tập E1 tất cung đồ thị mà việc tăng khả thông qua cung E dẫn đến tăng giá trị luồng cực đại mạng Bài Cho hai dãy số nguyên dƣơng {pi, i=1,2,…,m} {qj, j=1,2,…,n} Hãy xây dựng ma trận A={aij : i=1,2,…,m; j=1,2,…n} với phần tử j i , tổng phần tử cột j qj Bài Có m chàng trai, n cô gái k bà mối, Mỗi bà mối p (p=1,2,…,k) có danh sách Lp số chàng trai cô gái số chàng trai cô gái nói khách hàng bà ta Bà mối p se duyên cho cặp trai gái khách hàng bà ta, nhƣng không đủ sức tổ chức dp đám cƣới Hãy xây dựng thuật toán vào danh sách Lp, dp, p=1,2,…,k; đƣa cách tổ chức nhiều đám cƣới m chàng trai n cô gái với giúp đỡ bà mối Bài : Chuyển bi Cậu bé vẽ N (N[...]... khỏi đồ thị và thêm vào đồ thị một đỉnh mới w cùng với hai cạnh (u,w), (w, u) Hai đồ thị G(V,E) và H=(W,F) đƣợc gọi là đồng cấu nếu chúng có thể thu đƣợc từ cùng một đồ thị nào đó nhờ phép chia cạnh Định lý 2 (Kuratovski) Đồ thị là phẳng khi và chỉ khi nó không chứa đồ thị con đồng cấu với K3,3 hoặc K5 Trong trƣờng hợp riêng, đồ thị K3,3 hoặc K5 không phải là đồ thị phẳng Bài toán về tính phẳng của đồ. .. kề nhau Đồ thị này đƣợc gọi là đồ thị kép của bản đồ Từ phƣơng pháp xây dựng đồ thị kép của 1 bản đồ, dễ thấy mỗi bản đồ phẳng sẽ tƣơng ứng với 1 đồ thị kép phẳng H2 thể hiện đồ thị phẳng tƣơng ứng của các bản đồ trong H1 28 B B C D A G F E a) C A E D b) H2: Đồ thị kép của các bản đồ trong H1 2.4.2 Các khái niệm cơ bản Định nghĩa 1: Phép tô màu của một đồ thị đơn là một quy tắc tô mỗi đỉnh đồ thị một... 1.1.3.1 Đồ t ị đầy đủ Đồ thị đầy đủ n đỉnh, ký hiệu bởi Kn, là đơn đồ thị vô hƣớng mà giữa hai đỉnh bất kỳ của nó luôn có cạnh nối Các đồ thị K3, K4, K5 cho trong hình dƣới đây Hình 1 Đồ thị đầy đủ Đồ thị đầy đủ Kn có tất cả n(n-1)/2 cạnh, nó là đơn đồ thị có nhiều cạnh nhất 1.1.3.2 Đồ t ị vòng Đồ thị vòng Cn, n≥3 gồm n đỉnh v1, v2, .vn và các cạnh (v1,v2), (v2,v3) (vn-1,vn), (vn,v1) Đồ thị vòng... biểu diễn đồ thị trên dƣới dạng ma trận kề, danh sách cạnh, danh sách kề Bài 2: Viết chƣơng trình bằng ngôn ngữ lập trình C để nhập vào một đồ thị, in đồ thị ra màn hinh theo dạng ma trận kề Bài 3: Viết chƣơng trình bằng ngôn ngữ lập trình C để nhập vào một đồ thị, in đồ thị ra màn hinh theo dạng danh sách cạnh Bài 4: Viết chƣơng trình bằng ngôn ngữ lập trình C để nhập vào một đồ thị, in đồ thị ra màn... của đồ thị m=60/20=30 Vì vậy, theo công thức Euler, số miền cần tìm là r=30-20+2=12 1.2 Biểu diễn đồ thị Để lƣu trữ đồ thị và thực hiện các thuật toán khác nhau với đồ thị trên máy tính cần phải tìm những cấu trúc dữ liệu thích hợp để mô tả đồ thị Việc chọn cấu trúc dữ liệu nào để biểu diễn đồ thị có tác động rất lớn đến hiệu quả của thuật toán Vì vậy, việc chọn lựa cấu trúc dữ liệu để biểu diễn đồ thị. .. (v) Rất nhiều tính chất của đồ thị có hƣớng không phụ thuộc vào hƣớng trên các cung của nó Vì vậy, trong nhiều trƣờng hợp sẽ thuận tiện hơn nếu ta bỏ qua hƣớng trên các cung của đồ thị Đồ thị vô hƣớng thu đƣợc bằng cách bỏ qua hƣớng trên các cung đƣợc gọi là đồ thị vô hƣớng tƣơng ứng với đồ thị có hƣớng đã cho 5 1.1.3 Một số d ng đồ thị Trong mục này ta xét một số đơn đồ thị vô hƣớng dạng đặc biệt xuất... Lƣu ý rằng ma trận kề của đồ thị có hƣớng không phải là ma trận đối xứng 10 Chú ý: Trên đây chúng ta chỉ xét đơn đồ thị Ma trận kề của đa đồ thị có thể xây dựng hoàn toàn tƣơng tự, chỉ khác là thay vì ghi 1 vào vị trí a[i,j] nếu (i,j) là cạnh của đồ thị, chúng ta sẽ ghi k là số cạnh nối hai đỉnh i, j Trong rất nhiều vấn đề ứng dụng của lý thuyết đồ thị, mỗi cạnh e=(u,v) của đồ thị đƣợc gán với một con... hình 6) Hình 6 Đồ thị K4 là đồ thị phẳng Một điều đáng lƣu ý nếu đồ thị là phẳng thì luôn có thể vẽ nó trên mặt phẳng với các cạnh nối là các đoạn thẳng không cắt nhau ngoài ở đỉnh (ví dụ xem cách vẽ K4 trong hình 6) Để nhận biết xem một đồ thị có phải là đồ thị phẳng có thể sử dụng định lý Kuratovski, mà để phát biểu nó ta cần một số khái niệm sau: Ta gọi một phép chia cạnh (u,v) của đồ thị là việc loại... sẽ trình bày một số thuật ngữ cơ bản của lý thuyết đồ thị Trƣớc tiên, ta xét các thuật ngữ mô tả các đỉnh và cạnh của đồ thị vô hƣớng Định nghĩa 1 Hai đỉnh u và v của đồ thị vô hƣớng G đƣợc gọi là kề nhau nếu (u,v) là cạnh của đồ thị G Nếu e = (u, v) là cạnh của đồ thị ta nói cạnh này là liên thuộc với hai đỉnh u và v, hoặc cũng nói là nối đỉnh u và đỉnh v, đồng thời các đỉnh u và v sẽ đƣợc gọi là... Y, E) với |X|= m, |Y| = n đƣợc gọi là đồ thị hai phía đầy đủ và ký hiệu là K2,3, K3,3, K3,4 đƣợc cho trong hình 5 Khi E… Hình 5 Đồ thị hai phía 1.1.3.6 Đồ t ị p ẳng 7 Đồ thị đƣợc gọi là đồ thị phẳng nếu ta có thể vẽ nó trên mặt phẳng sao cho các cạnh của nó không cắt nhau ngoài ở đỉnh Cách vẽ nhƣ vậy sẽ đƣợc gọi là biểu diễn phẳng của đồ thị Thí dụ đồ thị K4 là phẳng, vì có thể vẽ nó trên mặt phẳng