【Topic 1: Problem Solving. Subtopic 1.8: Complex Adaptive System (CAS)】
HOW to solve a problem (2010 thoughts)?
John H. Holland writes a book “Signals and Boundaries”, published in 2012. This book is pretty difficult to comprehend because of CAS multidisciplinary nature: math, genetics, micro-biology, ecology, AI, business, politics, linguistics, computer science, systems thinking, etc.
I was engaging in a design project for an oil company when I read this book. The design work involves building a community cloud, where machines need to select their configurable software / hardware components and applications. Each component or application has several options you may either click one of them or click “don’t know”, resulting a bit string consisting of 0 (not selected), 1 (selected) or # (don’t know). Now, the component and its sub-components are arranged hierarchically, a tree-like “boundary hierarchy” can be drawn, such as Figure 4.3 of the book. You may apply Holland’s genetic algorithm in train mode or run mode on these hierarchical bit-strings. In train mode, the training data assign the most appropriate value for algorithmic parameters. In run mode, stakeholders, such as development engineer or operation administrator (so-called “devops”) or project manager, input their design by selecting component / subcomponent / app / app environment. Then the CAS algorithm can run thousands of times with the parameters set in train mode to reach an optimum design. Various stakeholders input their worldview designs which includes conflicted interests that need to be resolved. Multiple agents behind the scene interact each other to perform the conflict resolution. Holland and his colleagues in Santa Fei Institute has an Echo model of multi-agent system to do that with reproduction, recombination, niche evolution or co-evolving.
In practice, there are many issues when building a CAS system, e.g. how to check redundancy of inputted design, how to use the experience (best design so far) under previous environment, how to accumulate experience in a knowledge base and in what form, how the system can evolve automatically when outside environment changes (such as new technology becomes available, like certain CPUs need to be replaced by GPUs in a datacenter), etc.