Está en la página 1de 93

CONSTRUCCIÓN DE MODELOS

DE PROGRAMACIÓN LINEAL
Escuela Superior de Ingenieros
Universidad de Sevilla

GRUPO DE TECNOLOGÍAS DE LA INFORMACIÓN


E INGENIERÍA DE ORGANIZACIÓN

David Canca
Ignacio Eguía
Jesús Racero

1
CAPÍTULO X
MODELADO DE PROBLEMAS LINEALES

X.1. Introducción....................................................................................................................3
X.2. Modelos en Programación Matemática. .......................................................................4
X.3. Construcción de un modelo lineal................................................................................4
X.4. Programación lineal entera. ..........................................................................................5
X.5. El uso habitual de las variables enteras. .....................................................................5
X.6. Algunas relaciones frecuentes. ....................................................................................6
X.6.1. Relaciónes entre una variable continua y una variable auxiliar..........................6
X.6.2. Uso de variables auxiliares en el modelado de costes de setup. .......................7
X.6.3. Uso de variables auxiliares para activar o desactivar restricciones. .................7
X.6.4. Aproximación lineal de una función no lineal.....................................................10
X.6.5. Restricciones disyuntivas.....................................................................................12
X.6.6. Modelando implicaciones lógicas sencillas........................................................12
X.6.7. Objetivos de tipo Minimax y Maximin. .................................................................14
X.6.8. Regiones no convexas. .........................................................................................14
CASOS ..................................................................................................................................17
Planificación .....................................................................................................................17
1. Plan de incorporaciones en un servicio de urgencias..........................................17
2. Elaboración de pizzas en hora punta. ....................................................................23
3. Programación de una cadena de televisión...........................................................28
4. Planificación de una explotación minera ...............................................................32
5. Estudio de la compra de aviones por una compañía ............................................39
6. Fabricación de bobinas............................................................................................45
Asignación ........................................................................................................................48
7. Asignación de alumnos a institutos .......................................................................48
8. Reparto de trabajos ..................................................................................................52
9. Red de comunicaciones de ordenadores...............................................................55
Cobertura ..........................................................................................................................60
10. Vigilancia de las salas de un museo.....................................................................60
11. Localización de cámaras de TV.............................................................................63
Localización......................................................................................................................66
12. Localización continua de Hospitales....................................................................66
13. Ubicación estaciones de bomberos .....................................................................69
Distribución ......................................................................................................................73
14. Planificación de la distribución de un producto..................................................73
Secuenciación ..................................................................................................................81
15. Periódicos ...............................................................................................................81
Equilibrado de cadenas ...................................................................................................84
16. Embalaje de objetos con relaciones de precedencia..........................................84
Técnicas de modelado.....................................................................................................87
17. Regresión lineal. .....................................................................................................87
18. Funciones lineales a trozos...................................................................................90

2
Construcción de modelos de Programación Lineal
X.1. Introducción.

El término modelo es usado de forma habitual en diversas disciplinas científicas. Al hablar


de modelo nos referiremos a cierta “estructura” construida con el propósito de reflejar
determinadas características y analizar el comportamiento de un determinado objeto o
sistema ante ciertos agentes.

Normalmente, sólo algunas características del objeto o sistema real se incorporan al


modelo, dependiendo del fin para el que ha sido creado.

En una primera clasificación podríamos hablar de modelos concretos y abstractos, en


función de la esencia propia del modelo. Un modelo concreto supone una realización física,
normalmente a escala, del objeto o sistema que se desea analizar. Un modelo abstracto
utiliza, de forma general, relaciones y definiciones matemáticas con el fin de representar
relaciones internas del sistema que está siendo modelado.

En lo que a este texto se refiere, nuestra atención se centrará de forma exclusiva en un tipo
particular de modelos abstractos, construido en base a relaciones matemáticas (ecuaciones,
desigualdades, relaciones lógicas, etc..) que se corresponderán con condiciones
tecnológicas, limitaciones en los recursos disponibles, elección de alternativas u otro tipo de
relaciones en el mundo real.

La utilización de modelos responde principalmente a dos motivos. El primero de ellos


consiste en la imposibilidad habitual de experimentar con el sistema real, no sólo por la
complejidad que esto supondría, sino también por los efectos perjudiciales que pudieran
derivarse de esta experimentación. Por otro lado, el proceso de construcción de modelos
ayuda a profundizar en el estudio del sistema real, permitiendo un mayor conocimiento del
sistema u objeto de análisis.

Los modelos matemáticos estudiados en este libro utilizan una forma estándar. Muchos de
los modelos usados en el ámbito de los métodos cuantitativos aplicados a la gestión utilizan
formas estándar. Esta característica es común al caso de numerosos modelos usados en
ingeniería. Existen no obstante muchas situaciones que no pueden ser modeladas de la
manera que describiremos, y que precisaran modelos diferentes tales como modelos de
simulación, econométricos, modelos de previsión, etc...

En la actualidad existe cierta controversia sobre la utilidad de los modelos matemáticos en


el ámbito de la gestión. En un extremo se encuentran los que opinan que carecen de valor
en relación con sus propósitos. Sus críticas se centran en la dificultad o imposibilidad de
cuantificar de forma satisfactoria algunos conceptos, tales como asociar un coste o una
utilidad a ciertos bienes o valores de carácter social. Otras criticas se deben a la
desconfianza respecto a los resultados finales del modelo como consecuencia de falta de
precisión en la estimación de los datos de partida.

Frente a la primera crítica cabe decir que muchas de las decisiones que involucran
conceptos no cuantificables en el ámbito de la gestión necesitan de cierta cuantificación,
mas o menos formal, de la que es imposible prescindir, a veces una simple ordenación. El
esfuerzo por conseguir una formulación explícita de esta cuantificación resulta
evidentemente mas científico.

El segundo aspecto debe ser discutido en relación con cada modelo específico. Aunque
muchos de los datos de un modelo sean poco precisos, es posible que la estructura del

3
Construcción de modelos de Programación Lineal
modelo permita obtener resultados aceptables, disminuyendo el ruido introducido por los
datos iniciales.

En el otro extremo se encuentran los que lejos de criticar los modelos, confían ciegamente
en su validez y especialmente en sus resultados, especialmente si la resolución de los
mismos implica el uso del ordenador.

Es preciso señalar que en el caso de un modelo de programación lineal, la formulación de la


función objetivo afecta claramente a su resultado. La falta de críticas a un modelo es una
actitud desaconsejable que disminuye las expectativas de éxito del mismo. Aceptar la
primera solución obtenida tras la resolución de un modelo sin llevar a cabo un posterior
análisis es una práctica poco acertada.

Un modelo debe ser usado como una de entre otras herramientas de ayuda para la toma de
decisiones. El proceso de construcción de un modelo debe verse realimentado a partir de
un análisis crítico derivado de las soluciones obtenidas.

X.2. Modelos en Programación Matemática.

Los modelos de programación matemática mantienen una relación indirecta con la


computación. El término “Programación” no debe ser confundido con el utilizado en la
ciencia de los computadores.

En el campo de la programación matemática, “Programación” resulta equivalente a


planificación, en el sentido más amplio de este término. No obstante, la magnitud de
muchos de los problemas tratados, el elevado número de datos y relaciones, hace
impensable su resolución sin el soporte informático.

Tal vez la característica común a todos los modelos de programación matemática radica en
su finalidad: son modelos de optimización. Cada modelo de programación matemática es
concebido con el objetivo de encontrar, para el problema que representa, la solución (o las
soluciones), de entre las existentes, que alcance el valor máximo o mínimo de acuerdo a
cierto criterio que denominamos objetivo.

De forma particular, este capítulo se centrará en la construcción de modelos de


programación lineal continuos, enteros, mixtos, y en algún caso modelos que presentan no
linealidades, analizando para ellos alguna posible formulación lineal aproximada.

Los modelos lineales, como ya se vio en los primeros capítulos del libro, exigen que la
función objetivo y las restricciones del problema sean lineales. En algunas situaciones esta
consideración resulta excesiva y supone ciertamente una limitación a la hora de modelar.
En algunas ocasiones, las expresiones no lineales pueden ser tratadas, obteniéndose un
modelo final lineal.

A pesar de estas observaciones, resulta más fácil, de forma general, resolver modelos
lineales, de aquí su importancia y su amplia utilización.

X.3. Construcción de un modelo lineal.

De manera específica, un modelo lineal consta de tres bloques diferenciados. La función

4
Construcción de modelos de Programación Lineal
objetivo, las restricciones y la definición de signo o tipo de las variables. El proceso de
modelado consiste en la especificación de estos tres bloques. No existe ninguna
metodología específica para modelar problemas, la experiencia resulta fundamental, es en
este sentido en el que el proceso de modelar es a veces llamado “arte” de modelar. No
obstante, en el presente capítulo se reflejarán las situaciones más comunes que se
presentan en el modelado de problemas lineales. Posteriormente se complementará lo
expuesto desarrollando de forma minuciosa algunos casos concretos.

En los diferentes modelos expuestos se ha seguido una procedimiento de modelado similar.


Así, analizaremos el horizonte temporal para el que se construye el modelo, en el caso de
situaciones que presentan variaciones a lo largo del tiempo. Definiremos en cada caso las
variables de decisión del problema. Para ello nos basaremos principalmente en los datos
disponibles, a veces en los costes unitarios de las variables y en otros casos en los
relacionados con la estructura de las restricciones del problema.

Conocidas las variables de decisión, formularemos las restricciones del problema, a partir
de la descripción formal del mismo, incluyendo las variables auxiliares que resulten
necesarias. De forma adicional surgirán restricciones implícitas al modelo como
consecuencia de la elección inicial de determinadas variables, de procesos de linealización
y de la relación entre variables de decisión y auxiliares.

En último lugar, aunque no siempre será así, formularemos el objetivo del problema.

X.4. Programación lineal entera.

Una amplia variedad de situaciones reales necesitan ser modeladas haciendo uso de
variables enteras (Integer Linear Programming, ILP). A veces estos modelos contienen
variables contínuas y enteras (Mixed Integer Linear Programming, MILP).

La aplicación de modelos de programación entera es especialmente necesaria cuando las


variables de decisión del problema representan bienes que no pueden ser fraccionados,
tales como aviones, vehículos, casas, etc... o en algunos casos en los que se trata de medir
recursos humanos para la realización de un trabajo.

Existen además muchas otras situaciones donde el uso de la programación entera resulta
menos obvio pero igualmente necesario. Tal es el caso de situaciones en las que se hace
preciso tomar decisiones. En estos casos se utilizan variables binarias (0-1) que
representan decisiones tipo “SI,
NO”, o “verdadero, falso”. Las relaciones que involucran este tipo de variables se pueden
modelar en muchas ocasiones de forma lineal. Posteriormente al estudio del modelado de
problema con variables enteras se propondrán métodos para su resolución.

Modelar problemas haciendo uso de variables enteras y binarias supone una mayor
complejidad frente al modelado continuo. Por este motivo, en general, estudiaremos
modelos de programación lineal mixta-entera, con la confianza de que una vez aportadas
las herramientas para modelar situaciones complejas resulte sencillo adquirir dominio en la
construcción de modelos continuos.

X.5. El uso habitual de las variables enteras.

5
Construcción de modelos de Programación Lineal
Como se comento anteriormente, las variables enteras se usan de forma muy frecuente en
el modelado de situaciones reales. Estas variables suelen ser de dos tipos, comentados en
la tabla siguiente:

Variables de decisión Cantidades indivisibles


Variables binarias directamente
relacionadas con la toma de decisiones.
(Construir o no un almacén, ampliar
capacidad, etc...)
Variables auxiliares Variables binarias usadas para indicar
valores o estados determinados de
ciertas variables continuas.

Cuando una variable continua condiciona otras restricciones del problema se usa una
variable auxiliar binaria para recoger el estado de la primera y se relaciona con las
restricciones afectadas.

X.6. Algunas relaciones frecuentes.

Este apartado no pretende mostrar todos los tipos de restricciones que puede aparecer en
el modelado de problemas de programación lineal entera. La simple pretensión de hacerlo
resulta absurda. El objetivo de los siguientes epígrafes es el de plasmar algunas relaciones
y situaciones comunes que se presentan con frecuencia en el modelado lineal de
problemas, con la esperanza de que estas explicaciones permitan mejorar la comprensión
de los modelos que se expondrán con posterioridad.

X.6.1. Relaciones entre una variable continua y una variable auxiliar.

Considérese una variable continua Z y una variable auxiliar ∗. La variable auxiliar deberá
tomar valor 1 cuando Z sea estrictamente mayor que cero. La variable auxiliar, por tanto,
indica el estado, positivo de la variable continua.

Supóngase que Z representa el número de Kg. de grano almacenados en un silo. En el


caso en que esta cantidad sea positiva es necesario considerar por ejemplo la posterior
decisión de contratación de un operario. Nos interesa disponer de una variable binaria que
considere el estado de existencia de grano en el silo.

Las implicaciones que vamos a modelar se muestran a continuación.

Z > 0 ⇒ δ =1

La primera de ellas se puede modelar acotando superiormente la variable continua


mediante el producto de la variable binaria auxiliar y una cota superior de Z.

Z ≤ Sδ

De esta forma, un valor positivo de Z obliga a la variable auxiliar a tomar el valor 1. El valor
de S debe ser el de una cota superior de la variable Z. Este valor puede extraerse de las
restricciones del problema, anulando todas las demás variables y despejando las
acotaciones de Z.
6
Construcción de modelos de Programación Lineal

En algunas ocasiones puede ser interesante imponer también la implicación

Z =0⇒δ =0

Esta implicación puede formularse en sentido contrario usando la negación de cada uno de
los predicados
δ =1⇒ Z > 0

que se puede modelar como sigue:

Z ≥ iδ

Ahora, cuando la variable auxiliar toma valor 1 la variable Z es mayor que i. Esta constante
representa un valor infinitesimal, de manera que obliga a Z a ser positiva.

X.6.2. Uso de variables auxiliares en el modelado de costes de setup.

En determinadas ocasiones el coste unitario de una actividad se ve gravado con un coste


inicial constante, independiente del valor de la actividad, debido exclusivamente al hecho de
iniciarla. Es el caso de los costes de setup al inicio de la fabricación de un determinado
producto.

Un caso, similar en la estructura de modelado, surge al modelar funciones lineales a trozos


no convexas, en este caso, cada segmento corta al eje de ordenadas en un determinado
punto que debe ser explícitamente considerado en la función objetivo.

Volviendo al caso de coste inicial, si Cu es el coste por unidad de producto X y Cs es el


coste de setup, o de lanzamiento de la nueva serie, el coste total se expresa de forma lineal
como sigue:
Coste = Cu X + Cs

Ahora bien, puesto que en este coste inicial sólo se incurre cuando X > 0, es decir, se
fabrica al menos una unidad, la función objetivo del problema debe recoger el término Cs
multiplicado por una variable auxiliar ∃. Esta variable tomará valor 1 cuando la actividad X
sea estrictamente mayor que cero. Es decir el coste queda modelado:

Coste = Cu X + Cs ∃

Siendo necesario añadir la restricción

X ≤ Sβ

tal y como se comentó en el punto precedente.

X.6.3. Uso de variables auxiliares para activar o desactivar restricciones.

A) Consideremos una restricción genérica de un modelo de programación lineal como la


formulada a continuación

7
Construcción de modelos de Programación Lineal
m

∑a
j =1
ij x j ≤ bi

donde los coeficientes aij representan el consumo unitario que cada actividad xj (∃0) supone
sobre cierto recurso i, limitado de forma global por una disponibilidad de bi unidades.

Deseamos condicionar el cumplimiento de esta restricción mediante una variable auxiliar ∀,


de manera que cuando ∀=1 la restricción se debe satisfacer, mientras que si ∀=0 la
restricción no debe actuar.

La implicación que deseamos formular puede escribirse como:


m
α = 1 ⇒ ∑ aij x j ≤ bi
j =1
Para modelar esta condición basta sumar al término independiente el producto de una cota
superior para la restricción por (1-∀).

∑a
j =1
ij x j ≤ bi + M (1 − α )

De esta forma cuando la variable auxiliar toma el valor 1 el termino de la derecha queda
reducido a bi. Por otra parte, cuando ∀=0, la restricción resultante es
m

∑a
j =1
ij x j ≤ bi + M

Seleccionando un valor adecuado para la constante M se consigue que la restricción se


desplace fuera de la región de admisibilidad descrita por el resto de las restricciones del
problema, y por tanto deja de ser una restricción activa.

B) Supongamos ahora que deseamos modelar el caso contrario, es decir, la variable auxiliar
∀ debe tomar valor unitario cuando se satisface la restricción.

∑a j =1
ij x j ≤ bi ⇒ α = 1

Para modelar esta condición transformamos el predicado de la izquierda de manera que su


resultado sea una cantidad mayor que cero, obteniendo la implicación equivalente:

m
bi − ∑ aij x j ≥ 0 ⇒ α = 1
j =1

Cuando el término de la izquierda es estrictamente positivo el problema queda resuelto


haciendo uso de lo visto en el punto X.6.1.

m
bi − ∑ aij x j ≤ Mα
j =1

El problema de esta acotación surge cuando la restricción se cumple con signo de igualdad.
En este caso el término de la izquierda vale cero y no queda implicado el valor unitario de ∀.
8
Construcción de modelos de Programación Lineal

Para evitar este problema se recurre a considerar un valor infinitesimal > que se suma al
termino independiente. Ahora la implicación queda

m
ξ + bi − ∑ aij x j ≥ 0 ⇒ α = 1
j =1

y la formulación de la restricción pasa a ser

m
ξ + bi − ∑ aij x j ≤ ( M + ξ )α
j =1

Es decir, cuando la restricción inicial se cumple con signo de igualdad, el término de la


izquierda toma el valor positivo >, y por tanto la variable ∀ tiene que ser estrictamente
positiva. El valor de la constante M será la mayor cota superior para la diferencia
m
bi − ∑ aij x j
j =1

C) Activación de una restricción con signo de mayor o igual en función de una variable
auxiliar.
Se trata en esta ocasión de forzar el cumplimiento de una restricción del tipo

∑a j =1
ij x j ≥ bi

cuando una variable auxiliar ∀ tome valor 1. Como en otras ocasiones mostramos la
implicación que se desea modelar:

m
α = 1 ⇒ ∑ aij x j ≥ bi
j =1

La formulación es similar a la descrita en el caso A. Basta ahora restar al termino


independiente el producto de cierta constante m por (1-∀), obteniéndose:

∑a
j =1
ij x j ≥ bi − m(1 − α )

Así cuando ∀=1 la restricción se satisface, y cuando la variable auxiliar es nula se consigue
desplazar la restricción adecuadamente fuera de la región de admisibilidad descrita por el
resto de restricciones del problema.

D) Si se desea formular la implicación contraria encontramos algo mas de dificultad. El


procedimiento a seguir es similar al descrito en el apartado B.
m

∑a
j =1
ij x j ≥ bi ⇒ α = 1

Resultando una restricción del tipo:


9
Construcción de modelos de Programación Lineal
m
ξ + ∑ aij x j − bi ≤ ( M + ξ )α
j =1

m
donde M es la mayor cota superior para el término ∑a
j =1
ij x j − bi .

X.6.4. Aproximación lineal de una función no lineal.

Existen diferentes métodos para aproximar una función no lineal mediante segmentos
lineales de forma que el resultado de lugar a un conjunto de restricciones lineales a
incorporar en el modelo. En este apartado veremos dos posibles alternativas. En ambos
casos es necesario recurrir al uso variables auxiliares binarias.

Consideremos una función y=f(x) tal como la mostrada en la figura. Para el intervalo de
estudio se selecciona un conjunto de pares (xk,f(xk)), tantos como se desee.(k=1...n) A
medida que aumenta el número de pares, la aproximación lineal es más exacta.

A) Se definen ahora x e y de la siguiente manera:

n
x = ∑ xk λk
k =1
n
y = ∑ f ( x k )λ k
k =1
n

∑λ k =1
k =1

Siendo 8k un conjunto de pesos que multiplican a los pares (xk,f(xk)), de manera que 0 # 8k
#1 ∀ k, y la suma de todos ellos es igual a 1.

f(xk)
f(x4)
f(x3)
f(x2)

f(x1)

x1 x2 x3 x4 xk
.
Para que la aproximación sea coherente, es necesario obligar que sólo dos variables 8k
(k=1...n) consecutivas sean distintas de cero. De esta manera x pertenecerá a uno sólo de
los segmentos que aproximan la curva e y tomará el valor de f(x).

Para obligar esta condición es preciso utilizar variables auxiliares binarias γk (k=1...n-1) que

10
Construcción de modelos de Programación Lineal
acotan a los pesos de la siguiente manera:

λ1 ≤ γ 1
λ2 ≤ γ 1 + γ 2
λ3 ≤ γ 2 + γ 3
M
λn ≤ γ n−1

Imponiendo además la condición de que sólo una de las variables binarias sea positiva:
n −1

∑γ
k =1
k =1

B) Se expone a continuación un enfoque diferente que también utiliza variables binarias.


Ahora se divide la variable x en la suma de un conjunto de variables continuas, tantas como
intervalos

n −1
x = ∑ zk
k =1

Cada una de estas variables zk continuas se acota dentro de su intervalo (xk,xk+1), y sólo una
de ellas puede ser positiva. Para lograr esto, al acotar cada variable dentro de su intervalo,
se multiplican los extremos de cada intervalo por una variable auxiliar binaria. Finalmente la
suma de todas las variables binarias debe ser igual a 1.

x1δ 1 ≤ z1 ≤ x 2δ 1
x 2 δ 2 ≤ z 2 ≤ x 3δ 2
M
x n −1δ n −1 ≤ z n −1 ≤ x nδ n −1
n −1

∑δ
k =1
k =1

Queda no obstante por modelar el valor de la variable y. Para ello basta sumar las
diferentes rectas de la aproximación lineal, teniendo en cuenta la ordenada en el origen
para cada una de ellas.

Para el segmento (xs,xs+1), la recta que aproxima la función no lineal pasa por los puntos
(xs,f(xs)), (xs+1,f(xs+1)), de acuerdo a la expresión:

