Hướng dẫn what is graph data structure in python? - cấu trúc dữ liệu đồ thị trong python là gì?

Trong bài viết này, chúng tôi sẽ xem xét những điều cơ bản của đồ thị, các loại đồ thị khác nhau và đại diện của chúng.

Đồ thị là các cấu trúc dữ liệu phi tuyến tính phức tạp, được đặc trưng bởi một nhóm các đỉnh, được kết nối bởi các cạnh. Để biết thêm thông tin về các loại cấu trúc dữ liệu khác nhau trong Python, hãy xem các bài viết sau:

  • Giới thiệu về cấu trúc dữ liệu
  • Danh sách
  • Cây rơm
  • Xếp hàng
  • Danh sách liên kết
  • Cây nhị phân
  • Đống

Mục lục

  • Đồ thị: Giới thiệu
  • Ứng dụng của đồ thị
  • Các loại đồ thị
  • Đại diện cho đồ thị
  • Sự kết luận
  • Đọc thêm

Đồ thị: Giới thiệu

Ứng dụng của đồ thị

  • Các loại đồ thị – Vertices are entities in a graph. Every vertex has a value associated with it. For example, if we represent a list of cities using a graph, the vertices would represent the cities.

  • Đại diện cho đồ thị – Edges represent the relationship between the vertices in the graph. Edges may or may not have a value associated with them. For example, if we represent a list of cities using a graph, the edges would represent the path between the cities.

Hướng dẫn what is graph data structure in python? - cấu trúc dữ liệu đồ thị trong python là gì?

Sự kết luận

Ứng dụng của đồ thị

Các loại đồ thị

Đại diện cho đồ thị

  • Sự kết luận

  • Đọc thêm

  • Đồ thị là các cấu trúc dữ liệu phi tuyến tính được tạo thành từ hai thành phần chính:

  • Các đỉnh - đỉnh là các thực thể trong một biểu đồ. Mỗi đỉnh có một giá trị liên quan đến nó. Ví dụ: nếu chúng ta đại diện cho một danh sách các thành phố bằng biểu đồ, các đỉnh sẽ đại diện cho các thành phố.

Các loại đồ thị

Đại diện cho đồ thị

  • Sự kết luận
  • Đọc thêm
  • Đồ thị là các cấu trúc dữ liệu phi tuyến tính được tạo thành từ hai thành phần chính:

Các đỉnh - đỉnh là các thực thể trong một biểu đồ. Mỗi đỉnh có một giá trị liên quan đến nó. Ví dụ: nếu chúng ta đại diện cho một danh sách các thành phố bằng biểu đồ, các đỉnh sẽ đại diện cho các thành phố.

Các cạnh - Các cạnh đại diện cho mối quan hệ giữa các đỉnh trong biểu đồ. Các cạnh có thể hoặc không có giá trị liên quan đến chúng. Ví dụ: nếu chúng ta đại diện cho một danh sách các thành phố bằng biểu đồ, các cạnh sẽ đại diện cho đường dẫn giữa các thành phố.

Hình: Đồ thị

Đồ thị được sử dụng ở khắp mọi nơi, từ trường học đến kinh doanh. Đặc biệt là trong các lĩnh vực khoa học máy tính, vật lý và hóa học.

Hướng dẫn what is graph data structure in python? - cấu trúc dữ liệu đồ thị trong python là gì?

Một vài ứng dụng khác của biểu đồ là:

Để trực quan hóa dữ liệu có tổ chức.

Các biểu đồ được định hướng được sử dụng trong thuật toán xếp hạng trang Google Google.

Các mạng xã hội sử dụng các biểu đồ để biểu diễn người dùng khác nhau dưới dạng các đỉnh và cạnh để biểu thị các kết nối giữa chúng.

Hướng dẫn what is graph data structure in python? - cấu trúc dữ liệu đồ thị trong python là gì?

Trong một ứng dụng ánh xạ, các biểu đồ được sử dụng để biểu diễn các địa điểm và đường dẫn (khoảng cách) giữa chúng.

Có nhiều loại đồ thị, dựa trên trọng số, hướng, kết nối và tính chất đặc biệt. Hãy cùng nhìn vào các loại đồ thị phổ biến nhất.

Đồ thị dựa trên hướng

Đồ thị dựa trên trọng lượng

  • Đồ thị đặc biệt
  • Dựa trên hướng
  • Đồ thị không mong muốn

