Calculadora online del método símplex con pasos

F =

x1

 +

x2

 +

x3

 +

x4

x1

 +

x2

 +

x3

 +

x4

x1

 +

x2

 +

x3

 +

x4

x1

 +

x2

 +

x3

 +

x4

x1

 +

x2

 +

x3

 +

x4

Comentarios de la solución
Sin descripción (solo respuesta)

a

b

c

d

x

y

z

AC

i

ab
x2
xn

Randomize

Formato numérico
313131313135151515151552188552198585858586
Redondea a
Dígitos después del punto decimal
10
=Resolver

  Acerca de la calculadora del método símplex

Resuelva problemas de programación lineal con el método símplex en línea. Maximice o minimice una función objetivo bajo restricciones lineales con iteraciones paso a paso y el método de la gran M. con descripción completa y detallada paso a paso de las soluciones, que resuelve problemas de programación lineal de hasta 20×20 con coeficientes de tipo: números decimales y fracciones.

Para iniciar el cálculo, primero hay que introducir las dimensiones del problema en los campos de entrada en la parte superior de la pantalla y elegir la operación deseada en el menú lateral.

Un poco más abajo encontrará una ventana de entrada donde se deben ingresar los coeficientes, las restricciones y los valores del lado derecho usando el teclado. Aquí también se encuentra el panel de control de entrada, que simplifica el trabajo con los problemas de PL y contiene los siguientes elementos de control:

  • El primer elemento permite expandir la ventana de entrada. Esto puede ser especialmente útil cuando la tabla no cabe completamente en la pantalla. Si la tabla aún no es totalmente visible después de expandir la ventana, puede cambiar la escala con los botones + / -;
  • El segundo elemento copia los datos de entrada del problema actual al búfer de memoria. Esto puede ser útil cuando se resuelve con frecuencia el mismo problema de PL o se necesita transferir datos entre operaciones;
  • Y el último elemento pega los datos de entrada copiados anteriormente, lo que permite restaurar los datos del problema en pocos clics en lugar de volver a ingresarlos manualmente;

Y más abajo encontrará una barra de herramientas que permite personalizar la calculadora y facilitar su uso. Está dividida visualmente en tres partes, cada una de las cuales se encarga de la siguiente funcionalidad:

  • La primera parte permite seleccionar el formato numérico utilizado al mostrar el resultado de la solución. También puede desactivar los comentarios paso a paso si ya conoce el método y solo necesita verificar sus propios cálculos, u ocultar la solución paso a paso por completo si solo necesita la respuesta final;
  • La segunda parte contiene botones que permiten modificar las dimensiones de la tabla de entrada, borrar coeficientes individuales o toda la entrada, y el botón principal con el signo igual que lleva a la pantalla de solución. Todos estos botones tienen atajos de teclado. Pase el cursor sobre un botón para ver la tecla correspondiente en un tooltip. También puede usar las teclas de flecha para mover el cursor entre los campos de entrada;
  • Y la última parte permite elegir el número de dígitos después del punto decimal para redondear resultados no enteros. Una vista previa en tiempo real muestra cómo aparecerán los valores redondeados;

  ¿Qué es el método símplex?

El método símplex es un algoritmo para resolver problemas de programación lineal que buscan maximizar o minimizar una función objetivo lineal sujeta a restricciones de desigualdad e igualdad lineales, con todas las variables de decisión no negativas. Funciona desplazándose por los vértices del polítopo factible desde una solución básica factible hasta una adyacente con mejor valor objetivo. Las restricciones de tipo ≥ o de igualdad se manejan introduciendo variables artificiales penalizadas con el centinela de la gran M.

  ¿Cómo resolver un problema de programación lineal con el método símplex?

Primero, convierta el PL a la forma estándar (tabular) añadiendo variables de holgura, excedente y artificiales para transformar todas las restricciones en igualdades y establecer una base inicial. En cada iteración, aplique la regla de pivote: seleccione el coeficiente de costo reducido más negativo en la fila objetivo como variable entrante y use la prueba de razón mínima para elegir la variable saliente. Realice la operación de pivote para actualizar el tableau. Repita hasta que todos los costos reducidos sean no negativos, momento en el que la solución básica factible actual es óptima.

  Ejemplo de resolución de un problema de programación lineal con el método símplex

F(x) = 3x1+4x2 → max
F(x) = 3x1+4x2+0x3+0x4+0x5+0x6+0x7-Mx8-Mx9 → max
2x1+x2600
2x1+x2+x3 = 600
225
+x4 = 225
5x1+4x21000
5x1+4x2+x5 = 1000
2x2150
2x2-x6+x8 = 150
0
-x7+x9 = 0

La etapa preliminar comienza con la necesidad de eliminar los valores negativos en la parte derecha de las restricciones. Para ello, las restricciones correspondientes se multiplican por -1. Tras esta operación, el signo de la desigualdad se invierte.

A continuación, hay que eliminar las desigualdades, para lo cual introducimos variables de holgura en el lado izquierdo de las desigualdades. Si la desigualdad es de la forma ≤, la variable de holgura lleva signo +; si la desigualdad es de la forma ≥, la variable de holgura lleva signo -. Las variables de holgura se incluyen en la función objetivo del problema con coeficiente cero.

Ahora, en el sistema de restricciones, es necesario encontrar un número suficiente de variables básicas. Cada restricción debe tener una variable básica. Una variable básica es aquella que tiene coeficiente 1 y aparece en una sola restricción. Si en alguna restricción no hay variables básicas, las añadimos artificialmente; las variables artificiales entran en la función objetivo con coeficiente -M si la función objetivo tiende a max, y M si tiende a min.

Descripción
2
Iteración 1
BCbPx1x2x3x4x5x6x7x8x9Q
3400000-M-M
x30600211000000600
x40225000100000
x501000540010000250
x8-M15002000-101075
x9-M0000000-101
max-150M-3-2M-4000MM00

Elementos de la columna base (B)

Trasladamos a la tabla los elementos básicos identificados en la etapa preliminar:

B1 = x3;

B2 = x4;

B3 = x5;

