  When approaching to problems in computer science, we often encounter
situations where a subset of a finite set maximizing some utility function
needs to be selected. Some of such utility functions are known to be
approximately submodular. For the problem of maximizing an approximately
submodular function (ASFM problem), a greedy algorithm quickly finds good
feasible solutions for many instances while guaranteeing
($1-e^{-\gamma}$)-approximation ratio for a given submodular ratio $\gamma$.
However, we still encounter its applications that ask more accurate or exactly
optimal solutions within a reasonable computation time. In this paper, we
present an efficient branch-and-cut algorithm for the non-decreasing ASFM
problem based on its binary integer programming (BIP) formulation with an
exponential number of constraints. To this end, we first derive a BIP
formulation of the ASFM problem and then, develop an improved constraint
generation algorithm that starts from a reduced BIP problem with a small subset
of constraints and repeats solving the reduced BIP problem while adding a
promising set of constraints at each iteration. Moreover, we incorporate it
into a branch-and-cut algorithm to attain good upper bounds while solving a
smaller number of nodes of a search tree. The computational results for three
types of well-known benchmark instances show that our algorithm performs better
than the conventional exact algorithms.