f ( x s +1 ) − f ( x s )
y = f ( xs ) + ( x − xs )
x s +1 − x s

es decir

f ( x s +1 ) − f ( x s ) f ( x s +1 ) − f ( x s )
y= x + f ( xs ) − xs
x s +1 − x s x s +1 − x s

11
Construcción de modelos de Programación Lineal

Por tanto la variable y se puede obtener como:

n −1
⎛ f ( x s +1 ) − f ( x s ) ⎞ n −1
⎛ f ( x s +1 ) − f ( x s ) ⎞
y = ∑ ⎜⎜ ⎟⎟ z s + ∑ ⎜⎜ f ( x s ) − ⎟⎟ δ s
s =1 ⎝ x s +1 − x s ⎠ s =1 ⎝ x s +1 − x s ⎠

X.6.5. Restricciones disyuntivas.

El modelado lineal de ciertos problemas, tal como el problema de secuenciación de tareas o


la representación de regiones no convexas, presenta la necesidad de formular restricciones
que no se satisfacen de forma simultánea.

Nos referimos pues a situaciones en que dos (o más) restricciones no se pueden cumplir a
la vez, (se debe satisfacer una u otra), pero que exigen la inclusión de ambas (todas) ya
que a priori se desconoce cual de ellas se va a satisfacer.

Consideremos dos restricciones genéricas que no pueden cumplirse al mismo tiempo

∑a
j =1
j xj ≤ b

∑c
j =1
j xj ≤ d

La forma de satisfacer una o la otra consiste en usar una variable binaria δ al estilo de la
formulación considerada en el punto X.6.3, apartado A.

∑a
j =1
j x j ≤ b + M 1 (1 − δ )

∑c
j =1
j x j ≤ d + M 2δ

De esta manera, cuando δ=1 la primera restricción se cumple, mientras que la segunda
restricción se desplaza paralelamente a sí misma en una cantidad M2 que la sitúa fuera de
la región de admisibilidad, de manera que no contribuye a la definición de la misma.

En el caso en que δ=0, la segunda restricción se satisface y es la primera restricción,


modificado convenientemente su término independiente, la que no contribuye a la formación
de la región de admisibilidad.

Con posterioridad se analizará algún caso en el que es preciso formular restricciones


disyuntivas, comentando el procedimiento para la obtención de las cotas M1 y M2.

X.6.6. Modelando implicaciones lógicas sencillas.

Este apartado presenta una metodología para modelar implicaciones lógicas entre variables
binarias. Se trata en definitiva de introducir el modelado de tablas de verdad, donde la
combinación de ciertos valores de unas variables implica que otra variable (auxiliar o de
12
Construcción de modelos de Programación Lineal
decisión) binaria tome un valor determinado.

Para comenzar pensemos en una tabla de verdad que recoge los valores posibles de dos
variables de decisión de un problema δ1 y δ2. En la tercera columna se representa el valor
de una tercera variable φ en función de los valores de las anteriores.

δ1 δ2 φ
0 0 0
1 0 1
0 1 0
1 1 0

La forma de modelar estas implicaciones depende en gran medida de la forma de la función


objetivo del problema. Si la función objetivo tiene como criterio minimizar y el coste unitario
de φ es positivo, si es posible la variable tomará valor nulo. Por tanto únicamente es
necesario modelar la implicación que le otorga valor 1, correspondiente a la segunda fila de
la tabla de verdad.

Cada fila se modela mediante una restricción. Así pues introduciremos una restricción que
obliga a φ a tomar valor 1 cuando δ1 vale 1 y δ2 es cero. Para ello procedemos de la
siguiente manera:

La primera parte de la restricción esta formada por las variables δ1 y δ2. Si el valor de la
variable δi es 1 se suma un término igual a la variable. Si el valor de δi es cero se suma un
término igual a (1-δi ). A continuación se escribe el signo ≤. El término de la derecha de la
restricción comienza con una constante igual al número de variables δi menos uno. A
continuación se suma la variable implicada si ésta ha de tomar valor 1 o el complemento a
uno de la variable si esta ha de tomar valor cero.

En el ejemplo anterior se tiene:

δ1 + (1- δ2) ≤ 1+ φ

Cuando δ1=1 y δ2 es cero el término de la izquierda toma valor 2 y la variable φ


necesariamente debe ser 1. En cualquier otro caso la variable φ puede tomar los
valores 0 y 1, y puesto que su peso en la función objetivo es positivo y estamos
minimizando, φ valdrá cero.

Supongamos ahora que la función objetivo del problema fuera maximizar y el coste
unitario de φ es positivo. En este caso, siempre que sea posible la variable φ tomará
valor 1. Es preciso modelar la primera, tercera y cuarta filas de la tabla de verdad. El
procedimiento es similar al descrito, así pues:

(1- δ1 ) + (1- δ2) ≤ 1+ (1- φ)


(1- δ1 ) + δ2 ≤ 1+ (1- φ)
δ1 + δ2 ≤ 1+ (1- φ)

En cualquiera de los casos, para la combinación correspondiente, una de las restricciones


obliga a la variable φ a tomar valor cero, mientras las demás permiten que φ tome valor cero
13
Construcción de modelos de Programación Lineal
o uno.

X.6.7. Objetivos de tipo Minimax y Maximin.

En determinadas situaciones podemos encontrar objetivos no lineales que responden a


expresiones de tipo MaxiMin o MiniMax. Es el caso, por ejemplo, en el que se desea que el
tiempo máximo de finalización de un conjunto de N tareas (i=1...N) sea lo menor posible. La
función objetivo de este problema tendría una apariencia tal como

Min { Max{t }}
i =1...N
i

Evidentemente, las variables ti (i=1...N) estarán posiblemente relacionadas con otras


variables del problema, variables de decisión o auxiliares.

En este tipo de casos es preciso eliminar de la función objetivo el criterio compuesto. En el


ejemplo anterior bastaría con definir una variable Z que se define como el máximo de las ti.

Z = Max{t i }
i=1...N

La función objetivo del problema consiste ahora en la minimización de la variable Z. (Min Z).
Siendo necesario incluir N restricciones que relacionan la variable Z con cada una de las ti.
Puesto que Z es el máximo de ellas, bastará escribir:

ti ≤ Z ; i = 1...N

Disponiendo así de una formulación lineal.

De la misma manera, en el caso MaxiMin, se podría formular linealmente el problema como:

Max Z
sa :
Z ≤ ti i = 1...N

X.6.8. Regiones no convexas.

Considérese el siguiente problema de maximizar, en el que dependiendo del valor de las


variables de decisión se obtiene una región de admisibilidad diferente:

Max 2x1+x2
sa:
-x1 + ½ x2 ≤ 1, sí x1≤ 1
½ x1 – x2 ≤ 1, sí x2 ≤ 1

x1,x2 >= 0

Si representamos gráficamente el problema, al tratarse de un modelo con dos variables de


decisión, tendremos:

14
Construcción de modelos de Programación Lineal

-x1 + ½ x2 =1

x2
Región admisible
cuando x1≤1
½ x1 – x2 = 1

x2≤ 1

x1

x1≤ 1 Región admisible


cuando x2≤1

Que define una región no convexa dependiendo de los valores de las variables x1 y x2. La
forma de modelar esta situación pasa necesariamente por la inclusión de variables binarias
auxiliares. En definitiva existen dos conjuntos de restricciones diferentes que no se pueden
satisfacer de forma conjunta. Para resolver este problema utilizamos una formulación similar
a la de conjuntos de restricciones disyuntivas.

A) x1 ≤ 1

En este caso se satisfacen las restricciones

-x1 + ½ x2 ≤1: x1≤ 1

las modelamos incluyendo en el término independiente una variable auxiliar δ1,


cuando toma valor cero las restricciones actúan.

-x1 + ½ x2 ≤1+M1 δ1
x1≤ 1+N1 δ1

Cuando toma valor 1 las restricciones no deben actuar, esto se consigue para ciertos
valores de las constantes N1 y M1, concretamente los valores que desplazan
convenientemente las restricciones hasta fuera de la región de admisibilidad descrita
por el caso x2≤ 2.

En el gráfico se observa el desplazamiento realizado sobre las restricciones con el


objetivo de que no interfieran en la región de admisibilidad.

15
Construcción de modelos de Programación Lineal

-x1 + ½ x2 =1

x2
x1≤ 4

x1

x1≤ 1

-x1 + ½ x2 =1/ 2
Por tanto su formulación sería
-x1 + ½ x2 ≤1- ½ δ1
x1≤ 1+3 δ1
B) x2≤ 1
De la misma manera, cuando x2 ≤ 1 se deben satisfacer las restricciones

½ x1 – x2 ≤ 1
x2 ≤ 1

Pero no las dos primeras (-x1 + ½ x2 ≤ 1, x1≤ 1). Para lograr este efecto se incluye una
segunda variable auxiliar δ2.
½ x1 – x2 ≤ 1+M2 δ2
x2 ≤ 1+ N2 δ2

cuya finalidad es exactamente la misma que en el caso de δ1. Además como las
variables auxiliares no pueden ser positivas al mismo tiempo, es posible sustituir δ2
por 1-δ1.

De esta forma, una vez sustituidas N2 y M2 de forma conveniente, el caso analizado puede
ser formulado como:
Max 2x1+x2
sa:

-x1 + ½ x2 ≤1- ½ δ1
x1≤ 1+3 δ1
½ x1 – x2 ≤ 1-1/2 δ2
x2 ≤ 1+ 3 δ2

x1,x2 ≥ 0
δ1, δ2 (0,1)

16
Construcción de modelos de Programación Lineal

CASOS

Planificación

1. Plan de incorporaciones en un servicio de urgencias

1.1.- Descripción.

Las necesidades de un servicio de urgencias sanitarias, en términos del número de ATS


necesarios durante cada hora del día, se ha estimado en di ATS entre la hora i-ésima y la
i+1, para una partición del día en intervalos de una hora.
Cada ATS ha de iniciar un servicio a una hora dada, disponiendo de un descanso de una
hora de duración que podrá ser tomado después de tres, cuatro o cinco horas de haber
comenzado su trabajo. Posteriormente continuará su jornada laboral hasta completar las 8
horas de trabajo recogidas en su contrato. Incluyendo el descanso, cada ATS permanece
pues en el centro durante 9 horas consecutivas.

El coste de un/a ATS que inicia su jornada laboral en la hora i-ésima es de ci pts/día.

Se desea obtener un calendario de incorporaciones al servicio de manera que el coste


diario del mismo sea mínimo. Supóngase que se dispone de una plantilla máxima de M
ATS.

1.2.- Formulación del modelo.

1.2.1.- Horizonte.

Se plantean dos posibles horizontes. En primer lugar se podría considerar un horizonte


correspondiente a un único día. En este caso la demanda de las primeras horas del día
debe ser cubierta por la incorporación de ATS en la primera hora. Del mismo modo, no se
podrán realizar incorporaciones en las últimas horas del día, pues los ATS incorporados no
cumplirían sus 8 horas de trabajo durante el horizonte del problema.

Otra posibilidad consiste en considerar un horizonte temporal infinito, en el que se planifica


un día de trabajo. En este caso los ATS incorporados en las últimas horas del día anterior
estarían disponibles al inicio de una nueva jornada laboral. La formulación del problema en
este caso corresponde a un plan diario de incorporaciones que se repetiría día tras día de
forma indefinida.

El horizonte infinito sugiere el modelado del problema en régimen permanente. Esto es, se
considerara un día cualquiera, precedido de un comportamiento similar en el día anterior y
al que sigue un plan exactamente igual el día posterior. La dificultad de la puesta en
práctica de la solución del modelo radica en el primer día de trabajo, que no podrá tener en
cuenta incorporaciones realizadas en las últimas horas del día anterior.

En principio se realizará el modelado del problema considerando un horizonte infinito,


posteriormente se ajustará el primer día de funcionamiento.
17
Construcción de modelos de Programación Lineal

1.2.2.- Variables.

Las variables propias del problema representan el número de ATS que se deben incorporar
en la hora i-ésima, y que representaremos mediante Xi (i=0,...,23). El número de ATS
incorporados en la i-ésima hora se compone de aquellos que descansan después de tres
(Xi3), cuatro (Xi4) y cinco (Xi5) horas del inicio de su jornada laboral.

X i = X i3 + X i4 + X i5

Puesto que el número total de ATS incorporados en la hora i se obtiene como suma de
aquellos que descansan tras trabajar tres, cuatro y cinco de horas, se usarán únicamente
las variables Xij (j=3,4,5), que proporcionan mayor información.

1.2.3.- Restricciones.

1.2.3.1.- Restricciones de satisfacción de la demanda.

Para cada hora del día se debe satisfacer la demanda de Asistentes Técnicos
Sanitarios. La ilustración 1 muestra un esquema del número de ATS que se
encuentran trabajando durante la hora i-ésima. Son todos aquellos incorporados
desde la hora i-8 hasta la i-ésima excepto los que se encuentran descansando, es
decir, los incorporados en i-3 que descansan en la tercera hora, los que comienzan
su jornada en i-4 y descansan tras cuatro horas y los que comenzaron a trabajar en
i-5 y descansan después de cinco horas de trabajo.

i-7, j
x i-5, j
x i-3, j
x i-1, j
x
Incorporaciones
j=3,4,5 j=3,4,5 j=3,4,5 j=3,4,5
hasta la hora
i-ésima x i-8, j
x i-6, j
x i-4, j
x i-2, j
x i, j
j=3,4,5 j=3,4,5 j=3,4,5 j=3,4,5 j=3,4,5

i-8 i-7 i-6 i-5 i-4 i-3 i-2 i-1 i

Descansan x i-3, 3
durante la hora
i-ésima x i-4, 4
x i-5, 5

18
Construcción de modelos de Programación Lineal
Así pues, el número de ATS que se encuentra disponible en la hora i-ésima, deberá
satisfacer la demanda de dicha hora di. Esta restricción se puede expresar como:

≥ ∀i = 8,...,23
i 5

∑ ∑X
k =i - 8 j=3
kj - X i -3,3 - X i -4,4 - X i -5,5 di

En el caso en que se considere como horizonte un único día, esta restricción sólo
tendría validez para i=8,...,15. Siendo necesaria su particularización para las
restantes horas del día. Para i < 8 el primer sumatorio deberá comenzar para k=0.
Si i <3 ningún ATS se encuentra en su hora de descanso. En el caso i > 15 el
primer sumatorio finalizaría en K=15, ya que la incorporación de ATS en horas
posteriores supondría el incumplimiento de su jornada laboral de 8 horas (trabajarían
un número menor de horas).

En el caso de horizonte infinito es necesario extender la restricción a un número de


horas mayor de 24, concretamente desde i=8,...,31. Permitiendo así la
incorporación de ATS durante la última hora del día (i=23) que finalizan su jornada
tras 9 horas de trabajo, es decir en i=31. Adicionalmente será necesario imponer
Xij = Xkj (i=0,...,7 ; k=24,...31; j=3,4,5), es decir, el número de ATS que se incorporan
en las primeras horas del día coincide con el número de los que se incorporan en
esas mismas horas del día siguiente.


i 5

∑ ∑X
k =i - 8 j= 3
kj - X i -3,3 - X i -4,4 - X i -5,5 di ∀i = 8,...,31

X sj = X kj s = 0,...,7 ; k = 24,...,31 ; j = 3,4,5

1.2.3.2.- Limitación de la plantilla de ATS.

El enunciado del caso indica la existencia de una cota superior M para el número de
ATS que se pueden contratar durante un día. En este caso, la suma de los ATS
incorporados durante cada una de las 24 horas del día no podrá superar el valor M.
Esta acotación se puede expresar como sigue:


23 5

∑∑ X
i=0 j=3
ij M

En el caso de realizar la planificación para un único día, la restricción anterior


debería ser modificada. El primero de los sumatorios finalizaría para i=15.
Recordemos que en este caso no se pueden realizar incorporaciones a partir de la
diecisieteava hora del día (i=16), pues los ATS no podrían finalizar su jornada laboral
en el horizonte de planificación.

1.2.4.- Objetivo.
19
Construcción de modelos de Programación Lineal

El objetivo del problema consiste en la minimización del coste diario de contratación de


personal sanitario en el servicio de urgencias. Un ATS que se incorpore en la hora i-ésima
supone un coste diario de ci pts.

En el caso de horizonte infinito:

23 5
MIN ∑∑c
i=0 j=3
i X ij

1.2.5.- Modelo.

A continuación se muestra el modelo completo para la situación descrita en el enunciado,


en el caso de considerar la planificación de la contratación diaria dentro de un horizonte
infinito (régimen permanente).
23 5
MIN ∑∑c
i=0 j=3
i X ij


i 5

∑ ∑X
k =i - 8 j= 3
kj - X i -3,3 - X i -4,4 - X i -5,5 di ∀i = 8,...,31

X sj = X kj s = 0,...,7 ; k = 24,...,31 ; j = 3,4,5

23 5

∑∑ X
i=0 j=3
ij ≤ M

X ij ≥ 0; i = 0,...,31, j = 3,4,5

1.3.- Mejoras sobre el modelo.

1.3.1.- Variables.

Hasta el momento no se ha comentado nada acerca de la integridad de las variables del


problema. En principio, el número de ATS que se incorporan durante una hora del día se ha
tomado simplemente ∃ 0. En realidad puede no tener excesivo sentido el hecho de
incorporar un número fraccionario de ATS. En este caso sería preciso forzar un
comportamiento entero para todas las variables del problema Xij i=8,...,31; j=3,4,5. Esto
supone la resolución de un problema con 72 variables enteras de las que únicamente
conocemos una cota inferior de valor cero y una no muy buena cota superior de valor M
(aunque se sospecha que todas las variables quedarán muy alejadas del valor de dicha
cota superior).

El esfuerzo computacional necesario para la resolución del problema quizás no compense


la exactitud aportada por una solución entera. Posiblemente baste con la obtención casi
inmediata de la solución óptima continua y su posterior redondeo hasta alcanzar una
solución entera. Este dilema exactitud-rapidez se presentará con frecuencia en la resolución
de problemas lineales mixto-enteros. La elección adecuada dependerá de las necesidades
y condicionantes concretos de cada situación.
20
Construcción de modelos de Programación Lineal

1.3.2.- Modelado del primer día.

Como se comentó anteriormente, la solución del modelo propuesto minimiza el coste de


contratación de personal durante un día. Se ha considerado la planificación diaria dentro de
un horizonte infinito, de manera que se conecta el plan de un día con las contrataciones
realizadas en las últimas horas del día anterior y primeras del siguiente. Sin embargo, el
modelo no aporta una solución para la puesta en marcha del plan de contratos, ya que la
solución considera que en las primeras horas del día trabajan algunos ATS incorporados en
el día anterior. Por ello es preciso modelar aparte la situación del primer día, haciéndola
encajar con la solución permanente de que disponemos.

Sean Xij* los valores óptimos de las variables para el modelo descrito en el apartado 2.5.
En ese caso, para el primer día (puesta en marcha del plan de contratación) se puede
formular un modelo similar al descrito en el citado apartado:

23 5
MIN ∑∑c
i=0 j=3
i X ij


i 5

∑ ∑X
k =i - 8 j=3
kj - X i -3,3 - X i -4,4 - X i -5,5 di i = 8,...,15

i 5

∑∑ X kj - X i -3,3 - X i -4,4 - X i -5,5 ≥ di i = 5,...,7


k =0 j=3
i 5

∑∑ X kj - X i -3,3 - X i -4,4 ≥ di i= 4
k =0 j=3
i 5

∑∑ X kj - X i -3,3 ≥ di i= 3
k =0 j=3
i 5

∑∑ X kj ≥ di i = 0,..,2
k =0 j=3

X ij = X ij* i = 16,...,23 ; j = 3,4,5

23 5

∑∑ X
i=0 j=3
ij ≤ M

X ij ≥ 0; i = 0,...,23, j = 3,4,5

1.4.- Consideraciones finales.

Merece la pena destacar la simplicidad de la situación que se está modelando, y pese a


esto, la complejidad de la formulación propuesta. Posiblemente una situación más realista
conllevaría la posibilidad de realizar guardias (lo que se traduciría en la permanencia de

21
Construcción de modelos de Programación Lineal
ciertos ATS durante dos turnos de trabajo así como un aumento de los emolumentos
percibidos por los mismos, usualmente mayor al que les correspondería por un segundo
turno).

Tampoco se han tenido en cuenta posibles costes fijos como los debidos al alta en plantilla
de los ATS. Su consideración podría suponer un aumento en el número guardias solicitadas
a los ATS, en detrimento del número de ATS que se mantienen en plantilla.

22
Construcción de modelos de Programación Lineal

2. Elaboración de pizzas en hora punta.

2.1. Descripción.
La cadena de Pizzerías “Mamma Mía” ha observado que durante una hora determinada del
día la venta de Pizzas alcanza un valor muy importante, concentrándose la misma en tres tipos
de productos, Pizzas tipo A, B, C. La demanda de pizzas A supone un 50%, y las de tipos B y
C un 30% y 20% respectivamente. La cadena dispone de un tipo estándar de establecimiento,
de manera que en cada uno de ellos, la elaboración de pizzas queda encargada a un operario
que dispone de dos hornos, llamados H1 y H2. Con el fin de evitar mezclas de sabores, la
directriz de la compañía consiste en que en los hornos H1 se elaboren únicamente pizzas A y
B, mientras en los H2 se prepararán tipos A y C.
Los tiempos de paso por horno de los productos son conocidos, T1A, TB, TC y T2A. Cada
establecimiento dispone de un número máximo de bases para pizzas, NP, con el objetivo de
atender las necesidades de la hora en cuestión.
Se desea construir el plan de producción para esa hora punta, para cada establecimiento, de
manera que se satisfaga en lo mayor posible la demanda. Es necesario tener en cuenta que
en ningún caso se deben producir más de dos Pizzas del mismo tipo consecutivas (en el
mismo horno), para evitar que se enfríen, pues la experiencia demuestra que esto supone
elevada pérdidas al ser rechazadas por los clientes.

2.2. Discusión.

En un primer momento supondremos que un único operario se encarga de los dos hornos.
De esta manera, cuando un horno procesa una pizza, el otro horno está vacío. Esta
consideración facilita el modelado de restricciones de consecutividad en la elaboración de
pizzas, es decir, resulta sencillo impedir que no se horneen dos pizzas consecutivas del
mismo tipo en el mismo horno, entendiendo que el turno de descanso en el horno rompe la
consecutividad. La dificultad que presenta esta condición queda de manifiesto en el
siguiente ejemplo:
A A A
H1

H2
C A
Se procesan tres pizzas tipo A de forma consecutiva en el horno H1. Es imposible conocer a
priori el numero de bases a tener en cuenta para evitar este problema. El modelado que se
formula a continuación impedirá que mas de dos pizzas consecutivas de la cadena de
bases de pizzas vayan al mismo horno, pero podría ocurrir algo como lo que se muestra en
el gáfico anterior, esto es, en el horno 1 entran tres pizzas seguidas del tipo A, aunque en la
cadena no ocupen lugares consecutivos. Para evitar este problema se formulará
posteriormente un modelo mas complejo.

2.3. Formulación del modelo simple.

2.3.1. Variables.

Tomaremos como variables de decisión las siguientes

23
Construcción de modelos de Programación Lineal

⎧1 Si la pizza tipo i ocupa la posición j - ésima de la cadena de bases para pizzas


δ ij ⎨
⎩ 0 En otro caso

donde el índice i toma los valores recogidos en la siguiente tabla

i Tipo de Pizza Horno


1 A 1
2 A 2
3 B 1
4 C 2

y j=1.....NP, siendo NP el número de bases de pizzas disponibles, NP ≥ D para una


demanda conocida de D pizzas en hora punta.

2.3.2. Restricciones.

2.3.2.1. Cada base da origen a una pizza.

Por cada posición de la cadena sólo se producirá un tipo de pizza. es decir, la


posición j-ésima dará lugar a una pizza de uno de los tipos y en uno de los hornos.

∑δ
i =1
ij =1 ∀j = 1....NP

2.3.2.2. Satisfacción de fracciones de demanda.

En principio podría parecer conveniente modelar las demandas como pesos de los
distintos tipos de pizzas en la función objetivo del modelo. Sin embargo, esta
solución no conlleva la satisfacción de la demanda, por tanto resulta mas
conveniente incluir restricciones que obliguen a producir pizzas en las proporciones
requeridas.

Pizzas tipo A
2 NP

∑∑ δ
i =1 J =1
ij ≥ 0.5D

Pizzas tipo B
NP

∑δ
J =1
3j ≥ 0.3D

Pizzas tipo C
NP

∑δ
J =1
4j ≥ 0.2 D

2.3.2.3. Restricción de tiempo de procesado.

24
Construcción de modelos de Programación Lineal
Esta restricción obliga a que se termine la fabricación de pizzas dentro del intervalo
temporal de la hora de máxima venta. En realidad no es preciso formular esta
restricción, salvo que se desee comprobar si es posible realizar todo el trabajo en el
plazo de una hora. Suponiendo que los tiempos de procesado están expresados en
minutos, de acuerdo a la siguiente tabla, la restricción se formula como:

Datos de tiempo de procesado


Tipo A Tipo B Tipo C
Horno 1 t1A tB -
Horno 2 t2A - tC

NP

∑ (t
j =1
δ + t 2 Aδ 2 j + t Bδ 3 j + t C δ 4 j ) ≤ 60
1A 1 j

2.3.2.4. Restricciones de consecutividad.

Para formular esta restricción, estamos suponiendo que mientras una pizza se
elabora en un horno, el otro horno descansa, por eso tiene sentido la suma
acumulada de tiempos en la restricción anterior. Posteriormente veremos un
modelado más realista de esta situación. Con la suposición anterior la restricción se
formula impidiendo que mas de dos pizzas consecutivas en la cadena de bases sean
del mismo tipo:

δ ij + δ ij +1 + δ ij + 2 ≤ 2 i = 1,2,3,4; j = 1...NP

Si la pizza j-ésima es de tipo i y la j+1-ésima también, entonces la pizza j+2-ésima no


podrá ser del mismo tipo.

2.3.3. Función Objetivo.

El objetivo consiste en minimizar el número de pizzas necesarias para satisfacer la


demanda.

NP 4
Min ∑∑ δ
j =1 i =1
ij

2.4. Modelo realista.

Se trata de un modelo alternativo formulado para conseguir que no se procesen dos pizzas
consecutivas en el mismo horno aunque ocupen lugares distantes en la cadena de bases
de pizzas. Ahora se considera que los dos hornos trabajan simultáneamente, lo que resulta
mas realista a la vez que disminuye el tiempo total de elaboración del conjunto de pizzas.
Consideraremos dos filas o cadenas de pizzas, una para cada horno. La suma del número
de bases de pizzas de las dos filas será igual al número de bases disponibles NP. Nuestro
problema radica ahora en la determinación de la longitud de cada una de las cadenas, de
manera que puedan ser usadas como límites en los sumatorios correspondientes.

El cálculo de las longitudes de las filas de pizzas se realizará de manera que ambos hornos
25
Construcción de modelos de Programación Lineal
terminen su trabajo al mismo tiempo, siempre que esto sea posible. Además, todas las
pizzas tipo B se elaborarán en el horno 1 y las de tipo C en el horno 2. para ello
supondremos inicialmente que se ha de satisfacer la demanda de pizzas tipo B y C,
posteriormente repartiremos las pizzas tipo A entre las dos filas.

El número de pizzas tipo B que denotaremos por NB será igual al entero superior a 0,3 D.

NB = ⎡0,3D ⎤

El número de bases reservadas para pizzas tipo C, NC, será el entero superior al 20% de la
demanda de la hora punta.

NC = ⎡0,2 D ⎤

Denotaremos mediante NA1 el número de pizzas tipo A que se elaborarán en el horno 1, y


sea NA2 el número de pizzas tipo A que se procesan en el horno 2. Entonces, si se desea
equilibrar los tiempos de trabajo en los dos hornos:

NA1 t A1 + NB t B = NA2 t A2 + NC t C

Además NA1 + NA2 ≥ ⎡0,5 D ⎤ . Podremos suponer en un principio que se cumple con signo
de igualdad, tendremos así una cota inferior del número de pizzas tipo A. Las dos
ecuaciones anteriores permiten despejar el valor de NA1 y NA2.

Sean NP1 y NP2 las longitudes de las dos filas de pizzas correspondientes a los hornos 1 y
2. La suma de ambas debe ser igual a NP, además NP1 ≥ NA1+NB y NP2 ≥ NA2 + NC.

Tomaremos NP1=NA1+NB+ (NP-T)/2 y NP2=NA2+NC+ (NP-T)/2 donde T recoge la suma


de NA1, NA2, NB y NC, siendo T≤ NP. Posteriormente, si es necesario, se redondean NP1
y NP2 de manera que sumen NP.

2.4.1. Variables.

Ahora para cada una de las filas escogeremos un tipo de variable de decisión binaria, de
acuerdo a:

⎧ 1 Si la pizza tipo i (A, B) ocupa la posición j - ésima de la cadena de bases para pizzas en horno 1
δ ij ⎨
⎩0 En otro caso
⎧ 1 Si la pizza tipo i (A, C) ocupa la posición j - ésima de la cadena de bases para pizzas en horno 2
γ ij ⎨
⎩0 En otro caso

donde el índice i toma los valores recogidos en la siguiente tabla

i Tipo de Pizza Horno


1 A 1
2 A 2
3 B 1
4 C 2
26
Construcción de modelos de Programación Lineal

2.4.2. Restricciones.

2.4.2.1. Cada base en cada fila se destina a un único tipo de pizza.

2 NP1 2 NP1

∑∑ δ ij ≤ 1
i =1 j =1
∑∑ γ
i =1 j =1
ij ≤1

2.4.2.2. Satisfacción de la demanda de cada tipo de pizza.

Pizzas tipo A
NP1 NP 2

∑δ
J =1
1j + ∑ γ 2 j ≥ 0 .5 D
j =1
Pizzas tipo B
NP1

∑δ
J =1
3j ≥ 0.3D

Pizzas tipo C
NP 2

∑γ
J =1
4j ≥ 0.2 D

2.4.3.3. Restricciones de consecutividad en cada una de las filas.

δ ij + δ ij +1 + δ ij + 2 ≤ 2 i = 1,3; j = 1...NP1

γ ij + γ ij +1 + γ ij + 2 ≤ 2 i = 2,4; j = 1...NP 2

2.4.3. Función Objetivo.

El objetivo consiste en minimizar el número total de pizzas elaboradas:

NP1 NP 2
Min ∑∑ δ ij +
i =1, 3 j =1
∑ ∑γ
i = 2 , 4 j =1
ij

27
Construcción de modelos de Programación Lineal

3. Programación de una cadena de televisión

3.1. Descripción.

Una cadena de T.V. pretende realizar la programación de espacios para 8 horas. Para ello
dispone de un conjunto de programas de los que se conoce su duración (véase la tabla 1).

Por otra parte, para cada una de las 8 horas, se conoce el número de personas que hay
viendo la televisión, es decir, la audiencia total (véase la tabla 2). Además, se disponen de
datos sobre la cuota (en tanto por cien) de audiencia que obtiene dicha cadena de T.V. si un
determinado programa se proyecta una hora dada de las ocho en cuestión (véase la tabla
3).

El problema que se plantea es decidir qué programa se transmite cada hora con el criterio
de maximizar la audiencia durante las ocho horas consideradas.

Tabla 1
Program Duración Tabla 2
1 3 Hora Audiencia
2 4 1 500000
3 3 2 450000
4 1 3 400000
5 1 4 450000
6 2 5 450000
7 1 6 500000
8 2 7 550000
9 1 8 550000
10 1

Tabla 3
H H H H H H H H
P1 33 20 40 50 60 21 19 14
P2 56 45 32 23 25 78 90 21
P3 76 12 23 43 56 76 34 23
P4 87 28 25 24 34 54 74 33
P5 21 32 43 54 65 76 56 34
P6 16 19 21 23 25 32 34 35
P7 76 14 24 28 65 45 34 90
P8 10 8 9 11 12 15 23 24
P9 25 34 33 36 37 56 45 34
P10 44 54 56 76 87 76 65 54

28
Construcción de modelos de Programación Lineal
Se desea modelar el problema mediante programación lineal en notación compacta. Se
considerará que los programas se emiten sin cortes, es decir, una vez que un programa
comienza a emitirse no se interrumpe su emisión.

3.2. Formulación del modelo.

3.2.1. Horizonte.

Se modelará el problema con un horizonte temporal correspondiente a las 8 horas de


emisión de la cadena de televisión. De esta manera se considerará el índice i para
representar las horas a programar, el índice j para los diferentes programas. Denotaremos
mediante Ai al valor de la audiencia total, en número de personas, en la hora i-ésima . Dj
representará la duración del programa j-ésimo. Finalmente representaremos por cij al valor
de la cuota de audiencia, en tanto por ciento, que obtiene la cadena de televisión al emitir el
programa j-ésimo durante la hora i-ésima.

Datos
I Horas de programación (i=1...8)
J Programa a emitir (j=1...10)
Ai Audiencia total correspondiente a la hora i-ésima
Dj Duración del programa j-esimo
Cij

3.2.2. Variables.

Para modelar el problema usaremos dos conjuntos de variables binarias, tal y como se
definen a continuación.

⎧1 Si el programa j - ésimo comienza su emisión durante la hora iésima ⎫


δ ij = ⎨ ⎬
⎩ 0 En otro caso ⎭

⎧1 Si la hora i - ésima está cubierta por la emisión del programa j - ésimo⎫


β ij = ⎨ ⎬
⎩ 0 En otro caso ⎭

De esta manera se podrá conocer la hora de emisión de cada programa y que programa se
está emitiendo durante cada una de las ocho oras de programación.

3.2.3. Restricciones.

3.2.3.1. Emisión única de programas

En primer lugar, cada programa se emite a lo sumo una vez, por tanto, sumando
para todas las horas de programación, la suma de variables que indican el inicio de
cada programa debe ser ≤ 1. El signo ≤ corresponde a la posibilidad de que un
determinado programa no se emita.

∑δ
i =1
ij ≤1 j = 1...10

29
Construcción de modelos de Programación Lineal
3.2.3.2. Acotación de la longitud de programas según hora de inicio.

La duración de un determinado programa, cuando comienza su emisión, debe ser


menor que el número de horas que restan para que finalice la programación. De otra
manera algún programa tendría que alargar su emisión fuera de las 8 horas de
programación de la cadena.

D j δ ij ≤ 8 − i + 1 i = 1...8; j = 1...10

3.2.3.3. Cada hora de programación se aprovecha para emitir algún programa.

Cada hora de programación debe quedar cubierta por uno y solo uno de los
programas preparados para emisión. Basta igualar a 1 la suma en j (para todos los
programas) de las variables que indican que programa cubre la hora i-ésima.

10

∑β
j =1
ij =1 i = 1...8

3.2.3.4. Continuidad en la emisión de cada programa.

Cuando un programa comienza a emitirse en la hora i-esima, todas las horas que
van desde i hasta la de finalización del programa deben quedar cubiertas por el
programa que está siendo emitido. De otra forma podría existir discontinuidad en la
emisión de programas. Esta restricción de continuidad se formula:

i + D j −1

D j δ ij ≤ ∑β
k =i
kj i = 1...(8 − D j + 1) ; j = 1...10

3.2.3.5. Prohibición de emisión de programas incompletos.

Por último hay que garantizar que si un programa no comienza a emitirse en ninguna
hora no pueda ser visto en otras horas. La falta de esta restricción podría acarrear la
aparición de un programa que se ha decidido no emitir en determinadas horas.

⎛ 8 ⎞ 8
D j ⎜ ∑ δ ij ⎟ ≤ ∑ β ij j = 1...10
⎝ i =1 ⎠ i =i

3.2.4. Función objetivo.

Consiste en maximizar la audiencia total durante las ocho horas de programación de la


cadena de televisión. Se usan las variables βij ya que indican el programa que esta siendo
visto en cada una de las horas de programación.

8
Ai ⎛ 10 ⎞
Max ∑ ⎜ ∑ cij β ij ⎟

i =1 100 ⎝ j =1

30
Construcción de modelos de Programación Lineal
3.2.5. Modelo del caso.

8
Ai ⎛ 10 ⎞
Max ∑ ⎜ ∑ cij β ij ⎟

i =1 100 ⎝ j =1


sa:
8

∑δ i =1
ij ≤1 j = 1...10

D j δ ij ≤ 8 − i + 1 i = 1...8; j = 1...10

10

∑β
j =1
ij =1 i = 1...8

i + D j −1

D j δ ij ≤ ∑β
k =i
kj i = 1...(8 − D j + 1) ; j = 1...10

⎛ 8 ⎞ 8
D j ⎜ ∑ δ ij ⎟ ≤ ∑ β ij j = 1...10
⎝ i =1 ⎠ i =i

⎧1 Si el programa j - ésimo comienza su emisión durante la hora iésima ⎫


δ ij = ⎨ ⎬
⎩ 0 En otro caso ⎭

⎧1 Si la hora i - ésima está cubierta por la emisión del programa j - ésimo⎫


β ij = ⎨ ⎬
⎩ 0 En otro caso ⎭

31
Construcción de modelos de Programación Lineal

4. Planificación de una explotación minera

4.1.- Descripción.

Una compañía minera desea componer un plan de explotación de minas para los próximos
5 años. La zona geográfica objeto del estudio contiene cuatro minas. Durante cada año la
compañía podrá extraer mineral de a lo sumo tres de las minas.

A efectos de la empresa, las minas pueden estar declaradas AExplotable@ o ANo


explotable@. En el primer caso, por cada mina con posibilidad de explotación, la compañía
debe pagar determinados royalties a la propiedad. El valor de los mismos para el primer año
de planificación se muestran en la Tabla 1. Si una mina está declarada como AExplotable@
la compañía puede o no realizar extracción de material durante cada uno de los años del
horizonte de planificación.

Si la compañía no ha adquirido derechos de explotación de una mina, ésta queda declarada


como ANo explotable@, con lo que no se podrá extraer material durante los cinco años que
dura cada plan de extracciones. En el caso de que la empresa declare ANo explotable@ una
mina abierta, dejaría de pagar royalties a la propiedad y no podría extraer material durante
los años que resten hasta finalizar el período de planificación.

Los límites de extracción de las diferentes minas se recogen en la Tabla 2, y permanecen


constantes durante el período de explotación.

Mina Royalties Mina Capacidad


M Toneladas

1 5 1 2
2 4 2 2,5

3 5 3 1,3

4 5 4 3

Tabla 1 Tabla 2
La calidad del mineral (% mineral puro sobre material extraído) que se extrae de cada una
de las minas se resume en la Tabla 3. La calidad prevista que exige el mercado puede
resumirse para cada año del horizonte de extracciones en la Tabla 4.

Mina Calidad Año Calidad exigida

1 0.95 1 0.9

2 0.7 2 0.8
3 0.99 3 0.85

4 0.5 4 0.6

Tabla 3 5 0.95

Tabla 4
32
Construcción de modelos de Programación Lineal

El precio de venta de material extraído es de 10$/Ton. y los royalties se incrementan


anualmente en un 10%. Supóngase conocida la demanda mínima del mercado y con valor
dt (t=1,..,5).
4.2.- Formulación del modelo.

4.2.1.- Horizonte.

El horizonte de planificación se extiende a cinco años. Parece necesario utilizar en la


definición de las variables un índice t (t=1,..,5) que recoja el año en curso. Durante este
período será necesario identificar aquellas minas sobre las que la compañía debe adquirir
derecho de explotación así como la posibilidad de renunciar al mismo cuando no convenga
continuar con la extracción de mineral.

Para cada mina con posibilidad de extracción es preciso determinar la cantidad de mineral
extraído de manera que la mezcla de mineral procedente de las diferentes minas satisfaga
las demanda del mercado y la calidad exigida por el mismo.

4.2.2.- Variables.

Las variables naturales del modelo representan la cantidad de mineral que debe ser
extraído de cada mina durante cada uno de los años que durará el plan de explotación.
Dichas cantidades se representarán mediante la letra X afectada de dos subíndices, el
primero de ellos (i) hace referencia a cada una de las minas y el segundo (t) al año dentro
del horizonte de planificación.

Así pues contaremos con 20 variables Xit ; i =1,...,4 ; t =1,...,5. Las cantidades extraídas
serán mayores o iguales a cero, y en principio parece adecuado considerar estas variables
como continuas, pues no se deduce del modelo la necesidad de extraer un número entero
de toneladas de mineral.

La compañía se debe plantear adicionalmente algunas decisiones de carácter todo o nada.


Al inicio del horizonte de explotación debe considerar la idea de conseguir los derechos de
explotación de algunas de las minas, sin el que sería imposible la extracción de mineral en
dichas minas. Del mismo modo, aunque posea derecho de explotación sobre una
determinada mina, la compañía debe decidir si extrae o no mineral de la misma. El
modelado de este tipo de decisiones obliga al uso de variables enteras que representen el
carácter todo-nada (si-no). Estas tipo variables de decisión se denominan variables 0-1.

De forma concreta, se necesita un conjunto de variables 0-1 para la adquisición de


derechos de explotación y otro para decidir si se realiza o no la extracción de mineral. Las
primeras variables se representarán mediante γit y las segundas como δit. Los subíndices
empleados mantienen el mismo significado que en el caso de las variables Xit.
Formalmente:

33
Construcción de modelos de Programación Lineal
⎧ 1 Si la compañia tiene o adquiere ⎫
⎪ ⎪
γ it = ⎨ derecho de explotacion para la mina i en el año t ⎬
⎪ 0 En otro caso ⎪
⎩ ⎭

⎧ 1 Si la compañia extrae mineral ⎫


⎪ ⎪
δ it = ⎨ de la mina i en el año t ⎬
⎪ 0 En otro caso ⎪
⎩ ⎭

i = 1 ,..., 4 ; t = 1 ,..., 5

4.2.3.- Restricciones.

4.2.3.1.- Imposibilidad de extracción de mineral.

Si la compañía no adquiere el derecho de explotación de una mina ( o no dispone de


él por no haberlo adquirido con anterioridad) no podrá extraer mineral de dicha mina.
Esta restricción relaciona dos de las decisiones estratégicas de la empresa, la
adquisición de derecho de explotación y la decisión de extraer o no material.

Si la correspondiente variable γ toma valor cero (No existe derecho de explotación


de una mina en un determinado año) entonces la variable δ debe valer cero (No es
posible la extracción de mineral). Este tipo de relación entre variables responde a la
implicación lógica: ASi γ=0 entonces δ=0". Además, en el caso en que γ=1 no se
impone restricción alguna sobre la variable δ.

El modelado lineal de este tipo de implicaciones es sencillo, basta con acotar


superiormente la variable δ con γ. Así, si la segunda toma valor cero necesariamente
δ tomará valor cero.

En el caso en estudio se formularán 20 restricciones de este tipo, una para cada


mina y año del período de planificación.

δ it ≤ γ it i = 1 , ... , 4 ; t = 1 , ... , 5

4.2.3.2.- Acotación en el número de minas activas.

Durante cada uno de los años del horizonte de planificación, la compañía puede, a lo
sumo, extraer mineral de tres de las minas. Puesto que γ es la variable indicativa de
extracción, la suma extendida a todas las minas de dicha variable debe ser menor o
igual a 3.


4

∑δ
i=1
it 3 t = 1 , ... , 5

34
Construcción de modelos de Programación Lineal
4.2.3.3.- Pérdida de derecho de explotación.

Una de las decisiones clave de la planificación de extracciones consiste en la


adquisición o no de derecho de explotación de las minas, así como mantener o no
ese derecho durante los cinco años que dura el plan de explotación. Si inicialmente
(año 1) no se adquiere el derecho sobre una mina, no será posible hacerlo hasta que
finalice el quinquenio. Por este motivo podría ser interesante comprar el derecho de
todas las minas para posteriormente, el segundo o tercer año de explotación,
renunciar al mismo con el consiguiente ahorro en el pago de royalties. En cualquier
caso esta opción y todas las posibles deberán quedar recogidas en el modelo
propuesto. La resolución del mismo proporcionará la estrategia óptima.

