I have a polytope described by a set of inequalities and equalities that are given as numpy arrays. These arrays will usually be quite large, as they describe the LP-relaxation of an MIPLIB problem. I want to compute the analytic center of this polytope. If possible, I'd like to do this directly from my Python code. However, I am also open to solutions that (for instance) write the polytope description to an MPS file and use another tool to compute the analytic center.
So far, I have tried implementing a primal-dual newton algorithm as described in "Interior-Point Algorithm: Theory and Analysis" by Yinyu Ye. However, this method is much too slow.
Another approach I tried was using a path-following interior-point method with a vanishing objective. To this end, I used linprog from scipy. However, evaluation on simple examples shows that method="interior-point"
gives an interior point that is different from the analytic center, even when I set options={"resolve": False, "rr": False, "autoscale": False}
to prevent modifications to the polytope description. Using method="highs-ipm"
will give a vertex solution.
I'd be happy to hear about any ideas.