# What are the prerequisites for learning about operations research?

I'm finding myself needing to learn about operations research. I'm planning to just find a textbook (or some other medium, such as an online course) on OR and learn from there. But I don't think I have the needed foundations to even start learning.

I have a good amount of combinatorics, linear algebra, vector calculus, and differential equations under my belt, but am lacking in statistics knowledge. I assume OR is largely a matter of statistics, so that's my main concern.

In terms of statistics knowledge, where should I start and what should I be trying to work towards with the goal of eventually learning about OR?

As a side question, if you have any recommendations for textbooks or other sources I can learn from I'd much appreciate it!

• Welcome to OR.SE! I actually think with your current background, you shouldn't be concerned about starting your OR journey. So, check the questions here, here, and here for some books and other sources.
– EhsanK
May 23, 2020 at 23:24
• @EhsanK Thank you, I will check those threads out! So am I mistaken in assuming that statistics is required for OR? Are there at least some basics about statistics I should make sure I understand before jumping into OR? May 23, 2020 at 23:29
• Probability and statistics are both important for a strong foundation in OR and there are different areas that you use those skills such as stochastic processes, queuing theory, financial optimization, and more. What I meant was, if your hesitation in jumping into learning is a lack of statistics knowledge, there are still many areas of OR that you can explore and learn. I'm sure others will provide you with examples of resources for learning statistics though.
– EhsanK
May 24, 2020 at 0:01

## 4 Answers

I would recommend starting with OR books/courses right away. You can learn a lot (e.g linear programming, integer programming, convex optimization) without a working knowledge of statistics. However, if you want to dig into stochastic programming, queuing theory, inventory theory you will need some knowledge of probability and statistics. I would advise starting with linear and integer programming first before considering those fields.

P.S: It could be useful if you precise why you need to learn OR.

Edit: I suggest starting with this course and this book. They are theoretic-oriented. Basically, it will teach you how solvers work. For more a more practical approach, take a look at these lecture notes.

• Thank you! I'm learning OR for a position with a management company, but honestly it seems very interesting and useful so I'd like to learn it well even if I didn't immediately need it. How difficult would you say linear/integer programming and convex optimization is? (Is it a level above or below or equally as difficult as the math I've taken so far?) May 25, 2020 at 4:11
• If you are familiar with proofs you will be ok, it's not harder than an advanced course on linear algebra. I updated my answer to include some resources. May 27, 2020 at 19:02

The most hands-on way I can recommend is to try and write a prototype solver in your area of interest. It doesn't need to be anything fancy, you can just focus on solving, say, 5-variable problems. You don't even need to succeed.

In the process of trying to do this you will be forced to understand the theory correctly (otherwise you'll keep getting wrong numbers), and you will gain insights most people don't have about why models are best written in certain ways.

Once you understand the fundamental solving algorithms, going deeper into the theory becomes much easier.

I get a sense that you have correct background to get started in OR. The thing with OR however is that its a diverse field with multitude of different problem types and the typical challenges that arise in solving them. In my opinion, it becomes difficult then to compile them into one textbook that covers it all. You may find textbooks on specific sub topics though. That being said, there is one book that still qualifies as beginner friendly OR textbook. Its called Model Building in Mathematical Programming. Its openly available.

Next thing you might need is to practice the concepts. For this, if you have a Python background, my recommendation would be to look at Pyomo. Its a well maintained and widely used library for solving numerical optimization problems with integration support for open source and commercial solvers. There are examples online. Getting started, this will give you some push in the right direction.

Good Luck!

There are several new EdX courses in optimization which may be a good starting point for you (and anyone interested in OR):

https://www.edx.org/course/linear-optimization

https://www.edx.org/course/unconstrained-nonlinear-optimization

https://www.edx.org/course/network-and-discrete-optimization