The truth is that the human psyche fools us all into believing that the world is far simpler place than it really is, or from another perspective, complexity is in fact more complex than we can comprehend. A major step we can take in, ‘getting more real’ is to appreciate just how complex complexity is and what that means in terms of real behaviour and our ability to both predict it and influence it.
In this article I attempt to describe in a non-technical manner just how complex complexity is.
What do we mean by complexity?
There is no such thing as a complexity theory, even though many text books may have this phrase in their title. Complexity theory suggests that we have some kind of complete, consistent scientific or mathematical theory that explains complexity in all its guises. This is far from the case. What we do have is complexity science, which is a multidisciplinary science where specialists investigate the complexity and complex behaviour of different systems such as biological systems, communication systems, weather systems and every other sort of system you can think of. What are emerging from all this work are some general concepts regarding what identifies a complex system and some general characteristics of their behaviour. There is no practically useful formal definition of complexity because of the vast variations of systems that it pertains to.
Perceived complexity and the scientific view of complexity are very different. The truth is that we humans are very poor at assessing complexity and when compared to the more rigorous approach using complexity science we often get it wrong. For an example of what I mean click here. The big problem is that applying the science to real situations is very difficult, although progress is being made in developing usable techniques. However armed with a better understanding of the realities of complexity we can start to make more objective judgements and decisions in complex environments.
Complexity can be applied to structures and their dynamic behaviour. This is an important distinction because the structural complexity of something will affect the complexity of its dynamic behaviour. So if we want to try to gain a greater understanding or attempt to influence a complex system we have to look at its structural complexity as well as its behaviour.
Complexity changes with scale, which means that the complexity of a system can change as you look at its behaviour or structure at various levels of granularity. In general as you look at something at a larger scale its behavioural and structural complexity will reduce.
What Makes Something Complex?
From complexity science we can extract a set of structural and behavioural characteristics that can be found to some degree in all complex systems and some of these are discussed below:
They have many parts that interact with each other. Usually the more parts there are and the greater the number of interactions between them then the more complex they are structurally and behaviourally. Also the strength and breadth of influence between them affects the complexity. The strength of interaction is sometimes quantified in terms of the coupling coefficient(s) between the components.
All complex systems have feedback. Feedback is where two components influence each other so that as one changes the other changes which changes the first component and so on. This is what leads to the whistling heard through a microphone that is placed near a speaker. The microphone picks up the sound from the speaker and amplifies it through the speaker and so on.
There are two types of feedback. Negative feedback means that the output from component A that is fed into component B tends to cause the behaviour of component B to be attenuated and decay. Positive feedback means that the output from component A that influence component B tends to amplify the behaviour of component B. In general positive feedback feeds complex behaviour whereas negative feedback can reduce it.
Complex systems have non-linearity. This means that a small change in the influence on a component or system will cause a disproportionate response.
Complex systems are deterministic. This is a very important point and one that makes the whole concept of complexity much harder to swallow. In complexity science, ‘complexity’ does not mean ‘unknown’. Our scientifically sophisticated world means that we have a very good understanding of how many systems are structured and the interactions between the parts. In many cases we have mathematical theories and models that represent the systems, so they are ‘deterministic’. However the behaviour of the real system always diverges from our models in a relatively small period of time, for example weather forecast accuracy rapidly drops off after several hours.
Complex systems are sensitive to initial conditions. This is how complexity was first identified as a specific phenomenon. A very small change in one or more of the initial conditions can cause a system to generate a completely different response. The rate at which a system diverges from its behaviour due to a small change is an indicator of the level and type of complex behaviour.
The behaviour of complex systems includes periods of unpredictable behaviour. This unpredictability has nothing to do with the way we observe or measure the system but is inherent in its behaviour and we can do nothing about it. The longer the periods of unpredictability are then the more complex the behaviour is. I like to think of complexity as unpredictable periods of predictability.
The behaviour is greater than sum of its parts. This is sometimes called emergence, but I personally have an issue with that. However in general a system that seems very simple for which all of the components and the interactions are understood (it is deterministic) can produce amazingly unpredictably complex behaviour. By ‘unpredictable’ I don’t only mean that we don’t know when it may happen but also we could not have guessed at the form of the behaviour given everything we know about the system.
Complex systems are dynamically unstable. The dynamics of a complex system sit on a knife edge where any small change can cause large swings in behaviour which causes the system to enter yet another unstable state. Sometimes the system may find an area of stability where it becomes more predictable, but then a sudden change can force it back into unstable behaviour.
The Spectrum of Complexity
In complexity science we tend to identify complex behaviour at a point in time as falling into one of four domains. These domains do not have clear boundaries between them but complexity science can help us identify what domain a system may be in at any given time. The domains are described below.
Stable and ordered Domain
The stable domain is highly predictable at all times and is resistant to reasonable change or perturbation or its response is predictable. The stable domain may also show highly regular or cyclic behaviour. This behaviour is usually considered to define a ‘simple system’.
The complex domain covers a wide range of behaviours but in general there will be increasing periods of unpredictable behaviour as the system becomes more complex. The system will show other characteristics of complex systems and in general as it becomes more complex the time in which a prediction is reasonably accurate will decrease. The complex domain may also show some levels of periodic behaviour but each period and its behaviour is likely to be slightly different or there may be cycles within cycles.
Edge of Chaos (extreme complexity) Domain
The edge of chaos is a metaphor for a domain of behaviour in which a system is showing extremes of complex behaviour so it becomes less predictable and the magnitude of swings in the behaviour become greater. Also the rate at which the system diverges from any prediction increases exponentially as it reaches extreme levels of complexity. Although the system becomes highly sensitive to change the inherent unpredictability means that there is no such thing as a predictable result of a change and the system is close to being what we would technically call deterministically chaotic. There are views that it is in this domain that amazing things can happen and systems of complex components can self-organise into complex and stable structures and behaviours. It is most certainly true that self-organisation, which is a form of emergence, does occur, however to my knowledge there is little scientific evidence that suggests that this happens for all types of system or necessarily at the edge of chaos.
Deterministic Chaos Domain
As the system becomes more and more complex it eventually becomes unpredictable for the vast majority of the time. This is sometimes considered to be ‘random’ behaviour, however if you analyse the behaviour there are subtle patterns that are very difficult to detect. This domain is called deterministic chaos because we are still talking about systems for which we know a lot even though its behaviour is pseudo- random. Eventually, and given sometimes thousands or even millions of years this chaotic behaviour will have repeating patterns, whereas true randomness never repeats. There are scientific tests to identify true deterministically chaotic states and even when a system is in the chaotic domain it can suddenly transit into a complex or even stable state and then unpredictably return to chaos.
But things are more complex than this! Most systems can be viewed in various ways as being made up of many subsystems and if we look at the system in enough detail we will see that each subsystem will have its own complex behaviour and through coupling will influence the behaviour of other sub-systems.
What is a complex adaptive system?
An adaptive system is one that can react to changes in its local environment such that it maintains a level of stability. A perturbation in an adaptive system may lead to a level of instability, but the system will apply a level of feedback to move toward another stable state. This adaptation may have nothing to do with ‘intelligence’ within the system but is an inherent characteristic of the system itself. However any system that has some intelligent components, usually called, ‘agents’ will be able to adapt itself or its local environment. Any social system of animals has a level of adaptation and often the effect of adaptation can be to ‘regulate’ the system so it maintains behaviour within a set of boundaries.
How do I know how complex it is?
We have a natural tendency to believe that we have more control over a complex situation than is actually possible. The way that we tend to control these situations is to constrain them in some ways and also to make changes that we believe will influence the situation in a desired way. The problem is that a complex systems response to such actions will depend to a certain extent on which domain the system is in. Also the quirks of thinking kick in because:
We cannot subjectively identify the difference between the complex domain and edge of chaos domain.
We don’t understand what chaos really is and hence tend to believe that a situation is chaotic when in real (scientific) terms it is not (it’s usually just in the complex domain).
So to be able to influence a complex system in a way that has any chance of being predictable it is a good start to know what complex domain it is in. To do this we have to observe and measure aspects of the system that we want to change and use some rules of thumb to help us assess the complex domain.
I enclose a table of some pertinent questions to ask and pointers to what the answers may tell you about the domain that the system may be in.
Answers and Domain
|How quickly do my predictions become ineffective?||Very slowly. Highly predictive most of the time.Stable or low end of complexity Domains||Predictions are accurate for a reasonable proportion of key cyclic behaviour of the system.Mid to higher levels of the complexity domain.||Predictions are short lived and infrequent.High level complexity or heading into edge of chaos.||Unpredictable most if not all of the time. Long term and generalised statistical predictions are possible. Edge of chaos and possibly chaotic domains||Unpredictable. Full stop! Chaotic domain.|
|How is this window of prediction changing?||Prediction window is increasing. System is stabilising and becoming less complex.||Prediction window is staying much the same or oscillating. The complexity is remaining much the same.||Prediction window is decreasing but at a reasonable pace. System is increasing its complex behaviour, probably within the complex domain or moving from complex domain to edge of chaos.||Prediction window is decreasing rapidly. Moving through edge of chaos towards chaos.|
|How structurally complex is the system, has it a lot of non-linearity and positive feedback||Little feedback and non-linearity. Stable or low end complex domains.||Positive feedback and non-linearity. Likely to be in complex domain or higher domains.|
|What sort of cyclic/repeatable behaviour does it have?||Simple cyclic behaviour. Stable or low end complex domains.||Complex cycles within cycles but never quite the same in each cycle. Complex domain.||Extremely complex cycles within cycles. Very difficult to identify. Highly complex to edge of chaos domains.||Only long term general and statistical based cycles can be detected. Edge of chaos or possibly chaotic domains.||Complex and rapidly changing cycles that are never quite the same. Very difficult to detect. In most cases no cycles are detected. Chaotic domain.|
|If it’s an adaptive system how much flexibility has the agents got to influence their local environment?||Very rigid and no or little adaptation is possible. Could be in any domain.||Some limited adaptation is possible. Unlikely to be in chaotic domain.||High degree of localised adaptation is available but within set boundaries. Likely to be in complex domain.||No restrictions of adaptation. Likely to be in complex domain but may also move into edge of chaos domain.|
|How many extreme events do I get?||None. Stable domain or Low to mid complex domain||Occasional. Low to mid complex domain.||Occasional but increasing occurrence. Moving from mid to high complex domain.||A lot and increasing in frequency and magnitude. High complex or edge of chaos domains.||Very large and rapid swings in magnitude of behaviour. Chaotic domain.|
Complexity science has developed some methods of calculating or visualising the dynamics of a system but these require a significant understanding to use. The important point is that you need to use data and not people’s subjective opinions (because they will be wrong). I will cover the science based techniques that can be used on another page, more to follow…
Finally my personal experience and knowledge leads me to believe that human developed (non- naturally occurring) complex systems rarely become truly chaotic and it is our misconceptions that make us believe that they do. However there is no doubt that these systems can exhibit extreme levels of behaviour within the complex domain.
How can I Influence it or change it without all Hell Breaking Loose?
Everything that has gone before supports the fact that influencing or controlling a complex system is an extraordinary difficult task that has inherent and severe limitations on what can be achieved in reality. However using complexity science we are starting to identify approaches that can help optimise our positive interactions with complex systems.
Simplify the System
Our best chance to influence a system is to reduce its complexity as much as possible so that the system is less sensitive to influence and has longer and more predictable periods of predictability. We can simplify systems by using the following approaches:
Break into subsystems.
The first strategy is to convert a system into a loosely coupled system of systems. The primary approach is to identify points at which the coupling between components can be simplified and this should help identify boundaries around sub-systems. This is a major reason why our world works. Our world is extraordinarily complex with complex political systems, technological systems, legal systems, financial systems and a myriad of other things that we interact with and support us in our daily lives. The reason we can all have a reasonably stable and predictable daily life is that our coupling to these complex subsystems is simple and hence we are not unduly perturbed by their response, most of the time anyway.
Coupling is how one component influences another and as such we should try to optimise coupling through a system by ensuring that each coupling has the simplest behaviour that is possible.
Look at a component and try to gain an understanding of its drivers and the parameters that maintain it in a linear region. Non linearity is different to irregularity or periodicity; reducing non-linearity will reduce the magnitude of behavioural swings but not necessarily the frequency.
Reduce positive feedback loops.
Positive feedback can drive systems into high levels or domains of complexity. I a simplistic way I think of it as pumping energy back into the system.
Remember that a complex system can not only change its behaviour through its dynamics but also change its own structure and hence change its behaviour. There are also external influences on systems that change its complexity so this drive for simplification is not a ‘one off’ change but a continual process that includes monitoring the system and identify changes in its complexity.
Regulate the System
The science of cybernetics looks at systems that have the ability to control their own behaviour and this is termed regulation. In general a regulated system will should have fewer episodes of extreme behaviour and it should operate within certain boundaries. There are a few ways in which we can attempt to introduce a level of regulation into a system.
Use Negative Feedback.
Regulated systems often incorporate negative feedback loops where the output from a component is fed back into a feeder component in such a way as to reduces the output from the feeder component and hence the input into the other component. This tends to reduce the likelihood of entering complex domains where the extreme behaviour can increase.
Increase or introduce local adaptation
Local adaptation is often able to reduce the increase of extreme behaviours and can be thought of as a form of negative feedback, although it tends to me more sophisticated then mentioned above.
Regulate each subsystem
Consider regulating each sub system and not just looking at the entire system.
Applying Change to a Complex System
We live in a world full of systems that need to respond to external influences and so change is inevitable but from the system’s perspective change is a perturbation and it will change the behaviour of the system and often cause a significant shift through the domains of complexity.
Each perturbation takes a period of time for its influence to propagate through the system and also for the system to hopefully settle into a new mode of behaviour.
The time taken for a change to propagate through the system and for the behaviour to shift is unpredictable for complex systems.
The behavioural changes that occur due to a change are highly unpredictable.
A system’s sensitivity to change is dependent upon the complex domain in which it is operating. Generally as a system’s behaviour becomes more complex it has a larger pool of potential behaviours to choose from.
If changes are applied without leaving time for the system to respond then the outcome becomes less predictable and the system becomes less stable and hence will probably shift into a high level of complex behaviour.
So from a system’s perspective the old adage, ‘if it aint broke don’t fix it’ is a good one.
The guidelines for making changes are:
Only make changes if you absolutely need to.
Make small changes to isolated parts of the system
Model the system to understand better the potential effects of the change and how long it may take to propagate.
Give the change time to propagate.
Ensure that you can regulate the change.
Maximise the localised adaptation before making the change. This is a good way of regulating the change.
How can I Improve the Chances of Predicting what is going to Happen?
There is a large amount of inherent unpredictability in all complex systems and there is nothing you can do about it. However what we can do is attempt to optimise the effectiveness of our predictions when the system allows it.
The first thing to do is be very clear as to what specific characteristics of the system you want to predict. It is often the fact that in a complex system the predictability of each characteristic can be different at any point in time.
Remember that your prediction will always diverge from the actual behaviour at a rate that is dependent upon the manner of its complex behaviour and hence at its point within the domains of complexity. In general if a system has a medium to high level in the complex domain then its sensitivity to perturbation is at a point where it becomes extremely difficult to impossible to predict the response to a change.
Having simplified the system means that you can develop simpler dynamic models for the sub-systems. Dynamically modelling part of a system is a good way of improving the accuracy of predictions. Also dynamic models have the advantage that they can be run often using actual data from the system as new initial conditions. These models can be complex computer simulations, but often I have been surprised just how useful a spreadsheet based model can be.
There is the potential to understand a system’s behaviour based upon the observations of similar systems. However it only takes minute differences for the behaviour of two systems to diverge and so no two systems are the same so one has to understand the differences between the systems.
It is also useful to identify cyclic behaviour as this is a prediction in itself. For systems that have a long life-time statistical analysis can be a useful aid to prediction.
Finally prediction is not a one off process that can be done, ‘now and again’. You have to understand the prediction window and ensure that your frequency of prediction is greater than the prediction window.