Giter Club home page Giter Club logo

awesome-optimization's Introduction

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

Benchmarks

Tools and Libraries

Other Resources

Communities and Forums

Events, Societies, and Conferences

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

awesome-optimization's People

Contributors

ebrahimpichka avatar merschformann avatar omar-ebrahim-1 avatar metab0t avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.