Optimizer - Forcing one product to remain at one plant despite optimisation



I have a Model and have successfully optimised our data

3 Plants

100 locations

Costs from each plant to each location

Total Demand volume by location (we have product but don't use it currently*)

Constraints Volume cannot exceed plant Capacity and Location Demand must be met

This all works as expected

*What I want to be able to do is lock certain Product to a Plant, so it does not move to the optimum location.

How would i do that, as its puzzling me?


  • ankit_cheeni
    edited February 2023

    How about creating a constraint that is dimensioned by a subset of 'All Plants - Required Plant' and a subset of the Production and set that to 0?

    So if your variable is Production, do a Production <= 0 for these subsets (2 plants that you don't want). I'm sure you have another constraint that says Production >=0. This will set the plant product combinations 0 for 2 plants, restricting them to the 3rd plant.

    There is a chance I might not be 100% accurate but if you share your constraints blueprint, it would be easier. Although I feel this should give you a good working principle.

    Another alternative is create a multiplier at Product - Plant level that is set to 0 for the combinations you don't want and is 1 for the rest and then use it either in objective or some constraint. This might cause indirection though so try the first one first.

  • Thanks for the suggestion.

    I solved this in the end by optimising and excluding the products that are only produced at plant A, and then once the optimisation was complete, re importing the fixed products back into Plant A.

    This works very satisfactorily and also allows the user to tick the products they wish to lock.

    The import is added to the Optimise process, and so it's all very seamless.

  • I'd recommend downloading the Optimizer Toolbox into your workspace and looking at the examples in there. Check out T5.3 T&Q Allocation with Scoring (which includes locking certain accounts to certain reps) or T1.3 Allocation with Product & Line Compatibility (which includes a compatibility matrix which restricts certain products to be created on certain lines).