設 X、Y 和 Z 為有限集合,並設 T 為 X × Y × Z 的子集。也就是說,T 由三元組 (x, y, z) 組成,其中 x ∈ X,y ∈ Y,且 z ∈ Z。現在,如果以下條件成立,則 M ⊆ T 是一個三維匹配:對於任何兩個不同的三元組 (x1, y1, z1) ∈ M 和 (x2, y2, z2) ∈ M,我們有 x1 ≠ x2,y1 ≠ y2,且 z1 ≠ z2。
圖 (c) 中說明的匹配 M 是一個「最大三維匹配」,即它最大化 |M|。圖 (b)–(c) 中說明的匹配是「極大三維匹配」,即它們不能通過添加來自 T 的更多元素來擴展。
與二分圖匹配的比較
可以用完全類似的方式定義「二維匹配」。設 X 和 Y 為有限集合,並設 T 為 X × Y 的子集。現在,如果以下條件成立,則 M ⊆ T 是一個二維匹配:對於任何兩個不同的配對 (x1, y1) ∈ M 和 (x2, y2) ∈ M,我們有 x1 ≠ x2 且 y1 ≠ y2。
在二維匹配的情況下,集合 T 可以解釋為二分圖G = (X, Y, T) 中邊的集合;T 中的每條邊都將 X 中的一個頂點連接到 Y 中的一個頂點。然後,二維匹配是圖 G 中的一個匹配,即一組成對非相鄰的邊。
因此,三維匹配可以解釋為匹配對超圖的推廣:集合 X、Y 和 Z 包含頂點,T 的每個元素都是一條超邊,集合 M 由成對非相鄰的邊組成(沒有共同頂點的邊)。在二維匹配的情況下,我們有 Y = Z。
與Set packing 的比較
三維匹配是Set packing的一個特例:我們可以將 T 的每個元素 (x, y, z) 解釋為 X ∪ Y ∪ Z 的子集 {x, y, z};那麼,三維匹配 M 由成對不相交的子集組成。
判定問題
在計算複雜性理論中,三維匹配是以下判定問題的名稱:給定一個集合 T 和一個整數 k,判斷是否存在一個三維匹配 M ⊆ T,使得 |M| ≥ k。
這個判定問題已知是NP完全的;是卡普的二十一個NP-完全問題之一。[1] 即使在 k = |X| = |Y| = |Z| 且每個元素最多包含在 3 個集合中,也就是說,當我們想要一個 3-正則超圖中的完美匹配時,它也是 NP 完全的。[1][2][3] 在這種情況下,三維匹配不僅是一個Set packing,而且還是一個精確覆蓋:集合 M 恰好覆蓋 X、Y 和 Z 的每個元素一次。[4] 這個證明是通過從3SAT簡化而來的。給定一個 3SAT 實例,我們構造一個 3DM 實例如下:[2][5]
對於每個變量 xi,都有一個形狀像輪子的「變量 gadget」。它由重疊的三元組組成。三元組的數量是 xi 在公式中出現次數的兩倍。恰好有兩種方法可以覆蓋 gadget 中的所有頂點:一種是選擇所有偶數索引的三元組,另一種是選擇所有奇數索引的三元組。這兩種方法分別對應於將 xi 設置為「真」或「假」。 「真」選擇在每個奇數索引的三元組中恰好留下一個未覆蓋的頂點,而「假」選擇在每個偶數索引的三元組中恰好留下一個未覆蓋的頂點。
對於每個子句 xi u xj u xk,都有一個形狀像玫瑰的「子句 gadget」。它由三個重疊的三元組組成,每個子句中的每個變量一個。它可以被覆蓋,當且僅當至少一個節點被變量 gadget 的選擇留下未覆蓋。
Kann, Viggo, Maximum bounded 3-dimensional matching is MAX SNP-complete, Information Processing Letters, 1991, 37 (1): 27–35, doi:10.1016/0020-0190(91)90246-E.
Karp, Richard M., Reducibility among combinatorial problems, Miller, Raymond E.; Thatcher, James W. (编), Complexity of Computer Computations, Plenum: 85–103, 1972.
Karpinski, Marek; Rucinski, Andrzej; Szymanska, Edyta, The Complexity of Perfect Matching Problems on Dense Hypergraphs, ISAAC '09 Proceedings of the 20th International Symposium on Algorithms, Lecture Notes in Computer Science, 2009, 5878: 626–636, ISBN 978-3-642-10630-9, doi:10.1007/978-3-642-10631-6_64.