Está en la página 1de 10

PROGRAMACIÓN LINEAL

Notas
Profesora Elsa Báez

Tema 1. Preliminares.
La programación lineal tiene sus raíces en el año de 1826 con el estudio de desigualdades lineales.
Varios matemáticos de esa época demostraron casos especiales del teorema de dualidad, el cual es
uno de los resultados más importantes relacionados con PL. En 1939 L. V. Kantorovich,
matemático ruso, advirtió la importancia práctica de cierto tipo de problemas de programación
lineal y desarrollo un algoritmo para resolverlos. Desafortunadamente, debido a la guerra fría que
imperaba entre diversas potencias mundiales, las aportaciones de Kantorovich no fueron conocidas
en occidente y por lo tanto no tuvieron mayor repercusión fuera de Rusia.

Uno de los principales impulsores de la programación lineal fue George Bernard Dantzig profesor
norteamericano de computación, física y matemáticas, cuyo padre fue un matemático ruso, que
trabajó con Poincaré en París, y que emigró a los Estados Unidos.

Cuando Dantzig estudiaba el doctorado en la Universidad de Berkeley, un día encontró en la


pizarra de unas de sus clases dos problemas estadísticos que el profesor había puesto, sin embargo,
como Dantzig llegó tarde a clase ese día no supo que el profesor los había escrito no como
ejercicios relacionados de la clase impartida, sino como casos de problemas que aún no habían sido
resueltos. Comprometido con sus estudios, procedió a resolverlos, lo cual le costó tiempo y
esfuerzo, pero al concluir el trabajo se los entregó al profesor, esperando se los recibiera, pues creyó
que los entregaba fuera de tiempo. Poco después, el profesor le comunicó que había resuelto
problemas que hasta entonces nadie había podido hacerlo.

Se considera que la mayor contribución que Dantzig hizo a la humanidad fue la creación del
algoritmo Simplex para resolver problemas de optimización lineal, Durante la segunda guerra
mundial, la programación lineal se planteó como un modelo matemático, cuando se buscaba reducir
los altos costos de los ejércitos de los Estados Unidos y sus aliados, y aumentar las pérdidas del
enemigo. En esa época Dantzig trabajaba como consejero matemático para la Fuerza Aérea
norteamericana en problemas relacionados con el desarrollo de un sistema automático de
planificación temporal de despliegue, entrenamiento y abastecimiento logístico. fue entonces que
desarrolló el método Simplex para resolver problemas de optimización lineal. Se dice que el
algoritmo Simplex fue usado en secreto por el ejército norteamericano hasta que su publicación.

A partir de su trabajo con el ejército, Dantzig se percató que muchos problemas relacionados con
recursos limitados y más de una demanda, se podrían establecer en términos de una serie de
ecuaciones y desigualdades, y aplicarles el método Simplex.Debido a que la Fuerza Aérea
denomina programas a diversos planes y proyectos que va a implementar, en el primer artículo
publicado por Dantzig se refiere a este problema como programación en una estructura lineal. En
1948 T.C. Koopmans, un colaborador de Dantzig, denominó programación lineal a la aplicación de
este tipo de estructuras . En 1949, Dantzig publicó el método Simplex para resolver programas
lineales, el cual fue ampliamente aceptado y logró gran popularidad por su capacidad de resolver
problemas a gran escala y producir soluciones óptimas en un tiempo razonable, mediante el uso
potentes computadoras. Desde entonces, la programación lineal y sus métodos de aplicación,
especialmente el algoritmo Simplex, se han utilizado extensamente en el área militar, industrial,
gubernamental y de planificación urbana, entre muchas. Algunos campos específicos donde ha
tenido amplia aplicación la programación lineal son las matemáticas puras y aplicadas, donde la PL
ha permitido obtener resultados teóricos y métodos de cálculo en la teoría de gráficas, el análisis
combinatorio y en la solución de algunos problemas de la Teoría de juegos; asimismo, en la
economía, particularmente en la economía de empresas y en diversos sectores de las industrias
alimenticia, química, petrolera, eléctrica, minera, del papel, del transporte (aéreo, marítimo,
ferroviario y carretero), de la construcción, agrícola y pesquera, entre otras.

Así de manera general e intuitiva, podemos decir que la programación lineal estudia la optimización
(minimización o maximización) de una función lineal que satisface un conjunto de restricciones
lineales de igualdad y/o desigualdad.

De entre el tipo de problemas de aplicación que atiende la PL, dentro de los campos de aplicación
señalados arriba, se pueden mencionar la distribución de personal, la elaboración de mezclas
(involucrados frecuentemente en la industria del petróleo, en la elaboración de planes de nutrición
humana, así como en la elaboración de alimento para animales), el transporte de mercancía, el
almacenamiento de productos, los planes de producción o fabricación de productos, la distribución
de bienes y servicios, el problema del viajero y las relaciones entre industrias.

Finalmente, desde la creación del método simplex muchos investigadores han contribuido al
desarrollo de la programación lineal, desarrollando la teoría matemática correspondiente, diseñando
códigos y métodos computacionales eficientes, experimentando nuevas aplicaciones, o utilizando la
programación lineal como una herramienta auxiliar para resolver problemas más complejos,
mismos que caen dentro de ámbitos que tienen cierta relación con la PL, tales como la
programación entera, la programación no lineal, la programación estocástica, problemas
combinatorios, problemas discretos y problemas de control óptimo. En ciertos campos, la PL ha
tenido una amplio uso para lograr minimizar costos, como en la planeación en las industrias del
petróleo y química; o maximizar ganancias, como en la industria automotriz. Si bien la PL ha
ofrecido un gran e invaluable servicio en diversas áreas, en algunos otros aún no ha sido apreciada,
o explotada, en todo su potencial, ejemplo de esto es el caso del modelado de la dinámica del
crecimiento poblacional del mundo para la cual se tienen recursos limitados, o incluso decrecientes.

1.1 Ejemplos de problemas de dos variables, que dan lugar a la búsqueda de una solución
óptima de una función en un conjunto definido por igualdades o desigualdades.

A continuación se presentan algunos problemas prácticos sencillos (simplificados) que pueden ser
modelados como un problema de programación lineal en dos variables. Los primeros dos se
describen con mayor detalle, con objeto de identificar los elementos que lo componen y poder
plantear el correspondiente modelo matemático.

Problema 1
La Compañía Arcoiris cuenta con una pequeña fábrica de pinturas para interiores y exteriores de
casa, para distribución al mayoreo. Para su proceso de producción de pinturas se utilizan dos
materiales básicos, llamémosles A y B. La disponibilidad máxima de A es de 6 toneladas diarias; la
de B es de 8 toneladas por día. Las necesidades de materia prima por toneladas de pintura para
interiores y exteriores se resumen en la Tabla I.
Un estudio del mercado ha establecido que la demanda diaria de pintura para interiores no puede ser
mayor que la de pintura para exteriores en más de una tonelada. Asimismo, el estudio señala que la
demanda máxima de pintura para interiores está limitada a dos toneladas diarias.
El precio al mayoreo por tonelada es de $3000 (dólares) para la pintura de exteriores y de $2000
(dólares) para la pintura de interiores1.
¿Cuánta pintura para exteriores e interiores debe producir la compañía todos los días para
maximizar el ingreso bruto?

1
Investigación de Operaciones. Taha H. Quinta edición. Alfaomega. pp. 18-21.
Toneladas de materia prima
por tonelada de pintura
Materia Disponibilidad
Exterior Interior
prima máxima (toneladas)
A 1 2 6
B 2 1 8
Tabla I. Requerimientos y disponibilidad de materia prima para la
elaboración de las pinturas de exteriores e interiores.

Ahora que el problema ha sido planteado, debemos proceder a elaborar el correspondiente modelo
matemático. De manera general, las siguientes preguntas serán de gran ayuda, incluso
fundamentales, para lograr obtener el modelo matemático de cualquier problema de programación
lineal.
a) ¿Qué busca determinar el modelo?, o en otras palabras ¿cuáles son las variables
(incógnitas del problema?
b) ¿Qué restricciones deben imponerse a las variables a fin de satisfacer las limitaciones
del sistema representando por el modelo?
c) ¿Cuál es la meta u objetivo que se necesita o desea alcanzar para determinar la mejor
solución (solución óptima) de entre todos los valores factibles de las variables?
Una manera efectiva de responder a estas preguntas consiste en hacer un resumen del problema:
La compañía busca determinar las cantidades (en toneladas) de pintura para exteriores e interiores
que se producirán para maximizar (incrementar hasta donde sea factible) el ingreso bruto total (en
miles de unidades monetarias, es decir en miles de dólares para este problema), a la vez que se
satisfacen las restricciones de la demanda y el uso de materias primas.
El punto central y, quizá el más importante para poder obtener el modelo matemático
correspondiente, consiste en identificar, en primer término, las variables o incógnitas a determinar,
y después expresar el objetivo y las restricciones como funciones de las variables. Para el caso de la
Compañía Arcoiris tenemos:
Variables. Dado que se desea determinar las cantidades de pintura para exteriores e interiores que se
producirán, las variables del modelo se pueden definir como

En el ámbito de la programación lineal, y se les conoce como variables de decisión.

Función objetivo. Si cada tonelada de pintura para exteriores se vende en $3,000, el ingreso bruto
obtenido de la venta de toneladas es 3 miles de unidades monetarias (miles de dólares). De
manera similar, el ingreso bruto que se obtiene de vender toneladas de pintura para interiores es
2 miles de unidades monetarias. Bajo la suposición de que las ventas de pintura para exteriores e
interiores son independientes, el ingreso bruto total se convierte en la suma de los dos ingresos.
Si llamamos z al total de ingreso brutos (en miles de dólares), la función objetivo se puede escribir
en términos matemáticos como

así, la meta u objetivo consiste en determinar los valores (factibles) de y que maximizarán el
valor de z.
Restricciones. El problema de la Compañía Arcoiris impone restricciones sobre el uso de materias
primas y sobre la demanda. La restricción del uso de materias primas se puede expresar en forma
abreviada como
( ) ( )

Esto nos lleva a las siguientes restricciones, a partir de los datos del problema sintetizados en la
tabla de arriba:
(materia prima A)
(materia prima B)

Por otra parte, las restricciones sobre la demanda se expresan en forma simplificada como

( ) tonelada por día

( ) toneladas por día

En términos matemáticos, estas relaciones se expresan como


(exceso de pintura para interiores sobre pintura para exteriores)
(demanda máxima de pintura para interiores)

Una restricción implícita, que no debe pasarse por alto, y que por tanto debe incluirse es que la
cantidad que se produce de cada pintura no puede ser negativa (menor que cero). Para evitar obtener
una solución como ésta, se imponen restricciones de no negatividad, que por lo general se escriben
como
(pinturas para interiores)
(pinturas para exteriores)

En el problema de la empresa Arcoiris, cualquier combinación específica de producción de pintura


para interiores y pintura para exteriores se conoce como una solución al problema. Sin embargo,
solo aquellos valores de las variables y que satisfacen todas las restricciones del modelo,
incluyendo las restricciones de no negatividad, constituyen una solución factible. Aquella solución
factible que proporcione la contribución más grande al ingreso bruto total, se le denomina solución
óptima.

De esta maneta el modelo matemático completo para el problema de la Compañía Arcoiris se


puede resumir como:
(función objetivo)
sujeto a

(restricciones)

Como se observa este modelo constituye un problema de programación lineal (o un programa


lineal) porque tanto la función objetivo como las restricciones son lineales.

Problema 2
Químicos Clean es una empresa que produce diversos productos químicos. En un proceso de
producción en particular se utilizan tres materias primas para elaborar dos productos: un aditivo
para combustible, y una base disolvente. El aditivo para combustible se vende a empresas petroleras
y se utiliza en la producción de gasolina y otros combustibles relacionados. La base disolvente se
vende a varias empresas químicas y se utilizan tanto para productos de limpieza para el hogar como
industriales. Para formar el aditivo para combustible y la base disolvente se mezclan las tres
materias primas, como se indica en la Tabla II. Como se observa de la tabla, una tonelada de aditivo
para combustible requiere de una mezcla de de tonelada de la materia prima 1, y de tonelada de
la materia prima 3. Una tonelada de disolvente requiere de una mezcla de de tonelada de la
materia prima 1, de tonelada de la materia prima 2, y de tonelada de la materia prima 3.

Producto Materia Materia Materia


prima I prima 2 prima 3
Aditivo para combustible 0

Base disolvente

Tabla II. Necesidades de materia prima por tonelada para el


problema de la empresa Químicos Clean.

La producción de Químicos Clean está limitada por la disponibilidad de las tres materias primas las
cuales, para el período de producción actual, la empresa tiene disponibles las cantidades señaladas
en la Tabla III:

Materia prima Cantidades disponibles


para la producción

Materia prima 1 20 toneladas

Materia prima 2 5 toneladas

Materia prima 3 21 toneladas


Tabla III. Disponibilidad de materia prima.

Debido al deterioro y a la naturaleza del proceso de producción, cualquier materia prima que no se
utilice para la producción actual resulta inútil y debe descartarse.

El departamento de control de calidad ha analizado las cifras de producción, asignando todos los
costos correspondientes y, para ambos productos, llegó a precios que resultarán en una contribución
a la utilidad de 40 dólares por cada tonelada de aditivo para combustible producida, y de 30 dólares
por cada tonelada de base disolvente producida. La administración de Químicos Clean, después de
un análisis de la demanda potencial, ha concluido que los precios establecidos asegurarán la venta
de todo el aditivo para combustible y de toda la base disolvente que se produzca.

La empresa Químicos Clean desea determinar cuántas toneladas de cada producto deberá producir
para maximizar la contribución total a la utilidad.

De acuerdo con lo que comentamos en el primer ejemplo, podemos resumir el problema como que
la empresa desea determinar las cantidades de aditivo para combustible y de base disolvente que
debe producir para maximizar la contribución total a la utilidad. Ahora podemos definir cuáles son
las variables, la función objetivo y las restricciones del problema.
Variables. Con base en el resumen anterior, podemos definir las variables del problema como:

Función objetivo. Observamos que la contribución a la utilidad de la empresa proviene de la que


proviene de la producción de toneladas de aditivo para combustible, y de la que proviene de la
producción de toneladas de base disolvente. Dado que Químicos Clean gana 40 dólares por cada
tonelada de aditivo para combustible producido, la empresa ganará $40 si se producen
toneladas de aditivo para combustible. De manera similar, si Químicos Clean gana 30 dólares
por cada tonelada producida de base disolvente, entonces la empresa ganará $30 si se producen
toneladas de base disolvente. Si la contribución total a la utilidad la denotamos por z (en
dólares), entonces la función objetivo puede expresarse como

de esta manera, la meta u objetivo consiste en encontrar la cantidad y de toneladas, de


aditivo para combustible y de base para disolvente, respectivamente, que maximice la contribución
total a la utilidad.

Restricciones: Dado que las cantidades de materias primas disponibles con que cuenta Químicos
Clean, se tienen tres condiciones que limitan las cantidades de fabricación de aditivo para
combustible y de base disolvente que la empresa puede producir. De la Tabla II se observa que, de
acuerdo con los requerimientos de producción, cada tonelada de aditivo para combustible requiere
de toneladas de la materia prima 1, por lo que para producir toneladas de aditivo para
combustible se requerirá de toneladas de la materia prima 1. Por otra parte, cada tonelada de
base disolvente requiere de de toneladas de la materia prima 1, así que para fabricar toneladas
de base disolvente se requerirá de . De lo anterior se tiene que el total de toneladas que se
usarán de la materia prima 1 para producir toneladas de aditivo para combustible y toneladas
de base disolvente es y, dado que solo existen 20 toneladas disponibles de la materia
prima 1, entonces se debe cumplir que . De manera similar, se puede analizar la
cantidad total de toneladas que se requiere utilizar de las materias primas 2 y 3, considerando la
disponibilidad que hay de éstas. Así, estas relaciones se pueden expresar de manera general como

( ) ( )

A partir de lo cual, se obtienen las siguientes restricciones del problema

Finalmente, como es claro no es posible producir cantidades negativas de toneladas de aditivo para
combustible de base disolvente, lo cual queda representado por las restricciones o condiciones de no
negatividad
y

Con estas restricciones de no negatividad aseguramos que la solución del problema contendrá solo
valores no negativos para las variables de decisión. Las restricciones de no negatividad son una
característica general de todos los problemas de programación lineal.

De esta manera, podemos concluir que el modelo matemático de programación lineal que se debe
resolver para dar atender el problema de la empresa Químicos Clean esta dado por

sujeto a

En los siguientes ejercicios, solo se planteará el problema y se describirá en términos matemáticos


el modelo de programación lineal correspondiente.

Problema 3
Una compañía fabrica dos tipos de aparatos, manuales y eléctricos. Cada uno de ellos requiere en su
fabricación de el uso de tres máquinas: A, B y C. Un aparato manual requiere de usar 2 hrs. la máquina A,
1 hr. la máquina B y de 1 hr. la máquina C. Un aparato eléctrico requiere de usar 1 hr. La máquina A, 2
hrs. la máquina B y 1 hr. La máquina C. Además, el número máximo de horas disponibles por mes para el
uso de cada una de las tres máquinas es de 180, 160 y 100, respectivamente. La utilidad que se obtiene
con los aparatos manuales es de $4 (dólares) , mientras que con los eléctricos es de $6 (dólares). Si la
compañía vende todos los aparatos que fabrica, ¿cuántos aparatos de cada tipo debe fabricar la compañía
para maximizar la utilidad mensual?

La información proporcionada en el problema es posible sintentizarla en la siguiente tabla (Tabla IV).

Máquina Utilidad
A B C
Aparato por unidad

Manual 2 h. 1h. 1h. $4

Eléctrico 1 h. 2 h. 1h. $6
Horas totales
180 160 100
disponibles
Tabla IV. Requerimientos y disponibilidad de los recursos.

Así, es relativamente sencillo verificar que si


el correspondiente modelo de programación lineal puede representarse como

sujeto a

Problema 4
Una dieta debe contener cuando menos 16 unidades de carbohidratos y 20 de proteína. El alimento A
contiene 2 unidades de carbohidratos y 4 de proteína; el B contiene 2 unidades de carbohidratos y 1 de
proteína. Si el alimento A cuesta $1.20 euros por unidad y B cuesta $0.80 euros por unidad ¿cuántas de
cada alimento deben adquirirse para minimizar los costos?

Aunque no es estrictamente indispensable, nuevamente condensamos la información


proporcionada en una tabla (Tabla V), con objeto de identificar fácilmente los datos y sus
relaciones.
Nutrimentos Costo
Alimento Carbohidratos Proteínas por
unidad
A 2 u. 4 u. $ 1.20

B 2 u. 1 u. $ 0.80
Requerimientos 16 u. 20 u.
totales de nutrimentos

Tabla V. Requerimientos de nutrimentos.

Además consideremos que

De donde el correspondiente problema de programación lineal que deberá resolverse para dar respuesta al
problema está dado por

sujeto a
(total de carbohidratos aportados)

