You are on page 1of 16

UNIVERSIDAD TCNICA DE MACHALA

FACULTAD DE INGENIERA CIVIL


CARRERA DE INGENIERA EN SISTEMAS

PROYECTO DE INVERTIGACION DE OPERACIONES

APLICACIN DEL METODO SIMPLEX


CURSO
SEXTO SEMESTRE B (PROMOCION# 12)

RESPONSABLES

PRISCILA CARRION
MARJORIE NOBLECILLA
JORGE GONZALEZ

DOCENTE

ING. MILTON VALAREZO

2014 - 2015

MACHALA EL ORO ECUADOR

HISTORIA DEL MTODO SIMPLEX


El problema de la resolucin de un sistema lineal de
inecuaciones se remonta, al menos, a Fourier, despus de
quien nace el mtodo de eliminacin de Fourier-Motzkin. La
programacin lineal se plantea como un modelo
matemtico desarrollado durante la Segunda Guerra
Mundial para planificar los gastos y los retornos, a fin de
reducir los costos al ejrcito y aumentar las prdidas del
enemigo. Se mantuvo en secreto hasta 1947. En la
posguerra, muchas industrias lo usaron en su planificacin
diaria. Los fundadores de la tcnica son George Dantzig,
quien public el algoritmo simplex, en 1947, John von
Neumann, que desarroll la teora de la dualidad en el
mismo ao, y Leonid Kantorvich, un matemtico ruso, que utiliza tcnicas
similares en la economa antes de Dantzig y gan el premio Nobel en economa
en1975. En 1979, otro matemtico ruso, Leonid Khachiyan, demostr que el
problema de la programacin lineal era resoluble en tiempo polinomial. Ms tarde,
en 1984, Narendra Karmarkar introduce un nuevo mtodo del punto interior para
resolver problemas de programacin lineal, lo que constituira un enorme avance
en los principios tericos y prcticos en el rea. El ejemplo original de Dantzig de la
bsqueda de la mejor asignacin de 70personas a 70 puestos de trabajo es un
ejemplo de la utilidad de la programacin lineal. La potencia de computacin
necesaria para examinar todas las permutaciones a fin de seleccionar la mejor
asignacin es inmensa; el nmero de posibles configuraciones excede al nmero
de partculas en el universo. Sin embargo, toma slo un momento encontrar la
solucin ptima mediante el planteamiento del problema como una programacin
lineal y la aplicacin del algoritmo simplex. La teora de la programacin lineal
reduce drsticamente el nmero de posibles soluciones ptimas que debern ser
revisadas

MTODO SIMPLEX
El mtodo Simplex es un procedimiento iterativo que permite mejorar la solucin
de la funcin objetivo en cada paso. El proceso concluye cuando no es posible
continuar mejorando dicho valor, es decir, se ha alcanzado la solucin ptima (el
mayor o menor valor posible, segn el caso, para el que se satisfacen todas las
restricciones).
Partiendo del valor de la funcin objetivo en un punto cualquiera, el procedimiento
consiste en buscar otro punto que mejore el valor anterior. Como se ver en el
mtodo Grfico, dichos puntos son los vrtices del polgono (o poliedro o polcoro,
si el nmero de variables es mayor de 2) que constituye la regin determinada por
las restricciones a las que se encuentra sujeto el problema (llamada regin
factible). La bsqueda se realiza mediante desplazamientos por las aristas del
polgono, desde el vrtice actual hasta uno adyacente que mejore el valor de la

funcin objetivo. Siempre que exista regin factible, como su nmero de vrtices y
de aristas es finito, ser posible encontrar la solucin.
El mtodo Simplex se basa en la siguiente propiedad: si la funcin objetivo Z no
toma su valor mximo en el vrtice A, entonces existe una arista que parte de A y a
lo largo de la cual el valor de Z aumenta.
Ser necesario tener en cuenta que el mtodo Simplex nicamente trabaja con
restricciones del problema cuyas inecuaciones sean del tipo "" (menor o igual) y
sus coeficientes independientes sean mayores o iguales a 0. Por tanto habr que
estandarizar las restricciones para que cumplan estos requisitos antes de iniciar el
algoritmo del Simplex. En caso de que despus de ste proceso aparezcan
restricciones del tipo "" (mayor o igual) o "=" (igualdad), o no se puedan cambiar,
ser necesario emplear otros mtodos de resolucin, siendo el ms comn el
mtodo de las Dos Fases.

Preparando el modelo para adaptarlo al


mtodo Simplex
La forma estndar del modelo de problema consta de una funcin objetivo
sujeta a determinadas restricciones:
Funcin objetivo:

c1x1 + c2x2 + ... + cnxn

Sujeto a:

a11x1 + a12x2 + ... + a1nxn = b1


a21x1 + a22x2 + ... + a2nxn = b2
...
am1x1 + am2x2 + ... + amnxn = bm
x1,..., xn 0

El modelo debe cumplir las siguientes condiciones:


1. El objetivo consistir en maximizar o minimizar el valor de la funcin
objetivo (por ejemplo, incrementar ganancias o reducir prdidas,
respectivamente).
2. Todas las restricciones deben ser ecuaciones de igualdad (identidades
matemticas).
3. Todas las variables (xi) deben tener valor positivo o nulo (condicin de no
negatividad).
4. Los trminos independientes (bi) de cada ecuacin deben ser no negativos.

Hay que adaptar el problema modelado a la forma estndar para poder aplicar
el algoritmo del Simplex.

Tipo de optimizacin.
Como se ha comentado, el objetivo del mtodo consistir en optimizar el valor
de la funcin objetivo. Sin embargo se presentan dos opciones: obtener el valor
ptimo mayor (maximizar) u obtener el valor ptimo menor (minimizar).
Adems existen diferencias en el algoritmo entre el objetivo de maximizacin y
el de minimizacin en cuanto al criterio de condicin de parada para finalizar las
iteraciones y a las condiciones de entrada y salida de la base. As:

Objetivo de maximizacin
Condicin de parada: cuando en la fila Z no aparece ningn valor negativo.
Condicin de entrada a la base: el menor valor negativo en la fila Z (o
el de mayor valor absoluto entre los negativos) indica la variable P j que
entra a la base.
Condicin de salida de la base: una vez obtenida la variable entrante,
la variable que sale se determina mediante el menor cociente P 0/Pj de los
estrictamente positivos.

Objetivo de minimizacin
Condicin de parada: cuando en la fila Z no aparece ningn valor positivo.
Condicin de entrada a la base: el mayor valor positivo en la fila Z
indica la variable Pj que entra a la base.
Condicin de salida de la base: una vez obtenida la variable entrante,
la variable que sale se determina mediante el menor cociente P 0/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 condicin 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 solucin, se puede cambiar el problema a
otro equivalente de maximizacin simplemente multiplicando la funcin objetivo por
"1". Es decir, el problema de minimizar Z es equivalente al problema de maximizar
(-1)Z. Una vez obtenida la solucin ser necesario multiplicarla tambin por (-1).
Ventajas: No hay que preocuparse por nuevos criterios de parada, condicin
de entrada y salida de la base ya que se mantienen.

Inconvenientes: En el caso de que la funcin tenga todos los coeficientes de


sus variables bsicas positivos, y adems las restricciones sean del tipo de
desigualdad "", al hacer el cambio dichos coeficientes quedan negativos
cumplindose la condicin de parada en la primera iteracin (en la fila del valor de
la funcin objetivo todos los valores son positivos o cero). Obtenindose en este
caso por defecto un valor ptimo para la funcin igual a 0.
Solucin: Realmente no existe este problema dado que para que la solucin
sea superior a 0 es necesario que alguna restriccin tenga impuesta la condicin
"" (y se tratara de un modelo para el mtodo de las Dos Fases). En el caso
planteado, la solucin real debe ser cero.

Cambio de signo de los trminos independientes


Tambin se ha dicho que los trminos independientes (b i) de cada ecuacin
deben ser no negativos para poder emplear el mtodo Simplex. A tal fin, si alguna
de las restricciones presenta un trmino independiente menor que 0 habr que
multiplicar por "-1" ambos lados de la inecuacin (teniendo en cuenta que esta
operacin tambin afecta al tipo de restriccin).
Ventajas: Con sta simple modificacin de signos en las restricciones
correspondientes se posibilita la aplicacin del mtodo Simplex al problema
modelado.
Inconvenientes: Puede resultar que en las restricciones donde tengamos que
modificar los signos de las constantes, los tipos de desigualdad fueran ""
(quedando tras la operacin del tipo "") siendo necesario desarrollar el mtodo de
las Dos Fases. Este inconveniente no es controlable, aunque podra ocurrir el caso
contrario y resultar beneficioso si los trminos independientes negativos se
presentan en todas aquellas restricciones con desigualdad de tipo "". Si existe
alguna restriccin del tipo "=" no supondra ninguna ventaja ni desventaja puesto
que siempre sera de necesaria aplicacin el mtodo de las Dos Fases.

Normalizacin de las restricciones


Otra de las condiciones del modelo estndar del problema es que todas las
restricciones sean ecuaciones de igualdad (tambin llamadas restricciones de
igualdad), por lo que hay que convertir las restricciones de desigualdad o
inecuaciones en dichas identidades matemticas.
La condicin de no negatividad de las variables (x 1,..., xn 0) es la nica
excepcin y se mantiene tal cual.

Restriccin de tipo ""

Para normalizar una restriccin con una desigualdad del tipo "", hay que
aadir una nueva variable, llamada variable de holgura xs (con la condicin
de no negatividad: xs 0). Esta nueva variable aparece con coeficiente cero
en la funcin objetivo, y sumando en la ecuacin correspondiente (que
ahora s ser una identidad matemtica o ecuacin de igualdad).
a11x1 + a12x2 b1

a11x1 + a12x2 + 1xs = b1

Restriccin de tipo ""


En caso de una desigualdad del tipo "", tambin hay que aadir una nueva
variable llamada variable de exceso xs (con la condicin de no negatividad:
xs 0). Esta nueva variable aparece con coeficiente cero en la funcin
objetivo, y restando en la ecuacin correspondiente.
Surge ahora un problema con la condicin de no negatividad con esta
nueva variable del problema. Las inecuaciones que contengan una
desigualdad de tipo "" quedaran:
a11x1 + a12x2 b1

a11x1 + a12x2 - 1xs = b1

Al realizar la primera iteracin con el mtodo Simplex, las variables


bsicas no estarn en la base y tomarn valor cero. En este caso la nueva
variable xs, tras hacer cero a x1 y x2, tomar el valor -b1 y no cumplira la
condicin de no negatividad. Es necesario aadir otra nueva variable x r,
llamada variable artificial, que tambin aparecer con coeficiente cero en la
funcin objetivo y sumando en la restriccin correspondiente. Quedando
entonces de la siguiente manera:
a11x1 + a12x2 b1

a11x1 + a12x2 - 1xs + 1xr = b1

Restriccin de tipo "="


Al contrario de lo que cabra pensar, para las restricciones de tipo "="
(aunque ya son identidades) tambin es necesario agregar variables
artificiales xr. Como en el caso anterior, su coeficiente ser cero en la
funcin objetivo y aparecer sumando en la restriccin correspondiente.
a11x1 + a12x2 = b1

a11x1 + a12x2 + 1xr = b1

En el ltimo caso se hace patente que las variables artificiales suponen una
violacin de las leyes del lgebra, por lo que ser necesario asegurar que dichas
variables artificiales tengan un valor 0 en la solucin final. De esto se encarga
el mtodo de las Dos Fases y por ello siempre que aparezcan este tipo de
variables habr que realizarlo.

En la siguiente tabla se resume segn la desigualdad el tipo de variable que


aparece en la ecuacin normalizada, as como su signo:
Tipo de desigualdad

Tipo de variable que aparece

- exceso + artificial

+ artificial

+ holgura

Desarrollando el mtodo Simplex


Una vez estandarizado el modelo puede ocurrir que sea necesario aplicar el
mtodo Simplex o el mtodo de las Dos Fases. Vase en la figura la forma de
actuacin para llegar a la solucin del problema modelado.

A continuacin se explican paso a paso los puntos de cada mtodo,


concretando los aspectos a tener en cuenta.

Mtodo Simplex

Construccin de la primera tabla:


Las columnas de la tabla estn dispuestas de la siguiente forma: la primera
columna de la tabla contiene las variables que se encuentran en la base (o
variables bsicas), esto es, aquellas que toman valor para proporcionar una
solucin; la segunda columna recoge los coeficientes que dichas variables
bsicas tienen en la funcin objetivo (esta columna es llamada C b); la
tercera muestra el trmino independiente de cada restriccin (P 0); a partir
de sta aparece una columna por cada una de las variables de decisin y
holgura presentes en la funcin objetivo (P j). Para tener una visin ms
clara de la tabla, se incluye una fila que contiene los ttulos 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 funcin
objetivo, y una ltima fila que recoge el valor la funcin objetivo y los costes
reducidos Zj - Cj.
Los costes reducidos muestran la posibilidad de mejora en la solucin
Z0. Por este motivo tambin son llamados valores indicadores.
Se muestra a continuacin el aspecto general de la tabla del mtodo
Simplex:
Tabla
C1

C2

...

Cn

Base

Cb

P0

P1

P2

...

Pn

P1

Cb1

b1

a11

a12

...

a1n

P2

Cb2

b2

a21

a22

...

a2n

...

...

...

...

...

...

...

Pm

Cbm

bm

am1

am2

...

amn

Z0

Z1-C1

Z2-C2

...

Zn-Cn

Todos los valores incluidos en la tabla vendrn dados por el modelo del
problema salvo los valores de la fila Z (o fila indicadora). Estos se obtienen
de la siguiente forma: Zj = (CbiPj) para i = 1..m, donde si j = 0, P0 = bi y
C0 = 0, y en caso contrario Pj = aij.
Se observa, al realizar el mtodo Simplex, que en esta primera tabla
ocupan la base todas las variables de holgura y por ello (todos los
coeficientes de las variables de holgura son 0 en la funcin objetivo) el valor
inicial de Z es cero.
Por este mismo motivo tampoco es necesario realizar los clculos de
los costes reducidos en la primera tabla, pudindose determinar
directamente como el cambio de signo de los coeficientes de cada variable
en la funcin objetivo, esto es, -Cj.

Condicin de parada:
Se cumple la condicin de parada cuando la fila indicadora no contiene
ningn valor negativo entre los costes reducidos (cuando el objetivo es la
maximizacin), esto es, no existe posibilidad de mejora.
Si no se cumple la condicin de parada es necesario realizar una
iteracin ms del algoritmo, esto es, determinar la variable que se vuelve
bsica y la que deja de serlo, encontrar el elemento pivote, actualizar los
valores de la tabla y comprobar si se cumple nuevamente la condicin de
parada.
Es tambin posible determinar que el problema no se encuentra
acotado y su solucin siempre resultar mejorable. En tal caso no es
necesario continuar iterando indefinidamente y se puede finalizar el
algoritmo. Esta situacin ocurre cuando en la columna de la variable
entrante a la base todos los valores son negativos o nulos.

Eleccin de la variable que entra a la base:


Cuando una variable se vuelve bsica, es decir, entra en la base, comienza
a formar parte de la solucin. 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.

Eleccin de la variable que sale de la base:


Una vez obtenida la variable entrante, se determina que sale de la base la
variable que se encuentre en aquella fila cuyo cociente P 0/Pj sea el menor
de los estrictamente positivos (teniendo en cuenta que esta operacin se
har nicamente cuando Pj sea superior a 0).

Elemento pivote:
El elemento pivote de la tabla queda marcado por la interseccin entre la
columna de la variable entrante y la fila de la variable saliente.

Actualizacin de la tabla:
Las filas correspondientes a la funcin objetivo y a los ttulos permanecern
inalteradas en la nueva tabla. El resto de valores debern calcularse como
se explica a continuacin:
o En la fila del elemento pivote cada nuevo elemento se calcula como:
Nuevo Elemento Fila Pivote = Anterior Elemento Fila Pivote / Pivote.
o En el resto de las filas cada elemento se calcula:
Nuevo Elemento Fila = Anterior Elemento Fila - (Anterior Elemento
Fila en Columna Pivote * Nuevo Elemento Fila Pivote).
De esta forma se consigue que todos los elementos de la columna de
la variable entrante sean nulos salvo el de la fila de la variable saliente cuyo
valor ser 1. (Es anlogo a utilizar el mtodo de Gauss-Jordan para resolver
sistemas de ecuaciones lineales).

Mtodo de las Dos Fases


El mtodo de las Dos Fases se utiliza cuando aparecen variables artificiales
en la forma cannica o estndar del problema. La primera fase trata de resolver el
problema auxiliar Z' de minimizar la suma de las variables artificiales y conseguir
que sea cero (con objeto de evitar incongruencias matemticas). Una vez resuelto
este primer problema, y siempre y cuando el resultado sea el esperado, se
reorganiza la tabla resultante para utilizarla en la segunda fase sobre el problema
original.
En caso contrario el problema no es factible, es decir, no tiene solucin y no
ser necesario continuar con la segunda fase.

FASE 1
Esta primera fase es muy similar al mtodo Simplex, con la excepcin de la
construccin de la primera tabla, adems de la necesidad de estudiar el resultado
obtenido para determinar si se desarrolla la segunda fase.
En tal caso, la ltima tabla de esta fase ser, con algunas modificaciones, la
utilizada como tabla inicial para la segunda fase.

Construccin de la primera tabla:


Se elabora de manera anloga a la tabla inicial del mtodo Simplex, pero
con algunas diferencias.
Como se ha comentado, en esta primera fase se resuelve un problema
auxiliar (la minimizacin de la suma de las variables artificiales) con una
funcin objetivo auxiliar. Por lo tanto en la primera fila de la tabla, donde se
muestran los coeficientes de las variables de la funcin objetivo, aparecern
todos los trminos a cero excepto los coeficientes de variables artificiales.
El valor de cada uno de estos coeficientes es "-1" debido a que se est
minimizando la suma de dichas variables (recuerde que minimizar Z' es
igual que maximizar (-1)Z').
La otra diferencia para la primera tabla radica en que ahora s es
necesario calcular la fila Z (o fila indicadora).
Tabla
C0

C1

C2

...

Cn-k

...

Cn

Base

Cb

P0

P1

P2

...

Pn-k

...

Pn

P1

Cb1

b1

a11

a12

...

a1n-k

...

a1n

P2

Cb2

b2

a21

a22

...

a2n-k

...

a2n

...

...

...

...

...

...

...

...

...

Pm

Cbm

bm

am1

am2

...

amn-k

...

amn

Z0

Z1

Z2

...

Zn-k

...

Zn

Siendo Zj = (CbiPj) - Cj para i = 1..m, donde si j = 0, P 0 = bi y C0 = 0, y


en caso contrario Pj = aij.

Condicin de parada y paso a la fase 2:


La condicin de parada es la misma que en el mtodo Simplex normal. Esto
es, cuando en la fila indicadora ninguno de los valores de los costes
reducidos es negativo (ya que tal y como se ha planteado el objetivo es la
maximizacin de (-1)Z').
Cumplida la condicin de parada es necesario determinar si es posible
pasar a la segunda fase para obtener la solucin ptima del problema

original. Esto se hace observando el resultado obtenido en la primera fase:


si su valor es 0, significa que el problema original tiene solucin y es posible
calcularla, en caso contrario indica que se trata de un problema no factible y
no tiene solucin.

FASE 2
La segunda fase del mtodo de las Dos Fases se desarrolla exactamente igual
que el mtodo Simplex, con la salvedad de que antes de iniciar las iteraciones hay
que eliminar las columnas correspondientes a las variables artificiales, y reconstruir
la tabla inicial.

Eliminar Columna de variables artificiales:


Si hemos llegado a la conclusin de que el problema original tiene solucin,
debemos preparar nuestra tabla para la segunda fase. Este paso es muy
sencillo, se trata nicamente de eliminar las columnas correspondientes a
las variables artificiales.

Construccin de la tabla inicial:


La tabla inicial en este caso se mantiene casi igual a la ltima tabla de la
primera fase. nicamente habr que modificar la fila de la funcin objetivo
por la del problema original y calcular nuevamente la fila Z (de la misma
forma que en la primera tabla de la fase 1).

A partir de este punto, todas las iteraciones hasta llegar a la solucin ptima
del problema no presentan ninguna diferencia con el mtodo Simplex.

Identificando casos anmalos y soluciones


Solucin ptima: cuando se cumple la condicin de parada y no hay
variables artificiales en la base con valor positivo (los valores se indican en la
columna P0), se ha conseguido la optimizacin. El valor Z 0 actual es la solucin
ptima del problema, cumplindose para las variables que se encuentran en la
base. Si se trata de un problema de minimizacin, el valor ptimo obtenido se
multiplicar por "-1".
Infinitas soluciones: cumplida la condicin de parada, si alguna variable de
decisin no bsica tiene un valor 0 en la fila Z, significa que existe otra solucin
que aporta el mismo valor ptimo para la funcin objetivo. Es este caso el
problema admite infinitas soluciones, estando todas ellas comprendidas dentro del
segmento (o porcin del plano, regin del espacio, etc. dependiendo del nmero
de variables del problema) definido por AX 1 + BX2 = Z0. Mediante una nueva
iteracin y haciendo que la variable de decisin que tiene el 0 en la fila Z entre en
la base se obtendr otra solucin diferente para el mismo valor ptimo.

Solucin ilimitada (no acotada): si toda la columna de la variable que entra a


la base tiene todos sus elementos negativos o nulos se trata de problema no
acotado, es decir, que tiene solucin ilimitada. No hay valor ptimo concreto para
la funcin objetivo sino que a medida que se aumenta el valor de las variables
tambin se incrementa el valor Z sin violar ninguna restriccin.
No existe solucin: cuando ningn punto satisface todas las restricciones del
problema se produce la infactibilidad no existiendo ninguna solucin posible para
l. En este caso, una vez terminadas todas las iteraciones del algoritmo, existen en
la base variables artificiales cuyo valor es superior a cero.
Empate de variable entrante: cuando se produce un empate en la condicin
de decisin de la variable entrante se puede optar por cualquiera de ellas sin que
esto afecte a la solucin final. Por contra si influye en el nmero de iteraciones
necesarias para obtener dicha solucin. Se aconseja optar a favor de las variables
bsicas ya que ellas son las que formarn parte de la solucin ptima.
Empate de variable saliente: se puede nuevamente optar por cualquiera de
ellas. Sin embargo, a fin de no alargar el problema y evitar la entrada en un bucle
infinito (caso degenerado), se discrimina a favor de las variables de decisin
haciendo que permanezcan en la base. En el caso de estar en la primera fase del
mtodo de las Dos Fases, se optar por sacar de la base las variables artificiales.
Curiosidad en la Fase 1: al finalizar la fase 1, si el problema original tiene
solucin, todas las variables artificiales en la fila indicadora deben tener el valor
"1".
El elemento pivote puede ser nulo?: No, el elemento pivote siempre ser
estrictamente positivo ya que nicamente se realizan los cocientes entre valores
no negativos y mayores que cero (ante un problema de maximizacin).

MANUAL DEL USUARIO

Pantalla de inicio

Pantalla del desarrollo

PASOS
1. Ingrese los datos para desarrollar el problema

2. Damos clic en el botn calcular


3. El programa identificara automticamente los siguientes
parmetros

4. Luego presentara la Tabla inicial de cada iteracin

5. Presentacin de resultados

CODIFICACION

You might also like