B4 = x8;

B5 = x9;

Elementos de la columna Cb

Cada celda de esta columna es igual al coeficiente que corresponde a la variable básica de la fila correspondiente.

Cb1 = 0;

Cb2 = 0;

Cb3 = 0;

Cb4 = -M;

Cb5 = -M;

Valores de las variables y columna P

En esta etapa no se realizan cálculos; simplemente se transfieren los valores de la etapa preliminar a las celdas de la tabla correspondientes:

P1 = 600;

P2 = 225;

P3 = 1000;

P4 = 150;

P5 = 0;

x1,1 = 2;

x1,2 = 1;

x1,3 = 1;

x1,4 = 0;

x1,5 = 0;

x1,6 = 0;

x1,7 = 0;

x1,8 = 0;

x1,9 = 0;

x2,1 = 0;

x2,2 = 0;

x2,3 = 0;

x2,4 = 1;

x2,5 = 0;

x2,6 = 0;

x2,7 = 0;

x2,8 = 0;

x2,9 = 0;

x3,1 = 5;

x3,2 = 4;

x3,3 = 0;

x3,4 = 0;

x3,5 = 1;

x3,6 = 0;

x3,7 = 0;

x3,8 = 0;

x3,9 = 0;

x4,1 = 0;

x4,2 = 2;

x4,3 = 0;

x4,4 = 0;

x4,5 = 0;

x4,6 = -1;

x4,7 = 0;

x4,8 = 1;

x4,9 = 0;

x5,1 = 0;

x5,2 = 0;

x5,3 = 0;

x5,4 = 0;

x5,5 = 0;

x5,6 = 0;

x5,7 = -1;

x5,8 = 0;

x5,9 = 1;

Valor de la función objetivo

Calculamos el valor de la función objetivo multiplicando elemento a elemento la columna Cb por la columna P y sumando los productos.

MaxP = (Cb1 * P1) + (Cb2 * P2) + (Cb3 * P3) + (Cb4 * P4) + (Cb5 * P5) = (0 * 600) + (0 * 225) + (0 * 1000) + (-M * 150) + (-M * 0) = -150M;

Estimaciones de las variables controladas

Calculamos las estimaciones para cada variable controlada multiplicando elemento a elemento el valor de la columna de la variable por el valor de la columna Cb, sumando los productos y restando el coeficiente de la función objetivo para esa variable.

Maxx1 = ((Cb1 * x1,1) + (Cb2 * x2,1) + (Cb3 * x3,1) + (Cb4 * x4,1) + (Cb5 * x5,1)) - kx1 = ((0 * 2) + (0 * 0) + (0 * 5) + (-M * 0) + (-M * 0)) - 3 = -3;

Maxx2 = ((Cb1 * x1,2) + (Cb2 * x2,2) + (Cb3 * x3,2) + (Cb4 * x4,2) + (Cb5 * x5,2)) - kx2 = ((0 * 1) + (0 * 0) + (0 * 4) + (-M * 2) + (-M * 0)) - 4 = -2M-4;

Maxx3 = ((Cb1 * x1,3) + (Cb2 * x2,3) + (Cb3 * x3,3) + (Cb4 * x4,3) + (Cb5 * x5,3)) - kx3 = ((0 * 1) + (0 * 0) + (0 * 0) + (-M * 0) + (-M * 0)) - 0 = 0;

Maxx4 = ((Cb1 * x1,4) + (Cb2 * x2,4) + (Cb3 * x3,4) + (Cb4 * x4,4) + (Cb5 * x5,4)) - kx4 = ((0 * 0) + (0 * 1) + (0 * 0) + (-M * 0) + (-M * 0)) - 0 = 0;

Maxx5 = ((Cb1 * x1,5) + (Cb2 * x2,5) + (Cb3 * x3,5) + (Cb4 * x4,5) + (Cb5 * x5,5)) - kx5 = ((0 * 0) + (0 * 0) + (0 * 1) + (-M * 0) + (-M * 0)) - 0 = 0;

Maxx6 = ((Cb1 * x1,6) + (Cb2 * x2,6) + (Cb3 * x3,6) + (Cb4 * x4,6) + (Cb5 * x5,6)) - kx6 = ((0 * 0) + (0 * 0) + (0 * 0) + (-M * -1) + (-M * 0)) - 0 = M;

Maxx7 = ((Cb1 * x1,7) + (Cb2 * x2,7) + (Cb3 * x3,7) + (Cb4 * x4,7) + (Cb5 * x5,7)) - kx7 = ((0 * 0) + (0 * 0) + (0 * 0) + (-M * 0) + (-M * -1)) - 0 = M;

Maxx8 = ((Cb1 * x1,8) + (Cb2 * x2,8) + (Cb3 * x3,8) + (Cb4 * x4,8) + (Cb5 * x5,8)) - kx8 = ((0 * 0) + (0 * 0) + (0 * 0) + (-M * 1) + (-M * 0)) - -M = 0;

Maxx9 = ((Cb1 * x1,9) + (Cb2 * x2,9) + (Cb3 * x3,9) + (Cb4 * x4,9) + (Cb5 * x5,9)) - kx9 = ((0 * 0) + (0 * 0) + (0 * 0) + (-M * 0) + (-M * 1)) - -M = 0;

Elementos de la columna Q

Como hay valores negativos entre las estimaciones de las variables controladas, la tabla actual aún no tiene solución óptima. Por lo tanto, introducimos en la base la variable con la estimación negativa más pequeña.

El número de variables en la base es siempre constante, por lo que es necesario elegir qué variable sacar de la base, para lo cual calculamos Q.

Los elementos de la columna Q se calculan dividiendo los valores de la columna P entre el valor de la columna correspondiente a la variable que entra a la base:

Q1 = P1x1,2 = 6001 = 600;

Q2 = P2x2,2 = 2250 = ;

Q3 = P3x3,2 = 10004 = 250;

Q4 = P4x4,2 = 1502 = 75;

Q5 = P5x5,2 = 00 = ;

Sacamos de la base la variable con el valor positivo más pequeño de Q.

