3.1. DEFINICIÓN DE PROGRAMACIÓN POR OBJETIVOS O METAS En muchos problemas los objetivos de la organización que lleva a cabo un estudio de programación lineal se pueden resumir dentro de un objetivo global, como maximizar las ganancias o minimizar el costo total. Sin embargo, esta suposición no siempre es realista; a veces aparecen problemas donde se debe analizar una serie de objetivos distintos, por ejemplo, mantener las ganancias estables, incrementar el porcentaje de mercado, diversificar sus productos, etc. La programación por objetivo proporciona una manera racional de intentar alcanzar varios objetivos de manera simultánea, jerarquizando los mismos o asociándole una ponderación a cada uno. Programación por metas es una modificación y extensión de programación lineal. La aproximación de programación por metas admite una solución simultánea de un sistema de objetivos complejos en lugar de un objetivo simple. En otras palabras, programación por metas es una técnica que es capaz de manejar problemas de decisión que tratan con una meta simple - con múltiples submetas, así como problemas con metas múltiples con múltiples submetas. Además, la función objetivo del modelo de programación por metas permite escoger las variables que ofrecen una mejor solución al problema planteado, y puede estar compuesto de unidades no homogéneas de medida, tales como libras y dólares, en lugar de un solo tipo de unidad. En principio fue dirigida a resolver problemas industriales, sin embargo, posteriormente se ha extendido a muchos otros campos como la economía, agricultura, recursos ambientales, recursos pesqueros, etc. Gracias a la programación por objetivos aumentan las posibilidades de utilización de la programación matemática en la empresa, pues, como ya se ha indicado, permite resolver problemas que presentan varios objetivos, incluso cuando éstos tienen distinta importancia relativa. De esta forma, mientras en la programación lineal clásica se contemplaba un solo objetivo en la función a optimizar, en la P.P.O. todos los objetivos se incorporan a la función a optimizar y sólo las auténticas condiciones ambientales que rodean a la toma de decisiones, reciben el tratamiento que se dispensa a las restricciones. (Domínguez Machuca, y otros 1981) El enfoque básico de la programación por objetivos es establecer un objetivo numérico específico para cada uno de los objetivos, formular una función objetivo para cada uno y después buscar una solución que minimice la suma ponderada de las desviaciones de estas funciones objetivo de sus metas respectivas. Cuando existen varios objetivos se utiliza la programación por objetivos. Esta es una diferencia con relación a la programación lineal que tiene un objetivo único de maximizar o minimizar. La filosofía de los problemas de programación por metas es muy similar a los de programación lineal, sólo que ahora además de las restricciones estructurales, se pueden tener varios objetivos simultáneos, los cuales se desean alcanzar. En programación por metas en lugar de tratar de maximizar o minimizar la función objetivo directamente como en programación lineal, lo que se va a minimizar son desviaciones entre las metas y como pueden ser realizadas dentro del conjunto dado de restricciones. Existen tres tipos de metas: ● Una Meta unilateral inferior: establece un límite inferior por debajo del cual no se quiere ir (pero se aceptan desvíos a la meta que deberá minimizarse). Ej. a11x1+a12x2 ≥ Meta1 ● Una Meta unilateral superior: establece un límite superior que no se quiere exceder (pero se aceptan desvíos a la meta que deberá minimizarse). Ej. a21x1+a22x2 ≤ Meta2 ● Una Meta bilateral: establece un “blanco” específico que no se quiere perder hacia ningún lado. Ej. Un ejemplo: a31x1+ a32x2 ≤ Meta3 Por otra parte, existen dos tipos de restricciones funcionales: 1. Restricciones no flexibles: son idénticas empleadas en la programación lineal. Requieren ser cumplidas de manera estricta. 2. Restricciones flexibles: proceden de los objetivos a alcanzar. Pueden admitir desvíos a la meta establecida, pero estos desvíos estarán asociados a una penalización que se reflejará en un parámetro en la Función Objetivo. El valor correspondiente al nivel de la Meta alcanzado efectivamente (Σaijxj). El desvío o diferencia entre el valor meta y el nivel alcanzado (di): Σaijxj = Mi + di Para formalizar los desvíos aceptados a cada una de las metas se emplean las variables auxiliares di. Estas, por definición pueden obtener valores positivos o negativos. Para poder hacer operativo el modelo de Programación Lineal cada di se sustituirá por la diferencia de dos variables no-negativas: 3.2. FORMULACIÓN DE MODELOS Debemos de saber que hay una restricción por cada objetivo. Al igual que en la programación lineal, en el modelo de programación por objetivos las suposiciones básicas se caracterizan de la misma manera. La función objetivo para un problema de programación por objetivo siempre es minimizar alguna combinación de variables de desviación. He aquí un ejemplo de cómo se debe formar cada meta: fi(x) + ni – pi = ti En la expresión anterior fi(x) representa la expresión matemática de la meta, a la que se le añaden dos variables de desviación (ni y pi). La primera, ni, representa un valor faltante para llegar a la meta. La segunda variable de desviación pi, representa un valor excedente por sobre la meta. Por ejemplo, suponga que una empresa tiene dos productos: el primero le deja 3 euros de ganancia y el segundo le produce solo 1 euro. Se desea obtener 50 euros de ganancia. La meta estaría representada de esta manera: 3x1 + 1x2 + n – p = 50 Tal vez alguien en la empresa sugiere que deberían producir 10 productos x1 y 15 productos x2. Eso implicaría: 3(10) + 1(15) + n – p = 50 30+15 + n – p = 50 45 + n – p = 50 Se necesita que n valga 5 para alcanzar la meta. En otras palabras, el beneficio quedó 5 euros abajo de lo esperado porque se obtuvo un faltante. Ahora piense que otra persona en la empresa sugiere que se fabriquen 15 productos de cada tipo. La meta estaría representada por: 3(15) + 1(15) + n – p = 50 60 +n – p = 50 Ahora la meta quedó 10 unidades por encima de lo esperado. Suponga que el plan de producción lo dejamos en 10 x1 y 20 x2. Ello implicaría: 50 + n – p = 50 Por lo que tanto n, como p valen 0. (No hay faltantes ni excedentes). A continuación, realizaremos un ejemplo más complejo de la programación por objetivos y metas con el fin de entender mejor para que se utilizan. 3.2.1. EJEMPLO METAS MÚLTIPLES En cierto país de 20 000 habitantes se tienen las siguientes bases tributarias: 550 millones por predial. 35 millones por alimentos y medicinas. 55 millones por ventas. El consumo anual de gasolina es de 7.5 millones de galones. Se tienen las siguientes metas: 1. 2. 3. 4. Tener un ingreso por impuestos de 16 millones. Que el impuesto para alimentos y medicinas no exceda el 10% del total de impuestos Que el impuesto sobre ventas no exceda el 20% del total de impuestos. Que el impuesto para gasolina no exceda de 2 centavos por galón. Definiríamos las variables de esta manera: X1 = tasa tributaria predial X2 = tasa tributaria por alimentos y medicinas X3 = tasa tributaria por ventas X4 = impuesto para gasolina en centavos por galón. Metas Las metas quedarían expresadas de la siguiente forma: 1. Tener un ingreso de impuestos de 16 millones. 550x1 + 35x2 + 55x3 + 0.075x4 >= 16 2. Que el impuesto para alimentos y medicinas no exceda el 10% del total de impuestos 35x2 <= 0.1 (550x1 + 35x2 + 55x3 + 0.075x4) Haciendo las operaciones correspondientes, y simplificando, la meta anterior quedaría: 55x1 – 31.5x2 + 5.5x3 + 0.0075x4 >= 0 3. Que el impuesto sobre ventas no exceda el 20% del total de impuestos. 55x3 <= 0.2 (550x1 + 35x2 + 55x3 + 0.075x4) Haciendo las operaciones correspondientes, y simplificando, la meta anterior quedaría: 110x1 + 7x2 – 44x3 + 0.015x4 >= 0 4. Que el impuesto para gasolina no exceda de 2 centavos por galón. x4 <= 2 La planificación por metas (incluyendo las variables de desviación) sería: 550x1 + 35x2 + 55x3 + 0.075x4 + n1 – p1 = 16 55x1 – 31.5x2 + 5.5x3 + 0.0075x4 +n2 – p2 = 0 110x1 + 7x2 – 44x3 + 0.015x4 +n3 – p3 = 0 X4 + n4 – p4 = 0 Las variables de desviación no deseadas serían: n1, n2, n3, p4. La función de logro sería: Min g (n1, n2, n3, p4) 3.2.2. Programación por Objetivos no secuencial Cada meta representa una Ecuación Objetivo y en la Función Objetivo se incluirán las variables de desvío relevantes correspondientes a cada Objetivo. 3.2.3. Programación por Objetivos secuencial Existe una jerarquía de niveles de prioridad para las metas. Las metas de más importancia reciben atención con primera prioridad y las de importancia secundaria reciben atención de segunda prioridad, y así sucesivamente. Los objetivos de diferente nivel de prioridad no son comparados de manera simultáneamente. Metas prioritarias. En este caso los desvíos en la Función Objetivo serán ponderadas por los coeficientes de penalización. Metas no prioritarias. En este caso todas las metas tienen una importancia comparable, tienen mismo nivel de prioridad y los coeficientes de penalización en la Función Objetivo son iguales a 1. En el próximo ejemplo podremos ver un ejemplo que resuelve un problema de maneras distintas, por Programación por objetivos no secuencial y secuencial.