This presentation of my PhD addresses the challenges of engineering complex Cyber-Physical Swarms (CPSWs) - systems consisting of numerous interconnected devices exhibiting collective intelligence.
Key Contributions:
- Hybrid Aggregate Computing (HAC): A novel approach that merges declarative programming (Aggregate Computing) with learning techniques (Multi-Agent Reinforcement Learning) to synthesize and deploy self-organizing behaviors with predictable outcomes.
- Research Roadmap: Outlines a systematic methodology to engineer CPSWs, highlighting the interplay between functionality, non-functional requirements, algorithms, execution strategies, and system structures.
- Specific Algorithms & Techniques:
- Collective Program Sketching: Synthesizes missing program blocks ("holes") through learning from realistic simulations.
- Distributed Schedulers: Employs local decision-making to optimize the execution of aggregate programs.
- Field-Informed Reinforcement Learning: Leverages computational fields from Aggregate Computing to guide and enhance the learning process in multi-agent environments.
- Engineering Methodologies:
- FRASP (Functional Reactive Approach to Self-Organization Programming): A distributed programming model inspired by functional reactive programming.
- MacroSwarm: An API for composing complex swarm behaviors.
- Additional Methodologies: Swarm Sensing API, DevOps for CPSWs, abstractions for distributed sensing, and pulverization architecture for deployment.
- Tools:
- ScaRLib: A tool for cooperative multi-agent reinforcement learning.
- ScaFi-Web: A web-based simulator for Aggregate Computing.
Future Directions:
- Bridge the reality gap by deploying on real CPSWs and improving the toolchain.
- Enhance learning algorithms to learn deployment and runtime adjustments.
- Explore Aggregate Computing to create resilient infrastructures for learning (e.g., federated learning).
Overall:
This research provides a comprehensive framework and concrete tools for engineering CPSWs, leveraging a language-based approach that combines programming and learning. It paves the way for building more robust and predictable self-organizing systems in diverse domains.