We propose an analytic center cutting plane method to determine if a matrix
is completely positive, and return a cut that separates it from the completely
positive cone if not. This was stated as an open (computational) problem by
Berman, D\"ur, and Shaked-Monderer [Electronic Journal of Linear Algebra,
2015]. Our method optimizes over the intersection of a ball and the copositive
cone, where membership is determined by solving a mixed-integer linear program
suggested by Xia, Vera, and Zuluaga [INFORMS Journal on Computing, 2018]. Thus,
our algorithm can, more generally, be used to solve any copositive optimization
problem, provided one knows the radius of a ball containing an optimal
solution. Numerical experiments show that the number of oracle calls (matrix
copositivity checks) for our implementation scales well with the matrix size,
growing roughly like O(d2) for d×d matrices. The method is
implemented in Julia, and available at
https://github.com/rileybadenbroek/CopositiveAnalyticCenter.jl.Comment: 16 pages, 1 figur