Cómo resolver un programa lineal por el método de subgradiente

¡Creo que encontré la respuesta! 🙂
1. En el método de subgrado, el TAMAÑO DE PASO debe ser positivo:
(Crédito de la diapositiva: Stefanie J. (por Suvrit Sra), UC Berkeley)
2. el código utiliza el tamaño de pasos de polyak para implementar el método de subgradiente:

pero, aquí el f * no se conoce de antemano. Una solución es usar una versión modificada del tamaño de pasos de Polyak:

(crédito de la diapositiva: Boyd)
En el código anterior, simplemente ignora f * (o f_best) o cualquier aproximación de este. El método que se muestra en la figura anterior converge más rápido. (tenga en cuenta que no puedo imaginar f * = 0 en este caso, porque cuando lo deslizo por programación lineal veo unos (n, 1) ‘* x_min = -1.4083 -> para ver ver esta línea de código “x_min = linprog (unos (n, 1), A, b); “)

El último punto que quiero mencionar para completar mi respuesta es el siguiente:
3. a pesar del vector gradiente, el subgradiente no es único. cualquier hiperplano de soporte puede usarse como un subgradiente. En el código anterior, utiliza la columna de A que hace que Ax-b sea máximo en la x actual. Se puede considerar como la dirección más ascendente / descendente. (porque no tenemos un gradiente real y debemos elegir entre subgraduados).

Realmente lo agradezco, si me notifica mis errores / conceptos erróneos en esta respuesta.

More Interesting

Cómo entender mejor la afirmación: “todo el tema del cálculo puede describirse sucintamente de esta manera: la derivada es esencialmente una herramienta que resuelve una sola función no lineal en un grupo completo de lineales”.

¿Es el rango de la matriz igual a la dimensión del espacio de solución? Si no, ¿cómo lo calculas?

Si T es una transformación lineal que tiene 2 vectores propios (x e y) que pertenecen a valores propios distintos, ¿cómo muestra que si ax + by es un vector propio de T, a = 0 o b = 0?

¿Cuál es la principal diferencia entre un producto punto y un producto cruzado?

Tengo una función [math] f: \ mathbf {R} ^ n \ to \ mathbf {R} ^ {m} [/ math] para m> n. ¿Cómo puedo definir una función [math] B: \ mathbf {R} ^ n \ to \ mathbf {R} ^ {n \ times m} [/ math] tal que [math] \ forall_ {X \ in \ mathbf { R} ^ n} [/ math] las columnas de B (X) forman una base para el n-hiperplano cuyo vector normal es paralelo a f (X)?

¿Es una buena idea tomar álgebra lineal antes del cálculo multivariable?

¿Es cierto que el rango kurskal de una matriz es siempre menor que el rango de una matriz?

¿Cuál es el valor de ay matriz A dadas estas operaciones de fila elementales?

¿Existe alguna relación (o ecuación) entre la dimensionalidad del espacio nulo y el espacio de columna y el rango de una matriz A?

¿Es cierto que las relaciones lineales entre vectores permanecen sin cambios bajo un cambio de base que es el rango completo de la columna?