public static ISgMutantProfile ToSgMutantProfile ( this ISorterGenomeEval parentGenomeEval, ISorterMutateParams sorterMutateParams ) { var rando = Rando.Fast(sorterMutateParams.Seed); var layer = SorterLayer.Make(new[] { parentGenomeEval.SorterGenome }, 0) .Reproduce( seed: rando.NextInt(), newGenomeCount: sorterMutateParams.MutantCount, mutationRate: sorterMutateParams.SorterMutationRate, insertionRate: sorterMutateParams.SorterInsertionRate, deletionRate: sorterMutateParams.SorterDeletionRate ); var compPool = CompPool.MakeEmpty(parentGenomeEval.SorterGenome.KeyCount) .AddSorterEvalsParallel(layer.Genomes.Select(g => g.ToSorter())); return(new SgMutantProfileImpl( parentGenomeEval: parentGenomeEval, sorterGenomeEvals: compPool.SorterEvals.Where(ev => ev.SwitchUseCount <= sorterMutateParams.MaxScore) .Select(ev => SorterGenomeEval.Make ( sorterGenome: layer.GetGenome(ev.Sorter.Guid), parentGenomeEval: parentGenomeEval, sorterEval: ev, generation: 1, success: ev.Success )), scores: compPool.SorterEvals.Select(ev => (double)ev.SwitchUseCount), sorterMutateParams: sorterMutateParams )); }
public RunMutateSortersVm(ISorterMutateParams sorterMutateParams, IEnumerable <ISorterGenomeEvalVm> sorterGenomeEvalVms) { MutateSortersRunnerVm = new MutateSortersRunnerVm(sorterMutateParams, sorterGenomeEvalVms); MutateSortersRunnerVm.OnIterationResult.Subscribe(ReportBestResult); _sorterGenomeEvalGridVm = new SorterGenomeEvalGridVm("Selected mutants"); ReportFrequency = 10; _stopwatch = new Stopwatch(); }
public MutateSortersRunnerVm(ISorterMutateParams sorterMutateParams, IEnumerable <ISorterGenomeEvalVm> sorterGenomeEvalVms) { var genomeEvalVms = sorterGenomeEvalVms.ToList(); _sorterGenomeEvalGridVmInitial = new SorterGenomeEvalGridVm("Progenitors"); _sorterGenomeEvalGridVmInitial.SorterGenomeEvalVms.AddMany(genomeEvalVms); _sgMutantProfileGridVm = new SgMutantProfileGridVm("Mutants"); _sorterMutateParamsVm = new SorterMutateParamsVm(sorterMutateParams); }
public SgMutantProfileImpl( ISorterGenomeEval parentGenomeEval, IEnumerable <ISorterGenomeEval> sorterGenomeEvals, IEnumerable <double> scores, ISorterMutateParams sorterMutateParams ) { _parentGenomeEval = parentGenomeEval; _sorterGenomeEvals = sorterGenomeEvals.ToList(); _scores = scores.ToList(); _sorterMutateParams = sorterMutateParams; }
public ConfigMutateSortersVm(ISorterMutateParams sorterMutateParams) { ConfigMutateSortersParamVm = new ConfigMutateSortersParamVm(sorterMutateParams); SorterGenomeEvalGridVm = new SorterGenomeEvalGridVm("Progenitors"); }
public CreateMutateSortersVm(ISorterMutateParams mutateParams, ICommand createSorterMutateCommand) { CreateSorterMutateCommand = createSorterMutateCommand; ConfigMutateSortersVm = new ConfigMutateSortersVm(mutateParams); }