Programación Matemática para Economistas 1 3.- Programación por metas. Una vez mencionados algunos de los inconvenientes de las técnicas generadoras, la incorporación de información se va a traducir en una acción del decisor o centro decisor, emitiendo “deseos” al analista y éste, en base a estos deseos va a actuar. De esta manera, renunciamos a la optimización pero obtenemos una solución que satisface los deseos manifestados. La técnica que se emplea al incorporar información a priori en el proceso se denomina, Goal Programming, o Programación por Metas. Veamos en qué consiste. Dado un problema general de programación multiobjetivo: Opt ( f 1 (x), f 2 (x),L , f p (x)) s. a x ∈ X donde algunos de los objetivos serán de máximo y otros de mínimo, el decisor actúa de la siguiente forma: Primero asignará a cada uno de los objetivos un valor ui que va a representar su nivel de aspiración, es decir, lo que desea alcanzar como mínimo o bien no desea superar, e incluso, en algunos casos, desea alcanzar exactamente la igualdad, para el correspondiente objetivo. Después, al conjugar el objetivo y el nivel de aspiración se obtiene lo que denominamos meta, que expresamos de la siguiente forma: Si estamos maximizando fi(x) al imponer un nivel ui, se deseará que: fi(x) ≥ ui. Si minimizamos, se deseará que fi(x) ≤ ui. El caso de igualdad, fi(x) = ui, se puede contemplar tanto si maximizamos como si minimizamos. Posteriormente al establecimiento de las metas, se asignan niveles de prioridad entre los objetivos, es decir, se les ordena atendiendo a las prioridades que manifieste el decisor. Esta asignación puede ser uno a uno, es decir, en cada nivel un solo objetivo, o pueden aparecer varios compartiendo un mismo nivel; este caso implica una ponderación entre los objetivos que comparten el nivel. El número de niveles de prioridades será por tanto, s ≤ p. Así pues, la resolución se llevará a cabo atendiendo a las metas impuestas y a los niveles de prioridad establecidos, de forma que se preferirá una solución que mejore al primero, una vez conseguida, se pasa al segundo y así sucesivamente. En este sentido, la ordenación que se utiliza, bajo el enfoque de programación por metas, es la lexicográfica R. Caballero, T. Gómez, M. González, M. Hernández, F. Miguel, J. Molina, M.M. Muñoz, L. Rey, F. Ruiz Programación Matemática para Economistas 2 llevándose a cabo una resolución por niveles. Esto nos conduce a definir un nuevo orden denominado lexicográfico, el cual pasamos a definir. Orden Lexicográfico: Diremos que un punto x es preferido a x’ si se verifica que: fi(x) = fi(x’) ∀ i = 1, ..., j - 1 y fj(x) > fj(x’). El orden lexicográfico es un orden total y es el usado en la ordenación del diccionario. Con él se establece que para mejorar una combinación basta con ir mejorando sucesivamente las coordenadas sin tener en cuenta lo que ocurra con las restantes. A las soluciones obtenidas por la técnica de programación por metas se las denomina satisfactorias, en el sentido de que verifican evidentemente las restricciones originales del problema y las metas impuestas por el centro decisor. Así pues tenemos. Definición 4. Un punto x* es una solución satisfactoria si es admisible, y verifica las p-metas impuestas, es decir: x* ∈ X max f i (x* ) ≥ ui min f i (x* ) ≤ ui max min f (x* ) = u i i En estas condiciones, es decir, una vez que el decisor ha manifestado sus niveles de aspiración, construidas las metas y priorizados los objetivos, para la resolución y aplicación de la técnica de programación por metas se introducen en las metas del problema unas variables (positivas) denominadas de desviación, y denotadas por n, y p. Dichas variables nos van a representar las diferencias que existen entre los niveles de aspiración impuestos por el decisor y el resultado que se alcanza en cada objetivo. La introducción se realiza de la siguiente forma: Si estamos maximizando fi(x) al construir las metas tenemos: fi(x) ≥ ui entonces fi(x) + ni - pi = ui y Min ni. ¿Por qué? Porque, si ni = 0 entonces fi(x) - pi = ui y se verifica la meta fi(x) ≥ ui. Si estamos minimizamos fi(x) al construir la meta tenemos: fi(x) ≤ ui entonces fi(x) + ni - pi = ui y Min pi R. Caballero, T. Gómez, M. González, M. Hernández, F. Miguel, J. Molina, M.M. Muñoz, L. Rey, F. Ruiz Programación Matemática para Economistas 3 razonando de igual forma, si pi = 0 entonces fi(x) + ni = ui y por tanto se cumple la meta fi(x) ≤ ui. En el caso de igualdad, fi(x) = ui, se toma fi(x) + ni - pi = ui y se calcula Min ni + pi, para que se mantenga la meta se tendrá que verificar que ni = pi = 0. A la función que recoge la minimización de la variable no deseada, en el sentido de que queremos que sea nula, se le denomina función de realización o función logro, y las denotaremos por hi(n, p). Así pues, dadas las metas, los niveles de prioridad y determinadas las funciones de realización, se procede a calcular: lexmin (h1 (n, p), L , hs (n, p)) s. a x ∈ X f i (x) + ni − pi = ui i = 1,..., p ni , pi ≥ 0 En general, al primer conjunto de restricciones, que son las originales del problema se les denomina restricciones duras o técnicas, debido a que serán restricciones que se tienen que verificar necesariamente. Al segundo conjunto de restricciones, que son las que se generan de la construcción de las metas, se les denomina restricciones blandas, debido a que no son de obligado cumplimiento. En cualquier problema, una vez planteado, y antes de proceder a la resolución lexicográfica, se lleva a cabo la comprobación, de la existencia de puntos factibles, es decir, que nuestro conjunto de restricciones duras no es vacío, dado que si lo fuera el problema no tendría ningún sentido. Esta comprobación se realiza en el que denominaremos Nivel 0, en el cual minimizamos cualquier función constante sujeta a las restricciones duras del problema. Nivel 0: M in h ( x ) = cte s. a x∈ X Una vez comprobado que existen soluciones factibles, se pasa a la resolución del problema. Para mostrar todo lo comentado vamos a desarrollar un ejemplo teórico. Supongamos que nuestro problema esta definido de la siguiente forma: ( Max f 1 , s. a Min f 2 , x∈ X Max f 3 , Min f 4 ) R. Caballero, T. Gómez, M. González, M. Hernández, F. Miguel, J. Molina, M.M. Muñoz, L. Rey, F. Ruiz Programación Matemática para Economistas 4 por tanto, tenemos un problema de cuatro objetivos, donde dos de ellos corresponden a máximos y dos a mínimos. El siguiente paso es dar los niveles de aspiración, construir las metas y determinar la variable no deseada, para la determinación de la correspondiente función de realización o logro. Sea pues: f1(x) ≥ u1 entonces f1(x) + n1 - p1 = u1 y Min n1 f2(x) ≤ u2 entonces f2(x) + n2 - p2 = u2 y Min p2 f3(x) ≥ u3 entonces f3(x) + n3 - p3 = u3 y Min n3 f4(x) = u4 entonces f4(x) + n4 - p4 = u4 y Min n4 + p4. Vamos a considerar que los niveles de aspiración se establecen como: Nivel 1: Objetivo 1, entonces la función de realización es: h(n1, p1) = n1 Nivel 2: Objetivo 2, entonces la función de realización es: h(n2, p2) = p2 Nivel 3: Objetivos 3 y 4, entonces la función de realización es, en general de la forma: h(n3, n4, p3, p4) = αn3 + β(n4 + p4) donde los parámetros α y β ponderarían a las correspondientes metas. El problema sería: lexmin (n1 , p2 , αn3 + β (n4 + p4 )) x∈ X s. a f i (x) + ni − pi = ui i = 1, L , p ni , pi ≥ 0 i = 1, L , p Tras realizar el nivel cero, como hemos impuesto tres niveles de prioridad tendremos que resolver a lo sumo tres problemas, correspondientes a: Nivel 1: Min n1 x∈ X s. a f 1 (x) + n1 − p1 = u1 n1 , p1 ≥ 0 R. Caballero, T. Gómez, M. González, M. Hernández, F. Miguel, J. Molina, M.M. Muñoz, L. Rey, F. Ruiz Programación Matemática para Economistas 5 Denominamos (x1* ,n1* ,p1* ) a la solución, si n1* = 0 significa que hemos logrado verificar la meta primera y pasamos al segundo nivel. Nivel 2: Min p2 s. a x∈ X f 1 (x) + n1 − p1 = u1 n1 = 0 f 2 (x) + n2 − p2 = u2 n1 , p1 , n2 , p2 ≥ 0 La idea es, que se mantenga la meta anterior y se verifique la del nivel correspondiente, así, si volvemos a denominar (x *2 , n2* , p2* ) a la solución, si p2* = 0 significa que hemos logrado verificar la meta primera y la segunda y pasamos al tercer nivel. Nivel 3: Min α n3 + β (n4 + p4 ) s. a x∈ X f 1 (x) + n1 − p1 = u1 n1 = 0 f 2 (x) + n2 − p2 = u2 p2 = 0 f 3 (x) + n3 − p3 = u3 f 4 (x) + n4 − p4 = u4 ni , pi ≥ 0 i = 1, L,4 En este nivel como tenemos dos funciones hemos considerado como función de realización la suma ponderada de las dos y hemos impuesto que se mantengan las dos anteriores y las dos correspondientes al nivel, de forma que, si la solución obtenida, (x *3 , n3* , p3* , n4* , p4* ) , verifica que n3* = p3* = n4* = p4* = 0, x *3 será una solución satisfactoria, puesto que verifica las restricciones duras del problema, y las metas correspondientes. Con este ejemplo teórico se ha pretendido ilustrar cómo aplicar la técnica de programación por metas, no obstante, quedarían algunas consideraciones, por ejemplo, ¿cómo actuamos si en alguno de los niveles la variable no deseada no es cero?, si esto ocurre la solución correspondiente no es satisfactoria, puesto que si la variable de desviación no deseada toma un valor nos indica el incumplimiento de la correspondiente meta. En en estos casos no continuamos con el problema sino que la solución sería la que nos diera con el valor correspondiente de ni o pi, y la solución aún no siendo satisfactoria R. Caballero, T. Gómez, M. González, M. Hernández, F. Miguel, J. Molina, M.M. Muñoz, L. Rey, F. Ruiz Programación Matemática para Economistas 6 sería la más adecuada al cumplimiento de nuestra meta, dado que minimizamos las desviaciones. A partir del incumplimiento de una meta, es decir, la no verificación del nivel, se puede actuar de varias formas. Una de ellas sería el redefinir la meta correspondiente y otra el intentar hacer una nueva distribución de funciones y niveles. De hecho, el problema no queda cerrado, sino que sería el decisor, a la vista de los resultados, el encargado de decidir qué hacer con el problema. Volviendo a nuestro ejemplo: Supongamos que la empresa establece que primero quiere maximizar los beneficios, de forma que estos alcancen un nivel de al menos 10 unidades, y que posteriormente, la contaminación se fija en un máximo de 6 unidades. Con esta información se nos genera un problema de programación por metas, en el cual los niveles corresponden a: Nivel 1: Los beneficios tienen que alcanzar un nivel de al menos 10 unidades, luego la meta es: 4x + 3y ≥ 10. Al incorporar las variables de desviación tenemos: 4x + 3y +n1 - p1 = 10. La variable no deseada es n1 y la función de realización del primer nivel es: h1(n1, p1) = n1. Nivel 2: El nivel de contaminación es como máximo de 6 unidades, luego la meta es: 3x + 2y ≤ 6. se incorporan las variables de desviación y: 3x + 2y +n2 - p2 = 6. La variable no deseada en este nivel es p2 y la función de realización del segundo nivel corresponde a: h2(n2, p2) = p2. Con esta información, el problema de programación por metas a resolver es: R. Caballero, T. Gómez, M. González, M. Hernández, F. Miguel, J. Molina, M.M. Muñoz, L. Rey, F. Ruiz Programación Matemática para Economistas 7 lexmin (n1 , p2 ) s. a x+ y≤5 2x + y ≤ 8 x ≥1 4 x + 3y + n1 − p1 = 10 3x + 2 y + n2 − p2 = 6 x , y , ni , pi ≥ 0 i = 1, 2. Como tenemos asegurada la existencia de soluciones factibles, pasamos a la resolución por niveles. Nivel 1: Min n1 x+y≤5 s.a 2x + y ≤ 8 x≥1 4x + 3y + n1 - p1 = 10 x, y, n1, p1 ≥ 0 Aplicando el programa LINDO para programación lineal obtenemos: LP OPTIMUM FOUND AT STEP 1 OBJECTIVE FUNCTION VALUE 1) .00000000 VARIABLE N1 X Y P1 VALUE .000000 2.500000 .000000 .000000 NO. ITERATIONS= REDUCED COST 1.000000 .000000 .000000 .000000 1 Como el valor de n1 = 0 obtenemos que se ha verificado la primera de las metas y pasamos al nivel 2. R. Caballero, T. Gómez, M. González, M. Hernández, F. Miguel, J. Molina, M.M. Muñoz, L. Rey, F. Ruiz Programación Matemática para Economistas 8 Nivel 2: Min p2 s.t x+y≤5 2x + y ≤ 8 x≥1 4x + 3y + n1 - p1 = 10 n1 = 0 3x + 2y + n2 - p2 = 6 x, y, n1, p1, n2, p2 ≥ 0 LP OPTIMUM FOUND AT STEP 3 OBJECTIVE FUNCTION VALUE 1) 1.0000000 VARIABLE P2 X Y P1 N2 VALUE 1.000000 1.000000 2.000000 .000000 .000000 NO. ITERATIONS= REDUCED COST .000000 .000000 .000000 .666667 1.000000 3 La solución obtenida es (1, 2) pero p2 = 1, lo cual nos indica que no se verifica la segunda meta, en concreto, según el resultado, el nivel se contaminación se superaría en una unidad (p2 = 1). En esta primera gráfica vamos a ver el efecto de la incorporación de la primera meta, y en la segunda gráfica, tras introducir la segunda meta observamos cómo el conjunto de soluciones satisfactorias es vacío, por tanto nuestro problema no tendría solución satisfactoria, sin embargo, la solución obtenenida, aún no siendo satisfactoria verifica la primera meta y es la más cercana al cumplimiento de la segunda, puesto que estamos minimizando la variable no deseada. R. Caballero, T. Gómez, M. González, M. Hernández, F. Miguel, J. Molina, M.M. Muñoz, L. Rey, F. Ruiz Programación Matemática para Economistas Gráfica nivel 1: R. Caballero, T. Gómez, M. González, M. Hernández, F. Miguel, J. Molina, M.M. Muñoz, L. Rey, F. Ruiz 9 Programación Matemática para Economistas 10 Gráfica nivel 2: A la vista del resultado ahora podría actuar de nuevo el decisor, puesto que él ya conoce que la imposición de 6 unidades para la contaminación no es factible. De esta forma, si mantiene la primera meta con 10 unidades y relaja la contaminación a 8, el segundo nivel se modifica y obtenemos: Nivel 2: Reformado Min p2 s.a x+y≤5 2x + y ≤ 8 x≥1 4x + 3y + n1 - p1 = 10 n1 = 0 3x + 2y + n2 - p2 = 8 x, y, n1, p1, n2, p2 ≥ 0 R. Caballero, T. Gómez, M. González, M. Hernández, F. Miguel, J. Molina, M.M. Muñoz, L. Rey, F. Ruiz Programación Matemática para Economistas LP OPTIMUM FOUND AT STEP 11 1 OBJECTIVE FUNCTION VALUE 1) .0000000 VARIABLE P2 X Y P1 N2 VALUE 0.000000 2.500000 0.000000 0.000000 0.500000 NO. ITERATIONS= REDUCED COST 1.000000 .000000 .000000 .000000 .000000 1 Al relajar la meta sí obtenemos una solución satisfactoria (2.5, 0), en la cual los beneficios son exactamente 10 unidades y la contaminación de 7.5 dado que n2 = 0.5. El conjunto de soluciones satisfactorias asociadas al cumplimiento de las dos metas nos lo muestra la gráfica siguiente: R. Caballero, T. Gómez, M. González, M. Hernández, F. Miguel, J. Molina, M.M. Muñoz, L. Rey, F. Ruiz