Consultar ensayos de calidad


Metodo simplex en un sistema de programacion



METODO SIMPLEX EN UN SISTEMA DE PROGRAMACION


El método simplex es un método algebraico interactivo que permite ir mejorando la solución a cada paso del procedimiento comenzando con una solución basica (punto externo) y modificando esto a lo largo del proceso, a través de la inclusión y exclusión de una variable; siempre aumentando la utilidad (o reduciendo el costo) hasta encontrar una solución óptima. Este método fue desarrollado por George Bernard Dantzig en 1947, el cual la conversión del problema con restricciones con desigualdades en un problema presenta restricciones que son ecuaciones lineales.

CARACTERISTICAS
Es aplicable a los problemas de programación lineal multidimensionales.
Tiene como base el algebra matricial y el proceso de eliminación de Gauss- Jordan.


Es un proceso de búsqueda que se vuelve sorprendentemente eficiente para solucionar problemas muy grandes.
El método simplex se basa en una premisa supremamente lógica: la solución tiene que encontrarse en un punto extremo del area de soluciones factibles. Cada restricción matematicamente se representa como una inecuación  de desigualdad (=) y se representa graficamente como un area. Cada area esta delimitada por los ejes y por una recta extrema que resulta de tomar la desigualdad como una igualdad.
El método simplex requiere trabajar no coninecuaciones o desigualdades si no con igualdades para ignorar, si se puede decir así, todas aquellas soluciones en el volumen interno e irse desplazando por los puntos realmente extremos. Cuando se convierten estas inecuaciones en ecuaciones para preparlas para el método, se dice que lo convertimos en el modelo estandar; en este modelo, por ejemplo,  en vez de expresar una restricción de la siguiente manera: 
Material usado en el producto a + material usado en el producto b = e =, y son llamadas variables artificiales. Estas variables no tienen ningún significado físico, sino que son un artificio matematico requerido por el método para estos dos tipos de restricciones.
De allí que al analizar la forma estandar en un modelo de PL se dice que esta en su forma estandar si cada restricción es una igualdad y las restricciones de signo para cada variable son del tipo mayor o igual que cero.
Ejemplo
No esta en la forma estandar:
Max Z = 3x + 2y
Sujeto a:
2x + y = se introduce una nueva variable de exceso (excess variable) ei que se resta al primer miembro y la desigualdad se convierte en igualdad; se añade la restricción de signo a la nueva variable ei >=0.
Cuando tengamos restricciones de tipo >= o =, y por lo tanto aparezcan variables artificiales,  sera necesario usar una variante del simplex llamado: método de la gran m.  En este tipo de situación también se puede usar el método de las dos fases y mas modernamente el método empujar y halar
Cuando ya se tiene el programa lineal en formato de modelo estandar es posible usar el algebra de matrices para encontrar los puntos extremos que permiten hallar la solución óptima. Para esto, se añadevariables tanto de holgura como artificiales haciendo que el número de variables sea mayor que el número de restricciones, por lo que se tiene que para hallar una solución (un punto extremo)  hacer cierto número de estas variables iguales a cero. Para este efecto se define dos grupos en cada iteración, uno llamado variables basicas y otro llamado no basicas. Las variables no basicas son las que se les da valor de cero y las variables basicas son las que se usan con valor dentro de las iteraciones.
Luego, en cada iteración se define la base y usando el método de Gauss-Jordan se encuentra el valor del punto extremo. Para mejorar la solución encontrada es necesario desplazar a otro punto modificando la base: sacando una variable de ella y metiendo otra. Por lógica se escoge para la variable que entra aquella que mejore en mayor proporción a la función objetivo y para salir aquella variable que mas restrinja el modelo a la intersección entre la columna de la variable que entra y la de la fila de la variable que sale, lo cual se llamara pivote. Se debe convertir por operaciones entre filas y columnas a este pivote en 1 y basandose en este pivote se aplica Gauss-Jordan para convertir en cero los demas miembros de la columna.  En cada iteración se hace una verificación de optimalidad, y se pregunta si hemos llegado al óptimo: si ya ninguna variable que entre va a mejorar mas el resultado, si es así terminamos con el problema, de lo contrario, se hace una nueva iteración. En esta verificación también se examina la factibilidad del problema, tal vez se encuentre con que el problema no esta acotado, o que tenga infinito número de soluciones. Pero enconclusión, el método simplex consiste en incrementar el valor de las variables no basicas y estudiar como varía el funcional Z con dicho incremento.
TIPOS DE METODOS SIMPLEX.
Los tipos de métodos simplex son
Método simplex primal. Parte de una solución basica factible (punto externo del polígono de soluciones) y se continúa iterando a través de soluciones basicas factibles sucesivas hasta alcanzar el óptimo valor.
Método simplex dual. Trata con soluciones basicas infactibles hasta la última interacción, donde la solución basica asociada debe ser factible.
Pero cualquiera que sea el método simplex utilizado, finalmente obtendra soluciones basicas factibles como lo estimula la condición de no negatividad.
PASOS PARA DESARROLLAR EL METODO SIMPLEX
Para desarrollar un problema de programación lineal a través del método simplex deben seguirse los siguientes pasos

PASO 1: Poner el problema en forma estandar:
La función objetivo se minimiza y las restricciones son de igualdad.

PASO 2: Encontrar una solución basica factible (SBF).

PASO 3: Testar la optimalidad.

PASO 4: Elegir una variable de entrada.

PASO 5: Elegir la variable de salida.

PASO 6: Actualizar la base y la solución basica factible.

PASO 7: Volver al PASO 3.


PASO 1. Poner el problema en forma estandar
Supongamos que tenemos el siguiente problema de programación lineal (PPL):
Maximizar
Sujeto a


Necesitamos que la función objetivo N°1 sea de minimización y que todas las restricciones sean iguales N°2, N°3
La restricción se denomina restricción no negativa N°4 y no cambia.
EstePPL no esta en forma estandar, entonces hay 2 pasos a realizar.
1. Cambiar de maximización a minimización. Para esto multiplicamos la función objetivo N°1 por -1. Y se obtendra

Maximizar
Sujeto a


2.
Convertir las inecuaciones en ecuaciones, para esto añadimos variables de holgura
Consideremos la desigualdad N°2.
Tenemos la desigualdad ≤. Como x1 + x2 tiene que ser menor que 50, podemos añadir una variable x3 positiva que nos hace alcanzar el 50.

Ahora tenemos:

Cuando añadimos variables a las restricciones, tenemos que tener en cuenta la función objetivo, el coste asociado a estas nuevas variables sera 0
Maximizar
Sujeto a



La siguiente desigualdad es del tipo ≥ y actuaremos de forma similar: x1 + x2 es mayor que 25, necesitamos restar una variable positiva x4 para obtener 25. Su coste asociado sera 0.

Maximizar
Sujeto a


Donde x3 y x4 son variables de holgura

PASO 2: Encontrar una solución basica factible (SBF).

El método del simplex empieza en un vértice de la región factible, es decir, un punto extremo. Después, en cada iteración, el método se mueve a lo largo de una arista hacia otro punto extremo. Con este método, moviéndonos de vértice en vértice, hay que encontrar un punto extremo inicial de la región factible. Los puntos extremos se corresponden con las soluciones basicas factibles.
Un PPL dado en forma estandar se puede escribir en forma matricial.

Minimizar

Sujeto aEn el ejemplo que estamos considerando.
Tendremos







Tenemos 2 ecuaciones y 4 variables, mas variables que ecuaciones.
Como resultado tenemos infinitas soluciones para estas restricciones. De hecho, cada punto de la región factible es una solución del sistema.
Nosotros solamente necesitamos los vértices de la región factible, y estos puntos se corresponden con las soluciones basicas factibles del sistema.
Cuando un sistema Ax = b tiene m ecuaciones y n incógnitas con m ≤ n, debemos seleccionar, B, una submatriz de A no singular m * m (det(A) ≠ 0).
Esta submatriz B se denomina matriz basica.
Las variables que generan la matriz B (sus columnas estan en B), se denominan variables basicas y se denotan por XB

Las otras n - m variables seran variables no basicas, XN, y siempre se le asociara el valor 0.


En nuestro ejemplo podemos escoger como matriz basica a



Las variables basicas seran x1; x3 y las no basicas x2; x4.

El valor de las variables basicas se obtiene con el sistema



La solución obtenida se denomina solución basica.
Una solución basica es una solución basica factible si xB ≥ 0.
El valor de la solución basica interior sera




También podríamos escoger como matriz basica a pero no es factible pues



X4 = −25 < 0, no est´a dentro de la región factible


PASO 3: Testar la optimalidad.

Tomaremos x otra solución basica. Veamos la relación existente con nuestra solución



Multiplicando por B−1 a la izquierda y despejando xB tenemos:

Si comparamos el valor de la función objetivo de la soluciónbasica factible inicial, Z0, con la nueva, z, tenemos:





Entonces



Donde es la columna de en A y
La solución basica factible tiene el costo ´optimo cuando no existe un costo mejor. Es decir, cuando
zj − cj ≤ 0 para todo xj variable no basica.

Comprobaremos si la solución obtenida en el apartado anterior es ´optima. Para ello calcularemos z2 − c2 y z4 − c4



Son los coeficientes de costes de las variables basicas. Es decir

Es la columna de A correspondiente a la variable
Y
Es el coeficiente de coste de
Y


La solución no es óptima tanto como son positivos

PASO 4: Elegir una variable de entrada.
Si la solución que tenemos no es óptima significa que tenemos alguna variable no basica xj que verifica que zj − cj > 0. Queremos buscar una nueva solución basica factible, y su coste asociado es

El método del simplex consiste en modificar la solución obtenida cambiando una variable basica por una no basica. Si queremos mejorar el coste, la variable no basica elegida debera cumplir que zj − cj > 0. Tomaremos xk variable no basica cuyo valor zk − ck sea mayor.
En el ejemplo tenemos que z2 − c2, z4 − c4 > 0.
Escogeremos el valor mayor, por lo tanto la variable que entra es x4.

PASO 5: Elegir la variable de salida.
Una vez elegida la variable de entrada xk, sabemos que el resto de las variables no basicas seguiran siendo no basicas y su valor asociado sera 0.
Ademas tenemos que


Teniendo en cuenta que las variables basicas tienen que ser positivas

Si yik ≤ 0, xBi crece si xk crece. Por lo tanto xBisigue siendo positivo.

Si todos los yik ≤ 0, las variables xB crecen si xk crece. La solución es no acotada.

Si yik < 0, xBi decrece si xk crece.

Necesitamos que las xB ≥ 0; así que aumentaremos xk hasta que la primera xB sea 0. Esta sera la variable que salga


La variable que sale Xr, es la que hace que se alcance el mínimo

Siguiendo con el ejemplo tenemos que



Entonces tenemos que . La variable que sale es

PASO 6: Actualizar la base y la solución basica factible.

La nueva base es basicamente la base inicial, solamente se permutan dos variables, una basica se convierte en no basica y viceversa.

La variable xk era no basica y ahora es basica.

La variable xr era basica y ahora es no basica.

Luego nosotros tenemos como variables basicas a x1; x4 y las no basicas son x2; x3.
Los nuevos valores son






Y los valores de la nueva solución son x4 = 25, x2 = x3 = 0 (por ser no basicas) y x1 se calcula por la fórmula:






PASO 7: Volver al PASO 3

Ahora tenemos una solución basica factible mejor que la inicial. Necesitamos saber si esta es la óptima.
Para ello necesitamos aplicar el test de optimalidad, el paso 3.









Política de privacidad