Está en la página 1de 25

Unidad 3

1 //Escenario
Escenario215
Lectura fundamental
Fundamental

MétododeSimplex
Introducción
Etapas un aplan
la en
Investigación
deformato
comunicación
Tableau
de
Operaciones
estratégica

Contenido

1 Solución de programas lineales

2 Método Simplex en formato Tableau

3 Utilización de Solver de Microsoft Excel® como método de solución

4 Utilización de GAMS® como método de solución

Palabras clave: programación lineal, optimización, método Simplex.


1. Solución de programas lineales
En el Escenario anterior, revisamos formalmente el algoritmo de solución para programas lineales, el
método Simplex; sin embargo, el algoritmo implica una serie de operaciones algebraicas que a simple
vista podrían requerir de importantes recursos computacionales al tratar con problemas con un gran
número de variables y/o restricciones. Afortunadamente, este no es el caso y en la gran mayoría de
problemas el algoritmo ha mostrado ser de gran utilidad. Lo único que requerimos es de un software
que pueda realizar los pasos de manera eficiente y, en ese sentido, tenemos una gran variedad de
ellos que discutiremos brevemente al final de este Escenario. Por otra parte, la forma algebraica
del método, que discutimos en el Escenario anterior, tampoco nos permite tener una total claridad
cuando ejecutamos el algoritmo de forma manual, esto puede ser un gran inconveniente que nos
distrae de los aspectos importantes del problema para centrarnos en las operaciones algebraicas. Es
por esta razón que necesitamos utilizar el algoritmo de una forma más adecuada.

El formato Tableau del método Simplex, que discutiremos en la primera parte de esta unidad, tiene
como propósito facilitar la ejecución del mismo cuando los cómputos no los está realizando un
computador. Para un programa de software, la forma algebraica podría ser mucho más conveniente,
además, que le permite la utilización de técnicas avanzadas como la descomposición o la generación
de columnas que están más allá del alcance de este curso. Como estamos en un curso introductorio,
es relevante para nosotros conocer el formato Tableau y, a partir de este, caracterizar los diferentes
estados a los que podemos llegar con la solución de un problema; así, este Escenario lo dedicaremos
a reformular en dicho formato el algoritmo simplex, reemplazando los productos e inversiones
matriciales por operaciones de Gauss-Jordan, que son mucho más sencillas de realizar manualmente.
Al final, discutiremos las principales herramientas computacionales que nos pueden servir para
resolver problemas a mayor escala.

2. Método Simplex en formato Tableau


Retomando la notación que utilizamos en el Escenario anterior, consideremos un problema lineal en
forma matricial escrito como:

Máx Z = cTX
s.a.
AX ≤ b
X≥0

POLITÉCNICO GRANCOLOMBIANO 2
donde el vector columna X, cuyos componentes denotaremos con Xj, denota las variables de
decisión; allí, el índice j estará en el rango de 1 hasta n. El vector columna c, cuyos componentes
denotaremos con cj, representa los coeficientes de la función objetivo. El vector columna b,
con componentes bi, se usa para representar los valores del lado derecho de las restricciones;
allí, el índice i estará en el rango de 1 hasta m. Finalmente, para los coeficientes de las diferentes
restricciones utilizaremos la matriz de restricciones A de dimensión m×n, con componentes aij. En
todos los casos, m representa el número de y n el número de variables de decisión del problema.
Nuevamente, podemos llevar el problema a lo que se conoce como forma estándar. Como en este
caso tenemos desigualdades de menor o igual, el otro tipo de desigualdades lo consideraremos en
la otra mitad de esta unidad, lo que debemos hacer es incluir en cada restricción una variable de
holgura que absorba la diferencia entre el lado izquierdo y el derecho. Las variables de holgura son
variables no negativas que no afectan la función objetivo, solo se usan en las restricciones, por lo
tanto, nuestro problema ahora se escribe de la forma:

Max Z = cT X
s.a.
AX = b
x≥0

donde el vector X incluye las variables de holgura, y n denota el número de variables de decisión más
las variables de holgura.

Nuevamente, vamos a descomponer la matriz A y los vectores en una parte básica y una parte
no básica, porque el formato Tableau no cambia la esencia del método Simplex, únicamente su
presentación y las operaciones que necesitaremos para cambiar de base. Es decir, tenemos que:

A=[B:N]

X=[XB,XN] y

c=[cB,cN]

POLITÉCNICO GRANCOLOMBIANO 3
Con lo cual, el problema lineal se puede formular como:

Max Z
s.a.
Z - cBXB - cNXN = 0
BXB + NXN = b
XB’XN ≥ 0

Si iniciamos con una solución básica factible XB=B-1b, entonces, el valor de la función objetivo estará
dado por:

