Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
 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;
 }
Exemplo n.º 3
0
        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;
        }