En lo que respecta a la formulación de una restricción para la pérdida de derecho de


explotación de las minas, únicamente sabemos que la renuncia al derecho de
explotación durante un año supone la renuncia hasta el final del período de
explotación. Se trata pues de ligar la misma decisión en cada par de años
consecutivos.

Técnicamente la implicación a formular es similar a la anterior, usando en esta


ocasión variables con el mismo significado para años consecutivos. Es decir:

γ i t+1 ≤ γ it i = 1 , ... , 4 ; t = 1 , ... , 5

Si en el año t la compañía no dispone de derecho para explotar la mina i, tampoco


lo tendrá en el año t+1. Un valor cero para γit obliga a la variable γi t+1 a tomar
también el valor cero.

4.2.3.4.- Limitación en las cantidades extraídas.

La capacidad anual de extracción para cada mina (miles de toneladas) se muestra


en la Tabla 2. Para simplificar la formulación, llamaremos Ci al límite máximo de
extracción en la mina i. En principio esta cantidad se mantiene constante durante el
período de planificación. La restricción típica de limitación en la cantidad a producir
se formularía de la siguiente forma:

X it ≤ Ci i = 1 , ... , 4 ; t = 1 , ... , 5

Es decir, la cantidad de mineral extraído de la mina i en el año t debe ser menor o


igual que la cantidad máxima que es posible extraer de la mina i, Ci. Sin embargo,
este tipo de restricciones puede ser mejorado.

Cuando la compañía no realiza extracción en una mina, o cuando no se dispone de


derecho de explotación de la misma, la correspondiente variable δit toma valor cero.
En este caso no se extrae mineral de la mina i (Xit=0). Parece lógico incluir esta
limitación en las restricciones anteriormente comentadas. Para ello, puesto que el

35
Construcción de modelos de Programación Lineal
término independiente es una constante, basta con multiplicarlo por la variable δit.
Así, cuando δit=0 se fuerza que Xit=0.

X it ≤ Ci δ it i = 1 , ... , 4 ; t = 1 , ... , 5

Este tipo de restricciones, acotación de una variable continua mediante el producto


entre una variable binaria y una constante, aparece con mucha frecuencia en el
modelado lineal de problemas. La dificultad habitual consiste en fijar el valor de la
constante que actúa como cota superior cuando la variable binaria toma valor 1.

4.2.3.5.- Satisfacción de la demanda del mercado.

La suma de las cantidades de mineral extraído deberán satisfacer la demanda anual


prevista de mineral, que representaremos mediante dt (t=1,...,5) como se sugiere en
el último párrafo de la descripción.


i=1
X it ≥ dt t = 1 , ... , 5

Tendremos cinco restricciones, cada una correspondiente a un año del horizonte de


planificación.

4.2.3.6.- Satisfacción de la exigencia de calidad del mercado.

Adicionalmente a la demanda anual del mercado (que suponemos expresada en


miles de toneladas) existe una exigencia anual prevista respecto a la calidad del
mineral demandado. Esta exigencia puede actuar elevando la cantidad de mineral a
extraer de algunas minas en particular (aquellas que producen un mineral más puro,
de mayor calidad), de manera que la mezcla final adquiera mayor pureza.

∑Q
i=1
i Xit ≥ Qt d t t = 1 , ... , 5

El conjunto anterior de restricciones relaciona, para cada año, la calidad exigida por
el mercado con las cantidades y calidades de mineral extraídas de cada una de las
minas. Obsérvese la formulación lineal de cada una de las restricciones. Se ha
considerado que la calidad del mineral obtenido tras la mezcla (de los minerales
procedentes de cada mina activa) se obtiene de forma aproximada como una media
ponderada de las calidades de cada mina. Puesto que la demanda (2.3.5) puede no
satisfacerse con signo de igualdad, pude ser mas exacto considerar una
restricciones del tipo:

4 4

∑Qi Xit ≥ Qt
i=1
∑X
i =1
it t = 1 , ... , 5

36
Construcción de modelos de Programación Lineal
Que utiliza la suma de cantidades extraídas para calcular la calidad media del
mineral obtenido tras la mezcla. Ambas restricciones coinciden cuando las
cantidades extraídas satisfacen exactamente la demanda. La equivalencia de ambos
tipos de restricciones se podrá analizar con mayor profundidad tras la formulación de
la función objetivo.

Si un aumento de las cantidades extraídas supone un aumento de los beneficios


esperados, es decir, es posible la venta del exceso sobre la demanda, la cantidad
total extraída será superior a la demanda. En este caso la formulación tipo (2) para
las restricciones de calidad es más adecuada.

Si la función objetivo del problema consiste en la minimización de costes asociados


al proceso de extracción, por ejemplo cuando el exceso de mineral extraído no se
puede vender y su almacenaje supone un coste adicional o cuando es preciso
abandonarlo, la cantidad de mineral extraído será igual a la demanda. En este caso
ambos conjuntos de restricciones son equivalentes.

4.2.4.- Objetivo.

El objetivo del problema consiste en la minimización de los royalties a pagar a la propiedad


de las minas. En principio no existe información sobre el coste de extracción de mineral en
cada mina, parece adecuado suponer que este coste es similar en una u otra mina y por lo
tanto no es preciso su consideración en la función objetivo del problema.

El mineral extraído en exceso no supone ningún beneficio para la compañía. Si es posible la


extracción de mineral satisfará con exactitud la demanda del mercado, por lo que el
beneficio esperado es conocido.

Así pues, la función objetivo se puede formular como sigue:

4 5
Min ∑ ∑R it γ it
i=1 t=1

donde Rit se puede expresar en función del royalty del primer año Ri1

t -1
R it = R i1 ( 1.1 ) t = 1 , ... , 5

4.2.5.- Modelo.

4 5
Min ∑ ∑R it γ it
i=1 t=1

sa:
δ it ≤ γ it i = 1 , ... , 4 ; t = 1 , ... , 5

37
Construcción de modelos de Programación Lineal
4

∑δ
i=1
it ≤ 3 t = 1 , ... , 5

γ i t+1 ≤ γ it i = 1 , ... , 4 ; t = 1 , ... , 5


X it ≤ Ci δ it i = 1 , ... , 4 ; t = 1 , ... , 5
4


i=1
X it ≥ dt t = 1 , ... , 5
4 4

∑Qi Xit ≥ Qt
i=1
∑X
i =1
it t = 1 , ... , 5

X it ≥ 0, γ it , δ it binarias

4.3.- Consideraciones finales.

Se ha formulado un modelo matemático para la planificación de la extracción de mineral


durante un período de cinco años. Las decisiones de la compañía consisten en la
adquisición de derechos de explotación de las minas (variables γ), la extracción o no de
mineral (variables δ) y las cantidades de mineral a extraer de cada mina en cada año, Xit.
Las decisiones de tipo Asi/no@ se modelan mediante variables binarias.

La situación planteada responde a una simplificación de la realidad. Se ha considerado que


el coste de extracción es común para todas las minas, lo que permite su no inclusión en el
modelo. De esta forma, y dado que el mineral extraído en exceso no reporta beneficios para
la compañía, el objetivo consiste únicamente en la minimización de costes asociados a la
explotación (royalties).

En el caso en que el mineral extraído en exceso pudiera ser vendido a un precio residual de
m $/Ton, la restricción de demanda podría ser formulada:


i=1
X it - E t = dt t = 1 , ... , 5

donde Et (t=1,...,5) son variables continuas que miden el exceso de mineral extraído para
cada año. En este caso, la función objetivo del problema queda:

⎡ ⎤
∑( )
4 5
Min ∑ ⎢ R it γ it - m E t ⎥
i=1 ⎣ t=1 ⎦

38
Construcción de modelos de Programación Lineal

5. Estudio de la compra de aviones por una compañía

5.1.- Descripción

Hispania Aviación (HA) ha decidido la ampliación de su flota mediante la adquisición de


nuevos aviones, a lo que ha asignado un presupuesto de 75.000 millones. Las aeronaves
consideradas son el tipo Airbus 310 (A), que tiene un coste unitario de 3.000 millones, el
Boeing 767 (B), con un coste de 4.200 millones por unidad y el Mc Douglas (M), 2.750
millones por aeronave. Los estudios realizados indican que cada avión aportaría unos
beneficios anuales netos de 280 millones en el caso de A, 350 en el B y 300 en el M.

Para facilitar el mantenimiento y los repuestos se desea que del nuevo grupo de aeronaves
que se adquiera, uno de los tipos de avión sea dominante, adquiriendo al menos 10
unidades del mismo. Además, por razones de diversificación y de especialización de la flota,
en el caso de que se adquiera un tipo de avión, la cantidad mínima que se compre debe ser
al menos de 2 unidades.

Desde el punto de vista de las necesidades de personal para el mantenimiento de los


aviones, los aviones del tipo A suponen 18 millones de coste anual de personal cada uno,
los de tipo B requieren 20 millones cada uno y 19 millones los de tipo M. En cuanto a las
instalaciones de mantenimiento y al tiempo necesario para realizarlo, cada avión del tipo A
requiere un mantenimiento anual de 38 días, 45 días los de tipo B y 42 los M. La empresa
HA ha asignado 1000 millones anuales de presupuesto propio para el coste del personal de
mantenimiento (presupuesto independiente del asignado a la adquisición de aviones) y las
instalaciones actuales tienen una capacidad de mantenimiento para los nuevos aviones de
800 días. Podría ampliarse la capacidad de las instalaciones de mantenimiento dedicada a
los aviones nuevos desde los 800 días anuales hasta un total de 1250 días. Dicha decisión
requeriría una inversión adicional de 1000 millones, que se habría de detraer de los 75000
asignados para la adquisición de los nuevos aviones. En cualquier caso, no se puede
ampliar el presupuesto dedicado al personal de mantenimiento de los aviones.

Construya un modelo para estudiar la recomendación sobre qué aviones compondrán la


ampliación de la flota, con el criterio de maximizar los beneficios anuales netos que
aportarán los aviones adquiridos.

5.2.- Modelado

5.2.1.- Horizonte.

Se considera un año. Con respecto a un año se analizan los costes de personal, las
limitaciones presupuestarias de mantenimiento, de capacidad de mantenimiento y los
beneficios netos aportados por los nuevos aviones. La adquisición de los aviones está
limitada por la limitación global (no temporal) del presupuesto de compra.

5.2.2.- Variables.

Son de dos tipos, variables propias y variables auxiliares.

Variables propias: Las que representan lo que se desea conocer, que en este caso son

39
Construcción de modelos de Programación Lineal
el número de aviones que se adquieren de cada tipo. Precisando, A,
B y M reflejarán en el modelo el número de aviones de cada tipo que
se recomienda adquirir.

Variables auxiliares: Surgirán durante el modelado, si es que se considera


conveniente.

5.2.3. Restricciones.

Las condiciones que describen las políticas de adquisición admisibles en la situación


considerada.

5.2.3.1.- Limitaciones en el presupuesto para la compra de aviones.


5.2.3.2.- Limitación en el presupuesto de mantenimiento
5.2.3.3.- Limitaciones en la capacidad de mantenimiento de los aviones
5.2.3.4.- Caracterización de las soluciones:

- Un avión dominante: De uno de los tipos de avión, al menos diez


unidades
- De ninguno de los tipos de avión se puede comprar una unidad: o
bien no se compran aviones de ese tipo o al menos se compran dos.

5.2.4.- Criterio(s).

Las soluciones admisibles se valoran con respecto al beneficio anual neto que aportará el
empleo de los aviones comprados.

5.2.5 Datos.

Valores conocidos que relacionan las variables con las limitaciones.

5.2.5.1.- En relación con el presupuesto, el coste de adquisición de cada tipo de avión,


medido en millones de unidades monetarias (u.m.).

5.2.5.2.- En relación con la capacidad de mantenimiento, medido en días de


mantenimiento anual por cada tipo de avión.

5.2.5.3.- En relación con el presupuesto anual de mantenimiento, el coste anual de


mantenimiento de cada tipo de avión en millones de unidades monetarias.

5.2.5.4.- En relación con el criterio de evaluación, la aportación de cada tipo de avión


medida como el beneficio unitario neto anual por avión. La unidades son millones de
unidades monetarias por avión y año.

Con estos elementos se puede construir un primer modelo aproximado:

F. Objetivo: Maximizar 280 A + 350 B + 300 M

Restricciones:
Compra (u.m.) 3000 A + 4200 B + 2750 M # 75000

40
Construcción de modelos de Programación Lineal
Mantenimiento (días) 38 A + 45 B + 42 M # 800
Mantenimiento (u.m.) 18 A + 20 B + 19 M # 1000
A,B,M≥0

5.3.- Completar el modelo.

Este modelo no tiene en cuenta ciertas consideraciones de la situación descrita.

5.3.1.- Ampliación de la capacidad de mantenimiento.

Primero consideramos la posibilidad de aumentar la capacidad en días de mantenimiento,


desde 800 a 1250 días anuales, aplicando 1000 millones de u.m. detraibles del presupuesto
inicial de compra de 75000 millones de u.m. Para ello introducimos una variable auxiliar δ
indicadora de la aplicación de los 1000 millones de presupuesto a mantenimiento (en cuyo
caso toma el valor 1) o bien de que no se aplique a ampliar la capacidad de mantenimiento
(valor 0 de la variable). Con ello, las restricciones de compra y capacidad de mantenimiento
se modifican a:

Compra (u.m.) 3000 A + 4200 B + 2750 M # 75000 - 1000 δ


Mantenimiento (días) 38 A + 45 B + 42 M # 800 + 450 δ

5.3.2.- Tipo de avión dominante.

Para recoger en el modelo la especificación de que al menos de un tipo de avión se han de


comprar 10 unidades, introducimos variables auxiliares indicadoras γA , γB , γM . Una de ellas
tomará el valor 1, indicando cuál es el tipo de avión dominante, y las otras dos el valor 0.
Las restricciones lineales auxiliares que obligan a ello se pueden escribir como,

A ≥ 10 γA B ≥ 10 γB M ≥ 10 γM γA + γB + γM = 1

De esta forma se obliga a que haya un tipo de avión dominante y no se impone ninguna otra
limitación sobre el número de aviones adquiridos de cada tipo.

5.3.3.- No se puede comprar una sola unidad de un tipo de avión.

Se ha de imponer la condición de que en caso de comprar unidades de un tipo de avión, se


compren al menos dos unidades del mismo. Para representarlo, empleamos variables
auxiliares binarias αA , αB , αM que intervienen en las relaciones lógicas,

αA = 1 implica A ≥ 2 y αA = 0 implica A = 0

mediante restricciones lineales en las variables. Así,

A ≥ 2 αA B ≥ 2 αB M ≥ 2 αM

recoge la primera implicación, mientras que para la segunda implicación escribimos las
relaciones,

41
Construcción de modelos de Programación Lineal

A ≤ Cota αA B ≤ Cota αB M ≤ Cota αM

Si no se escriben estas últimas relaciones el modelo consideraría admisible la compra de un


solo avión de cualquiera de los tipos. Pero tampoco debe imponerse una limitación
involuntariamente. Para ello Cota representa un número suficientemente grande como para
que, por ejemplo, cuando αA sea 1, la correspondiente relación A ≤ Cota αA sea redundante
y no imponga una limitación no deseada. Es decir, Cota debe ser un número mayor que el
máximo número de aviones tipo A que se pueden adquirir debido a las limitaciones del resto
de las restricciones. Así, observando la limitación del presupuesto de compra ya implica que
A no supera 25 unidades, con lo que se puede escoger Cota = 25 para esta restricción. El
mismo argumento aplicado a los demás tipos de aviones da lugar a,

A ≤ 25 αA B ≤ 18 αB M ≤ 28 αM

5.4.- El modelo completo.

F. Objetivo: Maximizar 280 A + 350 B + 300 M

Restricciones

Compra (u.m.): 3000 A + 4200 B + 2750 M # 75000 - 1000 δ


Mantenimiento (días): 38 A + 45 B + 42 M # 800 + 450 δ
Mantenimiento (u.m.): 18 A + 20 B + 19 M # 1000

Avión dominante:

A ≥ 10 γA B ≥ 10 γB M ≥ 10 γM γA + γB + γM = 1

Nunca un solo avión:

A ≥ 2 αA B ≥ 2 αB M ≥ 2 αM

A ≤ 25 αA B ≤ 18 αB M ≤ 28 αM

Características de las variables:

αi , γi binarias para i = A, B, M; δ binaria; A, B, M ≥ 0 (continuas)

5.5.- Consideraciones a posteriori.

Una vez obtenido el modelo completo, es conveniente señalar sus características, las
limitaciones del modelo propuesto y lo que se puede esperar de su análisis y resolución.

Se ha construido un modelo lineal en sus variables. Para ello se ha optado por una
expresión lineal de las condiciones. En este sentido, la descripción de las relaciones que
obligan a la existencia de un avión dominante también pueden intentarse mediante otras
expresiones alternativas:

42
Construcción de modelos de Programación Lineal
5.5.1.- La suma de las variables indicadores es, al menos, la unidad.

A ≥ 10 γA B ≥ 10 γB M ≥ 10 γM γA + γB + γM ≥ 1

El resultado de la resolución del modelo con estas restricciones no difiere en el valor de la


función objetivo del obtenido con la representación anterior. Sin embargo, serían
alternativamente óptimas soluciones con varios indicadores tomando el valor 1 en el caso
de que de varios tipos de avión se compraran mas de 10 unidades, lo que no sucedía en la
formulación anterior. Esta formulación también es correcta.

5.5.2.- Empleando solo dos restricciones:

A γA + B γB + M γM ≥ 10 γA + γB + γM = 1

Esta formulación es correcta, pero su representación es no lineal.

5.5.3.- También empleando solo dos restricciones, podría intentarse:

A γA + B γB + M γM ≥ 10 γA + γB + γM ≥ 1

para que varias variables indicadores puedan ser 1. Pero esta formulación es incorrecta, ya
que valores del número de aviones inferiores a 10 harían que se cumplieran las
restricciones sin que respetaran la imposición de un tipo de avión dominante. Así, por
ejemplo, A = B = M = 4 con todos los valores de las variables indicadoras a la unidad
satisfacen la expresión pero no existe avión dominante (nótese que estos valores no
satisfacen la restricción 5.2).

5.5.4.- La expresión A γA ≥ 2 es válida para γA = 1, pero inválida cuando γA = 0. Esto obliga a


escribir A γA ≥ 2 γA , que no es lineal.

Otro aspecto es la decisión de obligar a que las variables A, B y M que recogen el número
de aviones que se compran sean enteras o no. Obviamente, los valores fraccionarios de
estas variables no tienen significado en un sentido estricto. Sin embargo, la complejidad
añadida para el análisis y resolución del modelo que supondría el considerarlas como
variables enteras es probablemente superior al incremento en la precisión y realismo del
modelo que con ello se conseguiría. Por estas consideraciones se prefiere modelarlas como
variables continuas y “redondear convenientemente” a posteriori su significado. En cuanto a
las variables empleadas para escribir, mediante restricciones lineales, las condiciones
lógicas que ha de satisfacer el número de aviones adquiridos, éstas son intrínsecamente
binarias y no tiene sentido aproximarlas a partir de valores fraccionarias. Sería una
distorsión fundamental en el modelo, por lo que se asume la complejidad añadida y se
tratan explícitamente como variables enteras.

Finalmente, comentar el realismo del modelo. Se ha elegido un horizonte de un año para


una gran inversión global en la adquisición de aviones, considerando limitaciones rigurosas
en las nuevas necesidades de mantenimiento que ello supondrá. La importancia relativa de
los tres tipos de restricciones (presupuestarias de adquisición, presupuestarias de
mantenimiento y capacidad de las instalaciones de mantenimiento) es la misma en el
modelo, y todas ellas rigurosas: no se considera en principio ninguna política de compra que
supere los límites impuestos. Además, no supondrá ningún beneficio para la empresa el
ahorro en el desembolso sobre los presupuestos disponibles. Esto es, una política de
compras que utilice menos de los 75.000 millones de presupuesto no es mejor que otra que
los agote debido a este ahorro en el desembolso, puesto que el único criterio de valoración
43
Construcción de modelos de Programación Lineal
de las compras es el de maximizar los beneficios anuales netos según la aportación que
cada aeronave. Los mismos comentarios son ciertos con respecto a las otras dos
limitaciones de los recursos.

44
Construcción de modelos de Programación Lineal

6. Fabricación de bobinas

6.1.- Descripción.

Cierta empresa dedica su proceso de producción a la fabricación de bobinas de papel de


250 c.m. de ancho.

Las órdenes de los clientes se refieren a bobinas de papel de distintos anchos e igual
longitud que la bobina producida. Debido al carácter de los pedidos, la fábrica dispone de
una sección de corte longitudinal de las bobinas, de acuerdo al ancho de los diferentes
pedidos. El problema se plantea a la hora de decidir de qué forma se efectuarán los cortes,
pues las bobinas resultantes de menos de 55 c.m. de ancho suponen elevadas pérdidas.

En particular, en el último pedido se han solicitado las siguientes bobinas:

Anchura en c.m. N1 de bobinas

55 100

60 200

178 150

El objetivo es minimizar los trozos de bobina que tras el corte no satisfacen el pedido.

6.2.- Formulación del modelo.

6.2.1.- Problemática.

El problema planteado es decidir cómo se cortan longitudinalmente las bobinas para


satisfacer los requerimientos, en cuanto a número de bobinas, de un determinado pedido.

El pedido especifica el número de bobinas requeridas para los anchos de 55 c.m., 60 c.m. y
178 c.m. Por lo tanto, dada una bobina los cortes a efectuar deberán conseguir alguno de
los anchos anteriores.

Analizando los posibles cortes a realizar sobre una bobina, identificamos 7 cortes (A,...,G),
dando lugar cada uno de ellos a un determinado número de bobinas de los tipos requeridos
en el pedido (55 c.m., 60 c.m. y 178 c.m.). Además, el corte puede dar lugar a un AResto@
no aprovechable en el pedido.

A continuación se muestra, para cada uno de los siete tipos de corte, el número de bobinas
de cada uno de los anchos a que da lugar. En la columna AResto@ se especifica el ancho
del resto no aprovechable en el corte correspondiente:

