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