Esempio n. 1
0
        public override TSAFuzzySystem TuneUpFuzzySystem(TSAFuzzySystem Approximate, ILearnAlgorithmConf config)
        {
            TSAFuzzySystem result = Approximate;

            if (result.RulesDatabaseSet.Count == 0)
            {
                throw new System.FormatException("Что то не то с входными данными");
            }
            OptimizeTermShrinkAndRotateConf Config = config as OptimizeTermShrinkAndRotateConf;

            count_shrink = Config.OTSARCountShrinkVars;
            size_shrink  = Config.OTSARCountShrinkTerm;



            List <int> Varians_of_run_system = new List <int>();

            for (int i = 0; i < Approximate.CountFeatures; i++)
            {
                int count_terms_for_var = Approximate.RulesDatabaseSet[0].TermsSet.FindAll(x => x.NumVar == i).Count;
                if (i < count_shrink)
                {
                    Varians_of_run_system.Add(count_terms_for_var - size_shrink);
                }
                else
                {
                    Varians_of_run_system.Add(count_terms_for_var);
                }
            }

            Varians_of_run_system.Sort();
            TypeTermFuncEnum type_of_term = Approximate.RulesDatabaseSet[0].TermsSet[0].TermFuncType;

            Generate_all_variant_in_pool(Varians_of_run_system);

            for (int i = 0; i < Pull_of_systems.Count; i++)
            {
                Approximate.RulesDatabaseSet.Clear();

                GeneratorRulesEveryoneWithEveryone.InitRulesEveryoneWithEveryone(result, type_of_term, Pull_of_systems[i].ToArray());
                Systems_ready_to_test.Add(Approximate.RulesDatabaseSet[0]);
                errors_of_systems.Add(result.approxLearnSamples(result.RulesDatabaseSet[0]));
            }

            int best_index = errors_of_systems.IndexOf(errors_of_systems.Min());

            result.RulesDatabaseSet.Clear();
            result.RulesDatabaseSet.Add(Systems_ready_to_test[best_index]);
            Console.WriteLine(Pull_of_systems.Count());



            result.RulesDatabaseSet[0].TermsSet.Trim();
//            result.UnlaidProtectionFix();
            return(result);
        }
Esempio n. 2
0
 public override int Run(string[] args)
 {
     Console.WriteLine("Start");
     fill_params(args);
     Console.WriteLine("Params get \nfile tra {0} \nfile name tst {1} ", file_learn, file_test);
     Approx_learn_set = new SampleSet(file_learn);
     Console.WriteLine("Tra create");
     Approx_test_set = new SampleSet(file_test);
     Console.WriteLine("Tst create");
     conf = new InitEveryoneWithEveryone();
     conf.Init(Approx_learn_set.CountVars);
     fill_conf();
     Console.WriteLine("Conf Filed");
     Approx_Singletone = new SAFuzzySystem(Approx_learn_set, Approx_test_set);
     Console.WriteLine("Classifier created");
     generator         = new GeneratorRulesEveryoneWithEveryone();
     Approx_Singletone = generator.Generate(Approx_Singletone, conf) as SAFuzzySystem;
     Console.WriteLine("Gereration complite");
     SAFSUFSWriter.saveToUFS(Approx_Singletone, file_out);
     Console.WriteLine("Saved");
     return(1);
 }