stringtranslate.com

Algoritmo entrecruzado

Un cubo tridimensional
El algoritmo entrecruzado visita las 8 esquinas del cubo de Klee-Minty en el peor de los casos. Visita una media de 3 rincones adicionales. El cubo de Klee-Minty es una perturbación del cubo que se muestra aquí.

En optimización matemática , el algoritmo entrecruzado es cualquiera de una familia de algoritmos para programación lineal . Las variantes del algoritmo entrecruzado también resuelven problemas más generales con restricciones de desigualdad lineal y funciones objetivo no lineales ; existen algoritmos entrecruzados para problemas de programación lineal-fraccional , [1] [2] problemas de programación cuadrática y problemas de complementariedad lineal . [3]

Al igual que el algoritmo simplex de George B. Dantzig , el algoritmo entrecruzado no es un algoritmo de tiempo polinomial para programación lineal. Ambos algoritmos visitan todas las esquinas 2D de un cubo  (perturbado) en la dimensión  D , el cubo de Klee-Minty (después de Victor Klee y George J. Minty ), en el peor de los casos . [4] [5] Sin embargo, cuando se inicia en una esquina aleatoria, el algoritmo entrecruzado visita en promedio solo  D esquinas adicionales. [6] [7] [8] Así, para el cubo tridimensional, el algoritmo visita las 8 esquinas en el peor de los casos y exactamente 3 esquinas adicionales en promedio.

Historia

El algoritmo entrecruzado fue publicado de forma independiente por Tamas Terlaky [9] y por Zhe-Min Wang; [10] algoritmos relacionados aparecieron en informes no publicados de otros autores. [3]

Comparación con el algoritmo simplex para optimización lineal.

En su segunda fase, el algoritmo simplex se arrastra a lo largo de los bordes del politopo hasta llegar finalmente a un vértice óptimo . El algoritmo entrecruzado considera bases que no están asociadas con vértices, de modo que algunas iteraciones pueden estar en el interior de la región factible, como los algoritmos de puntos interiores; el algoritmo entrecruzado también puede tener iteraciones no factibles fuera de la región factible.

En programación lineal, el algoritmo entrecruzado pivota entre una secuencia de bases pero difiere del algoritmo simplex . El algoritmo simplex primero encuentra una base (primal) factible resolviendo un " problema de fase uno "; en la "fase dos", el algoritmo simplex pivota entre una secuencia de soluciones básicas factibles de modo que la función objetivo no decrece con cada pivote, terminando con una solución óptima (y finalmente encontrando una solución "doble factible"). [3] [11]

El algoritmo entrecruzado es más simple que el algoritmo simplex, porque el algoritmo entrecruzado solo tiene una fase. Sus reglas pivotantes son similares a la regla pivotante de índice mínimo de Bland . [12] La regla de Bland utiliza sólo signos de coeficientes en lugar de su orden (número real) al decidir los pivotes elegibles. La regla de Bland selecciona variables entrantes comparando valores de costos reducidos, utilizando el orden de números reales de los pivotes elegibles. [12] [13] A diferencia de la regla de Bland, el algoritmo entrecruzado es "puramente combinatorio", seleccionando una variable entrante y una variable saliente considerando sólo los signos de los coeficientes en lugar de su orden en números reales. [3] [11] El algoritmo entrecruzado se ha aplicado para proporcionar pruebas constructivas de resultados básicos en álgebra lineal , como el lema de Farkas . [14]

Si bien la mayoría de las variantes simplex son monótonas en el objetivo (estrictamente en el caso no degenerado), la mayoría de las variantes del algoritmo entrecruzado carecen de una función de mérito monótona, lo que puede ser una desventaja en la práctica.

Descripción

El algoritmo entrecruzado funciona en un cuadro dinámico estándar (o partes calculadas sobre la marcha de un cuadro, si se implementa como el método simplex revisado). En un paso general, si el cuadro es primario o dual inviable, selecciona una de las filas/columnas inviables como fila/columna dinámica utilizando una regla de selección de índice. Una propiedad importante es que la selección se realiza sobre la unión de los índices no factibles y la versión estándar del algoritmo no distingue índices de columnas y filas (es decir, los índices de columnas básicos en las filas). Si se selecciona una fila, el algoritmo utiliza la regla de selección de índice para identificar una posición para un pivote de tipo dual, mientras que si se selecciona una columna, utiliza la regla de selección de índice para encontrar una posición de fila y realiza un pivote de tipo primario.

