36 lines
1.0 KiB
Python
36 lines
1.0 KiB
Python
from agent_data import grade_data
|
|
from dataclasses import dataclass
|
|
import numpy as np
|
|
from typing import List,Tuple,Dict
|
|
|
|
@dataclass
|
|
class AgentSetup:
|
|
id:int
|
|
grade:str
|
|
speed:float
|
|
radius:float
|
|
|
|
def AgentConfig()->Tuple[List[AgentSetup],Dict[str,int]]:
|
|
agent_id = 1
|
|
pop_count = {}
|
|
all_agents = []
|
|
for key in grade_data.keys():
|
|
grade = grade_data[key]
|
|
#pop_count.append(grade["Pop Current"])
|
|
pop_count[key] = grade["Pop Current"]
|
|
for _ in range(grade["Pop Current"]):
|
|
rng = np.random.default_rng()
|
|
agent = AgentSetup(
|
|
id=agent_id,
|
|
grade=key,
|
|
speed=max(0.1,(rng.normal(
|
|
grade["Speed Mean"],
|
|
grade["Speed Std Dev"]
|
|
))),
|
|
radius=grade["Radius"]
|
|
)
|
|
all_agents.append(agent)
|
|
agent_id +=1
|
|
return all_agents,pop_count
|
|
|