B @`@sZddlZddlZddlmZddlmZddlmZejdddGdd d ej j Z dS) N) SolverFactory)TransformationFactory)Bunch 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-bi3529v6/pyomo/mpec/plugins/solver2.pyr szMPEC_Solver2.__init__cOs$|d|_tjjj|f||dS)Nr) _instancer r r _presolve)r argsrrrrrs zMPEC_Solver2._presolvec Cst}td}||jtd}|j|j|jddd|jj}|jjsZd|j_}tj |}|j |j|j |j d|_ dd lm}x2|jjdjD] }||j}|||qWt}|||_tt|d dt|d dd SQRXdS) Nzmpec.simple_disjunctionzgdp.bigmbigMi@B)rZglpk)teeZ timelimitr)ComplementarityZ_rc_log)rclog)timerZapply_toroptionsgetsolverr r rZsolve_teeZ _timelimitresultsZ pyomo.mpecrZ_transformation_dataZ compl_cuidsZfind_component_onZ parent_blockZreclassify_component_type wall_timergetattr) r start_timeZxfrmrr rZcuidZcobjZ stop_timerrr _apply_solver"s(        zMPEC_Solver2._apply_solvercCs6|jj}|jj|_|j|_|jj |jd|_|jS)N) rrrZ subsolvernamer Zwallclock_timerZ solutionsZstore_to)r Zsolvrrr _postsolveYs  zMPEC_Solver2._postsolveN)__name__ __module__ __qualname__r rr#r%rrrrrs7r) rZ pyomo.optr rZ pyomo.corerZpyomo.common.collectionsrregisterr r rrrrr s