HACKER Q&A
📣 xupybd

What to study to learn optimization algorithms


I find my self needing to find ways to optimize production processes. For example given an order what is the best way to split up the order into given batches for production.

I'm thinking a SAT solver is going to be the best approach and using the multiple buckets problem. I don't have a lot of theoretical background in these areas and would like to read a book or two before starting down this path. Any recommendations as far as books or even subject matter to study?


  👤 shoo Accepted Answer ✓
https://www.coursera.org/learn/discrete-optimization

> This class is an introduction to discrete optimization and exposes students to some of the most fundamental concepts and algorithms in the field. It covers constraint programming, local search, and mixed-integer programming from their foundations to their applications for complex practical problems in areas such as scheduling, vehicle routing, supply-chain optimization, and resource allocation.


👤 usgroup
From direct experience; learn optimisation by understanding a variety of optimisation problems. Don’t worry at all about how to solve them, just get very good at being able to express the problem as a parameterised function that can be maximised.

Then learn about the properties of different classes of functions and what this inevitably means for optimisation options.

Generally your best bang for buck is mixed integer linear programming. It can solve a huge number of problems. This book is perfect:

https://www.amazon.co.uk/Model-Building-Mathematical-Program...



👤 s1t5
Numerical Optimization - https://link.springer.com/book/10.1007/978-0-387-40065-5

You'll need multivariable calculus and linear algebra as prerequisites.