分析和理解这个算法
Analyzing and understanding this algorithm
我需要实现一个找到的算法 here (page 5) using data from here(如果您想深入挖掘,请选择 facebooks 数据,大小只有 KB)。算法是:
1: Ti ← 0 //Ti is pi’s count of triangles
2: for v ∈ Vi do
3: for u ∈ Nv do
4: if u ∈ Vi then
5: S ← Nv ∩ Nu
6: Ti ← Ti + |S|
7: else if u ∈ Vj then
8: Send <data,Nv> to pj if not sent already
9:
10: Check for incoming messages <t,X>:
11: if t = data then
12: Ti ← Ti+ SURROGATECOUNT(X, i)
13: else
14: Increment completion counter
15:
16: Broadcast <notifier,X>
17: while completion counter < P-1 do
18: Check for incoming messages <t,X>:
19: if t = data then
20: Ti ← Ti+ SURROGATECOUNT(X, i)
21: else
22: Increment completion counter
23:
24: MPIBARRIER
25: Find Sum T ← Pi Ti using MPIREDUCE
26: return T
据我所知,我需要一个二维数组。我需要查询 if
语句中的每个元素并在 Ti
变量处执行 +1。
第一个问题,S ← Nv ∩ Nu
我要为这个变量分配什么 S
?
维基百科说:A ∩ B means the set that contains all those elements that A and B have in common.
第二个问题,你看一下数据,我需要全部吗?我想我只需要 .edges
文件。
S ← Nv ∩ Nu
Ti ← Ti + |S|
看起来您只需要 Nv
和 Nu
中的元素数。因此,只需将它们计算为增加 Ti
那个数字即可。该算法似乎没有将 S
集用于其他用途。
您似乎不需要很多有关连接的信息,因此只需 .edges 就足够了。
我需要实现一个找到的算法 here (page 5) using data from here(如果您想深入挖掘,请选择 facebooks 数据,大小只有 KB)。算法是:
1: Ti ← 0 //Ti is pi’s count of triangles
2: for v ∈ Vi do
3: for u ∈ Nv do
4: if u ∈ Vi then
5: S ← Nv ∩ Nu
6: Ti ← Ti + |S|
7: else if u ∈ Vj then
8: Send <data,Nv> to pj if not sent already
9:
10: Check for incoming messages <t,X>:
11: if t = data then
12: Ti ← Ti+ SURROGATECOUNT(X, i)
13: else
14: Increment completion counter
15:
16: Broadcast <notifier,X>
17: while completion counter < P-1 do
18: Check for incoming messages <t,X>:
19: if t = data then
20: Ti ← Ti+ SURROGATECOUNT(X, i)
21: else
22: Increment completion counter
23:
24: MPIBARRIER
25: Find Sum T ← Pi Ti using MPIREDUCE
26: return T
据我所知,我需要一个二维数组。我需要查询 if
语句中的每个元素并在 Ti
变量处执行 +1。
第一个问题,S ← Nv ∩ Nu
我要为这个变量分配什么 S
?
维基百科说:A ∩ B means the set that contains all those elements that A and B have in common.
第二个问题,你看一下数据,我需要全部吗?我想我只需要 .edges
文件。
S ← Nv ∩ Nu
Ti ← Ti + |S|
看起来您只需要 Nv
和 Nu
中的元素数。因此,只需将它们计算为增加 Ti
那个数字即可。该算法似乎没有将 S
集用于其他用途。
您似乎不需要很多有关连接的信息,因此只需 .edges 就足够了。