En la intersección de la fila que corresponde a la variable que sale de la base y la columna que corresponde a la variable que entra a la base se encuentra el elemento resolutivo.

Este elemento nos permitirá calcular los elementos de la tabla de la siguiente iteración.

Descripción
3
Iteración 2
BCbPx1x2x3x4x5x6x7x8x9Q
3400000-M-M
x3052520100120-12026212
x40225000100000
x507005000120-20140
x247501000-120120
x9-M0000000-101
max300-30000-2MM+20

Elementos de la columna base (B)

Con los resultados de los cálculos de la iteración anterior, extraemos de la base la variable x8 y en su lugar introducimos x2. El resto de las celdas permanece sin cambios.

Elementos de la columna Cb

Cada celda de esta columna es igual al coeficiente que corresponde a la variable básica de la fila correspondiente.

Cb1 = 0;

Cb2 = 0;

Cb3 = 0;

Cb4 = 4;

Cb5 = -M;

Valores de las variables y columna P

(Los datos de la iteración anterior se toman como datos iniciales)

Llenamos con ceros todas las celdas correspondientes a la variable que acaba de entrar a la base:

(El elemento resolutivo permanece sin cambios)

x1,2 = 0;

x2,2 = 0;

x3,2 = 0;

x5,2 = 0;

Trasladamos la fila con el elemento resolutivo de la tabla anterior a la tabla actual, dividiendo elemento a elemento sus valores entre el elemento resolutivo:

x4,1 = x4,1x4,2 = 02 = 0;

x4,2 = x4,2x4,2 = 22 = 1;

x4,3 = x4,3x4,2 = 02 = 0;

x4,4 = x4,4x4,2 = 02 = 0;

x4,5 = x4,5x4,2 = 02 = 0;

x4,6 = x4,6x4,2 = -12 = -12;

x4,7 = x4,7x4,2 = 02 = 0;

x4,8 = x4,8x4,2 = 12 = 12;

x4,9 = x4,9x4,2 = 02 = 0;

P4 = P4x4,2 = 1502 = 75;

Las celdas vacías restantes, excepto la fila de estimaciones y la columna Q, se calculan usando el método del rectángulo respecto al elemento resolutivo:

x1,1 = (x1,1 * x4,2) - (x1,2 * x4,1)x4,2 = (2 * 2) - (1 * 0)2 = 2;

x1,3 = (x1,3 * x4,2) - (x1,2 * x4,3)x4,2 = (1 * 2) - (1 * 0)2 = 1;

x1,4 = (x1,4 * x4,2) - (x1,2 * x4,4)x4,2 = (0 * 2) - (1 * 0)2 = 0;

x1,5 = (x1,5 * x4,2) - (x1,2 * x4,5)x4,2 = (0 * 2) - (1 * 0)2 = 0;

x1,6 = (x1,6 * x4,2) - (x1,2 * x4,6)x4,2 = (0 * 2) - (1 * -1)2 = 12;

x1,7 = (x1,7 * x4,2) - (x1,2 * x4,7)x4,2 = (0 * 2) - (1 * 0)2 = 0;

x1,8 = (x1,8 * x4,2) - (x1,2 * x4,8)x4,2 = (0 * 2) - (1 * 1)2 = -12;

x1,9 = (x1,9 * x4,2) - (x1,2 * x4,9)x4,2 = (0 * 2) - (1 * 0)2 = 0;

P1 = (P1 * x4,2) - (x1,2 * P4)x4,2 = (600 * 2) - (1 * 150)2 = 525;

x2,1 = (x2,1 * x4,2) - (x2,2 * x4,1)x4,2 = (0 * 2) - (0 * 0)2 = 0;

x2,3 = (x2,3 * x4,2) - (x2,2 * x4,3)x4,2 = (0 * 2) - (0 * 0)2 = 0;

x2,4 = (x2,4 * x4,2) - (x2,2 * x4,4)x4,2 = (1 * 2) - (0 * 0)2 = 1;

x2,5 = (x2,5 * x4,2) - (x2,2 * x4,5)x4,2 = (0 * 2) - (0 * 0)2 = 0;

x2,6 = (x2,6 * x4,2) - (x2,2 * x4,6)x4,2 = (0 * 2) - (0 * -1)2 = 0;

x2,7 = (x2,7 * x4,2) - (x2,2 * x4,7)x4,2 = (0 * 2) - (0 * 0)2 = 0;

x2,8 = (x2,8 * x4,2) - (x2,2 * x4,8)x4,2 = (0 * 2) - (0 * 1)2 = 0;

x2,9 = (x2,9 * x4,2) - (x2,2 * x4,9)x4,2 = (0 * 2) - (0 * 0)2 = 0;

P2 = (P2 * x4,2) - (x2,2 * P4)x4,2 = (225 * 2) - (0 * 150)2 = 225;

x3,1 = (x3,1 * x4,2) - (x3,2 * x4,1)x4,2 = (5 * 2) - (4 * 0)2 = 5;

x3,3 = (x3,3 * x4,2) - (x3,2 * x4,3)x4,2 = (0 * 2) - (4 * 0)2 = 0;

x3,4 = (x3,4 * x4,2) - (x3,2 * x4,4)x4,2 = (0 * 2) - (4 * 0)2 = 0;

x3,5 = (x3,5 * x4,2) - (x3,2 * x4,5)x4,2 = (1 * 2) - (4 * 0)2 = 1;

x3,6 = (x3,6 * x4,2) - (x3,2 * x4,6)x4,2 = (0 * 2) - (4 * -1)2 = 2;

x3,7 = (x3,7 * x4,2) - (x3,2 * x4,7)x4,2 = (0 * 2) - (4 * 0)2 = 0;

x3,8 = (x3,8 * x4,2) - (x3,2 * x4,8)x4,2 = (0 * 2) - (4 * 1)2 = -2;

x3,9 = (x3,9 * x4,2) - (x3,2 * x4,9)x4,2 = (0 * 2) - (4 * 0)2 = 0;

P3 = (P3 * x4,2) - (x3,2 * P4)x4,2 = (1000 * 2) - (4 * 150)2 = 700;

