docplex.mp.relaxer module¶
- class docplex.mp.relaxer.FunctionalPrioritizer(fn, override=False)[source]¶
Bases:
Prioritizer
- class docplex.mp.relaxer.MappingPrioritizer(priority_mapping, default_priority=Priority.MANDATORY, override=False)[source]¶
Bases:
Prioritizer
- class docplex.mp.relaxer.MatchNamePrioritizer(priority_for_unnamed=Priority.MANDATORY, priority_for_non_matches=Priority.MANDATORY, case_sensitive=False, override=False)[source]¶
Bases:
Prioritizer
- class docplex.mp.relaxer.NamedPrioritizer(priority=Priority.MEDIUM, override=False)[source]¶
Bases:
Prioritizer
- class docplex.mp.relaxer.Prioritizer(override=False)[source]¶
Bases:
object
Abstract base class for prioritizers. This class acts like a functor to be called on each model constraint.
- class docplex.mp.relaxer.Relaxer(prioritizer='all', verbose=False, precision=1e-05, override=False, **kwargs)[source]¶
Bases:
PublishResultAsDf
,object
This class is an abstract algorithm, in the sense that it operates on interfaces.
It takes a prioritizer, which an implementation of
ConstraintPrioritizer
. For convenience, predefined prioritizer types are accessible through names:all relaxes all constraints using a MEDIUM priority; this is the default.
named relaxes all constraints with a user name but not the others.
match looks for priority names within constraint names; unnamed constraints are not relaxed.
Note
All predefined prioritizers apply various forms of logic, but, when a constraint has been assigned a priority by the user, this priority is always used. For example, the named prioritizer relaxes all named constraints with MEDIUM, but if an unnamed constraint was assigned a HIGH priority, then HIGH will be used.
See also
- get_relaxation(ct)[source]¶
Returns the infeasibility computed for this constraint.
- Parameters:
ct – A constraint.
- Returns:
The amount by which the constraint has been relaxed by the relaxer. The method returns 0 if the constraint has not been relaxed.
- is_relaxed(ct)[source]¶
Returns true if the constraint
ct
has been relaxed- Parameters:
ct – The constraint to check.
- Returns:
True if the constraint has been relaxed, else False.
- iter_relaxations()[source]¶
Iterates on relaxations.
Relaxations are built as a dictionary with constraints as keys and numeric violations as values, so this iterator returns
(ct, violation)
pairs.
- property number_of_relaxations¶
This property returns the number of relaxations found.
- relax(mdl, relax_mode=None, **kwargs)[source]¶
Runs the relaxation loop.
- Parameters:
mdl – The model to be relaxed.
relax_mode – the relaxation mode. Accept either None (in which case the default mode is used, or an instance of
RelaxationMode
enumerated type, or a string that can be translated to a relaxation mode.kwargs – Accepts named arguments similar to
solve
.
- Returns:
If the relaxation succeeds, the method returns a solution object, an instance of
SolveSolution
; otherwise returns None.
- relaxations()[source]¶
Returns a dictionary with all relaxed constraints.
- Returns:
A dictionary where the keys are the relaxed constraints,
and the values are the numerical slacks.
- property relaxed_objective_value¶
Returns the objective value of the relaxed solution.
- Raises:
DOCplexException – If the relaxation has not been successful.
- class docplex.mp.relaxer.TOutputTables(Constraint, Priority, Amount)¶
Bases:
tuple
- Amount¶
Alias for field number 2
- Constraint¶
Alias for field number 0
- Priority¶
Alias for field number 1
- class docplex.mp.relaxer.UniformPrioritizer(priority=Priority.MEDIUM, override=False)[source]¶
Bases:
Prioritizer