Академический Документы
Профессиональный Документы
Культура Документы
STEFANY AGUDELO
PAOLA CARVAJAL
2018
CONSULTA INVESTIGACION DE OPERACIONES
PAOLA CARVAJAL
11
STEFANY AGUDELO
1192109
PRESENTADO A:
2018
1. METODO SIMPLEX
El método Simplex es un procedimiento iterativo que permite mejorar la solución de la función
objetivo en cada paso. El proceso concluye cuando no es posible continuar mejorando dicho valor, es
decir, se ha alcanzado la solución óptima (el mayor o menor valor posible, según el caso, para el que se
satisfacen todas las restricciones).
La forma estándar del modelo de problema consta de una función objetivo sujeta a determinadas
restricciones:
3. Todas las variables (xi) deben tener valor positivo o nulo (condición de no negatividad).
Tipo de optimización.
Como se ha comentado, el objetivo del método consistirá en optimizar el valor de la función objetivo.
Sin embargo, se presentan dos opciones: obtener el valor óptimo mayor (maximizar) u obtener el valor
óptimo menor (minimizar).
Objetivo de maximización
Condición de salida de la base: una vez obtenida la variable entrante, la variable que sale
se determina mediante el menor cociente P0/Pj de los estrictamente positivos.
Objetivo de minimización
Condición de entrada a la base: el mayor valor positivo en la fila Z indica la variable Pj que entra
a la base.
Condición de salida de la base: una vez obtenida la variable entrante, la variable que sale se
determina mediante el menor cociente P0/Pj de los estrictamente negativos.
No obstante, es posible normalizar el objetivo del problema con el fin de aplicar siempre los mismos
criterios en lo referente a la condición de parada del algoritmo y a las condiciones de entrada y salida
de las variables de la base. De esta forma, si el objetivo es minimizar la solución, se puede cambiar el
problema a otro equivalente de maximización simplemente multiplicando la función objetivo por "-1".
Es decir, el problema de minimizar Z es equivalente al problema de maximizar (-1)·Z. Una vez obtenida
la solución será necesario multiplicarla también por (-1).
Ventajas: No hay que preocuparse por nuevos criterios de parada, condición de entrada y salida de la
base ya que se mantienen.
Inconvenientes: En el caso de que la función tenga todos los coeficientes de sus variables básicas
positivos, y además las restricciones sean del tipo de desigualdad "≤", al hacer el cambio dichos
coeficientes quedan negativos cumpliéndose la condición de parada en la primera iteración (en la fila
del valor de la función objetivo todos los valores son positivos o cero). Obteniéndose en este caso por
defecto un valor óptimo para la función igual a 0.
Solución: Realmente no existe este problema dado que para que la solución sea superior a 0 es
necesario que alguna restricción tenga impuesta la condición "≥" (y se trataría de un modelo para
el método de las Dos Fases). En el caso planteado, la solución real debe ser cero.
También se ha dicho que los términos independientes (bi) de cada ecuación deben ser no
negativos para poder emplear el método Simplex. A tal fin, si alguna de las restricciones presenta un
término independiente menor que 0 habrá que multiplicar por "-1" ambos lados de la inecuación
(teniendo en cuenta que esta operación también afecta al tipo de restricción).
Inconvenientes: Puede resultar que en las restricciones donde tengamos que modificar los signos
de las constantes, los tipos de desigualdad fueran "≤" (quedando tras la operación del tipo "≥") siendo
necesario desarrollar el método de las Dos Fases. Este inconveniente no es controlable, aunque podría
ocurrir el caso contrario y resultar beneficioso si los términos independientes negativos se presentan
en todas aquellas restricciones con desigualdad de tipo "≥". Si existe alguna restricción del tipo "=" no
supondría ninguna ventaja ni desventaja puesto que siempre sería de necesaria aplicación el método
de las Dos Fases.
Otra de las condiciones del modelo estándar del problema es que todas las restricciones sean
ecuaciones de igualdad (también llamadas restricciones de igualdad), por lo que hay que convertir las
restricciones de desigualdad o inecuaciones en dichas identidades matemáticas.
Para normalizar una restricción con una desigualdad del tipo "≤", hay que añadir una nueva
variable, llamada variable de holgura xs (con la condición de no negatividad: xs ≥ 0). Esta nueva
variable aparece con coeficiente cero en la función objetivo, y sumando en la ecuación
correspondiente (que ahora sí será una identidad matemática o ecuación de igualdad).
En caso de una desigualdad del tipo "≥", también hay que añadir una nueva variable llamada
variable de exceso xs (con la condición de no negatividad: xs ≥ 0). Esta nueva variable aparece
con coeficiente cero en la función objetivo, y restando en la ecuación correspondiente.
Surge ahora un problema con la condición de no negatividad con esta nueva variable del
problema. Las inecuaciones que
Tipo de contengan una desigualdad de
Tipo de variable que aparece
desigualdad tipo "≥" quedarían:
Al realizar la primera
≤ + holgura
iteración con el método Simplex,
las variables básicas no estarán en
la base y tomarán valor cero. En este caso la nueva variable xs, tras hacer cero a x1 y x2, tomará
el valor -b1 y no cumpliría la condición de no negatividad. Es necesario añadir otra nueva
variable xr, llamada variable artificial, que también aparecerá con coeficiente cero en la función
objetivo y sumando en la restricción correspondiente. Quedando entonces de la siguiente
manera:
Restricción de tipo "=" Al contrario de lo que cabría pensar, para las restricciones de tipo "="
(aunque ya son identidades) también es necesario agregar variables artificiales xr. Como en el
caso anterior, su coeficiente será cero en la función objetivo y aparecerá sumando en la
restricción correspondiente.
En el último caso se hace patente que las variables artificiales suponen una violación
de las leyes del álgebra, por lo que será necesario asegurar que dichas variables artificiales tengan un
valor 0 en la solución final. De esto se encarga el método de las Dos Fases y por ello siempre que
aparezcan este tipo de variables habrá que realizarlo.
En la siguiente tabla se resume según la desigualdad el tipo de variable que aparece en la ecuación
normalizada, así como su signo:
Las columnas de la tabla están dispuestas de la siguiente forma: la primera columna de la tabla
contiene las variables que se encuentran en la base (o variables básicas), esto es, aquellas que
toman valor para proporcionar una solución; la segunda columna recoge los coeficientes que
dichas variables básicas tienen en la función objetivo (esta columna es llamada Cb); la tercera
muestra el término independiente de cada restricción (P0); a partir de ésta aparece una
columna por cada una de las variables de decisión y holgura presentes en la función objetivo
(Pj). Para tener una visión más clara de la tabla, se incluye una fila que contiene los títulos de
cada una de las columnas.
Sobre esta tabla se agregan dos nuevas filas: una de ellas, que lidera la tabla, donde
aparecen los coeficientes de las variables de la función objetivo, y una última fila que recoge el
valor la función objetivo y los costes reducidos Zj - Cj.
Los costes reducidos muestran la posibilidad de mejora en la solución Z0. Por este motivo
también son llamados valores indicadores.
C1 C2 ... Cn
Todos los valores incluidos en la tabla vendrán
Base Cb P0 P1 P2 ... Pn dados por el modelo del problema salvo los
valores de la fila Z (o fila indicadora). Estos se
P1 Cb1 b1 a11 a12 ... a1n obtienen de la siguiente forma: Zj = Σ(Cbi·Pj)
para i = 1..m, donde si j = 0, P0 = bi y C0 = 0, y en
P2 Cb2 b2 a21 a22 ... a2n caso contrario Pj = aij.
Condición de parada:
Se cumple la condición de parada cuando la fila indicadora no contiene ningún valor negativo
entre los costes reducidos (cuando el objetivo es la maximización), esto es, no existe posibilidad
de mejora.
Una vez cumplida la condición de parada, el valor de cada variable que logra la solución óptima
se encuentra en la columna P0, indicándose en la base a qué variable correnponde dicho valor.
Si una variable no aparece en la base, significa que su valor es cero. De la misma forma el valor
óptimo de la función objetivo (Z) se encuentra en la columna P0, fila Z.
Si no se cumple la condición de parada es necesario realizar una iteración más del algoritmo,
esto es, determinar la variable que se vuelve básica y la que deja de serlo, encontrar el
elemento pivote, actualizar los valores de la tabla y comprobar si se cumple nuevamente la
condición de parada.
Es también posible determinar que el problema no se encuentra acotado y su solución siempre
resultará mejorable. En tal caso no es necesario continuar iterando indefinidamente y se puede
finalizar el algoritmo. Esta situación ocurre cuando en la columna de la variable entrante a la
base todos los valores son negativos o nulos.
Cuando una variable se vuelve básica, es decir, entra en la base, comienza a formar parte de la
solución. Observando los costes reducidos en la fila Z, se decide que entra a la base la variable
de la columna en la que éste sea el de menor valor (o de mayor valor absoluto) entre los
negativos.
Una vez obtenida la variable entrante, se determina que sale de la base la variable que se
encuentre en aquella fila cuyo cociente P0/Pjsea el menor de los estrictamente positivos
(teniendo en cuenta que esta operación se hará únicamente cuando Pj sea superior a 0).
ELEMENTO PIVOTE:
Actualización de la tabla:
Nuevo Elemento Fila = Anterior Elemento Fila - (Anterior Elemento Fila en Columna
Pivote * Nuevo Elemento Fila Pivote).
Método de la Gran M
Ejemplo:
Min Z = 2X1 + X2 + 3X3
Sujeto a:
3X1 + X2 + 2X3 <= 10
X1 - 2X2 + 3X3 >= 6
2X1 + 3X2 - X3 <= 9
X1 + X2 +2X3 = 7
C.N.N
Cada restricción debe ser convertida de inecuación a una igualdad, agregando variables como se
requiera. Con las restricciones de tipo <=, es supremamente fácil. Simplemente se agrega una en cada
restricción con coeficiente 1 en la misma restricción y con coeficiente cero en la función objetivo. Por
ejemplo:
Se puede leer así: el uso de la primera restricción no puede superar la disponibilidad de 10 unidades,
lo que equivale a decir que lo usado mas lo que sobre (s1) es igual a 10. Para las restricciones de tipo
mayor o igual, la lógica es la misma, de esta manera decir:
Se puede leer como: el uso de la restricción 2 debe ser como mínimo 6 unidades. Eso significa que el
uso podría ser 6.1 o tal vez 7 u 8... etc. Podríamos escribirlo también como 6+0.1 o 6+1 o 6+2 ... o en
términos generales:
X1 - 2X2 + 3X3 - S2 = 6
Sin embargo para el método simplex, cuando aparece esta restricción tipo >= es necesario adicionar
una variable comodín, llamada Variable Artificial, sin ningún significado físico, sólo como artificio
matemático. Lo sumamos al lado izquierdo de la restricción como se muestra a continuación:
X1 - 2X2 + 3X3 - S2 + A1 = 6
Al usar una variable artificial debemos penalizar la función objetivo allí la vamos a incluir con un
coeficiente muy grande, llamado M, al estar minimizando la sumamos + .MA1.
La tercera restricción es de tipo <=, por lo que no tenemos ningún problema con ella:
La cuarta restricción es de tipo =. Para este tipo de restricción simplemente adicionamos una variable
artificial al lado izquierdo:
X1 + X2 +2X3 = 7 queda:
X1 + X2 +2X3 + A2 = 7
Recordemos: las variables de holgura quedan con coeficiente 0 en la función objetivo y las variables
artificiales con coeficiente M. Positiva si es minimizando o negativa si es maximizando.
Si lo escribimos como una matriz, indicando los nombres de las variables en negro queda asi:
Fig 1
X1 X2 X3 S1 S2 A1 S3 A2
Min Z 2 1 3 0 0 M 0 M RHS
R1 3 1 2 1 0 0 0 0 10
R2 1 -2 3 0 -1 1 0 0 6
R3 2 3 -1 0 0 0 1 0 9
R4 1 1 2 0 0 0 0 1 7
Dónde X1, X2, X3 son las variables de decisión, S1, S2 y S3 son las variables de Holgura. R1, R2, R3, R4
son las restricciones y RHS son las disponibilidades o Requerimientos de las restricciones, (RHS= Right
Hand Side: "el lado derecho" es decir los valores numéricos).
Por esta razón para la primera restricción dónde hay variables de decisión (Xi) y la de holgura S1,
tomamos la S1 para la base, en la segunda restricción hay de holgura, de decisión y artificial, tomamos
la artificial A1, en la tercera hay de decisión y de holgura, tomamos la de holgura S3 y por último en la
cuarta restricción hay de decisión y artificial, por lo que tomamos la A2 para la base. Todas las demás
se asumen en la primera iteración con valor cero.
Llenar la tabla inicial. Tal como se ve en la tabla de abajo. Hay muchos formatos de tablas, pero en
esencia son el mismo. Esta el listado de variables que se tienen en la base (en la segunda columna
rotulada como base), en la primera columna están los coeficientes de las variables básicas, luego
vienen las restricciones con sus coeficientes, las disponibilidades/requerimientos de las restricciones
en la columna RHS, una columna vacía llamada Theta que ya llenaremos. Las dos ultimas filas son para
determinar que variable va a entrar a la base. Algunas personas omiten la fila Z. Realmente no es
necesaria, sólo para dar un poco más de claridad a la iteración.
La fila Z es el resultado de la suma del producto de la columna 'coef' y de cada columna en la
restricción, así:
0*3+M*1 + 0*2 + M*1 = 2M
0 * 1 + M * (-2) + 0*3 + M*1 = -M
0 * 2 + M * 3 + 0 *-1 + M*2 = 5M ...de igual manera para las otras 5 columnas.
La fila Cj-Zj es el resultado de restar el coeficiente de la función objetivo (la segunda fila de negro) con
el valor de Z que acabamos de calcular.
2-2M = 2-M (¡evidente!)
1-(-M) = 1+M... etc.
En este momento nos hacemos la siguiente pregunta: ¿cuál variable al entrar a la base hace que la
función objetivo disminuya más (porque estamos minimizando)? O en otras palabras, cuál es el valor
más negativo de Cj-Zj? Recordemos que M representa un número finito, muy, muy
grande. Rápidamente nos damos cuenta que corresponde a 3-5M, puesto que de todas es la que tiene
el valor negativo de M con mayor valor absoluto. Si no lo ve tan rápido, haga lo siguiente: reemplace M
por un valor grande positivo en la fila Cj -Zj, digamos por 1000.000, notará de inmediato que el valor
más negativo está en la columna respectiva a la variable X3. ¿Por lo tanto, ésta variable debe entrar a
reemplazar a otra variable en la base... a cuál??
Fig 2
X1 X2 X3 S1 S2 A1 S3 A2
Coef Base 2 1 3 0 0 M 0 M RHS Theta
0 S1 3 1 2 1 0 0 0 0 10 5.00
M A1 1 -2 3 0 -1 1 0 0 6 2.00 Sale
0 S3 2 3 -1 0 0 0 1 0 9 M
M A2 1 1 2 0 0 0 0 1 7 3.50
Z 2M -M 5M 0 -M M 0 M 13M
Cj- Zj 2-2M 1+M 3-5M 0 M 0 0 0
Entra
Para establecer que variable debe salir de la base, hacemos un cociente entre la disponibilidad (RHS) y
la columna de la variable que entra, en nuestro caso, acabamos de decir que es la variable X3. Este
cociente lo vamos a llamar Theta. Algunos libros lo llaman 'ratio'.
10 /2 = 5
6/3 =2
9 / -1 = ... bueno, en caso que dividamos por un valor negativo, no lo vamos a tener en cuenta para
salir, por lo que lo rotulamos como M.
7/2 = 3.5
La variable que más nos restringe, por lo tanto la que el valor de theta es menor (pero positivo) es de 2,
correspondiendo a la variable A1. Por lo tanto sale A1 y entra X3.
A la intersección entre la columna de la variable que entra y de la fila de la variable que sale, la
llamamos pivote. Sobre ella se empleará el método de Gauss-Jordan. Aquí siempre he señalado el
pivote de color verde. En la fig 2 corresponde al valor 3.
4. Iteración: Gauss-Jordan
Luego que se ha encontrado que variable sale de la base, y cual entra y que pr lo tanto ya tenemos una
celda pivote, es necesario realizar la eliminación gaussiana. Ello lo podemos resumir como:
Llenamos un formato vacio simplex, la fila que contiene el pivote la vamos a pasar al nuevo formato
convertida mediante la siguiente operación: dividimos toda la fila por el valor del pivote. (Para
convertir el pivote en 1).
1/3 = 0.33
-2/3 = -0.67
3/3 = 1(Pivote)
0/3= 0
-1/3= -0.33
1/3=0.33
0/3=0
0/3=0
6/3= 2 (En la columna del RHS)
Para la primera fila que contiene el 2 que deseamos eliminar multiplicamos la fila pivote por -2 y se la
sumamos asi:
Este valor es el que copiamos en el nuevo formato en la fig 3 en la fila correspondiente, la primera.
Repetimos este procedimiento para la fila 3 y la fila 4. Con ello ya llenamos todo el formato.
5. Prueba de Optimidad:
La prueba de optimidad se debe hacer cada vez que se evalúa si hay una variable que debe entrar a la
base. Y es sencillamente lo siguiente. Se hace la pregunta: ¿Hay alguna variable que al entrar mejora la
solución? Ello lo vemos en la fila Cj-Zj. Si al calcular esta fila aún hay valores negativos y estamos
minimizando, entonces es posible mejorar aún más la solución. Lo mismo para el caso de la
maximización. Si hay valores positivos en la fila Cj-Zj y estamos maximizando, aún no hemos llegado al
óptimo.
En la fig 2 nos damos cuenta que habían todavia valores negativos en Cj-Zj, por lo tanto no se había
terminado, ahora en la fig 3, aún quedan valores negativos, el más negativo de ellos esta en la variable
X2 por lo tanto debe entrar.
Continuando el algoritmo en la fig3 evaluamos que la variable A2 debe salir, la reemplazamos en el
tablero de la figura 4. Hacemos gauss-jordan, luego calculamos Z y calculamos Cj-Zj.
Fig 3.
X1 X2 X3 S1 S2 A1 S3 A2
Coef Base 2 1 3 0 0 M 0 M RHS Theta
0 S1 2.33 2.33 0.00 1.00 0.67 -0.67 0 0 6 2.57
3 X3 0.33 -0.67 1.00 0.00 -0.33 0.33 0 0 2 M
0 S3 2.33 2.33 0.00 0.00 -0.33 0.33 1 0 11 4.71
M A2 0.33 2.33 0.00 0.00 0.67 -0.67 0 1 3 1.29 Sale
Z 1+0.33M -2+2.33M 3 0 -1+0.66M 1-0.66M 0 M 6+3M
Cj- Zj 1-0.33M 3-2.33M 0 0 1-0.66M -1+1.66M 0 0
Entra
Aquí en el tablero de la figura 4, evaluamos si hay algun valor negativo en la fila Cj-Zj, nos damos
cuenta que no, por lo que no hay ninguna variable que al entrar mejore la solución.
Hemos llegado al óptimo: La solución es Z=9.8571 X1=0 (Por que no estaba en la base.) X2= 1.29,
X3=2.86
Fig 4
X1 X2 X3 S1 S2 A1 S3 A2
Coef Base 2 1 3 0 0 M 0 M RHS Theta
0 S1 2.00 0.00 0.00 1.00 0.00 0.00 0.00 -1.00 3.00
3 X3 0.43 0.00 1.00 0.00 -0.14 0.14 0.00 0.29 2.86
0 S3 2.00 0.00 0.00 0.00 -1.00 1.00 1.00 -1.00 8.00
1 X2 0.14 1.00 0.00 0.00 0.29 -0.29 0.00 0.43 1.29
Z 1.43 1.00 3.00 0.00 -0.14 0.14 0.00 1.29 9.8571
Cj- Zj 0.57 0.00 0.00 0.00 0.14 M+0.62 0.00 M+2.43
RELACIONES ENTRE PROBLEMAS PRIMALES Y DUALES:
Tabla de TUCKER
IMPORTANCIA DE LA DUALIDAD EN PROGRAMACIÓN LINEAL
La resolución de los problemas duales respecto a los primales se justifica dada la facilidad que se
presenta dados problemas donde el número de restricciones supere al número de variables. Además
de tener gran aplicación en el análisis económico del problema.
Otra de las ventajas que presenta es que dado a que el número de restricciones y variables entre
problema dual y primal es inverso, se pueden resolver gráficamente problemas que presenten dos
restricciones sin importar el número de variables.
6 x1+4 x2 ≤ 24 6 x1+4 x2 + h = 24
Variable de excedente.
Se resta al lado izquierdo de la restricción del tipo ≥.
2 x1+3x2 ≥ 24 6 x1+4 x2- h = 24
VARIABLE ARTIFICIAL
Hasta este momento se han presentado los detalles del método simplex con la suposición de que el
problema encuentra en nuestra forma estándar (maximizar Z sujeta a las restricciones funcionales
de la forma 0para
≥
y restricciones de no negatividad sobre todas las variables) con bi
≤
toda i = 1, 2, ..., m. En esta sección se establecerá cómo hacer los ajustes requeridos a otras formas
legítimas de modelos de Programación Lineal. Se verá que todos estos ajustes se pueden hacer en el
paso inicial, de manera que el resto del método simplex se aplica justo como se aprendió. Él único
problema) es
≥
serio que introducen las otras formas de restricciones funcionales (= ó identificar una solución inicial
básica factible. Antes, esta solución inicial se encontraba en forma muy conveniente al hacer que las
variables de holgura fueran las variables básicas iniciales, donde cada una era igual a la constante no
negativa del lado derecho de la ecuación correspondiente. Ahora debe hacerse algo más. El enfoque
estándar que se utiliza es estos casos es la técnica de variables artificiales. Ésta construye un problema
artificial más conveniente introduciendo una variable ficticia (llamada variable artificial) en cada
restricción que lo requiera. Esta nueva variable se introduce sólo con el fin de que sea la variable básica
inicial para esa ecuación. Las restricciones usuales de no negatividad también se aplican sobre estas
variables y la función objetivo se modifica para que imponga una
ELEMENTO PIVOTE