public AlgorithmController(AlgorthmParameters parametry) : this() { Schedule prototype = new Schedule(parametry.NumberOfCrossoverPoints, parametry.MutationSize , parametry.CrossoverProbability, parametry.MutationProbability); this.replaceByGeneration = parametry.ReplaceByGeneration; // Obecna liczba genomu najlepszego chromosomu,inicjacja 0 this.currentBestSize = 0; // Chromosom inicjalizacji this.prototype = prototype; // Obecna generacja po pierwsze generacje tabel są obecnie chromosomy this.currentBestSize = 0; // stan algorytmu this.state = AlgorithmState.AS_USER_STOPED; // Algorytm może mieć co najmniej dwa chromosomy if (parametry.NumberOfChromosomes < 2) { parametry.NumberOfChromosomes = 2; } // Śledzenia przynajmniej jedna z najlepszych chromosomie? if (parametry.TrackBest < 1) { parametry.TrackBest = 1; } if (this.replaceByGeneration < 1) { this.replaceByGeneration = 1; } else if (this.replaceByGeneration > parametry.NumberOfChromosomes - parametry.TrackBest) { this.replaceByGeneration = parametry.NumberOfChromosomes - parametry.TrackBest; } // _chromosomes i _bestFlags są tej samej wielkości, jest jeden do jednego mapowania między nimi this.chromosomes.Capacity = parametry.NumberOfChromosomes; for (int i = 0; i < this.chromosomes.Capacity; i++) { chromosomes.Add(new Schedule()); } this.bestFlags.Capacity = parametry.NumberOfChromosomes; for (int i = 0; i < this.bestFlags.Capacity; i++) { this.bestFlags.Add(false); } this.bestChromosomes.Capacity = parametry.TrackBest; for (int i = 0; i < this.bestChromosomes.Capacity; i++) { this.bestChromosomes.Add(-1); } }
public Harmonogram() { InitializeComponent(); backgroundGeneruj = new BackgroundWorker(); BestSchedule = new List <Schedule>(); _best = new Schedule(); InitializeBackgroundWorker(); dateTimePickerFrom.Enabled = false; dateTimePickerFor.Enabled = false; buttonStart.Enabled = false; buttonStop.Enabled = false; ParametryAlgorytmu = new AlgorthmParameters(); _dtStart = dateTimePickerFrom.Value; }
public AlgorithmSettingsForm(Harmonogram prelimiarz) { InitializeComponent(); _parameters = prelimiarz.ParametryAlgorytmu; _prelimiarz = prelimiarz; numericOfChromosomes.Value = _parameters.NumberOfChromosomes; numericReplace.Value = _parameters.ReplaceByGeneration; numericTrackBest.Value = _parameters.TrackBest; numericOfCrossoverPoints.Value = _parameters.NumberOfCrossoverPoints; numericMutationSize.Value = _parameters.MutationSize; numericCrossoverProbability.Value = _parameters.CrossoverProbability; numericMutationProbability.Value = _parameters.MutationProbability; }