Me enfrento con el problema de encontrar el elipsoide ( es una matriz definida positiva simétrica) de volumen máximo dentro de un conjunto convexo dado como un conjunto de desigualdades lineales . Comprendí cómo se formaliza como un problema de optimización convexa como se da en "Convex Optimization, Stephen Boyd and Lieven Vandenberghe, Cambridge University Press, 2004" [versión pdf] . Mi enfoque sería utilizar métodos de punto interior, introducir un parámetro de precisión t> 0
e incorpore las restricciones en el objetivo a través de una función de barrera logarítmica como se explica en el capítulo 11 del libro anterior e intente minimizar el problema no
controlado resultante
\ min_ {B, d} \ quad \ underbrace {\ left [\ log \ det B ^ {-1} - \ frac {1} {t} \ sum_ {i = 1} ^ m \ log (b_i- || Ba_i || _2-a_i ^ Td) \ right]} _ {= f (B, d )}.
Por lo tanto, tomaría derivadas parciales de :
que es una matriz y
que es un vector. Y luego a partir de un punto inicial (factible) Actualizaría iterativamente la solución real acuerdo con las derivadas parciales negativas:
donde y son parámetros de tamaño de paso hasta que se cumple un criterio de detención predefinido. \ ¿No estoy seguro de si esta es una forma correcta de resolver el problema? Me parece muy incómodo y no muy elegante. No soy un experto en técnicas de optimización y no estoy seguro de poner todos los ingredientes (derivados parciales, método de punto interior, minización sin restricciones, etc.) juntos de la manera correcta. Me pregunto cómo un experto resolvería este problema. En el libro mencionado anteriormente, esta tarea se mostró como un ejemplo para un problema convexo, pero por lo que puedo ver, se proporcionó un algoritmo tan explícito para resolver la tarea. Aunque creo que el Sr. Boyd tiene en algún lugar un script de Matlab en sus páginas para resolver la tarea, pero quiero comprender las técnicas básicas primero antes de usar un algoritmo de "caja negra". Parece que hay otros enfoques en " Algoritmos polinómicos de punto interior en la programación convexa; Yurii Nesterov y Arkadii Nemirovskii, estudios SIAM en matemáticas aplicadas; vol.13, 1994 "y" Sobre la complejidad de aproximar el elipsoide máximo inscrito para un politopo, Leonid G. Khachiyan y Michael J. Todd, Mathematical Programming 61 (1993), 137-159 "pero no los entiendo porque Están escritos a técnicos para mí.
Por cierto: ¿Cómo se ve el problema dual del primer problema? ¿Y cómo se deriva?
Gracias por adelantado
optimization
convex-optimization
Denis K.
fuente
fuente
Respuestas:
Bueno, estás en el camino correcto. No es mágico resolver estos problemas utilizando métodos de punto interior, son de naturaleza iterativa y se basan en linealizaciones, etc.
Sin embargo, un algoritmo típico de punto interior para estos problemas no daría un paso en la dirección del gradiente, sino que también calcularía información de segundo orden y, por lo tanto, daría un paso de Newton. Por lo tanto, se realiza una búsqueda de línea a lo largo de la dirección de Newton, se da un paso óptimo y se repite el procedimiento. Una vez convergido (también con una precisión adecuadamente definida), el parámetro de barrera disminuye (con algún factor adecuado) y el procedimiento se repite nuevamente.
Para que funcione en la práctica, debe pensar detenidamente cómo realiza las actualizaciones de parámetros, y lo más frecuente es que realice todo en el espacio primario-dual.
Si busca en Google sillysdp, encontrará una implementación simple de un solucionador de SDP que implementa, esencialmente, el ejemplo 11.9 en la referencia de Boyd & Vandenberghe que está leyendo. Tal vez un comienzo para la inspiración (ya que la programación semidefinida es una generalización de un SOCP que está resolviendo, descuidando el término logdet en el objetivo, lo que realmente no complica las cosas)
fuente