B _@sVddlZddlZddlZddlmZddlmZejdddGdddej j Z dS) N) SolverFactory)TransformationFactory mpec_minlpz!MPEC solver transforms to a MINLP)docc@s,eZdZddZddZddZddZd S) MPEC_Solver2cKs$d|d<tjjj|f|d|_dS)NrtypeT)pyomoopt OptSolver__init__Z _metasolver)selfkwdsr>/tmp/pip-unpacked-wheel-d4p3hk07/pyomo/mpec/plugins/solver2.pyr szMPEC_Solver2.__init__cOs$|d|_tjjj|f||dS)Nr) _instancerr r _presolve)r argsr rrrrs zMPEC_Solver2._presolvec Cst}td}||jtd}|j|j|jddd|jj}|jjsZd|j_}tj |}|j |j|j |j d|_ dd lm}x2|jjdjD] }||j}|||qWt}|||_tjjt|d dt|d dd SQRXdS) Nzmpec.simple_disjunctionzgdp.bigmbigMi@B)rZglpk)teeZ timelimitr)ComplementarityZ_rc_log)rclog)timerZapply_toroptionsgetsolverrr rZsolve_teeZ _timelimitresultsZ pyomo.mpecrZ_transformation_dataZ compl_cuidsZfind_componentZ parent_blockZreclassify_component_type wall_timepyutilibmiscZBunchgetattr) r start_timeZxfrmrr rZcuidZcobjZ stop_timerrr _apply_solver"s(       zMPEC_Solver2._apply_solvercCs6|jj}|jj|_|j|_|jj |jd|_|jS)N) rrrZ subsolvernamerZwallclock_timerZ solutionsZstore_to)r Zsolvrrr _postsolveYs  zMPEC_Solver2._postsolveN)__name__ __module__ __qualname__r rr$r&rrrrrs7r) rZ pyutilib.miscr Z pyomo.optrrZ pyomo.corerregisterr r rrrrr s