/// <summary>
        /// Starts the underlying timer.
        /// </summary>
        public void StartTimer()
        {
            if (IsRunning)
            {
                throw new InvalidOperationException("The Timer is already running and can only be started once.");
            }

            _stopwatch = StopwatchProvider.StartStopwatch();
        }
예제 #2
0
        static void Main(string[] args)
        {
            Func <double, double> fitness = x => 2 * x + 1;
            var ga = new GeneticAlgorithm(3000, 10,
                                          new OnePointCrossover(),
                                          new ClassicMutationOperator(),
                                          new RouletteWheelSelection(),
                                          fitness);

            ga.PrintStatistics = true;

            StopwatchProvider.StartStopWatch();
            var result = ga.RunSimulation(5);

            Console.WriteLine(StopwatchProvider.StopWatchTime());

            Console.WriteLine($"x = {result.Chromosome.DecodedValue}, f = {result.Fitness}");

            //var ind = new Individual(10);
            //ind.ReplaceGenes(new bool[] { true, true, true, true, true, true, true, true, true, true });
            //Console.WriteLine($"x = {ind.Chromosome.DecodedValue}, f = {fitness(ind.Chromosome.DecodedValue)}");

            Console.ReadLine();

            return;

            //var ind1 = new Individual(10);
            //var ind2 = new Individual(10);

            //Console.WriteLine("Individual 1: ");
            //Console.WriteLine(ind1);
            //Console.WriteLine("Individual 2: ");
            //Console.WriteLine(ind2);

            //var crossover = new OnePointCrossover();

            //crossover.Crossover(ind1, ind2);

            //Console.WriteLine("Individual 1: ");
            //Console.WriteLine(ind1);
            //Console.WriteLine("Individual 2: ");
            //Console.WriteLine(ind2);

            //var mutation = new ClassicMutationOperator();


            //Console.WriteLine("--Before mutation: ");
            //Console.WriteLine("Individual 1: ");
            //Console.WriteLine(ind1);

            //mutation.Mutation(ind1, 0.1);

            //Console.WriteLine("--After mutation: ");
            //Console.WriteLine("Individual 1: ");
            //Console.WriteLine(ind1);
        }
예제 #3
0
 /// <summary>
 /// Reset to stationary state.  You may wish to call this when, for example, switching interface screens.
 /// </summary>
 public void Reset()
 {
     StopwatchProvider.Stop();
     StopwatchProvider.Reset();
     StopwatchProvider.Start();
     UpdateNumber = 0;
     _mouseStateMachine.CurrentState.Reset(this);
     _mouseStateMachine.SetCurrentState(_mouseStationaryState);
     _mouseStateMachine.SetPreviousState(_mouseStationaryState);
 }