✨Ma trận kề

Ma trận kề

Trong Toán học và Khoa học máy tính, ma trận kề (tiếng Anh: adjacency matrix) cho một đồ thị hữu hạn G gồm n đỉnh là một ma trận n × n, trong đó, các ô không nằm trên đường chéo chính aij là số cạnh nối hai đỉnh ij, còn ô nằm trên đường chéo chính aii là hai lần số khuyên tại đỉnh i, hoặc chỉ là số khuyên tại đỉnh đó (bài này chọn cách thứ nhất, các đồ thị có hướng luôn theo cách thứ hai). Mỗi đồ thị có duy nhất một ma trận kề, các đồ thị khác nhau có các ma trận kề khác nhau. Trong trường hợp đặc biệt của đồ thị đơn hữu hạn, ma trận kề là một ma trận (0,1) với các giá trị 0 nằm trên đường chéo chính. Nếu đồ thị là vô hướng, ma trận kề là ma trận đối xứng.

Đối với đồ thị thưa, nghĩa là đồ thị có ít cạnh, người ta thường chọn dùng danh sách kề hơn do nó chiếm ít bộ nhớ hơn. Ma trận liên thuộc là một biểu diễn ma trận khác cho đồ thị.

Quan hệ giữa một đồ thị và ma trận kề của nó được nghiên cứu trong lý thuyết phổ đồ thị (spectral graph theory).

Khái niệm

Xét đồ thị G=(X, U) (có hướng hay vô hướng) Giả sử tập X gồm n đỉnh và được sắp thứ tự X={x\text{1}, x\text{2},..., x\text{n}}, tập U gồm n cạnh và được sắp thứ tự U={u\text{1}, u\text{2},..., u\text{n}}

Quy tắc

Ma trận kề của đồ thị G, ký hiệu B(G), là một ma trận nhị phân cấp n x n được định nghĩa như sau: B=(B\text{ij}) với: *B=(B\text{ij} = 1 nếu có cạnh nối x\text{i} tới x\text{j} *B=(B\text{ij} = 0 nếu không có cạnh nối x\text{i} tới x_\text{j}

Nếu G là đồ thị vô hướng, ma trận liên thuộc của đồ thị G, ký hiệu A(G), là ma trận nhị phân cấp nxm được định nghĩa như sau: A=(A_\text{ij})

  • A=(A\text{ij}) = 1 nếu có cạnh nối x\text{i} tới x_\text{j}
  • A=(A\text{ij}) = 0 nếu không có cạnh nối x\text{i} tới x_\text{j}

Biểu diễn

Đồ thị vô hướng

Cho đồ thị G vô hướng (7 đỉnh): Đồ thị G

  • Gọi A là ma trận kề biểu diễn đồ thị G.
  • Từ đồ thị G, ta thấy: 1 và 2 có cạnh nối => A\text{12} = A\text{21} = 1 1 và 4 có cạnh nối => A\text{14} = A\text{41} = 1 1 và 6 có cạnh nối => A\text{16} = A\text{61} = 1 2 và 3 có cạnh nối => A\text{23} = A\text{32} = 1 2 và 6 có cạnh nối => A\text{26} = A\text{62} = 1 3 và 4 có cạnh nối => A\text{34} = A\text{43} = 1 3 và 5 có cạnh nối => A\text{35} = A\text{53} = 1 3 và 7 có cạnh nối => A\text{37} = A\text{73} = 1 4 và 6 có cạnh nối => A\text{46} = A\text{64} = 1 4 và 5 có cạnh nối => A\text{45} = A\text{54} = 1 5 và 6 có cạnh nối => A\text{56} = A\text{65} = 1 6 và 7 có cạnh nối => A\text{67} = A\text{76} = 1 * Còn lại các cặp đỉnh không có cạnh nối với nhau => A\text{ij} = A\text{ji} = 0 '''Kết quả sau khi biểu diễn đồ thị G sang ma trận kề: Đồ thị G
  • Trong đó dòng và cột màu vàng là danh sách các đỉnh của đồ thị vô hướng G.

Biểu diễn đồ thị có hướng

Cho đồ thị G có hướng (4 đỉnh): Đồ thị G

  • Gọi A là ma trận kề biểu diễn đồ thị G.
  • Từ đồ thị G, ta thấy: 1 và 2 có 1 cạnh nối và 1 đi vào 2 => A_\text{12} = 1 2 và 3 có 1 cạnh nối và 2 đi vào 3 => A\text{23} = 1 ** 3 và 1 có 2 cạnh nối và 3 đi vào 1 => A\text{31} = 2 4 và 1 có 1 cạnh nối và 4 đi vào 1 => A_\text{41} = 1 Còn lại các cặp đỉnh không có cạnh nối thì A_\text{ij} = 0 *'''Kết quả sau khi biểu diễn đồ thị G sang ma trận kề: giữa|nhỏ|340x340px

Tính chất

*Rõ ràng ma trận kề của đồ thị vô hướng là ma trận đối xứng, tức là:

:a[i,j]=a[j,i], i,j=1,2,...,n.

Ngược lại, mỗi (0,1)-ma trận đối xứng cấp n sẽ tương ứng, chính xác đến cách đánh số đỉnh (còn nói là: chính xác đến đẳng cấu), với một đơn đồ thị vô hướng n đỉnh.

Ma trận kề của đồ thị có hướng không phải là ma trận đối xứng. Đối với đồ thị vô hướng, tổng các phần từ trên dòng i (cột j) của ma trận kề chính bằng bậc của đỉnh i (đỉnh j). *Đối với đồ thị có hướng, tổng các phần tử trên dòng i (cột i) sẽ là bán bậc ra (bán bậc vào) của đỉnh i của đồ thị.

Nhận xét

  • Ở cách biểu diễn ma trận này, ma trận sẽ không biểu diễn được: * Đồ thị có cạnh song song Ưu điểm lớn nhất của phương pháp biểu diễn đồ thị bằng ma trận kề là để trả lời câu hỏi: Hai đỉnh u,v có kề nhau trên đồ thị hay không, chúng ta chỉ phải thực hiện một phép so sánh. *Nhược điểm lớn nhất của phương pháp này là: không phụ thuộc vào số cạnh của đồ thị, ta luôn phải sử dụng n^2 đơn vị bộ nhớ để lưu trữ ma trận kề của nó.

Các tính chất

Ma trận kề của một đồ thị vô hướng có tính đối xứng, và do đó có một tập đầy đủ các giá trị riêng (eigenvalue) và cơ sở vectơ riêng (eigenvector) trực giao. Tập các giá trị riêng của đồ thị là phổ của đồ thị.

Giả sử cho trước hai đồ thị có hướng hoặc vô hướng G1G2 với các ma trận kề A1A2. G1G2 đẳng cấu (isomorphic) khi và chỉ khi tồn tại một ma trận hoán vị (permutation matrix) P sao cho

:PA1P −1 = A2.

Cụ thể là A1A2 là các ma trận đồng dạng và do đó có cùng đa thức cực tiểu (minimal polynomial), đa thức đặc trưng (characteristic polynomial), các giá trị riêng, định thức (determinant) và vết của ma trận (trace). Do đó chúng có thể được dùng như các bất biến đẳng cấu của đồ thị. Cho trước hai ma trận kề, có thể xây dựng lại ma trận hoán vị đã được sử dụng: xem chi tiết tại Ma trận hoán vị.

Tuy nhiên, cần lưu ý rằng điều ngược lại không đúng: hai đồ thị có thể có bộ giá trị riêng giống nhau nhưng chúng không đẳng cấu. Phép nhân với ma trận hoán vị có thể được coi là việc gắn nhãn mới cho các cạnh.

Nếu A là ma trận kề của đồ thị có hướng hoặc vô hướng G, thì ma trận An (ma trận tích của n lần A) có một ý nghĩa thú vị: ô tại hàng i và cột j cho biết số đường đi (có hướng hoặc vô hướng) có độ dài n từ đỉnh i tới đỉnh j.

Ma trận IA (trong đó I ký hiệu ma trận đơn vị n×n) là nghịch đảo được khi và chỉ khi đồ thị G không có chu trình có hướng. Khi đó, ma trận nghịch đảo (IA)−1 có ý nghĩa sau: ô tại hàng i và cột j cho biết số đường đi có hướng từ đỉnh i tới đỉnh j (giá trị này luôn hữu hạn nếu đồ thị không có chu trình có hướng). Điều này có thể được giải thích bằng cấp số nhân (geometric series) của các ma trận:

:(IA)−1 = I + A + A2 + A3 +...

tương ứng với thực tế rằng số đường đi từ i tới j bằng số đường đi độ dài 0 cộng với số đường đi độ dài 1 cộng với số đường đi độ dài 2 v.v... Đường chéo chính của mọi ma trận kề tương ứng của đồ thị không có khuyên gồm toàn các ô chứa giá trị 0.

Ma trận kề của đồ thị phân đôi

Một ma trận kề A của một đồ thị phân đôi gồm rs đỉnh có dạng:

:A = \begin{pmatrix} O & B \ B^T & O \end{pmatrix}

Trong đó B là một ma trận r × sO là một ma trận toàn-số-0. Rõ ràng là ma trận B là đại diện duy nhất cho đồ thị phân đôi. Ta có G = (U, V, E) là một đồ thị phân đôi với các phần U={u_1,..., u_r}V={v_1,..., v_s}. Ma trận phân đôi là ma trận B r × s 0-1 trong đó b_{i,j} = 1 khi và chỉ khi (u_i, v_j) \in E.

Nếu G là một đa đồ thị phân đôi hoặc đồ thị trọng số phân đôi thì các thành phần b_{i,j} chứa giá trị tương ứng là bậc của các đỉnh hoặc trọng số của cạnh (u_i, v_j),

Các biến thể

Ma trận kề (0,−1,1) của một đồ thị đơn có aii = 0 và aij = −1 nếu ij là một cạnh và bằng 1 nếu không phải là cạnh. Đồ thị này được dùng trong nghiên cứu các đồ thị chính quy mạnh (strongly regular graph) và các two-graph (đồ thị đôi???).

Các thỏa hiệp trong vai trò cấu trúc dữ liệu

Khi được sử dụng với vai trò cấu trúc dữ liệu, đối thủ chính của ma trận kề là danh sách kề. Do mỗi ô trong ma trận kề chỉ đòi hỏi một bit, nên chúng có thể được biểu diễn bằng một cách rất gọn, chỉ chiếm n2/8 byte bộ nhớ liên tục, trong đó n là số đỉnh. Ngoài việc tiết kiệm bộ nhớ, lưu trữ gọn gàng này còn khuyến khích locality of reference (tính địa phương của các truy nhập đến bộ nhớ).

Mặt khác, khi dùng cho đồ thị thưa, danh sách kề lại thắng thế, do chúng không lưu trữ các cạnh không tồn tại. Sử dụng cài đặt danh sách liên kết đơn giản trên một máy tính 32-bit, một danh sách kề cho một đồ thị vô hướng cần khoảng 16e byte, trong đó e là số cạnh của đồ thị.

Lưu ý rằng một đồ thị có thể có nhiều nhất n2 cạnh (kể cả các khuyên). Giả sử d = e/n2 ký hiệu mật độ của đồ thị. Ta có: 16e > n2/8, có nghĩa là danh sách kề chiếm nhiều không gian hơn khi d > 1/128. Do đó, chỉ nên dùng danh sách kề với đồ thị thưa.

Bên cạnh thỏa hiệp về không gian bộ nhớ, các cấu trúc dữ liệu khác nhau còn tạo thuận lợi cho các thao tác dữ liệu khác nhau. Với một danh sách kề, ta dễ dàng tìm mọi đỉnh kề với một đỉnh cho trước; ta chỉ cần đọc danh sách kề của đỉnh đó. Với một ma trận kề, ta phải duyệt toàn bộ một hàng, việc đó cần thời gian O(n). Còn nếu ta lại muốn biết giữa hai đỉnh cho trước có cạnh nối hay không, điều này có thể được xác định ngay lập tức với một ma trận kề, trong khi đó với một danh sách kề, việc này đòi hỏi thời gian tỷ lệ thuận với bậc nhỏ nhất của các đỉnh trong đồ thị.

👁️ 0 | 🔗 | 💖 | ✨ | 🌍 | ⌚
Trong Toán học và Khoa học máy tính, **ma trận kề** (tiếng Anh: _adjacency matrix_) cho một đồ thị hữu hạn _G_ gồm _n_ đỉnh là một ma trận _n_ × _n_, trong đó, các
phải|Mỗi phần tử của một ma trận thường được ký hiệu bằng một biến với hai chỉ số ở dưới. Ví dụ, a2,1 biểu diễn phần tử ở hàng thứ hai và cột thứ nhất
Trong lý thuyết đồ thị, **ma trận Laplace**, hay còn gọi là ma trận Kirchhoff, hoặc ma trận dẫn nạp, là một cách biểu diễn đồ thị bằng ma trận. Theo định lý Kirchhoff, nó
Trong đại số tuyến tính, **ma trận lũy đẳng** là ma trận mà khi nhân với chính nó, sẽ cho ra chính nó. Có nghĩa là, ma trận A là lũy đẳng khi và chỉ
right|thumb|Một ma trận thưa thớt thu được khi giải một [[phương pháp phần tử hữu hạn trong 2 chiều. Các phần tử không có giá trị bằng 0 được hiển thị bằng màu đen.]] Trong
Trong lý thuyết đồ thị, ta có thể biểu diễn 1 đồ thị G=(V,E) [có hướng hay vô hướng] thành một **ma trận liên thuộc** (_incidence matrix_). ## Định nghĩa ### Có hướng —Nếu G
***Ma trận trọng số** được dùng để biểu diễn đồ thị. *Xét đồ thị G=(X, U) (có hướng hay vô hướng) *Giả sử tập X gồm n đỉnh và được sắp thứ tự X={x_\text{1}, x_\text{2},...,
nhỏ|Một ví dụ về phép cộng ma trận Trong toán học, **phép cộng ma trận** là phép toán cộng hai ma trận bằng cách cộng các phần tư tương ứng với nhau. Tuy nhiên, có
**Trận Yarmouk** (, còn được viết là _Yarmuk_, _Yarmuq_, hay trong tiếng Hy Lạp là _Hieromyax_, Ἱερομύαξ, hoặc _Iermouchas_, Ιερμουχάς) là một trận đánh lớn giữa quân đội Hồi giáo Rashidun với quân đội của
**_Ma trận: Hồi sinh_** (tựa gốc tiếng Anh: **The Matrix Resurrections**) là phim điện ảnh Mỹ thuộc thể loại hành động khoa học viễn tưởng, do Lana Wachowski làm biên kịch, đạo diễn và sản
**Trận Watling Street** là tên thường gọi của trận đánh quyết định chấm dứt cuộc khởi nghĩa Boudica của người bản địa Anh chống nền đô hộ La Mã, xảy ra khoảng năm 60 hoặc
**_Ma trận: tái lập_** (tựa tiếng Anh:**_The Matrix Reloaded_**) là một bộ phim khoa học viễn tưởng, hành động của Mỹ ra mắt năm 2003 do chị em Wachowski viết kịch bản, và sản xuất
**Trận Arausio** bùng nổ vào ngày 6 tháng 10 năm 105 trước Công nguyên, tại địa điểm giữa thị trấn Arausio (Orange, Vaucluse ngày nay) và sông Rhône. Hai đạo quân La Mã dưới quyền
**_Ma trận_** (tựa tiếng Anh: **_The Matrix_**) là một bộ phim khoa học viễn tưởng, hành động của Mỹ được sản xuất năm 1999 do Lana Wachowski và Lilly Wachowski đạo diễn, hãng phim Warner
nhỏ|Để nhân ma trận, số lượng cột trong ma trận thứ nhất phải bằng số lượng hàng trong ma trận thứ hai. Ma trận kết quả có số lượng hàng của số thứ nhất và
**_The Matrix Revolutions_** (tên tiếng Việt: _Ma Trận: Những cuộc Cách Mạng_) là bộ phim khoa học giả tưởng, hành động của điện ảnh Hoa Kỳ năm 2003. Được viết kịch bản và đạo diễn
**Cấu trúc ma trận** được sử dụng song song với các phương pháp tổ chức khác như Cấu trúc theo khu vực, Cấu trúc theo chức năng... Đây cũng là một cách cấu trúc tổ
**Trận Đồng Quan** hay **Chiến dịch Đồng Quan** (chữ Hán: 潼關之戰 _Đồng Quan chi chiến_) là trận đánh chiến lược diễn ra giữa quân đội triều đình trung ương nhà Đông Hán do thừa tướng
**Nhà Trần** (chữ Nôm: 茹陳, chữ Hán: 陳朝, Hán Việt: _Trần triều_) là một triều đại quân chủ cai trị nước Đại Việt từ năm 1226 đến năm 1400. Đây là triều đại được lưu
**Trận Waterloo** (phiên âm tiếng Việt: **Oa-téc-lô**) là trận chiến diễn ra vào ngày Chủ nhật 18 tháng 6 năm 1815, gần Waterloo, thuộc Bỉ. Quân Pháp dưới sự chỉ huy của Hoàng đế Napoleon
Sự thay đổi về cương thổ của Cộng hòa La Mã, Đế quốc La Mã và Đế quốc Đông La Mã qua từng giai đoạn phát triển. Hình động, click vào để xem sự thay
**Legion Romana** tức **Quân đoàn La Mã**, **Binh đoàn La Mã** là một đơn vị tổ chức của Quân đội La Mã trong giai đoạn từ Cộng hòa La Mã tới Đế quốc La Mã.
**Trận rừng Teutoburg** (tiếng Đức: _Schlacht im Wald Teutoburger_, _Hermannsschlacht_ hoặc _Varusschlacht_), còn gọi là **Trận Kalkriese**, được nhân dân Đức về sau coi là vị anh hùng dân tộc vĩ đại của mình. Thất
Bộ binh Auxilia đang vượt sông, có lẽ là [[sông Donau|sông Danube, bằng cầu phao trong Cuộc chiến Chinh phục Dacia của Hoàng đế Trajan (101 - 106 CN). Có thể nhận ra họ từ
**Trận Sơn Tây (1883)**, là trận đánh mà quân đội viễn chinh Pháp tấn công vào thành cổ Sơn Tây, diễn ra từ ngày 13 tháng 12 năm 1883, kết thúc vào tối ngày 16
**Trần Thúc Bảo** (, 553–604, trị vì 582–589), thường được biết đến trong sử sách là **Trần Hậu Chúa** (陳後主), thụy hiệu **Trường Thành Dương công** (長城煬公), tên tự **Nguyên Tú** (元秀), tiểu tự **Hoàng
:''Về các trận chiến khác đã diễn ra tại Moskva, xem bài định hướng Trận Moskva **Trận Borodino** (, _Borodinskoe srazhenie_; phiên âm: **Bô-rô-đi-nô**); hoặc còn gọi là **Trận Sông Moskva** () giữa quân đội
**Quân sự nhà Trần** phản ánh việc tổ chức quân đội của vuơng triều Trần trong lịch sử Việt Nam. Hoạt động quân sự nhà Trần diễn ra ở cả trong nước lẫn bên ngoài
**Trận Tam giác sắt** diễn ra từ ngày 16 tháng 5 đến ngày 20 tháng 11 năm 1974, khi Sư đoàn 9 của Quân Giải phóng miền Nam Việt Nam đánh chiếm Rạch Bắp và
**Mặt trận Balkan** (28 tháng 7 năm 1914 - 29 tháng 9 năm 1918) hay **Chiến trường Balkan** là một trong những mặt trận của Chiến tranh thế giới thứ nhất, diễn ra trên bán
**Trần Tuyên Đế** (chữ Hán: 陳宣帝, 530–582), tên húy là **Trần Húc** (), hay **Trần Đàm Húc** (陳曇頊), tên tự **Thiệu Thế** (紹世), tiểu tự **Sư Lợi** (師利), là một hoàng đế của triều Trần
**Karl V** (tiếng Tây Ban Nha: _Carlos_; tiếng Đức: _Karl_; tiếng Hà Lan: _Karel_; tiếng Ý: _Carlo_) (24 tháng 2 năm 1500 – 21 tháng 9 năm 1558) là người đã cai trị cả Đế
**Trần Anh Tông** (chữ Hán: 陳英宗; 25 tháng 10 năm 1276 – 21 tháng 4 năm 1320) tên khai sinh là **Trần Thuyên** (陳烇), là vị hoàng đế thứ tư của nhà Trần nước Đại
**Trận Mons Badonicus** (tiếng Anh: **_Mount Badon_**, Tiếng Wales: **_Mynydd Baddon_**) là một trận đánh giữa đội quân của người Briton và quân xâm lược Angles và Sachsen, không thể là diễn ra giữa các
**Trận Dyrrhachium** (ngày nay gần Durrës ở Albania) là một trận đánh diễn ra vào ngày 18 tháng 10 năm 1081, giữa quân đội Đông La Mã do Hoàng đế Alexios I Komnenos chỉ huy
**Trận Alcácer Quibir** (hay còn được gọi là **Trận Ba Vua** (معركة الملوك الثلاثة) hay **Trận chiến của Oued al-Makhazin** (معركة وادي المخازن) ở Morocco) đã xảy ra ở miền bắc Maroc, gần thị trấn
nhỏ|Máy mật mã loại B của Nhật Bản (tên mã là Purple) do Cục Tình báo Tín hiệu Quân đội Hoa Kỳ chế tạo lại nhỏ|Máy mật mã Tím đang được sử dụng Trong lịch
**Trần Lệ Xuân** (22 tháng 8 năm 1924 – 24 tháng 4 năm 2011), còn được gọi tắt theo tên chồng là **bà Nhu** (), là một gương mặt then chốt trong chính quyền Ngô
_Đối với trận đầu tiên diễn ra ở đây, xem Trận Sedan (1870)._ **Trận Sedan**, còn gọi là **Trận Sedan lần thứ hai**, là trận đánh mở màn Trận chiến nước Pháp trong Chiến tranh
**Trận chiến Levounion** là chiến thắng quyết định đầu tiên của Đông La Mã trong cuộc phục hưng Komnenus. Ngày 29 tháng 4 năm 1091, một lực lượng xâm lược khổng lồ người Pechenegs đã
Giới thiệu sản phẩm Nhiệt kế hồng ngoại đo trán OMRON MC_720. . BẢO HÀNH 2 NĂM TẠI TP.HCM - HÀ NỘI - LÂM ĐỒNG . . Nhiệt kế đo trán Omron MC-720 cho kết
Giới thiệu sản phẩm Nhiệt kế hồng ngoại đo trán OMRON MC_720. . . . Nhiệt kế đo trán Omron MC-720 cho kết quả đo tức thì sau 1 giây,.chế độ đo 3 trong 1,
[[Trận Trebia, hồ Trasimene và Cannae]] **Trận Cannae** là một trận đánh thuộc Chiến tranh Punic lần 2 diễn ra vào ngày 2 tháng 8 năm 216 TCN trên chiến trường gần ngôi làng Cannae
**Trần Phế Đế** (chữ Hán: 陳廢帝; 554?- 570), tên húy **Trần Bá Tông** (陳伯宗), tên tự **Phụng Nghiệp** (奉業), tiểu tự **Dược Vương** (藥王), là một hoàng đế của triều đại Trần trong lịch sử
**Trận Agrigentum** (Sicilia, năm 261 TCN) là trận giao tranh lớn đầu tiên trong chiến tranh Punic lần thứ nhất và là cuộc xung đột quy mô lớn đầu tiên giữa Carthage và Cộng hòa
Trong viễn thông (_telecommunication_), **mã Hamming** là một mã sửa lỗi tuyến tính (_linear error-correcting code_), được đặt tên theo tên của người phát minh ra nó, [./Https://en.wikipedia.org/wiki/Richard_Hamming Richard Hamming]. Mã Hamming có thể phát
**_Kẻ hủy diệt: Thời đại Genisys_** (tựa gốc tiếng Anh: **_Terminator Genisys_**) là phim điện ảnh hành động khoa học viễn tưởng của Mỹ năm 2015 do Alan Taylor đạo diễn và Laeta Kalogridis cùng
**Trận Pollentia** diễn ra vào ngày 6 tháng 4 năm 402 giữa quân La Mã do tướng Stilicho chỉ huy và người Visigoth dưới sự lãnh đạo của Alaric I, trong cuộc xâm lược nước
**Mã khẩn cấp bệnh viện** là những thông tin mã hóa thường được thông báo qua hệ thống truyền thông tin của bệnh viện để cảnh báo cho các nhân viên y tế về các
Trong lý thuyết đồ thị, **danh sách kề** (tiếng Anh: _adjacency list_) là danh sách biểu diễn tất cả các cạnh hoặc cung trong một đồ thị. Nếu đồ thị vô hướng, mỗi phần tử