Guarana Technologies is specializing in the creation and implementation of evolutionary algorithms.
In artificial intelligence, an evolutionary algorithm (EA) is a subset of evolutionary computation, a generic population-based metaheuristic optimization algorithm.

An EA uses some mechanisms inspired by biological evolution: 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 environment within which the solutions “live”. 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.
Evolutionary algorithms often perform well approximating solutions to all types of problems because they ideally do not make any assumption about the underlying fitness landscape; this generality is shown by successes in fields as diverse as engineering, art, biology, economics, marketing, genetics, operations research, robotics, social sciences, physics, politics and chemistry.
How does it work?
An evolutionary algorithm can be applied to any kind of information system. When it comes to make a system smarter, statistics have been for a long time the only improvement methods. An evolutionary algorithm is different from those”classical” optimization methods in several ways:
- Randomness
Randomness. First, it relies in part on random sampling. This makes it a nondeterministic method, which may yield somewhat different solutions on different runs — even if you haven’t changed your model. In contrast, the linear, nonlinear and integer Solvers also included in the Premium Solver are deterministic methods — they always yield the same solution if you start with the same values in the decision variable cells.
- Population
Second, where most classical optimization methods maintain a single best solution found so far, an evolutionary algorithm maintains a population of candidate solutions. Only one (or a few, with equivalent objectives) of these is “best,” but the other members of the population are “sample points” in other regions of the search space, where a better solution may later be found.
The use of a population of solutions helps the evolutionary algorithm avoid becoming “trapped” at a local optimum, when an even better optimum may be found outside the vicinity of the current solution.
- Mutation
Third — inspired by the role of mutation of an organism’s DNA in natural evolution — an evolutionary algorithm periodically makes random changes or mutations in one or more members of the current population, yielding a new candidate solution (which may be better or worse than existing population members).
There are many possible ways to perform a “mutation,” and the Evolutionary Solver actually employs three different mutation strategies. The result of a mutation may be an infeasible solution, and the Evolutionary Solver attempts to “repair” such a solution to make it feasible; this is sometimes, but not always, successful.
- Crossover
Fourth — inspired by the role of sexual reproduction in the evolution of living things — an evolutionary algorithm attempts to combine elements of existing solutions in order to create a new solution, with some of the features of each “parent.” The elements (e.g. decision variable values) of existing solutions are combined in a “crossover” operation, inspired by the crossover of DNA strands that occurs in reproduction of biological organisms.
As with mutation, there are many possible ways to perform a crossover operation — some much better than others — and the Evolutionary Solver actually employs multiple variations of two different crossover strategies.
- Selection
Fifth — inspired by the role of natural selection in evolution — an evolutionary algorithm performs a selection process in which the “most fit” members of the population survive, and the “least fit” members are eliminated. In a constrained optimization problem, the notion of “fitness” depends partly on whether a solution is feasible (i.e. whether it satisfies all of the constraints), and partly on its objective function value. The selection process is the step that guides the evolutionary algorithm towards ever-better solutions.
- Drawbacks
A drawback of any evolutionary algorithm is that a solution is “better” only in comparison to other, presently known solutions; such an algorithm actually has no concept of an “optimal solution,” or any way to test whether a solution is optimal. (For this reason, evolutionary algorithms are best employed on problems where it is difficult or impossible to test for optimality.) This also means that an evolutionary algorithm never knows for certain when to stop, aside from the length of time, or the number of iterations or candidate solutions, that you wish to allow it to explore.
What do we do?
As experts in this field, we specialize in the analysis of information systems and the implementation of a custom made evolutionary algorithm. It will allow the modified system to operate more efficiently and smartly.
As soon as we define the system, the parameters and the problem we can develop and experiment our algorithm in real conditions and then compare to the prior results.
Many applications of this technology can be done. A description of a system as well as the definition of a problematic will help us guiding you in a precise cost and benefit presentation of our services.