Example #1
0
        public void TestSimulatedAnealing()
        {
            int [] initial = new int[] { 0, 0, 0, 0, 0, 0, 0 };
            int [] target  = new int [] { 1, 2, 3, 4, 3, 5, 4 };
            IMutatorPoint <int> mutator = new MutatorPointOneInt();
            IFunctionDistance <int[], float> distance            = new FunctionDistanceEuclidean();
            IFunction <int[], float>         evaluation_function = new FunctionDistanceToTarget <int[], float>(distance, target);
            int iteration_count = 1000;
            IFunction <int, float> accept_chance = new FunctionLinearDecay(1, 500);

            SimulatedAnealing <int, float> simulate_anealing = new SimulatedAnealing <int, float>(
                mutator, accept_chance, iteration_count);

            int[] result = simulate_anealing.Minimize(initial, evaluation_function);
            ToolsCollection.print(result);
        }