scicom.knowledgespread.agents
Classes
A scientist with an idea. |
Module Contents
- class scicom.knowledgespread.agents.ScientistAgent(unique_id, model, pos, topicledger, geopos, birthtime, productivity, opposition=False)
Bases:
mesa.AgentA scientist with an idea.
Each scientist has a geographic position, is related to other agents by a social network, and is intialized with a starttime, that describes the year at which the agent becomes active.
- Parameters:
pos (tuple)
topicledger (list)
geopos (tuple)
birthtime (int)
productivity (tuple)
opposition (bool)
- pos
- a
- b
- c
- topicledger
- geopos
- birthtime
- age = 0
- opposition = False
- _currentActivationWeight()
Return an age dependent activation weight.
A bell-shaped function with a ramp, plateuax and decend. Can be drawn from random distribution in model initialization.
- Return type:
float
- _changeEpistemicPosition(neighbors)
Calculate the change in epistemic space.
From all neighbors select one random choice. To update the agents position, determine the heading towards the selected neighbor. If the agent is an oposing one, inverte the direction. Then select a random amount to move into the selected direction. The new position is noted down in the topic ledger an the the agent is moved.
- updateSocialNetwork()
Create new links in agents social network.
- moveGeoSpace()
- moveSocSpace(maxDist=1)
Change epistemic position based on social network.
- moveEpiSpace()
Change epistemic position based on distance in epistemic space.
- attendConference()
- step()
Agents activity starts after having reached the birthtime.
After initial start, at each step the agents age is increased by one. Each agent has a randomly generated age-dependent activation probability. Moveing happens first due to social connections. If no move due to social connections was possible, a move due to epistemic space search is attempted.
Once the possible activation weight drops below a threshold, the agent is removed from the schedule.