Técnica de investigación de operaciones para resolver ciertas clases de problemas que implican muchas variables donde se debe hallar el mejor valor o un conjunto de mejores valores. Lo más probable es que sea factible cuando la cantidad a ser optimizada, a veces llamada la función objetiva, puede ser expresada como una expresión matemática en términos de las diversas actividades dentro del sistema, y cuando esta expresión es simplemente proporcional a la medida de las actividades, esto es, es lineal, y cuando todas las restricciones son también lineales. Es diferente de una programación de computación.