El Método Símplex de Programación Lineal

30
Ing. Hernán D. Tello Mego 1 EL MÉTODO SÍMPLEX DE PROGRAMACIÓN LINEAL

description

Metodo simplex

Transcript of El Método Símplex de Programación Lineal

Page 1: El Método Símplex de Programación Lineal

Ing. Hernán D. Tello Mego 1

EL MÉTODO SÍMPLEX DE PROGRAMACIÓN LINEAL

Page 2: El Método Símplex de Programación Lineal

Ing. Hernán D. Tello Mego 2

MÉTODO SÍMPLEX

LA MAYORÍA DE LOS PROBLEMAS REALES DE P. L. TIENEN MÁS DE DOS VARIABLES, POR LO QUE PARA RESOLVERLOS SE USAN PROCEDIMIENTOS O MÉTODOS ESPECIALES: ALGEBRAICOS O MATRICIALES QUE MANEJAN MULTIVARIABLES BASÁNDOSE EN ALGORITMOS PARA ACERCARSE INDEFECTIVAMENTE A LA SOLUCIÓN.

Page 3: El Método Símplex de Programación Lineal

Ing. Hernán D. Tello Mego 3

EL ALGORITMO DE MEJORA FINITA GENERAL

MÉTODO SISTEMÁTICO PARA ENCONTRAR UNA SOLUCIÓN ÓPTIMA A UN MODELO MATEMÁTICO MEDIANTE LA GENERACIÓN DE UN NÚMERO FIINITO DE SOLUCIONES FACTIBLES, CADA UNA DE LAS CUALES TIENE UN VALOR DE FUNCIÓN OBJETIVO ESTRICTAMENTE MEJOR QUE LA ANTERIOR.

Page 4: El Método Símplex de Programación Lineal

Ing. Hernán D. Tello Mego 4

QUÉ NOS ENSEÑÓ EL MÉTODO GRÁFICO? NOS DIO UN ESPACIO DE SOLUCIONES FACTIBLES

Y TAMBIÉN UN POLÍGONO DE POSIBILIDADES TÉCNICAS, CUYOS VÉRTICES SON SOLUCIONES NOTABLES DEL MODELO, POR LA INTERSECCIÓN DE LOS LADOS QUE REPRESENTAN A LAS RESTRICCIONES.

LA FUNCIÓN OBJETIVO SALTA LITERALMENTE DE UN EXTREMO O VÉRTICE A OTRO DE ESE POLÍGONO, PARTIENDO DESDE EL ORIGEN HACIA UNO OPUESTO MÁS ALEJADO DEL MISMO, CUANDO SE TRATA DE MAXIMIZAR; O DESDE UN EXTREMO MÁS ALEJADO HACIA UN VÉRTICE MÁS CERCANO AL ORIGEN, SI SE TRATÁ DE MINIMIZAR.

Page 5: El Método Símplex de Programación Lineal

Ing. Hernán D. Tello Mego 5

DESCUBRA LA ANALOGÍA DEL ALGORTIMO DE MEJORA FINITA GENERAL CON EL M. GRÁFICO:

A

C

D

B

x2

x1

(solución óptima)

=

=

O 0

2

3

4

Page 6: El Método Símplex de Programación Lineal

Ing. Hernán D. Tello Mego 6

DESARROLLO DEL ALGORITMO

Deslice la línea de la función objetivo partiendo desde el origen: (x1=x2=0), paralelamente así misma hacia cada uno de los extremos del polígono, cuando se maximiza y viceversa cuando se minimiza. Cada cambio de posición de Z constituye una iteración mejorada.

Cada extremo da lecturas para x1 y x2 diferentes y por lo tanto Z obtiene valores ≠0, pero indudablemente mejores cada vez, a medida que la ecuación de Z se aleja/acerca respecto del origen.

¿Cuándo detenerse?.- Cuando Z adquiera el mejor valor al llegar al extremo más alejado del origen si se maximiza, o al más cercano si se minimiza. Conseguimos así una solución óptima del modelo.

Page 7: El Método Símplex de Programación Lineal

Ing. Hernán D. Tello Mego 7

ENTONCES EL ALGORITMO DE MEJORA FINITA GENERAL ES:

