How Healthcare Organizations Can Optimize Inventory Management with Robust Optimization

Daniel Sepulveda Estay, PhD
7 min readFeb 22, 2023

In healthcare, managing inventory efficiently is critical to ensuring that medical supplies and devices are available when needed while minimizing costs. When demand and supply are uncertain, it can be difficult for traditional inventory management techniques to strike a balance between the cost of maintaining inventory on hand and the risk of stockouts or overstocking. Robust optimization addresses these issues by explicitly taking uncertainty into account during the optimization process.

This article will examine the use of robust optimization by healthcare organizations to enhance inventory control. The fundamentals of robust optimization, including the crucial ideas of scenario generation and deviation measures, will be covered first. Then, we'll show you how to incorporate supply and demand uncertainty into a robust optimization model for a healthcare inventory management problem.

To demonstrate the comprehensive optimization process step-by-step, we'll go through an example problem involving a hospital managing inventory of a vital medical device. We'll go over creating scenarios to represent demand and supply uncertainty, formulating a solid optimization model to improve inventory management, and solving the model using an open-source solver.

Robust optimization is a mathematical approach to decision-making that takes uncertainty into account and aims to find solutions that are as optimal as possible in the face of this uncertainty. Specifically, it involves finding solutions that are resilient to different types of uncertainties, such as changes in parameters, fluctuations in demand, or errors in data.

In contrast to traditional optimization, which assumes that all inputs are known with certainty, robust optimization acknowledges that many real-world problems involve significant uncertainty. Robust optimization seeks to minimize the impact of this uncertainty by identifying solutions that perform well over a range of possible scenarios, rather than optimizing for a single scenario.

A few examples of healthcare problems that could be best approached using robust optimization, include:

Hospital bed planning: Given the uncertainty in patient arrivals and expected length of stay, how can hospitals optimally schedule beds to minimize the risk of bed shortages while avoiding overcapacity?

Medical inventory management: Given the uncertainty in patient demand and supply chain disruptions, how can healthcare providers optimally manage inventory of critical medical supplies to ensure that they are available when needed and minimize the risk of stockouts or waste?

Patient scheduling: Given the uncertainty in patient arrivals and appointment durations, how can healthcare providers optimally schedule patient appointments to minimize wait times, patient no-shows, and overtime costs for staff?

Healthcare resource allocation: Given the uncertainty in patient demand and resource availability, how can healthcare providers optimally allocate resources such as personnel, equipment, and supplies to meet demand while minimizing the risk of shortages or overcapacity?

Robust Optimization process

  1. Define the optimization problem: Start by defining the mathematical optimization problem that you want to solve, including the decision variables, objective function, and constraints.
  2. Identify sources of uncertainty: Identify the sources of uncertainty that may affect the optimization problem. This could include uncertain parameters such as demand, cost, or supply constraints.
  3. Formulate the uncertainty set: Define a set of possible values for each uncertain parameter. This set should include a range of values that the parameter could take, based on your knowledge or assumptions.
  4. Choose a robustness criterion: Select a criterion for evaluating the quality of the solution under different scenarios. This could include worst-case analysis, where you aim to minimize the maximum possible cost, or chance-constrained optimization, where you aim to ensure that the probability of violating a constraint is below a certain level.
  5. Formulate the robust optimization problem: Reformulate the original optimization problem as a robust optimization problem by incorporating the uncertainty sets and the robustness criterion.
  6. Solve the robust optimization problem: Solve the robust optimization problem using an appropriate solver. This may involve solving a series of optimization problems, one for each scenario in the uncertainty set, or using specialized techniques such as semidefinite programming.
  7. Analyze the solution: Examine the solution to the robust optimization problem and evaluate its performance under different scenarios. This may involve sensitivity analysis, where you explore how the solution changes as the uncertain parameters vary.

Example: Inventory Management

