代码拉取完成,页面将自动刷新
import json
from QKDNetwork import QKDNetwork
from compare_hete import Compare
import concurrent.futures
import sys
# 节点个数: 20-210 默认:60 迭代:20 + cnt * 10
# 源目对数: 10-200 默认:50 迭代:10 + cnt * 10
# 阿尔法值: 0.35-1.3 默认:0.2 迭代:0.2 + cnt * 0.05
max_workers = 48
mean_round = 48
def experiment(num_node, sd_num, alpha):
q = QKDNetwork(showTopology=False, num_node=num_node, sd_num=sd_num, alpha=alpha, hete=False)
c = Compare(q)
return c.getData()
# 节点个数: 20-210 默认:60 迭代:20 + cnt * 10
def run_experiments_node_variation():
total_tmp_var_node_num = []
for round_idx in range(20):
round_tmp = []
num_node = 20 + round_idx * 10
sd_num = 50
alpha = 0.35
print(f"num_node={num_node}, sd_num={sd_num}, alpha={alpha}")
with concurrent.futures.ThreadPoolExecutor(max_workers=max_workers) as executor:
future_list = [
executor.submit(experiment, num_node, sd_num, alpha)
for _ in range(mean_round)
]
for future in concurrent.futures.as_completed(future_list):
data = future.result()
if data is not None:
round_tmp.append(data)
print(data)
else:
break
total_tmp_var_node_num.append(round_tmp)
if not round_tmp:
break
print(total_tmp_var_node_num)
data_string = json.dumps(total_tmp_var_node_num)
with open(f'pro_cloud_10_05_var_node.txt', 'a') as file:
file.write(data_string + '\n')
# 源目对数: 10-200 默认:50 迭代:10 + cnt * 10
def run_experiments_sd_variation():
total_tmp_var_sd_num = []
for round_idx in range(20):
round_tmp = []
num_node = 60
sd_num = 10 + round_idx * 10
alpha = 0.35
print(f"num_node={num_node}, sd_num={sd_num}, alpha={alpha}")
with concurrent.futures.ThreadPoolExecutor(max_workers=max_workers) as executor:
future_list = [
executor.submit(experiment, num_node, sd_num, alpha)
for _ in range(mean_round)
]
for future in concurrent.futures.as_completed(future_list):
data = future.result()
if data is not None:
round_tmp.append(data)
print(data)
else:
break
total_tmp_var_sd_num.append(round_tmp)
if not round_tmp:
break
print(total_tmp_var_sd_num)
data_string = json.dumps(total_tmp_var_sd_num)
with open(f'pro_cloud_10_05_var_sd.txt', 'a') as file:
file.write(data_string + '\n')
# 阿尔法值: 0.35-1.3 默认:0.2 迭代:0.2 + cnt * 0.05
def run_experiments_alpha_variation():
total_tmp_var_alpha = []
for round_idx in range(20):
round_tmp = []
num_node = 60
sd_num = 50
alpha = 0.2 + round_idx * 0.05
print(f"num_node={num_node}, sd_num={sd_num}, alpha={alpha}")
with concurrent.futures.ThreadPoolExecutor(max_workers=max_workers) as executor:
future_list = [
executor.submit(experiment, num_node, sd_num, alpha)
for _ in range(mean_round)
]
for future in concurrent.futures.as_completed(future_list):
data = future.result()
if data is not None:
round_tmp.append(data)
print(data)
else:
break
total_tmp_var_alpha.append(round_tmp)
if not round_tmp:
break
print(total_tmp_var_alpha)
data_string = json.dumps(total_tmp_var_alpha)
with open(f'pro_cloud_10_05_var_alpha.txt', 'a') as file:
file.write(data_string + '\n')
def run_experiments_init_ps():
total_tmp_var_node_num = []
for round_idx in range(20):
round_tmp = []
num_node = 60
sd_num = 50
alpha = 0.35
print(f"num_node={num_node}, sd_num={sd_num}, alpha={alpha}")
with concurrent.futures.ThreadPoolExecutor(max_workers=max_workers) as executor:
future_list = [
executor.submit(experiment, num_node, sd_num, alpha)
for _ in range(mean_round)
]
for future in concurrent.futures.as_completed(future_list):
data = future.result()
if data is not None:
round_tmp.append(data)
print(data)
else:
break
total_tmp_var_node_num.append(round_tmp)
if not round_tmp:
break
print(total_tmp_var_node_num)
data_string = json.dumps(total_tmp_var_node_num)
with open(f'pro_cloud_10_05_var_init_ps.txt', 'a') as file:
file.write(data_string + '\n')
if(int(sys.argv[1]) == 0):
run_experiments_node_variation()
if(int(sys.argv[1]) == 1):
run_experiments_sd_variation()
if(int(sys.argv[1]) == 2):
run_experiments_alpha_variation()
if(int(sys.argv[1]) == 3):
run_experiments_init_ps()
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。