Class ProductionOptimizer.OptimizationConstraint
java.lang.Object
neqsim.process.util.optimizer.ProductionOptimizer.OptimizationConstraint
- All Implemented Interfaces:
ProcessConstraint
- Enclosing class:
ProductionOptimizer
public static final class ProductionOptimizer.OptimizationConstraint
extends Object
implements ProcessConstraint
Constraint on a process-level metric such as total power, pressure, or temperature.
Implements the unified ProcessConstraint interface so that constraints defined for the
internal optimizer are interchangeable with those used by external solvers via
ProcessSimulationEvaluator.
- Version:
- 1.0
- Author:
- NeqSim Development Team
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final Stringprivate final ProductionOptimizer.ConstraintDirectionprivate final doubleprivate final ToDoubleFunction<ProcessSystem> private final Stringprivate final doubleprivate final ProductionOptimizer.ConstraintSeverity -
Constructor Summary
ConstructorsConstructorDescriptionOptimizationConstraint(String name, ToDoubleFunction<ProcessSystem> metric, double limit, ProductionOptimizer.ConstraintDirection direction, ProductionOptimizer.ConstraintSeverity severity, double penaltyWeight, String description) -
Method Summary
Modifier and TypeMethodDescriptionReturns a human-readable description of this constraint.Returns the constraint direction.doublegetLimit()Returns the constraint limit value.getName()Returns the name of this constraint.doubleReturns the penalty weight for this constraint.Returns the optimizer-level severity.Returns the severity of this constraint.greaterThan(String name, ToDoubleFunction<ProcessSystem> metric, double limit, ProductionOptimizer.ConstraintSeverity severity, double penaltyWeight, String description) booleanisSatisfied(ProcessSystem process) Checks if this constraint is satisfied for the given process state.lessThan(String name, ToDoubleFunction<ProcessSystem> metric, double limit, ProductionOptimizer.ConstraintSeverity severity, double penaltyWeight, String description) doublemargin(ProcessSystem process) Computes the constraint margin for the given process state.Converts this constraint to aProcessSimulationEvaluator.ConstraintDefinitionfor use with external optimizers.Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface ProcessConstraint
isHard, penalty
-
Field Details
-
name
-
metric
-
limit
private final double limit -
direction
-
severity
-
penaltyWeight
private final double penaltyWeight -
description
-
-
Constructor Details
-
OptimizationConstraint
public OptimizationConstraint(String name, ToDoubleFunction<ProcessSystem> metric, double limit, ProductionOptimizer.ConstraintDirection direction, ProductionOptimizer.ConstraintSeverity severity, double penaltyWeight, String description)
-
-
Method Details
-
lessThan
public static ProductionOptimizer.OptimizationConstraint lessThan(String name, ToDoubleFunction<ProcessSystem> metric, double limit, ProductionOptimizer.ConstraintSeverity severity, double penaltyWeight, String description) -
greaterThan
public static ProductionOptimizer.OptimizationConstraint greaterThan(String name, ToDoubleFunction<ProcessSystem> metric, double limit, ProductionOptimizer.ConstraintSeverity severity, double penaltyWeight, String description) -
getName
Returns the name of this constraint.- Specified by:
getNamein interfaceProcessConstraint- Returns:
- constraint name, never null
-
getSeverity
Returns the optimizer-level severity.- Returns:
- HARD or SOFT severity
-
getSeverityLevel
Returns the severity of this constraint.Uses the unified
ConstraintSeverityLevelenum that maps across all constraint types.- Specified by:
getSeverityLevelin interfaceProcessConstraint- Returns:
- constraint severity level
-
getPenaltyWeight
public double getPenaltyWeight()Returns the penalty weight for this constraint.Higher weight means constraint violations are penalized more strongly in penalty-based optimization methods.
- Specified by:
getPenaltyWeightin interfaceProcessConstraint- Returns:
- penalty weight (non-negative)
-
getDescription
Returns a human-readable description of this constraint.- Specified by:
getDescriptionin interfaceProcessConstraint- Returns:
- constraint description, may be empty but never null
-
getLimit
public double getLimit()Returns the constraint limit value.- Returns:
- the limit
-
getDirection
Returns the constraint direction.- Returns:
- LESS_THAN or GREATER_THAN
-
margin
Computes the constraint margin for the given process state.Convention:
- margin >= 0 means the constraint is satisfied
- margin < 0 means the constraint is violated (more negative = worse)
- Specified by:
marginin interfaceProcessConstraint- Parameters:
process- the process system in its current state (already run)- Returns:
- constraint margin (positive = satisfied, negative = violated)
-
isSatisfied
Checks if this constraint is satisfied for the given process state.Default implementation returns
margin(process) >= 0.- Specified by:
isSatisfiedin interfaceProcessConstraint- Parameters:
process- the process system- Returns:
- true if satisfied
-
toConstraintDefinition
Converts this constraint to aProcessSimulationEvaluator.ConstraintDefinitionfor use with external optimizers.- Returns:
- equivalent ConstraintDefinition
-