Hacker News Comments about Learn Discrete OptimizationAll the comments and stories posted to Hacker News that reference this course.
> Group Theory
i still have a copy of Fraleigh -- a first course in abstract algebra. not sure if it is the best, but it did the job.
I really enjoyed the two real analysis & functional analysis courses when i attended university, but alas, the reading material for these courses were notes produced by each lecturer, they're not available as published books.
> 5).Topology(cup = donut)
i recall covering the material for "cup = donut" style results in an algebraic topology course, i think in 3rd or 4th year, after first being drilled with 2-3 years of pure math including real analysis, including lots of basic stuff about topological spaces, continuous and smooth functions, measure theory, some abstract algebra, etc.
MacKay's "Information Theory, Inference, and Learning Algorithms" is a great read: http://www.inference.org.uk/itila/book.html
3). Probability 4). Statistics
Sign up for this course: https://www.coursera.org/learn/discrete-optimization
you didn't mention PDE, but i still have a copy of Evans -- partial differential equations serving as a monitor stand. you probably want to have 3 years of pure math including linear algebra, lots of real analysis & some differential equations under your belt first.
If you find this area fascinating, and I do, I can't recommend this cousera course enough: https://www.coursera.org/learn/discrete-optimization
+1 Fantastic course.
Maybe of interest - postgres planner documentation
Genetic query optimiser: https://www.postgresql.org/docs/current/geqo.html
postgres has a number of hooks, which can be used to override the default behaviour. In particular, there are a bunch of hooks that can be used to install a custom query planner. https://github.com/AmatanHead/psql-hooks/blob/master/Readme....
more generally, ignoring database query optimisation specifically, if you are interested in learning about discrete optimisation techniques, I recommend this course: https://www.coursera.org/learn/discrete-optimization
Also of interest perhaps is a podcast episode from Software Engineering Radio with Bruce Momjian, who maintains the PostgreSQL query planner: http://www.se-radio.net/2018/06/se-radio-episode-328-bruce-m...⬐ Tostino
Just listened to the podcast, really good listen which explains the basics really well. Highly recommend.
Thanks for the link. Wasn't aware of this podcast before.⬐ anarazel
He does not maintain the postgresql planner. He's a PostgreSQL developer, but he has not focused on the planner for at least a decade.
I'm a Ph.D. student in operations research (OR). My suggestion would be to first build a strong foundation in linear programming. This will introduce you to the notion of duality, which is heavily emphasized in many mathematical programming courses. Here's a good open source book on linear programming written by Jon Lee, the current editor of Mathematical Programming A: https://github.com/jon77lee/JLee_LinearOptimizationBook
Then I'd suggest studying more general methods for continuous and convex optimization. The book I see mentioned a lot is Convex Optimization by Boyd and Vandenberghe, although we didn't use this in our coursework. Instead, we used a lot of the material presented here: http://mitmgmtfaculty.mit.edu/rfreund/educationalactivities/
If you read the above (or any other two books on linear programming and convex optimization), you'll probably have a better idea of what you want to study next and how you want to go about it. The next natural step would be to study combinatorial (i.e., integer or mixed-integer) optimization. (Jon Lee has another book on this subject; I've also heard good things about the Schrijver book.)
It's also not a bad idea to start getting familiar with the tools people use to solve mathematical programs in practice. The theory you'll learn to solve linear programs is different from the theory for general convex problems, and similarly for mixed-integer programs. As such, there are various "solvers" that are used to solve various problem types. Because of this, there are a lot of frameworks that are used to develop general mathematical programs, which can then interface with these solvers in a generic way. For example, Pyomo is a modeling language based in Python, and JuMP is a modeling language based in Julia.
If you want a general introduction to discrete optimization in a course format, you should take this class on Coursera ( https://www.coursera.org/learn/discrete-optimization ). It's a fantastic introduction to operations research in general, and it will give you a good intuition of the types of problems you encounter in the field as well as the various techniques that are used to solve them. (Full disclosure: Pascal is my adviser.)
Let me know if you have any more questions. I recently became a moderator of /r/OperationsResearch on Reddit and love the idea of having a larger community that can answer questions like yours. Operations research seems somewhat overshadowed by machine learning at the moment (at least in popular culture), but they truly go hand-in-hand. I'm somewhat surprised that a lot of useful techniques from OR are not heavily discussed by machine learning practitioners. Both fields are, fundamentally, trying to solve difficult optimization problems.
Thanks for the detailed response. Very helpful⬐ acutesoftware
I don't have a strong maths background, (had to relearn quite a bit), but found the coursera course to be really useful (and a lot of fun)
I really enjoyed Discrete Optimization, Pascal Van Hentenryck, Coursera.  I did it in 2013 and it looks like it's changed a little: vehicle routing seems a good, practical topic right now. Optimizing systems is one of my favorite pleasures, so this course was great for me.
Three Coursera MOOCs I particularly enjoyed:
* Discrete Optimization: almost entirely problem-driven, very challenging and entertaining prof; https://www.coursera.org/learn/discrete-optimization
* Crypto I: very deep, thorough and crystal clear explanations; https://www.coursera.org/learn/crypto
* Computer Networks: excellent overall course covering a wide variety of topics; https://www.coursera.org/instructor/~517478 , https://www.youtube.com/playlist?list=PLfgkuLYEOvGMWvHRgFAcj...
Prof. Dan Boneh's Cryptography I is really good.
Compared to many other MOOCs, it provides solid foundations while being easy to follow.⬐ davidgl
I LOVED discrete optimisation⬐ excessi0n
Computer Networks is definitely the best MOOC I ever took. I hope they bring it back.⬐ robertely
Computer Networks looks great it's a shame they pulled it down.⬐ jamestimmins
Take a look at https://lagunita.stanford.edu/courses/Engineering/Networking... . Haven't taken either, but Stanford typically puts out pretty good MOOCs.⬐ weber111
Lectures are great. Material is at a solid undergrad level (should be suitable for someone with 1-2yrs of CS background). No programming assignments, so I would go look at Phil Levis's website to find the "regular" course website and do the programming assignments from there.
Though I did not successfully complete it, this course was very interesting and informative: https://www.coursera.org/learn/discrete-optimization