Modo dual primario

modo dual primordial

revisión de antecedentes

Durante los últimos cuarenta años, la optimización combinatoria ha sido fuertemente influenciada por la programación lineal. Con la comprensión matemática y algorítmica de la programación lineal surgió una gran cantidad de ideas y herramientas que luego se aplicaron a la optimización combinatoria. Muchas de estas ideas y herramientas todavía están en uso hoy en día y forman la base de nuestra comprensión de la optimización combinatoria.Con la ayuda de la teoría dual de la programación lineal, se desarrolló una nueva técnica para diseñar algoritmos de aproximación, el patrón dual primario (PD). propuesto.

El Método Primal-Dual se originó a partir del diseño de algoritmos precisos. En este caso, este patrón genera los algoritmos más eficientes para algunos problemas fundamentales en P, incluidos el emparejamiento, los flujos de red y las rutas más cortas. Una propiedad de estos problemas es que sus relajaciones PL tienen soluciones óptimas enteras. Por ejemplo, en "Programación matemática" [7] de Huang Hongxuan, la idea de diseño del algoritmo dual original es garantizar que el dual sea factible, satisfacer las condiciones de relajación complementarias y mejorar gradualmente la inviabilidad original. Cuando ambos están satisfechos, ambas soluciones son óptimas. En el proceso iterativo, siempre se hacen correcciones enteras a la solución original, y finalmente se obtiene una solución entera óptima. El proceso básico del algoritmo es el siguiente:
inserte la descripción de la imagen aquí
Con el modo dual primal (PD), cuando requerimos una solución aproximada a un problema de programación entera, después de relajarlo, no tenemos que encontrar la solución óptima al problema de programación lineal correspondiente. . Como veremos, los métodos de DP son muy poderosos. Por lo general, podemos usar el método PD para obtener un buen algoritmo de aproximación y luego extraer un buen algoritmo de combinación de él. En cambio, a veces podemos usar métodos de PD para demostrar un buen desempeño de los algoritmos combinatorios simplemente reinterpretándolos como algoritmos de PD.Hasta ahora hemos visto muchos algoritmos basados ​​en relajaciones de programación lineal (LP), que generalmente implican combinar las rondas de solución de LP fraccionario dadas. aproximadamente al mismo valor objetivo que la solución entera.

Introducción básica

Proponente de la Teoría de la Dualidad: John Von Nouma (John Von Nouma, 1903-1957), uno de los científicos polivalentes en los campos del matemático húngaro-estadounidense, informático, teoría de juegos, armas nucleares y armas biológicas y químicas, fue más tarde generaciones son llamadas "el padre de la computadora moderna" y "el padre de la teoría de juegos"

john von neumann
La teoría dual tiene muchas aplicaciones importantes: al resolver cualquiera de los programas lineales originales y duales, se da automáticamente la solución óptima del otro programa; cuando el problema dual tiene menos restricciones que el problema original, la solución La programación dual es mucho más conveniente que resolver la programación original; la variable en la programación dual es el precio sombra, que puede proporcionar información útil para la toma de decisiones de gestión empresarial.

Comenzamos con un LP de cobertura general para la teoría de la dualidad. Supongamos que tenemos la matriz A y el vector c ∈ R nc\in R^{n}CRnortesegundo ∈ R mb\in R^{m}bRm _ Podemos expresar el LP original como
inserte la descripción de la imagen aquí

