Hello Nice first post I can't give you the "best" algorithm to solve your problem, but I would try a Genetic Algorithm approach. You will find solution quickly, however it won't be optimal. But if you can live with an error ~5% than give it a try.