MCPcopy Create free account
hub / github.com/PKU-ASAL/Simulated-Data / GetforeSubgraph

Method GetforeSubgraph

src/Sysdig/real-time/ProvGraph.py:521–564  ·  view source on GitHub ↗
(self, node, depth,sense)

Source from the content-addressed store, hash-verified

519 return subgraph
520
521 def GetforeSubgraph(self, node, depth,sense):
522 subgraph = set()
523 if depth == 0:
524 return subgraph
525 # score = {}
526 # for i in self.G.successors(node):
527 # score[i] = self.G.out_degree(i)/self.G.in_degree(i)
528
529 # score = sorted(score.items(), key=lambda d: d[1], reverse=True)[:5]
530 # node_list = [i[0] for i in score]
531 # score = {}
532 # attr_list = {}
533 # for i in self.G.successors(node):
534 # name = self.GetNodeAttr(i)
535 # if name in attr_list:
536 # s1 = self.G.out_degree(i)/(self.G.in_degree(i) + 1) + self.GetNodeScore(i)/10
537 # if s1 > score[attr_list[name]]:
538 # attr_list[name] = i
539 # score[i] = s1
540 # else:
541 # attr_list[name] = i
542 # score[i] = self.G.out_degree(i)/(self.G.in_degree(i) + 1) + self.GetNodeScore(i)/10
543 # new_score = {k:score[k] for k in list(attr_list.values())}
544
545 # new_score = sorted(new_score.items(), key=lambda d: d[1], reverse=True)[:5]
546 # node_list = [i[0] for i in new_score]
547
548 score = {}
549 attr_list = {}
550 for i in self.G.successors(node):
551 score[i] = (self.GetNodeScore(i),self.G.out_degree(i)/ (self.G.in_degree(i) + 1))
552
553 new_score = sorted(score.items(), key=lambda d: (d[1][0],d[1][1]), reverse=True)[:10]
554 node_list = [i[0] for i in new_score]
555
556 for i in node_list:
557 if i in sense:
558 continue
559 sense.add(i)
560 subgraph.add(i)
561 x = self.GetforeSubgraph(i,depth - 1,sense)
562 subgraph |= x
563
564 return subgraph
565
566 def propagation(self,update_node_list, f_depth = 5, b_depth = 5, alg = 'sum'):
567 if alg == 'sum':

Callers 1

propagationMethod · 0.95

Calls 1

GetNodeScoreMethod · 0.95

Tested by

no test coverage detected