Ejemplo n.º 1
0
        public int RunTest(int liczbaSwietlikow, int maxLiczbaIteracji,
                           double gamma, int alfa)
        {
            FireflyAlgorithm algorithm = new FireflyAlgorithm()
            {
                M = 10,
                //liczba swietlikow
                Imax = 100,
                //max liczba iteracji
                Gamma = 1.0,
                //wsp absorpcji
                Alfa = 2                                  //waga losowego kroku <= n
            };

            algorithm.SetTestData((int[, ])A.Clone(), (int[, ])B.Clone(), size);

            algorithm.RunAlgorithm();
            return(algorithm.GetMinimalCost());
        }
Ejemplo n.º 2
0
        public ActionResult Index(List <List <int> > matrix)
        {
            int numberOfFireflies  = _fireflies;
            int numberOfIterations = _iterations;

            int[,] distance = new int[matrix.Count, matrix[0].Count];

            for (int i = 0; i < matrix.Count; i++)
            {
                for (int j = 0; j < matrix[i].Count; j++)
                {
                    distance[i, j] = matrix[i][j];
                }
            }

            var alg    = new FireflyAlgorithm(distance, numberOfFireflies, numberOfIterations);
            var result = alg.Execute();

            return(Json(result, JsonRequestBehavior.AllowGet));
        }
        public void Run()
        {
            if (A == null)
            {
                MessageBox.Show("Załaduj najpierw dane");
                return;
            }
            IAlgorithm algorithm  = null;
            string     name       = "Algorytm";
            int        iterations = 0;

            //wybieranie algorytmu
            switch (SelectedTab)
            {
            case 0:
                algorithm  = new AntColony(_antColony.Ants, _antColony.MaxAssigns, _antColony.Alpha, _antColony.Beta, _antColony.Rho, _antColony.q, _antColony.Q0, _antColony.T0, _antColony.Q);
                name       = "AlgorytmMrówkowy";
                iterations = _antColony.MaxAssigns;

                break;

            case 1:
                algorithm = new BeesAlgorithm()
                {
                    M    = BeeAlgorithm.M,
                    Imax = BeeAlgorithm.Imax,
                    E    = beeAlgorithm.E,
                    Ngh  = beeAlgorithm.Ngh,
                    Nsp  = beeAlgorithm.Nsp,
                    Nb   = beeAlgorithm.Nb,
                    Nep  = beeAlgorithm.Nep
                };
                name       = "AlgorytmPszczeli";
                iterations = BeeAlgorithm.Imax;
                break;

            case 2:
                algorithm = new FireflyAlgorithm()
                {
                    M     = FireflyAlgorithm.M,
                    Imax  = FireflyAlgorithm.Imax,
                    Gamma = FireflyAlgorithm.Gamma,
                    Alfa  = FireflyAlgorithm.Alfa
                };
                name       = "AlgorytmŚwietlikowy";
                iterations = FireflyAlgorithm.Imax;
                break;

            case 3:
                algorithm  = new BeeAlgorithm(this.beeAlgorithmSBC.TotalNumberBees, this.beeAlgorithmSBC.NumberScout, this.beeAlgorithmSBC.MaxNumberVisits, this.beeAlgorithmSBC.MaxNumberCycles, this.beeAlgorithmSBC.ProbPersuasion, this.beeAlgorithmSBC.ProbMistake);
                name       = "AlgorytmPszczeliBSC";
                iterations = FireflyAlgorithm.Imax;
                break;
            }

            if (algorithm == null)
            {
                MessageBox.Show("Nie załadowano algorytmu.");
                return;
            }

            //ładowanie algorytmu
            algorithm.SetTestData((int[, ])A.Clone(), (int[, ])B.Clone(), size);
            var sth = new Chart(algorithm, iterations, name, this.iterationGap, filename);

            sth.Show();
        }