PROGRAMACION LINEAL METODO SIMPLEX

67
UNIDAD 3 "PROGRAMACIÓN LINEAL MÉTODO SIMPLEX" OBJETIVO: EL ALUMNO APLICARÁ EL MÉTODO SIMPLEX PARA

description

Aqui se ve cada uno de los puntos para poder aplicar de forma correcta el método simplex, además trae ejemplos de esto.

Transcript of PROGRAMACION LINEAL METODO SIMPLEX

Page 1: PROGRAMACION LINEAL METODO SIMPLEX

UNIDAD 3

"PROGRAMACIÓN LINEAL MÉTODO SIMPLEX"

OBJETIVO:

EL ALUMNO APLICARÁ EL MÉTODO SIMPLEX PARA RESOLVER PROBLEMAS EN

Page 2: PROGRAMACION LINEAL METODO SIMPLEX

TODO TIPO DE INDUSTRIAS ALIMENTARIAS

PROGRAMACION LINEAL MÉTODO SIMPLEX

Los problemas reales de programación lineal generalmente tienen variables de decisión y muchas restricciones. Tales problemas no pueden ser resueltos gráficamente. Se usan algoritmos tales como el simples. El método simplex es un procedimiento iterativo que progresivamente permite obtener una solución óptima para los problemas de programación lineal. Existen numerosos programas tanto para computadoras centrales como para personales. Aunque el método simples es especialmente útil en problemas de gran escala (resueltos con una computadora), en seguida se practicará en el caso del mismo problema que fue resuelto gráficamente en el ejemplo sobre la empresa química “Chemical”.Procedimiento general del simplex

1. Establézcase la tabla inicial de simples. Formular la función objetivo y las restricciones e introducir las variables de decisión, variable en la solución, valor en solución (LD), C (contribución de la variable), Z (costo de introducir la variable), C – Z (contribución neta de la variable).

2. Selecciónese la columna pivote. Ésta es la columna con el número positivo más grande en el renglón inferior (C - Z). Esta se convierte en la nueva variable de la solución.

3. Selecciónese el renglón pivote. Éste es el renglón con la razón más pequeña del valor LD dividido por el valor de la columna pivote. Úsense sólo números positivos. Esto identifica la variable que deja la solución.

4. Enciérrese en un círculo el elemento pivote. Ésta es la intersección del renglón y la columna pivotes.

5. Conviértase al elemento pivote en un 1. Hágase esto dividiendo cada valor del renglón pivote entre el valor pivote. Métase este renglón en una tabla nueva.

6. Genérense los demás renglones de la nueva tabla con ceros en la columna pivote. Esto se hace multiplicando el nuevo renglón (del paso 5) por el negativo del elemento en la columna pivote. El resultado será sumado al antiguo renglón. Introdúzcase este renglón revisado en la nueva tabla, y continúese este procedimiento en cada renglón de la sección central de la tabla.

7. Prueba de optimización. Calcúlense los valores de Z y C – Z. Los valores de Z de cada columna son (elementos de la columna) ( C ). Si todos los valores de C – Z son ≤ 0, la solución es óptima. Léanse los valores de las variables en la solución de la columna de LD y el valor de la función objetivo del renglón de Z en la columna de LD. Si la solución no es óptima, regrese al paso 2.

3.1 TEORIA Y FUNDAMENTOS DEL MÉTODO SIMPLEX

Page 3: PROGRAMACION LINEAL METODO SIMPLEX

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.

Se considera el programa lineal en su forma canónica Máx Z = cXSujeto a

    Donde A es de orden m por n; cX son vectores renglón y columna respectivamente con n componentes y b es un vector columna con m componentes. Se denotan a las columnas de A por a1,a2,...,an con m < n. Se considera a la matriz A partida en dos matrices, una B con m vectores linealmente independientes y otra n con n-m vectores linealmente dependientes:

 Am,n = (Bm,m Nm,n-m)

     La matriz B se le llamará la base y cualquier vector aj en A que no está en B, puede escribirse como una combinación de los vectores de b. Es decir dado

Este puede escribirse como

donde

i=1,...,m.Se hace

Page 4: PROGRAMACION LINEAL METODO SIMPLEX

 

Por lo que  y como B tiene inversa B-1, Yj = B-1 aj

    Considerando las restricciones originales del programa linealAX = b

Se tiene que(B|N) (XB/XN) = b

donde

 Entonces desarrollando se tiene 

BXB+NXN = b Si se hace uso de la definición de solución básica factible se tiene que

Y la desarrollada anteriormente se convierte en

    Que es una solución básica de  . El vector  se le denomina vector básico y

a  , vector no básico. Si se parte el vector de costos o precios unitarios c en 

 Se tiene que la función objetivo puede escribirse

 

Page 5: PROGRAMACION LINEAL METODO SIMPLEX

porque 

3.1.1 ALGEBRA 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 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

Page 6: PROGRAMACION LINEAL METODO SIMPLEX

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

3.1.2 VARIABLES BÁSICAS, NO BÁSICAS E INDICADORES

OBTENCIÓN DE UNA SOLUCIÓN BÁSICA FACTIBLE.

Recuérdese que el objetivo general del método símplex es obtener una sucesión

de soluciones básicas factibles mejoradas hasta alcanzar la solución optima.

La solución básica que resulta es la solución de m ecuaciones

[A , I]

XX S = b,

en las que n variables no básicas del conjunto de (n + m) elementos de

XX S

Page 7: PROGRAMACION LINEAL METODO SIMPLEX

se igualan a cero. Cuando se eliminan estas n variables igualadas a cero queda un

conjunto de m ecuaciones con m incógnitas ( las variables básicas). Este sistema de

ecuaciones se puede denotar por B XB = b, donde el vector de variables básicas

XB =

X B1

X B2

⋮X Bm

Se obtiene al eliminar las variables no básicas de

XX S y la matriz básica

B =

B 11 B 12 ⋯ B 1N

B 21 B 22 ⋯ B 2N

⋮ ⋮ ⋮BM 1 B M 2 ⋯ BMN

se obtiene al eliminar las columnas correspondientes a los coeficientes de las variables no

básicas de [A , I].

Para resolver B XB = b , ambos lados se multiplicaran por B-1:

B-1 B XB = B-1 b

Como B-1 B = 1, la solución deseada para las variables básicas es XB = B-1 b. Sea CB el

vector obtenido al eliminar los coeficientes de las variables no básicas de [ C , 0 ] y al

reordenar los elementos para que coincidan con los de XB , entonces el valor de la función

objetivo para esta solución básica es.

Page 8: PROGRAMACION LINEAL METODO SIMPLEX

Z = CB XB = CB B-1 b

Ejemplo Wyndor Glass.

C = 3 5 , A I =

1 0 1 0 00 2 0 1 03 2 0 0 1 , b =

41218

X =

X 1

X 2 , XS =

X 3

X 4

X 5

Iteración 0

XB =

X 3

X 4

X 5 , B =

1 0 00 1 00 0 1 = B-1, así

X 3

X 4

X 5 =

1 0 00 1 00 0 1

41218 =

41218

CB = 0 0 0 así Z = 0 0 0

41218 = 0

Iteración 1

XB =

X 3

X 2

X 5 , B =

1 0 00 2 00 2 1 , B-1 =

1 0 0

012

0

0 −1 1

Page 9: PROGRAMACION LINEAL METODO SIMPLEX

Así

X 3

X 2

X 5 =

1 0 0

012

0

0 −1 1

41218 =

466

CB = 0 5 0 así Z = 0 5 0

466 = 30

Iteración 2

XB =

X 3

X 2

X 1 , B =

1 0 00 2 00 2 3 , B-1 =

1 13

−13

0 12

0

0 −1

3

1

3

Así

X 3

X 2

X 1 =

1 13

−13

0 12

0

0 −1

3

1

3

41218 =

262

CB = 0 5 3 así Z = 0 5 3

262 = 36

FORMA MATRICIAL DEL CONJUNTO DE ECUACIONES ACTUALES

Para el conjunto original de ecuaciones, la forma matricial es

1 −c 00 A I

ZXX S =

0b

Page 10: PROGRAMACION LINEAL METODO SIMPLEX

Después de cualquier iteración, XB = B-1 b y Z = CB B-1 b, por lo que el lado derecho de

las ecuaciones se ha convertido en

ZX B =

