static void LaunchANNEO(DataFormater dfr, int n, int kmax, int learnAlgo) { int minHLNeurones = 1; int maxHLNeurones = 15; int kminL = 40; int kmaxL = 200; if (learnAlgo == 0) { kminL = 10000; kmaxL = 21000; } var ranges = new List <MonoObjectiveEOALib.Range> { new MonoObjectiveEOALib.Range("Activation Function", 0.9, 2.1), new MonoObjectiveEOALib.Range("Alpha of Activation Function", 0.1, 10), new MonoObjectiveEOALib.Range("Learning rate", 0.05, 0.1), new MonoObjectiveEOALib.Range("Momentum/Ajustement", 10, 12), new MonoObjectiveEOALib.Range("Learning Err", 0.001, 0.01), new MonoObjectiveEOALib.Range("Max Iteration (Kmax)", kminL, kmaxL), new MonoObjectiveEOALib.Range("Hiden Layer Number", 1, 5), new MonoObjectiveEOALib.Range("Layer 1 Nodes count", minHLNeurones, maxHLNeurones), new MonoObjectiveEOALib.Range("Layer 2 Nodes count", minHLNeurones, maxHLNeurones), new MonoObjectiveEOALib.Range("Layer 3 Nodes count", minHLNeurones, maxHLNeurones), new MonoObjectiveEOALib.Range("Layer 4 Nodes count", minHLNeurones, maxHLNeurones), new MonoObjectiveEOALib.Range("Layer 5 Nodes count", minHLNeurones, maxHLNeurones), new MonoObjectiveEOALib.Range("Layer 6 Nodes count", minHLNeurones, maxHLNeurones) }; EANN annEo = new EANN(dfr.TrainingInput, dfr.TrainingOutput, dfr.TestingInput, dfr.TestingOutput); annEo.Learning_Algorithm = (LearningAlgorithmEnum)learnAlgo;// LearningAlgorithmEnum.LevenbergMarquardtLearning; annEo.SearchRanges = ranges; annEo.MaxOptimizationIterations = kmax; annEo.PopulationSize = n; annEo.LearnEO(); Console.WriteLine("EO-ANN :-> Best learning scroe = {0} ; EO-ANN :-> Best testing score = {1}", annEo.BestLearningScore, annEo.BestTestingScore); foreach (var itm in annEo.BestChart) { Console.WriteLine(itm); } SaveResults(annEo, string.Format("C:\\SSL\\Results_ANN_{0}.txt", fileName.Trim())); //double[][] xy = new double[][] // { // new double []{ 0.8}, // new double []{0.16}, // new double []{0.24}, // new double []{0.35}, // new double []{0.25} // }; //double[][] xy = new double[][] //{ // new double []{0.8, 0.12}, // new double []{0.16, 0.10}, // new double []{0.24, 0.26}, // new double []{0.35, 0.10}, // new double []{0.25, 0.12} //}; //var z = annEo.Compute(xy); //if (Equals(z, null)) { return; } //foreach (double value in z) //{ // Console.WriteLine("z = {0}", Math.Round(value, 3)); //} }