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_bounds opcional y restricciones personalizadas.

La restricción de suma predeterminada asegura que la suma del presupuesto optimizado sea igual a total_budget. Si no se proporcionan budget_bounds, cada canal estará restringido a estar en [0, total_budget].

Parámetros:
total_budgetfloat

El presupuesto total a asignar.

límites_presupuesto : DataArray o dict, 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.

Devoluciones:
optimal_budgetsxarray.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.

Aumentos:
MinimizeException

Si 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.