45
Construcción de modelos de Programación Lineal

55 c.m. 60 c.m. 178 c.m. Resto

A 4 - - 30

B - 4 - 10

C 3 1 - 25

D 2 2 - 20

E 1 3 - 15

F 1 - 1 17

G - 1 1 12

En este contexto, la problemática se reduce a decidir el número de cortes a realizar de cada


uno de los siete tipos. El criterio de optimización será el de minimizar los trozos de bobina
que tras el corte no satisfacen el pedido (ancho menor de 55 c.m.).

6.2.2.- Variables.

Asociado a cada uno de los siete tipos de corte se definirá una variable representativa del
número de cortes a realizar de ese tipo. En concreto, las variables serán: XA, XB, XC, XD,
XE, XF y XG. Obviamente, estas variables son enteras ya que el número de cortes no
puede ser un número fraccionario.

6.2.3.- Restricciones.

6.2.3.1.- Cumplimiento de los requerimientos del pedido.

El número de cortes a realizar de cada tipo vendrá condicionado por la necesidad de


conseguir para los anchos de 55 c.m., 60 c.m. y 178 c.m., un número de bobinas
igual a 100, 200 y 150 respectivamente. Expresando lo anterior matemáticamente:

4 X A + 3 X C + 2 X D + X E + X F ≥ 100 55 c.m.
4 X B + X -C + 2 X D + 3 X E + X G ≥ 200 60 c.m.
X F + X G ≥ 150 178 c.m.

En el primer término de las restricciones anteriores, se expresa el número de


bobinas obtenidas de cada uno de los tipos del pedido al realizar el número de
cortes de cada tipo especificado por las variables.

6.2.4.- Objetivo.

El objetivo del problema consiste en la minimización de los restos no aprovechables. En el


caso de que se desee la minimización del número de trozos sobrantes, esto es, se
penalizan de igual forma los restos independientemente del ancho que tengan, la función
objetivo se puede expresar según:

46
Construcción de modelos de Programación Lineal

Min X A + X B + X C + X D + X E + X F + X G

6.2.5.- Modelo.

Min X A + X B + X C + X D + X E + X F + X G

sa:

4 X A + 3 X C + 2 X D + X E + X F ≥ 100 55 c.m.
4 X B + X -C + 2 X D + 3 X E + X G ≥ 200 60 c.m.
X F + X G ≥ 150 178 c.m.
X A , X B , X C , X D , X E , X F , X G ≥ 0 enteras

6.3.- Consideraciones finales.

Se ha realizado un modelo de programación lineal entera para decidir la forma en que se


cortan las bobinas en una empresa que requiere cubrir la demanda de unos determinados
tipos de anchos. Se ha analizado los posibles cortes que se pueden dar a una bobina, a
partir de los cuales se han definido las variables del modelo.

En cuanto al criterio, se ha utilizado el de minimizar el número de restos


independientemente de su ancho. Una posible modificación a la función objetivo es
penalizar cada resto con su ancho, dando lugar a:

Min 30 X A + 10 X B + 25 X C + 20 X D + 15 X E + 17 X F + 12 X G

Con esta función objetivo se penalizan más aquellos cortes que dan lugar a un mayor ancho
en el resto.

Otra posible modificación a introducir en el modelo es el tipo de las variables. Es claro que
el número de cortes a realizar de cada tipo es entero, no obstante si el valor de las variables
es elevado no se comete mucho error en cuanto a optimalidad suponerlas continuas y
realizar a posteriori un Aredondeo@ a valores enteros.

47
Construcción de modelos de Programación Lineal

Asignación

7. Asignación de alumnos a institutos

7.1.- Descripción.

En una población residen dos comunidades A y B de características muy distintas. El


sistema educativo consta de tres institutos a los que acceden todos los alumnos de 8º de
E.G.B. Se pretende una integración de ambas comunidades mediante el equilibrio de los
alumnos que asisten a cada uno de los institutos. La situación de la población y los institutos
se muestra en la tabla adjunta. En el modelo de planificación, debe plantearse como
objetivo minimizar la distancia total acumulada que realizan los alumnos debido a los
desplazamientos. Debe tenerse en cuenta las limitaciones de los institutos y la población
(equilibrada en cuanto a comunidades) de las zonas. Además se pretende conseguir que en
los institutos exista un equilibrio entre los estudiantes de las dos comunidades.

Construya un modelo para la asignación de alumnos por zonas a los institutos.

Zona Alumnos de 8º de E.G.B. Distancia media a los institutos


por comunidad
A B 1 2 3
1 300 100 1,2 1,5 3,3
2 400 - 2,6 4,0 5,5
3 200 300 0,7 1,1 2,8
4 - 500 1,8 1,3 2,0
900 900 600 800 500
Total de alumnos de Capacidad del instituto
E.G.B.

7.2.-Modelado.

7.2.1.- Horizonte.

El horizonte para el problema de planificación planteado es el de un curso escolar. Con


respecto al curso escolar se analizan la total escolarización de los alumnos, capacidad de
los institutos, equilibrado de las dos comunidades en los institutos y la distancia acumulada
recorrida por los alumnos.

7.2.2.- Variables.

Son de dos tipos, variables propias y variables auxiliares.

• Variables propias: Están asociadas a las decisiones a tomar, esto es, lo que se desea
conocer. En este caso son el número de alumnos que de cada una de las zonas es
asignado a cada uno de los institutos. Precisando, si con el subíndice i denotamos zonas
(i=1,2,3,4.) y con el j institutos (j=1,2,3), las variables serán x ij ∀i, j.

• Variables auxiliares: En caso de ser necesarias, surgirán durante el diseño del modelo.

48
Construcción de modelos de Programación Lineal

7.2.3.- Restricciones

Serán las condiciones que deben cumplir las distintas asignaciones de alumnos a institutos.

7.2.3.1.- Toda la población de 8º de E.G.B. debe tener asignado instituto.

7.2.3.2.- Limitaciones de capacidad de los distintos institutos.

7.2.3.3.- Equilibrado de las comunidades A y B en los distintos institutos.

7.2.4.- Criterio(s)

Las soluciones admisibles se valorarán según la distancia acumulada a que dan lugar.

7.2.5.- Datos.

7.2.5.1.- En relación a cada uno de los institutos, la capacidad de cada uno de ellos.

7.2.5.2.- En relación a las zonas, el número de alumnos de 8º de E.G.B. en las comunidades A y


B.

7.2.5.3.- En relación con el criterio de evaluación, la distancia de cada zona a cada uno de los
institutos.

7.2.5.4.- Debido a que en las variables de asignación de alumnos a institutos no se especifica la


comunidad a la que pertenecen los mismos, será necesario definir la mezcla entre
comunidades en las asignaciones. Parece lógico suponer que en dichas asignaciones se
mantiene la proporción entre comunidades que en la zona correspondiente.

Con estos elementos se puede construir un primer modelo aproximado:

Función Objetivo Min 1.2 x 11 + 1.5 x 12 + 3.3 x 13 + 2.6 x 21 + 4.0 x 22 + 5.5 x 23 +


0.7 x 31 + 1.1 x 32 + 2.8 x 33 + 1.8 x 41 + 1.3 x 42 + 2.0 x 43
Restricciones
Escolarización de x 11 + x 12 + x 13 = 400
todos los alumnos
x 21 + x 22 + x 23 = 400
x 31 + x 32 + x 33 = 500
x 41 + x 42 + x 43 = 500
Capacidad de x 11 + x 21 + x 31 + x 41 ≤ 600
institutos x 12 + x 22 + x 32 + x 42 ≤ 800
x 13 + x 23 + x 33 + x 43 ≤ 500
Signo de x 11 , x 12 , x 13 , x 21 , x 22 , x 23 , x 31 , x 32 , x 33 , x 41 , x 42 , x 43 ≥ 0
variables

7.3.- Completar el modelo.

Este modelo no tiene en cuenta el equilibrado de ambas comunidades en cada uno de los
institutos. Esta característica va a ser modelada mediante restricciones del modelo. Para
ello impondremos cotas inferiores (en %), I=50-p, y cotas superiores, S=50+p, para cada
49
Construcción de modelos de Programación Lineal
comunidad en cada instituto, donde p es un parámetro del modelo que define el porcentaje
de desviación permitido frente al equilibrado total (ambas comunidades están al 50% en
cada uno de los institutos). Dada una asignación de alumnos de una zona a un instituto, los
mismos se distribuyen entre las comunidades A y B en igual proporción en que coexisten
las comunidades en la zona correspondiente.

Para la comunidad A en los institutos 1, 2 y 3 quedan respectivamente:

⎛ 50 − p ⎞ ⎛ 50 + p ⎞
⎟( x 11 + x 21 + x 31 + x 41 ) ≤ x 11 + 1 x 21 + x 31 ≤ ⎜ ⎟( x + x 21 + x 31 + x 41 )
3 2

⎝ 100 ⎠ 4 5 ⎝ 100 ⎠ 11

⎛ 50 − p ⎞ ⎛ 50 + p ⎞
⎟( x 12 + x 22 + x 32 + x 42 ) ≤ x 12 + 1 x 22 + x 32 ≤ ⎜ ⎟( x + x 22 + x 32 + x 42 )
3 2

⎝ 100 ⎠ 4 5 ⎝ 100 ⎠ 12

⎛ 50 − p ⎞ ⎛ 50 + p ⎞
⎟( x 13 + x 23 + x 33 + x 43 ) ≤ x 13 + 1 x 23 + x 33 ≤ ⎜ ⎟( x + x 23 + x 33 + x 43 )
3 2

⎝ 100 ⎠ 4 5 ⎝ 100 ⎠ 13

De igual forma se impondrían las condiciones de equilibrio para la comunidad B en cada


uno de los institutos. No obstante, al existir únicamente dos comunidades e imponer las
restricciones para una de ellas, implícitamente quedan impuestas para la otra.

7.4.-El modelo completo.

Función Objetivo Min 1.2 x 11 + 1.5 x 12 + 3.3 x 13 + 2.6 x 21 + 4.0 x 22 + 5.5 x 23 +


0.7 x 31 + 1.1 x 32 + 2.8 x 33 + 1.8 x 41 + 1.3 x 42 + 2.0 x 43
Restricciones
Escolarización de x 11 + x 12 + x 13 = 400
todos los alumnos
x 21 + x 22 + x 23 = 400
x 31 + x 32 + x 33 = 500
x 41 + x 42 + x 43 = 500
Capacidad de x 11 + x 21 + x 31 + x 41 ≤ 600
institutos x 12 + x 22 + x 32 + x 42 ≤ 800
x 13 + x 23 + x 33 + x 43 ≤ 500
Equilibrado de ⎛ 50 + p ⎞
⎟( x + x 21 + x 31 + x 41 )
3 2
comunidad A en x 11 + 1 x 21 + x 31 ≤ ⎜
4 5 ⎝ 100 ⎠ 11
instituto 1
⎛ 50 − p ⎞
⎟( x + x 21 + x 31 + x 41 )
3 2
x 11 + 1 x 21 + x 31 ≥ ⎜
4 5 ⎝ 100 ⎠ 11
Equilibrado de ⎛ 50 + p ⎞
⎟(x12 + x 22 + x 32 + x 42 )
3 2
comunidad A en x12 + 1 x 22 + x 32 ≤ ⎜
instituto 2
4 5 ⎝ 100 ⎠
⎛ 50 − p ⎞
⎟(x12 + x 22 + x 32 + x 42 )
3 2
x12 + 1 x 22 + x 32 ≥ ⎜
4 5 ⎝ 100 ⎠

50
Construcción de modelos de Programación Lineal
Equilibrado de ⎛ 50 + p ⎞
⎟( x + x 23 + x 33 + x 43 )
3 2
comunidad A en x 13 + 1 x 23 + x 33 ≤ ⎜
4 5 ⎝ 100 ⎠ 13
instituto 3
⎛ 50 − p ⎞
⎟( x + x 23 + x 33 + x 43 )
3 2
x 13 + 1 x 23 + x 33 ≥ ⎜
4 5 ⎝ 100 ⎠ 13
Signo de x 11 , x 12 , x 13 , x 21 , x 22 , x 23 , x 31 , x 32 , x 33 , x 41 , x 42 , x 43 ≥ 0
variables

7.5.- Consideraciones a posteriori.

El modelo construido es lineal en sus variables Para ello se ha optado por una expresión
lineal de las condiciones. La característica del equilibrado de las comunidades en cada uno
de los institutos se ha modelado como restricciones del modelo. No obstante, se podrían
haber introducido como otro criterio, que junto con el de minimizar la distancia acumulada
recorrida por los alumnos habría dado lugar a un problema de programación multiobjetivo.
Se ha optado por la solución propuesta debido a su mayor simplicidad para una posterior
resolución.

El parámetro p introducido en las restricciones de equilibrado permite desviaciones de las


soluciones respecto del equilibrado perfecto. Para la resolución del modelo será necesario
fijar el valor de p, siendo necesario realizar posteriormente un análisis de sensibilidad sobre
el valor del mismo.

Otra característica del modelo es el carácter continuo de las variables de asignación


x ij ∀i, j. Es obvio que el número de alumnos que van de una zona a un instituto es entero.
Sin embargo, este carácter entero de las variables es conseguido sin necesidad de
imponerlo debido a la propiedad de unimodularidad (característica de los problemas de
redes) que presentan las restricciones del problema.

Por último, comentar el nivel de agregación utilizado en el modelo. En un problema de


planificación como el propuesto, las decisiones planteadas no son asignarle instituto a cada
alumno individualmente (propias de problemáticas de menor horizonte) sino realizar un
reparto de los alumnos generados por cada una de las zonas (“fuentes de producción”)
entre los institutos de capacidad limitada (“centros de demanda”).

51
Construcción de modelos de Programación Lineal

8. Reparto de trabajos

8.1.- Descripción.

Un grupo de n alumnos de Investigación Operativa se plantean realizar conjuntamente una


colección de problemas.

La colección de problemas está compuesta por m capítulos, constando cada uno de ellos
de un número de problemas conocido. De igual forma se conoce el tiempo que tarda cada
uno de los alumnos en realizar los problemas de los distintos capítulos. Se supone que los
problemas de cada capítulo son de igual dificultad por lo que un mismo alumno, tardaría el
mismo tiempo en resolver cualquiera de ellos.

El problema que se les plantea es repartir el trabajo a realizar entre los alumnos, de forma
que el tiempo de trabajo invertido por los distintos alumnos esté lo más equilibrado posible.
Para ello, construya un modelo que describa la situación planteada.

8.2.-Modelado.

8.2.1.- Horizonte.

En la situación planteada no se fija un horizonte para la terminación de la colección de


problemas, esto es, en función del reparto del trabajo que se haga entre los alumnos, la
colección se terminará en un determinado tiempo. En definitiva, el horizonte viene marcado
por la terminación de la colección de problemas.

8.2.2.- Datos.

En la tabla adjunta se presenta una codificación de los datos de la situación planteada:

Subíndices
i (i=1,...,n) alumnos
j (j=1,...,m) capítulos
Parámetros
pj número de problemas del capítulo j
tij tiempo invertido por el alumno i en realizar un problema del
capítulo j

Obsérvese que debido a que todos los problemas de un capítulo son de igual complejidad,
el tiempo en que un alumno realiza cada uno de ellos es el mismo.

8.2.3.- Variables.

Son de dos tipos, variables propias y variables auxiliares.

• Variables propias: Están asociadas a las decisiones a tomar, esto es, el reparto de los
problemas de los distintos capítulos entre los alumnos. Para modelar las decisiones
anteriores se utilizan las variables x ij ∀i, j que denotan la fracción de problemas que

52
Construcción de modelos de Programación Lineal
cada alumno realiza de cada uno de los capítulos.

• Variables auxiliares: En caso de ser necesarias, surgirán durante el diseño del modelo.

8.2.4.- Restricciones

Serán las condiciones que deben cumplir los distintos repartos de trabajo.

8.2.4.1.- Terminación de todos los problemas de los distintos capítulos.

8.2.5.- Criterio(s)

Las soluciones admisibles se valorarán atendiendo al equilibrado de los tiempos de trabajo


invertido por los alumnos.

Debido a que el criterio de evaluación de soluciones obliga a comparar tiempos de trabajo


invertidos por los alumnos, definiremos una variable auxiliar para cada alumno (ui), que
represente el tiempo de trabajo del mismo.

Para modelar el criterio de equilibrar los tiempos de trabajo invertidos por los distintos
alumnos se puede introducir una variable auxiliar umax, que sea una cota superior de los
tiempos de trabajo de los distintos alumnos. Minimizando esta cota superior, aparentemente
equilibraremos los tiempos de trabajo de los alumnos.

Con estos elementos se puede construir un primer modelo aproximado:

Función Objetivo Min u max


Restricciones
Realización de todos los n

problemas de todos los ∑x ij = 1 ∀j


i =1
capítulos
Tiempo de trabajo invertido m

por cada alumno ∑t ij p j x ij = u i ∀i


j= 1
Definición de tiempo del
alumno que más trabaja u i ≤ u max ∀i

Signo de las variables x ij ≥ 0 ∀i, j u i ≥ 0 ∀i


u max ≥ 0

El primer grupo de restricciones impone para cada capítulo, que la suma de las fracciones
que los alumnos hacen del mismo sea la unidad. En el segundo grupo se fija el valor de la
variable ui, para ello se suman los tiempos que el alumno invierte en cada capítulo, que
serán el producto del tiempo invertido en un problema (tij) por el número de problemas que
realiza del mismo (pjtij). Por último, en el último grupo se impone que umax sea una cota
superior de los tiempos invertidos por los alumnos. La función objetivo asegura que umax es
el mayor tiempo de trabajo correspondiente a un alumno. La minimización del mismo hace
que la colección de problemas se termine lo antes posible, además parece intuitivo que
equilibra los tiempos de los alumnos.

8.3.- Completar el modelo.

53
Construcción de modelos de Programación Lineal
El modelo anterior puede no ser totalmente correcto en determinadas situaciones debido a
la forma de la función objetivo. En la función objetivo anterior no aparece ninguna forma del
desequilibrio, el cual queremos minimizar.

En situaciones donde la carga total a repartir no es constante, puede que el modelo anterior
no proporcione la solución más equilibrada. En definitiva, parece lógico modelar el
equilibrado de tiempos de trabajo de tal forma que se minimice una forma del desequilibrio.
Para ello, introduciremos una nueva variable auxiliar umin, que representa una cota inferior
del menor tiempo invertido por un alumno:

u min ≤ u i ∀i

Una forma de medir el desequilibrio es mediante la diferencia entre los tiempos invertidos
por el alumno que más trabaja y el que menos, minimizando dicha diferencia:

Min u max − u min

Obsérvese que con esta función objetivo se minimiza directamente una forma del
desequilibrio, es decir, la solución totalmente equilibrada coincide con el óptimo del modelo
con esta nueva función objetivo.

8.4.-El modelo completo.

Función Objetivo Min u max − u min


Restricciones
Realización de todos los n

problemas de todos los ∑x ij = 1 ∀j


i =1
capítulos
Tiempo de trabajo m

invertido por cada alumno ∑t ij p j x ij = u i ∀i


j= 1
Definición de tiempo del
alumno que más trabaja u i ≤ u max ∀i

Definición de tiempo del


alumno que menos trabaja u min ≤ u i ∀i

Signo de las variables x ij ≥ 0 ∀i, j u i ≥ 0 ∀i


u max , u min ≥ 0

8.5.- Consideraciones a posteriori.

El modelo construido para representar la situación descrita es lineal en sus variables.

En cuanto a las variables de decisión utilizadas para modelar el reparto de problemas,


hemos optado por ellas por su carácter continuo. Otra posibilidad hubiese sido utilizar
variables enteras para representar el número de problemas que cada alumno hace de cada
capítulo. No obstante, cuando el número de problemas por capítulo es alto, la aproximación
utilizada difiere poco de las variables enteras, obviando la mayor complejidad que para una
posterior resolución requieren estas.

Finalmente, comentar que la situación planteada no requiere el análisis de los problemas


individualmente, el cual requeriría un elevado número de variables binarias.
54
Construcción de modelos de Programación Lineal

9. Red de comunicaciones de ordenadores: asignación de tareas a


procesadores

9.1. Descripción.

Se pretende diseñar una red de comunicaciones compuesta por un conjunto de


procesadores y tareas de comunicación. EL problema planteado consiste en la asignación
de N tareas de comunicación a un número indeterminado a priori de procesadores. Cada
procesador dispone de un área de memoria de R unidades de RAM. La asignación de la
tarea k-ésima a un procesador cualquiera requiere de éste una cantidad de memoria
conocida que se representa mediante rk. Se considera de forma ideal que dos tareas
ubicadas en el mismo procesador intercambian información de forma instantánea, mientras
que si dos tareas (i,j) se encuentran en procesadores diferentes se incurre en un tiempo de
comunicación cij.

Suponiendo que no existe limitación en el número de procesadores a utilizar, se debe


modelar el problema de asignación propuesto, de forma lineal, con el objetivo de minimizar
el tiempo total de comunicación entre tareas.

9.2. Formulación del modelo.

9.2.1.Horizonte.

El caso propuesto expone una situación que no se desarrolla a lo largo de un conjunto de


etapas o períodos. Una vez modelada la situación, para unos datos concretos (rk, memoria
consumida por la tarea k-ésima; Cij, tiempo de comunicación entre tareas i,j en
procesadores distintos), la resolución del problema daría lugar a una solución que resultaría
aplicable mientras no se produzcan modificaciones en los datos de partida.

9.2.2. Variables.

Como en todo problema de modelado, la elección o definición de las variables a considerar


se convierte en un problema delicado. Dado que se trata de asignar tareas a procesadores,
parecería en principio adecuado considerar variables binarias del tipo:

⎧1 Si la taraea i es asignada al procesador j⎫


δ ij = ⎨ ⎬
⎩0 En caso contrario ⎭

Sin embargo, el número de procesadores es desconocido a priori. Esto obligaría a


considerar una cota superior para el número de procesadores, tal como el número de tareas
(Es decir, suponer que en el peor de los casos cada tarea es asignada a un procesador
diferente), con el consiguiente aumento en el número de variables del modelo N2, de las
cuales, sólo N tomarían valor 1 y el resto serían N(N-1) nulas.

