Skip to content

Commit

Permalink
bianconi performance improved
Browse files Browse the repository at this point in the history
  • Loading branch information
lueckem committed Nov 30, 2023
1 parent f19b6ed commit 99406b5
Showing 1 changed file with 7 additions and 9 deletions.
16 changes: 7 additions & 9 deletions sponet/network_generator.py
Original file line number Diff line number Diff line change
Expand Up @@ -379,24 +379,22 @@ def __init__(

def __call__(self) -> nx.Graph:
g = nx.star_graph(self.m)
size_g = len(g)
degrees = [d for _, d in g.degree()]
fitness_values = self.rng.beta(1, self.lamda + 1, size_g).tolist()
degrees = np.array([d for _, d in g.degree()])
degrees = np.concatenate(
[degrees, np.ones(self.num_agents - len(degrees)) * self.m]
)
fitness_values = self.rng.beta(1, self.lamda + 1, self.num_agents)

while size_g < self.num_agents:
probabilities = np.array(degrees) * np.array(fitness_values)
for size_g in range(len(g), self.num_agents):
probabilities = degrees[:size_g] * fitness_values[:size_g]
probabilities /= np.sum(probabilities)
nodes_to_link = self.rng.choice(
size_g, size=self.m, replace=False, p=probabilities, shuffle=False
)
g.add_edges_from(zip([size_g] * self.m, nodes_to_link))

fitness_values.append(self.rng.beta(1, self.lamda + 1))
for other in nodes_to_link:
degrees[other] += 1
degrees.append(self.m)

size_g += 1

return g

Expand Down

0 comments on commit 99406b5

Please sign in to comment.