[ library(fd) | Reference Manual | Alphabetic Index ]
deletemin(?Var, +List, -Rest)
Select from List the variable Var which has the smallest lower domain bound,
and return the rest of the list.
- -Var
- A variable.
- -Rest
- A term unifying with a list of domain variables or integers.
- +List
- A list of domain variables or integers.
Description
This predicate is used in labeling procedures. Especially when labeling
start times in scheduling problems, it is often a good strategy to start
with the earliest possible tasks, because fixing those will cause useful
bounds propagation on the start times of the other tasks. This predicate
selects from a list the variable with the smallest lower bound. Numbers
are treated as if they were variables with singleton domains.
Fail Conditions
Fails if List is empty.
Resatisfiable
No.
Examples
start_time_labeling([]) :- !.
start_time_labeling(Vars) :-
deletemin(X, Vars, Rest),
indomain(X),
start_time_labeling(Rest).
See Also
deleteff / 3, deleteffc / 3, indomain / 1, labeling / 1