BudgetOptimizer.asignar_presupuesto#
- BudgetOptimizer.allocate_budget(total_budget, budget_bounds=None, x0=None, minimize_kwargs=None, return_if_fail=False, callback=False)[fuente]#
Asigne el presupuesto basado en
total_budget,budget_boundsopcional y restricciones personalizadas.La restricción de suma predeterminada asegura que la suma del presupuesto optimizado sea igual a
total_budget. Si no se proporcionanbudget_bounds, cada canal estará restringido a estar en [0, total_budget].- Parámetros:
- total_budget
float El presupuesto total a asignar.
- límites_presupuesto :
DataArrayodict, opcionalDataArray o python:dict, opcional Si es None, se asumen los límites predeterminados de [0, total_budget] por canal.
Si es un diccionario, debe asignar cada canal a pares de presupuesto (bajo, alto) (solo válido si hay una dimensión).
Si es un xarray.DataArray, debe tener dimensiones (*budget_dims, «bound»), especificando [bajo, alto] por celda de canal.
- x0 :
np.ndarray, opcionalnp.ndarray, opcional Suposición inicial. Array de elementos reales de tamaño (n,), donde n es el número de presupuestos de conductores a optimizar. Si es None, el presupuesto total se distribuye uniformemente entre todos los conductores a optimizar.
- minimize_kwargs :
dict, opcionalpython:dict, opcional Argumentos adicionales para
scipy.optimize.minimize. Por defecto, method=»SLSQP», ftol=1e-9, maxiter=1_000.- return_if_fail : bool, opcionalbool, opcional
Devolver la salida incluso si la optimización falla. El valor predeterminado es False.
- callback : bool, opcionalbool, opcional
Si se debe devolver información de seguimiento de la optimización del progreso de la devolución de llamada. Cuando es True, devuelve un tercer elemento que contiene una lista de diccionarios con información de optimización en cada iteración, incluyendo “x” (valores de parámetros), “fun” (valor objetivo), “jac” (gradiente) e información de restricciones. El valor predeterminado es False para mantener la compatibilidad con versiones anteriores.
- total_budget
- Devoluciones:
- optimal_budgets
xarray.DataArray La asignación de presupuesto optimizada a través de los canales.
- resultado :
OptimizeResultOptimizarResultado El resultado bruto de optimización de scipy.
- callback_info :
list[dict[str,Any]], opcionalpython:list[python:dict[python:str, Any]], opcional Solo se devuelve si callback=True. Lista de diccionarios que contienen información de optimización en cada iteración.
- optimal_budgets
- Aumentos:
MinimizeExceptionSi la optimización falla por cualquier motivo, el mensaje de excepción contendrá los detalles.
Notes
Units and cost_per_unit:
All budget inputs (total_budget, budget_bounds) are in monetary units.
If cost_per_unit is provided, the optimizer converts internally:
budget_in_original_units[t] = budget_in_dollars[t] / cost_per_unit[t]Each time period uses its own cost_per_unit value (no averaging).
Output optimal_budgets are in monetary units for user convenience.