Ahora supongamos que queremos determinar un límite inferior en el valor óptimo de este LP. Una forma de hacer esto es para algunos ZZZ , usando las restricciones en LP, encuentra que "se ve" como∑ jcjxj ≥ Z \sum_j c_jx_j\ge ZjCjXjrestricciones Z. Para hacer esto, tenga en cuenta que cualquier combinación convexa de restricciones de LP también es una restricción válida. Por lo tanto, si tenemos multiplicadores no negativosyi y_iyyo, obtenemos una nueva restricción que se satisface con todas las soluciones factibles del PL original, es decir, si para todo iiyo ,∑ jaijxj ≥ bi \sum_j a_{ij}x_j\ge b_ijayoXjbyo
∑ iyi ( ∑ jaijxj ) ≥ ∑ iyibi ( 1 ) \sum_i y_i(\sum_j a_{ij}x_j)\ge \sum_i y_ib_i\qquad(1)iyyo(jayoXj)iyyobyo( 1 )
Tenga en cuenta que requerimosyi y_iyyoes no negativo porque al multiplicar una desigualdad por un número negativo cambia el signo de la desigualdad. (Si la restricción es de la forma ∑ jaijxj = bi \sum_j a_{ij}x_j= b_ijayoXj=byo, entonces su multiplicador yi y_iyyopuede ser cualquier número real). Considerando la fórmula (1), si aseguramos que ∑ iyi ( ∑ jaijxj ) ≤ ∑ jcjxj \sum_i y_i(\sum_j a_{ij}x_j)\le \sum_jc_jx_jyoyyo( jayoXj)jCjXjObtendremos un límite inferior del valor óptimo de LP original, a saber,
∑ iyibi ≤ ∑ iyi ( ∑ jaijxj ) ≤ ∑ jcjxj \sum_i y_ib_i\le \sum_i y_i(\sum_j a_{ij}x_j)\le\sum_jc_jx_jiyyobyoiyyo(jayoXj)jCjXj
Cambiado el orden, tenemos
∑ iyibi ≤ ∑ iyi ( ∑ jaijxj ) = ∑ j ( ∑ iyiaij ) xj ≤ ∑ jcjxj ( 2 ) \sum_i y_ib_i\le \sum_i y_i(\sum_j a_{ij}x_j)=\sum_j (\ sum_i y_ia_{ij})x_j\le\sum_jc_jx_j\qquad(2)iyyobyoiyyo(jayoXj)=j(iyyoayo) xjjCjXj( 2 )
y se puede obtener requiriendoyi y_iyyoSe cumplen las siguientes condiciones para asegurar que la suma sea como máximo
∑ iyiaij ≤ cj ∀ j = 1 , . . . , n ( 3 ) \sum_i y_ia_{ij}\le c_j \quad \forall j= 1,... ,n \qquad (3)iyyoayoCjj=1 ,... ,norte( 3 )
Tenga en cuenta que en el paso anterior dependíamos dexj x_jXjes no negativo, y al mismo tiempo, yi y_iyyoLas restricciones son lineales y obtenemos un límite inferior que también es lineal. De esta manera podemos escribir un PL para encontrar el límite inferior óptimo. Es posible escribir un programa dual (DLP):
inserte la descripción de la imagen aquí

Esto se puede expresar en una notación más compacta:
inserte la descripción de la imagen aquí

Dualidad débil : para cualquier solución primal dual factible ( x , y ) (x,y)( X ,y ) , si
y ⊤ segundo ≤ c ⊤ x \mathbf{y}^\top b\le\mathbf{c}^\top xy segundoC x

La prueba está disponible a partir de la fórmula (2).

Dualidad fuerte : si el primario o el dual tienen soluciones óptimas acotadas, entonces ambos las tienen. Y su valor objetivo es igual. Es decir, si xxx es óptimo para el original,yyy es óptimo para dual, entonces
y ⊤ b = c ⊤ x \mathbf{y}^\top b=\mathbf{c}^\top xy segundo=C x

Generalmente no probamos el teorema de la dualidad fuerte, sin embargo, una forma de probarlo es observar la ecuación (2) y notar que si y ⊤ b = c ⊤ x \mathbf{y}^\top b=\mathbf{ c }^\superior xy segundo=C x, entonces la desigualdad debe ser estricta, alguien podría decir, siy ⊤ b ≤ c ⊤ x \mathbf{y}^\top b\le\mathbf{c}^\top xy segundoC x, entonces debemos poderxxx y y y para hacer algunas mejoras. La dualidad fuerte da el óptimo( x , y ) (x,y)( X ,y ) pares, a saber, las siguientes ecuaciones, que se obtienen al combinar la ecuación (2) cony ⊤ b = c ⊤ x \mathbf{y}^\top b=\mathbf{c}^\top xy segundo=C xcombinación y alcanzable.
∑ iyibi = ∑ iyi ( ∑ jaijxj ) \sum_i y_ib_i= \sum_i y_i(\sum_j a_{ij}x_j)iyyobyo=iyyo(jayoXj)
∑ j ( ∑ iyiaij ) xj = ∑ jcjxj \sum_j (\sum_i y_ia_{ij})x_j=\sum_jc_jx_jj(iyyoayo) xj=jCjXj
Combinando estas ecuaciones con las restricciones en la programación lineal primal y dual, obtenemos condiciones de relajación complementarias.

