Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Criteria are important as they represent the customer end goal regarding the optimization. Choosing the right types and prioritizing them according to the customer's needs is one of the keys to success.


On this page:

Table of Contents

Caution to Minimization/Maximization

...

There are two different ways to define that set boundaries to a variable.

  • Thresholds criteria make the variable stay above or below a given value. The criteria may be unreached in case of conflictual constraints.

  • Minimum and maximum values hard-constrain the search space of Value Finders. This is easier and more efficient than applying criteria to them, but also more restrictive: the Value Finder is unable to go further the boundaries.

It is also not the same modeling: applying criteria is modeling the problem while setting boundaries is restricting the solution.

Be careful: In case of a an "I want the variable to be between 10 and 20 but it's even better if it's at 15" type of need, the recommendation is to use a target at 15 with an acceptable delta of 5 instead of two high priority thresholds plus a low priority target. It takes fewer agents and results in a way smoother and faster convergence in most cases. The only drawback is a small loss of explainability. You cannot differentiate the impacts and induced movements on the Value Finders as it is only one criterion instead of three.

Example to define strict minimum and maximum values:

Paste code macro
languageyaml
titleStrict minimum and maximum
variables:
  - name: SomeValueFinder
    type: value_finder
    init:
      type: data
      field: initial_value
    min:
      type: inline
      value: 0
    max:
      type: inline
      value: 42

Example to define smooth minimum and maximum with criteria:

Paste code macro
languageyaml
titleSmooth minimum and maximum
criteria:
  - name: LowerThreshold
    type: lower_threshold
    on: SomeValueFinder
    threshold:
      type: inline
      value: 0
    acceptable_delta:
      type: inline
      value: 0.1
    priority:
      type: inline
      value: high
  - name: UpperThreshold
    type: upper_threshold
    on: SomeValueFinder
    threshold:
      type: inline
      value: 42
    acceptable_delta:
      type: inline
      value: 0.1
    priority:
      type: inline
      value: high

Example to define a target value with an acceptable delta:

...

languageyaml
titleSmooth minimum and maximum

...

Composite Criteria

Composite criteria are expressed as one criterion over several variables in the description file but are actually instantiated as several variables, computations, and criteria. They are instantiated as a set of substractions, differences, and either a threshold (for Alignment criteria) or target to zero criteria (EqualTo criteria).

...