PASO 0. INICIALIZACIÓN: TOME EL ORIGEN CON VALORES DE CERO PARA LAS VARIABLES.

PASO 1. PRUEBA DE OPTIMALIDAD: ¿TIENE Z EL MEJOR VALOR? SI ES AFIRMATIVO HA LLEGADO A UNA SOLUCIÓN ÓPTIMA.

PASO 2. TRASLADO: VAYA A OTRO EXTREMO ESTRICTAMENTE MEJOR. REGRESE AL PASO 1.

Page 8: El Método Símplex de Programación Lineal

Ing. Hernán D. Tello Mego 8

ALGORTIMO SÍMPLEX

ES UN CONJUNTO DE INSTRUCCIONES PARA EXAMINAR SITEMÁTICAMENTE LOS PUNTOS EXTREMOS O ESQUINAS DEL POLÍGONO DE POSIBILIDADES TÉCNICAS, EN BÚSQUEDA DE LA MEJOR SOLUCIÓN (ÓPTIMA), HACIENDO USO INTENSIVO DEL ALGORITMO DE MEJORA FINITA GENERAL. PARA LOGRARLO DEBEMOS CONVERTIR EL MODELO MATEMÁTICO EN UN PROGRAMA LINEAL DE FORMA ESTÁNDAR.

Page 9: El Método Símplex de Programación Lineal

Ing. Hernán D. Tello Mego 9

FORMA ESTÁNDAR

Un problema de P.L. real bien puede venir en diferentes formas: de maximización o de minimización y con restricciones del tipo (≤), (≥) o (=); además con variables cuyos valores sean no negativos (≥0), no positivas (≤0) o sin restricciones. Entonces cada forma tendría su método de solución particular, pero para simplificarnos la vida, desarrollamos un algoritmo común que resuelva solamente una forma específica de los problemas de programación lineal convertido a su: Forma estándar.

Page 10: El Método Símplex de Programación Lineal

Ing. Hernán D. Tello Mego 10

CÓMO ES LA FORMA ESTÁNDAR DE PROGRAMACIÓN LINEAL?ES AQUELLA FORMA PARTICULAR EN LA

QUE LA FUNCIÓN OBJETIVO, DEBE SER MAXIMIZADA.

SUJETA A RESTRICCIONES DE IGUALDAD CON TODOS SUS LADOS DERECHOS Y VARIABLES NO NEGATIVAS. Esto para posibilitar el uso de programas de cálculo por computadora en forma automática, la cual creará un programa lineal en forma estándar equivalente, es decir convirtiendo las inecuaciones en ecuaciones de la siguiente manera:

Page 11: El Método Símplex de Programación Lineal

Ing. Hernán D. Tello Mego 11

RESUMEN DE REGLAS GENERALES PARA CONVERTIR UN PROGRAMA LINEAL A SU FORMA ESTÁNDAR: MINIMIZACIÓN A MAXIMIZACIÓN: Min Z = -2x1+x2-3x3 Max (-Z) = 2x1-x2+3x3

Sólo cambian los signos de los coeficientes de la F.O. y las restricciones permanecen inalteradas.

LADOS DERECHOS NEGATIVOS: -3x1-2x2-2x3 ≥ -15 3x1+2x2+2x3 ≤15

CONVERSIÓN DE RESTRICCIONES DE DESIGUALDAD A IGUALDAD:

3x1+2x2+2x3 ≤ 15 3x1+2x2+2x3 + s1= 15, s1 ≥ 0

S1 es una variable no negativa que se añade al lado izquierdo de una restricción menor o igual que, para obtener una restricción de igualdad equivalente.

Page 12: El Método Símplex de Programación Lineal

Ing. Hernán D. Tello Mego 12

Restricción menor o igual que:3x1+2x2+2x3 ≤15 3x1+2x2+2x3+s1=15, s1≥0

S1 es una variable no negativa que se añade al lado izquierdo de una restricción menor o igual que, para obtener una restricción de igualdad equivalente.

Restricción mayor o igual que:3x1+2x2+2x3 ≥ 15 3x1+2x2+2x3- s1=15, s1≥ 0

S1 es una variable no negativa que se resta al lado izquierdo de una restricción mayor o igual que, para obtener una restricción de igualdad equivalente.

Page 13: El Método Símplex de Programación Lineal

