 Complex adaptive systems are systems composed of multiple diverse elements that are capable of adaptation and thus can evolve over time to exhibit highly complex behaviour. Let's start from the beginning by talking a bit about adaptation. Adaptation is a process or capability through which systems can change in response to some event within their environment. In order for this to happen, there needs to be some control or regulatory mechanism within the system. Cybernetics is the area that deals with the system's regulatory mechanisms through what are called feedback loops, whereby the actions of a system generate some change in its environment and that change in turn feeds back to affect the system itself. A classical example given of this is a thermostat that regulates the temperature of a house. The system consists of a central controller where the desired temperature is set, a heater that creates an action that changes the state of the environment and a sensor to feedback the information about the environment to the controller. Wherever we have this basic degree of interaction and interdependence between elements, we can use the model of an adaptive system and feedback loops to describe its dynamics and thus we can model economies, society and ecosystems in this way. The different ways in which the interactions between a system and its environment affect each other generate different types of feedback loops. Primary among these are what are called positive and negative feedback. Firstly, positive feedback is an action that produces more of the same. For example, as global temperatures rise, Arctic sea ice melts. As this reflective sea ice disappears, the now exposed dark ocean waters absorb more heat, which in turn increases global temperature and so on. In contrast, negative feedback produces less of the same action. For example, the more the price of apples goes up, the less the demand for apples from consumers, which in turn feeds back to reduce the price of apples again. These different feedback patterns in turn give rise to different systems' properties. For example, negative feedback is a form of self-regulation that typically generates very stable systems, whereas positive feedback loops often have destabilizing effects. An example of how this works may be seen in a grounded flock of birds, any of which is likely to fly away when it sees a neighboring bird fly off. Every time another bird reacts and takes flight, it increases the likelihood of more birds flying away. Thus, the system can be said to be unstable due to these positive feedback loops that allow for small events to propagate through the system. This same dynamic can be seen in many other domains such as financial systems where a loss of confidence can cascade through the system generating a bank run. We've been talking about adaptation and feedback loops, but to get to complex adaptive systems requires multiple adaptive elements interacting. From these micro-level interactions, adaptive systems can self-organize, allowing for the emergence of some macro-level pattern. An example of this might be the formation of a culture, where individuals in close proximity develop standardized methods for interaction and coordination through a common set of greetings, language and rituals. Over time, these micro-interactions will develop into a formal cultural system. These emergence self-organize macro-structures, whether they are markets, social institutions or cities, then in turn feedback to affect the actions of the individuals within the system, both constraining and enabling their future actions. Given this emergence of new levels of order as the system evolves, the elements capacity for adaptation and the complex interactions within the system, it is almost impossible to predict the future state of a complex adaptive system with any accuracy. The only viable method for modeling how these systems evolve over time is to simply let them develop and see what happens. Fortunately, we have computers that can simulate this process. This method of simulation is called agent-based modeling, where an element is given a simple set of rules that govern its behavior and left to interact to see what macro-scale patterns emerge over time. This method has shown that even with very simple rules governing the agent's behavior, complex and unpredictable phenomena can arise. Complex adaptive systems and its friend cybernetics are more than just a study of how birds flock or thermostats work. They are a whole new paradigm with which to understand and model the complex set of interconnected feedback loops that make up the natural, social and technological world we live in.