1 C BB−1

0 B−10b =

C BB−1b

B−1b

Entonces, las operaciones algebraicas en ambos lados del conjunto de ecuaciones

original resultaron equivalentes al premultiplicarlos por esta misma matriz. Como la forma

matricial que se busca

1 C BB−1

0 B−1

1 −c 00 A I =

1 C BB−1A−c C BB

−1

0 B−1A B

−1

para el conjunto de ecuaciones después de cualquier iteración es

1 C BB−1A−c C BB

−1

0 B−1A B

−1

ZXX S =

C BB−1b

B−1b

Tabla inicial y final del símplex en forma matricial

Iteración

Variable

básica

Ec.

núm.

Coeficiente de Lado

DerechoZVariables

original

Variable de

holgura

0

Z 0 1 -C 0 0

XB 1-m 0 A I b

Page 11: PROGRAMACION LINEAL METODO SIMPLEX

Cualquiera

Z 0 1 CBB-1 A -C CBB-1 CBB-1b

XB 1-m 0 B-1 A B-1 B-1b

3.1.3 MAXIMIZACIÓN Y Minimización

EJEMPLO DE MAXIMIZACIÓN UTILIZANDO EL MÉTODO SIMPLEX

Continuando con el problema anterior los pasos para resolver el problema por el método simplex son:

1. Expresar el problema en forma estándar

Max 40F + 30S + S1 + S2 + S30.4F +0.5S + S1 = 200.2S + S2 = 50.6F +0.3S +S3 = 21F,S,S1,S2,S3 >= 0

2. Obtener el renglón z que consiste en convertir al función objetivo en valores negativos.

Max z = 40F+30S+S1+S2+S3z = -40F-30S = O

3. Resumir la forma estándar en una tabla simplex

4. Se encuentran las intersecciones de la primera variable (la más negativa) para determinar el renglón pivote.

En este caso se toma la columna donde se encuentra el -40 y cada uno de los valores de la solución se divide dentro de los valores de dicha columna, escogiendo el menor valor y toda esa fila se convertirá en la fila pivote como se puede observar en la siguiente tabla:

Page 12: PROGRAMACION LINEAL METODO SIMPLEX

5. Se hacen los cálculos correspondientes

a. La nueva fila pivote es la S3 el objetivo es convertir el valor de 0.6 en 1 para lo cual se divide toda la fila dentro de 0.6 y se coloca en la nueva tabla.b. El resto de valores que se encuentran arriba o abajo de 0.6 deben convertirse en 0. Para este caso se desea convertir el 0.4 en 0 por lo cual se convierte el 0.4 en negativo se multiplica por el valor correspondiente en la nueva fila pivote que es 1 y se le suma el valor de esa posición en la tabla antigua que en este caso es 0.4 en resumen (-0.4*1+0.4 = 0) y asi sucesivamente con cada una de las filas:

6. Como no se tienen todavía las variables de z en positivo, entonces hay que repetir los pasos 4 y 5 hasta que todos los valores de z sean positivos:

Como se puede observar en la tabla anterior todos los valores de z son positivos, lo cual quiere decir se ha llegado a encontrar la solución óptima del problema que es producir 20 toneladas de aditivo para combustible y 25 toneladas de base para solvente para obtener una ganancia máxima de $ 1,600*.

* Si observa se obtuvieron los mismos resultados que el método gráfico y algebraico anteriormente descritos

EJEMPLO DE UN PROBLEMA DE MINIMIZACIÓN

Consideremos un modelo de Programación Lineal en su forma estandar, que denotaremos en lo que sigue por:

Min c1x1 + c2x2 + … + cnxn

sa a11x1 + a12x2 + … + a1nxn = b1

a21x1 + a22x2 + … + a2nxn = b2

… … …

am1x1 + am2x2 + … + amnxn = bm

xi >= 0, i = 1, 2, …, n y m <= n

Page 13: PROGRAMACION LINEAL METODO SIMPLEX

Matricialmente escrito como:

Min cTx

sa Ax = b

x >= 0

No existe pérdida de generalidad en asumir que un modelo de PL viene dado en su forma estándar.

3.1.4 FILAS Y COLUMNAS PIVOTANTES

Encontrar la variable de decisión que entra en la base y la variable de holgura que sale de la base

A. Para escoger la variable de decisión que entra en la base, nos fijamos en la última fila, la de los coeficientes de la función objetivo y escogemos la variable con el coeficiente negativo mayor (en valor absoluto).En nuestro caso, la variable x de coeficiente - 3.

Si existiesen dos o más coeficientes iguales que cumplan la condición anterior, entonces se elige uno cualquiera de ellos.

Si en la última fila no existiese ningún coeficiente negativo, significa que se ha alcanzado la solución óptima. Por tanto, lo que va a determinar el final del proceso de aplicación del método del simplex, es que en la última fila no haya elementos negativos.

La columna de la variable que entra en la base se llama columna pivote (En color azulado).  

B. Para encontrar la variable de holgura que tiene que salir de la base, se divide cada término de la última columna (valores solución) por el término correspondiente de la columna pivote, siempre que estos últimos sean mayores que cero. En nuestro caso:      18/2 [=9] , 42/2 [=21] y 24/3 [=8]

Si hubiese algún elemento menor o igual que cero no se hace dicho cociente. En el caso de que todos los elementos fuesen menores o iguales a cero, entonces tendríamos una solución no acotada y no se puede seguir.

El término de la columna pivote que en la división anterior dé lugar al menor cociente positivo, el 3, ya 8 es el menor, indica la fila de la variable de holgura que sale de la base, d. Esta fila se llama fila pivote (En color azulado).

Page 14: PROGRAMACION LINEAL METODO SIMPLEX

Si al calcular los cocientes, dos o más son iguales, indica que cualquiera de las variables correspondientes pueden salir de la base.    

C. En la intersección de la fila pivote y columna pivote tenemos el elemento pivote operacional,

3.2 SOLUCIÓN DE PROBLEMAS POR EL MÉTODO SIMPLEX

En la solución gráfica observamos que la solución óptima está asociada siempre con un punto extremo del espacio de soluciones. El método simplex está basado fundamentalmente en este concepto.

Careciendo de la ventaja visual asociada con la representación gráfica del espacio de soluciones, el método simplex emplea un proceso interativo que principia en un punto extremo factible, normalmente el origen, y se desplaza sistemáticamente de un punto extremo factible a otro, hasta que se llega por último al punto óptimo.

Existen reglas que rigen la selección del siguiente punto extremo del método simplex: 1.  El siguiente punto extremo debe ser adyacente al actual. 2. La solución no puede regresar nunca a un punto extremo considerado con la anterioridad.

El algoritmo simplex da inicio en el origen, que suele llamarse solución inicial. Después se desplaza a un punto extremo adyacente. La elección específica de uno a otro punto depende de los coeficientes de la función objetivo hasta encontrar el punto óptimo. Al aplicar la condición de optimidad a la tabla inicial  seleccionamos a Xi como la variable que entra. En este punto la variable que sale debe ser una de las variables artificiales.

Los pasos del algoritmo simplex son ( 10 ) :

1. Determinar una solución básica factible inicial. 2. Prueba de optimidad: determinar si la solución básica factible inicial es óptima y sólo si todos los coeficientes de la ecuación son no negativos ( >= 0 ). Si es así, el proceso termina; de otra manera se lleva a cabo otra interacción para obtener la nueva solución básica factible inicial. 3.  Condición de factibilidad.- Para todos los problemas de maximización y minimización, variable que sale es la variable básica que tiene la razón más pequeña (positiva). Una coincidencia se anula arbitrariamente. 4.  Seleccionar las variables de holgura como las variables básicas de inicio. 5.  Selecciona una variable que entra de entre las variables no básicas actuales que, cuando se incrementan arriba de cero, pueden mejorar el valor de la función objetivo. Si no existe la solución básica es la óptima, si existe pasar al paso siguiente. 6.  Realizar el paso iterativo. a) Se determina la variable básica entrante mediante la elección de la variable con el coeficiente negativo que tiene el valor mayor valor absoluto en la ecuación. Se enmarca la columna correspondiente a este coeficiente y se le da el nombre de columna pivote. b)  Se determina la variable básica que sale; para esta, se toma cada coeficiente  positivo

Page 15: PROGRAMACION LINEAL METODO SIMPLEX

