B @`@sZddlZddlZddlmZddlmZddlmZejdddGdd d ej j Z dS) N) SolverFactory)TransformationFactory)Bunchmpec_nlpz5MPEC solver that optimizes a nonlinear transformation)docc@s,eZdZddZddZddZddZd S) MPEC_Solver1cKs$d|d<tjjj|f|d|_dS)NrtypeT)pyomoopt OptSolver__init__Z _metasolver)selfkwdsr>/tmp/pip-unpacked-wheel-bi3529v6/pyomo/mpec/plugins/solver1.pyr szMPEC_Solver1.__init__cOs$|d|_tjjj|f||dS)Nr) _instancer r r _presolve)r argsrrrrrs zMPEC_Solver1._presolvec Cs$t}td}||j|jj}|jjs8d|j_}tj|}g|_ |j dd}|j d|}xB||jj _ |j |j|j|jd}|j ||d}||krjPqjWdd lm}x2|jjdjD] } | |j} | | |qWt} | ||_tt|d dt|d dd SQRXdS) Nzmpec.simple_nonlinearZipopt epsilon_finalgHz>Zepsilon_initial)teeZ timelimitg$@r)ComplementarityZ_rc_log)rclog)timerZapply_toroptionssolverr r rresultsgetZ mpec_boundvalueZsolve_teeZ _timelimitappendZ pyomo.mpecrZ_transformation_dataZ compl_cuidsZfind_component_onZ parent_blockZreclassify_component_type wall_timergetattr) r start_timeZxfrmrr repsilonresrZcuidZcobjZ stop_timerrr _apply_solver"s6         zMPEC_Solver1._apply_solvercCstj}|j}|jj|_|j|_g}x.|j D]$}t |jdddk r.| |jj q.Wt |dkrlt||_ |j|j}|jj|_|jjj|_|jjj|_|jjj|_|jjj|_|jjj|_|jjj|_|jj|d|_|S)Ncpu_timer)r r Z SolverResultsrrZ subsolvernamer"Zwallclock_timerr#r!r(lensumrZcompute_statisticsZproblemZ statisticsZnumber_of_constraintsZnumber_of_variablesZnumber_of_binary_variablesZnumber_of_integer_variablesZnumber_of_continuous_variablesZnumber_of_objectivesZ solutionsZstore_to)r rZsolvZcpu_r&Zprobrrr _postsolveZs,             zMPEC_Solver1._postsolveN)__name__ __module__ __qualname__r rr'r,rrrrrs8r) rZ pyomo.optr rZ pyomo.corerZpyomo.common.collectionsrregisterr r rrrrr s