Resolución de modelos matemáticos por el Método Simplex Para demostrar la metodología empleado por SIMPLEX para el desarrollo de modelos matemáticos utilicemos el sistema definido en la búsqueda de solución al problema de Makropasteles. Maximizar Z= 25000X1 + 40000X2 Sujeto a (sa): 0.250X1 + 0.500X2 ≤ 50 (Condición por la producción de relleno) X1 + X2 ≤ 150 (Condición por la fabricación de bizcocho) Por ahora no trabajemos con las demás condiciones, esto para facilitar la introducción al SIMPLEX. Por medio del método gráfico se obtiene la siguiente solución al sistema indicado:
La gráfica nos indica que el modelo de producción que optimiza el beneficio es producir 100 tortas Caramelo (X1) y 50 tortas dulzura (X2), con esto se obtiene una utilidad de $4.500.000
Vamos a buscar la solución del sistema por SIMPLEX. Paso 1. Expresar el sistema de forma tabular o estándar. Se alinean las ecuaciones formando columnas con las variables. 25000X1 + 40000X2 = Z 0.250X1 + 0.500X2 ≤ 50 X1 + X2 ≤ 150 Paso 2. Convertir toda desigualdad en igualdad. Cuando se tiene una desigualdad (≥, ≤) se busca equilibrar la expresión y convertirla en igualdad (=), esto se hace agregando variables artificiales o ficticias, las cuales no tienen contribución en la función objetivo y su participación en cada ecuación es para convertir la inecuación o desigualdad en ecuación o igualdad. Ej: Suponga que se tiene la expresión 3X≤12, los valores que satisfacen este sistema son todos aquellos menores o iguales a 4. Si ajustamos la expresión como una igualdad tenemos: 3X+S=12, en donde S=(-∞ ; 4], podemos observar el comportamiento de S en la siguiente tabla de valores: X S
0 12
1 9
2 6
3 3
4 0
-1 15
-2 18
-3 21
La variable artificial S, toma el valor necesario para conservar la igualdad de la expresión, este es el sentido y objetivo de este tipo de variables. Retomando nuestro ejercicio, agregamos en cada una de las restricciones que sea desigualdad la variable artificial respectiva. Para no confundir las variables se identifican con un subíndice Si de acuerdo a la expresión que equilibra.
Oscar Oswaldo Echavarría
Mayo/2011
Página 1 de 6
Resolución de modelos matemáticos por el Método Simplex Las variables artificiales agregadas en cada expresión tienen coeficiente uno (1) y en la función objetivo su coeficiente es cero (0), esto garantiza que este tipo de variables no tenga contribución en la FO, cuando Si asume algún valor por efecto de equilibrar la ecuación, en la FO se multiplica por 0 y se elimina su posible participación. El sistema quedaría de la siguiente forma: 25000X1 + 40000X2 + 0S1 + 0S2 = Z 0.250X1 + 0.500X2 + S1 = 50 X1 + X2 + + S2 = 150 Paso 3. Expresar el sistema en forma matricial.
S1 S2
0 0
X1
X2
S1
S2
25000
40000
0
0
0,25 1
0,5 1
1 0
0 1
50 150
El significado de cada elemento de la matriz es el siguiente: 1
X1
X2
S1
S2
25000
40000
0
0
S1
2 0
0,25
0,5
1
0
50
S2
0
1
1
0
1
150
3
6
4
7 8
5 1.
Fila de variables. Escribimos todas incluidas las artificiales.
2.
Coeficientes de las variables en la función objetivo (FO). Observe el coeficiente de las variables artificiales, el cual es cero (0) en la FO.
3.
Columna de variables básicas. Una variable es básica cuando participa en la solución, de lo contrario en No Básica y su valor es cero. Para identificar cuando una variable es básica se revisa la columna donde se encuentra la variable, los valores del cuerpo de la matriz (zona 6) deben cumplir con la condición siguiente: uno de sus valores es uno (1) positivo, no sirve negativo y todos los demás valores de la columna deben ser cero (0). En nuestro imagen observamos que esto se cumple para S1 y S2 únicamente.
4.
Columna de términos independientes.
5.
Columna con el valor o coeficiente de las variables básicas en la función objetivo. En nuestra imagen observamos que las variables básicas (S1 y S2) tienen en la FO coeficiente cero (0).
6.
Cuerpo de la matriz. Se llena cada espacio con el coeficiente de cada variable en cada ecuación. Hay que tener cuidado en ubicar el coeficiente bajo la columna de la variable correspondiente.
7.
Renglón de contribución o resultados del sistema. Este renglón se utiliza para el cálculo del valor obtenido en la matriz para la solución planteada. Posteriormente evaluaremos su cálculo.
8.
Renglón de optimización. Utilizaremos este renglón para evaluar si la matriz puede ser optimizada o se ha encontrado la solución final. Posteriormente evaluaremos su cálculo.
Oscar Oswaldo Echavarría
Mayo/2011
Página 2 de 6
Resolución de modelos matemáticos por el Método Simplex Paso 4. Determinar la primera solución.
1
S1
0
S2
0
4
X1
X2
S1
S2
25000 0,25
40000 0,5
0 1
0 0
1 0 25000
1 0 40000
0 0 0
1 0 0
Solución indicada
2
50 150 0
3
5
X1
0
X2
0
S1
50
S2 Z
150 0
Revisemos el significado de cada una de las secciones descritas: 1. Indica que las variables básicas, es decir las que participan en la solución son S1 y S2. Las demás variables toman valor de cero. El significado de esto es que al reemplazar los valores obtenidos en el sistema de ecuaciones observamos que se determina un sobrante para la condición del relleno igual a la inicial, es decir de esta condición no se ha hecho ningún consumo muestra un excedente igual al recurso disponible. 2. Indica los valores de las variables básicas, S1=50 y S2 =150, que conforman la solución indicada. 3. Valor de Z (Función objetivo), si reemplazamos los valores obtenidos por cada una de las variables (ver tabla de solución indicada) en la FO, encontramos lo siguiente: Z= 25000X1 + 40000X2 Recordemos nuestra expresión tabular 25000X1 + 40000X2 + 0S1 + 0S2 = Z, reemplacemos los valores: 25000 (0) + 40000(0) + 0(50) + 0(150) = Z 0=Z
Este valor también lo podemos calcular de la matriz en forma directa haciendo la suma de las multiplicaciones de cada coeficiente de las variables básicas en la FO por su correspondiente valor en la columna de términos independientes. X1
X2
S1
S2
25000
40000
0
0
S1
0
0,25
0,5
1
0
50
S2
0
1
1
0
1
150
0 25000
0 40000
0 0
0 0
0
Z= 0*50 + 0*150
Paso 5. Evaluar si la solución indicada es óptima. Continuemos la evaluación de nuestra matriz inicial.
1
S1
0
S2
0
Oscar Oswaldo Echavarría
4
X1
X2
S1
S2
25000 0,25
40000 0,5
0 1
0 0
1 0 25000
1 0 40000
0 0 0
1 0 0
Mayo/2011
Solución indicada
50 150 0
5
2 3
X1
0
X2
0
S1
50
S2 Z
150 0
Página 3 de 6
Resolución de modelos matemáticos por el Método Simplex 4. Renglón de contribución. Aquí podemos determinar el aporte que hace cada variable a la FO. La forma de calcularlo es la sumatoria de la multiplicación por variable de cada uno de los valores de la columna respectiva por el coeficiente de la variable básica en la FO. X1
X2
S1
S2
25000
40000
0
0
S1
0
0,25
0,5
1
0
50
S2
0
1
1 .
0 .
1
150
0 25000
0 40000
0 0
0 0
0
.
0= 0*0.25 + 0*1
.
.
.
.
.
.
.
0= 0*0.5 + 0*1
5.
0= 0*0 + 0*1
0= 0*1 + 0*0
Renglón de Optimización. Este renglón nos indica la oportunidad de mejora que tiene el sistema si se puede incluir una variable NO BASICA dentro del conjunto solución, es decir; que le puede pasar al sistema si se incluye en la solución fabricar una torta de caramelo (X1 =1)?
Al indicar que fabricamos una unidad de torta caramelo, la FO toma un valor de $25000, lo cual significa que por cada unidad que podamos incluir en la solución de torta caramelo (X1), la FO puede mejorar en $25000. Si hacemos el mismo análisis para la torta dulzura (X2), determinamos que por cada unidad que fabriquemos de esta torta nuestra FO puede mejorar $40000. Nos interesa hacer estos cambios? Por supuesto que sí. Evaluemos como obtenemos estos valores de optimización: Es la diferencia entre el coeficiente de la variable en la FO y el valor de contribución de dicha variable en la solución indicada. X1
X2
S1
S2
25000
40000
0
.
0
.
.
.
S1
0
0,25
0,5
1
0
50
S2
0
1
1
0
1
150
0 25000 .
0 40000 .
0 0
.
0 0
25000= 25000 - 0
.
0 0= 0 - 0
40000= 40000 - 0
0= 0 - 0
Como estamos en un problema de Maximización, el interés está en obtener el mayor beneficio posible, lo cual se logra incluyendo la variable X2 (Torta Dulzura) en el programa de producción. Por regla general en un problema de maximización se toma el mayor valor positivo del renglón de optimización. Si hay empate entre dos o más valores se recomienda escoger el que se encuentre más alejado hacia la izquierda. Esto es un proceso heurístico, lo cual significa que la respuesta óptima la vamos a encontrar después de n iteraciones, sin importar el valor positivo que escojamos; sin embargo hay una alta probabilidad de disminuir el número de iteraciones escogiendo el mayor positivo.
Paso 6. Identificar la variable entrante y la saliente. El mayor valor positivo seleccionado en el punto anterior identifica la columna de la variable que entra de aquí en adelante la
llamaremos columna pivote, como la matriz necesita continuar equilibrada si entra una variable No básica a la solución, entonces tendrá que salir una Básica para que el sistema continúe en el mismo orden inicial. La variable saliente se determina en la columna pivote, utilizamos los valores de esta columna en la matriz para determinar la fila entrante o fila Pivote. Hacemos la división por fila de cada valor independiente entre su correspondiente en la columna Pivote, seleccionamos el menor valor positivo como indicador de la variable saliente o fila Pivote.
Oscar Oswaldo Echavarría
Mayo/2011
Página 4 de 6
Resolución de modelos matemáticos por el Método Simplex
S1
0
S2
0
X1
X2
S1
S2
25000 0,25
40000 0,5
0 1
0 0
1 0 25000
1 0 40000
0 0 0
1 0 0
.
.
Fila Pivote Variable saliente
50 50/0,5 = 100 .
150 150/1 = 150 0 .
Valor Pivote Columna Pivote Variable entrante
Paso 7. Se organiza la matriz con los cambios determinados y se procede a garantizar que la variable entrante se convierta en básica, para esto debemos recordar el concepto de matriz identidad, donde el coeficiente de la variable básica es 1 y todos los demás valores de la comuna 0.
X2
40000
S2
0
X1
X2
S1
S2
X2
25000 0,25
40000 0,5
0 1
0 0
40000 1
1 0 25000
1 0 40000
0 0 0
1 0 0
.
.
50
.
0 0 40000
150 0
.
Revisemos los cambios. - X2 ingresa a la sección de variables básicas en reemplazo de la variable S1 , es importante observar que se actualiza con el valor del coeficiente respectivo que tiene la variable en la FO. -
Hay que transformar los valores 0.5 a 1 y de 1 a 0 para que la variable X2 se convierta en básica.
Paso 8. Ajustar la matriz con la identidad y obtener la solución indicada. Recordemos que para conservar la integridad de la matriz, toda operación que se haga sobre un término de una ecuación se debe hacer sobre la totalidad de los términos de la misma, incluido el término independiente. Ahora debemos buscar la forma de obtener cambiar en la posición P22 el (1) a (0). Este cambio se debe hacer partiendo de la fila de la variable básica, no se puede hacer en forma directa diciendo por ejemplo que restemos 1 a cada uno de los términos de la fila 2 y listo, esto sería un error y la solución equivocada. El proceso sería el siguiente: ((F1’)*(-1))+(F2), donde F1’=es la fila 1 modificada, en la que se tiene el valor de la unidad, con se opera todo lo demás. X1 Fila 1 X2 Fila 2 S2
25000 40000 0,25 0
1 0 25000
X2
S1
S2
X1
X2
S1
S2
40000 0,5
0 1
0 0
25000 0,5
40000 1
0 2
0 0
1 0 40000
0 0 0
1 0 0
1 0 25000
1 0 40000
0 0 0
1 0 0
[Fila 1*(-1)] [Fila 1*(-1)]+ (F2)
Oscar Oswaldo Echavarría
X2 X2
50 Fila 1 / 0,5 150 0
40000 40000
X2
40000
S2
0
.
0.5 * -1
1 * -1
2 * -1
0 * -1
-0,5
-1
-2
0
-0.5 + 1
-1 + 1
-2 + 0
0 +1
0,5
0
-2
1
Mayo/2011
.
.
100 .
150 0
100 * -1
-100 .
-100 + 150
50 .
Página 5 de 6
Resolución de modelos matemáticos por el Método Simplex La matriz transformada queda de la siguiente forma: X1
X2
S1
S2
25000
40000
0
0
X1
0 100
Solución indicada
X2
40000
0,5
1
2
0
100
X2
S2
0
0,5
0
-2
1
50
S1
0
20000 5000
40000 0
80000 -80000
0 0
4000000
S2
50 4000000
Z
Evaluando la nueva matriz y la solución indicada pertinente, podemos decir: -
La solución planteada es producir 100 unidades de la torta dulzura y cero unidades de la torta caramelo.
-
El beneficio esperado es de $4.000.000
-
Existe una holgura o posibilidad de fabricar 50 unidades adicionales para cumplir la condición dada en el consumo de bizcocho.
-
Tenemos opción de mejora si se incluye la variable X1 como básica, se espera una mejora de 5000 por cada unidad adicional de torta caramelo que se pueda fabricar.
-
El Pivote es la P21 con un valor de 0.5.
Paso 9. Continuar con las iteraciones matriciales hasta obtener la solución óptima. Esta se alcanza cuando el renglón de optimización no ofrece mejora, como nuestro objetivo es maximizar la utilidad o beneficio, no hay mejora cuando todos los valores del renglón de optimización son cero o negativos. La primer acción a desarrollar es dejar el Pivote en 1, esto se logra dividiendo la fila 2 entre 0.5. Posteriormente se busca la columna identidad para X1, esto se hace multiplicando la fila 2 modificada por -0.5 y sumando este resultado a la Fila 1. X1
X2
S1
S2
25000
40000
0
0
Solución indicada
X1
0
2
[F2*-0,5]+(F1)
X2
40000
0
1
4
-1
50
X2
100
1
F2/0,5
X1
25000
1
0
-4
2
100
S1
0
25000 0
40000 0
60000 -60000
10000 4500000 -10000
S2
50 4000000
X1
X2
S1
S2
25000
40000
0
0
X1
100 50
Z
Solución indicada
X2
40000
0
1
4
-1
50
X2
X1
25000
1
0
-4
2
100
S1
0
25000 0
40000 0
60000 -60000
10000 4500000 -10000
S2 Z
0 4500000
De esto forma hemos llegado a la solución óptima de nuestro ejercicio. Se deben producir (X1 =100) cien tortas caramelo y cincuenta tortas dulzura (X2=50) para obtener un beneficio de $4.500.000. Los recursos son agotados en su totalidad, no se generan excedentes.
Oscar Oswaldo Echavarría
Mayo/2011
Página 6 de 6