A tree-search algorithm for mixed integer programming problems