One thing you could try is feed all the required constraints into an "expert system" and have the software optimize the required rules. You might get some surprising results. Don't have an expert system handy at the moment, but I have a gut feeling (based on my experience with one such system $65K+) one could be coaxed into getting some very sensible results.