public PSO(List<Particula> particulas, Configuracao config, string dataSetPath) { _Particulas = particulas; _NumeroMaximoAvaliacoesFuncao = config.NumeroMaximoAvaliacoesFuncao; _W = config.W; _C1 = config.C1; _C2 = config.C2; _TipoTopologia = config.TipoTopologia; _VariarC1C2 = config.VariarC1C2; _TaxaVariacaoC1C2 = config.TaxaVariacaoC1C2; _LimiteVariacaoC1C2 = config.LimiteVariacaoC1C2; _VariarW = config.VariarW; _TaxaVariacaoW = config.TaxaVariacaW; _LimiteVariacaoW = config.LimiteVariacaoW; _TipoVel = config.TipoAtualizacaoVelocidade; _DataSetPath = dataSetPath; if(_TipoVel == ETipoAtualizacaoVelocidade.Clerc) { double fi = _C1 + _C2; _W = 2.0 / Math.Abs(2 - fi - Math.Sqrt(fi * fi - 4 * fi)); } _MontarTopologiaLocal(); }
static void Main(string[] args) { System.Threading.Thread.CurrentThread.CurrentUICulture = System.Globalization.CultureInfo.CreateSpecificCulture("en-US"); Util.InicializaRandom(100); //MUDAR PARA 100 int numParticulas = 10; int dimensoes = 100 ; int numeroMaximoAvaliacoesFuncao = 100; int numIteracoesPorConfig = 1; double[][] resultados = new double[numIteracoesPorConfig][]; string dataSetPath = @"C:\Users\Edgar Almeida\Desktop\Dados\caxias.txt"; for (int l = 0; l < numIteracoesPorConfig; l++) { resultados[l] = new double[4];// fitness, EPMA, inputN, hiddenNodes } using (TextWriter twResult = new StreamWriter(@"C:\Users\Edgar Almeida\Desktop\Dados\PSOWilcox.txt")) { // Clerc Configuracao config2 = new Configuracao(numeroMaximoAvaliacoesFuncao, 0.9, 2.05, 2.05, ETipoTopologia.Local, false, false, ETipoAtualizacaoVelocidade.Clerc); #region Config2 Console.WriteLine("Config2"); for (int i = 0; i < numIteracoesPorConfig; i++) { using (TextWriter twConfig = new StreamWriter(@"C:\Users\Edgar Almeida\Desktop\Dados\PSOConfig2_" + i + ".txt")) { List<Particula> particulas = CriarParticulasAleatorias(dimensoes, numParticulas); PSO teste = new PSO(particulas, config2, dataSetPath); Particula melhorParticula = teste.Executar(twConfig); resultados[i][0]= melhorParticula.MelhorFitness; resultados[i][1] = melhorParticula.BestEval.ValidationEPMA; resultados[i][2] = melhorParticula.Config.Prov.InputsN; resultados[i][3] = melhorParticula.Config.HidenNodesNumber; twResult.Write(resultados[i][0].ToString(System.Globalization.CultureInfo.CreateSpecificCulture("en-US"))); Console.Write(resultados[i][0].ToString(System.Globalization.CultureInfo.CreateSpecificCulture("en-US"))); twResult.Write(" " + resultados[i][1].ToString(System.Globalization.CultureInfo.CreateSpecificCulture("en-US"))); Console.Write(" " + resultados[i][1].ToString(System.Globalization.CultureInfo.CreateSpecificCulture("en-US"))); twResult.Write(" " + resultados[i][2].ToString(System.Globalization.CultureInfo.CreateSpecificCulture("en-US"))); Console.Write(" " + resultados[i][2].ToString(System.Globalization.CultureInfo.CreateSpecificCulture("en-US"))); twResult.Write(" " + resultados[i][3].ToString(System.Globalization.CultureInfo.CreateSpecificCulture("en-US"))); Console.Write(" " + resultados[i][3].ToString(System.Globalization.CultureInfo.CreateSpecificCulture("en-US"))); twResult.WriteLine(); Console.WriteLine(); /////////////////// Salvando predição /////////////////////////////// double real = 0; double prediction = 0; double Error = 0; StreamWriter File = new System.IO.StreamWriter(@"C:\Users\Edgar Almeida\Desktop\Dados\" + "predicao"+ i +".csv", true); for (int m = 0; m < melhorParticula.Config.Prov.ValidationSetLines; m++) { for (int j = 0; j < melhorParticula.Config.Prov.OutputsN; j++) { real = melhorParticula.Config.Prov.DeNormalizeData(melhorParticula.Config.Prov.ValidationSet[m].Output[j], PSO.outputA, PSO.outputB, j + (int)melhorParticula.Config.Prov.InputsN); prediction = melhorParticula.Config.Prov.DeNormalizeData(melhorParticula.Eval.ELM.GetValidationT[m][j], PSO.outputA, PSO.outputB, j + (int)melhorParticula.Config.Prov.InputsN); Error = real - prediction; File.WriteLine(real + ";" + prediction + ";" + Error); } } File.Close(); } } #endregion for (int l = 0; l < resultados.Length; l++) { twResult.Write(resultados[l][0].ToString(System.Globalization.CultureInfo.CreateSpecificCulture("en-US"))); Console.Write(resultados[l][0].ToString(System.Globalization.CultureInfo.CreateSpecificCulture("en-US"))); twResult.Write(" " +resultados[l][1].ToString(System.Globalization.CultureInfo.CreateSpecificCulture("en-US"))); Console.Write(" " + resultados[l][1].ToString(System.Globalization.CultureInfo.CreateSpecificCulture("en-US"))); twResult.Write(" " + resultados[l][2].ToString(System.Globalization.CultureInfo.CreateSpecificCulture("en-US"))); Console.Write(" " + resultados[l][2].ToString(System.Globalization.CultureInfo.CreateSpecificCulture("en-US"))); twResult.Write(" " + resultados[l][3].ToString(System.Globalization.CultureInfo.CreateSpecificCulture("en-US"))); Console.Write(" " + resultados[l][3].ToString(System.Globalization.CultureInfo.CreateSpecificCulture("en-US"))); twResult.WriteLine(); Console.WriteLine(); } } Console.WriteLine("FIM"); Console.ReadLine(); }