Esempio n. 1
0
 public TotalWorkTimeCostFunction(SchedulerModel model, WorkEligibilityChecker workEligibilityChecker, CompositeStateCalculator stateCalculator)
 {
     _underMinWorkTimeCost = DefaultCost * 0.5;
     _model = model ?? throw new ArgumentNullException(nameof(model));
     _workEligibilityChecker = workEligibilityChecker ?? throw new ArgumentNullException(nameof(workEligibilityChecker));
     _stateCalculator        = stateCalculator ?? throw new ArgumentNullException(nameof(stateCalculator));
     _longestShift           = _model.Demands.Values
                               .SelectMany(dArr => dArr)
                               .Select(d => d.Shift)
                               .OrderByDescending(s => s.Duration)
                               .First();
 }
Esempio n. 2
0
 public RemoveUnderMinConsecutiveShiftsScheduler(SchedulerModel model, CostFunctionBase costFunction, WorkEligibilityChecker workEligibilityChecker)
     : base(model, costFunction, workEligibilityChecker)
 {
 }
 public AllDemandsScheduler(SchedulerModel model, CostFunctionBase costFunction, CompositeStateCalculator stateCalculator, WorkEligibilityChecker workEligibilityChecker)
     : base(model, costFunction, workEligibilityChecker)
 {
     _stateCalculator = stateCalculator ?? throw new ArgumentNullException(nameof(stateCalculator));
 }
Esempio n. 4
0
 public ReplaceSingleWeekendsWithDoubleWeekendsScheduler(SchedulerModel model, CompositeStateCalculator stateCalculator, WorkEligibilityChecker workEligibilityChecker, CostFunctionBase costFunction)
     : base(model, costFunction, workEligibilityChecker)
 {
     _stateCalculator = stateCalculator ?? throw new ArgumentNullException(nameof(stateCalculator));
 }
 protected SchedulerBase(SchedulerModel model, CostFunctionBase costFunction, WorkEligibilityChecker workEligibilityChecker)
 {
     _model                  = model ?? throw new ArgumentNullException(nameof(model));
     _costFunction           = costFunction ?? throw new ArgumentNullException(nameof(costFunction));
     _workEligibilityChecker = workEligibilityChecker ?? throw new ArgumentNullException(nameof(workEligibilityChecker));
 }
 public UntilMinTotalWorkTimeScheduler(SchedulerModel model, CompositeStateCalculator stateCalculator, WorkEligibilityChecker workEligibilityChecker, CostFunctionBase costFunction) : base(model, costFunction, workEligibilityChecker)
 {
     _stateCalculator = stateCalculator ?? throw new ArgumentNullException(nameof(stateCalculator));
 }