B Ÿ@`)ã@s,ddlZddlZddlmZddlZej e¡Zddl Z ddl m Z m Z mZmZmZmZddlmZddlmZddlmZddlmZddlmZdd lmZd Zd Zd Z d Z!dZ"dZ#dZ$dZ%dZ&dZ'ddd„Z(Gdd„de)ƒZ*Gdd„de j+j,j-ƒZ.Gdd„de)ƒZ/Gdd„de)ƒZ0Gdd„de)ƒZ1dS) éN)Ú itemgetter)Ú TextLabelerÚVarÚ ConstraintÚ PiecewiseÚ ExpressionÚ SOSConstraint)Ú_VarData)Ú_PiecewiseData)Ú phextension)Ú_PHSolverServer)Ú/transmit_external_function_invocation_to_worker)Ú iteritemsZ DDSIPhelp_x64z rows+colsZ DDSIP_126_x64z.17gZDDSIP_DISABLE_STOCHASTIC_RHSFZDDSIP_DISABLE_STOCHASTIC_MATRIXTZDDSIP_DISABLE_STOCHASTIC_COSTScCs t||||||ƒ}|j||dS)N)Úglobal_reference_scenario)Ú DDSIP_InputÚwrite)ÚphÚ scenario_treeÚscenario_or_bundleÚ scenario_nameÚscenario_indexÚfirststage_var_suffixrÚdd©rúE/tmp/pip-unpacked-wheel-bi3529v6/pyomo/pysp/plugins/ddextensionnew.pyÚWrite_DDSIP_InputOs rc@s€eZdZdd„Zddd„Zdd„Zdd „Zd d „Zd d „Zdd„Z dd„Z dd„Z dd„Z dd„Z dd„Zdd„Zd dd„ZdS)!rcCsÖg|_||_||_d|j|_d|j|_d|j|_d|j|_||_|j  |¡|_ d|_ g|_ i|_ g|_i|_g|_i|_i|_d|_d|_d|_d|_d|_d|_g|_i|_g|_i|_g|_|j j|_ dS)Nz ddlpfile.lp.zrhs.sc.z matrix.sc.zcost.sc.r)Úinput_file_name_listZ_scenario_nameÚ_scenario_indexÚ _lpfilenameÚ _rhsfilenameÚ _matfilenameÚ _objfilenameÚ_firststage_var_suffixÚ_scenario_treeÚ get_scenarioÚ_reference_scenarioÚ_reference_scenario_instanceÚ_FirstStageVarsÚ_FirstStageVarIdMapÚ_FirstStageDerivedVarsÚ_FirstStageDerivedVarIdMapÚ_SecondStageVarsÚ_SecondStageVarIdMapÚ_StageCostVarStageMapÚ_num_stochastic_rhsÚ_num_stochastic_matrix_entriesÚ_num_stochastic_costsÚ_num_first_stage_constraintsÚ_num_second_stage_constraintsÚ"_count_constraint_ONE_VAR_CONSTANTÚ_AllVarsÚ _ColumnMapÚ_ColumnNameListÚ_RowMapÚ _RowNameListÚ _instance)ÚselfrrrrrrrrrÚ__init__\s:    zDDSIP_Input.__init__FcCs|j}| ¡| |¡\}}| ||¡}| ||¡|r€tj |j¡sLt ‚yt  tj  t  ¡t ¡¡Wntk r|YnXy t  tj  t  ¡t d¡¡Wntk r²YnXtj tj  t  ¡t ¡¡rÒt ‚tj tj  t  ¡t d¡¡rôt ‚tdttƒd|jdt|ƒƒt td|jdt|ƒ¡tj tj  t  ¡t d¡¡s^t ‚t dtj  t  ¡t d¡¡n tj tj  t  ¡t ¡¡s t ‚d}d}d} tt dƒ"} x|  ¡D] } |  ¡} |dkrâPnî| ddkrú|d }nÖ|d krft| ƒd krf|d 7}t| dƒ|j| d <|j | d ¡t|jƒd |j|jd ksÐt ‚nj|d krÆt| ƒd krÆ| d 7} t| dƒ|j| d <|j | d ¡t|jƒd |j|jd ksÆt ‚qÆWWdQRX| |j¡\} }}}t  |j¡t|jƒd t|jƒkst ‚t|jƒt|ƒ|jks|j?|j.|j6|j2|j(|j)|jfSdS)Nz.gzz COMMAND= ú z gzip -df rÚréZ__________________________éééÿÿÿÿcSsg|] \}}|‘qSrr)Ú.0ÚnameÚcolrrrú åsz%DDSIP_Input.write..)ÚkeyÚ FirstStage)Úinclude_position_section)@r&Z_preprocess_scenario_instancesÚ_write_reference_scenario_lpÚ_Constraints_StagesÚ_Populate_StageVarsÚosÚpathÚexistsrÚAssertionErrorÚremoveÚjoinÚgetcwdÚ_ddsip_help_outputÚOSErrorÚprintÚstrÚ _ddsip_helpÚsystemÚopenÚ readlinesÚsplitÚlenÚintr5r6Úappendr7r8Ú_read_parse_lpr4r3ÚsetÚ VarToCoeffÚkeysÚsortedÚlistÚitemsrÚ sort_write_lpr1r2Ú intersectionÚgetattrÚ_disable_stoch_rhs_flagnameÚ_disable_stoch_rhs_defaultr.Ú _write_rhs_scÚ_disable_stoch_costs_flagnameÚ_disable_stoch_costs_defaultr0Ú _write_obj_scÚ_disable_stoch_matrix_flagnameÚ_disable_stoch_matrix_defaultr/Ú_write_matrix_scrr'r(r)r*r+r,r-)r:rrZscenario_instanceÚ max_name_lenÚ symbol_mapÚStageToConstraintMapZ dashcountZvarcountZconcountÚfÚlineÚpiecesÚ ObjObjectÚ ConstraintMapÚremaining_lpfile_rowsÚAllConstraintNamesÚMatrixEntries_ConstrToRow_MapÚSecondStageConstrOrderrGÚ ConstrNamesÚFirstStageConstrOrderÚ count_rowsrCrrrrsâ   "& $"     (  (    zDDSIP_Input.writec s¸ddl}|jjj ¡}tdˆjfƒˆjjj }|j   ¡j ‰t ‡fdd„t|ƒDƒƒ‰dd„}tƒ‰‡‡‡fdd„}|ˆjˆj|d|iƒ\}}|ˆjksœt‚td d„|j Dƒƒ} | |fS) NrzWriting LP file to %sc3s"|]\}}|ˆkrt|ƒVqdS)N)Úid)rBZscenariotree_idÚvardata)Ú rootnode_varsrrú Csz;DDSIP_Input._write_reference_scenario_lp..cSsdS)NTr)ÚxrrrÚFóz:DDSIP_Input._write_reference_scenario_lp..cs(ˆ|ƒt|tƒrt|ƒˆkr dnˆjS)NÚ)Ú isinstancer rr")r…)Úfirststage_idsr:Ú text_labelerrrr†Hs Úlabelercss|]}t|ƒVqdS)N)r\)rBÚsymbolrrrr„Xs)Z pyomo.environÚrepnÚpluginsZcpxlpZProblemWriter_cpxlprUrr&Ú_ScenarioTreeSymbolMapÚbySymbolr#Ú findRootNodeÚ_standard_variable_idsr`rrrOÚmax) r:rÚpyomoZlp_file_writerZscenariotree_varsZ capabilitiesrŒZoutput_filenamersrrr)rŠrƒr:r‹rrI5s"   z(DDSIP_Input._write_reference_scenario_lpcCsytddƒ}Wn&tk r4tdƒt d¡YnX|j d¡i}| |dd|dd¡| |d|¡| d ¡|d }t |  ¡ƒ} t |   |¡ƒ} t | t |ƒƒ} d } d|_ d|_xr| D]j} | d | d¡| d7} | || <|| }| |d|¡| |dd |dd ¡|j d7_ qÆWxt| D]l} | d | d¡| d7} | || <|| }| |d|¡| |dd |dd ¡|jd7_q:WxRtt|ƒƒD]B}| d ¡x0tt||ƒƒD]}| |||d ¡qØWq¸W| ¡|| |j |jfS)Nzsorted_LPfile.lpÚwtz4IO Error so that sorted_LPfile.lp cannot be created.r?rz z: r@z s.t. rGrAÚ r<)rYÚIOErrorrUÚsysÚoutrr^rÚprint_coeff_var_from_mapr`rbrcrgr1r2Úranger\Úclose)r:rrxryrtrzÚlpr|rGr~rr}r€rCZlp_conÚrowÚirrrrf[sN      "zDDSIP_Input.sort_write_lpc CsXtƒ}i}ytjt|dƒdddd}WnFtjk rl}z&t|dƒt dtt j |f¡Wdd}~XYnXt |ƒdd…}d}|  ||¡}|  ||d¡|d 7}d}| |||¡} | | ¡| |||d ¡\}}x¾||gkršd} | dk r(| | |||¡d} | |||d ¡\}}qÞd |t||ƒkr`|||} | |||d ¡\}}qÞ| ||||||d ¡d} | |||d ¡\}}qÞW| dk r¶td ƒtd ƒ|  ||¡}d}d |||ksüd |||ksüd|||krà|d 7}|  ||¡}xÌ||d ¡dkrÞd||dkrDd |_P| |||¡} tƒ|| <t||ƒd kr||d 7}n|d 7}d} d} xJ||gkrØ| dk rð||  | |||¡} |||} | dkr d} | |||d ¡\}}n°d |t||ƒkr(|||} | |||d ¡\}}nxd |t||ƒkr ||  ||||||d ¡} |||} |||d } | dkr d} | |||d ¡\}}| dkr||  | ¡||  | ¡|d 7}d}PqWqW|jrd||dksþt‚|t|ƒkst‚g}x*|t|ƒkr>| ||¡|d 7}qWt | ¡ƒ}||||fS)NÚrtr<ú|T)Ú delimiterÚ quotecharÚskipinitialspacez is not found!zfile %s, line %d: %srr?r@z- error mismatched pairs in objective functionzs.t.Ústz subject toZboundsZc_e_ONE_VAR_CONSTANTrˆÚEndOfConstraint)ÚLPFileObjClassÚcsvÚreaderrYÚErrorrUr™ÚexitÚfilenameruÚline_numrdÚSkipLPNullLinesÚ AssignSenseÚ ClearNameÚ AssignNameÚLocalPostionUpdateÚAddToMapr\Ústripr3ÚLPFileConstraintClassÚAssignComparatorÚ AssignRHSrOr^rb)r:Z lp_filenamerxryÚlp_fileÚeZ list_lp_fileÚCurrRowÚCurrElemrCZ LastCoeffZCurrConstraintNameÚendZLastVarrzr{rrrr_˜s¢ (              $    zDDSIP_Input._read_parse_lpcCsHt| ¡ƒ}| ¡dtd}x"|D]}| ||||f¡q&WdS)Nz%+z %s )rdrbÚsortÚ_precision_stringr)r:Z VarToCoeffMapr¹rbZ line_templaterFrrrr›s    z$DDSIP_Input.print_coeff_var_from_mapcCsNxH||gks ||d d¡rH|d7}|t|ƒkrtdƒt d¡qW|S)Nrú\r?z1Error: past end of file while skipping null lines)Ú startswithr\rUr™r¬)r:r»r¹rrrr¯'s   zDDSIP_Input.SkipLPNullLinescCs|ddkr|dd…}|S)NrAú:r)r:rCrrrr±1s  zDDSIP_Input.ClearNamecCsP|dkr |dkr tdt|ƒƒ||7}|t||ƒdkrH|d7}d}||fS)Nr?r@zunexpected step length =r)rUrVr\)r:r¹r»r¼Ústeprrrr³6szDDSIP_Input.LocalPostionUpdatec sd}g}xH|jjddD]6}|tt|jtddƒƒ7}t|ttfƒr|  |¡qW|j   ¡}|j j d}|j j}|j} xòt|jjjƒD]à\} } |  ¡r˜q†y| t| ƒ} Wn"tk rÊtd| jƒ‚YnX| |jkrî|j  | ¡| |j| <nl| |jkr|j  | ¡| |j| <nH| |jkr6|j  | ¡| |j | <n$t!dt"| ƒt"| jƒfƒdsZt#‚|j$  | ¡q†Wxš|j j D]Ž} | j%dj&\}}|j '|¡}|j(t)k rt| t||ƒ} | |jksÀt#‚| |j$krt| |jksÜt#‚|j  | ¡| j*|j+| <|j$  | ¡qtWxX|D]P}xH|jtddd D]4} | t| ƒ} |j  | ¡| |j | <|j$  | ¡q"Wq Wt|j$ƒ|kr¬t!d ƒt!d ƒt!d t|j$ƒd |ƒt,ƒ}i‰x:|jjddD](}| -‡fdd„|jtddDƒ¡q®Wt!dt"t|ƒƒƒt!dƒt.ddƒ2}| /d¡x |D]}| /t"|ƒd¡qWWdQRXt,ƒ}x(t|jjjƒD]\} } | 0| j¡qNWt!dt"t|ƒƒƒt!dƒt.ddƒ2}| /d¡x |D]}| /t"|ƒd¡q WWdQRXt,ƒ}xJ|j j D]>} | j%dj&\}}|j '|¡}|j(t)k rÖ| 0||j¡qÖWt!dt"t|ƒƒƒt!dƒt.ddƒ2}| /d¡x |D]}| /t"|ƒd¡qPWWdQRXt!dƒ|||}x|D]}t!d|ƒqWtd ƒ‚x*|j1D] }t|jƒt|jƒks´t#‚q´Wt|j j ƒd!ksît#‚|j 2¡|j 2¡|j$ 2¡dS)"NrT)ÚactiveF)Ú descend_intor?zoVariable with name '%s' was declared on the scenario tree but did not appear in the reference scenario LP file.z%s %s)rÄrÅz**** THERE IS A PROBLEM ****zBNot all model variables are on the scenario tree. Investigating...zlen(self._AllVars)=z all_vars_cnt=c3s|]}| dˆ¡VqdS)TN)Úgetname)rBr‚)Ú tmp_bufferrrr„sz2DDSIP_Input._Populate_StageVars..z$Number of Variables Found on Model: zwriting all_vars.datz allvars.datÚwz allvars.dat r—zt|jdƒD].\}}x$|jjD]}||jkrœ|j||<qœWqŠWt|||td||j |¡d|jfddidd }|j  |g¡|j  |¡\|_|_|_|_|_|_|_ |_!|_"|_#|_$|_%|_&|_'t(j) *t(j) +t( ,¡d ¡¡s`t-‚g}xPt|jdƒD]@\}}||krr| .t|||td|||jfdd idd ¡qrW|j  |¡nþt||td||j |¡d|jfddidd }|j  |g¡|j  |¡\|_|_|_|_|_|_|_ |_!|_"|_#|_$|_%|_&|_'t(j) *t(j) +t( ,¡d ¡¡sdt-‚g}xLt|jdƒD]<\}}||krv| .t||td|||jfdd idd ¡qvW|j  |¡n¨t/||j|j||j |¡d|jdd \|_|_|_|_|_|_|_ |_!|_"|_#|_$|_%|_&|_'xFt|jdƒD]6\}}||kr2t/||j|j 0|¡|||jd d q2W|j"dkrštd ƒtdt1dƒtdƒnÚ|j"dksªt-‚d} t2| dƒ} |  3¡|jd|ksÔt-‚t( 4d| d|d| ¡t( 5| d|¡xb|jdd…D]P}t(j) *| d|¡s2t-‚t( 4d| d|d| ¡t( 5| d|¡qW|j .| ¡|j$dkr¢td ƒtdt6dƒtdƒnÚ|j$dks²t-‚d} t2| dƒ} |  3¡|jd|ksÜt-‚t( 4d| d|d| ¡t( 5| d|¡xb|jdd…D]P}t(j) *| d|¡s:t-‚t( 4d| d|d| ¡t( 5| d|¡qW|j .| ¡|j#dkrªtd ƒtdt7dƒtdƒnÚ|j#dksºt-‚d} t2| dƒ}| 3¡|jd|ksät-‚t( 4d| d|d| ¡t( 5| d|¡xb|jdd…D]P}t(j) *| d|¡sBt-‚t( 4d| d|d| ¡t( 5| d|¡q$W|j .| ¡| 8|¡| 9|¡tdƒdS)Nz?Hello from the post_ph_initialization callback in ddphextensionrz6** The DDSIP interface is ignoring scenario bundles **z Using %s as reference scenarior?rrT)Z function_argsZ function_kwdsZreturn_action_handlez rows+colsF)rrˆz Detected z=Truez7Constraint rhs entries are assumed to be deterministic.zrhs.scr–zcat Ú.z >> z+Cost terms are assumed to be deterministic.zcost.scz:Constraint matrix entries are assumed to be deterministic.z matrix.scz0ddextension post_ph_initialization callback done):rUrcr#Ú _scenario_maprbÚ_ScenarioVectorr%rÒZcontains_bundlesr‰Z_solver_managerr•ZsolversrZsmanagerZphpyroZSolverManager_PHPyroÚ enumerateZ_scenario_bundlesZ_scenario_namesr ÚthisfileÚindexr"Zwait_allZ get_resultsrr'r(r)r*r+r,r-r.r/r0r1r2r3rLrMrNrQrRrOr^rr$rirYrrXrPrlroÚ write_sip_inÚwrite_input2sip)r:rZreference_scenario_nameZscenario_to_bundle_maprrZbundleZahZahsZ rhs_filenameZRHS_fileZ obj_filenameZOBJ_fileZ mat_filenameZMAT_filerrrÚpost_ph_initializationƒs    D  D   @               z"ddextension.post_ph_initializationcCsdS)Nr)r:rrrrÚpost_iteration_0_solvesOsz#ddextension.post_iteration_0_solvescCsdS)Nr)r:rrrrÚpost_iteration_0Rszddextension.post_iteration_0cCsdS)Nr)r:rrrrÚpre_iteration_k_solvesUsz"ddextension.pre_iteration_k_solvescCsdS)Nr)r:rrrrÚpost_iteration_k_solvesXsz#ddextension.post_iteration_k_solvescCsdS)Nr)r:rrrrÚpost_iteration_k[szddextension.post_iteration_kcCs| |¡| |¡dS)N)Úwrite_start_inrø)r:rrrrÚpost_ph_execution^s zddextension.post_ph_executionc Csnytdƒtddƒ}Wn&tk r<tdƒt d¡YnX|j d¡t|jƒ}t|j ƒt|j ƒd}|j }|dkr~d}|j }|dkrd}|j }|dkr¢d}|j}|j|j} t|jƒ} | d¡| dt|ƒd ¡| d t|ƒd ¡| d t| ƒd ¡| d t|ƒd ¡| d |jd ¡| dt| ƒd ¡| dt|ƒd ¡| dt|ƒd ¡| dt|ƒd ¡| d¡| d¡| d¡| d¡| d¡| d¡| d¡| d¡| d¡| d¡| d¡| d¡| d¡| d¡| d ¡| d!¡| d"¡| d#¡| d$¡| d%¡| d&¡| d'¡| d(¡| d)¡| d*¡| d+¡| d,¡| d-¡| d.¡| d/¡| d0¡| d1¡| d2¡| d3¡| d4¡| d5¡| d6¡| d7¡| d8¡| d9¡| d:¡| d;¡| d<¡| d=¡| d>¡| d?¡| d@¡| ¡dS)ANz Write dd input file: sip.in zsip.inr–zsip.in cannot be created!r?rz BEGIN z FIRSTCON r—z FIRSTVAR zSECCON zSECVAR zPOSTFIX zSCENAR zSTOCRHS z STOCCOST zSTOCMAT z CPLEXBEGIN z$1035 0 * Output on screen indicator z2008 0.001 * Absolute Gap z2009 0.001 * Relative Gap z1039 1200 * Time limit z*1016 1e-9 * simplex feasibility tolerance z)1014 1e-9 * simplex optimality tolerance z21065 40000 * Memory available for working storage z#2010 1e-20 * integrality tolerance z2008 0 * Absolute gap z2020 0 * Priority order z2012 4 * MIP display level z2053 2 * disjunctive cuts z2040 2 * flow cover cuts z-2060 3 *DiveType mip strategy dive (probe=3) z CPLEXEND zMAXINHERIT 15 zOUTLEV 5 * Debugging z OUTFIL 2 z3STARTI 0 * (1 to use the starting values from PH) z!NODELI 2000 * Sipdual node limit z&TIMELIMIT 964000 * Sipdual time limit zIHEURISTIC 99 3 7 * Heuristics: Down, Up, Near, Common, Byaverage ...(12) z7ABSOLUTEGAP 0.001 * Absolute duality gap allowed in DD z EEVPROB 1 z=RELATIVEGAP 0.01 * (0.02) Relative duality gap allowed in DD z,BRADIRECTION -1 * Branching direction in DD zTBRASTRATEGY 1 * Branching strategy in DD (1 = unsolved nodes first, 0 = best bound) z.EPSILON 1e-13 * Branch epsilon for cont. var. zACCURACY 5e-16 * Accuracy z(BOUSTRATEGY 1 * Bounding strategy in DD zNULLDISP 1e-16 z RELAXF 0 z%INTFIRST 1 * Branch first on integer z.r—css|]}t|ƒVqdS)N)Úrepr)rBrÈrrrr„sz SOLUTION rår?csg|]}| ˆ‘qSrr)rBrÈ)Ú num_scenariosrrrE#sz.ddextension.write_start_in..z NONANT1.inz MULTIPLIER css|]}t|ƒdVqdS)r—N)r)rBr…rrrr„+scss|]}t|ƒdVqdS)r—N)r)rBr…rrrr„,sgrAz NONANT2.incss|]}t|ƒdVqdS)r—N)r)rBr…rrrr„=scsg|]}|ˆˆ‘qSrr)rBrÈ)rÚwlastrrrEEsz NONANT3.incss|]}t|ƒdVqdS)r—N)r)rBr…rrrr„Ks)rr^rUr#r’rÒróròÚ_wr'r(rdÚziprær\rYrrQrôZis_variable_discreter¿ÚroundZ_xbarsÚ writelines)r:rr×Z rootnode_nameZweights_vectorsZ scenarionameZscenario_weightsZscenario_weights_vectorZ varname_LPrÙruZ var_indexZvector_wrérCZ v1_transposeZ vector_w_iterÚtmpÚfpÚcolumnZ v2_transposeZw_sumrÈZ v3_transposer)rrrrÿÓs~        $ 4          .     $    zddextension.write_start_incCsêytdƒtddƒ}Wn&tk r<tdƒt d¡YnXd|jkrR| d¡d|jkrf| d ¡d |jkrz| d ¡d |jkrŽ| d ¡d|jkr¢| d¡d|jkr¶| d¡d|jkrÊ| d¡d|jkrÞ| d¡| ¡dS)Nz" Write dd input file: input2sip Z2siprÈz!File input2sip cannot be created.r?zsip.inzsip.in zsorted_LPfile.lpzsorted_LPfile.lp z model.ordz model.ord zrhs.sczrhs.sc zcost.sczcost.sc z matrix.scz matrix.sc z order.datz order.dat zstart.inz start.in )rUrYr˜r™r¬rrr)r:rrurrrrøMs.                zddextension.write_input2sipc Cstdƒx*|jjD]}x|jD]}d|j|<qWqW|j ¡j}|jj}t|ƒî}|  ¡}xÜ|r:d|krþi} d|  ¡ks‚t ‚d|  ¡ks’t ‚xW|  ¡n˜d|kr¼x|  ¡ ¡r¶q¤Wntd |kr0xft t |jjƒƒD]P} t|  ¡ ¡ ¡ddd …ƒ} |j |j| d¡}|j|}g}x¨t t |jƒdƒD]’}|  ¡ ¡ ¡\} } | |jkrv| |j| t| ƒf¡nR| |jkr–t| ƒ||j| <n2| |jkrºt| ƒ|j|j| j<n| d ks8t ‚q8W|j}td ttt|j|jfƒƒƒ|j|j}x*|D]"\}} |j |j!|}| ||<qWqÚW|  ¡}q`WWdQRXtd ƒ| "¡xN|jjD]B}|j#dk r`td ttt|j|j#j$ƒƒƒƒ| %¡| &¡q`Wd}xX|jjD]L}td ttt|j|jfƒƒƒx&|jD]}|j|dkrÞd}PqÞWq´W|rtdƒdS)Nz)Loading DDSIP solution into scenario treez1. Best Solutionz"Variable name Valuez---z 2. Boundsz-Scenario Lower Bound (root) Upper Boundr?z 3. Quantilesz4. Second-stage solutionsrAZONE_VAR_CONSTANTz%s %sz9Updating variable statistics after loading DDSIP solutionFTzÞ***WARNING*** Individual stage costs could not be recovered from DDSIP solution. Try adding an artificial variable to the model for each stage cost and assign this to the stage cost in the scenario tree specification file.)'rUr#Z _scenariosZ _stage_costsr’rÒr%rÌrYÚreadlinerOrœr\r(rµr[ræÚ_xrÓr$rór]Z _objectiveZ_costr+r,r^r*r-rdrèrVZ_name_index_to_idrÐZupdate_variable_statisticsr9rCZpush_solution_to_instanceZupdate_solution_from_instance)r:rr­räZ stage_nameZroot_node_nameZreference_leaf_noderurvZfirst_stage_solutionr rÚZsolZ scenario_idZobj_lbZobj_ubZscenario_firststage_solutionZsecondstage_solutionÚjZ leaf_nodeZscenario_secondstage_solutionZreference_node_variable_idZthis_node_variable_idÚwarnrrrÚ_load_ddsip_solutionhsŒ                      z ddextension._load_ddsip_solutionN)rêrërìr•ÚcommonÚpluginZ implementsr Z IPHExtensionr;rîrïrðrùrúrûrürýrþrr÷rÿrørrrrrrí`s"M hzríc@s0eZdZdZdd„Zdd„Zdd„Zdd „Zd S) ÚMatrixEntriesClass)ÚVarUniqueValueMapcCs i|_dS)N)r)r:rrrr;ØszMatrixEntriesClass.__init__cCs|jS)N)r)r:rrrÚ__call__ÝszMatrixEntriesClass.__call__cCs|dkr|jSdS)Nr)r)r:rörrrÚ __getitem__àszMatrixEntriesClass.__getitem__cCs|d}|d}||j|<dS)Nr@r>)r)r:Z file_lineÚvarZ uniquenumberrrrr´äszMatrixEntriesClass.AddToMapN)rêrërìÚ __slots__r;rrr´rrrrrÕs rc@s@eZdZdZdd„Zdd„Zdd„Zdd „Zd d „Zd d „Z dS)r¨)ÚSenseÚNameracCsd|_d|_i|_dS)N)rrra)r:rrrr;íszLPFileObjClass.__init__cCs|j|j|jfS)N)rrra)r:rrrròszLPFileObjClass.__call__cCs.|dkr|jS|dkr|jS|dkr*|jSdS)Nrr?r@)rrra)r:rörrrrõs zLPFileObjClass.__getitem__cCs<|ddks|ddkr2tdt|ƒƒt d¡||_dS)NrÚminr”z8The obj sense in the lp file does not seem to be valid: r?)rUrVr™r¬r)r:ZSenseInrrrr°þs zLPFileObjClass.AssignSensecCs ||_dS)N)r)r:Úargrrrr²szLPFileObjClass.AssignNamecCst|ƒ|j|<dS)N)ræra)r:ÚCoeffrrrrr´szLPFileObjClass.AddToMapN) rêrërìrr;rrr°r²r´rrrrr¨ês r¨c@s@eZdZdZdd„Zdd„Zdd„Zdd „Zd d „Zd d „Z dS)r¶)raÚ ComparatorÚRHScCsi|_d|_d|_dS)Nrˆ)rarr)r:rrrr;szLPFileConstraintClass.__init__cCs|j|j|jfS)N)rarr)r:rrrrszLPFileConstraintClass.__call__cCs.|dkr|jS|dkr|jS|dkr*|jSdS)Nrr?r@)rarr)r:rörrrrs z!LPFileConstraintClass.__getitem__cCs&|dkr|}|}dSt|ƒ|j|<dS)N)ú=ú<ú>z<=z>=r§)ræra)r:rrZ comparatorÚrhsrrrr´ s zLPFileConstraintClass.AddToMapcCs ||_dS)N)r)r:rrrrr·*sz&LPFileConstraintClass.AssignComparatorcCs ||_dS)N)r)r:rrrrr¸.szLPFileConstraintClass.AssignRHSN) rêrërìrr;rrr´r·r¸rrrrr¶ s r¶)F)2r©r™ÚoperatorrrLrMÚabspathÚ__file__rõZpyomo.common.pluginr•Z pyomo.corerrrrrrZpyomo.core.base.varr Zpyomo.core.base.piecewiser Z pyomo.pyspr Zpyomo.pysp.phsolverserverr Zpyomo.pysp.phsolverserverutilsr ÚsixrrWrSZ _ddsip_exer¿rirjrorprlrmrÚobjectrrrZSingletonPluginrírr¨r¶rrrrÚsL         $  y"