No obstante, formularemos el modelo haciendo uso de este tipo de variables.


Posteriormente discutiremos un modelo alternativo que obvia el cálculo de una cota superior
del número de procesadores.

Evidentemente, la cota propuesta para el número de procesadores puede ser mejorada.


Consideremos rs = max {rk } , el máximo requerimiento de memoria por parte de una tarea.
k =1..... L

55
Construcción de modelos de Programación Lineal
Supongamos que todas las tareas necesitan rs unidades de memoria, entonces α=⎣R/ rs ⎦
proporciona el número máximo de tareas que se pueden asignar a cada procesador. Así
pues, β=⎡N/α⎤ es una cota superior del número de procesadores.

Por tanto, β depende de los datos del problema. Conocidos éstos, podremos formular el
modelo. El número de variables δij es Nβ, de las cuales, tras su resolución, en el óptimo, N
variables tomarán valor 1 y N(β-1) serán nulas.

9.2.3. Restricciones.

La memoria total de cada procesador es igual a R unidades. La memoria consumida por las
tareas asignadas a cada uno de ellos debe ser inferior al valor antes indicado. Así pues:

∑rδ
i =1
i ij ≤R ∀j = 1....β

Es decir, la suma de la necesidad de memoria para todas las tareas asignadas al


procesador j-ésimo, donde J=1......β, debe ser menor que R unidades de RAM.

Cada tarea debe ser asignada a uno y sólo uno de los procesadores, por tanto:

∑δ
j =1
ij =1 ∀i = 1....N

9.2.4. Función Objetivo.

Si las tareas (i,j) se encuentran en el mismo procesador no se incurre en un aumento del


tiempo de comunicación, es decir, el tiempo de comunicación entre ambas tij tareas es nulo.
Por tanto, cuando δij=1 y δkj=1 se tiene que tij=0, y en otro caso tij= cij.

Para modelar esta consideración en la función objetivo del problema es necesario utilizar
una variable auxiliar γik que tome valor 1 cuando las tareas (i,k) se ejecuten en
procesadores distintos , y valor cero si lo hacen en el mismo procesador. Cualquier intento
de modelado prescindiendo de este tipo de variables complicaría enormemente la
formulación de la función objetivo.

Si tenemos en cuenta las variables auxiliares, la formulación de la función objetivo resulta


inmediata.

N −1 N
Min ∑ ∑c γ
i =1 j =i +1
ij ij

Nótese que el sumatorio recoge sólo una vez cada uno de los tiempos de comunicación cij
(esto resulta válido siempre que los tiempos de comunicación sean simétricos cij= cji).

Para finalizar el modelo de este caso es necesario relacionar las variables de decisión δij
(i=1...N,j=1... .β) y las variables auxiliares γik (i=1....N,k=1....N). Para ello consideremos la
siguiente tabla que relaciona los valores que pueden tomar dichas variables:

56
Construcción de modelos de Programación Lineal

δij δkj γik


0 0 0
1 0 1
0 1 1
1 1 0

Puesto que la función objetivo responde al criterio Minimizar con coeficientes cij ≥ 0 (pues
representan tiempos), las filas primera y cuarta de la tabla anterior no necesitan un
modelado explícito, ya que si es posible, las variables tomarán valor cero. Sin embargo es
necesario forzar mediante nuevas restricciones los casos recogidos en las filas segunda y
tercera de la tabla de relación.

Este tipo de implicaciones se modelan de acuerdo a lo visto en el apartado 6.6. de este


capítulo.

(1 − δ ij ) + δ kj ≤ 1 + γ ij ⎫
i = 1....N − 1, k = i + 1....N , j = 1.....β
δ ij + (1 − δ kj ) ≤ 1 + γ ij ⎬⎭

Así, cuando una de las variables de decisión es positiva y la otra es nula el término de la
izquierda para una de las restricciones toma valor cero y para la otra toma valor dos. En
último este caso la variable auxiliar se ve obligada a tomar el valor uno.

9.2.5. Modelo completo.

N −1 N
Min ∑ ∑c γ
i =1 j =i +1
ij ij

sa:

∑rδ
i =1
i ij ≤R ∀j = 1....β

∑δ
j =1
ij =1 ∀i = 1....N

(1 − δ ij ) + δ kj ≤ 1 + γ ij ⎫
i = 1....N − 1, k = i + 1....N , j = 1.....β
δ ij + (1 − δ kj ) ≤ 1 + γ ij ⎬⎭

⎧1 Si la taraea i es asignada al procesador j⎫


δ ij = ⎨ ⎬
⎩0 En caso contrario ⎭

⎧1 Si el par de tares i, k se asignan a distintos procesadores ⎫


γ ik = ⎨ ⎬
⎩ 0 En caso contrario ⎭

57
Construcción de modelos de Programación Lineal

9.3. Modelo alternativo.

El modelo que se formula a continuación se basa en el uso de variables de decisión


parecidas a las usadas con anterioridad como variables auxiliares. Es decir, ahora las
variables de decisión del problema serán
⎧ 1 Si el par de tares i, k es asignada al mismo procesador ⎫
γ ik = ⎨ ⎬
⎩0 En caso contrario ⎭

Recordemos que este tipo de variables facilita enormemente la formulación de los términos
que aparecen en la función objetivo. Se trata pues de N(N-1)/2 variables, para i=1....N-1,
j=i+1....N.

9.3.1. Restricciones.

La restricción que se deduce del enunciado del problema es la de limitación de la capacidad


de memoria de cada procesador. Ahora la restricción se formula de forma diferente, debido
a la elección de otro tipo de variables. Como ocurría en el caso anterior se desconoce el
número de procesadores, pero ahora se puede formular la condición de no sobrepasar la
capacidad de memoria sin la necesidad de hacer explícito el número de los mismos.

Supongamos que la tarea k-ésima se asigna a cierto procesador, entonces la memoria


disponible para asignar otras tareas será R-rk, y se debe repartir entre el resto de tareas
que se asignen a dicho procesador, de esta manera tendremos:

k −1 N

∑ ri xik +
i =1
∑r x
i = k +1
i ik ≤ R − rk k = 1.....N

Además es necesario obligar ciertas relaciones de transitividad entre variables. Es decir, si


la tarea i-ésima se ejecuta en un procesador conjuntamente con la tarea k-ésima y la tarea
r-ésima se ejecuta conjuntamente con la tarea i-ésima, entonces es imprescindible imponer
que las tareas r-ésima y k-ésima se ejecuten en el mismo procesador, analíticamente se
xik=1 y xir = 1 entonces necesariamente xrk tiene que tomar valor unidad.

Estas relaciones se formulan mediante tres restricciones para cada trío de tareas, del modo:

xir + xik ≤ 1 + xrk ⎫ i = 1.....N − 2



xir + xrk ≤ 1 + xik ⎬ j = 1 + 1...N − 1
xik + xrk ≤ 1 + xir ⎪⎭ r = j + 1......N

9.3.2. Función Objetivo.

La función objetivo es parecida a la del modelado anterior ya que entonces sólo intervenían
variables auxiliares, ahora convertidas en variables de decisión.

N −1 N
Min ∑ ∑c
i =1 j =i +1
ij (1 − γ ij )

La diferencia radica en que se suma el coste cuando la variable toma el valor cero (las
58
Construcción de modelos de Programación Lineal
tareas se encuentran en distintos procesadores) y no se suma (1- γij) cuando la variable
toma valor uno, es decir las tareas comparten procesador.

9.3.3. Modelo completo.

N −1 N
Min ∑ ∑c
i =1 j =i +1
ij (1 − γ ij )

sa:

k −1 N

∑r x
i =1
i ik + ∑r x
i = k +1
i ik ≤ R − rk k = 1.....N

xir + xik ≤ 1 + xrk ⎫ i = 1.....N − 2



xir + xrk ≤ 1 + xik ⎬ j = 1 + 1...N − 1
xik + xrk ≤ 1 + xir ⎪⎭ r = j + 1......N

⎧ 1 Si el par de tares i, k es asignada al mismo procesador ⎫


γ ik = ⎨ ⎬
⎩0 En caso contrario ⎭

9.4. Comentarios.

En cuanto a tamaño de los modelos, la siguiente tabla recoge la diferencia entre ambos:

Variables Restricciones
N ( N − 1) N ( N − 1) β + N + β
+βN
2
N ( N − 1) N ( N − 1)( N − 2)
+N
2 2

Es decir el primer modelo tiene siempre un número mayor de variables al utilizar las
variables de decisión más las auxiliares, así mismo, el número de restricciones suele ser
mayor en el primer modelo, dependiendo de los datos del problema, pues β se calcula a
partir del número máximo de tareas que se pueden albergar en un procesador, por tanto
dependen del máximo valor de rk para valores de k entre 1 y N. A priori parece que el
segundo modelo presentará una resolución mas sencilla, en este sentido sería el modelo
recomendado para esta situación.

59
Construcción de modelos de Programación Lineal

Cobertura

10. Vigilancia de las salas de un museo.

10.1. Descripción.

En la figura adjunta se observa la planta de un museo con once salas comunicadas por
catorce puertas. Un guardia situado en una puerta vigila las dos salas adyacentes que dicha
puerta comunica. Determinar el número mínimo de guardias que se requiere para vigilar todas
las salas del museo. ¿Cual sería la distribución de guardas si se desea que en ningún caso
haya más de un guardia por habitación?

10.2. Discusión.

Al igual que el problema anterior, este problema plantea una situación de cobertura. Es
necesario localizar un conjunto de servicios en una serie de localizaciones conocidas de
manera que quede cubierta una superficie. A partir de los datos del problema se construye
una matriz de cobertura. cuyas filas representan las habitaciones a vigilar, para las filas
usaremos el índice i (i=1...25). Las columnas de la matriz son las posibles localizaciones de
los guardias, en este caso son 14, y las representaremos mediante el índice j. Los
elementos aij de la matriz toman valor 1 si la habitación i queda cubierta por el guardia
ubicado en la puerta j. Se trata de encontrara el mínimo número de guardias que pueden
vigilar el conjunto salas del museo.

10.3. Variables.

Para cada puerta j (j=1...14) usaremos una variable binaria con el significado siguiente:

⎧1 Si se ubica un guardia en la puerta j - ésima ⎫


δj =⎨ ⎬
⎩0 Si no se ubica un guardia en la puerta j - ésima ⎭

10.4. Restricciones.

El conjunto de restricciones básicas del problema de cobertura se obtiene multiplicando la


matriz de cobertura por el vector de variables. Los términos independientes se recogen en
un vector columna (11 elementos, tantos como habitaciones o salas tiene el museo) cuyo
60
Construcción de modelos de Programación Lineal
valor será el número mínimo de veces que la zona debe quedar cubierta.

Así pues:

14

∑a δ
j =1
ij j ≥1 i = 1....11

10.5. Función Objetivo.

El objetivo consiste en minimizar el número de cámaras a instalar y por tanto:

14
Min ∑ δ j
j =1

10.6. Modelo completo.

14
Min ∑ δ j
j =1
sa:

14

∑a δ
j =1
ij j ≥1 i = 1....11

⎧1 Si se ubica un guardia en la puerta j - ésima ⎫


δj =⎨ ⎬
⎩0 Si no se ubica un guardia en la puerta j - ésima ⎭

10.7. Algunas mejoras.

En el caso en que se desea que ninguna sala quede vigilada por mas de dos guardias el
modelado anterior no es válido. En este caso es necesario permitir que algún guardia quede
en el interior de alguna de las salas. Para modelar esta situación necesitaríamos incluir
variables binarias que recojan la existencia de un guardia en cada una de las salas, además
de las variables binarias que indican la existencia de guardias en cada puerta.

Sean pues:
⎧1 Si se ubica un guardia en la puerta j - ésima ⎫
δj =⎨ ⎬
⎩0 Si no se ubica un guardia en la puerta j - ésima ⎭

⎧1 Si se ubica un guardia en la sala k - ésima ⎫


βk = ⎨ ⎬
⎩0 Si no se ubica un guardia en la sala k - ésima ⎭

Puesto que es preferible situar guardias en puertas en lugar del interior de las salas, ya que
en una puerta vigilan todas las salas que se comunican a través de la puerta, usaremos un
peso superior en la función objetivo para las variables βk.

Ampliamos la matriz con 11 columnas correspondientes a las 11 salas. Los elementos de

61
Construcción de modelos de Programación Lineal
esta nueva submatriz tienen el mismo significado que los iniciales, aik toman valor 1 cuando
se sitúa un guardia en la sala k-ésima. La nueva submatriz es diagonal, pues en cada sala
se considera una única ubicación. Las nuevas restricciones del problema son similares a las
anteriores, ahora con signo de igualdad e incluyendo la variable propia de la sala.

14

∑a δ
j =1
ij j + βi = 1 i = 1....11

La función objetivo será entonces

14 11
Min ∑ δ j + M ∑ β k
j =1 k =1

Siendo M un valor positivo mayor que la unidad que penaliza la colocación de guardias en el
interior de las salas.

62
Construcción de modelos de Programación Lineal

11. Localización de cámaras de TV

11.1.Descripción.

Cplus tiene que televisar el partido del año. Los productores han identificado 12 posibles
localizaciones para las cámaras y 25 áreas del estadio que requieren ser cubiertas por las
cámaras. La tabla indica la relación entre ambas:

LOCALIZACIÓN DE CÁMARA ÁREA DEL ESTADIO


1 1, 3, 4, 6, 7
2 8, 4, 7, 12
3 2, 5, 9, 11, 13
4 1, 2, 18, 19, 21
5 3, 6, 10, 12, 14
6 8, 14, 15, 16, 17
7 18, 21, 24, 25
8 2, 10, 16, 23
9 1, 6, 11
10 20, 22, 24, 25
11 2, 4, 6, 8
12 1, 6, 12, 17

Se desea minimizar el número de cámaras empleadas. Además, la localización 9 ha de


tener una cámara y las áreas 1 y 2 requieren cobertura de al menos dos cámaras.
Obviamente, no deben situarse dos cámaras en la misma localización

Formule el problema, indicando el significado de las variables, representando la matriz de


coeficientes de las restricciones y el vector de términos independientes.

11.2. Discusión.

Este problema plantea una situación frecuente en programación lineal denominada situación
o problema de cobertura. Es necesario localizar un conjunto de servicios en una serie de
localizaciones conocidas de manera que quede cubierta una superficie. Los problemas de
cobertura se modelan siempre de una forma estándar. En primer lugar, a partir de los datos
del problema se construye una matriz de cobertura. cuyas filas representan las zonas a
cubrir, en este caso las zonas del estadio, para las filas usaremos el índice i (i=1...25). Las
columnas de la matriz son las posibles localizaciones de las cámaras, en este caso son 12,
y las representaremos mediante el índice j. Los elementos aij de la matriz toman valor 1 si la
zona i queda cubierta por la cámara ubicada en la localización j. Se trata de encontrara el
mínimo numero de localizaciones que cubren el conjunto de las zonas.

En nuestro caso la matriz de cobertura es:

1 2 3 4 5 6 7 8 9 10 11 12
1 1 0 0 1 0 0 0 0 1 0 0 1
2 0 0 1 1 0 0 0 1 0 0 1 0
3 1 0 0 0 1 0 0 0 0 0 0 0
4 1 1 0 0 0 0 0 0 0 0 1 0
5 0 0 1 0 0 0 0 0 0 0 0 0

63
Construcción de modelos de Programación Lineal
6 1 0 0 0 1 0 0 0 1 0 1 1
7 1 1 0 0 0 0 0 0 0 0 0 0
8 0 1 0 0 0 1 0 0 0 0 1 0
9 0 0 1 0 0 0 0 0 0 0 0 0
10 0 0 0 0 1 0 0 1 0 0 0 0
11 0 0 1 0 0 0 0 0 1 0 0 0
12 0 1 0 0 1 0 0 0 0 0 0 1
13 0 0 1 0 0 0 0 0 0 0 0 0
14 0 0 0 0 1 1 0 0 0 0 0 0
15 0 0 0 0 0 1 0 0 0 0 0 0
16 0 0 0 0 0 1 0 1 0 0 0 0
17 0 0 0 0 0 1 0 0 0 0 0 1
18 0 0 0 1 0 0 1 0 0 0 0 0
19 0 0 0 1 0 0 0 0 0 0 0 0
20 0 0 0 0 0 0 0 0 0 1 0 0
21 0 0 0 1 0 0 1 0 0 0 0 0
22 0 0 0 0 0 0 0 0 0 1 0 0
23 0 0 0 0 0 0 0 1 0 0 0 0
24 0 0 0 0 0 0 1 0 0 1 0 0
25 0 0 0 0 0 0 1 0 0 1 0 0

Cada columna contiene un coeficiente unitario en la posición correspondiente a las zonas


que cubre la cámara. La denotaremos mediante la letra A.

11.3. Variables.

Para cada localización j (j=1...12) usaremos una variable binaria con el significado
siguiente:

⎧ 1 Si se ubica una cámara en la localización j - ésima ⎫


δj =⎨ ⎬
⎩0 Si no se ubica una cámara en la localización j - ésima ⎭

11.4. Restricciones.

El conjunto de restricciones básicas del problema de cobertura se obtiene multiplicando la


matriz de cobertura por el vector de variables. Los términos independientes se recogen en
un vector columna (25 elementos, tantos como filas) cuyo valor será el número mínimo de
veces que la zona debe quedar cubierta.

Así pues:

12

∑a δ
j =1
ij j ≥2 i = 1,2

12

∑a δ
j =1
ij j ≥1 i = 3....25

Además, el enunciado del caso nos indica que la localización novena debe disponer de una
cámara, por tanto es preciso añadir:

64
Construcción de modelos de Programación Lineal
δ9 =1

11.5. Función Objetivo.

El objetivo consiste en minimizar el número de cámaras a instalar y por tanto:

12
Min ∑ δ j
j =1

11.6. Modelo completo.

12
Min ∑ δ j
j =1
sa:

12

∑a δ
j =1
ij j ≥2 i = 1,2

12

∑a δ
j =1
ij j ≥1 i = 3....25

δ9 =1

⎧ 1 Si se ubica una cámara en la localización j - ésima ⎫


δj =⎨ ⎬
⎩0 Si no se ubica una cámara en la localización j - ésima ⎭

65
Construcción de modelos de Programación Lineal

Localización

12. Localización continua de Hospitales

12.1. Descripción.

Conocida la ubicación geográfica, coordenadas (ai, bi) {i=1,...,n}, de un conjunto de n


ciudades, se desea conocer el emplazamiento idóneo para la construcción de un hospital de
manera que la distancia hasta la ciudad mas alejada sea lo menor posible.

Considérese una definición de distancia rectangular. Es decir, la distancia entre dos puntos
X (x1,x2) e Y(y1,y2) responde a la expresión:

d(X,Y) = ∗x1-y1∗ + ∗ x2-y2∗

12.2. Consideraciones iniciales.

El enunciado descrito plantea un problema de tipo MinMax, consistente en la minimización


de la distancia existente entre la ciudad mas lejana y el hospital. En principio las
coordenadas que fijan la ubicación de las ciudades no tienen por que ser positivas
(dependerá del origen de coordenadas tomado). Considerando el par (X,Y) como la
ubicación del hospital, variables contínuas y libres en el signo, el objetivo del problema se
puede formular como sigue:

Min ⎡ Max ( | X - ai | + | Y - bi | ) ⎤
⎢⎣ i=1,...,n ⎥⎦

Que corresponde a un problema no lineal sin restricciones.

12.3. Formulación inicial.

Con el fin de disponer de una función objetivo lineal, siempre es posible traducir el máximo
anterior en un conjunto no lineal de restricciones. Para ello basta con definir una variable Z

Z = Max ( | X - ai | + | Y - bi | )
i=1,...,n

que representará la distancia máxima.

Min Z

Entonces, la función objetivo del problema se puede expresar:


y resulta necesario añadir el conjunto de restricciones que establecen la acotación superior

| X - a i | + | Y - bi | ≤ Z i = 1,..., n

de la distancias:

66
Construcción de modelos de Programación Lineal
12.4. Conversión en un modelo lineal.

El modelo anterior dispone ya de una función objetivo lineal y un conjunto no lineal de


restricciones. La conversión de los valores absolutos en restricciones lineales se puede
llevar a cabo de dos formas.

La primera de ellas consiste en la realización de un cambio de variables. Si x es una


variable libre, entonces x = u - v, siendo u y v variables mayores o iguales a cero. El valor
absoluto ∗x ∗ puede ser sustituido por la suma de las variables u y v. Esto se debe a que la
inclusión de estas dos variables en el conjunto de restricciones supone la aparición de dos
columnas idénticas en la matriz de coeficientes tecnológicos, con diferente signo para cada
coeficiente. De esta forma sólo una de ellas podrá ser básica en cualquier solución básica
admisible.

La segunda forma de eliminar la no linealidad introducida por el valor absoluto consiste en la


consideración de dos restricciones:
∗x ∗ <= a
es equivalente a:
x <=a y -x <= a ( x >= -a)

En el caso que nos ocupa se optará por la segunda posibilidad. El conjunto de restricciones

| X - a i | + | Y - bi | ≤ Z i = 1,..., n

X - ai + Y - bi ≤ Z i = 1,..., n
-X + ai + Y - bi ≤ Z i = 1,..., n
X - ai - Y + bi ≤ Z i = 1,..., n
-X + ai - Y + bi ≤ Z i = 1,..., n

pasa a ser formulado como:


convirtiéndose en un conjunto de 4n restricciones con 3 variables, X, Y, Z libres en el signo.
Reagrupando variables y pasando las constantes a la derecha de las desigualdades, se
dispone de un modelo lineal para la localización del hospital.

Min Z
sa :

X + Y - Z ≤ ai + bi i = 1,..., n
-X + Y - Z ≤ - ai + bi i = 1,..., n
X - Y - Z ≤ ai - bi i = 1,..., n
-X - Y - Z ≤ - ai - bi i = 1,..., n

X, Y, Z libres

67
Construcción de modelos de Programación Lineal
12.5. Simplificaciones.

