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(); }
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)); }
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)); }