B u `"@sZddlZddlZddlmZmZmZddlmZej j j dddGdddej j Z dS) N)TransformationFactoryVarSet)Bunchbilevel_blp_localz3Local solver for continuous bilevel linear problems)docc@s,eZdZddZddZddZddZd S) BILEVEL_Solver3cKs$d|d<tjjj|f|d|_dS)NrtypeT)pyomoopt OptSolver__init__Z _metasolver)selfkwdsrA/tmp/pip-unpacked-wheel-n62dbgi3/pyomo/bilevel/plugins/solver3.pyr szBILEVEL_Solver3.__init__cOs$|d|_tjjj|f||dS)Nr) _instancer r r _presolve)rargsrrrrrs zBILEVEL_Solver3._presolvec Cs&t}td}||jtd}|j|j|jddd|jj}|jjsRd}tj |*}g|_ |j |j |j|j |jdWdQRXt}|||_|jjdj|j}x8|jdd D]$\}}t|tst|ts|qW|jjdj|jtt|d dt|d dd S) Nzbilevel.linear_mpeczmpec.simple_nonlinear mpec_boundgHz>)rZglpk)teeZ timelimitF)activeZ_rc_log)rclog)timerZapply_toroptionsgetsolverr r SolverFactoryresultsappendZsolve_teeZ _timelimit wall_timeZ_transformation_dataZ submodel_cuidZfind_component_onZ component_mapitems isinstancerractivateZ block_cuidZ deactivatergetattr) r start_timeZxfrmrr Z stop_timeZsubmodelnamedatarrr _apply_solvers2     zBILEVEL_Solver3._apply_solvercCstj}|j}|jj|_|j|_g}x.|j D]$}t |jdddk r.| |jj q.Wt |dkrlt||_ tjjj|_|j}|jj|_|jjj|_|jjj|_|jjj|_|jjj|_|jjj|_|jjj|_|jj|d|_|S)Ncpu_timer)r r Z SolverResultsrrZ subsolverr)r#Zwallclock_timer r'r!r,lensumZTerminationConditionZoptimalZtermination_conditionZproblemrZ statisticsZnumber_of_constraintsZnumber_of_variablesZnumber_of_binary_variablesZnumber_of_integer_variablesZnumber_of_continuous_variablesZnumber_of_objectivesZ solutionsZstore_to)rr ZsolvZcpu_resZprobrrr _postsolveYs,             zBILEVEL_Solver3._postsolveN)__name__ __module__ __qualname__r rr+r0rrrrrs;r)rZ pyomo.optr Z pyomo.corerrrZpyomo.common.collectionsrr rregisterr rrrrr s