Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- {
- "cells": [
- {
- "cell_type": "code",
- "execution_count": 2,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[ 23.28] Resetting the tic/toc delta timer\n",
- "[+ 0.00] Model Constructed.\n",
- "[+ 0.00] Set i constructed\n",
- "[+ 0.00] Set k constructed\n",
- "[+ 0.00] Set n constructed\n",
- "[+ 0.00] Set j constructed\n",
- "[+ 0.00] Alias constructed\n",
- "[+ 0.00] Parameters cosntructed\n",
- "[+ 0.00] x_init constructed\n",
- "[+ 17.44] data imported\n",
- "[+ 0.00] variables constructed\n",
- "[+ 0.00] variables constructed\n",
- "[+ 0.00] constraint 1 constructed\n",
- "[+ 0.00] constraint 2 constructed\n",
- "[+ 0.00] constraint 3 constructed\n",
- "[+ 0.00] constraint 4 constructed\n",
- "[+ 0.07] objective constructed\n",
- "[+ 0.00] Start making\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "IOPub data rate exceeded.\n",
- "The notebook server will temporarily stop sending output\n",
- "to the client in order to avoid crashing it.\n",
- "To change this limit, set the config variable\n",
- "`--NotebookApp.iopub_data_rate_limit`.\n"
- ]
- },
- {
- "ename": "KeyboardInterrupt",
- "evalue": "",
- "output_type": "error",
- "traceback": [
- "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
- "\u001b[1;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)",
- "\u001b[1;32m<ipython-input-2-f0c6237e4004>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[0;32m 144\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mpyomo\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0menviron\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 145\u001b[0m \u001b[0mtoc\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'Start making'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 146\u001b[1;33m \u001b[0minstance\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mmodel\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcreate_instance\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 147\u001b[0m \u001b[0mtoc\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'Instance created'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 148\u001b[0m \u001b[0mx_init\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0minstance\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
- "\u001b[1;32mC:\\ProgramData\\Anaconda3\\lib\\site-packages\\pyomo\\core\\base\\PyomoModel.py\u001b[0m in \u001b[0;36mcreate_instance\u001b[1;34m(self, filename, data, name, namespace, namespaces, profile_memory, report_timing, **kwds)\u001b[0m\n\u001b[0;32m 712\u001b[0m \u001b[0mnamespaces\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0m_namespaces\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 713\u001b[0m \u001b[0mprofile_memory\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mprofile_memory\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 714\u001b[1;33m report_timing=report_timing )\n\u001b[0m\u001b[0;32m 715\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 716\u001b[0m \u001b[1;31m#\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
- "\u001b[1;32mC:\\ProgramData\\Anaconda3\\lib\\site-packages\\pyomo\\core\\base\\PyomoModel.py\u001b[0m in \u001b[0;36mload\u001b[1;34m(self, arg, namespaces, profile_memory, report_timing)\u001b[0m\n\u001b[0;32m 783\u001b[0m \u001b[0mnamespaces\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 784\u001b[0m \u001b[0mprofile_memory\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mprofile_memory\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 785\u001b[1;33m report_timing=report_timing)\n\u001b[0m\u001b[0;32m 786\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 787\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0m_tuplize\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mdata\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0msetobj\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
- "\u001b[1;32mC:\\ProgramData\\Anaconda3\\lib\\site-packages\\pyomo\\core\\base\\PyomoModel.py\u001b[0m in \u001b[0;36m_load_model_data\u001b[1;34m(self, modeldata, namespaces, **kwds)\u001b[0m\n\u001b[0;32m 859\u001b[0m \u001b[0mclone_counters\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mEXPR\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mgenerate_expression\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mclone_counter\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 860\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 861\u001b[1;33m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_initialize_component\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mmodeldata\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mnamespaces\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mcomponent_name\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mprofile_memory\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 862\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 863\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mreport_timing\u001b[0m \u001b[1;32mis\u001b[0m \u001b[1;32mTrue\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
- "\u001b[1;32mC:\\ProgramData\\Anaconda3\\lib\\site-packages\\pyomo\\core\\base\\PyomoModel.py\u001b[0m in \u001b[0;36m_initialize_component\u001b[1;34m(self, modeldata, namespaces, component_name, profile_memory)\u001b[0m\n\u001b[0;32m 918\u001b[0m declaration.name, _blockName, str(data) )\n\u001b[0;32m 919\u001b[0m \u001b[1;32mtry\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 920\u001b[1;33m \u001b[0mdeclaration\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mconstruct\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 921\u001b[0m \u001b[1;32mexcept\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 922\u001b[0m \u001b[0merr\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0msys\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mexc_info\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
- "\u001b[1;32mC:\\ProgramData\\Anaconda3\\lib\\site-packages\\pyomo\\core\\base\\param.py\u001b[0m in \u001b[0;36mconstruct\u001b[1;34m(self, data)\u001b[0m\n\u001b[0;32m 828\u001b[0m \u001b[1;32mtry\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 829\u001b[0m \u001b[1;32mfor\u001b[0m \u001b[0mkey\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mval\u001b[0m \u001b[1;32min\u001b[0m \u001b[0miteritems\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 830\u001b[1;33m \u001b[0mself\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mkey\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mval\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 831\u001b[0m \u001b[1;32mexcept\u001b[0m \u001b[0mException\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 832\u001b[0m \u001b[0mmsg\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0msys\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mexc_info\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
- "\u001b[1;32mC:\\ProgramData\\Anaconda3\\lib\\site-packages\\pyomo\\core\\base\\param.py\u001b[0m in \u001b[0;36m__setitem__\u001b[1;34m(self, ndx, val)\u001b[0m\n\u001b[0;32m 587\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 588\u001b[0m \u001b[1;31m# We have a valid index, so do the actual set operation.\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 589\u001b[1;33m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_raw_setitem\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mndx_\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mval\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 590\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 591\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0m_initialize_from\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0m_init\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
- "\u001b[1;32mC:\\ProgramData\\Anaconda3\\lib\\site-packages\\pyomo\\core\\base\\param.py\u001b[0m in \u001b[0;36m_raw_setitem\u001b[1;34m(self, ndx, val)\u001b[0m\n\u001b[0;32m 520\u001b[0m \u001b[1;31m# Set the value depending on the type of param value.\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 521\u001b[0m \u001b[1;31m#\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 522\u001b[1;33m \u001b[1;32mif\u001b[0m \u001b[1;32mnot\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mis_indexed\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 523\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mvalue\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mval\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 524\u001b[0m \u001b[1;32melif\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_mutable\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
- "\u001b[1;31mKeyboardInterrupt\u001b[0m: "
- ]
- }
- ],
- "source": [
- "from pyomo.environ import *\n",
- "from pyomo.repn.collect import collect_linear_terms\n",
- "import pprint\n",
- "from pyomo.opt import SolverFactory\n",
- "from six import iteritems, iterkeys, itervalues\n",
- "from pyutilib.misc.timing import tic, toc\n",
- "\n",
- "tic()\n",
- "#creation of an Abstract model\n",
- "model = AbstractModel()\n",
- "\n",
- "toc('Model Constructed.')\n",
- "\n",
- "#define set\n",
- "def i_init(model,z):\n",
- " if z > 140:\n",
- " return Set.End\n",
- " return 'i'+str(z)\n",
- "model.i = Set(ordered=True, initialize=i_init)\n",
- "\n",
- "toc('Set i constructed')\n",
- "\n",
- "model.k = Set(ordered=True, initialize=['k1', 'k2'])\n",
- "\n",
- "toc('Set k constructed')\n",
- "\n",
- "def n_init(model, s):\n",
- " if s > 32312:\n",
- " return Set.End\n",
- " return 'n'+str(s)\n",
- "model.n = Set(ordered=True, initialize=n_init)\n",
- "\n",
- "toc('Set n constructed')\n",
- "\n",
- "def j_init(model, j):\n",
- " if j > 10:\n",
- " return Set.End\n",
- " return 'j'+str(j)\n",
- "model.j = Set(ordered=True, initialize=j_init)\n",
- "\n",
- "toc('Set j constructed')\n",
- "\n",
- "#alias\n",
- "model.ip=SetOf(model.i)\n",
- "model.kp=SetOf(model.k)\n",
- "\n",
- "toc('Alias constructed')\n",
- "\n",
- "#Parameter\n",
- "model.xo =Param(model.n, model.i)\n",
- "model.lowx =Param(model.n, model.i)\n",
- "model.upx =Param(model.n, model.i)\n",
- "model.x =Param(model.n, model.i, mutable=True)\n",
- "\n",
- "toc('Parameters cosntructed')\n",
- "\n",
- "def x_init(model):\n",
- " for index_n in model.n:\n",
- " for index_i in model.i:\n",
- " model.x[index_n, index_i]=(model.xo[index_n, index_i]+model.upx['n1', index_i]-2*model.lowx['n1', index_i])/(model.upx['n1',index_i]-model.lowx['n1',index_i])\n",
- "\n",
- "toc('x_init constructed')\n",
- "\n",
- "data = DataPortal(model=model)\n",
- "data.load(filename='Input_L.xlsx', range='Table10000', format='array', param='xo')\n",
- "data.load(filename='lowx.xlsx' , range='Dtable', format='array', param='lowx')\n",
- "data.load(filename='upx.xlsx' , range='Etable', format='array', param='upx')\n",
- "\n",
- "toc('data imported')\n",
- "\n",
- "#Varaibles\n",
- "model.c =Var()\n",
- "model.b =Var(model.i, model.ip, model.k, model.kp)\n",
- "model.a =Var(model.i, model.k)\n",
- "model.term1=Var(model.n, model.i, model.k)\n",
- "model.term2=Var(model.n, model.i, model.ip, model.k, model.kp)\n",
- "model.yt =Var(model.n, model.j)\n",
- "\n",
- "toc('variables constructed')\n",
- "\n",
- "#positive variables\n",
- "model.ya =Var(model.n, domain=NonNegativeReals)\n",
- "model.yb =Var(model.n, domain=NonNegativeReals)\n",
- "\n",
- "toc('variables constructed')\n",
- "\n",
- "#define constraint\n",
- "def eq1_rule(model, n, i, k):\n",
- " return model.term1[n, i, k] == model.a[i,k]*(model.x[n, i]**model.k.ord(k))\n",
- "model.eq1 = Constraint(model.n, model.i, model.k, rule=eq1_rule)\n",
- "\n",
- "toc('constraint 1 constructed')\n",
- "\n",
- "def eq3_rule(model, n):\n",
- " return model.yt[n, 'j1'] == model.c + sum(model.term1[n, i, k] for i in model.i for k in model.k)\n",
- "model.eq3 = Constraint(model.n, rule=eq3_rule)\n",
- "\n",
- "toc('constraint 2 constructed')\n",
- "\n",
- "def eq4_rule(model, n):\n",
- " if model.n.ord(n) < 143:\n",
- " return 1<=model.yt[n,'j1']<=19;\n",
- " else:\n",
- " return Constraint.Skip;\n",
- "model.eq4 = Constraint(model.n, rule=eq4_rule)\n",
- "\n",
- "toc('constraint 3 constructed')\n",
- "\n",
- "#def eq5_rule(model, n):\n",
- "# if model.n.ord(n) < 143:\n",
- "# return model.yt[n, 'j1']<=19;\n",
- "# else:\n",
- "# return Constraint.Skip;\n",
- "#model.eq5 = Constraint(model.n, rule=eq5_rule)\n",
- "\n",
- "def eq6_rule(model, n):\n",
- " if model.n.ord(n) > 142:\n",
- " return model.yt[n, 'j1']>=20\n",
- " else:\n",
- " return Constraint.Skip;\n",
- "model.eq6 = Constraint(model.n, rule=eq6_rule)\n",
- "\n",
- "toc('constraint 4 constructed')\n",
- "\n",
- "#define objective\n",
- "def objective_rule(model):\n",
- " return sum(model.ya[n]+model.yb[n] for n in model.n)\n",
- "model.objective = Objective(rule=objective_rule, sense=minimize, doc='Define objective function')\n",
- "\n",
- "toc('objective constructed')\n",
- "\n",
- "'''\n",
- "instance.objective.pprint()\n",
- "#A, b_coef, c_coef, c_sense, d_sense, vnames, cnames, v_domain = collect_linear_terms(instance, [])\n",
- "#print(c_coef)\n",
- "'''\n",
- "\n",
- "\n",
- "# This is an optional code path that allows the script to be run outside of\n",
- "# pyomo command-line. For example: python transport.py\n",
- "if __name__ == '__main__':\n",
- " # This emulates what the pyomo command-line tools does\n",
- " from pyomo.opt import SolverFactory\n",
- " import pyomo.environ\n",
- " toc('Start making')\n",
- " instance = model.create_instance(data)\n",
- " toc('Instance created')\n",
- " x_init(instance)\n",
- " instance.b.fix(0)\n",
- " opt = SolverFactory(\"cbc\")\n",
- "# opt.options['threads'] = 4\n",
- " toc('Going to solve')\n",
- " results = opt.solve(instance, tee=True)\n",
- " instance.solutions.load_from(results)\n",
- " #sends results to stdout\n",
- " results.write()\n",
- " print(\"\\nDisplaying Solution\\n\" + '-'*60)\n",
- "# pyomo_print_results(None, instance, results)\n",
- "# f = open('Result.txt', 'a')\n",
- "# instance.yt.pprint(f)\n",
- "# f.close()\n",
- "# instance.yt.pprint()\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "collapsed": true
- },
- "outputs": [],
- "source": []
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "collapsed": true
- },
- "outputs": [],
- "source": []
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "collapsed": true
- },
- "outputs": [],
- "source": []
- }
- ],
- "metadata": {
- "kernelspec": {
- "display_name": "Python 3",
- "language": "python",
- "name": "python3"
- },
- "language_info": {
- "codemirror_mode": {
- "name": "ipython",
- "version": 3
- },
- "file_extension": ".py",
- "mimetype": "text/x-python",
- "name": "python",
- "nbconvert_exporter": "python",
- "pygments_lexer": "ipython3",
- "version": "3.6.3"
- }
- },
- "nbformat": 4,
- "nbformat_minor": 2
- }
Add Comment
Please, Sign In to add comment