Professional Development uses data gathered from Harvard Kennedy School’s website on Executive Education Programs to explore L&D programs in a company with high employee turnover and a number of regional branches.
Trainers, employees, and branches are pulled from example datasets - which can be interchanged with real-world data - and placed throughout the environment according to branch location. At creation (both init and mid-simulation agent creation), employees receive a training plan based on their job type. Credit Specialists, for example, must complete courses in Leadership and Character in Uncertain Times, Climate Change Policy: Economics and Politics, Mastering Negotiation, and Public Finance in a Complex World. To complete these courses, employees must put in a request to the simulation manager agent and wait in a queue until the minimum number of people needed for each course is reached and a trainer who specializes in that course is available.
To keep track of the statuses of all the different courses, trainers, and employees, the simulation manager uses several dictionaries and lists.
- trainers → Contains basic knowledge of each trainer’s id, branch location, and courses they can teach (trainers agent_ids serve as dictionary keys)
- courses → Each course is a key to access the duration in weeks of the course
- available_trainers → List of idle trainers awaiting assignment
- course_queues → Each course is a key to access the current list of employees waiting for the course to begin
Using names and agent_ids to store information within an agent such as key information and/or task queues is a great way to organize your simulation in HASH and save precious computation time. This will allow you to easily share and access information within agents, particularly a manager, without having to access neighbors or globals every time step.