public void init_first(KnowlegeBasePCRules base_rule, Random rand, FuzzySystem.FuzzyAbstract.learn_algorithm.conf.ESConfig.Type_init prm_init) { bool the_first = true; int count_ready = 0; do { the_popualate.Add(new Individ(base_rule, Data, count_vars, the_first, rand, prm_init)); count_ready++; the_first = false; } while (count_ready < size_populate); }
public virtual void Init(ILearnAlgorithmConf Conf) { Config = Conf as ESConfig; count_populate = Config.ESCPopulationSize; count_child = Config.ESCCountChild; count_iterate = Config.ESCCountIteration; coef_t1 = Config.ESCT1; coef_t2 = Config.ESCT2; param_crossover = Config.ESCCrossoverPropability; alg_cross = Config.ESCCrossoverType; type_init = Config.ESCInitType; count_Multipoint = Config.ESCCountCrossoverPoint; type_mutate = Config.ESCMutateAlg; b_ro = Config.ESCAngleRotateB; main_pop = new Population(count_populate, count_child, result.CountFeatures, result.LearnSamplesSet); main_pop.init_first(result.RulesDatabaseSet[0], rand, type_init); }
public Individ(KnowlegeBasePCRules Source, SampleSet data, int count_vars, bool the_first, Random rand, FuzzySystem.FuzzyAbstract.learn_algorithm.conf.ESConfig.Type_init par_type_init) { hrom_vector = new Hromosom(new KnowlegeBasePCRules(Source)); step_sko = new List <double>(count_vars); step_rotate = new List <double>(count_vars); count_step_sko = count_vars; count_step_rotate = count_vars; Data = data; for (int i = 0; i < count_vars; i++) { step_sko.Add(0 + rand.NextDouble() * (data.InputAttributes[i].Scatter * 0.05)); step_rotate.Add(-1 * Math.PI + rand.NextDouble() * 2 * Math.PI); } if (!the_first) { switch (par_type_init) { case FuzzySystem.FuzzyAbstract.learn_algorithm.conf.ESConfig.Type_init.Случайная: hrom_vector.init_random(rand, data); break; case FuzzySystem.FuzzyAbstract.learn_algorithm.conf.ESConfig.Type_init.Ограниченная: hrom_vector.init_constrain(rand, data); break; } } }
protected override void fill_params(string[] args) { file_in = (args.Where(x => x.Contains("in"))).ToArray()[0]; Console.WriteLine("Before cut {0}", file_in); file_in = file_in.Remove(0, 3); Console.WriteLine("After cut {0}", file_in); file_out = (args.Where(x => x.Contains("out"))).ToArray()[0]; file_out = file_out.Remove(0, 4); string temp = (args.Where(x => x.Contains("init_alg"))).ToArray()[0]; temp = temp.Split(':')[1]; switch (temp) { case "Random": type_init = FuzzySystem.FuzzyAbstract.learn_algorithm.conf.ESConfig.Type_init.Случайная; break; case "Constrain": type_init = FuzzySystem.FuzzyAbstract.learn_algorithm.conf.ESConfig.Type_init.Ограниченная; break; default: type_init = FuzzySystem.FuzzyAbstract.learn_algorithm.conf.ESConfig.Type_init.Ограниченная; break; } temp = (args.Where(x => x.Contains("type_mutate"))).ToArray()[0]; temp = temp.Split(':')[1]; switch (temp) { case "Adaptive": type_mutate = FuzzySystem.FuzzyAbstract.learn_algorithm.conf.ESConfig.Type_Mutate.СКО; break; case "CovarianceMatrix": type_mutate = FuzzySystem.FuzzyAbstract.learn_algorithm.conf.ESConfig.Type_Mutate.СКО_РО; break; default: type_mutate = FuzzySystem.FuzzyAbstract.learn_algorithm.conf.ESConfig.Type_Mutate.СКО_РО; break; } temp = (args.Where(x => x.Contains("type_cross"))).ToArray()[0]; temp = temp.Split(':')[1]; switch (temp) { case "Unified": type_cross = FuzzySystem.FuzzyAbstract.learn_algorithm.conf.ESConfig.Alg_crossover.Унифицированный; break; case "Multipoint": type_cross = FuzzySystem.FuzzyAbstract.learn_algorithm.conf.ESConfig.Alg_crossover.Многоточечный; break; default: type_cross = FuzzySystem.FuzzyAbstract.learn_algorithm.conf.ESConfig.Alg_crossover.Унифицированный; break; } temp = (args.Where(x => x.Contains("pcross"))).ToArray()[0]; temp = temp.Split(':')[1]; string comma = System.Globalization.CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator; temp = temp.Replace(".", comma); double.TryParse(temp, out pcross); temp = (args.Where(x => x.Contains("cpcross"))).ToArray()[0]; temp = temp.Split(':')[1]; temp = temp.Replace(".", comma); double.TryParse(temp, out cpcross); temp = (args.Where(x => x.Contains("angleR"))).ToArray()[0]; temp = temp.Split(':')[1]; temp = temp.Replace(".", comma); double.TryParse(temp, out angleR); temp = (args.Where(x => x.Contains("iterate"))).ToArray()[0]; temp = temp.Split(':')[1]; temp = temp.Replace(".", comma); double.TryParse(temp, out iterate); temp = (args.Where(x => x.Contains("cindiv"))).ToArray()[0]; temp = temp.Split(':')[1]; temp = temp.Replace(".", comma); double.TryParse(temp, out cindiv); temp = (args.Where(x => x.Contains("cchild"))).ToArray()[0]; temp = temp.Split(':')[1]; temp = temp.Replace(".", comma); double.TryParse(temp, out cchild); temp = (args.Where(x => x.Contains("coeft1"))).ToArray()[0]; temp = temp.Split(':')[1]; temp = temp.Replace(".", comma); double.TryParse(temp, out coeft1); temp = (args.Where(x => x.Contains("coeft2"))).ToArray()[0]; temp = temp.Split(':')[1]; temp = temp.Replace(".", comma); double.TryParse(temp, out coeft2); }