Sure, let’s consider a healthcare supply chain example where a hospital network is trying to optimize its inventory management to ensure that it has enough medical supplies on hand to meet patient demand while also minimizing costs. This is a common problem in healthcare logistics, where there is a need to balance the risks of stockouts and waste with the need to control costs.

  1. Define the optimization problem: The hospital network wants to minimize the total cost of inventory management, including the cost of purchasing supplies, holding inventory, and disposing of expired items. The decision variables are the inventory levels for each supply item, which can be increased or decreased based on demand.
  2. Identify sources of uncertainty: The demand for medical supplies is uncertain and can vary based on a range of factors, including seasonal changes, disease outbreaks, and changes in patient demographics. In addition, the lead time for ordering and receiving supplies can be variable, which can impact the inventory levels.
  3. Formulate the uncertainty set: To incorporate these sources of uncertainty into the optimization problem, we can define an uncertainty set for the demand and lead time parameters. For example, we could assume that the demand for each supply item is normally distributed with a mean of 100 and a standard deviation of 20, and that the lead time for ordering and receiving supplies is normally distributed with a mean of 14 days and a standard deviation of 3 days.
  4. Choose a robustness criterion: To evaluate the performance of the solution under different scenarios, we could use a worst-case analysis criterion. This would involve finding the inventory levels that minimize the maximum possible cost across all possible demand and lead time scenarios.
  5. Formulate the robust optimization problem: We can reformulate the original optimization problem as a robust optimization problem by incorporating the uncertainty sets and the worst-case analysis criterion. This could involve adding constraints that ensure that the inventory levels are sufficient to meet demand under all possible scenarios, and adding a term to the objective function that penalizes excess inventory levels.
  6. Solve the robust optimization problem: We can solve the robust optimization problem using a specialized solver that can handle the uncertain parameters and the worst-case analysis criterion. This may involve solving a series of optimization problems, one for each scenario in the uncertainty set, or using techniques such as semidefinite programming to handle the uncertainty.
  7. Analyze the solution: The solution to the robust optimization problem will be a set of inventory levels for each supply item that minimize the maximum possible cost across all possible demand and lead time scenarios. We can analyze the solution to evaluate its performance under different scenarios, using techniques such as sensitivity analysis to explore how the solution changes as the uncertain parameters vary.

Assumptions:

  1. Demand for each supply item is normally distributed with a mean of 100 and a standard deviation of 20, and that the lead time for ordering and receiving supplies is normally distributed with a mean of 14 days and a standard deviation of 3 days.
  2. The cost of inventory management includes the cost of purchasing supplies, holding inventory, and disposing of expired items, and that the objective is to minimize this total cost.
  3. The hospital network is a centralized organization that can manage inventory levels across multiple sites and that the supply chain is well-coordinated, with accurate and timely data on demand and supply. In reality, there may be other factors that could impact the performance of the inventory management system, such as data quality issues, transportation delays, and coordination challenges between different stakeholders in the supply chain.

Equations needed

Step 1: Define the problem

The problem is to schedule hospital beds for each hour of each day of the week to meet the expected demand, while minimizing the number of beds scheduled.

Step 2: Define decision variables

For each hour of each day of the week, we define a decision variable representing the number of beds scheduled. Let x(i,j) be the number of beds scheduled for hour j on day i.

Step 3: Formulate the objective function

The objective function is to minimize the total number of beds scheduled. This can be expressed as follows:

Step 4: Formulate the constraints

We must ensure that the number of beds scheduled is sufficient to meet the expected demand for each hour and day of the week. We can also set bounds on the maximum number of beds scheduled per hour and per day. These constraints can be expressed as follows:

where demand(j) and capacity(j) are the expected demand and maximum capacity for hour j, and demand(i) and capacity(i) are the expected demand and maximum capacity for day i.

Step 5: Solve the problem

Once we have defined the problem, decision variables, objective function, and constraints, we can solve the problem using a robust optimization solver like Gurobi or CBC, which can generate scenarios and solve the problem under each scenario to find a solution that is robust to uncertainty.

from pulp import *

# Define the optimization problem
prob = LpProblem("Hospital Bed Planning", LpMinimize)

# Define the decision variables
x = LpVariable.dicts("Beds", [(i, j) for i in range(7) for j in range(24)],
lowBound=0, cat='Integer')

# Define the objective function
prob += lpSum([x[(i, j)] for i in range(7) for j in range(24)])

# Define the constraints
for j in range(24):
prob += lpSum([x[(i, j)] for i in range(7)]) >= 10
# At least 10 beds per hour
prob += lpSum([x[(i, j)] for i in range(7)]) <= 20
# No more than 20 beds per hour

for i in range(7):
prob += lpSum([x[(i, j)] for j in range(24)]) >= 50
# At least 50 beds per day
prob += lpSum([x[(i, j)] for j in range(24)]) <= 80
# No more than 80 beds per day

# Solve the problem
prob.solve()

# Print the status of the solution
print("Status:", LpStatus[prob.status])

# Print the optimal solution
for j in range(24):
for i in range(7):
print("Hour", j, "Day", i, ": ", value(x[(i, j)]))

--

--

Daniel Sepulveda Estay, PhD

I am an engineer and researcher specialized in the operation and management of supply chains, their design, structure, dynamics, risk and resilience