Metodo Simplex

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 26

Matemáticas II

Método Simplex
Edith Estefanía Nuñez Pérez
Licenciatura en Contaduría Pública y Auditoría

Elaborado en Canva por Edith Nuñez


Método Simplex
El Método Simplex es un método analítico de solución de problemas de programación
lineal, capaz de resolver modelos más complejos que los resueltos mediante el método
gráfico, sin restricción en el número de variables y con una mayor capacidad de análisis
de sensibilidad.
El Método Simplex es un método iterativo que permite ir mejorando la solución en cada
paso. La razón matemática de esta mejora radica en que el método consiste en caminar
del vértice de un poliedro a un vértice vecino de manera que aumente o disminuya
(según el contexto de la función objetivo, sea maximizar o minimizar). Dado que el
número de vértices que presenta un poliedro solución es finito, en la medida en que se
pueda satisfacer el conjunto de restricciones, siempre se hallará como mínimo una
solución óptima.

Elaborado en Canva por Edith Nuñez


Conceptos Básicos
Para comprender de mejor manera el método simplex vamos a
revisar algunas definiciones:

El método parte de dos afirmaciones importantes:

1. El conjunto de posibles soluciones o conjunto factible de


cualquier problema de programación lineal puede
representarse mediante un poliedro convexo.
2. Si un problema de programación lineal tiene una solución
óptima y finita, ésta estará en un vértice del poliedro convexo
que representa al problema.

El algoritmo simplex parte de uno de los vértices del poliedro, y


verifica si es el óptimo; si no lo es, busca un nuevo vértice
adyacentes que va mejorando el valor de la función objetivo. Se
continúa iterando hasta llegar al vértice que representa la
solución óptima.
En la siguiente imágen vemos el poliedro que representa la
solución factible y cómo realiza el recorrido el algoritmo simplex:

Elaborado en Canva por Edith Nuñez


Tabla Simplex

La tabla inicial del método Simplex está compuesta por todos los
coeficientes de las variables de decisión del problema original y las de
holgura, exceso y artificiales agregadas en el paso 2 (en las columnas,
siendo P0 el término independiente y el resto de variables Pi coinciden
con Xi), y las restricciones (en las filas).

Pasos del Método Simplex


Los pasos a seguir en el método simplex son:

1. Definir el problema en la forma estándar y generar nuestra matriz.


2. Determinar la solución básica inicial.
3. Seleccionar la variable de entrada utilizando la condición de optimalidad. Si no se puede seleccionar una
variable de entrada, quiere decir que estamos en la condición óptima y finalizan las iteraciones. De otro
modo se continúa con el siguiente paso.
4. Seleccionar la variable de salida utilizando la condición de factibilidad.
5. Actualizar nuestra matriz realizando las operaciones de Gauss-Jordan. Volver al paso número 3.

Elaborado en Canva por Edith Nuñez


Ejemplo 1 detallado:
1. Definir el problema en la forma estándar y generar matriz
Un problema de programación lineal tiene la siguiente forma:

Donde x1, x2 … xn son las variables del problema.

Antes de llevar nuestro modelo a la forma estándar debemos verificar


que todas las restricciones tienen el lado derecho no negativo.
Es decir:

b1, b2 … bm 0


Elaborado en Canva por Edith Nuñez
¿Qué hacer si el lado derecho de la restricción es negativo?

Cuando el término independiente de la restricción es negativo, se debe multiplicar por -1 a toda la restricción para
convertir el valor del lado derecho en positivo. Esta multiplicación también afectará al signo de la restricción de la
siguiente forma:

≥ ≤
Si la restricción es del tipo mayor igual ( ), se deberá cambiar a menor igual ( ).

≤ ≥
En caso la restricción sea del tipo menor igual ( ), se deberá cambiar a mayor igual ( ).

Si la restricción es una igualdad, el signo se mantiene.



Un caso especial es cuando el término independiente de la restricción es 0 y el signo es mayor igual ( ); en dicha

