Está en la página 1de 19

Arquetipos avanzados en la construcción de modelos de optimización

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.

1. Ruteo de vehículos (Partición de conjuntos)

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:

ID Ruta Distancia ID Ruta Distancia


A 1-2 10 E 2-6 7
B 1-3-5 16 F 3-4 5
C 1-5-6 12 G 3-5-6 6
D 2-5 4 H 4-5-6 12

Universidad de Antioquia · Facultad de Ingeniería· Ude@ Educación Virtual


Notación y elementos del modelo

Conjuntos
𝐶𝑙𝑖𝑒𝑛𝑡𝑒𝑠 𝐶 = {1, . . ,6}
𝑅𝑢𝑡𝑎 𝑅 = {𝐴, 𝐵, 𝐶, 𝐷, 𝐸, 𝐹, 𝐺, 𝐻}

Parámetros
𝑑! : distancia de la ruta 𝑗 ∈ 𝑅.
1, 𝑠𝑖 𝑒𝑙 𝑐𝑙𝑖𝑒𝑛𝑡𝑒 𝑖 𝑒𝑠 𝑣𝑖𝑠𝑖𝑡𝑎𝑑𝑜 𝑝𝑜𝑟 𝑙𝑎 𝑟𝑢𝑡𝑎 𝑗
𝑐𝑟"! : @
0, 𝑠𝑖 𝑒𝑙 𝑐𝑙𝑖𝑒𝑛𝑡𝑒 𝑖 𝑁𝑂 𝑒𝑠 𝑣𝑖𝑠𝑖𝑡𝑎𝑑𝑜 𝑝𝑜𝑟 𝑙𝑎 𝑟𝑢𝑡𝑎 𝑗

La matriz que describe este parámetro es la siguiente:

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:

Universidad de Antioquia · Facultad de Ingeniería· Ude@ Educación Virtual


P 𝑥" 𝑐𝑟"! = 1 ∀𝑖 ∈ 𝐶 Cada cliente debe ser visitado por una sola de las rutas
! ∈ %

𝑥! ∈ {0,1} ∀𝑗 ∈ 𝑅 Dominio de las variables

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.

Universidad de Antioquia · Facultad de Ingeniería· Ude@ Educación Virtual


Tabla 1. Cantidad de piezas a obtener en cada patrón de corte

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:

Universidad de Antioquia · Facultad de Ingeniería· Ude@ Educación Virtual


Formule un modelo de optimización que les permita a Liliana y Eduardo encontrar el número mínimo de láminas a cortar para satisfacer los requerimientos de material de
la próxima semana.1

Notación y elementos del modelo

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:

P 𝑝𝑐"! 𝑥! ≥ 𝑟" ∀𝑖 ∈ 𝑃 Cumplir con el requerimiento de piezas (demanda)


! ∈ &

𝑥! ∈ ℤ' ∀𝑗 ∈ 𝐶 Dominio de las variables

1
NEOS presenta una breve síntesis de este problema clásico de la optimización combinatoria (NEOS Guide, 2020).

Universidad de Antioquia · Facultad de Ingeniería· Ude@ Educación Virtual


3. Cargo fijo, SOS 1

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.

Tabla 2. Costos totales de producción y transporte

Demanda y costo de
producción y transporte Capacidad baja Capacidad alta
por millón de unidades

Region de origen NA SA EU AS AF Costo ($) Capacidad Costo ($) Capacidad

NA 81 92 101 130 115 6000 10 9000 20

SA 117 77 108 98 100 4500 10 6750 20

EU 102 105 95 119 111 6500 10 9750 20

AS 115 125 90 59 74 4100 10 6150 20

AF 142 100 103 105 71 4000 10 6000 20

Demanda 12 8 14 16 7

Región Norteamérica Suramérica Europa Asia África


Código NA SA EU AS AF

Universidad de Antioquia · Facultad de Ingeniería· Ude@ Educación Virtual


