当前位置: 首页>>代码示例>>C#>>正文


C# Population.RunEpoch方法代码示例

本文整理汇总了C#中Population.RunEpoch方法的典型用法代码示例。如果您正苦于以下问题:C# Population.RunEpoch方法的具体用法?C# Population.RunEpoch怎么用?C# Population.RunEpoch使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Population的用法示例。


在下文中一共展示了Population.RunEpoch方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: SearchSolution


//.........这里部分代码省略.........
                    pred = 0.00;
                    double result = 0.0;
                    double resultgerado = 0.0;

                    // calculate best function
                    for (int j = 0; j < data.GetLength(0); j++)
                    {
                        double HIT_LEVEL = 0.01;
                        double PROBABLY_ZERO = 1.11E-15;
                        double BIG_NUMBER = 1.0e15;

                        System.Console.WriteLine("Valor de entrada: " + input[j]);

                        resultgerado = PolishGerExpression.Evaluate(bestFunction, input, j);

                        // fitness (atual - estimado) / atual
                        result = Math.Abs((output[j] - resultgerado) / output[j]);

                        if (!(result < BIG_NUMBER))       // *NOT* (input.x >= BIG_NUMBER)
                            result = BIG_NUMBER;

                        else if (result < PROBABLY_ZERO)  // slightly off
                            result = 0.0;

                        if (result <= HIT_LEVEL) hits++;  // whatever!

                        //Somatorio do erro
                        sum += result;

                        //Somatoria do pred com 25%
                        if ((resultgerado <= output[j] * 1.25) && (resultgerado >= output[j] * 0.75)) npred++;

                        //impressao dos dados gerados e esperados
                        System.Console.WriteLine(" Valor gerado: " + resultgerado + " resultado esperado: " + data[j, 0] + " erro relativo: " + result);
                    }

                    // calculate error MMRE
                    error = sum / data.GetLength(0);

                    //calculate Pred(25%)
                    pred = (((double) npred) / data.GetLength(0));

                    if (error < bestMMRE)
                    {
                        bestMMRE = error;
                        nomearq = "AnalisedeTempo" + ((geneticMethod == 0) ? "_GP_" : "_GEP_") + dataset + "_" + executions.ToString() + "_" + iterations.ToString();
                        saida.escreveArquivo(dataset + "\t" + ((geneticMethod == 0) ? "GP" : "GEP") + "\t" + i.ToString() + "\t" + bestMMRE.ToString() + "\r\n", nomearq, 0);
                    }

                    System.Console.WriteLine("Erro acumulado: " + sum);
                    System.Console.WriteLine("Erro Médio: " + error);
                    System.Console.WriteLine("Hits: " + hits);
                    System.Console.WriteLine("");

                }
                catch (Exception e)
                {
                    System.Console.WriteLine(e.Message);
                }

                // increase current iteration/geracao
                i++;

                //
                if ((iterations != 0) && (i > iterations))
                    //break;
                    needToStop = true;
                else
                    population.RunEpoch();
            }

            // show solution
            //System.Console.WriteLine(population.BestChromosome.ToString());
            string expressao = population.BestChromosome.ToString().Trim();
            string expressaosubst = PolishGerExpression.SubstituteVariables(expressao, input);
            string expressaosimpl = PolishGerExpression.SimplifyExpression(expressaosubst);

            string resultado = "";
            resultado = "Expressão NPR gerada: " + expressao + "\r\n";
            resultado = resultado + "Expressão formatada 1: " + (RPN2Infix.PostfixToInfix(expressao)) + "\r\n";
            resultado = resultado + "Expressão formatada 2: " + (RPN2Infix.Parse(expressao.Replace(",", "."))) + "\r\n";
            //resultado = resultado + "Expressão NPR com substitução: " + expressaosubst + "\r\n";
            //resultado = resultado + "Expressão com substitução formatada: " + RPN2Infix.PostfixToInfix(expressaosubst) + "\r\n";
            //resultado = resultado + "Expressão NPR com substitução simplificada: " + expressaosimpl + "\r\n";
            resultado = resultado + "Expressão com substitução simplificada formatada: " + RPN2Infix.PostfixToInfix(expressaosimpl) + "\r\n";
            resultado = resultado + "Resultado para a expressão: " + "\r\n";        // +testeexpressao + "\r\n";
            resultado = resultado + "Erro acumulado: " + sum.ToString() + "\r\n";
            resultado = resultado + "Erro Médio: "  + error.ToString()  + "\r\n";
            resultado = resultado + "Pred(25): " + pred.ToString() + "\r\n";
            resultado = resultado + "Hits: " + hits.ToString() + "\r\n";
            resultado = resultado + "Geração: " + population.BestGeneration + "\r\n";

            nomearq = "Resultado" + ((geneticMethod == 0) ? "_GP_" : "_GEP_") + dataset + "_" + executions.ToString() + "_";
            saida.escreveArquivo(resultado, nomearq, 1);

            nomearq = "Experimento" + ((geneticMethod == 0) ? "_GP_" : "_GEP_");
            saida.escreveArquivo(dataset + "\t" + ((geneticMethod == 0) ? "GP" : "GEP") + "\t" + executions.ToString() + "\t" + error.ToString() + "\t" + pred.ToString() + "\r\n", nomearq, 0);

            //System.Console.WriteLine("Fim do Programa");
        }
