Evolving good hierarchical decompositions of complex systems
Many application areas represent the architecture of complex systems by means of hierarchical graphs containing basic entities with directed links between them, and showing the decomposition of systems into a hierarchical nested module structure. An interesting question is then: How best should such a complex system be decomposed into a hierarchical tree of nested modules? This paper describes an interesting complexity measure (based on an information theoretic minimum description length principle) which can be used to compare two such hierarchical decompositions. This is then used as the fitness function for a genetic algorithm (GA) which successfully explores the space of possible hierarchical decompositions of a system. The paper also describes the novel crosssover and mutation operators that are necessary in order to do this, and gives some examples of the system in practice.
hierarchical decomposition complexity minimum description length principle software design evolutionary algorithm