MathLabs

Tổ hợp và Toán rời rạc

Đồ thị, bậc, đường đi

Đồ thị như mạng lưới đỉnh và cạnh: bậc, đường đi và chu trình Euler, ghép cặp trên đồ thị hai phía, tô màu và tính phẳng — từ bài toán bảy cây cầu Königsberg tới các câu hỏi mở trong lý thuyết Ramsey.

Trực giácĐồ thị là gì?

Đồ thị đơn giản là các điểm (đỉnh) nối với nhau bằng các đoạn (cạnh): một bản đồ ai nối với ai. Mạng lưới bạn bè, bản đồ đường xá, liên kết giữa các nguyên tử trong phân tử, các trang web nối nhau bằng liên kết — tất cả đều là đồ thị. Điều quan trọng không phải là vị trí các điểm trên trang giấy, mà là cặp điểm nào được nối với nhau.

Đồ thị có bốn đỉnh ứng với hai bờ sông và hai hòn đảo của Königsberg, nối bằng bảy cạnh ứng với bảy cây cầu; một đỉnh có năm cạnh, ba đỉnh còn lại mỗi đỉnh có ba cạnh.
Bốn vùng đất của Königsberg (hai bờ sông và hai hòn đảo) cùng bảy cây cầu nối chúng, vẽ dưới dạng đồ thị: mỗi vùng đất là một đỉnh, mỗi cây cầu là một cạnh.

Phổ thôngĐỉnh, cạnh và bậc

Định nghĩa: Đồ thị, bậc

Đồ thị G=(V,E)G = (V, E) gồm một tập đỉnh VV và một tập cạnh EE, mỗi cạnh nối hai đỉnh. Bậc deg⁡(v)\deg(v) của đỉnh vv là số cạnh chạm vào nó.

∑v∈Vdeg⁡(v)=2∣E∣\sum_{v \in V} \deg(v) = 2|E|

Trong mọi đồ thị hữu hạn, tổng bậc của tất cả các đỉnh bằng hai lần số cạnh: ∑v∈Vdeg⁡(v)=2∣E∣\sum_{v \in V} \deg(v) = 2|E|. Nói riêng, số đỉnh có bậc lẻ luôn là một số chẵn.

Vì sao đúng?

Khi cộng các bậc, mỗi cạnh được đếm đúng hai lần: một lần từ mỗi đầu mút. Vì vậy tổng là số chẵn; các đỉnh bậc chẵn đã đóng góp một lượng chẵn vào tổng, nên số đỉnh bậc lẻ phải là số chẵn.

Chứng minh

Xét một đồ thị hữu hạn bất kỳ G=(V,E)G = (V, E). Xây dựng tập mọi cặp liên thuộc đỉnh-cạnh (v,e)(v, e) với đỉnh vv là đầu mút của cạnh ee, rồi đếm tập này theo hai cách. Đếm theo đỉnh: mỗi đỉnh vv đóng góp đúng deg⁡(v)\deg(v) cặp liên thuộc (một cặp cho mỗi cạnh chạm vào nó), nên tổng số là ∑v∈Vdeg⁡(v)\sum_{v \in V} \deg(v). Đếm theo cạnh: mỗi cạnh e={u,w}e = \{u, w\} có đúng 22 đầu mút, uu và ww, nên nó đóng góp đúng 22 cặp liên thuộc, và cộng trên toàn bộ ∣E∣|E| cạnh cho 2∣E∣2|E|.

Vì cả hai cách đếm đều đếm cùng một tập cặp, chúng phải bằng nhau: ∑v∈Vdeg⁡(v)=2∣E∣\sum_{v \in V} \deg(v) = 2|E|. Với khẳng định thứ hai, tách tổng thành các đỉnh bậc chẵn và bậc lẻ: ∑v evendeg⁡(v)\sum_{v \text{ even}} \deg(v) là tổng các số chẵn, nên là số chẵn, do đó ∑v odddeg⁡(v)\sum_{v \text{ odd}} \deg(v) cũng phải là số chẵn (vì tổng toàn phần 2∣E∣2|E| là số chẵn). Một tổng các số lẻ chỉ chẵn khi có một số chẵn số hạng, nên số đỉnh bậc lẻ OO là số chẵn.

Ví dụ: Đếm bậc trong K4K_4

Trong đồ thị đầy đủ K4K_4 (bốn đỉnh, mọi cặp đều nối với nhau), ∑vdeg⁡(v)\sum_v \deg(v) bằng bao nhiêu, và K4K_4 có bao nhiêu cạnh?

Lời giải

Mỗi đỉnh trong 4 đỉnh nối với 3 đỉnh còn lại, nên mọi bậc đều bằng 3 và ∑vdeg⁡(v)=4×3=12\sum_v \deg(v) = 4 \times 3 = 12. Theo bổ đề bắt tay, ∣E∣=12/2=6|E| = 12 / 2 = 6.

Ví dụ: Lập lộ trình xe dọn tuyết và giao hàng (Bài toán người đưa thư Trung Hoa)

Một xe dọn tuyết đô thị phải dọn sạch mọi con phố trong một khu vực liên thông gồm ∣V∣=6|V| = 6 giao lộ có bậc lần lượt là 4,4,4,4,2,24, 4, 4, 4, 2, 2, xuất phát và kết thúc tại trạm xe. (1) Khu vực này có bao nhiêu đoạn phố, và xe dọn tuyết có thể đi qua mỗi đoạn phố đúng một lần mà không phải chạy lặp (đi lại đoạn phố đã dọn) hay không? (2) Nếu xây thêm một con đường mới nối hai giao lộ uu và ww vốn có bậc 22, làm bậc của chúng đổi thành 33, thì còn tồn tại lộ trình khép kín không chạy lặp nữa không?

Lời giải

(1) Theo bổ đề bắt tay, ∑v∈Vdeg⁡(v)=4+4+4+4+2+2=20\sum_{v \in V} \deg(v) = 4+4+4+4+2+2 = 20, nên khu vực có ∣E∣=20/2=10|E| = 20 / 2 = 10 đoạn phố. Vì đồ thị liên thông và cả sáu giao lộ đều có bậc chẵn (00 đỉnh bậc lẻ), định lý chu trình Euler bảo đảm tồn tại một chu trình Euler: xe dọn tuyết có thể dọn mọi đoạn phố đúng một lần rồi quay về trạm mà không lãng phí quãng đường nào.

(2) Thêm cạnh nối uu và ww làm bậc của chúng tăng từ 22 lên 33, tạo ra 22 đỉnh bậc lẻ. Theo định lý Euler, không còn chu trình Euler khép kín nữa — chỉ còn một vết Euler hở bắt đầu tại uu và kết thúc tại ww. Để quay về trạm, xe buộc phải đi lặp lại một đường đi ngắn nhất giữa uu và ww (tương đương nhân đôi các cạnh đó để mọi bậc lại thành chẵn). Trong vận trù học, việc cực tiểu hóa tổng quãng đường chạy lặp bằng cách ghép cặp các đỉnh bậc lẻ qua phép ghép cặp hoàn hảo trọng số nhỏ nhất chính là Bài toán người đưa thư Trung Hoa (Quản Mai Cốc / Mei-Ko Kwan, 1962), được ứng dụng hằng ngày trong thu gom rác, quét đường và kiểm tra đường dây điện.

Đại họcĐường đi, vết và chu trình Euler

Định nghĩa: Chu trình Euler

Đường đi là một dãy đỉnh trong đó hai đỉnh liên tiếp được nối bằng một cạnh. Vết là đường đi không lặp lại cạnh nào. Chu trình Euler là một vết khép kín (bắt đầu và kết thúc cùng một đỉnh) đi qua mọi cạnh của đồ thị đúng một lần.

Một đồ thị liên thông có ít nhất một cạnh có chu trình Euler khi và chỉ khi mọi đỉnh đều có bậc chẵn. Tổng quát hơn, đồ thị có vết Euler hở giữa hai đỉnh phân biệt u,vu, v khi và chỉ khi uu và vv chính là hai đỉnh có bậc lẻ duy nhất.

Vì sao đúng?

Đi theo một vết bất kỳ; mỗi lần đi qua một đỉnh (không phải điểm đầu/cuối) ta dùng hết hai cạnh của nó, nên một đỉnh có thể bị 'kẹt lại' (trừ hai đầu mút) phải có bậc chẵn — đây là chiều dễ. Chiều ngược lại (bậc chẵn là đủ) được chứng minh bằng quy nạp: tách ra các chu trình con khép kín rồi ghép chúng lại (cách dựng của Hierholzer, 1873).

Chứng minh

(Chiều cần thiết.) Giả sử một đồ thị liên thông GG có chu trình Euler CC, tức một vết khép kín dùng mọi cạnh đúng một lần. Mỗi lần CC đi qua một đỉnh vv khác đỉnh đầu/cuối, nó đi vào theo một cạnh rồi đi ra theo một cạnh khác chưa dùng, tiêu thụ đúng 22 cạnh kề của vv; vì CC dùng mọi cạnh của vv đúng một lần khi kết thúc, deg⁡(v)\deg(v) phải là số chẵn với mọi đỉnh, kể cả đỉnh đầu/cuối, nơi cạnh khởi hành đầu tiên ghép cặp với cạnh đến cuối cùng.

(Chiều đủ.) Giả sử ngược lại mọi đỉnh của đồ thị liên thông GG đều có bậc chẵn. Bắt đầu tại một đỉnh bất kỳ và đi tham lam theo các cạnh chưa dùng; vì mọi đỉnh có bậc chẵn, mỗi khi đường đi vào một đỉnh khác đỉnh xuất phát, nó luôn có thể đi ra tiếp (một số chẵn cạnh kề không bao giờ có thể giảm còn đúng 11 cạnh chưa dùng), nên đường đi chỉ có thể bị kẹt khi quay lại đỉnh xuất phát, tạo ra một vết khép kín CC. Nếu CC đã dùng mọi cạnh, ta xong. Nếu không, vì GG liên thông, có một đỉnh vv trên CC có cạnh kề chưa dùng; các cạnh chưa dùng cũng có bậc chẵn tại mọi đỉnh (bỏ vết khép kín bậc chẵn CC vẫn giữ nguyên tính chẵn lẻ), nên theo lập luận tương tự chúng tạo thành một vết khép kín khác C′C' qua vv. Ghép C′C' vào CC tại vv tạo ra một vết khép kín dài hơn; lặp lại quá trình ghép này (cách dựng của Hierholzer, 1873) cho tới khi không còn cạnh chưa dùng sẽ cho ra một chu trình Euler.

Đồ thị Königsberg bốn đỉnh như trên, có đánh dấu bậc: một đỉnh bậc năm và ba đỉnh bậc ba, cả bốn bậc đều lẻ.
Đồ thị Königsberg, lần này làm nổi bật bậc: bốn đỉnh có bậc 5, 3, 3, 3 — đều lẻ. Theo định lý Euler, không thể có chu trình Euler, thậm chí không có cả vết Euler hở, vì có bốn đỉnh bậc lẻ chứ không phải hai.

Đây chính là lập luận nguyên gốc của Euler, và câu đố này hiện được lưu trong thư viện dưới tên bài toán lớn Bảy cây cầu Königsberg.

Đồ thị đầy đủ năm đỉnh K5, vẽ đủ 10 cạnh, mỗi đỉnh trong năm đỉnh được đánh dấu bậc bốn.
Đồ thị đầy đủ K5K_5: mọi đỉnh đều có bậc 4 (chẵn), nên theo định lý Euler nó có chu trình Euler — một vết khép kín đi qua cả 10 cạnh đúng một lần.

Nâng caoĐồ thị hai phía và định lý hôn phối Hall

Định nghĩa: Đồ thị hai phía

Một đồ thị là hai phía (song phần) nếu tập đỉnh của nó chia thành hai tập X,YX, Y sao cho mọi cạnh nối một đỉnh của XX với một đỉnh của YY (không có cạnh nào bên trong XX hoặc bên trong YY). Đồ thị hai phía mô hình hóa các bài toán ghép cặp: việc làm với người lao động, học sinh với trường học.

Đồ thị hai phía đầy đủ K3,3 với hai nhóm ba đỉnh, đủ chín cạnh chéo, hai nhóm được tô hai màu khác nhau.
Đồ thị hai phía đầy đủ K3,3K_{3,3}: ba đỉnh mỗi phía, mọi đỉnh phía này nối với mọi đỉnh phía kia. Một cách tô màu đúng bằng 2 màu (mỗi phía một màu) cho thấy đây là đồ thị hai phía.

Cho GG là đồ thị hai phía với hai phần XX và YY. Tồn tại một phép ghép cặp phủ hết mọi đỉnh của XX khi và chỉ khi với mọi tập con S⊆XS \subseteq X, tập lân cận N(S)N(S) thỏa ∣N(S)∣≥∣S∣|N(S)| \ge |S| (điều kiện Hall).

Vì sao đúng?