x5,1 = (x5,1 * x4,2) - (x5,2 * x4,1)x4,2 = (0 * 2) - (0 * 0)2 = 0;

x5,3 = (x5,3 * x4,2) - (x5,2 * x4,3)x4,2 = (0 * 2) - (0 * 0)2 = 0;

x5,4 = (x5,4 * x4,2) - (x5,2 * x4,4)x4,2 = (0 * 2) - (0 * 0)2 = 0;

x5,5 = (x5,5 * x4,2) - (x5,2 * x4,5)x4,2 = (0 * 2) - (0 * 0)2 = 0;

x5,6 = (x5,6 * x4,2) - (x5,2 * x4,6)x4,2 = (0 * 2) - (0 * -1)2 = 0;

x5,7 = (x5,7 * x4,2) - (x5,2 * x4,7)x4,2 = (-1 * 2) - (0 * 0)2 = -1;

x5,8 = (x5,8 * x4,2) - (x5,2 * x4,8)x4,2 = (0 * 2) - (0 * 1)2 = 0;

x5,9 = (x5,9 * x4,2) - (x5,2 * x4,9)x4,2 = (1 * 2) - (0 * 0)2 = 1;

P5 = (P5 * x4,2) - (x5,2 * P4)x4,2 = (0 * 2) - (0 * 150)2 = 0;

Valor de la función objetivo

Calculamos el valor de la función objetivo multiplicando elemento a elemento la columna Cb por la columna P y sumando los productos.

MaxP = (Cb1 * P1) + (Cb2 * P2) + (Cb3 * P3) + (Cb4 * P4) + (Cb5 * P5) = (0 * 525) + (0 * 225) + (0 * 700) + (4 * 75) + (-M * 0) = 300;

Estimaciones de las variables controladas

Calculamos las estimaciones para cada variable controlada multiplicando elemento a elemento el valor de la columna de la variable por el valor de la columna Cb, sumando los productos y restando el coeficiente de la función objetivo para esa variable.

Maxx1 = ((Cb1 * x1,1) + (Cb2 * x2,1) + (Cb3 * x3,1) + (Cb4 * x4,1) + (Cb5 * x5,1)) - kx1 = ((0 * 2) + (0 * 0) + (0 * 5) + (4 * 0) + (-M * 0)) - 3 = -3;

Maxx2 = ((Cb1 * x1,2) + (Cb2 * x2,2) + (Cb3 * x3,2) + (Cb4 * x4,2) + (Cb5 * x5,2)) - kx2 = ((0 * 0) + (0 * 0) + (0 * 0) + (4 * 1) + (-M * 0)) - 4 = 0;

Maxx3 = ((Cb1 * x1,3) + (Cb2 * x2,3) + (Cb3 * x3,3) + (Cb4 * x4,3) + (Cb5 * x5,3)) - kx3 = ((0 * 1) + (0 * 0) + (0 * 0) + (4 * 0) + (-M * 0)) - 0 = 0;

Maxx4 = ((Cb1 * x1,4) + (Cb2 * x2,4) + (Cb3 * x3,4) + (Cb4 * x4,4) + (Cb5 * x5,4)) - kx4 = ((0 * 0) + (0 * 1) + (0 * 0) + (4 * 0) + (-M * 0)) - 0 = 0;

Maxx5 = ((Cb1 * x1,5) + (Cb2 * x2,5) + (Cb3 * x3,5) + (Cb4 * x4,5) + (Cb5 * x5,5)) - kx5 = ((0 * 0) + (0 * 0) + (0 * 1) + (4 * 0) + (-M * 0)) - 0 = 0;

Maxx6 = ((Cb1 * x1,6) + (Cb2 * x2,6) + (Cb3 * x3,6) + (Cb4 * x4,6) + (Cb5 * x5,6)) - kx6 = ((0 * 12) + (0 * 0) + (0 * 2) + (4 * -12) + (-M * 0)) - 0 = -2;

Maxx7 = ((Cb1 * x1,7) + (Cb2 * x2,7) + (Cb3 * x3,7) + (Cb4 * x4,7) + (Cb5 * x5,7)) - kx7 = ((0 * 0) + (0 * 0) + (0 * 0) + (4 * 0) + (-M * -1)) - 0 = M;

Maxx8 = ((Cb1 * x1,8) + (Cb2 * x2,8) + (Cb3 * x3,8) + (Cb4 * x4,8) + (Cb5 * x5,8)) - kx8 = ((0 * -12) + (0 * 0) + (0 * -2) + (4 * 12) + (-M * 0)) - -M = M+2;

Maxx9 = ((Cb1 * x1,9) + (Cb2 * x2,9) + (Cb3 * x3,9) + (Cb4 * x4,9) + (Cb5 * x5,9)) - kx9 = ((0 * 0) + (0 * 0) + (0 * 0) + (4 * 0) + (-M * 1)) - -M = 0;

Elementos de la columna Q

Como hay valores negativos entre las estimaciones de las variables controladas, la tabla actual aún no tiene solución óptima. Por lo tanto, introducimos en la base la variable con la estimación negativa más pequeña.

El número de variables en la base es siempre constante, por lo que es necesario elegir qué variable sacar de la base, para lo cual calculamos Q.

Los elementos de la columna Q se calculan dividiendo los valores de la columna P entre el valor de la columna correspondiente a la variable que entra a la base:

Q1 = P1x1,1 = 5252 = 26212;

Q2 = P2x2,1 = 2250 = ;

Q3 = P3x3,1 = 7005 = 140;

Q4 = P4x4,1 = 750 = ;

Q5 = P5x5,1 = 00 = ;

Sacamos de la base la variable con el valor positivo más pequeño de Q.

En la intersección de la fila que corresponde a la variable que sale de la base y la columna que corresponde a la variable que entra a la base se encuentra el elemento resolutivo.

Este elemento nos permitirá calcular los elementos de la tabla de la siguiente iteración.

