valladolid2017
Valladolid Stochastic Programming Short Course, July 11th-20th, 2017
Note: Access to this page is restricted to registered participants.
Questions: Contact Victor Zavala [link]
Group
Agenda
Part I: Formulations
Tuesday, July 11th, 10 am - 1 pm
Intro Probability Theory
Motivating Examples
Two-Stage Formulations
Julia, JuMP, JuliaBox
Wednesday, July 12th, 10 am - 1 pm
Value of Stochastic Programming
Risk Metrics
Thursday, July 13th, 10 am - 1 pm
Probabilistic Constraints
Sampling and Inference Analysis
Monday, July 17th, 10 am - 1 pm
Multi-Objective Formulations
Multi-Stage Formulations
Part II: Software and Algorithms
Tuesday, July 18th, 10 am - 1 pm
Algorithms for Stochastic NLP
Nonlinear Programming
Structured Linear Algebra
Plasmo, Ipopt, and PIPS-NLP
Wednesday, July 19th, 10 am - 1 pm
Algorithms for Stochastic MIP
Benders Decomposition
Stochastic Dual Dynamic Programming
Dual Decomposition
DSP
Thursday, July 20th, 10 am - 1 pm
Advanced Topics, Summary, Discussion
Slides [link]
Software Intructions
The course is based on Julia https://julialang.org
All scripts can be downloaded from https://github.com/zavalab/JuliaBox.git (under Valladolid2017 folder)
Part I
The first part of the course will be based on JuliaBox. Please validate that JuliaBox is working for you prior to attending the course.
Note: If you have any questions, please contact Jordan Jalving. E-mail: jalving@wisc.edu
1. Go to https://juliabox.com and log in using your Gmail account (this is safe, the server is hosted by Google)
2. Go to Sync Tab and type https://github.com/zavalab/JuliaBox.git in the Git Clone URL field. Click on arrow to synchronize with GIT repo.
3. Go to IJulia Tab and go to JuliaBox > Valladolid2017 folder
4. To test:
Open install_packages.ipynb notebook file under Valladolid2017 folder
In the options tab, click Kernel>Change Kernel>Julia 0.5.x (this changes to the current version of Julia)
In the options tab, click on Cell>Run All (this runs the notebook)
After completion, shut down the install_packages.ipynb
Open jump_example.ipynb notebook file under Valladolid2017/Formulations and run
Part II
The second part of the course is more advanced and will require you to have several packages for modeling and solution of stochastic programming problems installed on your laptop.
Note: If you have any questions, please contact Jordan Jalving. E-mail: jalving@wisc.edu
Julia
Install version 0.5.2 following the instructions in https://julialang.org/downloads
Install packages JuMP, Cbc, PyPlot, Distributions, and IJulia using Pkg.Add("Name") where Name=JuMP, Cbc, etc.
DSP
Install DSP following the instructions in https://github.com/Argonne-National-Laboratory/DSP
Install JuMP interface by using Pkg.Add("Dsp")
Note: You will need to install MPICH as part of this and the Julia interface using Pkg.Add("MPI")
Ipopt
Install Ipopt following the instructions in https://projects.coin-or.org/Ipopt
Install JuMP interface by using Pkg.Add("Ipopt")
PIPS-NLP
Install PIPS-NLP following the instructions in https://github.com/Argonne-National-Laboratory/PIPS
Set Environmental Variables
Assuming that you have installed all our packages under /opt, you need to modify your environmental variables using:
export PATH=/opt/Ipopt/bin:$PATH
export PATH=/opt/mpich/bin:$PATH
export PATH=/opt/PIPS/build_pips:$PATH
export LD_LIBRARY_PATH=/opt/mpich/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/opt/PIPS/build_pips/PIPS-NLP:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/opt/PIPS/build_pips/ThirdParty:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/opt/DSP/lib:$LD_LIBRARY_PATH
export CPLUS_INCLUDE_PATH=/opt/mpich/include:$CPLUS_INCLUDE_PATH
export PIPS_NLP_SHARED_LIB=/opt/PIPS_BACK/build_pips/PIPS-NLP/libpipsnlp.so
export PIPS_NLP_PAR_SHARED_LIB=/opt/PIPS_BACK/build_pips/PIPS-NLP/libparpipsnlp.so
Validation
To test that your installation is running correctly, try running the following scripts:
farmer.jl (by typing "julia farmer.jl") or by running notebook farmer.ipynb using IJulia
jump_example.jl or jump_example.ipynb
PIDtuning.jl
StochPIDTuning_Plasmo.jl
farmer_dsp.jl