Saltar para o conteúdo

Technical

Optimización local versus optimización global

Daniel Azevedo · 23 de junio de 2022

¿La ruta más rápida es siempre la mejor? Este artículo podría ofrecerte una perspectiva diferente si tu respuesta es afirmativa.

Normalmente existen múltiples formas de abordar un problema o tarea determinada, y el campo de la optimización no es una excepción. Hay diferentes enfoques que podemos tomar para encontrar una solución óptima. La elección del mejor camino puede depender de las variables que estemos considerando, los datos disponibles, la complejidad del sistema, el tiempo requerido para alcanzar la mejor solución, etc.

En este artículo exploramos dos enfoques bien conocidos en optimización: optimización local y optimización global.

Además de discutir cómo difieren en términos de ideología, ventajas e inconvenientes, examinaremos su aplicación en un escenario de caso de uso real: la asignación de agentes inmobiliarios a propiedades en venta.

Optimización local versus optimización global

Las técnicas de optimización local y global intentan encontrar la mejor solución posible utilizando diferentes rutas.

Las técnicas de optimización local son normalmente más "codiciosas", ya que prefieren seguir el camino más prometedor conocido hasta ahora en lugar de explorar otros espacios de búsqueda. Este tipo de optimización resulta más adecuado para sistemas simples donde el número de variables a optimizar es reducido y están claramente identificadas. Además, puede utilizarse cuando se pretende obtener una solución aceptable lo antes posible.

Por otro lado, la optimización global se enfoca en encontrar el camino hacia la mejor solución posible en todo el espacio de búsqueda, aunque pueda requerir más tiempo. Esto permite crear soluciones más confiables, aunque tarde un poco más en lograrse. Este puede ser un buen enfoque si existe una relación desconocida entre las diferentes variables del sistema o si tenemos un sistema más complejo o de caja negra.

Al entrenar un modelo de machine learning en IA, típicamente intentamos evitar alcanzar un óptimo local (que puede ser una buena solución, pero no la mejor) ya que esperamos llegar al óptimo global, lo que se traduce en un modelo más robusto y generalizable. Aunque, en algunos casos donde el tiempo es un factor importante, un enfoque codicioso puede ser suficiente.

A continuación, aplicaremos ambos enfoques a un caso de uso específico: la asignación de agentes inmobiliarios a propiedades en venta.

Caso de uso

Suponiendo que diriges una empresa inmobiliaria, ¿cómo podrías optimizar la asignación de propiedades a los agentes inmobiliarios disponibles?

El primer aspecto importante a considerar es qué variable o variables queremos optimizar. ¿Es el tiempo? ¿La ganancia? ¿El número de visitas requeridas? ¿La diversidad en las ventas? Una buena suposición es considerar que queremos generar la máxima ganancia en el menor tiempo posible. Por lo tanto, una buena métrica a optimizar podría ser el precio por día (relación entre la ganancia y los días requeridos para vender).

Datos

En términos de datos disponibles, asumimos que tenemos la siguiente información:

  • Propiedad:

    • Número de habitaciones
    • Área (m²)
    • ...
    • Precio de compra
    • Ubicación
    • Características de infraestructuras en el área circundante
  • Agente Inmobiliario:

    • Inventario:
      • Número total de propiedades a vender, según ubicación, rango de precio, tipología, área, etc.
    • Historial de ventas:
      • Ventas realizadas en el pasado (para una ventana de tiempo específica) según ubicación, rango de precio, tipología, área, etc.
  • Propiedad versus Agente:

    • Días predichos en el mercado para un par determinado (propiedad, agente). Es decir, en cuántos días un agente determinado es capaz de vender una propiedad determinada.
      Como esta información es más difícil de obtener, una alternativa es entrenar un algoritmo de machine learning (basado en los datos restantes) que pueda predecir los días en el mercado para un par particular (propiedad, agente).
  • Mercado:

    • Número de propiedades vendidas en el pasado (x días)
    • Propiedades actualmente disponibles para vender

Aplicación de optimización local

Siguiendo las ideologías de optimización local, un enfoque probable sería comenzar con los mejores pares entre agente inmobiliario y propiedad, es decir, asignar primero los agentes más adecuados a la propiedad respectiva.

Como vimos antes, dólares/día es una buena métrica a considerar en las asignaciones, así que el paso 1 es calcular el precio por día para cada par <Agente, Propiedad>. A continuación, como este es un enfoque codicioso, clasificamos las asignaciones (en orden descendente) por el valor de precio por día e iniciamos la asignación de agentes a propiedades con mayor métrica de precio por día.

