極大團演算法思路小記

2022-10-07 22:54:23 字數 891 閱讀 4910

bron-kerbosch演算法

input: the graph g 

output: the set of all maximal cliques: c

1: initialize c and two vertex sets r, x with ∅

2: define p ← the node set of g

3: function bronker(r, p, x):

4: if p = ∅ & x= ∅

5: then add r to c

6: end if

7: for v ∈ p do

8: define n(v) ← the neighbor set of v

9: bronker( r ∪ v, p ∩ n(v), x ∩ n(v))

10: p ← p \ v

11: x ← x ∪ v

12: end for

13: end function

14: bronker(r, p, x)

15: return c

演算法的原理:

r是乙個團,不斷查詢這個團中元素共同的鄰居,形成乙個極大團。而p則是r中元素的共同鄰居集合,所以p中的每乙個元素 v 都符合條件可以擴充r的團,對於p中的每乙個元素 v ,將其加入r,則擴充後的團的共同鄰居集合需要更新,需要找出r和 v 共同的鄰居,即原始團r的共同鄰居集合p和擴充該團的元素 v 的鄰居集的交集。

在包含 v 的極大團被搜尋之後,就將 v 從p中去掉,否則可能在後續搜尋 v 的鄰居節點 v' 的時候,又將包含 v 的極大團整了一遍。集合x中的元素a就是表示團r的共同鄰居中,a的團已經搜尋過了。p為空時,則x也為空

最大團,極大團

團 對於給定圖g v,e 其中,v 是圖g的頂點集,e是圖g的邊集。圖g的團就是乙個兩兩之間有邊的頂點集合。簡單地說,團是g的乙個完全子圖。如果乙個團不被其他任一團所包含,即它不是其他任一團的真子集,則稱該團為圖g的極大團 maximal clique 頂點最多的極大團,稱之為圖g的最大團 maxi...

極大極小演算法原理

該演算法的搜尋策略是考慮雙方若干步之後,從可能的步中選擇相對較好的走發來走。以max表示程式方,min表示對手方,p表示局勢,f 是根據當前局勢做出的估計函式。則f 0表示對max有利的局勢 f 0表示對min有利的局勢 f 0表示局勢均衡 該演算法的基本思想是 1 輪到min走時,max應考慮最壞...

演算法分析 回溯法 最大團問題

在若干點和若干連線中,找到完全子圖,即子圖中各個點都和其他點相連 有4部分 1.定義全域性變數 2.約束函式 限制生成左子樹的函式 3.遞迴函式 4.呼叫遞迴函式的函式,也可以直接寫在main 1.定義全域性變數 const int m1 5 元素數 vector vector a1 int cn1...