Programación lineal

Los modelos matemáticos de programación lineal son todos aquellos en los cuales se busca optimizar una función, sujeta a un conjunto de restricciones, donde tanto la función como el conjunto de restricciones tienen naturaleza lineal, es decir, se caracterizan por describir una línea recta. Esta surge por las investigaciones sobre operaciones que se realizaron durante la segunda guerra mundial, donde el bando aliado usó los conocimientos de un grupo de ingenieros y científicos, que le permitieron administrar de manera más eficiente los recursos con los cuales se contaba.

### Orígenes

El problema de la resolución de un sistema lineal de inecuaciones se remonta, al menos, a Joseph Fourier, después de quien nace el método de eliminación de Fourier-Motzkin. La programación lineal se plantea como un modelo matemático desarrollado durante la Segunda Guerra Mundial para planificar los gastos y los retornos, a fin de reducir los costos al ejército y aumentar las pérdidas del enemigo. Se mantuvo en secreto hasta 1947. En la posguerra, muchas industrias lo usaron en su planificación diaria.

Los fundadores de la técnica son George Dantzig, quien publicó el algoritmo simplex, en 1947, John von Neumann, que desarrolló la teoría de la dualidad en el mismo año, y Leonid Kantoróvich, un matemático de origen ruso, que utiliza técnicas similares en la economía antes de Dantzig y ganó el premio Nobel en economía en 1975. En 1979, otro matemático ruso, Leonid Khachiyan, diseñó el llamado Algoritmo del elipsoide, a través del cual demostró que el problema de la programación lineal es resoluble de manera eficiente, es decir, en tiempo polinomial.​ Más tarde, en 1984, Narendra Karmarkar introduce un nuevo método del punto interior para resolver problemas de programación lineal, lo que constituiría un enorme avance en los principios teóricos y prácticos en el área.

El ejemplo original de Dantzig de la búsqueda de la mejor asignación de 70 personas a 70 puestos de trabajo es un ejemplo de la utilidad de la programación lineal. La potencia de computación necesaria para examinar todas las permutaciones a fin de seleccionar la mejor asignación es inmensa (factorial de 70, 70!) ; el número de posibles configuraciones excede al número de partículas en el universo. Sin embargo, toma sólo un momento encontrar la solución óptima mediante el planteamiento del problema como una programación lineal y la aplicación del algoritmo simplex. La teoría de la programación lineal reduce drásticamente el número de posibles soluciones factibles que deben ser revisadas.

### Estructura

Este consta de una estructura bastante simple, en el cual existe una función objetivo, que indica que se quiere lograr con el modelo y un conjunto de restricciones o limitaciones, que representan los límites a los cuales está restringido el modelo para lograr su objetivo. Este tipo de problemas tiene muchas aplicaciones, ya sea en problemas de asignación de recursos, inventarios, problemas de dieta, entre otros.

A pesar de la gran cantidad de aplicaciones que posee, este tipo de modelos matemáticos están más orientados al área industrial y empresarial, ya que es donde más se manejan decisiones importantes que pueden afectar a una gran cantidad de entidades.

### Aplicaciones

La programación lineal constituye un importante campo de la optimización por varias razones, muchos problemas prácticos de la investigación de operaciones pueden plantearse como problemas de programación lineal. Algunos casos especiales de programación lineal, tales como los problemas de flujo de redes y problemas de flujo de mercancías se consideraron en el desarrollo de las matemáticas lo suficientemente importantes como para generar por si mismos mucha investigación sobre algoritmos especializados en su solución. Una serie de algoritmos diseñados para resolver otros tipos de problemas de optimización constituyen casos particulares de la más amplia técnica de la programación lineal. Históricamente, las ideas de programación lineal han inspirado muchos de los conceptos centrales de la teoría de optimización tales como la dualidad, la descomposición y la importancia de la convexidad y sus generalizaciones. Del mismo modo, la programación lineal es muy usada en la microeconomía y la administración de empresas, ya sea para aumentar al máximo los ingresos o reducir al mínimo los costos de un sistema de producción. Algunos ejemplos son la mezcla de alimentos, la gestión de inventarios, la cartera y la gestión de las finanzas, la asignación de recursos humanos y recursos de máquinas, la planificación de campañas de publicidad, etc.

Otros son:

* Optimización de la combinación de cifras comerciales en una red lineal de distribución de agua.
* Aprovechamiento óptimo de los recursos de una cuenca hidrográfica, para un año con afluencias caracterizadas por corresponder a una determinada frecuencia.
* Soporte para toma de decisión en tiempo real, para operación de un sistema de obras hidráulicas;
* Solución de problemas de transporte.

### Caso Práctico

La fábrica de Hilados y Tejidos "SALAZAR" requiere fabricar dos tejidos de calidad diferente T1 y T2; se dispone de 500 Kg de hilo a, 300 Kg de hilo b y 108 Kg de hilo c. Para obtener un metro de T1 diariamente se necesitan 120 gr de a, 150 gr de b y 72 gr de c; para producir un metro de T2 por día se necesitan 200 gr de a, 100 gr de b y 27 gr de c.

El T1 se vende a $4000 el metro y el T2 se vende a $5000 el metro. Si se debe obtener el máximo beneficio ¿Cuántos metros de T1 y T2 se deben fabricar?

Primero, se debe determinar cuántas respuestas hay que darle a la fábrica, en este caso son dos, y se modelas matemáticamente de la siguiente manera:

X1: cantidad de metros del tejido T1 que se deben fabricar

X2: cantidad de metros del tejido T2 que se deben fabricar

Se establece la función objetivo, que en este caso, como solo se mencionan los precios de venta, será de maximización, ya que se quiere aumentar las ganancias de la empresa.

Maximizar Z=4000X1+5000X2

Se procede a modelas las restricciones. Esto se realiza estableciendo una relación entre las necesidades de una materia prima por metro de cada tipo de tejido, con respecto a su disponibilidad.

Relación entre las necesidades de materia prima a y su disponibilidad:

0,12X1+0,2X2 ≤500

Relación entre las necesidades de materia prima b y su disponibilidad:

0,15X1+0,1X2 ≤300

Relación entre las necesidades de materia prima c y su disponibilidad:

0,072X1+0,027X2 ≤108

No negatividad: X1,X2 ≥0

Una vez obtenido el modelo, se puede resolver mediante varios métodos, como por ejemplo el método simle y el método gráfico.

Los valores óptimos para el problema planteado son los siguientes:

X1=555,55 ; X2=2166,67 ; Z\*=13055550

### Vease también

Toma de decisiones bajo certidumbre

Programación dinámica determinista

Condiciones de Karush-Kuhn-Tucker (KKT)

Programación cuadrática

Método de la ruta crítica - CPM (Critical Path Method)

Toma de decisiones bajo incertidumbre

## Referencias

Hillier, F y Lieberman, G. (s/f). Investigación de operaciones.

Taha, H (2012) Investigación de operaciones

Programación lineal