A company wants to minimize the costs of shipping goods from production plants to warehouses near
metropolitan demand centers, while not exceeding the supply available from each plant and meeting
the demand from each metropolitan area. The company has plants in S. Carolina, Tennessee and
Arizona. It is thinking about opening a plant in Arkansas.      
    Number to ship from plant x to warehouse y (at intersection):  
Plants: Total San Fran Denver Chicago Dallas New York  
S. Carolina 0 0 0 0 0 0  
Tennessee 0 0 0 0 0 0  
Arizona 0 0 0 0 0 0  
Arkansas 0 0 0 0 0 0  
Totals: 0 0 0 0 0  
Demands by Whse --> 180 80 200 160 220  
Plants: Supply Shipping costs from plant x to warehouse y (at intersection):  
S. Carolina 310 $10 $8 $6 $5 $4  
Tennessee 260 $6 $5 $4 $3 $6  
Arizona 280 $3 $4 $5 $5 $9  
Arkansas 0 $4 $3 $6 $4 $7  
Shipping: $0 $0 $0 $0 $0 $0  
Extra shipping cost if opened$100 Decision to open plant 0  
A company currently distributes products from three plants to five warehouses in different cities. Management
is now thinking about opening a new plant to bring down distribution cost. Should the company decide to
open the new plant or not?  
This models uses 2 kinds of variables. First, there are the variables that indicate how many products to ship
from each plant to each warehouse. Second, we have a decision variable to decide whether we should
open the new plant. For more information on the decision variables, see the worksheet.  
1) The variables are the number of products to ship from each plant to each warehouse and the decision to
open or close the new plant. These are defined on this worksheet as Shipments and plant_decision.
2) First, there are the 'normal' distribution constraints. These are the constraints that we cannot ship more
products from the plants than the supply at these plants. Also, we don't ship more to the cities than the demand
from those cities. This leads to:  
  Shipped_from_plants <= Supply  
  Shipped_to_warehouses >= Demand  
Second, since we can't ship a negative number of products, we have the logical constraint
  products_shipped >= 0 via the Assume Non-Negative option  
And third, we must tell the Solver to strictly use 0 or 1 for the 'decision' variable. This gives:
  plant_decision = binary  
3) The objective is to minimize cost, defined as Total_cost. This is calculated by muliplying the distribution
cost times the number of products shipped, plus the extra cost to open the new plant.  
You might have noticed that this model resembles a pure transportation model. This is an example of a mix
between a transportation model and a pure decision model, like Lockbox. In real life situations, it is very
common to combine different kind of models to get a better representation of the problem.
Notice how the decision variable is used to control the supply at the potentially new plant. If the decision to
open is no, the supply is zero.