Thực hành toán rời rạc chương 7 đồ thị và các tính chất của đồ thị

7 4 0
Thực hành toán rời rạc   chương 7 đồ thị và các tính chất của đồ thị

Đang tải... (xem toàn văn)

Thông tin tài liệu

Bộ môn Khoa học Dữ liệu Thực hành Toán rời rạc Trang 1 THỰC HÀNH TOÁN RỜI RẠC TÀI LIỆU PHỤC VỤ SINH VIÊN NGÀNH KHOA HỌC DỮ LIỆU Nhóm Giảng viên biên soạn TS Hoàng Lê Minh – Khưu Minh Cảnh – Hoàng Thị[.]

Bộ mơn Khoa học Dữ liệu THỰC HÀNH TỐN RỜI RẠC TÀI LIỆU PHỤC VỤ SINH VIÊN NGÀNH KHOA HỌC DỮ LIỆU Nhóm Giảng viên biên soạn: TS Hồng Lê Minh – Khưu Minh Cảnh – Hoàng Thị Kiều Anh – Lê Ngọc Thành – Phạm Trọng Nghĩa –Nguyễn Công Nhựt – Trần Ngọc Việt – Đỗ Đình Thủ – Nguyễn Hữu Trí Nhật – Lê Cơng Hiếu – Nguyễn Thị Thanh Bình – Nguyễn Thái Hải – Huỳnh Thái Học Giảng viên khác TP.HCM – Năm 2020 Thực hành Tốn rời rạc Trang Bộ mơn Khoa học Dữ liệu MỤC LỤC CHƯƠNG 7: ĐỒ THỊ VÀ CÁC TÍNH CHẤT CỦA ĐỒ THỊ 3 Biểu diễn đồ thị Python 1.1 Biểu diễn đồ thị ma trận kề 1.2 [Đọc thêm] Sử dụng cấu trúc liệu Python Một số đặc trưng tính chất đồ thị 2.1 Các số tính chất đỉnh cạnh, loại đồ thị 2.2 Các thuộc tính đồ thị Sử dụng gói networkx để giải toán đồ thị 3.1 Giới thiệu gói networkx 3.2 Tạo lập đồ thị vô hướng với networkx BÀI TẬP CHƯƠNG Thực hành Tốn rời rạc Trang Bộ mơn Khoa học Dữ liệu CHƯƠNG 7: ĐỒ THỊ VÀ CÁC TÍNH CHẤT CỦA ĐỒ THỊ Mục tiêu: - Khái niệm biểu diễn đồ thị Python - Định nghĩa liên thông đồ thị - Xử lý đường đi, chu trình đồ thị Python - Khai phá tính chất đồ thị thơng qua gói networkx Python Nội dung chính: Biểu diễn đồ thị Python Hiện tại, đồ thị biểu diễn nhiều dạng ngơn ngữ lập trình Dưới đây, hai dạng ngôn ngữ Python giới thiệu 1.1 Biểu diễn đồ thị ma trận kề Ma trận kề hình thức biểu diễn đồ thị đơn giản Ma trận kề ma trận vuông nxn với n số đỉnh đồ thị Các quy tắc biểu diễn ma trận kề = ,1 ≤ ≤ ,1 ≤ ≤   - - Ma trận gồm n dòng n cột tương ứng với đồ thị n đỉnh Giá trị thể nhiều dạng thông tin đây: Sự kết nối (đối với đồ thị quan tâm đến kết nối): giá trị khác biết có kết nối từ đỉnh đến đỉnh Chiều dài/giá trị/hàm phạt/khả tiếp cận từ đỉnh đến đỉnh (giá trị vơ xem hai đỉnh khơng có kết nối trực tiếp; giá trị cho thấy hai đỉnh trùng nhau; giá trị âm cho thấy kết nối ngược chiều); Dạng đồ thị: đồ thị có hướng thường cạnh ngược hướng có giá trị âm (nghĩa là: = − ) Tuy nhiên, nhược điểm phương pháp thể là: việc thể đồ thị lớn đặc biệt thưa tốn nhiều tài nguyên Do ma trận tăng mũ theo kích thước số đỉnh 1.2 [Đọc thêm] Sử dụng cấu trúc liệu Python Sinh viên tham khảo thêm thực hành trực tuyến với hỗ trợ giảng viên: https://www.python-course.eu/graphs_python.php Thực hành Toán rời rạc Trang Bộ môn Khoa học Dữ liệu Một số đặc trưng tính chất đồ thị Dưới số số đặc trưng tính chất đồ thị/mạng 2.1 Các số tính chất đỉnh cạnh, loại đồ thị Để đánh giá mức độ phức tạp kết nối cục đồ thị/mạng:  Chỉ số : tỉ số số liên kết thực số liên kết có mạng Cơng thức: = Nhận xét: -  = (ngưỡng liên kết) ≤ 3( − 2) , : ố đỉ ℎ ℎ ặ! ú# !ủ %ạ ' ≤ (ngưỡng nhiều liên kết) Chỉ số ): tỉ số số lượng vòng thực số lượng vòng cực đại mạng (Vòng liên kết đỉnh, khơng tính vịng bao trùm) )= ! ! = ! (2 − 5) Nhận xét: với mạng liên kết, số ) khơng thích hợp để đánh giá Với mạng có số ) lớn () gần 1) mạng có kết nối tốt Ứng dụng việc phân tích kết nối giao thơng Tính tốn xem nơi “giao thơng thuận tiện” 2.2 Các thuộc tính đồ thị Cho đồ thị + = (,, -) với , tập đỉnh - tập cạnh Gọi khoảng cách hai đỉnh , / (., / ∈ -) đồ thị + 1(., /)  Phủ* đỉnh (eccentricity) Phủ đỉnh kí hiệu 2!!(/) khoảng cách xa đến đỉnh khác Như vậy, theo định nghĩa, là: 2!!(/) = max{1(/, 8)} , (/ ∈ ,) (* từ tạm dịch)  ∈6 Đường kính đồ thị (diameter), kí hiệu diam(G): Đường kính đồ thị định nghĩa độ dài lớn đường ngắn hai điểm + Như vậy, theo định nghĩa, đường kính đồ thị + : %(+): Thực hành Tốn rời rạc Trang Bộ mơn Khoa học Dữ liệu : %(+) = max {2!!(/)|} Ứng dụng: Xét thời gian chậm để loan tin Ví dụ: sáng 00 ngày, tất ngân hàng, cửa hàng cập nhật giá ngoại tệ, giá cổ phiếu Do đó, trước đó, đoạn mã script webservice cài đặt để chuyển đến máy Máy chậm hệ thống phải chuyển đến trước thời điểm 00  Bán kính đồ thị (radius), kí hiệu radius(G): Ngược với đường kính đồ thị, bán kính đồ thị định nghĩa giá trị nhỏ phủ đồ thị Như vậy, bán kính đồ thị định nghĩa là: < (+) = {2!!(/)|} Ứng dụng: Trong thành phố, khu trung tâm xem điểm đồ thị (có cạnh đường kết nối) việc tìm bán kính đồ thị tìm vị trí để đặt tiện ích xã hội như: trạm y tế, trạm chữa cháy Các đỉnh có ecc với bán kính xem đỉnh trung tâm đồ thị Sử dụng gói networkx để giải toán đồ thị 3.1 Giới thiệu gói networkx Thư viện networkx thư viện để xử lý mạng/đồ thị Python Networkx có khả năng:    Phân tích mạng bản: Thể khái niệm đồ thị Thuộc tính loại cấu trúc đồ thị Nhận diện node trung tâm đồ thị Truyền thông mạng: Nhóm phân hoạch đồ thị Tìm kiếm “cộng đồng” mạng/đồ thị tĩnh động Các ứng dụng phân tích mạng Hiện tại, gói networkx tích hợp gói phần mềm Anaconda Các thành phần gói networkx bao gồm: - Đồ thị: đồ thị vơ hướng (Graph) hữu (có) hướng (DiGraph) Node: nốt đồ thị Edge: cạnh đồ thị Để sử dụng gói networkx, phải tham chiếu thư viện >>> import networkx as nx Thực hành Toán rời rạc # sử dụng với tên gọi nx >>> import networkx Trang Bộ môn Khoa học Dữ liệu 3.2 Tạo lập đồ thị vô hướng với networkx >>> g = nx.Graph() >>> g.add_node('TP.HCM') >>> g.add_node('Dong Nai') >>> g.add_node('Ba Ria Vung Tau') >>> g.add_node('Lam Dong') >>> g.add_node('Can Tho') >>> g.add_node('Long An') >>> g.add_edge('TP.HCM', 'Dong Nai') >>> g.add_edge('TP.HCM', 'Ba Ria Vung Tau') >>> g.add_edge('TP.HCM', 'Long An') >>> g.add_edge('Dong Nai', 'Lam Dong') >>> g.add_edge('Dong Nai', 'Ba Ria Vung Tau') >>> print (g.number_of_nodes()) ……………………………………………………  sinh viên điền vào >>> print (g.number_of_edges()) ……………………………………………………  sinh viên điền vào >>> print (g.nodes()) ……………………………………………………………………  sinh viên điền vào >>> print (g.edges()) ……………………………………………………………………  sinh viên điền vào ………………………………………………………………………………………… >>> print (g.degree('TP.HCM')) ……………………………………………………  sinh viên điền vào >>> print (g.degree()) Thực hành Toán rời rạc Trang Bộ môn Khoa học Dữ liệu ……………………………………………………………………  sinh viên điền vào >>> print (list(g.neighbors('TP.HCM'))) ……………………………………………………………………  sinh viên điền vào >>> g.has_edge('Lam Dong', 'Long An') ……………………………………………………  sinh viên điền vào >>> nx.shortest_path(g, 'Lam Dong', 'Long An') # có mạng lưới đường …………………………………………………………………  sinh viên điền vào >>> nx.shortest_path(g, 'Lam Dong', 'Can Tho') # chưa xây dựng mạng đường …………………………………………………………………  sinh viên điền tên Exception >>> g.add_node('Tien Giang') >>> g.add_edge('Tien Giang', 'Long An') >>> g.add_edge('Tien Giang', 'Can Tho') >>> nx.shortest_path(g, 'Lam Dong', 'Can Tho') # bổ sung thêm đường …………………………………………………………………  sinh viên điền vào >>> nx.shortest_path_length(g, 'Lam Dong', 'Ba Ria Vung Tau') ……………………………………………………  sinh viên điền vào >>> nx.shortest_path_length(g, 'Dong Nai', 'Ba Ria Vung Tau') ……………………………………………………  sinh viên điền vào >>> nx.shortest_path_length(g, 'Lam Dong', 'Long An') ……………………………………………………  sinh viên điền vào Thực hành Toán rời rạc Trang ... 3.2 Tạo lập đồ thị vô hướng với networkx BÀI TẬP CHƯƠNG Thực hành Tốn rời rạc Trang Bộ mơn Khoa học Dữ liệu CHƯƠNG 7: ĐỒ THỊ VÀ CÁC TÍNH CHẤT CỦA ĐỒ THỊ Mục tiêu:... Một số đặc trưng tính chất đồ thị 2.1 Các số tính chất đỉnh cạnh, loại đồ thị 2.2 Các thuộc tính đồ thị Sử dụng gói networkx để giải toán đồ thị 3.1...Bộ môn Khoa học Dữ liệu MỤC LỤC CHƯƠNG 7: ĐỒ THỊ VÀ CÁC TÍNH CHẤT CỦA ĐỒ THỊ 3 Biểu diễn đồ thị Python 1.1 Biểu diễn đồ thị ma trận kề 1.2 [Đọc thêm]

Ngày đăng: 02/03/2023, 08:13

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

Tài liệu liên quan