Optimization Problem Version III
Optimization Problem Version III
1 Problem Description
1.1 Background
In modern warehouse management, warehouses are typically divided into two main areas: the Forward Area
and the Reserve Area, to handle order demands more efficiently.
• Reserve Area: The Reserve Area is used to store large quantities of goods, usually in the form of cases
or pallets. These goods take up a large amount of space but are relatively cost-effective to manage due
to high storage density. The primary function of the Reserve Area is to supply goods to the Forward
Area. Since goods in the Reserve Area are stored in bulk, directly picking from the Reserve Area for
orders is less efficient. Therefore, these bulk goods need to be regularly broken down and replenished in
the Forward Area.
• Forward Area: The Forward Area is used to store small quantities of goods that have already been
broken down from the Reserve Area, typically in the form of single items or small packages after being
broken case from cases or pallets. The purpose of the Forward Area is to quickly respond to small-
batch, multi-variety demands that frequently appear in orders. Due to the limited space and capacity of
the Forward Area, it can only store goods with high demand frequency.
2 Model Assumptions
2.1 Demand Assumptions
• Demand Stability Assumption: It is assumed that customer demand is stable and known during
the study period. All order quantities are determined before optimization, without considering seasonal
fluctuations or sudden demand changes.
• Order Distribution Assumption: All orders are evenly distributed within the study period (e.g., a
day or an hour), with no peak or low periods in order distribution.
• Cost Consideration Assumption: Transportation costs, picking costs, and other operational costs are
not considered; only order fulfilment rate and replenishment frequency are focused on.
3 Parameter Definitions
Symbol Description
N Total number of slots in the Forward Area.
M Total number of types of goods in the warehouse (e.g., a, b, c, ...).
Si Capacity of the ith slot (in units), representing the maximum number of units
that can be stored in each slot.
Qj Total inventory of goods j in the Reserve Area, available for replenishment to
the Forward Area.
Dk Demand quantity of the k th order, including the quantity required for each
type of goods.
O Total number of orders.
xij Quantity of goods j stored in the ith slot. For example, xij = 5 means there
are 5 units of goods j stored in the ith slot.
ykj Fulfilled quantity of goods j for order k. For example, ykj = 3 means 3 units
of goods j have been picked from the Forward Area to fulfil order k.
Ctotal Total capacity∑ of the Forward Area, which is the sum of the capacities of all
N
slots, Ctotal = i=1 Si .
ϵ A very small constant is used to prevent division by zero and ensure computa-
tional stability.
Table 1: Parameter definitions
4 Objective Function
∑
O
Maximize Z = Ik (1)
k=1
Optimization Problem
Where:
• Z is the objective function, representing the total number of fully satisfied orders.
• O is the total number of orders.
• Ik is an indicator function for whether order k is fully satisfied:
5 Constraints
5.1 Capacity Constraints
xij ≤ Si ∀i ∈ {1, 2, . . . , N }, ∀j ∈ {1, 2, . . . , M } (2)
Explanation: The quantity of goods j stored in slot i cannot exceed the maximum capacity of slot Si .
∑
N ∑
M
xij ≤ Ctotal (3)
i=1 j=1
Explanation: The total quantity of goods stored in all slots in the Forward Area cannot exceed the total
capacity of the Forward Area, Ctotal .
Explanation: The total quantity of goods j stored in all slots in the Forward Area cannot exceed the total
inventory of goods j in the Reserve Area, Qj .
∑
N ∑
O
xij ≥ ykj ∀j ∈ {1, 2, . . . , M } (6)
i=1 k=1
Explanation: The total quantity of goods j stored in the Forward Area must be greater than or equal to the
total quantity of goods j fulfilled across all orders.
7 Experimental Design
7.1 Objective
The main objective of this experiment is to optimise the slot layout in the front area of a two-zone warehouse
using a simulated annealing algorithm. The goal is to maximise the number of fully fulfilled orders in a given
time. By adjusting the temperature, the cooling rate and the number of iterations, we aim to analyse how
different parameter settings affect the algorithm’s performance in order fulfilment.
For the order demand data, orders are generated in four time periods throughout the day. Each order
contains random demand for each product, with quantities ranging from 1 to 20 units. The number of orders
per period is randomly generated, ranging from 5 to 20 orders per period.
These randomly generated data sets are used as inputs for the optimization algorithm.
• Temperature (temp): The initial temperature controls the algorithm’s exploration capability. Higher
temperatures allow the algorithm to accept worse solutions at the beginning to avoid local optima. For
each set of data, the initial temperature was set to 1000 and 1200 in two separate experiments.
• Cooling Rate (cooling_rate): This parameter determines how fast the temperature decreases. A
slower cooling rate gives the algorithm more time to explore solutions, while a faster rate leads to quicker
convergence. The cooling rate was set to 0.95 and 0.98 in the two experiments.
• Iteration Count (max_iter): The number of iterations controls how long the algorithm runs. More
iterations allow the algorithm to search for better solutions. The iteration count was set to 1000 and 2000,
respectively, in the two experiments.
In total, six experiments were conducted using three different sets of order data and two different parameter
configurations for each set. These six configurations are used for comparison to evaluate the impact of different
parameter settings on the optimization results.
1. Data Generation: I randomly generated three sets of order data. Each set contains order demands
for multiple products over four time periods. The demand for each product in each order was randomly
generated between 1 and 20 units.
2. Initial Inventory Setup: For each set of order data, I also generated the initial inventory for the reserve
area. The stock for each product was randomly generated between 50 and 200 units.
3. Algorithm Execution: For each set of order data, I ran the simulated annealing algorithm twice, once
with the parameter configuration of 1000 (temp), 0.95 (cooling rate), and 1000 (iterations), and once with
1200 (temp), 0.98 (cooling rate), and 2000 (iterations).
4. Recording Results: For each run, I recorded the number of fully satisfied orders, as well as the to-
tal number of goods fulfilled. I repeated this process for all three sets of order data, resulting in six
experimental runs in total.
Table 3: Results for Data Set A under two different parameter configurations.
Table 4: Results for Data Set B under two different parameter configurations.
Table 5: Results for Data Set C under two different parameter configurations.