(>0) de la columna enmarcada, se divide el lado derecho de cada renglón entre estos coeficientes, se identifica la ecuación con el menor cociente y se selecciona la variable básica para esta ecuación. c)  Se determina la nueva solución básica factible construyendo una nueva tabla en la forma apropiada de eliminación de Gauss, abajo de la que se tiene. Para cambiar el coeficiente de la nueva variable básica en el renglón pivote a 1, se divide todo el renglón entre el número pivote, entonces

renglón pivote nuevo  = renglón pivote antiguo                                        número pivote

para completar la primera iteración es necesario seguir usando la eliminación de Gauss para obtener coeficientes de 0 para la nueva variable básica Xj en los otros renglones, para realizar este cambio se utiliza la siguiente fórmula:

renglón nuevo = renglón antiguo - ( coeficiente de la columna pivote X renglón pivote  nuevo)

cuando el coeficiente es negativo se utiliza la fórmula:

renglón nuevo = renglón antiguo + (coeficiente de la columna pivote X renglón pivote nuevo)     TABLA SIMPLEX como se capturaría la solución básica factible inicial en el siguiente ejemplo:

sea:

Maximizar Z = 2X1+4X2 sujeto a:

2X1+   X2<= 230   X1+ 2X2<= 250             X2<= 120 todas las X1,X2>=0    

BASE Z X1 X2 S1 S2 S3 SOLUCIÓN RAZÓN

Z 0 -2 -4 0 0 0 0 0

S1 0 2 1 1 0 0 230 230/1

S2 0 1 2 0 1 0 250 250/2

S3 0 0 1 0 0 1 120 120/1

Seleccione la variable que entra y la variable que sale de la base:

Entra X2  y sale S3, se desarrolla la nueva tabla solución y se continua el proceso iterativo hasta encontrar la solución optima si es que está existe.

Page 16: PROGRAMACION LINEAL METODO SIMPLEX

Tabla Optima:  

BASE Z X1 X2 S1 S2 S3 SOLUCIÓN RAZÓN

Z 0 0 0 0 2 0 500  

S1 0 0 0 1 -2 3 90  

X1 0 1 0 0 1 -2 10  

X2 0 0 1 0 0 1 120  

Solución:  Z = $500 fabricando X1=10 X2=120 Sobrante de S1 = 90 Tipo de solución: Optima Múltiple     Solución de problemas en donde la solución continua no sea aplicable

     

Interpretación de los resultados: Veamos la salida de un modelo que involucra la planeación de la producción, en donde se desean construir mesas y sillas el recurso disponible es 30 m2 de madera por semana, 48 horas por semana; la demanda de las sillas es de 5 unidades y la de mesas de 10 unidades, la utilidad que se obtiene por las mesas es de $10 y por las sillas de $8, ademas para construir la mesa se ocupa lo siguiente: 4.5 m2 de madera  por unidad, 6 horas por unidad. Para la silla se ocupan: 1.5 m2 de madera por unidad y 3 horas por cada unidad fabricada. Con esta información se desarrolla el modelo siguiente:

Max Z = 10X1+8X2 s.a. 4.5X1+1.5X2 <= 30 6.0X1+3.0X2  <= 48 toda X1,X2  >=0

El reporte final de este modelo es el siguiente (por WinQsb)

Decision  Variable

Solution Value

Unit Cost or Profit cj

Total Contribution

Reduced 

Cost

Basis Status

Allowable Min cj

Allowable 

Max cj

X1 0 10.0000 0 -6.0000 at bound -M 16.0000

X2 16.0000 8.0000 128.0000 0 basic 5.0000 M

Page 17: PROGRAMACION LINEAL METODO SIMPLEX

Objetive Function (Max) = 128.0000        

               

ConstraintLeft

Hand Side

DirectionRigth Hand

SideSlack or Surplas

Shadow Price

Allowable 

Min. RHS

Allowable 

Max. RHS

C1 24.0000 <= 30.0000 6.0000 0 24.0000 M

C2 48.0000 <= 48.0000 0 2.6667 0 60.0000

INTERPRETACIÓN DE LA SALIDA:

Información de la Función Objetivo:

Decision Variable  (Variable de Decisión): Son las variables que se han definido en la formulación del problema en este caso representan al producto X1 =  mesas y X2= sillas.

Solution Value (Valor de la solución): Cantidad de mesas y sillas a fabricar, el problema se resuelve y nos indica que para obtener la mejor solución en términos de la utilidad, se necesitan fabricar 16 sillas y no fabricar mesas.