Nếu có tập SS với ∣N(S)∣<∣S∣|N(S)| < |S|, các đỉnh của SS không có đủ đỉnh lân cận để ghép cặp một-một, nên điều kiện là cần thiết rõ ràng. Điều kiện này cũng đủ, được chứng minh bằng cách tìm đường tăng cường mỗi khi phép ghép cặp chưa hoàn chỉnh (lập luận đường tăng cường König–Egerváry).

Chứng minh

(Chiều cần thiết.) Nếu có S⊆XS \subseteq X với ∣N(S)∣<∣S∣|N(S)| < |S|, thì các đỉnh của SS có ít hơn ∣S∣|S| đối tác khả dĩ trong toàn bộ YY cộng lại, nên không phép ghép cặp nào có thể đưa SS vào YY một cách đơn ánh — do đó không thể tồn tại phép ghép cặp phủ hết XX. Vậy điều kiện Hall ∣N(S)∣≥∣S∣|N(S)| \ge |S| rõ ràng là cần thiết.

(Chiều đủ.) Giả sử điều kiện Hall đúng nhưng có một phép ghép cặp MM để lại một đỉnh x0∈Xx_0 \in X chưa ghép. Xây cây luân phiên từ x0x_0: đi theo các cạnh không thuộc ghép cặp ra khỏi đỉnh XX rồi các cạnh thuộc ghép cặp quay lại từ đỉnh YY, khám phá mọi đỉnh có thể đến được bằng cách này. Nếu cây này đến được một đỉnh YY là yy chưa được MM phủ, đường đi từ x0x_0 đến yy luân phiên cạnh không-thuộc/thuộc ghép cặp và có độ dài lẻ, nên hoán đổi các cạnh đã ghép và chưa ghép dọc theo nó (lấy hiệu đối xứng M△PM \triangle P) làm tăng chặt số cặp ghép lên một, mâu thuẫn với việc MM đã lớn nhất có thể theo nhánh này — lặp lại cho tới khi không còn x0x_0 chưa ghép, hoặc điều kiện Hall bị vi phạm trên tập SS các đỉnh XX đã đến được, vì khi đó mọi đỉnh YY đến được đều được ghép ngược vào SS, buộc ∣N(S)∣≤∣S∣−1|N(S)| \le |S| - 1. Vì điều kiện Hall đúng theo giả thiết, mâu thuẫn này không thể xảy ra, nên mọi đỉnh của XX cuối cùng đều phải được ghép cặp — đây chính là lập luận đường tăng cường König–Egerváry.

Đồ thị Petersen vẽ dưới dạng một ngũ giác ngoài và một ngôi sao năm cánh bên trong nối với nhau bằng năm 'nan hoa', 10 đỉnh mỗi đỉnh bậc ba, tô bằng ba màu sao cho không cạnh nào nối hai đỉnh cùng màu.
Đồ thị Petersen: 10 đỉnh, mỗi đỉnh bậc 3, nổi tiếng vì cần đến 3 màu (số màu sắc) dù không có tam giác nào, và là nguồn phản ví dụ phong phú trong lý thuyết đồ thị.

Tô màu cả một bản đồ thay vì một đồ thị trừu tượng dẫn tới câu hỏi tô màu nổi tiếng nhất, bài toán lớn Định lý bốn màu: mọi bản đồ phẳng đều có thể tô bằng bốn màu sao cho các vùng liền kề khác màu nhau. Việc xác định đồ thị nào là phẳng được trả lời chính xác bởi định lý Kuratowski dưới đây.

Định nghĩa: Đồ thị phẳng

Một đồ thị là phẳng nếu có thể vẽ trên mặt phẳng sao cho không có hai cạnh nào cắt nhau (trừ tại các đầu mút chung).

∣E∣≤3∣V∣−6(planar),∣E∣≤2∣V∣−4(triangle-free planar)|E| \le 3|V| - 6 \quad (\text{planar}), \qquad |E| \le 2|V| - 4 \quad (\text{triangle-free planar})

Một đồ thị hữu hạn là phẳng khi và chỉ khi nó không chứa đồ thị con là một phép chia cạnh (subdivision) của K5K_5 hoặc của K3,3K_{3,3}.

Vì sao đúng?

