INVESTIGACIÓN DE OPERACIONES
Sebastián Pozo Sexto semestre
MÉTODO SIMPLEX
Es un procedimiento iterativo (que se repite) que se basa en el método grafico en el que indica que la solución óptima de un programa pu u n to lineal siempre está asociada con un p esquina del espacio de soluciones.
Este resultado es la clave del método símplex algebraico y general para resolver cualquier modelo de programación lineal.
La transición de la solución del punto esquina geométrico hasta el método símplex implica un procedimiento de cómputo que determina en forma algebraica los puntos esquina. Esto se logra convirtien do primero a todas las restricciones de desigualdad en ecuaciones, para después manipular esas ecuaciones en una forma sistemática.
Una propiedad general del método símplex es que re suelve la programación lineal en iteraciones o repeticiones. Cada iteración desplaza la solu ción a un nuevo punto esquina que tiene potencial de mejorar el valor de la fu nción objetivo.
El proceso termina cuando ya no se pueden obtener mejoras .
El método símplex implica cálculos tediosos y voluminosos, lo que hace que la computadora sea una he rramienta esencial para resolver los problemas de programación lineal. Por consiguiente, las reglas computacionales del método símplex se adaptan para facilitar el cálculo automático.
Para estandarizar, la representación algebraica del espacio de soluciones de programación lineal se forma bajo dos condiciones:
En las restricciones (≤), el lado derecho se puede imaginar como representando el límite de disponibilidad de un recurso, y en ese caso el lado izquierdo representaría el uso de ese recurso limitado por parte de las actividades (variables) del modelo. La diferencia entre el lado derec ho y el lado izquierdo de la restricción ( ≤ ) representa, por consiguiente, la cantidad no usada u holgura del recurso.
Para convertir una desigualdad ( ≤ ) en ecuación, se agrega una variable de holgura al lado izquierdo de la restricción. Por ejemplo, en la siguiente 6 x 1 + 4 x 2 ≤ 24
Si se define s 1 como la holgura, o cantidad no usada, de M1, la restricción se puede convertir en la siguiente ecuación 6 x 1 + 4 x 2 + s 1 = 24, s 1 ≥ 0
Una restricción ( ≥ ) establece, normalmente, un límite inferior para las actividades del modelo de programación lineal. Como tal, la cantidad por la que el lado iz quierdo es mayor que el límite mínimo (lado derecho) representa un excedente. La conversión de ( ≥ ) a (=) se logra restando una variable de excedencia, del lado izquierdo de la desigualdad. Por ejemplo, en la restricción que representa los requisitos mínimos está dada como: X 1 + x 2 ≥ 800
Si se define a S 1 como una variable de excedencia se pue de convertir la restricción en la ecuación siguiente: X 1 + x 2 - S 1 = 800, S 1 ≥ 0
Es importante obser var que las variables de holgura y de excedencia, s 1 y S 1 , siempre son no negativas. El único requisito que queda es que el lado derecho de la ecuación que resulte sea no neg ativo. Esta condición se puede satisfacer siempre, si es neces ario multiplicando ambos ladosde la ecuación resultante por – 1.
Por ejemplo, la restricción: - x 1 + x 2 ≤ -3
equivale directamente a la ecuación: - x 1 + x 2 + s 1 = -3, s 1 ≥ 0
Ahora se multiplican ambos lados por – 1, y se obtiene un lado derecho no negativo, que es lo que se busca; esto es: x 1 - x 2 - s 1 = 3
En todos los modelos de programación lineal que se presentaron en el capítulo 2 sólo m anejamos variables no negativas. Sin embargo, hay casos en los que una variable puede asumir cualquier valor real (positivo, cero o neg ativo). En el siguiente ejemplo se presenta una aplicación de esa índole.
Las ideas contenidas en la solución gráfica de un modelo de programación lineal son la base para des arrollar el método algebraico símplex. La figura marca el paralelismo entre los dos métodos. En el método gráfico, el espacio de s oluciones se delimita con los semi espacios que representan las restricciones, y en el mé todo símplex, el espacio de soluciones se representa con m ecuaciones lineales simultáneas y n variables no negativas.
Se puede apreciar en forma visual por qué el espacio gráfico de soluciones tiene una ca ntidad infinita de puntos de solución; pero, ¿cómo se puede deducir algo parecido a partir de la representación algebraica del espa cio de soluciones? La respuesta es que en la representación algebraica, la cantidad m de ecuaciones siempre es menor o igual a cantidad de variables n.
Si m n, y si las ecuaciones son consistentes, el sistema sólo tiene una solución; pero si m < n (esto representa la mayor parte de los programas lineales), entonces el sistema de ecuaciones producirá una infinidad de soluciones, de nuevo si es consistente. Como ejemplo sencillo, la ecuación x=2 tiene m=n=1, y es obvio que la solución es única. Pero la ecuación x + y = 1 tiene m = 1 y n = 2, y tiene una cantidad infinita de soluciones.
Cualquier pu nto de la recta x + y = 1 es una solución.
Ya demostramos cómo se representa el espacio de soluciones de un programa lineal enforma algebraica. Entonces los candidatos para la solución óptima, que son los puntos esquina, se determinan con las ecuaciones linea les simultáneas como sigue: En un conjunto de m x n ecuaciones (m < n), si se igualan a cero n – m variables, y a continuación se despejan las m variables restantes de las m ecuaciones, la soluci ón resultante, si es única, debe corresponder a un punto esquina
del espacio de soluciones.
Más que enumerar todas las soluciones básicas (puntos esquina) del problema de programa ción lineal, el método símplex sólo investiga “unas pocas selectas” entre ella s. A
continuación se describe la naturaleza iterativa del método y se presentan los detalles de cálculo del algoritmo símplex.
La figura 3.3 muestra el espacio de soluciones de la programación lineal del ejemplo 3.2-1 . Normalmente, el método símplex comienza en el origen (punto A), donde x1=x2=0 En este punto de inicio, el valor de la función objetivo z es cero, y la pregunta lógica es si ese valor mejora con un aumento en x 1 y/o x 2 no básicas respecto a sus valores actuales de cero. Contestaremos esta p regunta investigando la función objetivo: Maximizar z = 2x 1 + 3 x 2
La función indica que un aumento en x 1 o x 2 (o en ambas) respecto a sus valores actuales de cero aumentará el valor de z (recuerde que estamos maximizando a z). Sin embargo, en el diseño del método símplex se estipula aumentar las variables una por una.
1. Si aumenta x 1 , entonces, como se ve, su valor debe aumentar para llegar al punto esquina B. Una vez en B, el método símplex aumentará el valor de x2 para llegar al punto esquina mejorado C. El punto C es óptimo y se termina el proceso. La trayectoria asociada al algoritmo símplex es A B C. 2. Si aumenta x 2 , el siguiente punto esquina será D, y a partir de D la solución se mueve hacia el punto óptimo C. El trayecto asociado con el algoritmo símplex es A D C .
Nótese que en ambas rutas, A B C y A D C, las iteraciones símplex se mueven por los bordes del espacio de soluciones, y eso quiere decir que el mé todo no puede atravesar ese espacio para ir en forma directa de A a C. El método símplex proporciona una regla definida, principalmente para facilitar el d esarrollo de un programa de cómputo. En forma específica, como se está maximizando, la variable que tenga el coeficiente positivo en la funci ón objetivo más grande es la que se sel ecciona para aumentar. Si hay un empate, la selección se hace en forma arbitraria. Téngase en cuenta que sólo s e trata de una regla fácil que, de acuerdo con la experiencia en cómpu to, generalmente (pero no siempre) conduce a la menor cantidad de iteraciones.
Esta sección termina con una descripción de los cambios en las variables básicas y no básicas , a medida que el método símplex se mueve de un punto esquina al siguiente. La fig ura muestra que s 1 y s 2 son básicas en el punto A, x1 y x2 son no básicas. Cuando se aumenta x1 respecto a cero (porque mejora el valor de z) se debe llegar al punto esquina B, con lo que cambia el estado de x 1 de no básica a básica. En forma simultánea, la variable que era básica en el punto A , se transforma en no básica y asume un valo r cero en el punto B. En esencia, el cambio conduce a l “intercambio” de la x 1 no básica y la s1 básica en A para producir las nuevas variables básicas ( x 1 , s 2) y las variables no básicas ( s 1, x2 ) en B. Se dice entonces que en A , x 1 entra a la solución básica y s 1 sale de ella, o la deja.
En la terminología del método símplex, x 1 y S1 en el punto A se llaman las variables de entrada y de salida, respectivamente
Al continuar con el mismo razonamiento en B, x2 y s2 son, respectivamente, las variables de entrada y de salida. El proceso termina en el punto C, porque es óptimo.
Una vez que hemos estandarizado nuestro modelo, puede ocurrir que necesitemos aplicar el método Simplex o el método de las Dos Fases. Véase en la figura como debemos actuar para llegar a la solución de nuestro problema.
En la primera columna de la tabla aparecerá lo que llamaremos base, en la segunda el coeficiente que tiene en la función objetivo cada variable que aparece en la base (llamaremos a esta columna Cb) , en la tercera el término independiente de cada restricción (P0), y a partir de ésta columna aparecerán cada una de las variables de la función objetivo (Pi). Para tener una visión más cl ara de la tabla, incluiremos una fila en la que pondremos cada uno de los nombres de las columnas. Sobre ésta tabla que tenemos incluiremos dos nuevas filas: una que s erá la que liderará la tabla donde aparecerán las constantes de los coeficientes de la función objetivo, y otra que se rá la última fila, donde tomará valor la función objetivo. Nuestra tabla final tendrá tantas filas como restricciones.
Los valores de la fila Z se obtienen de la siguiente forma: El valor Z0 será el de sustituir Cim en l a función objetivo (y cero si no aparece en la base). El resto de columnas se obtiene restando a este valor el del coeficiente que apa rece en la primera fila de la tabla. Se observará al realizar el método Simplex, que en esta primera tabla, en la base estarán las variables de holgura.
Comprobaremos si debemos de dar una n ueva iteración o no, que lo sabremos si en la fila Z aparece algún valor negativo. Si no aparece ninguno, es que he mos llegado a la solución óptima del problema.
Si no se ha dado la condición de parada, debemos seleccionar una variable para que entre en la base en la siguiente tabla. Para ello nos fijamos en los valores estrictamente negativos de la fila Z, y el menor de ellos será el que nos d e la variable entrante.
Una vez obtenida la variable entrante, obtendremos la variable que sale, sin más q ue seleccionar aquella fila cuyo cociente P0/Pj sea el men or de los estrictamente positivos (teniendo en cuenta que sólo se hará cuando Pj sea mayor de 0). La intersección entre la columna entrante y la fila saliente nos determinará el el emento pivote.
Las filas correspondientes a la funci ón objetivo y a los títulos permanecerán inalterados en la nueva tabla. El resto deberá calcularse de dos formas diferentes: Si es la fila pivote cada nuevo elemento se calculará: Nuevo Elemento Fila Pivote = Elemento Fila Pivote actua l / Pivote.
Para el resto de elementos de filas se calculará: Nuevo Elemento Fila = Elemento Fila Pivote actual - (Elemento Columna Pivote en la fila act ual * Nuevo Elemento Fila).
Éste método difiere del Simplex en que primero hay que resolver un problema auxiliar que trata de min imizar la suma de las variables artificiales. Una ve z resuelto este primer problema y reorganizar la tabla final, pasamos a la segunda fase, que consiste en realizar el método Simplex normal.
FASE 1
En esta primera fase, se realiza todo de igual manera que en el método Simplex normal, excepto la construcción de la primera tabla, la condición de parada y l a preparación de la tabla que pasa
Se hace de la misma forma que la tabla inicial del método Simplex, pero con algunas diferencias. La fila de la función objetivo cambia para la primera fase, ya que cambia la función objetivo, por lo tanto aparecerán todos los términos a cero excepto aquellos que sean variables artificiales, que tendrán valor "-1" debido a que se está minimizando la suma de dichas variables (recuerde que minimizar F es igual que maximizar F·(-1)).rá a la fase 2.
La otra diferencia para la primera tabla radica en la forma de calcular la fila Z. Ahora tendremos que hacer el cálculo de la siguiente forma: Se sumarán los productos Cb·Pj para todas las filas y al resultado se le restará el valor que aparezca (según la columna que se éste haciendo) en la fila de la función objetivo.
Siendo Zj = Σ( Cb·Pj) - Cj y los Cj = 0 para todo j comprendido entre 0 y n-k (variables de decisión, holgura y exceso), y Cj = 1 para todo j comprendido entre n-k y n (variables artificiales).
La condición de parada es la misma que en el método Simplex normal. La diferencia estriba en que pueden ocurrir dos casos cuando se produce la parada: la función toma un valor 0, que significa que el problema original tiene solución, o que tome un valor distinto, indicando que nue stro modelo no tiene solución.
Si hemos llegado a la conclusión de que el problema original tiene solución, debemos preparar nuestra tabla para la segunda fase. Deberemos eliminar las columnas de las variables artificiales, modificar la fila de la funci ón objetivo por la original, y calcular la fila Z de la misma forma que en la primera tabla de la fase 1.
GRACIAS