Trong một biểu đồ không mong muốn, các cạnh không có đường dẫn hoặc hướng. Nếu có một đường dẫn từ đỉnh X đến đỉnh y, thì có một đường dẫn từ đỉnh Y đến đỉnh X. Edge (x, y) đại diện cho cạnh kết nối đỉnh X với đỉnh Y.

Hướng dẫn what is graph data structure in python? - cấu trúc dữ liệu đồ thị trong python là gì?

Đó là, edge (X, Y) == edge (Y, X).

Hình: Đồ thị không được mong muốn

Đồ thị định hướng

  • Đồ thị đặc biệt
  • Dựa trên hướng

Đồ thị không mong muốn

Hướng dẫn what is graph data structure in python? - cấu trúc dữ liệu đồ thị trong python là gì?

Trong một biểu đồ không mong muốn, các cạnh không có đường dẫn hoặc hướng. Nếu có một đường dẫn từ đỉnh X đến đỉnh y, thì có một đường dẫn từ đỉnh Y đến đỉnh X. Edge (x, y) đại diện cho cạnh kết nối đỉnh X với đỉnh Y.

Đồ thị là các cấu trúc dữ liệu phi tuyến tính được tạo thành từ hai thành phần chính:

Các đỉnh - đỉnh là các thực thể trong một biểu đồ. Mỗi đỉnh có một giá trị liên quan đến nó. Ví dụ: nếu chúng ta đại diện cho một danh sách các thành phố bằng biểu đồ, các đỉnh sẽ đại diện cho các thành phố.

Các cạnh - Các cạnh đại diện cho mối quan hệ giữa các đỉnh trong biểu đồ. Các cạnh có thể hoặc không có giá trị liên quan đến chúng. Ví dụ: nếu chúng ta đại diện cho một danh sách các thành phố bằng biểu đồ, các cạnh sẽ đại diện cho đường dẫn giữa các thành phố.

Hình: Đồ thị

Hướng dẫn what is graph data structure in python? - cấu trúc dữ liệu đồ thị trong python là gì?

Đồ thị được sử dụng ở khắp mọi nơi, từ trường học đến kinh doanh. Đặc biệt là trong các lĩnh vực khoa học máy tính, vật lý và hóa học.

Một vài ứng dụng khác của biểu đồ là:

Để trực quan hóa dữ liệu có tổ chức.arborescence/out-tree. If edges point towards the root, it is called an anti-arborescence/in-tree.

Hướng dẫn what is graph data structure in python? - cấu trúc dữ liệu đồ thị trong python là gì?

Các biểu đồ được định hướng được sử dụng trong thuật toán xếp hạng trang Google Google.

Các mạng xã hội sử dụng các biểu đồ để biểu diễn người dùng khác nhau dưới dạng các đỉnh và cạnh để biểu thị các kết nối giữa chúng.

Trong một ứng dụng ánh xạ, các biểu đồ được sử dụng để biểu diễn các địa điểm và đường dẫn (khoảng cách) giữa chúng.

Có nhiều loại đồ thị, dựa trên trọng số, hướng, kết nối và tính chất đặc biệt. Hãy cùng nhìn vào các loại đồ thị phổ biến nhất.

Hướng dẫn what is graph data structure in python? - cấu trúc dữ liệu đồ thị trong python là gì?

Đồ thị dựa trên hướng

Đồ thị dựa trên trọng lượng

Đồ thị đặc biệt

Dựa trên hướng

Hướng dẫn what is graph data structure in python? - cấu trúc dữ liệu đồ thị trong python là gì?

Đồ thị không mong muốn

Đại diện cho đồ thị

Sự kết luận

  • Đọc thêm
  • Đồ thị là các cấu trúc dữ liệu phi tuyến tính được tạo thành từ hai thành phần chính:
  • Các đỉnh - đỉnh là các thực thể trong một biểu đồ. Mỗi đỉnh có một giá trị liên quan đến nó. Ví dụ: nếu chúng ta đại diện cho một danh sách các thành phố bằng biểu đồ, các đỉnh sẽ đại diện cho các thành phố.

Đọc thêm

Đồ thị là các cấu trúc dữ liệu phi tuyến tính được tạo thành từ hai thành phần chính:

Trong một biểu đồ không trọng số, phần tử