(total de proteínas aportadas)


Observe que, en este caso, se desea minimizar el costo por comprar y unidades de los alimentos A
y B, respectivamente. Asimismo, las primeras dos restricciones asociadas a los requerimientos
nutricionales involucran el signo , ya que el total de carbohidratos que se debe aportar a la dieta es
cuando menos de 16 unidades, y de manera similar el total de proteínas que se debe asegurar ingerir
deben ser cuando menos de 20 unidades. Las restricciones de no negatividad nuevamente están
garantizadas dado que no se puede comprar cantidades negativas de unidades de cada uno de los
alimentos.

Problema 5.
Una compañía extrae minerales de ciertas minas. El número de libras de los minerales  y  que se
pueden extraer de cada tonelada que se saca de las minas I y II puede representarse mediante la Tabla VI,
junto con los costos por cada tonelada extraída de estas minas. Si la compañía desea obtener cuando
menos 3000 libras del mineral  de y 2500 libras del mineral , ¿cuántas toneladas de cada mina se deben
procesar para minimizar los costos de extracción?

Mina
I II
Mineral
 100 lb. 200 lb.

 200 lb. 50 lb.


Costo de extracción $50 $60.
por tonelada

Tabla VI. Libras obtenidas de cada mineral por tonelada extraída


Si definimos como

entonces el correspondiente problema de programación lineal es

sujeto a

Si bien estos ejemplos involucran solo dos variables de decisión, proporcionan una idea general bastante
clara de lo que es un problema de programación lineal, así como los elementos que lo componen. Con
esto, estamos en posición de definir lo que es un problema de programación lineal. Finalmente, tres
observaciones muy importantes que debemos de asegurarnos de no perder de vista cuando tratemos con
problemas de programación lineal:

1) Definir con todo detalle y claridad lo que representa cada una de las variables involucradas, y
asegurarse de usar una notación adecuada, ayudará en gran medida a describir correctamente el
modelo matemático correspondiente. Por ejemplo, en el caso del problema 4 que habla sobre los
nutrimentos que debe tener contener una dieta, usar las letras A y B (en lugar de y u otras
adecuadas) para indicar la cantidad de unidades de los alimentos a comprar no es una buena elección
para las variables, ya que en principio los alimentos involucrados son llamados A y B, y no es
conveniente utilizarlas nuevamente estas para representar las cantidades de unidades de cada uno de
estos mismos alimentos que se requieren. Es importante ser muy cuidadoso con los nombres de las
variables que utilicemos, eso ahorrará muchos problemas y confusiones innecesarios creados por caer
en este error. Se sugiere utilizar nombres y o subíndices que indique lo que representa cada variable,
para evitar tener que estar regresando a ver lo que representa.

2) Es importante asegurarse que las unidades que involucren, tanto en la función objetivo como en
ambos lados de las restricciones sean consistentes, en caso contrario los resultados obtenidos al
resolver el problema de programación lineal (PL) no serán correctos. En caso de requerirse, se deberá
hacer las conversiones necesarias para asegurar que todos los elementos (función objetivo y
restricciones) del problema sean consistentes en cuanto a sus unidades.

3) Es indispensable verificar si un problema de programación lineal cumple con las condiciones de no


negatividad, y en tal caso asegurarse de incluirlas en el modelo matemático, ya que si éstas no
aparecen en el modelo matemático se estará dando a entender que las variables pueden tomar
cualquier valor, es decir pueden ser positivas, cero o inclusos negativas. Esto tendrá mayor relevancia
cuando se desea aplicar el método Simplex para resolver un problema de PL, pues uno de los
requisitos para que este algoritmo funcione correctamente, es que las variables involucradas deben ser
no negativas. Cabe aclarar que no todo problema de PL cumple las restricciones de no negatividad,
sin embargo, cuando esto sucede es posible usar variables auxiliares que ayudarán a que las
condiciones de no negatividad se cumplan.

También podría gustarte