Unit Cost or Profit (costo por unidad, Utilidad por unidad): Cantidad de pesos que vamos a ganar por cada mesa y por cada silla ($10 y $8 respectivamente.

Total Contribution (contribución total): Es la cantidad en pesos que resulta al multiplicar la utilidad de cada producto por la cantidad que se va a fabricar, ejemplo al fabricar 16 sillas y multiplicarlo por $/silla 8,  la contribución es de $128.0000, así al sumar la contribución por concepto de las mesas nos arroja una aportación de $0.0000, esto resulta de hacer la operación de ($/mesa10) (0mesas)= $0.0000, finalmente la suma de 128.0000+0.0000 = $128.0000, esto es lo que se conoce como el valor de Objetive Function Max.

Reduced Cost (Costo reducido): esto nos indica el dinero que hemos dejado de ganar por cada unidad no fabricada. en este caso debemos de aumentar a mas de $6.0000 la utilidad de la mesa para que sea atractiva la fabricación de mesas.

Basis Status (estado de la base): Indica si la variable es básica o no básica, en este ejemplo la variable X1 (mesas) resulta ser no básica, esto es que no forma parte de la solución óptima, la variable X2 (sillas) es una variable básica, ya que forma parte de la solución.

Allowed Min cj (rango mínimo del cj): esta es la mínima utilidad que puedo obtener sin que la base actual cambie. (-M)

Allowed Max cj (rango mínimo del cj): esta es la máxima utilidad que puedo obtener sin que la base actual cambie. (16.0000)

los valores que aparecen son para el producto Mesa.

Interpretación de  las Restricciones:

Page 18: PROGRAMACION LINEAL METODO SIMPLEX

Constraint (Restricción): Son las restricciones que forman parte del problema, se tienen dos restricciones (C1 y C2) la restricción de la madera y la de horas hombre.

Left hand side (valor al lado izquierdo): esto nos indica el consumo de recurso, de 30.000 m2 de madera se consumieron 24.000 m2.

Direction (dirección): es la dirección de la restricción (<=,>= o =)

Rigth hand side (valor lado derecho): es el recurso disponible actualmente 30 m2

Slack or Surplas (holguras): nos indican un faltante o bien un sobrante

Shadow Price (precio sombra): nos indica la solución Dual, esto es que el 2.6667 indica que cada hra-hombre se debe ofrecer como mínimo en $/hr 2.6667.

Allowed Min RHS (rango mínimo del bj): esta es la mínima cantidad de recurso que se debe de mantener  sin que la base actual cambie. (0 hrs-hombre)

Allowed Max RHS (rango mínimo del bj): esta es la máxima cantidad de recurso que se debe de mantener  sin que la base actual cambie (60.0000 hrs-hombre)

3.2.1 Restricciones ESTÁNDAR: VARIABLES DE HOLGURA

Para la aplicación del algoritmo Símplex se transforma el modelo de programación original, formado por restricciones funcionales de desigualdad,  en un modelo de forma estándar, integrado por restricciones de igualdad equivalentes. Esta conversión se logra con la introducción de variables de holguras y/o superávit.

Variables de holgura. Aplica para las restricciones del tipo (<=), donde el lado derecho de la desigualdad representa el limite sobre la disponibilidad de un recurso y el lado izquierdo representa la utilización de ese recurso limitado que hacen las variables del modelo. Esto quiere decir que una holgura representa la cantidad disponible del recurso que excede a la utilización que se le da. En la conversión de este tipo de desigualdad se añade una variable de ajuste (Xi o Hi) para convertirla en igualdad. Por ejemplo, tenemos la siguiente restricción: 3X1 + 2X2 <= 6, su equivalente seria, 3X1 + 2X2 + X3 = 6.

3.2.3. RESTRICCIONES NO ESTÁNDAR: VARIABLES ARTIFICIALES Y DE SUPERÁVIT

Variables artificiales

Page 19: PROGRAMACION LINEAL METODO SIMPLEX

En los problemas anteriores del método simplex hemos utilizado las variables de holgura como una solución inicial factible. Sin embargo, si la restricción original es una ecuación (“=”) o es del tipo ” , ya“ no tenemos una solución factible inicial preparada.Por lo que es necesario generar una solución inicial. La idea de utilizar Variables Artificiales es muy simple. Es necesario sumar una variable no negativa a todas la ecuaciones que no tengan variables básicas iniciales. Las variables agregadas desempeñarán la misma función que una variable de holgura. Sin embargo, como estas variables no tienen un significado físico desde el punto de vista del problema original ( de aquí el nombre de “artificial”), el procedimiento será valido sólo si hacemos que estas variables sean cero cuando se llegue a la tabla óptima.

Variables de superávit. 

Aplica para las restricciones del tipo (>=), generalmente determinan los requerimientos mínimos de especificaciones. Es decir, un superávit representa el exceso minimo del lado izquierdo sobre el requerimiento mínimo de la restricción. En la conversión de este tipo de desigualdad se resta una variable de ajuste (Xi o Si) para convertirla en igualdad. Por ejemplo, tenemos la siguiente restricción: X1 + 3X2 >= 5, su equivalente seria, X1 + 3X2 - X3 = 5.

La solución del algoritmo Símplex se puede realizar de forma algebraica o de forma tabular. Para los fines de este apartado se explicará el desarrollo del algoritmo en su forma tabular. Antes de iniciar, se deben plantear algunos conceptos importantes: variables básicas, variables no básicas, solución básica factible, variable de entrada, variable de salida, iteración, condición de optimalidad (criterio de entrada) y condición de factibilidad (criterio de salida).

La forma estándar de un problema de programación lineal se compone de m ecuaciones lineales simultaneas en n incógnitas o variables, donde m es menor que n (m < n). Este conjunto de variables se puede segmentar en dos grupos: (1) m - n variables, a las cuales se le asigna un valor cero y (2) las restantes m variables, cuyos valores se determinan resolviendo las m ecuaciones resultantes. Si la m ecuaciones conducen a una única solución, estas variables se denominan variables básicas y las n - m restantes variables se les llaman variables no básicas.

En el inicio de un algoritmo Símplex, se consideran todas las variables de holguras y ficticias adicionadas en la forma estándar, con valores cero, procedimiento que se denomina solución básica factible inicial.  Se denomina una solución básica factible si las m variables básicas son no negativas (>= 0). Si cualquiera de estas m variables es igual a cero se considera un solución BF degenerada. Después se trata de encontrar otra solución básica factible que mejorará el valor del objetivo, proceso denominado iteraciones. Para que una variable cero actual se convierta en positiva, debe eliminarse una de las variables basicas actuales, es decir, volver esta última no básica a nivel cero.

Page 20: PROGRAMACION LINEAL METODO SIMPLEX

Esto introduce dos conceptos, la variable cero seleccionada es la variable de entrada y la variable básica eliminada es la variable de salida.

3.2.3 MÉTODOS DE DOBLE FASE Y DE PENALIZACIÓN

En esencia es igual al método de penalización, en que primero se introducen las variables artificiales al problema original

Sujeto a

Quedando como 

Sujeto a

Donde W es el vector de variables artificiales con componentes . En la primera fase se resuelve el problema

Sujeto a

 

La solución óptima de esta fase debe ser  . Si al obtener las condiciones de

optimalidad en esta fase,  , el problema original no tiene solución. 

Supóngase que la primera fase es óptima,  y que la base asociada a la tabla es B. En la segunda fase se aplica el método Simplex para resolver el problema  Min cX Sujeto a

    La solución óptima a esta segunda fase, es la solución óptima al problema original. Es importante observar que al empezar la segunda fase, todos los vectores de la base óptima correspondientes a la primera fase permanezcan unitarios. Empléense

Page 21: PROGRAMACION LINEAL METODO SIMPLEX

operaciones matriciales elementales para restituir todos aquellos vectores que deben ser unitarios. 

3.2.4 ANÁLISIS DE SENSIBILIDAD: MODIFICACIÓN DEL RHS Y DE LOS COEFICIENTES DEL A FUNCIÓN

1. Revisión del modelo: se hacen los cambios deseados en el modelo que se va a investigar.

2. Revisión de la tabla simplex final: se emplea la idea fundamental para determinar los cambios que resultan en la tabla símplex final.

3. Conversión a la forma apropiada: se convierte esta tabla en la forma apropiada para identificar y evaluar la solución básica actual aplicando (según sea necesario) eliminación de Gauss.

4. Prueba de factibilidad: se prueba la factibilidad de esta solución verificando que todas las variables básicas sigan teniendo valores no negativos en la columna del lado derecho.

5. Prueba de optimalidad: se verifica si esta solución es óptima (si es factible), comprobando que todos los coeficientes de las variables no básicas en el renglón 0 sigan siendo no negativos.

6. Reoptimización: si esta solución no pasa cualquiera de las pruebas, se puede obtener (si se desea) la nueva solución óptima partiendo de la tabla actual como tabla símplex inicial (haciendo las conversiones necesarias) para el método símplex primal o el símplex dual.

La rutina interactiva llamada Sensitivity Analysis (análisis de sensibilidad) en el OR Courseware le permite practicar la aplicación de este procedimiento. Además, se proporcionará una demostración (bajo el mismo nombre) con otro ejemplo.

A continuación se presentará e la aplicación de este procedimiento a cada una de las categorías más importantes de cambios al modelo original. Esto incluye, en parte, la extensión sobre el ejemplo que se introdujo en este trabajo para investigar cambios en el modelo de la Wyndor Glass Co. De hecho, se comenzará por verificar individualmente cada uno de los cambios anteriores. Al mismo tiempo, se integrarán al análisis de sensibilidad algunas de las aplicaciones de la teoría de dualidad.

El análisis de sensibilidad o postoptimal para los modelos de Programación Lineal, tiene por objetivo identificar el impacto que resulta en los resultados del problema original luego de determinadas variaciones en los parámetros, variables o restricciones del modelo, sin que esto pase por resolver el problema nuevamente.

Es decir, ya sea si resolvemos nuestro modelo gráficamente o utilizando el Método Simplex, lo que se busca es que estas variaciones o sensibilidad hagan uso de la solución y valor óptimo actual, sin tener la necesidad de resolver para cada variación un nuevo

Page 22: PROGRAMACION LINEAL METODO SIMPLEX

problema. En especial nos concentraremos en el análisis de sensibilidad o postoptimal que hace uso de la tabla final del Método Simplex.

TEORÍA

Siguiendo la notación utilizada en la sección dedicada al Método Simplex en nuestro sitio, éste opera para modelos de Programación Lineal en un formato estándar.

Min    cTx s.a      Ax = b            x >=  0

Donde la tabla final del Método mantiene la siguiente estructura:

Donde: I: Matriz Identidad 0: Costos reducidos asociados a las variables básicas B: Matriz de variables básicas D: Matriz de variables no básicas b: Lado derecho Cb: Coeficientes en la función objetivo asociados a las variables básicas Cd: Coeficientes en la función objetivo asociados a las variables no básicas

1. Cambio en el "lado derecho" de las restricciones: Lo que se busca identificar si las actuales variables básicas se mantienen luego de la modificación de uno o más parámetros asociados al "lado derecho" del modelo. Si calculamos:

y se cumple , Las mismas variables básicas lo son también de la nueva

solución óptima, calculada con el nuevo . Si lo anterior no se cumple, se puede aplicar el Método Simplex Dual.

EJEMPLO: Sin resolver nuevamente el problema, se desea saber si las actuales variables básicas óptimas del problema también lo son del mismo problema, donde los lados derechos corresponde al vector b=(20,30). (Observación: X4 y X5 son variables de holgura de la restricción 1 y 2 respectivamente)

Max    2x1 + 7x2 - 3x3 sa:         x1 + 3x2 + 4x3 <= 30              x1 + 4x2 - x3 <= 10              x1,x2,x3 >= 0

Page 23: PROGRAMACION LINEAL METODO SIMPLEX

X1 X2 X3 X4 X5

0 -1 5 1 -1 20

1 4 -1 0 1 10

0 1 1 0 2 20

Para analizar este escenario debemos calcular el vector de variables básicas y verificar si todos sus componentes son positivos definidos. Nótese que para esto necesitamosla matriz B inversa, la cual fácilmente podemos rescatar identificando los parametros asociados a X4 y X5 (variables de holgura de la restricción 1 y 2 respectivamente) en la tabla final del Método Simplex:

Luego, dado que al menos uno de los coeficientes del nuevo lado derecho tiene un valor negativo, cambia la actual base óptima. Cabe destacar que ante esta situación no es necesario resolver el nuevo escenario partiendo de cero, sino lo que se debe hacer es utilizar la tabla final del simplex del escenario base, actualizando el lado derecho y valor de la función objetivo.

X1 X2 X3 X4 X5

0 -1 5 1 -1 -10

1 4 -1 0 1 30

0 1 1 0 2 60

Posteriormente, se continua iterando haciendo uso del Método Simplex Dual. (Ver referencia a la derecha).

2. Inclusión de una nueva variable: Debemos evaluar si la nueva variable es un aporte significativo a los resultados del modelo original. Luego, para decir si la actual solución básica es óptima para el nuevo problema, calculamos el costo reducido de la nueva variable como:

donde k es el índice de la nueva variable y Ak su respectiva columna en la matriz de coeficientes. Si se cumple que rk>=0 se conserva la actual solución óptima. En caso contrario, se puede seguir con el Simplex agregando a la tabla una nueva columna con entradas B-1Ak y rk y tomando como variable entrante a la nueva base la que acabamos de introducir al problema.

EJEMPLO: Se desea estudiar la posibilidad de elaborar un nuevo producto con beneficio neto igual a 8 y que requiere 4, 2 y 5 unidades de los recursos asociados a cada restricción. Sin resolver nuevamente el problema, ¿Conviene elaborar el producto?

Max    9x1 + 12x2sa:       4x1 + 3x2 <= 180            2x1 + 3x2 <= 150

Page 24: PROGRAMACION LINEAL METODO SIMPLEX

            4x1 + 2x2 <= 160            x1,x2 >= 0

X1 X2 X3 X4 X5

1 0 1/2 -1/2 0 15

0 1 -1/3 2/3 0 40

0 0 -4/3 2/3 1 20

0 0 1/2 7/2 0 615

Se debe evaluar rk y determinar si este es >=0.

En este ejemplo rk=1>=0, por lo cual no conviene la incorporación de esta nueva variable al modelo, es decir, aun cuándo sea incorporada no obtendremos un valor óptimo que supere el actual V(P)=615. De todas formas mostraremos como se incluye en la tabla final del Simplex esta modificación de modo que el lector pueda entender su incorporación cuando es necesario:

X1 X2 X3 X4 X5 XNew

1 0 1/2 -1/2 0 1 15

0 1 -1/3 2/3 0 0 40

0 0 -4/3 2/3 1 1 20

0 0 1/2 7/2 0 1 615

Si el costo reducido de esta nueva variable hubiese sido cero, entonces el nuevo escenario tendría infinitas soluciones.

3. Cambio en los Coeficientes Función Objetivo: Se busca identificar qué ocurre con la actual solución óptima del escenario base si se cambian uno o varios de los coeficientes que definen la función objetivo. La solución óptima actual también lo será para el nuevo escenario siempre que los nuevos costos reducidos sean mayores o iguales a cero (notar que también cambia el valor de la función objetivo en la actual solución óptima). Es decir se debe cumplir que:

Page 25: PROGRAMACION LINEAL METODO SIMPLEX

En caso contrario, se aplica el Simplex a partir de la tabla final del modelo original, con los nuevos costos reducidos y nuevo valor de la actual solución básica.

EJEMPLO: Sin resolver nuevamente el problema, se desea saber que sucede si se modifica los parámetros de la función objetivo, quedando éstos de la siguiente forma: Z = x1 + 5x2 - 2x3. (X4 y X5 son las variables de holgura de la restricción 1 y 2 respectivamente).

Max    2x1 + 7x2 - 3x3 sa:         x1 + 3x2 + 4x3 <= 30              x1 + 4x2 - x3 <= 10              x1,x2,x3 >= 0

X1 X2 X3 X4 X5

0 -1 5 1 -1 20

1 4 -1 0 1 10

0 1 1 0 2 20

Debido a que los cambios en los parámetros de la función objetivo se producen en más de una variable consideraremos la siguiente fórmula:

Debido a que al menos uno de los costos reducidos de las variables no básicas se ha vuelto negativo, entonces cambia la actual solución y valor óptimo del problema. Para incorporar esta modificación en la tabla final del Método Simplex se actualiza los costos reducidos asociados a las variables no básicas, además del valor óptimo, quedando como sigue:

Page 26: PROGRAMACION LINEAL METODO SIMPLEX

X1X2 X3 X4 X5

0 -1 5 1 -1 20

1 4 -1 0 1 10

0 -1 1 0 1 10

4. Inclusión de una nueva restricción: Para saber si la actual solución y valor óptimo se mantendrá luego de incorporar una nueva restricción al problema se debe evaluar la solución actual y verificar si satisface la nueva restricción. En caso afirmativo, la actual solución también lo será del problema con la nueva restricción, en caso contrario se incorpora la nueva restricción a la tabla final del Simplex del escenario base.

EJEMPLO: Sin resolver nuevamente el problema, se desea saber que sucede si se considera una nueva restricción de la forma: 3x1 + 2x2 + 3x3 <= 25. (Observación: Considerar mismo modelo y tabla final del ejemplo anterior)

Se evalua la solución actual en la restricción: 3*(10) + 2*(0) + 3*(0) <= 25. No cumple. Por tanto se incorpora esta nueva restricción como fila a la tabla final del Simplex. Adicionalmente, se agrega X6 como variable de holgura asociada a esta nueva restricción:

X1 X2 X3 X4 X5 X6

0 -1 5 1 -1 0 20

1 4 -1 0 1 0 10

3 2 3 0 0 1 25

0 1 1 0 2 0 20

Una alternativa para encontrar el óptimo a través de esta tabla es formar la identidad (debemos hacer cero el parámetro asociado a X1 en la tercera fila) multiplicando la fila 2 por -3 y sumando dicho resultado a la fila 3. De esta forma se obtiene:

X1 X2 X3 X4 X5 X6

0 -1 5 1 -1 0 20

1 4 -1 0 1 0 10

0 -10 6 0 -3 1 -5

0 1 1 0 2 0 20

APLICACIONES ( EJEMPLOS)

Page 27: PROGRAMACION LINEAL METODO SIMPLEX

EJEMPLO 1

4 -8 1 0 1/10 -1/100

6 8 0 1 -3/40 1/20

1) R1 1/4 R2