graph = [(C, A, 4), (A, C, 1), (B, C, 6),
         (A, B, 4), (C, B, 1), (C, D, 2)]
3 thể hiện giá trị boolean xác định xem một đường dẫn tồn tại từ đỉnh
graph = [(C, A, 4), (A, C, 1), (B, C, 6),
         (A, B, 4), (C, B, 1), (C, D, 2)]
4 đến đỉnh
graph = [(C, A, 4), (A, C, 1), (B, C, 6),
         (A, B, 4), (C, B, 1), (C, D, 2)]
5. Nếu
graph = [(C, A, 4), (A, C, 1), (B, C, 6),
         (A, B, 4), (C, B, 1), (C, D, 2)]
9, thì không có đường dẫn từ đỉnh
graph = [(C, A, 4), (A, C, 1), (B, C, 6),
         (A, B, 4), (C, B, 1), (C, D, 2)]
4 đến đỉnh
graph = [(C, A, 4), (A, C, 1), (B, C, 6),
         (A, B, 4), (C, B, 1), (C, D, 2)]
5 tồn tại. Nếu edge (X, Y) == edge (Y, X)2, có một đường dẫn từ đỉnh
graph = [(C, A, 4), (A, C, 1), (B, C, 6),
         (A, B, 4), (C, B, 1), (C, D, 2)]
4 đến đỉnh
graph = [(C, A, 4), (A, C, 1), (B, C, 6),
         (A, B, 4), (C, B, 1), (C, D, 2)]
5.

Ví dụ, một trò chơi rắn và thang có thể được biểu diễn bằng cách sử dụng ma trận kề. Điều này cho phép chúng tôi sử dụng các thuật toán khác nhau để tìm con đường ngắn nhất để kết thúc trò chơi. Tương tự, nhiều thuật toán đường dẫn ngắn nhất sử dụng ma trận kề.

Example:

graph = [[0, 1, 2],
         [2, 0, 5],
         [4, 5, 0]]

Ma trận liền kề ở trên đại diện cho một biểu đồ có 3 đỉnh. Chi phí chuyển từ đỉnh 0 sang đỉnh 1 là 1, chi phí chuyển từ đỉnh 0 sang đỉnh 2 là 2, v.v. Thông thường, chi phí đi từ một đỉnh đến chính nó là bằng không.

Ưu điểm và nhược điểm của ma trận phụ thuộc
Thuận lợiNhược điểm
Hiệu quả không gian cho biểu diễn đồ thị dày đặc.Độ phức tạp không gian của cấu trúc dữ liệu này - O (V^2).
Độ phức tạp của thời gian để có được trọng lượng cạnh là O (1).Lặp lại qua các cạnh mất thời gian O (V^2).
Biểu diễn đồ thị đơn giản nhất.

Danh sách kề

Một danh sách kề vật biểu thị một biểu đồ dưới dạng danh sách có ánh xạ cạnh đỉnh. Ví dụ, A → [(B, 4), (C, 1)] đại diện cho một danh sách kề trong đó đỉnh A được kết nối với B (Trọng lượng 4) và C (Trọng lượng 1). Điều này hoạt động thực sự tốt cho đồ thị thưa thớt.

Ưu điểm và nhược điểm của danh sách phụ thuộc
Thuận lợiNhược điểm
Hiệu quả không gian cho biểu diễn đồ thị dày đặc.Độ phức tạp không gian của cấu trúc dữ liệu này - O (V^2).
Độ phức tạp của thời gian để có được trọng lượng cạnh là O (1).Lặp lại qua các cạnh mất thời gian O (V^2).
Biểu diễn đồ thị đơn giản nhất.

Danh sách kề

Một danh sách kề vật biểu thị một biểu đồ dưới dạng danh sách có ánh xạ cạnh đỉnh. Ví dụ, A → [(B, 4), (C, 1)] đại diện cho một danh sách kề trong đó đỉnh A được kết nối với B (Trọng lượng 4) và C (Trọng lượng 1). Điều này hoạt động thực sự tốt cho đồ thị thưa thớt.

Example:

graph = [(C, A, 4), (A, C, 1), (B, C, 6),
         (A, B, 4), (C, B, 1), (C, D, 2)]

Ưu điểm và nhược điểm của danh sách phụ thuộc

