L i1ddlmZddlmZddlZddlmZddlm Z e5Z ddl m Z ddderddl m Z ddlmZddlmZndd lmZed Ze j)se eZej/d  dd Z d dd Zy#1swYxYw)) annotations) TYPE_CHECKINGN) try_import) get_logger)greenlet)Callable)Any) _LazyImportzscipy.optimizez}The 'greenlet' package is unavailable, falling back to sequential L-BFGS-B optimization. This may lead to slower suggestions.c R jdk(sJt} tjtj| t tj| t d f d } t| D cgc] } t| } } t| Dcgc]\}}|j|}}}tj|D cgc] \}} | | c} }}tt|D cgc] \} }| | c}} |jr||g\}}t| Dcgc]\}}|j||||}}}tj|D cgc] \}} | | c} }}tt|D cgc] \} }| | c}} t|| D cgc] \\}} }| |} } }}|jrĉfScc} wcc}}wcc} }wcc}} wcc}}wcc} }wcc}} wcc}} }w)Ndtypec  dd}tj|tfdD   \}}}|<|<|d <tjj j ddy)Nctjjj||\}}t ||j fSN)r getcurrentparentswitchfloatcopy)xargsfvalgrads _/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/optuna/_gp/batched_lbfgsb.py_func_and_gradz4_batched_lbfgsb..run.._func_and_grad5s<!,,.55<z/_batched_lbfgsb..run..=s6#s1v6 funcx0rboundsmfactrpgtolmaxfunmaxitermaxlsnit)r np.ndarrayrr returntuple[float, np.ndarray])so fmin_l_bfgs_btuplerrrr)r#rx_optfval_optinfo batched_argsr)r+ fvals_optr* max_evals max_itersmax_line_search n_iterationsr, x0_batchedxs_opts` rrunz_batched_lbfgsb..run4s , !# 0 0!}666! ! xq  ! u+ Q$$++D$7r)r#intr2None)ndimlennp empty_likeemptyrrCranger enumeraterarrayr6zipsize) func_and_gradr@r:r)r*r+r,r<r=r> batch_sizerB_ greenletsr#glx_and_args_listr x_batchedrfvalsgradsr;r?rAs ````````` @@@r_batched_lbfgsbrX"s ??a  ZJ ]]: &F51I88Jc2L888.).j(9:1#:I:1:91EF2ryy|FOFI11=!IJI?W4dFVtWXYL ..$Y>> uFOPYFZ[UQ299U1XuQx8[[HHOMDAqq}aMN S"[GAt$JZ4"[\] *-oy*I[[JFQBQ]R[ [ .. 9l **;FIW\M"[[sNG94G>& H 1H H H  "H H H ) H4H H"H"c |j\} } t|D]-\} } t| | k(rJd| d| dt| d|;tj|| dfk(s!Jd| dtj|dtj r(t|dkDrt ||||||||| \}}}ndfd }tj|}tj|jd t }tj|jd t }t|D]H\}tj||tfd |D|||||||  \|<|<}|d|<J|||fS)a Batched L-BFGS-B optimization with/without greenlet. - `func_and_grad` is expected to take a 2D array as the first argument and return a tuple of a 1D array of function values and a 2D array of gradients. - `x0_batched` is a 2D array where each row is an initial point for optimization. - `batched_args` is a tuple of additional arguments to pass to `func_and_grad`. e.g., if `batched_args` is `([alpha1, ..., alphaB], [beta1, ..., betaB])`, then `func_and_grad` is called by `func_and_grad(x0_batched, [alpha1, ..., alphaB], [beta1, ..., betaB])`. Note that each argument in `batched_args` is expected to be a list of length `B` (batch size). z batched_args[z] must have length z , but got .r z!The shape of bounds must be (dim=z, 2), but got ) rOr@r:r)r*r+r,r<r=r>c|jdk(sJd|D}|dddf}|g|\}}|j|djfS)Nr[c3"K|]}|g ywrr)r!r"s rr$zAbatched_lbfgsb.._func_and_grad_wrapper..s0u0s r)rEitemr)x_1dargs_1dargs_2dx_2drrrOs r_func_and_grad_wrapperz.batched_lbfgsb.._func_and_grad_wrappersX99> !>00Ga=D&t6g6JD$99;Q . .rrr c3(K|] }| ywrrr s rr$z!batched_lbfgsb..s:c3q6:r%r&r0)r_r1r`r r2r3)shaperKrFrG_greenlet_imports is_successfulrXrHrIrrCr4r5r6)rOr@r:r)r*r+r,r<r=r>rPdimjr"rAr;r?rcr(r9r#s` @rbatched_lbfgsbrjYs.!&&OJL)S3 H " S 1#0 Js3xjPQ R S "S >RXXf-  2O ,sfN288F;K:LANO  &&(S_q-@*9'!%+ + ' <  /z*HHZ--a0> xx 0 0 33? z* *EAr,.,<,<+:\:: !% - )F1Iy|T#5kLO * 9l **r)rO,Callable[..., tuple[np.ndarray, np.ndarray]]r@r1r:ztuple[Any, ...]r) list[tuple[float, float]] | Noner*rCr+rr,rr<rCr=rCr>rCr2)tuple[np.ndarray, np.ndarray, np.ndarray])rN gcAgh㈵>:ro)rOrkr@r1r:ztuple[list[Any], ...]r)rlr*rCr+rr,rr<rCr=rCr>rCr2rm) __future__rtypingrnumpyrGoptuna._importsroptuna.loggingrrfrcollections.abcrr scipy.optimizeoptimizer4optunar rg__name___loggerwarningrXrjrrrr}s" &%\"&!"(# % &B&&("G OO / 4+?4+4+"4+ - 4+  4+  4+ 4+4+4+4+/4+t+-/3 O+?O+O+(O+ - O+  O+  O+ O+O+O+O+/O+]""s B<<C