Advertisement
Guest User

Untitled

a guest
Jan 30th, 2015
205
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 22.06 KB | None | 0 0
  1. {
  2. "metadata": {
  3. "name": "",
  4. "signature": "sha256:48f9f5cc4f9b2529579d4e2da6e9db1348fba4cf593b8c16124a7ad1324da6a2"
  5. },
  6. "nbformat": 3,
  7. "nbformat_minor": 0,
  8. "worksheets": [
  9. {
  10. "cells": [
  11. {
  12. "cell_type": "markdown",
  13. "metadata": {},
  14. "source": [
  15. "There are many reasons why Gurobi could fail to make use of a mip start from a partial solution. One is that the partial solution is infeasible. In this case, you can use the *irreducible inconsistent subsystem* feature to help track down the error."
  16. ]
  17. },
  18. {
  19. "cell_type": "markdown",
  20. "metadata": {},
  21. "source": [
  22. "import gurobi interface, and read the model stored in model.mps."
  23. ]
  24. },
  25. {
  26. "cell_type": "code",
  27. "collapsed": false,
  28. "input": [
  29. "import gurobipy as grb\n",
  30. "GRB = grb.GRB\n",
  31. "import csv"
  32. ],
  33. "language": "python",
  34. "metadata": {},
  35. "outputs": [],
  36. "prompt_number": 4
  37. },
  38. {
  39. "cell_type": "code",
  40. "collapsed": false,
  41. "input": [
  42. "m = grb.read(\"model.mps\")"
  43. ],
  44. "language": "python",
  45. "metadata": {},
  46. "outputs": [],
  47. "prompt_number": 5
  48. },
  49. {
  50. "cell_type": "markdown",
  51. "metadata": {},
  52. "source": [
  53. "Read the solution file into a dictionary of values indexed by name. The .sol file has an initial header line, followed by space separated pairs of variable names and values. It may have some empty lines, skip them as well. "
  54. ]
  55. },
  56. {
  57. "cell_type": "code",
  58. "collapsed": false,
  59. "input": [
  60. "with open(\"model.sol\") as fin:\n",
  61. " fin.next()\n",
  62. " solution = {fields[0]: float(fields[1]) \n",
  63. " for fields in csv.reader(fin, delimiter=' ')\n",
  64. " if len(fields) == 2}"
  65. ],
  66. "language": "python",
  67. "metadata": {},
  68. "outputs": [],
  69. "prompt_number": 6
  70. },
  71. {
  72. "cell_type": "markdown",
  73. "metadata": {},
  74. "source": [
  75. "force the solution of model.mps to be the an extension of the solution found in model.sol by setting the upper and lower bounds to be the values in solution."
  76. ]
  77. },
  78. {
  79. "cell_type": "code",
  80. "collapsed": false,
  81. "input": [
  82. "for vname, x in solution.iteritems():\n",
  83. " dvar = m.getVarByName(vname)\n",
  84. " dvar.LB = x\n",
  85. " dvar.UB = x"
  86. ],
  87. "language": "python",
  88. "metadata": {},
  89. "outputs": [],
  90. "prompt_number": 7
  91. },
  92. {
  93. "cell_type": "markdown",
  94. "metadata": {},
  95. "source": [
  96. "Attempt an optimize to complete the solution. It's possible that this will actually find a solution even though Gurobi reported that it couldn't use the solution as a MIP start."
  97. ]
  98. },
  99. {
  100. "cell_type": "code",
  101. "collapsed": false,
  102. "input": [
  103. "m.optimize()"
  104. ],
  105. "language": "python",
  106. "metadata": {},
  107. "outputs": [
  108. {
  109. "output_type": "stream",
  110. "stream": "stdout",
  111. "text": [
  112. "Optimize a model with 6808 rows, 6752 columns and 42784 nonzeros\n"
  113. ]
  114. },
  115. {
  116. "output_type": "stream",
  117. "stream": "stdout",
  118. "text": [
  119. "Coefficient statistics:\n"
  120. ]
  121. },
  122. {
  123. "output_type": "stream",
  124. "stream": "stdout",
  125. "text": [
  126. " Matrix range [1e+00, 5e+00]\n"
  127. ]
  128. },
  129. {
  130. "output_type": "stream",
  131. "stream": "stdout",
  132. "text": [
  133. " Objective range [1e+01, 1e+03]\n"
  134. ]
  135. },
  136. {
  137. "output_type": "stream",
  138. "stream": "stdout",
  139. "text": [
  140. " Bounds range [1e+00, 3e+01]\n"
  141. ]
  142. },
  143. {
  144. "output_type": "stream",
  145. "stream": "stdout",
  146. "text": [
  147. " RHS range [1e+00, 3e+01]\n"
  148. ]
  149. },
  150. {
  151. "output_type": "stream",
  152. "stream": "stdout",
  153. "text": [
  154. "Presolve removed 4162 rows and 1774 columns\n"
  155. ]
  156. },
  157. {
  158. "output_type": "stream",
  159. "stream": "stdout",
  160. "text": [
  161. "Presolve time: 0.00s\n"
  162. ]
  163. },
  164. {
  165. "output_type": "stream",
  166. "stream": "stdout",
  167. "text": [
  168. "\n",
  169. "Explored 0 nodes (0 simplex iterations) in 0.01 seconds\n"
  170. ]
  171. },
  172. {
  173. "output_type": "stream",
  174. "stream": "stdout",
  175. "text": [
  176. "Thread count was 1 (of 8 available processors)\n"
  177. ]
  178. },
  179. {
  180. "output_type": "stream",
  181. "stream": "stdout",
  182. "text": [
  183. "\n"
  184. ]
  185. },
  186. {
  187. "output_type": "stream",
  188. "stream": "stdout",
  189. "text": [
  190. "Model is infeasible\n"
  191. ]
  192. },
  193. {
  194. "output_type": "stream",
  195. "stream": "stdout",
  196. "text": [
  197. "Best objective -, best bound -, gap -\n"
  198. ]
  199. }
  200. ],
  201. "prompt_number": 8
  202. },
  203. {
  204. "cell_type": "markdown",
  205. "metadata": {},
  206. "source": [
  207. "Gurobi has proven that there it no feasible solution, generate an IIS."
  208. ]
  209. },
  210. {
  211. "cell_type": "markdown",
  212. "metadata": {},
  213. "source": [
  214. "Compute the IIS. Setting the parameter IISMethod to 1, can give you smaller IIS sets. In this case, it does slightly better that the default."
  215. ]
  216. },
  217. {
  218. "cell_type": "code",
  219. "collapsed": false,
  220. "input": [
  221. "m.setParam(GRB.Param.IISMethod, 1)\n",
  222. "m.computeIIS()"
  223. ],
  224. "language": "python",
  225. "metadata": {},
  226. "outputs": [
  227. {
  228. "output_type": "stream",
  229. "stream": "stdout",
  230. "text": [
  231. "Changed value of parameter IISMethod to 1\n",
  232. " Prev: -1 Min: -1 Max: 1 Default: -1\n",
  233. "\n"
  234. ]
  235. },
  236. {
  237. "output_type": "stream",
  238. "stream": "stdout",
  239. "text": [
  240. "Computing Irreducible Inconsistent Subsystem (IIS)...\n"
  241. ]
  242. },
  243. {
  244. "output_type": "stream",
  245. "stream": "stdout",
  246. "text": [
  247. "\n"
  248. ]
  249. },
  250. {
  251. "output_type": "stream",
  252. "stream": "stdout",
  253. "text": [
  254. " Constraints Bounds Runtime\n"
  255. ]
  256. },
  257. {
  258. "output_type": "stream",
  259. "stream": "stdout",
  260. "text": [
  261. " Min Max Min Max\n"
  262. ]
  263. },
  264. {
  265. "output_type": "stream",
  266. "stream": "stdout",
  267. "text": [
  268. "------------------------------------------------\n"
  269. ]
  270. },
  271. {
  272. "output_type": "stream",
  273. "stream": "stdout",
  274. "text": [
  275. " 0 6808 0 13504 0s\n"
  276. ]
  277. },
  278. {
  279. "output_type": "stream",
  280. "stream": "stdout",
  281. "text": [
  282. " 14 14 113 113 3s\n"
  283. ]
  284. },
  285. {
  286. "output_type": "stream",
  287. "stream": "stdout",
  288. "text": [
  289. "\n"
  290. ]
  291. },
  292. {
  293. "output_type": "stream",
  294. "stream": "stdout",
  295. "text": [
  296. "IIS computed: 14 constraints, 113 bounds\n"
  297. ]
  298. },
  299. {
  300. "output_type": "stream",
  301. "stream": "stdout",
  302. "text": [
  303. "IIS runtime: 3.40 seconds\n"
  304. ]
  305. }
  306. ],
  307. "prompt_number": 9
  308. },
  309. {
  310. "cell_type": "markdown",
  311. "metadata": {},
  312. "source": [
  313. "Since this exercise it to find out why your solution is infeasible, check the intersection between the solution and the iis. "
  314. ]
  315. },
  316. {
  317. "cell_type": "code",
  318. "collapsed": false,
  319. "input": [
  320. "vars_in_iis = set(v.varName for v in m.getVars()\n",
  321. " if v.IISLB or v.IISUB)\n",
  322. "solution_in_iis = vars_in_iis.intersection(solution.keys())\n",
  323. "solution_in_iis, len(solution_in_iis)"
  324. ],
  325. "language": "python",
  326. "metadata": {},
  327. "outputs": [
  328. {
  329. "metadata": {},
  330. "output_type": "pyout",
  331. "prompt_number": 10,
  332. "text": [
  333. "({'s_8_0_13',\n",
  334. " 's_8_0_14',\n",
  335. " 's_8_0_15',\n",
  336. " 's_8_1_10',\n",
  337. " 's_8_1_11',\n",
  338. " 's_8_1_12',\n",
  339. " 's_8_1_9',\n",
  340. " 's_8_2_16',\n",
  341. " 's_8_2_17'},\n",
  342. " 9)"
  343. ]
  344. }
  345. ],
  346. "prompt_number": 10
  347. },
  348. {
  349. "cell_type": "markdown",
  350. "metadata": {},
  351. "source": [
  352. "You can also look at the entire iis by writing an ilp file."
  353. ]
  354. },
  355. {
  356. "cell_type": "code",
  357. "collapsed": false,
  358. "input": [
  359. "m.write(\"model.ilp\")\n",
  360. "!cat model.ilp"
  361. ],
  362. "language": "python",
  363. "metadata": {},
  364. "outputs": [
  365. {
  366. "output_type": "stream",
  367. "stream": "stdout",
  368. "text": [
  369. "Minimize\r\n",
  370. " \r\n",
  371. "Subject To\r\n",
  372. " c233: - s_8_0_9 - s_8_1_9 - s_8_2_9 + w_8_9 = 0\r\n",
  373. " c234: - s_8_0_10 - s_8_1_10 - s_8_2_10 + w_8_10 = 0\r\n",
  374. " c235: - s_8_0_11 - s_8_1_11 - s_8_2_11 + w_8_11 = 0\r\n",
  375. " c236: - s_8_0_12 - s_8_1_12 - s_8_2_12 + w_8_12 = 0\r\n",
  376. " c237: - s_8_0_13 - s_8_1_13 - s_8_2_13 + w_8_13 = 0\r\n",
  377. " c238: - s_8_0_14 - s_8_1_14 - s_8_2_14 + w_8_14 = 0\r\n",
  378. " c239: - s_8_0_15 - s_8_1_15 - s_8_2_15 + w_8_15 = 0\r\n",
  379. " c240: - s_8_0_16 - s_8_1_16 - s_8_2_16 + w_8_16 = 0\r\n",
  380. " c241: - s_8_0_17 - s_8_1_17 - s_8_2_17 + w_8_17 = 0\r\n",
  381. " c3696: - vBarLengthMax_8_0_0 - vBarLengthMax_8_0_1 - vBarLengthMax_8_0_2\r\n",
  382. " - vBarLengthMax_8_0_3 - vBarLengthMax_8_0_4 - vBarLengthMax_8_0_5\r\n",
  383. " - vBarLengthMax_8_0_6 - vBarLengthMax_8_0_7 - vBarLengthMax_8_0_8\r\n",
  384. " - vBarLengthMax_8_0_9 - vBarLengthMax_8_0_10 - vBarLengthMax_8_0_11\r\n",
  385. " - vBarLengthMax_8_0_12 - vBarLengthMax_8_0_13 - vBarLengthMax_8_0_14\r\n",
  386. " - vBarLengthMax_8_0_15 - vBarLengthMax_8_0_16 - vBarLengthMax_8_0_17\r\n",
  387. " - vBarLengthMax_8_0_18 - vBarLengthMax_8_0_19 - vBarLengthMax_8_0_20\r\n",
  388. " - vBarLengthMax_8_0_21 - vBarLengthMax_8_0_22 - vBarLengthMax_8_0_23\r\n",
  389. " + 2 vBarLengthMax_8_1_0 + 2 vBarLengthMax_8_1_1 + 2 vBarLengthMax_8_1_2\r\n",
  390. " + 2 vBarLengthMax_8_1_3 + 2 vBarLengthMax_8_1_4 + 2 vBarLengthMax_8_1_5\r\n",
  391. " + 2 vBarLengthMax_8_1_6 + 2 vBarLengthMax_8_1_7 + 2 vBarLengthMax_8_1_8\r\n",
  392. " + 2 vBarLengthMax_8_1_9 + 2 vBarLengthMax_8_1_10\r\n",
  393. " + 2 vBarLengthMax_8_1_11 + 2 vBarLengthMax_8_1_12\r\n",
  394. " + 2 vBarLengthMax_8_1_13 + 2 vBarLengthMax_8_1_14\r\n",
  395. " + 2 vBarLengthMax_8_1_15 + 2 vBarLengthMax_8_1_16\r\n",
  396. " + 2 vBarLengthMax_8_1_17 + 2 vBarLengthMax_8_1_18\r\n",
  397. " + 2 vBarLengthMax_8_1_19 + 2 vBarLengthMax_8_1_20\r\n",
  398. " + 2 vBarLengthMax_8_1_21 + 2 vBarLengthMax_8_1_22\r\n",
  399. " + 3 vBarLengthMax_8_2_0 + 3 vBarLengthMax_8_2_1 + 3 vBarLengthMax_8_2_2\r\n",
  400. " + 3 vBarLengthMax_8_2_3 + 3 vBarLengthMax_8_2_4 + 3 vBarLengthMax_8_2_5\r\n",
  401. " + 3 vBarLengthMax_8_2_6 + 3 vBarLengthMax_8_2_7 + 3 vBarLengthMax_8_2_8\r\n",
  402. " + 3 vBarLengthMax_8_2_9 + 3 vBarLengthMax_8_2_10\r\n",
  403. " + 3 vBarLengthMax_8_2_11 + 3 vBarLengthMax_8_2_12\r\n",
  404. " + 3 vBarLengthMax_8_2_13 + 3 vBarLengthMax_8_2_14\r\n",
  405. " + 3 vBarLengthMax_8_2_15 + 3 vBarLengthMax_8_2_16\r\n",
  406. " + 3 vBarLengthMax_8_2_17 + 3 vBarLengthMax_8_2_18\r\n",
  407. " + 3 vBarLengthMax_8_2_19 + 3 vBarLengthMax_8_2_20\r\n",
  408. " + 3 vBarLengthMax_8_2_21 + 4 vBarLengthMax_8_3_0 + 4 vBarLengthMax_8_3_1\r\n",
  409. " + 4 vBarLengthMax_8_3_2 + 4 vBarLengthMax_8_3_3 + 4 vBarLengthMax_8_3_4\r\n",
  410. " + 4 vBarLengthMax_8_3_5 + 4 vBarLengthMax_8_3_6 + 4 vBarLengthMax_8_3_7\r\n",
  411. " + 4 vBarLengthMax_8_3_8 + 4 vBarLengthMax_8_3_9 + 4 vBarLengthMax_8_3_10\r\n",
  412. " + 4 vBarLengthMax_8_3_11 + 4 vBarLengthMax_8_3_12\r\n",
  413. " + 4 vBarLengthMax_8_3_13 + 4 vBarLengthMax_8_3_14\r\n",
  414. " + 4 vBarLengthMax_8_3_15 + 4 vBarLengthMax_8_3_16\r\n",
  415. " + 4 vBarLengthMax_8_3_17 + 4 vBarLengthMax_8_3_18\r\n",
  416. " + 4 vBarLengthMax_8_3_19 + 4 vBarLengthMax_8_3_20\r\n",
  417. " + 5 vBarLengthMax_8_4_0 + 5 vBarLengthMax_8_4_1 + 5 vBarLengthMax_8_4_2\r\n",
  418. " + 5 vBarLengthMax_8_4_3 + 5 vBarLengthMax_8_4_4 + 5 vBarLengthMax_8_4_5\r\n",
  419. " + 5 vBarLengthMax_8_4_6 + 5 vBarLengthMax_8_4_7 + 5 vBarLengthMax_8_4_8\r\n",
  420. " + 5 vBarLengthMax_8_4_9 + 5 vBarLengthMax_8_4_10\r\n",
  421. " + 5 vBarLengthMax_8_4_11 + 5 vBarLengthMax_8_4_12\r\n",
  422. " + 5 vBarLengthMax_8_4_13 + 5 vBarLengthMax_8_4_14\r\n",
  423. " + 5 vBarLengthMax_8_4_15 + 5 vBarLengthMax_8_4_16\r\n",
  424. " + 5 vBarLengthMax_8_4_17 + 5 vBarLengthMax_8_4_18\r\n",
  425. " + 5 vBarLengthMax_8_4_19 + vBarLengthMaxAll_8_0 = 0\r\n",
  426. " c3697: - vBarLengthMax_8_1_0 - vBarLengthMax_8_1_1 - vBarLengthMax_8_1_2\r\n",
  427. " - vBarLengthMax_8_1_3 - vBarLengthMax_8_1_4 - vBarLengthMax_8_1_5\r\n",
  428. " - vBarLengthMax_8_1_6 - vBarLengthMax_8_1_7 - vBarLengthMax_8_1_8\r\n",
  429. " - vBarLengthMax_8_1_9 - vBarLengthMax_8_1_10 - vBarLengthMax_8_1_11\r\n",
  430. " - vBarLengthMax_8_1_12 - vBarLengthMax_8_1_13 - vBarLengthMax_8_1_14\r\n",
  431. " - vBarLengthMax_8_1_15 - vBarLengthMax_8_1_16 - vBarLengthMax_8_1_17\r\n",
  432. " - vBarLengthMax_8_1_18 - vBarLengthMax_8_1_19 - vBarLengthMax_8_1_20\r\n",
  433. " - vBarLengthMax_8_1_21 - vBarLengthMax_8_1_22 + 2 vBarLengthMax_8_2_0\r\n",
  434. " + 2 vBarLengthMax_8_2_1 + 2 vBarLengthMax_8_2_2 + 2 vBarLengthMax_8_2_3\r\n",
  435. " + 2 vBarLengthMax_8_2_4 + 2 vBarLengthMax_8_2_5 + 2 vBarLengthMax_8_2_6\r\n",
  436. " + 2 vBarLengthMax_8_2_7 + 2 vBarLengthMax_8_2_8 + 2 vBarLengthMax_8_2_9\r\n",
  437. " + 2 vBarLengthMax_8_2_10 + 2 vBarLengthMax_8_2_11\r\n",
  438. " + 2 vBarLengthMax_8_2_12 + 2 vBarLengthMax_8_2_13\r\n",
  439. " + 2 vBarLengthMax_8_2_14 + 2 vBarLengthMax_8_2_15\r\n",
  440. " + 2 vBarLengthMax_8_2_16 + 2 vBarLengthMax_8_2_17\r\n",
  441. " + 2 vBarLengthMax_8_2_18 + 2 vBarLengthMax_8_2_19\r\n",
  442. " + 2 vBarLengthMax_8_2_20 + 2 vBarLengthMax_8_2_21\r\n",
  443. " + 3 vBarLengthMax_8_3_0 + 3 vBarLengthMax_8_3_1 + 3 vBarLengthMax_8_3_2\r\n",
  444. " + 3 vBarLengthMax_8_3_3 + 3 vBarLengthMax_8_3_4 + 3 vBarLengthMax_8_3_5\r\n",
  445. " + 3 vBarLengthMax_8_3_6 + 3 vBarLengthMax_8_3_7 + 3 vBarLengthMax_8_3_8\r\n",
  446. " + 3 vBarLengthMax_8_3_9 + 3 vBarLengthMax_8_3_10\r\n",
  447. " + 3 vBarLengthMax_8_3_11 + 3 vBarLengthMax_8_3_12\r\n",
  448. " + 3 vBarLengthMax_8_3_13 + 3 vBarLengthMax_8_3_14\r\n",
  449. " + 3 vBarLengthMax_8_3_15 + 3 vBarLengthMax_8_3_16\r\n",
  450. " + 3 vBarLengthMax_8_3_17 + 3 vBarLengthMax_8_3_18\r\n",
  451. " + 3 vBarLengthMax_8_3_19 + 3 vBarLengthMax_8_3_20\r\n",
  452. " + 4 vBarLengthMax_8_4_0 + 4 vBarLengthMax_8_4_1 + 4 vBarLengthMax_8_4_2\r\n",
  453. " + 4 vBarLengthMax_8_4_3 + 4 vBarLengthMax_8_4_4 + 4 vBarLengthMax_8_4_5\r\n",
  454. " + 4 vBarLengthMax_8_4_6 + 4 vBarLengthMax_8_4_7 + 4 vBarLengthMax_8_4_8\r\n",
  455. " + 4 vBarLengthMax_8_4_9 + 4 vBarLengthMax_8_4_10\r\n",
  456. " + 4 vBarLengthMax_8_4_11 + 4 vBarLengthMax_8_4_12\r\n",
  457. " + 4 vBarLengthMax_8_4_13 + 4 vBarLengthMax_8_4_14\r\n",
  458. " + 4 vBarLengthMax_8_4_15 + 4 vBarLengthMax_8_4_16\r\n",
  459. " + 4 vBarLengthMax_8_4_17 + 4 vBarLengthMax_8_4_18\r\n",
  460. " + 4 vBarLengthMax_8_4_19 + vBarLengthMaxAll_8_1 = 0\r\n",
  461. " c4672: w_8_9 + w_8_10 + w_8_11 + w_8_12 + w_8_13 + w_8_14 + w_8_15\r\n",
  462. " - vBarLengthMax_8_2_9 <= 6\r\n",
  463. " c4673: w_8_10 + w_8_11 + w_8_12 + w_8_13 + w_8_14 + w_8_15 + w_8_16\r\n",
  464. " - vBarLengthMax_8_2_10 <= 6\r\n",
  465. " c4715: w_8_9 + w_8_10 + w_8_11 + w_8_12 + w_8_13 + w_8_14 + w_8_15\r\n",
  466. " + w_8_16 + w_8_17 - vBarLengthMax_8_4_9 <= 8\r\n",
  467. "Bounds\r\n",
  468. " s_8_0_13 >= 1\r\n",
  469. " s_8_0_14 >= 1\r\n",
  470. " s_8_0_15 >= 1\r\n",
  471. " s_8_1_9 >= 1\r\n",
  472. " s_8_1_10 >= 1\r\n",
  473. " s_8_1_11 >= 1\r\n",
  474. " s_8_1_12 >= 1\r\n",
  475. " s_8_2_16 >= 1\r\n",
  476. " s_8_2_17 >= 1\r\n",
  477. " w_8_9 free\r\n",
  478. " w_8_10 free\r\n",
  479. " w_8_11 free\r\n",
  480. " w_8_12 free\r\n",
  481. " w_8_13 free\r\n",
  482. " w_8_14 free\r\n",
  483. " w_8_15 free\r\n",
  484. " w_8_16 free\r\n",
  485. " w_8_17 free\r\n",
  486. " -infinity <= vBarLengthMax_8_0_0 <= 1\r\n",
  487. " -infinity <= vBarLengthMax_8_0_1 <= 1\r\n",
  488. " -infinity <= vBarLengthMax_8_0_2 <= 1\r\n",
  489. " -infinity <= vBarLengthMax_8_0_3 <= 1\r\n",
  490. " -infinity <= vBarLengthMax_8_0_4 <= 1\r\n",
  491. " -infinity <= vBarLengthMax_8_0_5 <= 1\r\n",
  492. " -infinity <= vBarLengthMax_8_0_6 <= 1\r\n",
  493. " -infinity <= vBarLengthMax_8_0_7 <= 1\r\n",
  494. " -infinity <= vBarLengthMax_8_0_8 <= 1\r\n",
  495. " -infinity <= vBarLengthMax_8_0_9 <= 1\r\n",
  496. " -infinity <= vBarLengthMax_8_0_10 <= 1\r\n",
  497. " -infinity <= vBarLengthMax_8_0_11 <= 1\r\n",
  498. " -infinity <= vBarLengthMax_8_0_12 <= 1\r\n",
  499. " -infinity <= vBarLengthMax_8_0_13 <= 1\r\n",
  500. " -infinity <= vBarLengthMax_8_0_14 <= 1\r\n",
  501. " -infinity <= vBarLengthMax_8_0_15 <= 1\r\n",
  502. " -infinity <= vBarLengthMax_8_0_16 <= 1\r\n",
  503. " -infinity <= vBarLengthMax_8_0_17 <= 1\r\n",
  504. " -infinity <= vBarLengthMax_8_0_18 <= 1\r\n",
  505. " -infinity <= vBarLengthMax_8_0_19 <= 1\r\n",
  506. " -infinity <= vBarLengthMax_8_0_20 <= 1\r\n",
  507. " -infinity <= vBarLengthMax_8_0_21 <= 1\r\n",
  508. " -infinity <= vBarLengthMax_8_0_22 <= 1\r\n",
  509. " -infinity <= vBarLengthMax_8_0_23 <= 1\r\n",
  510. " vBarLengthMax_8_1_0 free\r\n",
  511. " vBarLengthMax_8_1_1 free\r\n",
  512. " vBarLengthMax_8_1_2 free\r\n",
  513. " vBarLengthMax_8_1_3 free\r\n",
  514. " vBarLengthMax_8_1_4 free\r\n",
  515. " vBarLengthMax_8_1_5 free\r\n",
  516. " vBarLengthMax_8_1_6 free\r\n",
  517. " vBarLengthMax_8_1_7 free\r\n",
  518. " vBarLengthMax_8_1_8 free\r\n",
  519. " vBarLengthMax_8_1_9 free\r\n",
  520. " vBarLengthMax_8_1_10 free\r\n",
  521. " vBarLengthMax_8_1_11 free\r\n",
  522. " vBarLengthMax_8_1_12 free\r\n",
  523. " vBarLengthMax_8_1_13 free\r\n",
  524. " vBarLengthMax_8_1_14 free\r\n",
  525. " vBarLengthMax_8_1_15 free\r\n",
  526. " vBarLengthMax_8_1_16 free\r\n",
  527. " vBarLengthMax_8_1_17 free\r\n",
  528. " vBarLengthMax_8_1_18 free\r\n",
  529. " vBarLengthMax_8_1_19 free\r\n",
  530. " vBarLengthMax_8_1_20 free\r\n",
  531. " vBarLengthMax_8_1_21 free\r\n",
  532. " vBarLengthMax_8_1_22 free\r\n",
  533. " vBarLengthMax_8_2_9 free\r\n",
  534. " vBarLengthMax_8_2_10 free\r\n",
  535. " vBarLengthMax_8_4_9 free\r\n",
  536. "Generals\r\n",
  537. " s_8_0_9 s_8_0_10 s_8_0_11 s_8_0_12 s_8_0_13 s_8_0_14 s_8_0_15 s_8_0_16\r\n",
  538. " s_8_0_17 s_8_1_9 s_8_1_10 s_8_1_11 s_8_1_12 s_8_1_13 s_8_1_14 s_8_1_15\r\n",
  539. " s_8_1_16 s_8_1_17 s_8_2_9 s_8_2_10 s_8_2_11 s_8_2_12 s_8_2_13 s_8_2_14\r\n",
  540. " s_8_2_15 s_8_2_16 s_8_2_17 w_8_9 w_8_10 w_8_11 w_8_12 w_8_13 w_8_14 w_8_15\r\n",
  541. " w_8_16 w_8_17 vBarLengthMax_8_0_0 vBarLengthMax_8_0_1 vBarLengthMax_8_0_2\r\n",
  542. " vBarLengthMax_8_0_3 vBarLengthMax_8_0_4 vBarLengthMax_8_0_5\r\n",
  543. " vBarLengthMax_8_0_6 vBarLengthMax_8_0_7 vBarLengthMax_8_0_8\r\n",
  544. " vBarLengthMax_8_0_9 vBarLengthMax_8_0_10 vBarLengthMax_8_0_11\r\n",
  545. " vBarLengthMax_8_0_12 vBarLengthMax_8_0_13 vBarLengthMax_8_0_14\r\n",
  546. " vBarLengthMax_8_0_15 vBarLengthMax_8_0_16 vBarLengthMax_8_0_17\r\n",
  547. " vBarLengthMax_8_0_18 vBarLengthMax_8_0_19 vBarLengthMax_8_0_20\r\n",
  548. " vBarLengthMax_8_0_21 vBarLengthMax_8_0_22 vBarLengthMax_8_0_23\r\n",
  549. " vBarLengthMax_8_1_0 vBarLengthMax_8_1_1 vBarLengthMax_8_1_2\r\n",
  550. " vBarLengthMax_8_1_3 vBarLengthMax_8_1_4 vBarLengthMax_8_1_5\r\n",
  551. " vBarLengthMax_8_1_6 vBarLengthMax_8_1_7 vBarLengthMax_8_1_8\r\n",
  552. " vBarLengthMax_8_1_9 vBarLengthMax_8_1_10 vBarLengthMax_8_1_11\r\n",
  553. " vBarLengthMax_8_1_12 vBarLengthMax_8_1_13 vBarLengthMax_8_1_14\r\n",
  554. " vBarLengthMax_8_1_15 vBarLengthMax_8_1_16 vBarLengthMax_8_1_17\r\n",
  555. " vBarLengthMax_8_1_18 vBarLengthMax_8_1_19 vBarLengthMax_8_1_20\r\n",
  556. " vBarLengthMax_8_1_21 vBarLengthMax_8_1_22 vBarLengthMax_8_2_0\r\n",
  557. " vBarLengthMax_8_2_1 vBarLengthMax_8_2_2 vBarLengthMax_8_2_3\r\n",
  558. " vBarLengthMax_8_2_4 vBarLengthMax_8_2_5 vBarLengthMax_8_2_6\r\n",
  559. " vBarLengthMax_8_2_7 vBarLengthMax_8_2_8 vBarLengthMax_8_2_9\r\n",
  560. " vBarLengthMax_8_2_10 vBarLengthMax_8_2_11 vBarLengthMax_8_2_12\r\n",
  561. " vBarLengthMax_8_2_13 vBarLengthMax_8_2_14 vBarLengthMax_8_2_15\r\n",
  562. " vBarLengthMax_8_2_16 vBarLengthMax_8_2_17 vBarLengthMax_8_2_18\r\n",
  563. " vBarLengthMax_8_2_19 vBarLengthMax_8_2_20 vBarLengthMax_8_2_21\r\n",
  564. " vBarLengthMax_8_3_0 vBarLengthMax_8_3_1 vBarLengthMax_8_3_2\r\n",
  565. " vBarLengthMax_8_3_3 vBarLengthMax_8_3_4 vBarLengthMax_8_3_5\r\n",
  566. " vBarLengthMax_8_3_6 vBarLengthMax_8_3_7 vBarLengthMax_8_3_8\r\n",
  567. " vBarLengthMax_8_3_9 vBarLengthMax_8_3_10 vBarLengthMax_8_3_11\r\n",
  568. " vBarLengthMax_8_3_12 vBarLengthMax_8_3_13 vBarLengthMax_8_3_14\r\n",
  569. " vBarLengthMax_8_3_15 vBarLengthMax_8_3_16 vBarLengthMax_8_3_17\r\n",
  570. " vBarLengthMax_8_3_18 vBarLengthMax_8_3_19 vBarLengthMax_8_3_20\r\n",
  571. " vBarLengthMax_8_4_0 vBarLengthMax_8_4_1 vBarLengthMax_8_4_2\r\n",
  572. " vBarLengthMax_8_4_3 vBarLengthMax_8_4_4 vBarLengthMax_8_4_5\r\n",
  573. " vBarLengthMax_8_4_6 vBarLengthMax_8_4_7 vBarLengthMax_8_4_8\r\n",
  574. " vBarLengthMax_8_4_9 vBarLengthMax_8_4_10 vBarLengthMax_8_4_11\r\n",
  575. " vBarLengthMax_8_4_12 vBarLengthMax_8_4_13 vBarLengthMax_8_4_14\r\n",
  576. " vBarLengthMax_8_4_15 vBarLengthMax_8_4_16 vBarLengthMax_8_4_17\r\n",
  577. " vBarLengthMax_8_4_18 vBarLengthMax_8_4_19 vBarLengthMaxAll_8_0\r\n",
  578. " vBarLengthMaxAll_8_1\r\n",
  579. "End\r\n"
  580. ]
  581. }
  582. ],
  583. "prompt_number": 11
  584. },
  585. {
  586. "cell_type": "code",
  587. "collapsed": false,
  588. "input": [],
  589. "language": "python",
  590. "metadata": {},
  591. "outputs": [],
  592. "prompt_number": 11
  593. }
  594. ],
  595. "metadata": {}
  596. }
  597. ]
  598. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement