I need your expertise in understanding or obtaining an algorithm for obtaining an approximation to the global supremum of a convex function $f$ over a convex set $X$. This problem is known to be $\textit{NP-Hard}$, so I wonder whether someone has attained an approximation to the problem or may have solved it under certain constraints in polynomial time (of course).
Would you know of such algorithm?
E.g. Given a convex set $S$ and an ellipsoid $E = (A,c)$ which is contained in $S \subseteq \mathbb{R}^n$, I want to find the farthest point from the ellipsoid which is not contained in the ellipsoid, hence the following in needed: $$ \arg\max_{x \in S}\ (x-c)^T A (x-c)$$ where $c \in \mathbb{R}^n$, and $A \in \mathbb{R}^{n \times n}$ a positive definite matrix.
please advise and thanks in advance.
This particular problem isn't NP in general, but ofc it depends on how $S$ is constructed. If $S$ is given by some nice, differentiable function, then it's just a matter of finding points on $\partial S$ at which the KKT conditions are satisfied - loosely speaking, points at which the gradient of $f(x)$ is perpendicular to the normal vector of $S$.
Of course, these points will not all be global (or even local) maxima, but one of them should be - thus you just have to exhaustively search all KKT points on the boundary of $S$ and therefore any algorithm that is based on finding KKT points will do just fine (which in turn simply amounts to finding solutions to some particular set of linear/nonlinear equations).