If some variables in the optimal solution have fractional values, we may start a branch and bound type process, in which we recursively solve subproblems in which some of the fractional variables have their values fixed to either zero or one. In each step of an algorithm of this type, we consider a subproblem of the original 0-1 integer program in which some of the variables have values assigned to them, either 0 or 1, and the remaining variables are still free to take on either value. In subproblem "i", let "Vi" denote the set of remaining variables. The process begins by considering a subproblem in which no variable values have been assigned, and in which "V0" is the whole set of variables of the original problem. Then, for each subproblem "i", it performs the following steps.