Hiệu quả không gian cho đồ thị thưa thớt.
Thuận lợiNhược điểm
Hiệu quả không gian cho biểu diễn đồ thị dày đặc.Độ phức tạp không gian của cấu trúc dữ liệu này - O (V^2).
Độ phức tạp của thời gian để có được trọng lượng cạnh là O (1).Lặp lại qua các cạnh mất thời gian O (V^2).
Biểu diễn đồ thị đơn giản nhất.Danh sách kề

Một danh sách kề vật biểu thị một biểu đồ dưới dạng danh sách có ánh xạ cạnh đỉnh. Ví dụ, A → [(B, 4), (C, 1)] đại diện cho một danh sách kề trong đó đỉnh A được kết nối với B (Trọng lượng 4) và C (Trọng lượng 1). Điều này hoạt động thực sự tốt cho đồ thị thưa thớt.

Ưu điểm và nhược điểm của danh sách phụ thuộc

Hiệu quả không gian cho đồ thị thưa thớt.

Ít không gian hiệu quả cho đồ thị dày đặc.

  • Lặp lại trên các cạnh là hiệu quả.

    • Tra cứu trọng lượng cạnh là O (E). (trường hợp xấu)
    • Hơi phức tạp hơn để đại diện.
  • Danh sách cạnh

    • Một danh sách cạnh đại diện cho biểu đồ như một danh sách các cạnh không cấu trúc.
    • Chúng không được sử dụng rộng rãi vì đại diện này thiếu cấu trúc.
  • Ưu điểm và nhược điểm của Danh sách Edge

    • Đại diện cực kỳ đơn giản.
    • Đại diện này thiếu cấu trúc.
    • Sự kết luận
    • Trong bài viết này, chúng tôi đã tìm hiểu về các loại biểu đồ, biểu diễn và ứng dụng của chúng.

Để tóm tắt,

  • Các loại đồ thị

    • Dựa trên hướng
  • Danh sách kề

    • Một danh sách kề vật biểu thị một biểu đồ dưới dạng danh sách có ánh xạ cạnh đỉnh. Ví dụ, A → [(B, 4), (C, 1)] đại diện cho một danh sách kề trong đó đỉnh A được kết nối với B (Trọng lượng 4) và C (Trọng lượng 1). Điều này hoạt động thực sự tốt cho đồ thị thưa thớt.
  • Danh sách kề

    • Một danh sách kề vật biểu thị một biểu đồ dưới dạng danh sách có ánh xạ cạnh đỉnh. Ví dụ, A → [(B, 4), (C, 1)] đại diện cho một danh sách kề trong đó đỉnh A được kết nối với B (Trọng lượng 4) và C (Trọng lượng 1). Điều này hoạt động thực sự tốt cho đồ thị thưa thớt.

Ưu điểm và nhược điểm của danh sách phụ thuộc

Hiệu quả không gian cho đồ thị thưa thớt.

  • Ít không gian hiệu quả cho đồ thị dày đặc.
  • Lặp lại trên các cạnh là hiệu quả.
  • Tra cứu trọng lượng cạnh là O (E). (trường hợp xấu)

Hơi phức tạp hơn để đại diện.

Làm thế nào để bạn tạo một biểu đồ trong cấu trúc dữ liệu Python?

Cấu trúc dữ liệu đồ thị..
Đỉnh.Một đỉnh là phần cơ bản nhất của biểu đồ và nó còn được gọi là nút.....
Bờ rìa.Một cạnh là một phần cơ bản khác của biểu đồ và nó kết nối hai đỉnh/ cạnh có thể là một chiều hoặc hai chiều.....
Trọng lượng.Các cạnh có thể được cân để cho thấy rằng có một chi phí để đi từ đỉnh này sang đỉnh khác.....
Đồ thị.....
Đường dẫn.....
Cycle..

Đối tượng đồ thị trong Python là gì?

Đối tượng đồ thị là biểu diễn hình ảnh của các hệ thống các đối tượng được kết nối với nhau bởi các liên kết.Âm mưu.Mô-đun graph_objects chứa một hệ thống phân cấp của các lớp Python đại diện cho các nút không lá trong lược đồ hình này.Các đối tượng đồ thị của người Viking là những trường hợp của các lớp này.pictorial representations of systems of objects interconnected by links. The plotly. graph_objects module contains a hierarchy of Python classes that represent non-leaf nodes in this figure schema. “Graph objects” are instances of these classes.