Skip to content

Objective strategies

A model has at most one objective, and a solver declares the strategies it supports through fznso_<name>_objective_list.

Each strategy comes in an int_ and a float_ form, because the argument type differs; a solver may support either, both or neither.

10 objective strategys

float_lex_maximize(list of var float)

Maximise the variables in lexicographical order: the first is maximised, then the second subject to it, and so on.

float_lex_minimize(list of var float)

Minimise the variables in lexicographical order: the first is minimised, then the second subject to it, and so on.

float_maximize(var float)

Find an assignment maximising the given decision variable.

float_minimize(var float)

Find an assignment minimising the given decision variable.

float_pareto_maximize(list of var float)

Report solutions that are not dominated by any already reported: each assigns some variable a higher value than every previous solution did.

int_lex_maximize(list of var int)

Maximise the variables in lexicographical order: the first is maximised, then the second subject to it, and so on.

int_lex_minimize(list of var int)

Minimise the variables in lexicographical order: the first is minimised, then the second subject to it, and so on.

int_maximize(var int)

Find an assignment maximising the given decision variable.

int_minimize(var int)

Find an assignment minimising the given decision variable.

int_pareto_maximize(list of var int)

Report solutions that are not dominated by any already reported: each assigns some variable a higher value than every previous solution did.

Unlike the single-objective strategies, this reports a set of incomparable solutions rather than converging on one. Every solution is delivered through on_solution as it is found, so intermediate has no effect here.