From cb14fe5f37e966424426c1561495b4b69a5b16eb Mon Sep 17 00:00:00 2001 From: Joshua Pulsipher Date: Fri, 14 Dec 2018 00:14:16 -0600 Subject: [PATCH] Initial commit. --- .gitignore | 3 + .travis.yml | 35 +-- README.md | 2 + REQUIRE | 6 +- appveyor.yml | 10 +- docs/make.jl | 16 ++ docs/src/api.md | 74 +++++ docs/src/background.md | 266 ++++++++++++++++++ docs/src/examples.md | 281 +++++++++++++++++++ docs/src/guide.md | 347 +++++++++++++++++++++++ docs/src/home.md | 86 ++++++ docs/src/images/HX_network.png | Bin 0 -> 23039 bytes docs/src/images/comparison.png | Bin 0 -> 77130 bytes docs/src/images/ellip.png | Bin 0 -> 173542 bytes docs/src/images/feasible_region.png | Bin 0 -> 33714 bytes docs/src/images/hyperbox_index.png | Bin 0 -> 43645 bytes docs/src/images/ieee14_diagram.png | Bin 0 -> 61034 bytes docs/src/images/ranking.png | Bin 0 -> 124258 bytes docs/src/images/sf_index.png | Bin 0 -> 84787 bytes docs/src/index.md | 13 + examples/2d_example.jl | 44 +++ examples/3node_distribution.jl | 78 ++++++ examples/IEEE_14.jl | 90 ++++++ examples/heat_exchanger.jl | 63 +++++ src/FlexJuMP.jl | 50 +++- src/constraints.jl | 91 ++++++ src/datatypes.jl | 148 ++++++++++ src/functions.jl | 291 +++++++++++++++++++ src/macros.jl | 141 ++++++++++ src/mean.jl | 178 ++++++++++++ src/model.jl | 173 ++++++++++++ src/operators.jl | 44 +++ src/solve.jl | 415 ++++++++++++++++++++++++++++ src/uncertaintyset.jl | 74 +++++ src/variables.jl | 99 +++++++ test/REQUIRE | 2 + test/check_mean.jl | 12 + test/confidence_level.jl | 7 + test/constraint_ranker.jl | 8 + test/define_constraints.jl | 9 + test/define_real_model.jl | 14 + test/define_uncertainty_set.jl | 30 ++ test/find_center.jl | 12 + test/get_flexdata.jl | 10 + test/initialize_model.jl | 5 + test/manage_covariance.jl | 13 + test/manage_mean.jl | 5 + test/retrieve_critical_pt.jl | 4 + test/runtests.jl | 55 +++- test/set_single_variables.jl | 5 + test/set_vector_variables.jl | 16 ++ test/sf_index.jl | 8 + test/sf_index2.jl | 19 ++ test/solvehook_checks.jl | 27 ++ 54 files changed, 3345 insertions(+), 34 deletions(-) create mode 100644 docs/make.jl create mode 100644 docs/src/api.md create mode 100644 docs/src/background.md create mode 100644 docs/src/examples.md create mode 100644 docs/src/guide.md create mode 100644 docs/src/home.md create mode 100644 docs/src/images/HX_network.png create mode 100644 docs/src/images/comparison.png create mode 100644 docs/src/images/ellip.png create mode 100644 docs/src/images/feasible_region.png create mode 100644 docs/src/images/hyperbox_index.png create mode 100644 docs/src/images/ieee14_diagram.png create mode 100644 docs/src/images/ranking.png create mode 100644 docs/src/images/sf_index.png create mode 100644 docs/src/index.md create mode 100644 examples/2d_example.jl create mode 100644 examples/3node_distribution.jl create mode 100644 examples/IEEE_14.jl create mode 100644 examples/heat_exchanger.jl create mode 100644 src/constraints.jl create mode 100644 src/datatypes.jl create mode 100644 src/functions.jl create mode 100644 src/macros.jl create mode 100644 src/mean.jl create mode 100644 src/model.jl create mode 100644 src/operators.jl create mode 100644 src/solve.jl create mode 100644 src/uncertaintyset.jl create mode 100644 src/variables.jl create mode 100644 test/REQUIRE create mode 100644 test/check_mean.jl create mode 100644 test/confidence_level.jl create mode 100644 test/constraint_ranker.jl create mode 100644 test/define_constraints.jl create mode 100644 test/define_real_model.jl create mode 100644 test/define_uncertainty_set.jl create mode 100644 test/find_center.jl create mode 100644 test/get_flexdata.jl create mode 100644 test/initialize_model.jl create mode 100644 test/manage_covariance.jl create mode 100644 test/manage_mean.jl create mode 100644 test/retrieve_critical_pt.jl create mode 100644 test/set_single_variables.jl create mode 100644 test/set_vector_variables.jl create mode 100644 test/sf_index.jl create mode 100644 test/sf_index2.jl create mode 100644 test/solvehook_checks.jl diff --git a/.gitignore b/.gitignore index 8c960ec..6690883 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ *.jl.cov *.jl.*.cov *.jl.mem + +docs/build/ +docs/site/ \ No newline at end of file diff --git a/.travis.yml b/.travis.yml index f18fe5d..49b0e1e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,30 +6,17 @@ os: julia: - 0.6 - nightly +matrix: + allow_failures: + - julia: nightly notifications: email: false -git: - depth: 99999999 - -## uncomment the following lines to allow failures on nightly julia -## (tests will run but not make your overall status red) -#matrix: -# allow_failures: -# - julia: nightly - -## uncomment and modify the following lines to manually install system packages -#addons: -# apt: # apt-get for linux -# packages: -# - gfortran -#before_script: # homebrew for mac -# - if [ $TRAVIS_OS_NAME = osx ]; then brew install gcc; fi - -## uncomment the following lines to override the default test script -#script: -# - julia -e 'Pkg.clone(pwd()); Pkg.build("FlexJuMP"); Pkg.test("FlexJuMP"; coverage=true)' +script: +# - if [[ -a .git/shallow ]]; then git fetch --unshallow; fi + - julia -e 'Pkg.clone(pwd())' + - julia -e 'Pkg.test("PkgName",coverage=true)' after_success: - # push coverage results to Coveralls - - julia -e 'cd(Pkg.dir("FlexJuMP")); Pkg.add("Coverage"); using Coverage; Coveralls.submit(Coveralls.process_folder())' - # push coverage results to Codecov - - julia -e 'cd(Pkg.dir("FlexJuMP")); Pkg.add("Coverage"); using Coverage; Codecov.submit(Codecov.process_folder())' + - julia -e julia -e 'Pkg.add("Documenter")' + - julia -e 'cd(Pkg.dir("PkgName")); include(joinpath("docs", "make.jl"))' + - julia -e 'cd(Pkg.dir("PkgName")); Pkg.add("Coverage"); using Coverage; Codecov.submit(Codecov.process_folder())' + - julia -e 'cd(Pkg.dir("PkgName")); Pkg.add("Coverage"); using Coverage; Coveralls.submit(process_folder())' diff --git a/README.md b/README.md index 2a2ace0..c1e5093 100644 --- a/README.md +++ b/README.md @@ -5,3 +5,5 @@ [![Coverage Status](https://coveralls.io/repos/pulsipher/FlexJuMP.jl/badge.svg?branch=master&service=github)](https://coveralls.io/github/pulsipher/FlexJuMP.jl?branch=master) [![codecov.io](http://codecov.io/github/pulsipher/FlexJuMP.jl/coverage.svg?branch=master)](http://codecov.io/github/pulsipher/FlexJuMP.jl?branch=master) + +This package is good. diff --git a/REQUIRE b/REQUIRE index 137767a..2ccd9b7 100644 --- a/REQUIRE +++ b/REQUIRE @@ -1 +1,5 @@ -julia 0.6 +julia 0.6 0.7- +Ipopt +Clp +JuMP 0.15 +Distributions \ No newline at end of file diff --git a/appveyor.yml b/appveyor.yml index bf71bd4..cb78b4f 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -7,10 +7,10 @@ environment: ## uncomment the following lines to allow failures on nightly julia ## (tests will run but not make your overall status red) -#matrix: -# allow_failures: -# - JULIA_URL: "https://julialangnightlies-s3.julialang.org/bin/winnt/x86/julia-latest-win32.exe" -# - JULIA_URL: "https://julialangnightlies-s3.julialang.org/bin/winnt/x64/julia-latest-win64.exe" +matrix: + allow_failures: + - JULIA_URL: "https://julialangnightlies-s3.julialang.org/bin/winnt/x86/julia-latest-win32.exe" + - JULIA_URL: "https://julialangnightlies-s3.julialang.org/bin/winnt/x64/julia-latest-win64.exe" branches: only: @@ -44,4 +44,4 @@ build_script: Pkg.clone(pwd(), \"FlexJuMP\"); Pkg.build(\"FlexJuMP\")" test_script: - - C:\projects\julia\bin\julia -e "Pkg.test(\"FlexJuMP\")" + - C:\projects\julia\bin\julia --check-bounds=yes -e "Pkg.test(\"PkgName\")" diff --git a/docs/make.jl b/docs/make.jl new file mode 100644 index 0000000..5c965b7 --- /dev/null +++ b/docs/make.jl @@ -0,0 +1,16 @@ +using Documenter, FlexJuMP + +makedocs(format = :html, + sitename = "FlexJuMP.jl", + pages = ["Home" => "home.md", + "Background" => "background.md", + "User Guide" => "guide.md", + "Examples" => "examples.md", + "Library" => "api.md"]) + + deploydocs( + repo = "github.com/pulsipher/FlexJuMP.jl.git", + target = "build", + deps = nothing, + make = nothing + ) diff --git a/docs/src/api.md b/docs/src/api.md new file mode 100644 index 0000000..96474e7 --- /dev/null +++ b/docs/src/api.md @@ -0,0 +1,74 @@ +# Library + +```@meta +CurrentModule = FlexJuMP +``` + +## Module + +```@docs +FlexJuMP +``` + +## Functions/Methods + +```@docs +FlexibilityModel +@randomvariable +@recoursevariable +getflexibilitydata +setcovariance +getcovariance +setmean +getmean(m::Model) +getmean(variable::RandomVariable) +setuncertaintyset +ismeanfeasible +findcenteredmean +getflexibilityindex +getconfidencelevel +getactiveconstraints +JuMP.getvalue(v::FlexibilityVariable) +rankinequalities +findstochasticflexibility +JuMP.linearindex(v::FlexibilityVariable) +``` + +## DataTypes + +```@docs +FlexibilityVariable +RandomVariable +RecourseVariable +FlexibilityExpr +FlexibilityConstraint +AbstractUncertaintySet +EllipsoidalSet +HyperboxSet +PNormSet +FlexibilityData +``` + +## Internals + +```@docs +getuncertaintyset +solvehook +MakeInputDict +AddSystemExpressions +RandomVariable(m::Model, mean::Number, name::AbstractString) +RecourseVariable(m::Model, name::AbstractString) +Base.show(io::IO, a::FlexibilityExpr) +JuMP.addconstraint(m::Model, constr::FlexibilityConstraint) +JuMP.show(io::IO,c::FlexibilityConstraint) +JuMP.constructconstraint!(flex_aff::FlexibilityExpr, sense::Symbol) +ComputeCenter +``` + +## Index + +```@index +Pages = ["api.md"] +Module = ["FlexJuMP"] +Order = [:function, :type] +``` diff --git a/docs/src/background.md b/docs/src/background.md new file mode 100644 index 0000000..10102ff --- /dev/null +++ b/docs/src/background.md @@ -0,0 +1,266 @@ +```@meta +CurrentModule = FlexJuMP +``` +# Background +This page provides a background on the theory and methods that form the +computational framework that is implemented by FlexJuMP to quantify and analyze +system flexibility. This is not a rigorous or complete review and more information +is provided [here](https://docs.google.com/a/wisc.edu/viewer?a=v&pid=sites&srcid=d2lzYy5lZHV8emF2YWxhYnxneDo3MDJkNmFhMDc0MGRlY2Qz) + +## System Characterization +We consider general systems that are subjected to random variation and attempt +to counteract it via recourse (if there is recourse). We characterize these +systems as having random variables ``\boldsymbol{\theta} \in \mathbb{R}^{n_{\theta}}``, +recourse variables ``\mathbf{z} \in \mathbb{R}^{n_{z}}``, state variables +``\mathbf{x} \in \mathbb{R}^{n_{x}}``, equality constraints +``h_i(\mathbf{z}, \mathbf{x}, \boldsymbol{\theta}) = 0, \, i \in I,`` and +inequality constraints ``f_j(\mathbf{z}, \mathbf{x}, \boldsymbol{\theta}) \leq 0, \, j \in J``. +The feasibility (meaning there exists recourse to satisfy the system constraints) +of a particular instance of ``\boldsymbol{\theta}`` is evaluated via the feasibility +function ``\psi(\boldsymbol{\theta})`` which is + +```math +\begin{equation} + \begin{aligned} + &\psi(\boldsymbol{\theta}) = &\min_{\mathbf{z}, \mathbf{x}, u \in \mathbb{R}} &&& u \\ + &&\text{s.t.} &&& f_j(\mathbf{z}, \mathbf{x}, \boldsymbol{\theta}) \leq u, & j \in J \\ + &&&&& h_i(\mathbf{z}, \mathbf{x}, \boldsymbol{\theta}) = 0, & i \in I + \end{aligned} +\end{equation} +``` +where ``\boldsymbol{\theta}`` is feasible if ``\psi(\boldsymbol{\theta}) \leq 0``. +This feasible function is what the [`ismeanfeasible`](@ref) and +[`findstochasticflexibility`](@ref) functions use to evaluate feasibility of +particular instances of ``\boldsymbol{\theta}``. The set of all feasible instances +of ``\boldsymbol{\theta}`` forms the feasible region +``\Theta := \{\boldsymbol{\theta}\,:\,\psi(\boldsymbol{\theta}) \leq 0\}`` +which is illustrated below. + +![feasible_region](images/feasible_region.png) + +## Stochastic Flexibility Index Problem +The stochastic flexibility index ``SF`` is a flexibility metric for systems that +are subjected to uncertain parameters (e.g., disturbances, physical parameters) +that are modeled as random variables, and is defined as the probability of finding +recourse to maintain feasible operation. This can be computed by integrating the +probability density function ``p:\mathbb{R}^{n_{\theta}}\to \mathbb{R}`` of the +random parameters over the feasible region: + +```math +\begin{equation} + SF := \int_{\boldsymbol{\theta}\in\Theta} p(\boldsymbol{\theta}) d\boldsymbol{\theta} = \mathbb{P}\left( \psi(\boldsymbol{\theta}) \leq 0 \right). +\end{equation} +``` + +This is illustrated below for a multivariate Gaussian distribution. + +![sf_index](images/sf_index.png) + +The ``SF`` index can be computed rigorously via Monte Carlo (MC) sampling. This +is done by assessing the feasibility of each realization. Such an approach converges +exponentially with the number of MC samples but typically requires a very large +number of samples leading to scalability issues. One possible alternative is to +estimate the stochastic vulnerability index ``SV := 1 - SF`` which can be +determined by incorporating all of the MC samples in one large linear program: + +```math +\begin{equation} +\begin{aligned} +&&\min_{\mathbf{z}^k, \mathbf{x}^k, y^k \in \mathbb{R}} &&& \frac{1}{K} \sum_{k = 1}^{K} y^k \\ +&&\text{s.t.} &&& f_j(\mathbf{z}^k, \mathbf{x}^k, \boldsymbol{\theta}^k) \leq y^k, & j \in J, \ \ k = [1, K] \\ +&&&&& h_i(\mathbf{z}^k, \mathbf{x}^k, \boldsymbol{\theta}^k) = 0, & i \in I, \ \ k = [1,K] \\ +&&&&& y^k \geq 0 & k = [1,K] +\end{aligned} +\end{equation} +``` + +where ``K`` is the number of samples. The sampled value of ``SV`` is then obtained +by: + +```math +\begin{equation} +SV = \frac{1}{K} \sum_{k = 1}^{K} \mathbb{1}_{\mathbb{R}_{>0}}(y^{k*}). +\end{equation} +``` + +The function [`findstochasticflexibility`](@ref) employs both of these techniques +estimate the ``SF`` index via MC sampling. + +## Flexibility Index Problem +The so-called flexibility index problem provides a more scalable approach to +quantifying flexibility. This approach seeks to identify the largest uncertainty +set ``T(\delta)`` (where ``\delta \in \mathbb{R}_+`` is a parameter that scales +``T``) for which the system remains feasible. In other words, we seek to find +the largest uncertainty set under which there exists recourse to recover +feasibility. The flexibility index ``F`` is defined as: + +```math +\begin{equation} + \begin{aligned} + & F := & \max_{\delta\in\mathbb{R}_+} &&&\delta \\ + &&\text{s.t.} &&& \max_{\boldsymbol{\theta} \in T(\delta)} \psi(\boldsymbol{\theta}) \leq 0. + \end{aligned} +\end{equation} +``` + +This approach is illustrated with a traditional hyperbox set below. + +![sf_index](images/hyperbox_index.png) + +This approach is deterministic in nature; consequently, it does not have a direct +probabilistic interpretation (as the ``SF`` index does). By transforming the +inner problem in terms of its first order KKT conditions we obtain the following +mixed integer formulation which is valid for any compact ``T(\delta)``: + +```math +\begin{equation} + \begin{aligned} + &F = &\min_{\delta, \mathbf{z}, \mathbf{x}, \boldsymbol{\theta}, \lambda_j, s_j, y_j, \mu_j} &&& \delta \\ + &&\text{s.t.} &&& f_j(\mathbf{z}, \mathbf{x}, \boldsymbol{\theta})+ s_j = 0 && j \in J \\ + &&&&& h_i(\mathbf{z}, \mathbf{x}, \boldsymbol{\theta}) = 0 && i \in I \\ + &&&&& \sum_{j \in J} \lambda_j = 1 \\ + &&&&& \sum_{j \in J} \lambda_j \frac{\partial f_j(\mathbf{z}, \mathbf{x}, \boldsymbol{\theta})}{\partial \mathbf{z}} + \sum_{i \in I} \mu_i \frac{\partial h_i(\mathbf{z}, \mathbf{x}, \boldsymbol{\theta})}{\partial \mathbf{z}}= 0 \\ + &&&&& s_j \leq U(1 - y_j) && j \in J \\ + &&&&& \lambda_j \leq y_j && j \in J \\ + &&&&& \boldsymbol{\theta} \in T(\delta) \\ + &&&&& \lambda_j, s_j \geq 0 ; \ \ \ y_j \in \{0, 1\} && j \in J. + \end{aligned} +\end{equation} +``` + +This formulation can be rather tedious to implement and thus it what originally +motivated the development of FlexJuMP. This MIP is what the [`solvehook`](@ref) +associated with the flexibility model `m` uses to compute the ``F`` index when +the function `solve` is used. + +## Uncertainty Set Characterization +Any compact set can be used to compute the flexibility index. The table below +shows the 5 types FlexJuMP currently employs. Here ``\bar{\boldsymbol{\theta}}`` +is the nominal point (mean), ``V_{\boldsymbol{\theta}}`` is the covariance matrix, +and ``\Delta\boldsymbol{\theta}^-, \Delta\boldsymbol{\theta}^+`` are maximum lower and upper deviations, +respectively. In FlexJuMP these sets are specified via [`setuncertaintyset`](@ref). + +|Name | Uncertainty Set | +|------|-----------------| +|Ellipsoidal Norm | ``T_{ellip}(\delta) = \{\boldsymbol{\theta} : \lVert\boldsymbol{\theta} - \bar{\boldsymbol{\theta}}\rVert_{V_{\boldsymbol{\theta}}^{-1}}^2 \leq \delta \}`` | +|Hyperbox Set | ``T_{box}(\delta) = \{\boldsymbol{\theta} : \bar{\boldsymbol{\theta}} - \delta\Delta\boldsymbol{\theta}^- \leq \boldsymbol{\theta} \leq \bar{\boldsymbol{\theta}} + \delta\Delta\boldsymbol{\theta}^+\}`` | +|``\ell_\infty`` Norm | ``T_{\infty}(\delta) = \{\boldsymbol{\theta} : \lVert\boldsymbol{\theta} - \bar{\boldsymbol{\theta}}\rVert_\infty \leq \delta \}`` | +|``\ell_1`` Norm | ``T_{1}(\delta) = \{\boldsymbol{\theta} : \lVert\boldsymbol{\theta} - \bar{\boldsymbol{\theta}}\rVert_1 \leq \delta \}`` | +|``\ell_2`` Norm | ``T_{2}(\delta) = \{\boldsymbol{\theta} : \lVert\boldsymbol{\theta} - \bar{\boldsymbol{\theta}}\rVert_2 \leq \delta \}`` | + + +We observe that ``T(\delta)`` can be represented by any combination of the +uncertainty sets in the table above or other sets (provided that the resulting +combined set is compact). This provides the ability to incorporate physical +knowledge on the uncertain parameters and/or to create a wider range of +uncertainty set shapes. For instance, the positive (truncated) ellipsoidal set +``T_{ellip+}(\delta) := T_{ellip}(\delta) \cap \mathbb{R}_+^{n_{\theta}}``, where +``\mathbb{R}_+^{n_{\theta}} := \{\boldsymbol{\theta} : \boldsymbol{\theta} \geq 0\}`` can be used to +represent parameters that are known to be non-negative (e.g., demands, prices). +The in FlexJuMP the `only_positive` option enables the intersection of the sets +mentioned above with the positive set ``\mathbb{R}_+^{n_{\theta}}``. + +One advantage of using ``T_{ellip}(\delta)`` is that the associated flexibility +index (denoted by ``F_{ellip}``) can be used to obtain the confidence level: + +```math +\begin{equation} + \alpha^* := \frac{\gamma(\frac{n_{\theta}}{2}, \frac{F_{ellip}}{2})}{\Gamma(\frac{n_{\theta}}{2})} +\end{equation} +``` + +where ``\gamma(\cdot)`` and ``\Gamma(\cdot)`` are the incomplete and complete gamma +functions. Interestingly, this confidence level provides a lower bound for the +stochastic flexibility index ``SF`` (i.e., ``\alpha^*\leq SF``). This thus provides +an avenue to obtain a probabilistic interpretation of the deterministic flexibility +index while avoiding MC sampling. This confidence level can be obtained with the +[`getconfidencelevel`](@ref) function. + +For flexibility analysis it is critical that ``\bar{\boldsymbol{\theta}}`` be +feasible, thus the function [`ismeanfeasible`] is used to verify the mean's +feasibility. In some applications, specifying ``\bar{\boldsymbol{\theta}}`` might +be difficult if not enough data is available or if a system is not routinely operated +at any given point (e.g., a power grid). Thus, we introduce methods that can be employed +to find well-centered nominal points. + +The analytic center ``\bar{\boldsymbol{\theta}}_{ac}`` can be defined by: + +```math +\begin{equation} + \begin{aligned} + &{\bar{\boldsymbol{\theta}}}_{ac} \in & \underset{\boldsymbol{\theta}, \mathbf{z}, \mathbf{x}, s}{\mathrm{argmax}} &&& \sum_{j \in J} \log \left(s_j \right) \\ + &&\text{s.t.} &&& f_j(\mathbf{z}, \mathbf{x}, \boldsymbol{\theta}) +s_j\leq 0, && j \in J \\ + &&&&& h_i(\mathbf{z}, \mathbf{x}, \boldsymbol{\theta}) = 0, && i \in I. + \end{aligned} +\end{equation} +``` + +Here, ``s_j\in \mathbb{R}`` are slack variables. This problems pushes the +constraints to the interior of the feasible region and gives the analytic center +as the point that maximizes the geometric mean of the constraints (slack variables). +The feasible center ``\bar{\boldsymbol{\theta}}_{fc}`` is the point that maximizes +the worst-case slack variable and is given by: + +```math +\begin{equation} + \begin{aligned} + &\bar{\boldsymbol{\theta}}_{fc} \in &\underset{\boldsymbol{\theta}, \mathbf{z}, \mathbf{x}, s}{\mathrm{argmax}} &&& s \\ + &&\text{s.t.} &&& f_j(\mathbf{z}, \mathbf{x}, \boldsymbol{\theta}) + s \leq 0, & j \in J \\ + &&&&& h_i(\mathbf{z}, \mathbf{x}, \boldsymbol{\theta}) = 0, & i \in I. + \end{aligned} +\end{equation} +``` + +In FlexJuMP these centers can be computed using the [`findcenteredmean`](@ref) function. + +## Analysis Techniques +The flexibility index is a valuable metric that can be used to compare system +designs. The utility and interpretation of the index for a system will depend on +the choice of ``T(\delta)``. For instance, the index can be used to determine the +confidence level ``\alpha^*`` if the set ``T_{ellip}(\delta)`` is used when +``\boldsymbol{\theta} ~ \sim \mathcal{N}(\bar{\boldsymbol{\theta}}, V_{\boldsymbol{\theta}})``. The index might not +have a clear interpretation or utility for some choices of ``T(\delta)`` but can +still be useful to quantify improvements in flexibility from design modifications +(retrofits). An example of comparing two systems with ellipsoidal and hyperbox +sets is shown below. + +![comparison](images/comparison.png) + +It is apparent that Design B has a larger feasible region ``\Theta`` and thus has +a larger ``SF`` index. Both sets reflect this behavior and could be used to make +a comparison without having to compute the ``SF`` index. A key observation is that +the choice of ``T(\delta)`` significantly affects how it measures system +flexibility. For instance, for Design B, the ellipsoidal and hyperbox sets identify +different limiting constraints, and thus exhibit distinct behavior. In particular, +index ``F_{box}`` is limited by constraint ``f_2`` and would not change if constraints +``f_1``, ``f_3``, and/or ``f_4`` were varied to increase the area of ``\Theta``, +even though the overall system flexibility would be improved. On the other hand, +index ``F_{ellip}`` is limited by constraint ``f_1``. This conservative behavior +parallels what is observed with the use of uncertainty sets in robust optimization, +where such sets are used to optimize against the worst case scenario such that the +solution is robust in the face of uncertainty, and the conservativeness of a solution +depends on the chosen shape of the uncertainty set. + +The flexibility index problem can also be used to rank constraints that most +limit system flexibility, since it implicitly identifies constraints that limit +flexibility. Specifically, at the solution of the flexibility index problem, the +binary variables $y_j$ indicate which constraints are active and therefore limit +flexibility. Thus, the flexibility index problem can be resolved by excluding this +first set of limiting constraints, so that the next set of limiting constraints +can be identified. This step can be repeated to rank system constraints to a +desired extent (as long as the solution of the problem is bounded). This is done +by noticing that each set of limiting constraints will have an associated flexibility +index, which indicates how limiting a particular set of constraints is relative +to the other sets. This methodology can also be used to identify and rank system +components that limit flexibility in order to guide design improvements or quantify +value of specific components. Limiting constraint information can also be used to +quantify the impact of failure of system components (e.g., a production facility). +This process is illustrated in the figure below. + +![comparison](images/ranking.png) + +This shows how limiting (active) constraints are iteratively turned off to find +subsequent limiting constraints. In FlexJuMP the function [`rankinequalities`](@ref) +automatically carries out this iterative methodology. Also, for a particular +solved flexibility model `m`, the active constraint indexes can be retrieved via +the [`getactiveconstraints`](@ref) function. diff --git a/docs/src/examples.md b/docs/src/examples.md new file mode 100644 index 0000000..d49f31b --- /dev/null +++ b/docs/src/examples.md @@ -0,0 +1,281 @@ +```@meta +CurrentModule = FlexJuMP +``` + +# Examples +This page provides two application examples that illustrate how FlexJuMP can be +used and highlight some of its capabilities. + +## Heat Exchanger Network +This is a common benchmark example used in flexibility analysis literature. The +heat exchanger network is characterized according to the diagram below. + +![hx_network](images/HX_network.png) + +The system constraints are: + +```math +\begin{equation} + \begin{aligned} + -350 K - 0.67 Q_c + T_3 &\leq 0 \\ + 1388.5 K + 0.5 Q_c - 0.75 T_1 - T_3 - T_5 &\leq 0 \\ + 2044 K + Q_c - 1.5 T_1 - 2 T_3 - T_5 &\leq 0 \\ + 2830 K + Q_c - 1.5 T_1 - 2 T_3 - T_5 - 2 T_8 &\leq 0 \\ + -3153 K - Q_c + 1.5 T_1 + 2 T_3 + T_5 + 3 T_8 &\leq 0 + \end{aligned} +\end{equation} +``` +where ``T_1``, ``T_3``, ``T_5``, and ``T_8`` denote the Gaussian parameters and +``Q_c`` denotes the recourse variable. The mean and covariance matrix are given by: + +```math +\begin{equation} + \bar{\boldsymbol{\theta}} = + \begin{bmatrix} + 620 \\ 388 \\ 583 \\ 313 + \end{bmatrix} K + \ \ \ \ \ \ + V_{\boldsymbol{\theta}} = + \begin{bmatrix} + 11.11 & 0 & 0 & 0 \\ + 0 & 11.11 & 0 & 0 \\ + 0 & 0 & 11.11 & 0 \\ + 0 & 0 & 0 & 11.11 + \end{bmatrix} K^2 +\end{equation} +``` +The parameter variance ``\sigma_i^2`` is taken to be ``11.11 K^2`` which corresponds +to ``\bar{\theta}_i \pm 3 \sigma_i``, where ``3 \sigma_i`` is equated to ``10 K`` +in accordance to the ``\pm 10 K`` variations historically reported. + +Now that we have formalized the system parameters and equations we can setup and +solve a flexibility model. Let's first setup the model using a hyperbox uncertainty +set. + +```@example hx +using FlexJuMP, JuMP +using Gurobi + +# Setup the uncertainty set parameters +means = [620; 388; 583; 313] +covar = [11.11 0 0 0; 0 11.11 0 0; 0 0 11.11 0; 0 0 0 11.11] +box_dev = ones(4) * 10 + +# Setup the model +m = FlexibilityModel(solver = GurobiSolver(OutputFlag = 0)) + +# Define variables +@randomvariable(m, T[i = 1:4], mean = means[i]) +@recoursevariable(m, Qc) + +# Define the constraints +@constraint(m, -350 - 0.67Qc + T[2] <= 0.0) +@constraint(m, 1388.5 + 0.5Qc - 0.75T[1] - T[2] - T[3] <= 0.0) +@constraint(m, 2044 + Qc - 1.5T[1] - 2T[2] - T[3] <= 0.0) +@constraint(m, 2830 + Qc - 1.5T[1] - 2T[2] - T[3] - 2T[4] <= 0.0) +@constraint(m, -3153 - Qc + 1.5T[1] + 2T[2] + T[3] + 3T[4] <= 0.0) + +# Define the uncertainty set +setuncertaintyset(m, :Hyperbox, [[box_dev]; [box_dev]]); +``` + +Before solving let's verify that the means provide a feasible nominal point. + +```@example hx +isvalid = ismeanfeasible(m) +``` + +Since the mean is feasible we can proceed to solve `m` using all the default +settings and then extract the solution data. + +```@example hx +# Solve + status = solve(m) + + if status == :Optimal + # Retrieve optimized data + flexibility_index = getflexibilityindex(m) + temperatures = getvalue(T) + cooling = getvalue(Qc) + actives = getactiveconstraints(m) + + # Print the results + print("Flexibility Index: ", round(flexibility_index, 4), "\n") + print("Critical Temperatures: ", round.(temperatures, 2), "\n") + print("Critical Cooling: ", round(cooling, 2), "\n") + print("Active Constraints: ", actives) + end +``` +This result indicates that the largest feasible hyperbox uncertainty set is given +by 50% of its nominal scale, meaning only ``\pm 5 K`` variations are feasible. Let's +now specify the covariance matrix so we can estimate the stochastic flexibility index. + +```@example hx +setcovariance(m, covar) +SF = findstochasticflexibility(m, use_vulnerability_model = true) +``` + +Now let's change the uncertainty set to be ellipsoidal and resolve. Notice that +we don't need to provide the covariance as an attribute because we already set it +with `setcovariance`. We also will enable diagonalization of the ellipsoidal +constraint by using the keyword argument `diag:Bool`. + +```@example hx +# Change the uncertainty set +setuncertaintyset(m, :Ellipsoid) + +# Solve + status = solve(m, diag = true) + + if status == :Optimal + # Retrieve optimized data + flexibility_index = getflexibilityindex(m) + temperatures = getvalue(T) + cooling = getvalue(Qc) + actives = getactiveconstraints(m) + conf_lvl = getconfidencelevel(m) + + # Print the results + print("Flexibility Index: ", round(flexibility_index, 4), "\n") + print("Confidence Level: ", round(conf_lvl, 4), "\n") + print("Critical Temperatures: ", round.(temperatures, 2), "\n") + print("Critical Cooling: ", round(cooling, 2), "\n") + print("Active Constraints: ", actives) + end +``` + +We note that the confidence level provides a lower bound on the stochastic +flexibility index as we expect. + +## IEEE-14 Bus Power Network +We now consider the IEEE 14-node power network. Which we model by performing +balances at each node ``n \in \mathcal{C}`` and enforcing capacity constraints on +the arcs ``a_k, k \in \mathcal{A},`` and on the suppliers ``s_b, b \in \mathcal{S}``. +The demands ``d_m, m \in \mathcal{D},`` are assumed to be the uncertain parameters. +The flexibility index problem those seek to identify the largest set of simultaneous +demand withdrawals that the system can tolerate. The deterministic network model +is given by: + +```math +\begin{equation} + \sum_{k \in \mathcal{A}_n^{rec}} a_k - \sum_{k \in \mathcal{A}_n^{snd}} a_k + \sum_{b \in \mathcal{S}_n} s_b - \sum_{m \in \mathcal{D}_n} d_m = 0, \ \ \ n \in \mathcal{C} +\end{equation} +``` +```math +\begin{equation} + -a_k^C \leq a_k \leq a_k^C, \ \ \ k \in \mathcal{A} +\end{equation} +``` +```math +\begin{equation} + 0 \leq s_b \leq s_b^C, \ \ \ b \in \mathcal{S} +\end{equation} +``` +where ``\mathcal{A}_n^{rec}`` denotes the set of receiving arcs at node ``n``, +``\mathcal{A}_n^{snd}`` denotes the set of sending arcs at ``n``, ``\mathcal{S}_n`` +denotes the set of suppliers at ``n``, ``\mathcal{D}_n`` denotes the set of demands +at ``n``, ``a_k^C`` are the arc capacities, and ``s_b^C`` are the supplier capacities. + +This test case does not provide arc capacities so we enforce a capacity of 100 for +all the arcs. A schematic of this system is provided below. + +![ieee14](images/ieee14_diagram.png) + +This system is subjected to a total of 10 uncertainty disturbances (the network +demands). The demands are assumed to be ``\boldsymbol{\theta} \sim \mathcal{N}(\bar{\boldsymbol{\theta}}, V_{\boldsymbol{\theta}})``, +where ``\bar{\boldsymbol{\theta}} = \bar{\boldsymbol{\theta}}_{fc}`` and +``V_{\boldsymbol{\theta}} = 1200 \mathbb{I}``. We select the set +``T_{\infty}(\delta)``. Thus, we setup flexibility model. + +```@example ieee14 +using FlexJuMP, JuMP +using Gurobi, Pavito, Ipopt + +# Set the dimensions +n_gens = 5 +n_lines = 20 +n_dems = 11 + +# Setup the uncertainty set parameters +covar = eye(n_dems) * 1200. + +# Specify the network details +line_cap = 100 +gen_cap = [332; 140; 100; 100; 100] + +# Setup the model +m = FlexibilityModel(solver = PavitoSolver(mip_solver = GurobiSolver(OutputFlag = 0), + cont_solver = IpoptSolver(print_level = 0), log_level = 0, + mip_solver_drives = false)) + +# Define variables +@randomvariable(m, d[i = 1:n_dems], mean = 0) # Temperarily set the mean to 0 +@recoursevariable(m, a[1:n_lines]) +@recoursevariable(m, g[1:n_gens]) + +# Set the line capacity constraints +@constraint(m, [line = 1:n_lines], -line_cap <= a[line]) +@constraint(m, [line = 1:n_lines], a[line] <= line_cap) + +# Set the generator capacity constraints +@constraint(m, [gen = 1:n_gens], 0.0 <= g[gen]) +@constraint(m, [gen = 1:n_gens], g[gen] <= gen_cap[gen]) + +# Set the node balance constraints +@constraint(m, g[1] - a[1] - a[6] == 0) +@constraint(m, a[1] + g[2] - sum(a[i] for i = [2; 4; 5]) - d[1] == 0) +@constraint(m, g[3] + a[2] - a[3] - d[2] == 0) +@constraint(m, sum(a[i] for i = [3; 4; 8]) - sum(a[i] for i = [7; 11]) - d[3] == 0) +@constraint(m, sum(a[i] for i = [5; 6; 7; 12]) - d[4] == 0) +@constraint(m, g[4] + sum(a[i] for i = [16; 18]) - sum(a[i] for i = [12; 19]) - d[5] == 0) +@constraint(m, a[9] - sum(a[i] for i = [8; 10]) == 0) +@constraint(m, g[5] - a[9] == 0) +@constraint(m, sum(a[i] for i = [10; 11]) - sum(a[i] for i = [13; 14]) - d[6] == 0) +@constraint(m, sum(a[i] for i = [13; 20]) - d[7] == 0) +@constraint(m, a[19] - a[20] - d[8] == 0) +@constraint(m, a[17] - a[18] - d[9] == 0) +@constraint(m, a[15] - sum(a[i] for i = [16; 17]) - d[10] == 0) +@constraint(m, a[14] - a[15] - d[11] == 0) + +# Define the covariance and the uncertainty set +setcovariance(m, covar) +setuncertaintyset(m, :PNorm, Inf); +``` + +The flexibility model `m` is now defined, so now we compute the feasible center +and solve `m`. + +```@example ieee14 +# Compute a center to replace the mean if desired +new_mean = findcenteredmean(m, center = :feasible, solver = GurobiSolver(OutputFlag = 0), + update_mean = true) +updated_mean = getmean(m) + +# Solve +status = solve(m) + +if status == :Optimal + # Retrieve optimized data + flexibility_index = getflexibilityindex(m) + lines = getvalue(a) + generators = getvalue(g) + demands = getvalue(d) + actives = getactiveconstraints(m) + + # Print the results + print("Flexibility Index: ", round(flexibility_index, 4), "\n") + print("Active Constraints: ", actives) +end +``` + +Now we will use the `rankinequalities` function to obtain a ranking of the most +limiting components. + +```@example ieee14 +# Rank the inequality constraints +rank_data = rankinequalities(m, max_ranks = 3) +``` + +Thus, now we can identify which lines and generators most limit system flexibility. +We also observe how the flexibility index increases with each rank level as is +expected. diff --git a/docs/src/guide.md b/docs/src/guide.md new file mode 100644 index 0000000..43fbb0c --- /dev/null +++ b/docs/src/guide.md @@ -0,0 +1,347 @@ +# User Guide +```@meta +CurrentModule = FlexJuMP +``` + +This page provides an overview of how to use FlexJuMP to analyze system flexibility. +Detailed explanations on the syntax of each method/function and datatype is +provided in [Library](@ref). + +The package needs to be loaded along with [JuMP.jl](https://github.com/JuliaOpt/JuMP.jl) in the usual manner: + +```@example userguide +using FlexJuMP, JuMP +``` + +## Model Definition and Setup +### Flexibility Model Definition +The flexibility model is defined with the [`FlexibilityModel`](@ref) function +and the solver that will be used to solve the flexibility index problem should +be specified. + +```@example userguide +using Gurobi +m = FlexibilityModel(solver = GurobiSolver(OutputFlag = 0)) +``` + +Flexibility models are JuMP models that have been extended to include information +needed for flexibility analysis and incorporate [`solvehook`](@ref) which solves +the flexibility index problem. + +!!! note + A solver that is capable of solving MIQCPs if an ellipsoidal or 2-norm uncertainty + set must be used. Otherwise, an MILP solver will work. + +### Variable Definition +Now we can add variables to `m` using the [`@randomvariable`](@ref) macro for random +variables, the [`@recoursevariable`](@ref) macro for recourse/control variables, +the standard `@variable` JuMP macro to add state variables. + +```@setup userguide +means = [620; 388; 583; 313] +@randomvariable(m, T[i = 1:4], mean = means[i]) +@recoursevariable(m, Qc) +@variable(m, x) +``` + +```julia +means = [620; 388; 583; 313] +@randomvariable(m, T[i = 1:4], mean = means[i]) +@recoursevariable(m, Qc) +@variable(m, x) +``` + +In applications where it is not clear what variables are state/recourse variables, +all the nonrandom variables can simply be defined with the `@recoursevariable` macro. +The `@randomvariable` and `@recoursevariable` macros can define single variables +and/or arrays of variables if we append brackets to the variable as is done in JuMP. +For example + +```julia +@recoursevariable(m, y[1:N, 1:M]) +``` +will create an `N` by `M` array of recourse variables. + +However, these macros currently don't support specification of variable upper/lower +bounds in contrast to the traditional JuMP syntax. Similarly, bounds added via +the `@variable` macro will be ignored. + +Please note that the `@randomvariable` macro requires that a mean be provided for +each random variable. This can be done in the three following ways: + +```julia +@randomvariable(m, z], mean = 42) # create one variable with mean 42 +@randomvariable(m, z[i = 1:N], mean = means[i]) # assign means via a predefined vector +@randomvariable(m, z[i = 1:N], mean = 42) # assign the same mean to each variable +``` + +The vector containing the means of all the random variables can later be changed +with the [`setmean`](@ref) function. + +### Constraint Definition +Now we can add constraints to `m` via the `@constraint` macro as we normally would +with typical JuMP models. + +```@example userguide +@constraint(m, -100 - 0.67Qc + 2T[2] + x <= 0.0) +@constraint(m, -250 - T[2] == x) +@constraint(m, 0.5Qc - 0.75T[1] - T[2] - T[3] <= -1388.5) +@constraint(m, -Qc + 1.5T[1] + 2T[2] + T[3] >= 2044) +@constraint(m, Qc - 1.5T[1] - 2T[2] - T[3] - 2T[4] <= -2830) +@constraint(m, -Qc + 1.5T[1] + 2T[2] + T[3] + 3T[4] <= 3153) +``` + +!!! note + Currently, only linear constraints can be used with FlexJuMP. + +### Uncertainty Set Definition +Now we can specify which uncertainty set we would like to use. This is done via +the [`setuncertaintyset`](@ref) function. One of the 5 uncertainty set types +described in the [Uncertainty Set Characterization](@ref) section can specified. +For a flexibility model `m`, the set type is specified in the second argument with +one of the following symbols: `:Ellipsoid`, `:Hyperbox`, or `:PNorm`. The third +argument should contain whatever attribute is needed for that uncertainty set type. +Continuing the example above we would define an ellipsoidal set + +```@example userguide +covar = [11.11 0 0 0; 0 11.11 0 0; 0 0 11.11 0; 0 0 0 11.11] +setuncertaintyset(m, :Ellipsoid, covar) +``` + +where the required attribute is the covariance matrix. Note that the covariance +matrix must be symmetric positive semi-definite dimensionality that matches the +number of random variables. + +The other sets could have instead been defined by: + +```julia +box_dev = [10; 10; 10; 10] +setuncertaintyset(m, :Hyperbox, [[box_dev]; [box_dev]]) +setuncertaintyset(m, :PNorm, 1) +setuncertaintyset(m, :PNorm, 2) +setuncertaintyset(m, :PNorm, Inf) +``` + +The hyperbox set requires that a vector of two vectors that correspond to the +negative and positive deviations be provided (these deviations are explained in +[Uncertainty Set Characterization](@ref)). The p-norm sets required that the value +of `p` be provided which can `1`, `2`, or `Inf`. A summary of the sets and their +required inputs is shown below. + +| Uncertainty Set Type | Symbol | Attribute | +|----------------------|--------------|------------------------------------------| +| Ellipsoidal | `:Ellipsoid` | `covariance::Matrix` | +| Hyperbox | `:Hyperbox` | `[[neg_dev]; [pos_dev]]::Vector{Vector}` | +| P-Norm | `:PNorm` | `1`, `2`, or `Inf` | + +The `setuncertaintyset` function also accepts the keyword argument `only_positive::Bool` +to indicate if the uncertainty set should be intersected with the set of all positive +real numbers ``\mathbb{R}_+^{n_{\theta}}``. For example, to define the set +``T_{ellip}(\delta) \cap \mathbb{R}_+^{n_{\theta}}`` we would call + +```julia +setuncertaintyset(m, :Ellipsoid, covar, only_positive = true) +``` + +!!! note + By default the uncertainty set is taken to be ellipsoidal. Thus, one + need not call `setuncertaintyset` if an ellipsoidal set is desired, but the + the covariance matrix must still be specified via the [`setcovariance`](@ref) + function. + +## Pre-Solution Methods +This section will outline methods/functions that are geared to be called before +`m` is solved, but can still be applied after it is solved. + +### Mean Extraction/Manipulation +The mean corresponding to a particular random variable can be extracted via the +[`getmean(variable::RandomVariable)`](@ref) method. Note that this only works for +individual variables and that arrays of random variables are not valid input. + +```@example userguide +variable_mean = getmean(T[2]) +``` + +The means of all the random variables in `m` can be extracted via the +[`getmean(m::Model)`](@ref) method. For the current example we have + +```@example userguide +current_mean = getmean(m) +``` + +The means of all the random variables in `m` can be redefined using the +[`setmean`](@ref) method where the new means are passed as a vector in the second +argument. + +```@example userguide +setmean(m, [1; 1; 1; 1]) +``` + +Note that the new means vector must match the length of the current means vector, +otherwise calling `setmean` will throw an error. We will reset means back to their +original values before continuing. + +```@example userguide +setmean(m, means) +``` + +As discussed in the [Uncertainty Set Characterization](@ref)) section, it is critical +that the means correspond to a feasible instance of the random variables. The +feasibility of the means can be tested with the [`ismeanfeasible`](@ref) function. +This tests the feasibility of the current mean for `m` using the feasibility +function and returns `true` if it is feasible or `false` otherwise. In our current +example we have + +```@example userguide +result = ismeanfeasible(m) +``` + +Thus, our current mean is feasible. By default the `ClpSolver` is used, but the +keyword `solver` can be used to assign another solver LP or NLP solver. + +Finally, the [`findcenteredmean`](@ref) function can be used to compute the +analytic center or feasible center (which are described in +[Uncertainty Set Characterization](@ref)). This function returns the feasible +center by default, but can be changed via the `center::Symbol` keyword parameter +where `:feasible` denotes the feasible center and `:analytic` refers to the analytic +center. In our current example we have + +```@example userguide +centered_mean = findcenteredmean(m, center = :analytic) +``` + +This center can be used to replace the mean by setting the `update_mean::Bool` +keyword parameter to `true`. Optionally, center can be constrained to be strictly +positive with the `only_positive:Bool` keyword parameter. The default solver is +the `IpoptSolver` since an NLP solver is required for the analytic center, but an +LP solver can be used to compute the feasible center. + +### Covariance Extraction/Manipulation +The covariance matrix stored in `m` can be extracted via the [`getcovariance`](@ref) +method. + +```@example userguide +covar = getcovariance(m) +``` + +The covariance matrix can be set or changed using the [`setcovariance`](@ref) +function which requires the second argument to be `covariance::Matrix`. + +```@example userguide +setcovariance(m, covar) +``` + +Note that the specified covariance must be symmetric positive semi-definite, otherwise +`setcovariance` will throw an error. Also, it is important that the covariance matrix +appropriately match the number of random variables in `m`. + +## Model Solution +Now that the flexibility model `m` is defined we can solve it (i.e., solve the +flexibility index problem). This is done simply by calling the JuMP `solve` function +associated with the model. Thus, for our current example we have + +```@example userguide +solve(m, active_constr = true) +``` + +A number of keyword arguments can be passed which are each described in the +documentation for [`solvehook`](@ref). Here the `active_constr::Bool` keyword +argument is used to turn on the active constraint which enforces the number of +active constraints at the solution (this is can be used for systems with linearly +independent inequalities). The `U::Number` keyword argument specifies the slack +upper bound which can be changed to improve the solution time for a particular +problem. Also, the `conic_δ::Bool` keyword argument can be used to when an MICP +solver is used such as [Pajarito.jl](https://github.com/JuliaOpt/Pajarito.jl). + +## Post-Solution Methods + +### Critical Point Extraction +Now that `m` is solved, the optimized values of the variables can be extracted +with the `getvalue` method as is normally done with JuMP models. With the current +example we have + +```@example userguide +temperatures = getvalue(T) +cooling = getvalue(Qc) +state = getvalue(x) +``` + +Note that this can be done with single variables and/or arrays of variables. + +### Flexibility Index Information +The optimized value of the flexibility index stored in `m` can now be retrieved +by using the [`getflexibilityindex`](@ref) method. + +```@example userguide +flexibility_index = getflexibilityindex(m) +``` + +Similarly, the stored flexibility index can be used to obtain the confidence level +if an ellipsoidal uncertainty set was used. This can be calculated using the +[`getconfidencelevel`](@ref) function. + +```@example userguide +conf_lvl = getconfidencelevel(m) +``` + +As discussed in the [Uncertainty Set Characterization](@ref) section, the +confidence level provides a lower bound on the stochastic flexibility index. + +The indexes of the active constraints can be obtained via the +[`getactiveconstraints`](@ref) method. + +```@example userguide +actives = getactiveconstraints(m) +``` + +If desired, we can also directly extract all of the flexibility data associated +with the [`FlexibilityData`](@ref) type. + +```@example userguide +data = getflexibilitydata(m) +``` + +## Analysis Methods + +### Ranking Limiting Constraints +In the [Analysis Techniques](@ref) section we discussed how the flexibility index +problem can be used to rank inequality constraints that most limit system flexibility. +This can be done automatically using the [`rankinequalities`] function for a +flexibility model `m`. This will return a vector of type `Vector{Dict}` where each +dictionary contains the flexibility index, active constraint indexes, and optimized +flexibility model corresponding to a particular rank level. With the current example +we obtain + +```@example userguide +rank_data = rankinequalities(m, max_ranks = 3, active_constr = true) +``` + +The keyword argument `max_ranks::Int = 5` specifies the maximum number of rank +levels, and the `m` will be iteratively solved without the previous active constraints +until the maximum number of ranks is accomplished or the problem becomes unbounded, +whichever occurs first. We also note that all of the same keyword arguments available +to the `solve` function are accessible here since `rankinequalities` is a wrapper +function for `solve`. + +### Stochastic Flexibility Index +The stochastic flexibility index can be computed via Monte Carlo sampling using +the [`findstochasticflexibility`](@ref) function. The number of samples can be +specified with the `num_pts::Int = 10000` keyword argument. + +```@example userguide +SF = findstochasticflexibility(m, num_pts = 100, use_vulnerability_model = true) +``` + +By default each sample is evaluated individually, but all of them can be evaluated +simultaneously by setting the `use_vulnerability_model::Bool` to `true` as explained +in [Stochastic Flexibility Index Problem](@ref). Furthermore, the +`use_flexibility_index::Bool = false` keyword argument can be set to `true` to +use the optimized uncertainty set to reduce the number of MC samples that need +to be evaluated. The `only_positive::Bool = false` keyword argument enforces that +only positive MC samples are used. + +!!! note + By default the `ClpSolver` is used, but other solvers that support warm + starts such as Gurobi and Cplex will improve performance if + `use_vulnerability_model::Bool = false`. The solver can be changed with the + `solver` keyword argument. diff --git a/docs/src/home.md b/docs/src/home.md new file mode 100644 index 0000000..61d928f --- /dev/null +++ b/docs/src/home.md @@ -0,0 +1,86 @@ +# FlexJuMP.jl + +A package for analyzing and quantifying the flexibility of complex systems. + +![ellipsoid](images/ellip.png) + +## Overview +FlexJuMP.jl provides a computational framework to analyze and quantify system flexibility. +It was originally developed as a JuMP extension to automate the setup and computation of the +flexibility index problem with several different types of uncertainty sets. However, it is currently +being expanded to compute a number of useful metrics and carry out helpful analyses. Currently, +it capabilities include: +- Computing the flexibility index with ellipsoidal, hyperbox, or p-norm uncertainty sets +- Checking nominal point (mean) feasibility +- Computing the stochastic flexibility index via Monte Carlo sampling methods +- Using the flexibility index to expedite the solution to the stochastic flexibility index +- Computing the analytic and feasible centers of the feasible region to better nominal points +- Computing the confidence level which provides a lower bound on the stochastic flexibility index +- Ranking the most limiting system constraints via iterative solution of the flexibility index problem + +These techniques are described in greater detail in [Background](@ref). + +!!! note + Currently, FlexJuMP only accepts linear constraints and assumes the random variables to + multivariate Gaussian with a certain mean and covariance matrix specified by the user. Development + is underway to allow for quadratic constraints and general nonlinear constraints. + +## Installation +FlexJuMP.jl is not yet a registered Julia package, but can still be installed by providing the package manager +with the url of the repository instead of the name. + +```julia +Pkg.clone("git://github.com/pulsipher/FlexJuMP.jl.git") +``` +Also, FlexJuMP.jl only supports Julia 0.6, but soon will be compatible with Julia 0.7 and +Julia 1.0. + +## Quick Start +Below is a brief example of the high-level API, more explanation and examples are provided in [User Guide](@ref) and [Examples](@ref). + +```@example +using FlexJuMP, JuMP +using Gurobi + +# Setup the uncertainty set parameters +means = [620; 388; 583; 313] +covar = [11.11 0 0 0; 0 11.11 0 0; 0 0 11.11 0; 0 0 0 11.11] + +# Setup the model +m = FlexibilityModel(solver = GurobiSolver(OutputFlag = 0)) + +# Define variables +@randomvariable(m, T[i = 1:4], mean = means[i]) +@recoursevariable(m, Qc) + +# Define the constraints +@constraint(m, -0.67Qc + T[2] <= 350) +@constraint(m, 0.5Qc - 0.75T[1] - T[2] - T[3] <= -1388.5) +@constraint(m, -Qc + 1.5T[1] + 2T[2] + T[3] >= 2044) +@constraint(m, Qc - 1.5T[1] - 2T[2] - T[3] - 2T[4] <= -2830) +@constraint(m, -Qc + 1.5T[1] + 2T[2] + T[3] + 3T[4] <= 3153) + +# Define the uncertainty set +setuncertaintyset(m, :Ellipsoid, covar) + +# Solve +status = solve(m) + +# Retrieve optimized data +flexibility_index = getflexibilityindex(m) +conf_lvl = getconfidencelevel(m) +critical_temperatures = getvalue(T) +critical_cooling = getvalue(Qc) +actives_constrs = getactiveconstraints(m) + +# Print results +print(flexibility_index) +``` + +## Outline +```@contents +Pages = ["home.md", "background.md", "guide.md", "examples.md", "api.md"] +``` + +## Acknowledgements +We acknowledge our support from the Department of Energy under grant DE-SC0014114. diff --git a/docs/src/images/HX_network.png b/docs/src/images/HX_network.png new file mode 100644 index 0000000000000000000000000000000000000000..068e76a4436482c380442205d88903b7da617759 GIT binary patch literal 23039 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 HY+n91Ay_i6 literal 0 HcmV?d00001 diff --git a/docs/src/images/comparison.png b/docs/src/images/comparison.png new file mode 100644 index 0000000000000000000000000000000000000000..0b7274eebfe4310ed765603f9ed7d33faa00c4be GIT binary patch literal 77130 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

