EO is a template-based, ANSI-C++ evolutionary computation library that helps you to write your own stochastic optimization algorithms quickly. Evolutionary algorithms form a family of algorithms inspired by the theory of evolution, and solve various problems. They evolve a set of solutions to a given problem in order to produce the best results. These are stochastic algorithms because they iteratively use random processes. The vast majority of these methods are used to solve optimization problems, and may be also called "metaheuristics". They are also ranked among computational intelligence methods, a domain close to artificial intelligence. With the help of EO, you can easily design evolutionary algorithms that will find solutions to virtually all kind of hard optimization problems, from continuous to combinatorial ones.
Global Paths Matching is an implementation of the global paths graph matching algorithm proposed by Maue and Sanders in "Engineering Algorithms for Approximate Weighted Matching" (WEA'07). Given a graph G=(V,E), a matching M is a set of edges without common vertices, i.e. the graph G=(V,M) has a degree of at most one. The algorithm scans the edges in order of decreasing weight (or rating), constructing a collection of paths and even length cycles. These paths initially contain no edges. While scanning the edges, the set is extended by successively adding applicable edges, which are those connecting two endpoints of different paths or two endpoints of an odd length path. Optimal solutions/matchings are computed for each path and cycle using dynamic programming.