Relajación complementaria : sea ( x , y ) (x,y)( X ,y ) es la solución de un par de programación lineal primal dual con una solución óptima acotada, entoncesxxx y y y son óptimos si y solo si se cumplen las siguientes condiciones:
la condición de relajación complementaria original:
∀ j = 1 , . . . , n , xj = 0 o ∑ iyiaij = cj \forall j=1,...,n, \ quad x_j=0\quad o\quad \sum_i y_ia_{ij}=c_jj=1 ,... ,n ,Xj=0oiyyoayo=Cj

Condiciones de relajación complementarias duales :
∀ i = 1 , . . . , m , yi = 0 o ∑ jxjaij = bi \forall i=1,...,m,\quad y_i=0\quad o \quad\sum_j x_ja_{ ij}=b_iyo=1 ,... ,m ,yyo=0ojXjayo=byo
A la hora de diseñar un algoritmo de aproximación basado en programación lineal, en primer lugar planteamos un problema de mínimos (o máximos) Π \PiΠ relajación es un programa linealΠ LP \Pi_{LP}PiLP _. Entonces, resolvemos el problema de programación lineal Π LP \Pi_{LP}PiLP _Una solución óptima de OPTLP OPT_{LP}OP TLP _, y al redondearlo se convierte en el problema Π \PiUna solución factible para Π . Tenga en cuenta que la solución óptima al problema de programación linealOPTLP OPT_{LP}OP TLP _El valor objetivo de da el problema Π\PiUn límite inferior (o límite superior) de la solución óptima OPT de Π , a menudo usamos la diferencia entre estos dos valores para estimar la relación de rendimiento de este algoritmo aproximado. Ahora, según la teoría dual, cada solución factible dual nos proporciona el problema de programación linealΠ LP \Pi_{LP}PiLP _Un límite inferior (o límite superior) del valor óptimo, por lo tanto, también es el problema original Π \PiUn límite inferior (o límite superior) del valor óptimo OPT de Π . Esto significa que también se puede utilizar una solución factible dual "suficientemente buena" para determinar la relación de rendimiento del algoritmo de aproximación. Por lo tanto, no tenemos que resolver el problema de programación linealΠ LP \Pi_{LP}PiLP _La solución óptima de OPTLP OPT_{LP}OP TLP _Y el valor objetivo correspondiente, pero solo necesita encontrar una solución factible dual "suficientemente buena" y luego transformarla en el problema original Π \ PiUna solución factible de Π , y finalmente utilizar la diferencia entre los valores objetivo de estas dos soluciones para estimar la relación de rendimiento del algoritmo de aproximación.

modo dual primordial

El esquema primal-dual es el método preferido para diseñar algoritmos de aproximación porque generalmente proporciona algoritmos con buenas garantías de aproximación y buenos tiempos de ejecución. La idea básica es tratar el problema NP-difícil y su problema de relajación LP dual, y luego transformar iterativamente la solución original y la solución dual hasta que se satisfaga la condición de relajación complementaria dual primal relajada.
Condiciones de relajación complementarias originales relajadas :
∀ j = 1 , . . . , n , xj = 0 orcj α ≤ ∑ iyiaij ≤ cj \forall j=1,...,n,\quad x_j=0\quad o \quad \ frac{c_j}{\alpha}\le \sum_i y_ia_{ij}\le c_jj=1 ,... ,n ,Xj=0oaCjiyyoayoCj
Condiciones de relajación del complemento dual relajado :
∀ i = 1 , . . . , m , yi = 0 orbi ≤ ∑ jxjaij ≤ β ⋅ bi \forall i=1,...,m,\quad y_i=0\quad o\ quad b_i \le\sum_j x_ja_{ij}\le \beta\cdot b_iyo=1 ,... ,m ,yyo=0obyojXjayobbyo

Si x e y son la solución factible primal y la solución factible dual respectivamente, satisfaciendo las condiciones complementarias de relajación anteriores, entonces
∑ jcjxj ≤ α β ∑ iyibi \sum_jc_jx_j\le \alpha \beta\sum_i y_ib_ijCjXjun segundoiyyobyo

