unidad3

7
UNIDAD 3 MÉTODO SIMPLEX Fundamentos del método simplex Teoría Este método busca la solución, en cada paso, de forma mejorada hasta que no pueda seguir mejorando dicha solución. Al comienzo el vértice principal es un vértice cualquiera, hasta que va mejorando, comparándolo con el vértice anterior, en los pasos de la ecuación. El método 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. Deberá tenerse en cuenta que este método sólo trabaja para restricciones que tengan un tipo de desigualdad "≤" y coeficientes independientes mayores o iguales a 0, y habrá que estandarizar las mismas para el algoritmo. En caso de que después de éste proceso, aparezcan (o no varíen) restricciones del tipo "≥" o "=" habrá que emplear otros métodos, siendo el más común el método de las Dos Fases. Resumen del método simplex. Paso 1 Convertir el LP a suma forma estándar. Paso 2 Encontrar una solución básica factible. Si todas las restricciones son de tipo =<se pueden usar las variables de holgura si para cada la i. Paso 3 Si todas las variables no básicas tienen un coeficiente no negativo en la 0, la bfs actuales optima. Si hay variables en la 0 con coeficientes negativos, se debe escoger la que acompañe al coeficiente más negativo en la 0 para entrar a la base. Esta variable se denomina la variable entrante. Paso 4 Emplear el pivoteo para hacer que la variable entrante ingrese a la base en la que restringido su valor. Una vez obtenida la base, volver al paso 3, empleando la forma canoníca actual. Solución factible Una solución basal de (2.3) en el cual todas las variables son no negativas es una Solución basal factible o bfs. Los siguientes dos teoremas explican la importancia de concepto de solución basal factible en LP. Teorema 1 La región factible para cualquier problema de programación lineal es un conjunto convexo. Además, si un LP tiene solución óptima, el óptimo debe ser un punto extremo de la región factible. La justificación del Teorema 1 fue discutida intuitivamente

Upload: gregory-nick-toledo-veliz

Post on 16-Aug-2015

15 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Unidad3

UNIDAD 3

MÉTODO SIMPLEX

Fundamentos del método simplex

Teoría

Este método busca la solución, en cada paso, de forma mejorada hasta que no pueda

seguir mejorando dicha solución. Al comienzo el vértice principal es un vértice cualquiera,

hasta que va mejorando, comparándolo con el vértice anterior, en los pasos de la ecuación.

El método 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. Deberá tenerse en cuenta que este método sólo trabaja para restricciones

que tengan un tipo de desigualdad "≤" y coeficientes independientes mayores o iguales a 0,

y habrá que estandarizar las mismas para el algoritmo. En caso de que después de éste

proceso, aparezcan (o no varíen) restricciones del tipo "≥" o "=" habrá que emplear otros

métodos, siendo el más común el método de las Dos Fases.

Resumen del método simplex.

Paso 1 Convertir el LP a suma forma estándar.

Paso 2 Encontrar una solución básica factible. Si todas las restricciones son de tipo =<se

pueden usar las variables de holgura si para cada la i.

Paso 3 Si todas las variables no básicas tienen un coeficiente no negativo en la 0, la bfs

actuales optima. Si hay variables en la 0 con coeficientes negativos, se debe escoger la que

acompañe al coeficiente más negativo en la 0 para entrar a la base. Esta variable se

denomina la variable entrante.

Paso 4 Emplear el pivoteo para hacer que la variable entrante ingrese a la base en la que

restringido su valor. Una vez obtenida la base, volver al paso 3, empleando la forma

canoníca actual.

Solución factible

Una solución basal de (2.3) en el cual todas las variables son no negativas es una

Solución basal factible o bfs. Los siguientes dos teoremas explican la importancia de

concepto de solución basal factible en LP.

Teorema 1 La región factible para cualquier problema de programación lineal es un

conjunto convexo. Además, si un LP tiene solución óptima, el óptimo debe ser un punto

extremo de la región factible. La justificación del Teorema 1 fue discutida intuitivamente

Page 2: Unidad3

cuando se estudio la resolución grafica de LP de dos variables, además en dos variables

también se vio que el ¶optimo corresponde un punto extremo.

Teorema 2 Para cualquier LP, existe un único punto extremo de la región factible

correspondiente a cada solución basal factible. Además, existe a los menos una bfs

correspondiente a cada punto extremo de la región factible.

Solución básica factible

Siempre se debe incorporar una variable entrante en la que controla su valor

máximo. En el ejemplo, para hacer que x1 sea la variable basal en la 3 se debe emplear

operaciones las elementales para conseguir que x1 tenga coeficiente 1 en dicha la y 0 en las

