Está en la página 1de 15
INSTITUTO TECNOLOGICO SUPERIOR DE MASCOTA UNIDAD I METODO SIMPLEX ASESOR: IIA BRENDA YERANIA ORTEGA FLORES

INSTITUTO TECNOLOGICO SUPERIOR DE MASCOTA

INSTITUTO TECNOLOGICO SUPERIOR DE MASCOTA UNIDAD I METODO SIMPLEX ASESOR: IIA BRENDA YERANIA ORTEGA FLORES MATERIA:

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

Ing. Israel Rivas Alvarez

1

El algoritmo “S implex ” .

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.

Ing. Israel Rivas Alvarez

2

 Ya existe software en el mercado que utiliza este algoritmo, ya que es relativamente

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 “≤”

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

Método Simplex convencional

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ÁNDARdel modelo de programación lineal

SIMPLEX ESTÁNDAR ” del modelo de programación lineal 2 Colocar la forma “ SIMPLEX ESTÁNDAR ”

2

Colocar la forma SIMPLEX ESTÁNDARdel modelo en la TABLA SIMPLEX

“ SIMPLEX ESTÁNDAR ” del modelo en la TABLA SIMPLEX 3 Aplicar el ALGORITMO SIMPLEX 1.

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” ( S i ).

A todas y cada una de las restricciones del tipo “=” se les suma una variable “artificial” ( R i ).

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

Ing. Israel Rivas Alvarez

3

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

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” ( R i ) 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 C j

Coeficientes de las variables de la Función Objetivo

 

Variables

   

Básicas

Coeficiente

Variables de la Función Objetivo

Recursos

S

1

C

1

 

R

1

……….

……….

Coeficientes de las variables de las restricciones

……….

S

n

C

n

R

n

 

Renglón Z j

 

Valor de Z

 

Renglón C j - Z j

 

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

Minimización

Variable con el coeficiente más positivo en renglón Cj-Zj. Maximizar Z = 2X 1 +4X 2 - 3X 3

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

Maximizar - Z = - 2X 1 - 4X 2 +3X 3

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

Ing. Israel Rivas Alvarez

4

d) Determinar cuál es la variable que sale de la solución; la cual será la

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
=
nuevo

Números

del renglón

antiguo

-
-

Número del renglón

antiguo ubicado en

la columna del número pivote

g) Regresar al inciso a. El algoritmo Simplex termina cuando:

Números del X renglón nuevo obtenido en el paso 5
Números del
X
renglón nuevo
obtenido en el
paso 5

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

Ing. Israel Rivas Alvarez

5

Se introduce una variable de holgura por cada una de las restricciones, para convertirlas en

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” (S i ).

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

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

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 (R i ) 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.

Ing. Israel Rivas Alvarez

6

Fase 1: Plantear una nueva función objetivo, donde se minimice la suma de las variables

Fase 1:

Plantear una nueva función objetivo, donde se minimice la suma de las

variables artificiales ( r = R 1 + R 2 +…

+

R n ).

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 (X i ).

El estado de los recursos.

Las variables de “holgura” y de “exceso” (S i ) 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:

Ing. Israel Rivas Alvarez

7

Dos productos se elaboran al pasar en forma sucesiva por tres máquinas, el tiempo por

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:

MINUTOS POR UNIDAD

PRODUCTO

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 = 2x 1 + 3x 2

s.a.

10x

1

+ 5x 2

6x 1 + 20x 2 8x 1 + 15x 2 x 1 , x 2

La forma simplex estándar es:

0

600

600

600

Maximizar Z = 2x 1 + 3x 2 + 0s 1 + 0s 2 + 0s 3

s.a.

10x 1 + 6x 1 + 8x 1 +

5x 2 + s 1

20x

15x

2

2

=

=

=

600

600

600

+ s 2

+ s 3 x 1 , x 2 , s 1 , s 2 , s 3

 

0

 

Cj

2

3

0

0

0

 

Var. Bas.

Coef.

X 1

X 2

S 1

S 2

S 3

Recursos

S

2

0

0

0

0.636

1

-1.55

54.55

X

2

3

0

1

-0.073

0

0.091

10.91

X

1

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 tabla óptima simplex (solución final), es:

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

S 1 representa el tiempo en la máquina 1

S 2 representa el tiempo en la máquina 2

S 3 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.

Ing. Israel Rivas Alvarez

8

El algoritmo Simplex permite en la tabla final del procedimiento (óptima), identificar algunas de las

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

X 1

X 2

S 1

S 2

S 3

Recursos

X 2

40

0

1

8/25

0

-3/25

20

S 2

0

0

0

-8/25

1

3/25

0

X 1

50

1

0

-5/25

0

5/25

25

 

Zj Cj - Zj

50

40

70/25

0

130/25

2,050

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

X 1

X 2

S 1

S 2

S

3

Recursos

X

2

50

0

1

8/25

0

-3/25

12

S

2

0

0

0

-8/25

1

3/25

8

X

1

30

1

0

-5/25

0

5/25

30

 

Zj Cj - Zj

30

50

10

0

0

1,500

0

0

-1

0

0

Caso 3

SOLUCION NO ACOTADA

Ing. Israel Rivas Alvarez

9

 Se produce en alguna iteración del algoritmo sin haber llegado a la solución final

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

X 1

X 2

S

1

S 2

R 1

Recursos

X

1

20

1

0

-1

0

1

2

S

2

0

0

1

0

1

0

5

 

Zj Cj - Zj

20

0

-20

0

20

40

0

10

20

0

-M-20

Caso 4

SOLUCION NO FACTIBLE

Ocurre cuando en la solución óptima, alguna de las variables artificiales (R i ), 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 (R i ) 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

X 1

X 2

S 1

S 2

S 3

S 4

R 1

Recursos

X

2

40

0

1

8/25

0

-3/25

0

0

12

S

2

0

0

0

-8/25

1

3/25

0

0

8

X

1

50

1

0

-5/25

0

5/25

0

0

30

R 1

-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 (R i ) 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.

Ing. Israel Rivas Alvarez

10

Método dos Fases Fase Uno : Minimizar la suma de las variables artificiales del modelo.

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

Sujeto a:

= 2X 1 +

X 2 + 3X 3

3X 1 + X 1 - 2X 1 + X 1 +

2X 3

2X 2 + 3X 3

X 2 +

3X 2 - X 2 +

X 3

2X 3

=

10

6

9

7

1. Convertir al Modelo Estándar:

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

Ing. Israel Rivas Alvarez

11

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

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

Sujeto a:

=

2X 1 +

3X 1

X 2

+ X 2

+

3X 3

+ 2X 3 +

+ 0S 1 + 0S 2 + MA 1 + 0S 3 + MA 2

S 1

=

10

X 1 - 2X 2 + 3X 3

- S 2

+ A 1

=

6

2X 1 + 3X 2 -

X 3

+ S 3

=

9

X 1 + X 2

+ 2X 3

+ A 2

=

7

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

Inicio del Método de las Dos Fases:

Min Z

Sujeto a:

=

A 1 + A 2

3X1 +X2 + 2X3 + S1

 

=

10

X1 -2X2+ 3X3

- S2

+ A1

=

6

2X1+3X2- X3

+ S3

=

9

X1+ X2+ 2X3 C.N.N (Condición de No Negatividad)

+ A2

=

7

Ing. Israel Rivas Alvarez

12

FASE 1 En la siguiente figura encontramos la tabla simplex clásica. En la primera fila

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!) .

gaussiana (Y si no, coloquelo en los comentarios abajo, para ampliar la explicación!) . Ing. Israel

Ing. Israel Rivas Alvarez

13

El valor de la función objetivo, en cada itereación la he colocado en azul claro,
El valor de la función objetivo, en cada itereación la he colocado en azul claro,

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.

semaforo nos da luz verde para seguir con la siguiente fase. FASE 2 En la 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

a mi me gustaba más el método de la

aunque la verdad, en la

método de las dos fases. Compárelo a ver cuál le gusta más

Gran M, pero ahora me esta gustando más el método de las Dos Fases

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

software

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

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

Ing. Israel Rivas Alvarez

14

Ing. Israel Rivas Alvarez 15
Ing. Israel Rivas Alvarez 15

Ing. Israel Rivas Alvarez

15