Skip to content

Latest commit

 

History

History
351 lines (236 loc) · 25.2 KB

README.md

File metadata and controls

351 lines (236 loc) · 25.2 KB

Awesome Optimization Courses

Welcome to the "Awesome Optimization" repository! This repository contains a curated list of (mostly) free and open educational resources for mathematical optimization.

This list tries to cover vast topics in math. opt. i.e. discrete and combinatorial optimization, operations research, linear and nonlinear programming, integer programming, constraint programming, convex optimization, continuous optimization, or unconstrained optimization. You'll find valuable resources here to enhance your understanding of these subjects.

Table of Contents

  1. Video Lectures and Courses
    1. Convex Optimization
    2. Discrete, Combinatorial, and Integer Optimization
    3. Operations Research
    4. Meta-heuristics
    5. Dynamic Programming and Reinforcement Learning
    6. Constraint Programming
    7. Continuous Optimization
    8. Stochastic Optimization and Control
  2. Books and Lecture Notes
    1. Convex Optimization
    2. Bayesian Optimization
    3. Operations Research
    4. Meta-heuristics
    5. Dynamic Programming and Reinforcement Learning
    6. Constraint Programming
    7. Combinatorial Optimization
    8. Stochastic Optimization
  3. Solvers, Tools, and Libraries
    1. Licensed/Commercial Solvers
    2. Free Solvers
    3. Tools and Libraries
  4. Other Resources
    1. Communities and Forums
    2. Events, Societies, and Conferences
    3. Code Repositories
  5. Contribution Guidelines

Video Lectures and Courses

Convex Optimization

Discrete, Combinatorial, and Integer Optimization

Operations Research

Meta-heuristics

Dynamic Programming and Reinforcement Learning

Constraint Programming

Optimization Algorithms

Continuous Optimization

Stochastic Optimization and Control

Books and Lecture notes

Convex Optimization

  • Convex Optimization by Boyd and Vandenberghe - PDF
  • Convex Optimization Theory by Dimitri P. Bertsekas - PDF

Bayesian Optimization

  • Bayesian Optimization In Action by Quan Nguyen - Amazon
  • Experimentation for Engineers by David Sweet - Amazon

Operations Research

  • Operations Research An Introduction by Hamdy A. Taha - Pearson
  • Introduction to Operations Research by Frederick Hillier and Gerald Lieberman - McGraw Hill
  • Julia Programming for Operations Research by Changhyun Kwon - PDF - code
  • Mathematical Programming and Operations Research: Modeling, Algorithms, and Complexity. Examples in Python and Julia. Edited by Robert Hildebrand - PDF
  • A First Course in Linear Optimization by Jon Lee - PDF
  • Decomposition Techniques in Mathematical Programming by Conejo , Castillo , Mínguez , and García-Bertrand - Springer
  • Algorithms for Optimization by Mykel J. Kochenderfer and Tim A. Wheeler - PDF
  • Model Building in Mathematical Programming - Introductory modeling book by H. Paul Williams - Wiley

Meta-heuristics

  • Metaheuristics by Patrick Siarry - Springer (open access)

  • Essentials of Metaheuristics by Sean Luke - link

  • Handbook of Metaheuristics by Michel Gendreau and Jean-Yves Potvin - Springer (open access)

  • An Introduction to Metaheuristics for Optimization by Bastien Chopard , Marco Tomassini - Springer (open access)

  • Metaheuristic and Evolutionary Computation: Algorithms and Applications by Hasmat Malik, Atif Iqbal, Puneet Joshi, Sanjay Agrawal, and Farhad Ilahi Bakhsh - Springer (open access)

  • Clever Algorithms: Nature-Inspired Programming Recipes by Jason Brownlee - GitHub

  • Metaheuristics: from design to implementation by El-Ghazali Talbi - Wiley

