Class PropagateBasic

  • All Implemented Interfaces:
    Propagate

    public class PropagateBasic
    extends Object
    implements Propagate
    A basic Propagate implementation Created by cprudhom on 02/09/15. Project: choco.
    Since:
    02/09/15
    Author:
    Charles Prud'homme
    • Constructor Summary

      Constructors 
      Constructor Description
      PropagateBasic()  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void execute​(Solver solver)
      Basic propagation: First, prepare the decision (to ensure good behavior of the Move.repair(Solver) call) then, a first propagation ensures that, if learning is on, the unit nogood learnt on failure filters, the cut is posted before applying the decision to ensure good nogood, and a second propagation ensures the cut is taken into account the decision is applied (if learning is on and the decision is refuted, it is bypassed by the learnt unit nogood), finally, a fix point is reached.
    • Constructor Detail

      • PropagateBasic

        public PropagateBasic()
    • Method Detail

      • execute

        public void execute​(Solver solver)
                     throws ContradictionException
        Basic propagation:
        • First, prepare the decision (to ensure good behavior of the Move.repair(Solver) call)
        • then, a first propagation ensures that, if learning is on, the unit nogood learnt on failure filters,
        • the cut is posted before applying the decision to ensure good nogood, and a second propagation ensures the cut is taken into account
        • the decision is applied (if learning is on and the decision is refuted, it is bypassed by the learnt unit nogood),
        • finally, a fix point is reached.
        Specified by:
        execute in interface Propagate
        Parameters:
        solver - the underlying solver
        Throws:
        ContradictionException - if a contradiction occurs