Professional Documents
Culture Documents
V. Conclusion..........................................................................................10
1. Summary.......................................................................................10
2. Appendix.......................................................................................10
I. Introduction
1. Background Study
Operation Research (OR) is the study of applying mathematics to assist businesses in
answering their questions and providing them with helpful information in decision
making. Some of the fundamental mathematical concepts and computer techniques of
optimization that are introduced by OR include linear programming, the theory of
optimum decision-making with a linear objective function, and under linear resource
constraints. OR has a wide range of potential applications, including the following:
Scheduling and time management, urban and agricultural planning, business resource
planning and supply chain management, inventory management, network
optimization and engineering, packet routing optimization, risk management are some
of the responsibilities that fall under the management umbrella.
3. Proposed Model
We are going to propose a problem in which we will optimize the travel distance
between food suppliers and a supermarket chain system. To solve the transporting
problem, we decide to use linear programming in an optimization software to
minimize the relevant delivery costs, therefore, earning a maximization of the net
profit. The system we propose includes 2 food suppliers and 10 supermarkets in a
chain, for the convenience of solving the problem, the food suppliers will be called
once S1 and S2, and supermarkets will be hit once in alphabetical order from A to J.
The costs of transshipping between the food suppliers and the supermarkets are
connected to ci.
A food company has supplied food to supermarket chains. Suppose companies only
use refrigerated trucks to transport food to supermarket chains. Our use of refrigerated
trucks is to preserve the best food quality and meet regulatory transport requirements.
System Diagram:
Table I. Indexes
i Index of food supplier
j Index of supermarket
Table II. Parameters
cij Transportation cost occurred from suppliers i and supermarkets j
Dj Demand of supermarket j
Cai Capacity of suppliers i
For 1 ≤ i ≤ 10, xi will represent the number of products to be delivered from Supplier
1 to Supermarket A to J respectively.
For 10 ≤ i ≤ 20, xi will represent the number of products to be delivered from Supplier
2 to Supermarket A to J respectively.
2. Generated data
The table below gives the cost incurred during the transportation of goods from
Suppliers 1 and 2 to the 10 supermarkets in the chain, besides, the capacity of the
suppliers and demand for each supermarket is also identified as follows:
Costs unit: $
Demand and Capacity unit: Kilograms of fresh items
3. Objective function
Min Z = ∑ xi ci
= 108x1 + 23x2+ 91x3 + 45x4 + 57x5 + 68x6 + 33x7 + 74x8 + 56x9 + 45x10 +
74x11 + 87x12 + 122x13 + 95x14 + 68x15 + 135x16 + 88x17 + 155 x18 + 77x19 + 99x20
4. Constraints
Demand constraints: The total products purchased from the two suppliers must
satisfy the demand of the supermarkets.
x1 + x11 = 160 x6 + x16 = 210
x2 + x12 = 110 x7 + x17 = 100
x3 + x13 = 200 x8 + x18 = 230
x4 + x14 = 140 x9 + x19 = 140
x5 + x15 = 120 x10 + x20 = 150
This means that we will achieve the minimum cost of transportation of $109,860.0
when we order as calculated model:
Figure 10: Objective and Decision Variables Values when demand is 10% increased
When demand is increased by 10%, the minimum cost also increases as a result, with
a new value of $125,216.0, and the order planning is also changed as can be observed
in Figure 10. But we still came up with the result, the model is able to run when the
demand is increase by 10%.
Through the sensitivity analysis, we can observe that when demand changes at a rate
of +20%, the model will become infeasible, which means that the capacities of the
two food suppliers cannot cover all the demand of all supermarkets in the chain. As
demand is an uncontrollable factor in actual operation, our group suggests that the
suppliers should expand their warehouses, and increase carrying capacities to prevent
stockout in their operation. As stockout is a severe problem in their business,
customers can seek other suppliers and the firm may face a loss in their profit as well
as their reputation.
V. Conclusion
1. Summary
In conclusion, linear programming is an effective mathematical technique for
optimizing systems, particularly in the context of food suppliers and supermarket
chains. By utilizing linear programming, it is possible to minimize costs while
meeting the demand for various products, taking into account factors such as
transportation costs, inventory management, and customer demand. In this project, we
proposed a transportation problem where we optimized the travel distance between
food suppliers and a supermarket chain system. By utilizing linear programming in an
optimization software, we were able to minimize the relevant delivery costs and
maximize the net profit. Besides, we can have a closer look into the applicability of
the model through implementation of the sensitivity analysis, by changing the
uncontrollable factor like demand. This is a necessity in checking for applicability of
the model, as sometimes demand may exceed the capacities of the suppliers, stockout
may incur and cause a loss in profit and firm’s reputation as a result. After the
implementation of this project, our group aims to solve more complicated problems in
Logistics and supply chain management in our latter career. This project should be
served as a concrete foundation for more optimization problems that we have to deal
with in the future.
2. Appendix
Code in Python:
from gurobipy import *
# Objective Function
model.setObjective(quicksum(costs[i-1]*x[i] for i in range(1, 21)),
GRB.MINIMIZE)
# Subject to
for i in range(1, 11):
model.addConstr(x[i] + x[i+10] == demands[i-1])
model.addConstr(quicksum(x[i] for i in range(1, 11)) <=
capacities[0])
model.addConstr(quicksum(x[i] for i in range(11, 21)) <=
capacities[1])