Ing. Hernán D. Tello Mego 13

CONVERSIÓN DE VARIABLES NO POSITIVAS Y NO RESTRINGIDAS: En algunos problemas una o varias variables se pueden restringir a

que no sean positivas (≤0), y aún no estar restringidas otras; o sea

que pueden tener valores positivos, negativos o cero. CONVERSIÓN DE VARIABLES NO RESTRINGIDAS: Sea xi, no restringida la llevamos a su forma estándar

sustituyéndola por la diferencia de dos variables no negativas allí donde se encuentre: xi

+ y xi- de la siguiente manera: xi= xi

+- xi-,

donde: xi

+, xi- ≥ 0.

CONVERSIÓN DE VARIABLES NO POSITIVAS: Sustituya xi no positiva allí donde se encuentre por el negativo de

una nueva variable no negativa con símbolo x’i de la siguiente

manera: xi = -x’i

x’i ≥0

Page 14: El Método Símplex de Programación Lineal

Ing. Hernán D. Tello Mego 14

CONVERSIÓN DE UN PROGRAMA LINEAL A SU FORMA ESTÁNDAR CON

UN EJEMPLO ESPECÍFICO:

Recuérdese el problema de la fábrica de mesas y sillas, en la que x1= # de mesas a fabricar y x2 = # de sillas a fabricar; cuyo modelo matemático es:

Max Z= 8x1+ 5x2

S.a.: 9x1+ 5x2 <= 45 (restricción de madera tornillo) x1+ x2 <= 6 (restricción de mano de obra)

x1 >= 0 (restricciones de no x2 >= 0 negatividad) , y enteros

Obsérvese que los lados derechos y las variables son no

negativas, pero los signos de relación no son igualdades por lo que no están en la forma estándar, cada restricción se convierte a su forma estándar usando el siguiente razonamiento:

Page 15: El Método Símplex de Programación Lineal

Ing. Hernán D. Tello Mego 15

Restricción de madera tornillo:

Pies3 de tornillo para mesas + Pies3 de tornillo para sillas <= 45 Pies3 de tornillo.

Para llevarla a una restricción de igualdad, es decir a su forma estándar, se requiere agregar una variable de holgura o exceso en el lado izquierdo:

Pies3 de tornillo para mesas + Pies3 de tornillo para sillas + Pies3 de tornillo sobrante = 45 Pies3 de tornillo.

Page 16: El Método Símplex de Programación Lineal

Ing. Hernán D. Tello Mego 16

Usando notación matemática:

1. La variable de exceso puede denotarse como s1.2. s1 debe ser no negativa también, de lo contrario

significaría que se ha utilizado más de 45 Pies3 de tornillo.

3. La presencia de esta variable en la F.O. está afectada de un coeficiente nulo y representa para todos los efectos la capacidad ociosa de una planta o materiales no consumidos. Por ello no contribuye a aumentar ni disminuir Z.

Por lo tanto la restricción queda así: 9x1+5x2+s1= 45 (restricción de madera tornillo), s1>=0.

Page 17: El Método Símplex de Programación Lineal

Ing. Hernán D. Tello Mego 17

De manera similar, la segunda restricción queda:

Hrs. utilizadas para mesas + Hrs. utilizadas para sillas +Hrs. Sobrantes = 6H

Denotando por s2= Hrs. Sobrantes:

x1 + x2 + s2 = 6 (restricción de mano de obra)

s2 ≥ 0

Page 18: El Método Símplex de Programación Lineal

Ing. Hernán D. Tello Mego 18

Resumiendo todo el modelo a su forma estándar:

Max Z= 8x1+ 5x2 + 0s1 + 0s2

S.a.: 9x1+ 5x2 + s1 + 0s2 = 45

x1 + x2 + 0s1 + s2 = 6

x1, x2, s1, s2 ≥ 0

Este sistema de ecuaciones se llama también el Problema aumentado de la programación lineal.

Page 19: El Método Símplex de Programación Lineal

Ing. Hernán D. Tello Mego 19

El arreglo de la izquierda del problema aumentado constituye el conjunto de variables no básicas (NB), el del centro el conjunto de variables básicas (B) y el de la derecha del signo igual el de las soluciones de cada renglón o fila.