Además, existe un costo fijo para la construcción de una planta, que no depende del volumen de producción. Hay dos tipos de plantas posibles: de capacidad baja, que
puede producir hasta 10 millones de unidades al año a un costo fijo que depende de la región, y de capacidad alta, que puede producir hasta 20 millones de unidades al
año a un 50 % más de costo fijo (exhibiendo así economías de escala). La Tabla 2 también nos da la demanda total en cada región (en millones de unidades).

Formule un modelo de optimización que ayude al vicepresidente de operaciones a encontrar la mejor configuración de la cadena de suministro.

Notación y elementos del modelo

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).

Universidad de Antioquia · Facultad de Ingeniería· Ude@ Educación Virtual


Formulación

𝑀𝑖𝑛 𝐶𝑜𝑠𝑡𝑜𝑇𝑜𝑡𝑎𝑙 = P P 𝑐𝑓"( 𝑥"( + P P 𝑐𝑣"! 𝑦"!


" ∈ % ( ∈ ) " ∈ % ! ∈ %

Sujeto a:

P 𝑦"! = 𝑑! ∀𝑗 ∈ 𝑅 Cumplir la demanda


" ∈ %

P 𝑦"! ≤ P 𝑐𝑎𝑝( ∗ 𝑥",( ∀𝑖 ∈ 𝑅 Capacidad de las plantas (SOS 1)


! ∈ % ( "+ )

P 𝑥"( ≤ 1 ∀𝑖 ∈ 𝑅 No abrir dos plantas en el mismo lugar


( ∈ )

𝑥"( ∈ {0, 1} ∀𝑖 ∈ 𝑅, 𝑘 ∈ 𝑇 Dominio de las variables


𝑦"! ∈ ℝ' ∀𝑖, 𝑗 ∈ 𝑅

4. Implicaciones lógicas (ejercicio de programación de horarios del colegio)

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

Universidad de Antioquia · Facultad de Ingeniería· Ude@ Educación Virtual


de horas durante la semana; una materia no se dicte más de dos horas en el día en determinado grupo; cada grupo tenga programada una y solo una clase durante cada
hora; cada materia debe ser asignada a un y solo un grupo; cada profesor (y las materias que este dicta) debe ser asignado máximo a un grupo durante cada hora, teniendo
en cuenta la disponibilidad horaria semanal del docente.

Notación y elementos del modelo

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 ( ∈ / , ∈ .

Universidad de Antioquia · Facultad de Ingeniería· Ude@ Educación Virtual


Sujeto a:
"! "! Activación de la variable marcación de bloque (implicaciones lógicas)
𝐵(, ≤ 𝐴(, ∀𝑖 ∈ 𝐷, ∀𝑗 ∈ 𝐻, ∀𝑘 ∈ 𝐺, ∀𝑙 ∈ 𝑀
"! "(!'3)
𝐵(, ≤ 𝐴(, ∀𝑖 ∈ 𝐷, ∀𝑗 ∈ 𝐻|𝑗 < 7, ∀𝑘 ∈ 𝐺, ∀𝑙 ∈ 𝑀
"! "(!'3) "!
𝐴(, + 𝐴(, − 𝐵(, ≤ 1

"!
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)
( "+ /

P 𝐴67 67 Solo pueden programarse materias a grupos si el docente está disponible


(5 = 0 ∀𝑖 ∈ 𝐷, ∀𝑗 ∈ 𝐻, ∀𝑎 ∈ 𝑀, ∀𝑏 ∈ 𝐷, ∀𝑐 ∈ 𝐻| 𝐼𝐻5 = 0
( "+ /

"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} ∀𝑖 ∈ 𝐷, ∀𝑗 ∈ 𝐻, ∀𝑘 ∈ 𝐺, ∀𝑙 ∈ 𝑀

Universidad de Antioquia · Facultad de Ingeniería· Ude@ Educación Virtual


5. Programación de producción: problema del agente viajero (restricciones disyuntivas)

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.

Tabla 3. Tiempos de cambio

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.

Notación y elementos del modelo


Conjuntos
Trabajos 𝑇 = {𝐴, 𝐵, 𝐶, 𝐷, 𝐸}

Parámetros
𝑡"! : tiempo de cambiar del trabajo 𝑖 ∈ 𝑇 al trabajo j ∈ 𝑇.

Variables de decisión
1, 𝑠𝑖 𝑠𝑒 𝑝𝑎𝑠𝑎 𝑑𝑒𝑙 𝑡𝑟𝑎𝑏𝑎𝑗𝑜 𝑖 ∈ 𝑇 𝑎𝑙 𝑡𝑟𝑎𝑏𝑎𝑗𝑜 𝑗 ∈ 𝑇
𝑥"! : @
0, 𝑠𝑖 𝑛𝑜 𝑠𝑒 𝑝𝑎𝑠𝑎 𝑑𝑒𝑙 𝑡𝑟𝑎𝑏𝑎𝑗𝑜 𝑖 𝑎𝑙 𝑗

Universidad de Antioquia · Facultad de Ingeniería· Ude@ Educación Virtual


Verbalización
Decidir de qué trabajo a qué trabajo se debe pasar, asegurando que cada trabajo se inicia y se finaliza una vez (restricciones de flujo), para minimizar la cantidad total de
tiempo en cambios de trabajo.
Formulación

𝑀𝑖𝑛 𝑡𝑖𝑒𝑚𝑝𝑜𝑇𝑜𝑡𝑎𝑙 = P P 𝑡"! 𝑥"!


" ∈ ) ! ∈ )
Sujeto a:

P 𝑥"! = 1 ∀𝑗 ∈ 𝑇 Restricciones de flujo


" ∈ )
P 𝑥"! = 1 ∀𝑖 ∈ 𝑇
! ∈ )
𝑥"! ∈ {0, 1} ∀𝑖, 𝑗 ∈ 𝑇 Dominio de las variables

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.

Valor de la función objetivo: 19

Valor de las variables (diferentes de cero):

𝑥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

Universidad de Antioquia · Facultad de Ingeniería· Ude@ Educación Virtual


Si bien esta solución cumple con todas las restricciones planteadas, no es factible debido a que se pide un solo ciclo de trabajo en el cual se incluyan todos los trabajos. A
este problema obtenido en la solución se le conoce como subtours y son muy comunes en modelos como el problema del agente viajero (TSP, por sus siglas en inglés).
Este es un modelo clásico de la optimización que se emplea para programar producción, como en este caso, pero sobre todo para el diseño de rutas de distribución y
recolección de bienes. Es tan famoso que tiene dedicada una página web en la Universidad de Waterloo y hay concursos y software dedicados para su resolución2. Para
una breve introducción a su uso en operaciones y logística puede remitirse a González-Velarde y Ríos-Mercado (1999).

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, 𝑠𝑖 𝑛𝑜 𝑠𝑒 𝑝𝑎𝑠𝑎 𝑑𝑒𝑙 𝑡𝑟𝑎𝑏𝑎𝑗𝑜 𝑖 𝑎𝑙 𝑗

𝑢" : posición en la secuencia en la que se ejecutará el trabajo 𝑖 ∈ 𝑇

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

𝑀𝑖𝑛 𝑡𝑖𝑒𝑚𝑝𝑜𝑇𝑜𝑡𝑎𝑙 = P P 𝑡"! 𝑥"!


" ∈ ) ! ∈ )
Sujeto a:

P 𝑥"! = 1 ∀𝑗 ∈ 𝑇 Restricciones de flujo


" ∈ )

2
Vea http://www.math.uwaterloo.ca/tsp/

Universidad de Antioquia · Facultad de Ingeniería· Ude@ Educación Virtual


P 𝑥"! = 1 ∀𝑖 ∈ 𝑇
! ∈ )
𝑢" − 𝑢! ≤ 𝑛 ∗ €1 − 𝑥"! • − 1 ∀𝑖, 𝑗 ∈ 𝑇| 𝑖, 𝑗 ≠ 𝐴) (1) Eliminación de subtours (restricción disyuntiva)
𝑢" ≥ 1 ∀𝑖 ∈ 𝑇| 𝑖 ≠ 𝐴 (2)
𝑢" ≤ 𝑛 − 1 ∀𝑖 ∈ 𝑇| 𝑖 ≠ 𝐴 (3)

𝑥"! ∈ {0, 1} ∀𝑖, 𝑗 ∈ 𝑇 Dominio de las variables


𝑢" ∈ ℤ' ∀𝑖 ∈ 𝑇

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.

La solución encontrada con el nuevo modelo es la siguiente:

Valor de la función objetivo: 24

Valor de las variables (diferentes de cero):

𝑥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.

Universidad de Antioquia · Facultad de Ingeniería· Ude@ Educación Virtual


Figura 1. Triángulo mágico con una solución factible

Notación y elementos del modelo

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.

Universidad de Antioquia · Facultad de Ingeniería· Ude@ Educación Virtual


Formulación

𝐹𝑜 = 𝑀𝑖𝑛(0)

Sujeto a:

P P 𝑥"! ∗ 𝑛" ∗ 𝑝𝑙!( = 20 ∀𝑘 ∈ 𝐿 La suma de cada línea debe ser 20


" ∈ = ! ∈ <

P 𝑥"! = 1 ∀𝑖 ∈ 𝑁 Cada número debe ser asignado a una posición


! ∈ <

P 𝑥"! = 1 ∀𝑗 ∈ 𝑃 Cada posición debe ser asignada a un número


" ∈ =

𝑥"! ∈ {0, 1} ∀𝑖 ∈ 𝑁, 𝑗 ∈ 𝑃 Dominio de las variables de decisión

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)

min 𝑓(𝑥3 , 𝑥> ) = 𝑥3> − 4𝑥3 − 2𝑥>

Sujeto a:
x3 + 𝑥> ≤ 4
2x3 + 𝑥> ≤ 5
−x3 + 4𝑥> ≥ 2

Universidad de Antioquia · Facultad de Ingeniería· Ude@ Educación Virtual


x3 , 𝑥> ≥ 0

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:

𝑥3 𝑓(𝑥3 ) 𝑥3> − 4𝑥3


0 0
1 -3
2 -4
3 -3
4 0

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].

Figura 2. Aproximación lineal a tramos de 𝑓(𝑥3 ) = 𝑥3> − 4𝑥3

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.

Universidad de Antioquia · Facultad de Ingeniería· Ude@ Educación Virtual


𝑀𝑖𝑛 𝑓 − 2𝑥>

Sujeto a:

𝑥3 = 0𝛼? + 1𝛼3 + 2𝛼> + 3𝛼@ + 4𝛼A Valor aproximado de la variable real 𝑥3

𝑓 = 0𝛼? − 3𝛼3 − 4𝛼> − 3𝛼@ − 3𝛼A + 0𝛼B Valor aproximado de la función no lineal 𝑓(𝑥3 )

𝛼? ≤ 𝑏3 Aproximación lineal por tramos


𝛼3 ≤ 𝑏3 + 𝑏> (interpolación lineal en cada intervalo)
𝛼> ≤ 𝑏> + 𝑏@
𝛼@ ≤ 𝑏@ + 𝑏A
𝛼A ≤ 𝑏A

𝑏3 + 𝑏> + 𝑏@ + 𝑏A = 1 Aproximación lineal por tramos


(se escoge un solo intervalo)
𝛼? + 𝛼3 + 𝛼> + 𝛼@ + 𝛼A = 1 Aproximación lineal por tramos
(la variable es la combinación de dos puntos extremos)
Restricciones originales
x3 + 𝑥> ≤ 4
2x3 + 𝑥> ≤ 5
−x3 + 4𝑥> ≥ 2

𝑏" ∈ {0,1}, 𝑖 = 1, … ,4 Dominio de las variables


𝑎" ≥ 0, 𝑖 = 0, … ,4
x3 , 𝑥> ≥ 0
𝑓 𝑙𝑖𝑏𝑟𝑒

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.

Universidad de Antioquia · Facultad de Ingeniería· Ude@ Educación Virtual


Referencias bibliográficas

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

Neos Guide. (2020). The cutting stock problem. https://neos-guide.org/content/cutting-stock-problem

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.

Universidad de Antioquia · Facultad de Ingeniería· Ude@ Educación Virtual

También podría gustarte