Skip to content

anubhavratha/ng_stochastic_control_and_pricing

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Stochastic Control and Pricing for Natural Gas Networks

This repository contains data and codes for the paper Stochastic Control and Pricing for Natural Gas Networks by Vladimir Dvorkin, Anubhav Ratha, Pierre Pinson, and Jalal Kazempour. The paper is available on arXiv. If you use this code or parts of it, please cite the paper.

Screenshot 2020-10-08 at 10 30 54

Installation

The optimization models were implemented in Julia (v.1.4) using JuMP modeling language for mathematical optimization embedded in Julia.

The non-convex models are solved using the Ipopt solver, while the Mosek solver is used for the convex second-order cone programming models. The Mosek solver needs to be licensed (free of charge for academic use). Please refer to JuMP documentation on how to set up these solvers.

The packages used and their versions are provided in the Project.toml file. To activate the packages in Project.toml, open a terminal, clone the project using git clone, cd to the project directory and call

$ julia 
julia> ]
pkg> activate .
pkg> instantiate

where julia is an alias to Julia installation. To run the code, type

julia> include("main.jl")

By default, the program outputs:

Screenshot 2020-10-08 at 10 57 57

Reproducing results:

To reproduce the results, specify the experiment settings in exp_settings dictionary contained in main.jl. The experiment settings are detailed in Section V of the paper. To run the projection analisys, set :proj => true in the dictionary, but expect more running time.