Tema 17. Programación Lineal. Aplicaciones

La Programación Matemática es una parte de las matemáticas que se encarga de la resolución de problemas en los que se determinan los extremos de una serie de funciones dentro de subconjuntos de espacios vectoriales de dimensión finita. Estos subconjuntos suelen venir dados por restricciones lineales o no lineales y los espacios vectoriales son del tipo \mathbb{K}^n donde \mathbb{K} es cuerpo. La programación matemática es una parte de lo que conocemos como Investigación Operativa, y dentro de ella se diferencia una subparte conocida como Programación Lineal, en la que las funciones a maximizar o minimizar son lineales.

La programación lineal se desarrolla a partir de la segunda guerra mundial con el fin de resolver problemas de recursos, entre ellos el conocido como problema del transporte. En dicho problema se trataba de realizar la planificación de cómo transportar cierto producto desde distintos centros de producción a distintos centros de consumo. Dicho problema fue formulado originalmente y de forma paralela por los economistas y premios Nobel en 1975, Tjalling C. Koopmans (1910-1985) y Leonid V. Kantorovich (1912-1986).

Los trabajos de Kantorovich comienzan a finales de la década de los treinta. Su idea era maximizar una función lineal dentro de un poliedro convexo. La extinta Unión Soviética no permite que su publicación salga fuera de las fronteras de la URSS y en Europa no se conocen hasta finales de la década de los cincuenta.

Al margen del problema del transporte, al finalizar la segunda guerra mundial se analiza el conocido como problema de la dieta, del economista y también premio Nobel en 1982, George J. Stigler (1911-1991). Fue una de las primeras aplicaciones de la Programación Lineal. El gobierno estadounidense se planteo el problema de seleccionar de entre un conjunto de alimentos aquellos que tuvieran un máximo nivel nutritivo con unas restricciones de cantidades, costes etc. Se trataba de optimizar una función con 77 variables y 9 restricciones. Utilizando la programación lineal el problema fue resuelto por Stigler en 1947.

No obstante, la forma de resolver ambas cuestiones y otras que se pudieran plantear en las que hubiera que optimizar una función lineal bajo unas condiciones concretas, tenía grandes dificultades. Se demostró que el óptimo se alcanzaba en los vértices del subconjunto de restricciones. El problema surgía porque no era aceptable el tener que comparar el valor que tomaba la función en cada uno de los extremos puesto que el número de estos podía ser considerablemente alto. En este caso la cantidad de operaciones a realizar era sumamente grande.

A este respecto, George Dantzig (1914-2005), este sí matemático, ideó un método revolucionario que es el que se conoce hoy día como el método del Simplex. Una de sus primeras aplicaciones estuvo relacionada con el bloqueo de Berlín en 1948, que fue el cierre de las fronteras que mantenían los ingleses y americanos con la Unión Soviética. Dicho bloqueo supuso la creación de un puente aéreo que suministrara bienes a parte de la población berlinesa. El plan de abastecimiento se resolvió utilizando la programación lineal y el método simplex ideado por Dantizg.

La llegada de los ordenadores simplificó sustancialmente el tiempo medio de las operaciones requeridas en cualquier problema. En la década de los sesenta IBM comenzó a fabricar ordenadores que eran capaces de resolver problemas con centenares de restricciones, y en la de los ochenta con miles de ellas.

En 1947 John von Neumann (1903-1957) relacionó la teoría de matrices que había desarrollado para su Teoría de Juegos, con la Programación Lineal. Con ello consiguió dar los fundamentos necesarios a una teoría que estaba naciendo y que necesitaba consolidarse matemáticamente.

El desarrollo del tema al completo puedes encontrarlo en amazon, en formato kindle o en formato papel como prefieras. También aquí puedes encontrar la relación de los temas que he publicado hasta ahora; y en el siguiente enlace puedes descargarte las primeras páginas:

Tema 17. Programación lineal. Aplicaciones.