@@ -0,0 +1,2097 @@
+/*%0A * Java Genetic Algorithm Library (@__identifier__@).%0A * Copyright (c) @__year__@ Franz Wilhelmst%C3%B6tter%0A *%0A * Licensed under the Apache License, Version 2.0 (the %22License%22);%0A * you may not use this file except in compliance with the License.%0A * You may obtain a copy of the License at%0A *%0A *      http://www.apache.org/licenses/LICENSE-2.0%0A *%0A * Unless required by applicable law or agreed to in writing, software%0A * distributed under the License is distributed on an %22AS IS%22 BASIS,%0A * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.%0A * See the License for the specific language governing permissions and%0A * limitations under the License.%0A *%0A * Author:%0A *    Franz Wilhelmst%C3%B6tter (franz.wilhelmstoetter@gmx.at)%0A */%0Apackage org.jenetics.tool.problem;%0A%0Aimport java.awt.Point;%0Aimport java.util.Arrays;%0Aimport java.util.stream.IntStream;%0A%0Aimport org.jenetics.EnumGene;%0Aimport org.jenetics.Optimize;%0Aimport org.jenetics.engine.Codec;%0Aimport org.jenetics.engine.Engine;%0Aimport org.jenetics.engine.EvolutionResult;%0Aimport org.jenetics.engine.codecs;%0A%0A/**%0A * @author %3Ca href=%22mailto:franz.wilhelmstoetter@gmx.at%22%3EFranz Wilhelmst%C3%B6tter%3C/a%3E%0A * @version !__version__!%0A * @since !__version__!%0A */%0Apublic class TSM %7B%0A%09// The locations to visit.%0A%09static final Point%5B%5D POINTS = new Point%5B%5D %7B%0A%09%09new Point(0, 0), new Point(1, 2), new Point(4, 5) // ...%0A%09%7D;%0A%0A%09// The permutation codec.%0A%09static final Codec%3CPoint%5B%5D, EnumGene%3CPoint%3E%3E CODEC =%0A%09%09codecs.ofPermutation(POINTS);%0A%0A%09// The fitness function (in the problem domain).%0A%09static double dist(final Point%5B%5D p) %7B%0A%09%09return IntStream.range(0, p.length)%0A%09%09%09.mapToDouble(i -%3E p%5Bi%5D.distance(p%5B(i + i)%25p.length%5D))%0A%09%09%09.sum();%0A%09%7D%0A%0A%09// The evolution engine.%0A%09static final Engine%3CEnumGene%3CPoint%3E, Double%3E ENGINE = Engine%0A%09%09.builder(TSM::dist, CODEC)%0A%09%09.optimize(Optimize.MINIMUM)%0A%09%09.build();%0A%0A%09// Find the solution.%0A%09public static void main(final String%5B%5D args) %7B%0A%09%09final Point%5B%5D result = CODEC.decoder().apply(%0A%09%09%09ENGINE.stream()%0A%09%09%09%09.limit(10)%0A%09%09%09%09.collect(EvolutionResult.toBestGenotype())%0A%09%09);%0A%0A%09%09System.out.println(Arrays.toString(result));%0A%09%7D%0A%7D%0A

Add alternate version of TSM problem.