dalsegno

dalsegno · Método Simplex tabular para programación lineal

El método Simplex resuelve problemas de programación lineal en forma estándar mediante un tableau: primero se añaden variables de holgura (≤), surplus y artificiales (≥, =) con penalización Big-M; luego se itera eligiendo la columna entrante por coste reducido más negativo y la fila saliente por la razón mínima, y se aplica pivoteo (Gauss-Jordan) hasta alcanzar optimalidad o detectar infactibilidad o no acotación.

¿Qué es el método Simplex?

El método Simplex es un algoritmo para resolver problemas de programación lineal. Fue desarrollado por George Dantzig y consiste en ir moviéndose por vértices de la región factible (en el espacio de variables) mejorando el valor de la función objetivo en cada paso hasta llegar al óptimo o detectar que el problema es no acotado o infactible.

Forma estándar. El Simplex trabaja con problemas en forma estándar: maximización (o minimización convertida a max), restricciones de igualdad y variables no negativas. Las desigualdades se transforman usando variables de holgura (≤), surplus y variables artificiales (≥ y =).

Método Big-M. Cuando hay restricciones ≥ o =, se añaden variables artificiales y se penalizan en la función objetivo con un coeficiente -M (en maximización) para que salgan de la base; así se obtiene una base factible inicial o se detecta infactibilidad.

Tableau y pivoteo. El algoritmo se aplica sobre un tableau (tabla) que representa el sistema en forma canónica respecto a la base actual. En cada iteración se elige una variable entrante (por coste reducido más negativo) y una variable saliente (por la regla de la razón mínima), y se realiza un pivoteo tipo Gauss-Jordan. El proceso termina cuando no hay costes reducidos negativos (óptimo), cuando no hay fila saliente (no acotado) o cuando permanecen variables artificiales en la base (infactible).

Plantear el problema

Introduce la función objetivo y las restricciones. Con 2 variables se mostrará la región factible y el óptimo; con más variables se usará Simplex y, si aplica, la proyección sobre x₁, x₂.

Editor del problema

Usa "Aplicar cambios" para crear un snapshot (undo/redo).

Pulsa Enter o haz clic fuera para actualizar.

Cotas por variable

Forma a ≤ xᵢ ≤ b. Dejar vacío = sin cota (∞ o −∞). Por defecto: 0 ≤ xᵢ.

x1
x2

Función objetivo

z =
x1 +
x2

Restricciones

x1 +
x2
x1 +
x2
x1 +
x2
Ver:

Resultado

Estado: Óptimo
Valor óptimo
z* = 10.000000
Solución
x* = (2.000000, 2.000000)
x1* = 2.000000; x2* = 2.000000

Región factible y óptimo