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; }
public Hero(OrganonStand stand, OrganonConfiguration organonConfiguration, Objective objective, HeuristicParameters parameters) : base(stand, organonConfiguration, objective, parameters) { this.IsStochastic = false; this.MaximumIterations = Constant.HeuristicDefault.HeroMaximumIterations; }
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; }
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); }
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; }