Notebooks for Operations research¶
Preamble
Welcome to the Notebooks for Operations Research interactive book! This book contains a collection of Jupyter Notebooks with tutorials, exercises and Python libraries designed to explain the principles and applications of operations research.
Our primary goal and motivation is to bridge the gap between theoretical background and practical applications, leveraging the interactive features of Jupyter Notebook so that learners can engage with the content. Operations research is a fascinating field with countless real life applications, and we believe that, just as with many other fields, the best way to learn is to incorporate practical applications and skills. In this sense, Python provides a comprehensive toolset to solve operations research problems, and a user-friendly programming language that is easy to learn and close to mathematical language, thus it is perfect match for our objectives!
Before you embark in this educational project, you need to know that the interactive book has been carefully crafted to introduce operations research to novice students. The chapters are organised to guide readers from the fundamentals of operations research to the application of complex problem solving methods and techniques in real life scenarios using Python. The book primarily covers applications related to engineering and management, as its origins root back to the a course on Operations Research at EDEM, although it is open for the entire community. It is also important to note that this interactive book is a living document, open for contributions and continuously evolving to adding new content and advancements in the field.
We happily invite you to join us and learn the fundamentals, challenge yourself with exercises, and learn the Python libraries to apply operations research in the real world. We have tried to make theory more easy to reach through the interaction with code. Additionally, the interactive notebooks incorporate questions for analysis and template prompts so that you can delve into its contents with the help of an AI assistant. We want to provide an integrated environment with all the tools you need to learn operations research with a practical mindset, at your own path.
Bibliography¶
The following references have been used throughout this interactive book:
European Union. (n.d.). Artificial intelligence. Retrieved from https://ec.europa.eu/
Hagberg, A., Schult, D., & Swart, P. (2008). Networkx: A Python package for the creation, manipulation, and study of the structure, dynamics, and functions of complex networks. Retrieved from https://networkx.org/
Harris, C. R., Millman, K. J., van der Walt, S. J., Gommers, R., Virtanen, P., Cournapeau, D., Wieser, E., & others. (2020). Array programming with NumPy. Nature, 585(7825), 357-362. Retrieved from https://numpy.org/
Hunter, J. D. (2007). Matplotlib: A 2D graphics environment. Computing in Science & Engineering, 9(3), 90-95. Retrieved from https://matplotlib.org/
Keen, B. A. (2018). Introduction to Operations Research with Python. Retrieved from https://github.com/benalexkeen/Introduction-to-linear-programming>
Jones, E., Oliphant, T., & Peterson, P. (2001). SciPy: Open source scientific tools for Python. Retrieved from https://scipy.org/
Mitchell, L. (2011). PuLP: A Linear Programming Toolkit for Python. Retrieved from https://coin-or.github.io/pulp/
Pedregosa, F., Varoquaux, G., Gramfort, A., Michel, V., Thirion, B., Grisel, O., Blondel, M., & others. (2011). Scikit-learn: Machine learning in Python. Journal of Machine Learning Research, 12, 2825-2830. Retrieved from https://scikit-learn.org/
Poler, R., Mula, J., & Díaz-Madroñero, M. (2014). Operations Research Problems Statements and Solutions. Springer.
Python Software Foundation. (n.d.). Python. Retrieved from https://www.python.org/
The Pandas Development Team. (2020). Pandas: Powerful data structures for data analysis in Python. Retrieved from https://pandas.pydata.org/
Call for Contributions¶
If you are a teacher and would like to contribute to this online book, please do not hesitate to contact me and I will be glad to discuss how to integrate your valuable input. We are always eager to:
Add new exercises: There are just not enough exercises to master the field, so if you think you can contribute
with exercises to any of the sections, please reach out! We will gladly see how to incorporate them into the book.
Add new tutorials: Interactive tutorials and dynamics are at the heart of this book, if you have any activity in
mind that uses Python to illustrate key concepts we will be very happy to go through them with you.
Add new chapters: Operations research is a vast field of applied mathematics and many techniques and methods are
not covered in this book, yet. Let us work together to prepare new chapters and extend the scope of the book.