Aplicación Del Metodo Simplex

22
UNIVERSIDAD TÉCNICA DE MACHALA FACULTAD DE INGENIERÍA CIVIL CARRERA DE INGENIERÍA EN SISTEMAS PROYECTO DE INVERTIGACION DE OPERACIONES APLICACIÓN DEL METODO SIMPLEX CURSO SEXTO SEMESTRE “B” (PROMOCION# 12) RESPONSABLES PRISCILA CARRION MARJORIE NOBLECILLA JORGE GONZALEZ DOCENTE ING. MILTON VALAREZO

description

resolucion

Transcript of Aplicación Del Metodo Simplex

UNIVERSIDAD TCNICA DE MACHALAFACULTAD DE INGENIERA CIVILCARRERA DE INGENIERA EN SISTEMAS

PROYECTO DE INVERTIGACION DE OPERACIONESAPLICACIN DEL METODO SIMPLEX

CURSOSEXTO SEMESTRE B (PROMOCION# 12)

RESPONSABLESPRISCILA CARRIONMARJORIE NOBLECILLAJORGE GONZALEZ

DOCENTEING. MILTON VALAREZO

2014 - 2015

MACHALA EL ORO ECUADOR

HISTORIA DEL MTODO SIMPLEXEl 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 revisadasMTODO SIMPLEXEl 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 SimplexLa 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= b1a21x1+ a22x2+ ... + a2nxn= b2...am1x1+ am2x2+ ... + amnxn= bmx1,..., 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 elproblema modeladoa 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 maximizacinCondicin 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 Pjque 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 P0/Pjde los estrictamente positivos. Objetivo de minimizacinCondicin 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 Pjque 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 P0/Pjde 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 elmtodo de las Dos Fases). En el caso planteado, la solucin real debe ser cero.Cambio de signo de los trminos independientesTambin se ha dicho que los trminos independientes (bi) 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 elmtodo de las Dos Fases.Normalizacin de las restriccionesOtra 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 (x1,..., 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 holguraxs(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 b1a11x1+ a12x2+ 1xs= b1 Restriccin de tipo ""En caso de una desigualdad del tipo "", tambin hay que aadir una nueva variable llamada variable de excesoxs(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 b1a11x1+ a12x2- 1xs= b1Al 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 x1y x2, tomar el valor -b1y no cumplira la condicin de no negatividad. Es necesario aadir otra nueva variable xr, 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 b1a11x1+ 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= b1a11x1+ a12x2+ 1xr= b1En 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 elmtodo de las Dos Fasesy 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 desigualdadTipo de variable que aparece

- exceso + artificial

=+ artificial

+ holgura

Desarrollando el mtodo SimplexUna vez estandarizado el modelo puede ocurrir que sea necesario aplicar el mtodo Simplex o elmtodo 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 Cb); la tercera muestra el trmino independiente de cada restriccin (P0); a partir de sta aparece una columna por cada una de las variables de decisin y holgura presentes en la funcin objetivo (Pj). 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

C1C2...Cn

BaseCbP0P1P2...Pn

P1Cb1b1a11a12...a1n

P2Cb2b2a21a22...a2n

.....................

PmCbmbmam1am2...amn

ZZ0Z1-C1Z2-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= biy 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 P0/Pjsea el menor de los estrictamente positivos (teniendo en cuenta que esta operacin se har nicamente cuando Pjsea 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:. En la fila del elemento pivote cada nuevo elemento se calcula como:Nuevo Elemento Fila Pivote = Anterior Elemento Fila Pivote / Pivote.. 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 FasesEl 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 1Esta 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

C0C1C2...Cn-k...Cn

BaseCbP0P1P2...Pn-k...Pn

P1Cb1b1a11a12...a1n-k...a1n

P2Cb2b2a21a22...a2n-k...a2n

...........................

PmCbmbmam1am2...amn-k...amn

ZZ0Z1Z2...Zn-k...Zn

Siendo Zj= (CbiPj) - Cjpara i = 1..m, donde si j = 0, P0= biy 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 2La segunda fase del mtodo de las Dos Fases se desarrolla exactamente igual que elmtodo 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 solucionesSolucin 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 Z0actual 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 AX1+ 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

PASOS1. Ingrese los datos para desarrollar el problema

2. Damos clic en el botn calcular3. El programa identificara automticamente los siguientes parmetros

4. Luego presentara la Tabla inicial de cada iteracin

5. Presentacin de resultados

CODIFICACION