Z0 = c ( )
B-1b =(c ,c )
0 B N ( )B-1b =c B-1b
0 B

Adicionalmente, si multiplicamos la restricción BXB+NXN=b por B-1 obtendremos la relación:

IXB + B-1NXN = B-1b

finalmente, si partimos de Z=cB XB+cN XN y reemplazamos la solución básica, obtenemos la definición


de los costos reducidos para las variables no básicas dada en la cartilla anterior:

w = cB B-1N - cN

POLITÉCNICO GRANCOLOMBIANO 4
En síntesis...
Todas las relaciones necesarias para ejecutar una iteración del método
Simplex se pueden resumir en la siguiente tabla:
Tabla 1. Tabla general del método Simplex

z XB XN RHS

z 1 0 W=CBB-1N-cN CBB-1b

XB 0 I B-1N B-1b

Fuente: elaboración propia

Notemos que en la tabla 1, en la primera fila, tenemos los costos reducidos para todas las variables no
básicas, por lo tanto, basta con una simple inspección de esta fila para verificar si existe algún costo
reducido mayor que cero, para saber que no nos encontramos en el punto óptimo. De la misma
forma, si todos los costos en la primera fila de la tabla son mayores o iguales a cero (recuerde que
para las variables básicas los costos reducidos son 0) entonces, tenemos que: zj-cj ≥ 0, por lo cual nos
encontraremos en la solución óptima del problema. Si este es el caso, el valor del vector X se puede
obtener fácilmente, para aquellas variables en la base, variables básicas, su valor está dado por B-1b;
como la última columna de la tabla corresponde a este vector, allí encontraremos los valores, como
las variables no básicas siempre toman el valor de 0, tenemos el vector completo. Finalmente, el
valor de la función objetivo se puede obtener de la esquina RHS de la tabla, es decir, Z=cBB-1b. Esto
resume la forma en la que se interpretan los resultados de cada una de las tablas que tenemos en cada
iteración del método; ahora es tiempo de revisar el proceso de cambio de base, que en este formato
llamaremos proceso de pivoteo.

Para poder hacer una iteración del método Simplex, debemos decidir en cada caso cuál variable
entrará a la base y cuál correspondientemente saldrá de la base. La variable que entra estará
determinada por aquella variable no básica que tenga el costo reducido más negativo; en caso de
empate, se puede seleccionar cualesquiera de las variables con el mismo costo reducido negativo.

POLITÉCNICO GRANCOLOMBIANO 5
Para decidir la variable que saldrá de la base debemos considerar las columnas de la tabla que
corresponden a las variables no básicas, en este caso dadas por la expresión B-1N.

Debemos ver con mayor detenimiento dichas columnas, si denotamos a las columnas de la matriz N
por aj, con j=1,2,…,n-m, entonces, las columnas del producto B-1N, que denotaremos por yj, estarán
dadas por yj=B-1aj. Para la variable Xk, que será la que entremos a la base, tendremos la columna

yk=B-1ak, como vimos en la unidad anterior, estos valores determinan en cuanto puede aumentar la
nueva variable básica para garantizar que la solución sea factible, así que para encontrar dicho valor
usamos la expresión:

bl
Xk = Y = min j = 1, ... , m
lk
{ bl
,Y >0
Yjk jk }
en donde el argmin, es decir, el índice al que pertenezca la variable básica que proporciona el mínimo,
digamos j*, nos indicará la variable que sale de la base.

¿Sabía que...?
Cuando en alguna iteración del método Simplex, la condición para las entradas
de la columna yk no se cumpla para ninguna de ellas, es decir, yjk≤0 para todas las
componentes de la columna, entonces, la región factible es no acotada y tiene al
menos una dirección extrema.

Lo único que resta luego de tener las dos decisiones es volver a dejar la tabla como se muestra en la tabla
1. Es decir, debemos garantizar que la columna correspondiente a la nueva variable básica haga parte de
la matriz identidad, de acuerdo con esto, debemos realizar operaciones de Gauss-Jordan sobre todas las
filas de la tabla para obtener un pivote (un número 1 para ser exactos) en la intersección de la fila j* con
la columna k. El resto de la columna, incluyendo el costo reducido debe ser llevado a ceros. Con esta
operación se logran cuatro objetivos claves de la iteración del algoritmo Simplex:

POLITÉCNICO GRANCOLOMBIANO 6
1. Se actualiza la base, al reemplazar una de las variables con la nueva variable.

2. Se actualizan los valores de todas las variables básicas.

3. Se actualizan los costos reducidos para todas las variables no básicas, incluyendo la variable que
salió de la base.

4. Se actualizan todas las columnas de las variables no básicas, es decir, el producto B-1N.

