[ library(fd) | Reference Manual | Alphabetic Index ]

# minimize_bound_check

If within a minimization, force a check of the cost variable against the cost bound, which may lead to earlier failure.

## Description

This predicate can be used within a goal that is being minimized using minimize/2 or any of its variants. If used in other contexts it has no effect just succeeds.

The behaviour of minimize/2 is such that the cost bound is tightened whenever a better solution is found, but this tightening does not trigger an automatic check. It can therefore be advantageous and lead to earlier failure when minimize_bound_check/0 is called after every labeling step.

### Fail Conditions

Fails if the current cost cannot become smaller that the cost bound.

### Resatisfiable

No.

## Examples

        labeling([]).
        labeling([X|Xs]) :-
    	% do the check urgently, before any propagation happens
    	call_priority((indomain(X), minimize_bound_check), 2),
    	labeling(Xs).

## See Also

minimize / 2, minimize / 4, minimize / 6, minimize / 8