Por lo tanto, el enfoque puede definirse como sigue:

  1. Calcular precio por día:
    1. Margen = valoración del agente para una propiedad específica – precio de compra
    2. precio por día = margen / predicción de días en el mercado para (propiedad, agente)
  2. Proceso de asignación: clasificar precio por día (en orden descendente)

Aplicación de optimización global

Utilizando un enfoque de optimización global, además del precio por día, podemos pensar en otras métricas que pueden ser relevantes al medir qué tan apropiado es asignar una propiedad determinada a un agente.

  1. Velocidad de venta: si un agente determinado es bueno vendiendo un tipo específico de propiedad, deberíamos asignarle más propiedades de ese tipo.
  2. Inventario: si un agente determinado ya tiene propiedades similares para vender, probablemente no deberíamos asignarle más propiedades con esas características. Una alternativa es definir un número máximo de propiedades asignadas a un único agente.

(En este contexto, asumimos que propiedades similares tienen el mismo rango de precio, rango de área y la misma tipología.)

Por lo tanto, hay 3 aspectos a considerar en el modelo de asignación:

  • [maximizar] precio por día: ganancia/días, igual que en el enfoque de optimización local

  • [maximizar] Velocidad de venta: porcentaje de propiedades similares vendidas en los últimos X días

  • [minimizar] Inventario: porcentaje de propiedades similares en inventario

Utilizando esta información, podemos definir una función objetivo que nuestro modelo de asignación intentará maximizar, asumiendo que queremos asignar n propiedades a agentes inmobiliarios.

![ $$\frac{\sum_{}^{asignaciones} (\alpha * precio\_por\_día + \beta * velocidad\_venta + \gamma * inventario)}{n}$$ ](/wp-content/ql-cache/quicklatex.com-ad7b1d74935a86f0ec51f6713cfa5552_l3.png)

Esta función corresponde esencialmente a un promedio ponderado, en el cual nuestro modelo de asignación aprenderá los mejores parámetros para maximizar la función objetivo.

Curso

Metaheuristics: Theory and Applications

¡Consulta este curso para aprender más sobre enfoques de optimización!

Más información

Comparación entre soluciones

Considerando este caso de uso específico, utilizando un enfoque de optimización local, estaríamos realizando las asignaciones secuencialmente (asignación a asignación), comenzando por las mejores asignaciones, sin considerar el impacto de cada asignación en el conjunto completo de asignaciones. Por lo tanto, no podemos asegurar que, al final, alcancemos la mejor solución, aunque sí podemos obtener una solución aceptable en menos tiempo. Si aplicamos una técnica de optimización global, globalmente, las asignaciones deberían ser más precisas ya que estamos pensando en el conjunto completo de asignaciones y no asignación a asignación. Esto significa que el rendimiento debería ser mejor, aunque el tiempo para obtener la solución puede ser más largo.

El hecho de que podamos tener múltiples variables a optimizar, dependiendo de cómo pretendamos "medir" qué tan buena es una asignación determinada, es otro factor que beneficia el enfoque global sobre el enfoque local en este caso de uso específico.

La cantidad de datos disponibles también puede ser un factor importante de decisión al elegir el mejor enfoque. Típicamente, los enfoques de optimización global requieren más datos que los enfoques de optimización local.

Finalmente, el tipo de procesamiento de datos también es importante. Si las asignaciones se realizan en lotes, entonces un enfoque global determinaría las mejores asignaciones considerando el sistema completo (conjunto de todas las asignaciones). Por otro lado, si las asignaciones se supone que se entregan de forma continua, entonces un enfoque codicioso sería útil, ya que no necesita considerar asignaciones de múltiples propiedades.

¿Quieres discutir más esta idea?

Agenda una reunión con Kelwin Fernandes

Conoce a Kelwin Más información

En conclusión

Volviendo a la pregunta inicial, en el campo de la optimización, la ruta más rápida y prometedora puede no ser la mejor después de todo, especialmente si implica tomar varias decisiones en el camino.

Un enfoque de optimización local puede ser más codicioso en la búsqueda de la mejor solución, lo que se traduce en una buena solución, pero no la mejor. Utilizando un enfoque de optimización más global, puede llevar más tiempo, y la solución obtenida debería ser más confiable.

¿Has utilizado alguno de estos enfoques recientemente? ¿Cuál crees que es más apropiado usar? No dudes en contactarnos, ¡nos encantaría conocer tu opinión sobre este tema!