Evo2: Genetic Algorithm for Dynamic Programming & Optimization
Solve your most complex problems the way nature does.
A Genetic Algorithm (GA) is a problem-solving method (or heuristic search technique) often used in Artificial Intelligence to find optimal solutions to problems using systems inspired by evolutionary biology: mutation, selection, reproduction/inheritance and recombination.
GAs, like neural networks, are an example par excellence for an information processing paradigm that was originally developed and exhibited by nature, and subsequently transformed into computational algorithms.
GAs are typically used to provide closely approximated solutions to problems that cannot be solved easily using other techniques.
The Traveling Salesperson Problem (TSP)
One example of this kind of optimization problem is the Traveling Salesperson Problem (TSP), which asks the following question: "Given a list of cities and the distances between each pair of cities, what is the shortest possible route that visits each city and returns to the origin city?"
It is an NP-hard problem in combinatorial optimization, important in operations research and theoretical computer science. Of course, GAs aren't the only method used for solving such a problem, as Self Organized Maps or Kohonen neural networks are also very effective at solving the TSP problem.
Bio-Identical Genome and Algorithm
Evo2 is not only bio-inspired, but it is bio-identical in many aspects. Evo2 simulates every natural process from mate selection to DNA packaging and complete meiosis (cell division that reduces chromosomes by half).
Most standard genetic algorithms neglect to perform the multiple steps of meiosis that are vitally important to genetic variation, a crucially important variable in avoiding strong local minima.
During prophase, chromosomes synapse and a small amount of DNA is exchanged between homologous chromosomes through a process known as "crossing over." The critical part of prophase is alignment of tetrads into homologous pairs.
The Evo2 algorithm ensures that homologs are only created from unrelated, opposite-sex chromosomes.
Metaphase and Anaphase
Metaphase and anaphase are the phases in which a great deal of variation is incorporated into the genome; however, most genetic algorithms leave these steps out completely. Evo2 simulates both phases completely and accurately.
No Computational Inbreeding
Most standard genetic algorithms are "inbred soup," technically speaking. Inbreeding reduces genetic variation, and as in nature, it prevents systems from evolving and adapting to their environment. In standard GAs, this means a system might be more likely to become stuck in local optima. While nature has at least three mechanisms to prevent inbreeding, most genetic algorithms fail to address this problem.
Evo2 takes a page out of Mother Nature's handbook to avoid inbreeding.
- First, it prevents offspring from reproducing. Inbreeding results in increased homozygosity, contributing to increased chances of offspring that are affected by recessive or deleterious traits.
- Second, it drives away young males to prevent incest mating between siblings.
- Third, it engages The Westermark effect. This is a psychological effect through which individuals who are raised in close proximity during childhood become desensitized to later sexual attraction.
Epigenetic theory describes how changes in gene expression may be caused by mechanisms other than changes in the underlying DNA sequence, temporarily or through multiple generations, by influencing a network of chemical switches within cells collectively known as the epigenome.
Evo2 can simulate epigenetic switches, allowing the system to be temporarily penalized for actions such as being too greedy or risk averse.
Simulated annealing is a probabilistic metaheuristic for the global optimization problem of locating a good approximation to the global optimum of a given function in a large search space. It is often used when the search space is discrete. For certain problems, simulated annealing may be more efficient than exhaustive enumeration.
Evo2 can save genealogical information for each genome so users may review the progression of the genetic algorithm to see how certain genes have evolved over time.
Evo2 features a built-in karyogram that allows visualization of genomes while genetic algorithms are evolving. The karyogram could be customized to display genealogy information for specific genomes via a context menu.
Evo2 has numerous applications in finance and beyond.
Evo2 can be used for genetic programming (autonomous creation of trading systems), trading system optimization, portfolio optimization, asset allocation, and non-finance related applications including but not limited to:
- Artificial creativity
- Automated design
- Chemical kinetics
- Control engineering
- Feynman-Kac models
- Filtering and signal processing
- Scheduling applications
- Mechanical engineering
- Stochastic optimization
- Timetabling problems
- Protein folding
- Dynamic programming
Primarily used by institutional quantitative traders, Genetic Algorithms such as Evo2 can be implemented to autonomously generate and compile source code for trading strategies, also known as dynamic programming. The software actually evolves itself into perfection, which is a form of advanced Artificial Intelligence (the kind Stephen Hawking warned us about).
GAs can also be used to optimize human-designed trading strategies, and can even be used with neural networks to create genetically optimized nonlinear adaptive filters.
Genetic Algorithms can also be used to solve scheduling problems in production planning.
Scheduling problems most often use heuristic algorithms to search for an optimal solution. Heuristic search methods suffer as the inputs become more complex and varied. This type of problem is known in computer science as an NP-Hard problem. This means that there are no known algorithms for finding an optimal solution in polynomial time.
GAs are well suited for solving production scheduling problems, because unlike heuristic methods, GAs operate on a population of solutions rather than a single solution.
Genetic Algorithms have gained immense popularity in engineering search and optimization problems. GAs such as Evo2 are attractive in engineering design and applications because they're easy to use and likely to find the globally best design or solution, which is superior to any other design or solution.
GAs can be used for mechanical component design, structure design, process design, planning, job scheduling, VLSI design, control systems, electrical power system design and more. GAs are also suitable for multi-objective optimal design problems involving multiple objectives.
In the field of molecular biology, gene expression profiling is the measurement of the activity (the expression) of thousands of genes at once to create a global picture of cellular function. These profiles can, for example, distinguish between cells that are actively dividing, or show how the cells react to a particular treatment.
Many experiments of this sort measure an entire genome simultaneously-i.e., every gene present in a particular cell. Genetic Algorithms are well suited for gene expression profiling. A hybrid GA clustering schema, combining the merits of Simulated Annealing, has been found to be more accurate and robust at finding near-optimal sets of medoids than other methods.
High Performance Computing
Modulus has built its reputation on complex, ultra-high performance solutions. We serve much of the financial industry, from JP Morgan Chase, Bank of America, and Credit Suisse to TD Ameritrade and the NASDAQ Stock Exchange. We also serve some very diverse sectors: from space exploration (NASA) to business intelligence (IBM, Shell, Siemens) to healthcare, national security, defense, and law enforcement.
Visit our sister company, Modulus Global, Inc., if your optimization problem requires High Performance Computing. Modulus Global provides custom FPGA and ASIC hardware engineering to speed optimization by 10 to 100 times the speed of software written in the C programming language.
Modulus Global, Inc. provides high-end, turnkey solutions that do not require software development, whereas Modulus Financial Engineering, Inc. provides software development components and frameworks for self-serve solutions.
Modulus Source Code License
The Modulus Source Code License includes approximately three million lines of source code, documentation, and example projects, with a perpetual license, including source code updates, for the following products: TA-SDK C++, C#, Java, JS, VB, TradeScript C++ and C#, StockChartX C++, C#, JS, Java, Obj C, Neural Trader C++, Evo2 C#, PatternLogic C#, MyExchange C#, SuperWebSocket Data Server C#, RMD Server C++, M4 WinForm C#, M4 WPF C#, M4 Forex HTML5, M4 Standard HTML5, M4 iOS Obj C, M4 Mac Obj C, M4 Android Java and more. Most products are provided with complete source code. Support and consulting services available separately.
Since 1997, Modulus has provided advanced technology products and services to clients including The NASDAQ Stock Market, J.P. Morgan Chase, Bank of America, Credit Suisse, Barclays Capital, Goldman Sachs, Merrill Lynch, Fidelity, TD Ameritrade, Devon Energy, IBM, Microsoft, Yahoo!, Google, Cisco, Adobe, Ford Motor Company, SAS Institute, Rutgers University, University of Chicago, MIT, Oak Ridge National Laboratory, NASA, and thousands of other corporate, educational, governmental, and non-profit institutions, throughout 94 countries. Our products and services reach millions of end users around the world.