otras las. El procedimiento se denomina pivoteo en la 3. El resultado es que x1 reemplace a

s3 como variable básica de la 3. Los pasos a seguir son los siguientes:

Paso 1 Se crea un coeficiente 1 para x1 en la 3 multiplicando la completa por ½. El

resultante de la operación es:

x1 + 0;75x2 + 0;25x3 + 0;5s3 = 4

Paso 2 Se crea un coeficiente 0 para la variables x1 en la 0. Para ello basta multiplicar por

60 (3.12) y sumarla a la 0 actual: z + 15x2 ¡ 5x3 + 30s3 = 240

Paso 3 Para fabricar un coeficiente 0 para la variables x1 en la 1 se multiplica por ¡8 (3.12)

y se suma a la 1 actual: ¡x3 + s1 ¡ 4s3 = 16

Paso 4 Creamos un coeficiente 0 para la variables x1 en la ¯la 2 multiplicando por ¡4 (3.12)

y sumándosela a la ¯la 2 actual: ¡x2 + 0;5x3 + s2 ¡ 2s3 = 4

Debido a que en la 4 no aparece la variable x1, no es necesario aplicar operaciones las para

eliminar x1 de la. Luego, la 4 queda igual que antes: x2 + s4 = 5

Efectuando todas las medicaciones descritas se completa el Cuadro 3.3.

Las variables basales y no basales en este caso definen los siguientes conjuntos:

BV = fz; s1; s2; x1; s4g NBV = fs3; x2; x3g

Page 3: Unidad3

Variable entrante:

Se puede comenzar a desarrollar con cualquier variable solo que según la que tome

se realizaran más o menos iteraciones. Se recomienda usar las variables básicas, ya que

estas serán la base en la solución en estos métodos.

Variable saliente

Igualmente se puede comenzar con cualquiera de ellas, aunque se puede dar el caso

corrido de caer en un ciclo repetitivo. Para que no ocurran estos casos de repetición no se

tomaran en cuenta las variables básicas haciendo que siempre estén en la base. En caso de

igualdad de las variables se, en el segundo método, se tomara las variables artificiales.

Método de las dos faces

Trata, en diferencia del método simplex, en que primero hay que resolver el

problema auxiliar tratando de minimizar la suma las variables artificiales. Una vez

resolvido el problema se ordena la tabla final y comenzamos con el método simplex

normal.

Fase 1

En esta primera fase, se realiza todo de igual manera que en el método Simplex

normal, excepto la construcción de la primera tabla, la condición de parada y la preparación

de la tabla que pasará a la fase 2

- Construcción de la primera tabla: Se hace de la misma forma que la tabla inicial

del método Simplex, pero con algunas diferencias. La fila de la función objetivo cambia

para la primera fase, ya que cambia la función objetivo, por lo tanto aparecerán todos los

términos a cero excepto aquellos que sean variables artificiales, que tendrán valor "-1"

debido a que se está minimizando la suma de dichas variables (recuerde que minimizar F es

igual que maximizar F·(-1)).

La otra diferencia para la primera tabla radica en la forma de calcular la fila Z. Ahora

tendremos que hacer el cálculo de la siguiente forma: Se sumarán los productos Cb·Pj para

todas las filas y al resultado se le restará el valor que aparezca (según la columna que se

éste haciendo) en la fila de la función objetivo.

- Condición de parada: La condición de parada es la misma que en el método

Simplex normal. La diferencia estriba en que pueden ocurrir dos casos cuando se produce

la parada: la función toma un valor 0, que significa que el problema original tiene solución,

o que tome un valor distinto, indicando que nuestro modelo no tiene solución.

Page 4: Unidad3

- Eliminar Columna de variables artificiales: Si hemos llegado a la conclusión de

que el problema original tiene solución, debemos preparar nuestra tabla para la segunda

fase. Deberemos eliminar las columnas de las variables artificiales, modificar la fila de la

función objetivo por la original, y calcular la fila Z de la misma forma que en la primera

tabla de la fase 1.

Método simplex revisado

Procedimiento de cálculo

Resolver el siguiente problema mediante el método simplex revisado.

max z = −2x2 + x3

s/a x1 − 2x2 + x3 >= −4 x1 + x2 + x3 <= 9 2x1 − x2 − x3 <= 5 x1, x2, x3 >= 0 Preliminares. Lo primero que debemos hacer es convertir el problema a su forma estándar.

En nuestro caso,

max z = −2x2 + x3

s/a −x1 + 2x2 − x3 + x4 = 4 x1 + x2 + x3 + x5 = 9 2x1 − x2 − x3 + x6 = 5 x1, x2, x3 >= 0 Matricialmente,