g=3DG5!fHL=dwzj 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 literal 0 HcmV?d00001 diff --git a/docs/src/images/ellip.png b/docs/src/images/ellip.png new file mode 100644 index 0000000000000000000000000000000000000000..14f77964a58f2d17ada7294f913ef411ff07af01 GIT binary patch literal 173542 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

n0{uempi}Tx9#}hUW_F+g2OL5wXN^?DwHBKWTco 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 rmCbfO?bgomy#Xspl<3vn3nc67R^`LVv}<% literal 0 HcmV?d00001 diff --git a/docs/src/images/ieee14_diagram.png b/docs/src/images/ieee14_diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..d95fcdb81732aa234a8f9bab24a0324f8adb0891 GIT binary patch literal 61034 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�kev}%~*-Jp12ZinTE zPnhXq{eH1HPbn;Z27dD*U_#ixo4m5iI+r>g?kINf;Dh`Tu?CX-mC0?tt`5_$a9UkT zm2lyW4SKdO2cIWva>qJr36bm;L%66UuCn$+b4$yoV}zt7?NR$+lWG)bjpXSm<&?Yd zT+MP|8px>S9VzTaY&xy#(cIc|q)Z!*3n=`;0k|k?i*V?w@@}6DJr^=RO7iC!TZcjy z!%Hb(8vRn~!wSEf$+#Gz*#`>I-7M*^XiLtqoazJ#(`@I9Q~K#E6>$hCN|(TBkU6*w zXU-WH1a@?Xmpg^ApVS6h+dD)c`cY;*B?F%++BCiP3Ypz#Q&)a-|hu!PO|Go*{0Mn?i>KBDZArgmb zbqP#nE5a&a<z%5H zdo^t53=Vg2c!`CwywZENEkxX&F#4_9yQ%PMmTn| zsQt`bBdPDpF_XTX?v8_hJ@f18baR@%H1_tAq0KYk_||^&EYMfBRT@({3^GlGamD8YQQg_Bw`zUUsx2V`5qhdz8$R~)lql;~ z7r^{9l+F5dHEub3^K)sys-MZ8SKw)R#Md+UGhDmh%5L5HmA^l%dJIfj7`;uK%k~^` zBiXZ2tmd~;gPKO{CRt4y(L=8PAfS$~Ci&@59C z<%xCucP%aA!^2Q?C9F=Hzu30xY-`PdhHe}nCWqhN4gK!#Ml|g(T=j~Me^uJtv4~Ph zRox$j&=Vcp&LHnPiEs)i!aIJN{8dz%iRakoG?n{{tfq7E@ek=lhPARf#R*8Z>Qr$( zBhMA9T4SC%EJk5IrQ&%;_e-49upV&gsB+;|svr9b#vx_i(@@Mpkk33)=!p7K=`zh% zG><{O?Dfe5m}Sh4@`D^I9o@4>ud}Xxf1l1n9pGMUhT|GL>9{Gz2BDRS7vG5sn!2z7 z$@63_-4HfZ(2h<`15E}$p6ZR*`rTg#L(N&#fKfy@N2Yi_#mhf4Cn-`xJRW)e#U}NjPJQ%{zLYI-PC3I~GtQjs zp8F()rxr|vO!{0zy3nCb`@Q@}c|00>DLI+}NM95=2_Vg>c1zSv-r|k(qQk&ifC3*l z^m+J-t3;XTTt=dztYr{ZRYh^}i^)0o8ofY{$r4>gIIibGB1a;X2@eHcqxXP`M?M}T z+wg8Cpa=%yij8drGG9iqWc=k=b5pna+(Lit}3+8v9_b zt;X2dky)U@)wB}8>9{R_dpiAkZKU*k_wb4}&o@<>hQtJIacA_NQaJV@FI+o-c_YAd zszjaA40$oCEF@cJFTcgGs>%AZrWl@L#*j$>f5?v&}s%s$c?RW%0AHIDB#-(m8g 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

