In my previous work packing ellipses into polygons, I used MathOptimizer Professional to do a global optimization. I've figured out how to do a local optimization using FindMinimum, by starting with random locations and orientations for the ellipses and doing a local search using FindMinimum. The "trick" is to first use NSolve to find the values of the auxiliary variables needed to keep the ellipses from overlapping for the random start and use them as the initial values for those variables in FindMinimum.
Attachments: