METODO DEL SIMPLEX MULTICRITERIO
Introducción
El método simplex multicriterio, como su nombre lo indica, aplica e l método Simplex para resolver problemas con múltiples objetivos. Para ello se emplea una matriz de decisión o cuadro del Simplex, en donde se agreg an filas adicionales por encima y por debajo de la matriz de decisión. Las inferiores corresponden a los diferentes objetivos en tanto que las superiores pertenecen a los coeficientes de esos mismos objetivos. En general se utiliza el algoritmo de Zeleny (1974).
Una forma de resolver modelos de programación lineal con múltiple s objetivos es el método simplex multicriterios. Este método es una extensión del método simplex, que genera soluciones extremas eficientes (soluciones que no son claramente dominadas por otras). Usualmente el número de estas soluciones es muy grande, lo que hace difícil escoger una de ellas.
Entre las técnicas generadoras de soluciones eficientes o no dominadas cabe destacar, por su importancia y utilidad, el Método Simplex Multicriterio (Multiple Simplex Method). Esta técnica es aplicable a la Programación Lineal Multiobjetivo (PLM), es decir, a un modelo lineal con varias funciones o bjetivo, también lineales. Es, por tanto, una útil extensión de la programación lineal simple o de un único objetivo. El Método Simplex Multiobjetivo (MSM) permite generar los puntos extremos eficientes del poliedro convexo que constituye el espacio de las soluciones del problema. Esta generación es exhaustiva, es decir, se obtiene todos l os puntos extremos eficientes. En un paso posterior, es posible generar también el conjunto total de soluciones eficientes, es decir, incluyendo aquellas que no co nstituyen puntos extremos.
El modelo de programación lineal multiobjetivo
Planteamiento formal del modelo Tal y como acabamos de mencionar, el MS M es un método aplicable a un modelo de PLM. Este tipo de programación se diferencia de la programación lineal por la ex istencia de varias funciones objetivo. Así pues, un modelo general de Programación Lineal Multiobjetivo puede ser el siguiente:
Sujeto a:
Donde
á. ⋯ á. ⋯ á. ⋯ ⋯ ≤ ⋯ ≤ ⋯ ≤ , , … , ≥0
…………………………….…………….…… [1]
es coeficiente correspondiente a la j-ésima variable en la i-ésima función objetivo. El resto de elementos
son similares a los de un modelo de programación lineal. En cuanto a las restricciones del modelo, pueden ser tipo menor igual, mayor igual o simplemente igual. Se ha presentado solamente el primer caso, pero esta situación no implica que solo se admita este tipo de restricción. El modelo [1] puede expresarse, e n forma resumida, con notación matricial, del siguiente modo:
á . :. ≤ ≥0
………………………………………………………….. [2]
Donde: F.- es un vector columna de p componentes. C.- es una matriz (p x n) de los coeficientes de la función objetivo. X.- es un vector de n componentes que recoge las variables de decisión del problema. A.- es la matriz (m x n) de coeficientes técnicos de las restr icciones. b.- es un vector de m componentes relativos a los términos independientes de las restr icciones. Es posible obtener el conjunto de re stricciones en forma de estricta igualdad.
Para ello basta con introducir las variables de holgura y artificiales que sea preciso. El modelo quedaría:
á . :. ≥0
………..…………….………………………………….. [3]
El vector X incluye, en este caso, el conjunto total de las variables del problema, es decir, incluye las de holgura y artificiales. Suponiendo que se introducen m variables de este tipo (una por cada restricción), el vector X tendrá n + m componentes. Del mismo modo, la matriz A recoge los coeficientes técnicos de dichas variables. Su dimensión será ahora, m x (m+n). En la programación lineal simple o de único objetivo, el m étodo del simplex investiga los distintos puntos extremos del espacio de las soluciones, ya que se demuestra, matemáticamente, la solución óptima del problema estará siempre en uno o varios de los puntos extremos. En la programación lineal multiobjetivo no existe solución optima, sino solo eficientes, tal y como se ha visto anteriormente. Es por ello por lo que el MSM investiga los distintos puntos extremos del espacio de las soluciones, determinando la eficiencia o no eficiencia de los mismos. Lo peculiar, por tanto, del MSM, y que lo diferencia del método del simplex habitual, es su forma de investigar puntos extremos o criterio a seguir para pasar de uno a otro, así como la determinación de la eficiencia o no de cada una de las soluciones básicas analizadas.
Base matemática del método
Definición de variables y notación utilizada Antes de plantear los fundamentos matemáticos del MSM así como su desarrollo algorítmico, pare ce conveniente definir algunos conceptos y variables que hemos de utilizar, así como aclarar la notación que será empleada en lo sucesivo. Llamaremos X al conjunto de soluciones factibles de un problema. Su definición es la misma que para un modelo de programación lineal, ya que es una consecuencia del conjunto de restricciones, siendo, por tanto, independiente de la o las funciones objetivo. El conjunto X r ecoge todas aquellas combinaciones de variables que cumplen simultáneamente las restricciones del problema, así c omo las condiciones de no negatividad:
, , … , +
+ +⋮ |∑ , ∀1, 2 , … , ˄ ≥0 , ∀ 1, 2 , … , }………………. [ 4] = Supondremos que no estamos ante un caso de ausencia de solución, es decir X ≠ Ǿ y tampoco ante una redundancia (rango de A igual a m).
Cada iteración vendrá representada por una tabla al igual que ocurre en la programación lineal. La diferencia fundamental entre las dos tablas es que en e l MSM se trabaja simultáneamente con p funciones objetivo, por lo que aparecen p filas de coeficientes , así como p filas de indicación. Suponiendo que la base está formada por
⋮ ⋮ ⋯⋮ ⋮ ⋯⋮ −⋮ ⋮ +⋮ +⋮ ⋯⋮ +⋮ ⋯⋮ +⋮ ⋯⋯ ⋯⋯ −− ++ ++ ⋯⋯ ++ ⋯⋯ ++ ⋯⋯ ⋯⋯ ,,−− 10 01 ⋯⋯ 00 ⋯⋯ 00 ⋮⋮ ⋮⋮ ⋯⋯⋯ ⋮⋮ ⋯⋯⋯ ⋮⋮,− ⋮⋮ ⋮⋮0 0⋮⋮ ⋯⋯⋯ ⋮⋮1 ⋯⋯⋯ 0⋮⋮ ⋯ ⋯ ,− 0 0 ⋯ 0 ⋯ 1 ⋯⋯ ⋯⋯ −− 00 00 ⋯⋯ 00 ⋯⋯ 00 ⋮ ⋮ ⋯⋯ ⋮ ⋯⋯ −⋮ ⋮ ⋮ 0 ⋮ 0 ⋯⋯ ⋮ 0 ⋯⋯ ⋮0
las m variables de holgura (en su caso, artificiales), la tabla general del MSM representarse como sigue:
++ ⋯⋯ ++ ++ ⋮+ ⋯⋮ +⋮ +⋮⋮ ⋮⋮ +⋮ ⋯⋯ + ⋮ + ⋮
∑= , ∀1… ˄ ∀1… ………………. [5] <0 >0 ⋮ …………………[6] ( )
Detengámonos por un momento en las filas de indicación, ya que, como antes se dijo, es la arte mas especifica del MSM con respecto al método del Simplex habitual. Cada elemento
viene definido como diferencia entre
los rendimientos indirectos y directos para cada función objetivo, k. Así:
Este valor,
representa el rendimiento marginal (cambiando de signo tomando la diferencia al revés) de la
variable j-ésima en a función objetivo k-ésima. Es decir, e l incremento (
) o decremento (si
) que
experimentara la función objetivo k-ésima como consecuencia de introducir una unidad de la variable j-ésima en la solución básica. El malor
se define, por tanto para todas las variables y para todas las funciones objetivo.
Asi, para cada solución básica, aparece asociado a c ada variable un vector p de componentes que recoge , precisamente, los valores
.
Para el caso particular de que Xj sea una variable básica, su vector m j asociado tiene todas sus componentes nulas. El vector mj va a ser una importante herramienta que permitirá analizar la eficiencia o ineficiencia de cada solución básica, así como el camino a seguir en la búsqueda de nuevas soluciones eficientes.
Algoritmo de solución
Presentación de Datos
Representación Tabular Es una forma elemental de presentación de resultados. Consiste en disponer los mismos en una tabla de un modo organizado. Una posible disposición de la información es la que aparece en el cuadro a continuación. En el mismo,
hace referencia a una solución eficiente cualquiera y para dicha solución. Solución Eficiente
⋮ ⋮
⋮ ⋮
⋮ ⋮
al valor que toma la función objetivo k-esima
⋯ ⋯⋯ ⋮ ⋯ ⋮ ⋯
La ventaja que ofrece este método es la no limitación en cuanto al número de funciones objetivo del problema. El inconveniente principal viene dado por la posibilidad de amontonamiento de datos numéricos, especialmente en problemas de gran dimensión.
Caso Práctico
Una empresa del sector químico se plantea la definición de un programa de producción en base a los tres productos que fabrica y que denominaremos, por simplicidad, A, B, C. Tres criterios se consideran relevantes y quisieran ser alcanzados simultáneamente por la empresa. En primer lugar, o bviamente, se quiere conseguir el mayor beneficio posible con la producción y venta de los t res tipos de productos. En segundo lugar, y por razones
“de imagen pública”, quisiera la dirección empresarial reducir al mínimo la polución del medio ambiente derivada de los diferentes procesos productivos. En tercer y último lugar, trataría de aprovechar al m áximo la capacidad productiva buscando fabricar el mayor número posibles de unidades, ya que se espera que la demanda tienda acrecer un breve plazo de tiempo. Además de los anteriores objetivos, la empresa de be respetar algunas limitaciones o condiciones importantes relacionadas con la disponibilidad de las dos materias primas más importantes que se utilizan en el proceso productivo y que denominaremos X e Y. de la primera dispone de 1000 unidades y de la se gunda de 800. Además, y con el fin de mantener un cierto nivel de actividad, se considera que la producción total ha de superar el mínimo nivel de 400 unidades de producto. La restante información que se requiere es escogida en el siguiente cuadro:
Beneficios unitarios Polución / ud. De producto Consumo unitario Mat. Prima X Consumo unitario Mat. Prima Y
A 3 3 2 1
B 5 2 3 1
C 4 3 1 2
Solución.
Dada la anterior información, el modelo de Programación Lineal Multiobjetivo puede ser formulado como sigue:
á.3 5 4 .3 2 3 á. : 2 3 ≤1000 2 ≤800 ≥400 , , ≥0 á.3 5 4 á. []3 2 3 á. : 2 3 1000 2 800 400 , , , , , ≥0
Introduciendo las variables de holgura para las restricciones y m ultiplicando la segunda función objetivo por (-1) para tratarla como máximo, el modelo queda:
El algoritmo del MSM comienza con la obtención de una solución básica de partida. Una posibilidad interesante consiste en optimizar individualmente un objetivo. Hacemos esto tomando el primero de los o bjetivos. La solución óptima para el mismo se muestra en la tabla continuación:
33 25 34 00 00 00 1 1 1 0 0 0 2/5 1/5 0 54 23 11 240280 3/51/5 10 01 1/5 3/5 0 120 1/50,8 00 00 1/51,2 1,2/54 01 0 0 0 2320 0. 2 1, 4 0 1320 1, 2 0 0 520 0.2 0 0 0,2 0,4 0
0,240,280; 2320,1320,520 : 400,0,200 : 0,0,400 : 0,300,100 Como puede observarse, la solución es óptima y única para eficiente:
, por lo esta solución
que hemos hallado es
A partir de esta solución, proseguiremos el análisis. Así, desde básicas adyacentes:
puede accederse a las siguientes soluciones
Veamos qué información puede obtenerse de estas soluciones. Puesto que ningún vector mj es comparable con el vector nulo, así:
320 400; 80480 ~~ ← 600; 720120 ≥ 120420 { 300; 420 120 [ 0,0,400; 1600,1200,400]
De esta comparación se deduce que la solución resultante de introducir introducir .
Luego, De
y
esta dominada por la que se deriva de
es no eficiente al estar dominada por
.
, sin embargo, no puede deducirse nada re specto de su eficiencia.
Almacenando, por tanto, estas soluciones para su consideración posterior.
: 0,240,280→ : 0,0, 400→ : 500,0,0
Para completar el análisis, observamos cuales son las soluciones básicas adyacentes a las que se puede acceder desde :
Puesto que el vector
es no comparable con el vector nulo, aplicamos al mismo la definición de un teorema:
240; 320 48060 400 ~~ ← 600; 600 120500 { 300; 600 100 33 25 34 00 00 00 1 1 1 0 0 0 1/2 00 3/2 1/2 54 23 11 300100 1/21/2 10 01 1/2 300 1/23/2 00 00 1/21/2 0 1 7/25/2 0 0 0 1900 900 1/2 0 0 1/2 0 1 400 0 0 0 0 0 1 0,300,100; 1900,900,400 : 200,200,0 : 0,0, 400→ : 0,24 0,280→ 3⁄2 , 1⁄2 , 0≥0 200,200,0; 1600,1000,400 De esta comparación no se deduce nada acerca de la eficiencia de
, por lo que almacenamos dicha solución
para su posterior consideración. En estos momentos, tenemos almacenadas las soluciones . Continuemos el análisis a partir de , que se obtiene introduciendo la variable en la solución (primera tabla) y que queda reflejada en la siguiente tabla:
Como se puede observar, la solución solución es eficiente:
Desde esta solución
proporciona un óptimo único para el segundo objetivo, por lo que la
puede accederse a las siguientes soluciones básicas:
Dado que , la solución podemos deducir que es no eficiente:
no permite mejorar ningún objetivo respecto de
, por lo que
33 25 34 00 00 00 1 1 1 0 0 0 10 1/2 3/2 3/20 1/2 1/2 1/21 00 00 1/21/2 1/25/2 1/23/2 00 01 00 5/2 3/2 3/2 0 0 1/2 1/2 1/2 0 0
En este momento solo tenemos almacenada y pendiente de analizar la solución , obtenida a partir de la solución (tabla anterior) mediante la introducción de la variable . El resultado de esta iteración aparece en la siguiente tabla:
30 0 3 10 500300 0 0 0 1500 100 1500 500
Como puede observarse, en esta solución no se presenta ningún optimo individualizado para ningún objetivo, por lo que es preciso resolver el subproblema de eficiencia para determinar e l carácter de dicha solución. Tal subproblema puede formularse como sigue:
á. ℎ ℎ ℎ : 3 5 4 ℎ 1500 3 2 3 ℎ 1500 ℎ 500 2 3 ≤1000 2 ≤800 ≥400 , , , ℎ, ℎ, ℎ ≥0 0, 240, 280,ℎ 820,ℎ 180,ℎ 20
La solución óptima para el anterior modelo de progr amación lineal implica los siguientes valores:
á 1020>0 ≤∀ ∉
Y . Dado que la función objetivo toma en el óptimo un valor positivo, la solución puede ser mejorada sin empeorar alguno de los objetivos, de modo que puede ser calificada de no eficiente. Puesto que las demás
es no eficiente, habrá que comprobar si existe alguna variable no básica, .
, que domine a todas
Puede comprobarse que tal variable no existe, por lo que, dado que no quedan soluciones básicas almacenadas para su análisis, el algoritmo ha finalizado.
Como resumen de los desarrollos realizados en este ejemplo, se recogen en este último cuadro las distintas soluciones básicas que han sido analizadas indicando el carácter de eficiente o no de las mismas. A efecto de presentación de resultados al decisor, solo las soluciones eficientes deben ser tenidas en cuenta, prescindiendo del resto.
NUMERO DE SOLUCION
SOLUCION
OBJETIVOS
SI
0
240
280
0
0
120
2320
1320
520
SI
400
0
200
0
0
200
2000
1800
600
NO
0
0
400
600
0
0
1600
1200
400
SI
0
300
100
0
300
0
1900
900
400
NO
500
0
0
0
300
100
1500
1500
500
NO
200
200
0
0
400
0
1600
1000
400
CRACTER EFICIENTE