D#cR1ESqF!=**Iw0)%i|m z?^ua}QpfB+Zc8AH)GhxdBVC_w4}WVyOib(~G3_xZUkA*(CSzTG3}|Xj&dw1RwxVhC zv2Ecx5AxU+1A##Yzkk0NuWKRd$xe?MQe{g~S)ZzYHYnM8s#jx9AuHJt}NO*QjXqzQ| zb$aefVhnl(=t{RaWWU#YZHxn8sN%%fSRmLxd^H>&{J_HEygKKSoJ>M6OmP#ua#B<4 zrV2Sx;fc$Pg=%a4T#Os?W&4T{7gt8W;qa)g3j5&?;?KuzpFR~bt6CO7pK3pR_@l}1 zAX(T-Cgdvc5B>I&>Pcu&tHrG(#0^M}`qSijhUq07Tc^aqD%ECY73+8bEf1T8cK!+~fJi1cfVoztrJ> zA1D5qxdixk2;feEYi_k(ZM3r8y?=9CETdoXd~)#b&fN95#S8hhZ!RJXv%%+E@rqZz zV8Fp)NLdKkFpB^@CT!hw0&rA6UFzuR=>gZV9No&oA2qgEsk|5I|9g#EKW`X=#ADS`$EwpbfA*4!|4Ojo1DL$P`{D*(9yfseiH=U+=ZD3)wKv3PfB*hX!>ixMm9%?y zb`}{)TqqE*QrG}!y!+XBWmM7P|}0sNz`?w~O}Y9S1;seDUi^jKgKxcGZG{f2o=XA~NCE&!1}tr}ObI=P3<xDPnL6QXIGdGQKiO)Oh>m01Dt!+JTZ1s@ILZ44f*q{OP zmF3qhZ=ovFB9g8+g=lXSdA!7?RZ zuq^YxI;z+Q++^lb6V+=LQ+7_yrIi%4HPD<(dUbnzpnG6Ggd*77*@-d)qG3{MUIUa5 zgI?TpuWvc~Q4Xlk30#aqm2dlS;8_rqDiPIy%A4ggTkp9}{T*Fl(>{&dt6 z@|H7x!A19a)Ct;uJ^#ap4{OiCRwFWyN&(6!Lq$PhCP?Qi{2r{wcqM8yi16_af`(m0 z9Ba}$7gRHr7pOvgNGd1^eIk%}0&N_oqrR+i(JheBsR;do@HGRlnf;wTUU(HfIWc>A zJi`F&{(QHExp|W{Ts$abnLAdU;OT8LvCPO!eclHwxgy06_*12uYFPdh0{`75ypo7k v4Qrmhg)Acff0Ka{Rv@E~OWSYc=U-lbGUh4mnAxej0e-a9^i|7{Hevq@^moz> literal 0 HcmV?d00001 diff --git a/docs/src/images/ranking.png b/docs/src/images/ranking.png new file mode 100644 index 0000000000000000000000000000000000000000..0f324c4716f21833c4691599e654e21b33834899 GIT binary patch literal 124258 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 NjD(_isi=X^{{tmz_FMn} literal 0 HcmV?d00001 diff --git a/docs/src/images/sf_index.png b/docs/src/images/sf_index.png new file mode 100644 index 0000000000000000000000000000000000000000..a8009011a0aa05c326a2c6e91773d019c56474c1 GIT binary patch literal 84787 zcmb?@byQc~*7Z-iySoIWySp3d?vU<~mXMb2l$LIgMgi$Ak?!v9@8H$v-sk=MV+?g1 zJ!kKI)?Rz9IpN;K0skxd-f2O+smW`Q4+F#?+PE5Ykb}T-hG~#ic6#*CU0hs*H4+J>nBk|u0&`P9m z?yG;Ugu%n0{<(laq`>><0);Kc;-3qlF`@taQ0}YI^YZd?W$-^YNgx9cheCb&^r>;t zZGL6t^VFY#KPZ6#bL4)zKkn#oT>qh=?;&pW=b=t&VMyT^j#nTP6>IDLp;T6RN)>bS zEq`!mWfheI!apOUxH09v`cN&85(GTkW5W?K@8jcB*?zYtCHUu#NI0BvQ0LE?nHdh} zt)ZNpoLF;ZWo38wMqLJC%a^SJeuPrKg+hUTFlCQkuZ9r&#+#vp%|G9c`sM$9{~*Fh z3y>kg`K`Bo`|VbrG5UO?eKx0k*4Nmyw7Y$SXV3S4rwhV=c~vy`C6DcJOxk}2h(t@_ z`Ny&!KKqOPH4O+90ELG5pJf2Q!{AA={c}NLK{Ec&#s9B|f)Yo!c^y_d_ohp)59fOw zGp6AG%rOoIEF?%#Lu0n>dg=bC<@oCAO5koMPf_5OV&m`TE4{2XD3An(GJbc2_xNCU zx9R!m-tRnpneU_%9GU-OEQ{YOpZw2|Bs73;d~k4RS?qXzJjTbvd%CRj>*?){;9u{J z)}To|ZaqipVj}PTbGs162f#3-y^ag;jIAgARM`)w(SCCB@`Sq-Fk}o2M`Jmn3PsNO z(0^{v1p&5(X#%#kaoLxbk@0vff-z}ulRPtk(F5(nOUYKHUGKS@E{OaM$Yuo($kXHu_aqtfo!sjUKavX z;N)&M6N0!>@n4hu5coYRK8KBky*(o#r7I$@=LNO=uu(0((T)|%GIME;-6ofK)2fX{W6fb;I1jS}_By1>_C5pVL3;k{ia7YdVG@FATC^)rz8$Xmh*;@-8e17gtxGi*d=HCeYW3|$7%MmLl+|8ktPcE zjAy$=6Tk>!ysMAbs2v7YK=iYDad*->mtEx~GhSX^$+T>rtGOh49Uug>H#u)dT|7`X z&inKdx|^Dtx1W56fAi*zG9xgUE&W-%y(>y8S5#?nakX~2^8M5}o1UH?Jv%6rkR|oz zD7oPkh@|27QcKFpT33VdU*d^LZ&bN<{a*d7{{5iAlhdN>tPISJkIE0`AF_j6y7zZS>U+MR_zt$76?0r7m+}!N)18DW@lI1yJHYW zfr5q>e7u;nu57yk!brQ#PatPV`R$7_1RK$+m!VWzO_!(v)~*(!d@(F2@+GL{B*w%5 zo50C;+Kqm_?B{1@w%G{J>>WM2?e%cl3oPIUQtv^-SW!o3{^dm0V1HoV8Y8VMf#W{K zCldP%#JFw1IMIF&CceJyQM#tH$x2UKnRG?9B6rt0p4m`+2 z$(dDI?X_)S^#`Mrj)zS~cx;9;o>Tb7ccWRfm91yzqk0)%% z;Q`2*6{V%|QTQB2--E0xnzm+i?Ca+bf!W6qC4j`%ISU-Z&Ye6fpz8KWtr8|NQ^c;ZaJIl;YFQd(h*vjzB9{4bCgXDWh!GsTND0B1L{ zJu52<2(CbQ98G1Fe1LlXq*ZI4n4ByN{fa4=jqS6vbc_X#Xr#nCV9^$r-HC$(o8tWz zJ|bYM1?P=ERD`aI=Dia8(ef1!B5@_h^-h2AWm?+!goHZp+q0r9Pq=~M4=JD?l2@P= zYamn`USMKilHQU{Y%*Du`M^&l4Gj%FJ)i#9$tzq8u0HUi z=cO8zPZyJlJ%< zBc3{$uFp?QPWF^O0!B70mPL8|Ga_Iq0GABdNElUzjn7O^1HsK62np|&F^ms(cHTcf zUK{vaPLoSUc{36kvZP)eE$V1#r6wd$xcbZj0L|@qiQX=T!ejL#_CUAAo;BT|uL`(w z&f8GvNE<)V0%iFuK9A*gAN5kTJunjO7w84L!2?n`0FkG!4q>LSaMf&WZ2{PkFOl~$ z$cvK$`wJ|B|9ps*Z?w0!*T8+z^?K1g8wdbVL=5PY%gY8zN~HB25$j(+;d6#-klAf- zY^eIU%fkhJ8yg#As>zIvJv}7ohKZw~l1m{Wn)&sM#`P6S`M+LR@*!?g>l)H@!p=Erq@YIOXG180xS)f1=!Pe z+$lp8gZfoWGKsY1$+@|?$w}6la#b4lgP+x_*7%%u4<}v7@|5vk;l;<_s1zCss=s36 z=htfmwh+e>45faPb^mCpd5rfy4+43+vgowCP01>n3;5w3(!{ zw!SWT6%HXRq*PZ_R8(8*oZo9)jRHaXR2sW=&BnpOLxAK6-c|KG+PLd^?iP@T6ciRl znR5DCY|KcWp@PI%QxS43E%8Ah;}?VsY;`owoI)CfZQyuJT-;fa;A2?s7k_{M!otFf ziwo&xA8{UDUdyyCkEQ2J9Q%+i|MeT>LE1&?mP(vrSoVD1+n&FH!XsD6Au z%oQbz2+B>l5!mMX-*=LBW{rzQy(vK?6Oxxll%G7`8ot+uGCE#r^X=&P{Fy}5yE@pC z4aoo9fs$#<>zAIA9Nm5*N>hDTp#T7j&L=G?DZygU<(jw^T}xy|$Wt!P=Kzhvb;TT4 z5CWK!8U8;fGrtfDt059aAln`oS*F10MP@*+Pn9<)z zWBxbyAi=?rKp~&bB`b!Nm|j^ibar+I*ps7U^%T3!{ng>)%#K_NdQbLN#sF6ODnran1!CBT->e| zwC1%nnq4_<1u2Y!gM-2-$GSPE|6hxf&ZLUjRn zKy*7{|1)1RPkxEaFQ`0QARqydqNU|N{lb5C-{-J?wxqQ5xa0ZBavu^^*AopH8CzQ2P>*UJM3I ze2kg?Ky=DuZEa0UOPeDB9_stTApV?;PF&V>)L`MY^#V#9HDE6Rf)4PJmvoO!uYIxL zJjxHCS%6Rjp?IUbap|th5(z?>POHY$!eR$_W#w6S06&Dzo?Ok_CnqJbAUFd#&JV~F z(SlF!6%+4PpfIr>os4z%)1njKxNE?!|-(_09ey?P6!bhjL05h@VhJz ziPjMSodK~%Mh_%LTcq;-Lg^wWB%cxl>Sh9nKM1rkbo2QATVUV8oHBZ3!{hz67he_t zYO_p}gcIW8oB&kYdcEX@6e79@2Nn3O%6vG@;Q4Mg#tg*#s!-t%VtE+_=hGMc=nNM* zco7+tpf<1T64eq|bV?~bs_g)HhQ7YOn}_q!0yid`pH<)1PZt2Jsf_<&2kJ#Z`IFl+ zQb!c>tKI^>7GgFB=nz2qoSK=jV#5m{IdJ3kn=n%J_I~I92=WW!EG?DY<6%WaM10xC zPn=6B@$uw9zFPc!C=GtY$`7oaj(y{KeOm9N<(WJYpt_Fzp6>x7CC!kG4sqHGxI&tB z1uhOwj9YdPxAT@R06>5jt(@FVXjVuDJRHa%XXobtRe{oxW;G%(EHD zgH-hNhpF$f=BkWD0c3A$dsw1Ys_*ycTCMWS2kkA!BOrdHrKjHmz_jc5TDGldv$!Y= zjgi>*W|f%1>6Oq_zzgK`M*JPOMuc?mbJb<%4ONYB0B24~NWj3xE}Gp}QC9A@eHqXR zCgAIF`#l!D_SF15t!pMvQk1gPfA=gR7~{<(He1%a3Zw5un38Eupcx} z&IbE3xS4Vg0Qv_o*#v-9z%295=|GK?%Z)YiaaUK%!OQ zTW^%j2|2zSvGr9I7Uy~)w@FGo7zY2pwv5OW6*L5e1OQT^I{(2HX^5YPJG1SO= zKc>;H)935*wAm?g6K-HUk;~ZHD+nwp#7G3%zVLXe(hz72i(*su#Loyr7GwRenE@z_ zY8Vozq`2{9z8xpkt%IXsf@^xNcUnc!tWBxr-)ul6VKNSe zC2#L-78DOmV3>KN(dY~J!N_^jO(cS$thPU(#rDTIkHo(CW9dJePMd^D|6wv=uS`H408wSTMO{%!001 zQG6Q7*?679aodibJ1HPjAaj`zFuLeG`ndU(_Up`V^ZYvAYn)WKH*EHg`_AIR!dx*j zJqVA6c?%mZhMAKDX@yJOXHn7pMu3XL{__X3#m_CiWAyrNT40K(;bdVnHB3s(R0fTo zsqMULSoEj@=P*ggLbEMGkjZBa82@V_=3sQh7B|@anH*1kfIav}1}eX~3=B16BV%k2 zU2xByf+!jkJvT?5G&?2SaXhl9=!q(=#HQ5*U6ErLeXTayu09y_GG7Rp{w!MhH~! zbgs31*K%ml(K5Y(d2a@hR7OcVF`bCJSEH)t)+!g7D)|I^L#mJBY4aoz_|84VM>4&w zYi%7uxRQd(?91qzsFqe1TuSv1MDA-{v78t;|Gv|QbN`-s8k&4cE?5FaHavd(^fE7ALU#TUw_3#m3Z^>1?5}lL z*=5Nk`XIwj>;wtv80!!`-0GlNkU~5&k%%Q%cbe8OlI5gyb!_&8!J8@J$_o5lYXU zyK;SXs$S=dv)VHkHLbMoV&YI`ktlBZ!N*MZ4Gr2ITy}PBo~jrEtQua22?@0kYszd1 zE+`=3*9(r&G`<8~6CI!rKVL9Wu2=#UUb|5}S&KWlynH~HKZACVsv0Rv$_GLTU%|8Q z@O`ecq@Hb4=<}NTCu0w*0!28zzSB0m0y{sHR9|U8pt75=MCa}K_`CBOFCN0< zX&g8ApB}GLV+xy%mCw}T<7?K91R!BpRx4V@B#A%n`U0@?1qI}al~Lfek1rFaCK5OidkgCoJXa3Ms+1;M+14X`~;#JZ)#NY@wxNZ%K3(T5WBfVPhV3^?>#msavjq z#4HiSv#@=4kz(nZ*}r4Fme`G`qGF$!shqDp&1eoV*znwtj z?-slup~(MCD}j!|&c=?J%7^>r%?sYwBMHrV57xAkDzu z=Bs+PPF$3ucKo(yU(Iw}5X$=RJQaEg_;{2kph$^^1g-au*VT1~T|anheq^>da9fR) z919@|&n%kS+%D61Q;ByqD?fF}mW`Cfq;PXnTDV=m+_cB=>?fm4G7F@;4?a6Y?69kg<7u zoOOr(*HY$`Wf2~QGnL46&!hsW<561>Ey;^>cK4s%ESw{TS54}jjAaV9a?gV1Zkxq0 z^DA;=l2;q+G?)39z7}=GR^<7zvp!bbrdr`L0CvuY1wzHsu41SY|p7JH2P$lP|ZZ8ZR5tS~o3ATCmLxc$k%5of~%+qY%9ZwXH`9aRd5EsL>z1 zwd&{40=^sUx(}v8V?HcmJ`yCOS0r;YXaH8Uo9kjUh*WDY+45Mw=ii9|8=Rd|$U|%3 z?i<$5q?AM9h$Bv{k|A)^wCHm@gHuN2CTz6O7U9$_3#i}ElgrOUnrYB`5U>8D)r6wO zSa7|ei@3NXP3M5MwY9K(!(t}$xq=kKkqcKcnryy-wBuecVOYrVwrM@^2pJjK)~co< z-G>G)J+`#X##mW8oJLDjM5$AgvYk0=d9kDYo5;$}p)-pwKQBKmQce5{1>X(H+59q8 zlF$n^{2d@5DDV_M^#&d+MiB5)0s$%l3z7xNlONbd5rUA1ZNa{|cjTL!%A+_`z89$r zLlsE(ywHfezYg4p({ZVIi>RL_!ot?$5?R242LeHYgU7ord<_Lfc4K;p#qIYQ2eOnD zGWQ^^SidLqrdx9gpq2ynKMqvXZzbMfi+*)1X<8%n!)Q2na#a&J&fgwnyh$i;u@-_z7@ z^}h52`u(cnF$2Z>=?= z(ltJJ8JQ#AC_O)MIvv(ay)Zd|u1hD(osC#0RpZ$cMhGJtE<|;gGgrhccUZ-E)P1!R&D;1Y&{<&;_LL< ziDQF=QjPB*>J#v2{@{m)Z7GT1e@{1bC;^z#?FfM`L`&^sLLwxMSC2U=bT;Ej+ik=A zk2Nb>J*?&A%cN^0+~}(oYOwV5N*(pAx2ZY)Imat?ggb70HBIjfl1&uakHRA03eBza z2|fA*L~c=ke8?5Kh;7t*3Tz z?#AK%w}TFr#G#IiZ5SyQ9KNmpGUfMo$NEN#Jl%&9*mOeO#Al^CHrON%nlm{?3z?|$l_~SGlFKQo-ka`Eb?q_Fo z-oHvsD1N%#*!U=Z>JW?@S_j@;mPi|$ks(BH^gr>- z$fb&og)6j7i`>OEXZ;7MN+HSGYh3Yn?1J}nZ^6!UBl69IPFWt76z=!$q1+qhp$RX5 zti-PNMx}=B4W0}Sm^U^f3_$z{M&UzmZW(>SQM@ELB-)WzaKiJb{h=8g5lFi!Rf)M^ zqiv3St)EH64ej;W?JTtdrr?byi?Yc)AAjl<0=)zQFMSU$&J)R!O#7Ctx=>>0SdvOk z2#W#1dpr_MQIL>Y3e_Y2ldXQk@P?14T8ztHSB1Ue)dD&|u(C)Blc2iMHor_0PW^qRG`fKo~-SzaN8 zyR$)|=G)fu-$K{lD1!2akI3|Vt1|%(L!7aLptwxzgqin4wh+QGUj$u{SVu9nF4}vy%95Cp^l^>$P0Ye23%f6nr;ZJGqVh zqd%0|pjsK>-pl4mA)<2rx8fkT#1LWMDO|fO1JMUdryv|Eh{sJ-N#X*hT-kX!(8&aW z`4RcqaIHW)m{#h6V%^{rKOh^^+s2T(Tk7fip4oxE!a~)p=J|;OYxX8I8!aBa|`CHOKY8NpJ&?n>?g>0o^$S;_cRRa+g+j8*9mgE-Tcjg z(0+5E7>m%i`t~I1%eBzVc(E53oiv!ZxG)?N#?jaYVq2rpF&^l>Pzyj#UMgk&<#Vth zH*AI}4Ii;qcSfB-y=rnJOa<_E*OWHf!cGfF$9ZvQSO$t30gh$=T(^1id3 V>=1E=a(k_2Ldh>O{Cj2>wml6 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 PyJ#sfdC_uV1Hb=) + con_reference = @constraint(m, sum(all_coeffs[i]*all_vars[i] for i = 1:length(all_coeffs)) + constant >= 0) + elseif sense == :(==) + con_reference = @constraint(m, sum(all_coeffs[i]*all_vars[i] for i = 1:length(all_coeffs)) + constant == 0) + else + error("Constraint sense $(sense) not recognized") + end + + return ConstraintRef{JuMP.Model,FlexibilityConstraint}(m, length(flex_data.flexibility_constraints)) +end + +""" + JuMP.show(io::IO,c::FlexibilityConstraint) +Extend the `JuMP.show` function to handle `FlexibilityConstraint` types. +""" +function JuMP.show(io::IO,c::FlexibilityConstraint) + s = "$(string(c.flex_expr)) $(c.sense) 0" + return print(io,s) +end diff --git a/src/datatypes.jl b/src/datatypes.jl new file mode 100644 index 0000000..eb6169f --- /dev/null +++ b/src/datatypes.jl @@ -0,0 +1,148 @@ +""" + FlexibilityVariable <: JuMP.AbstractJuMPScalar +An abstract type to define new variable types. +""" +abstract type FlexibilityVariable <: JuMP.AbstractJuMPScalar end + +""" + RandomVariable <: FlexibilityVariable +A DataType for random variables. + +**Fields** +- `m::Model` Flexibility model. +- `idx::Int` Index of variable in model. +""" +struct RandomVariable <: FlexibilityVariable + m::Model + idx::Int +end + +""" + RecourseVariable <: FlexibilityVariable +A DataType for recourse variables. + +**Fields** +- `m::Model` Flexibility model. +- `idx::Int` Index of variable in model. +""" +struct RecourseVariable <: FlexibilityVariable + m::Model + idx::Int +end + +""" + FlexibilityExpr <: JuMP.GenericAffExpr +A `GenericAffExpr` that contains random and/or recourse variables. +""" +const FlexibilityExpr = JuMP.GenericAffExpr{AffExpr, Union{RandomVariable, RecourseVariable}} +FlexibilityExpr() = FlexibilityExpr(RandomVariable[], AffExpr[], AffExpr()) + + +""" + FlexibilityConstraint <: JuMP.AbstractConstraint +A constraint that contains random and/or recourse variables. + +**Fields** +- `flex_expr::FlexibilityExpr` Constraint expression. +- `sense::Symbol` The cosntraint sense symbol `:(<=)` or `:(>=)` or `:(==)`. +""" +mutable struct FlexibilityConstraint <: JuMP.AbstractConstraint + flex_expr::FlexibilityExpr + sense::Symbol # :(<=) or :(>=) or :(==), right-hand side assumed to be zero +end + +""" + AbstractUncertaintySet +An abstract type to define new uncertainty set types. +""" +abstract type AbstractUncertaintySet end + +""" + EllipsoidalSet <: AbstractUncertaintySet +An ellipsoidal uncertainty set that will use the covariance matrix stored in [`FlexibilityData`](@ref). + +**Fields** +- `name::Symbol` Name of the set which will be `:Ellipsoid`. +- `only_positive::Bool` An option to indicate if the set should be intersected with the set all positive numbers. +""" +mutable struct EllipsoidalSet <: AbstractUncertaintySet + name::Symbol + only_positive::Bool +end + +""" + HyperboxSet <: AbstractUncertaintySet +A hyperbox uncertainty set whose nomimal dimensions are determined by `neg_dev` and `pos_dev`. + +**Fields** +- `name::Symbol` Name of the set which will be `:Hyperbox`. +- `neg_dev::Vector{Number}` A vector of the expected negative deviation of the random variables. +- `pos_dev::Vector{Number}` A vector of the expected positive deviation of the random variables. +- `only_positive::Bool` An option to indicate if the set should be intersected with the set all positive numbers. +""" +mutable struct HyperboxSet <: AbstractUncertaintySet + name::Symbol + neg_dev::Vector{Number} + pos_dev::Vector{Number} + only_positive::Bool +end + +""" + PNormSet <: AbstractUncertaintySet +A p-norm based uncertainty set based on a bounded p-norm. + +**Fields** +- `name::Symbol` Name of the set which will be `:PNorm`. +- `p::Number` The value of p which can be 1, 2, or Inf. +- `only_positive::Bool` An option to indicate if the set should be intersected with the set all positive numbers. +""" +mutable struct PNormSet <: AbstractUncertaintySet + name::Symbol + p::Number + only_positive::Bool +end + +""" + FlexibilityData + +A DataType for storing the data necessary to manage the bookkeeping of the flexibility variables (`RandomVariable` +and `RecourseVariable`), the uncertainty set, and solution results. + +**Fields** + +- `flexibility_constraints::Vector{JuMP.AbstractConstraint}` Constraints that involve flexibility variables. +- `numRVs::Int` The number of `RandomVariable` that have been added to the model. +- `RVmeans::Vector{Number}` The means corresponding to each `RandomVariable`. +- `RVnames::Vector{AbstractString}` The symbolic name of each `RandomVariable`. +- `RVcols::Vector{Int}` The index of each `RandomVariable`. +- `num_recourse_vars::Int` The number of `RecourseVariable` that have been added to the model. +- `recourse_names::Vector{AbstractString}` The symbolic name of each `RecourseVariable`. +- `recourse_cols::Vector{Int}` The index of each `RecourseVariable`. +- `uncertainty_set::AbstractUncertaintySet` The uncertainty set DataType with all of the set specfic attributes. +- `covariance::Matrix{Number}` The covariance matrix. +- `flexibility_index::Union{Void, Number}` The flexibility index result obtained from solving the flexibility model. +- `active_constraints::Vector{Int}` The indexes of the active inequality constraints at the solution of the flexibility model. +""" +mutable struct FlexibilityData + flexibility_constraints::Vector{JuMP.AbstractConstraint} + + # Random variable data + numRVs::Int + RVmeans::Vector{Number} + RVnames::Vector{AbstractString} + RVcols::Vector{Int} + + # Recourse variable data + num_recourse_vars::Int + recourse_names::Vector{AbstractString} + recourse_cols::Vector{Int} + + # Various formulation data/results + uncertainty_set::AbstractUncertaintySet #e.g. ellipsoidal, 1-norm, 2-norm, etc... + covariance::Matrix{Number} + flexibility_index::Union{Void, Number} + active_constraints::Vector{Int} +end + +# Set methods to extract covariance information if appropriate +EllipsoidalSet() = EllipsoidalSet(:Ellipsoid, false) diff --git a/src/functions.jl b/src/functions.jl new file mode 100644 index 0000000..a4c46b8 --- /dev/null +++ b/src/functions.jl @@ -0,0 +1,291 @@ +""" + rankinequalities(m::Model; max_ranks::Int = 5, suppress_warnings::Bool = true, U::Int = 10000, diag::Bool = false, active_constr::Bool = false, real_recourse_dim::Int = -1, conic_δ::Bool = false) +Returns ranking data in the form `Vector{Dict}` where each dictionary corresponds to a particular rank level and +contains the optimal flexibility_index, active constraint indexes, and flexibility model. The function will iteratively +solve copies of the flexibility model via `solve` where the prior active constraints are turned off in order rank the most limiting +constraints. The user can specify the maximum number of rank levels and the flexibility index problem will be repeatedly +solved until that maximum is acheived or the problem becomes unbounded, which occurs first. + +**Arguments** +- `m::Model` The flexibility model. + +**Keyword Arguments** +- `max_ranks::Int = 5` The maximum number of rank levels. 2 +- `suppress_warnings::Bool = false` Indicates if solver warnings should be suppressed. +- `U::Union{Int, Float64} = 10000` The slack variable upper bound. +- `diag::Bool = false` Indicates whether or not to diagnonalize ellipsoidal uncertainty set (this is only active when an ellipsoidal set is used). +- `active_constr::Bool = false` Indicates if the optional active constraint should be used which enforces how many inequalities are active at the solution, this must be set to `true` for systems without control variables and/or contain state variables. +- `real_recourse_dim::Int = -1` The actual number of recourse variables in case state variables are included as recourse variables. This is mandatory if `active_constr = true` and no state variables are provided. +- `conic_δ::Bool = false` This should be set to `true` if a conic solver is used such as Pajarito.jl. + +```julia +julia> rankinequalities(m, active_constr = true) +2-element Array{Dict,1}: + Dict{String,Any}(Pair{String,Any}("flexibility_index", 3.59938),Pair{String,Any}("model", Feasibility problem with: + * 6 linear constraints + * 6 variables +Solver is Pavito),Pair{String,Any}("active_constraints", [3, 6])) + Dict{String,Any}(Pair{String,Any}("flexibility_index", 9.58983),Pair{String,Any}("model", Feasibility problem with: + * 6 linear constraints + * 6 variables +Solver is Pavito),Pair{String,Any}("active_constraints", [1, 5])) +``` +""" +function rankinequalities(m::Model; max_ranks::Int = 5, suppress_warnings::Bool = true, U::Int = 10000, diag::Bool = false, active_constr::Bool = false, real_recourse_dim::Int = -1, conic_δ::Bool = false) + # Check the max_ranks + if max_ranks < 1 + error("max_ranks set to $max_ranks, but must be an integer greater than 0.") + end + + # Initialize data + m_copy = deepcopy(m) + ranked_data = Vector{Dict}(max_ranks) + ranked_constrs = [] + inactives = [] + counter = 0 + + # Get the inequality information + constr_bounds = JuMP.prepConstrBounds(m_copy) + inequal_inds = find(constr_bounds[1] .!= constr_bounds[2]) + + # Iteratively solve the flexibility index problem and extract data + for i = 1:max_ranks + status = solve(m_copy, suppress_warnings = suppress_warnings, U = U, diag = diag, active_constr = active_constr, real_recourse_dim = real_recourse_dim, conic_δ = conic_δ, inactives = inactives) + if status == :Optimal + ranked_constrs = [find(inequal_inds .== getactiveconstraints(m_copy)[j])[1] for j = 1:length(getactiveconstraints(m_copy))] + inactives = unique([inactives; ranked_constrs]) + ranked_data[i] = Dict("flexibility_index" => getflexibilityindex(m_copy), "active_constraints" => getactiveconstraints(m_copy), "model" => m_copy) + counter += 1 + else + break + end + if length(inactives) == length(inequal_inds) + break + end + end + + # Return the results + return ranked_data[1:counter] +end + +""" + getconfidencelevel(m::Model) +Return the confidence level provided that the flexibility model `m` has been solved with an +ellipsoidal uncertainty set. This is equivalent to the quantile associated with the optimized +uncertainty set. Note that this assumes a multivariate Gaussian distribution with mean +`FlexibilityData.RVmeans` and covariance `FlexibilityData.covariance`. + +**Arguments** +- `m::Model` The flexibility model. + +```julia +julia> getconfidencelevel(m) +0.5370703369769008 +``` +""" +function getconfidencelevel(m::Model) + flex_data = getflexibilitydata(m) + if flex_data.uncertainty_set.name == :Ellipsoid && flex_data.flexibility_index != nothing + return cdf(Chisq(flex_data.numRVs), flex_data.flexibility_index) + elseif flex_data.flexibility_index == nothing + error("Cannot compute the confidence level without first solving the flexibility model.") + else + error("Invalid uncertainty set, must solve the flexibility model with an ellipsoidal set.") + end +end + +""" + findstochasticflexibility(m::Model; num_pts::Int = 10000, toler::Number = 1e-5, solver = Clp.ClpSolver(), only_positive::Bool = false, use_vulnerability_model::Bool = false, use_flexibility_index::Bool = false, seed::Int = -1) +Returns the estimated stochastic flexibility index that is evaluated via Monte Carlo sampling. At default +this estimation is carried out by evaluating the feasibility of each Monte Carlo sample. The samples are +generating from a multivariate Gaussian distribution with mean `FlexibilityData.RVmeans` and covariance +`FlexibilityData.covariance`. The vulnerability model also tests the feasibility of the samples, but does +so in one large optimization problem instead of evaluating each sample indiviually. The optimized flexibility +index can also be used to reduce the number of samples that need to be evaluated. + +**Arguments** +- `m::Model` The flexibility model. + +**Keyword Arguments** +- `num_pts::Int = 10000` Number of Monte Carlo samples. +- `toler::Number = 1e-5` The feasibility check tolerance. +- `solver = Clp.ClpSolver()` The solver, any LP or NLP solver should work. +- `only_positive::Bool = false` Indicates if only positive samples should be used. +- `use_vulnerability_model::Bool = false` Indicates if the vulnerability model should be used. +- `use_flexibility_index::Bool = false` Indicates if the optimal flexibility index should be used. +- `seed::Int = -1` Random seed for sample collection, any negative value will turn off the random seed. + +```julia +julia> findstochasticflexibility(m) +0.9687 + +julia> findstochasticflexibility(m, use_vulnerability_model = true) +0.9705 + +julia> findstochasticflexibility(m, num_pts = 5000, use_flexibility_index = true) +0.973 +``` +""" +function findstochasticflexibility(m::Model; num_pts::Int = 10000, toler::Number = 1e-5, solver = Clp.ClpSolver(), only_positive::Bool = false, use_vulnerability_model::Bool = false, use_flexibility_index::Bool = false, seed::Int = -1) + # Parse data + flex_data = getflexibilitydata(m) + + if length(flex_data.covariance) == 0 + error("The covariance matrix needs to be set.") + end + + # Load in the neceassary data + input_dict = MakeInputDict(m) + θ_nom = input_dict["theta_nom"] + + # Parse the necessary data dimensions + n_z = input_dict["dims"][1] + n_θ = input_dict["dims"][2] + n_x = input_dict["dims"][3] + n_f = input_dict["dims"][4] + n_h = input_dict["dims"][5] + + # Setup a multivariate normal distribution and Monte Carlo samples + if seed >= 0 + srand(seed) + end + d = MvNormal(Vector{Float64}(flex_data.RVmeans), Matrix{Float64}(getcovariance(m))) + if only_positive + samples = Array{Float64}(flex_data.numRVs, num_pts) + not_done = true + counter = 1 + while not_done + sample = rand(d, 1) + if all(sample .>= 0) + samples[:, counter] = sample + counter += 1 + end + if counter > num_pts + not_done = false + end + end + else + samples = rand(d, num_pts) + end + + # Determine which points are outside of the set and check for F + F = getflexibilityindex(m) + if use_flexibility_index && F == nothing + warn("Flexibility index hasn't yet been computed. Setting use_flexibility_index = false.") + use_flexibility_index = false + elseif use_flexibility_index && flex_data.uncertainty_set.name == :Ellipsoid + inv_covar = inv(getcovariance(m)) + outside_set = [(samples[:, k] - θ_nom)' * inv_covar * (samples[:, k] - θ_nom) > F for k = 1:num_pts] + elseif use_flexibility_index && flex_data.uncertainty_set.name == :PNorm + outside_set = [norm(samples[:, k] - θ_nom, flex_data.uncertainty_set.p) > F for k = 1:num_pts] + elseif use_flexibility_index && flex_data.uncertainty_set.name == :Hyperbox + outside_set = Vector{Bool}(num_pts) + for k = 1:num_pts + all_inside = true + for i = 1:flex_data.numRVs + if samples[i, k] < θ_nom[i] - flex_data.uncertainty_set.neg_dev[i] * F || samples[i, k] > θ_nom[i] + flex_data.uncertainty_set.pos_dev[i] * F + all_inside = false + end + end + outside_set[k] = !all_inside + end + end + + # Determine the points to test + if use_flexibility_index + test_pts = samples[:, outside_set] + num_test_pts = size(test_pts)[2] + else + num_test_pts = num_pts + test_pts = samples + end + + # Stop if all the test points are feasible. + if num_test_pts == 0 + return 1.0 + end + + # Setup the model to be solved + m_solve = Model(solver = solver) + + if use_vulnerability_model + # Initialize variables + @variable(m_solve, θ[1:n_θ, 1:num_test_pts]) + @variable(m_solve, u[1:num_test_pts] >= 0) + if n_z != 0 + @variable(m_solve, z[1:n_z, 1:num_test_pts]) + end + if n_x != 0 + @variable(m_solve, x[1:n_x, 1:num_test_pts]) + end + + # Set the objective + @objective(m_solve, Min, 1 / num_test_pts * sum(u[k] for k = 1:num_test_pts)) + + # Add the constraints + exprs = AddSystemExpressions(m_solve, input_dict, num_test_pts) + @constraint(m_solve, f[j = 1:n_f, k = 1:num_test_pts], exprs[1][j, k] <= u[k]) + if n_h != 0 + @constraint(m_solve, h[i = 1:n_h, k = 1:num_test_pts], exprs[2][i, k] == 0) + end + else + # Initialize variables + @variable(m_solve, θ[1:n_θ]) + @variable(m_solve, u) + if n_z != 0 + @variable(m_solve, z[1:n_z]) + end + if n_x != 0 + @variable(m_solve, x[1:n_x]) + end + + # Set the objective + @objective(m_solve, Min, u) + + # Add the constraints + exprs = AddSystemExpressions(m_solve, input_dict) + @constraint(m_solve, f[j = 1:n_f], exprs[1][j] <= u) + if n_h != 0 + @constraint(m_solve, h[i = 1:n_h], exprs[2][i] == 0) + end + end + + # Solve the model(s) and compute the SF + if use_vulnerability_model + for i = 1:n_θ + for k = 1:num_test_pts + JuMP.fix(θ[i, k], test_pts[i, k]) + end + end + status = solve(m_solve) + if status == :Optimal + return 1 - sum(getvalue(u) .>= toler) / num_pts + else + error("Problem not solved to optimality, cannot estimate SF.") + end + else + infeasible_counter = 0 + feasible_results = zeros(Bool, num_test_pts) + for k = 1:num_test_pts + for i = 1:n_θ + JuMP.fix(θ[i], test_pts[i, k]) + end + status = solve(m_solve) + if status == :Optimal + if getvalue(u) <= toler + feasible_results[k] = true + end + else + infeasible_counter += 1 + end + end + if infeasible_counter != 0 + warn("Not all scenario subproblems not solved to optimality, estmation of SF might not be correct.") + end + if use_flexibility_index + return (sum(feasible_results) + num_pts - num_test_pts) / (num_pts - infeasible_counter) + else + return sum(feasible_results) / (num_pts - infeasible_counter) + end + end +end diff --git a/src/macros.jl b/src/macros.jl new file mode 100644 index 0000000..adc881b --- /dev/null +++ b/src/macros.jl @@ -0,0 +1,141 @@ +using Base.Meta +if Pkg.installed("JuMP") >= v"0.18.4" + import JuMP.undef +end + +""" + @randomvariable(m, x, mean) +Defines a random variable using [`RandomVariable(m::Model, mean::Number, name::AbstractString)`](@ref) +and requires that a mean for the variable be provided. This can later be overwritten with [`setmean`](@ref). + +**Arguments** +- `m::Model` The flexibility model. +- `x::Symbol` The variable name. +- `mean::Number` The variable mean + +```julia +julia> @randomvariable(m2, w, mean = 42) + +julia> @randomvariable(m2, ws[i = 1:4], mean = 42) +4-element Array{FlexJuMP.RandomVariable,1}: + FlexJuMP.RandomVariable(Feasibility problem with: + * 9 linear constraints + * 89 variables + + julia> @randomvariable(m2, ws[i = 1:4], mean = [1; 2; 3; 4][i]) + 4-element Array{FlexJuMP.RandomVariable,1}: + FlexJuMP.RandomVariable(Feasibility problem with: + * 9 linear constraints + * 96 variables +``` +""" +macro randomvariable(m, x, mean) + m = esc(m) + kwsymbol = VERSION < v"0.6.0-dev.1934" ? :kw : :(=) # changed by julia PR #19868 + if isexpr(mean,kwsymbol) + @assert isexpr(mean,kwsymbol) && mean.args[1] == :mean + mean = esc(mean.args[2]) + end + + if isa(x,Symbol) + # easy case + return quote + $(esc(x)) = RandomVariable($m,$mean,$(string(x))) + nothing + end + else + if !isexpr(x,:ref) + error("Syntax error: Expected $var to be of form var[...]") + end + + variable = gensym() + refcall, idxvars, idxsets, idxpairs, condition = JuMP.buildrefsets(x, variable) + varname = JuMP.getname(x) + escvarname = esc(varname) + + varstr = :(string($(string(varname)),"[")) + for idxvar in idxvars + push!(varstr.args,:(string($(esc(idxvar))))) + push!(varstr.args,",") + end + deleteat!(varstr.args,length(varstr.args)) + push!(varstr.args,"]") + + code = :( $(refcall) = RandomVariable($m, $mean, $varstr ) ) + looped = JuMP.getloopedcode(variable, code, condition, idxvars, idxsets, idxpairs, :RandomVariable) + return quote + $looped + $escvarname = $variable + end + end +end + +""" + @recoursevariable(m, x) +Defines a recourse variable using [`RecourseVariable(m::Model, name::AbstractString)`](@ref). + +**Arguments** +- `m::Model` The flexibility model. +- `x::Symbol` The variable name. + +```julia +julia> @recoursevariable(m2, d) + +julia> @recoursevariable(m2, ds[1:4]) +4-element Array{FlexJuMP.RecourseVariable,1}: + FlexJuMP.RecourseVariable(Feasibility problem with: + * 9 linear constraints + * 101 variables +``` +""" +macro recoursevariable(m, x) + m = esc(m) + kwsymbol = VERSION < v"0.6.0-dev.1934" ? :kw : :(=) # changed by julia PR #19868 + + if isa(x,Symbol) + # easy case + return quote + $(esc(x)) = RecourseVariable($m,$(string(x))) + nothing + end + else + if !isexpr(x,:ref) + error("Syntax error: Expected $var to be of form var[...]") + end + + variable = gensym() + refcall, idxvars, idxsets, idxpairs, condition = JuMP.buildrefsets(x, variable) + varname = JuMP.getname(x) + escvarname = esc(varname) + + varstr = :(string($(string(varname)),"[")) + for idxvar in idxvars + push!(varstr.args,:(string($(esc(idxvar))))) + push!(varstr.args,",") + end + deleteat!(varstr.args,length(varstr.args)) + push!(varstr.args,"]") + + code = :( $(refcall) = RecourseVariable($m, $varstr ) ) + looped = JuMP.getloopedcode(variable, code, condition, idxvars, idxsets, idxpairs, :RecourseVariable) + return quote + $looped + $escvarname = $variable + end + end +end + +""" + JuMP.constructconstraint!(flex_aff::FlexibilityExpr, sense::Symbol) +Extends `JuMP.constructconstraint!` for `FlexibilityExpr` types. +""" +function JuMP.constructconstraint!(flex_aff::FlexibilityExpr, sense::Symbol) + if sense == :(<=) || sense == :≤ + return FlexibilityConstraint(flex_aff, :(<=)) + elseif sense == :(>=) || sense == :≥ + return FlexibilityConstraint(flex_aff, :(>=)) + elseif sense == :(==) + return FlexibilityConstraint(flex_aff, :(==)) + end + error("Unrecognized constraint type $sense") +end diff --git a/src/mean.jl b/src/mean.jl new file mode 100644 index 0000000..43aa2cf --- /dev/null +++ b/src/mean.jl @@ -0,0 +1,178 @@ +""" + ismeanfeasible(m::Model; [toler::Number = 1e-5, solver = Clp.ClpSolver()]) +Returns a `Bool` indicating if the mean stored in `FlexibilityData.RVmeans` is feasible, meaning that it +lies inside the feasible region. This check is done using the so-called feasibility function. + +**Arguments** +- `m::Model` The flexibility model. + +**Keyword Arguments** +- `toler::Number = 1e-5` The numerical tolerance for checking the feasibility. +- `solver = Clp.ClpSolver()` The solver, any LP or NLP solver shoudl work. + +```julia +julia> ismeanfeasible(m) +true + +julia> ismeanfeasible(m, solver = GurobiSolver(OutputFlag = 0)) +Academic license - for non-commercial use only +true +``` +""" +function ismeanfeasible(m::Model; toler::Number = 1e-5, solver = Clp.ClpSolver()) + # Make the input dictionary + input_dict = MakeInputDict(m) + + # Parse the necessary data dimensions + n_z = input_dict["dims"][1] + n_θ = input_dict["dims"][2] + n_x = input_dict["dims"][3] + n_f = input_dict["dims"][4] + n_h = input_dict["dims"][5] + + # Prepare the JuMP model + m_solve = Model(solver = solver) + + # Initialize variables + @variable(m_solve, θ[1:n_θ]) + @variable(m_solve, u) + if n_z != 0 + @variable(m_solve, z[1:n_z]) + end + if n_x != 0 + @variable(m_solve, x[1:n_x]) + end + + # Set the objective + @objective(m_solve, Min, u) + + # Fix θ and set values + for i = 1:n_θ + JuMP.fix(θ[i], input_dict["theta_nom"][i]) + end + + # Add the constraints + exprs = AddSystemExpressions(m_solve, input_dict) + @constraint(m_solve, f[j = 1:n_f], exprs[1][j] <= u) + if n_h != 0 + @constraint(m_solve, h[i = 1:n_h], exprs[2][i] == 0) + end + + # Solve and return + status = solve(m_solve) + return getvalue(u) <= toler +end + +""" + ComputeCenter(m::Model, center::Symbol, solver, toler::Number, only_positive::Bool) +Returns a center point that can be used to replace the mean if desired. + +**Arguments** +- `m::Model` The flexibility model. +- `center::Symbol` Indicates the type of center, accepted arguments are `:feasible` and `:analytic`. +- `solver` The solver which must be an NLP solver for the analytic center. +- `toler::Number` The tolerance to check solution validity. +- `only_positive::Bool` Indicates if the center need by strictly positive. +""" +function ComputeCenter(m::Model, center::Symbol, solver, toler::Number, only_positive::Bool) + # Check input + if center != :analytic && center != :feasible + error("Invalid argument center = $center, must be :analytic or :feasible") + end + + # Make the input dictionary + input_dict = MakeInputDict(m) + + # Parse the necessary data dimensions + n_z = input_dict["dims"][1] + n_θ = input_dict["dims"][2] + n_x = input_dict["dims"][3] + n_f = input_dict["dims"][4] + n_h = input_dict["dims"][5] + + # Prepare the JuMP model + m_solve = Model(solver = solver) + + # Initialize variables + if only_positive + @variable(m_solve, θ[1:n_θ] >= 0) + else + @variable(m_solve, θ[1:n_θ]) + end + if center == :feasible + @variable(m_solve, u) + else + @variable(m_solve, s[1:n_f] >= 0) + end + if n_z != 0 + @variable(m_solve, z[1:n_z]) + end + if n_x != 0 + @variable(m_solve, x[1:n_x]) + end + + # Set objective + if center == :feasible + @objective(m_solve, Min, u) + else + @NLobjective(m_solve, Min, -sum(log(s[i]) for i = 1:n_f)) + end + + # Add constraints + exprs = AddSystemExpressions(m_solve, input_dict) + if center == :feasible + @constraint(m_solve, f[j = 1:n_f], exprs[1][j] <= u) + else + @constraint(m_solve, f[j = 1:n_f], exprs[1][j] + s[j] == 0) + end + if n_h != 0 + @constraint(m_solve, h[i = 1:n_h], exprs[2][i] == 0) + end + + # Solve and return + status = solve(m_solve) + if center == :feasible && getvalue(u) > toler + warn("Optimized mean is not feasible, can only achieve inequalities with upper bound u = ", getvalue(u)) + end + return getvalue(θ) +end + +""" + findcenteredmean(m::Model; [center::Symbol = :feasible, solver = Ipopt.IpoptSolver(print_level = 0), toler::Number = 1e-5, update_mean::Bool = false, only_positive::Bool = false]) +Returns a center point based on the analytic or feasible center. The result can overwrite the mean stored in `FlexibilityData.RVmeans` +if desired. This is a wrapper function for [`ComputeCenter`](@ref). + +**Arguments** +- `m::Model` The flexibility model. + +**Keyword Arguments** +- `center::Symbol = :feasible` Indicates the type of center, accepted arguments are `:feasible` and `:analytic`. +- `solver = Ipopt.IpoptSolver(print_level = 0)` The solver which must be an NLP solver for the analytic center. +- `toler::Number = 1e-5` The tolerance to check solution validity. +- `update_mean::Bool = false` Indicates if the computed center should overwrite `FlexibilityData.RVmeans`. +- `only_positive::Bool = false` Indicates if the center need by strictly positive. + +```julia +julia> findcenteredmean(m, only_positive = true) +4-element Array{Float64,1}: + 1684.74 + 79.0718 + 195.073 + 0.0 + +julia> findcenteredmean(m, center = :analytic, update_mean = true) +4-element Array{Float64,1}: + 898.125 + -507.214 + 594.544 + 317.23 +``` +""" +function findcenteredmean(m::Model; center::Symbol = :feasible, solver = Ipopt.IpoptSolver(print_level = 0), toler::Number = 1e-5, update_mean::Bool = false, only_positive::Bool = false) + center = ComputeCenter(m, center, solver, toler, only_positive) # included in functions.jl + if update_mean + flex_data = getflexibilitydata(m) + flex_data.RVmeans = center + end + return center +end diff --git a/src/model.jl b/src/model.jl new file mode 100644 index 0000000..635d1ee --- /dev/null +++ b/src/model.jl @@ -0,0 +1,173 @@ +""" + FlexibilityModel(; [solver = JuMP.UnsetSolver()]) +Return a flexibility model object which extends a JuMP model object to contain [`FlexibilityData`](@ref) and implement +a custom solvehook. An appropriate solver should be specified in order solve the flexibility index problem. A +solver capable of handling MIQCPs is required for ellipsoidal and 2-norm uncertainty sets otherwise a MILP solver +can be used. This model is solved with `solve`, see [`solvehook`](@ref) for documention on the accepted keyword arguments. + +**Arguments** +- `solver = JuMP.UnsetSolver()` The solver, should use an MIQCP, MINLP, or MILP solver as appropriate. + +```julia +julia> m = FlexibilityModel(solver = GurobiSolver()) +Feasibility problem with: + * 0 linear constraints + * 0 variables +Solver is Gurobi +``` +""" +function FlexibilityModel(;solver = JuMP.UnsetSolver()) + m = Model(solver = solver) + m.solvehook = solvehook #solvehook is defined in solve.jl + m.ext[:FlexData] = FlexibilityData(FlexibilityConstraint[], 0, Float64[], String[], Int[], 0, String[], Int[], EllipsoidalSet(), Matrix(0, 0), nothing, Int[]) + return m +end + +""" + getflexibilitydata(m::Model) +Return the [`FlexibilityData`](@ref) corresponding the flexibility model `m`. An error is thrown if `m` is a +regular JuMP model. + +**Arguments** +- `m::Model` The flexibility model. + +```julia +julia> getflexibilitydata(m) +FlexJuMP.FlexibilityData(JuMP.AbstractConstraint[], 0, Number[], AbstractString[], Int64[], 0, AbstractString[], Int64[], FlexJuMP.EllipsoidalSet(:Ellipsoid, false), Array{Number}(0,0), nothing, Int64[]) +``` +""" +function getflexibilitydata(m::Model) + if haskey(m.ext,:FlexData) + return m.ext[:FlexData] + else + error("This functionality is only available for Flexibility models") + end +end + +""" + getuncertaintyset(m::Model) +Return the current uncertainty set datatype in the flexibility modelas stored in `FlexibilityData.uncertaintyset`. + +**Arguments** +- `m::Model` The flexibility model. +""" +getuncertaintyset(m::Model) = getflexibilitydata(m).uncertainty_set + +""" + getcovariance(m::Model) +Return the current covariance matrix in the flexibility model as stored in `FlexibilityData.covariance`. + +**Arguments** +- `m::Model` The flexibility model. + +```julia +julia> getcovariance(m) +4×4 Array{Number,2}: + 11.11 0.0 0.0 0.0 + 0.0 11.11 0.0 0.0 + 0.0 0.0 11.11 0.0 + 0.0 0.0 0.0 11.11 +``` +""" +getcovariance(m::Model) = getflexibilitydata(m).covariance + +""" + getmean(m::Model) +Return the current mean vector in the flexibility model as stored in `FlexibilityData.RVmeans`. + +**Arguments** +- `m::Model` The flexibility model. + +```julia +julia> getmean(m) +4-element Array{Number,1}: + 620 + 388 + 583 + 313 +``` +""" +getmean(m::Model) = getflexibilitydata(m).RVmeans + +""" + getflexibilityindex(m::Model) +Return the current flexibility index in the flexibility model as stored in `FlexibilityData.flexibility_index`. + +**Arguments** +- `m::Model` The flexibility model. + +```julia +julia> getflexibilityindex(m) +3.5993764186390327 +``` +""" +getflexibilityindex(m::Model) = getflexibilitydata(m).flexibility_index + +""" + getactiveconstraints(m::Model) +Return the current vector of active constraint indexes in the flexibility model as stored in `FlexibilityData.active_constraints`. + +**Arguments** +- `m::Model` The flexibility model. + +```julia +julia> getactiveconstraints(m) +2-element Array{Int64,1}: + 3 + 6 +``` +""" +getactiveconstraints(m::Model) = getflexibilitydata(m).active_constraints + +""" + setcovariance(m::Model, covariance::Matrix) +Specify the covariance matrix `covariance` to be stored in the flexibility model `m`. This method verifies that +the matrix is symmetric positive semi-definite and writes it to `FlexibilityData.covariance`. + +**Arguments** +- `m::Model` The flexibility model. +- `covariance::Matrix` The covariance matrix. + +```julia +julia> setcovariance(m, [2 1; 1 2]) +2×2 Array{Int64,2}: + 2 1 + 1 2 +``` +""" +function setcovariance(m::Model, covariance::Matrix) + # Run checks on the covairance matrix before using it + n_row,ncol = size(covariance) + n_row == ncol || error("Covariance matrix should be square") + issymmetric(covariance) || error("Covariance matrix should be symmetric") + all(eig(covariance)[1] .>= 0) || error("Covariance matrix is not positive semi-definite") + + # Set the covariance matrix + flex_data = getflexibilitydata(m) + flex_data.covariance = covariance +end + +""" + setmean(m::Model, mean::Union{Vector{Float64}, Vector{Int}}) +Specify the mean corresponding to `FlexibilityData.RVmeans` stored in the flexibility model `m`. This method verifies that +the length of the input `mean` matches the length of `FlexibilityData.RVmeans` before overwriting the current mean. + +**Arguments** +- `m::Model` The flexibility model. +- `mean::Union{Vector{Float64}, Vector{Int}}` The means of the random variables. + +```julia +setmean(m, [2.3; 5]) +2-element Array{Float64,1}: + 2.3 + 5.0 +``` +""" +function setmean(m::Model, mean::Union{Vector{Float64}, Vector{Int}}) + flex_data = getflexibilitydata(m) + if length(flex_data.RVmeans) == length(mean) + flex_data.RVmeans = mean + else + error("The length of the specified mean doesn't match the current mean length.") + end +end diff --git a/src/operators.jl b/src/operators.jl new file mode 100644 index 0000000..9a273ac --- /dev/null +++ b/src/operators.jl @@ -0,0 +1,44 @@ +import Base: +, -, /, *, <=, >= + +# Random Normal Variable +(+)(lhs::FlexibilityVariable,rhs::FlexibilityVariable) = FlexibilityExpr([lhs,rhs],[1.0,1.0],0.0) +(-)(lhs::FlexibilityVariable,rhs::FlexibilityVariable) = FlexibilityExpr([lhs,rhs],[1.0,-1.0],0.0) +(/)(lhs::FlexibilityVariable,rhs::Number) = FlexibilityExpr([lhs],[1/rhs],0.0) +(-)(rhs::FlexibilityVariable) = FlexibilityExpr([rhs],[-1.0],0.0) + +for op in (:+, :-, :*) + @eval begin + ($op)(lhs::Number, rhs::FlexibilityVariable) = ($op)(lhs, FlexibilityExpr([rhs],[1.0],0.0)) + ($op)(lhs::Variable, rhs::FlexibilityVariable) = ($op)(convert(AffExpr,lhs),rhs) + ($op)(lhs::Variable, rhs::FlexibilityExpr) = ($op)(convert(AffExpr,lhs),rhs) + end + if op == :- + @eval ($op)(lhs::FlexibilityExpr, rhs::Variable) = (+)(lhs,-rhs) + @eval ($op)(lhs::FlexibilityVariable, rhs::Union{Variable,Number}) = (+)(lhs,-rhs) + else + @eval ($op)(lhs::FlexibilityVariable, rhs::Union{Variable,Number}) = ($op)(rhs,lhs) + @eval ($op)(lhs::FlexibilityExpr, rhs::Variable) = ($op)(rhs,lhs) + end +end + +# AffExpr +# AffExpr--FlexibilityVariable +(+)(lhs::AffExpr, rhs::FlexibilityVariable) = FlexibilityExpr([rhs],[convert(AffExpr,1.0)],lhs) +(-)(lhs::AffExpr, rhs::FlexibilityVariable) = FlexibilityExpr([rhs],[convert(AffExpr,-1.0)],lhs) +(*)(lhs::AffExpr, rhs::FlexibilityVariable) = FlexibilityExpr([rhs],[lhs],AffExpr()) +(+)(lhs::FlexibilityVariable, rhs::AffExpr) = rhs+lhs +(-)(lhs::FlexibilityVariable, rhs::AffExpr) = (+)(lhs,-rhs) +(*)(lhs::FlexibilityVariable, rhs::AffExpr) = rhs*lhs + +# AffExpr--FlexibilityExpr +(+)(lhs::AffExpr,rhs::FlexibilityExpr) = convert(FlexibilityExpr,lhs)+rhs +(+)(lhs::FlexibilityExpr,rhs::AffExpr) = rhs+lhs +(-)(lhs::AffExpr,rhs::FlexibilityExpr) = convert(FlexibilityExpr,lhs)-rhs +(-)(lhs::FlexibilityExpr,rhs::AffExpr) = lhs-convert(FlexibilityExpr,rhs) +Base.promote_rule(::Type{AffExpr},::Type{FlexibilityExpr}) = FlexibilityExpr +Base.promote_rule(::Type{Float64},::Type{FlexibilityExpr}) = FlexibilityExpr +Base.convert(::Type{FlexibilityExpr},a::AffExpr) = FlexibilityExpr(FlexibilityVariable[],AffExpr[],a) + +# AffExpr--FlexibilityExpr +(*)(lhs::AffExpr,rhs::FlexibilityExpr) = FlexibilityExpr(rhs.vars, [lhs*c for c in rhs.coeffs], lhs*rhs.constant) +(*)(lhs::FlexibilityExpr,rhs::AffExpr) = rhs*lhs diff --git a/src/solve.jl b/src/solve.jl new file mode 100644 index 0000000..f11e840 --- /dev/null +++ b/src/solve.jl @@ -0,0 +1,415 @@ +import MathProgBase + +""" + solvehook(m::Model; [suppress_warnings::Bool = false, U::Union{Int, Float64} = 10000, diag::Bool = false, active_constr::Bool = false, real_recourse_dim::Int = -1, conic_δ::Bool = false, inactives::Vector = []]) +Returns the solution status to solving the flexibility model `m`. This solvehook what `JuMP.solve(::Model)` for flexibility models. +This solves the flexibility index problem using the variables and constraints specified in `m`. + +**Arguments** +- `m::Model` The flexibility model. + +**Keyword Arguments** +- `suppress_warnings::Bool = false` Indicates if solver warnings should be suppressed. +- `U::Union{Int, Float64} = 10000` The slack variable upper bound. +- `diag::Bool = false` Indicates if the ellipsoidal uncertainty set is diagonalized (this is only active when an ellipsoidal set is used). +- `active_constr::Bool = false` Indicates if the optional active constraint should be used which enforces how many inequalities are active at the solution, this must be set to `true` for systems without control variables and/or contain state variables. +- `real_recourse_dim::Int = -1` The actual number of recourse variables in case state variables are included as recourse variables. This is mandatory if `active_constr = true` and no state variables are provided. +- `conic_δ::Bool = false` This should be set to `true` if a conic solver is used such as Pajarito.jl. +- `inactives::Vector = []` The indexes of inequality constraints that should be turned off. +""" +function solvehook(m::Model; suppress_warnings::Bool = false, U::Union{Int, Float64} = 10000, diag::Bool = false, active_constr::Bool = false, + real_recourse_dim::Int = -1, conic_δ::Bool = false, inactives::Vector = []) + + # Pull in the constraint data from the JuMP model + flex_data = getflexibilitydata(m) + + # Read in the data and extract it from the dictionary + input_dict = MakeInputDict(m) + fConsts = input_dict["fConsts"] + fControls = input_dict["fControls"] + fRandoms = input_dict["fRandoms"] + fStates = input_dict["fStates"] + hConsts = input_dict["hConsts"] + hControls = input_dict["hControls"] + hRandoms = input_dict["hRandoms"] + hStates = input_dict["hStates"] + θ_nom = input_dict["theta_nom"] + n_z = input_dict["dims"][1] + n_θ = input_dict["dims"][2] + n_x = input_dict["dims"][3] + n_f = input_dict["dims"][4] + n_h = input_dict["dims"][5] + if n_x != 0 + state_cols = input_dict["state_cols"] + end + inequal_inds = input_dict["inequal_inds"] + + # Check that U is sufficiently large + if maximum(abs.(fConsts)) >= U + warn("The slack upper bound (U) value of $U is too low for this problem. Thus, U is being set to ", 10 ^ ceil(log10(maximum(abs.(fConsts)))), "!") + U = 10 ^ ceil(log10(maximum(abs.(fConsts)))) + end + + # Inilialize the JuMP model to solve the MICP Problem + m_solve = Model(solver = m.solver) + + # Initialize the variables + @variable(m_solve, θ[1:n_θ]) + @variable(m_solve, δ >= 0) + @variable(m_solve, s[1:n_f] >= 0) + @variable(m_solve, y[1:n_f], Bin) + if n_z != 0 + @variable(m_solve, z[1:n_z]) + @variable(m_solve, λ[1:n_f] >= 0) + if n_h != 0 + @variable(m_solve, μ[1:n_h]) + end + end + if n_x != 0 + @variable(m_solve, x[1:n_x]) + end + + # Set objective function + @objective(m_solve, Min, δ) + + # Turn off constraints that are set to be inactive + if length(inactives) != 0 + for i = 1:length(inactives) + JuMP.fix(y[inactives[i]], 0) + end + end + + # Add slack variable constraints + @constraint(m_solve, sUyconst[j = 1:n_f], s[j] - U * (1 - y[j]) <= 0) + + # Add active set contraint + if real_recourse_dim != -1 + active_constr = true + end + if active_constr || n_x != 0 || n_z == 0 + if !active_constr + warn("Problem requires use of active set constraint. Setting active_constr = true") + end + if real_recourse_dim == -1 + real_recourse_dim = n_z + if n_h != 0 && n_x == 0 + warn("real_recourse_dim not specified. Setting real_recourse_dim to ", n_z) + end + end + @constraint(m_solve, sum(y[j] for j = 1:n_f) == real_recourse_dim + 1) + end + + # Add system constraints + exprs = AddSystemExpressions(m_solve, input_dict) + if length(inactives) != 0 + actives = deleteat!(Vector(1:n_f), sort(inactives)) + @constraint(m_solve, f[j = actives], exprs[1][j] + s[j] == 0) + else + @constraint(m_solve, f[j = 1:n_f], exprs[1][j] + s[j] == 0) + end + if n_h != 0 + @constraint(m_solve, h[i = 1:n_h], exprs[2][i] == 0) + end + + # Add stationary conditions + if n_z != 0 + @constraint(m_solve, sum(λ[j] for j = 1:n_f) == 1) + if n_h != 0 + @constraint(m_solve, deriv[i = 1:n_z], sum(λ[j] * fControls[j, i] for j = 1:n_f) + sum(μ[j] * hControls[j, i] for j = 1:n_h) == 0) + else + @constraint(m_solve, deriv[i = 1:n_z], sum(λ[j] * fControls[j, i] for j = 1:n_f) == 0) + end + end + + # Add binary variable constraints + if n_z != 0 + @constraint(m_solve, lyconst[j = 1:n_f], λ[j] - y[j] <= 0) + end + + ## Setup the uncertainty set + # Add hyperbox contraints if specified + sqrt_δ = false + if flex_data.uncertainty_set.name == :Hyperbox + if length(flex_data.uncertainty_set.pos_dev) != n_θ + error("The dimensions of random variables and the uncertainty set do not match.") + end + @constraint(m_solve, upper[i = 1:n_θ], θ[i] <= θ_nom[i] + flex_data.uncertainty_set.pos_dev[i] * δ) + @constraint(m_solve, lower[i = 1:n_θ], θ[i] >= θ_nom[i] - flex_data.uncertainty_set.neg_dev[i] * δ) + + # Add p-norm constraints if specified + elseif flex_data.uncertainty_set.name == :PNorm + p = flex_data.uncertainty_set.p + if p == 1 + @variable(m_solve, aux[1:n_θ] >= 0) + @constraint(m_solve, abs_upper[i = 1:n_θ], aux[i] >= θ[i] - θ_nom[i]) + @constraint(m_solve, abs_lower[i = 1:n_θ], aux[i] >= -(θ[i] - θ_nom[i])) + @constraint(m_solve, sum(aux[i] for i = 1:n_θ) <= δ) + elseif p == 2 + @constraint(m_solve, sum((θ - θ_nom)[i]^2 for i = 1:n_θ) <= δ) + sqrt_δ = true + else + @variable(m_solve, aux[1:n_θ] >= 0) + @variable(m_solve, max_aux >= 0) + @constraint(m_solve, abs_upper[i = 1:n_θ], aux[i] >= θ[i] - θ_nom[i]) + @constraint(m_solve, abs_lower[i = 1:n_θ], aux[i] >= -(θ[i] - θ_nom[i])) + @constraint(m_solve, maxs[i = 1:n_θ], max_aux >= aux[i]) + @constraint(m_solve, max_aux <= δ) + end + + # Add constraints for diagonalized region + elseif diag && n_θ > 1 + covar = getcovariance(m) + if n_θ != size(covar)[1] + error("The dimensions of the covariance matrix and the random variables do not match.") + end + D, V = eig(inv(covar)) + @variable(m_solve, w[1:n_θ]) + @constraint(m_solve, ws[i = 1:n_θ], w[i] == sqrt(D[i]) * sum(V[j, i] * (θ - θ_nom)[j] for j = 1:n_θ)) + if conic_δ + @constraint(m_solve, sum(w[i] * w[i] for i = 1:n_θ) <= δ^2) + else + @constraint(m_solve, sum(w[i] * w[i] for i = 1:n_θ) <= δ) + end + + # Add constraint for normal undiagonalized region + elseif n_θ > 1 + covar = getcovariance(m) + if n_θ != size(covar)[1] + error("The dimensions of the covariance matrix and the random variables do not match.") + end + inv_covar = inv(covar) + if conic_δ + @constraint(m_solve, sum(sum((θ - θ_nom)[j] * inv_covar[j, i] * (θ - θ_nom)[i] for j = 1:n_θ) for i = 1:n_θ) <= δ^2) + else + @constraint(m_solve, sum(sum((θ - θ_nom)[j] * inv_covar[j, i] * (θ - θ_nom)[i] for j = 1:n_θ) for i = 1:n_θ) <= δ) + end + + # Add constraint for speical case that there is only 1 random variable + else + covar = getcovariance(m) + if n_θ != size(covar)[1] + error("The dimensions of the covariance matrix and the random variables do not match.") + end + if isa(covar, Array) + if conic_δ + @constraint(m_solve, (θ[1] - θ_nom[1]) * (1 / covar[1]) * (θ[1] - θ_nom[1]) <= δ^2) + else + @constraint(m_solve, (θ[1] - θ_nom[1]) * (1 / covar[1]) * (θ[1] - θ_nom[1]) <= δ) + end + else + if conic_δ + @constraint(m_solve, (θ[1] - θ_nom) * (1 / covar) * (θ[1] - θ_nom) <= δ^2) + else + @constraint(m_solve, (θ[1] - θ_nom) * (1 / covar) * (θ[1] - θ_nom) <= δ) + end + end + end + + # Enforce the intersection of the traditional set with the positive θ set + if flex_data.uncertainty_set.only_positive + @constraint(m_solve, pos_theta[i = 1:n_θ], θ[i] >= 0) + end + + # Solve the model + status = solve(m_solve, suppress_warnings = suppress_warnings, ignore_solve_hook = true) + + if status == :Optimal + # Parse the optimized random variable values + theta = getvalue(θ) + for i = 1:n_θ + setvalue(Variable(m, flex_data.RVcols[i]), theta[i]) + end + + # Parse the optimized recourse variable values + if n_z != 0 + recourse = getvalue(z) + for i = 1:n_z + setvalue(Variable(m, flex_data.recourse_cols[i]), recourse[i]) + end + end + + # Parse the optimized recourse variable values + if n_x != 0 + state = getvalue(x) + for i = 1:n_x + setvalue(Variable(m, state_cols[i]), state[i]) + end + end + + # Parse the active active constraints + active_inds = find(abs.(getvalue(y) - 1) .<= 1e-4) + flex_data.active_constraints = inequal_inds[active_inds] + + # Save the flexibility index + if sqrt_δ + flex_data.flexibility_index = sqrt(getobjectivevalue(m_solve)) + elseif flex_data.uncertainty_set.name == :Ellipsoid && conic_δ + flex_data.flexibility_index = getobjectivevalue(m_solve)^2 + else + flex_data.flexibility_index = getobjectivevalue(m_solve) + end + end + + return status +end + +""" + MakeInputDict(m::Model) +Returns `input_dict::Dict` which contains the state space representation of the system equations stored in +the flexibility model. The resulting `input_dict` is used by most of the flexibility analysis functions. + +**Arguments** +- `m::Model` The flexibility model. +""" +function MakeInputDict(m::Model) + # Pull in the constraint data from the JuMP model + flex_data = getflexibilitydata(m) + constr_coeffs = JuMP.prepConstrMatrix(m) #A coefficients + constr_bounds = JuMP.prepConstrBounds(m) #A lower and A upper + + # Determine which constraints are inequalities and equalities + equal_inds = find(constr_bounds[1] .== constr_bounds[2]) + inequal_inds = find(constr_bounds[1] .!= constr_bounds[2]) + + # Parse the problem dimensions + n_f = length(inequal_inds) + n_h = length(equal_inds) + n_θ = flex_data.numRVs + n_z = flex_data.num_recourse_vars + n_x = size(constr_coeffs)[2] - n_θ - n_z + + # Check inequality directions and adjust as necessary + reversed_inds = find(constr_bounds[2] .== Inf) + constr_coeffs[reversed_inds, :] *= -1 + constr_bounds[2][reversed_inds] = -constr_bounds[1][reversed_inds] + constr_bounds[1][reversed_inds] = -Inf + + # Parse the coefficent matrices needed for the flexibility index problem + fConsts = -constr_bounds[2][inequal_inds] + hConsts = -constr_bounds[2][equal_inds] + fRandoms = constr_coeffs[inequal_inds, flex_data.RVcols] + hRandoms = constr_coeffs[equal_inds, flex_data.RVcols] + if n_z != 0 + fControls = constr_coeffs[inequal_inds, flex_data.recourse_cols] + hControls = constr_coeffs[equal_inds, flex_data.recourse_cols] + else + fControls = 0 + hControls = 0 + end + if n_x != 0 + num_vars = n_x + n_z + n_θ + var_cols = collect(1:num_vars) + state_cols = var_cols[BitArray(!contains(==, flex_data.RVcols, var_cols[i]) && !contains(==, flex_data.recourse_cols, var_cols[i]) for i = 1:num_vars)] + fStates = constr_coeffs[inequal_inds, state_cols] + hStates = constr_coeffs[equal_inds, state_cols] + else + fStates = 0 + hStates = 0 + end + + # Get the mean + θ_nom = flex_data.RVmeans + + # Make the input dictionary + input_dict = Dict("fConsts" => fConsts, "fControls" => fControls, "fRandoms" => fRandoms, "fStates" => fStates, + "hConsts" => hConsts, "hControls" => hControls, "hRandoms" => hRandoms, "hStates" => hStates, + "theta_nom" => θ_nom, "dims" => [n_z; n_θ; n_x; n_f; n_h], "inequal_inds" => inequal_inds) + if n_x != 0 + input_dict["state_cols"] = state_cols + end + return input_dict +end + +""" + AddSystemExpressions(m::Model, input_dict::Dict, [num_scenarios::Int = 0]) +Returns a vector of vectors where the first contains all the inequality expressions corresponding +to the inequalities defined in `input_dict` and the second contains all of the equality expressions +corresponding to the equalities defined in `input_dict`. + +**Arguments** +- `m::Model` The flexibility model. +- `input_dict::Dict` Input dictionary as defined by [`MakeInputDict`](@ref). +- `num_scenarios::Int = 0` The number of scenerio subproblems, 0 turns off this feature. +""" +function AddSystemExpressions(m::Model, input_dict::Dict, num_scenarios::Int = 0) + # Extract information + fConsts = input_dict["fConsts"] + fControls = input_dict["fControls"] + fRandoms = input_dict["fRandoms"] + fStates = input_dict["fStates"] + hConsts = input_dict["hConsts"] + hControls = input_dict["hControls"] + hRandoms = input_dict["hRandoms"] + hStates = input_dict["hStates"] + n_z = input_dict["dims"][1] + n_θ = input_dict["dims"][2] + n_x = input_dict["dims"][3] + n_f = input_dict["dims"][4] + n_h = input_dict["dims"][5] + + # Make the expressions + if num_scenarios == 0 + if n_z != 0 + if n_x != 0 + @expression(m, fexpr[j = 1:n_f], fConsts[j] + sum(fControls[j, i] * m[:z][i] for i = 1:n_z) + sum(fRandoms[j, i] * m[:θ][i] for i = 1:n_θ) + + sum(fStates[j, i] * m[:x][i] for i = 1:n_x)) + if n_h != 0 + @expression(m, hexpr[j = 1:n_h], hConsts[j] + sum(hControls[j, i] * m[:z][i]for i = 1:n_z) + sum(hRandoms[j, i] * m[:θ][i] for i = 1:n_θ) + + sum(hStates[j, i] * m[:x][i] for i = 1:n_x)) + end + else + @expression(m, fexpr[j = 1:n_f], fConsts[j] + sum(fControls[j, i] * m[:z][i]for i = 1:n_z) + sum(fRandoms[j, i] * m[:θ][i] for i = 1:n_θ)) + if n_h != 0 + @expression(m, hexpr[j = 1:n_h], hConsts[j] + sum(hControls[j, i] * m[:z][i] for i = 1:n_z) + sum(hRandoms[j, i] * m[:θ][i] for i = 1:n_θ)) + end + end + else + if n_x != 0 + @expression(m, fexpr[j = 1:n_f], fConsts[j] + sum(fRandoms[j, i] * m[:θ][i] for i = 1:n_θ) + sum(fStates[j, i] * m[:x][i] for i = 1:n_x)) + if n_h != 0 + @expression(m, hexpr[j = 1:n_h], hConsts[j] + sum(hRandoms[j, i] * m[:θ][i] for i = 1:n_θ) + sum(hStates[j, i] * m[:x][i] for i = 1:n_x)) + end + else + @expression(m, fexpr[j = 1:n_f], fConsts[j] + sum(fRandoms[j, i] * m[:θ][i] for i = 1:n_θ)) + if n_h != 0 + @expression(m, hexpr[j = 1:n_h], hConsts[j] + sum(hRandoms[j, i] * m[:θ][i] for i = 1:n_θ)) + end + end + end + else + if n_z != 0 + if n_x != 0 + @expression(m, fexpr[j = 1:n_f, k = 1:num_scenarios], fConsts[j] + sum(fControls[j, i] * m[:z][i, k] for i = 1:n_z) + sum(fRandoms[j, i] * m[:θ][i, k] for i = 1:n_θ) + + sum(fStates[j, i] * m[:x][i, k] for i = 1:n_x)) + if n_h != 0 + @expression(m, hexpr[j = 1:n_h, k = 1:num_scenarios], hConsts[j] + sum(hControls[j, i] * m[:z][i, k] for i = 1:n_z) + sum(hRandoms[j, i] * m[:θ][i, k] for i = 1:n_θ) + + sum(hStates[j, i] * m[:x][i, k] for i = 1:n_x)) + end + else + @expression(m, fexpr[j = 1:n_f, k = 1:num_scenarios], fConsts[j] + sum(fControls[j, i] * m[:z][i, k]for i = 1:n_z) + sum(fRandoms[j, i] * m[:θ][i, k] for i = 1:n_θ)) + if n_h != 0 + @expression(m, hexpr[j = 1:n_h, k = 1:num_scenarios], hConsts[j] + sum(hControls[j, i] * m[:z][i, k] for i = 1:n_z) + sum(hRandoms[j, i] * m[:θ][i, k] for i = 1:n_θ)) + end + end + else + if n_x != 0 + @expression(m, fexpr[j = 1:n_f, k = 1:num_scenarios], fConsts[j] + sum(fRandoms[j, i] * m[:θ][i, k] for i = 1:n_θ) + sum(fStates[j, i] * m[:x][i, k] for i = 1:n_x)) + if n_h != 0 + @expression(m, hexpr[j = 1:n_h, k = 1:num_scenarios], hConsts[j] + sum(hRandoms[j, i] * m[:θ][i, k] for i = 1:n_θ) + sum(hStates[j, i] * m[:x][i, k] for i = 1:n_x)) + end + else + @expression(m, fexpr[j = 1:n_f, k = 1:num_scenarios], fConsts[j] + sum(fRandoms[j, i] * m[:θ][i, k] for i = 1:n_θ)) + if n_h != 0 + @expression(m, hexpr[j = 1:n_h, k = 1:num_scenarios], hConsts[j] + sum(hRandoms[j, i] * m[:θ][i, k] for i = 1:n_θ)) + end + end + end + end + + # Return expressions + if n_h != 0 + return [fexpr, hexpr] + else + return [fexpr, []] + end +end diff --git a/src/uncertaintyset.jl b/src/uncertaintyset.jl new file mode 100644 index 0000000..21bf232 --- /dev/null +++ b/src/uncertaintyset.jl @@ -0,0 +1,74 @@ +""" + setuncertaintyset(m::Model, uncertainty_set::Symbol, [attribute = nothing; only_positive::Bool = false]) +Specify the type of uncertainty set to be used and stored in `FlexibilityData.uncertainty_set` and provide the necessary +attribute. An ellipsoidal uncertainty set can be specified with the `:Ellipsoid` symbol and the corresponding covariance +matrix will need to input via `attribute` if it has not already been set with [`setcovariance`](@ref). A hyperbox uncertainty +set is specified with the `:Hyperbox` symbol and corresponding negative/positive deviation vectors need to be inputed via +`attribute` as a vector of vectors of the form `[[neg_dev]; [pos_dev]]`. Finally, a p-norm uncertainty set can be specified +with the `:PNorm` symbol and providing the corresponding `p` value via `attribute` where `p` can equal `1`, `2`, or `Inf`. + +**Arguments** +- `m::Model` The flexibility model. +- `uncertainty_set::Symbol` The uncertainty set name. +- `attribute = nothing` The necessary atribute for the specified uncertainty set. + +**Keyword Arguments** +- `only_positive::Bool = false` Indicate if the uncertainty set should be intersected with the set of all positive values. + +```julia +julia> setuncertaintyset(m, :Ellipsoid) + +julia> setuncertaintyset(m, :Ellipsoid, eye(4)* 11.11) + +julia> setuncertaintyset(m, :Hyperbox, [[ones(4)]; [ones(4)]]) +FlexJuMP.HyperboxSet(:Hyperbox, Number[1.0, 1.0, 1.0, 1.0], Number[1.0, 1.0, 1.0, 1.0], false) + +julia> setuncertaintyset(m, :PNorm, 1) +FlexJuMP.PNormSet(:PNorm, 1, false) + +julia> setuncertaintyset(m, :PNorm, 2, only_positive = true) +FlexJuMP.PNormSet(:PNorm, 2, true) + +julia> setuncertaintyset(m, :PNorm, Inf) +FlexJuMP.PNormSet(:PNorm, Inf, false) +``` +""" +function setuncertaintyset(m::Model, uncertainty_set::Symbol, attribute = nothing; only_positive::Bool = false) + # Extract flexibility data + flex_data = getflexibilitydata(m) + attr_type = typeof(attribute) + + # Setup ellipdoial set if specified and run checks + if uncertainty_set == :Ellipsoid + if isa(attribute, Void) && length(flex_data.covariance) == 0 + error("Ellipsoidal set requires a covariance matrix, but one is not provided.") + elseif !isa(attribute, Union{Matrix{Float64}, Matrix{Int}}) && !isa(attribute, Void) + error("Expected ellipsoidal attribute to be covariance matrix of type Matrix{Number}, but got attribute of type $attr_type.") + end + flex_data.uncertainty_set = EllipsoidalSet() + if !isa(attribute, Void) + setcovariance(m, attribute) + end + flex_data.uncertainty_set.only_positive = only_positive; nothing + + # Setup hyperbox set if specified and run checks + elseif uncertainty_set == :Hyperbox + if !isa(attribute, Union{Vector{Vector{Float64}}, Vector{Vector{Int}}}) + error("Expected hyperbox attribute to be deviations of form [[neg_dev]; [pos_dev]], but got attribute of type $attr_type.") + elseif length(attribute[1]) != length(attribute[2]) + error("The dimensions of pos_dev and neg_dev do not match.") + end + flex_data.uncertainty_set = HyperboxSet(uncertainty_set, attribute[1], attribute[2], only_positive) + + # Setup a P-norm set if specified and run checks + elseif uncertainty_set == :PNorm + if !isa(attribute, Number) + error("Expected pnorm attribute to be power of type Number, but got attribute of type $attr_type.") + elseif attribute != 1 && attribute != 2 && attribute != Inf + error("$attribute is not a valid value of p. Currently, only 1, 2, and Inf are accepted.") + end + flex_data.uncertainty_set = PNormSet(uncertainty_set, attribute, only_positive) + else + error("$uncertainty_set is not a valid uncertainty set.") + end +end diff --git a/src/variables.jl b/src/variables.jl new file mode 100644 index 0000000..2f7b0fd --- /dev/null +++ b/src/variables.jl @@ -0,0 +1,99 @@ +""" + RandomVariable(m::Model, mean::Number, name::AbstractString) +Return a `RandomVariable` DataType for given flexibility model `m` given the `mean` and +the `name`. An anonymous JuMP variable is added directly to the flexibility model and its +is appended to `FlexibilityData.RVcols`. + +**Arguments** +- `m::Model` The flexibility model. +- `mean::Number` The variable mean. +- `name::AbstractString` The variable name. +""" +function RandomVariable(m::Model, mean::Number, name::AbstractString) + # Get the data and update it + flex_data = getflexibilitydata(m) + flex_data.numRVs += 1 + push!(flex_data.RVmeans, mean) + push!(flex_data.RVnames, name) + + # Add an associated anonymous variable directly to the model and save its index + @variable(m) + index = length(m.colVal) + push!(flex_data.RVcols, index) + + return RandomVariable(m, flex_data.numRVs) +end + +""" + getmean(variable::RandomVariable) +Return the mean corresponding to a particular `RandomVariable`. Currently this only accepts a single random +variable and vector variables are not accepted directly. + +**Arguments** +- `variable::RandomVariable` The random variable name, must be a single variable. + +```julia +julia> getmean(T[1]) +620 +``` +""" +function getmean(variable::RandomVariable) + flex_data = getflexibilitydata(variable.m) + return flex_data.RVmeans[variable.idx] +end + +""" + RecourseVariable(m::Model, name::AbstractString) +Return a `RecourseVariable` DataType for given flexibility model `m` given the `name`. +An anonymous JuMP variable is added directly to the flexibility model and its is +appended to `FlexibilityData.recourse_cols`. + +**Arguments** +- `m::Model` The flexibility model. +- `name::AbstractString` The variable name. +""" +function RecourseVariable(m::Model, name::AbstractString) + # Get the data and update it + flex_data = getflexibilitydata(m) + flex_data.num_recourse_vars += 1 + push!(flex_data.recourse_names, name) + + # Add an associated anonymous variable directly to the model and save its index + @variable(m) + index = length(m.colVal) + push!(flex_data.recourse_cols, index) + + return RecourseVariable(m, flex_data.num_recourse_vars) +end + +""" + JuMP.getvalue(v::FlexibilityVariable) +Return the value of the a flexibility variable this is an extension of `JuMP.getvalue`. + +**Arguments** +- `v::FlexibilityVariable` The flexibility variable. + +```julia +julia> getvalue(T) +4-element Array{Float64,1}: + 620.0 + 388.0 + 581.0 + 319.0 +``` +""" +JuMP.getvalue(v::FlexibilityVariable) = getvalue(Variable(v.m, v.idx)) + +""" + JuMP.linearindex(v::FlexibilityVariable) +Return the index of the a flexibility variable this is an extension of `JuMP.linearindex`. + +**Arguments** +- `v::FlexibilityVariable` The flexibility variable, must be a single variable. + +```julia +julia> linearindex(Qc) +1 +``` +""" +JuMP.linearindex(v::FlexibilityVariable) = v.idx diff --git a/test/REQUIRE b/test/REQUIRE new file mode 100644 index 0000000..c39e330 --- /dev/null +++ b/test/REQUIRE @@ -0,0 +1,2 @@ +Pavito +GLPKMathProgInterface \ No newline at end of file diff --git a/test/check_mean.jl b/test/check_mean.jl new file mode 100644 index 0000000..bbc3655 --- /dev/null +++ b/test/check_mean.jl @@ -0,0 +1,12 @@ +# Test the default and optional arguments +@test ismeanfeasible(m) +@test ismeanfeasible(m, toler = 1e-8) +@test ismeanfeasible(m, solver = GLPKSolverLP()) + +# Test an infeasible case +setmean(m, ones(flex_data.numRVs) * -50) +@test !ismeanfeasible(m) + +# Reset the mean back to the original value +setmean(m, means) +@test ismeanfeasible(m) diff --git a/test/confidence_level.jl b/test/confidence_level.jl new file mode 100644 index 0000000..c8fea8b --- /dev/null +++ b/test/confidence_level.jl @@ -0,0 +1,7 @@ +# Test for the correct answer +@test abs(getconfidencelevel(m) - 0.53722) <= 1e-3 + +# Check that it doesn't work for other sets and then reset the set +setuncertaintyset(m, :PNorm, 1) +@test_throws ErrorException abs(getconfidencelevel(m) - 0.53722) <= 1e-3 +setuncertaintyset(m, :Ellipsoid) diff --git a/test/constraint_ranker.jl b/test/constraint_ranker.jl new file mode 100644 index 0000000..3e80e62 --- /dev/null +++ b/test/constraint_ranker.jl @@ -0,0 +1,8 @@ +# Test the default case +rank_data = rankinequalities(m, active_constr = true) +@test isa(rank_data, Vector{Dict}) + +# Test varying the max_ranks to work as expected +rank_data = rankinequalities(m, max_ranks = 1, active_constr = true) +@test isa(rank_data, Vector{Dict}) && length(rank_data) == 1 +@test_throws ErrorException rankinequalities(m, max_ranks = 0, active_constr = true) diff --git a/test/define_constraints.jl b/test/define_constraints.jl new file mode 100644 index 0000000..728d5aa --- /dev/null +++ b/test/define_constraints.jl @@ -0,0 +1,9 @@ +# Try to make constraints with different variable combos +@constraint(m2, x + y - z <= 0) +@constraint(m2, thor[i = 1:5], xs[i] + sum(y2s[i, j] for j = 1:6) == 42) +@constraint(m2, z + 2 >= -23) +@constraint(m2, y + z == 23) +@constraint(m2, x + z <= 42) + +# Ensure all the variables and constraints were added +size(JuMP.prepConstrMatrix(m2)) == (9, 84) diff --git a/test/define_real_model.jl b/test/define_real_model.jl new file mode 100644 index 0000000..50176c0 --- /dev/null +++ b/test/define_real_model.jl @@ -0,0 +1,14 @@ +# Set the variables +means = [620; 388; 583; 313] +@randomvariable(m, T[i = 1:4], mean = means[i]) +@recoursevariable(m, Qc) +@variable(m, x) + +# Define the constraints +@constraint(m, 0.67Qc - 2T[2] - x >= -100) +@constraint(m, -250 - T[2] == x) +@constraint(m, 1388.5 + 0.5Qc - 0.75T[1] - T[2] - T[3] <= 0.0) +@constraint(m, 2044 + Qc - 1.5T[1] - 2T[2] - T[3] <= 0.0) +@constraint(m, 2830 + Qc - 1.5T[1] - 2T[2] - T[3] - 2T[4] <= 0.0) +@constraint(m, -Qc + 1.5T[1] + 2T[2] + T[3] + 3T[4] <= 3153) +true diff --git a/test/define_uncertainty_set.jl b/test/define_uncertainty_set.jl new file mode 100644 index 0000000..89c2150 --- /dev/null +++ b/test/define_uncertainty_set.jl @@ -0,0 +1,30 @@ +# Check default +@test flex_data.uncertainty_set.name == :Ellipsoid && flex_data2.uncertainty_set.name == :Ellipsoid + +# Check safeguards +@test_throws ErrorException setuncertaintyset(m, :Ellipsoid) +@test_throws ErrorException setuncertaintyset(m, :PNorm) +@test_throws ErrorException setuncertaintyset(m, :ellipsoid) +@test_throws ErrorException setuncertaintyset(m, :PNorm, 3) +@test_throws ErrorException setuncertaintyset(m, :Hyperbox, [[1; 1];[1; 1]]) +@test_throws ErrorException setuncertaintyset(m, :Hyperbox, [[[1; 1]];[[1; 1; 1]]]) + +# Test each set type +a = 0 +covar = [11.11 a a a; a 11.11 a a; a a 11.11 a; a a a 11.11] +setcovariance(m, covar) +@test flex_data.uncertainty_set.name == :Ellipsoid +setuncertaintyset(m2, :PNorm, 1) +@test flex_data2.uncertainty_set.name == :PNorm && flex_data2.uncertainty_set.p == 1 +setuncertaintyset(m2, :PNorm, 2) +@test flex_data2.uncertainty_set.name == :PNorm && flex_data2.uncertainty_set.p == 2 +setuncertaintyset(m2, :PNorm, Inf) +@test flex_data2.uncertainty_set.name == :PNorm && flex_data2.uncertainty_set.p == Inf +setuncertaintyset(m2, :Hyperbox, [[[1; 1]]; [[1; 1]]]) +@test flex_data2.uncertainty_set.name == :Hyperbox && all(flex_data2.uncertainty_set.neg_dev .== ones(2)) +setuncertaintyset(m2, :PNorm, 1, only_positive = true) +@test flex_data2.uncertainty_set.name == :PNorm && flex_data2.uncertainty_set.only_positive +setuncertaintyset(m2, :Hyperbox, [[[1; 1]]; [[1; 1]]], only_positive = true) +@test flex_data2.uncertainty_set.name == :Hyperbox && flex_data2.uncertainty_set.only_positive +setuncertaintyset(m2, :Ellipsoid, eye(flex_data2.numRVs), only_positive = true) +@test flex_data2.uncertainty_set.name == :Ellipsoid && flex_data2.uncertainty_set.only_positive diff --git a/test/find_center.jl b/test/find_center.jl new file mode 100644 index 0000000..4582220 --- /dev/null +++ b/test/find_center.jl @@ -0,0 +1,12 @@ +# Test that basic function works and that it doesn change the mean +@test all(findcenteredmean(m, only_positive = true) .>= 0) +@test all(getmean(m) .== means) + +# Try different centers and changing the mean +@test !all(findcenteredmean(m, center = :analytic) .>= 0) +@test all(findcenteredmean(m, center = :analytic, only_positive = true, update_mean = true) .>= 0) +@test !all(getmean(m) .== means) + +# Reset the mean back to correct value +setmean(m, means) +@test all(getmean(m) .== means) diff --git a/test/get_flexdata.jl b/test/get_flexdata.jl new file mode 100644 index 0000000..c53c818 --- /dev/null +++ b/test/get_flexdata.jl @@ -0,0 +1,10 @@ +# Extract the data +flex_data = getflexibilitydata(m) +flex_data2 = getflexibilitydata(m2) + +# Check data type +@test isa(flex_data, FlexJuMP.FlexibilityData) +@test isa(flex_data2, FlexJuMP.FlexibilityData) + +# Check F index extractor function +@test getflexibilityindex(m) == nothing diff --git a/test/initialize_model.jl b/test/initialize_model.jl new file mode 100644 index 0000000..ad3e229 --- /dev/null +++ b/test/initialize_model.jl @@ -0,0 +1,5 @@ +# Test default model and model with other solver +m = FlexibilityModel(solver = PavitoSolver(mip_solver = GLPKSolverMIP(), + cont_solver = IpoptSolver(print_level = 0), log_level = 0, mip_solver_drives = false)) +m2 = FlexibilityModel() +true diff --git a/test/manage_covariance.jl b/test/manage_covariance.jl new file mode 100644 index 0000000..2c004dc --- /dev/null +++ b/test/manage_covariance.jl @@ -0,0 +1,13 @@ +# Check for expected base covariance +@test length(getcovariance(m)) == 0 +@test length(getcovariance(m2)) == 0 + +# Test the get/set functions +setcovariance(m, eye(flex_data.numRVs)) +@test all(getcovariance(m) .== eye(flex_data.numRVs)) + +# Check the safeguards and reset the covariance matrix +@test_throws ErrorException setcovariance(m, [1 1]) +@test_throws ErrorException setcovariance(m, [1 2; 3 4]) +@test_throws ErrorException setcovariance(m, [-2 0; 0 -3]) +flex_data.covariance = Matrix(0, 0) diff --git a/test/manage_mean.jl b/test/manage_mean.jl new file mode 100644 index 0000000..beee15a --- /dev/null +++ b/test/manage_mean.jl @@ -0,0 +1,5 @@ +# Test the get/set mean functions +@test all(getmean(m) .== means) +setmean(m, ones(flex_data.numRVs)) +@test all(getmean(m) .== ones(flex_data.numRVs)) +setmean(m, means) diff --git a/test/retrieve_critical_pt.jl b/test/retrieve_critical_pt.jl new file mode 100644 index 0000000..7b45827 --- /dev/null +++ b/test/retrieve_critical_pt.jl @@ -0,0 +1,4 @@ +# Test the getvalue function for each variable type +@test isa(getvalue(T), Vector) +@test isa(getvalue(Qc), Float64) +@test isa(getvalue(x), Float64) diff --git a/test/runtests.jl b/test/runtests.jl index f0d2571..2a7e43c 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -5,5 +5,56 @@ else using Test end -# write your own tests here -@test 1 == 2 +using FlexJuMP +using Base.Test +using Pavito, GLPKMathProgInterface, Ipopt +using JuMP + +# Run basic model definition tests +tic() +@testset "Model Definition Testing" begin + @test include("initialize_model.jl") + @test include("set_single_variables.jl") + @test include("set_vector_variables.jl") + @test include("define_constraints.jl") + @test include("define_real_model.jl") +end +toc() +print("\n") + +# Check basic data manipulation functions +tic() +@testset "Data Access Testing" begin + @testset "Data Extraction" begin include("get_flexdata.jl") end + @testset "Get/Set Covariance Matrix" begin include("manage_covariance.jl") end + @testset "Get/Set Mean" begin include("manage_mean.jl") end +end +toc() +print("\n") + +# Check functions that can be used before solving the model +tic() +@testset "Pre-Solve Method Testing" begin + @testset "Set Uncertainty Set" begin include("define_uncertainty_set.jl") end + @testset "Check Mean" begin include("check_mean.jl") end + @testset "Find Centered Mean" begin include("find_center.jl") end + @testset "SF Index" begin include("sf_index.jl") end +end +toc() +print("\n") + +# Extensively test the solvehook +tic() +@testset "Solvehook Testing" begin include("solvehook_checks.jl") end +toc() +print("\n") + +# Test function that can be called after the solution of the solvehook +tic() +@testset "Post-Solve Method Testing" begin + @testset "Confidence Level" begin include("confidence_level.jl") end + @testset "Critical Point" begin include("retrieve_critical_pt.jl") end + @testset "Rank Constraints" begin include("constraint_ranker.jl") end + @testset "SF Index" begin include("sf_index2.jl") end +end +toc() diff --git a/test/set_single_variables.jl b/test/set_single_variables.jl new file mode 100644 index 0000000..fbf4e6d --- /dev/null +++ b/test/set_single_variables.jl @@ -0,0 +1,5 @@ +# Test basic variable definition +@randomvariable(m2, x, mean = 0) +@recoursevariable(m2, y) +@variable(m2, z) +true diff --git a/test/set_vector_variables.jl b/test/set_vector_variables.jl new file mode 100644 index 0000000..d683199 --- /dev/null +++ b/test/set_vector_variables.jl @@ -0,0 +1,16 @@ +# Test the random variable macro with complex input +@randomvariable(m2, xs[i = 1:5], mean = 0) +means = ones(4) +@randomvariable(m2, x2s[i = 1:4], mean = means[i]) +@randomvariable(m2, x3s[i = 1:3, j = 1:2], mean = 42) +means2 = ones(4, 4) +@randomvariable(m2, x4s[i = 1:4, j = 1:4], mean = means2[i, j]) + +# Check the recourse variable macro with vector and array +@recoursevariable(m2, ys[1:3]) +@recoursevariable(m2, y2s[1:5, 1:6]) + +# Check the base JuMP macro +@variable(m2, zs[1:2]) +@variable(m2, z2s[1:3, 1:5]) +true diff --git a/test/sf_index.jl b/test/sf_index.jl new file mode 100644 index 0000000..cf9d2fd --- /dev/null +++ b/test/sf_index.jl @@ -0,0 +1,8 @@ +# Compute the base SF index and verify same answer with culnerability model +SF = findstochasticflexibility(m, num_pts = 100, seed = 42) +@test abs(findstochasticflexibility(m, num_pts = 100, use_vulnerability_model = true, seed = 42) - SF) <= 1e-5 +@test_warn "Flexibility index hasn't yet been computed." abs(findstochasticflexibility(m, num_pts = 100, use_flexibility_index = true, seed = 42) - SF) <= 1e-5 + +# Compute the SF with all positive values and verify both methods yield the same solution +SF2 = findstochasticflexibility(m, num_pts = 100, only_positive = true, seed = 42) +@test abs(findstochasticflexibility(m, num_pts = 100, use_vulnerability_model = true, only_positive = true, seed = 42) - SF2) <= 1e-5 diff --git a/test/sf_index2.jl b/test/sf_index2.jl new file mode 100644 index 0000000..6e37e7d --- /dev/null +++ b/test/sf_index2.jl @@ -0,0 +1,19 @@ +# Verify that using F works with both methods +SF = findstochasticflexibility(m, num_pts = 100, seed = 42) +@test abs(findstochasticflexibility(m, num_pts = 100, use_flexibility_index = true, seed = 42) - SF) <= 1e-5 +@test abs(findstochasticflexibility(m, num_pts = 100, use_vulnerability_model = true, use_flexibility_index = true, seed = 42) - SF) <= 1e-5 + +# Verify using F works with hyperbos set +dev = ones(flex_data.numRVs) * 10 +setuncertaintyset(m, :Hyperbox, [[dev]; [dev]]) +solve(m, active_constr = true) == :Optimal && abs(getflexibilityindex(m) - 0.5) <= 1e-2 +SF = findstochasticflexibility(m, num_pts = 100, seed = 42) +@test abs(findstochasticflexibility(m, num_pts = 100, use_flexibility_index = true, seed = 42) - SF) <= 1e-5 +@test abs(findstochasticflexibility(m, num_pts = 100, use_vulnerability_model = true, use_flexibility_index = true, seed = 42) - SF) <= 1e-5 + +# Verify usign F works with PNorm set +setuncertaintyset(m, :PNorm, Inf) +solve(m, active_constr = true) == :Optimal && abs(getflexibilityindex(m) - 5) <= 1e-2 +SF = findstochasticflexibility(m, num_pts = 100, seed = 42) +@test abs(findstochasticflexibility(m, num_pts = 100, use_flexibility_index = true, seed = 42) - SF) <= 1e-5 +@test abs(findstochasticflexibility(m, num_pts = 100, use_vulnerability_model = true, use_flexibility_index = true, seed = 42) - SF) <= 1e-5 diff --git a/test/solvehook_checks.jl b/test/solvehook_checks.jl new file mode 100644 index 0000000..487db0a --- /dev/null +++ b/test/solvehook_checks.jl @@ -0,0 +1,27 @@ +# Test the solvehook's options +@test_warn "Problem requires use of active set constraint." solve(m) == :Optimal +@test solve(m, active_constr = true) == :Optimal && abs(getflexibilityindex(m) - 3.6) <= 1e-2 +@test solve(m, active_constr = true, diag = true) == :Optimal && abs(getflexibilityindex(m) - 3.6) <= 1e-2 +@test solve(m, active_constr = true, conic_δ = true) == :Optimal && abs(getflexibilityindex(m) - 3.6) <= 1e-2 +@test solve(m, active_constr = true) == :Optimal && abs(getflexibilityindex(m) - 3.6) <= 1e-2 +@test_warn "The slack upper bound (U)" solve(m, active_constr = true, U = 1000) == :Optimal + +# Test with other uncertainty sets +dev = ones(flex_data.numRVs) * 10 +setuncertaintyset(m, :Hyperbox, [[dev]; [dev]]) +@test solve(m, active_constr = true) == :Optimal && abs(getflexibilityindex(m) - 0.5) <= 1e-2 +setuncertaintyset(m, :PNorm, 1) +@test solve(m, active_constr = true) == :Optimal && abs(getflexibilityindex(m) - 6.667) <= 1e-2 +setuncertaintyset(m, :PNorm, 2) +@test solve(m, active_constr = true) == :Optimal && abs(getflexibilityindex(m) - 6.325) <= 1e-2 +setuncertaintyset(m, :PNorm, Inf) +@test solve(m, active_constr = true) == :Optimal && abs(getflexibilityindex(m) - 5) <= 1e-2 + +# Check safeguards +dev = ones(flex_data.numRVs - 1) * 10 +setuncertaintyset(m, :Hyperbox, [[dev]; [dev]]) +@test_throws ErrorException solve(m, active_constr = true) == :Optimal +setuncertaintyset(m, :Ellipsoid, eye(2)) +@test_throws ErrorException solve(m, active_constr = true) == :Optimal +setuncertaintyset(m, :Ellipsoid, covar) +@test solve(m, active_constr = true) == :Optimal && abs(getflexibilityindex(m) - 3.6) <= 1e-2

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 BzS{r* literal 0 HcmV?d00001 diff --git a/docs/src/images/feasible_region.png b/docs/src/images/feasible_region.png new file mode 100644 index 0000000000000000000000000000000000000000..4efc963d2db05f4937426e32b1cd428b052f6c11 GIT binary patch literal 33714 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