Nótese que las primeras y últimas de las restricciones tienen el mismo término
independiente cambiado de signo. Lo mismo ocurre con las restricciones segundas y
terceras. Multiplicando por -1 las restricciones segundas y últimas, se tiene:

X + Y - Z ≤ ai + bi i = 1,..., n
X - Y + Z ≥ ai - bi i = 1,..., n
X - Y - Z ≤ ai - bi i = 1,..., n
X + Y + Z ≥ ai + bi i = 1,..., n

Cada uno de los conjuntos de restricciones consiste en n restricciones idénticas en las que
varía exclusivamente el término independiente. Se trata pues de un conjunto de hiperplanos
paralelos. Por ello, para cada conjunto, n-1 restricciones resultan redundantes.
Considérense las siguientes definiciones:

s = min { ai + bi }
i

S = max { ai + bi }
i

D = max { ai - bi }
i

d = min { ai - bi }
i

Entonces, las restricciones del problema pueden simplificarse, formulándose como sigue:

X + Y - Z≤s
X - Y + Z≥D
X - Y - Z ≤d
X + Y + Z ≥S

12.6. Modelo final del problema.

Min Z
sa :

X + Y - Z≤s
X - Y + Z≥D
X - Y - Z ≤d
X + Y + Z ≥S

X,Y, Z libres

68
Construcción de modelos de Programación Lineal

13. Ubicación estaciones de bomberos

13.1.- Descripción.

En una ciudad se ha realizado una zonificación en M distritos. Tras un análisis preliminar se


han seleccionado N posibles localizaciones en las que se han de ubicar B estaciones de
bomberos (B<N). Además, cada uno de los distritos han de ser asignados a las estaciones
de bomberos que se abran. Los datos disponibles son las distancias del centro de cada
distrito a la posible localización.

Diseñe un modelo que permita localizar las estaciones de bomberos, hasta un máximo de
B, asigne los distritos a las estaciones de bomberos que se abran (una sola estación
asignada a cada distrito, si bien varios distritos pueden ser cubiertos desde la misma
estación de bomberos) de forma que se minimice la máxima distancia que se haya de viajar
desde uno de los (centros de los) distritos hasta la estación de bomberos que se le ha
asignado.

13.2.- Formulación del modelo.

13.2.1.- Problemática.

El problema planteado engloba dos tipos de decisiones: localización de las estaciones de


bomberos y asignación de cada distrito a una estación abierta en una posible localización.
El criterio de valoración de las soluciones es el de minimizar el mayor desplazamiento entre
una estación y un distrito.

13.2.2.- Codificación de los datos.

Con los subíndices i y j representaremos respectivamente los distritos (i = 1,...,M) y las


posibles localizaciones de estaciones de bomberos (j = 1,...,N). Las distancias entre
distritos y posibles localizaciones vendrá dada por dij i,j .
13.2.3.- Variables.

Las variables modelarán los dos tipos de decisiones a adoptar. En primer lugar, y asociado
a cada localización se introducirá una variable que modele si se abre o no una estación de
bomberos (Yj). En segundo lugar, dadas una localización y un distrito se tendrá que decidir
si se asigna dicho distrito a la posible estación que se abra en la localización (Xij). En total
tendremos M+M x N variables binarias.

Formalmente:

69
Construcción de modelos de Programación Lineal
⎧ 1 Si se abre una estaci n en ⎫
⎪ ⎪
Yj = ⎨ la localizaci n j ⎬
⎪ ⎪
⎩ 0 En otro caso ⎭

⎧ 1 Si el distrito i es asignado ⎫
⎪ ⎪
X ij = ⎨ a la estaci n (abierta en) j ⎬
⎪ ⎪
⎩ 0 En otro caso ⎭

i = 1 ,..., M ; j = 1 ,..., N

13.2.4.- Restricciones.

13.2.4.1.- Como máximo se localizarán B estaciones de bomberos.

De las N posibles localizaciones de estaciones de bomberos, a lo sumo en B de


ellas se localizará una estación. Puesto que Yj es la variable indicativa de la
localización de una estación en j, la suma de estas variables para las N posibles
localizaciones debe ser menor o igual a B:

∑Y
j=1
j ≤ B

13.2.4.2.- Cada distrito asignado a una única estación.

Para cada distrito, de las posibles estaciones a las que puede ser asignado, sólo lo
será a una de ellas. Como las variables que modelan la asignación de distritos a
estaciones abiertas en localizaciones son las Xij, para cada i tendremos que

∑X =
j=1
ij 1 i = 1 , ... , M

imponer que la suma en j de estas variables sea la unidad:


Ahora bien, las relaciones anteriores no impiden que un distrito se asigne a una
localización en la que no se abre estación. Esto es, se deberá cumplir que si Yj = 0
entonces Xij =0 i.
El modelado lineal de estas implicaciones se puede realizar acotando superiormente
las M x N variables Xij con las correspondientes Yj.

X ij ≤ Y j i = 1 , ... , M ; j = 1 , ... , N

70
Construcción de modelos de Programación Lineal
13.2.4.3.- Máxima distancia entre un distrito y su estación de bomberos.

Como el criterio de valoración de las soluciones maneja la máxima distancia entre un


distrito y su estación, introduciremos una variable U, que será una cota superior de
las distancias entre los distritos y sus respectivas estaciones.

Para modelar lo anterior se introduce para cada distrito una restricción en donde se
impone que la distancia desde el mismo a su estación sea menor o igual a U. Para
expresar la distancia entre un distrito y su estación, se realiza la suma extendida a
las N localizaciones del producto de la distancia entre el distrito y cada localización:


N

∑d
j=1
ij X ij U i = 1 , ... , M

El primer término de las relaciones anteriores recoge las distancias de los distritos a
sus respectivas estaciones ya que con las restricciones 2.4.2 se impone que cada
distrito se asigna a una sola estación.

13.2.4.- Objetivo.

El objetivo del problema consiste en la minimización de la máxima distancia entre un distrito


y su correspondiente estación. Minimizando la variable U conseguiremos lo anterior. Así
pues, la función objetivo se puede formular como sigue:

Min U

13.2.5.- Modelo.

Min U

sa:

∑Y
j=1
j ≤ B

∑X =
j=1
ij 1 i = 1 , ... , M

X ij ≤ Y j i = 1 , ... , M ; j = 1 , ... , N
71
Construcción de modelos de Programación Lineal


N

∑d
j=1
ij X ij U i = 1 , ... , M

U ≥ 0, X ij , Y j binarias

13.3.- Consideraciones finales.

Se ha formulado un modelo matemático para la localización de estaciones de


bomberos en una ciudad y la asignación de los distritos de la misma a las estaciones
abiertas. Las decisiones de tipo Asi/no@ se modelan mediante variables binrias.

Las M x N restricciones que evitan la asignación de un distrito a una localización


donde no se abre estación de bomberos (si Yj = 0 entonces Xij = 0 i) pueden
ser reformuladas con únicamente N restricciones:

∑X
i=1
ij ≤ M Yj j = 1 , ... , N

72
Construcción de modelos de Programación Lineal

Distribución

14. Planificación de la distribución de un producto

14.1. Descripción.

Cierta empresa dispone de dos fábricas F1 y F2 cuya producción abastece seis zonas
geográficas Z1,...,Z6. La empresa cuenta asimismo con cuatro almacenes A1,..,A4
geográficamente dispersos que son usados como almacenamiento del producto y como
fuente para satisfacer la demanda.

Las capacidades mensuales de producción de las fábricas y la capacidad de los almacenes


intermedios (en unidades de producto) se muestran en la Tabla 1.

F1 F2 A1 A2 A3 A4 Total

150000 200000 70000 30000 10000 40000 500000

Tabla 1

El número mensual de productos demandado en cada una de las zonas se ha estimado de


acuerdo al contenido de la Tabla 2.

Z1 Z2 Z3 Z4 Z5 Z6 Total

30000 10000 40000 35000 60000 20000 195000

Tabla 2

Los costes asociados al transporte de fábricas a almacenes y de estos a las diferentes


zonas de distribución se proporcionan en las Tablas 3 y 4.

A1 A2 A3 A4

F1 0,5 0,5 1 0,2

F2 0,3 0,5 0,8

Tabla 3

Z1 Z2 Z3 Z4 Z5 Z6

F1 1 2 2 6

F2 2

A1 0,5 1,5 1,5 1

A2 1 0,5 1 1 0,5

A3 2 0,5 1,5

A4 0,2 1,5 1,5 0,5 1,5

73
Construcción de modelos de Programación Lineal
Tabla 4

Se desea planificar la distribución de producto de manera que el coste asociado resulte


mínimo. Formúlese un modelo alternativo que recoja las siguientes preferencias.

La zona 1 debe ser servida por la fábrica F1.


La zona 2 debe ser servida por el almacén A1.
El almacén A2 debe atender la demanda de la zona 5.
La zona 6 debe ser atendida por el almacén 3 ó el 4.

Tras cierto tiempo de operación, la empresa se plantea la posibilidad de abrir dos nuevos
almacenes M1 y M2 así como la ampliación del segundo de sus almacenes A2. En
cualquier caso se desea que el número de almacenes abiertos no supere el número inicial,
pues esto supondría la contratación de personal nuevo. En el caso en que fuese necesario
cerrar uno o dos almacenes, se deberá elegir entre A3 y A4.

La apertura de M1 supondrá un coste fijo de 12.000.000 de pts. La de M2 se estima en


6.000.000 de pts. Las capacidades de estos nuevos almacenes son 100.000 y 150.000
unidades respectivamente y los costes de transporte de fabricas a almacenes y de estos a
las zonas de distribución se consideran conocidos.

La ampliación de A2 en 20.000 unidades exige un desembolso de 3.000.000 de pts.


Mientras el cierre de A3 y A4 generaría unos beneficios por la venta de material auxiliar de
10.000.000 y 5.000.000 pts respectivamente.

Se desea conocer un nuevo plan de distribución que proponga adicionalmente la apertura,


ampliación o cierre de los almacenes afectados.

14.2. Modelo.

14.2.1. Horizonte.

Como horizonte para el plan de distribución de considerará un mes. Se supondrá un solo


viaje desde cada fabrica a almacenes y zonas y de cada almacén hacia las diferentes
zonas. Se considerará que inicialmente los almacenes se encuentran vacíos.

14.2.2. Variables.

Las variables naturales del problema se refieren a las cantidades a enviar desde fabricas a
almacenes y zonas así como desde los almacenes a las zonas de demanda. Al igual que en
otros casos se considerarán variables de tipo contínuo para representar el número de
productos enviados. Si el valor o tamaño de los productos es elevado convendría utilizar
variables enteras.

A lo largo de la exposición se usará el índice i para representar fábricas, j para almacenes y


k para las zonas de demanda. De esta forma, el número de productos enviados de fábricas
a almacenes se denotará mediante Xij (i=1,2; j=1,...,4), las cantidades de productos
enviados directamente de fábricas a zonas se representan mediante las variables Yik (i=1,2;
k=1,...,6) y para los envíos desde almacenes a zonas de demanda se usarán variables Zjk
(j=1,...,4; k=1,...,6).
74
Construcción de modelos de Programación Lineal

A lo largo del proceso de modelado surgirán otras variables que se comentarán en su


momento.

14.2.3. Restricciones.

14.2.3.1. Limitación de capacidad de producción en las fábricas.

El primer tipo de restricciones del problema se refiere a la limitación en la capacidad


de producción de las dos fábricas de la empresa. Para cada fábrica, la suma de
productos enviados a los almacenes y zonas de demanda debe ser menor que la
capacidad máxima, esto es:

+ ∑Y ≤
4 6

∑X
j=1
ij
k =1
ik Ci i = 1 , 2

Donde Ci es conocido e igual a la capacidad máxima de la fabrica i, de acuerdo al


contenido de la Tabla 1.

14.2.3.2. Limitación de capacidad de los almacenes.

La formulación de estas restricciones dependerá de ciertas consideraciones. En


primer lugar es necesario saber si existe un stock inicial de producto en los
almacenes. En este caso, la capacidad efectiva de almacenamiento es menor que la
recogida, para cada almacén, en la Tabla 1.

En segundo lugar es preciso definir la forma de funcionamiento del almacén. Una


posibilidad consiste en esperar la llegada de productos de las fábricas para
posteriormente, una vez finalizado este proceso, iniciar el envío de almacenes a
zonas de distribución. La segunda posibilidad supone un comportamiento mas
inteligente en la gestión del almacén. A medida que los productos van llegando de
las fabricas son enviados hacia las zonas de consumo, liberando el espacio
ocupado. En ambos casos es posible que queden productos en los almacenes al
finalizar la distribución mensual.

Bajo el segundo comportamiento en la gestión de almacenes, si se considera la no


existencia inicial de productos en stock, las restricciones de capacidad en almacenes

- ∑Z ≤
4 6

∑X
i=1
ij
k =1
jk CA j j = 1 , ... , 4

se podrían formular como sigue:.


Donde CAj representan los valores de las capacidades de almacenes recogidos en
la tabla 1.

Si se tiene en cuenta un stock inicial en almacenes Ioj, las restricciones anteriores se


escribirían:

- ∑Z ≤
4 6

∑X
i=1
ij
k =1
jk CA j - Io j j = 1 , ... , 4

75
Construcción de modelos de Programación Lineal

Las restricciones de capacidad de almacenamiento suponen un balance de


productos en cada almacén. El número de productos que entran menos el número
de productos que salen debe ser menor o igual que la capacidad de los almacenes.

Como se verá posteriormente la función objetivo consistirá en la minimización de


costes de transporte de productos. Debido a esto, es previsible que los productos
que llegan a almacenes sean enviados en su totalidad a las fábricas, pues el
almacenamiento en exceso supondría un coste adicional de transporte desde
fábricas a almacenes.

14.2.3.3. satisfacción de la demanda en zonas de distribución y consumo.

El número de productos enviado a cada una de las zonas deberá superar el valor
mínimo demandado. Puesto que se minimizan costes de transporte parece
adecuado enviar hasta las zonas de consumo el número exacto de productos. Las
restricciones de demanda, una para cada zona de distribución, se formulan a
continuación:

+ ∑Z ≥
2 4

∑ X ik
i=1 j=1
jk Dk k = 1 , ... , 6

Siendo Dk la demanda prevista para la zona k-ésima, cuyo valor se recoge en la


tabla 2.

14.2.4. Función objetivo.

Consiste en la minimización de los costes de distribución de productos.

2 4 2 6 4 6
Min ∑∑C
i=1 j=1
ij X ij + ∑∑C
i=1 k =1
ik
′ Y ik + ∑∑C
j=1 k =1
jk
″ Z jk

Siendo Cij, C=ik y C@jk los costes asociados a los desplazamientos fábrica-almacén, fábrica-
zona y almacén-zona respectivamente, cuyos valores aparecen en las tablas 3 y 4.

14.2.5. Modelo completo.

2 4 2 6 4 6
Min ∑∑C
i=1 j=1
ij X ij + ∑∑C
i=1 k =1
ik
′ Y ik + ∑∑C
j=1 k =1
jk " Z jk

+ ∑Y ≤
4 6

∑X
j=1
ij
k =1
ik Ci i= 1 , 2

sa:

76
Construcción de modelos de Programación Lineal

- ∑Z ≤
4 6

∑ X ij
i=1 k =1
jk CA j - Io j j = 1 , ... , 4

∑ X + ∑Z ≥
2 4

ik jk Dk k = 1 , ... , 6
i=1 j=1

14.3. Rutas prohibidas.

Las tablas de costes (Tablas 3 y 4) muestran algunas casillas sin ningún valor. Esta
circunstancia debe interpretarse como la existencia de rutas prohibidas, es decir pares
origen-destino no permitidos. El modelado de esta situación puede realizarse considerando
costes muy altos en las rutas implicadas o forzando las respectivas variables a un valor
cero, lo que supone la inclusión de nuevas restricciones.

14.4. Análisis de preferencias.

En el caso en que se deseen satisfacer algunas preferencias, como las recogidas en el


enunciado del caso propuesto, se puede optar por efectuar modificaciones en los costes de
las rutas preferidas, reduciéndolos, de manera que la resolución del modelo conlleve a la
elección de los caminos elegidos. Posteriormente se calculará el coste global real, utilizando
los valores recogidos en las tablas 3 y 4.

14.5. Modificación de las instalaciones.

La empresa se plantea, tras cierto tiempo de operación, la posibilidad de abrir dos nuevos
almacenes M1 y M2 y la ampliación del almacén A2. En ningún caso el número total de
almacenes excederá el inicial, esto es, cuatro almacenes. Si fuese preciso cerrar alguno de
los almacenes existentes se optará entre A3, A4 o ambos.

La apertura de los nuevos almacenes y la ampliación de A2 supone un coste fijo conocido.


El cierre de A3 y A4 proporcionaría ciertos beneficios, debido a la venta de material auxiliar.

La empresa desea estudiar un nuevo plan de distribución teniendo en cuenta las decisiones
sobre apertura, ampliación y cierre de los almacenes afectados.

Las decisiones de apertura y cierre de almacenes se modelarán mediante variables 0-1. Se


definen con este fin las siguientes variables:

δ1: Tomará valor 1 si se decide abrir el almacén M1. Cero en caso contrario.
δ2: Tomará valor 1 si se decide abrir el almacén M2. Cero en caso contrario.
δ3: Tomará valor 1 si se mantiene abierto el almacén A3. Cero en caso contrario.
δ4: Tomará valor 1 si se mantiene abierto el almacén A4. Cero en caso contrario.
δ5: Tomará valor 1 si se decide ampliar el almacén A2. Cero en caso contrario.

14.5.1. Limitación en el número de almacenes abiertos.

77
Construcción de modelos de Programación Lineal
La empresa no desea mantener más de cuatro almacenes abiertos de forma simultánea.
Puesto que los almacenes involucrados en esta decisión son M1, M2, A3 y A4, y de acuerdo
a la definición anterior para las variables binarias.

δ 1 +δ 2 +δ 3 +δ 4 ≤ 2

Es decir, de los cuatro almacenes (dos nuevos y dos antiguos), solamente dos podrán
quedar abiertos.

14.5.2. Limitación del número de productos que llega o sale de cada almacén.

La decisión final de la empresa supondrá la no existencia de dos de los almacenes M1, M2,
A3 y A4. Si alguno de ellos no se construye (M1, M2), o se cierra (A3, A4), la cantidad de
productos que le llega desde las fábricas debe ser nula. Del mismo modo, al no existir, no
se podrán envíos desde él hacia las zonas de consumo.

Para modelar estas restricción es (para cada almacén) basta con acotar la suma de
cantidades enviadas desde las fabricas (o las cantidades a enviar hacia zonas de demanda)
mediante el producto de la correspondiente variable binaria y cierta constante. Si la variable
binaria toma valor cero (almacén cerrado) las variables Xij y Zjk serán nulas.

Las constantes se denotan en las restricciones mediante Ωs y Ψs. Estas constantes


deberán ser tales que cuando la variable binaria tome valor 1 no actúe la restricción.

Para el caso de envíos de fábricas a almacenes.

∑X ≤
2

is δ s Ωs s = 1 , 2, 3 , 4 (M1 , M2 , A3 , A4)
i=1

En el caso de envíos de almacenes a zonas de demanda.

∑Z ≤
6

sk δ s Ψs s = 1 , 2, 3 , 4 (M1 , M2 , A3 , A4)
k =1

En el primer caso la constante Ωs de cada restricción puede ser sustituida por la suma de
las producciones de todas las fábricas. Quedando la restricción como:

∑X ≤
2 2

i=1
is δs ∑C
i=1
i s = 1 , 2, 3 , 4 (M1 , M2 , A3 , A4)

En el segundo caso se puede usar la suma de todas las demandas como cota para las
restricciones:


6 6

∑Z
k =1
sk δs ∑D
k =1
k s = 1 ,78
2, 3 , 4 (M1 , M2 , A3 , A4)
Construcción de modelos de Programación Lineal

14.5.3. Restricciones de capacidad de los almacenes.

Estas restricciones mantienen su formulación para todos los almacenes, incluyendo los
almacenes M1 y M2.

∑ X - ∑Z ≤
4 6

ij jk CA j - Io j j = 1 , 3 ,... , 6
i=1 k =1

El índice j recoge los almacenes A1,A3,A4 y los nuevos M1 y M2. Para el almacén A2 es
preciso formular una nueva restricción que considere la ampliación de capacidad:

- ∑Z ≤ Δ CA -
4 6

∑ X i2
i=1 k =1
2k CA2 + δ2 2 Io j j = 1 , 3 ,... , 6

14.6. Función objetivo.

La función objetivo del problema se verá modificada con los costes debidos a la apertura de
nuevos almacenes así como los posibles beneficios derivados del cierre de los almacenes
A3 y A4 (si es que tiene lugar).

2 4 2 6 4 6
Min ∑∑C
i=1 j=1
ij X ij + ∑∑C
i=1 k =1
ik
′ Y ik + ∑∑C
j=1 k =1
jk " Z jk + ( 12 x 106 ) δ + 1

( 6 x 10 6 ) δ 2 - ( 10 x 106 ) δ - ( 5 x 106 ) δ + ( 3 x 106 ) δ


3 2 5

14.7. Modelo mejorado.

2 4 2 6 4 6
Min ∑ ∑ C ij X ij
i=1 j=1
+ ∑∑C
i=1 k =1
ik
′ Y ik + ∑∑C
j=1 k =1
jk " Z jk + ( 12 x 106 ) δ + 1

( 6 x 10 6 ) δ 2 - ( 10 x 10 6 ) δ - ( 5 x 10 6 ) δ + ( 3 x 10 6 ) δ
3 2 5

- ∑Z ≤
4 6

∑X
i=1
ij
k =1
jk CA j - Io j j = 1 , 3 ,... , 6

sa:

- ∑Z ≤ Δ CA -
4 6

∑X
i=1
i2
k =1
2k CA2 + δ2 2 Io j j = 1 , 3 ,... , 6


2 2

∑ X is
i=1
δs ∑C i=1
i s = 1 , 2, 3 , 4 (M1 , M2 , A3 , A4)

79
Construcción de modelos de Programación Lineal


6 6

