kep_solver.solving module

class RCVFStep(target, num_deactivated, time)

Bases: object

A dataclass containing information about one step in using reduced cost variable fixing to solve an IP.

target: int

The target value for the IP at this step.

num_deactivated: int

The number of variables deactivated at this step.

time: float

How long the IP solve took at this particular step.

__init__(target, num_deactivated, time)
class Level(num_variables, num_constraints, linear_value=None, rcvf_steps=None)

Bases: object

Details on the IP solving at one particular level of the objective hierarchy.

num_variables: int

How many variables are in the problem at this point.

num_constraints: int

How many constraints are in the problem at this point.

linear_value: float | None = None

What is the value of the linear relaxation at this point. Note that this is only properly calculated if one uses RCVF, otherwise a value of None is stored.

rcvf_steps: list[RCVFStep] | None = None

Contains details on how RCVF performed at each stage. If RCVF was never used, this value is just None.

__init__(num_variables, num_constraints, linear_value=None, rcvf_steps=None)
class TimeStep(description, time)

Bases: object

Details how long one particular step of a process took.

description: str

A description of the step in question.

__init__(description, time)
time: float

How long this particular step took.

class SolvingStatistics(times, levels)

Bases: object

A dataclass containing information relevant to the solving of particular problems.

__init__(times, levels)
times: list[TimeStep]

A list of various steps involving in solving the problem. Each itme is a TimeStep object.

levels: list[Level]

A list containing details on how each level of the objective hierarchy was solved.

class SolvingOptions(solver=<pulp.apis.coin_api.PULP_CBC_CMD object>, useRCVF=False)

Bases: object

__init__(solver=<pulp.apis.coin_api.PULP_CBC_CMD object>, useRCVF=False)
solver: LpSolver = <pulp.apis.coin_api.PULP_CBC_CMD object>

What solver to use. The creation of the pulp LpSolver object also often includes solver-specific options.

useRCVF: bool | list[bool] = False

Either a single boolean denoting whether or not to use reduced cost variable fixing, or a list of booleans, one for each level of the objective hierarchy, such that for each level the corresponding boolean denotes whether to use reduced cost variable fixing. For more details on reduced cost variable fixing, see [Delorme23].

useRCVFAtLevel(level)

Returns True if and only if RCVF should be used at this level.

Parameters:

level (int) – The corresponding lever of the objective hierarchy.

Return type:

bool