22 ArgumentNullException.ThrowIfNull(
25 ArgumentNullException.ThrowIfNull(
36 var relaxedIdentifiers =
40 in specification.Multipliers)
43 sourceModel.Constraints.Single(
49 relaxedModel.Constraints.Single(
63 relaxedModel.Objective.Expression.Add(
66 relaxedConstraint.IsEnabled =
69 relaxedIdentifiers.Add(
73 relaxedModel.Description =
74 string.IsNullOrWhiteSpace(
75 sourceModel.Description)
76 ?
"Lagrangian-relaxed clone."
77 : sourceModel.Description.Trim() +
78 " Lagrangian-relaxed clone.";
80 relaxedModel.EnsureValid();
Associates one relaxed mathematical constraint with its Lagrangian multiplier.
Result of a source-preserving Lagrangian model transformation.
Builds a source-preserving Lagrangian relaxation for a minimization model.
LagrangianRelaxationBuildResult Build(MathematicalModel sourceModel, LagrangianRelaxationSpecification specification)
Explicit immutable set of constraints and multipliers used to construct one Lagrangian-relaxed mathem...
void EnsureValidAgainst(MathematicalModel model)
Represents one linear constraint in a mathematical optimization model.
double RightHandSide
Gets or sets the right-hand-side constant value.
LinearExpression LeftHandSide
Gets or sets the left-hand-side linear expression.
int Id
Gets or sets the unique constraint identifier within the mathematical model.
LinearExpression Clone()
Creates an independent copy of this expression.
void AddConstant(double value)
Adds a constant value to the expression.
Represents a solver-independent mathematical optimization model.
MathematicalModel Clone()
Creates an independent copy of the mathematical model.
void EnsureValid()
Validates the complete mathematical model.