Skip to content
Permalink
master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time
from Simulator import *
def gather_data_chart(glob, dumb, simple, fixed_len, N, size, L, Q, E, var, Trusted, file, Pz=.5, Px=.5):
if var != "S":
Trusted0 = [0, size*size-1]
Trusted1 = [0, int((size*size-1)/2), size*size-1]
Trusted2 = [0, size-1, size*(size-1), size*size-1]
Trusted3 = [0, math.floor(size/3)*(size+1),size*size-1-math.floor(size/3)*(size+1), size*size-1]
Trusted4 = [0, int((size*size-1)/2)-size-1, int((size*size-1)/2), size*size-1]
Trusted5 = [0, (size+1)*2, (size*size-1)-(size+1)*2, size*size-1]
if len(set(Trusted5)) == 3:
Trusted5 = [0, (size+1)*1, (size*size-1)-(size+1)*1, size*size-1]
Trusted0 = None if not Trusted[0] else Trusted0
Trusted1 = None if not Trusted[1] else Trusted1
Trusted2 = None if not Trusted[2] else Trusted2
Trusted3 = None if not Trusted[3] else Trusted3
Trusted4 = None if not Trusted[4] else Trusted4
Trusted5 = None if not Trusted[5] else Trusted5
#v = size
alpha = .15
if var != "P" and var != "S":
P = 10**-(alpha*(L/size)/10) if fixed_len else 10**-(alpha*L/10)
#Trusted1 = [0, size*size-size, size*size-1]
t0 = {}
t1 = {}
t2 = {}
t3 = {}
t4 = {}
t5 = {}
if var == "P":
data_str = "Data for {} iterations, {}x{} Grid, L = {}, Q = {}, E = {}, Pz = {}, Global Info = {}, TN Type = {}"\
.format(N, size, size, "var", Q, E, Pz, glob if glob else "{}, Smart = {}".format(glob, not dumb), "regular" if not simple else "simple")
print(data_str)
for v in L:
P = 10**-(alpha*(v/size)/10) if fixed_len else 10**-(alpha*v/10)
print("L={} P = {}".format(v, P))
print(" ",end=""); t0[v] = main(N,size, Trusted0, P, Q ,E, Pz, Px, glob, dumb, simple)
print(" ",end=""); t1[v] = main(N,size, Trusted1, P, Q, E, Pz, Px, glob, dumb,simple)
print(" ",end=""); t2[v] = main(N,size, Trusted2, P, Q, E, Pz, Px, glob, dumb,simple)
print(" ",end=""); t3[v] = main(N,size, Trusted3, P, Q, E, Pz, Px, glob, dumb,simple)
print(" ",end=""); t4[v] = main(N,size, Trusted4, P, Q, E, Pz, Px, glob, dumb,simple)
print(" ",end=""); t5[v] = main(N,size, Trusted5, P, Q, E, Pz, Px, glob, dumb,simple)
elif var == "Q":
data_str = "Data for {} iterations, {}x{} Grid, L = {}, Q = {}, E = {}, Pz = {}, Global Info = {}, TN Type = {}"\
.format(N, size, size, round(L,3), "var", E, Pz, glob if glob else "{}, Smart = {}".format(glob, not dumb), "regular" if not simple else "simple")
print(data_str)
for v in Q:
print(" Q = {}".format(v))
print(" ",end=""); t0[v] = main(N,size, Trusted0, P, v ,E, Pz, Px, glob, dumb, simple)
print(" ",end=""); t1[v] = main(N,size, Trusted1, P, v, E, Pz, Px, glob, dumb, simple)
print(" ",end=""); t2[v] = main(N,size, Trusted2, P, v, E, Pz, Px, glob, dumb, simple)
print(" ",end=""); t3[v] = main(N,size, Trusted3, P, v, E, Pz, Px, glob, dumb, simple)
print(" ",end=""); t4[v] = main(N,size, Trusted4, P, v, E, Pz, Px, glob, dumb, simple)
print(" ",end=""); t5[v] = main(N,size, Trusted5, P, v, E, Pz, Px, glob, dumb, simple)
elif var == "E":
data_str = "Data for {} iterations, {}x{} Grid, L = {}, Q = {}, E = {}, Pz = {}, Global Info = {}, TN Type = {}"\
.format(N, size, size, round(L,3), Q, "var", Pz, glob if glob else "{}, Smart = {}".format(glob, not dumb), "regular" if not simple else "simple")
print(data_str)
for v in E:
print(" E = {}".format(v))
print(" ",end=""); t0[v] = main(N,size, Trusted0, P, Q ,v, Pz, Px, glob, dumb, simple)
print(" ",end=""); t1[v] = main(N,size, Trusted1, P, Q, v, Pz, Px, glob, dumb, simple)
print(" ",end=""); t2[v] = main(N,size, Trusted2, P, Q, v, Pz, Px, glob, dumb, simple)
print(" ",end=""); t3[v] = main(N,size, Trusted3, P, Q, v, Pz, Px, glob, dumb, simple)
print(" ",end=""); t4[v] = main(N,size, Trusted4, P, Q, v, Pz, Px, glob, dumb, simple)
print(" ",end=""); t5[v] = main(N,size, Trusted5, P, Q, v, Pz, Px, glob, dumb, simple)
elif var == "S":
data_str = "Data for {} iterations, {}x{} Grid, L = {}, Q = {}, E = {}, Pz = {}, Global Info = {}, TN Type = {}"\
.format(N, "var", "var", L, Q, E, Pz, glob if glob else "{}, Smart = {}".format(glob, not dumb), "regular" if not simple else "simple")
print(data_str)
for v in size:
Trusted0 = [0, v*v-1]
Trusted1 = [0, int((v*v-1)/2), v*v-1]
Trusted2 = [0, v-1, v*(v-1), v*v-1]
Trusted3 = [0, math.floor(v/3)*(v+1),v*v-1-math.floor(v/3)*(v+1), v*v-1]
Trusted4 = [0, int((v*v-1)/2)-v-1, int((v*v-1)/2), v*v-1]
Trusted5 = [0, (v+1)*2, (v*v-1)-(v+1)*2, v*v-1]
if len(set(Trusted5)) == 3:
Trusted5 = [0, (v+1)*1, (v*v-1)-(v+1)*1, v*v-1]
Trusted0 = None if not Trusted[0] else Trusted0
Trusted1 = None if not Trusted[1] else Trusted1
Trusted2 = None if not Trusted[2] else Trusted2
Trusted3 = None if not Trusted[3] else Trusted3
Trusted4 = None if not Trusted[4] else Trusted4
Trusted5 = None if not Trusted[5] else Trusted5
P = 10**-(alpha*(L/v)/10) if fixed_len else 10**-(alpha*L/10)
print(" Size = {}".format(v))
print(" ",end=""); t0[v] = main(N, v, Trusted0, P, Q ,E, Pz, Px, glob, dumb, simple)
print(" ",end=""); t1[v] = main(N, v, Trusted1, P, Q, E, Pz, Px, glob, dumb, simple)
print(" ",end=""); t2[v] = main(N, v, Trusted2, P, Q, E, Pz, Px, glob, dumb, simple)
print(" ",end=""); t3[v] = main(N, v, Trusted3, P, Q, E, Pz, Px, glob, dumb, simple)
print(" ",end=""); t4[v] = main(N, v, Trusted4, P, Q, E, Pz, Px, glob, dumb, simple)
print(" ",end=""); t5[v] = main(N, v, Trusted5, P, Q, E, Pz, Px, glob, dumb, simple)
elif var == None:
data_str = "Data for {} iterations, {}x{} Grid, L = {}, Q = {}, E = {}, Pz = {}, Global Info = {}"\
.format(N, size, size, round(L,3), Q, E, Pz, glob if glob else "{}, Smart = {}".format(glob, not dumb), "regular" if not simple else "simple")
print(data_str)
v = "N/A"
print(" ",end=""); t0[v] = main(N,size, Trusted0, P, Q ,E, Pz, Px, glob, dumb, simple)
print(" ",end=""); t1[v] = main(N,size, Trusted1, P, Q, E, Pz, Px, glob, dumb, simple)
print(" ",end=""); t2[v] = main(N,size, Trusted2, P, Q, E, Pz, Px, glob, dumb, simple)
print(" ",end=""); t3[v] = main(N,size, Trusted3, P, Q, E, Pz, Px, glob, dumb, simple)
print(" ",end=""); t4[v] = main(N,size, Trusted4, P, Q, E, Pz, Px, glob, dumb, simple)
print(" ",end=""); t5[v] = main(N,size, Trusted5, P, Q, E, Pz, Px, glob, dumb, simple)
else:
print("{} data is not supported, can only vary P, Q, E, or S")
err0 = {v: t0[v][1]/max(t0[v][0],1) if t0[v][0] > 0 else "N/A" for v in t0}
err1 = {v: t1[v][1]/max(t1[v][0],1) if t1[v][0] > 0 else "N/A" for v in t1}
err2 = {v: t2[v][1]/max(t2[v][0],1) if t2[v][0] > 0 else "N/A" for v in t2}
err3 = {v: t3[v][1]/max(t3[v][0],1) if t3[v][0] > 0 else "N/A" for v in t3}
err4 = {v: t4[v][1]/max(t4[v][0],1) if t4[v][0] > 0 else "N/A" for v in t4}
err5 = {v: t5[v][1]/max(t5[v][0],1) if t5[v][0] > 0 else "N/A" for v in t5}
key_rate0 = {v: max(0,1-2*binary_entropy(err0[v])) if err0[v] != "N/A" else 0 for v in err0}
key_rate1 = {v: max(0,1-2*binary_entropy(err1[v])) if err1[v] != "N/A" else 0 for v in err1}
key_rate2 = {v: max(0,1-2*binary_entropy(err2[v])) if err2[v] != "N/A" else 0 for v in err2}
key_rate3 = {v: max(0,1-2*binary_entropy(err3[v])) if err3[v] != "N/A" else 0 for v in err3}
key_rate4 = {v: max(0,1-2*binary_entropy(err4[v])) if err4[v] != "N/A" else 0 for v in err4}
key_rate5 = {v: max(0,1-2*binary_entropy(err5[v])) if err5[v] != "N/A" else 0 for v in err5}
eff_rate0 = {v: key_rate0[v]*t0[v][0]/(4*N) for v in key_rate0}
eff_rate1 = {v: key_rate1[v]*t1[v][0]/(4*N) for v in key_rate1}
eff_rate2 = {v: key_rate2[v]*t2[v][0]/(4*N) for v in key_rate2}
eff_rate3 = {v: key_rate3[v]*t3[v][0]/(4*N) for v in key_rate3}
eff_rate4 = {v: key_rate4[v]*t4[v][0]/(4*N) for v in key_rate4}
eff_rate5 = {v: key_rate5[v]*t5[v][0]/(4*N) for v in key_rate5}
keybits_rate0 = {v: t0[v][0]/N for v in key_rate0}
keybits_rate1 = {v: t1[v][0]/N for v in key_rate1}
keybits_rate2 = {v: t2[v][0]/N for v in key_rate2}
keybits_rate3 = {v: t3[v][0]/N for v in key_rate3}
keybits_rate4 = {v: t4[v][0]/N for v in key_rate4}
keybits_rate5 = {v: t5[v][0]/N for v in key_rate5}
# header_array = ["keybits_rate0", "keybits_rate1", "keybits_rate2", "keybits_rate3","effective_keyrate0", "effective_keyrate1", "effective_keyrate2", "effective_keyrate3", "keyrate0", "keyrate1", "keyrate2", "keyrate3", "errrate0", "errate1","errrate2", "errate3", "keybits0, errors0", "keybits1, errors1", "keybits2, errors2", "keybits3, errors3"]
# data_array = [keybits_rate0, keybits_rate1, keybits_rate2, keybits_rate3,eff_rate0, eff_rate1, eff_rate2, eff_rate3, key_rate0, key_rate1,key_rate2, key_rate3, err0, err1,err2, err3, {p: t0[p][0] for p in t0},{p: t0[p][1] for p in t0}, {p: t1[p][0] for p in t1}, {p: t2[p][1] for p in t2}, {p: t3[p][0] for p in t3}]
header_array = ["NoTN", "Central", "Corner", "Diag", "Asym", "2Hop"]
data_array = [keybits_rate0, keybits_rate1, keybits_rate2, keybits_rate3, keybits_rate4, keybits_rate5]
print_save_data(data_array, header_array, data_str, var, file)
return eff_rate0, eff_rate1
Dvar = [0,.005,.01,.015,.02,.025,.03,.035,.04,.045,.05,.055,.06]
Lvar = [1,3,5,8,10,12,15,20]
Bvar = [.65,.7,.75,.8,.85,.9,.95,1]
Svar = [5,7,9,10,11,13,15]
Evar2 = [0, .05, .01, .02,.025, .03, .035, .04, .05]
large = 10000000
mill = 1000000
hundth =100000
header_array = ["NoTN", "Central", "Corner", "Diagonal", "Asym", "2Hops"]
if __name__ == "__main__":
if sys.argv[1] == "1":
with open("5x5chartsD.csv", "w+") as f:
gather_data_chart(True, False, False, False, hundth, 5, 1, .85, Dvar, "E", [True, True,True, False, False, False], f)
gather_data_chart(False, False, False, False, hundth, 5, 1, .85, Dvar, "E", [True, True,True, False, False, False], f)
gather_data_chart(False, True, False, False, hundth, 5, 1, .85, Dvar, "E", [True, True,True, False, False, False], f)
if sys.argv[1] == "2":
with open("5x5chartsB.csv", "w+") as f:
gather_data_chart(True, False, False, False, hundth, 5, 1, Bvar, .02, "Q", [True, True,True, False, False, False], f)
gather_data_chart(False, False, False, False, hundth, 5, 1, Bvar, .02, "Q", [True, True,True, False, False, False], f)
gather_data_chart(False, True, False, False, hundth, 5, 1, Bvar, .02, "Q", [True, True,True, False, False, False], f)
if sys.argv[1] == "3":
with open("5x5chartsL.csv", "w+") as f:
gather_data_chart(True, False, False, False, hundth, 5, Lvar, .85, .02, "P", [True, True,True, False, False, False], f)
gather_data_chart(False, False, False, False, hundth, 5, Lvar, .85, .02, "P", [True, True,True, False, False, False], f)
gather_data_chart(False, True, False, False, hundth, 5, Lvar, .85, .02, "P", [True, True,True, False, False, False], f)
if sys.argv[1] == "4":
with open("5x5chartsS.csv", "w+") as f:
gather_data_chart(True, False, False, False, hundth, Svar, 1, .85, .02, "S", [True, True,False, False, False, False], f)
gather_data_chart(False, False, False, False, hundth, Svar, 1, .85, .02, "S", [True, True,False, False, False, False], f)
gather_data_chart(False, True, False, False, hundth, Svar, 1, .85, .02, "S", [True, True,False, False, False, False], f)
if sys.argv[1] == "5":
with open("5x5NoErrorL.csv", "w+") as f:
gather_data_chart(True, False, False, False, hundth, 5, Lvar, .85, 0, "P", [True, True,True, False, False, False], f)
gather_data_chart(False, False, False, False, hundth, 5, Lvar, .85, 0, "P", [True, True,True, False, False, False], f)
gather_data_chart(False, True, False, False, hundth, 5, Lvar, .85, 0, "P", [True, True,True, False, False, False], f)
if sys.argv[1] == "6":
with open("5x5_5ErrorL.csv", "w+") as f:
gather_data_chart(True, False, False, False, mill, 5, Lvar, .85, 0.05, "P", [True, True,False, False, False, False], f)
gather_data_chart(False, False, False, False, mill, 5, Lvar, .85, 0.05, "P", [True, True,False, False, False, False], f)
gather_data_chart(False, True, False, False, mill, 5, Lvar, .85, 0.05, "P", [True, True,False, False, False, False], f)
if sys.argv[1] == "7":
with open("7x7chartsD.csv", "w+") as f:
gather_data_chart(True, False, False, False, hundth, 7, 1, .85, Dvar, "E", [True, True, True, True, True, False], f)
gather_data_chart(False, False, False, False, hundth, 7, 1, .85, Dvar, "E", [True, True, True, True, True, False], f)
gather_data_chart(False, True, False, False, hundth, 7, 1, .85, Dvar, "E", [True, True, True, True, True, False], f)
if sys.argv[1] == "8":
with open("7x7chartsB_0E.csv", "w+") as f:
gather_data_chart(True, False, False, False, hundth, 7, 1, Bvar, .0, "Q", [True, True,True, True, True, False], f)
gather_data_chart(False, False, False, False, hundth, 7, 1, Bvar, .0, "Q", [True, True,True, True, True, False], f)
if sys.argv[1] == "9":
with open("7x7chartsB_2E.csv", "w+") as f:
gather_data_chart(True, False, False, False, hundth, 7, 1, Bvar, .02, "Q", [True, True,True, True, True, False], f)
gather_data_chart(False, False, False, False, hundth, 7, 1, Bvar, .02, "Q", [True, True,True, True, True, False], f)
if sys.argv[1] == "10":
with open("7x7chartsB_5E.csv", "w+") as f:
gather_data_chart(True, False, False, False, mill, 7, 1, Bvar, .05, "Q", [True, True,True, True, True, False], f)
gather_data_chart(False, False, False, False, mill, 7, 1, Bvar, .05, "Q", [True, True,True, True, True, False], f)
if sys.argv[1] == "11":
with open("Fixed_chartsS.csv", "w+") as f:
gather_data_chart(True, False, False, False, hundth, Svar, 10, .85, .02, "S", [True, True,False, True, False, False], f)
gather_data_chart(False, False, False, False, hundth, Svar, 10, .85, .02, "S", [True, True,False, True, False, False], f)
gather_data_chart(False, True, False, False, hundth, Svar, 10, .85, .02, "S", [True, True,False, True, False, False], f)
if sys.argv[1] == "12":
with open("13x13chartsB_0E.csv", "w+") as f:
gather_data_chart(True, False, False, False, hundth, 13, 1, Bvar, .0, "Q", [True, True,True, True, True, False], f)
gather_data_chart(False, False, False, False, hundth, 13, 1, Bvar, .0, "Q", [True, True,True, True, True, False], f)
if sys.argv[1] == "13":
with open("13x13chartsB_2E.csv", "w+") as f:
gather_data_chart(True, False, False, False, hundth, 13, 1, Bvar, .02, "Q", [True, True,False, True, False, False], f)
gather_data_chart(False, False, False, False, hundth, 13, 1, Bvar, .02, "Q", [True, True,False, True, False, False], f)
if sys.argv[1] == "14":
with open("13x13chartsB_5E.csv", "w+") as f:
gather_data_chart(True, False, False, False, mill, 13, 1, Bvar, .05, "Q", [True, True,False, True, False, False], f)
gather_data_chart(False, False, False, False, mill, 13, 1, Bvar, .05, "Q", [True, True,False, True, False, False], f)
if sys.argv[1] == "15":
with open("5x5chartsL_1B.csv", "w+") as f:
gather_data_chart(True, False, False, False, hundth, 5, Lvar, 1, .02, "P", [True, True,True, False, False, False], f)
gather_data_chart(False, False, False, False, hundth, 5, Lvar, 1, .02, "P", [True, True,True, False, False, False], f)
gather_data_chart(False, True, False, False, hundth, 5, Lvar, 1, .02, "P", [True, True,True, False, False, False], f)
if sys.argv[1] == "16":
with open("7x7chartsL_1B.csv", "w+") as f:
gather_data_chart(True, False, False, False, hundth, 7, Lvar, 1, .02, "P", [True, True,True, True, True, False], f)
gather_data_chart(False, False, False, False, hundth, 7, Lvar, 1, .02, "P", [True, True,True, True, True, False], f)
gather_data_chart(False, True, False, False, hundth, 7, Lvar, 1, .02, "P", [True, True,True, True, True, False], f)
if sys.argv[1] == "17":
with open("50km5x7x11chartsE,csv", "w+") as f:
gather_data_chart(True, False, False, False, large, 5, 8.838834764831844, .95, Evar2, "E", [True, True, False, False, False, False], f)
gather_data_chart(False, False, False, False, large, 5, 8.838834764831844, .95, Evar2, "E", [True, True, False, False, False, False], f)
gather_data_chart(True, False, False, False, large, 7, 5.892556509887896, .95, Evar2, "E", [True, True, False, False, False, False], f)
gather_data_chart(False, False, False, False, large, 7, 5.892556509887896, .95, Evar2, "E", [True, True, False, False, False, False], f)
if sys.argv[1] == "18":
with open("100km5x7x11chartsE,csv", "w+") as f:
gather_data_chart(True, False, False, False, large, 5, 2*8.838834764831844, .95, Evar2, "E", [True, True, False, False, False, False], f)
gather_data_chart(False, False, False, False, large, 5, 2*8.838834764831844, .95, Evar2, "E", [True, True, False, False, False, False], f)
gather_data_chart(True, False, False, False, large, 7, 2*5.892556509887896, .95, Evar2, "E", [True, True, False, False, False, False], f)
gather_data_chart(False, False, False, False, large, 7, 2*5.892556509887896, .95, Evar2, "E", [True, True, False, False, False, False], f)
if sys.argv[1] == "19":
with open("50km11chartsE,csv", "w+") as f:
gather_data_chart(True, False, False, False, large, 11, 3.5355339059327378, .95, Evar2, "E", [True, True, False, False, False, False], f)
gather_data_chart(False, False, False, False, large, 11, 3.5355339059327378, .95, Evar2, "E", [True, True, False, False, False, False], f)
if sys.argv[1] == "20":
with open("100km11chartsE,csv", "w+") as f:
gather_data_chart(True, False, False, False, large, 11, 2*3.5355339059327378, .95, Evar2, "E", [True, True, False, False, False, False], f)
gather_data_chart(False, False, False, False, large, 11, 2*3.5355339059327378, .95, Evar2, "E", [True, True, False, False, False, False], f)