El aumento de precios es simplemente la idea de que puede maximizar las ganancias ajustando los precios para que la oferta = la demanda. Si bien técnicamente ese es el objetivo de la mayoría de los modelos de precios, el aumento de precios es único porque puede adaptarse a los rápidos cambios en las curvas de oferta y demanda, donde un negocio regular puede llevar más tiempo de ajuste.
Hay muchas formas de abordar este problema, pero por ahora usemos algunos conceptos básicos de la teoría de control.
- ¿Cómo se implementa la estructura de datos establecida en C?
- ¿Cuáles son los libros de Ciencias de la Computación (Algoritmo) que recomendará un topcoder?
- Cómo construir un algoritmo automatizado de comercio de acciones utilizando mis estrategias sin tener que contratar un programador
- ¿Qué es un programa Java para calcular el factorial de un número dado?
- ¿Cuál es la complejidad temporal de resolver de manera recursiva el problema del salto de palabra?
Para nuestros propósitos, un controlador es una función que asigna una señal de error a una entrada del sistema para conducir una salida medida hacia un punto de referencia deseado.
Para nuestra señal de salida, podemos usar la oferta – demanda. Si imaginamos que estamos construyendo esto para Uber, ese valor sería la cantidad de personas que intentan dar un paseo al precio actual, pero no pueden, porque no hay conductores disponibles.
Como deseamos oferta = demanda, necesitamos orientar la oferta – demanda = 0, por lo que usamos 0 para nuestra referencia.
Por lo tanto, nuestra señal de error medida es referencia – salida medida = 0 – (oferta – demanda) = demanda – oferta.
Ahora necesitamos una función de control para asignar nuestra señal de error medida a un cambio en el precio. Vamos a usar PID. PID significa un controlador de derivada integral integral, y se calcula sumando cada uno de esos términos según se aplican a la señal de error.
P = Kp * error (T)
I = [matemáticas] Ki * \ int_0 ^ T (error (t) dt) [/ matemáticas] – implemente esto con aproximación trapezoidal
D = Kd * d / dt (error (t)): implemente esto con aproximación de línea secante
donde Kp, Ki y Kd son constantes.
Piense en estos valores como qué tan lejos está del objetivo, en qué dirección ha estado sesgando y qué tan lejos del objetivo se dirige.
Nuestra señal final (Y) se calcula mediante:
Y = P + I + D
Esta señal de entrada se envía al sistema, que luego ajusta los precios según la magnitud y el signo (+ o -) de Y.
Otras opciones serían el simple descenso de gradiente, o el empleo de algunas técnicas de ML para ayudarlo a intentar predecir cómo son realmente las curvas de oferta y demanda.
Ahora esa implementación no era pesada en absoluto para las estructuras de datos, pero no entiendo por qué debe ser así. Obligarse a usar estructuras de datos por el uso de estructuras de datos no es un esfuerzo productivo. Cumplen un propósito cuando se necesitan, pero ese no es siempre el caso. Existen muchas técnicas para enfrentar esta tarea sin almacenar datos históricos complicados. Las técnicas de ML necesitarían algunas, pero ponerlo todo dentro de una lista o una base de datos en algún lugar no es interesante pero suficiente.