4 -8 1 0

6 8 0 1

1/4(4) = 1

1/4(-8) = -2 1 -2 1/4 0

1/4(4) = 1/4 6 8 0 1

1/4(0) = 0

2) R2 R2-6 R1

1 -2 1/4 0

6 8 0 1

-6(4) = -6 R2-6 R1

-6(-8) = 12 - 6 12 -3/2 0

A-1

A-1

A-1=

A-1

R2-6R1 =

Page 28: PROGRAMACION LINEAL METODO SIMPLEX

-6(1/4) = - 3/2 6 8 0 1

-6(0) = 0 0 20 -3/2 1 = R2

1 -2 1/4 0

0 20 -2/3 1

3) R1 1/20 R2

1/20(0) = 0

1/20(20) = 1 1 -2 1/4 0

1/20(-3/2) = -3/40 0 1 -3/40 1/20

1/20(1) = 1/20 R2 = 0 1 -3/40 1/20

4) R1 -2 R2 R1

1 -2 1/4 0

0 1 -3/40 1/20

2(0) = 0

2(1) = 2

2(-3/40) = -3/20

2(1/20) = 1/10

R2 R1

1 -2 1/4 0

A-1

A-1

A-1

Page 29: PROGRAMACION LINEAL METODO SIMPLEX

0 2 -3/20 1/10

1 0 -1/10 1/10

RESULTADO

4 -8 1 0 1/10 -1/10

6 8 0 1 -3/40 1/20

COMPROBACIÓN

1/10 = 0.1 X 40 = 4

-1/10 = -0.1 X 80 = -8

3/40 = 0.075 X 80 = 6

1/20 = 0.05 X 160 = 8

