3 votos

¿Cómo puedo igualar una distribución aleatoria minimizando el desplazamiento de cada punto de datos?

Tengo una aplicación de software que utiliza una cola y múltiples procesadores para procesar esos trabajos. Los trabajos se reejecutan a diario para los clientes, pero también tenemos nuevos clientes que se inscriben regularmente.

El problema es que los clientes generalmente se inscriben en horario de oficina, y la repetición diaria de los trabajos simplemente programa el trabajo para que se ejecute a la misma hora todos los días. Esto significa que hemos creado picos de trabajo bastante grandes durante el día, con muy pocos trabajos que se ejecutan durante la noche.

Me gustaría igualar los picos en esta cola de trabajos, pero también quiero minimizar la distancia que se desplaza cada trabajo individual desde su franja horaria original. En otras palabras, prefiero mover 100 trabajos en 5 minutos cada uno que mover 1 trabajo en una hora para lograr una distribución uniforme de los trabajos en todo el período de 24 horas.

1voto

Eran Medan Puntos 193

Se trata de un problema de control óptimo. Pero solo necesitas unas pocas herramientas para obtener una solución práctica para tu problema.

1) una forma de estimar la distribución temporal de los trabajos de los nuevos clientes. Si se trazan las medias horarias, diarias y semanales de los casos de trabajos de nuevos clientes, se tendrá una idea de la periodicidad de la distribución. A continuación, puede ajustar la distribución a un proceso de Poisson dependiente del tiempo, con términos para el minuto/hora/día/semana.

2) La cuantificación de su "función de pérdida". Basándome en su declaración, me imagino que su función de pérdida incluirá un término que penalice las concentraciones de trabajos en períodos de tiempo cortos y un término que penalice los retrasos en los trabajos de forma no lineal. Suponiendo que $t_1,...,t_2$ representa los tiempos de ejecución de los trabajos, y $d_1,...,d_m$ representa los retrasos para el trabajo 1, el trabajo 2, etc., su función de pérdida podría ser como

$$ L = k_1 \sum_{i=1}^m (\sum_{j=1}^m I(t_i - t_j < T))^2 + k_2 \sum_{i=1}^m d_i^2 $$

donde $k_1$ y $k_2$ son constantes positivas, y $T$ es un periodo de tiempo "crítico" (como 5 minutos).

3) simulación de varias políticas de control (programación de trabajos recurrentes) para encontrar su pérdida esperada. Dada una política de ejecución de trabajos diarios a la hora $x_1,...,x_l$ se sacaría de la distribución de los nuevos empleos para obtener los tiempos de los nuevos empleos $y_1,...,y_m$ (donde $m$ es aleatorio). Se puede estimar la pérdida esperada haciendo la simulación muchas veces y promediando la función de pérdida sobre las ejecuciones.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X