Complejidad computacional: casos peores y promedio

La complejidad temporal de un algoritmo cuenta el número de operaciones aritméticas suficientes para que el algoritmo resuelva el problema. Por ejemplo, la eliminación gaussiana requiere del orden de  D 3 operaciones, por lo que se dice que tiene complejidad temporal polinómica, porque su complejidad está limitada por un polinomio cúbico . Hay ejemplos de algoritmos que no tienen complejidad de tiempo polinomial. Por ejemplo, una generalización de la eliminación gaussiana llamada algoritmo de Buchberger tiene por su complejidad una función exponencial de los datos del problema (el grado de los polinomios y el número de variables de los polinomios multivariados ). Debido a que las funciones exponenciales eventualmente crecen mucho más rápido que las funciones polinómicas, una complejidad exponencial implica que un algoritmo tiene un rendimiento lento en problemas grandes.

Varios algoritmos para programación lineal ( el algoritmo elipsoidal de Khachiyan , el algoritmo proyectivo de Karmarkar y los algoritmos de ruta central) tienen complejidad temporal polinómica (en el peor de los casos y, por tanto, en promedio ). Los algoritmos elipsoidal y proyectivo se publicaron antes que el algoritmo entrecruzado.

Sin embargo, al igual que el algoritmo simplex de Dantzig, el algoritmo entrecruzado no es un algoritmo de tiempo polinomial para programación lineal. El algoritmo entrecruzado de Terlaky visita todas las esquinas 2 D  de un cubo (perturbado) en dimensión  D , según un artículo de Roos; El artículo de Roos modifica la construcción de Klee -Minty de un cubo en el que el algoritmo simplex toma  pasos 2 D. [3] [4] [5] Al igual que el algoritmo simplex, el algoritmo entrecruzado visita las 8 esquinas del cubo tridimensional en el peor de los casos.

Sin embargo , cuando se inicializa en una esquina aleatoria del cubo, el algoritmo entrecruzado visita sólo  D esquinas adicionales, según un artículo de 1994 de Fukuda y Namiki. [6] [7] Trivialmente, el algoritmo simplex toma en promedio  D pasos para un cubo. [8] [15] Al igual que el algoritmo simplex, el algoritmo entrecruzado visita exactamente 3 esquinas adicionales del cubo tridimensional en promedio.

Variantes

El algoritmo entrecruzado se ha ampliado para resolver problemas más generales que los problemas de programación lineal.

Otros problemas de optimización con restricciones lineales

Existen variantes del algoritmo entrecruzado para programación lineal, para programación cuadrática y para el problema de complementariedad lineal con "matrices suficientes"; [3] [6] [16] [17] [18] [19] por el contrario, para problemas de complementariedad lineal, el algoritmo entrecruzado termina finitamente sólo si la matriz es una matriz suficiente. [18] [19] Una matriz suficiente es una generalización tanto de una matriz definida positiva como de una matriz P , cuyos menores principales son cada uno de ellos positivos. [18] [19] [20] El algoritmo entrecruzado ha sido adaptado también para programación lineal-fraccional . [1] [2]

Enumeración de vértices

El algoritmo entrecruzado se utilizó en un algoritmo para enumerar todos los vértices de un politopo , que fue publicado por David Avis y Komei Fukuda en 1992. [21] Avis y Fukuda presentaron un algoritmo que encuentra los  v vértices de un poliedro definido por un sistema no degenerado de  n desigualdades lineales en  D dimensiones (o, dualmente, las  v facetas del casco convexo de  n puntos en  D dimensiones, donde cada faceta contiene exactamente  D puntos dados) en el tiempo  O ( nDv ) y el espacio O ( nD ) . [22]

matroides orientadas