Descripción
4
Iteración 3
BCbPx1x2x3x4x5x6x7x8x9Q
3400000-M-M
x302450010-25-31003100
x40225000100000
x13140100015250-250350
x247501000-120120
x9-M0000000-101
max720000035-45MM+450

Elementos de la columna base (B)

Con los resultados de los cálculos de la iteración anterior, extraemos de la base la variable x5 y en su lugar introducimos x1. El resto de las celdas permanece sin cambios.

Elementos de la columna Cb

Cada celda de esta columna es igual al coeficiente que corresponde a la variable básica de la fila correspondiente.

Cb1 = 0;

Cb2 = 0;

Cb3 = 3;

Cb4 = 4;

Cb5 = -M;

Valores de las variables y columna P

(Los datos de la iteración anterior se toman como datos iniciales)

Llenamos con ceros todas las celdas correspondientes a la variable que acaba de entrar a la base:

(El elemento resolutivo permanece sin cambios)

x1,1 = 0;

x2,1 = 0;

x4,1 = 0;

x5,1 = 0;

Trasladamos la fila con el elemento resolutivo de la tabla anterior a la tabla actual, dividiendo elemento a elemento sus valores entre el elemento resolutivo:

x3,1 = x3,1x3,1 = 55 = 1;

x3,2 = x3,2x3,1 = 05 = 0;

x3,3 = x3,3x3,1 = 05 = 0;

x3,4 = x3,4x3,1 = 05 = 0;

x3,5 = x3,5x3,1 = 15 = 15;

x3,6 = x3,6x3,1 = 25 = 25;

x3,7 = x3,7x3,1 = 05 = 0;

x3,8 = x3,8x3,1 = -25 = -25;

x3,9 = x3,9x3,1 = 05 = 0;

P3 = P3x3,1 = 7005 = 140;

Las celdas vacías restantes, excepto la fila de estimaciones y la columna Q, se calculan usando el método del rectángulo respecto al elemento resolutivo:

x1,2 = (x1,2 * x3,1) - (x1,1 * x3,2)x3,1 = (0 * 5) - (2 * 0)5 = 0;

x1,3 = (x1,3 * x3,1) - (x1,1 * x3,3)x3,1 = (1 * 5) - (2 * 0)5 = 1;

x1,4 = (x1,4 * x3,1) - (x1,1 * x3,4)x3,1 = (0 * 5) - (2 * 0)5 = 0;

x1,5 = (x1,5 * x3,1) - (x1,1 * x3,5)x3,1 = (0 * 5) - (2 * 1)5 = -25;

x1,6 = (x1,6 * x3,1) - (x1,1 * x3,6)x3,1 = (12 * 5) - (2 * 2)5 = -310;

x1,7 = (x1,7 * x3,1) - (x1,1 * x3,7)x3,1 = (0 * 5) - (2 * 0)5 = 0;

x1,8 = (x1,8 * x3,1) - (x1,1 * x3,8)x3,1 = (-12 * 5) - (2 * -2)5 = 310;

x1,9 = (x1,9 * x3,1) - (x1,1 * x3,9)x3,1 = (0 * 5) - (2 * 0)5 = 0;

P1 = (P1 * x3,1) - (x1,1 * P3)x3,1 = (525 * 5) - (2 * 700)5 = 245;

x2,2 = (x2,2 * x3,1) - (x2,1 * x3,2)x3,1 = (0 * 5) - (0 * 0)5 = 0;

x2,3 = (x2,3 * x3,1) - (x2,1 * x3,3)x3,1 = (0 * 5) - (0 * 0)5 = 0;

x2,4 = (x2,4 * x3,1) - (x2,1 * x3,4)x3,1 = (1 * 5) - (0 * 0)5 = 1;

x2,5 = (x2,5 * x3,1) - (x2,1 * x3,5)x3,1 = (0 * 5) - (0 * 1)5 = 0;

x2,6 = (x2,6 * x3,1) - (x2,1 * x3,6)x3,1 = (0 * 5) - (0 * 2)5 = 0;

x2,7 = (x2,7 * x3,1) - (x2,1 * x3,7)x3,1 = (0 * 5) - (0 * 0)5 = 0;

x2,8 = (x2,8 * x3,1) - (x2,1 * x3,8)x3,1 = (0 * 5) - (0 * -2)5 = 0;

x2,9 = (x2,9 * x3,1) - (x2,1 * x3,9)x3,1 = (0 * 5) - (0 * 0)5 = 0;

P2 = (P2 * x3,1) - (x2,1 * P3)x3,1 = (225 * 5) - (0 * 700)5 = 225;

x4,2 = (x4,2 * x3,1) - (x4,1 * x3,2)x3,1 = (1 * 5) - (0 * 0)5 = 1;

x4,3 = (x4,3 * x3,1) - (x4,1 * x3,3)x3,1 = (0 * 5) - (0 * 0)5 = 0;

x4,4 = (x4,4 * x3,1) - (x4,1 * x3,4)x3,1 = (0 * 5) - (0 * 0)5 = 0;

x4,5 = (x4,5 * x3,1) - (x4,1 * x3,5)x3,1 = (0 * 5) - (0 * 1)5 = 0;

x4,6 = (x4,6 * x3,1) - (x4,1 * x3,6)x3,1 = (-12 * 5) - (0 * 2)5 = -12;

x4,7 = (x4,7 * x3,1) - (x4,1 * x3,7)x3,1 = (0 * 5) - (0 * 0)5 = 0;

x4,8 = (x4,8 * x3,1) - (x4,1 * x3,8)x3,1 = (12 * 5) - (0 * -2)5 = 12;

x4,9 = (x4,9 * x3,1) - (x4,1 * x3,9)x3,1 = (0 * 5) - (0 * 0)5 = 0;

P4 = (P4 * x3,1) - (x4,1 * P3)x3,1 = (75 * 5) - (0 * 700)5 = 75;

x5,2 = (x5,2 * x3,1) - (x5,1 * x3,2)x3,1 = (0 * 5) - (0 * 0)5 = 0;

x5,3 = (x5,3 * x3,1) - (x5,1 * x3,3)x3,1 = (0 * 5) - (0 * 0)5 = 0;

