discrete_optimization.workforce.commons package

Submodules

discrete_optimization.workforce.commons.fairness_modeling module

class discrete_optimization.workforce.commons.fairness_modeling.ModelisationDispersion(value)[source]

Bases: Enum

An enumeration.

EXACT_MODELING_DUPLICATED_VARS = 1
EXACT_MODELING_WITH_IMPLICATION = 0
MAX_DIFF = 2
PROXY_MAX_MIN = 3
PROXY_MIN_MAX = 4
PROXY_SLACK = 6
PROXY_SUM = 5

discrete_optimization.workforce.commons.fairness_modeling_cpmpy module

discrete_optimization.workforce.commons.fairness_modeling_cpmpy.cumulate_value_per_teams(used_team: dict[int, Expression] | NDVarArray, allocation_variables: NDVarArray | list[dict[int, Expression]], value_per_task: list[int], number_teams: int | None = None, name_value: str | None = '')[source]
  • used_team :
    • either a dict : {index_team: boolean_var} for index_team in range(nb_teams)

    • or simply an array of size (nb_teams)

  • allocation_variables :
    • either a 2D array of vars : [index_activity, index_team] or a list of size (nb_activities) of dict : {index_team: boolean} for index_team in “available_teams for a given task”

  • value per task :
    • list of values linked to task, to aggregate for a given team.

discrete_optimization.workforce.commons.fairness_modeling_cpmpy.cumulate_value_per_teams_version_2(used_team: dict[int, Expression] | NDVarArray, allocation_variables: NDVarArray | list[dict[int, Expression]], value_per_task: list[int], number_teams: int | None = None, name_value: str | None = '')[source]
  • used_team :
    • either a dict : {index_team: boolean_var} for index_team in range(nb_teams)

    • or simply an array of size (nb_teams)

  • allocation_variables :
    • either a 2D array of vars : [index_activity, index_team] or a list of size (nb_activities) of dict : {index_team: boolean} for index_team in “available_teams for a given task”

  • value per task :
    • list of values linked to task, to aggregate for a given team.

discrete_optimization.workforce.commons.fairness_modeling_cpmpy.define_fairness_criteria_from_cumulated_value(used_team: dict[int, Expression] | NDVarArray, cumulated_value_per_team: NDVarArray, value_per_task: list[int], modelisation_dispersion: ModelisationDispersion, cumulated_value_per_team_nz: NDVarArray | None = None, name_value: str | None = '')[source]
discrete_optimization.workforce.commons.fairness_modeling_cpmpy.model_fairness(used_team: dict[int, Expression] | NDVarArray, allocation_variables: NDVarArray | list[dict[int, Expression]], value_per_task: list[int], modelisation_dispersion: ModelisationDispersion, number_teams: int | None = None, name_value: str | None = '')[source]

discrete_optimization.workforce.commons.fairness_modeling_ortools module

discrete_optimization.workforce.commons.fairness_modeling_ortools.cumulate_value_per_teams(used_team: dict[int, IntVar] | list[IntVar], allocation_variables: list[list[IntVar]] | list[dict[int, IntVar]], value_per_task: list[int], cp_model: CpModel, number_teams: int | None = None, name_value: str | None = '')[source]
  • used_team :
    • either a dict : {index_team: boolean_var} for index_team in range(nb_teams)

    • or simply an array of size (nb_teams)

  • allocation_variables :
    • either a 2D array of vars : [index_activity, index_team] or a list of size (nb_activities) of dict : {index_team: boolean} for index_team in “available_teams for a given task”

  • value per task :
    • list of values linked to task, to aggregate for a given team.

discrete_optimization.workforce.commons.fairness_modeling_ortools.cumulate_value_per_teams_version_2(used_team: dict[int, IntVar] | list[IntVar], allocation_variables: list[list[IntVar]] | list[dict[int, IntVar]], value_per_task: list[int], cp_model: CpModel, number_teams: int | None = None, name_value: str | None = '')[source]
  • used_team :
    • either a dict : {index_team: boolean_var} for index_team in range(nb_teams)

    • or simply an array of size (nb_teams)

  • allocation_variables :
    • either a 2D array of vars : [index_activity, index_team] or a list of size (nb_activities) of dict : {index_team: boolean} for index_team in “available_teams for a given task”

  • value per task :
    • list of values linked to task, to aggregate for a given team.

discrete_optimization.workforce.commons.fairness_modeling_ortools.define_fairness_criteria_from_cumulated_value(used_team: dict[int, IntVar] | list[IntVar], cumulated_value_per_team: list[IntVar], value_per_task: list[int], modelisation_dispersion: ModelisationDispersion, cp_model: CpModel, cumulated_value_per_team_nz: list[IntVar] | None = None, name_value: str | None = '')[source]
discrete_optimization.workforce.commons.fairness_modeling_ortools.model_fairness(used_team: dict[int, IntVar] | list[IntVar], allocation_variables: list[list[IntVar]] | list[dict[int, IntVar]], value_per_task: list[int], modelisation_dispersion: ModelisationDispersion, cp_model: CpModel, number_teams: int | None = None, name_value: str | None = '')[source]

Module contents