situación, podemos multiplicar la restricción por (-1) para convertirla en menor igual ( ). Esto nos servirá para no
utilizar variables artificiales como veremos posteriormente.


Convertir restricciones en igualdades

Para convertir las restricciones en igualdades va a depender de su signo:


Si la restricción es menor igual ( ): Para este tipo de restricciones debemos introducir una
variable no negativa llamada de holgura y que son auxiliares para el problema. Por
ejemplo:

Elaborado en Canva por Edith Nuñez



Cuando la restricción es mayor igual ( ): En este tipo de Si la restricción es igual (=): En este tipo de
restricciones se debe restar una variable de exceso y así mismo restricciones debemos agregar una variable artificial
agregar una variable artificial. Por ejemplo: de la siguiente forma:

Generar la matriz

Aplicando lo indicado en los puntos anteriores tendríamos lo


siguiente:


Una vez convertidas nuestras restricciones en ecuaciones
procederemos a generar nuestra matriz:

Elaborado en Canva por Edith Nuñez


En la matriz podemos identificar lo siguiente:

Vector de Costes: Es el vector que contiene los coeficientes de todas las variables de la función objetivo. En la parte inferior
del vector se indican las variables en orden.

Vector Solución: En esta columna se coloca la solución básica inicial y se va actualizando conforme se realizan las
iteraciones. En la columna Cb se indica el coeficiente que corresponde a cada variable en el vector de costes. Así mismo
siempre se iniciará con las variables de holgura en la base cuando el problema no tenga variables artificiales.

Coeficientes Restricciones: Se colocan los coeficientes de las restricciones en el mismo orden en que fueron formuladas. La
columna R contiene a los términos independientes también conocido como vector de recursos.

Vector de costes reducidos: También conocido como precios sombra. Este vector se calcula multiplicando el vector solución
por los coeficientes de las restricciones y se resta el vector de costes. Este procedimiento lo explicaremos al detalle en
nuestra entrada del método de las dos fases y de la M Grande, donde se presentan variables artificiales. En los ejercicios que
veremos en esta entrada, al no existir variables artificiales, el vector de costes será igual al vector de costes multiplicado
por “-1”.

Elaborado en Canva por Edith Nuñez


2. Determinar la solución básica inicial

Como habíamos mencionado, el método simplex parte de un vértice de la región factible, es decir, un punto extremo.
Con cada iteración avanzaremos de vértice en vértice hasta llegar a la solución óptima.

En nuestro caso, en la matriz elaborada podemos ver la solución


básica inicial que sería S1=35, S2=18 y S3=26 (cada variable del
vector solución se iguala al valor que se encuentra en la columna R.
Estas variables se denominan variables básicas. El valor de Z inicial
también se muestra en la columna R que es .

Las variables que no se encuentran en la base se denominan variables no básicas y en este caso
serían X1 y X2. Ambas tienen un valor de 0. ¿Con esta solución tenemos el mejor valor de Z? Para
saberlo debemos continuar al siguiente paso:

Elaborado en Canva por Edith Nuñez


3. Seleccionar la variable de entrada utilizando la condición de optimalidad

Con nuestra matriz finalizada e identificada nuestra solución básica inicial revisaremos la condición de optimalidad.

Condición de Optimalidad:

La condición de optimalidad consiste en verificar si la solución actual que Variable de entrada:


tenemos en nuestra matriz es la óptima o si se puede mejorar. Se verifica de la
siguiente manera: La variable de entrada hace referencia a una de las variables no básicas que

ingresará a la base y formará parte de la solución del problema.
En un problema de maximización si todos los coeficientes del vector de costes Los criterios para seleccionar la variable de entrada depende si el problema es de
reducidos son mayores o iguales que cero, quiere decir que estamos en el maximización o minimización:
punto óptimo y finaliza el problema.
Para problemas de maximización, la variable de entrada será la variable no básica
En un problema de minimización si todos los coeficientes del vector de costes con el coeficiente más negativo en el vector de costes reducidos.
reducidos son menores o iguales que cero, quiere decir que estamos en el
punto óptimo y finaliza el problema. Para problemas de minimización, la variable de entrada será la variable no básica
con el coeficiente más positivo en el vector de costes reducidos.
Siguiendo con el ejemplo, siendo el problema de maximización, podemos ver que

en el vector de costes reducidos existen valores negativos, lo que significa que no

estamos en el óptimo. Eso quiere decir que debemos iniciar las iteraciones
seleccionando la variable de entrada.

La columna donde está ubicada la variable se denomina columna pivote.

En el ejemplo nuestra variable de entrada sería X1 dado que tiene el valor más
negativo en el vector de costes reducidos, es decir “-3”:

Elaborado en Canva por Edith Nuñez


5. Actualizar la Matriz

Una vez determinado nuestro elemento pivote, realizaremos las operaciones de Gauss-Jordan para formar nuestra matriz identidad. El nuevo valor de
cada fila se calculará de la siguiente manera:

Para la fila pivote: El nuevo valor se obtendrá dividiendo el valor actual entre el elemento pivote.
Nuevo Valor Fila Pivote = Valor Actual Fila Pivote / Elemento Pivote

Para las otras filas: El nuevo valor se calcula restando del valor actual, la multiplicación del elemento de la fila que se encuentra en la columna
pivote por el nuevo valor calculado en la fila pivote.

Nuevo Valor = Valor Actual – (Elemento Fila Columna Pivote*Nuevo Valor Fila Pivote).
Para entenderlo mejor, continuaremos resolviendo el ejemplo. Iniciaremos con la fila pivote:

Elaborado en Canva por Edith Nuñez


En las otras filas realizaremos los cálculos de forma diferente. Iniciaremos con la fila de S1:

Elaborado en Canva por Edith Nuñez


Para la fila S3 tenemos:

Elaborado en Canva por Edith Nuñez


Finalmente en la fila Z tenemos:

Elaborado en Canva por Edith Nuñez


La matriz resultante sería:

Cómo puedes ver la posición donde se encontraba nuestro elemento pivote


ahora es 1 y los elementos que lo acompañan en la columna se convierten
en 0. Es así que empezamos a formar nuestra matriz identidad.

Volver al paso No. 3


Con este último resultado, volveremos al paso 3 y repetiremos el proceso. Cómo existen valores
negativos en el vector de costes reducidos, podemos seguir optimizando.

El único valor negativo es -4, por lo que la variable que ingresará es X2.

Para elegir la variable que va a salir, dividimos cada valor de la columna R por su contraparte
de la columna X2 (este último valor debe ser positivo)

23/(19/3) = 69/19 = 3.632


El valor en la columna X2 es negativo por lo que no se toma en cuenta.
14/(16/3) = 21/8 = 2.625

Elaborado en Canva por Edith Nuñez


El menor valor se encuentra en la fila de S3, por lo que es la
variable que saldrá de la base. El elemento pivote es 16/3.

Realizamos nuevamente las iteraciones obteniendo el


siguiente resultado:

En esta última matriz vemos que el vector de costes reducidos ya


no tiene ningún valor negativo, lo que quiere decir que nos
encontramos en el valor óptimo. Obtendremos los valores de las
variables básicas y de Z de la siguiente forma:

Las variables que no se encuentran en la base tendrán valor de 0.

Solución: X1= 31/4, X2= 21/8, S1= 51/8, S2= 0, S3= 0, Z = 57/2

Elaborado en Canva por Edith Nuñez


Ejemplo 2 - Maximizar:
Solución
Función Objetivo
Maximizar: Z = 2X1 + 5X2 El problema se adecuará al modelo estándar de programación lineal, agregando las variables de
holgura, exceso y/o artificiales en cada una de las restricciones:
Sujeto a:

Restricción 1: Tiene signo “ ” (menor igual) por lo que se agrega la variable de holgura S1.

X1 + 6X2 20 Restricción 2: Tiene signo “≤” (menor igual) por lo que se agrega la variable de holgura S2.

X1 + X2 60
X1 ≤ 40 Restricción 3: Tiene signo “≤” (menor igual) por lo que se agrega la variable de holgura S3.

X1, X2 0
A continuación se muestra el problema en la forma estándar. Se colocará el coeficiente 0 (cero) donde
corresponda para crear nuestra matriz:

Elaborado en Canva por Edith Nuñez


Para encontrar la variable que entra a la base elegimos el En esta última matriz, todos los valores del vector de costes
valor más negativo del vector de costes reducidos: -5. Por lo reducidos son positivos lo que indica que nos encontramos en el
tanto la variable de entrada sería X2. punto óptimo. El resultado sería:

Para la variable de salida dividiremos los valores de la


columna R con los de la columna X2 (siempre y cuando sean
positivos). Los resultados en orden serían: 20/6, 60 y la
última fila no se considera porque su valor correspondiente
a X2 no es positivo (0). Se debe elegir el menor valor de esta
división: 20/6; por lo tanto la variable de salida se
encuentra en la primera fila: S1.

El elemento pivote se encuentra en el cruce de X2 y S1: 6.

Realizamos las reducciones de Gauss-Jordan:

Ingresa la variable X1 y sale de la base la variable X2. El elemento


pivote es 1/6. Repetimos las operaciones de Gauss-Jordan y
obtenemos la siguiente matriz:

Z = 40

X1= 20, X2= 0, S1= 0, S2= 40, S3= 20

Elaborado en Canva por Edith Nuñez


Ejemplo 3 - Minimizar:
Función Objetivo Solución
Minimizar: Z = 3X1 – 2X2

El problema se adecuará al modelo estándar de programación lineal, agregando las
Sujeto a: variables de holgura, exceso y/o artificiales en cada una de las restricciones:
2X1 + X2≤ 18 ≤
Restricción 1: Tiene signo “ ” (menor igual) por lo que se agrega la variable de holgura S1.

2X1 + 3X2 ≤ 42 Restricción 2: Tiene signo “≤” (menor igual) por lo que se agrega la variable de holgura S2.

3X1 – 2X2≤ 5 Restricción 3: Tiene signo “≤” (menor igual) por lo que se agrega la variable de holgura S3.

X1, X2 ≥ 0 A continuación se muestra el problema en la forma estándar. Se colocará el coeficiente 0


(cero) donde corresponda para crear nuestra matriz:

Elaborado en Canva por Edith Nuñez


Como el ejercicios es de minimización, elegiremos el mayor
valor positivo para la variable de entrada: 2. Por lo tanto la
variable de entrada sería X2.

Para la variable de salida dividiremos los valores de la


columna R con los de la columna X2 (siempre y cuando sean
positivos). Los resultados en orden serían: 18/1, 42/3 y la
última fila no se considera porque su valor correspondiente
a X2 es negativo (-2). Se debe elegir el menor valor de esta
división: 42/3=14; por lo tanto la variable de salida se
encuentra en la segunda fila: S2. En esta última matriz, todos los valores del vector de costes
reducidos son negativos, lo que indica que nos encontramos en el
El elemento pivote se encuentra en el cruce de X2 y S2: 3. punto óptimo del problema de minimización. El resultado sería:
Realizamos las reducciones de Gauss-Jordan:

Z = -28

X1= 0, X2= 14, S1= 4, S2= 0, S3= 33

Elaborado en Canva por Edith Nuñez


Ejemplo 4
A un grupo de artesanos se le presenta la oportunidad exportar cinturones de piel de salmón al mercado europeo. Clasifican los cinturones en dos
tipos A y B: A por alta calidad y B por baja calidad. De acuerdo a sus estimaciones tendrían una utilidad de 4 euros por cinturón tipo A y 3 euros
por el tipo B. La confección de un cinturón tipo A les requiere el doble de tiempo que uno tipo B. Si confeccionaran sólo cinturones tipo B podrían
hacer 1.000 diarios. En todo caso, el abastecimiento de piel es suficiente para confeccionar un total combinado de 800 cinturones diarios. Los
cinturones usan un diferente tipo de hebilla según su calidad. Se pueden abastecer de 800 hebillas elegantes al día para los cinturones tipo A y
700 hebillas corrientes al día para los cinturones tipo B. Se desea formular y resolver un modelo de Programación Lineal que permita a los
artesanos decidir cuántos cinturones de cada tipo fabricar de modo de maximizar sus ganancias.

1.-Variables de Decisión 2.- Función Objetivo


x1: Número de cinturones tipo A a fabricar por semana. Cada cinturón tipo A reporta una utilidad de 4 euros y
x2: Número de cinturones tipo B a fabricar por semana. cada cinturón tipo B reporta una utilidad de 3 euros. Se
desea maximizar la utilidad total dada por: Max
4x1+3x2

Con ello construimos la tabla inicial del


Método Simplex donde las variables de holgura
previamente identificadas definen una solución
básica factible inicial (no óptima):

Elaborado en Canva por Edith Nuñez


Por el criterio del costo reducido más negativo la variable que ingresa a la
base es x1. Luego calculamos en dicha columna el mínimo cuociente que
esta dado por: [latex]Min\begin{Bmatrix}\frac{800}{1},\frac{800}
{1},\frac{1.000}{2}\end{Bmatrix}=500[/latex].

En consecuencia el pivote se encuentra en la fila 4 y por tanto la variable x6


deja la base. (Notar que para el cálculo del mínimo cuociente o criterio de
factibilidad sólo se consideran denominadores que sean estrictamente
mayores a cero).

Ahora la variable no básica que ingresa a la base es x2. Calculamos


nuevamente el mínimo cuociente sobre dicha columna obteniendo:
[latex]Min\begin{Bmatrix}\frac{700}{1},\frac{300}{1/2},\frac{500}
{1/2}\end{Bmatrix}=600[/latex].

Por tanto x5 abandona la base. Con ello realizamos una nueva iteración del
Método Simplex:

La solución óptima es x1=200 y x2=600, donde el valor de las holguras x3 y x4


corresponde a 600 y 100, respectivamente. Notar adicionalmente que las
variables x5 y x6 son no básicas en el óptimo, por tanto su valor es cero, lo que
indica que las restricciones 3 y 4 son activas. El valor óptimo del problema es
V(P)=2.600.

Elaborado en Canva por Edith Nuñez


Ejemplo 5
Maximizar
1. Convertir las desigualdades en igualdades
Z= f(x,y)= 3x + 2y Se introduce una variable de holgura por cada una de las restricciones, para convertirlas

en igualdades, resultando el sistema de ecuaciones lineales:
sujeto a:
2x + y 18
2x + y + h = 18
2x + 3y + s = 42
2x + 3y 42
3x +y + d = 24
3x + y 24

x0 , y 0 2. Igualar la función objetivo a cero



- 3x - 2y + Z = 0

3. Escribir la tabla inicial simplex

En las columnas aparecerán todas las variables del problema y, en las filas,
los coeficientes de las igualdades obtenidas, una fila para cada restricción y
la última fila con los coeficientes de la función objetivo:

Elaborado en Canva por Edith Nuñez


4. Encontrar la variable de decisión que entra en la base y la variable de holgura que sale de la base

a) Para escoger la variable de decisión que entra en la base, nos fijamos en la última fila, la de los coeficientes de la función objetivo y
escogemos la variable con el coeficiente negativo mayor (en valor absoluto).

