Abstract
A unifying framework, named tree programming, for solution algorithms of combinatorial optimization problems, such as branch-and-bound algorithms, dynamic programming, backtrack programming, additive implicit enumeration and cutting plane methods, is proposed. Constituents of tree programming are a selection rule, a branching rule, an upper bounding function, an elimination rule and a terminating condition. The essential difference from conventional models of such algorithms is in the abstract definition of elimination rules. The validity of tree programming, finiteness and correctness, is examined. It is shown that finiteness is mainly dominated by the selection rule and the elimination rule, and that correctness by the terminating condition. As examples of tree programming, algorithms cited above are reformulated along the proposed framework.