Dynamic Programming and Reinforcement Learning

  • Various tiltes on Dynamic Programming, Optimal Control and Reinforcement Learning by Dimitri Bertsekas. - List

  • Reinforcement Learning: An Introduction (2nd Edition) by Richard Sutton and Andrew Barto - PDF

  • Decision Making Under Uncertainty: Theory and Application by Mykel J. Kochenderfer - PDF

  • Algorithms for Decision Making by Mykel J. Kochenderfer, Tim A. Wheeler, and Kyle H. Wray - PDF

Constraint Programming

  • Handbook of Constraint Programming by Francesca Rossi, Peter van Beek and Toby Walsh - Amazon

  • A Tutorial on Constraint Programming by Barbara M. Smith (University of Leeds) - PDF

Combinatorial Optimization

  • Combinatorial Optimization: Algorithms and Complexity by by Christos H. Papadimitriou and Kenneth Steiglitz - Amazon
  • Combinatorial Optimization: Theory and Algorithms by Bernhard Korte and Jens Vygen - Springer
  • A First Course in Combinatorial Optimization by Jon Lee - Amazon

Stochastic Optimization

  • Lectures on Stochastic Programming Modeling and Theory (SIAM) - by Shapiro, Dentcheva, and Ruszczynski - PDF
  • Introductory Lectures on Stochastic Optimization by John C. Duchi - PDF

Check out More of Prof. Bertsekas's Books

Solvers, Tools, and Libraries

Solvers

Licensed/Commercial Solvers

Free Solvers

  • CBC - COIN-OR Branch and Cut
  • GLPK - GNU Linear Programming Kit
  • HiGHS - High Performance Software for Linear Optimization
  • lp_solve - (Mixed Integer) Linear Programming solver
  • SCIP - Solving Constraint Integer Programs
  • DIDP - Domain-Independent Dyanmic Programming

Benchmarks

Tools and Libraries

Other Resources

Communities and Forums

Events, Societies, and Conferences

  • Mathematical Optimization Society - international organization dedicated to the promotion and the maintenance of high professional standards in the subject of mathematical optimization.
  • Mixed Integer Programming Society
  • INFORMS - Institute for Operations Research and the Management Sciences.
  • Discrete Optimization Talks (DOTs) - virtual seminar series.
  • CPAIOR - Integration of Constraint Programming, Artificial Intelligence, and Operations Research.
  • CP Conference - Principles and Practice of Constraint Programming.
  • CORS - Canadian Operational Research Society
  • CO@Work - Optimization course with a focus on computational aspects, industrial applications and networking (2024, 2020, 2015, 2009, 2005)

Code Repositories

  • Open Optimization:
    a platform for sharing and collaborating on open educational resources for optimization related courses.
  • Introduction to Linear Programming with Python:
    Introduction to Linear Programming with Python
  • cvxpy:
    A Python-embedded modeling language for convex optimization problems.
  • MIPLearn:
    Framework for solving discrete optimization problems using a combination of Mixed-Integer Linear Programming (MIP) and Machine Learning (ML)
  • or-gym:
    nvironments for OR and RL Research
  • ecole:
    Extensible Combinatorial Optimization Learning Environments
  • pyconcorde:
    Python wrapper around the Concorde TSP solver
  • BOTorch:
    Bayesian optimization in PyTorch
  • EvoTorch:
    Advanced evolutionary computation library built directly on top of PyTorch, created at NNAISENSE.
  • TorchOpt:
    efficient library for differentiable optimization built upon PyTorch.

Contribution Guidelines

We welcome contributions to this repository. If you have a course or resource that you'd like to add, please follow these guidelines:

  1. Make a pull request, adding the course to the relevant section with a brief description and a link to the resource.
  2. Use a consistent format for entries to maintain readability.

Thank you for your contributions to making this repository a valuable resource for optimization enthusiasts in the academic community!

TODO

  1. add missing topics
    • numerical optimization/methods
    • bayesian optimization
  2. add github repos
  3. complete solver/software list
  4. add short description
  5. better fomatting
    • tables instead of bullets