-
Notifications
You must be signed in to change notification settings - Fork 883
Projects for Google Summer of Code 2024
Project List
- Mesa Frames: Speeding up Mesa with vector operations
- Mesa Reinforcement: Integrating RL libraries into Mesa
- Cacheable Mesa: Storing results to allow playback and review
- Network Scheduler: Thinking of agents as dynamic adaptive networks
Please feel free to reach out via Mesa's Matrix chat or via email to [email protected] with any questions.
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
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
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:
- https://github.com/projectmesa/mesa/issues/1393
- https://github.com/Corvince/mesa-interactive
- https://github.com/projectmesa/mesa/issues/574
- https://github.com/projectmesa/mesa/pull/1933
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
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