开发者ID:alexanderlimasilva,项目名称:GeradorExpressoes,代码行数:101,代码来源:Solution.cs

示例2: searchSolution

            void searchSolution(Bitmap rgb)
            {
                long start = DateTime.Now.Ticks / 10000;
                Globals.FRAMES_PROCESSED_TRIANGULAR++;
                int com_x_sum = 0, com_y_sum = 0, com_x_y_point_count = 0;
                Globals.HARVEST_SIGN_ID++;

                //if (redTestPoints == null)
                //    calculateRedTestPoints();

                Bitmap bmp = sf.Apply(rgb);
                GeoTransChromosome sampleChromosome = new GeoTransChromosome(bmp, sf, this, null);

                Population tmpPopulation = new Population(Constants.GA_POPULATION_SIZE,
                    sampleChromosome,
                    sampleChromosome,
                    new EliteSelection()
                );
                tmpPopulation.MutationRate = Constants.GA_MUTATION_RATE;
                tmpPopulation.CrossoverRate = Constants.GA_CROSSOVER_RATE;

                if (population == null || population.BestChromosome == null || population.BestChromosome.Fitness < RS_THRESHOLD / 4)
                {
                    // fresh population
                }
                else
                {
                    // half from previous
                    for (int j = 0; j < tmpPopulation.Size / 2; j++)
                    {
                        ((GeoTransChromosome)tmpPopulation[j]).copyContent((GeoTransChromosome)population[j]);
                    }
                }
                population = tmpPopulation;

                Graphics gg = null;

                /*
                Bitmap bmp_x = null;
                if (1!=1)
                {
                    bmp_x = new Bitmap(Constants.IMAGE_WIDTH, Constants.IMAGE_HEIGHT * 2, PixelFormat.Format24bppRgb);
                    gg = Graphics.FromImage(bmp_x);
                    gg.DrawImage(bmp, 0, 0);
                    gg.DrawImage(rgb, 0, Constants.IMAGE_HEIGHT);
                    for (int x = 0; x < population.Size; x++)
                    {
                        GeoTransChromosome chromo = (GeoTransChromosome)population[x];
                        gg.DrawRectangle(Pens.Cyan, chromo.X, chromo.Y, 1, 1);
                    }
                }
                */

                int i = 0;
                do
                {
                    long start_epoch = DateTime.Now.Ticks / 10000;
                    Globals.FRAMES_PROCESSED_GA_RUNEPOCH++;

                    // run one epoch of genetic algorithm
                    population.RunEpoch();

                    if (Constants.EVALUATE_TIME_ENABLED)
                    {
                        int x = (int)(DateTime.Now.Ticks / 10000 - start_epoch);
                        if (x >= 0)
                        {
                            Globals.TIME_GA_RUNEPOCH_MIN = x < Globals.TIME_GA_RUNEPOCH_MIN ? x : Globals.TIME_GA_RUNEPOCH_MIN;
                            Globals.TIME_GA_RUNEPOCH_MAX = x > Globals.TIME_GA_RUNEPOCH_MAX ? x : Globals.TIME_GA_RUNEPOCH_MAX;
                            Globals.TIME_GA_RUNEPOCH_TOTAL += x;
                        }
                    }
                    i++;
                } while (i < Constants.GA_NUMBER_ITERATIONS);

                GeoTransChromosome bestChromo = null;
                float rs = 0;
                if (population.BestChromosome != null && population.BestChromosome.Fitness > RS_THRESHOLD)
                {
                    bestChromo = (GeoTransChromosome)population.BestChromosome;

                    int rx = bestChromo.X, ry = bestChromo.Y, rr = bestChromo.Width;
                    rs = (float)bestChromo.Fitness;

                    if (Constants.HARVEST_TYPE == Constants.HarvestType.harvestAll || Constants.HARVEST_TYPE == Constants.HarvestType.harvestMisses)
                    {
                        rgb.Save(Constants.base_folder + "hasat\\" + Globals.HARVEST_SIGN_ID + "_0.bmp");
                        bmp.Save(Constants.base_folder + "hasat\\" + Globals.HARVEST_SIGN_ID + "_1.bmp");
                    }
                    // findTriangle(bestChromo.X, bestChromo.Y, bmp, ref rx, ref ry, ref rr, ref rs);

                    if (rs < RS_THRESHOLD || rr==0)
                    {
                        if (gg != null)
                        {
                            gg.DrawRectangle(Pens.Red, bestChromo.X - 1, bestChromo.Y - 1, 3, 3);
                            gg.DrawRectangle(Pens.Red, bestChromo.X - bestChromo.Width / 2, bestChromo.Y - bestChromo.Width / 2, bestChromo.Width, bestChromo.Width);
                        }
                        bestChromo = null;
                    }
//.........这里部分代码省略.........
开发者ID:adesproject,项目名称:ADES,代码行数:101,代码来源:Processors.cs


注:本文中的Population.RunEpoch方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。