def __init__(self, N, width, height): self.agents = N self.grid = MultiGrid(width, height, True) self.schedule = RandomActivation(self) self.running = True self.steps = 0 self.encounters = 0 self.mean_encounters = 0 # creating agents by iterating through n_agents for i in range(self.agents): # specify an agent as an object of class 'Agent' with unique_ID 'i' agent = Agent(i, self) # specify pitch measures for the agent as type 'float' agent.iqr = float(iqr.iloc[i]) agent.speechrate = float(speechrate.iloc[i]) agent.mad = float(mad.iloc[i]) agent.pause = float(pause.iloc[i]) agent.diagnosis = float(diagnosis.iloc[i]) agent.symptom_severity = (agent.iqr + agent.mad + (1 - agent.speechrate) + agent.pause) / 4 # add the agent to the model schedule self.schedule.add(agent) # adding the agent to a random grid cell x = self.random.randrange(self.grid.width) y = self.random.randrange(self.grid.height) self.grid.place_agent(agent, (x, y)) # add data-collector to the agent self.datacollector = DataCollector( agent_reporters={ "interactions": "unique_interactions", "interaction_time": "interaction_time", "conversation_time": "conversation_time", "change_IQR": "change_iqr", "change_MAD": "change_mad", "change_Speechrate": "change_speechrate", "change_PauseFreq": "change_pause", "abs_change_IQR": "abs_change_iqr", "abs_change_MAD": "abs_change_mad", "abs_change_Speechrate": "abs_change_speechrate", "abs_change_PauseFreq": "abs_change_pause", "activity": "activity", "diagnosis": "diagnosis" }, model_reporters={"Encounters": "encounters"})