Checklist and Best Practice Examples for Designing Self-Organizing Systems
From Self-Organization Wiki
Contents
Design Process
Difference w.r.t. traditional system design
- a top-down approach should produce local rules
1. Clearly specify
- goals
- performance metrics
- constraints (limited resources, like energy)
2. Check the following options
- Applying a reference design
- Biologically-inspired
- From other disciplines
- Mathematical model
- Trial and error (test the resulting global behavior from different types of local interactions)
- Manual trial and error
- Evolutionary approaches
3. Iterate
- Refine goals
- Integrate more constraints into the model
Best Practice Example
- Define an idealized system (e.g. no delays, simple topologies, perfect and simple environment), where still no entity has global view
- Find a simple distributed solution for the given goal
- Gradually enhance the system model and solution to make it more realistic
Checklist
Issues to be kept in mind:
- Does the proposed solution meets the performance goals?
- Did you consider all important constraints? Is it feasible to implement in practice?
- Is the proposed solution scalable?
- Is the proposed solution robust to faults?
- Did you compare the solution to external control solutions and to known theoretical bounds?
- Are there any potential deadlocks or other impediments?