Esempio n. 1
0
        private static MultiKey CreateIslandKey(Configuration.Implementation.PeaSettings settings)
        {
            var key = new string[settings.SubProblemList.Count];

            for (int i = 0; i < settings.SubProblemList.Count; i++)
            {
                key[i] = settings.SubProblemList[i].Encoding.Key;
            }
            var islandKey = new MultiKey(key);

            return(islandKey);
        }
Esempio n. 2
0
        public IslandActor(Configuration.Implementation.PeaSettings settings, int seed)
        {
            var actorPathName = Self.Path.ToString();

            Engine    = IslandEngineFactory.Create(actorPathName, settings, seed);
            IslandKey = CreateIslandKey(settings);
            Engine.Algorithm.SetEvaluationCallback(Evaluate);

            var evaluatorsCount = Engine.Parameters.GetInt(ParameterNames.EvaluatorsCount);

            if (evaluatorsCount > 4)
            {
                Evaluator = Context.ActorOf(EvaluationSupervisorActor.CreateProps(IslandKey, settings.Evaluation, Engine.Parameters));
            }
            else
            {
                LocalEvaluator = (EvaluationBase)TypeLoader.CreateInstance(settings.Evaluation, Engine.Parameters);
            }

            Receive <InitEvaluator>(m => InitEvaluator(m));
            Receive <Continue>(m => RunOneStep());
            Receive <Travel>(m => TravelersArrived(m));
            Receive <End>(m => End());
        }
Esempio n. 3
0
        public static Props CreateProps(Configuration.Implementation.PeaSettings settings, int seed)
        {
            var props = Props.Create(() => new IslandActor(settings, seed));

            return(props);
        }