Checklist and Best Practice Examples for Designing Self-Organizing Systems

From Self-Organization Wiki
Jump to: navigation, search

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?