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); }
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()); }
public static Props CreateProps(Configuration.Implementation.PeaSettings settings, int seed) { var props = Props.Create(() => new IslandActor(settings, seed)); return(props); }