método simplex

15
1 Ing. Israel Rivas Alvarez INSTITUTO TECNOLOGICO SUPERIOR DE MASCOTA UNIDAD I METODO SIMPLEX ASESOR: IIA BRENDA YERANIA ORTEGA FLORES MATERIA: INVESTIGACION DE IPERACIONES ALUMNO: ISRAEL RIVAS ALVAREZ Mascota, Jalisco, México. Fecha 16 de Octubre del 2013

Upload: biopower

Post on 05-Dec-2014

2.697 views

Category:

Education


0 download

DESCRIPTION

El algoritmo “Simplex”. Es un procedimiento iterativo que permite ir mejorando la solución a cada paso. El proceso concluye cuando no es posible seguir mejorando más dicha solución. Partiendo del valor de la función objetivo en un vértice cualquiera, el método consiste en buscar sucesivamente otro vértice que mejore al anterior. La búsqueda se hace siempre a través de los lados del polígono(o de las aristas del poliedro, si el número de variables es mayor). Cómo el número de vértices y de aristas) es finito, siempre se podrá encontrar la solución.

TRANSCRIPT

Page 1: Método simplex

1 Ing. Israel Rivas Alvarez

INSTITUTO TECNOLOGICO SUPERIOR DE MASCOTA

UNIDAD I METODO SIMPLEX

ASESOR: IIA BRENDA YERANIA ORTEGA FLORES

MATERIA: INVESTIGACION DE IPERACIONES

ALUMNO: ISRAEL RIVAS ALVAREZ

Mascota, Jalisco, México. Fecha 16 de Octubre del 2013

Page 2: Método simplex

2 Ing. Israel Rivas Alvarez

El algoritmo “Simplex”. Es un procedimiento iterativo que permite ir mejorando la solución a cada paso. El proceso concluye cuando no es posible seguir mejorando más dicha solución. Partiendo del valor de la función objetivo en un vértice cualquiera, el método consiste en buscar sucesivamente otro vértice que mejore al anterior. La búsqueda se hace siempre a través de los lados del polígono(o de las aristas del poliedro, si el número de variables es mayor). Cómo el número de vértices y de aristas) es finito, siempre se podrá encontrar la solución. El método del simplex se basa en la siguiente propiedad: si la función objetivo, f, no toma su valor máximo en el vértice A, entonces hay una arista que parte de A, a lo largo de la cual f aumenta.

El método del simplex se utiliza, sobre todo, para resolver problemas de programación lineal en los que intervienen tres o más variables. El álgebra matricial y el proceso de eliminación de Gauss-Jordan para resolver un sistema de ecuaciones lineales constituyen la base del método simplex. Fue desarrollado en 1947 por el Doctor George B. Dantzig. Mediante su aplicación es posible resolver problemas lineales con n variables y n

restricciones. Se aplica a problemas tanto de Maximización como de Minimización. El algoritmo Simplex inicia en el origen y se desplaza por los bordes del área de

soluciones factibles evaluando cada esquina de esta, hasta encontrar la solución óptima.

Actualmente existe en el mercado múltiple software para la solución de problemas

de programación lineal que aplica este algoritmo, como QSA, QSB, STORM, LINGO, TORA, AMPL, AB:POM, etc.

En 1984 Narendra Karmarkar creó un nuevo método alternativo para la solución de

problemas de programación lineal, conocido como el algoritmo de Karmarkar o del punto central.

Este algoritmo inicia situándose en el punto central del área de soluciones factibles,

desde donde evalúa cada esquina de esta, hasta encontrar la solución óptima.

Page 3: Método simplex

3 Ing. Israel Rivas Alvarez

Ya existe software en el mercado que utiliza este algoritmo, ya que es relativamente más veloz y de mayor capacidad para manejar más variables y restricciones que el algoritmo Simplex.

Aplicación del algoritmo Simplex:

Problemas solo con restricciones del tipo “≤”

Método Simplex convencional

Problemas con restricciones de los tipos “=” y/o “≥”

Método de la “Gran M” Método de las “2 Fases”

Desarrollo del algoritmo Simplex.

Para resolver un problema de programación lineal por medio del algoritmo Simplex, se deben desarrollar los tres pasos descritos a continuación:

1 Obtener la

forma “SIMPLEX ESTÁNDAR” del

modelo de programación lineal

2 Colocar la forma “SIMPLEX

ESTÁNDAR” del modelo en la

TABLA SIMPLEX

3

Aplicar el

ALGORITMO SIMPLEX

1. Obtención de la forma “SIMPLEX ESTÁNDAR”. a) Convertir las restricciones a ecuaciones:

A todas y cada una de las restricciones del tipo “≤” se les suma una variable de “holgura” ( Si ).

A todas y cada una de las restricciones del tipo “=” se les suma una variable

“artificial” ( Ri ).

A todas y cada una de las restricciones del tipo “≥” se les resta una variable de “exceso” ( Si ) y además se les suma una variable “artificial” ( Ri ).

Page 4: Método simplex

4 Ing. Israel Rivas Alvarez

b) Todas las variables de “holgura” y de “exceso” se suman a la Función Objetivo con coeficiente cero.

c) Todas las variables de “artificiales” ( Ri ) se suman a la Función Objetivo con un coeficiente diferente de cero (métodos de la gran M y de las 2 fases).

2. La TABLA SIMPLEX.

Renglón Cj Coeficientes de las variables de la Función Objetivo

Variables Básicas

Coeficiente Variables de la Función Objetivo Recursos

S1 C1

Coeficientes de las variables de las restricciones

R1

……….

……….

……….

Sn Cn Rn

Renglón Zj Valor de Z

Renglón Cj - Zj

Nota: Este formato de la tabla SIMPLEX, puede variar de un libro a otro y de un software a otro; ya que cada autor utiliza el formato que más se le facilita.

3. Algoritmo SIMPLEX. a) Calcular el renglón Zj, multiplicando los coeficientes de las variables básicas por los

coeficientes de cada variable de las restricciones y sumando algebraicamente por columna.

b) Calcular el renglón Cj-Zj, restando cada valor del renglón Cj al valor del renglón Zj de su columna respectiva.

c) Determinar cual es la variable que entra a la solución:

Maximización Variable con el coeficiente más positivo en renglón Cj-Zj. Maximizar Z = 2X1 +4X2 - 3X3

Minimización

Variable con el coeficiente más negativo en renglón Cj-Zj. Minimizar Z = 2X1 + 4X2 -3X3, o bien:

Maximizar - Z = - 2X1 - 4X2 +3X3

La columna donde se encuentra la variable que entra, se llama “columna pivote”.

Page 5: Método simplex

5 Ing. Israel Rivas Alvarez

d) Determinar cuál es la variable que sale de la solución; la cual será la que tenga la “razón mínima” con denominador estrictamente positivo (condición de factibilidad).

|La “razón mínima” resulta de dividir el segundo miembro de cada ecuación

(recursos), entre el coeficiente correspondiente de la “columna pivote”. El renglón en el cual se encuentra la variable que sale y donde se situará la

variable que entra, se conoce como “renglón pivote”. A la intersección de la “columna pivote” con el “renglón pivote”, se le llama

“número pivote”. e) Calcular los nuevos valores que tendrá el “renglón pivote” (renglón nuevo),

dividiendo cada número del renglón entre el “número pivote”. f) Calcular los nuevos valores para los renglones restantes, mediante la siguiente

fórmula:

Números del renglón

nuevo

=

Números del renglón

antiguo -

Número del renglón antiguo ubicado en

la columna del número pivote

X

Números del renglón nuevo obtenido en el

paso 5

g) Regresar al inciso a.

El algoritmo Simplex termina cuando:

Problemas de Maximización: En el renglón Cj - Zj todos los valores son ceros o negativos.

Problemas de Minimización: En el renglón Cj - Zj todos los valores son ceros o

positivos.

Con miras a conocer la metodología que se aplica en el Método SIMPLEX, vamos a resolver el siguiente problema: Maximizar Z= f(x,y)= 3x + 2y sujeto a: 2x + y ≤18 2x + 3y ≤42 3x + y ≤24 x0 , y 0 Se consideran las siguientes fases:

1. Convertir las desigualdades en igualdades

Page 6: Método simplex

6 Ing. Israel Rivas Alvarez

Se introduce una variable de holgura por cada una de las restricciones, para convertirlas en igualdades, resultando el sistema de ecuaciones lineales: 2x + y + h = 18 2x + 3y + s = 42 3x +y + d = 24

2. Igualar la función objetivo a cero: - 3x - 2y + Z = 0

Métodos alternativos. Para solucionar modelos lineales que contengan restricciones del tipo “=” o “≥”, se utilizan los métodos descritos a continuación.

Método de la gran “M” (método de la penalización). Obtener la forma simplex estándar del modelo convirtiendo las restricciones en ecuaciones, de acuerdo a lo siguiente:

1. A todas las restricciones del tipo “≤”, sumar una variable de “holgura” (Si).

2. A todas las restricciones del tipo “≥”, restar una variable de “exceso” (Si).

3. A las ecuaciones que no cuenten con una variable que desempeñe la función de “holgura”, se les suma una “variable artificial” (Ri).

4. Todas las variables de “holgura” y de “exceso”, se suman a la función objetivo

con coeficiente cero.

5. Todas las “variables artificiales” también se suman a la función objetivo y se penalizan asignándoles un coeficiente muy grande (M), que se suma en problemas de minimización y se resta en problemas de maximización.

Una variable artificial (Ri) no tiene ningún significado en términos de programación

lineal; solo permite iniciar el algoritmo simplex, por lo cual los valores que pueda tomar

en la solución final son difíciles de interpretar.

Método de las 2 fases. Obtener la forma simplex estándar del modelo convirtiendo las restricciones en ecuaciones, de acuerdo a los pasos 1, 2 y 3 del método anterior.

Page 7: Método simplex

7 Ing. Israel Rivas Alvarez

Fase 1: Plantear una nueva función objetivo, donde se minimice la suma de las variables artificiales ( r = R1 + R2 +…..+ Rn ).

Encontrar una solución factible mediante la tabla inicial y el algoritmo simplex, tratando de sacar a las variables artificiales de la solución inicial.

Fase 2: A partir de la solución factible obtenida en el paso anterior, plantear una nueva tabla inicial simplex con la función objetivo original y sin considerar las variables artificiales; mediante el algoritmo simplex obtener la solución óptima del modelo.

Otra información relevante que podemos obtener de la tabla óptima simplex. Además de los valores óptimos para cada variable original y básica incluida en el problema, así como el valor obtenido por la función objetivo con esos valores (Z), la tabla final del algoritmo Simplex en la cual se muestran estos valores, también muestra más información que es útil al analista para la correcta toma de decisiones; esta información es referente a:

El estado de los recursos (lados derechos de las restricciones). Los precios duales (costo por unidad adicional de recurso).

El costo de oportunidad para las variables originales (Xi).

El estado de los recursos. Las variables de “holgura” y de “exceso” (Si) que se agregan a las restricciones para convertirlas en ecuaciones, están asociadas a los recursos (lados derechos de cada restricción); cuando en la solución óptima del problema alguna de estas variables tiene valor positivo, se dice que es un “recurso abundante”; si alguna de estas tiene valor cero, se dice que es un “recurso escaso”. Los precios duales. Están representados por los valores negativos (maximización) o positivos (minimización) en el renglón (Cj-Zj), para las variables de “holgura” y de “exceso” con valor cero en la solución óptima; representan el costo por cada unidad adicional de ese recursos que se desee adquirir. El costo de oportunidad. Para las variables originales (Xi) que tienen valor cero en la solución óptima, también están representados por sus valores correspondientes en el renglón (Cj-Zj) y significan lo que se debe aumentar (maximización) o disminuir (minimización) su coeficiente en la función objetivo, para que puedan entrar en la solución. Ejemplo:

Page 8: Método simplex

8 Ing. Israel Rivas Alvarez

Dos productos se elaboran al pasar en forma sucesiva por tres máquinas, el tiempo por máquina asignado a los dos productos está limitado a 600 horas por mes, el tiempo de producción y la ganancia por unidad de cada producto son:

PRODUCTO MINUTOS POR UNIDAD

MAQUINA 1 MAQUINA 2 MAQUINA 3 GANANCIA

1 2

10 5

6 20

8 15

$ 2.00 $ 3.00

El planteamiento del modelo de programación lineal es:

Maximizar Z = 2x1 + 3x2

s.a. 10x1 + 5x2 6x1 + 20x2 8x1 + 15x2

x1, x2

≤ 600 ≤ 600 ≤ 600 ≥ 0

La forma simplex estándar es:

Maximizar Z = 2x1 + 3x2 + 0s1 + 0s2 + 0s3

s.a. 10x1 + 5x2 + s1 6x1 + 20x2 + s2 8x1 + 15x2 + s3

x1, x2, s1, s2, s3

= 600 = 600 = 600 ≥ 0

La tabla óptima simplex (solución final), es:

Cj 2 3 0 0 0

Var. Bas. Coef. X1 X2 S1 S2 S3 Recursos

S2 0 0 0 0.636 1 -1.55 54.55 X2 3 0 1 -0.073 0 0.091 10.91 X1 2 1 0 0.136 0 -0.045 54.55

Zj 2 3 0.053 0 0.183 141.82

Cj - Zj 0 0 -0.053 0 -0.183

La asociación de las variables de “holgura“, son:

S1 representa el tiempo en la máquina 1 S2 representa el tiempo en la máquina 2 S3 representa el tiempo en la máquina 3

Observando la tabla final simplex, conteste las siguientes preguntas: ¿Cuál es el estado que guardan los recursos?

¿Cuáles son sus precios duales o precios sombra?

¿Cuáles son los costos de oportunidad para los coeficientes de la función objetivo?

Soluciones particulares en el algoritmo SIMPLEX.

Page 9: Método simplex

9 Ing. Israel Rivas Alvarez

El algoritmo Simplex permite en la tabla final del procedimiento (óptima), identificar algunas de las soluciones particulares a las que se puede llegar; a continuación se muestra esta tabla y su interpretación para problemas de maximización.

Caso 1 DEGENERACION

Se produce cuando alguna de las variables básicas toma un valor de cero en la solución óptima.

Cuando en la condición de factibilidad para determinar la variable que sale se

produce un empate entre 2 renglones, esto indica que se tendrá una solución óptima degenerada en la próxima iteración.

Este tipo de soluciones son características en problemas donde el número de

restricciones es mayor que el de variables.

Solución óptima degenerada ( problema de maximización )

Cj 50 40 0 0 0

Var. Bas. Coefic.FO X1 X2 S1 S2 S3 Recursos

X2 40 0 1 8/25 0 -3/25 20

S2 0 0 0 -8/25 1 3/25 0

X1 50 1 0 -5/25 0 5/25 25

Zj 50 40 70/25 0 130/25 2,050

Cj - Zj 0 0 -70/25 0 -130/25

Caso 2 SOLUCIONES MULTIPLES

Ocurre cuando en la solución final óptima el valor para una o mas variables no básicas es igual a cero en el último renglón de la tabla ( Cj - Zj ).

Solución óptima múltiple ( problema de maximización )

Cj 30 50 0 0 0

Var. Bas. Coefic.FO X1 X2 S1 S2 S3 Recursos

X2 50 0 1 8/25 0 -3/25 12

S2 0 0 0 -8/25 1 3/25 8

X1 30 1 0 -5/25 0 5/25 30

Zj 30 50 10 0 0 1,500

Cj - Zj 0 0 -1 0 0

Caso 3 SOLUCION NO ACOTADA

Page 10: Método simplex

10 Ing. Israel Rivas Alvarez

Se produce en alguna iteración del algoritmo sin haber llegado a la solución final óptima, cuando la condición de factibilidad para determinar la variable que sale no se cumple.

Ocurre cuando un valor de la función objetivo puede crecer indefinidamente,

satisfaciendo todas las restricciones.

Solución no acotada ( problema de maximización )

Cj 20 10 0 0 -M

Var. Bas. Coefic.FO X1 X2 S1 S2 R1 Recursos

