MinRequiredResources

The "optimal" criteria is defined as the minimum weighted amount of resources (by optional shift cost), that ensures that there are never fewer resources shifted than the ones required per period 
Runs the optimization solver 
 class pyworkforce.scheduling.MinRequiredResources(num_days: int, periods: int, shifts_coverage: dict, required_resources: list, max_period_concurrency: int, max_shift_concurrency: int, cost_dict: dict  None = None, max_search_time: float = 240.0, num_search_workers: int = 2, *args, **kwargs)[source]
The “optimal” criteria is defined as the minimum weighted amount of resources (by optional shift cost), that ensures that there are never fewer resources shifted than the ones required per period
 Parameters:
 num_days: int,
Number of days needed to schedule
 periods: int,
Number of working periods in a day
 shifts_coverage: dict,
dict with structure {“shift_name”: “shift_array”} where “shift_array” is an array of size [periods] (p), 1 if shift covers period p, 0 otherwise
 required_resources: list,
Array of size [days, periods]
 max_period_concurrency: int,
Maximum resources that are allowed to shift in any period and day
 max_shift_concurrency: int,
Number of maximum allowed resources in the same shift
 cost_dict: dict, default = None
dictionary of form {shift: cost_value}, where shift must be the same options listed in the shifts_coverage matrix, and they must be all integers
 max_search_time: float, default = 240
Maximum time in seconds to search for a solution
 num_search_workers: int, default = 2
Number of workers to search for a solution