Skip to content

Projects for Google Summer of Code 2024

Tom Pike edited this page Feb 29, 2024 · 14 revisions

Project List

  1. Mesa Frames: Speeding up Mesa with vector operations
  2. Mesa Reinforcement: Integrating RL libraries into Mesa
  3. Cacheable Mesa: Storing results to allow playback and review
  4. Network Scheduler: Thinking of agents as dynamic adaptive networks

Please feel free to reach out via Mesa's Matrix chat or via email to tpike3@gmu.edu with any questions.

Mesa Frames

Description: Contributors develop a DataFrame way to conduct vectorized operations as part of agent based modelling to cause significant speed up in Mesa processes. Initial attempts have shown Polars provides significant speed up to Mesa models and can help dramatically improve ABMs in Python.

Expected Outcome: Mesa scheduling has a vectorized scheduling process that creates dramatic model speed up

Skills Required/Preferred:

  • Required: vector operations
  • Required: python

Size of project: 175 hours

Expected mentors: @rht, @EwoutH,@jackiekazil,@tpike3, @boyu

Rating: Medium

Mesa RL

Description: One of the first reinforcement learning models was the ABM El Farol Bar model. Multi-Agent RL (MARL) is a fundamental way to develop agent behaviors to uncover the dynamics of complex systems. Mesa would like an extension that allows users to easily integrate Python's reinforcement learning libraries (e.g. KerasRL, OpenAIbaselines, Open AI Gym, TFAgents etc) into agent evolution.

Expected Outcomes:

  • The landscape of RL libraries is researched. The most viable libraries are identified. A plan to integrate is created.
  • The integration plan is executed. The result is an example model that shows an integration as well as any additional code outside of the model to support it. The additional code should be abstracted for others to apply to their own research.
  • Stretch goal: Metrics for measuring model results.

Skills Required/Preferred:

  • Required: Machine Learning and Reinforcement Learning
  • Required: python

Size of project: 175 hours

Expected mentors: @boyu, @jackiekazil,@tpike3

Rating: Medium

Cacheable Mesa

Description: As ABMs are simulations and often have phase transitions (periods of rapid change to new stable states), being able to go back in time and replay key results would be a great addition to Mesa. Critically, no computation would be needed as the results are stored. Prior work/discussions:

Expected Outcomes: Mesa has an option to caches results, with the options for users to select the critical results they want to cache, so key parts of the simulation can be replayed.

Skills Required/Preferred:

  • Required: Python

Size of project: 175 hours

Expected mentors: @jackiekazil,@tpike3, @corvince

Rating: Medium

Network Scheduler

Description: Create an activation regime based on a network or hypergraph approach with potential inputs from set, group or topology that allows for multiple levels of agent processing. The idea is dynamic agent groups get , created, destroyed, activated, or go dormant based on interactions with the environment or other agents. A substantive start is multi-level mesa which needs to refactored, with a detailed description of this idea is available through arxiv - Multi-Level Mesa

Expected Outcomes: A network activation schedule that Mesa users can leverage in their models.

Skills Required/Preferred:

  • Required: Interest in learning or knowledge of networks, hypergraphs or group theory.

Size of project: 300 hours

Expected mentors: @jackiekazil,@tpike3

Rating: Hard