K5K_5 và K3,3K_{3,3} tự chúng không phẳng (có thể kiểm tra trực tiếp bằng công thức Euler V−E+F=2V - E + F = 2), và bất kỳ phép chia cạnh nào (thay cạnh bằng đường đi) cũng giữ nguyên tính không phẳng. Định lý Kuratowski năm 1930 là chiều ngược lại đáng ngạc nhiên: hai đồ thị này là những 'vật cản' duy nhất.

Chứng minh

(Chiều cần: K5K_5, K3,3K_{3,3} và các phép chia cạnh của chúng đều không phẳng.) Trong mọi đồ thị đơn phẳng liên thông có V≥3V \ge 3 được vẽ không cắt nhau, mỗi miền mặt FF được bao bởi ít nhất 33 cạnh và mỗi cạnh tiếp giáp tối đa 22 mặt, nên đếm số cặp liên thuộc cạnh-mặt cho 2E≥3F2E \ge 3F. Thay F=E−V+2F = E - V + 2 từ công thức Euler V−E+F=2V - E + F = 2 cho 2E≥3(E−V+2)2E \ge 3(E - V + 2), tức E≤3V−6E \le 3V - 6. Với K5K_5 ta có V=5V = 5 và E=10E = 10, vi phạm 3V−6=9<103V - 6 = 9 < 10, nên K5K_5 không phẳng. Với đồ thị hai phía K3,3K_{3,3}, không có chu trình lẻ (do đó không có tam giác), nên mỗi mặt cần ít nhất 44 cạnh: 2E≥4F2E \ge 4F, kết hợp với V−E+F=2V - E + F = 2 cho E≤2V−4E \le 2V - 4. Vì K3,3K_{3,3} có V=6V = 6 và E=9E = 9, vi phạm 2V−4=8<92V - 4 = 8 < 9, nên K3,3K_{3,3} cũng không phẳng.

Chia nhỏ một cạnh (thay nó bằng một đường đi qua các đỉnh mới bậc 22) không ảnh hưởng tới việc đồ thị có vẽ được trên mặt phẳng không cắt nhau hay không, nên mọi đồ thị chứa một phép chia cạnh của K5K_5 hoặc K3,3K_{3,3} đều không phẳng. Với chiều ngược lại (chiều đủ), do Kuratowski chứng minh năm 1930, ta quy nạp theo ∣V∣+∣E∣|V| + |E|: một đồ thị không phẳng tối tiểu GG phải 33-liên thông, và khi xóa một cạnh ee sẽ tạo ra đồ thị phẳng G−eG - e mà chu trình bao quanh hai đầu mút của ee có các dây cung đan xen cả bên trong lẫn bên ngoài, buộc phải xuất hiện một phép chia cạnh của K5K_5 hoặc K3,3K_{3,3} bên trong GG.

Đồ thị hình lập phương Q3 vẽ dưới dạng hai hình vuông lồng nhau nối bằng bốn cạnh, 8 đỉnh mỗi đỉnh bậc ba, không có cạnh nào cắt nhau.
Đồ thị hình lập phương Q3Q_3: 8 đỉnh (các đỉnh của khối lập phương), mỗi đỉnh bậc 3, là đồ thị hai phía, và — khác với K5K_5 và K3,3K_{3,3} — là đồ thị phẳng: có thể vẽ mà không cạnh nào cắt nhau.

Theo bổ đề bắt tay, một đồ thị có 5 cạnh thì tổng bậc các đỉnh bằng

Trong số K4K_4, K5K_5, K3,3K_{3,3} và đồ thị Petersen, đồ thị nào có chu trình Euler?

Trong một đồ thị hai phía với hai phần X,YX, Y, hai đỉnh x1,x2∈Xx_1, x_2 \in X chỉ có chung một đỉnh lân cận, tức N({x1,x2})={y1}N(\{x_1, x_2\}) = \{y_1\}. Định lý Hall cho biết điều gì?

Cặp đồ thị nào chính xác là các phép chia cạnh bị cấm trong định lý Kuratowski?

Tài liệu tham khảo

  1. Vigleik Angeltveit, Brendan D. McKay (2024). R(5,5) ≤ 46 · arXiv:2409.15709 [preprint, chưa bình duyệt]
  2. Marcelo Campos, Simon Griffiths, Robert Morris, Julian Sahasrabudhe (2023). Towards fully exponential bounds for the diagonal Ramsey numbers · arXiv:2303.09521 [preprint, chưa bình duyệt]
  3. Reinhard Diestel (2017). Graph Theory
  4. Leonhard Euler (1736). Solutio problematis ad geometriam situs pertinentis