Algebra_-_método_simplex

download Algebra_-_método_simplex

of 10

Transcript of Algebra_-_método_simplex

  • 7/28/2019 Algebra_-_mtodo_simplex

    1/10

    El mtodo del simplex. Ejercicios resueltos y comentados

    1.- Resolver utilizando el mtodo del simplex el programa siguiente

    Max

    sujeto a

    x x x

    x x x

    x x x

    x x x

    1 2 3

    1 2 3

    1 2 3

    1 2 3

    9

    2 3 9

    3 2 2 15

    0

    + +

    + + + +

    , ,

    .

    Solucin:

    Paso 1: En primer lugar, transformamos este programa de forma cannica a forma estndar mediante la

    introduccin de dos variables de holgura

    Max

    sujeto a

    x x x x x

    x x x x

    x x x x

    x x x x x

    h h

    h

    h

    h h

    1 2 3 1 2

    1 2 3 1

    1 2 3 2

    1 2 3 1 2

    9 0 0

    2 3 9

    3 2 2 15

    0

    + + + +

    + + + =

    + + + =, , , ,

    Expresamos ahora los componentes del problema en forma matricial

    C X

    x

    x

    x

    x

    x

    A Bh

    h

    =

    =

    =

    =

    1

    9

    1

    0

    0

    1 2 3 1 0

    3 2 2 0 1

    9

    15

    1

    2

    3

    1

    2

    ; ; ;

    y comprobamos que rg rgA A B= =( , ) 2 . Esto significa que el sistema AX B= es compatible.

    Adems obtenemos una base cannica en la matrizA utilizando las dos ltimas columnas lo que implica que

    no son necesarias variables artificiales para este problema.

    Paso 2: Determinamos una primera solucin factible bsica utilizando la matriz bsica cannica Ab =

    1 0

    0 1,

    y tenemos X A Bb01 1 0

    0 1

    9

    15

    9

    15= =

    =

    Esta solucin bsica es factible no degenerada y permite considerar las variables de holgura como bsicas y

    sus costes asociadas como bsicos

    Xx

    xb

    h

    h=

    1

    2

    C00

    0=

    .

    Las variables deholgura se

    incorporan a lafuncin objetivo con

    costos (coeficientes)

    nulos.Este es el

    cuerpo de lasrestriccionesRestricciones de no

    negatividad para las

    variables

  • 7/28/2019 Algebra_-_mtodo_simplex

    2/10

    Paso 3: Como se trata de un problema de maximizacin utilizaremos el siguiente esquema para la primera

    tabla del simplex

    XT

    CT

    z cj j C A CT T0 C BT

    0

    Calculamos en primer lugar los valores C A CT T0 y C BT

    0 y luego sustituimos en esta primera tabla

    C A CT T

    0 = ( , ) ( , , , , ) ( , , , , )0 01 2 3 1 0

    3 2 2 0 119 1 0 0 1 9 1 0 0

    =

    C BT

    0 0 09

    150=

    =( , )

    x x x x xh h1 2 3 1 2

    1 9 1 0 0

    x

    x

    h

    h1

    2

    0

    0

    1 2 3 1 0

    3 2 2 0 1

    9

    15

    z cj j -1 -9 -1 0 0 0

    Paso 4: Para evitar confusiones prescindimos de los valores de la segunda columna y a continuacin

    localizaremos el nmero ms negativo de la ltima fila (excluyendo la ltima columna). La columna del

    cuerpo de la tabla que est situada inmediatamente encima ser la columna de trabajo.

    x x x x xh h1 2 3 1 2

    1 9 1 0 0

    x

    x

    h

    h1

    2

    [ ]

    [ ]

    1 2 3 1 0

    3 2 2 0 1

    9

    15

    z cj j -1 -9 -1 0 0 0

    X Cb b A BEste es el cuerpo de

    la tablaAqu se

    disponen las

    variables bsicasy sus costes

    asociados

    Este es el nmero

    ms negativo de la

    ltima fila (sin contarel elemento de la

    ltima columna)

    Esta es la columna

    de trabajo

  • 7/28/2019 Algebra_-_mtodo_simplex

    3/10

    Ahora dividiremos cada nmero de la ltima columna del cuerpo de la tabla por el correspondiente en la

    columna de trabajo

    x x x x xh h1 2 3 1 2

    1 9 1 0 0

    x

    x

    h

    h1

    2

    [ ]

    [ ]

    1 2 3 1 0

    3 2 2 0 1

    9

    15

    z cj j -1 -9 -1 0 0 0

    y obtenemos los valores 9/2 = 4,5 y 15/2= 7,5. Entre tales valores se escoge el que d un resultado menor

    y el elemento de la columna de trabajo que proporciona este valor mnimo se distingue como elemento

    pivote.

    x x x x xh h1 2 3 1 2

    1 9 1 0 0

    x

    x

    h

    h1

    2

    1 2 3 1 0

    3 2 2 0 1

    *

    9

    15

    z cj j -1 -9 -1 0 0 0

    Paso 5: Prescindimosde los valores numricos de la ltima fila de la tabla y utilizando operaciones

    elementales defilas reducimos a ceros todos los elementos de la columna de trabajo distintos del pivote y a

    ste lo hacemos igual a la unidad

    x x x x xh h1 2 3 1 2

    1 9 1 0 0

    x

    x

    h

    h1

    2

    1 2 1 3 2 1 2 0

    3 2 2 0 1

    / / /*

    9 2

    15

    /

    z cj j

    x x x x xh h1 2 3 1 2

    1 9 1 0 0

    x

    x

    h

    h1

    2

    1 2 1 3 2 1 2 0

    2 0 1 1 1

    / / /*

    9 2

    6

    /

    z cj j

    A la segunda fila leaadimos el

    resultado demultiplicar (-2) por

    la primera

    Este es el elemento

    pivote

    Hemos multiplicado

    por todos loselementos de la

    primera fila del

    cuerpo de la tabla

  • 7/28/2019 Algebra_-_mtodo_simplex

    4/10

    Paso 6: La variable bsica situada en la fila del pivote pasa a ser no bsica y la variable no bsica situada en

    la columna del pivote pasa a ser bsica. Aadimos ahora sus costes asociados. (Sealemos que no es

    conveniente retocar las variables de la primera fila de la tabla).

    x x x x xh h1 2 3 1 2

    1 9 1 00

    x

    xh2

    2

    9

    0

    1 2 1 3 2 1 2 0

    2 0 1 1 1

    / / /*

    9 2

    6

    /

    z cj j

    Paso 7: Reiteramos los pasos 3 y 4 y volvemos a efectar los clculos z cj j , teniendo en cuenta que ahora

    es

    A =

    1 2 1 3 2 1 2 0

    2 0 1 1 1

    / / /*; B =

    9 2

    6

    /; C0

    9

    0=

    y resulta

    C A CT0 9 01 2 1 3 2 1 2 0

    2 0 1 1 11 91 0 0 7 2 0 25 2 9 2 0 =

    =( , )

    / / /( , , , , ) ( / , , / , / , )

    *

    C BT

    0 9 09 2

    681 2=

    =( , )

    // .

    Reiteracin del paso 3x x x x xh h1 2 3 1 2

    1 9 1 0 0

    x

    xh2

    2

    9

    0

    1 2 1 3 2 1 2 0

    2 0 1 1 1

    / / /*

    9 2

    6

    /

    z cj j 7/2 0 25/2 9/2

    0

    81/2

    Reiteracin del paso 4: No es posible debido a que no hay valores negativos en la ltima fila (sin contar laltima columna). En consecuencia, el algoritmo se detiene. En el caso de que hubiera aparecido un

    nmero negativo en esta ltima fila, deberemos reiterar los pasos 5, 6 y 7.

    Una vez que el algoritmo se ha detenido, identificamos las variables bsicas presentes, que en este caso,

    son x xh2 2, y les asociamos los valores de la ltima columna del cuerpo de la tabla

  • 7/28/2019 Algebra_-_mtodo_simplex

    5/10

    x x x x xh h1 2 3 1 2

    1 9 1 0 0

    x

    xh2

    2

    9

    0

    1 2 1 3 2 1 2 0

    2 0 1 1 1

    / / /*

    9 2

    6

    /

    z cj j 7/2 0 25/2 9/2

    0

    81/2

    x

    xh2

    2

    9 2

    6

    =

    /

    y el resto de las variables se hace cero

    x

    x

    xh

    1

    3

    1

    0

    0

    0

    =

    quedando como vector solucin

    x

    x

    xx

    x

    h

    h

    1

    2

    3

    1

    2

    0

    9 2

    00

    6

    =

    /

    y como valor mximo de la funcin objetivo tenemos el indicado en la ltima fila y ltima columna: 81/2.

    2.- Resolver utilizando el mtodo del simplex el programa siguiente

    Min

    sujeto a

    z x x

    x x

    x x

    x x

    = +

    + + =

    80 60

    0 20 0 32 0 25

    1

    0

    1 2

    1 2

    1 2

    1 2

    , , ,

    ,

    .

    Solucin:

    Paso 1: Transformamos este programa de forma mixta a forma estndar mediante la introduccin de una

    variable de holgura

    Min

    sujeto a

    z x x x

    x x x

    x x

    x x x

    = + +

    + + =+ =

    80 60 0

    0 20 0 32 0 25

    1

    0

    1 2 3

    1 2 3

    1 2

    1 2 3

    , , ,

    , ,

    .

    Como no podemos obtener una base cannica para la determinacin de la primera solucin factible bsica,debemos introducir una variable artificial en la ltima restriccin. Esta variable artificial se incorpora a la

    funcin objetivo con un coeficienteMmuy grande con el fin de que el algoritmo quede penalizado por los

    valores de esta variable

    Min

    sujeto a

    z x x x Mx

    x x x

    x x x

    x x x x

    = + + +

    + + =+ + =

    80 60 0

    0 20 0 32 0 25

    1

    0

    1 2 3 4

    1 2 3

    1 2 4

    1 2 3 4

    , , ,

    , , ,

    .

  • 7/28/2019 Algebra_-_mtodo_simplex

    6/10

    Expresamos el programa en forma matricial

    C

    M

    X

    x

    x

    x

    x

    A B=

    =

    =

    =

    80

    60

    0

    0 20 0 32 1 0

    1 1 0 1

    0 25

    1

    1

    2

    3

    4

    ; ;, ,

    ;,

    y ahora podemos comprobar que rg rgA A B= =( , ) 2 .

    Paso 2: Determinamos una primera solucin factible bsica utilizando la matriz bsica cannica Ab =

    1 0

    0 1,

    y tenemos X A Bb01 1 0

    0 1

    0 25

    1

    0 25

    1= =

    =

    , ,. Esta solucin bsica es factible y no degenerada, pudiendo

    escribir

    Xx

    xb =

    3

    4

    CM

    0

    0=

    .

    Paso 3: Como se trata de un problema de minimizacin utilizaremos el siguiente esquema para la primera

    tabla del simplex

    XT

    CT

    c zj j C C AT T 0 C BT

    0

    Vamos a efectar los clculos y sustituir en esta primera tabla

    ( , , , ) ( , ), ,

    ( , , , ); ( . ),

    80 60 0 00 20 0 32 1 0

    1 1 0 180 60 0 0 0

    0 25

    1M M M M M M

    =

    =

    x x x x1 2 3 4

    80 60 0 M

    c zj j 80-M 60-M 0 0 -M

    Paso 4: Para evitar errores de redondeo vamos a desglosar la ltima linea de la primera tabla en dos lineas.

    La primera contiene a los trminos que no contienenMy la segunda a los trminos que lo contienen.

    x x x x1 2 3 4

    80 60 0 M

    X Cb b A B

    x

    x M

    3

    4

    0

    0 20 0 32 1 0

    1 1 0 1

    , ,

    0 25

    1

    ,

  • 7/28/2019 Algebra_-_mtodo_simplex

    7/10

    80 60 0 0

    -1 -1 0 0

    0

    -1

    Paso 5: Se aplica ahora el algoritmo del simplex a la ltima fila de la tabla anterior, considerando que el

    cuerpo de la tabla se amplia con la penltima fila. As buscamos, en primer lugar, el elemento ms

    negativo de esta ltima fila (sin incluir la ltima columna).

    x x x x1 2 3 4

    80 60 0 M

    x

    x

    3

    4

    0 20 0 32 1 0

    1 1 0 1

    , ,

    80 60 0 0

    0 25

    1

    ,

    0

    -1 -1 0 0 - 1

    De esta forma, la columna de trabajo es la primera del cuerpo de la tabla

    x x x x1 2 3 4

    80 60 0 M

    x

    x

    3

    4

    [ ][ ]

    0 20 0 32 1 0

    1 1 0 1

    , ,

    80 60 0 0

    0 25

    1

    ,

    0

    -1 -1 0 0 - 1

    x

    x M

    3

    4

    0

    0 20 0 32 1 0

    1 1 0 1

    , ,

    0 25

    1

    ,

    Hay dos elementos

    ms negativos, y

    elegimos este por

    comodidad

  • 7/28/2019 Algebra_-_mtodo_simplex

    8/10

    Dividimos cada elemento de la ltima columna del cuerpo de la tabla por el correspondiente en la columna

    de trabajo.

    x x x x1 2 3 4

    80 60 0 M

    x

    x3

    4 [ ]

    [ ]0 20 0 32 1 0

    1 1 0 1, ,

    80 60 0 0

    0 25

    1

    ,

    0

    - 1 -1 0 0 - 1

    y obtenemos 0,25 /0,20 = 1,25 , 1/1 = 1. Esto nos indica que el elemento pivote es el segundo de la primera

    columna del cuerpo de la tabla

    x x x x1 2 3 4

    80 60 0 M

    x

    x

    3

    4

    0 20 0 32 1 0

    1 1 0 1

    , ,*

    80 60 0 0

    0 25

    1

    ,

    0

    - 1 -1 0 0 - 1

    A continuacin hacemos ceros con operaciones elementales de filas en el cuerpo de la tabla

    y en la ltima fila.

    x x x x1 2 3 4

    80 60 0 M

    x

    x

    3

    4

    0 012 1 0 20

    1 1 0 1

    , ,

    0 -20 0 -80

    0 05

    1

    ,

    -80

    0 0 0 1 0

    Cambiamos las variables bsicas y no bsicas. As x1 pasa a ser bsica y x4 deja de ser bsica.

    Observacin importante: Siempre que una variable artificial deja de ser bsica, se elimina de la

    primera lnea de la tabla junto con toda la columna por debajo de ella.

    Como la variable x4 es artificial y ha dejado de ser bsica, podemos eliminar toda la columna por debajo de

    ella.

    Observacin importante: La ltima fila de la tabla puede eliminarse si nos da todo ceros.

  • 7/28/2019 Algebra_-_mtodo_simplex

    9/10

    Como esto ocurre en nuestra tabla podemos suprimir la ltima fila.

    x x x1 2 3

    80 60 0

    x

    x

    3

    1

    0 0 12 1

    1 1 0

    ,

    0 -20 0

    0 05

    1

    ,

    -80

    Calculamos de nuevo C C AT T 0 y C BT

    0 , con los valores

    A =

    0 0 12 1

    1 1 0

    ,; B =

    0 05

    1

    ,; C0

    0

    80=

    ,

    ( , , ) ( , ),

    ( , , )80 60 0 0 800 0 12 1

    1 1 00 20 0

    = ;

    = ( , )

    ,0 80

    0 05

    180

    resultando la tabla

    x x x1 2 3

    80 60 0

    x

    x

    3

    1

    0 0 12 1

    1 1 0

    ,

    0 -20 0

    0 05

    1

    ,

    -80

    c zj j 0 -20 0 -80

    El nmero ms negativo en la ltima fila (excluyendo el correspondiente a la ltima columna) es -20, luego

    la columna de x2 es la columna de trabajo.

    x x x1 2 3

    80 60 0

    x

    x

    3

    1

    [ ]

    [ ]

    0 0 12 1

    1 1 0

    ,

    0 -20 0

    0 05

    1

    ,

    -80

    0 -20 0 -80

    Las razones entre los elementos de ltima columna y los correspondientes de la columna de trabajo son

    0,05/0,12= 0,417 y 1/1 =1. De esta manera, el elemento pivote es el 0,12.

    Esta es la columna

    de trabajo

    correspondiente al

    nmero ms negativo

  • 7/28/2019 Algebra_-_mtodo_simplex

    10/10

    x x x1 2 3

    80 60 0

    x

    x

    3

    1

    0 0 12 1

    1 1 0

    , *

    0 -20 0

    0 05

    1

    ,

    -80

    Convertimos el pivote en 1 y hacemos ceros de forma adecuada

    x x x1 2 3

    80 60 0

    x

    x

    3

    1

    0 1 8 333

    1 1 0

    ,

    0 -20 0

    0 416

    1

    ,

    -80

    x x x1 2 3

    80 60 0

    x

    x

    3

    1

    0 1 8 333

    1 0 8 333

    ,

    ,

    0 0 166,7

    0 416

    0 584

    ,

    ,

    -71,68

    Entra como variable bsica x2 y sale como no bsica x3 quedando.

    x x x1 2 3

    80 60 0

    x

    x

    2

    1

    0 1 8 333

    1 0 8 333

    ,

    ,

    0 0 166,7

    0 416

    0 584

    ,

    ,

    -71,68

    Como en la ltima fila no aparecen elementos negativos se termina la aplicacin del algoritmo y la solucin

    es z= 7168, ya que se cambia el signo del valor obtenido en la ltima fila y columna. Este valor se alcanza

    para x x1 20 584 0 416= =, , , .