El teorema de flujo máximo y corte mínimo establece que el flujo máximo a través de una red es exactamente la capacidad de su corte mínimo. Este teorema se puede demostrar utilizando el algoritmo entrecruzado para matroides orientadas.

El algoritmo entrecruzado a menudo se estudia utilizando la teoría de matroides orientadas (OM), que es una abstracción combinatoria de la teoría de la optimización lineal. [17] [23] De hecho, la regla de pivote de Bland se basó en sus artículos anteriores sobre la teoría de las matroides orientadas. Sin embargo, la regla de Bland muestra ciclos en algunos problemas de programación lineal matroide orientada. [17] El primer algoritmo puramente combinatorio para programación lineal fue ideado por Michael J. Todd. [17] [24] El algoritmo de Todd se desarrolló no sólo para la programación lineal en el entorno de matroides orientadas, sino también para problemas de programación cuadrática y problemas de complementariedad lineal . [17] [24] Desafortunadamente, el algoritmo de Todd es complicado incluso de enunciar, y sus pruebas de convergencia finita son algo complicadas. [17]

El algoritmo entrecruzado y su prueba de terminación finita se pueden expresar de manera simple y ampliar fácilmente la configuración de matroides orientadas. El algoritmo puede simplificarse aún más para problemas de viabilidad lineal , es decir, para sistemas lineales con variables no negativas ; Estos problemas se pueden formular para matroides orientadas. [14] El algoritmo entrecruzado se ha adaptado para problemas que son más complicados que la programación lineal: existen variantes de matroide orientada también para el problema de programación cuadrática y para el problema de complementariedad lineal. [3] [16] [17]

Resumen

El algoritmo entrecruzado es un algoritmo simple para programación lineal. Fue el segundo algoritmo totalmente combinatorio para programación lineal. El algoritmo simplex parcialmente combinatorio de ciclos de Bland en algunas matroides orientadas (no realizables). Todd publicó el primer algoritmo completamente combinatorio, y también es como el algoritmo simplex en que preserva la viabilidad después de que se genera la primera base factible; sin embargo, el gobierno de Todd es complicado. El algoritmo entrecruzado no es un algoritmo simplex, porque no necesita mantener la viabilidad. Sin embargo, el algoritmo entrecruzado no tiene complejidad temporal polinomial.

Los investigadores han ampliado el algoritmo entrecruzado para muchos problemas de optimización, incluida la programación lineal-fraccional. El algoritmo entrecruzado puede resolver problemas de programación cuadrática y problemas de complementariedad lineal, incluso en el entorno de matroides orientadas. Incluso cuando se generaliza, el algoritmo entrecruzado sigue siendo simplemente enunciado.

Ver también

