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.
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.
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.
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.
Đó là, edge [X, Y] == edge [Y, X]
.
Đồ thị định hướ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.
Đồ 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.
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.
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.
Đồ 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
Đạ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ộcHiệ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ộcHiệ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.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.