1/10 -1/10 4 -8 2/5 + 3/5 4/5 - 4/5 1 0

-3/40 1/20 6 8 3/10 - 3/10 3/5 + 2/5 0 1

EJEMPLO 2

8 -12 1 0 1/18 -1/18

10 12 0 1 -5/108 1/27

1) R1 1/8 R2

A-1=

= =

A-1=

Page 30: PROGRAMACION LINEAL METODO SIMPLEX

8 -12 1 0

10 12 0 1

1/8(8) = 1

1/8(-12) = -3/2 1 -3/2 1/8 0

1/8(1) = 1/8 10 12 0 1

1/8(0) = 0

2) R2 R2-10R1

1 -3/2 1/8 0

10 12 0 1

-10(1) = -10 R2-6 R1

-10(-3/2) = 15 - 10 15 -5/4 0

-10(1/8) = - 5/4 10 12 0 1

-10(0) = 0 0 27 -5/4 1 = R2

1 -3/2 1/8 0

0 27 -5/4 1

3) R1 1/27 R2

1/27(0) = 0

A-1

A-1

A-1

R2-10R1 =

A-1

Page 31: PROGRAMACION LINEAL METODO SIMPLEX

1/27(27) = 1 1 -3/2 1/8 0

1/27(-5/4) = -5/108 0 1 -5/108 1/27

1/27(1) = 1/27 R2 = 0 1 -5/108 1/27

4) R1 3/2R2 R1

1 -3/2 1/8 0

0 1 -5/108 1/27

3(0) = 0

3/2(1) = 3/2

3/2(-5/108) = -5/72

3/2(1/27) = 1/18

R2 R1

1 3/2 -5/72 1/18

0 -3/2 1/8 0

1 0 -1/18 1/18

RESULTADO

8 -12 1 0 1/18 -1/18

10 12 0 1 -5/108 1/27

COMPROBACIÓN

1/18 = 0.05555555556 X 144 = 8

A-1

A-1

A-1 =

Page 32: PROGRAMACION LINEAL METODO SIMPLEX

-1/18 = -0.05555555556 X 216 = -12

5/108 = 0.0462962963 X 216 = 10

1/27 = 0.03703703704 X 324 = 12

1/18 -1/18 8 -12 4/9 + 5/9 2/3 - 2/3 1 0

-5/108 1/27 10 12 10/27 -10/27 5/9 + 4/9 0 1

MÉTODO SIMPLEX ( APLICACIONES )

= =

Page 33: PROGRAMACION LINEAL METODO SIMPLEX

*INTERNET Una empresa química “Chemical” produce limpiadores para automóviles X y pulidores Y y gana $10 en cada lote de X, y $30 en Y. Ambos productos requieren procesarse en las mismas máquinas, A y B, pero X requiere cuatro horas en A y ocho en B, mientras que Y requiere seis horas en A y cuatro en B. Durante la semana entrante las máquinas A y B tienen 12 y 16 horas de capacidad disponible, respectivamente. Suponiendo que existe demanda de ambos productos, cuántos lotes de cada uno deben producirse para alcanzar la unidad óptima Z?.

La función objetivo es:

Max Z = $10X + $30Y

Las restricciones son:

h maquina A : 4X + 6Y = 12

h máquina B : 8X + 4Y =16

X,Y ≥ 0

Formato simplex

C 10 30 0 0 Valores de solución

Variables de la solución Variables de decisión

X Y S1 S2 (LD)

0 S1 4 6 1 0 12

0 S2 8 4 0 1 16

Z 0 0 0 0 0

C-Z 10 30 0 0 0

Elementos de la tabla simplex.

La parte central de la tabla simplex consta de los coeficientes de las restricciones de:

Page 34: PROGRAMACION LINEAL METODO SIMPLEX

4X + 6Y + 1S1 + 0S2 = 12

8X + 4Y + 0S1 + 1S2 =16

Nótese que se ha asignado un uno (1) a la variable de holgura asociada con su propia restricción, y un cero (0) a la otra variable de holgura

La columna de variables en la solución indica cuáles variables están en la solución (en este caso, sólo las de hoguera) y la columna de valores solución indica las cantidades de solución. Los números vienen del lado derecho LD de las restricciones (en este caso, 12 horas de holgura para la máquina A y 16 horas para la B)

La C en la esquina superior izquierda encabeza a la vez un renglón y una columna. Especifican la cantidad de contribución a la función objetivo de cada unidad de las variables a que se refiere. Esto es, cada unidad de X (limpiador) contribuye con $10 a las utilidades y cada unidad de Y (pulidor) lo hace con $30. El tiempo de holgura de la maquina A y B proporciona $0 de contribución tanto de S1 como de S2.

El renglón de Z en la tabla muestra el costo de oportunidad, o la cantidad de contribución que debe ser introducida o (producida) por unidad (o por unidad extra) de la variable en cada columna. Esto se calcula para cada columna multiplicando los elementos de la columna por la contribución en la columna C y sumándolos después

Esto es, el valor de Z para la columna X es (4 x 0) + (8 x 0) = 0.

Esto significa que para introducir una unidad de X (limpiador) en la solución, deben darse cuatro horas de tiempo de holgura en la máquina A, con un costo de $0, y ocho horas de holgura en la máquina B, también con un costo de $0.

El valor de Z para la columna LD representa la contribución total de las variables en la solución, debido a que esta solución (inicial) es “producir” 12 horas de holgura en la máquina A (con $0 de contribución) y 16 horas de holgura en la máquina B con ($0 de contribución), la utilidad total de esta solución inicial es cero. El renglón de Z en la solución inicial siempre tiene ceros, pero cambia al progresar la solución.

Los valores del renglón inferior (C-Z) representan la contribución neta de introducir una unidad de la columna variable en la solución. En la tabla inicial aparecen simplemente los coeficientes de la función objetivo seguidos por ceros en las columnas de las variables de holgura. Es decir, se puede incrementar el valor de la función objetivo en un total de $10 por cada unidad de X producida y en $30 por cada unidad de Y producida, y debido a que la holgura no tiene ningún valor deben introducirse X o Y en esta etapa. Produciendo más holgura obviamente no se incrementan las utilidades.

Page 35: PROGRAMACION LINEAL METODO SIMPLEX

Metodología de cálculo

La metodología de solución de los problemas de maximización hace necesario seleccionar una columna y un renglón pivotes y revisar los valores de la tabla hasta que en el renglón inferior sean menores o iguales que cero.

- Úsense los pasos del procedimiento simplex –

C 10 30 0 0 Valores de solución

Variables de la solución

Variables de decisión

X Y S1 S2 (LD)

0 S1 4 6 1 0 12

0 S2 8 4 0 1 16

Z 0 0 0 0 0

C-Z 10 30 0 0 0

1. Seleccionar una columna y un renglón pivotes

a) La columna pivote es la que tiene el número positivo más grande en el renglón inferior

C-Z 10 30

0 0 0

En este ejercicio es 30.

b) El renglón pivote es el que tiene la razón más pequeña, del renglón pivote

126

=2 (mínimo)

164

=4

C 10 30 0 0 Valores de solución

Variables de la solución

Variables de decisión

X Y S1 S2 (LD)

Page 36: PROGRAMACION LINEAL METODO SIMPLEX

0 S1 4 6 1 0 12

0 S2 8 4 0 1 16

Z 0 0 0 0 0

C-Z 10 30 0 0 0

Por lo tanto el renglón 1 es el renglón pivote.

c) El elemento pivote es encerrado en un círculo 6

C 10 30 0 0 Valores de solución

Variables de la solución

Variables de decisión

X Y S1 S2 (LD)

0 S1 4 6 1 0 12

0 S2 8 4 0 1 16

Z 0 0 0 0 0

C-Z 10 30 0 0 0

2. Divídase cada valor del renglón pivote 1 entre el elemento pivote (6) y colóquense los valores en una nueva tabla.

C 10 30 0 0 Valores de solución

Variables de la solución

Variables de decisión

X Y S1 S2 (LD)

0 Y 2/3 1 1/6 0 2

a) Genérense los otros renglones para la siguiente tabla, de tal manera que los elementos de la columna pivote sean iguales a cero.

Page 37: PROGRAMACION LINEAL METODO SIMPLEX

