I would like to solve something like the following: maximize the sum (over i) of v_i * g_i(w) subject to w (a vector) summing to 1 (or <1,w>=1), where g_i(w) is defined as the argmax of w^t*x (or ), subject to x is in a convex ellipsoid, E_i , and x is in the nonnegative orthant.
Now, solving each program is fairly simple, but I have several thousand. The easiest thing to do would just be to plug the whole thing into cvxopt or some similar package, so that each time the objective function is called I solve several thousand convex programs, but this would be rather time consuming. Are there any simple shortcuts or simplifications to cut down on the runtime?