Beispiel #1
0
        private void btnRun_Click(object sender, RoutedEventArgs e)
        {
            List<Algorithm> algoList = new List<Algorithm>();
            List<double> paramList = new List<double>();
            Core core = new Core();
            Algorithm alg = null;

            int iterations = Int32.Parse(paramAGIterations.Text);
            int FunctionNumber = comboboxFunction.SelectedIndex + 1;
            int dimensions = Int32.Parse(txtBoxDimensions.Text);

            if (checkBoxAG.IsChecked == true)
            {
                paramList.Clear();

                paramList.Add(iterations); // iteration
                paramList.Add(Double.Parse(paramAGPopulation.Text)); //rozmiar populacji
                paramList.Add(FunctionNumber); //funkcja rastrigin
                paramList.Add(dimensions); //liczba wymiarow
                paramList.Add(Double.Parse(paramAGPopulationSize.Text)); //liczba populacji
                paramList.Add(paramAGMutationType.SelectedIndex); //mutacja: 0 -> rownomierna, 1 -> brzegowa
                paramList.Add(Double.Parse(paramAGMutationProbability.Text)); //prawdop. mutacji
                paramList.Add(paramAGCrossOverType.SelectedIndex); //krzyzowanie: 0 -> AMXO, 1 -> BLXa
                paramList.Add(Double.Parse(paramAGCrossoverProbability.Text)); //prawd. krzyzowania
                paramList.Add(paramAGSelectionType.SelectedIndex); //selekcja: 0 -> rankingowa, 1 -> ruletka, 2 -> turniejowa
                paramList.Add(paramAGMigrationType.SelectedIndex); //migracja: 0 -> cykliczna jednostronna, 1 -> cykliczna obustronna
                paramList.Add(Double.Parse(paramAGMigrationSize.Text)); //rozmiar migracji
                paramList.Add(Double.Parse(paramAGEpochSize.Text)); // rozmiar epoki

                alg = new Algorithm(Codes.AlgoName.CE, SetPath.GetInstance().AGPath, paramList);
                algoList.Add(alg);
            }

            if (checkBoxPSO.IsChecked == true)
            {
                paramList.Clear();

                paramList.Add(iterations);  // iteracje
                paramList.Add(Double.Parse(paramPSOPopulation.Text));   // rozmiar populacji
                paramList.Add(FunctionNumber);   // Funkcja
                paramList.Add(dimensions);  // wymiary
                paramList.Add(Double.Parse(paramPSOVMax.Text)); // VMax
                paramList.Add(Convert.ToDouble(paramPSOTuning.IsChecked.Value)); // Dostrajanie C1, C2 - checkbox
                paramList.Add(Double.Parse(paramPSOC1.Text));   // statyczne C1
                paramList.Add(Double.Parse(paramPSOC2.Text));   // statyczne C2
                paramList.Add(Convert.ToDouble(paramPSOIntertiaCheckbox.IsChecked.Value));  // Dostrajanie intercja - checkbox
                paramList.Add(Double.Parse(paramPSOInertiaValue.Text)); // Statyczna wartość intercji
                paramList.Add(Convert.ToDouble(paramPSOadaptation.IsChecked.Value));    // Adaptacja - checkbox
                paramList.Add(Double.Parse(paramPSOPopulationToReinitation.Text));  //  "Liczba cząsteczek do reinicjalizacji" %
                paramList.Add(Double.Parse(paramPSOConvergenceToReinitation.Text)); //12   "Zbieżność konieczna do reinicjalizacji  " %
                paramList.Add(Double.Parse(paramPSODeactivation.Text)); //13    "Dezaktywacja adaptacji przy postępie równym " %
                paramList.Add(paramPSORandomGenerator.SelectedIndex);   //14  combo box "Generator liczb pseudolosowych" ("mersenne twister" / "standard") na typ bool (mersenne = 1)

                alg = new Algorithm(Codes.AlgoName.PSO, SetPath.GetInstance().PSOPath, paramList);
                algoList.Add(alg);
            }

            if (checkBoxDE.IsChecked == true)
            {
                paramList.Clear();

                paramList.Add(iterations);
                paramList.Add(Double.Parse(paramDEPopulationSize.Text));  // osobniki
                paramList.Add(FunctionNumber);  // funkcja
                paramList.Add(dimensions); // wymiary
                paramList.Add(Double.Parse(paramDE_F.Text)); // parameter f
                paramList.Add(Double.Parse(paramDE_CE.Text));    // parameter CR

                alg = new Algorithm(Codes.AlgoName.DE, SetPath.GetInstance().DEPath, paramList);
                algoList.Add(alg);
            }

            if (checkBoxAPI.IsChecked == true)
            {
                paramList.Clear();

                paramList.Add(iterations);
                paramList.Add(Double.Parse(paramAPIAntCount.Text));   // AntsCount
                paramList.Add(FunctionNumber);   // Function
                paramList.Add(Double.Parse(paramAPIHuntingSitesCount.Text));   // HuntingSite
                paramList.Add(Double.Parse(paramAPINestMoving.Text));  // MoveGeneration
                paramList.Add(Double.Parse(paramAPIAntMemory.Text));   // antMemory
                paramList.Add(dimensions);   // Dimensions
                paramList.Add(Convert.ToDouble(paramAPITandemRun.IsChecked.Value));   // tandemRun
                paramList.Add(Double.Parse(paramAPINestCount.Text));   // NestCount

                alg = new Algorithm(Codes.AlgoName.API, SetPath.GetInstance().APIPath, paramList);
                algoList.Add(alg);
            }

            if (checkBoxSwarm.IsChecked == true)
            {
                paramList.Clear();

                paramList.Add(iterations);
                paramList.Add(Double.Parse(paramSWARMPopulation.Text));    // Rozmiar populacji
                paramList.Add(FunctionNumber);    // Funkcja
                paramList.Add(Double.Parse(paramSWARMTriesCount.Text));    // Limit
                paramList.Add(dimensions);    // Liczba wymiarów

                alg = new Algorithm(Codes.AlgoName.BEES, SetPath.GetInstance().BEESPath, paramList);
                algoList.Add(alg);
            }

            Helper.algAmount = algoList.Count;
            progressBar.DataContext = ProgresClass.getInstance();
            core.Run(algoList);
        }
