mirror of https://github.com/gsi-upm/soil
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
1.0 KiB
Python
41 lines
1.0 KiB
Python
from . import NetworkAgent
|
|
|
|
|
|
class CounterModel(NetworkAgent):
|
|
"""
|
|
Dummy behaviour. It counts the number of nodes in the network and neighbors
|
|
in each step and adds it to its state.
|
|
"""
|
|
|
|
times = 0
|
|
neighbors = 0
|
|
total = 0
|
|
|
|
def step(self):
|
|
# Outside effects
|
|
total = len(list(self.model.schedule._agents))
|
|
neighbors = len(list(self.get_neighbors()))
|
|
self["times"] = self.get("times", 0) + 1
|
|
self["neighbors"] = neighbors
|
|
self["total"] = total
|
|
|
|
|
|
class AggregatedCounter(NetworkAgent):
|
|
"""
|
|
Dummy behaviour. It counts the number of nodes in the network and neighbors
|
|
in each step and adds it to its state.
|
|
"""
|
|
|
|
times = 0
|
|
neighbors = 0
|
|
total = 0
|
|
|
|
def step(self):
|
|
# Outside effects
|
|
self["times"] += 1
|
|
neighbors = len(list(self.get_neighbors()))
|
|
self["neighbors"] += neighbors
|
|
total = len(list(self.model.schedule.agents))
|
|
self["total"] += total
|
|
self.debug("Running for step: {}. Total: {}".format(self.now, total))
|