コード例 #1
0
ファイル: MainForm.cs プロジェクト: SandroAlister/TestProj
        private void sbStart_Click(object sender, EventArgs e)
        {
            try
            {
                GenAlgorithm  = new GenAlgorithm(meOutPut, AlgorithmSetting);
                meOutPut.Text = "";
                GenAlgorithm.Process();

                lcCalcTimer.Text = $"Время расчета {GenAlgorithm.FinishTimeAlgorithm}";

                PopulationTrack = GenAlgorithm.NumberOfLastGeneneration;
                ChangeRangeTrack(PopulationTrack);

                rngPopulationTrack.Enabled = true;
                rngPopulationTrack.Value   = rngPopulationTrack.Properties.Maximum;

                ConvertCandidateToSeries(chFunction, 2, GenAlgorithm.AllBestCandidates[PopulationTrack]);
                MessageBox.Show($"Наилучшее решение:{GenAlgorithm.GetBestCandidate().DecValue} было найдено за {GenAlgorithm.NumberOfLastGeneneration} поколений");
                GenAlgorithm.GetBestCandidate();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
コード例 #2
0
        /// <summary>
        /// Runs an optimization
        /// </summary>
        public void Start()
        {
            // -- 1 -- raised when new generation formed
            GenAlgorithm.GenerationRan += (sender, generation) =>
            {
                Shared.Logger.Trace(generation.Chromosomes.SolutionsToLogOutput("GENERATION RAN"));
            };

            // -- 2 -- raised when optimization completed
            GenAlgorithm.TerminationReached += (sender, population) =>
            {
                // save all good chromosomes and log the output
                ProfitableChromosomes = population.SelectProfitableChromosomes();
                Shared.Logger.Trace(ProfitableChromosomes.SolutionsToLogOutput("TERMINATION REACHED"));
            };

            // launches genetic
            GenAlgorithm.Start();
        }
コード例 #3
0
ファイル: MazeGenerator.cs プロジェクト: MartGon/MazeGen
    IEnumerator generateMaze()
    {
        // Getting variables from config
        rows = PlayerPrefs.GetInt("rows");
        cols = PlayerPrefs.GetInt("cols");
        alg  = (GenAlgorithm)PlayerPrefs.GetInt("alg");
        if (PlayerPrefs.GetInt("seed") != 0)
        {
            Random.InitState(PlayerPrefs.GetInt("seed"));
        }

        interfaceController.updateSeedDisplay();

        // Generating maze
        Maze maze = new Maze(mazeCell, rows, cols, alg);

        maze.init();
        maze.generate();

        // Placing winner spot
        Vector3 winPosition = maze.getLastCell().transform.position;

        winTrigger.position = winPosition;

        int side = Mathf.Max(rows, cols);

        // Placing Top-Down View Camera
        float x = winPosition.x;
        float y = 3f * side * 3 / (2 * Mathf.Tan(Mathf.Deg2Rad * cam.fieldOfView));
        float z = winPosition.z / 2;

        cam.transform.position = new Vector3(winPosition.x / 2, y, z);

        // Placing Player
        player.transform.position = new Vector3(0, 1.1275f, 0);
        player.SetActive(true);

        interfaceController.updateGenerationTime();

        yield return(null);
    }
コード例 #4
0
 public void SetComponents(int population, int generations, int pMutation, int pCross, int distype, int pMutIndiv, int pSelection, Bitmap b, int histOption)
 {
     ga = new GenAlgorithm(population, b, distype, pCross, pMutation, generations, pMutIndiv, pSelection, this, histOption);
 }