예제 #1
0
        public bool Step(TimeSpan timeout)
        {
            bool evolved = false;

            StopWatch stopWatch = new StopWatch();

            ensureInitialized();


            while (!stopWatch.Expired(timeout))
            {
                optimizer.Step(10, selector, procreator, evaluator, random);

                if (optimizer.CurrentPopulation.MaxFitness > maxFitness)
                {
                    maxFitness = optimizer.CurrentPopulation.MaxFitness;
                    optimalPriorities.Clear();
                    optimalPriorities.AddRange(optimizer.CurrentPopulation.ReadOnlyIndividuals[0].Chromosome);
                    Debug.WriteLine("FIT " + maxFitness + "\tGEN " + optimizer.GenerationCount + "\tCOST " + calculateTravelCost(precedenceTree.PriorityOrderTraversal(optimalPriorities)));
                    //Debug.WriteLine("FIT " + maxFitness + "\tGEN " + optimizer.GenerationCount));
                    evolved = true;
                }
            }

            return(evolved);
        }
예제 #2
0
        public override bool TryStep(Controller controller)
        {
            if (stopWatch.Expired(timeout))
            {
                controller.TransitionTo(target);
                return(true);
            }

            return(false);
        }
예제 #3
0
 private void pollStatusReport()
 {
     if (statusQueryTimeout.Expired(statusQueryInterval) && pendingStatusQueryRequest == null)
     {
         GrblRequest request = GrblRequest.CreateStatusQueryRequest();
         if (ActiveConnection.Send(request))
         {
             statusQueryTimeout.Reset();
             pendingStatusQueryRequest = request;
         }
     }
 }
예제 #4
0
파일: State.cs 프로젝트: hhtat/LaserPewer
        protected bool retrySend(StopWatch timeout, GrblRequest request)
        {
            if (timeout.Expired(TimeSpan.FromSeconds(RetryTimeoutSecs)))
            {
                if (controller.ActiveConnection.Send(request))
                {
                    timeout.Reset();
                }

                return(true);
            }

            return(false);
        }