En nuestro caso, la variable x de coeficiente - 3.


Si existiesen dos o más coeficientes iguales que cumplan la condición anterior, entonces se elige uno cualquiera de ellos.

Si en la última fila no existiese ningún coeficiente negativo, significa que se ha alcanzado la solución óptima. Por tanto, lo que va a determinar el final
del proceso de aplicación del método del simplex, es que en la última fila no haya elementos negativos.

La columna de la variable que entra en la base se llama columna pivote (En color verde).

b) Para encontrar la variable de holgura que tiene que salir de la base, se divide cada término de la última columna (valores solución) por
el término correspondiente de la columna pivote, siempre que estos últimos sean mayores que cero. En nuestro caso:

18/2 [=9] , 42/2 [=21] y 24/3 [=8] Si hubiese algún elemento menor o igual que cero no se hace dicho cociente. En el caso de que todos los
elementos fuesen menores o iguales a cero, entonces tendríamos una solución no acotada y no se puede seguir.

El término de la columna pivote que en la división anterior dé lugar al menor cociente positivo, el 3, ya 8 es el menor, indica la fila de la variable de
holgura que sale de la base, d. Esta fila se llama fila pivote (En color verde).

Si al calcular los cocientes, dos o más son iguales, indica que cualquiera de las variables correspondientes pueden salir de la base.

