Exemple #1
0
        public GreatDeluge(OrganonStand stand, OrganonConfiguration organonConfiguration, Objective objective, HeuristicParameters parameters)
            : base(stand, organonConfiguration, objective, parameters)
        {
            int treeRecords = stand.GetTreeRecordCount();

            this.ChangeToExchangeAfter = Int32.MaxValue;
            this.FinalMultiplier       = Constant.MonteCarloDefault.DelugeFinalMultiplier;
            this.IntitialMultiplier    = Constant.MonteCarloDefault.DelugeInitialMultiplier;
            this.Iterations            = Constant.MonteCarloDefault.IterationMultiplier * treeRecords;
            this.LowerWaterAfter       = (int)(Constant.MonteCarloDefault.ReheatAfter * treeRecords + 0.5F);
            this.LowerWaterBy          = Constant.MonteCarloDefault.DelugeLowerWaterBy;
            this.MoveType  = MoveType.OneOpt;
            this.RainRate  = null;
            this.StopAfter = Constant.MonteCarloDefault.StopAfter * treeRecords;
        }
Exemple #2
0
 public Hero(OrganonStand stand, OrganonConfiguration organonConfiguration, Objective objective, HeuristicParameters parameters)
     : base(stand, organonConfiguration, objective, parameters)
 {
     this.IsStochastic      = false;
     this.MaximumIterations = Constant.HeuristicDefault.HeroMaximumIterations;
 }
Exemple #3
0
 public RandomGuessing(OrganonStand stand, OrganonConfiguration configuration, Objective objective, HeuristicParameters parameters)
     : base(stand, configuration, objective, parameters)
 {
     this.CentralSelectionPercentage = parameters.ProportionalPercentage;
     this.Iterations = 4 * stand.GetTreeRecordCount();
     this.SelectionPercentageWidth = 20.0F;
 }
Exemple #4
0
        public SimulatedAnnealing(OrganonStand stand, OrganonConfiguration organonConfiguration, Objective objective, HeuristicParameters parameters)
            :  base(stand, organonConfiguration, objective, parameters)
        {
            int treeRecords = stand.GetTreeRecordCount();

            this.Alpha = Constant.MonteCarloDefault.AnnealingAlpha;
            this.ChangeToExchangeAfter    = Int32.MaxValue;
            this.FinalProbability         = 0.0F;
            this.InitialProbability       = 0.0F;
            this.Iterations               = Constant.MonteCarloDefault.IterationMultiplier * treeRecords;
            this.IterationsPerTemperature = Constant.MonteCarloDefault.AnnealingIterationsPerTemperature;
            this.MoveType = MoveType.OneOpt;
            this.ProbabilityWindowLength = Constant.MonteCarloDefault.AnnealingAveragingWindowLength;
            this.ReheatAfter             = (int)(Constant.MonteCarloDefault.ReheatAfter * treeRecords + 0.5F);
            this.ReheatBy = Constant.MonteCarloDefault.AnnealingReheadBy;

            // float temperatureSteps = (float)(defaultIterations / this.IterationsPerTemperature);
            // this.Alpha = 1.0F / MathF.Pow(this.InitialAcceptProbability / this.FinalAcceptProbability, 1.0F / temperatureSteps);
        }
Exemple #5
0
        public RecordTravel(OrganonStand stand, OrganonConfiguration organonConfiguration, Objective objective, HeuristicParameters parameters)
            : base(stand, organonConfiguration, objective, parameters)
        {
            int treeRecordCount = stand.GetTreeRecordCount();

            this.Alpha = Constant.MonteCarloDefault.RecordTravelAlpha;
            this.ChangeToExchangeAfter = Int32.MaxValue;
            this.FixedDeviation        = 0.0F;
            this.FixedIncrease         = 0.0F;
            this.IncreaseAfter         = (int)(Constant.MonteCarloDefault.ReheatAfter * treeRecordCount + 0.5F);
            this.Iterations            = Constant.MonteCarloDefault.IterationMultiplier * treeRecordCount;
            this.MoveType          = MoveType.OneOpt;
            this.RelativeDeviation = 0.0F;
            this.RelativeIncrease  = Constant.MonteCarloDefault.RecordTravelRelativeIncrease;
            this.StopAfter         = Constant.MonteCarloDefault.StopAfter * treeRecordCount;
        }