Xem thêm

Ma trận kề - Biểu diễn đồ thị, danh sách kề và bài tập

Huy Erick
Trong lý thuyết đồ thị toán rời rạc, ma trận kề (adjacency matrix) được sử dụng một cách rộng rãi để mô phỏng các thuật toán đồ thị quan trọng như tìm đường đi ngắn...

Trong lý thuyết đồ thị toán rời rạc, ma trận kề (adjacency matrix) được sử dụng một cách rộng rãi để mô phỏng các thuật toán đồ thị quan trọng như tìm đường đi ngắn nhất và tìm cây bao trùm tối thiểu. Bài viết này sẽ giới thiệu về lý thuyết, cách biểu diễn đồ thị bằng ma trận kề thông qua một số bài tập có lời giải. Cùng khám phá nhé!

I. Ma trận kề là gì?

Ma trận kề là cách biểu diễn đồ thị G = {V,E} dưới dạng ma trận các giá trị boolean có kích thước bằng với số đỉnh của đồ thị. Đây là một công cụ mạnh mẽ giúp chúng ta xác định mối quan hệ giữa các đỉnh trong đồ thị.

Ví dụ ma trận kềVí dụ ma trận kề

II. Tính chất của ma trận kề

Tùy thuộc vào loại đồ thị (vô hướng hay có hướng), ma trận kề sẽ có những tính chất khác nhau.

Tính chất của ma trận kề của đồ thị vô hướng:

  • Tính đối xứng: a[i,j] = a[j,i], với i, j = 1, 2, ..., n.
  • Tổng các phần tử trên dòng i (cột j) bằng bậc của đỉnh i (đỉnh j).

Tính chất của ma trận kề của đồ thị có hướng:

  • Không có tính đối xứng.
  • Tổng các phần tử trên dòng i bằng bán bậc ra của đỉnh i (deg+(i)), và tổng các phần tử trên cột j bằng bán bậc vào của đỉnh j (deg(-j)).

III. Danh sách kề

Cách biểu diễn đồ thị dưới dạng danh sách kề thường được sử dụng. Trong biểu diễn này, mỗi đỉnh v của đồ thị sẽ có một danh sách các đỉnh kề với nó, được ký hiệu là Ke(v). Để biểu diễn danh sách Ke(v), chúng ta có thể sử dụng các cấu trúc dữ liệu như tập hợp, mảng hoặc danh sách liên kết.

Ví dụ: Danh sách kề của đồ thị vô hướng được biểu diễn như sau:

Danh sách kề

Bài tập ma trận kề

Bài 1: Biểu diễn đồ thị bằng ma trận kề

Biểu diễn đồ thị bằng ma trận kề

Lời giải:

Biểu diễn đồ thị bằng ma trận kề

Bài 2: Biểu diễn đồ thị bằng ma trận kề

Biểu diễn đồ thị bằng ma trận kề

Lời giải:

Biểu diễn đồ thị bằng ma trận kề

Bài 3: Biểu diễn đồ thị bằng ma trận kề

Biểu diễn đồ thị bằng ma trận kề

Biểu diễn đồ thị bằng ma trận kề

Bài 4: Biểu diễn đồ thị bằng ma trận kề

Ma trận kề

V. Câu hỏi liên quan

Ưu điểm của ma trận kề

Ma trận kề có nhiều ưu điểm hấp dẫn như:

  • Hiệu suất thời gian: Các phép toán cơ bản như thêm cạnh, xóa cạnh và kiểm tra sự tồn tại của cạnh giữa hai đỉnh i và j được thực hiện hiệu quả về mặt thời gian.
  • Khả năng xử lý đồ thị dày đặc: Khi đồ thị có nhiều cạnh, ma trận kề thường là lựa chọn tốt vì nó giúp tiết kiệm bộ nhớ và thực hiện các thao tác nhanh chóng.
  • Đa dạng về cấu trúc dữ liệu: Ngay cả khi đồ thị và ma trận kề thưa (ít cạnh), ta vẫn có thể sử dụng cấu trúc dữ liệu để biểu diễn ma trận thưa.
  • Sử dụng hiệu quả phần cứng: Những tiến bộ trong phần cứng, đặc biệt là GPU, cho phép thực hiện các phép toán trên ma trận kề lớn một cách hiệu quả.
  • Hiểu biết về đồ thị: Thực hiện các phép toán trên ma trận kề giúp chúng ta hiểu rõ hơn về cấu trúc và mối quan hệ giữa các đỉnh trong đồ thị.

Nhược điểm của ma trận kề

Tuy nhiên, ma trận kề cũng có một số nhược điểm:

  • Yêu cầu không gian lớn: Ma trận kề cần lưu trữ thông tin về tất cả các cạnh giữa các đỉnh, dẫn đến việc tiêu thụ một lượng lớn bộ nhớ. Kích thước của ma trận là VxV (với V là số lượng đỉnh), dẫn đến một tải nặng về mặt bộ nhớ đặc biệt khi đồ thị lớn.
  • Không hiệu quả với đồ thị thưa: Trong hầu hết các trường hợp, số lượng cạnh thực tế trong đồ thị ít hơn nhiều so với số lượng cạnh có thể có trong đồ thị đầy đủ. Điều này làm cho ma trận kề trở nên không hiệu quả về mặt lưu trữ và thao tác, vì nhiều vị trí trong ma trận sẽ không có giá trị.
  • Thao tác trên danh sách kề tốn kém: Các thao tác như truy vấn danh sách các cạnh đi vào (inEdges) hoặc cạnh đi ra (outEdges) của một đỉnh cụ thể sẽ rất tốn kém khi sử dụng ma trận kề. Điều này do cần phải duyệt qua toàn bộ hàng hoặc cột tương ứng để trích xuất thông tin.

Ứng dụng của ma trận kề

Ma trận kề được áp dụng trong nhiều lĩnh vực khác nhau như:

  • Tạo bảng định tuyến trong mạng.
  • Các bài toán về tìm hướng đi hoặc định vị.

Trên đây là một số lý thuyết và bài tập về biểu diễn đồ thị bằng ma trận kề. Hy vọng các bạn đã tìm thấy thông tin hữu ích trong bài viết này.

1