Con la solución de este sistema de ecuaciones se arriba a la solución del modelo. Mediante el método de Gauss-Jordán o el matricial. Aunque existen paquetes informáticos como el MatLab para acometer estas tareas, nosotros usaremos el símplex como una herramienta eficaz con los algoritmos precisos para hallar el valor de todas y cada una de las variables, incluida la optimización: al llegar a la última iteración se leerá las soluciones en la columna de la derecha del tablero final.

Page 20: El Método Símplex de Programación Lineal

Ing. Hernán D. Tello Mego 20

INICIALIZACIÓN DEL SISTEMA:

La solución inicial básica factible del sistema se obtiene cuando las variables no básicas son todas iguales a cero y las variables básicas adquieren el valor de la derecha del signo igual:

x1, x2 = 0; s1= 45, s2 = 6

Es la solución inicial básica factible, y por consiguiente Z=0.

Page 21: El Método Símplex de Programación Lineal

Ing. Hernán D. Tello Mego 21

Re escribamos las ecuaciones y enuméroslas: (inicialización para el símplex)

z-8x1-5x2 = 0 (0)

9x1+5x2 + s1+ 0s2 = 45 (1)

x1+ x2 + 0s1+ s2 = 6 (2)

x1, x2, s1, s2 ≥ 0

Identificamos las variables básicas y no básicas:

B s1 s2TIENEN

SOLUCIÓN

NB x1 x2NO TIENEN

SOLUCIÓN

Page 22: El Método Símplex de Programación Lineal

Ing. Hernán D. Tello Mego 22

EL TABLERO SÍMPLEX:

Ecua NB B x1 x2 s1 s2 Solu

0 - z -8 -5 0 0 0

1 x1 s1 9 5 1 0 45

2 x2 s2 1 1 0 1 6

B s1 s2TIENEN SOLUCIÓN

NB x1 x2NO TIENEN SOLUCIÓN

Regla 1: En la ecuación (0) Seleccionar la variable que entra a la base escogiendo el coeficiente negativo de mayor valor absoluto:x1

Las flechas señalan las variables que entran y salen, además de la columna pivote,

La fila pivote y el pivote mismo.

45/9=5

6/1=6

entra

T0

Page 23: El Método Símplex de Programación Lineal

Ing. Hernán D. Tello Mego 23

Regla 2: Selección de la variable que sale de la base (s1) En cada fila de las restricciones calcular el cuociente:

solución/coeficiente de la variable y la columna pivote respectiva, es decir:

Fila 1: solución fila1/coeficiente de variable de x1 de la columna pivote y fila 1: 45/9=5.

Fila 2: solución fila 2/coeficiente de variable de x1 de la columna pivote y fila 2: 6/1=6.

Si existieran más filas en la columna se calculan todos esos cocientes, en este caso no existen más, escogemos el menor cociente desplazándonos por la fila que lo contiene y determinamos la variable que sale: s1 de la columna básica. No se consideran cocientes negativos ni con valor infinito.

Page 24: El Método Símplex de Programación Lineal

Ing. Hernán D. Tello Mego 24

Primera iteración (cálculos para el tablero1):

Ecua NB B x1 x2 s1 s2 Solu

0 - z -8 -5 0 0 0

1 S1 x1 9/9

1

5/9 1/9 0 45/9

5

2 X2 s2 1 1 0 1 6

Nueva ecuación 0 = (coeficiente de columna pivote con signo cambiado en la ecuación 0) X (nueva ecuación1) y sumando a la antigua ecuación 0:

(8)x (1 5/9 1/9 0 5)+ -8 -5 0 0 0

0 -5/9 8/9 0 40 Nueva ecuación 0

T0

Page 25: El Método Símplex de Programación Lineal

Ing. Hernán D. Tello Mego 25

Nueva ecuación 2 = (coeficiente de columna pivote con signo cambiado en la ecuación 2) X (nueva ecuación1) y sumando a la antigua ecuación 2: (-1) x (1 5/9 1/9 0 5) -1 -5/9 -1/9 0 -5 + (1 1 0 1 6) 0 4/9 -1/9 1 1 Nueva ecuación 2

Ecua NB B x1 x2 s1 s2 Solu

0 - z 0 -5/9 8/9 0 40

1 S1 x1 1 5/9 1/9 0 5

