es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Optimización lineal: Diferencia absoluta entre vectores binarios.

La variable de decisión de mi problema de optimización (que estoy tratando de mantener lineal) es un vector binario de ubicación, donde el valor en cada posición es 0 o 1 (dos ubicaciones posibles diferentes del elemento i).

Uno de los componentes de la función objetivo es el siguiente:

XOR

C_T es la constante de transferencia de N elementos.

k es la iteración en la cual actualmente estoy resolviendo el problema y k-1 es el desplazamiento actual de los elementos (resultado de resolver la última iteración del problema k-1). Tengo una condición inicial (k=0).

N es “cuántas posiciones de x son diferentes entre el desplazamiento actual (k-1) y el resultado del problema de optimización (futuro desplazamiento óptimo x^k)”.

¿Cómo puedo mantener este componente de la función objetivo lineal? En otras palabras, ¿cómo puedo reemplazar el operador XOR?
Pensé en usar la diferencia absoluta como alternativa, pero no estoy seguro de que ayude.

¿Hay alguna manera lineal de hacer esto?

Implementaré este problema con PuLP en Python, tal vez haya algo que pueda ayudar allí también…

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para mantener la función objetivo lineal, un enfoque posible es introducir variables de decisión adicionales que capturen la diferencia binaria entre los desplazamientos óptimos actuales y futuros. Estas variables se pueden definir de la siguiente manera:

    • Sea delta^k_i = 1 si el i-ésimo componente de x^k es diferente del componente correspondiente de x^(k-1), y delta^k_i = 0 en caso contrario.
    • Entonces, el operador XOR se puede reemplazar por la siguiente expresión lineal:

      (delta^k_i + delta^k-1_i – 2delta^k-1_idelta^k_i)

      Esta expresión toma el valor 1 si y solo si el i-ésimo componente de x^k es diferente del componente correspondiente de x^(k-1).

    • La función objetivo puede expresarse como una combinación lineal de las variables delta^k_i, con coeficientes apropiados que dependen de N y C_T.

    PuLP proporciona soporte incorporado para construir modelos lineales con variables de decisión binarias y continuas, por lo que este enfoque se puede implementar fácilmente dentro del marco de PuLP.

Comments are closed.