Example #1
0
        public override ILearnAlgorithmConf getConf(int CountFeatures)
        {
            GeneticConf currentGeneticConf = new GeneticConf();

            currentGeneticConf.Init(CountFeatures);
            return(currentGeneticConf);
        }
Example #2
0
        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(); // Здесь проходит инициализация
        }
Example #3
0
        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(); // Здесь проходит инициализация
        }
Example #4
0
        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);
        }