Skip to content

Data-driven decision making under uncertainty using matrices

License

Notifications You must be signed in to change notification settings

edxu96/MatrixOptim.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MatrixOptim.jl

MILP, Robust Optim. and Stochastic Optim., and Decomposition Algorithm in Matrix (by Julia)

Build Status

Tangram

MatrixOptim.jl is a package to model and solve optimization in uncertain context. The templates for robust optimization and stochastic optimization formulated in matrix are very coherent comprehensive, and the algorithms in matrix are very explicit.

1, Introduction

The MILP can always be formulated in the following matrixes:

min  vec_c' * vec_x + vec_f' * vec_y
s.t. mat_A * vec_x + mat_B * vec_y <= vec_b
     vec_x in R
     vec_y in Z

2, To Install and Test

(v1.1) pkg> add MatrixOptim
(v1.1) pkg> test MatrixOptim

3, How to Use

For mixed integer linear programming:

model = getModel(vec_c, mat_aa, vec_b)
solveModel!(model)

For mixed integer linear programming with Benders decomposition:

model = getModelBenders(n_x, n_y, vec_min_y, vec_max_y, vec_c, vec_f, vec_b, mat_aa, mat_bb)
solveModelBenders!(model)

Right now, the supported solver is GLPK. I will add the feature to select other solvers, like Gurobi and CPLEX later.

4, Features

Right now, the project is still in alpha stage. There are many new updates on JuMP, so the algorithms need to be updated. You can try to get the latest feature by the following line.

(v1.1) pkg> add https://github.com/edxu96/MatrixOptim.git

4.1, Models

  • Linear Programming
  • Mixed Integer Linear Programming
  • Robust Optimization
  • Stochastic Optimization
  • Dynamical Systems and State Space Model
  • Markov Decision Process
  • Dynamic Optimization

4.2, Algorithms

  • Simplex Method
  • Branch and Cut for MILP
  • Benders Decomposition for MILP
  • L-Shaped Benders Decomp for Stochastic Optim
  • Dantzig-Wolfe Decomposition Family
  • Dynamic Programming
  • Stochastic Dynamic Programming
  • Find Shortest Path

5, More Info

  • wiki for documents and examples: edxu96/MatrixOptim/wiki .
  • Cookbook for theories and algorithms in MatrixOptim: MatrixOptim-Cookbook .
  • 矩阵优化:通过矩阵表示混合整数线性规划,鲁棒(抗差)优化,随机优化和分解算法。虽然项目是用英文写的,但是有中文详解