Created
January 5, 2016 17:02
-
-
Save ojdo/09eeceabe06f0007c4f8 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"metadata": { | |
"trusted": true, | |
"collapsed": false | |
}, | |
"cell_type": "code", | |
"source": "using DataFrames\nusing JuMP", | |
"execution_count": 1, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"trusted": true, | |
"collapsed": false | |
}, | |
"cell_type": "code", | |
"source": "const c = 3\nconst r = 0.5\nconst s = [0 0 0 0 0 0 1 3 6 5 8 9 9 6 8 7 6 3 2 1 0 0 0 0]\nconst d = [0 1 1 1 1 1 2 5 2 1 1 5 0 0 0 0 6 9 6 3 4 4 1 0]\nconst p = [0 2 2 2 2 2 1 2 2 1 1 2 1 1 1 1 5 5 5 1 1 1 1 1]\n\nT = 1:length(p);", | |
"execution_count": 2, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"trusted": true, | |
"collapsed": false | |
}, | |
"cell_type": "code", | |
"source": "m = Model();", | |
"execution_count": 3, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"trusted": true, | |
"collapsed": false | |
}, | |
"cell_type": "code", | |
"source": "@defVar(m, β[T])\n@defVar(m, κ >= 0)\n@defVar(m, ł[T] >= 0)\n@defVar(m, ρ[T] >= 0)\n@defVar(m, σ[T] >= 0)\n@defVar(m, ζ);", | |
"execution_count": 4, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"trusted": true, | |
"collapsed": false | |
}, | |
"cell_type": "code", | |
"source": "@setObjective(m, Min, ζ);", | |
"execution_count": 5, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"trusted": true, | |
"collapsed": false | |
}, | |
"cell_type": "code", | |
"source": "@addConstraint(m, \n ζ == c * κ + \n sum{\n p[t] * ρ[t] - \n p[t] * σ[t] * r, \n t=T})", | |
"execution_count": 6, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/latex": "$$ ζ - 3 κ - 2 ρ_{2} + σ_{2} - 2 ρ_{3} + σ_{3} - 2 ρ_{4} + σ_{4} - 2 ρ_{5} + σ_{5} - 2 ρ_{6} + σ_{6} - ρ_{7} + 0.5 σ_{7} - 2 ρ_{8} + σ_{8} - 2 ρ_{9} + σ_{9} - ρ_{10} + 0.5 σ_{10} - ρ_{11} + 0.5 σ_{11} - 2 ρ_{12} + σ_{12} - ρ_{13} + 0.5 σ_{13} - ρ_{14} + 0.5 σ_{14} - ρ_{15} + 0.5 σ_{15} - ρ_{16} + 0.5 σ_{16} - 5 ρ_{17} + 2.5 σ_{17} - 5 ρ_{18} + 2.5 σ_{18} - 5 ρ_{19} + 2.5 σ_{19} - ρ_{20} + 0.5 σ_{20} - ρ_{21} + 0.5 σ_{21} - ρ_{22} + 0.5 σ_{22} - ρ_{23} + 0.5 σ_{23} - ρ_{24} + 0.5 σ_{24} = 0 $$", | |
"text/plain": "ζ - 3 κ - 2 ρ[2] + σ[2] - 2 ρ[3] + σ[3] - 2 ρ[4] + σ[4] - 2 ρ[5] + σ[5] - 2 ρ[6] + σ[6] - ρ[7] + 0.5 σ[7] - 2 ρ[8] + σ[8] - 2 ρ[9] + σ[9] - ρ[10] + 0.5 σ[10] - ρ[11] + 0.5 σ[11] - 2 ρ[12] + σ[12] - ρ[13] + 0.5 σ[13] - ρ[14] + 0.5 σ[14] - ρ[15] + 0.5 σ[15] - ρ[16] + 0.5 σ[16] - 5 ρ[17] + 2.5 σ[17] - 5 ρ[18] + 2.5 σ[18] - 5 ρ[19] + 2.5 σ[19] - ρ[20] + 0.5 σ[20] - ρ[21] + 0.5 σ[21] - ρ[22] + 0.5 σ[22] - ρ[23] + 0.5 σ[23] - ρ[24] + 0.5 σ[24] == 0" | |
}, | |
"metadata": {}, | |
"execution_count": 6 | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": true, | |
"collapsed": false | |
}, | |
"cell_type": "code", | |
"source": "@addConstraint(m, def_balance[t=T], \n β[t] == s[t] - d[t] + ρ[t] - σ[t])", | |
"execution_count": 7, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"trusted": true, | |
"collapsed": false | |
}, | |
"cell_type": "code", | |
"source": "@addConstraint(m, def_storage_state[t=T[2:end]],\n ł[t] == ł[t-1] + β[t])", | |
"execution_count": 8, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"trusted": true, | |
"collapsed": false | |
}, | |
"cell_type": "code", | |
"source": "@addConstraint(m, ł[T[1]] == 0.5 * κ)", | |
"execution_count": 9, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/latex": "$$ ł_{1} - 0.5 κ = 0 $$", | |
"text/plain": "ł[1] - 0.5 κ == 0" | |
}, | |
"metadata": {}, | |
"execution_count": 9 | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": true, | |
"collapsed": false | |
}, | |
"cell_type": "code", | |
"source": "@addConstraint(m, ł[T[end]] >= 0.5 * κ)", | |
"execution_count": 10, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/latex": "$$ ł_{24} - 0.5 κ \\geq 0 $$", | |
"text/plain": "ł[24] - 0.5 κ >= 0" | |
}, | |
"metadata": {}, | |
"execution_count": 10 | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": true, | |
"collapsed": true | |
}, | |
"cell_type": "code", | |
"source": "@addConstraint(m, res_storage_capacity[t=T],\n ł[t] <= κ)", | |
"execution_count": 11, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"trusted": true, | |
"collapsed": true | |
}, | |
"cell_type": "code", | |
"source": "@addConstraint(m, res_energy_sold[t=T],\n σ[t] <= 999)", | |
"execution_count": 12, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"trusted": true, | |
"collapsed": false | |
}, | |
"cell_type": "code", | |
"source": "m", | |
"execution_count": 17, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/latex": "$$ \\begin{alignat*}{1}\\min\\quad & ζ\\\\\n\\text{Subject to} \\quad & ζ - 3 κ - 2 ρ_{2} + σ_{2} - 2 ρ_{3} + σ_{3} - 2 ρ_{4} + σ_{4} - 2 ρ_{5} + σ_{5} - 2 ρ_{6} + σ_{6} - ρ_{7} + 0.5 σ_{7} - 2 ρ_{8} + σ_{8} - 2 ρ_{9} + σ_{9} - ρ_{10} + 0.5 σ_{10} - ρ_{11} + 0.5 σ_{11} - 2 ρ_{12} + σ_{12} - ρ_{13} + 0.5 σ_{13} - ρ_{14} + 0.5 σ_{14} - ρ_{15} + 0.5 σ_{15} - ρ_{16} + 0.5 σ_{16} - 5 ρ_{17} + 2.5 σ_{17} - 5 ρ_{18} + 2.5 σ_{18} - 5 ρ_{19} + 2.5 σ_{19} - ρ_{20} + 0.5 σ_{20} - ρ_{21} + 0.5 σ_{21} - ρ_{22} + 0.5 σ_{22} - ρ_{23} + 0.5 σ_{23} - ρ_{24} + 0.5 σ_{24} = 0\\\\\n & β_{1} - ρ_{1} + σ_{1} = 0\\\\\n & β_{2} - ρ_{2} + σ_{2} = -1\\\\\n & β_{3} - ρ_{3} + σ_{3} = -1\\\\\n & β_{4} - ρ_{4} + σ_{4} = -1\\\\\n & β_{5} - ρ_{5} + σ_{5} = -1\\\\\n & β_{6} - ρ_{6} + σ_{6} = -1\\\\\n & β_{7} - ρ_{7} + σ_{7} = -1\\\\\n & β_{8} - ρ_{8} + σ_{8} = -2\\\\\n & β_{9} - ρ_{9} + σ_{9} = 4\\\\\n & β_{10} - ρ_{10} + σ_{10} = 4\\\\\n & β_{11} - ρ_{11} + σ_{11} = 7\\\\\n & β_{12} - ρ_{12} + σ_{12} = 4\\\\\n & β_{13} - ρ_{13} + σ_{13} = 9\\\\\n & β_{14} - ρ_{14} + σ_{14} = 6\\\\\n & β_{15} - ρ_{15} + σ_{15} = 8\\\\\n & β_{16} - ρ_{16} + σ_{16} = 7\\\\\n & β_{17} - ρ_{17} + σ_{17} = 0\\\\\n & β_{18} - ρ_{18} + σ_{18} = -6\\\\\n & β_{19} - ρ_{19} + σ_{19} = -4\\\\\n & β_{20} - ρ_{20} + σ_{20} = -2\\\\\n & β_{21} - ρ_{21} + σ_{21} = -4\\\\\n & β_{22} - ρ_{22} + σ_{22} = -4\\\\\n & β_{23} - ρ_{23} + σ_{23} = -1\\\\\n & β_{24} - ρ_{24} + σ_{24} = 0\\\\\n & ł_{2} - ł_{1} - β_{2} = 0\\\\\n & ł_{3} - ł_{2} - β_{3} = 0\\\\\n & ł_{4} - ł_{3} - β_{4} = 0\\\\\n & ł_{5} - ł_{4} - β_{5} = 0\\\\\n & ł_{6} - ł_{5} - β_{6} = 0\\\\\n & ł_{7} - ł_{6} - β_{7} = 0\\\\\n & ł_{8} - ł_{7} - β_{8} = 0\\\\\n & ł_{9} - ł_{8} - β_{9} = 0\\\\\n & ł_{10} - ł_{9} - β_{10} = 0\\\\\n & ł_{11} - ł_{10} - β_{11} = 0\\\\\n & ł_{12} - ł_{11} - β_{12} = 0\\\\\n & ł_{13} - ł_{12} - β_{13} = 0\\\\\n & ł_{14} - ł_{13} - β_{14} = 0\\\\\n & ł_{15} - ł_{14} - β_{15} = 0\\\\\n & ł_{16} - ł_{15} - β_{16} = 0\\\\\n & ł_{17} - ł_{16} - β_{17} = 0\\\\\n & ł_{18} - ł_{17} - β_{18} = 0\\\\\n & ł_{19} - ł_{18} - β_{19} = 0\\\\\n & ł_{20} - ł_{19} - β_{20} = 0\\\\\n & ł_{21} - ł_{20} - β_{21} = 0\\\\\n & ł_{22} - ł_{21} - β_{22} = 0\\\\\n & ł_{23} - ł_{22} - β_{23} = 0\\\\\n & ł_{24} - ł_{23} - β_{24} = 0\\\\\n & ł_{1} - 0.5 κ = 0\\\\\n & ł_{24} - 0.5 κ \\geq 0\\\\\n & ł_{1} - κ \\leq 0\\\\\n & ł_{2} - κ \\leq 0\\\\\n & ł_{3} - κ \\leq 0\\\\\n & ł_{4} - κ \\leq 0\\\\\n & ł_{5} - κ \\leq 0\\\\\n & ł_{6} - κ \\leq 0\\\\\n & ł_{7} - κ \\leq 0\\\\\n & ł_{8} - κ \\leq 0\\\\\n & ł_{9} - κ \\leq 0\\\\\n & ł_{10} - κ \\leq 0\\\\\n & ł_{11} - κ \\leq 0\\\\\n & ł_{12} - κ \\leq 0\\\\\n & ł_{13} - κ \\leq 0\\\\\n & ł_{14} - κ \\leq 0\\\\\n & ł_{15} - κ \\leq 0\\\\\n & ł_{16} - κ \\leq 0\\\\\n & ł_{17} - κ \\leq 0\\\\\n & ł_{18} - κ \\leq 0\\\\\n & ł_{19} - κ \\leq 0\\\\\n & ł_{20} - κ \\leq 0\\\\\n & ł_{21} - κ \\leq 0\\\\\n & ł_{22} - κ \\leq 0\\\\\n & ł_{23} - κ \\leq 0\\\\\n & ł_{24} - κ \\leq 0\\\\\n & σ_{1} \\leq 999\\\\\n & σ_{2} \\leq 999\\\\\n & σ_{3} \\leq 999\\\\\n & σ_{4} \\leq 999\\\\\n & σ_{5} \\leq 999\\\\\n & σ_{6} \\leq 999\\\\\n & σ_{7} \\leq 999\\\\\n & σ_{8} \\leq 999\\\\\n & σ_{9} \\leq 999\\\\\n & σ_{10} \\leq 999\\\\\n & σ_{11} \\leq 999\\\\\n & σ_{12} \\leq 999\\\\\n & σ_{13} \\leq 999\\\\\n & σ_{14} \\leq 999\\\\\n & σ_{15} \\leq 999\\\\\n & σ_{16} \\leq 999\\\\\n & σ_{17} \\leq 999\\\\\n & σ_{18} \\leq 999\\\\\n & σ_{19} \\leq 999\\\\\n & σ_{20} \\leq 999\\\\\n & σ_{21} \\leq 999\\\\\n & σ_{22} \\leq 999\\\\\n & σ_{23} \\leq 999\\\\\n & σ_{24} \\leq 999\\\\\n & β_{i} free \\quad\\forall i \\in \\{1,2,\\dots,23,24\\}\\\\\n & ł_{i} \\geq 0 \\quad\\forall i \\in \\{1,2,\\dots,23,24\\}\\\\\n & ρ_{i} \\geq 0 \\quad\\forall i \\in \\{1,2,\\dots,23,24\\}\\\\\n & σ_{i} \\geq 0 \\quad\\forall i \\in \\{1,2,\\dots,23,24\\}\\\\\n & κ \\geq 0\\\\\n & ζ free\\\\\n\\end{alignat*}\n $$", | |
"text/plain": "Minimization problem with:\n * 98 linear constraints\n * 98 variables\nSolver set to Default" | |
}, | |
"metadata": {}, | |
"execution_count": 17 | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": true, | |
"collapsed": false | |
}, | |
"cell_type": "code", | |
"source": "solve(m)", | |
"execution_count": 13, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": ":Optimal" | |
}, | |
"metadata": {}, | |
"execution_count": 13 | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": true, | |
"collapsed": false | |
}, | |
"cell_type": "code", | |
"source": "getObjectiveValue(m)", | |
"execution_count": 14, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": "20.5" | |
}, | |
"metadata": {}, | |
"execution_count": 14 | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": true, | |
"collapsed": false | |
}, | |
"cell_type": "code", | |
"source": "getValue(κ)", | |
"execution_count": 15, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": "10.0" | |
}, | |
"metadata": {}, | |
"execution_count": 15 | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": true, | |
"collapsed": false | |
}, | |
"cell_type": "code", | |
"source": "getValue(ł)", | |
"execution_count": 16, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": "ł: 1 dimensions, 24 entries:\n [ 1] = 5.0\n [ 2] = 4.0\n [ 3] = 3.0\n [ 4] = 2.0\n [ 5] = 1.0\n [ 6] = 0.0\n [ 7] = 2.0\n [ 8] = 0.0\n [ 9] = 0.0\n [10] = 4.0\n [11] = 10.0\n [12] = 0.0\n [13] = 9.0\n [14] = 10.0\n [15] = 3.0\n [16] = 10.0\n [17] = 10.0\n [18] = 4.0\n [19] = 0.0\n [20] = 0.0\n [21] = 10.0\n [22] = 6.0\n [23] = 5.0\n [24] = 5.0" | |
}, | |
"metadata": {}, | |
"execution_count": 16 | |
} | |
] | |
} | |
], | |
"metadata": { | |
"language_info": { | |
"version": "0.4.2", | |
"mimetype": "application/julia", | |
"name": "julia", | |
"file_extension": ".jl" | |
}, | |
"kernelspec": { | |
"name": "julia-0.4", | |
"display_name": "Julia 0.4.2", | |
"language": "julia" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 0 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment