Title: Tema 3' Programacin lineal
1Tema 3. Programación lineal
2Programación lineal
- Problemas lineales (forma estándar)
- max cTx c
coeficientes de la función objetivo - s.a Ax b A ? ?m?n m
restricciones y n variables - x ? 0
- mltn y las filas de A linealmente independientes
rg(A)n - Estudiaremos sus propiedades especiales
- Métodos especÃficos de solución
- Método Simplex
- Métodos de puntos interiores
3Transformación a forma estándar
- Transformación a forma estándar
- max cTx
- s.a Ax b
- x ? 0, b
?0 - Conversión de una función objetivo de
minimización - Conversión de los lados derechos negativos
- Conversión de restricciones de desigualdad
- Conversión de variables no positivas y no
restringidas
4Transformación a forma estándar
- 1.-Conversión de una función objetivo de
minimización - Multiplicar por -1
- min 2x1 - 3x2 - x3 2x4? max -2x1 3x2
x3 - 2x4 - 2.-Conversión de los lados derechos negativos
- Multiplicar por -1 y cambiar desigualdades
- 2x1 - x2 2x3 x4 ? -1? -2x1 x2 -2x3 - x4 ?
1 - 3.-Conversión de restricciones de desigualdad
- Añadir/sustraer variables de holgura
- -2x1 x2 -2x3 - x4 ? 1?-2x1 x2 -2x3 - x4
s1 1, s1 ?0 - x1 ?4? x1- s14 , s1 ?0
- 4.-Conversión de variables no positivas y no
restringidas - x1 libre? x1x1-x-1, x1 ?0 , x-1 ?0
- x1 ?0?-x-1, x-1 ?0
-
5Transformación a forma estándar
- Original
- min x1 - 2x2 - x3
- s.a x1
x3 ? 1 - x1 2x2
2x3 ? 2 - x ? 0
- Forma estándar
- max -x1 2x2 x3
- s.a x1
x3 - s1 1 - x1 2x2
2x3 s2 2 - x ?
0, s ? 0
6Transformación a forma estándar
- Original
- min 4x1 3x2 x3
- s.a 2x1 x2 x3
? -10 - x1 x2 3x3
? 8 - x1 8x24x3 ? -5
- x1 ? 0, x2 ? 0
- Forma estándar
- max -4x1 3x2(x3- x-3)
s.a -2x1 x2(x3- x-3)s1 10 - x1 x2 3
(x3- x-3) s2 8 - -x1 8x24 (x3- x-3) s3 5
- x1 ? 0, x2 ? 0, x3 ? 0, x-3 ?0, s ? 0
7Transformación a forma estándar
- Original
- min x1 - 2x2 - x3
- s.a x1
x3 ? 1 - x1 2x2
2x3 ? 2 - x1 ? 2, x2 ? 0, x3 ? 2
- Forma estándar
- max -x1 - 2 x-2 (x3- x-3)
s.a x1 (x3- x-3) -
s1 1 - x1 2(-x-2)
2(x3- x-3) s2 2 - x1 s32
- (x3- x-3) s42
- x ? 0, s ? 0
8Programación lineal
- Propiedades especiales del problema
- La región factible es convexa
- Toda solución local es global
- Las condiciones necesarias de primer orden son
suficientes - Propiedad de convexidad x e y factibles,
- A (?x (1-?)y ) ?Ax (1-?)Ay ?b (1-?)b b
- ?x (1-?)y ? 0
9Programación lineal
- Propiedades especiales del problema
- La región factible es un politopo
- Figura limitada por hiperplanos
- Elementos de un politopo
- Caras, aristas, vértices
- Algunos de estos elementos son importantes para
el cálculo de la solución - Cómo identificarlos caracterización algebraica
10Método gráfico del simplex
- Modelo de Programación Lineal
- Max 8x1 5x2
- Sujeto a
- 2x1 1x2 ? 1200
- 3x1 4x2 ? 2400
- x1 x2 ? 800
- x1 - x2 ? 450
- xj ? 0 , j 1, 2.
11Método gráfico del simplex
Restricción reduntante
No Factible
Factible
x1-x2lt450
3x14x2lt2400
Punto Extremo
Punto Medio
Punto Inferior
Tipos de puntos de factibilidad
12Método gráfico del simplex
8x15x25040, x1480, x2240
No Factible
Factible
3x14x2lt2400
400
8x15x23000
13Método gráfico del simplex
No Factible
Factible
14Ejercicio propuesto
- Resolver mediante el método gráfico el siguiente
problema de programación lineal - z max 5x1 4x2
- s.a 6x1 4x2 ? 24
- x1 2x2 ? 6
- -x1 2x2 ? 1
- x2 ? 2
- x ? 0
15Método gráfico del simplex
16Análisis de sensibilidad
- Es sensible la solución óptima a cambios en los
parámetros de entrada? - Posibles razones para responder la pregunta
anterior - Los valores de los parámetros usados fueron los
mejores estimados. - Medio ambiente por ser dinámico puede producir
cambios. - El análisis del qué pasa si puede proveer
información económica y operacional.
17Análisis de sensibilidad. Función objetivo
- Rango de optimalidad
- La solución óptima permanecerá inalterable
mientras - Un coeficiente de la función objetivo se
encuentre dentro del rango de optimalidad. - No hay cambios en ningún otro parámetro.
- El valor de la función objetivo cambiará si el
coeficiente - multiplica una variable cuyo valor es distinto de
cero.
18Análisis de sensibilidad. Función objetivo
X2
1200
800
Max 8x1 5x2
600
Max 4x1 5x2
Max 3.75x1 5x2
Max 2x1 5x2
X1
400
600
800
19Análisis de sensibilidad. Función objetivo
X2
1200
Max8x1 5x2
10
Max 10 x1 5x2
Max 3.75 x1 5x2
3.75
800
600
Max8x1 5x2
Max 3.75x1 5x2
X1
400
600
800
20Análisis de sensibilidad. Función objetivo
- El rango de optimalidad es válido cuando un único
coeficiente de la función objetivo cambia. - Cuando cambia más de una variable se utiliza la
regla del 100. - Para cada aumento (disminución) en un coeficiente
de la función objetivo calcular (y expresar como
un porcentaje) la relación de cambio del
coeficiente al máximo aumento posible
(disminución) determinada por los lÃmites del
rango de optimalidad. - Sumar todos los cambios de porcentaje. Si el
total es menor que 100, la solución óptima no
cambiará. Si este total es mayor que 100, la
solución óptima puede cambiar.
21Análisis de sensibilidad. Restricciones
- Cualquier cambio en el lado derecho (bi) de una
restricción activa cambiará la solución óptima. - Cualquier cambio en el lado derecho de una
restricción no activa que sea menor que la
holgura o o el exceso, no produce ningún cambio
en la solución óptima. - Manteniendo todos los otros coeficientes , en
cuánto cambiarÃa el valor óptimo de la función
objetivo (por ejemplo, la ganancia) si el
coeficiente del lado derecho de una restricción
cambia en una unidad? - Hasta cuántas unidades se puede agregar o
disminuir para que la solución siga siendo
válida? - Todas estas cuestiones se resolverán con la ayuda
del solver de excel.
22Análisis de sensibilidad. Restricciones
X2
1200
2x1 1x2 lt1200
2x1 1x2 lt1350
600
Feasible
Puntos extremos
X1
X1
800
600
23Teorema Fundamental de la Programación lineal
- El óptimo de un PL, si existe ocurre en al menos
un vétice del conjunto de soluciones posibles. - Situaciones que pueden ocurrir en relación con el
conjunto M de soluciones posibles - M Ø
- En este caso no existe solución posible gt
Tampoco existe solución óptima
24Teorema Fundamental de la Programación lineal
- M no es vacÃo
- M es acotado
x
y
x
La única solución óptima es un vértice
Infinitas soluciones óptimas siendo dos de ellas
vértices
25Teorema Fundamental de la Programación lineal
- M es no vacÃo
- M es no acotado
x
x
Una única solución óptima y es un vértice
Infinitas soluciones óptimas una de ellas es un
vértice
26Teorema Fundamental de la Programación lineal
- M es no vacÃo
- M es no acotado
x
y
Infinitas soluciones óptimas siendo dos de ellas
vértices
No tiene solución óptima, problema no acotado
27Caracterización de vértice
- Es un punto en el interior del conjunto (no
pertenece a una arista) por tanto no hay
variables nulas. - Si está en una arista por lo menos una variable
es nula. - Si es un vértice, por lo menos, n-m variables
nulas.
n - m
m
R
B
m
n
28Bases, variables básicas y soluciones básicas
- Si tenemos un problema en forma estándar
- max cTx
- s.a Ax b
- x ? 0
- Consideramos un conjunto de m columnas l.i.,
variables básicas. - Decimos que este conjunto es una base de la
matriz A. - La solución básica se obtiene asignando el valor
0 a las restantes variables, que llamaremos no
básicas. - Este sistema tiene solución única.
- La solución básica correspondiente es el vector
x.
29Bases, variables básicas y soluciones básicas
- Teorema fundamental
- Si la solución básica x cumple, además, las
restricciones - de no-negatividad x ? 0 decimos que es una
solución - básica factible (SBF)
- Las SBF juegan un papel fundamental en PL
- Un vértice es una SBF
- Podemos reescribir el Teorema fundamental
- Si un PL tiene solución óptima, ésta se alcanza
en una SBF
30Soluciones Básicas Factibles. Ejemplo
- max 5x1 12x2 4x3
- s.a x1 2x2 x3 10
- 2x1 - x2 3x3 8
- x ? 0
- En este caso m2 y n3.
- Si consideramos las dos primeras columnas son l.i
por tanto son una base de A. Para calcular la
solución básica correspondiente, fijamos a 0 la
variable no básica x3 y obtenemos x(26/5 12/5
0), como x ? 0? tenemos un vértice. - Si tomamos la 1 y la 3 ?x(22 0 -12)T
- Si tomamos la 2 y la 3 ?x(0 22/7 26/7)T?
vértice - Podemos resolver con el Teorema fundamental, ya
que solamente tendrÃamos como posibles dos
vértices, sustituimos en la f.objetivo y tenemos
que el óptimo es el x (26/5 12/5 0)T
31Necesidad del método simplex
- TendrÃamos un método para calcular la solución
óptima - Conseguir todos los vértices
- Sustituir el valor en la función objetivo
- Quedarnos con el mayor
- Si realizáramos este esquema para un problema de
n100 variables y m50 restricciones. ElegirÃamos
cada vez 50 columnas de 100 posibles, tendrÃamos
el combinatorio de 100 sobre 50 lo que son 1029
combinaciones, por tanto mal método.
32Ejercicio propuesto
- Resolver mediante el método gráfico el siguiente
problema de programación lineal - z max 5x1 4x2
- s.a 6x1 4x2 ? 24
- x1 2x2 ? 6
- -x1 2x2 ? 1
- x2 ? 2
- x ? 0
33Ejercicio propuesto
x2
- z max 5x1 4x2
- s.a 6x1 4x2 ? 24
- x1 2x2 ? 6
- -x1 2x2 ? 1
- x2 ? 2
- x ? 0
6
z5x14x2
5
4
3
-x12x2 ? 1
Óptimo (3, 1.5)
x2 ? 2
2
1
x12x2 ? 6
x1
0
2
4
6
34Otro ejemplo
x2
- z max 4x2
- s.a 6x1 4x2 ? 24
- x1 2x2 ? 6
- -x1 x2 ? 1
- x2 ? 2
- x ? 0
6
5
-x1x2 ? 1
4
3
x2 ? 2
Tenemos infinitas soluciones óptimas Dos de ellas
vértices (1,2) y el (2,2)
2
1
x12x2 ? 6
z4x2
x1
0
2
4
6
35El método simplex
- Creado por G. B. Dantzig en 1947.
- Constituye un modelo de buen algoritmo, por
diseño, simplicidad de implementación y
eficiencia en la práctica. - Pasos
- Inicialización Tratar de encontrar un vértice
inicial, si no es posible, concluir que el PL es
no-factible y FIN Si se encuentra, continuar. - Bucle Intentar encontrar un vértice adyacente
mejor que el actual, o determinar que el PL es no
acotado. - Si se encuentra un vértice mejor, volver a 2.
- Si no, terminar dar un vértice óptimo, si se
encontró si no, concluir que el PL es no
acotado. - Dantzig empleó el método clásico de resolución de
ecuaciones lineales mediante eliminación
Gaussiana.
36El método simplex
- En lugar de describir el método simplex para un
PL general, lo ilustraremos mediante ejemplos
concretos.
b
A
x
37El método simplex
- Tenemos el problema en forma canónica. La base es
la identidad y los coeficientes en la función
objetivo son nulos. - Los coeficientes de la función objetivo cambiados
de signo
38El método simplex
- LD Lado derecho
- VB Variables básicas
- En general, la selección de una base inicial es
un problema no trivial que abordaremos mas
adelante. Sólo hay un caso en el que resulta
trivial cuando entre las columnas podemos
encontrar una submatriz identidad
39El método simplex
- Aplicamos a esta tabla el test de optimalidad
- Si los coeficientes de la fila de abajo cumplen
la no-negatividad. En tal caso, podemos asegurar
que el vértice actual es óptimo. - En caso contrario, hay que continuar el método
simplex con otra iteración. - Tales coeficientes se denomina costes reducidos,
y se denotan por cj para la variable xj. - Los costes reducidos de las variables básicas son
cero, si no fuese asÃ, indicarÃa un error.
40El método simplex
- Inicialmente
- VB x3 2, x4 2, x5 3
- VNB x1 0, x2 0
- Solución inicial
- x(0) (0 0 2 2 3)T z 0
41El método simplex
- Como no se cumple el test de optimalidad,
realizaremos una iteración del método sÃmplex,
que consiste en una operación de pivotaje. - El pivotaje consiste en modificar la base actual
poniendo una variable no básica en la base y
sacando una variable de la base. - Seleccionamos la variable que entra en la base
por la Regla del mÃnimo coste reducido negativo?
entrarÃa la variable x2.
42El método simplex
- A continuación debemos determinar cuál sale de la
base. Para ello aplicamos la Regla del mÃnimo
cociente con denominador positivo (mCDP). - El mCDP calculamos de cada fila el cociente de LD
divido por el elemento de la columna que entra.
Solamente nos interesan los positivos. Si no
existiera ningún denominador positivo?el PL es no
acotado. - Sacamos de la base la variable x5.
43El método simplex
- Transformaciones lineales
- Nuevo renglón pivote Renglón pivote actual /
Elemento pivote - Los demás renglones
- Nuevo renglón (Renglón actual) (coeficiente
en la columna pivote) x (Nuevo renglón pivote)
Transformaciones elementales
L3 ? L3-L2
L4 ? L42L2
44El método simplex
- Inicialmente
- VB x3 2, x2 2, x5 1
- VNB x1 0, x4 0
- Solución iteración 1
- x(1) (0 2 2 0 1)T z 4
45El método simplex
L1 ? L1 L3
L4 ? L4 L1
46El método simplex
- Se cumple el test de optimalidad
- VB x1 1, x2 2, x3 1
- VNB x4 0, x5 0
- Solución óptima
- x(2) (1 2 1 0 0)T z 5
47El método simplex, interpretación gráfica
x2
A (0,0)
B (2,0)
x1 ? 2
C (1,1)
D (1,2)
E (0,2)
F
F (0,3)
G (2,2)
H (3,0)
x2 ? 2
G
D
E
C
x1 x2 ? 3
x1
H
A
B
48Ejercicio propuesto
- Resolver mediante el algoritmo del simplex el
siguiente problema de programación lineal - z max 4x1 3x2
- s.a 2x1 2x2 ? 40
- x1 x2 ? 30
- x1 ? 15
- x ? 0
49Método de las dos fases
- Situación en la que el origen no es una solución
inicial, no tenemos un base
A
b
x
50Método de las dos fases
A (0,0)
x2
B (2,0)
x1 ? 2
C (1,1)
D (1,2)
E (0,2)
F
F (0,3)
G (2,2)
H (3,0)
x2 ? 2
G
D
E
C
x1 x2 ? 3
x1
H
A
B
51Método de las dos fases
- Primera fase (Crear un problema auxiliar P)
- Introducir variables artificiales
- Crear una función objetivo artificial
-
- Variables básicas iniciales variables de holgura
y variables artificiales - Objetivo de la primera fase minimizar la función
objetivo artificial - Ir de solución básica en solución básica de P
hasta alcanzar una SBF del problema original P
(situación que ocurre cuando todas las variables
artificiales son nulas)
52Método de las dos fases
- Segunda fase
- A partir de uma SBF del problema original P,
generar SBF cada vez mejores hasta conseguir una
solución óptima.. - Aplicando el método de las dos fases
53Método de las dos fases
- En primer lugar, reducir a forma canónica la
variable artificial que hemos incluido.
L4 ? L4 - L3
Reducción a forma canónica
54Método de las dos fases
L3 ? L3 L1
L4 ? L4 L1
L5 ? L5 L1
55Método de las dos fases
L2 ? L2 L3
L4 ? L4 L3
L5 ? L5 2 L3
56Método de las dos fases
- Hemos llegado al fin de la primera fase.
- Eliminamos la fila y la columna suplementaria
Fin de primera fase za 0
x (2, 1) z 4
57Método de las dos fases
L3 ? L3 L2
L4 ? L4 2L2
58Método de las dos fases
Solución óptima x (2,2) z 6
59Método de las dos fases
A (0,0)
x2
B (2,0)
x1 ? 2
C (1,1)
D (1,2)
E (0,2)
F
F (0,3)
G (2,2)
H (3,0)
x2 ? 2
G
D
E
C
x1 x2 ? 3
x1
H
A
B
60Método de las dos fases
- Veamos otro ejemplo del método de las dos fases
b
A
x
61Método de las dos fases
- Veamos otro ejemplo del método de las dos fases
- Introducimos variables artificiales en el PL,
entonces
62Método de las dos fases
- Veamos otro ejemplo del método de las dos fases
- En primer lugar, base canónica transformamos el
renglón de la función objetivo artificial.
L4 ?L4 -L1 L3
Transf. para forma canónica
63Método de las dos fases
L3 ? L3 -L1
L4 ? L4 2L1
L5 ? L5 L1
64Método de las dos fases
- Tenemos la solución x(1)(2,0,0,2,0,0,1)
- Segundo pivotaje
L2 ? L2 -L3
L4 ? L3 L4
L5 ? L5 2L3
65Método de las dos fases
- Tenemos la solución x(1)(2,1,0,1,0,0,0)
Fin de la primera fase za 0
x (2, 1) z 4
66Método de las dos fases
- Con la solución inicial empezamos la segunda
fase - Primer pivotaje
L4 ? L4 2L2
L3 ? L3 L2
67Método de las dos fases
- Si realizamos el text de mCDP no existen valores
positivos, por tanto el PL es no acotadogtx3
puede entrar en la base mejorando el valor de z
indefinidamente. - Por tanto no tiene solución óptima, pero podemos
construir una semirrecta de soluciones factibles
68Método de las dos fases
- Esta recta partirá del último vértice
(2,2,0,1,0) y la pdte será el vector de la
variable que Ãbamos a incluir a3 (-1,0,0,-1,0)
le cambiamos el signo y sustituimos en este
vector la posición 3 que es la variable que
deberÃamos meter y ya tenemos la ecuación - x(2,2,0,1,0) ? (1,0,1,1,0)
- Y llamaremos a (1, 0, 1, 1, 0) es la dirección no
acotada del PL
69Método de las dos fases
A (0,0)
x2
B (2,0)
x1 ? 2
C (1,1)
D (1,2)
E (0,2)
F
F (0,3)
G (2,2)
H (3,0)
x2 ? 2
G
D
E
C
x1 x2 ? 3
x1
H
A
B
70Método simplex. Comentarios
- El simplex ha probado ser muy eficiente en casi
todos los problemas prácticos (requiere entre m y
3m iteraciones). Pero existen problemas
patológicos donde el simplex se comporta muy mal
(Klee and Minty, 1972). - La complejidad computacional del simplex es
exponencial. Por muchos años se buscó un
algoritmo de PL con complejidad computacional
polinómica. - En 1979, Khachiyan desarrolla el método elipsoide
con complejidad polinómica. En la práctica
resultaba ser ineficiente. - En 1984, Karmarkar describe un algoritmo
polinómico que alcanza la solución por el
interior de la región factible. Dicho algoritmo
resultó ser eficiente en la práctica. Se inició
asà el área de los métodos de punto interior.
71Ejercicio propuesto
- Resolver mediante el algoritmo del simplex en dos
fases el siguiente problema de programación
lineal - z max x1 x2 x3
- s.a x1 x2 x3 ? 100
- x3 ? 5
- -x1 x2 x3 0
- 2x1 - x2 2x3 0
- x ? 0
72Ejercicio propuesto
- Resolver mediante el algoritmo del simplex en dos
fases el siguiente problema de programación
lineal - z max 4x1 x2
- s.a
- 3x1 x2 3
- 4x1 3x2 ? 6
- x1 2x2 ? 4
- x ? 0