Programación de objetivos
La Programación de objetivos es una rama de la optimización multiobjetivo, que a su vez es una rama del análisis de decisiones multicriterio (MCDA). Puede considerarse como una extensión o generalización de la programación lineal para manejar múltiples medidas objetivas, normalmente conflictivas. A cada una de estas medidas se le asigna un objetivo o valor objetivo a alcanzar. Se miden las desviaciones de estos objetivos tanto por encima como por debajo del objetivo. Las desviaciones no deseadas de este conjunto de valores objetivo se minimizan en una función de logro. Puede ser un vector o una suma ponderada que depende de la variante de programación de objetivos utilizada. Como se considera que la satisfacción del objetivo satisface a quienes toman las decisiones, se supone una filosofía de satisfacción subyacente. La programación por objetivos se utiliza para realizar tres tipos de análisis:
- Determinar los recursos necesarios para lograr un conjunto deseado de objetivos.
- Determinar el grado de logro de los objetivos con los recursos disponibles.
- Proporcionar la mejor solución satisfactoria en una cantidad variable de recursos y prioridades de los objetivos.
Historia
La programación por objetivos fue utilizada por primera vez por Charnes, Cooper y Ferguson en 1955, aunque el nombre real apareció por primera vez en un texto de 1961 de Charnes y Cooper. Siguieron obras fundamentales de Lee, Ignizio, Ignizio y Cavalier, y Romero. Schniederjans proporciona una bibliografía de un gran número de artículos anteriores a 1995 relacionados con la programación por objetivos, y Jones y Tamiz ofrecen una bibliografía comentada del período 1990-2000. Un libro de texto reciente de Jones y Tamiz. ofrece una descripción general completa del estado del arte en la programación de objetivos.
La primera aplicación de ingeniería de la programación de objetivos, realizada por Ignizio en 1962, fue el diseño y colocación de las antenas empleadas en la segunda etapa del Saturno V. Esta se utilizó para lanzar la cápsula espacial Apolo que aterrizó a los primeros hombres en la luna.
Variantes
Las formulaciones iniciales de programación de objetivos ordenaron las desviaciones no deseadas en una serie de niveles de prioridad, siendo la minimización de una desviación en un nivel de prioridad más alto infinitamente más importante que cualquier desviación en niveles de prioridad más bajos. Esto se conoce como programación lexicográfica o de objetivos preventivos. Ignizio ofrece un algoritmo que muestra cómo un programa de objetivos lexicográficos puede resolverse como una serie de programas lineales. La programación lexicográfica de objetivos se utiliza cuando existe un orden de prioridad claro entre los objetivos a alcanzar.
Si quien toma las decisiones está más interesado en comparaciones directas de los objetivos, entonces se debe utilizar una programación de objetivos ponderada o no preventiva. En este caso, todas las desviaciones no deseadas se multiplican por ponderaciones, reflejando su importancia relativa, y se suman como una suma única para formar la función de logro. Las desviaciones medidas en diferentes unidades no se pueden sumar directamente debido al fenómeno de inconmensurabilidad.
Por lo tanto, cada desviación no deseada se multiplica por una constante de normalización para permitir una comparación directa. Las opciones populares para las constantes de normalización son el valor objetivo del objetivo correspondiente (por lo tanto, convertir todas las desviaciones en porcentajes) o el rango del objetivo correspondiente (entre los mejores y los peores valores posibles, por lo tanto, mapear todas las desviaciones en un rango cero-uno). . Para los tomadores de decisiones más interesados en obtener un equilibrio entre los objetivos en competencia, se utiliza la programación de objetivos de Chebyshev. Introducida por Flavell en 1976, esta variante busca minimizar la desviación máxima no deseada, en lugar de la suma de las desviaciones. Esto utiliza la métrica de distancia de Chebyshev.
Fortalezas y debilidades
Uno de los principales puntos fuertes de la programación de objetivos es su simplicidad y facilidad de uso. Esto explica la gran cantidad de aplicaciones de programación de objetivos en muchos y diversos campos. Los programas de objetivos lineales se pueden resolver utilizando software de programación lineal como un único programa lineal o, en el caso de la variante lexicográfica, una serie de programas lineales conectados.
Por lo tanto, la programación por objetivos puede manejar un número relativamente grande de variables, restricciones y objetivos. Una debilidad debatida es la capacidad de la programación por objetivos para producir soluciones que no son eficientes en el sentido de Pareto. Esto viola un concepto fundamental de la teoría de la decisión, que ningún tomador de decisiones racional elegirá conscientemente una solución que no sea eficiente en el sentido de Pareto. Sin embargo, existen técnicas disponibles para detectar cuándo esto ocurre y proyectar la solución sobre la solución eficiente de Pareto de manera adecuada.
El establecimiento de pesos apropiados en el modelo de programación de objetivos es otra área que ha causado debate, y algunos autores sugieren el uso del proceso de jerarquía analítica o métodos interactivos para este propósito. Además, los pesos de las funciones objetivo se pueden calcular en función de su preferencia utilizando el enfoque de prioridad ordinal.