I have been trying to find a solution for the following assignment problem:
- There are "S" storage rooms. Each storage room, "s", has a capacity "Cs".
- There are "P" packages. Each package, "p", has a size "Zp"
- The cost to store a package "p" in a storage room "s" is "Tps"
- One storage room can take multiple packages,as long as their total size don't exceed the room's capacity "Cs".
- One package can't be split among multiple storage rooms.
The problem is to assign the packages to the storage room so as to minimise the total cost.
My thoughts:
- I have made a cost matrix.
- I have thought maybe it might be solved using the Hungarian algorithm. I think it is not applicable because there is an upper limit for the storage room capacity
- I thought maybe it can be treated as a transportation optimisation problem. I think it is not applicable because the package can't be split among several storage rooms.
A Mixed-Integer Programming model can look like:
min sum((p,s),T[p,s]*x[p,s])
sum(p, Z[p]*x[p,s]) <= C[s] ∀s
sum(s, x[p,s]) = 1 ∀p
x[p,s] ∈ {0,1}
This can be solved with any MIP solver. These assignment models tend to be fairly easy to solve.