Propagates soft local consistencies and bounded variable elimination until all the propagation queues are empty or a contradiction occurs.
While (queues are not empty or current objective bounds have changed):
- queue for bounded variable elimination of degree at most two (except at preprocessing)
- BAC queue
- EAC queue
- DAC queue
- AC queue
- monolithic (flow-based and DAG-based) global cost function propagation (partly incremental)
- NC queue
- returns to #1 until all the previous queues are empty
- DEE queue
- returns to #1 until all the previous queues are empty
- VAC propagation (not incremental)
- returns to #1 until all the previous queues are empty (and problem is VAC if enable)
- exploits goods in pending separators for BTD-like methods
Queues are first-in / first-out lists of variables (avoiding multiple insertions). In case of a contradiction, queues are explicitly emptied by WCSP::whenContradiction