∑ Z sk
k =1
δs ∑D
k =1
k s = 1 , 2, 3 , 4 (M1 , M2 , A3 , A4)

δ 1 +δ 2 +δ 3 +δ 4 ≤ 2
+ ∑Y ≤
4 6

∑Xj=1
ij
k =1
ik Ci i = 1 , 2

+ ∑Z ≥
2 4

∑ X ik
i=1 j=1
jk D k k = 1 , ... , 6

X ij , Y ik , Z jk ≥ 0 , δ i ( 0 , 1 )

80
Construcción de modelos de Programación Lineal

Secuenciación

15. Periódicos

15.1. Descripción.

Cuatro estudiantes que comparten piso se levantan temprano para asistir a las clases
matinales. A las 8.00 de la mañana reciben su suscripción a cuatro periódicos de tirada
nacional (El País, ABC, El Mundo y Diario 16). Desayunan a las 9.00 (como más tarde),
disponiendo pues de una hora para ojear los distintos diarios. Los tiempos que cada uno de los
lectores dedica a cada uno de los periódicos aparecen en la siguiente tabla:

Lector El ABC El Correo Diario 16


País
Lector 1 20' 5' - 15'
Lector 2 10' 10' 10' 10'
Lector 3 - 15' 15' 10'
Lector 4 5' 10' 20' 5'

¿En qué orden deben leer los periódicos para que queden libres lo antes posible?

15.2. Horizonte.

El horizonte temporal del caso se inscribe en una hora, tiempo del que disponen los lectores
para disfrutar de la lectura de los diarios hasta el momento del desayuno a las 9:00 horas.
En principio se podría pensar en discretizar el intervalo en períodos de 5 minutos, al ser la
menor fracción de tiempo dedicada a lectura y puesto que los tiempos de lectura son
múltiplos de 5 minutos. De esta forma se dispondría de 12 intervalos. El modelado se
reduciría a ocupar cada uno de estos intervalos para cada uno de los lectores. este punto
de vista implica la consideración de restricciones de continuidad, de forma que cuando un
lector comienza la lectura de un diario no pude alternar otro diario hasta haber finalizado
completamente el tiempo dedicado al primero. El enfoque que se sigue a continuación es
diferente, no se discretizará el tiempo, en su lugar usaremos variables continuas que indican
el instante de comienzo de cada periódico por cada lector. Posteriormente se relacionarán
estas variables para evitar simultaneidad en la lectura de dos periódicos y que varios
lectores usen un mismo diario. Utilizaremos los índice i, r para lectores y los índices j, k
para periódicos.

15.3.Variables.

En principio las variables de decisión del problema son continuas y representan el inicio de
lectura de cada periódico por parte de cada lector.

t ij ⇒ Instante en que el lector i comienza la lectura del periódico j

Como dato de partida se conocen los tiempos que cada lector dedica a cada periódico,
aparecen en la tabla del apartado 1 del caso y los representaremos mediante dij.

15.4. Restricciones.

81
Construcción de modelos de Programación Lineal
15.4.1. Un lector sólo lee un periódico de forma simultánea.

Entonces para cada lector i (i=1..4) y cada par de periódicos j, k (j=1..3, k=j+1...4) se
cumple una de las siguientes relaciones:

t ij ≥ t ik + d ik
o
t ik ≥ t ij + d ij

Dependiendo de si el lector i toma el periódico j después del k o al contrario. Se trata de un


par de restricciones disyuntivas. El modelado de este tipo de situaciones se trató con
anterioridad en este capítulo. Su formulación lineal pasa por la consideración de una
variable auxiliar binaria.

Sea
⎧1 Si el lector i - ésimo lee el periódico j antes que el k ⎫
δ ijk = ⎨ ⎬ i = 1...4 , j = 1...3, k = j + 1...4
⎩0 En caso contrario ⎭

en este caso, las restricciones de no simultaneidad en la lectura de dos periódicos se


pueden escribir como:

Mδ ijk + t ij ≥ t ik + d ik
M (1 − δ ijk ) + t ik ≥ t ij + d ij

Esto es, si i lee j antes que k se satisface la segunda restricción, es decir el instante de
inicio de lectura del periódico k es posterior a la finalización de la lectura del diario j-ésimo.
La primera restricción no actúa para un valor conveniente de la cota M. Piénsese que un
valor adecuado para M sería, por ejemplo, el de 60 minutos, en este caso la primera
restricción dice que el instante de inicio de lectura del periódico k + 60 minutos es mayor
que el instante de finalización de lectura del periódico j, o de otra forma, la primera
desigualdad no restringe el espacio de decisión (región de admisibilidad del problema) al ser
desplazada fuera de la misma.

15.4.2. Dos lectores no pueden leer un mismo periódico al mismo tiempo.

Nuevamente se plantean dos restricciones disyuntivas, esta vez para dos lectores y un
único periódico.
t ij ≥ t rj + d rj
o
t rj ≥ t ij + d ij

Para linealizar esta situación se define una nueva variable auxiliar:

⎧ 1 Si el lector i lee el periódico j antes que el lector r ⎫


β irj = ⎨ ⎬ j = 1...4 , i = 1...3, r = i + 1...4
⎩0 En caso contrario ⎭

Las restricciones de no simultaneidad de lectores se escriben entonces de la siguiente


82
Construcción de modelos de Programación Lineal
forma:

Nβ irj + t ij ≥ t rj + d rj
N (1 − β irj ) + t rj ≥ t ij + d ij

Que tienen una lectura similar al caso del apartado anterior. La constante N puede ser fijada
al mismo valor que M, es decir 60 minutos.

15.5. Función Objetivo.

La función objetivo consiste en minimizar el máximo tiempo de finalización de lectura.

Formalmente:

⎧ ⎫
Min ⎨Max{t ij + d ij }⎬
⎪ ⎪
⎪⎩ ⎪⎭
i, j

{ }
Para linealizar esta expresión se define T= Max t ij + d ij . Entonces la función objetivo del
i, j

problema consiste en la minimización de T. Ahora es necesario introducir como


restricciones del problema la relación existente entre T y las demás variables de decisión, y
puesto que T es su máximo se tiene:

t ij + d ij ≤ T i = 1....4, j = 1...4

15.6. Modelo completo.

Min T
sa:
t ij + d ij ≤ T i = 1....4, j = 1...4

Mδ ijk + t ij ≥ t ik + d ik
M (1 − δ ijk ) + t ik ≥ t ij + d ij

Nβ irj + t ij ≥ t rj + d rj
N (1 − β irj ) + t rj ≥ t ij + d ij

⎧1 Si el lector i - ésimo lee el periódico j antes que el k ⎫


δ ijk = ⎨ ⎬ i = 1...4 , j = 1...3, k = j + 1...4
⎩0 En caso contrario ⎭

⎧ 1 Si el lector i lee el periódico j antes que el lector r ⎫


β irj = ⎨ ⎬ j = 1...4 , i = 1...3, r = i + 1...4
⎩0 En caso contrario ⎭
T ≥ 0, t ij ≥ 0 i = 1...4, j = 1...4

83
Construcción de modelos de Programación Lineal
Equilibrado de cadenas

16. Embalaje de objetos con relaciones de precedencia.

16.1.Descripción.

Una empresa de transporte pretende embalar siete objetos, para ello dispone de siete cajas
(numeradas del 1 al 7) con una capacidad de 17 m3 cada una de ellas.

El grafo de la figura representa en los nodos cada uno de los siete objetos, indicando
encima de éstos el volumen (en m3) requerido por cada uno de ellos. Los arcos representan
relaciones de precedencia a verificar por la ordenación en la que se embalan los objetos en
las cajas. Por ejemplo, para embalar el objeto “2” en la caja “2”, el objeto “1” ha tenido que
ser embalado en las cajas “1” ó “2”.

El problema que se plantea es decidir en qué caja se embala cada objeto, de tal forma que
el número de cajas utilizadas sea lo más pequeño posible. Modele la problemática mediante
programación lineal.
5 4
2 5

1 4 7

12 5 8
3 6

7 6

16.2. Variables.

Para modelar este problema utilizaremos un conjunto de variables binarias que indicarán si
el objeto i-ésimo ha sido embalado en la caja j-ésima. El índice i se reserva para objetos y el
j para las cajas, ambos varían de 1 a 7.

⎧1 Si objeto i - ésimo es asignado a caja j - ésima ⎫


δij = ⎨ ⎬
⎩0 En caso contrario ⎭
Resulta conveniente definir las relaciones de precedencia mediante dos conjuntos de datos
para cada objeto. el primero de ellos denominado A(i) (antes de i), es el conjunto de objetos
que preceden al i-ésimo en el grafo que muestra las precedencias. El conjunto N(i)
contendrá para cada objeto el número de objetos que lo preceden. Así para el grafo de la
figura se tiene:

i A(i) N(i)
1 - 0
2 1 1
3 1 1
4 1,2,3 3
5 1,2,3,4 4
6 1,2,3,4 4
7 1,2,3,4,5,6 6
84
Construcción de modelos de Programación Lineal

Estos conjuntos resultarán de utilidad a la hora de formular las restricciones del problema.

16.3.Restricciones.

16.3.1.Asegurando el embalaje de cada objeto.

En primer lugar, todos los objetos deben ser envasados en alguna de las cajas, por tanto, la
suma de las variables δij extendida al número de cajas debe ser igual a 1 para cada uno de
los objetos.

∑δj =1
ij =1 i = 1...7

16.3.2. Limitación de volumen de las cajas.

Cada una de las cajas tiene un volumen de 17 m3 que no puede ser superado. Por tanto la
suma de los volúmenes de objetos en cada caja debe ser menor que la capacidad de la
caja.
7

∑pδ
i =1
i ij ≤ 17 j = 1...7

16.3.3.Restricciones de precedencia.

Si analizamos la pertenencia del objeto i-ésimo a la caja número s, todos los objetos
precedentes (por tanto pertenecientes al conjunto A(i)) deben haber sido embalados en
cajas que van desde la 1 a la número s incluida ésta. La suma de objetos precedentes debe
coincidir con N(i), si no es así, el objeto i-ésimo no puede ser envasado en la caja número s.
Esta condición se puede establecer mediante la siguiente restricción:

s
N (i ) δ is ≤ ∑ δ kj k ∈ A(i ), s = 1...7
j =1

16.4. Función Objetivo.

La función objetivo consiste en minimizar el número de cajas que se deben usar para
envasar los siete objetos. Para su formulación definimos S como el número máximo de
cajas, con lo cual el objetivo consiste en minimizar S. Es necesario relacionar las variables
binarias del problema con la variable S. Para ello se introduce la siguiente restricción:

7
S ≥ ∑ jδ ij i = 1...7
j =1

Para cada uno de los objetos, S debe ser mayor que el número de caja en que ha sido
embalado, recordemos que sólo una de las δij que aparecen sumadas en la restricción
anterior será igual a 1. El índice j nos índica a que caja pertenece el objeto i-ésimo. Así
pues, el objetivo se reduce a minimizar el número máximo de cajas usadas.

85
Construcción de modelos de Programación Lineal
Min S

16.5. Modelo.

Min S

sa:

∑δj =1
ij =1 i = 1...7

∑pδ
i =1
i ij ≤ 17 j = 1...7

s
N (i ) δ is ≤ ∑ δ kj k ∈ A(i ), s = 1...7
j =1

7
S ≥ ∑ jδ ij i = 1...7
j =1

⎧1 Si objeto i - ésimo es asignado a caja j - ésima ⎫


δij = ⎨ ⎬
⎩0 En caso contrario ⎭

86
Construcción de modelos de Programación Lineal

Técnicas de modelado

17. Regresión lineal.

17.1. Descripción.

Al realizar un conjunto de experimentos se considera una variable independiente x cuyos


valores se fijan voluntariamente, midiendo el resultado del experimento en términos de la
variable dependiente y. Una vez realizados 1º experiencias se han obtenido los siguientes
resultados:

Exp 1 2 3 4 5 6 7 8 9 10
x 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5
y 0.9 0.7 1.5 2.0 2.4 3.2 2 2.7 3.5 1

Se desea efectuar una aproximación cuadrática del tipo y=cx2+bx+a que refleje la relación
funcional entre la variable independiente x y la variable dependiente y, de forma que se
minimice el máximo error absoluto obtenido, teniendo en cuenta los diez experimentos
realizados.

17.2. Discusión.

La figura adjunta muestra de forma esquemática los resultados del conjunto de


experimentos y la aproximación cuadrática, señalando las desviaciones obtenidas.

Aproximación
cuadrática

Desviación

La formulación inicial de este problema responde a un objetivo del tipo MiniMax. Se trata de
minimizar la máxima de las desviaciones en valor absoluto, esto es:

{ { y − (ax
Min Max
i
i i
2
+ bxi + c) }}
Donde a,b y c son las variables a determinar, xi (i=1...10) los valores de la variable
independiente e yi (i=1...10) los valores de la variable dependiente. Los pares (xi,yi) son
datos conocidos como resultado de los experimentos realizados.

87
Construcción de modelos de Programación Lineal
Se trata de una expresión no lineal. La linealización de la misma dará lugar al modelo de
programación lineal deseado. En el apartado 6.7. del presente capítulo se analizó la manera
de tratar expresiones del tipo MiniMax. Para ello se define una variable Z como el máximo
de las expresiones entre valores absolutos.

{
Z = Max yi − (axi + bxi + c)
i
2
}
Ahora la función objetivo será simplemente

Min Z

Y es preciso relacionar Z con los términos entre valores absolutos teniendo en cuenta que al
ser Z su máximo, se debe satisfacer:

yi − (axi + bxi + c) ≤ Z i = 1....10


2

Por tanto el modelo, aún no lineal, que resuelve el problema de aproximación queda:

Min Z
sa:
yi − (axi + bxi + c) ≤ Z i = 1....10
2

a,b,c libres

17.3. Variables.

Al tratarse de variables libres, si se desea tipificar el problema es necesario realizar para


cada una de ellas un cambio de variables, de manera que cada variable libre se obtiene
como diferencia de dos variables positivas.

a = A1 − A2
b = B1 − B 2
c = C1 − C 2
A1, A2, B1, B 2, C1, C 2 ≥ 0

A la hora de modelar linealmente el modelo no es necesario tipificarlo, por tanto, en aras a


una mayor economía de variables, no introduciremos los cambios de variable anteriores.
Además la práctica totalidad de software comercial de optimización trata perfectamente el
caso de variables libres, realizando de forma interna la descomposición indicada.

17.4. Restricciones.

Las restricciones que aparecen en el modelo son no lineales como consecuencia de la


aparición de valores absolutos. Para convertirlas en restricciones lineales es necesario
deshacer los valores absolutos. Para conseguirlo se pueden aplicar dos técnicas:

88
Construcción de modelos de Programación Lineal
A) Consiste en duplicar las restricciones de manera que se cumplan tanto si el contenido del
valor absoluto es positivo como si es negativo, es decir:

yi − (axi + bxi + c) ≤ Z i = 1....10


2

− yi + (axi + bxi + c) ≤ Z i = 1....10


2

B) Deshacer los valores absolutos mediante un cambio de variables, para ello se iguala el
contenido de los valores absoluto a la diferencia de dos variables positivas y se toma el
valor absoluto igual a la suma de dichas variables.-

yi − (axi + bxi + c) = u i − vi i = 1....10


2

u i + vi ≤ Z i = 1...10
ui, vi ≥ 0
a,b,c libres

Este método se basa en que cada par de variables (ui,vi) se corresponde en cada iteración
de la tabla simplex con dos columnas iguales pero con signo contrario, por tanto ui es
básica no puede serlo vi y viceversa. Este es el motivo por el que se sustituye el valor
absoluto por la suma de variables, ya que como máximo sólo una de cada par es positiva,
siendo nula su pareja.

17.5. Modelo 1.

Cada uno de los conjuntos de restricciones anteriores pueden formar el cuerpo del modelo
lineal solicitado, por tanto un primer modelo lineal para el caso propuesto sería:

Min Z
sa:

yi − (axi + bxi + c) ≤ Z i = 1....10


2

− yi + (axi + bxi + c) ≤ Z i = 1....10


2

a,b,c libres

17.6. Modelo alternativo.

Min Z
sa:
yi − (axi + bxi + c) = u i − vi i = 1....10
2

u i + vi ≤ Z i = 1...10
ui, vi ≥ 0
a,b,c libres

89
Construcción de modelos de Programación Lineal
18. Funciones lineales a trozos.

18.1. Descripción del problema.

A) Considérese un problema de optimización en el que la función objetivo depende de una

⎧ 5x 0 ≤ x ≤ 4

f(x) = ⎨ x + 16 4 ≤ x ≤ 10
⎪ 3x - 4 x ≥ 10

variable como muestra la siguiente expresión:


Modele la función objetivo como una expresión lineal entera, incorporando las restricciones
que considere oportunas para un problema de minimización.

B) Considérese el problema de minimización anterior con una nueva función objetivo de la


forma:

⎧ x 0≤x≤4

f(x) = ⎨ 3x - 8 4 ≤ x ≤ 10
⎪ 6x - 38 x ≥ 10

Modelar la función objetivo de forma lineal y continua.


) Qué diferencia existe entre ambos casos ?. ) Cuando y por qué es posible un modelado
continuo de la función ?.

18.2. Formulación del modelo.

18.2.1. Caso A.

18.2.1.1. Variables. 40

⎧ 5x 0 ≤ x ≤ 4

f(x) = ⎨ x + 16 4 ≤ x ≤ 10 26
⎪ 3x - 4 x ≥ 10 20

Puesto que las pendientes de los


diferentes tramos de la función no
siguen un comportamiento 4 5 10
monótono, y dado que se trata de un
problema con objetivo de minimizar, será necesario considerar de forma separada
cada uno de los intervalos de comportamiento diferente. La variable x, se obtendrá
como suma de tres variables continuas x1, x2 y x3. Sólo una de ellas será positiva y
de valor igual a x. Para conseguirlo se emplearán tres variables binarias δ1, δ2 y δ3,
cada una de ellas correspondiente a uno de los intervalos en que está definida ala
función objetivo.

90
Construcción de modelos de Programación Lineal

⎧ 1 si x ∈ intervalo i [i = 1 (0 ≤ x ≤ 4), i = 2 (4 ≤ x ≤ 10), i = 3 (10 ≤ x)]


δi= ⎨
⎩ 0 en otro caso

Cuando δi=0 (i=1,2,3) la variable xi deberá tomar valor cero, además, necesariamente una
de las variables δ valdrá 1.

18.2.1.2. Restricciones.

δ 1+δ 2 +δ 3 = 1

Únicamente una variable δi puede tomar valor 1:


Si δi es cero, la correspondiente xi debe ser nula. En caso contrario estará acotada
por los extremos de su intervalo:

0 ≤ x1 ≤ 4 δ 1
4 δ 2 ≤ x 2 ≤ 10 δ 2
10 δ 3 ≤ x3

La variable x es una de las variables xi. Puesto que únicamente una de ellas es
positiva se tiene

x = x1 + x 2 + x 3

En realidad no es necesario incluirla en el modelo, ya que se entiende que x es igual


al valor de la xi positiva, es decir de la xi correspondiente a la δi = 1. En este caso, si
aparece en otras restricciones del problema se deberá sustituir por la suma de las xi.

18.2.1.3. Función objetivo.

La función objetivo se obtiene como suma de las correspondientes a los distintos


intervalos

Min 5 x1 + ( x 2 + 16 δ 2 ) + ( 3 x3 - 4 δ 3 )

Obsérvese como las constantes aparecen multiplicadas por las correspondientes


variables δi dependiendo del intervalo de que se trate.

18.2.2. Caso B.

18.2.2.1. Variables y restricciones.

91
Construcción de modelos de Programación Lineal

⎧ x 0≤x≤4
⎪ 40
f(x) = ⎨ 3x - 8 4 ≤ x ≤ 10
⎪ 6x - 38 x ≥ 10

22
Como se observa en la figura, la 20
pendiente de los tramos es
creciente. Puesto que el objetivo
del problema consiste en
minimizar, es posible modelar el 4
problema sin necesidad de
variables binarias. 4 5 10 15
Para ello se considera que la variable x se obtiene como suma de x1, x2 y x3, cada
una de ellas >= 0 y acotada por la longitud del correspondiente intervalo de
comportamiento de la función objetivo, es decir.

x = x1 + x 2 + x 3
0 ≤ x1 ≤ 4
0 ≤ x2 ≤ 6
0 ≤ x3

Puesto que las pendientes de las rectas son crecientes, y el objetivo consiste en
minimizar, si es posible (si lo permite el resto de restricciones del problema) la
variable x quedará especificada por el valor de x1. Al diferencia del problema
anterior, es posible que más de una xi sean estrictamente positivas. La variable x
será la suma de las xi. La variable x2 podrá ser >0 únicamente cuando x1 tome su
valor máximo (x1=4).

18.2.2.2. Función objetivo.

El comportamiento creciente de
las pendientes de los diferentes 40
segmentos lineales permite
modelar la variable x de forma
aditiva, y garantiza que si una xi 6
es estrictamente >0 las xj (j<i) 22
necesariamente toman su valor
máximo.
4
Min x1 + 4 x2 + 6 x3 4
1
4 5 10

92
Construcción de modelos de Programación Lineal

Nótese que cada variable xi se ve afectada de un coste unitario igual a la pendiente


correspondiente a su segmento.

18.2.2.3. Modelado alternativo.

En la figura adjunta se han


representado los
diferentes segmentos 40
de la función objetivo
como si de restricciones se
tratara. La región
sombreada representa un
conjunto convexo para 22 la
minimización de f(x). 20
Un modelado alternativo al
descrito para el caso de
pendientes crecientes 4
con objetivo minimizar (o
pendientes 4 5 10 15
decrecientes con
objetivo maximizar) consiste en la minimización (maximización) de una nueva
variable Z que debe ser mayor que cada una de las rectas descritas por los
diferentes segmentos de la función objetivo. Así pues, se podría solventar el
problema mediante el siguiente modelado:

Min Z

sa :

Z≥x
Z ≥ 3x - 8
Z ≥ 6x - 38

Z ≥0

Cada segmento de la función objetivo original se convierte en una restricción que se


añade al resto de restricciones del problema.

93

También podría gustarte