I created a simple model for assigning sales reps to advertiser accounts. The reps list has a max book size and a max account limit, and the advertisers have a corresponding book size and account size (default 1). There's also a complexity and location property on both lists that have to match in order for an assignment to be valid.
One main objective is to maximize the total book size covered by assigning reps to ad accounts. The constraints are 1) the reps and ad accounts must have the same complexity 2) the reps and ad accounts must be in the same location 3) the reps max book size cannot be exceed 4) the reps max account number cannot be exceeded and 5) each ad account can only be assigned in whole once.
My model works fine when we limit the number of reps to 1,000 and the ad accounts to 1,000. This takes about a minute to run. If I increase the ad accounts to 2,000, the optimizer will finish at 2 minutes. However, when I increase the ad accounts to 10,000, the optimizer fails around 10 minutes. Any suggestions on scalability?
Also - can anyone point me to any detailed documentation on what exactly the optimizer is doing in the background? Is it possible to replicate the logic using import actions, etc?
The problem you described does not seem terribly large/complex in comparison to others we've seen. while 10 min isn't a very long run time, it seems longer than it should be for this size problem.
Let's try to troubleshoot this and see what helps.
First, in the action configuration, have you filled in the bounds underneath the variable(s)? Filling in the bounds helps reduce the size of the feasible solution area and can improve run times quite a bit. secondly, Have you tried running as REAL or INTEGER for the variable? Real will usually run faster if integer isn't critical.
If you've tried both those options with similarly slow results, then we'll have our support team run an optimization log to continue troubleshooting from there. Please direct message me if that is the case.
Our optimization service has incorporated Gurobi's optimization engine into the anaplan platform. Gurobi uses a proprietary set of very complex algorithms to solve the problems and this cannot be replicated using imports and or other actions/functions.