c) En la intersección de la fila pivote y columna pivote tenemos el elemento pivote operacional, 3.

Elaborado en Canva por Edith Nuñez


5. Encontrar los coeficientes de la nueva tabla.

Los nuevos coeficientes de x se obtienen dividiendo todos los coeficientes de la fila d por el pivote
operacional, 3, que es el que hay que convertir en 1.

A continuación mediante la reducción gaussiana hacemos ceros los restantes términos de su


columna, con lo que obtenemos los nuevos coeficientes de las otras filas incluyendo los de la función
objetivo Z.

También se puede hacer utilizando el siguiente esquema:

Fila del pivote:


Nueva fila del pivote= (Vieja fila del pivote) : (Pivote)


Resto de las filas:


Nueva fila= (Vieja fila) - (Coeficiente de la vieja fila en la columna de la variable


entrante) X (Nueva fila del pivote)

Veámoslo con un ejemplo una vez calculada la fila del pivote (fila de x en la Tabla
II):

Elaborado en Canva por Edith Nuñez


Como en los elementos de la última fila hay uno negativo, -1, significa Como en los elementos de la última fila hay uno negativo, -1, significa
que no hemos llegado todavía a la solución óptima. Hay que repetir el que no hemos llegado todavía a la solución óptima. Hay que repetir el
proceso: proceso:

a) La variable que entra en la base es y, por ser la variable que a) La variable que entra en la base es d, por ser la variable que
corresponde al coeficiente -1 corresponde al coeficiente -1

b) Para calcular la variable que sale, dividimos los términos de la b) Para calcular la variable que sale, dividimos los términos de la
última columna entre los términos correspondientes de la nueva última columna entre los términos correspondientes de la nueva
columna pivote: columna pivote:
2:1/3 [=6] , 26:7/3 [=78/7] y 8:1/3 [=8] 6/(-2) [=-3] , 12/4 [=3], y 6:1 [=6]
y como el menor cociente positivo es 6, tenemos que la variable de y como el menor cociente positivo es 3, tenemos que la variable de
holgura que sale es h. holgura que sale es s.

c) El elemento pivote, que ahora hay que hacer 1, es 1/3. c) El elemento pivote, que ahora hay que hacer 1, es 4.

Obtenemos la tabla:

La solución óptima viene dada por el valor de Z en la columna de los


valores solución, en nuestro caso: 33. En la misma columna se puede
Como todos los coeficientes de la fila de la observar el vértice donde se alcanza, observando las filas correspondientes
función objetivo son positivos, hemos llegado a a las variables de decisión que han entrado en la base: D(3,12)
la solución óptima.
Elaborado en Canva por Edith Nuñez

También podría gustarte