A procedure for solving an integer programming problem. The problem is first solved ignoring the integer constraint. The solution obtained being noted, a variable is given an integer value either above or below the apparent maximum. Each resulting reduced problem is solved in its turn. The result is a branching tree reporting bounds on the optimum derived from problems related to the original.