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); }
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); }