Está en la página 1de 22

INTRODUCCIÓN A LA PROGRAMACIÓN LINEAL

10.1. Introducción
10.2. Resolución gráfica
10.3. Soluciones de un problema LP
10.4. Resolución de problemas LP: SOLVER

1
10.1. Introducción

• Programación Lineal (Linear Programming, LP, en inglés): Técnica de


resolución de problemas muy usada en entornos económicos en los que hay
que gestionar una serie de recursos para realizar una determinada actividad.

• En este tipo de problemas existen múltiples soluciones admisibles, empleándose


un criterio para discriminar entre ellas con el fin de encontrar la mejor solución. A
este proceso de búsqueda se le denomina optimización.

• Los problemas de Programación Lineal son, por tanto, un caso particular de


problemas de optimización, denominación que engloba un rango más amplio de
problemas (optimización no lineal, programación dinámica, optimización
combinatoria, optimización multiobjetivo, etc.).
• La metodología de optimización consta de dos pasos:
• Modelado del problema
• Resolución del modelo

2
• Los problemas de Programación Lineal se expresan mediante un conjunto de
relaciones matemáticas que se conoce como modelo de programación lineal.

• Un modelo de programación lineal está formado por tres componentes:


• Un conjunto de variables de decisión: incógnitas cuyo valor se quiere
determinar y que corresponden a las decisiones que hay que tomar en la
actividad cuyo funcionamiento se quiere optimizar.
• Un conjunto de restricciones lineales que expresen las relaciones
existentes entre las variables de decisión, relaciones que deben cumplirse
para que una solución sea admisible, esto es, factible (e.g. el consumo de
recursos debe ser inferior a la cantidad disponible de los mismos, la
cantidad a fabricar debe ser superior a la demanda, etc). Se denomina
región de admisibilidad al conjunto de soluciones que son admisibles, esto
es, que satisfacen todas las restricciones del problema.
• La función objetivo (lineal) que expresa el criterio que se desea optimizar
(e.g. maximizar beneficios, minimizar costes, etc). Se utiliza para medir la
calidad de una solución de forma que lo que se pretende es encontrar la
solución admisible con el mejor valor de esta función objetivo.

3
Los problemas de optimización dependen fundamentalmente para su
resolución del tipo de variables que forman parte del mismo y del carácter
lineal o no lineal de la función objetivo y las restricciones.

• Continuos (Variables continuas)


PROGRAMACIÓN LINEAL [CONTINUA]

• Lineales • Enteros (Variables enteras)

(Función Objetivo y PROGRAMACIÓN LINEAL ENTERA


Restricciones lineales)
• Entera mixta (Variables enteras y continuas)
Problemas
PROGRAMACIÓN LINEAL MIXTA

• No Lineales
(Función Objetivo y/o restricciones no lineales)

4
10.2. Resolución gráfica
Ejemplo: Un granjero dispone de 110 hectáreas de terreno, que puede cultivar con
cebada o girasol. Cada hectárea cosechada de cebada le supone un beneficio de
50. Los beneficios de la venta de la cosecha de girasol son de 80 unidades por
hectárea. La cosecha de una hectárea de cebada supone 4 horas de trabajo por
hectárea y la de girasol de 8 horas por hectárea, existiendo un periodo disponible
para sembrar de 720 horas. Finalmente, sólo 80 hectáreas de terreno son aptas
para el cultivo de cebada. ¿Cuantas hectáreas de cebada y de girasol debe
sembrar para maximizar el beneficio?

1. Definición de las variables de decisión.


CEB: Número de hectáreas de tierra destinada a cultivar cebada
GIR: Número de hectáreas de tierra destinada a cultivar girasol

5
2. Definición de las restricciones.
• Restricción 1: El granjero no puede cultivar más de 110 hectáreas de
tierra. CEB  GIR  110
• Restricción 2: El granjero solo dispone de 720 horas de trabajo.
4 CEB  8 GIR  720
• Restricción 3: La cantidad de terreno disponible para sembrar cebada es
de 80 hectáreas. CEB  80
• Restricción 4: No negatividad de las variables CEB  0 , GIR  0
3. Definición de la función objetivo.
• La función objetivo es la maximización de los beneficios
Max Z  50 CEB  80 GIR
• Pasos a seguir para resolver gráficamente un problema de programación lineal:
1. Los ejes de abscisa y ordenada son empleados para representar las
variables de decisión (2 variables de decisión).
2. Representación de la región factible a partir de la representación de cada
una de las restricciones.
3. Representación de la función objetivo parametrizada según su valor. 6
[MAX] z = 50 CEB + 80 GIR
Determinar la región admisible CEB + GIR ≤ 110
4 CEB + 8 GIR ≤ 720
CEB ≤ 80
(1) 4 CEB + 8 GIR ≤ 720 CEB ≥ 0 GIR ≥ 0

(4) CEB ≥ 0 GIR ≥ 0 Región de


admisibilidad convexa

(2) CEB + GIR ≤ 110 (3) CEB ≤ 80

7
Representar la función objetivo [MAX] z = 50 CEB + 80 GIR

Óptimo  Punto interior


Dirección de
máxima mejora

Solución
óptima

La solución óptima es aquella que encontrándose dentro de la región


factible proporciona el mayor (MAX) o menor (MIN) valor posible de
la función objetivo.

8
Ejemplo: Un fabricante de mantequilla desea optimizar la producción diaria de
su factoría. Fabrica dos tipos de mantequilla (Estándar y Media Sal). Un Kilo
de mantequilla Estándar proporciona un beneficio de 10 € y uno de Media Sal
de 15 €. Para la producción de mantequillas se usan tres procesos,
pasterización, centrifugado, y batido. La capacidad de pasterización es de 6
horas/día, de centrifugado es de 3 horas/día y de batido es de 3.5 horas/día.
Los tiempos (en minutos) de proceso por cada kilo de mantequilla se recogen
en la siguiente tabla:

Concepto Estándar Media Sal


Pasterización 3 8
Centrifugado 3 2
Batido 3 4

Plantear el modelo de programación lineal que maximiza las ganancias diarias


del fabricante, cumpliendo las limitaciones de capacidad. Resolver
gráficamente.

9
1. Definición de las variables de decisión.
X1: Cantidad de mantequilla Estándar a producir por día (Kg/día).
X2: Cantidad de mantequilla Media Sal a producir por día (Kg/día).
2. Definición de las restricciones.
R1: Limitación en las horas de pasterización (6 horas/día=360 minutos/día).

3 X 1  8 X 2  360
R2: Limitación en las horas de centrifugado (3 horas/día=180 minutos/día).

3 X 1  2 X 2  180
R3: Limitación en las horas de batido (3.5 horas/día=210 minutos/día)

3 X 1  4 X 2  210
R4: No negatividad de las variables
X 1  0, X 2  0
3. Definición de la función objetivo.
La función objetivo es la maximización de los beneficios diarios

Max Z  10 X 1  15 X 2
10
x2
100
M ax 10 x1  15 x 2
90
Región de s .a .
80
admisibilidad 3 x1  8 x 2  360 (R 1)
70
convexa 3 x1  2 x 2  180 (R 2)
60
50 3 x1  4 x 2  210 (R 3)
40 x1 , x 2  0
30
20
10 R3

10 20 30 40 50 60 70 80 90 100 110 120 130 140 150 x1


R1
3 x1  2 x 2  180 R2 3 x1  4 x 2  210 3 x 2  8 x 2  360

11
El Óptimo de un problema de Programación Lineal (si existe)
siempre se encuentra en la frontera de la región.

x2 Óptimo  Punto interior


50
Desplazando paralelamente la F.O. hasta que
sea tangente a la frontera de la región
40 admisible se encuentra el óptimo
A (20, 37.5)

30

Dirección de Por tanto, el óptimo se encuentra en el


20
máxima mejora punto A (20, 37.5), siendo el valor de la
función objetivo 762.5 u.m./día.
10

10 20 30 40 50 60 70 x1
z=100
z  10 x1  15 x2
z=0
12
10.3. Soluciones de un problema LP

Solución optima única: Es el caso más habitual.

Máx Z  3 x1  2 x2
x2 s.a.
8 R1
R2 R3  2 x1  3 x2  20 R1
2 x1  x2  15 R 2 
6
x1  7  R 3
x1  2 x2  15 R 4 
x1 , x2  0
4
R4

2 El óptimo se encuentra en el
3 x1  2 x 2  0 punto A(7,0), siendo el valor de la
función objetivo 21.

2 4 6 A 8 x1 13
Soluciones alternativas: Cuando la solución óptima del problema no es única sino
que existen múltiples soluciones alternativas con el mismo valor (óptimo) de la
función objetivo. Se puede escoger cualquiera de dichas soluciones; todas ellas son
igualmente válidas.

x2
Máx Z  x1  x2
4 s.a.
R1 4 x1  x2  4 R1
 2 x1  6 x2  9 R 2 
3
R2
x1  x2  5 R3
x1 , x2  0
2
Son soluciones alternativas todas
las que están en la frontera de
R3 admisibilidad definida por R3.
1 x1  x2  1

1 2 3 4 5 x1 14
Problema infactible: Hay veces en que el problema no tiene ninguna solución
admisible, esto es, la región de admisibilidad es vacía. En ese caso el problema no
se puede resolver. Normalmente eso ocurre debido a una mala especificación del
modelo (e.g. restricciones incompatibles, imposible de que se puedan cumplir
simultáneamente)

x2
Máx Z  x1  x 2
4 s .a .
R1 2 x1  x 2  6 R1
3
x1  x 2  4 R 2 
x1 , x 2  0

R2
1

x1  x 2  0
1 2 3 4 5 x1
15
Problema no acotado: Cuando la solución óptima es no acotada (esto es, alguna de
las variables de decisión toma un valor ±) y por tanto, también es ± el valor óptimo
de la función objetivo. Normalmente eso ocurre debido a una mala especificación del
modelo (e.g. se ha olvidado imponer cierta restricción del problema real)

Máx Z  2 x1  5 x 2
x2
s .a .
4 2 x1  x 2  7 R1 
9 x1  2 x 2  18 R 2 
x1 , x 2  0
3

1 2 3 4 5 x1
2 x1  5x2  0 16
Restricción redundante: Cuando el cumplimiento de una restricción está
garantizado si se cumple otra más restrictiva. En ese caso la restricción redundante
puede eliminarse y la solución óptima del problema no cambia en absoluto (ya que
la región de admisibilidad sigue siendo la misma).

x2 Máx Z  x1  x 2
s .a .
4
3 x1  4 x 2  12 R1
4 x1  7 x 2  28 R 2 
3
x1 , x 2  0
R1

2 R2

1
x1  x 2  0

1 2 3 4 5 x1
17
10.4. Resolución de problemas LP

• Los problemas de optimización se resuelven haciendo uso de ciertos


programas/paquetes de optimización de los cuales los más conocidos son:
• Solver (funciona sobre Excel y OpenOffice)
• LINGO
• CPLEX
• LPSOLVE (Open source, licencia GPL/GNU)
• GLPK (Open source, licencia GPL/GNU)

18
• Solver es una herramienta para resolver problemas de optimización.
• Emplea diversos métodos de resolución:
• Programación lineal continua: Método del simplex.
• Programación lineal entera: Método de ramificación y acotación.
• Problemas no lineales: Generalized Reduced Gradient method (GRG2).
• Software: “Calc” de OpenOffice o Microsoft Excel
• Open Office: Si en el menú herramientas aparece la opción Solver, ya se
encuentra instalado
• Microsoft Excel:
• Si no aparece la opción de solver es necesario instalar el
componente desde el disco de instalación de Microsoft Office.
• Si aparece la opción de Solver es necesario marcarla.

19
Resolución con Solver (1/3)

• Pasos para instalar el complemento de Solver con


Excel 2010 y posterior:
1. Archivo -> Opciones
2. Complementos -> Solver -> Ir…
3. Seleccionar “Solver” y Aceptar
4. Aparece en: Datos->Análisis->Solver

Máx Z  5000 x 1  4000 x2


• Pasos en la resolución de un modelo con Excel s . a .
(Solver): 6 x 1  4 x 2  24
x1  2 x 2  6
1. Plantear el modelo de Programación Lineal
x2  2
 x1  x 2  1
x1 , x 2  0
Resolución con Solver (2/3)
2. Modelar datos de la función objetivo y restricciones
• Seleccionar las casillas que contendrá los valores de las variables (una
casilla por variable).
• Seleccionar y especificar las casillas que:
• Contienen los coeficientes de la función objetivo.
• Contendrá el valor de la función objetivo.
• Especificar restricciones.
• Seleccionar las casillas y signo de las restricciones.
• Seleccionar las casillas donde se especificarán los términos
independientes (RHS, Right Hand Side) de las restricciones.
Resolución con Solver (3/3)
3. Resolución del problema:
• Ejecutar Solver: Datos->Análisis->Solver
• Indicar qué celdas corresponden:
• Función objetivo
• Variables
• Restricciones
• Elegir el método de resolución
• Fijar si variables son no negativas
• Resolver

También podría gustarte