X1 20 1 0 -1 0 1 2

S2 0 0 1 0 1 0 5

Zj 20 0 -20 0 20 40

Cj - Zj 0 10 20 0 -M-20

Caso 4 SOLUCION NO FACTIBLE

Ocurre cuando en la solución óptima, alguna de las variables artificiales (Ri), se encuentran en la solución con valor positivo (de hecho, alguna de las variables artificiales del problema nunca sale de la solución durante el procedimiento).

El valor final de la función objetivo se ve afectado o está en función de la variable

artificial (Ri) que se encuentra en la solución óptima.

Solución no factible ( problema de maximización )

Cj 50 40 0 0 0 0 -M

Var.Bas. Coefic.FO X1 X2 S1 S2 S3 S4 R1 Recursos

X2 40 0 1 8/25 0 -3/25 0 0 12

S2 0 0 0 -8/25 1 3/25 0 0 8

X1 50 1 0 -5/25 0 5/25 0 0 30

R1 -M 0 0 -3/25 0 -2/25 -1 1 8

Zj 50 40 70+3M/25 0 130+2M/25 M -M 1980-8M

Cj - Zj 0 0 -70-3M/25 0 -130-2M/25 -M 0

Una variable artificial (Ri) no tiene ningún significado en términos de programación

lineal, solo permite iniciar el algoritmo Simplex; por lo cual los valores que pueda tomar

en la solución final son difíciles de interpretar.

Page 11: Método simplex

11 Ing. Israel Rivas Alvarez

Método dos Fases

Fase Uno:

Minimizar la suma de las variables artificiales del modelo. Si el valor de la Z óptima es cero, se puede

proseguir a la Fase Dos, de lo contrario el problema no tiene solución.

Fase Dos:

Con base en la tabla óptima de la fase uno, se elimina de las restricciones las variables artificiales, y se

reemplaza la función objetivo, por la función objetivo original y se resuelve a partir de ahí, con el método

Simplex tradicional.

Ejercicio:

Primera Fase:

Se reemplaza la función objetivo del programa lineal a solucionar por la minimización de la suma de las variables artificiales encontradas en la normalización del modelo y se resuelve. Si en la minimización Z = 0 entonces se puede proceder a la Segunda Fase, de lo contrario el problema no es factible, por lo tanto, no tiene solución.

Segunda Fase:

Se inicia con base en el tablero final de la Primera Fase, se retoma la función objetivo del programa, haciendo todas las variables artificiales iguales a cero y eliminándolas de las restricciones.

Ejemplo:

Min Z = 2X1 + X2 + 3X3

Sujeto a:

3X1 + X2 + 2X3 ≤ 10

X1 - 2X2 + 3X3 ≥ 6

2X1 + 3X2 - X3 ≤ 9

X1 + X2 + 2X3 = 7

1. Convertir al Modelo Estándar:

Cada restricción debe ser convertida de inecuación a una igualdad, agregando variables

Page 12: Método simplex

12 Ing. Israel Rivas Alvarez

como se requiera. Con las restricciones de tipo <=, es supremamente fácil.

Simplemente se agrega una en cada restricción con coeficiente 1 en la misma restricción

y con coeficiente cero en la función objetivo. Por ejemplo:

3X1 + X2 + 2X3 ≤ 10 queda:

3X1 + X2 + 2X3 + S1 = 10

X1 - 2X2 + 3X3 - S2 + A1 = 6

2X1 + 3X2 - X3 + S3 = 9

X1 + X2 +2X3 + A2 = 7

Recordemos: las variables de holgura quedan con coeficiente 0 en la función objetivo y

las variables artificiales con coeficiente M. Positiva si es minimizando o negativa si es

maximizando.

En resumen el modelo queda de la siguiente manera:

Min Z = 2X1 + X2 + 3X3 + 0S1 + 0S2 + MA1 + 0S3 + MA2

Sujeto a:

3X1 + X2 + 2X3 + S1 = 10

X1 - 2X2 + 3X3 - S2 + A1 = 6

2X1+ 3X2 - X3 + S3 = 9

