Optimizing Throughput in a Capacitated Production Line: A Linear Programming Approach with Sensitivity Analysis
Identifying an optimal operating policy is important, especially in a capacitated production line, to ensure no resources are left underutilized. That optimum alone, however, is not sufficient to find the bottleneck that restricts throughput at that current optimum and to see where a future upgrade would follow.
This research builds a linear programming (LP) model in a case study with Rice Fruit Company to maximize hourly throughput under their baseline forklift trip time, stage capacity, and dumper rate constraints. At the heart of the work, we run a sensitivity analysis on the key parameters individually to see how each one moves the optimal throughput.
Using recorded data from the Rice Fruit production facility, the model is formulated and analyzed under:
- forklift trip times (full-bin delivery and empty-bin return)
- load action time
- infeed and outfeed stage capacity
- dumper rate
Solving the LP model using the simplex method gives an optimum of about 23.5 (≈ 24) bins per hour — below the 30-bins-per-hour maximum at the current dumper rate of 0.5 bins per minute. The sensitivity results reveal that forklift trip times, namely full-bin delivery and empty-bin return, are the bottleneck on throughput; improving them enough raises throughput to that 30-bins-per-hour cap. Together, the methodology turns an LP model into a practical guide to deciding where effort and investment should go first.
Project advisor: Dr. Kimberly Spayd, PhD (Gettysburg College)
optimizing-throughput-using-linear-programming-with-sensitivity-analysis/
├── project/ # SIURO LaTeX sources
│ ├── main.tex
│ ├── references.bib
│ ├── siuro250211.cls
│ ├── siamplain.bst
│ └── figures/
├── paper/ # compiled PDF
├── src/ # LP solver + sensitivity sweeps
│ ├── simplex_algorithm_solver.py
│ ├── sweep.py
│ └── parameter-notebook/ # one notebook per parameter
├── docs/ # SIURO class documentation
├── LICENSE
└── README.md
- Zip the contents of
project/(main.tex,references.bib,siuro250211.cls,siamplain.bst, andfigures/) - Overleaf → New Project → Upload Project
- Upload the zip — it compiles
main.texautomatically
Open paper/optimizing-production-line-using-linear-programming.pdf.
- Python 3
pulp(LP solver; ships with CBC)matplotlib(sensitivity plots)- Jupyter (to open the sensitivity notebooks)
pip install pulp matplotlib jupyterBaseline solve (default Rice Fruit parameters):
python src/simplex_algorithm_solver.pySensitivity analysis (one parameter at a time):
- Open a notebook in
src/parameter-notebook/ - Run all cells — each notebook sweeps one parameter, prints (x^*), and plots throughput vs that input
| Notebook | Parameter |
|---|---|
full_bin_delivery_trip_time.ipynb |
full-bin delivery trip time |
empty_bin_return_trip_time.ipynb |
empty-bin return trip time |
load_action_time.ipynb |
load action time |
infeed_capacity.ipynb |
infeed capacity |
outfeed_capacity.ipynb |
outfeed capacity |
dumper_rate.ipynb |
dumper rate |
Shared sweep helpers live in src/sweep.py.
- Soikat Saha (corresponding author)
- Sammy Linnen
- Joey Coppola
- Thomas Nguyen
MIT License — see LICENSE.
- Research advised by Dr. Kimberly Spayd, PhD (Gettysburg College)
- Thank you to Rice Fruit Company and their team for providing production-line footage used in data collection and for the opportunity to work on this project