x5,4 = (x5,4 * x3,1) - (x5,1 * x3,4)x3,1 = (0 * 5) - (0 * 0)5 = 0;

x5,5 = (x5,5 * x3,1) - (x5,1 * x3,5)x3,1 = (0 * 5) - (0 * 1)5 = 0;

x5,6 = (x5,6 * x3,1) - (x5,1 * x3,6)x3,1 = (0 * 5) - (0 * 2)5 = 0;

x5,7 = (x5,7 * x3,1) - (x5,1 * x3,7)x3,1 = (-1 * 5) - (0 * 0)5 = -1;

x5,8 = (x5,8 * x3,1) - (x5,1 * x3,8)x3,1 = (0 * 5) - (0 * -2)5 = 0;

x5,9 = (x5,9 * x3,1) - (x5,1 * x3,9)x3,1 = (1 * 5) - (0 * 0)5 = 1;

P5 = (P5 * x3,1) - (x5,1 * P3)x3,1 = (0 * 5) - (0 * 700)5 = 0;

Valor de la función objetivo

Calculamos el valor de la función objetivo multiplicando elemento a elemento la columna Cb por la columna P y sumando los productos.

MaxP = (Cb1 * P1) + (Cb2 * P2) + (Cb3 * P3) + (Cb4 * P4) + (Cb5 * P5) = (0 * 245) + (0 * 225) + (3 * 140) + (4 * 75) + (-M * 0) = 720;

Estimaciones de las variables controladas

Calculamos las estimaciones para cada variable controlada multiplicando elemento a elemento el valor de la columna de la variable por el valor de la columna Cb, sumando los productos y restando el coeficiente de la función objetivo para esa variable.

Maxx1 = ((Cb1 * x1,1) + (Cb2 * x2,1) + (Cb3 * x3,1) + (Cb4 * x4,1) + (Cb5 * x5,1)) - kx1 = ((0 * 0) + (0 * 0) + (3 * 1) + (4 * 0) + (-M * 0)) - 3 = 0;

Maxx2 = ((Cb1 * x1,2) + (Cb2 * x2,2) + (Cb3 * x3,2) + (Cb4 * x4,2) + (Cb5 * x5,2)) - kx2 = ((0 * 0) + (0 * 0) + (3 * 0) + (4 * 1) + (-M * 0)) - 4 = 0;

Maxx3 = ((Cb1 * x1,3) + (Cb2 * x2,3) + (Cb3 * x3,3) + (Cb4 * x4,3) + (Cb5 * x5,3)) - kx3 = ((0 * 1) + (0 * 0) + (3 * 0) + (4 * 0) + (-M * 0)) - 0 = 0;

Maxx4 = ((Cb1 * x1,4) + (Cb2 * x2,4) + (Cb3 * x3,4) + (Cb4 * x4,4) + (Cb5 * x5,4)) - kx4 = ((0 * 0) + (0 * 1) + (3 * 0) + (4 * 0) + (-M * 0)) - 0 = 0;

Maxx5 = ((Cb1 * x1,5) + (Cb2 * x2,5) + (Cb3 * x3,5) + (Cb4 * x4,5) + (Cb5 * x5,5)) - kx5 = ((0 * -25) + (0 * 0) + (3 * 15) + (4 * 0) + (-M * 0)) - 0 = 35;

Maxx6 = ((Cb1 * x1,6) + (Cb2 * x2,6) + (Cb3 * x3,6) + (Cb4 * x4,6) + (Cb5 * x5,6)) - kx6 = ((0 * -310) + (0 * 0) + (3 * 25) + (4 * -12) + (-M * 0)) - 0 = -45;

Maxx7 = ((Cb1 * x1,7) + (Cb2 * x2,7) + (Cb3 * x3,7) + (Cb4 * x4,7) + (Cb5 * x5,7)) - kx7 = ((0 * 0) + (0 * 0) + (3 * 0) + (4 * 0) + (-M * -1)) - 0 = M;

Maxx8 = ((Cb1 * x1,8) + (Cb2 * x2,8) + (Cb3 * x3,8) + (Cb4 * x4,8) + (Cb5 * x5,8)) - kx8 = ((0 * 310) + (0 * 0) + (3 * -25) + (4 * 12) + (-M * 0)) - -M = M+45;

Maxx9 = ((Cb1 * x1,9) + (Cb2 * x2,9) + (Cb3 * x3,9) + (Cb4 * x4,9) + (Cb5 * x5,9)) - kx9 = ((0 * 0) + (0 * 0) + (3 * 0) + (4 * 0) + (-M * 1)) - -M = 0;

Elementos de la columna Q

Como hay valores negativos entre las estimaciones de las variables controladas, la tabla actual aún no tiene solución óptima. Por lo tanto, introducimos en la base la variable con la estimación negativa más pequeña.

El número de variables en la base es siempre constante, por lo que es necesario elegir qué variable sacar de la base, para lo cual calculamos Q.

Los elementos de la columna Q se calculan dividiendo los valores de la columna P entre el valor de la columna correspondiente a la variable que entra a la base:

Q1 = P1x1,6 = 245-310 = ;

Q2 = P2x2,6 = 2250 = ;

Q3 = P3x3,6 = 14025 = 350;

Q4 = P4x4,6 = 75-12 = ;

Q5 = P5x5,6 = 00 = ;

Sacamos de la base la variable con el valor positivo más pequeño de Q.

En la intersección de la fila que corresponde a la variable que sale de la base y la columna que corresponde a la variable que entra a la base se encuentra el elemento resolutivo.

Este elemento nos permitirá calcular los elementos de la tabla de la siguiente iteración.

Descripción
5
Iteración 4
BCbPx1x2x3x4x5x6x7x8x9Q
3400000-M-M
x3035034010-140000
x40225000100000
x603502120001210-10
x24250114100140000
x9-M0000000-101
max1000200010MM0

Elementos de la columna base (B)

Con los resultados de los cálculos de la iteración anterior, extraemos de la base la variable x1 y en su lugar introducimos x6. El resto de las celdas permanece sin cambios.

