private void btnIterar_Click(object sender, EventArgs e) { pop = ag.ExecutaAG(pop); txtPop.Text = pop.PrintPop(); lblMedia.Text = pop.GetMediaPopulacao().ToString(); }
private void btnExecutarAG_Click(object sender, EventArgs e) { //Recupera os elementos das textbox double taxaMutacao = double.Parse(txtTaxaMutacao.Text); double taxaCrossover = double.Parse(txtTaxaCrossover.Text); int iteracoes = int.Parse(txtEvolucoes.Text); //Instancia do algoritmo genetico AlgoritmoGeneticoImpl ag = new AlgoritmoGeneticoImpl(taxaCrossover, taxaMutacao); for (int i = 0; i < iteracoes; i++) { pop = ag.ExecutaAG(pop); //Adicionando os pontos ao gráfico mediaPopulacao.Add(i, pop.GetMediaPopulacao()); zedMediaPopulacao.GraphPane.CurveList.Clear(); zedMediaPopulacao.GraphPane.GraphObjList.Clear(); zedPopulacao.GraphPane.CurveList.Clear(); zedPopulacao.GraphPane.GraphObjList.Clear(); populacaoGrafico = new PointPairList(); for (int j = 0; j < Constants.sizePopulacao; j++) { populacaoGrafico.Add(pop.GetPopulacao()[j].GetInt(), pop.GetPopulacao()[j].GetFitness()); } LineItem media = paneMedia.AddCurve("Média", mediaPopulacao, Color.Red, SymbolType.None); LineItem func = panePop.AddCurve("Função", curvaGrafico, Color.Red, SymbolType.None); LineItem indv = panePop.AddStick("Indivíduo", populacaoGrafico, Color.Blue); zedPopulacao.AxisChange(); zedPopulacao.Invalidate(); zedPopulacao.Refresh(); zedMediaPopulacao.AxisChange(); zedMediaPopulacao.Invalidate(); zedMediaPopulacao.Refresh(); } //Seleção dos melhores e piores individuos pop.OrdenarPopulacao(); //Piores individuos string pioresInd = string.Empty; for (int i = 0; i < 10; i++) { pioresInd += pop.GetPopulacao()[i].PrintIndividuo() + "\n"; } txtPioresIndividuos.Text = pioresInd; string melhoresInd = string.Empty; for (int i = Constants.sizePopulacao - 1; i > (Constants.sizePopulacao - 1) - 10; i--) { melhoresInd += pop.GetPopulacao()[i].PrintIndividuo() + "\n"; } txtMelhoresIndividuos.Text = melhoresInd; }