public override ILearnAlgorithmConf getConf(int CountFeatures) { GeneticConf currentGeneticConf = new GeneticConf(); currentGeneticConf.Init(CountFeatures); return(currentGeneticConf); }
public virtual void Init(ILearnAlgorithmConf Config) { step = 0; errorAfter = 0; errorBefore = fullFuzzySystem.ClassifyLearnSamples(fullFuzzySystem.RulesDatabaseSet[0]); currentConf = Config as GeneticConf; initFunc = new initFuncTypeClassifier(localInit); if (currentConf.GENCTypeInit == GeneticConf.Alg_Init_Type.Глобальный) { initFunc = new initFuncTypeClassifier(globalInit); } crossoverFunc = new crossoverFuncTypeClassifier(unifiedCrossover); if (currentConf.GENCTypeCrossover == GeneticConf.Alg_Crossover_Type.Многоточечный) { crossoverFunc = new crossoverFuncTypeClassifier(pointsCrossover); } selectionFunc = new selectionFuncTypeClassifier(rouletteSelection); if (currentConf.GENCTypeSelection == GeneticConf.Alg_Selection_Type.Случайный) { selectionFunc = new selectionFuncTypeClassifier(randomSelection); } if (currentConf.GENCTypeSelection == GeneticConf.Alg_Selection_Type.Элитарный) { selectionFunc = new selectionFuncTypeClassifier(eliteSelection); } fullInit(); // Здесь проходит инициализация }
public virtual void Init(ILearnAlgorithmConf conf) { currentConf = conf as GeneticConf; fullFuzzySystem = result; step = 0; errorAfter = 0; errorBefore = result.approxLearnSamples(result.RulesDatabaseSet[0]); backUp = result.RulesDatabaseSet[0]; initFunc = new initFuncType(localInit); if (currentConf.GENCTypeInit == GeneticConf.Alg_Init_Type.Глобальный) { initFunc = new initFuncType(globalInit); } crossoverFunc = new crossoverFuncType(unifiedCrossover); if (currentConf.GENCTypeCrossover == GeneticConf.Alg_Crossover_Type.Многоточечный) { crossoverFunc = new crossoverFuncType(pointsCrossover); } selectionFunc = new selectionFuncType(rouletteSelection); if (currentConf.GENCTypeSelection == GeneticConf.Alg_Selection_Type.Случайный) { selectionFunc = new selectionFuncType(randomSelection); } if (currentConf.GENCTypeSelection == GeneticConf.Alg_Selection_Type.Элитарный) { selectionFunc = new selectionFuncType(eliteSelection); } fullInit(); // Здесь проходит инициализация }
private List <ILearnAlgorithmConf> initAlgoritmsConfigs(int CountFeature) { List <ILearnAlgorithmConf> result = new List <ILearnAlgorithmConf>(); if (isTermShrink) { result.Add(new OptimizeTermShrinkAndRotateConf()); } if (isRuleShrink) { result.Add(new OptimizeRullesShrinkConf()); } if (isUnionTerm) { result.Add(new UnionTermsConf()); } if (isLindBreakCross) { result.Add(null); } if (isPSO) { for (int i = 0; i < countPSO; i++) { result.Add(new PSOSearchConf()); } } if (isANT) { for (int i = 0; i < countANT; i++) { result.Add(new MACOSearchConf()); } } if (isBEE) { for (int i = 0; i < countBEE; i++) { result.Add(new BeeStructureConf()); } } if (isES) { for (int i = 0; i < countES; i++) { ESConfig method = new ESConfig(); method.Init(CountFeature); result.Add(method); } } if (isGA) { for (int i = 0; i < countGA; i++) { GeneticConf method = new GeneticConf(); method.Init(CountFeature); result.Add(method); } } /* if (isBFO) * { * for (int i = 0; i < countBFO; i++) * { * BacterialForagingOptimization.Base.BacteryAlgorithmConfig method = new BacterialForagingOptimization.Base.BacteryAlgorithmConfig(); * method.Init(CountFeature); * result.Add(method); * } * } */ return(result); }