En la teoría de la programación lineal , una solución factible básica ( SFB ) es una solución con un conjunto mínimo de variables no nulas. Geométricamente, cada SFB corresponde a un vértice del poliedro de soluciones factibles. Si existe una solución óptima, entonces existe una SFB óptima. Por lo tanto, para encontrar una solución óptima, basta con considerar las SFB. Este hecho es utilizado por el algoritmo simplex , que esencialmente va de una SFB a otra hasta encontrar una solución óptima. [ 1 ]
Definiciones
Preliminares: forma ecuacional con filas linealmente independientes
Para las definiciones que siguen, primero presentamos el programa lineal en la llamada forma ecuacional :
- maximizar
- sujeto ay
dónde:
- yson vectores de tamaño n (el número de variables);
- es un vector de tamaño m (el número de restricciones);
- es una matriz de m por n ;
- significa que todas las variables son no negativas.
Cualquier programa lineal puede convertirse en una forma ecuacional añadiendo variables de holgura .
Como paso preliminar de limpieza, verificamos que:
- El sistematiene al menos una solución (de lo contrario, todo el problema de programación lineal no tiene solución y no hay nada más que hacer);
- Todas las m filas de la matrizson linealmente independientes , es decir, su rango es m (de lo contrario, podemos simplemente eliminar filas redundantes sin cambiar el LP).
Solución viable
Una solución factible del LP es cualquier vectorde tal manera queSuponemos que existe al menos una solución factible. Si m = n , entonces solo hay una solución factible. Normalmente m < n , por lo que el sistematiene muchas soluciones; cada una de esas soluciones se denomina solución factible del LP.
Base
Una base del LP es una submatriz no singular de A, con todas las filas de m y solo m < n columnas.
A veces, el término base se usa no para la submatriz en sí, sino para el conjunto de índices de sus columnas. Sea B un subconjunto de m índices de {1,..., n }. Denotemos porla matriz cuadrada m x m formada por las m columnas deindexado por B. Sies no singular , las columnas indexadas por B son una base del espacio columna deEn este caso, llamamos B una base del LP.
Desde el rango dees m , tiene al menos una base; ya quetiene n columnas, tiene como máximobases.
Solución básica factible
Dada una base B , decimos que una solución factiblees una solución factible básica con base B si todas sus variables no nulas están indexadas por B , es decir, para todo.
Propiedades
1. Un BFS está determinado únicamente por las restricciones del LP (la matrizy el vector); no depende del objetivo de optimización.
2. Por definición, una BFS tiene como máximo m variables distintas de cero y como mínimo n - m variables nulas. Una BFS puede tener menos de m variables distintas de cero; en ese caso, puede tener muchas bases diferentes, todas las cuales contienen los índices de sus variables distintas de cero.
3. Una solución factiblees básico si y solo si las columnas de la matrizson linealmente independientes, donde K es el conjunto de índices de los elementos no nulos de. [ 1 ] : 45
4. Cada base determina una BFS única: para cada base B de m índices, hay como máximo una BFS. con base B. Esto se debe a quedebe satisfacer la restriccióny por definición de base la matrizes no singular, por lo que la restricción tiene una solución única:
Lo contrario no es cierto: cada BFS puede provenir de muchas bases diferentes. Si la solución única desatisface las restricciones de no negatividad, entonces B se denomina una base factible .
5. Si un programa lineal tiene una solución óptima (es decir, tiene una solución factible y el conjunto de soluciones factibles es acotado), entonces tiene una BFS óptima. Esto es consecuencia del principio del máximo de Bauer : la función objetivo de un programa lineal es convexa; el conjunto de soluciones factibles es convexo (es una intersección de hiperespacios); por lo tanto, la función objetivo alcanza su máximo en un punto extremo del conjunto de soluciones factibles.
Dado que el número de BFS es finito y está acotado por, se puede encontrar una solución óptima para cualquier LP en tiempo finito simplemente evaluando la función objetivo en todos losBFS-s. Esta no es la forma más eficiente de resolver un LP; el algoritmo simplex examina los BFS-s de una manera mucho más eficiente.
Ejemplos
Consideremos un programa lineal con las siguientes restricciones:
La matriz A es:
Aquí, m = 2 y hay 10 subconjuntos de 2 índices, sin embargo, no todos ellos son bases: el conjunto {3,5} no es una base ya que las columnas 3 y 5 son linealmente dependientes.
El conjunto B ={2,4} es una base, ya que la matriz no es singular.
La única BFS correspondiente a esta base es.
Interpretación geométrica