X1+ X2 + 2X3 + A2 = 7

C.N.N (Condición de No Negatividad)

Inicio del Método de las Dos Fases:

Min Z = A1 + A2

Sujeto a:

3X1 +X2 + 2X3 + S1 = 10

X1 -2X2+ 3X3 - S2 + A1 = 6

2X1+3X2- X3 + S3 = 9

X1+ X2+ 2X3 + A2 = 7

C.N.N (Condición de No Negatividad)

Page 13: Método simplex

13 Ing. Israel Rivas Alvarez

FASE 1

En la siguiente figura encontramos la tabla simplex clásica. En la primera fila los nombres de las variables

de decisión, y justo abajo de ellas, los coeficientes de estas variables en la función objetivo. Cómo en la

primera fase minimizamos la suma de las variables artificiales, por eso sólo encontramos un valor de 1

abajo de A1 (variable artificial 1) y de A2 (variable artificial 2). En la segunda columna encontramos las

variables que estan en la base al inicio. Como es costumbre, para escogerlas preferimos si sólo hay

variables de decisión y de holgura, escogemos la de holgura para estar en la base (aqui las llamamos S) y

si hay de decision, de holgura y artificiales, preferimos la artificial. Por eso, las variables que se escogen

para la base son: S1, A1, S3, A2. A la izquierda de esta columna, como es usual, se coloca los

coeficientes en la función objetivo, de las variables que estan en la base.

Luego vienen los coeficientes de las restricciones, y debajo del título RHS (Right Hand Side), o "lado

derecho" de la restricción, colocamos las disponibilidades o requerimientos. En otros libros de texto a

esta columna tambien la llaman Bi, lo importante es que usted entienda que todos los diferentes formatos

de tablas, realmente son lo mismo, lo único que cambia es el orden, la forma de llamar a las columnas,

etc.

Bueno, sin dar tantas vueltas: En la primera iteración se calcula Z y C - Z, y por lo tanto la variable que

entra, como estamos minimizando, entra la más negativa: X3 y entra la que mas restringe: A1. Eso hace

que la celda pivote este en el valor 3, que lo coloqué con verde en todas las figuras. Y se aplica

eliminación gaussiana: Se divide toda esa fila por tres, y luego con la fila convertida, elimino por encima y

por debajo de la celda pivote multiplicando por el valor opuesto al que quiero eliminar la fila pivote y

sumandosela componente a componente a la fila que deseo eliminar. Bueno, en estos momentos del

partido, creo que usted ya debe saber bien como hacer la eliminación gaussiana (Y si no, coloquelo en los

comentarios abajo, para ampliar la explicación!) .

Page 14: Método simplex

14 Ing. Israel Rivas Alvarez

El valor de la función objetivo, en cada itereación la he colocado en azul claro, para que vaya viendo el

progreso: 13 -> 3 -> 0.

Al terminar en cero, el semaforo nos da luz verde para seguir con la siguiente fase.

FASE 2

En la FASE 2, fijese que cambiamos la fila de la función objetivo y dejamos la del programa original, pero

como en la fase 1 nos aseguramos de eliminar las variables artificiales, en la fase 2, nos podemos dar el

lujo y el gusto de eliminarlas. También, como es lógico, las borramos de las restricciones. Ahora , sin

estorbos, sin constantes M, o variables artificiales que nos retracen el paso, por que vamos de prisa,

realizamos la iteración,. y para el colmo de nuestra suerte, en sólo una iteración acabamos.

Encontramos el valor de Z. He escogido el mismo programa para resolverlo por la Gran M que por el

método de las dos fases. Compárelo a ver cuál le gusta más... a mi me gustaba más el método de la

Gran M, pero ahora me esta gustando más el método de las Dos Fases... aunque la verdad, en la

práctica, en la vida real, nunca he resuelto a mano un programa lineal, si no que siempre he usado un

software... mi jefe no me paga más, por más iteraciones que calculé, si no por que le entregue una

respuesta rápida y exacta de lo que se necesita: Si. Lo sé. A veces, la vida es triste :)

Page 15: Método simplex

15 Ing. Israel Rivas Alvarez