Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Juan G. Villegas
Profesor Facultad de Ingeniería
1. Introducción
2. Métodos clásicos de optimización multiobjetivo
2.1. Método de suma ponderada
2.2. Método de restricciones extra
2.2.1. Método de épsilon ε-restricciones
2.2.2. Optimización lexicográfica
3. Ejercicio de aplicación de conocimientos
4. Ejercicio propuesto: planeación de radioterapia
5. Ejercicio de implementación
1. Introducción
La optimización multiobjetivo es particularmente útil en el ámbito de la planeación pública. Tal como lo señala
uno de los autores clásicos en esta rama de la optimización “todos los problemas de toma de decisiones públicas
son multiobjetivo, y si no los pensamos y analizamos con eso en mente podemos dañar seriamente la calidad
de las decisiones que podemos tomar” (Cohon, 2004). Por lo tanto, para ilustrar los métodos de optimización
multiobjetivo que se presentarán en este documento usaremos como ejemplo una decisión de localización de
hospitales públicos. Para ejemplos de modelos de localización multiobjetivo aplicados en el ámbito colombiano
que fueron resueltos con algunos de los métodos descritos en este documento, puede revisar Villegas et al.
(2006), Medaglia et al. (2009) y Castañeda y Villegas (2017).
Municipio El Contento La Hermosa Lejanías Cercanías El Eco El Filo Lirio Planadas Cardal Maguey
Población 931 4390 4379 3357 4227 1926 459 2453 3346 4300
Conjuntos:
Municipios:
𝑀
= {𝐸𝑙 𝐶𝑜𝑛𝑡𝑒𝑛𝑡𝑜, 𝐿𝑎 𝐻𝑒𝑟𝑚𝑜𝑠𝑎, 𝐿𝑒𝑗𝑎𝑛í𝑎𝑠, 𝐶𝑒𝑟𝑐𝑎𝑛í𝑎𝑠, 𝐸𝑙 𝐸𝑐𝑜, 𝐸𝑙 𝐹𝑖𝑙𝑜, 𝐿𝑖𝑟𝑖𝑜, 𝑃𝑙𝑎𝑛𝑎𝑑𝑎𝑠, 𝐶𝑎𝑟𝑑𝑎𝑙, 𝑀𝑎𝑔𝑢𝑒𝑦}
Hospitales:
H={SJD,LM,SA,SR, SG, SF, EC,SFA}
Parámetros:
𝑑>? : distancia entre un municipio 𝑖 ∈ 𝑀 y un hospital 𝑗 ∈ 𝐽
VERBALIZACIÓN
Se quiere decidir cuáles hospitales mejorar y a cuál hospital asignar cada municipio cumpliendo que cada
municipio es asignado a un solo hospital y que el hospital asignado a un municipio tiene que haber sido mejorado
para minimizar (en el sentido multiobjetivo) (𝑓J ) la distancia promedio entre municipios y hospitales asignados,
(𝑓K ) la distancia máxima entre un municipio y el hospital asignado y (𝑓L ) el número de hospitales mejorados.
FORMULACIÓN
min 𝑧K = 𝐷𝑖𝑠𝑡𝑀𝑎𝑥
min 𝑧L = 𝑁𝑢𝑚𝐻𝑜𝑠𝑝𝑖𝑡𝑎𝑙𝑒𝑠 = S 𝑦?
?∈U
Sujeto a:
T
S 𝑥>? = 1, ∀𝑖 ∈ 𝑀
?∈U
𝑥>? ≤ 𝑦? , ∀𝑖 ∈ 𝑀, 𝑗 ∈ 𝐻
𝑥>? ∈ {0,1}, ∀𝑖 ∈ 𝑀, 𝑗 ∈ 𝐻
𝑦? ∈ {0,1} , 𝑗 ∈ 𝐻
𝐷𝑖𝑠𝑡𝑀𝑎𝑥 ≥ 0
Lo primero para abordar un problema de optimización desde la perspectiva multiobjetivo es ver si existe un trade-
off entre las funciones objetivo, es decir, para mejorar una función objetivo es necesario empeorar en otra
(para nuestro ejemplo, véase la Figura 1). Utilizando la implementación en Xpress disponible en el material del
curso (modelo: Hospitales - Tradeoff.mos, datos: hospitales.dat) se obtuvieron las siguientes figuras que
describen dicho trade-off. En este caso, aumentamos progresivamente el número de hospitales disponibles y
para cada valor optimizamos independientemente la distancia máxima o la distancia promedio. Tal como puede
verse en ambas gráficas, al minimizar la distancia máxima se empeora la distancia promedio, y viceversa: al
minimizar la distancia promedio se empeora la distancia máxima (la única excepción fue la configuración de 2
hospitales en la cual al minimizar la distancia máxima no se desmejoró la distancia promedio). Así mismo, resulta
claro que para poder minimizar cualquiera de las dos primeras funciones objetivo (𝑧J distancia promedio o 𝑧K
distancia máxima), es necesario aumentar el número de hospitales, lo cual va en contra de la minimización de la
tercera función objetivo (𝑧L número de hospitales).
Figura 1. Trade-off entre distancia máxima y distancia promedio al optimizar una u otra función objetivo
Tabla 3. Funciones objetivo óptimas para el ejemplo de mejoramiento de hospitales de la seccional de salud
Número de hospitales 1 2 3 4 5 6 7 8
Distancia promedio
óptima 70.7 57.1 51.2 46.6 46.6 46.6 46.6 46.6
Distancia máxima optima 47.29 34.9 25.93 21.84 21.16 20.58 20.12 20.12
Existe un conjunto amplio de métodos de optimización multiobjetivo clásicos cuyo principio fundamental es
transformar el problema de optimización multiobjetivo (POM) en un problema de optimización que tenga una
sola función objetivo
Como en optimización multiobjetivo nos interesa el conjunto de soluciones eficientes, casi siempre se requiere
la solución iterativa de los problemas de optimización transformados. Dependiendo del camino elegido, algunas
veces se requerirán restricciones adicionales y en algunos otros casos requeriremos de pesos que indiquen la
importancia de cada uno de los objetivos. La discusión de la optimización multiobjetivo de este documento es
similar a la del capítulo 8 de Rardin (2017). Dos textos clásicos de optimización multiobjetivo que puede ser
interesante revisar si quiere profundizar en el tema son Cohon (2004) y Goicoechea et al. (1982). Así mismo,
puede recurrir a Collette y Siarry (2004), un texto reciente dedicado al tema y sus aplicaciones en la toma de
decisiones. Veamos a continuación los métodos clásicos de optimización multiobjetivo más importantes.
Tabla 4. Reformulación de un problema de optimización multiobjetivo con suma ponderada de las funciones
objetivo
Problema de optimización multiobjetivo (POM) Problema de optimización con suma ponderada (POSP)
min(𝑓J (𝒙), 𝑓K (𝒙), … , 𝑓_ (𝒙)) min 𝑤𝑓J (𝒙) + 𝑤 𝑓K (𝒙) + … + 𝑤_ 𝑓_ (𝒙))
Sujeto a: Sujeto a:
𝒙∈𝛀 𝒙∈𝛀
Adicionalmente, cumplir esta condición siempre es posible dividiendo los pesos por la norma del valor absoluto,
es decir, transformando los pesos 𝑤 e = ∑_>dJ |𝑤> | . Por ejemplo, si tuviéramos pesos: wJ = 1.0, wK = 1.0,
J.T J.T
wL = 2.0, es posible hallar pesos que sumen 1 con la simple transformación wJe = = 0.25, wKe = =
j j
K.T
0.25, wL = = 0.50 al dividir por la suma de los pesos, que en este caso es 4. Estos nuevos pesos
j
permitirán obtener la misma solución óptima.
Utilizar una suma ponderada de los objetivos tiene ventajas y desventajas. La ventaja principal es que no se
afecta la complejidad del conjunto de restricciones originales, ya que toda la transformación se concentra en la
función objetivo. La desventaja principal radica en que ahora es necesario definir los pesos de cada una de las
funciones objetivo. Además, es posible que se requiera reescalarlas, dado que pueden estar medidas en
unidades diferentes.
Los métodos de suma ponderada tienen dos propiedades muy importantes:
• Las soluciones que se encuentran con un método de suma ponderada son no dominadas y sus
evaluaciones en el espacio de la función objetivo pertenecen a la frontera eficiente del problema1.
1
Para las definiciones de optimización multiobjetivo, remítase al siguiente recurso disponible en el material del curso
• No todas las soluciones eficientes se pueden encontrar con un método de suma ponderada: si la frontera
eficiente tiene tramos en los que no es convexa, no es posible encontrar las soluciones que se
encuentran en dichos tramos. En la Figura 2, si fuese un problema de minimización biobjetivo para 𝑓J y
𝑓K , la frontera eficiente estaría dada por las soluciones azules (note que todas las soluciones rojas están
dominadas por al menos una de las soluciones azules). Sin embargo, un método de suma ponderada
nunca encontraría las soluciones B o D. Esto se debe a que las rectas que se pueden obtener con
sumas ponderadas de 𝑤J 𝑓J + 𝑤K 𝑓K (sin importar los valores pesos) siempre llegarán a los puntos A,
C o E cuando se resuelva para la función objetivo de la forma min 𝑤J 𝑓J + 𝑤K 𝑓K ; por ejemplo, rectas
como la naranjada, que se puede obtener con pesos 𝑤J ≈ 𝑤K , siempre producirán como solución
óptima el punto C, sin importar qué tanto las movamos. Cuando le demos mucha importancia a 𝑓J con
pesos 𝑤J ≫ 𝑤K (como la recta de color morado) nos toparemos siempre con el punto E. Por el
contrario, cuando le demos mucha importancia a 𝑓K 𝑤K ≫ 𝑤J (con rectas como la verde) nos
toparemos con el punto A.
Esta segunda propiedad de los métodos de ponderación nos lleva a tener una precaución cuando los usemos:
el control que nos dan los pesos al darle más importancia a una función objetivo sobre otra no es tan grande
como creíamos. Eso sí, las soluciones que encontraremos son eficientes (óptimas de Pareto), lo cual es
una propiedad muy deseable en la optimización multiobjetivo.
Figura 2. Frontera eficiente no convexa
Veamos qué pasa si usamos distintos valores de pesos (nótese que aquí no usamos ningún escalamiento de la
función objetivo) para experimentar sobre nuestro ejemplo de los hospitales usando el método de suma
ponderada:
Universidad de Antioquia · Facultad de Ingeniería· Ude@ Educación Virtual
min z = wJ 𝐷𝑖𝑠𝑡𝑃𝑟𝑜𝑚𝑒𝑑𝑖𝑜 + 𝑤K 𝐷𝑖𝑠𝑡𝑀𝑎𝑥 + 𝑤L 𝑁𝑢𝑚𝐻𝑜𝑠𝑝𝑖𝑡𝑎𝑙𝑒𝑠
Sujeto a:
T
S 𝑥>? = 1, ∀𝑖 ∈ 𝑀
?∈U
𝑥>? ≤ 𝑦? , ∀𝑖 ∈ 𝑀, 𝑗 ∈ 𝐻
𝑁𝑢𝑚𝐻𝑜𝑠𝑝𝑖𝑡𝑎𝑙𝑒𝑠 = S 𝑦?
?∈U
𝑥>? ∈ {0,1}, ∀𝑖 ∈ 𝑀, 𝑗 ∈ 𝐻
𝑦? ∈ {0,1} , 𝑗 ∈ 𝐻
𝐷𝑖𝑠𝑡𝑀𝑎𝑥 ≥ 0
En la Tabla 5, note que varias combinaciones de pesos conducen a la misma solución; por ejemplo, las
soluciones 1, 2 y 4 son la misma, a pesar de que los pesos que se le dieron a las funciones objetivo son diferentes.
Por otro lado, cuando se le dio más importancia a la segunda función objetivo (con los pesos de la solución 3),
que tiene pesos wJ = 1.0, wK = 2.0, no se obtuvo mejora en la segunda función objetivo, sino en la primera
función objetivo, en detrimento de la tercera que llegó a 7 hospitales abiertos. Esto ilustra el poco control que
tenemos con los pesos sobre la dirección que tomará una función objetivo. Un mejor control se puede obtener
con el método que se expone en la siguiente sección.
Tabla 5. Soluciones eficientes del ejemplo de localización de hospitales para distintas ponderaciones de los
objetivos
Solución Pesos Distancia Distancia Número de
promedio máxima Hospitales
1 wJ = 1.0,wK = 1.0, wL = 1.0 21.38 46.6 5
Finalmente, las soluciones en las que hay menos hospitales abiertos se obtienen cuando el peso wL es mucho
mayor que wJ y wK (en las soluciones 5 y 6). Lo invitamos a experimentar con otras combinaciones de pesos
en el archivo HospitalesSumaPonderada.mos para ver qué otras soluciones eficientes usted puede encontrar
con menos hospitales.
Escalamiento de las funciones objetivo en suma ponderada
Ahora enfoquémonos en la segunda parte, a la que tendremos que prestarle atención si vamos a usar una suma
ponderada: ¿Cómo vamos a escalar las funciones objetivo? y ¿cómo fijaremos los pesos para ponderar cada
una de las funciones objetivo? Para escalar la función objetivo podemos usar muchas opciones:
• Podemos usar cotas de sus valores máximos, de manera que si las dividimos por dichas cotas el valor
escalado esté siempre entre [0,1].
• Podemos usar la norma euclidiana u otra norma de los coeficientes de la función objetivo y dividirlos por
la magnitud de la función objetivo en dicha norma, de manera que sume 1.
En uno de nuestros ejercicios propuestos, lo invitamos a que resuelva de nuevo el ejemplo de los hospitales
escalando las funciones objetivo, para que compare el resultado.
𝑓K (𝒙) ≤ 𝜀K
⋮
𝑓_ (𝒙) ≤ 𝜀_
𝜀K , …, 𝜀_ ∈ ℝ
En este caso, las restricciones de la forma 𝑓> (𝒙) ≤ 𝜀> garantizan que cada función objetivo tendrá a lo sumo
el valor de su correspondiente valor 𝜀> , permitiendo así un mayor control sobre los valores que tomará cada
función objetivo en la solución óptima del POER. Sin embargo, aún no está claro cómo escoger los valores que
le daremos a cada 𝜀> . Una forma de asignar estos valores es encontrar las cotas mínima (𝑓>v>w ) y máxima
(𝑓>vxy ) para cada función objetivo, y luego dividir el rango 𝑓>vxy − 𝑓>v>w en el número de intervalos de
discretización que queramos explorar (𝑡 en nuestra notación), de tal forma que el método de 𝜀-restricciones
puede resumirse de la siguiente manera:
Tabla 7. Esquema del método de 𝜺-restricciones
Inicialización (Rango de los objetivos y discretización)
• Resuelva min 𝑓> (𝒙), sujeto a: 𝒙 ∈ Ω para 𝑖 = 1, … , 𝑘 (encuente la solución óptima para cada función
objetivo)
• Para cada objetivo, encuentre los valores máximo y mínimo entre las soluciones encontradas para cada 𝑖,
𝑓>vxy y 𝑓>v>w
Solución (Utilizando todos los posibles valores de 𝜀>} para cada objetivo)
Para 𝑖 = 2, … , 𝑘, sean 𝜀>} = 𝑓>v>w + 𝑡∆>
Resuelva
min 𝑓J (𝒙)
Sujeto a: 𝒙 ∈ 𝛀
𝑓K (𝒙) ≤ 𝜀K
⋮
𝑓_ (𝒙) ≤ 𝜀_
Veamos en nuestro ejemplo de los hospitales cómo se aplicaría el método de 𝜀-restricciones. En la Figura 1 es
claro que operar más de 4 hospitales no mejora ostensiblemente (o nada) la distancia promedio o máxima. Así
que por facilidad en la graficación de la frontera eficiente fijaremos el número de hospitales en 4 y analizaremos
el trade-off entre las otras dos funciones objetivo usando el método de 𝜀-restricciones.
Inicialización
Al resolver el problema de optimización original (con 4 hospitales) para minimizar la distancia promedio o la
distancia máxima por separado, se obtienen las siguientes soluciones:
Aquí es claro que hay un trade-off entre la distancia promedio y máxima, y que para mejorar una es necesario
desmejorar en la otra. Ahora, aprovechando que el rango de la distancia máxima es mayor, escojamos esta
función objetivo para la 𝜀-restricción y definamos 𝑡 = 5 intervalos, así:
79.5 − 46.6
∆K = = 6.58
5
De esta manera, los valores de 𝜀K que debemos explorar y las correspondientes soluciones serán:
Tabla 9. Soluciones obtenidas con el método de 𝜺-restricciones para el ejemplo de localización de hospitales
Al analizar los resultados de la Tabla 9 podemos notar que la 𝜀-restricción tuvo holgura en todos los casos y no
cambió de solución sino hasta que le exigimos tener la menor distancia máxima posible, en ese caso sí cambió
el conjunto de hospitales que operan y la asignación de municipios a hospitales. Nótese, sin embargo, que al
optimizar para la distancia promedio con la restricción de que la distancia máxima no empeore (la primera
solución de la tabla 𝐷𝑖𝑠𝑡𝑀𝑎𝑥 ≤ 46.6), decubrimos que la solución original que teníamos para la minimización
de la distancia máxima es débilmente eficiente, ¿por qué?
Para más detalles de la implementación computacional del método de 𝜀 -restricciones, puede recurrir al archivo
Hospitales - e-restricciones.mos, disponible en el material de clase. Además, en los ejercicios propuestos
invitamos a experimentar con este archivo para otras cantidades de hospitales a operar.
I𝐧𝐢𝐜𝐢𝐨. 𝑿J = 𝛀 , 𝑝 ←1
Mientras 𝑝 ≤ 𝑘
Paso 1. Resuelva el problema monoobjetivo:
𝑧 ∗ = min 𝑓• (𝒙),
Sujeto a: 𝒙 ∈ 𝛀𝒑
Paso 2. Si la solución óptima es única, entonces PARAR, la solución es óptima lexicográficamente. Si el
problema no tiene óptimo finito, PARAR
Si no, hacer: 𝛀𝒑‘𝟏 = 𝛀𝒑 ∩ 𝒙: 𝑓• (𝒙) = 𝑧 ∗ (óptimos alternos-nueva restricción).
Paso 3. 𝑝 ← 𝑝 + 1
Salida. Conjunto de soluciones óptimas lexicográficamente
El paso más importante en este método es el que indica 𝛀𝒑‘𝟏 = 𝛀𝒑 ∩ 𝒙: 𝑓• (𝒙) = 𝑧 ∗ , de esta manera se
garantiza que las funciones objetivo anteriores no se empeorarán al optimizar las funciones siguientes en la
secuencia (es decir, estamos optimizándolas lexicográficamente).
Con esto termina la exposición de los métodos clásicos de optimización multiobjetivo. Para seguir profundizando
en el tema, puede recurrir al material complementario, en el que encontrará algunos métodos y referencias
adicionales
En este caso, el equipo utilizado permite hacer dos tipos diferentes de irradiaciones, la primera (Figura 4-T1)
tiene un rayo concentrado de cubrimiento pequeño, mientras que la segunda (Figura 4-T2) es capaz de irradiar
áreas mayores. La precisión de una irradiación T1 hace que su preparación y ejecución tome el doble del tiempo
que para una irradiación T2. Cuando se planea el tratamiento, es necesario que los médicos tengan varias
alternativas para escoger, analizando la cantidad de tejido sano irradiado y la duración del tratamiento.
Para probar los prototipos del sistema, los doctores le han entregado la imagen de un tumor bastante raro y difícil
de tratar (Figura 5), para el cual usted debe diseñar tratamientos optimizando ambos criterios (tiempo de
tratamiento y tejido sano irradiado). Usted ha decidido abordar esta situación utilizando sus conocimientos de
optimización multiobjetivo, para lo cual deberá: formular un modelo de optimización general que describa la
situación, escoger e implementar un método de solución para dicho modelo usando un software de optimización
apropiado y probar su método utilizando el tumor de la Figura 5.
5. Ejercicio de implementación
• Adapte el código Hospitales - e-restricciones.mos para resolver el ejemplo de los hospitales, suponiendo
que se abren 2 o 3 hospitales y no 4, y analice las soluciones que se generan.
• Utilice el archivo HospitalesSumaPonderada.mos y los valores óptimos de cada una de las funciones
objetivo de nuestro ejemplo de los hospitales para resolver nuevamente el problema de optimización de
suma ponderada con las funciones objetivo reescaladas y la condición de que los pesos de las funciones
objetivo sumen 1 (∑_>dJ 𝑤> = 1J ).
• Resuelva el ejemplo de los hospitales suponiendo que se tienen 2 hospitales para operar y se optimizará
lexicográficamente primero la distancia máxima y luego la distancia promedio.