La Programación por Metas en Investigación de Operaciones es un tipo de Programación Lineal. En este artículo se dará una sencilla explicación de sus bases, y se concluirá con un ejemplo. Para comenzar veremos un poco lo que es la Programación Lineal.
La Programación Lineal (abreviada PL) “se refiere a técnicas matemáticas para asignar, en forma óptima, los recursos limitados a distintas demandas que compiten por ellos” (Chase y Jacobs, 2014).
Un problema puede ser resuelto utilizando Programación Lineal si cumple ciertas condiciones. Primero, debe tener recursos limitados. Además debe tener un objetivo explícito (como maximizar la utilidad, o minimizar los costos). Asímismo, debe existir linealidad, (por ejemplo, si se necesitan dos horas para elaborar una pieza, se requerirán 4 para elaborar dos, etc). Otra condición es que debe existir homogeneidad, esto es que los productos fabricados en una máquina son idénticos o las horas que trabaja cada obrero son igual de productivas. Por último debe haber divisibilidad, se supone que los productos o procesos se pueden dividir en fracciones.
Programación entera. Cuando la subdivisión no es posible, se utiliza Programación entera que es una modificación de la Programación Lineal.
Programación por metas. Cuando existen varios objetivos se utiliza la programación por metas. Esta es una diferencia con relación a la programación lineal que tiene un objetivo único de maximizar o minimizar.
Programación dinámica. Se utiliza cuando el problema se resuelve mejor por etapas o plazos.
Existen otras variantes como es la Programación No Lineal o la Programación Cuadrática.
La Programación por metas (abreviada PM) apareció originalmente en un artículo de Charnes, Cooper y Ferguson en 1955 (Romero, 2002). Como se explicó anteriormente, se utiliza cuando existen varios objetivos o metas y se desea una solución satisfactoria y suficiente (satisfaciente).
La estructura de cada meta seguiría este modelo:
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 pesos de ganancia y el segundo le produce solo 1 peso. Se desea obtener 50 pesos de ganancia. La meta estaría representada por
3x1 + x2 + 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 pesos 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).
En ocasiones, para el cumplimiento de la meta nos conviene más que cierta variable alcance su valor más pequeño, que es cero. Esa variable es una variable de desviación no deseada. Las situaciones que se pueden dar son las siguientes:
“El propósito general de la PM consiste en minimizar un función de las variables de desviación no deseadas. Esta función recibe el nombre de función de logro” (Romero, 2002).
Veamos el siguiente ejemplo (basado en Taha, 2012):
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:
Así es que las variables serían:
Las metas quedaría expresadas de la siguiente forma:
550x1 + 35x2 + 55x3 + 0.075x4 >= 16
35x2 <= .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
55x3 <= .2 (550x1 + 35x2 + 55x3 + 0.075x4)
Haciendo las operaciones correspondientes, y simplificando, la meta anterior quedaría:
110x1 + 7x2 – 44x3 + 0.015x4 >= 0
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)
Esperamos que esta explicación y este ejemplo te hayan permitido entender un poco más la programación por metas.