Skip to content

Commit

Permalink
Cleaned code
Browse files Browse the repository at this point in the history
  • Loading branch information
Wolf Zander committed Aug 30, 2018
1 parent de479f2 commit 6d8cc8b
Show file tree
Hide file tree
Showing 4 changed files with 106 additions and 143 deletions.
16 changes: 6 additions & 10 deletions config.ini
Original file line number Diff line number Diff line change
@@ -1,24 +1,20 @@
[PARAMETERS]
no_of_transactions = 2500
lambda = 25
no_of_transactions = 300
lambda = 50
no_of_agents = 2
alpha = 1
alpha = 0.005
latency = 1
distance = 500
distance = 5000
tip_selection_algo = weighted
agent_choice = [1.0,0.0]
printing = True


[EVENT1]
step = 1000
step = 200
agent_choice = [0.7,0.3]


[EVENT2]
step = 1500
step = 250
distance = 1


[EVENT3]
step = 2500
16 changes: 8 additions & 8 deletions core.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

from simulation.helpers import update_progress, csv_export
from simulation.plotting import print_graph, print_tips_over_time, \
print_tips_over_time_multiple_agents, print_tips_over_time_multiple_agents_with_tangle
print_tips_over_time_multiple_agents, print_tips_over_time_multiple_agents_with_tangle, print_attachment_probabilities
from simulation.simulation import Single_Agent_Simulation
from simulation.simulation_multi_agent import Multi_Agent_Simulation

Expand Down Expand Up @@ -47,7 +47,7 @@

for i in range(runs):

simu2 = Multi_Agent_Simulation(50, 3, 2, 0.005, 1, "weighted", _agent_choice=[0.7,0.3], _printing=True)
simu2 = Multi_Agent_Simulation(100, 3, 2, 0.005, 1, "weighted", _agent_choice=[0.7,0.3], _printing=True)
simu2.setup()
simu2.run()

Expand Down Expand Up @@ -85,6 +85,7 @@
# print_tips_over_time(simu2)
# print_tips_over_time_multiple_agents(simu2, simu2.no_of_transactions)
# print_tips_over_time_multiple_agents_with_tangle(simu2, simu2.no_of_transactions)
#print_attachment_probabilities(simu2)


#Plotting the partitioning values for multiple simulations, cumulative mean and 95% confidence interval
Expand All @@ -109,10 +110,9 @@
# # plt.plot(np.unique(simu2.arrival_times), np.poly1d(np.polyfit(simu2.arrival_times, simu2.record_desc, 1))(np.unique(simu2.arrival_times)), label="Best Fit Line", linestyle='--')
# plt.xlabel("Time (s)")
# plt.ylabel("Descendants of incoming transaction / total current transactions in Tangle")
# # plt.plot(partitioning_values)
# # plt.plot(average_partitioning_across_simus)
# # lower_bound_95_confidence_interval = st.t.interval(0.80, len(partitioning_values)-1, loc=np.mean(partitioning_values), scale=st.sem(partitioning_values))[0]
# # upper_bound_95_confidence_interval = st.t.interval(0.80, len(partitioning_values)-1, loc=np.mean(partitioning_values), scale=st.sem(partitioning_values))[1]
# # plt.axhline(y=lower_bound_95_confidence_interval, color='r', linestyle='-')
# # plt.axhline(y=upper_bound_95_confidence_interval, color='r', linestyle='-')
# plt.plot(simu2.record_attachment_probabilities)
# lower_bound_95_confidence_interval = st.t.interval(0.80, len(partitioning_values)-1, loc=np.mean(partitioning_values), scale=st.sem(partitioning_values))[0]
# upper_bound_95_confidence_interval = st.t.interval(0.80, len(partitioning_values)-1, loc=np.mean(partitioning_values), scale=st.sem(partitioning_values))[1]
# plt.axhline(y=lower_bound_95_confidence_interval, color='r', linestyle='-')
# plt.axhline(y=upper_bound_95_confidence_interval, color='r', linestyle='-')
# plt.show()
38 changes: 38 additions & 0 deletions simulation/plotting.py
Original file line number Diff line number Diff line change
Expand Up @@ -248,3 +248,41 @@ def print_tips_over_time_multiple_agents(self, no_current_transactions):


plt.show()



def print_attachment_probabilities(self):

plt.figure(figsize=(14, 8))
print(self.record_attachment_probabilities)

x = np.squeeze([i[0] for i in self.record_attachment_probabilities])
y = np.squeeze([i[1] for i in self.record_attachment_probabilities])
# print(x,y)

plt.plot(x,y)
plt.plot(np.unique(x), np.poly1d(np.polyfit(x, y, 1))(np.unique(x)),\
label="Best Fit", linestyle='--')

x_mean = [i for i in x]
y_mean = [np.mean(y) for i in y]
print(np.mean(y))
plt.plot(x_mean, y_mean,\
label="Average", linestyle='-')

# lower_bound_95_confidence_interval = st.t.interval(0.80, len(partitioning_values)-1, loc=np.mean(partitioning_values), scale=st.sem(partitioning_values))[0]
# upper_bound_95_confidence_interval = st.t.interval(0.80, len(partitioning_values)-1, loc=np.mean(partitioning_values), scale=st.sem(partitioning_values))[1]
# plt.axhline(y=lower_bound_95_confidence_interval, color='r', linestyle='-')
# plt.axhline(y=upper_bound_95_confidence_interval, color='r', linestyle='-')

title = "Transactions = " + str(self.no_of_transactions) + \
", " + r'$\lambda$' + " = " + str(self.lam) + \
", " + r'$d$' + " = " + str(self.distances[1][0])
if (self.tip_selection_algo == "weighted"):
title += ", " + r'$\alpha$' + " = " + str(self.alpha)
plt.xlabel("Transactions (time)")
# plt.xticks([])
plt.ylabel("Probability to attach to sub-Tangle")
plt.legend(loc='upper left')
plt.title(title)
plt.show()
Loading

0 comments on commit 6d8cc8b

Please sign in to comment.