Massimizzare una funzione convessa con un vincolo lineare


10

aumentare al massimo f(X)soggetto a UNX=B

dove

f(X)=Σio=1N1+Xio4(Σio=1NXio2)2,

X=[X1,X2,...,XN]TRN×1 e .UNRM×N

Possiamo vedere che è convesso e della forma . Si può anche dimostrare che è limitato in . So che un problema di massimizzazione convessa è NP-difficile, in generale.f1+y2f[2,2]

Tuttavia, utilizzando la natura specifica del problema, è possibile risolverlo utilizzando un software / pacchetto di ottimizzazione convesso standard?


Ci sono due sommazioni, una dentro l'altra, che usano la stessa "variabile di ciclo" . Sembra chiaro dal contesto quali usi di sono quali, ma per favore correggi per chiarezza. ioio
j_random_hacker,

Risposte:


5

Sì, l'ottimizzazione convessa con vincolo di uguaglianza è NP-Hard in generale. Tuttavia, esistono tecniche mature che trovano soluzioni approssimative molto valide per problemi di ottimizzazione convessa, come Coordinate Descent.

Supponiamo che tu usi la discesa delle coordinate e che la matrice A abbia rango . È possibile risolvere nk-1 coordinate della soluzione ammissibile x = ( x 1 , x 2 , x 3 , . . . , X n ) e quindi i vettori soluzione nello spazio soluzione sono determinate univocamente da una coordinata, per esempio x i . In tal caso, puoi semplicemente prendere la derivata di f ( ) rispetto a x i per trovare il massimo in questa iterazione.KX=(X1,X2,X3,...,Xn)Xiof()Xio

Quindi ripariamo iterativamente le coordinate nk-1 e miglioriamo la soluzione fino a quando non viene trovata una approssimativamente ottimale.


@RodrigodeAzevedo: Non è una contraddizione o una sorpresa che LP, un caso speciale di ottimizzazione convessa, sia più facile del caso generale.
j_random_hacker
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.