max z = c.x s/a A.x = b x >= 0 Donde,

y c = (0,−2, 1, 0, 0, 0). Estos vectores/matrices van a permanecer constantes a lo largo del

ejercicio. No obstante, cuando introduzcamos B, N, xB, xN, cB y cN, estos últimos van a

variar según la base establecida en cada iteración. Búsqueda primer solución factible. El

problema es origen factible, así que no tenemos necesidad de utilizar el método de las dos

fases. Simplemente, Podemos comenzar con la base B = (a4, a5, a6). Obviamente,

N = (a1, a2, a3).

Test de optimalidad. Recordemos la forma general del diccionario,

Page 5: Unidad3

xB = B−1.b − B−1.N.xN z = cB.B−1.b + (cN − cB.B−1.N).xN

Debemos investigar los coeficientes de la función objetivo (i.e.cN−cB.B−1.N).

Llamemos w al vector que resulta del producto cB.B−1. Utilizando la primera solución

factible hallada, cB resulta ser el vector nulo, as´ı que también

w = (0, 0, 0).

Lo siguiente es evaluar los coeficientes de la función objetivo (correspondientes a

las variables no básicas) hasta encontrar uno que sea estrictamente positivo:

c1 − w.a1 = 0, c2 − w.a2 = −2, c3 − w.a3 = 1, por lo tanto entra x3 a la base.

Test de factibilidad. Ahora tenemos que hallar la variable saliente que más restricción

impone, cuando x3 comienza a crecer. De la forma general del diccionario, veamos que

xB = B−1.b − B−1.N.xN = b − N.xN = b − a3.x3, Pues B−1 = I y x3 dejara de ser cero, pero no así las otras variables no básicas (x1 = x2 = 0).

En resumen,

x4 = 4 + x3, que no impone restricción,

x5 = 9 − x3, que impone la restricción x3 _ 9,

x6 = 5 + x3, que no impone restricción.

La variable que más restricción impone es x5 y, por lo tanto, sale de la base.

Actualización. Para poder pasar a la próxima iteración (la cual comienza con el test de

optimalidad) debemos actualizar la base, y con ella, los vectores/matrices B, N, xB, xN, cB y

cN. Todas ellas se hallan mediante un reordenamiento de sus componentes (donde estaba

antes la columna/valor correspondiente a la variable entrante, ahora estará la de la variable

saliente y viceversa). Es decir,

B = (a4, a3, a6), N = (a1, a2, a5), xB = (x4, x3, x6)T , xN = (x1, x2, x5)T , cB = (0, 1, 0) y cN

= (0,−2, 0). Cabe destacar que también podemos aprovechar a calcular la nueva B−1 de una manera

eficiente, a partir de la B−1 previa. Llamemos B1 a la matriz B antes de iterar y B2 a la matriz

luego de iterar. Observemos que B2 = (a4, a3, a6) = (a4, a5, a6).T = B1.T,

T es una identidad modificada, en donde se ha cambiado su columna del medio por la

columna correspondiente a x3 en el resultado B−1.N ya calculado en el paso anterior (dicha

columna había resultado ser simplemente a3).

Luego, B−12 = (B1.T )−1 = T−1.B−11 = T−1.I = T−1

Page 6: Unidad3

En general, T−1 es también una identidad, salvo que la columna cambiada k (en nuestro

caso, es la del medio, k = 2) está formada por la columna (−t1k/tkk,−t2k/tkk, · · · , 1/tkk, · · · )T

Obsérvese que la fila k de esta columna se calcula de una manera diferente al resto.

Test de optimalidad. Nuevamente, volvemos a calcular los coeficientes de la función

objetivo correspondiente a las nuevas variables no básicas. En primer lugar, w = cB.B−1 =

(0, 1, 0).

c1 − w.a1 = −1, c2 − w.a2 = −3, c5 − w.a5 = −1.

Como todos los coeficientes no son estrictamente positivos, hemos alcanzado el óptimo.

Resultado. Para conocer los valores de x_ y z_, volvemos a recordar la forma general del

diccionario, y hacemos

x*B = B−1.b, x* N = 0, z* = cB.B*1.b = w.b. Nos queda x*B = (13, 9, 14) y z_ = 9. En particular, las slacks no nos interesan y podemos

descartarlas, dejando

X1 = x_

x2 = 0 y x_

x3 = 9.

Page 7: Unidad3

Realizado por los creadores del sitio:

http://www.unefa-io.webnode.es

Correspondiente a la unidad 3.

Investigación de Operaciones