Definición:
∑ jcjxj ≤ α ∑ j ( ∑ iyiaij ) xj = α ∑ iyi ( ∑ jaijxj ) ≤ α β ∑ iyibi \sum_jc_jx_j\le \alpha\sum_j (\sum_i y_ia_{ij})x_j \\ =\alpha \ sum_i y_i(\sum_j a_{ij}x_j)\le \alpha \beta \sum_i y_ib_ijCjXjaj(iyyoayo) xj=aiyyo(jayoXj)un segundoiyyobyo
El Lema 1 muestra que la garantía de aproximación del algoritmo es α β \alpha \betaun segundo _

Brecha integral para relajación de programación lineal

Dado el problema de minimización Π \PiProgramación lineal relajación de Π , conOPT f ( I ) OPT_f(I)OP Tf( I ) representa el costo de la solución fraccionada óptima de la instancia I, es decir, el valor de la función objetivo de la solución óptima de relajación de programación lineal. Entonces, la brecha de enteros relajada (a veces llamada razón de enteros) es
sup IOPT ( I ) OPT f ( I ) \underset{I}{sup}\frac{OPT(I)}{OPT_f(I)}Isup _ _OP Tf( yo )OPT ( yo )
Es decir, el supremo de la razón de la solución entera óptima y la solución fraccionaria óptima.

Para el problema de maximización, la brecha integral se define como el mínimo de esta relación.Cuando la brecha integral del programa lineal es 1, a esta relajación de programación lineal la llamamos relajación exacta. Si el costo de la solución encontrada por el algoritmo se compara directamente con el costo de la solución fraccionaria óptima (o solución factible dual), entonces podemos esperar que el mejor factor de aproximación para la prueba sea la brecha de enteros relajada. Curiosamente, las técnicas primal-dual han tenido éxito en la obtención de algoritmos que aproximan la brecha de enteros que se garantiza que es exactamente igual a la holgura.

Algoritmos de aproximación para patrones duales primarios

A continuación, presentamos el algoritmo de aproximación basado en el modo dual primal, de la siguiente manera:

La ventaja del modo primal-dual es que evita una gran cantidad de tiempo dedicado a encontrar la solución óptima del problema de programación lineal primal, lo que reduce el tiempo de ejecución del algoritmo. En particular, la complejidad de tiempo actual del algoritmo de punto interior más rápido para resolver programas lineales también es O ( n 3.5 ) O(n^{3.5})O ( n3.5 )magnitud. Además, en algunas aplicaciones prácticas, lo que debe resolverse es un problema en línea. En este momento, no es realista pedir la solución óptima del problema de programación lineal. El efecto de aceleración que trae el modo dual primal es necesario.

Resumir

Principalmente presentamos el contenido básico de la técnica primal-dual y luego mostramos cómo se modifica la técnica primal-dual para diferentes problemas con el fin de proporcionar buenos algoritmos de aproximación para varios problemas NP-difíciles. ¡Manténganse al tanto!

referencias

[1] R. Bar-Yehuda y S. Even. Un algoritmo de aproximación de tiempo lineal para el
problema de cobertura de vértice ponderado. Journal of Algorithms, 2:198–203, 1981.
[2] Michel X. Goemans y David P. Williamson. El método primal-dual para algoritmos de aproximación y su aplicación a problemas de diseño de redes. En Dorit Hochbaum, editora, Algoritmos de aproximación para problemas NP-difíciles, capítulo 4, páginas 144–191. PWS Publishing Co., Boston, MA, EE. UU., 1997.
[3] D. Williamson. El método primal-dual para algoritmos de aproximación. Programación matemática, Serie B, 91(3):447–478, 2002.
[4] HW Kuhn. El método húngaro para el problema de asignación. Revista de logística de investigación naval trimestral, 2: 83–97, 1955.
[5] GB Dantzig, LR Ford y DR Fulkerson. Un algoritmo primal-dual para programas lineales. En HW Kuhn y AW Tucker, editores, Linear Inequalities and Related Systems, páginas 171–181. Princeton University Press, Princeton, NJ, 1956.
[6] MX Goemans y DP Williamson. El método primal-dual para algoritmos de aproximación y sus aplicaciones a problemas de diseño de redes. En DS [7]
Huang Hongxuan. Planificación matemática: Libro de texto de clase pública de posgrado de la Universidad de Tsinghua. Serie de matemáticas [M] : Prensa de la Universidad de Tsinghua, 2006.

Supongo que te gusta

Origin blog.csdn.net/weixin_48266700/article/details/128073491
Recomendado
Clasificación