Elementos de la columna Cb

Cada celda de esta columna es igual al coeficiente que corresponde a la variable básica de la fila correspondiente.

Cb1 = 0;

Cb2 = 0;

Cb3 = 0;

Cb4 = 4;

Cb5 = -M;

Valores de las variables y columna P

(Los datos de la iteración anterior se toman como datos iniciales)

Llenamos con ceros todas las celdas correspondientes a la variable que acaba de entrar a la base:

(El elemento resolutivo permanece sin cambios)

x1,6 = 0;

x2,6 = 0;

x4,6 = 0;

x5,6 = 0;

Trasladamos la fila con el elemento resolutivo de la tabla anterior a la tabla actual, dividiendo elemento a elemento sus valores entre el elemento resolutivo:

x3,1 = x3,1x3,6 = 125 = 212;

x3,2 = x3,2x3,6 = 025 = 0;

x3,3 = x3,3x3,6 = 025 = 0;

x3,4 = x3,4x3,6 = 025 = 0;

x3,5 = x3,5x3,6 = 1525 = 12;

x3,6 = x3,6x3,6 = 2525 = 1;

x3,7 = x3,7x3,6 = 025 = 0;

x3,8 = x3,8x3,6 = -2525 = -1;

x3,9 = x3,9x3,6 = 025 = 0;

P3 = P3x3,6 = 14025 = 350;

Las celdas vacías restantes, excepto la fila de estimaciones y la columna Q, se calculan usando el método del rectángulo respecto al elemento resolutivo:

x1,1 = (x1,1 * x3,6) - (x1,6 * x3,1)x3,6 = (0 * 25) - (-310 * 1)25 = 34;

x1,2 = (x1,2 * x3,6) - (x1,6 * x3,2)x3,6 = (0 * 25) - (-310 * 0)25 = 0;

x1,3 = (x1,3 * x3,6) - (x1,6 * x3,3)x3,6 = (1 * 25) - (-310 * 0)25 = 1;

x1,4 = (x1,4 * x3,6) - (x1,6 * x3,4)x3,6 = (0 * 25) - (-310 * 0)25 = 0;

x1,5 = (x1,5 * x3,6) - (x1,6 * x3,5)x3,6 = (-25 * 25) - (-310 * 15)25 = -14;

x1,7 = (x1,7 * x3,6) - (x1,6 * x3,7)x3,6 = (0 * 25) - (-310 * 0)25 = 0;

x1,8 = (x1,8 * x3,6) - (x1,6 * x3,8)x3,6 = (310 * 25) - (-310 * -25)25 = 0;

x1,9 = (x1,9 * x3,6) - (x1,6 * x3,9)x3,6 = (0 * 25) - (-310 * 0)25 = 0;

P1 = (P1 * x3,6) - (x1,6 * P3)x3,6 = (245 * 25) - (-310 * 140)25 = 350;

x2,1 = (x2,1 * x3,6) - (x2,6 * x3,1)x3,6 = (0 * 25) - (0 * 1)25 = 0;

x2,2 = (x2,2 * x3,6) - (x2,6 * x3,2)x3,6 = (0 * 25) - (0 * 0)25 = 0;

x2,3 = (x2,3 * x3,6) - (x2,6 * x3,3)x3,6 = (0 * 25) - (0 * 0)25 = 0;

x2,4 = (x2,4 * x3,6) - (x2,6 * x3,4)x3,6 = (1 * 25) - (0 * 0)25 = 1;

x2,5 = (x2,5 * x3,6) - (x2,6 * x3,5)x3,6 = (0 * 25) - (0 * 15)25 = 0;

x2,7 = (x2,7 * x3,6) - (x2,6 * x3,7)x3,6 = (0 * 25) - (0 * 0)25 = 0;

x2,8 = (x2,8 * x3,6) - (x2,6 * x3,8)x3,6 = (0 * 25) - (0 * -25)25 = 0;

x2,9 = (x2,9 * x3,6) - (x2,6 * x3,9)x3,6 = (0 * 25) - (0 * 0)25 = 0;

P2 = (P2 * x3,6) - (x2,6 * P3)x3,6 = (225 * 25) - (0 * 140)25 = 225;

x4,1 = (x4,1 * x3,6) - (x4,6 * x3,1)x3,6 = (0 * 25) - (-12 * 1)25 = 114;

x4,2 = (x4,2 * x3,6) - (x4,6 * x3,2)x3,6 = (1 * 25) - (-12 * 0)25 = 1;

x4,3 = (x4,3 * x3,6) - (x4,6 * x3,3)x3,6 = (0 * 25) - (-12 * 0)25 = 0;

x4,4 = (x4,4 * x3,6) - (x4,6 * x3,4)x3,6 = (0 * 25) - (-12 * 0)25 = 0;

x4,5 = (x4,5 * x3,6) - (x4,6 * x3,5)x3,6 = (0 * 25) - (-12 * 15)25 = 14;

x4,7 = (x4,7 * x3,6) - (x4,6 * x3,7)x3,6 = (0 * 25) - (-12 * 0)25 = 0;

x4,8 = (x4,8 * x3,6) - (x4,6 * x3,8)x3,6 = (12 * 25) - (-12 * -25)25 = 0;

x4,9 = (x4,9 * x3,6) - (x4,6 * x3,9)x3,6 = (0 * 25) - (-12 * 0)25 = 0;

P4 = (P4 * x3,6) - (x4,6 * P3)x3,6 = (75 * 25) - (-12 * 140)25 = 250;

x5,1 = (x5,1 * x3,6) - (x5,6 * x3,1)x3,6 = (0 * 25) - (0 * 1)25 = 0;

x5,2 = (x5,2 * x3,6) - (x5,6 * x3,2)x3,6 = (0 * 25) - (0 * 0)25 = 0;

x5,3 = (x5,3 * x3,6) - (x5,6 * x3,3)x3,6 = (0 * 25) - (0 * 0)25 = 0;

x5,4 = (x5,4 * x3,6) - (x5,6 * x3,4)x3,6 = (0 * 25) - (0 * 0)25 = 0;