En la operación, supongamos que la variable que va a entrar a la base es Xk y la variable Xr será la que
sale de la base. Entonces, se deben realizar tres conjuntos de operaciones de Gauss-Jordan para
terminar el pivoteo:

1. Se debe dividir la fila r-ésima entre yrk para obtener el pivote

2. Para las demás filas se resta yik veces la fila r-ésima, con el objetivo de que en la columna
k-ésima se obtenga un 0.

3. A la fila de los costos reducidos se le resta (zk-ck ) veces la fila r-ésima, donde recordemos que
zj=cBB-1aj, para también obtener un cero en la k-ésima posición.

Esta operación de pivoteo se debe repetir en el problema hasta que se alcance la condición de
optimalidad, es decir, que todos los costos reducidos sean mayores o iguales a cero; o bien, se
encuentre en una situación en la cual la columna yk de alguna variable no básica con costo reducido
menor a cero tenga únicamente elementos menores o iguales a cero, es decir, que exista una
dirección en la cual se pueda aumentar indefinidamente el valor de la variable que entra a la base y por
lo tanto tendríamos un problema con solución no acotada.

Es importante resaltar que, como en el escenario anterior, se ha descrito el procedimiento para un


problema de maximización, el único cambio para un problema de minimización está en el signo de los
costos reducidos para la condición de optimalidad o la definición de la variable que entra a la base, en
otros términos, tendremos solución óptima si todos los costos reducidos son menores o iguales a cero
y en cada iteración entrará a la base a variable con el mayor costo reducido.

Para entender mejor la ventaja algorítmica del formato, veamos un ejemplo. Consideremos el
problema lineal dado por Taha (2012):

POLITÉCNICO GRANCOLOMBIANO 7
Máx Z = 5x1 + 4x2
s.a.
6x₁ + 4x₂ ≤ 24
x₁ + 2x₂ ≤ 6
-x₁ + x₂ ≤ 1
x₂ ≤ 2
x₁, x₂ ≥ 0

Lo primero que debemos hacer es llevar el problema a la forma estándar, por lo que agregaremos
variables de holgura a cada una de las restricciones, excepto a las restricciones de no negatividad. Por
lo tanto, el problema queda de la siguiente forma:

Máx Z = 5x1 + 4x2


s.a.
6x₁ + 4x₂ + x₃ = 24
x₁ + 2x₂ + x₄ = 6
-x₁ + x₂ + x₅ = 1
x₂ + x₆ = 2
x₁, x₂, x₃, x₄, x₅, x₆ ≥ 0

Ahora, lo que debemos hacer es escribir el problema utilizando el formato Tableau, en donde
tendremos una columna por cada variable del problema, incluyendo la variable z, así como una
columna adicional para el lado derecho. Por otra parte, tendremos una fila por cada restricción, pero
no para las restricciones de no negatividad, así como también y una fila adicional para la función
objetivo. En este caso, tenemos la primera tabla de nuestro problema, la que podemos ver en la tabla
2, allí lo único a tener en cuenta es que en la primera fila tenemos la expresión w=cBB-1N-cN, como por
ahora vamos a inicializar con cBB-1N=0, entonces para X₁ tendremos que 0-5=-5 y para X₂, 0-4=-4.

POLITÉCNICO GRANCOLOMBIANO 8
Tabla 2. Tabla inicial del método Simplex para el problema

z X₁ X₂ X₃ X₄ X₅ X₆ RHS

z 1 -5 -4 0 0 0 0 0
X₃ 0 6 4 1 0 0 0 24
X₄ 0 1 2 0 1 0 0 6
X₅ 0 -1 1 0 0 1 0 1
X₆ 0 0 1 0 0 0 1 2

Fuente: elaboración propia

Al comparar la tabla 2 con la formulación general del método dada en la tabla 1, encontramos que
la matriz identidad se encuentra bajo las variables X₃, X₄, X₅ y X₆, es decir, estas son las variables que
forman nuestra base inicial; como las dos variables originales del problema son no básicas, el valor que
toman es cero. Por lo tanto, el valor actual de la función objetivo es Z₀=0, lo cual se refleja en el valor
de la celda superior derecha de la tabla.

Para hacer nuestra primera iteración, debemos revisar el vector de costos reducidos para las variables
no básicas; en este caso, tenemos los valores de -5y -4 para X₁ y X₂, respectivamente. Como existen
variables con costos reducidos menores o iguales a cero, no estamos en la solución óptima y por lo
tanto debemos iterar. Para escoger la variable que va a entrar a la base, debemos escoger la variable
con el costo reducido más negativo, en este caso X₁. A partir de esta decisión debemos calcular la
razón mínima, para calcular el valor que tendrá X₁ e identificar la variable de bloqueo, es decir, aquella
que saldrá de la base. El cálculo sería:

X₁ = min { 24 , 6
6 1 } =4

donde no hemos considerado los valores -5 y 0. Porque solo se usan los valores de la columna tales
que yj1≥0. Así la variable que saldría de la base sería la correspondiente al número 6, denominador de la
razón mínima, en este caso sería X₃, lo que en el Tableau representamos por:

POLITÉCNICO GRANCOLOMBIANO 9
Tabla 3. Identificación de la variable que entra y la que sale de la base en la primera iteración del algoritmo Simplex

z X₁ X₂ X₃ X₄ X₅ X₆ RHS Razón

z 1 -5 -4 0 0 0 0 0
X₃ 0 6 4 1 0 0 0 24 4
X₄ 0 1 2 0 1 0 0 6 6
X₅ 0 -1 1 0 0 1 0 1 NA
X₆ 0 0 1 0 0 0 1 2 NA

Fuente: elaboración propia

Ahora, lo que debemos hacer es completar la operación de pivoteo, lo haremos en tres pasos:

1. Debemos cambiar la base y construir el pivote, así que la primera fila ahora corresponderá a X₁ y
debemos multiplicar toda la fila por 1/6 de manera que en la intersección de la columna de X₁ y
su ahora fila se encuentre un número 1. De esta forma la tabla quedaría como:

Tabla 4. Construcción del pivote para X.

z X₁ X₂ X₃ X₄ X₅ X₆ RHS
z 1 -5 -4 0 0 0 0 0
X₁ 0 1 2/3 1/6 0 0 0 4
X₄ 0 1 2 0 1 0 0 6
X₅ 0 -1 1 0 0 1 0 1
X₆ 0 0 1 0 0 0 1 2

Nota a pie de tabla: se multiplicó a primera fila por 1/6


Fuente: elaboración propia

2. Ahora, debemos garantizar que en la columna de X₁ todas las demás variables tengan un número
0. Por lo tanto, debemos restarle a la segunda fila una vez la primera fila y a la tercera fila
sumarle (porque tiene un -1) una vez la primera fila. Así, la tabla quedaría como:

POLITÉCNICO GRANCOLOMBIANO 10
Tabla 5. Construcción del pivote para X1.

z X₁ X₂ X₃ X₄ X₅ X₆ RHS

z 1 -5 -4 0 0 0 0 0
X₁ 0 1 2/3 1/6 0 0 0 4
X₄ 0 0 4/3 -1/6 1 0 0 2
X₅ 0 0 5/3 1/6 0 1 0 5
X₆ 0 0 1 0 0 0 1 2

Nota a pie de tabla: a las filas 2 y 3 se les “restó” un múltiplo de la fila 1


Fuente: elaboración propia

3. Finalmente, debemos hacer que el costo reducido de la variable X₁ sea 0 también, para lo cual a
la fila de la variable Z le sumamos (porque tiene un -5) 5 veces la fila

1. Así, la tabla al final de la operación de pivoteo queda de la siguiente manera:

Tabla 6. Resultado final de la operación de pivoteo.

z X₁ X₂ X₃ X₄ X₅ X₆ RHS

z 1 0 -2/3 5/6 0 0 0 20
X₁ 0 1 2/3 1/6 0 0 0 4
X₄ 0 0 4/3 -1/6 1 0 0 2
X₅ 0 0 5/3 1/6 0 1 0 5
X₆ 0 0 1 0 0 0 1 2

Nota a pie de tabla: a las filas de los coeficientes se les “restó” un múltiplo de la fila 1
Fuente: elaboración propia

De esta forma, hemos terminado una iteración del método Simplex y la base fue actualizada,
así como los valores de las variables básicas y los costos reducidos, el valor actual de la función
objetivo es Z₀=20.

POLITÉCNICO GRANCOLOMBIANO 11
Aunque en este caso la tabla no tenga exactamente la misma forma de la tabla 1, con un simple
intercambio de columnas se lograría agrupar a las variables básicas y a las no básicas; sin embargo,
este, generalmente, no se realiza, simplemente se tiene en cuenta las variables que están en la base
y se verifica que ellas formen una matriz identidad; por ejemplo, en este caso con las columnas de
X₁, X₄, X₅ y X₆ tenemos la matriz identidad (en la tabla 7, la vemos resaltada). Además, si quisiéramos
recuperar a la matriz B-1, esta siempre se encontrará en las columnas que formaban la base inicial, en
este caso X₃, X₄, X₅ y X₆ (en la tabla 7 son los números en rojo).

Tabla 7. Identificación de la matriz I (resaltada) y la matriz B-1 (números rojos) en la tabla final de la iteración 1

z X₁ X₂ X₃ X₄ X₅ X₆ RHS

z 1 0 -2/3 5/6 0 0 0 20
X₁ 0 1 2/3 1/6 0 0 0 4
X₄ 0 0 4/3 -1/6 1 0 0 2
X₅ 0 0 5/3 1/6 0 1 0 5
X₆ 0 0 1 0 0 0 1 2

Fuente: elaboración propia

Como aún existen variables con costos reducidos menores o iguales a cero, no estamos en la solución
óptima y por lo tanto debemos realizar una nueva iteración. Para escoger la variable que va a entrar a
la base, debemos escoger la variable con el costo reducido más negativo, en este caso X₂. A partir de
ella debemos calcular la razón mínima, para calcular el valor que tendrá X₂ en la base e identificar la
variable de bloqueo, es decir, la que saldrá de la base. El cálculo en este caso sería:

X₂ = min { 4 , 2 , 5 ,
2/3 4/3 5/3
2
1 } =
3
2

Así, la variable que saldría de la base sería la correspondiente al número 4/3, denominador de la razón
mínima, en este caso sería X₄, en el Tableau lo representamos por:

POLITÉCNICO GRANCOLOMBIANO 12
Tabla 8. Identificación de la variable que entra y la que sale de la base en la segunda iteración del algoritmo Simplex

z X₁ X₂ X₃ X₄ X₅ X₆ RHS Razón
z 1 0 -2/3 5/6 0 0 0 20
X₁ 0 1 2/3 1/6 0 0 0 4 6
X₄ 0 0 4/3 -1/6 1 0 0 2 3/2
X₅ 0 0 5/3 1/6 0 1 0 5 3
X₆ 0 0 1 0 0 0 1 2 2

Fuente: elaboración propia

Ahora, debemos completar la operación de pivoteo. Nuevamente, lo haremos en tres pasos:

1. Debemos cambiar la base y construir el pivote, así que la segunda fila corresponderá a X₂ y por lo
tanto, debemos multiplicar toda la segunda fila por 3/4 para que en la intersección de la columna
de X₂ y su fila correspondiente se encuentre un número 1. De esta forma la tabla quedaría como:

Tabla 9. Construcción del pivote para X₂.

z X₁ X₂ X₃ X₄ X₅ X₆ RHS

z 1 0 -2/3 5/6 0 0 0 20
X₁ 0 1 2/3 1/6 0 0 0 4
X₂ 0 0 1 -1/8 3/4 0 0 3/2
X₅ 0 0 5/3 1/6 0 1 0 5
X₆ 0 0 1 0 0 0 1 2

Nota a pie de tabla: se multiplicó la segunda fila por 3/4


Fuente: elaboración propia

2. Luego, debemos buscar que en la columna de X₂ todas las demás variables tengan un número 0.
Por lo tanto, debemos restarle a la primera fila 2/3 de la segunda fila, a la tercera fila 5/3 de la
segunda fila y a la tercera fila una vez la segunda fila. Entonces, la nueva tabla quedaría así:

POLITÉCNICO GRANCOLOMBIANO 13
Tabla 10. Construcción del pivote para X₂

z X₁ X₂ X₃ X₄ X₅ X₆ RHS

z 1 0 -2/3 5/6 0 0 0 20
X₁ 0 1 0 1/4 -1/2 0 0 3
X₂ 0 0 1 -1/8 3/4 0 0 3/2
X₅ 0 0 0 3/8 -5/4 1 0 5/2
X₆ 0 0 1 1/8 -3/4 0 1 1/2

Nota a pie de tabla: a las filas 1, 3 y 4 se les restó un múltiplo de la fila 2


Fuente: elaboración propia

3. Para terminar, debemos hacer que el costo reducido de la variable X₂ sea 0, para lo cual a la
fila de la variable Z le sumamos (porque tiene un -2/3) 2/3 de la fila 1. Así, la tabla al final de la
operación de pivoteo queda de la siguiente manera:

Tabla 11. Resultado final de la operación de pivoteo

z X₁ X₂ X₃ X₄ X₅ X₆ RHS
z 1 0 0 3/4 1/2 0 0 21
X₁ 0 1 0 1/4 -1/2 0 0 3
X₂ 0 0 1 -1/8 3/4 0 0 3/2
X₅ 0 0 0 3/8 -5/4 1 0 5/2
X₆ 0 0 0 1/8 -3/4 0 1 1/2

Nota a pie de tabla: a las filas de los coeficientes se les “restó” un múltiplo de la fila 2
Fuente: elaboración propia

