import choco.kernel.solver.search.integer.AbstractIntVarSelector; import choco.kernel.solver.variables.integer.IntDomainVar; import choco.kernel.solver.variables.AbstractVar; import choco.kernel.memory.IStateInt; public class MaxSaturationHeuristic extends AbstractIntVarSelector { private IntDomainVar[] vars; // 0/1 decision variables private int n; // number of decision variables private int[] saturation; //saturation of vertex i private ReversibleVector candidateSet; // the uninstantiated variables public MaxSaturationHeuristic(IntDomainVar[] vars,int[] saturation,ReversibleVector candidateSet){ this.vars = vars; n = vars.length; this.saturation = saturation; this.candidateSet = candidateSet; } public IntDomainVar selectIntVar(){ int maxSaturation = Integer.MIN_VALUE; IntDomainVar maxSaturationVar = null; int i = 0; for (int k=0;k maxSaturation){maxSaturationVar = vars[i]; maxSaturation = saturation[i];} } return maxSaturationVar; } // // select the uninstantiated variable with maximum saturation // }