Exemple #1
0
 private void loggerWrite(IObjectiveScores[] scores, IDictionary <string, string> tags)
 {
     if (logTags != null)
     {
         tags = LoggerMhHelper.MergeDictionaries(logTags, tags);
     }
     LoggerMhHelper.Write(scores, tags, Logger);
 }
            public Tuple <IBase, IObjectiveScores <T>, IObjectiveScores <T>[]> Evolve()
            {
                moveFailedOnce   = createNegBoolArray(b.NumDimensions);
                moveSuccededOnce = createNegBoolArray(b.NumDimensions);
                List <IObjectiveScores <T> > scores = new List <IObjectiveScores <T> >();

                while (stageIsComplete( ) == false)
                {
                    var triedPoints = makeAMove(b, currentPoint);
                    currentPoint = triedPoints.Last();
                    scores.AddRange(triedPoints);
                    LoggerMhHelper.Write(new IObjectiveScores[] { currentPoint },
                                         createTag(),
                                         Logger);
                }
                endPoint = currentPoint;
                b        = createNewBase(b, startingPoint, endPoint);

                var paretoRanking = new ParetoRanking <IObjectiveScores <T> >(scores, new ParetoComparer <IObjectiveScores <T> >());

                IObjectiveScores <T>[] paretoScores = paretoRanking.GetDominatedByParetoRank(1);

                return(Tuple.Create(b, currentPoint, paretoScores));
            }