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 Modelos en Programación Matemática. Matemática. .......................................................... ............................ ...........................................4 .............4 X.3. Construcción de un modelo lineal................................................................................4 X.4. Programación lineal entera. ........................................................... ............................. ........................................................... ...............................5 ..5 X.5. El uso habitual habitual de las variables variables enteras. enteras. ........................................................ .......................... ...........................................5 .............5 X.6. Algunas relaciones frecuentes. ....................................................... ......................... ........................................................... .............................66 X.6.1. Relaciónes entre una variable variable continua y una variable auxiliar..........................6 auxiliar................ ..........6 X.6.2. Uso de variables auxiliares en el modelado modelado de costes de setup. setup. .......................7 ....................... 7 X.6.3. Uso de variables variables auxiliares para activar activar o desactivar 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 ........14 X.6.8. Regiones no convexas............................. convexas. .......................................................... ........................................................... ...............................14 ..14 CASOS ........................................................... .............................. ........................................................... ........................................................... .........................................17 ............17 Planificación .......................................................... ............................ ........................................................... ...........................................................17 ..............................17 1. Plan de incorporaciones en un servicio de urgencias..........................................17 2. Elaboración Elaboración de pizzas en en hora punta. ........................................................ ........................... .........................................23 ............23 3. Programación de una cadena de televisión...........................................................28 4. Planificación Planificación de una explotación explotación minera minera .......................................................... ............................. ..................................32 .....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 Asignación de alumnos a institutos ........................................................ .......................... .............................................48 ...............48 8. Reparto de trabajos..................................................................................................52 9. Red de comunicaciones de ordenadores...............................................................55 Cobertura ........................................................... ............................ ............................................................. ............................................................... .................................60 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 ..............69 Distribución .......................................................... ............................ ........................................................... ............................................................73 ...............................73 14. Planificación de la distribución de un producto..................................................73 Secuenciación ........................................................ ........................... ........................................................... ..........................................................81 ............................81 15. Periódicos ......................................................... ............................ ........................................................... ......................................................81 ........................81 Equilibrado de cadenas...................................................................................................84 16. Embalaje de objetos con relaciones de precedencia.................. precedencia.......................................... ........................84 84 Técnicas de modelado.....................................................................................................87 17. Regresión lineal......................................................................................................87 18. Funciones lineales a trozos...................................................................................90
2
CAPÍTULO X MODELADO DE PROBLEMAS LINEALES X.1. Introducción....................................................................................................................3 X.2. Modelos Modelos en Programación Matemática. Matemática. .......................................................... ............................ ...........................................4 .............4 X.3. Construcción de un modelo lineal................................................................................4 X.4. Programación lineal entera. ........................................................... ............................. ........................................................... ...............................5 ..5 X.5. El uso habitual habitual de las variables variables enteras. enteras. ........................................................ .......................... ...........................................5 .............5 X.6. Algunas relaciones frecuentes. ....................................................... ......................... ........................................................... .............................66 X.6.1. Relaciónes entre una variable variable continua y una variable auxiliar..........................6 auxiliar................ ..........6 X.6.2. Uso de variables auxiliares en el modelado modelado de costes de setup. setup. .......................7 ....................... 7 X.6.3. Uso de variables variables auxiliares para activar activar o desactivar 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 ........14 X.6.8. Regiones no convexas............................. convexas. .......................................................... ........................................................... ...............................14 ..14 CASOS ........................................................... .............................. ........................................................... ........................................................... .........................................17 ............17 Planificación .......................................................... ............................ ........................................................... ...........................................................17 ..............................17 1. Plan de incorporaciones en un servicio de urgencias..........................................17 2. Elaboración Elaboración de pizzas en en hora punta. ........................................................ ........................... .........................................23 ............23 3. Programación de una cadena de televisión...........................................................28 4. Planificación Planificación de una explotación explotación minera minera .......................................................... ............................. ..................................32 .....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 Asignación de alumnos a institutos ........................................................ .......................... .............................................48 ...............48 8. Reparto de trabajos..................................................................................................52 9. Red de comunicaciones de ordenadores...............................................................55 Cobertura ........................................................... ............................ ............................................................. ............................................................... .................................60 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 ..............69 Distribución .......................................................... ............................ ........................................................... ............................................................73 ...............................73 14. Planificación de la distribución de un producto..................................................73 Secuenciación ........................................................ ........................... ........................................................... ..........................................................81 ............................81 15. Periódicos ......................................................... ............................ ........................................................... ......................................................81 ........................81 Equilibrado de cadenas...................................................................................................84 16. Embalaje de objetos con relaciones de precedencia.................. precedencia.......................................... ........................84 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. estándar. Esta característica es común común al caso de numerosos numerosos modelos usados 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 sus propósitos. Sus críticas 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
Variables auxiliares
Cantidades indivisibles Variables binarias directamente relacionadas con la toma de decisiones. (Construir o no un almacén, ampliar capacidad, etc...) 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 x ij
j
≤ bi
j =1
donde los coeficientes a ij representan el consumo unitario que cada actividad x j (∃0) supone sobre cierto recurso i, limitado de forma global por una disponibilidad de b i 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
∑ a x
α = 1 ⇒
ij
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- ∀). m
∑ a x ij
≤ bi + M (1 − α )
j
j =1
De esta forma cuando la variable auxiliar toma el valor 1 el termino de la derecha queda reducido a b i. Por otra parte, cuando ∀=0, la restricción resultante es m
∑ a x ij
j
≤ bi + M
j =1
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 Supongamos ahora que deseamos modelar el caso contrario, es decir, la variable auxiliar ∀ debe tomar valor unitario cuando se satisface la restricción. m
∑ a x ij
j
≤ bi ⇒ α = 1
j =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 l a 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 ξ + bi
m
− ∑ aij x j ≥ 0 ⇒ α = 1 j =1
y la formulación de la restricción pasa a ser ξ + bi
m
− ∑ 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
− ∑ aij x j
bi
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 m
∑ a x ij
j
≥ bi
j =1
cuando una variable auxiliar ∀ tome valor 1. Como en otras ocasiones mostramos la implicación que se desea modelar: α = 1 ⇒
m
∑ a x ij
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: m
∑ a x ij
≥ bi − m(1 − α )
j
j =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 x ij
j
≥ bi ⇒ α = 1
j =1
Resultando una restricción del tipo: 9
Construcción de modelos de Programación Lineal ξ +
m
∑ a x ij
j
− bi ≤ ( M + ξ )α
j =1
m
donde M es la mayor cota superior para el término
∑ a x ij
j
− bi .
j =1
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 (x k,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: x =
n
∑ x λ
k k
k =1
y =
n
∑ f ( x )λ k
k
k =1
n
∑ λ = 1 k
k =1
Siendo 8k un conjunto de pesos que multiplican a los pares (x k,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). 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 λ 2 ≤ γ 1 + γ 2 λ 3 ≤ γ 2 + γ 3 λ 1
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
= ∑ z k k =1
Cada una de estas variables zk continuas se acota dentro de su intervalo (x k,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.
≤ z1 ≤ x 2δ 1 x 2δ 2 ≤ z 2 ≤ x3δ 2 x1δ 1 M
x n −1δ n −1 n −1
∑ δ
≤ z n −1 ≤ x nδ n −1
=1
k
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 (x s,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: y
= f ( x s ) +
f ( x s +1 ) − f ( x s ) x s +1 − x s
( x − x s )
es decir y
=
f ( x s +1 ) − f ( x s ) x s +1 − x s
x + f ( x s ) −
11
f ( x s +1 ) − f ( x s ) x s +1 − x s
x s
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 ) ⎞ ⎛ f ( x s +1 ) − f ( x s ) ⎞ ⎜ ⎟ ⎜ ⎟⎟ δ s + − y = ∑ ⎜ z f x ( ) ∑ s s ⎟ ⎜ x s +1 − x s x s +1 − x s s =1 ⎝ s =1 ⎝ ⎠ ⎠ n −1
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 n
∑ a x
j
≤b
j
≤ d
j
j =1 n
∑ c x j
j =1
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. n
∑ a x
j
≤ b + M 1 (1 − δ )
j
≤ d + M 2δ
j
j =1 n
∑ c x j
j =1
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 M 2 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 M 1 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 0 1 0 1
δ2 0 0 1 1
φ 0 1 0 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 } i =1...N
Evidentemente, las variables t i (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 t i. 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 t i. Puesto que Z es el máximo de ellas, bastará escribir: t i ≤ 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 ≤ t i
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 Región admisible cuando x1≤1
x2
½ 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 x 1 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 simil ar 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 N 1 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 (-x 1 + ½ 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 N 2 y M 2 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 X i (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.
x i-7, j
x i-5, j
Incorporaciones j=3,4,5 j=3,4,5 hasta la hora x i-8, j x i-6, j i-ésima j=3,4,5
j=3,4,5
x i-3, j
x i-1, j
j=3,4,5
j=3,4,5
x i-4, j
x i-2, j
x i, j
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
x i-3, 3 x i-4, 4 x i-5, 5
Descansan durante la hora i-ésima
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
5
∑ ∑ X
kj
-
X i -3,3
-
X i -4,4
-
X i-5,5
≥
d i
∀i = 8,...,23
k =i -8 j=3
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
kj
-
X i -3,3
-
-
X i -4,4
X i -5,5
≥
d i
∀i
= 8,...,31
k =i - 8 j=3
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 ≤ ij
M
i=0 j=3
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
∑∑c
MIN
i
X ij
i=0 j=3
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
∑∑c
MIN
i
X ij
i=0 j=3
i
5
∑ ∑ X
kj
-
X i-3,3
-
X i -4,4
-
X i -5,5
≥
d i
∀i
= 8,...,31
k =i - 8 j=3
X sj
=
X kj
s = 0,...,7 ; k = 24,...,31 ; j = 3,4,5 23
5
∑ ∑ X
ij
≤
M
i=0 j=3
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
MIN
5
∑∑c
X ij
i
i=0 j=3
i
5
∑ ∑ X
kj
-
X i -3,3
-
X i -4,4
-
X i -5,5
≥
d i
i = 8,...,15
-
X i-3,3
-
X i -4,4
-
X i -5,5
≥
d i
i = 5,...,7
k =i - 8 j=3 i
5
∑ ∑ X
kj
k =0 j=3
i
5
∑ ∑ X
-
kj
-
X i -3,3
X i -4,4
≥
≥
d i
d i
i = 4
k =0 j=3
i
5
∑ ∑ X
-
kj
X i -3,3
i = 3
k =0 j=3
i
5
∑ ∑ X
kj
≥
d i
i = 0,..,2
k =0 j=3
X ij
=
X ij*
i = 16,...,23 ; j = 3,4,5
23
5
∑ ∑ X
ij
≤
M
i=0 j=3
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, T 1A, 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 1 2 3 4
Tipo de Pizza A A B C
Horno 1 2 1 2
y j=1.....NP, siendo NP el número de bases de pizzas disponibles, NP demanda conocida de D pizzas en hora punta.
D para una
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. 4
∑ δ
ij
=1
∀ j = 1.... NP
i =1
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
∑∑ δ
ij
≥ 0.5 D
i =1 J =1
Pizzas tipo B NP
∑ δ
3 j
≥ 0.3 D
J =1
Pizzas tipo C NP
∑δ
4 j
≥ 0.2 D
J =1
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 t1A tB t2A tC
Horno 1 Horno 2 NP
∑ (t δ 1 A
1 j
+ t 2 Aδ 2 j + t Bδ 3 j + t C δ 4 j ) ≤ 60
j =1
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
Min
4
∑∑ δ
ij
j =1 i =1
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,3 D ⎤
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 1 2 3 4
Tipo de Pizza A A B C 26
Horno 1 2 1 2
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
∑∑ δ
ij
2 NP1
∑∑ γ
≤1
≤1
ij
i =1 j =1
i =1 j =1
2.4.2.2. Satisfacción de la demanda de cada tipo de pizza.
Pizzas tipo A NP1
NP 2
∑ δ + ∑γ 1 j
J =1
2 j
≥ 0.5 D
j =1
Pizzas tipo B NP1
∑δ
3 j
≥ 0.3 D
4 j
≥ 0.2 D
J =1
Pizzas tipo C NP 2
∑ γ
J =1
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... NP2
2.4.3. Función Objetivo.
El objetivo consiste en minimizar el número total de pizzas elaboradas: NP1
Min
NP 2
∑∑ δ + ∑∑ γ ij
i =1, 3 j =1
27
ij
i = 2 , 4 j =1
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 1 3 2 4 3 3 4 1 5 1 6 2 7 1 8 2 9 1 10 1
P1 P2 P3 P4 P5 P6 P7 P8 P9 P10
Tabla 2 Hora Audiencia 1 500000 2 450000 3 400000 4 450000 5 450000 6 500000 7 550000 8 550000
H 33 56 76 87 21 16 76 10 25 44
H 20 45 12 28 32 19 14 8 34 54
Tabla 3 H H 40 50 32 23 23 43 25 24 43 54 21 23 24 28 9 11 33 36 56 76
28
H 60 25 56 34 65 25 65 12 37 87
H 21 78 76 54 76 32 45 15 56 76
H 19 90 34 74 56 34 34 23 45 65
H 14 21 23 33 34 35 90 24 34 54
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 J Ai Dj Cij
Horas de programación (i=1...8) Programa a emitir (j=1...10) Audiencia total correspondiente a la hora i-ésima Duración del programa j-esimo
3.2.2. Variables.
Para modelar el problema usaremos dos conjuntos de variables binarias, tal y como se definen a continuación. δ ij
β ij
⎧1 Si el programa j - ésimo comienza su emisión durante la hora iésima ⎫ =⎨ ⎬ 0 En otro caso ⎩ ⎭ ⎧1 Si la hora i - ésima está cubierta por la emisión del programa j - ésimo⎫ =⎨ ⎬ ⎩ 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. 8
∑ δ
ij
≤1
j
i =1
29
= 1...10
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
∑ β
ij
=1
i
= 1...8
j =1
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: D j δ ij
≤
i + D j −1
∑ β
kj
i
= 1...(8 − D j + 1) ; j = 1...10
k = i
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 ⎝ i =1 ⎠ i =i
j
= 1...10
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.
⎛ 10 ⎞ ⎜ ⎟ c β ∑ ∑ ij ij ⎟ ⎜ i =1 100 ⎝ j =1 ⎠ 8
Max
Ai
30
Construcción de modelos de Programación Lineal 3.2.5. Modelo del caso.
⎛ 10 ⎞ ⎜ ⎟ c β ∑ ∑ ij ij ⎟ ⎜ 100 i =1 ⎝ j =1 ⎠ 8
Max
sa: 8
∑ δ
Ai
≤1
ij
j
= 1...10
i =1
D j δ ij
≤ 8 − i +1 10
∑ β
ij
i
=1
= 1...8; j = 1...10 i
= 1...8
j =1
D j δ ij
≤
i + D j −1
∑ β
kj
i
= 1...(8 − D j + 1) ; j = 1...10
k = i
⎛ 8 ⎞ 8 D j ⎜ ∑ δ ij ⎟ ≤ ∑ β ij ⎝ i =1 ⎠ i =i
δ ij
β ij
j
= 1...10
⎧1 Si el programa j - ésimo comienza su emisión durante la hora iésima ⎫ =⎨ ⎬ ⎩ 0 En otro caso ⎭ ⎧1 Si la hora i - ésima está cubierta por la emisión del programa j - ésimo⎫ =⎨ ⎬ ⎩ 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
1
0.95
1
0.9
2
0.7
2
0.8
3
0.99
3
0.85
4
0.5
4
0.6
5
0.95
Tabla 3
Calidad exigida
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 γ it =
⎧ 1 Si la compañia tiene o adquiere ⎫ ⎪ ⎪ ⎨ derecho de explotacion para la mina i en el año t ⎬ ⎪ 0 En otro caso ⎪ ⎩ ⎭
δ it =
⎧ 1 Si la compañia extrae mineral ⎫ ⎪ ⎪ ⎨ 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
≤
i = 1 , ... , 4 ; t = 1 , ... , 5
γ it
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
∑ δ ≤ it
3
i=1
34
t = 1 , ... , 5
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
≤
i = 1 , ... , 4 ; t = 1 , ... , 5
Ci δ it
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. 4
∑
X it
≥
t = 1 , ... , 5
dt
i=1
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. 4
∑Q
i
Xit
≥
Qt d t
t = 1 , ... , 5
i=1
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
∑Q
i
i=1
Xit
≥
4
Qt
∑X
it
i =1
36
t = 1 , ... , 5
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
Min
5
∑ ∑R
it
γ it
i=1 t =1
donde Rit se puede expresar en función del royalty del primer año t -1
R it = R i1 ( 1.1 )
t = 1 , ... , 5
4.2.5.- Modelo. 4
Min
5
∑ ∑R
it
γ it
i=1 t =1
sa: δ it
≤
γ it
i = 1 , ... , 4 ; t = 1 , ... , 5
37
Ri1
Construcción de modelos de Programación Lineal 4
∑ δ
it
≤
3
t = 1 , ... , 5
i=1
γ i t +1 X it
≤ ≤
i = 1 , ... , 4 ; t = 1 , ... , 5
γ it
i = 1 , ... , 4 ; t = 1 , ... , 5
Ci δ it 4
∑ X
≥
it
t = 1 , ... , 5
dt
i=1
4
∑Q
i
4
≥
Xit
Qt
i=1
∑X
it
t = 1 , ... , 5
i =1
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:
4
∑ X
it
- E t =
dt
t = 1 , ... , 5
i=1
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:
⎡ Min ∑ ⎢ i=1 ⎣ 4
5
∑(
R it γ it - m E t
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.5.2.3.2.5.2.3.3.5.2.3.4.-
-
Limitaciones en el presupuesto para la compra de aviones. Limitación en el presupuesto de mantenimiento Limitaciones en la capacidad de mantenimiento de los aviones 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) Mantenimiento (u.m.)
38 A + 45 B + 42 M # 800 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.) Mantenimiento (días)
3000 A + 4200 B + 2750 M # 75000 - 1000 δ 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 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 5.4.-
B ≤ 18 αB
M ≤ 28 αM
El modelo completo.
F. Objetivo:
Maximizar
280 A + 350 B + 300 M
Restricciones Compra (u.m.): Mantenimiento (días): Mantenimiento (u.m.):
3000 A + 4200 B + 2750 M # 75000 - 1000 δ 38 A + 45 B + 42 M # 800 + 450 δ 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 A ≤ 25 αA
B ≥ 2 αB
M ≥ 2 αM
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
1 2 3 4
Alumnos de 8º de E.G.B. por comunidad A B 300 100 400 200 300 500 900 900 Total de alumnos de E.G.B.
Distancia media a los institutos 1 1,2 2,6 0,7 1,8 600
2 3 1,5 3,3 4,0 5,5 1,1 2,8 1,3 2,0 800 500 Capacidad del instituto
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 todos los alumnos x + x + x 21 22 23
400
x 31 + x 32 + x 33
500
Capacidad de institutos Signo variables
400
x 41 + x 42 + x 43 500 x 11 + x 21 + x 31 + x 41 600 x 12 + x 22 + x 32 + x 42
800
x 13 + x 23 + x 33 + x 43 500 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
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
100 50
p
100 50
p
100
x 11 + x 21 + x 31 + x 41
x 12 + x 22 + x 32 + x 42
x 13 + x 23 + x 33 + x 43
3 4 3 4 3 4
x 11 + 1 x 21 +
x 12 + 1 x 22 +
x 13 + 1 x 23 +
2 5 2 5 2 5
x 31
x 32
x 33
50 + p 100 50 + p 100 50 + p 100
x 11 + x 21 + x 31 + x 41
x 12 + x 22 + x 32 + x 42
x 13 + x 23 + x 33 + x 43
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 todos los alumnos x + x + x 21 22 23
400
x 31 + x 32 + x 33
500
Capacidad de institutos Equilibrado de comunidad A en instituto 1
x 41 + x 42 + x 43 500 x 11 + x 21 + x 31 + x 41 600 x 12 + x 22 + x 32 + x 42
800
x 13 + x 23 + x 33 + x 43 3 2 x 11 + 1 x 21 + x 31 4 5
500 50 + p
3
Equilibrado de comunidad A en instituto 2
400
4 3 4 3 4
x 11 + 1 x 21 + x12 + 1 x 22 + x12 + 1 x 22 +
2 5 2 5 2 5
x 31 x 32 x 32
100 50
p
100 ⎛ 50 + p ⎞
x 11 + x 21 + x 31 + x 41 x 11 + x 21 + x 31 + x 41
≤⎜ ⎟( x12 + x 22 + x 32 + x 42 ) ⎝ 100 ⎠ 50 − p ⎞ ≥ ⎛ ⎜ ⎟( x12 + x 22 + x 32 + x 42 ) ⎝ 100 ⎠
50
Construcción de modelos de Programación Lineal
Equilibrado de comunidad A en instituto 3
3 4 3
Signo de variables
x 13 + 1 x 23 + x 13 + 1 x 23 +
2 5 2
x 33 x 33
50 + p 100 50
x 13 + x 23 + x 33 + x 43
p
x 13 + x 23 + x 33 + x 43 4 5 100 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
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) =1,...,m Parámetros p j tij
alumnos ca ítulos número de problemas del capítulo j 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 Restricciones Realización de todos los problemas de todos los capítulos Tiempo de trabajo invertido por cada alumno
Min u max n
x ij
1
j
i 1 m
t ij p j x ij
ui
i
j 1
Definición de tiempo del alumno que más trabaja
ui
u max
Signo de las variables
x ij
0
u max
i i, j
ui
0
i
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
ui
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 Restricciones Realización de todos los problemas de todos los capítulos Tiempo de trabajo invertido por cada alumno Definición de tiempo del alumno que más trabaja
Min u max n
x ij
1
j
i 1 m
t ij p j x ij
ui
i
j 1
ui
u max
i
ui
i
Definición de tiempo del alumno que menos trabaja u min Signo de las variables
u min
x ij
0
u max , u min
i, j
ui
0
i
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: δ ij
⎧1 Si la taraea i es asignada al procesador j⎫ =⎨ ⎬ ⎩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 r s = max {r k } , 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: N
∑ r δ i
ij
≤ R
∀ j = 1....β
i =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: β
∑ δ
ij
=1
∀i = 1.... N
j =1
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 γ ij
ij
i =1 j = i +1
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 0 1 0 1
kj
ik
0 0 1 1
0 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 ⎫ ⎬ δ ij + (1 − δ kj ) ≤ 1 + γ ij ⎭
i = 1.... N − 1, k = i + 1.... N , j
= 1..... β
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 γ ij
ij
i =1 j = i +1
sa: N
∑ r δ
ij
≤ R
ij
=1
i
∀ j = 1....β
i =1
β
∑ δ
∀i = 1.... N
j =1
(1 − δ ij ) + δ kj
≤ 1 + γ ij ⎫ ⎬ δ ij + (1 − δ kj ) ≤ 1 + γ ij ⎭
δ ij
i = 1.... N − 1, k = i + 1.... N , j
= 1..... β
⎧1 Si la taraea i es asignada al procesador j⎫ =⎨ ⎬ ⎩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 l a 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
∑ r x + ∑ r x i
i =1
ik
i
ik
≤ R − r k
k = 1..... N
i = k +1
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 x rk 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
⎪ = 1 + 1... N − 1 xik + xrk ≤ 1 + xir ⎪ ⎭ r = j + 1...... N xir + xrk ≤ 1 + xik ⎬ j
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 (1 − γ ) ij
ij
i =1 j =i +1
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 (1 − γ ) ij
ij
i =1 j =i +1
sa: k −1
N
∑ r x + ∑ r x i
ik
i =1
i
ik
≤ R − r k
k = 1..... N
i = k +1
xir + xik ≤ 1 + xrk ⎫ i = 1..... N − 2
⎪ = 1 + 1... N − 1 xik + xrk ≤ 1 + xir ⎪ ⎭ r = j + 1...... N xir + xrk ≤ 1 + xik ⎬ j
⎧ 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 N ( N − 1)
Restricciones N ( N − 1) β + N + β
+ β N
2 N ( N − 1)
N ( N − 1)( N − 2)
2
2
+ N
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: δ j
⎧1 Si se ubica un guardia en la puerta j - ésima ⎫ =⎨ ⎬ ⎩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 δ ij
j
≥1
i
= 1....11
j =1
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 δ ij
j
≥1
i
= 1....11
j =1
δ j
⎧1 Si se ubica un guardia en la puerta j - ésima ⎫ =⎨ ⎬ 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: δ j
⎧1 Si se ubica un guardia en la puerta j - ésima ⎫ =⎨ ⎬ ⎩0 Si no se ubica un guardia en la puerta j - ésima ⎭
β k
⎧1 Si se ubica un guardia en la sala k - ésima ⎫ =⎨ ⎬ ⎩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 δ ij
j
+ β i = 1
i = 1....11
j =1
La función objetivo será entonces 14
Min
∑ δ
11
j
j =1
+ M ∑ β k 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 1 2 3 4 5 6 7 8 9 10 11 12
ÁREA DEL ESTADIO 1, 3, 4, 6, 7 8, 4, 7, 12 2, 5, 9, 11, 13 1, 2, 18, 19, 21 3, 6, 10, 12, 14 8, 14, 15, 16, 17 18, 21, 24, 25 2, 10, 16, 23 1, 6, 11 20, 22, 24, 25 2, 4, 6, 8 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
1 1 0 1 1 0
2 0 0 0 1 0
3 0 1 0 0 1
4 1 1 0 0 0
5 0 0 1 0 0
6 0 0 0 0 0 63
7 0 0 0 0 0
8 0 1 0 0 0
9 1 0 0 0 0
10 0 0 0 0 0
11 0 1 0 1 0
12 1 0 0 0 0
Construcción de modelos de Programación Lineal
1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0
1 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 1
0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0
1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 1
1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 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: δ j
⎧ 1 Si se ubica una cámara en la localización j - ésima ⎫ =⎨ ⎬ ⎩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 δ ij
j
≥2
i
= 1,2
≥1
i = 3....25
j =1
12
∑ a δ ij
j
j =1
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 δ ij
j
≥2
i
= 1,2
≥1
i = 3....25
j =1
12
∑ a δ ij
j
j =1
δ 9 δ j
=1
⎧ 1 Si se ubica una cámara en la localización j - ésima ⎫ =⎨ ⎬ ⎩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 (a i, 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 i=1,...,n
( | X -
ai | + | Y - bi |
) ⎤⎥ ⎦
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 i=1,...,n
( | X -
ai | + | Y - bi |
)
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 - ai | + | 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 - 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 - 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 - X + Y - Z ≤ - ai + bi X - Y - Z ≤ ai - bi - X - Y - Z ≤ - ai - bi X, Y, Z
67
i = 1,..., n i = 1,..., n i = 1,..., n i = 1,..., n
libres
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
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 ⎫ ⎪ ⎪ la localizaci n j Y j = ⎨ ⎬ ⎪ ⎪ 0 En otro caso ⎩ ⎭
X ij =
⎧1 ⎪ ⎨ ⎪ ⎩
Si el distrito i es asignado ⎫ 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: N
∑ Y
≤
j
B
j=1
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 N
∑ X
ij
=
1
i = 1 , ... , M
j=1
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 X ≤
i = 1 , ... , M
U
ij
ij
j=1
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: N
∑ Y
≤
j
B
j=1
N
∑ X
ij
=
1
i = 1 , ... , M
j=1
X ij
≤
Y j
i = 1 , ... , M ; j = 1 , ... , N
71
Construcción de modelos de Programación Lineal N
∑ d X ≤ ij
ij
i = 1 , ... , M
U
j=1
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:
M
∑ X
ij
≤
M
Y j
i=1
72
j = 1 , ... , N
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 .
F1
A1
A2
A3
A4
0,5
0,5
1
0,2
0,3
0,5
0,8
F2
Tabla 3
Z1 F1
1
F2
2
A1 A2
1
Z2
Z3
Z4
2
2
6
0,5
1,5
1,5
1
0,5
1
1
A3
2
A4
0,2
1,5
73
1,5
Z5
Z6
0,5 0,5
1,5
0,5
1,5
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: 4
∑ X
ij
+
j=1
6
∑ Y ≤ ik
i = 1 , 2
C i
k =1
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 4
∑ X
ij
-
i=1
6
∑ Z ≤ jk
CA j
j = 1 , ... , 4
k =1
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: 4
∑ X
ij
i=1
-
6
∑ Z ≤ jk
CA j
k =1
75
-
Io j
j = 1 , ... , 4
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: 2
∑ X
ik
+
i=1
4
∑ Z ≥ D jk
k
k = 1 , ... , 6
j=1
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
Min
4
∑ ∑ C
ij
2
X ij
i=1 j=1
6
+ ∑ ∑ C ik ′
Y ik
+
i=1 k =1
4
6
∑ ∑ C ″ Z jk
jk
j=1 k =1
Siendo Cij, C=ik y C@jk los costes asociados a los desplazamientos fábrica-almacén, fábricazona y almacén-zona respectivamente, cuyos valores aparecen en las tablas 3 y 4. 14.2.5. Modelo completo. 2
Min
4
∑ ∑ C
ij
2
X ij
i=1 j=1
+ ∑ ∑ C ik ′
Y ik
i=1 k =1
4
∑ X
ij
j=1
6
+
+
4
6
∑ ∑ C " jk
j=1 k =1
6
∑ Y ≤ ik
k =1
sa: 76
C i
i = 1 , 2
Z jk
Construcción de modelos de Programación Lineal 4
∑ X
ij
-
i=1
6
∑ Z ≤ jk
CA j
-
Io j
j = 1 , ... , 4
k =1
2
∑ X
ik
i=1
+
4
∑ Z ≥ D jk
k
k = 1 , ... , 6
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 δ2: Tomará valor 1 si δ3: Tomará valor 1 si δ4: Tomará valor 1 si δ5: Tomará valor 1 si
se decide abrir el almacén M1. Cero en caso contrario. se decide abrir el almacén M2. Cero en caso contrario. se mantiene abierto el almacén A3. Cero en caso contrario. se mantiene abierto el almacén A4. Cero en caso contrario. 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. 2
∑ X ≤ 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. 6
∑ Z ≤ 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: 2
∑ X
is
≤
2
δ s
i=1
∑ C i
s = 1 , 2, 3 , 4 (M1 , M2 , A3 , A4)
i=1
En el segundo caso se puede usar la suma de todas las demandas como cota para las restricciones: 6
∑ Z ≤ sk
k =1
6
δ 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. 4
∑ X
ij
6
∑ Z ≤
-
jk
i=1
-
CA j
j = 1 , 3 ,... , 6
Io j
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: 4
∑ X
6
∑ Z ≤
-
i2
+
CA2
2k
i=1
δ 2
Δ CA - Io 2
j
j = 1 , 3 ,... , 6
k =1
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
Min
4
2
∑ ∑ C
+ ∑ ∑ C ik ′
X ij
ij
6
i=1 j=1
+
Y ik
i=1 k =1
( 6 x 10 6 ) δ 2
4
6
∑ ∑ C " jk
Z jk
+ ( 12 x 10 6 ) δ + 1
j=1 k =1
- ( 10 x 10 6 ) δ - ( 5 x 10 6 ) δ + ( 3 x 10 6 ) δ 3
2
5
14.7. Modelo mejorado. 2
Min
4
2
∑ ∑ C
X ij
ij
i=1 j=1
6
+ ∑ ∑ C ik ′
Y ik
+
i=1 k =1
( 6 x 10 6 ) δ 2
4
∑ X
ij
4
6
∑ ∑ C " jk
Z jk
+ ( 12 x 10 6 ) δ + 1
j=1 k =1
- ( 10 x 10 6 ) δ - ( 5 x 10 6 ) δ +( 3 x 10 6 ) δ 3
2
6
∑ Z ≤
-
jk
i=1
-
CA j
5
j = 1 , 3 ,... , 6
Io j
k =1
sa: 4
∑ X
-
i2
i=1
∑ Z ≤ CA + δ Δ CA - Io j = 1 , 3 ,... , 6 ≤ δ ∑ C s = 1 , 2, 3 , 4 (M1 , M2 , A3 , A4) 2k
2
2
k =1
2
∑ X
is
i=1
6
2
s
i
i=1
79
2
j
Construcción de modelos de Programación Lineal 6
∑ Z ≤ sk
6
∑ D
δ s
k =1
s = 1 , 2, 3 , 4 (M1 , M2 , A3 , A4)
k
k =1
δ 1 + δ 2 + δ 3 + δ 4 4
∑ X
ij
∑ X
ik
i=1
2
6
∑ Y ≤
+
ik
j=1
2
≤
C i
i = 1 , 2
k =1
+
4
∑ Z ≥ D jk
k
k = 1 , ... , 6
j=1
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 Lector 1 Lector 2 Lector 3 Lector 4
El País 20' 10' 5'
ABC
El Correo
Diario 16
5' 10' 15' 10'
10' 15' 20'
15' 10' 10' 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 ik + d ik
t ij 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 i δ jk
⎧1 Si el lector i - ésimo lee el periódico j antes que el k ⎫ =⎨ ⎬ ⎩0 En caso contrario ⎭
i
= 1...4 , j = 1...3, k = j + 1...4
en este caso, las restricciones de no simultaneidad en la lectura de dos periódicos se pueden escribir como: i M δ jk + t ij
≥ t ik + d ik
M (1 − δ jk ) + t ik i
≥ 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: β jir
⎧ 1 Si el lector i lee el periódico j antes que el lector r ⎫ =⎨ ⎬ ⎩0 En caso contrario ⎭
j
= 1...4 , i = 1...3, r = i + 1...4
Las restricciones de no simultaneidad de lectores se escriben entonces de la siguiente 82
Construcción de modelos de Programación Lineal
forma: ir N β j + t ij
≥ t rj + d rj
N (1 − β j ) + t rj ir
≥ 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
i M δ jk + t ij
= 1....4, j = 1...4
≥ t ik + d ik
M (1 − δ jk ) + t ik i
ir
N β j
+ t ij ≥ t rj + d rj
N (1 − β j ) + t rj ir
i
δ jk
β jir
≥ t ij + d ij
≥ t ij + d ij
⎧1 Si el lector i - ésimo lee el periódico j antes que el k ⎫ =⎨ ⎬ ⎩0 En caso contrario ⎭
i
= 1...4 , j = 1...3, k = j + 1...4
⎧ 1 Si el lector i lee el periódico j antes que el lector r ⎫ =⎨ ⎬ 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 m 3 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 m 3) 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
12
7
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.
δ ij
⎧1 =⎨ ⎩0
Si objeto i - ésimo es asignado a caja j - ésima ⎫
⎬ ⎭
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 1 2 3 4 5 6 7
A(i) 1 1 1,2,3 1,2,3,4 1,2,3,4 1,2,3,4,5,6
N(i) 0 1 1 3 4 4 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. 7
∑ δ
i j
j =1
=1
i = 1...7
16.3.2. Limitación de volumen de las cajas.
Cada una de las cajas tiene un volumen de 17 m 3 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
ij
≤ 17
j
= 1...7
i =1
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
Min
S
16.5. Modelo.
sa: 7
∑ δ
i j
j =1
7
∑ p δ i
ij
=1 ≤ 17
i = 1...7
j
= 1...7
i =1
s
N (i ) δ is
≤ ∑ δ kj
k ∈ A(i ), s
= 1...7
j =1
7
S
≥ ∑ jδ ij
i
= 1...7
j =1
δ ij
⎧1 =⎨ ⎩0
Si objeto i - ésimo es asignado a caja j - ésima ⎫ 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 x 0 y 0.9
2 0.5 0.7
3 1 1.5
4 1.5 2.0
5 2 2.4
6 2.5 3.2
7 3 2
8 3.5 2.7
9 4 3.5
10 4.5 1
Se desea efectuar una aproximación cuadrática del tipo y=cx 2+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.
y Aproximación cuadrática Desviación
x 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: Min Max y i i
− (axi 2 + bxi + c)
Donde a,b y c son las variables a determinar, x i (i=1...10) los valores de la variable independiente e y i (i=1...10) los valores de la variable dependiente. Los pares (x i,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
2
i
+ bxi + c)
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
2
+ bxi + c) ≤ Z
i
= 1....10
Por tanto el modelo, aún no lineal, que resuelve el problema de aproximación queda: Min Z
sa: yi − ( axi
2
+ bxi + c) ≤ Z
i
= 1....10
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
= C 1 − C 2
A1, A2, B1, B 2, C 1, 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 − yi + (axi 2 + bxi + c) ≤ Z 2
i
= 1....10 i = 1....10
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 u i + v i ≤ Z i = 1...10 ui, vi ≥ 0
2
a,b,c libres
Este método se basa en que cada par de variables (u i,vi) se corresponde en cada iteración de la tabla simplex con dos columnas iguales pero con signo contrario, por tanto u i es básica no puede serlo v i 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 − yi + (axi 2 + bxi + c) ≤ Z 2
i
= 1....10 i = 1....10
a,b,c libres 17.6. Modelo alternativo. Min Z
sa: yi − ( axi
+ bxi + c) = u i − vi i = 1....10 u i + v i ≤ Z i = 1...10 ui, vi ≥ 0
2
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.
⎧ 5x 0 ≤ x ≤ 4 ⎪ f(x) = ⎨ x + 16 4 ≤ x ≤ 10 ⎪ 3x - 4 x ≥ 10 ⎩
40
26 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, x 2 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 ⎩
δ i = ⎨
si x ∈ intervalo i [i = 1 (0
≤ x ≤
4), i = 2 (4
≤ x ≤
10), i = 3 (10
≤ x)]
0 en otro caso
Cuando δi=0 (i=1,2,3) la variable x i 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 x i 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 ≤ x 3
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 x i. 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 x 3 - 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 ⎪ f(x) = ⎨ 3x - 8 4 ≤ x ≤ 10 ⎪ 6x - 38 x ≥ 10 ⎩
40
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 + x3 0 ≤ x1 ≤ 4 0 ≤ x 2 ≤ 6 0 ≤ x 3
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 x i. 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 es estrictamente >0 las xj (j
6
4 Min x1 + 4 x2 + 6 x3
4
1 4 5
92
10