Soptq

Soptq

Probably a full-stack, mainly focusing on Distributed System / Consensus / Privacy-preserving Tech etc. Decentralization is a trend, privacy must be protected.
twitter
github
bilibili

子圖同構問題 NP-Complete 證明

子圖同構(Subgraph isomorphism problem)問題的描述如下:給定兩個圖 G1G_1G2G_2,判斷 G1G_1 是否與 G2G_2 的一個子圖同構。首先假如我們得到了 G1G_1G2G_2 和對應的解(即 G2G_2 的子圖 GsG_s 使得 GsG_sG1G_1 同構),我們只需要遍歷解中的點和每一個與這個點相連接的邊,檢查是否與 G1G_1 對應即可驗證解的正確性。所以這個問題首先顯然是一個 NP 問題。

為了證明這個問題同時也是一個 NP 難問題,我們將 分團問題 規約到 子圖同構問題上來。具體地,假設我們現在有一個有解的分團問題 <G,k><G,k>,即 GG 中存在 kk 個點可以構成團(即這 kk 個點相互連接,即構成一個 kk- 完全圖)。那麼我們構造一個 G1G_1kk- 完全圖,構造 G2=GG_2 = G。顯然上述兩個圖的構造是可以在多項式時間內完成的。

考慮有一個算法 $A_s$ 可以在多項式時間內解決子圖同構問題的話,那麼我們對於一個分團問題,我們只需要按照上述構造,在多項式時間內通過分團問題的 kkGG 構造出 G1G_1G2G_2,然後將 G1G_1G2G_2 拿給子圖同構問題的算法 AsA_s 解,即可在多項式時間內得知 G1G_1 是否是 G2G_2 子圖的一個同構,即 kk- 完全圖是否包含在 GG 中,即在多項時間內解出了分團問題

由於我們已知分團問題是 NP 完全的,所以上述的算法 AsA_s 不存在,所以子圖同構問題為 NP 難問題。綜上所述,子圖同構問題是 NP 完全的。

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。