Se empieza con el renglón S2, el cual tiene 4 en la columna de Y. Se multiplica el nuevo renglón (del paso 2) por el negativo del valor que se desea convertir (-4), y se suma al anterior renglón de S2. Se multiplica el nuevo renglón por -4. el resultado se muestra en la siguiente tabla.

X Y S1 S2 (LD)

El renglón del paso 2 se multiplica por -4

-4(2/3) -4(1) -4(1/6) -4(0) -4(2)

Obtener el resultado -8/3 -4 -2/3 0 -8

Sumarlo al renglón de S2 8 4 0 1 16

Para obtener el nuevo renglón

16/3 0 .2/3 1 8

El renglón obtenido se introduce a la nueva tabla del paso 2.

C 10 30 0 0 Valores de solución

Variables de la solución

Variables de decisión

X Y S1 S2 (LD)

30 Y 2/3 1 1/6 0 2

0 S2 16/3 0 .2/3 1 8

Z

Si hay más renglones que convertir, debe repetirse este paso en el siguiente renglón. Dado que ahí no hay más, puede procederse a calcular el renglón Z y C-Z.

Los valores en el renglón Z son ∑ (elementos de la columna) (C) Elementos del renglón Z

Para X: Z = 2/3(30) + 16/3(0) = 20

Para Y: Z = 1(30) + 0(0) = 30

Para S1: Z = 1/6(30) – 2/3(30) = 5

Page 38: PROGRAMACION LINEAL METODO SIMPLEX

Para S2: Z = 0(30) + 1(0) = 0

Para LD: 2(30) + 8(0) = 60

Después de que se introducen éste y los valores de C-Z en la siguiente matriz, se tiene:

C 10 30 0 0 Valores de solución

Variables de la solución

Variables de decisión

X Y S1 S2 (LD)

30 Y 2/3 1 1/6 0 2

0 S2 16/3 0 .2/3 1 8

Z 20 30 5 0 60

C - Z -10 0 -5 0

Repetir los pasos anteriores hasta que todos los valores del renglón inferior sean ≤ 0. Dado que todos los valores son ≤ 0, ha sido alcanzada la solución óptima. Las variables en la solución son identificadas por las columnas en la parte central de la tabla que tienen un 1, y el resto de los valores son cero. Los valores solución son datos en la columna del lado derecho, como se ve en la siguiente tabla.

X Y S1 S2 (LD)

- 1 - 0 2

- 0 - 1 8

Z - - - - 60

Por tanto,

X = no está en la solución

Y = 2 unidades

Page 39: PROGRAMACION LINEAL METODO SIMPLEX

Z = $60

Nótese que la variable de holgura asociada con la restricción 2 también tiene un 1 y ceros, lo cual significa que tiene holgura en la solución y que la restricción no se agotó. Entonces hay sólo una variable de decisión (no holgura) en la solución (Y) y una restricción agotada (número 1). Esto concuerda con el teorema fundamental de programación lineal, que establece que el número de variables de decisión (no holgura) de la solución siempre será igual a número de restricciones que son agotadas.

*SALÓN DE CLASES

MAXIMIZAR Z = 3Xe + 2X2 3 2 0

SUJETO A. Xe + 2X1 < 6 2 1 8

-2Xe + X1 < 8 1 2 6

-Xe + 2X1 < 1 -1 1 1

X1 < 2 1 0 2

-Xe > 0, X1 > 0

MAXIMIZAR Z = 3Xe + 2X2 3 2 0 0 0 0

SUJETO A. Xe + 2X1 + X2 < 6 1 2 1 0 0 0

-2Xe + X1 + X3 < 8 2 1 0 1 0 0

-Xe + X1 + X4 < 1 -1 1 0 0 1 0

X1 + X5 < 2 0 1 0 0 0 1

MAXIMIZAR Z = 3Xe + 2X2 3 2 0 0 0 0 0

SU INVERSA

Page 40: PROGRAMACION LINEAL METODO SIMPLEX

SUJETO A. 1) Xe + 2X1 + X2 < 6 1 2 1 0 0 0 0

2) -2Xe + X1 + X3 < 8 2 1 0 1 0 0 8

3) -Xe + X1 + X4 < 1 -1 1 0 0 1 0 1

4) X1 + X5 < 2 0 1 0 0 0 1 2

FORMA TABULAR

TABLA SIMPLEX 1

Variables Ecu. C o e f i c i e n t e s d e l a s V a r i a b l e s Lado Básicas Núm. Z Xe X1 X2 X3 X4 X5 Derecho

Z 0 0 -3 -2 0 0 0 0 0

X2 1 0 1 2 1 0 0 0 6

X3 2 0 2 1 0 0 0 0 8

X4 3 0 -1 1 0 0 1 0 1

X5 4 0 0 1 0 0 0 1 2

TABLA SIMPLEX 2

Variables Ecu. C o e f i c i e n t e s d e l a s V a r i a b l e s Lado Básicas Núm. Z Xe X1 X2 X3 X4 X5 Derecho

Z 0 0 -3 -2 0 0 0 0 0

X2 1 0 1 2 1 0 0 0 6

X3 2 0 2 1 0 0 0 0 8

X4 3 0 -1 1 0 0 1 0 1

X5 4 0 0 1 0 0 0 1 2

Val. Abs. M. = Valor Absoluto Mayor

RESTRICCIONES

Val. Abs.M.

C.P.

Page 41: PROGRAMACION LINEAL METODO SIMPLEX

C.P. = Columna Pivote

Lado Derecho

C.P.

6 8 1 2

1 2 -1 0

TABLA SIMPLEX 3

Variables Ecu. C o e f i c i e n t e s d e l a s V a r i a b l e s Lado Básicas Núm. Z Xe X1 X2 X3 X4 X5 Derecho

Z 0 0 -3 -2 0 0 0 0 0

X2 1 0 1 2 1 0 0 0 6

X3 2 0 2 1 0 0 0 0 8

X4 3 0 -1 1 0 0 1 0 1

X5 4 0 0 1 0 0 0 1 2 El

RENGLÓN PIVOTE ANTIGUO

NÚM. DE PIVOTE

2 1 0 0 0 0 8

2 2 2 2 2 2 2

REGLA DE OPTIMIDAD

=

= 6 = 4 = -1 = 2

Se toma el val. abs., más pequeño pero como como es negativo (-) se toma el siguente valor más pequeño

El siguente valor abosluto mas pequeño

RENGLÓN PIVOTE NUEVO

=

= = 1 1/2 0 1/2 0 0 4

RENGLÓN PIVOTE

Page 42: PROGRAMACION LINEAL METODO SIMPLEX

TABLA SIMPLEX 4

Variables Ecu. C o e f i c i e n t e s d e l a s V a r i a b l e s Lado Básicas Núm. Z Xe X1 X2 X3 X4 X5 Derecho

Z 0 0 -3 -2 0 0 0 0 0

X2 1 0 1 2 1 0 0 0 6

X3 2 0 1 1/2 0 1/2 0 0 4

X4 3 0 -1 1 0 0 1 0 1

X5 4 0 0 1 0 0 0 1 2

3 ( 1 1/2 0 1/2 0 0 4 ) = 3 3/2 0 3/2 0 0 12

-3 -2 0 0 0 0 0

3 3/2 0 3/2 0 0 12

0 -1/2 0 3/2 0 0 12

-1 ( 1 1/2 0 1/2 0 0 4 ) = -1 -1/2 0 -1/2 0 0 -4

1 2 1 0 0 0 6

-1 -1/2 0 -1/2 0 0 -4

RENGLÓN O. NUEVO = RENGLÓN ANTIGUO -COEFICIENTE DE LA COLUMNA PIVOTE

RENGLÓN PIVOTE NUEVO

ELIMINACIÓN GAUSSIANA

=

ELIMINACIÓN GAUSSIANA

=

Page 43: PROGRAMACION LINEAL METODO SIMPLEX

0 3/2 1 -1/2 0 0 2

-1 ( 1 1/2 0 1/2 0 0 4 ) = 1 1/2 0 1/2 0 0 4

-1 1 0 0 0 1 1

1 1/2 0 1/2 0 0 4

0 3/2 0 1/2 0 0 5

TABLA SIMPLEX 5

Variables Ecu. C o e f i c i e n t e s d e l a s V a r i a b l e s Lado Básicas Núm. Z Xe X1 X2 X3 X4 X5 Derecho

Z 0 0 0 -1/2 0 3/2 0 0 12

