La programación por 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 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 valor objetivo que debe alcanzarse. Las desviaciones de estos objetivos se miden tanto por encima como por debajo del valor objetivo. Las desviaciones no deseadas de este conjunto de valores objetivo se minimizan mediante una función de logro. Esta puede ser un vector o una suma ponderada, dependiendo de la variante de programación por objetivos utilizada. Dado que se considera que la satisfacción del objetivo satisface al/a los responsable/s de la toma de decisiones, se asume una filosofía subyacente de satisfacción . La programación por objetivos se utiliza para realizar tres tipos de análisis:
- Determinar los recursos necesarios para alcanzar un conjunto de objetivos deseados.
- Determinar el grado de consecución de los objetivos con los recursos disponibles.
- Proporcionar la mejor solución posible en función de la cantidad variable de recursos y las prioridades de los objetivos.
Historia
La programación por objetivos fue utilizada por primera vez por Charnes, Cooper y Ferguson en 1955, [ 1 ] aunque el nombre real apareció por primera vez en un texto de 1961 de Charnes y Cooper. [ 2 ] Le siguieron obras fundamentales de Lee, [ 3 ] Ignizio, [ 4 ] Ignizio y Cavalier, [ 5 ] y Romero [ 6 ] . Schniederjans ofrece una bibliografía de un gran número de artículos anteriores a 1995 relacionados con la programación por objetivos, [ 7 ] y Jones y Tamiz ofrecen una bibliografía anotada del período 1990-2000. [ 8 ] Un libro de texto reciente de Jones y Tamiz . [ 9 ] ofrece una visión general completa del estado del arte en programación por objetivos.
La primera aplicación de la programación por objetivos en ingeniería, propuesta por Ignizio en 1962, fue el diseño y la colocación de las antenas empleadas en la segunda etapa del Saturno V. Esta se utilizó para lanzar la cápsula espacial Apolo que llevó a los primeros hombres a la Luna.
Variantes
Las formulaciones iniciales de programación por objetivos ordenaban las desviaciones no deseadas en varios niveles de prioridad, siendo la minimización de una desviación en un nivel de prioridad superior infinitamente más importante que cualquier desviación en niveles de prioridad inferiores. Esto se conoce como programación por objetivos lexicográfica o preventiva. Ignizio [ 4 ] presenta un algoritmo que muestra cómo se puede resolver un programa de objetivos lexicográfico como una serie de programas lineales. La programación por objetivos lexicográfica 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 la programación por objetivos ponderada o no preventiva. En este caso, todas las desviaciones no deseadas se multiplican por ponderaciones que reflejan su importancia relativa y se suman para formar la función de logro. Las desviaciones medidas en diferentes unidades no se pueden sumar directamente debido al fenómeno de la 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 más comunes para las constantes de normalización son el valor objetivo del objetivo correspondiente (convirtiendo así todas las desviaciones en porcentajes) o el rango del objetivo correspondiente (entre los mejores y los peores valores posibles, asignando así todas las desviaciones a un rango de cero a uno). [ 6 ] Para los responsables de la toma 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, [ 10 ] esta variante busca minimizar la desviación no deseada máxima, en lugar de la suma de las desviaciones. Esto utiliza la métrica de distancia de Chebyshev .
Fortalezas y debilidades
Una de las principales ventajas de la programación por objetivos es su simplicidad y facilidad de uso. Esto explica la gran cantidad de aplicaciones de programación por objetivos en diversos campos. Los programas lineales por objetivos pueden resolverse mediante software de programación lineal, ya sea como un único programa lineal o, en el caso de la variante lexicográfica, como una serie de programas lineales conectados.
La programación por objetivos puede, por lo tanto, manejar un número relativamente grande de variables, restricciones y objetivos. Una debilidad controvertida es su capacidad para producir soluciones que no son Pareto eficientes . Esto viola un concepto fundamental de la teoría de la decisión : ningún decisor racional elegirá conscientemente una solución que no sea Pareto eficiente. Sin embargo, existen técnicas [ 6 ] [ 11 ] [ 12 ] para detectar cuándo ocurre esto y proyectar la solución sobre la solución Pareto eficiente de manera apropiada.
La asignación de ponderaciones adecuadas en el modelo de programación por objetivos es otro tema que ha generado debate. Algunos autores [ 13 ] sugieren el uso del proceso de jerarquía analítica o métodos interactivos [ 14 ] para este fin. Asimismo, las ponderaciones de las funciones objetivo pueden calcularse en función de su preferencia mediante el enfoque de prioridad ordinal [ 15 ] .
Véase también
Enlaces externos
- LiPS : programa gratuito con interfaz gráfica de usuario (GUI) fácil de usar, diseñado para resolver problemas de programación lineal, entera y por objetivos.
- LINSOLVE - Programación lineal y programación lineal por objetivos gratuita para la ventana de línea de comandos de Windows.
Referencias
- ↑ A Charnes, WW Cooper , R Ferguson (1955) Estimación óptima de la compensación ejecutiva mediante programación lineal, Management Science, 1, 138-151.
- ↑ A Charnes, WW Cooper (1961) Modelos de gestión y aplicaciones industriales de la programación lineal, Wiley, Nueva York
- ↑ SM Lee (1972) Programación por objetivos para el análisis de decisiones, Auerback, Filadelfia
- 1 2 JP Ignizio (1976) Programación por objetivos y extensiones, Lexington Books, Lexington, MA.
- ^ JP Ignizio, TM Cavalier (1994) Programación lineal, Prentice Hall.
- 1 2 3 C Romero (1991) Manual de cuestiones críticas en la programación por objetivos, Pergamon Press, Oxford.
- ↑ MJ Scniederjans (1995) Metodología y aplicaciones de la programación por objetivos, Kluwer Publishers, Boston.
- ↑ DF Jones, M Tamiz (2002) Programación por objetivos en el período 1990-2000, en Optimización multicriterio: revisiones bibliográficas anotadas del estado del arte, M. Ehrgott y X. Gandibleux (Eds.), 129-170. Kluwer
- ↑ Jones DF, Tamiz M (2010) Programación práctica por objetivos, Springer Books.
- ↑ RB Flavell (1976) Una nueva formulación de programación por objetivos, Omega, 4, 731-732.
- ↑ EL Hannan (1980) No dominancia en la programación por objetivos, INFOR, 18, 300-309
- ↑ M Tamiz, SK Mirrazavi, DF Jones (1999) Extensiones del análisis de eficiencia de Pareto a la programación de objetivos enteros, Omega, 27, 179-188.
- ↑ SI Gass (1987) Un proceso para determinar prioridades y ponderaciones para programas de objetivos lineales a gran escala, Journal of the Operational Research Society, 37, 779-785.
- ↑ BJ White (1996) Desarrollo de productos y su retórica a partir de un único modelo jerárquico, Actas de la Conferencia Anual de la Sociedad para la Comunicación Técnica de 1996, 43, 223-224.
- ↑ Tafakkori, Keivan; Tavakkoli-Moghaddam, Reza; Siadat, Ali (2022). "Anidamiento y programación sostenibles basados en negociación en sistemas de fabricación aditiva: un estudio de caso y algoritmos metaheurísticos multiobjetivo" . Aplicaciones de ingeniería de la inteligencia artificial . 112 104836. doi : 10.1016/j.engappai.2022.104836 . ISSN 0952-1976 .
- Optimización matemática
- Análisis de decisiones multicriterio
- Meta