Beispiel #2
0
        private void btnRun_Click(object sender, RoutedEventArgs e)
        {
            List<Algorithm> algoList = new List<Algorithm>();
            List<double> paramList = new List<double>();
            Core core = new Core();
            Algorithm alg = null;

            int FunctionNumber = comboboxFunction.SelectedIndex + 1;
            int dimensions = Int32.Parse(txtBoxDimensions.Text);

            if (checkBoxPSO.IsChecked == true)
            {
                paramList.Add(Double.Parse(paramPSOIterations.Text));   // Iteracje
                paramList.Add(Double.Parse(paramPSOPopulation.Text));   // rozmiar populacji
                paramList.Add(FunctionNumber);   // Funkcja

                alg = new Algorithm(Codes.AlgoName.PSO, "C:/DLL/PSO.dll", paramList);
                algoList.Add(alg);
            }

            if (checkBoxAG.IsChecked == true)
            {
                paramList.Clear();

                paramList.Add(Double.Parse(paramAGIterations.Text)); //iteracje
                paramList.Add(Double.Parse(paramAGPopulation.Text)); //rozmiar populacji
                paramList.Add(FunctionNumber); //funkcja rastrigin
                paramList.Add(dimensions); //liczba wymiarow
                paramList.Add(5); //liczba populacji
                paramList.Add(paramAGMutationType.SelectedIndex); //mutacja: 0 -> rownomierna, 1 -> brzegowa
                paramList.Add(Double.Parse(paramAGMutationProbability.Text)); //prawdop. mutacji
                paramList.Add(paramAGCrossOverType.SelectedIndex); //krzyzowanie: 0 -> AMXO, 1 -> BLXa
                paramList.Add(Double.Parse(paramAGCrossoverProbability.Text)); //prawd. krzyzowania
                paramList.Add(paramAGSelectionType.SelectedIndex); //selekcja: 0 -> rankingowa, 1 -> ruletka, 2 -> turniejowa
                paramList.Add(paramAGMigrationType.SelectedIndex); //migracja: 0 -> cykliczna jednostronna, 1 -> cykliczna obustronna
                paramList.Add(Double.Parse(paramAGMigrationSize.Text)); //rozmiar migracji

                alg = new Algorithm(Codes.AlgoName.AG, "C:/DLL/CoEvoDll.dll", paramList);
                algoList.Add(alg);
            }

            if (checkBoxAPI.IsChecked == true)
            {
                paramList.Clear();

                paramList.Add(Double.Parse(paramAPIIterations.Text));   // Iterations
                paramList.Add(Double.Parse(paramAPIAntCount.Text));   // AntsCount
                paramList.Add(FunctionNumber);   // Function
                paramList.Add(Double.Parse(paramAPIHuntingSitesCount.Text));   // HuntingSite
                paramList.Add(Double.Parse(paramAPINestMoving.Text));  // MoveGeneration
                paramList.Add(Double.Parse(paramAPIAntMemory.Text));   // antMemory
                paramList.Add(dimensions);   // Dimensions
                paramList.Add(1);   // tandemRun
                paramList.Add(1);   // NestCount

                alg = new Algorithm(Codes.AlgoName.API, "C:/DLL/Api.dll", paramList);
                algoList.Add(alg);
            }

            if (checkBoxDE.IsChecked == true)
            {
                paramList.Clear();

                paramList.Add(50);  // iteracje
                paramList.Add(20);  // osobniki
                paramList.Add(FunctionNumber);  // funkcja
                paramList.Add(dimensions); // wymiary
                paramList.Add(0.5); // parameter f
                paramList.Add(0.5);    // parameter CR
                paramList.Add(2);   // liczba wektorów
                paramList.Add(1);   // min = 0 max = 1

                alg = new Algorithm(Codes.AlgoName.DE, "C:/DLL/DE_Alg.dll", paramList);
                algoList.Add(alg);
            }

            if (checkBoxSwarm.IsChecked == true)
            {
                paramList.Clear();

                paramList.Add(Double.Parse(paramSWARMIterations.Text));    // Liczba iteracji
                paramList.Add(Double.Parse(paramSWARMPopulation.Text));    // Rozmiar populacji
                paramList.Add(FunctionNumber);    // Funkcja
                paramList.Add(Double.Parse(paramSWARMTriesCount.Text));    // Limit
                paramList.Add(dimensions);    // Liczba wymiarów
     
                alg = new Algorithm(Codes.AlgoName.BEES, "C:/DLL/ABC.dll", paramList);
                algoList.Add(alg);
            }

            core.Run(algoList);
        }