Guest User

Untitled

a guest
Feb 23rd, 2018
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 16.66 KB | None | 0 0
  1. {
  2. "cells": [
  3. {
  4. "cell_type": "code",
  5. "execution_count": 2,
  6. "metadata": {},
  7. "outputs": [
  8. {
  9. "name": "stdout",
  10. "output_type": "stream",
  11. "text": [
  12. "[ 23.28] Resetting the tic/toc delta timer\n",
  13. "[+ 0.00] Model Constructed.\n",
  14. "[+ 0.00] Set i constructed\n",
  15. "[+ 0.00] Set k constructed\n",
  16. "[+ 0.00] Set n constructed\n",
  17. "[+ 0.00] Set j constructed\n",
  18. "[+ 0.00] Alias constructed\n",
  19. "[+ 0.00] Parameters cosntructed\n",
  20. "[+ 0.00] x_init constructed\n",
  21. "[+ 17.44] data imported\n",
  22. "[+ 0.00] variables constructed\n",
  23. "[+ 0.00] variables constructed\n",
  24. "[+ 0.00] constraint 1 constructed\n",
  25. "[+ 0.00] constraint 2 constructed\n",
  26. "[+ 0.00] constraint 3 constructed\n",
  27. "[+ 0.00] constraint 4 constructed\n",
  28. "[+ 0.07] objective constructed\n",
  29. "[+ 0.00] Start making\n"
  30. ]
  31. },
  32. {
  33. "name": "stderr",
  34. "output_type": "stream",
  35. "text": [
  36. "IOPub data rate exceeded.\n",
  37. "The notebook server will temporarily stop sending output\n",
  38. "to the client in order to avoid crashing it.\n",
  39. "To change this limit, set the config variable\n",
  40. "`--NotebookApp.iopub_data_rate_limit`.\n"
  41. ]
  42. },
  43. {
  44. "ename": "KeyboardInterrupt",
  45. "evalue": "",
  46. "output_type": "error",
  47. "traceback": [
  48. "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
  49. "\u001b[1;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)",
  50. "\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",
  51. "\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",
  52. "\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",
  53. "\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",
  54. "\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",
  55. "\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",
  56. "\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",
  57. "\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",
  58. "\u001b[1;31mKeyboardInterrupt\u001b[0m: "
  59. ]
  60. }
  61. ],
  62. "source": [
  63. "from pyomo.environ import *\n",
  64. "from pyomo.repn.collect import collect_linear_terms\n",
  65. "import pprint\n",
  66. "from pyomo.opt import SolverFactory\n",
  67. "from six import iteritems, iterkeys, itervalues\n",
  68. "from pyutilib.misc.timing import tic, toc\n",
  69. "\n",
  70. "tic()\n",
  71. "#creation of an Abstract model\n",
  72. "model = AbstractModel()\n",
  73. "\n",
  74. "toc('Model Constructed.')\n",
  75. "\n",
  76. "#define set\n",
  77. "def i_init(model,z):\n",
  78. " if z > 140:\n",
  79. " return Set.End\n",
  80. " return 'i'+str(z)\n",
  81. "model.i = Set(ordered=True, initialize=i_init)\n",
  82. "\n",
  83. "toc('Set i constructed')\n",
  84. "\n",
  85. "model.k = Set(ordered=True, initialize=['k1', 'k2'])\n",
  86. "\n",
  87. "toc('Set k constructed')\n",
  88. "\n",
  89. "def n_init(model, s):\n",
  90. " if s > 32312:\n",
  91. " return Set.End\n",
  92. " return 'n'+str(s)\n",
  93. "model.n = Set(ordered=True, initialize=n_init)\n",
  94. "\n",
  95. "toc('Set n constructed')\n",
  96. "\n",
  97. "def j_init(model, j):\n",
  98. " if j > 10:\n",
  99. " return Set.End\n",
  100. " return 'j'+str(j)\n",
  101. "model.j = Set(ordered=True, initialize=j_init)\n",
  102. "\n",
  103. "toc('Set j constructed')\n",
  104. "\n",
  105. "#alias\n",
  106. "model.ip=SetOf(model.i)\n",
  107. "model.kp=SetOf(model.k)\n",
  108. "\n",
  109. "toc('Alias constructed')\n",
  110. "\n",
  111. "#Parameter\n",
  112. "model.xo =Param(model.n, model.i)\n",
  113. "model.lowx =Param(model.n, model.i)\n",
  114. "model.upx =Param(model.n, model.i)\n",
  115. "model.x =Param(model.n, model.i, mutable=True)\n",
  116. "\n",
  117. "toc('Parameters cosntructed')\n",
  118. "\n",
  119. "def x_init(model):\n",
  120. " for index_n in model.n:\n",
  121. " for index_i in model.i:\n",
  122. " 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",
  123. "\n",
  124. "toc('x_init constructed')\n",
  125. "\n",
  126. "data = DataPortal(model=model)\n",
  127. "data.load(filename='Input_L.xlsx', range='Table10000', format='array', param='xo')\n",
  128. "data.load(filename='lowx.xlsx' , range='Dtable', format='array', param='lowx')\n",
  129. "data.load(filename='upx.xlsx' , range='Etable', format='array', param='upx')\n",
  130. "\n",
  131. "toc('data imported')\n",
  132. "\n",
  133. "#Varaibles\n",
  134. "model.c =Var()\n",
  135. "model.b =Var(model.i, model.ip, model.k, model.kp)\n",
  136. "model.a =Var(model.i, model.k)\n",
  137. "model.term1=Var(model.n, model.i, model.k)\n",
  138. "model.term2=Var(model.n, model.i, model.ip, model.k, model.kp)\n",
  139. "model.yt =Var(model.n, model.j)\n",
  140. "\n",
  141. "toc('variables constructed')\n",
  142. "\n",
  143. "#positive variables\n",
  144. "model.ya =Var(model.n, domain=NonNegativeReals)\n",
  145. "model.yb =Var(model.n, domain=NonNegativeReals)\n",
  146. "\n",
  147. "toc('variables constructed')\n",
  148. "\n",
  149. "#define constraint\n",
  150. "def eq1_rule(model, n, i, k):\n",
  151. " return model.term1[n, i, k] == model.a[i,k]*(model.x[n, i]**model.k.ord(k))\n",
  152. "model.eq1 = Constraint(model.n, model.i, model.k, rule=eq1_rule)\n",
  153. "\n",
  154. "toc('constraint 1 constructed')\n",
  155. "\n",
  156. "def eq3_rule(model, n):\n",
  157. " return model.yt[n, 'j1'] == model.c + sum(model.term1[n, i, k] for i in model.i for k in model.k)\n",
  158. "model.eq3 = Constraint(model.n, rule=eq3_rule)\n",
  159. "\n",
  160. "toc('constraint 2 constructed')\n",
  161. "\n",
  162. "def eq4_rule(model, n):\n",
  163. " if model.n.ord(n) < 143:\n",
  164. " return 1<=model.yt[n,'j1']<=19;\n",
  165. " else:\n",
  166. " return Constraint.Skip;\n",
  167. "model.eq4 = Constraint(model.n, rule=eq4_rule)\n",
  168. "\n",
  169. "toc('constraint 3 constructed')\n",
  170. "\n",
  171. "#def eq5_rule(model, n):\n",
  172. "# if model.n.ord(n) < 143:\n",
  173. "# return model.yt[n, 'j1']<=19;\n",
  174. "# else:\n",
  175. "# return Constraint.Skip;\n",
  176. "#model.eq5 = Constraint(model.n, rule=eq5_rule)\n",
  177. "\n",
  178. "def eq6_rule(model, n):\n",
  179. " if model.n.ord(n) > 142:\n",
  180. " return model.yt[n, 'j1']>=20\n",
  181. " else:\n",
  182. " return Constraint.Skip;\n",
  183. "model.eq6 = Constraint(model.n, rule=eq6_rule)\n",
  184. "\n",
  185. "toc('constraint 4 constructed')\n",
  186. "\n",
  187. "#define objective\n",
  188. "def objective_rule(model):\n",
  189. " return sum(model.ya[n]+model.yb[n] for n in model.n)\n",
  190. "model.objective = Objective(rule=objective_rule, sense=minimize, doc='Define objective function')\n",
  191. "\n",
  192. "toc('objective constructed')\n",
  193. "\n",
  194. "'''\n",
  195. "instance.objective.pprint()\n",
  196. "#A, b_coef, c_coef, c_sense, d_sense, vnames, cnames, v_domain = collect_linear_terms(instance, [])\n",
  197. "#print(c_coef)\n",
  198. "'''\n",
  199. "\n",
  200. "\n",
  201. "# This is an optional code path that allows the script to be run outside of\n",
  202. "# pyomo command-line. For example: python transport.py\n",
  203. "if __name__ == '__main__':\n",
  204. " # This emulates what the pyomo command-line tools does\n",
  205. " from pyomo.opt import SolverFactory\n",
  206. " import pyomo.environ\n",
  207. " toc('Start making')\n",
  208. " instance = model.create_instance(data)\n",
  209. " toc('Instance created')\n",
  210. " x_init(instance)\n",
  211. " instance.b.fix(0)\n",
  212. " opt = SolverFactory(\"cbc\")\n",
  213. "# opt.options['threads'] = 4\n",
  214. " toc('Going to solve')\n",
  215. " results = opt.solve(instance, tee=True)\n",
  216. " instance.solutions.load_from(results)\n",
  217. " #sends results to stdout\n",
  218. " results.write()\n",
  219. " print(\"\\nDisplaying Solution\\n\" + '-'*60)\n",
  220. "# pyomo_print_results(None, instance, results)\n",
  221. "# f = open('Result.txt', 'a')\n",
  222. "# instance.yt.pprint(f)\n",
  223. "# f.close()\n",
  224. "# instance.yt.pprint()\n"
  225. ]
  226. },
  227. {
  228. "cell_type": "code",
  229. "execution_count": null,
  230. "metadata": {
  231. "collapsed": true
  232. },
  233. "outputs": [],
  234. "source": []
  235. },
  236. {
  237. "cell_type": "code",
  238. "execution_count": null,
  239. "metadata": {
  240. "collapsed": true
  241. },
  242. "outputs": [],
  243. "source": []
  244. },
  245. {
  246. "cell_type": "code",
  247. "execution_count": null,
  248. "metadata": {
  249. "collapsed": true
  250. },
  251. "outputs": [],
  252. "source": []
  253. }
  254. ],
  255. "metadata": {
  256. "kernelspec": {
  257. "display_name": "Python 3",
  258. "language": "python",
  259. "name": "python3"
  260. },
  261. "language_info": {
  262. "codemirror_mode": {
  263. "name": "ipython",
  264. "version": 3
  265. },
  266. "file_extension": ".py",
  267. "mimetype": "text/x-python",
  268. "name": "python",
  269. "nbconvert_exporter": "python",
  270. "pygments_lexer": "ipython3",
  271. "version": "3.6.3"
  272. }
  273. },
  274. "nbformat": 4,
  275. "nbformat_minor": 2
  276. }
Add Comment
Please, Sign In to add comment