/// <summary> /// Initializes a new instance of the <see cref="ComboStrategy"/> class. /// </summary> internal ComboStrategy(Configuration configuration, IRandomValueGenerator generator, InterleavingStrategy prefixStrategy, InterleavingStrategy suffixStrategy) : base(configuration, generator, suffixStrategy.IsFair) { this.PrefixStrategy = prefixStrategy; this.SuffixStrategy = suffixStrategy; }
/// <summary> /// Creates a <see cref="InterleavingStrategy"/> from the specified configuration. /// </summary> internal static InterleavingStrategy Create(Configuration configuration, IRandomValueGenerator generator) { InterleavingStrategy strategy = null; if (configuration.SchedulingStrategy is "replay") { var trace = ScheduleTrace.Deserialize(configuration, out bool isFair); strategy = new ReplayStrategy(configuration, generator, trace, isFair); } else if (configuration.SchedulingStrategy is "random") { strategy = new RandomStrategy(configuration, generator); } else if (configuration.SchedulingStrategy is "prioritization") { strategy = new PrioritizationStrategy(configuration, generator); } else if (configuration.SchedulingStrategy is "fair-prioritization") { var prefixStrategy = new PrioritizationStrategy(configuration, generator); var suffixStrategy = new RandomStrategy(configuration, generator); strategy = new ComboStrategy(configuration, generator, prefixStrategy, suffixStrategy); } else if (configuration.SchedulingStrategy is "probabilistic") { strategy = new ProbabilisticRandomStrategy(configuration, generator); } else if (configuration.SchedulingStrategy is "rl") { strategy = new QLearningStrategy(configuration, generator); } else if (configuration.SchedulingStrategy is "dfs") { strategy = new DFSStrategy(configuration, generator); } return strategy; }
/// <summary> /// Initializes a new instance of the <see cref="TemperatureCheckingStrategy"/> class. /// </summary> internal TemperatureCheckingStrategy(Configuration configuration, IRandomValueGenerator generator, InterleavingStrategy strategy) : base(configuration, generator, strategy) { }