Como en este caso todos los costos reducidos son mayores o iguales a 0, hemos terminado con el
algoritmo y nos encontramos en la solución óptima. En este caso, sin tener en cuenta a las variables
de holgura, la solución sería X₁=3, X₂= 3/2, con la que obtenemos un valor para la función objetivo
de 21. Nuevamente en esta solución podemos identificar fácilmente la matriz B-1 si tomamos las
columnas de las variables X₃, X₄, X₅ y X₆.

POLITÉCNICO GRANCOLOMBIANO 14
3. Utilización de Solver de Microsoft Excel® como método de solución
Ahora que conocemos mejor el proceso de solución de programas lineales, vamos a utilizar un add-in de
Microsoft Excel® que se incluye en todas sus distribuciones del programa –si no está incluido se puede
activar sin costo de la página de Microsoft al tener una licencia de office (“Cargar el complemento
Solver - Excel,” n.d.)- y que por esta razón, será un recurso que siempre tendremos disponible.

¿Sabía que...?
En todas las distribuciones de Excel® se incluye una serie de complementos,
los cuales se pueden activar al ingresar por las opciones de Excel. Entre ellos se
encuentra el complemento Solver® el cual permite resolver diferentes tipos de
problema de optimización.

Para usar el programa debemos primero activar el complemento, y luego en la hoja de cálculo
construir el modelo lineal para después hacer uso del mismo. Vamos a ilustrar su uso con un ejemplo
sencillo, en donde daremos unas recomendaciones generales. La mejor forma de adquirir destrezas
en el uso de un software es a través de la utilización del mismo, por lo cual recomendamos revisar las
referencias dadas aquí y en las lecturas complementarias para fortalecer la formulación y resolución
de programas lineales a través de hojas de cálculo.

Consideremos el ejemplo de la sección anterior y supongamos que ya tenemos activo el


complemento de Solver en Microsoft Excel®, si no es así podemos revisar la página de ayuda de
office anteriormente mencionada (“Cargar el complemento Solver - Excel,” n.d.). Lo primero
que debemos hacer es definir que celdas de nuestra hoja de cálculo van a contener las variables
de decisión. En nuestro caso dejaremos las celdas B3 y C3 reservadas para dichos valores, en el
archivo además pusimos etiquetas sobre estas celdas (en las celdas B2 y C2, respectivamente) para
identificarlas fácilmente, este primer paso se puede observar en la figura 1.

POLITÉCNICO GRANCOLOMBIANO 15
X₁ X₂

Figura 1. Definición de las celdas para las variables de decisión del problema
Fuente: elaboración propia

Ahora, debemos escribir los coeficientes de la función objetivo y los de cada una de las restricciones.
Una práctica recomendable es hacerlo en las mismas columnas en que se definieron las variables, al
estilo del Tableau del método Simplex, aunque no es necesario para que el complemento funcione.
En este caso seguiremos la práctica usual y emplearemos la fila 5 para la función objetivo y las filas 7
a 10 para las restricciones, no es necesario escribir las restricciones de no negatividad. Con este paso
nuestro modelo se ve como el de la figura 2.

X₁ X₂

F.O. 5 4

R1 6 4
R2 1 2
R3 -1 1
R4 0 1

Figura 2. Inserción de los coeficientes de la FO y las restricciones del problema


Fuente: elaboración propia

Como la función objetivo y las restricciones son funciones lineales de las variables, basta con colocar
en la columna D, en la celda correspondiente a cada una, dicho producto para que quede formulado
y cambie en el caso en que las variables tomen diferentes valores. Este paso es crucial y debemos
garantizar que todo quede bien formulado para que el complemento de Excel® pueda resolver el
problema. En la figura 3 se muestra la formulación de cada celda.

POLITÉCNICO GRANCOLOMBIANO 16
A B C D
1
2 X₁ X₂
3
4
5 F.O. 5 4 =B5*$B$3+C5*$C$3
6
7 R1 6 4 =B7*$B$3+C7*$C$3
8 R2 1 2 =B8*$B$3+C8*$C$3
9 R3 -1 1 =B9*$B$3+C9*$C$3
10 R4 0 1 =B10*$B$3+C10*$C$3

Figura 3. Formulación de la FO y las restricciones como funciones de las variables del problema
Fuente: elaboración propia

Ahora, es necesario incluir en el problema los lados derechos de las restricciones, el sentido de las
desigualdades no es necesario incluirlo en alguna celda de Excel, pero lo haremos para mayor claridad.
Así en la columna E colocaremos los signos de desigualdad que solo tienen un propósito ilustrativo, y
en la columna F los valores para los lados derechos de las restricciones. En la figura 4, se muestra la
formulación completa del problema.

Una vez formulado adecuadamente el problema debemos abrir la ventana del complemento Solver®
y diligenciarla completamente. Si se activó correctamente, en la pestaña Datos aparecerá el ícono
de Solver®, al hacer clic nos aparecerá la ventana mostrada en la figura 5. Allí, debemos llenar
correctamente todos los datos del problema, de la siguiente forma:

