Interface ObjectiveFunction

All Known Implementing Classes:
StandardObjective

public interface ObjectiveFunction
Interface representing an optimization objective for multi-objective optimization.

An objective function evaluates a process system and returns a scalar value to be optimized (either maximized or minimized). Multiple objectives can be combined for Pareto optimization.

Version:
1.0
Author:
ASMF
  • Method Details

    • getName

      String getName()
      Get the name of this objective for reporting.
      Returns:
      objective name
    • getDirection

      Get the optimization direction.
      Returns:
      MAXIMIZE or MINIMIZE
    • evaluate

      double evaluate(ProcessSystem process)
      Evaluate the objective for the current process state.
      Parameters:
      process - the process system to evaluate
      Returns:
      the objective value
    • getUnit

      String getUnit()
      Get the unit of the objective value for display.
      Returns:
      unit string (e.g., "kW", "kg/hr", "%")
    • evaluateNormalized

      default double evaluateNormalized(ProcessSystem process)
      Get normalized value for comparison (converts MINIMIZE to negative for consistent sorting).
      Parameters:
      process - the process system to evaluate
      Returns:
      normalized value where higher is always better
    • create

      static ObjectiveFunction create(String name, ToDoubleFunction<ProcessSystem> evaluator, ObjectiveFunction.Direction direction, String unit)
      Create a custom objective function.
      Parameters:
      name - objective name
      evaluator - function to evaluate the objective
      direction - optimization direction
      unit - unit string
      Returns:
      new ObjectiveFunction instance