GithubHelp home page GithubHelp logo

edxu96 / bendersoptim Goto Github PK

View Code? Open in Web Editor NEW
23.0 2.0 11.0 333 KB

Benders decomposition to solve mixed integer linear programming, especially stochastic programming in seconds!

License: MIT License

Julia 100.00%
optimization decomposition algorithm mixed-integer-programming stochastic-programming linear-programming l-shape-matrix benders-decomposition

bendersoptim's Introduction

BendersOptim

Benders algorithm to solve mixed integer linear programming, especially stochastic programming in seconds!

This repo has been archived in 190728. New update will be made to edxu96/MatrixOptim, which is the aggregation of robust optimization and matrix optimization. It's in matrix form as well, and there is a new function tool to convert the model to matrix form.


According to wikipedia:

Benders decomposition (or Benders' decomposition) is a technique in mathematical programming that allows the solution of very large linear programming problems that have a special block structure. This block structure often occurs in applications such as stochastic programming as the uncertainty is usually represented with scenarios. The technique is named after Jacques F. Benders.

https://en.wikipedia.org/wiki/Benders_decomposition

There are two algorithms, with one for standard MILP, and the other one specifically for stochastic programming without integer variables in second stage.

For detailed explanation, refer to Cookbook for Benders Decomposition, EDXU.

How to use

1. Import

Put the file Benders.jl, Benders_milp.jl and Benders_lshaped.jl in your working folder. Write the following code in your file:

using Benders

2. Generic Benders Decomposition for Mixed Integer Linear Programming

Standard MILP

Bender.milp(n_x, n_y, vec_min_y, vec_max_y, vec_c, vec_f,
  vec_b, mat_a, mat_b, epsilon, timesIterationMax)

3. L-Shaped Benders Decomposition for Stochastic Programming without Integer Variables in Second Stage

Stochastic Programming without Integer Variables in Second Stage

Bender.lshaped(n_x, n_y, vec_min_y, vec_max_y, vec_f,
  vec_pi, mat_c, mat_h, mat3_t, mat3_w, epsilon, timesIterationMax)

Edward J. Xu ([email protected]) (edxu96.github.io)
Version: 2.1
Date: July 28th, 2019

bendersoptim's People

Contributors

edxu96 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  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.