x5,5 = (x5,5 * x3,6) - (x5,6 * x3,5)x3,6 = (0 * 25) - (0 * 15)25 = 0;

x5,7 = (x5,7 * x3,6) - (x5,6 * x3,7)x3,6 = (-1 * 25) - (0 * 0)25 = -1;

x5,8 = (x5,8 * x3,6) - (x5,6 * x3,8)x3,6 = (0 * 25) - (0 * -25)25 = 0;

x5,9 = (x5,9 * x3,6) - (x5,6 * x3,9)x3,6 = (1 * 25) - (0 * 0)25 = 1;

P5 = (P5 * x3,6) - (x5,6 * P3)x3,6 = (0 * 25) - (0 * 140)25 = 0;

Valor de la función objetivo

Calculamos el valor de la función objetivo multiplicando elemento a elemento la columna Cb por la columna P y sumando los productos.

MaxP = (Cb1 * P1) + (Cb2 * P2) + (Cb3 * P3) + (Cb4 * P4) + (Cb5 * P5) = (0 * 350) + (0 * 225) + (0 * 350) + (4 * 250) + (-M * 0) = 1000;

Estimaciones de las variables controladas

Calculamos las estimaciones para cada variable controlada multiplicando elemento a elemento el valor de la columna de la variable por el valor de la columna Cb, sumando los productos y restando el coeficiente de la función objetivo para esa variable.

Maxx1 = ((Cb1 * x1,1) + (Cb2 * x2,1) + (Cb3 * x3,1) + (Cb4 * x4,1) + (Cb5 * x5,1)) - kx1 = ((0 * 34) + (0 * 0) + (0 * 212) + (4 * 114) + (-M * 0)) - 3 = 2;

Maxx2 = ((Cb1 * x1,2) + (Cb2 * x2,2) + (Cb3 * x3,2) + (Cb4 * x4,2) + (Cb5 * x5,2)) - kx2 = ((0 * 0) + (0 * 0) + (0 * 0) + (4 * 1) + (-M * 0)) - 4 = 0;

Maxx3 = ((Cb1 * x1,3) + (Cb2 * x2,3) + (Cb3 * x3,3) + (Cb4 * x4,3) + (Cb5 * x5,3)) - kx3 = ((0 * 1) + (0 * 0) + (0 * 0) + (4 * 0) + (-M * 0)) - 0 = 0;

Maxx4 = ((Cb1 * x1,4) + (Cb2 * x2,4) + (Cb3 * x3,4) + (Cb4 * x4,4) + (Cb5 * x5,4)) - kx4 = ((0 * 0) + (0 * 1) + (0 * 0) + (4 * 0) + (-M * 0)) - 0 = 0;

Maxx5 = ((Cb1 * x1,5) + (Cb2 * x2,5) + (Cb3 * x3,5) + (Cb4 * x4,5) + (Cb5 * x5,5)) - kx5 = ((0 * -14) + (0 * 0) + (0 * 12) + (4 * 14) + (-M * 0)) - 0 = 1;

Maxx6 = ((Cb1 * x1,6) + (Cb2 * x2,6) + (Cb3 * x3,6) + (Cb4 * x4,6) + (Cb5 * x5,6)) - kx6 = ((0 * 0) + (0 * 0) + (0 * 1) + (4 * 0) + (-M * 0)) - 0 = 0;

Maxx7 = ((Cb1 * x1,7) + (Cb2 * x2,7) + (Cb3 * x3,7) + (Cb4 * x4,7) + (Cb5 * x5,7)) - kx7 = ((0 * 0) + (0 * 0) + (0 * 0) + (4 * 0) + (-M * -1)) - 0 = M;

Maxx8 = ((Cb1 * x1,8) + (Cb2 * x2,8) + (Cb3 * x3,8) + (Cb4 * x4,8) + (Cb5 * x5,8)) - kx8 = ((0 * 0) + (0 * 0) + (0 * -1) + (4 * 0) + (-M * 0)) - -M = M;

Maxx9 = ((Cb1 * x1,9) + (Cb2 * x2,9) + (Cb3 * x3,9) + (Cb4 * x4,9) + (Cb5 * x5,9)) - kx9 = ((0 * 0) + (0 * 0) + (0 * 0) + (4 * 0) + (-M * 1)) - -M = 0;

Respuesta

Como no hay valores negativos entre las estimaciones de las variables controladas, la tabla actual tiene una solución óptima.

El valor de la función objetivo:

F* = 1000;

Las variables presentes en la base son iguales a las celdas correspondientes de la columna P; todas las demás variables son iguales a cero:

x1 = 0;

x2 = 250;

Descripción
Answer
F → max
F* = 1000
X* = (0250)
Variables2Restricciones5ObjetivomaxF*1000

  Preguntas frecuentes

¿Para qué se utiliza el método símplex?

El método símplex resuelve problemas de programación lineal: maximizar o minimizar una función objetivo lineal sujeta a restricciones lineales de desigualdad o igualdad. Se desplaza entre los vértices de la región factible, mejorando el objetivo en cada paso hasta alcanzar el óptimo.

¿Cómo gestiona esta calculadora la maximización frente a la minimización?

Elige «máx» o «mín» encima de la fila del objetivo. La minimización se resuelve internamente negando el objetivo y maximizando, de modo que el óptimo reportado siempre coincide con la dirección que seleccionaste.

¿Qué significan los resultados «no factible» y «no acotado»?

«No factible» significa que ningún punto satisface todas las restricciones a la vez, por lo que no hay solución. «No acotado» significa que el objetivo puede crecer sin límite dentro de la región factible, por lo que no existe un óptimo finito. La calculadora reporta estos casos en lugar de un óptimo numérico.

¿Por qué se utilizan variables artificiales y una M grande?

Las restricciones de tipo ≥ o = no tienen una solución básica factible inicial evidente, por lo que el método añade variables artificiales y las penaliza con una constante grande M en el objetivo. Esta penalización de la M grande lleva las variables artificiales a cero, recuperando una solución válida del problema original.

  Fuentes