Hello,
I am trying to add a level of complexity to a transshipment problem (mixed integer linear program) utilizing solver.
The problem is trying to minimize the total cost of meeting many end location demands by supplying from a single origin (Cincinnati). Cost is a function of throughput (KG) multiplied by distance (Mi).
The constraints of the problem are as follows:
- Must meet minimum demand by end location,
- If an intermediate is used, product in must equate to product out (linking constraint)
- If an intermediate is used, it will be listed as "1" as a binary constraint and will be required to have at least one input go through it (will force a location to ship something if being utilized).
- Min/Max constraint on number of intermediaries to use
This problem has been solved on the tab "Original MILP".
What I need support on is to add a level of complexity to the problem which is more resemblant of real life.
For example, say I worked at a Juice company in Cincinnati, and had the option of shipping finished product of juice from origin to each of the respective destinations. As an alternative, I could ship a concentrated form of the juice from Cincinnati to any one of the transshipment nodes, add water to the concentrated form, and then from there ship the finished product to each of the respective destinations. This would save me 66% on the first leg transportation cost, as 1 KG of finished product juice only requires 0.33KG of the concentrated form of juice. The savings would only be on the first portion of the logistics.
How would I go about adding this constraint? I had issues with linearity (as expected) when trying to add if statements to my end solution. I believe it is something to do with making the linking constraint dynamic but i am currently stuck. Any support is phenomenally appreciated, thanks!
Bookmarks