POLITÉCNICO GRANCOLOMBIANO 17
A B C D E F
1
2 X₁ X₂
3
4
5 F.O. 5 4 0
6
7 R1 6 4 0 ≤ 24
8 R2 1 2 0 ≤ 6
9 R3 -1 1 0 ≤ 1
10 R4 0 1 0 ≤ 2

Figura 4. Formulación completa del problema en la hoja de cálculo. La función objetivo está resaltada en azul
Fuente: elaboración propia

1. Establecer objetivo: debemos seleccionar la celda que contiene el cálculo de la función objetivo,
en nuestro caso la celda D5 (la que resaltamos en azul).

2. Para: debemos escoger el criterio de optimización, en nuestro caso es de maximización.

3. Cambiando las celdas de variables: en este recuadro debemos seleccionar las celdas
reservadas para las variables de decisión del problema, en nuestro caso las celdas B3 y C3
(resaltadas en verde).

4. Sujeto a las restricciones: debemos ir al botón agregar y seleccionar como lado izquierdo la
celda que contiene el cálculo de la restricción; en este caso se encuentran en la columna D;
luego, el sentido de la desigualdad (aquí si tiene importancia nuestra selección) y finalmente,
el lado derecho de la restricción, que en nuestro caso se encuentra en la columna F para cada
restricción. Las restricciones se deben agregar una por una, aunque si varias tienen el mismo
sentido de desigualdad se pueden agregar en bloque. Aquí para facilitar la comprensión lo
hicimos una por una.

5. Para las restricciones de no negatividad debemos marcar la opción Convertir variables sin
restricciones en no negativas.

POLITÉCNICO GRANCOLOMBIANO 18
6. Método de Resolución: finalmente, como se trata de un programa lineal, seleccionamos la
opción Simplex LP. Aunque cualquiera de las opciones solucionará el problema con la opción
simplex tendremos acceso a informes de sensibilidad que serán muy útiles y que discutiremos en
la última unidad del curso.

Una vez hacemos clic en el botón Resolver, Solver® nos indicará cuando termine de resolver el
problema, o si encontró algún inconveniente en cuyo caso debemos revisar cuidadosamente la
formulación en la hoja de cálculo; al aceptar su propuesta, tendremos la solución, Ya que en las celdas
verdes tendremos los valores de las variables de decisión y en la celda azul, el valor de la función
objetivo. La solución del problema, la cual coincide con la encontrada en la sección anterior, se
muestra en la figura 6.

Figura 5. Formulación del problema en el cuadro de diálogo de Solver®


Fuente: elaboración propia

POLITÉCNICO GRANCOLOMBIANO 19
A B C D E F
1
2 X₁ X₂
3 3 1.5
4
5 F.O. 5 4 21
6
7 R1 6 4 24 ≤ 24
8 R2 1 2 6 ≤ 6
9 R3 -1 1 -1.5 ≤ 1
10 R4 0 1 1.5 ≤ 2
Figura 6. Solución del problema obtenida por Microsoft Solver®
Fuente: elaboración propia

4. Utilización de GAMS® como método de solución


Los programas lineales tienen tanta importancia en tan distintas áreas del conocimiento que es
normal que encontremos muchas opciones de software especializado para su solución. Una de las
comúnmente usadas es GAMS® (General Algebraic Modeling System). Este software funciona bajo
una licencia comercial, además que dependiendo del Solver a utilizar es posible que se requieran
licencias adicionales. Sin embargo, es posible obtener una versión académica de forma gratuita en la
página del fabricante (“GAMS Home Page,” n.d.) la cual será suficiente para los propósitos de este
curso. Como en la sección anterior, vamos a mostrar el uso del software a través de un ejemplo y
recomendamos a los estudiantes revisar las lecturas complementarias de la unidad donde incluimos un
excelente tutorial en español (Stella et al., 2010) y la guía de usuario oficial, en inglés, disponible en el
sitio web del fabricante (Rosenthal, 2016).

Consideremos el ejemplo anterior y supongamos que ya se tiene instalado en nuestro computador


el software GAMS. Para poder construir y resolver el modelo de la forma más sencilla evitaremos
la definición de Sets, Tables y Parameters; sin embargo, es importante que a través del Material
complementario y de la práctica con el software nos familiaricemos con su uso porque nos permitirá
construir modelos para problemas a gran escala.