2 X2 s2 0 4/9 -1/9 1 1

T1

¿existe aún un coeficiente con signo negativo en la ecuación 0?. Si es negativo, se detiene el cálculo, de lo contrario se repiten los pasos desde el paso 1 hasta lo que acabamos de hacer.

Criterio de optimización:

5/(5/9)=9

1/(4/9)=9/4

Page 26: El Método Símplex de Programación Lineal

Ing. Hernán D. Tello Mego 26

Existe todavía en la ecuación 0 un coeficiente negativo por lo tanto se repite el algoritmo en el tablero 1:

Ecua NB B x1 x2 s1 s2 Solución

0 - z 0 0 3/4 5/4 165/4

1 s1 x1 1 0 5/9 -5/4 15/4

2 s2 x2 0 1 -1/4 9/4 9/4

T2

Las iteraciones terminan cuando ya no se encuentra en la ecuación 0,

ningún coeficiente negativo. ¿Es la solución básica factible? Sí, para Z,

x1 y x2, y ya no existe ninguna variable no básica que si se lleva a la base

hace aumentar a z en el tablero final. Se ha obtenido la solución óptima, con

Z= $ 41.25, x1=3.75 mesas y x2= 2.25 sillas; pero nuestra respuesta con

terminología pertinente es: la fábrica debe producir x1= 4 mesas

y x2= 2 sillas para obtener una ganancia de Z= $ 42.

41.25

3.75

2.25

Page 27: El Método Símplex de Programación Lineal

Ing. Hernán D. Tello Mego 27

Reglas de decisión para: Rompimiento de empates:

Variable básica que sale: Cuando hay dos o más valores iguales en el resultado de dividir las soluciones por los respectivos coeficientes de la variable entrante, hay empate. La decisión de cuál elegir implica tres situaciones:

1 Todas las variables empatadas se vuelven cero al mismo tiempo cuando aumenta el valor de la variable entrante. Las variables básicas con valor cero se llaman degeneradas y la solución básica factible correspondiente también.

2 Si una de estas variables básicas conserva el valor cero hasta que se elige como variable básica que sale en una iteración posterior, ambas variables deben mantener su valor cero y entonces (Z)(0) no cambia de valor.

3 Si (z) no cambia de valor en cada iteración, entonces el método símplex ha caído en un “loop” o ciclo, dando soluciones óptimas periódicas.

Page 28: El Método Símplex de Programación Lineal

Ing. Hernán D. Tello Mego 28

No hay variable básica que sale (solución no acotada):

Esto puede ocurrir cuando ninguna variable califica como variable básica que sale: NINGUNA VARIABLE ACTUAL O NUEVA ADQUERE VALORES NEGATIVOS, o sea que en la columna pivote, todos los coeficientes son negativos o cero

En este caso hay un error en la formulación del modelo matemático.

Page 29: El Método Símplex de Programación Lineal

Ing. Hernán D. Tello Mego 29

Soluciones óptimas múltiples:

Un problema puede tener más de una solución óptima, esto sucede cuando la F. O. es múltiplo de una restricción o su réplica. El método símplex encuentra una solución básica factible óptima y reconoce que hay más de una solución cuando al menos una variable no básica de la F. O. final tiene el coeficiente cero.

Se logra las otras soluciones óptimas eligiendo cada vez una variable básica con coeficiente cero como variable entrante para iterar.

Soluciones infactibles:Cuando no se satisfacen las restricciones

simultáneamente y cuando al menos una variable artificial será positiva en la iteración óptima.

Page 30: El Método Símplex de Programación Lineal

Ing. Hernán D. Tello Mego 30

ADPTACIÓN A OTRAS FORMAS DE RELACIÓN EN LAS RESTRICCIONES:Si se tiene restricciones de igualdad y del tipo

(≥) se inicializa el problema de la siguiente manera: x1+ x2 ≥ 4

Restricción de igualdad:x1+ x2 – si = 4, pero con si = - 4 se viola la

condición de que debería ser de la forma si ≥ 0, entonces se recurre a las variables artificiales Ai agregadas al lado izquierdo de cada restricción allí donde haya la relación (=), la ecuación queda:

x1+ x2 – si + Ai = 4, con lo que Ai = 4, pues: Ai ≥ 0.