In artificial intelligence, an evolutionary algorithm (EA) is a subset of evolutionary computation, a generic population-based metaheuristic optimization algorithm. An EA uses mechanisms inspired by biological evolution, such as reproduction, mutation, recombination, and selection. Candidate solutions to the optimization problem play the role of individuals in a population, and the fitness function determines the quality of the solutions (see also loss function). Evolution of the population then takes place after the repeated application of the above operators. Artificial evolution (AE) describes a process involving individual evolutionary algorithms; EAs are individual components that participate in an AE.
Fitness DACs which follow the social consensus are part of an evolutionary algorithm. That evolutionary algorithm can measure DAC fitness. DAC fitness can be measured in economic efficiency/profitability, and they can be measured in how effectively they produce the intended results inherent in their design. So if we look at Bitcoin we can see for example it's not economically efficient because the price is trending down along with constant inflation or dilution, we can also see that it doesn't achieve it's long term social goal if Proof of Work ultimately centralizes to the point where we have to trust mining pools, large industrial hashing companies, etc.
Reproduction
A Bitshares DAC can be reproduced in several ways.
1) There is cloning which is just a fork, a new brand, and a relaunch where hardly any mutation takes place. This isn't very desirable because it can split resources up between two identical designs weakening them both. This would be like having two identical Bitshares DACs or with exactly the same features (Devshares?).
2) There is reproduction. This is when you have some new innovative feature added so that it's not a direct clone. Sparkle for example might fit here depending on where developers take it.
MutationMutations are some random variable(s) which allow each DAC in the family chain to have a distinct character. This allows for feature diversity across the family chain which can allow each DAC to optimize for different purposes.
CrossoverThis allows for existing solutions to combine together. This process would be similar to the merger which created the SuperDAC or where features from multiple DACs can be shared, copied, etc.
Evolutionary optimization techniques are particularly useful in situations in which it is easy to determine the quality of a single solution, but hard to go through all possible solutions one by one (it is easy to determine the driving time for a particular route of the delivery truck, but it is almost impossible to check all possible routes once the number of destinations grows to more than a handful).
An evolutionary algorithm is a process which approximates the solution to a problem over time through iterative functions. The name for this process behind Bitshares is called artificial evolution in academic literature. This process mirrors biological evolution where each DAC can be thought of as a design attempting to solve "the great problem" in competition with other designs until an optimal design solution emerges. Bitcoin centralization "one blockchain to rule them all" actually thwarts this artificial evolutionary process because it takes away the human incentives to develop completely new designs and it also restricts designs to fix into the Bitcoin ecosystem which limits design diversity.
In order to use evolutionary optimization, one has to define for every possible solution s to the problem of interest (i.e., every possible route in the case of the delivery truck) how 'good' it is. This is done by introducing a scalar-valued function f(s) (scalar valued means that f(s) is a simple number, such as 0.3, while s can be a more complicated object, for example a list of destination addresses in the case of the delivery truck), which is called the fitness function or fitness landscape.
A high f(s) implies that s is a good solution. In the case of the delivery truck, f(s) could be the number of deliveries per hour on route s. The best, or at least a very good, solution is then found in the following way: initially, a population of random solutions is created. Then, the solutions are mutated and selected for those with higher fitness, until a satisfying solution has been found.
The more DACs we have the faster our industry can evolve if we adhere to certain rules. Clones (shitcoins) don't contribute much to the evolutionary algorithm. Many of these clones are mere pump and dump schemes designed to make developers rich. In the early days these schemes were tolerable because the industry was so new that getting rich was one of the ways to attract developer talent. As the industry becomes more mature it should become more competitive and the adherence to the evolutionary algorithm may become more important.
Many DACs which compete but which have slightly different designs will be important. Over time DACs will want to distinguish themselves as much as possible so having novel and unique innovative features will be important. If there are a lot of truly innovative DACs with highly diverse features and the competitive process focuses in on innovation engineering then all DACs can become stronger as they compete and learn from each other.
Reference
http://en.wikipedia.org/wiki/Evolutionary_algorithm#Implementation_of_biological_processes