X2 1 0 0 3/2 1 -1/2 0 0 2

X3 2 0 1 1/2 0 1/2 0 0 4

X4 3 0 0 3/2 0 1/2 0 1 5

X5 4 0 0 1 0 0 0 1 2

RENGLÓN PIVOTE ANTIGUO

NÚM. DE PIVOTE

0 3/2 1 -1/2 0 0 2

3/2 3/2 3/2 3/2 3/2 3/2 3/2

ELIMINACIÓN GAUSSIANA

=

RENGLÓN PIVOTE NUEVO

=

= = 0 1 2/3 -1/3 0 0 4/3

Page 44: PROGRAMACION LINEAL METODO SIMPLEX

1/2 ( 0 1 2/3 -1/3 0 0 4/3 ) = 0 1/2 1/3 -1/6 0 0 2/3

0 -1/2 0 3/2 0 0 12

0 1/2 1/3 -1/6 0 0 2/3

0 0 1/3 4/3 0 0 38/3

-3/2 ( 0 1 2/3 -1/3 0 0 4/3 ) = 0 -3/2 -1 1/2 0 0 -2

0 -3/2 0 1/2 1 0 5

0 -3/2 -1 1/2 0 0 -2

0 0 -1 1 1 0 3

-1 ( 0 1 2/3 -1/3 0 0 4/3 ) = 0 -1 - 2/3 1/3 0 0 -4/3

0 1 0 0 0 1 2

0 -1 - 2/3 1/3 0 0 -4/3

0 0 -2/3 1/3 0 1 2/3

ELIMINACIÓN GAUSSIANA

=

ELIMINACIÓN GAUSSIANA

=

ELIMINACIÓN GAUSSIANA

=

Page 45: PROGRAMACION LINEAL METODO SIMPLEX

TABLA SIMPLEX 6

Variables Ecu. C o e f i c i e n t e s d e l a s V a r i a b l e s Lado Básicas Núm. Z Xe X1 X2 X3 X4 X5 Derecho

Z 0 0 0 0 1/3 4/3 0 0 38/3

X2 1 0 0 1 2/3 -1/3 0 0 4/3

X3 2 0 1 1/2 0 1/2 0 0 4

X4 3 0 0 0 -1 1 1 0 3

X5 4 0 0 0 -2/3 1/3 0 1 2/3

SOLUCIÓN :

Z = 12. 66666667

X2 = 1.333333333

X4 = 3

X5 = 0.6666666667

Page 46: PROGRAMACION LINEAL METODO SIMPLEX

*MI EMPRESA

TIEMPO DE COCCION

HUEVOS PRECIO

CONCHA DE CHOCOLATE

1/3 hora 4 4.00

CONCHA DE VAINILLA 2/3 hora 1 3.50

TOTAL 8 horas 30

X1: Número de tortas de chocolate a preparar.

X2: Número de tortas de vainilla a preparar.

MAXIMIZAR Z = 4 X1 + 3.5 X2 4 3.5

SUJETO A 1/3 X1 + 2/3 X2 < = 8 1/3 2/3

4 X1 + 1 X2 < = 30 4 1

MAXIMIZAR Z = 4X1 + 3.5X2 4 3.5 0 0

SU INVERSA

Page 47: PROGRAMACION LINEAL METODO SIMPLEX

SUJETO A. 1/3X1 + 2/3X2 +X3 < 8 1/3 2 1 0

4X1 + 1X2 +X4 < 30 4 1 0 1

MAXIMIZAR Z = 4X1 - 3.5X2 4 3.5 0 0 0

SUJETO A. 1) 1/3X1 - 2/3X2 +X3 < 8 1/3 2 1 0 8

2) 4X1 + 1X2 +X4< 30 4 1 0 1 30

FORMA TABULAR

TABLA SIMPLEX 1

Variables Ecu. C o e f i c i e n t e s d e l a s V a r i a b l e s Lado Básicas Núm. Z Xe X1 X2 X3 Derecho

Z 0 0 -4 -3.5 0 0 0

X3 2 0 1/3 2 1 0 8

X4 3 0 4 1 0 1 30

TABLA SIMPLEX 2

Variables Ecu. C o e f i c i e n t e s d e l a s V a r i a b l e s Lado Básicas Núm. Z Xe X1 X2 X3 Derecho

Z 0 0 -4 -3.5 0 0 0

X3 2 0 1/3 2 1 0 8

X4 3 0 4 1 0 1 30

RESTRICCIONES

Val. Abs.M.

C.P.

Page 48: PROGRAMACION LINEAL METODO SIMPLEX

Val. Abs. M. = Valor Absoluto Mayor

C.P. = Columna Pivote

Lado Derecho

C.P.

8 30

1/3 4

TABLA SIMPLEX 3

Variables Ecu. C o e f i c i e n t e s d e l a s V a r i a b l e s Lado Básicas Núm. Z Xe X1 X2 X3 Derecho

Z 0 0 -4 -3.5 0 0 0

X3 2 0 1/3 2 1 0 8

X4 3 0 4 1 0 1 30

RENGLÓN PIVOTE ANTIGUO

NÚM. DE PIVOTE

1/3 2 1 0 8

4 4 4 4 4

REGLA DE OPTIMIDAD

=

= 24 = 8.5

RENGLÓN PIVOTE NUEVO

=

= = 1/12 2/4 1/4 0 4

Se toma el Valor Absoluto., más pequeño

Val. Abs.M.

C.P. RENGLÓN PIVOTE

Page 49: PROGRAMACION LINEAL METODO SIMPLEX

TABLA SIMPLEX 4

Variables Ecu. C o e f i c i e n t e s d e l a s V a r i a b l e s Lado Básicas Núm. Z Xe X1 X2 X3 Derecho

Z 0 0 -4 -3.5 0 0 0

X3 2 0 1/12 2/4 1/4 0 4

X4 3 0 4 1 0 1 30

-4 ( 1/12 2/4 1/4 0 4 ) = -1/3 -2 -1 0 -1

-4 -3.5 0 0 0

-1/3 -2 -1 0 -1

11/3 1.5 -1 0 -1

4 ( 1/12 2/4 1/4 0 4 ) = 1/3 2 1 0 1

-4 1 0 1 30

1/3 2 1 0 1

-11/3 3 1 0 31

RENGLÓN O. NUEVO = RENGLÓN ANTIGUO -COEFICIENTE DE LA COLUMNA PIVOTE

RENGLÓN PIVOTE NUEVO

ELIMINACIÓN GAUSSIANA

=

ELIMINACIÓN GAUSSIANA

=

Page 50: PROGRAMACION LINEAL METODO SIMPLEX

TABLA SIMPLEX 5

Variables Ecu. C o e f i c i e n t e s d e l a s V a r i a b l e s Lado Básicas Núm. Z Xe X1 X2 X3 Derecho

Z 0 0 11/3 1.5 -1 0 -1

X3 2 0 1/12 2/4 1/4 0 4

X4 3 0 -11/3 3 1 0 31

RENGLÓN PIVOTE ANTIGUO

NÚM. DE PIVOTE

1/12 2/4 1/4 0 4

11/3 11/3 11/3 11/3 11/3

-11/3 ( 1/44 3/22 3/44 0 12/11 ) = -1/12 -2/4 -1/4 0 -4

11/3 1.5 1 0 -1

-1/12 -2/4 -1/4 0 -4

19/6 1 -5/4 0 5

11/3 ( 1/44 3/22 3/44 0 12/11 ) = 1/12 2/4 1/4 0 4

-11/3 3 1 0 31

RENGLÓN PIVOTE NUEVO

=

= = 1/44 3/22 3/44 0 12/11

ELIMINACIÓN GAUSSIANA

=

ELIMINACIÓN GAUSSIANA

=

Page 51: PROGRAMACION LINEAL METODO SIMPLEX

1/12 2/4 1/4 0 4

25/6 6 5/4 0 35

TABLA SIMPLEX 6

Variables Ecu. C o e f i c i e n t e s d e l a s V a r i a b l e s Lado Básicas Núm. Z Xe X1 X2 X3 Derecho

Z 0 0 19/6 1 5/4 0 5

X3 2 0 1/44 3/22 3/44 0 12/11

X4 3 0 25/6 6 5/4 0 35

SOLUCIÓN :

Z = 5

X3 = 1.090909091

X4 = 35