POLITÉCNICO GRANCOLOMBIANO 20
Por lo tanto, comenzaremos con la definición de variables, para eso usaremos la palabra protegida
Variables y a continuación definiremos dos variables X₁ y X₂, así como la variable Z para la función
objetivo. La descripción de la variable es opcional, pero debemos terminar su definición con un “;”.
Luego debemos definir las restricciones de no negatividad, lo cual se hace con la palabra protegida
Positive Variables, nuevamente, luego de colocar allí los nombres de las variables se debe cerrar la
instrucción con un “;”.

Ahora, debemos agregar las restricciones y la función objetivo. En GAMS® se deben definir sus
nombres primero y luego si la ecuación de cada una, así que definimos los nombres a través de la
palabra protegida Equations, allí luego ponemos los nombres de todas las ecuaciones a utilizar, en este
caso: FO, R1, R2, R3 y R4, la descripción nuevamente es opcional y debemos terminar la instrucción
con un “;”. Una vez nombradas, cada ecuación debe ser formulada, comenzando con su nombre
seguido de “..” y un espacio; luego, va la expresión matemática que define la ecuación y al final un “;”.
Los signos de desigualdad o igualdad en GAMS están definidos como: =e= (para la igualdad), =/=
(para la desigualdad menor o igual que) y =g= (para la desigualdad mayor o igual que).

Después de definir las restricciones, hay que definir el modelo propiamente dicho; después de darle
un nombre a través de la palabra protegida Model, se debe seleccionar las restricciones a utilizar
en el mismo encerrándolas entre signos “/”. Si se desea utilizar todas las restricciones definidas
anteriormente, se usa la palabra protegida all.

Finalmente, hay que pedirle al software que resuelva nuestro modelo, a través de la palabra protegida
Solve, seguida del nombre del modelo, el criterio de optimización, el nombre de la ecuación que define
la función objetivo, la palabra protegida using y el nombre del Solver a utilizar, en nuestro caso será lp,
y debemos cerrar todo con un “;”.

POLITÉCNICO GRANCOLOMBIANO 21
Figura 7. Formulación del problema en GAMS®
Fuente: elaboración propia

Una vez construido el modelo, vamos al icono con la flecha roja y resolvemos el problema. La
formulación de nuestro ejemplo se encuentra en la figura 7 y un fragmento de la solución obtenida;
GAMS® entrega un informe detallado de todos los pasos realizados, los cuales se muestra en la figura
8. La solución coincide con las obtenidas en las dos secciones anteriores.

POLITÉCNICO GRANCOLOMBIANO 22
Figura 8. Solución del problema obtenida con GAMS®
Fuente: elaboración propia

Así, en esta primera parte hemos discutido diferentes métodos de solución para los problemas
lineales. Sin embargo, el uso del algoritmo Simplex requiere de la obtención de una base inicial,
aunque los programas de software solucionan este problema implícitamente, es importante para
nosotros entender como lo hacen y conocer las alternativas disponibles para este problema que
no necesariamente es trivial. En la siguiente parte de esta unidad, discutiremos dos métodos de
inicialización que junto con lo discutido del algoritmo Simplex nos permitirá dar por cerrada esta parte
algorítmica para centrarnos en el análisis de posoptimalidad.

POLITÉCNICO GRANCOLOMBIANO 23
Referencias
Cargar el complemento Solver - Excel. (n.d.). Recuperado de https://support.office.com/es-es/
article/Cargar-el-complemento-Solver-612926fc-d53b-46b4-872c-e24772f078ca

GAMS Home Page. (n.d.). Recuperado de http://www.gams.com/

Rosenthal, R. E. (2016). GAMS — A User’s Guide. Recuperado de http://www.gams.com/


help/topic/gams.doc/userguides/GAMSUsersGuide.pdf

Stella, G., Ardila, B., Felipe, D., Gómez, B., Bohórquez, P. A., Albeiro, I., Zapata Martínez, A. (2010).
GAMS Aplicado a las ciencias económicas. Recuperado de http://www.fce.unal.edu.co/uifce/
proyectos-de-estudio/pdf/GAMS

Taha, H. (2012). Investigación de Operaciones (9a ed.). Recuperado de https://www.biblionline.


pearson.com/Pages/BookDetail.aspx?b=711

POLITÉCNICO GRANCOLOMBIANO 24
INFORMACIÓN TÉCNICA

Módulo: Investigación de Operaciones


Unidad 3: Automatización del Método Simplex e
inicialización
Escenario 5: Método Simplex en formato Tableau

Autor: Juan Carlos Gutiérrez Vanegas

Asesor Pedagógico: Manuel Fernando Guevara


Diseñador Gráfico: Juan Rodríguez
Asistente: Eveling Peñaranda

Este material pertenece al Politécnico Grancolombiano.


Prohibida su reproducción total o parcial.

POLITÉCNICO GRANCOLOMBIANO 25

También podría gustarte