|
|
@ -119,14 +119,12 @@ def log_swarm(agents: List[Agent], tasks: List[str]):
|
|
|
|
|
|
|
|
|
|
|
|
def exponential_swarm(agents: List[Agent], tasks: List[str]):
|
|
|
|
def exponential_swarm(agents: List[Agent], tasks: List[str]):
|
|
|
|
for i in range(len(agents)):
|
|
|
|
for i in range(len(agents)):
|
|
|
|
index = min(
|
|
|
|
index = min(int(2**i), len(agents) - 1)
|
|
|
|
int(2 ** i),
|
|
|
|
|
|
|
|
len(agents)-1
|
|
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
if tasks:
|
|
|
|
if tasks:
|
|
|
|
task = tasks.pop(0)
|
|
|
|
task = tasks.pop(0)
|
|
|
|
agents[index].run(task)
|
|
|
|
agents[index].run(task)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def geometric_swarm(agents, tasks):
|
|
|
|
def geometric_swarm(agents, tasks):
|
|
|
|
ratio = 2
|
|
|
|
ratio = 2
|
|
|
|
for i in range(range(len(agents))):
|
|
|
|
for i in range(range(len(agents))):
|
|
|
@ -143,6 +141,7 @@ def harmonic_swarm(agents: List[Agent], tasks: List[str]):
|
|
|
|
task = tasks.pop(0)
|
|
|
|
task = tasks.pop(0)
|
|
|
|
agents[index].run(task)
|
|
|
|
agents[index].run(task)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def staircase_swarm(agents: List[Agent], task: str):
|
|
|
|
def staircase_swarm(agents: List[Agent], task: str):
|
|
|
|
step = len(agents) // 5
|
|
|
|
step = len(agents) // 5
|
|
|
|
for i in range(len(agents)):
|
|
|
|
for i in range(len(agents)):
|
|
|
@ -155,6 +154,7 @@ def sigmoid_swarm(agents: List[Agent], task: str):
|
|
|
|
index = int(len(agents) / (1 + math.exp(-i)))
|
|
|
|
index = int(len(agents) / (1 + math.exp(-i)))
|
|
|
|
agents[index].run(task)
|
|
|
|
agents[index].run(task)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def sinusoidal_swarm(agents: List[Agent], task: str):
|
|
|
|
def sinusoidal_swarm(agents: List[Agent], task: str):
|
|
|
|
for i in range(len(agents)):
|
|
|
|
for i in range(len(agents)):
|
|
|
|
index = int((math.sin(i) + 1) / 2 * len(agents))
|
|
|
|
index = int((math.sin(i) + 1) / 2 * len(agents))
|
|
|
|