A branch-and-cut algorithm for the minimum branch vertices spanning tree problem