modified: anchor.py

This commit is contained in:
bill_juju 2025-07-09 15:52:06 +08:00
parent 8b8011ac89
commit a367fe73b2

View File

@ -23,10 +23,11 @@ def find_max_indices_numpy(L_dict):
return max_keys_np_way
def R(event_dict):
sum = 0
mean = 0
for _,v in event_dict.items():
sum += -v
return sum
mean += -v
mean /= len(event_dict)
return mean
def select_social_sensors(R, L_dict, user_event_dict, event_user_dict, b):
@ -65,11 +66,17 @@ def select_social_sensors(R, L_dict, user_event_dict, event_user_dict, b):
s_star = max(delta, key=delta.get)
c_star = user_event_dict_[s_star]
if cur[s_star] == True:
if delta[s_star] >= args.anchor_screen:
A.append(s_star)
break
else:
delta[s_star] = R(c_star)
cur[s_star] = True
if delta[s_star] < args.anchor_screen:
L_dict_[s_star] = 0
continue
all_cas += len(c_star)
for cas_id in list(c_star.keys()):
uc = event_user_dict[cas_id]
@ -191,6 +198,7 @@ def generate_anchors(args):
anchor_num = max_anchor_num
else:
anchor_num = int(num_nodes*anchor_budget)
print(f"anchor_num is set to {anchor_num}")
# anchor_num = 10
A, all_cas = select_social_sensors(R, L_dict, user_event_dict, event_user_dict, anchor_num)
@ -529,10 +537,12 @@ def parse_args():
parser = argparse.ArgumentParser(description='Parameters')
parser.add_argument('--input_file', default='./dataset_for_anchor.txt', type=str, help='Cascade file')
parser.add_argument('--result_path', default='./result/', type=str, help='result save path')
parser.add_argument('--anchor_budget', default=0.0002, type=float, help='Anchors num')
parser.add_argument('--obs_cas_num', default=-1, type=int, help='Anchors observe cas num')
parser.add_argument('--anchor_budget', default=0.005, type=float, help='Anchors num')
parser.add_argument('--obs_cas_num', default=2000, type=int, help='Anchors observe cas num')
parser.add_argument('--obs_time', default=-1, type=int, help='Anchors observe time, default seeting is -1, meaning can observe all')
parser.add_argument('--key_node_file', default='/home/zjy/project/CasDO/dataset/nh/key_node_10', type=str, help='key_node_json save file')
parser.add_argument('--anchor_screen', default=-0.4, type=float, help='anchor_screen')
return parser.parse_args()
if __name__ == '__main__':