A special class of multi-agent systems applies concepts of evolution. We equip a set of agents with a parameter that denotes their fitness and evolve this set towards an overall increased fitness. Difficult is finding the right metrics that is applied to tackle the fitness parameter and mostly this is already the key to solve the problem at hand. Sometimes, such agent systems are also called evolutionary ensembles and the associated algorithms are also known as evolutionary (genetic) algorithms.
But let us first start with the term ensemble. In the most simple view, an ensemble is just a group of points. The points may be N-dimensional, thus each is being represented by a vector. Assume the points have furthermore a rather complex influence on the solution of a much larger abstract system. This system might be far to complex to be analytically described with formal mathematical rules, but nevertheless the impact of our ensemble points can be retrieved by means of numerical simulations. Obviously, a) we are free to alter the ensemble stepwise and b) we can rerun the simulation with each new point group.
Let there be metric defined on the solution space of our system, allowing us to judge whether the outcome of the system simulation has converged towards a certain direction. Then, we can use this metric as parameter of fitness to decide whether our last ensemble proposition was good or bad. Once you put all these things together, you can alter parts of your ensemble points by random generators and decide with the metric, if the set is kept or the previous ensemble is restored. We observe a convergence towards the fittest ensemble realization and thus a potential optimization of our system. This algorithmic technique solves the equation
here trying to minimize a functional difference between two inputs. In various applications this evolutionary approach offers a good trade-off between performance and complexity.
The use of evolutionary ensembles for the deployment in handheld radioisotope identification instruments is one of my latest activities in the field of nuclear detection.
In multi-agent systems, communication is the element that drives the problem solving. Memetism is the evolution within the communication and behaviour of the agents. Artifical tradition and communication structures, that can be exploited to force the system into mimmicking existing problem scenarios.