Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ejemplos resueltos
Autores
Yhorman A. Bedoya y Juan G. Villegas
Facultad de Ingeniería
En este documento se presentan algunos ejercicios resueltos de formulación de modelos de optimización. El objetivo de dichos ejercicios es que el estudiante pueda repasar
los distintos arquetipos avanzados de modelación: cargos fijos, implicaciones lógicas, variables semicontinuas, SOS 1 y SOS 2, etc. Para cada ejercicio seguimos
nuevamente la secuencia: (i) notación y elementos del modelo, (ii) verbalización, (iii) formulación. Esta vez, a menos que sea necesario para la solución y el entendimiento
del ejercicio, se privilegian las formulaciones generales.
Un operador logístico debe repartir 6 pedidos utilizando vehículos que pueden transportar hasta 4 palés. El número de palés de cada uno de los pedidos es:
Pedido 1 2 3 4 5 6
Demanda (palés) 1 3 2 2 1 1
Con base en su experiencia, y considerando la capacidad de los vehículos, el programador de despacho ha encontrado las siguientes rutas factibles con sus respectivos
costos:
Conjuntos
𝐶𝑙𝑖𝑒𝑛𝑡𝑒𝑠 𝐶 = {1, . . ,6}
𝑅𝑢𝑡𝑎 𝑅 = {𝐴, 𝐵, 𝐶, 𝐷, 𝐸, 𝐹, 𝐺, 𝐻}
Parámetros
𝑑! : distancia de la ruta 𝑗 ∈ 𝑅.
1, 𝑠𝑖 𝑒𝑙 𝑐𝑙𝑖𝑒𝑛𝑡𝑒 𝑖 𝑒𝑠 𝑣𝑖𝑠𝑖𝑡𝑎𝑑𝑜 𝑝𝑜𝑟 𝑙𝑎 𝑟𝑢𝑡𝑎 𝑗
𝑐𝑟"! : @
0, 𝑠𝑖 𝑒𝑙 𝑐𝑙𝑖𝑒𝑛𝑡𝑒 𝑖 𝑁𝑂 𝑒𝑠 𝑣𝑖𝑠𝑖𝑡𝑎𝑑𝑜 𝑝𝑜𝑟 𝑙𝑎 𝑟𝑢𝑡𝑎 𝑗
1 1 1 0 0 0 0 0
⎡1 0 0 1 1 0 0 0⎤
⎢ ⎥
⎢0 1 0 0 0 1 1 0⎥
⎢0 0 0 0 0 1 0 1⎥
⎢0 1 1 1 0 1 1 1⎥
⎣0 0 1 0 0 1 1 1⎦
Variables de decisión
1, 𝑠𝑖 𝑠𝑒 𝑠𝑒𝑙𝑒𝑐𝑐𝑖𝑜𝑛𝑎 𝑙𝑎 𝑟𝑢𝑡𝑎 𝑗 ∈ 𝑅
𝑥! : @
0, 𝑠𝑖 𝑛𝑜 𝑠𝑒 𝑠𝑒𝑙𝑒𝑐𝑐𝑖𝑜𝑛𝑎 𝑙𝑎 𝑟𝑢𝑡𝑎 𝑗 ∈ 𝑅
Verbalización
Decidir qué rutas se deben ejecutar asegurando que cada cliente será visitado por una ruta, para minimizar la distancia total recorrida por las rutas seleccionadas.
Formulación
𝑀𝑖𝑛 𝑑𝑖𝑠𝑡𝑎𝑛𝑐𝑖𝑎𝑇𝑜𝑡𝑎𝑙 = P 𝑑! 𝑥!
! ∈ %
Sujeto a:
A este modelo se le conoce en optimización como problema de partición de conjuntos, en el cual un conjunto de elementos debe ser partido en subconjuntos disjuntos, de
manera que la suma de una función de los subconjuntos sea mínima. Este problema es muy utilizado como arquetipo de modelación en distintas aplicaciones como la
programación de personal, rutas de transporte, zonificación de territorios, localización de instalaciones, etc. Si la restricción principal se escribe como ≥, el modelo se
conoce como problema de cubrimiento de conjuntos. Para ampliar los detalles sobre este problema se sugiere la referencia de Hoffman y Padberg (2009).
2. Programación de corte (variables enteras de manera natural + truco de parámetro entero para “cobertura de demanda”)
Liliana, la coordinadora de la planta de producción de Muebles El Comején está planeando la producción de la próxima semana. Con base en la demanda de los muebles,
sabe que necesita la siguiente cantidad de piezas:
Pieza Requerimiento
A 13
B 7
C 14
D 3
E 35
F 2
G 17
En conjunto con Eduardo, el operario de la máquina de corte, y con base en las dimensiones de las láminas de madera que utilizan y las dimensiones de las piezas a cortar,
Liliana ha ideado 10 patrones de corte diferentes (de los múltiples posibles). El número de piezas obtenidas por cada patrón y las gráficas de los patrones correspondientes
se presentan a continuación.
Patrón de corte
Pieza 1 2 3 4 5 6 7 8 9 10
A 1 1 8 0 0 0 2 3 0 1
B 5 0 0 0 0 0 0 2 1 1
C 0 1 0 0 0 1 3 0 0 1
D 1 1 0 0 1 2 0 0 0 1
E 0 0 1 3 0 0 0 0 1 1
F 0 0 0 0 0 1 0 1 0 0
G 0 1 0 0 2 0 0 0 1 0
Patrones de corte:
Conjuntos
𝑃𝑖𝑒𝑧𝑎𝑠 𝑃 = {𝐴, 𝐵, 𝐶, 𝐷, 𝐸, 𝐹, 𝐺 }
𝑝𝑎𝑡𝑟𝑜𝑛𝑒𝑠 𝑑𝑒 𝐶𝑜𝑟𝑡𝑒 𝐶 = {1, 2,3,4,5,6,7,8,9,10}
Parámetros
𝑟" : requerimiento de la pieza i.
𝑝𝑐"! : número de piezas i a obtener con el corte j (Vea la Tabla 1).
Variables de decisión
𝑥! : cantidad de láminas a cortar con el corte j.
Verbalización
Decidir cuántas láminas se deben cortar con cada patrón de corte cumpliendo el requerimiento mínimo de cada pieza, para minimizar la cantidad total de láminas cortadas.
Formulación
𝑀𝑖𝑛 𝑇𝑜𝑡𝑎𝑙𝑙𝑎𝑚𝑖𝑛𝑎𝑠 = P 𝑥!
! ∈ &
Sujeto a:
1
NEOS presenta una breve síntesis de este problema clásico de la optimización combinatoria (NEOS Guide, 2020).
Ahora analicemos el siguiente ejemplo, tomado del texto Supply chain management: Strategy, planning, and operation (Chopra & Meindl, 2014).
El vicepresidente de cadena de suministro de SunOil está considerando dónde construir nuevas instalaciones de producción. Hay 5 opciones: América del Norte y del Sur,
Europa, Asia y África. Los costos totales de producción y transporte para cada posible par de regiones de “oferta” y “demanda” se dan en la Tabla 2.
Por ejemplo, cuesta 115 000 dólares producir 1 millón de unidades en Asia y transportarlas a América del Norte. Para simplificar, asumimos que estos costos son constantes
y que cuesta lo mismo producir y transportar cada millón de unidades.
Demanda y costo de
producción y transporte Capacidad baja Capacidad alta
por millón de unidades
Demanda 12 8 14 16 7
Formule un modelo de optimización que ayude al vicepresidente de operaciones a encontrar la mejor configuración de la cadena de suministro.
Conjuntos
𝑅𝑒𝑔𝑖𝑜𝑛𝑒𝑠 𝑅 = {𝑁𝐴, 𝑆𝐴, 𝐸𝑈, 𝐴𝑆, 𝐴𝐹}
𝑇𝑖𝑝𝑜 𝑑𝑒 𝑝𝑙𝑎𝑛𝑡𝑎 𝑇 = {𝐿𝑜𝑤, 𝐻𝑖𝑔ℎ}
Parámetros
𝑐𝑣"! : costo en miles de producir y transportar un millón de unidades de la región i ∈ 𝑅 a la región j ∈ 𝑅.
𝑐𝑓"( : costo fijo de abrir una planta del tipo k ∈ 𝑇 en la región i ∈ 𝑅.
𝑐𝑎𝑝( : capacidad de la planta de tamaño k ∈ 𝑇.
𝑑! : demanda de la región j ∈ 𝑅.
Variables de decisión
1, 𝑠𝑖 𝑠𝑒 𝑎𝑏𝑟𝑒 𝑢𝑛𝑎 𝑝𝑙𝑎𝑛𝑡𝑎 𝑒𝑛 𝑙𝑎 𝑟𝑒𝑔𝑖ó𝑛 𝑖 ∈ 𝑅 𝑑𝑒𝑙 𝑡𝑖𝑝𝑜 𝑘 ∈ 𝑇
𝑥"( : @
0, 𝑠𝑖 𝑛𝑜 𝑠𝑒 𝑎𝑏𝑟𝑒 𝑙𝑎 𝑝𝑙𝑎𝑛𝑡𝑎
𝑦"! : millones de unidades a producir en la región 𝑖 ∈ 𝑅 y transportar a la región 𝑗 ∈ 𝑅.
Verbalización
Decidir qué tipo de planta se debe abrir en cada región y cuántos millones de unidades se debe producir en una región para enviar a cada una de las otras asegurando que
se cumpla la demanda sin sobrepasar la capacidad de las plantas abiertas, y teniendo en cuenta que se debe abrir máximo una planta en cada región, para minimizar el
costo total de operación de la cadena de suministro (costos fijos de apertura más costos variables de producción y envío entre regiones).
Sujeto a:
Este problema y modelo fue tomado del artículo “Modelo lineal para la programación de clases en una institución educativa” (Marín & Maya, 2016).
La institución educativa EDUCA desea desarrollar una herramienta que permita programar automáticamente las clases de cada uno de los grupos en la institución. Para
esto, es importante tener en cuenta que en la institución se dictan desde los grados sexto hasta once y cada uno de los grados se compone de un número de grupos en los
que se dividen los estudiantes. En EDUCA se dictan clases de cierto número de materias, las cuales se distribuyen en una jornada educativa de lunes a viernes durante
siete horas cada día; cada grupo tiene un requerimiento de cuántas horas a la semana deben recibir determinada materia. Sin embargo, por preferencias de la institución
educativa en un grupo no se deben dictar más de dos horas diarias de la misma materia y, además, se espera que se puedan programar tantos bloques como sean posibles
(un bloque se compone de dos horas continuas en las cuales se dicta cierta materia a cierto grupo). EDUCA cuenta con un muy limitado número de profesores, quienes
pueden dictar más de una materia en diferentes grupos, sin embargo, cada docente solo está disponible durante ciertos días y horas durante la semana.
A usted le han dado la tarea de desarrollar la herramienta con la cual se espera programar el día y la hora en la que cada materia se dictará en cada grupo, de tal manera
que se maximice el número de bloques y se cumplan con los diferentes requerimientos de la institución, como que: cada materia se dicte en cada grupo el número requerido
Conjuntos
𝐷í𝑎𝑠 𝐷 = {𝐿, 𝑀, 𝑊, 𝐽, 𝑉}
𝐻𝑜𝑟𝑎𝑠 𝐻 = {1,2,3,4,5,6,7}
𝐺𝑟𝑢𝑝𝑜𝑠 𝐺 = {1, … , 𝑛}
𝑀𝑎𝑡𝑒𝑟𝑖𝑎𝑠 𝑀 = {1, … , 𝑚}
Parámetros
𝑇!, : cantidad de horas obligatorias que se deben asignar de la materia 𝑗 ∈ 𝑀 en el grupo 𝑙 ∈ 𝐺.
𝐼: matriz de incompatibilidades entre materias (materias incompatibles dado que son dictadas por el mismo docente) (matriz binaria con un 1 si dos materias 𝑗, 𝑗 - ∈
𝑀 𝑠𝑜𝑛 𝑑𝑖𝑐𝑡𝑎𝑑𝑎𝑠 𝑝𝑜𝑟 𝑒𝑙 𝑚𝑖𝑠𝑚𝑜 𝑑𝑜𝑐𝑒𝑛𝑡𝑒).
𝐼𝐻: matriz de incompatibilidades horarias (horas en las que no su pueden dictar las diferentes materias debido a la disponibilidad del docente).
Variables de decisión
"! 1, 𝑒𝑙 𝑑í𝑎 𝑖 ∈ 𝐷 𝑎 𝑙𝑎 ℎ𝑜𝑟𝑎 𝑗 ∈ 𝐻 𝑠𝑒 𝑎𝑠𝑖𝑔𝑛𝑎 𝑙𝑎 𝑚𝑎𝑡𝑒𝑟𝑖𝑎 𝑙 ∈ 𝑀 𝑒𝑛 𝑒𝑙 𝑔𝑟𝑢𝑝𝑜 𝑘 ∈ 𝐺
𝐴(, : @
0, 𝑠𝑖 𝑛𝑜 𝑠𝑒 𝑎𝑠𝑖𝑔𝑛𝑎
"! 1, 𝑒𝑙 𝑑í𝑎 𝑖 ∈ 𝐷 𝑎 𝑙𝑎 ℎ𝑜𝑟𝑎 𝑗 ∈ 𝐻 𝑒𝑙 𝑔𝑟𝑢𝑝𝑜 𝑘 ∈ 𝐺 𝑖𝑛𝑖𝑐𝑖𝑎 𝑢𝑛 𝑏𝑙𝑜𝑞𝑢𝑒 𝑑𝑒 𝑙𝑎 𝑚𝑎𝑡𝑒𝑟𝑖𝑎 𝑙 ∈ 𝑀
𝐵(, : @
0, 𝑠𝑖 𝑛𝑜 𝑠𝑒 𝑖𝑛𝑖𝑐𝑖𝑎
Verbalización
Decidir el día y la hora en la que se le asigna una materia a un grupo, y el día y la hora en que se debe programar un bloque de cierta materia a cierto grupo cumpliendo
que cada materia se dicta las horas requeridas por cada grupo, sin dictar más de dos horas diarias de la misma materia al mismo grupo, además cada materia en cada
instante de tiempo debe ser asignada a uno y solo un grupo, y cada curso debe tener asignada una y solo una materia en cada instante de tiempo, las diferentes materias
dictadas por un docente no deben ser asignadas al mismo tiempo en diferentes grupos y solo debe programarse una materia en un grupo si el profesor tiene disponibilidad
en ese instante de tiempo, para maximizar la cantidad total de bloques que se programan en todos los grupos, días, horas y materias.
Formulación
"!
𝑀𝑎𝑥 𝑡𝑜𝑡𝑎𝑙𝑑𝑒𝐵𝑙𝑜𝑞𝑢𝑒𝑠 = P P P P 𝐵(,
" ∈ 1 ! ∈ 0 ( ∈ / , ∈ .
"!
P P 𝐴(, = 𝑇,( ∀𝑘 ∈ 𝐺, ∀𝑙 ∈ 𝑀 Cada materia debe dictarse a cada grupo una cantidad requerida de horas
(demanda)
" ∈1 ! "+ 0
"!
En cada grupo no se deben dictar más de dos horas de determinada materia en un
P 𝐴(, ≤ 2 ∀𝑖 ∈ 𝐷, ∀𝑘 ∈ 𝐺, ∀𝑙 ∈ 𝑀 día (conteo de variables binarias)
! "+ 0
"!
P 𝐴(, ≤ 1 ∀𝑖 ∈ 𝐷, ∀𝑗 ∈ 𝐻, ∀𝑙 ∈ 𝑀 Cada materia debe asignarse solo una vez a cada grupo en cada instante de tiempo
(conteo de variables binarias)
( "+ /
"!
P 𝐴(, ≤ 1 ∀𝑖 ∈ 𝐷, ∀𝑗 ∈ 𝐻, ∀𝑘 ∈ 𝐺 Cada grupo solo debe ver una materia en cada instante de tiempo (conteo de
variables binarias)
, "+ .
"! "!
P (𝐴(5 + 𝐴(6 ) ≤ 1 ∀𝑖 ∈ 𝐷, ∀𝑗 ∈ 𝐻, ∀𝑎, 𝑏 ∈ 𝑀|𝐼56 = 1 Las materias dictadas por el mismo docente no deben asignarse a la misma hora a
diferentes grupos (implicación lógica)
( "+ /
"8 En la hora 7 de cada día no puede marcarse el inicio de un bloque debido a que no
𝐵(, = 0 ∀𝑖 ∈ 𝐷, ∀𝑘 𝑖𝑛 𝐺, ∀𝑙 ∈ 𝑀
es posible
"! Dominio de las variables de decisión
𝐵(, ∈ {0, 1} ∀𝑖 ∈ 𝐷, ∀𝑗 ∈ 𝐻, ∀𝑘 ∈ 𝐺, ∀𝑙 ∈ 𝑀
"!
𝐴(, ∈ {0, 1} ∀𝑖 ∈ 𝐷, ∀𝑗 ∈ 𝐻, ∀𝑘 ∈ 𝐺, ∀𝑙 ∈ 𝑀
Josué es el encargado de programar la impresión en la revista El Arcano. El tiempo de cambio entre los trabajos es considerable, ya que es necesario desmontar las
planchas y limpiar las tintas de la impresión anterior. Además, cambiar la máquina de impresión no toma siempre el mismo tiempo y depende del trabajo que esté siendo
ejecutado y el que le siga. Los tiempos de cambio (en minutos) entre los cinco trabajos de impresión que tiene esta semana están dados en la siguiente Tabla 3.
Origen\Destino A B C D E
A ∞ 18 3 3 6
B 19 ∞ 9 10 5
C 9 18 ∞ 13 20
D 6 6 1 ∞ 2
E 17 1 13 17 ∞
Josué quiere demorarse lo menos posible en dichos cambios de trabajo en la máquina. Por lo tanto, formule un modelo de optimización para que Josué pueda encontrar la
secuencia que le permita minimizar los tiempos totales de cambio de las referencias.
Parámetros
𝑡"! : tiempo de cambiar del trabajo 𝑖 ∈ 𝑇 al trabajo j ∈ 𝑇.
Variables de decisión
1, 𝑠𝑖 𝑠𝑒 𝑝𝑎𝑠𝑎 𝑑𝑒𝑙 𝑡𝑟𝑎𝑏𝑎𝑗𝑜 𝑖 ∈ 𝑇 𝑎𝑙 𝑡𝑟𝑎𝑏𝑎𝑗𝑜 𝑗 ∈ 𝑇
𝑥"! : @
0, 𝑠𝑖 𝑛𝑜 𝑠𝑒 𝑝𝑎𝑠𝑎 𝑑𝑒𝑙 𝑡𝑟𝑎𝑏𝑎𝑗𝑜 𝑖 𝑎𝑙 𝑗
Hasta este punto se podría pensar que el modelo ha sido terminado, debido a que ya se cuenta con una variable de decisión que indica desde cuál trabajo se cambia hacia
cuál trabajo y con un conjunto de restricciones de flujo que garantizan una ejecución secuencial de los trabajos. Al solucionar este modelo por medio de un software de
optimización fue posible obtener la siguiente solución.
𝑥9,1 = 1
𝑥:,; = 1
𝑥&,9 = 1
𝑥1,& = 1
𝑥;,: = 1
El valor de las variables sugiere que se inicie en el trabajo A, luego se vaya del trabajo A al D, luego del D al C y del C cerrar el ciclo en A; luego se sugiere ir del trabajo B
al trabajo E y viceversa para cerrar el ciclo. La solución encontrada está compuesta por dos ciclos: A→D→C→A y B→E→B
Para solucionar la aparición de estos ciclos en la solución es necesario añadir en el modelo propuesto un conjunto de restricciones diseñadas para la eliminación de subtours
(ciclos) y una variable de decisión adicional. Esta restricción utiliza el arquetipo de restricciones disyuntivas que se activan solo en ciertos casos. A continuación, se muestra
el nuevo modelo propuesto:
Variables de decisión
1, 𝑠𝑖 𝑠𝑒 𝑝𝑎𝑠𝑎 𝑑𝑒𝑙 𝑡𝑟𝑎𝑏𝑎𝑗𝑜 𝑖 ∈ 𝑇 𝑎𝑙 𝑡𝑟𝑎𝑏𝑎𝑗𝑜 𝑗 ∈ 𝑇
𝑥"! : @
0, 𝑠𝑖 𝑛𝑜 𝑠𝑒 𝑝𝑎𝑠𝑎 𝑑𝑒𝑙 𝑡𝑟𝑎𝑏𝑎𝑗𝑜 𝑖 𝑎𝑙 𝑗
Verbalización
Decidir de qué trabajo a qué trabajo se debe pasar y cuál será la secuencia en que se ejecutarán los trabajos, asegurando que cada trabajo se inicia y se finaliza una vez
(restricciones de flujo) en una sola secuencia de trabajo (eliminación de subtoures), para minimizar la cantidad total de tiempo en cambios de trabajo.
Formulación
2
Vea http://www.math.uwaterloo.ca/tsp/
La nueva variable de decisión 𝑢" indica el orden específico en el cual se realizará cada trabajo. Observe que, si bien en el primer modelo propuesto se conocía la secuencia
a seguir, no se conocía en qué orden debía ser ejecutada. La restricción (1) hace que la variable 𝑢" sea secuencial y que dos trabajos no puedan ser ejecutados al mismo
tiempo (note que la variable binaria 𝑥"! se usa para desactivar la restricción cuando los trabajos no son consecutivos). Las restricciones (2) y (3) hacen que las variables 𝑢"
estén en el intervalo [1, 𝑛 − 1], sin embargo, note que la variable 𝑢9 no está incluida en estas restricciones, debido a que el trabajo A será el primero en ser ejecutado.
𝑥9,1 = 1 𝑢9 = 0
𝑥:,& = 1 𝑢: = 3
𝑥&,9 = 1 𝑢& = 4
𝑥1,; = 1 𝑢1 = 1
𝑥;,: = 1 𝑢; = 2
Esta solución consta de un solo ciclo o tour, lo cual la hace una solución factible para la decisión de programación que tiene que tomar Josué. El ciclo resultante es:
A→D→E→B→C→A
6. Un juego parecido a un sudoku, pero más sencillo (no función objetivo, variables binarias para representa variables enteras e implicaciones lógicas)
Un triángulo mágico es un juego matemático en el cual se deben disponer los números del 1 al 9 en los lados de un triángulo de manera que ninguno de los números se
repita y la suma de los números en todos los lados sea 20. Formule la solución del triángulo mágico como un problema de programación entera. La Figura 1 muestra un
ejemplo de un triángulo mágico con una solución factible. Pista: es posible que no necesita una función objetivo.
Conjuntos
Números N = {1, … , 9}
Posiciones P = {𝐴, 𝐵, 𝐶, 𝐷, 𝐸, 𝐹, 𝐺, 𝐻, 𝐼}
Líneas L = {𝐿1, 𝐿2, 𝐿3}
Parámetros
1, 𝑠𝑖 𝑙𝑎 𝑝𝑜𝑠𝑖𝑐𝑖ó𝑛 𝑗 𝑝𝑒𝑟𝑡𝑒𝑛𝑒𝑐𝑒 𝑎 𝑙𝑎 𝑙í𝑛𝑒𝑎 𝑘
𝑝𝑙!( : @
0, 𝑠𝑖 𝑙𝑎 𝑝𝑜𝑠𝑖𝑐𝑖ó𝑛 𝑗 𝑛𝑜 𝑝𝑒𝑟𝑡𝑒𝑛𝑒𝑐𝑒 𝑎 𝑙𝑎 𝑙í𝑛𝑒𝑎 𝑘
𝑛" : valor del número i.
Variables de decisión
1, 𝑠𝑖 𝑒𝑙 𝑛ú𝑚𝑒𝑟𝑜 𝑖 𝑠𝑒 𝑢𝑏𝑖𝑐𝑎 𝑒𝑛 𝑙𝑎 𝑝𝑜𝑠𝑖𝑐𝑖ó𝑛 𝑗
𝑥"! : @
0, 𝑠𝑖 𝑒𝑙 𝑛ú𝑚𝑒𝑟𝑜 𝑖 𝑛𝑜 𝑠𝑒 𝑢𝑏𝑖𝑐𝑎 𝑒𝑛 𝑙𝑎 𝑝𝑜𝑠𝑖𝑐𝑖ó𝑛 𝑗
Verbalización
Decidir de qué posición se ubica cada número, asegurando que cada una de las filas suma 20, teniendo en cuenta que cada número debe estar asignado a una posición y
que cada posición debe estar asignada solo a un número, para encontrar al menos una solución factible.
𝐹𝑜 = 𝑀𝑖𝑛(0)
Sujeto a:
La función objetivo de un problema de optimización es representada por una función de beneficios o costos que buscan ser maximizados o minimizados. Sin embargo, en
este caso particular, no se tiene un objetivo, ya que solamente se busca encontrar una solución factible al problema. En estos casos se hace uso de una función objetivo
trivial como, por ejemplo, maximizar o minimizar determinado número (ej. 𝑀𝑖𝑛(0)). Esta es la razón por la cual solo nos interesa encontrar una solución factible y hacemos
uso de una función objetivo trivial en la formulación presentada.
7. Resuelva el siguiente problema de optimización no lineal a través de una aproximación lineal a tramos (utilización de SOS 2)
Sujeto a:
x3 + 𝑥> ≤ 4
2x3 + 𝑥> ≤ 5
−x3 + 4𝑥> ≥ 2
Para resolver el problema, dividiremos la función 𝑓(𝑥3 ) = 𝑥3> − 4𝑥3 de la variable que presenta la no linealidad en 5 posibles tramos, como se muestra en la
siguiente tabla:
Con los valores de la tabla es posible aproximar con tramos rectos la función parabólica de interés; tal como lo muestra la Figura 2, la aproximación con 5 tramos
parece una buena representación de esta función en el intervalo 𝑥3 ∈ [0,4].
Aproximación
6
4
Función objetivo
0
-2 -1 0 1 2 3 4 5 6
-2
-4
-6
x1
De esta manera obtenemos el siguiente modelo modificado, en el cual se usa una aproximación lineal a tramos para la función 𝑓(𝑥3 ) = 𝑥3> − 4𝑥3 , haciendo uso de la
estructura de un conjunto ordenado especial SOS 2.
Sujeto a:
𝑓 = 0𝛼? − 3𝛼3 − 4𝛼> − 3𝛼@ − 3𝛼A + 0𝛼B Valor aproximado de la función no lineal 𝑓(𝑥3 )
Note que se agregó una variable libre 𝑓 para representar la aproximación lineal a tramos de 𝑓(𝑥3 ) = 𝑥3> − 4𝑥3 , así como el conjunto de variables y restricciones
necesarias para expresarla como un SOS 2. El valor de la función objetivo del problema original en el punto mínimo es -9, con la variable x3 = 1 y x> = 3 . Resolviendo
el modelo aproximado por medio de Solver de Excel, es posible comprobar que la aproximación también devuelve como resultado -9. Sin embargo, es importante tener en
cuenta que, como su nombre lo indica, este modelo da resultados aproximados y no siempre retornará el valor óptimo del problema, como en este caso. En los casos en
los que se requiere mayor precisión, será necesario utilizar más puntos en la aproximación.
Chopra, S., Meindl, P. & Kalra, D. V. (2016). Supply chain management: Strategy, planning, and operation. Pearson.
González-Velarde, J. L. & Ríos-Mercado, R. Z. (1999). Investigación de operaciones en acción: Aplicación del TSP en problemas de manufactura y
logística. Ingenierías, 2(4), 18-23.
Hoffman, K. L. & Padberg, M. (2009). Set Covering, Packing and Partitioning Problems. En Floudas, C. & Pardalos, P. (eds.). Encyclopedia of Optimization. Springer.
https://doi.org/10.1007/978-0-387-74759-0_599
Marín Ángel, J. C. & Maya Duque, P. A. (2016). Modelo lineal para la programación de clases en una institución educativa. Ingeniería y Ciencia, 12(23), 47-71.