El conjunto de todas las soluciones factibles es una intersección de hiperespacios . Por lo tanto, es un poliedro convexo . Si es acotado, entonces es un politopo convexo . Cada BFS corresponde a un vértice de este politopo. [ 1 ] : 53–56
Soluciones básicas factibles para el problema dual
Como se mencionó anteriormente, cada base B define una solución factible básica única.. De manera similar, cada base define una solución al programa lineal dual :
- minimizar
- sujeto a.
La solución es.
Encontrar una BFS óptima
Existen varios métodos para encontrar una BFS que también sea óptima.
Utilizando el algoritmo simplex
En la práctica, la forma más sencilla de encontrar una BFS óptima es utilizar el algoritmo simplex . Este algoritmo mantiene, en cada punto de su ejecución, una "base actual" B (un subconjunto de m de n variables), una "BFS actual" y un "tableo actual". El tablero es una representación del programa lineal donde las variables básicas se expresan en términos de las no básicas: [ 1 ] : 65dóndees el vector de m variables básicas,es el vector de n variables no básicas, yes el objetivo de maximización. Dado que las variables no básicas son iguales a 0, la BFS actual esy el objetivo de maximización actual es.
Si todos los coeficientes enson negativos, entonceses una solución óptima, ya que todas las variables (incluidas todas las variables no básicas) deben ser al menos 0, por lo que la segunda línea implica.
Si algunos coeficientes enson positivos, entonces puede ser posible aumentar el objetivo de maximización. Por ejemplo, sies no básico y su coeficiente en es positivo, entonces aumentarlo por encima de 0 puede hacermayor. Si es posible hacerlo sin violar otras restricciones, entonces la variable aumentada se convierte en básica ("entra en la base"), mientras que alguna variable básica se reduce a 0 para mantener las restricciones de igualdad y, por lo tanto, se convierte en no básica ("sale de la base").
Si este proceso se realiza con cuidado, entonces es posible garantizar queaumenta hasta alcanzar un BFS óptimo.
Convertir cualquier solución óptima en una BFS óptima.
En el peor de los casos, el algoritmo simplex puede requerir un número exponencial de pasos para completarse. Existen algoritmos para resolver un problema de programación lineal en tiempo débilmente polinomial , como el método del elipsoide ; sin embargo, suelen devolver soluciones óptimas que no son básicas.
Sin embargo, dada cualquier solución óptima al LP, es fácil encontrar una solución factible óptima que también sea básica . [ 2 ] : ver también "enlaces externos" a continuación.
Encontrar una base que sea óptima tanto en el plano primal como en el plano dual.
Una base B del LP se denomina dual-óptima si la solución es una solución óptima al programa lineal dual, es decir, minimizaEn general, una base óptima primal no es necesariamente óptima dual, y una base óptima dual no es necesariamente óptima primal (de hecho, la solución de una base óptima primal puede incluso ser inviable para la base dual, y viceversa).
Si amboses una BFS óptima del LP primal, ySi es una BFS óptima del LP dual, entonces la base B se llama PD-óptima . Todo LP con una solución óptima tiene una base PD-óptima, y se encuentra mediante el algoritmo Simplex . Sin embargo, su tiempo de ejecución es exponencial en el peor de los casos. Nimrod Megiddo demostró los siguientes teoremas: [ 2 ]
- Existe un algoritmo de tiempo fuertemente polinomial que recibe como entrada una solución óptima para el problema de programación lineal primal y una solución óptima para el problema de programación lineal dual, y devuelve una base óptima.
- Si existe un algoritmo de tiempo fuertemente polinomial que introduce una solución óptima solo para el LP primal (o solo para el LP dual) y devuelve una base óptima, entonces existe un algoritmo de tiempo fuertemente polinomial para resolver cualquier programa lineal (este último es un famoso problema abierto ).
Los algoritmos de Megiddo se pueden ejecutar usando un tableau, al igual que el algoritmo simplex. Megiddo, en colaboración con Beling, también propuso un algoritmo rápido que utiliza algoritmos de multiplicación de matrices rápidas . [ 3 ]
Enlaces externos
- Cómo pasar de una solución factible óptima a una solución factible básica óptima . Paul Robin, Operations Research Stack Exchange.
Referencias
- 1 2 3 4 Gärtner, Bernd; Matoušek, Jiří (2006). Comprensión y uso de la programación lineal . Berlín: Springer. ISBN 3-540-30697-8.: 44–48
- 1 2 Megiddo, Nimrod (1991-02-01). "Sobre la búsqueda de bases óptimas primales y duales" . ORSA Journal on Computing . 3 (1): 63– 65. CiteSeerX 10.1.1.11.427 . doi : 10.1287/ijoc.3.1.63 . ISSN 0899-1499 .
- ↑ Beling, Peter A.; Megiddo, N. (1998). "Uso de la multiplicación rápida de matrices para encontrar soluciones básicas". Theoretical Computer Science . 205 ( 1– 2): 307– 316. doi : 10.1016/S0304-3975(98)00003-6 .
- Programación lineal