Notas

  1. ^ ab Illés, Szirmai y Terlaky (1999)
  2. ^ ab Stancu-Minasian, IM (agosto de 2006). "Una sexta bibliografía de programación fraccionaria". Optimización . 55 (4): 405–428. doi :10.1080/02331930600819613. SEÑOR  2258634. S2CID  62199788.
  3. ^ abcdefg Fukuda y Terlaky (1997)
  4. ^ ab Roos (1990)
  5. ^ ab Klee, Víctor ; Minty, George J. (1972). "¿Qué tan bueno es el algoritmo simplex?". En Shisha, Oved (ed.). Desigualdades III (Actas del Tercer Simposio sobre Desigualdades celebrado en la Universidad de California, Los Ángeles, California, del 1 al 9 de septiembre de 1969, dedicado a la memoria de Theodore S. Motzkin) . Nueva York-Londres: Academic Press. págs. 159-175. SEÑOR  0332165.
  6. ^ abc Fukuda y Terlaky (1997, pág. 385)
  7. ^ ab Fukuda y Namiki (1994, pág. 367)
  8. ^ ab El algoritmo simplex toma en promedio  D pasos para un cubo. Borgwardt (1987): Borgwardt, Karl-Heinz (1987). El método simplex: un análisis probabilístico . Algoritmos y Combinatoria (Textos de Estudio e Investigación). vol. 1. Berlín: Springer-Verlag. págs. xii+268. ISBN 978-3-540-17096-9. SEÑOR  0868467.
  9. ^ Terlaky (1985) y Terlaky (1987)
  10. ^ Wang (1987)
  11. ^ ab Terlaky y Zhang (1993)
  12. ^ ab Bland, Robert G. (mayo de 1977). "Nuevas reglas de pivote finito para el método simplex". Matemáticas de la Investigación de Operaciones . 2 (2): 103–107. doi :10.1287/moor.2.2.103. JSTOR  3689647. SEÑOR  0459599.
  13. ^ La regla de Bland también está relacionada con una regla anterior del índice mínimo, propuesta por Katta G. Murty para el problema de complementariedad lineal , según Fukuda y Namiki (1994).
  14. ^ ab Klafszky y Terlaky (1991)
  15. ^ De manera más general, para el algoritmo simplex, el número esperado de pasos es proporcional a  D para problemas de programación lineal que se extraen aleatoriamente de la esfera unitaria euclidiana , como lo demostraron Borgwardt y Smale .
  16. ^ ab Fukuda y Namiki (1994)
  17. ^ abcdefg Björner, Anders; Las Vergnas, Michel ; Sturmfels, Bernd ; Blanco, Neil; Ziegler, Gunter (1999). "10 programación lineal". Matroides orientadas . Prensa de la Universidad de Cambridge. págs. 417–479. doi :10.1017/CBO9780511586507. ISBN 978-0-521-77750-6. SEÑOR  1744046.
  18. ^ abc den Hertog, D.; Roos, C.; Terlaky, T. (1 de julio de 1993). "El problema de complementariedad lineal, matrices suficientes y el método entrecruzado" (PDF) . Álgebra lineal y sus aplicaciones . 187 : 1–14. doi : 10.1016/0024-3795(93)90124-7 .
  19. ^ abc Csizmadia, Zsolt; Illés, Tibor (2006). "Nuevos algoritmos de tipo entrecruzado para problemas de complementariedad lineal con matrices suficientes" (PDF) . Métodos y software de optimización . 21 (2): 247–266. doi :10.1080/10556780500095009. SEÑOR  2195759. S2CID  24418835. Archivado desde el original (pdf) el 23 de septiembre de 2015 . Consultado el 30 de agosto de 2011 .
  20. ^ Cottle, RW ; Pang, J.-S.; Venkateswaran, V. (marzo-abril de 1989). "Matrices suficientes y el problema de la complementariedad lineal". Álgebra lineal y sus aplicaciones . 114–115: 231–249. doi : 10.1016/0024-3795(89)90463-1 . SEÑOR  0986877.
  21. ^ Avis y Fukuda (1992, pág.297)
  22. ^ Los  v vértices en una disposición simple de  n hiperplanos en  D dimensiones se pueden encontrar en O ( n 2 Dv ) tiempo y O ( nD ) complejidad espacial .
  23. La teoría de las matroides orientadas fue iniciada por R. Tyrrell Rockafellar . (Rockafellar 1969):

    Rockafellar, RT (1969). "Los vectores elementales de un subespacio de R N {\displaystyle R^{N}} (1967)" (PDF) . En RC Bose y TA Dowling (ed.). Matemática Combinatoria y sus Aplicaciones . Serie de monografías sobre probabilidad y estadística de la Universidad de Carolina del Norte. Chapel Hill, Carolina del Norte: Prensa de la Universidad de Carolina del Norte. págs. 104-127. SEÑOR  0278972. Reimpresión en PDF.

    Rockafellar fue influenciado por los estudios anteriores de Albert W. Tucker y George J. Minty . Tucker y Minty habían estudiado los patrones de signos de las matrices que surgen a través de las operaciones de pivote del algoritmo simplex de Dantzig.

  24. ^ ab Todd, Michael J. (1985). "Programación lineal y cuadrática en matroides orientadas". Revista de teoría combinatoria . Serie B. 39 (2): 105–133. doi : 10.1016/0095-8956(85)90042-5 . SEÑOR  0811116.

Referencias

enlaces externos