def test(graph_params): graph = graphs.generators.group_based.generate(graph_params) group_graph = algorithms.SybilGroupRank(graph, algorithm_options).rank() output1 = generate_output(graph) reset_ranks(graph) group_graph = algorithms.SybilRank(graph, algorithm_options).rank() output2 = generate_output(graph) reset_ranks(graph) group_graph = algorithms.GroupSybilRank(graph, algorithm_options).rank() output3 = generate_output(graph) return [output1, output2, output3]
'min_group_nodes': 20, 'max_group_nodes': 50, 'max_known_ratio': 1, 'avg_known_ratio': .5, 'min_known_ratio': .2, 'num_seed_nodes': 15, 'num_attacker_to_num_honest': .1, 'num_sybil_to_num_attacker': 1, 'sybil_to_attackers_con': .1, 'num_joint_node': 50, 'num_inter_group_con': 50 }) algorithms.GroupSybilRank( graph, { 'min_degree': 2, 'accumulative': False, 'weaken_under_min': False, 'nonlinear_distribution': False, 'group_edge_weight': 2, }).rank() draw_graph(graph, os.path.join(OUTPUT_FOLDER, '1.html')) output1 = generate_output(graph) reset_ranks(graph) graphs.modifiers.add_seed_groups(graph, 3, .2, .7) algorithms.GroupSybilRank( graph, { 'min_degree': 2, 'accumulative': False, 'weaken_under_min': False, 'nonlinear_distribution': False,
} main_graph_params['num_groups'] = 50 main_graph_params['min_group_nodes'] = 5 main_graph_params['max_group_nodes'] = 15 est_num_nodes = main_graph_params['num_groups'] * ( main_graph_params['min_group_nodes'] + main_graph_params['min_group_nodes']) / 2 main_graph_params['num_seed_nodes'] = int(.1 * est_num_nodes) main_graph_params['num_joint_node'] = est_num_nodes main_graph_params['num_inter_group_con'] = est_num_nodes graph_params = copy.copy(main_graph_params) graph = graphs.generators.group_based.generate(graph_params) algorithms.GroupSybilRank(graph, algorithm_params).rank() output2 = generate_output(graph) draw_graph(graph, os.path.join(OUTPUT_FOLDER, '1.html')) reset_ranks(graph) graph_params = copy.copy(main_graph_params) graph_params['num_joint_node'] = graph_params['num_joint_node'] / 10 graph_params['num_inter_group_con'] = graph_params['num_inter_group_con'] / 10 graph = graphs.generators.group_based.generate(graph_params) algorithms.GroupSybilRank(graph, algorithm_params).rank() output4 = generate_output(graph) draw_graph(graph, os.path.join(OUTPUT_FOLDER, '2.html')) reset_ranks(graph) graph_params = copy.copy(main_graph_params) graph_params['num_seed_nodes'] = graph_params['num_seed_nodes'] * 4