Programmazione non lineare e condizioni KKT
Salve a tutti.. ho alcuni dubbi sull'argomento e non sono in grado di risolvere il seguente esercizio:
Dato il seguente problema non lineare
[tex]min \ \ f(x_{1}, x_{2}) = 2-x_{1}^{2} + x_{1}x_{2} - x_{2}^{2} + x_{1} \\
t.c. \ \ \ x_{1}^{2} + x_{2}^{2} \leq 1[/tex]
a) elencare le condizioni di ottimalità KKT
b) verificare che il punto A =[tex]\left(-\frac{\sqrt{3}}{2}, \frac{1}{2} \right)[/tex] possa essere un punto di minimo.
per come sono abituato a risolvere questo tipo di problemi io ho calcolato il gradiente
[tex]\bigtriangledown f(x) = [-2x_{1} + x_{2} +1 ; x_{1} - 2x_{2}][/tex]
associo al vincolo un coefficiente [tex]\lambda _1[/tex]
e riscrivo il mio obiettivo : [tex]min \ \ f(x_{1}, x_{2}) = 2-x_{1}^{2} + x_{1}x_{2} - x_{2}^{2} + x_{1} - \lambda _1 (x_1^2 + x_2^2 -1)[/tex]
ora scrivo [tex]\bigtriangledown L = \left[ \begin{matrix} -2x_1 + x_2 +1 - \lambda _1 (2x_1) \\ x_1 - 2x_2 - \lambda _1 (2 x_2) \end{matrix}\right][/tex]
e sostituisco i valori con quelli del punto A:
[tex]\bigtriangledown L(A) = \left[ \begin{matrix} -\sqrt{3} + \frac{1}{2} +1 - \lambda _1 (-\sqrt{3}) \\ \frac{-\sqrt{3}}{2} -1 - \lambda _1 \end{matrix}\right] = 0[/tex]
a questo punto provo a risolvere il sistema ma mi ritrovo così:
[tex]\bigg \{
\begin{eqnarray*}
\lambda _1 & = & \frac{-2 + \sqrt{3}}{2} \\
\lambda _1 & = & \frac{-2 - \sqrt{3}}{2}
\end{eqnarray*}[/tex]
e qui non so come proseguire / cosa concludere.. aiuto!! Dove sbaglio? :/
Dato il seguente problema non lineare
[tex]min \ \ f(x_{1}, x_{2}) = 2-x_{1}^{2} + x_{1}x_{2} - x_{2}^{2} + x_{1} \\
t.c. \ \ \ x_{1}^{2} + x_{2}^{2} \leq 1[/tex]
a) elencare le condizioni di ottimalità KKT
b) verificare che il punto A =[tex]\left(-\frac{\sqrt{3}}{2}, \frac{1}{2} \right)[/tex] possa essere un punto di minimo.
per come sono abituato a risolvere questo tipo di problemi io ho calcolato il gradiente
[tex]\bigtriangledown f(x) = [-2x_{1} + x_{2} +1 ; x_{1} - 2x_{2}][/tex]
associo al vincolo un coefficiente [tex]\lambda _1[/tex]
e riscrivo il mio obiettivo : [tex]min \ \ f(x_{1}, x_{2}) = 2-x_{1}^{2} + x_{1}x_{2} - x_{2}^{2} + x_{1} - \lambda _1 (x_1^2 + x_2^2 -1)[/tex]
ora scrivo [tex]\bigtriangledown L = \left[ \begin{matrix} -2x_1 + x_2 +1 - \lambda _1 (2x_1) \\ x_1 - 2x_2 - \lambda _1 (2 x_2) \end{matrix}\right][/tex]
e sostituisco i valori con quelli del punto A:
[tex]\bigtriangledown L(A) = \left[ \begin{matrix} -\sqrt{3} + \frac{1}{2} +1 - \lambda _1 (-\sqrt{3}) \\ \frac{-\sqrt{3}}{2} -1 - \lambda _1 \end{matrix}\right] = 0[/tex]
a questo punto provo a risolvere il sistema ma mi ritrovo così:
[tex]\bigg \{
\begin{eqnarray*}
\lambda _1 & = & \frac{-2 + \sqrt{3}}{2} \\
\lambda _1 & = & \frac{-2 - \sqrt{3}}{2}
\end{eqnarray*}[/tex]
e qui non so come proseguire / cosa concludere.. aiuto!! Dove sbaglio? :/
Risposte
A me sembra tutto corretto , l'unica cosa è che sul mio libro di testo la funzione Lagrangiana è definita(in questo caso, un vincolo di disuguaglianza $ g(x) $ ):
$ L(x,lambda)=f(x)+lambda*g(x)=(2-x_1^2 +x_1*x_2 -x_2^2 +x_1)+lambda_1*(x_1^2 + x_2^2 -1) $
Cioè il termine col moltiplicatore è sommato , e non sottratto.
a) Un solo vincolo di disuguaglianza , punti interni ed appartenenti alla circonferenza unitaria di centro l'origine. Il vincolo è attivo e rogolare in $A$ .
KKT
$ grad_xL(x,lambda)=gradf(x)+lambda*gradg(x)=0 $
$ lambda_i>=0 $
$ lambda_i*g_i(x)=0 $
b)
$ gradf(x)^T=(-2x_1+x_2+1,x_1-2x_2) $
$ gradg(x)^T=(2x_1,2x_2) $
$ grad_xL(x,lambda)=gradf(x)+lambdagradg(x)=0 $
Ora se valuto il tutto in $ x=A $ ho il sistema :
$ { ( sqrt(3)+3/2-lambda_1*sqrt(3)=0 ),( -sqrt(3)/2-1+lambda_1=0 ):} $
con soluzione $ lambda_1=sqrt(3)/2+1>0 $
Quindi in $ A $ le KKT sono soddisfatte .
Ad ulteriore conferma CSSO(Condizione suff. secondo ordine):
$ A $ è soluzione locale stretta se :
(**) $ d^T*grad_x^2L(x,lambda)*d>0 $
per ogni $ d in R^n : gradg_i^T(x)*d=0 , d!= 0 $
ove con $ i $ si intendono gli indici dei vincoli strettamente attivi in $ x $ , che nel caso in esame è $ g_1 $ (è strettamente attivo in A , infatti $ lambda_1>0 $)
Il tutto valutato in $ A $ e $ lambda_1 $ :
$ gradg_i(A)^T*d= ( -sqrt(3) ,1)*( ( d_1 ),( d_2 ) ) $
Mi dice che le $ d $ che cerco sono del tipo $ d=d_1*( ( 1 ),( sqrt(3) ) ) $
infine :
$ grad_x^2L(x,lambda_1)=( ( sqrt(3) , 1 ),( 1 , sqrt(3) ) ) $
la (**) è verificata , quindi $ A $ dovrebbe essere soluzione ottima del problema di minimo.
Spero di averci azzeccato .
$ L(x,lambda)=f(x)+lambda*g(x)=(2-x_1^2 +x_1*x_2 -x_2^2 +x_1)+lambda_1*(x_1^2 + x_2^2 -1) $
Cioè il termine col moltiplicatore è sommato , e non sottratto.
a) Un solo vincolo di disuguaglianza , punti interni ed appartenenti alla circonferenza unitaria di centro l'origine. Il vincolo è attivo e rogolare in $A$ .
KKT
$ grad_xL(x,lambda)=gradf(x)+lambda*gradg(x)=0 $
$ lambda_i>=0 $
$ lambda_i*g_i(x)=0 $
b)
$ gradf(x)^T=(-2x_1+x_2+1,x_1-2x_2) $
$ gradg(x)^T=(2x_1,2x_2) $
$ grad_xL(x,lambda)=gradf(x)+lambdagradg(x)=0 $
Ora se valuto il tutto in $ x=A $ ho il sistema :
$ { ( sqrt(3)+3/2-lambda_1*sqrt(3)=0 ),( -sqrt(3)/2-1+lambda_1=0 ):} $
con soluzione $ lambda_1=sqrt(3)/2+1>0 $
Quindi in $ A $ le KKT sono soddisfatte .
Ad ulteriore conferma CSSO(Condizione suff. secondo ordine):
$ A $ è soluzione locale stretta se :
(**) $ d^T*grad_x^2L(x,lambda)*d>0 $
per ogni $ d in R^n : gradg_i^T(x)*d=0 , d!= 0 $
ove con $ i $ si intendono gli indici dei vincoli strettamente attivi in $ x $ , che nel caso in esame è $ g_1 $ (è strettamente attivo in A , infatti $ lambda_1>0 $)
Il tutto valutato in $ A $ e $ lambda_1 $ :
$ gradg_i(A)^T*d= ( -sqrt(3) ,1)*( ( d_1 ),( d_2 ) ) $
Mi dice che le $ d $ che cerco sono del tipo $ d=d_1*( ( 1 ),( sqrt(3) ) ) $
infine :
$ grad_x^2L(x,lambda_1)=( ( sqrt(3) , 1 ),( 1 , sqrt(3) ) ) $
la (**) è verificata , quindi $ A $ dovrebbe essere soluzione ottima del problema di minimo.
Spero di averci azzeccato .