Condizioni di Karush-Kuhn-Tucker

Messaggioda 3m0o » 15/04/2019, 18:09

Siano \( f,g \in C^1(\mathbb{R}^n ) \) e \( \Sigma_g := \{ \mathbf{x} \in \mathbb{R}^n : g(\mathbf{x})\geq 0 \} \)
Supponiamo che \( \nabla g \neq 0 \) quando \( g= 0 \). Supponiamo che \( f \) ammette un minimo locale su \( \Sigma_g \) e notiamo \( x^* \in \Sigma_g \) il punto dove è raggiunto questo minimo locale. Per tutti gli \( (\mathbf{x},\lambda) \in \mathbb{R}^{n+1} \) definiamo \( \mathcal{L}(\mathbf{x},\lambda) = f(\mathbf{x})-\lambda g(\mathbf{x}) \) la funzione lagrangiana.
Dimostra che esiste \( \lambda^* \) tale che \( (\mathbf{x}^*,\lambda^*) \in \mathbb{R}^{n+1} \) che soddisfa le condizioni seguenti
\( \nabla_{\mathbf{x}}\mathcal{L}(\mathbf{x}^*, \lambda^*) = 0 \)
\( \lambda^* \geq 0 \)
\( \lambda^* g(\mathbf{x}^*) =0 \)

Io ho pensato a questo
Per la condizione necessaria di ottimalità abbiamo che se \( g(\mathbf{x}^*) = 0 \) allora abbiamo che \( \nabla g(\mathbf{x}^*) \neq 0 \) dunque esiste \( \lambda^* \in \mathbb{R} \) tale che \( \nabla f(\mathbf{x}^*) = \lambda^* \nabla g(\mathbf{x}^*) \), pertanto è evidente che
\[ \nabla_{\mathbf{x}}\mathcal{L}(\mathbf{x}^*, \lambda^*) = \nabla f(\mathbf{x}^*) - \lambda^* \nabla g(\mathbf{x}^*) =\lambda^* \nabla g(\mathbf{x}^*) - \lambda^* \nabla g(\mathbf{x}^*)= 0 \]
e \( \lambda^* g(\mathbf{x}^*)=0 \)
(non so come dimostrare che \( \lambda^* \geq 0 \) )
Se \( g(\mathbf{x}^*) > 0 \) allora \( \lambda^* = 0 \) soddisfa
\( \lambda^* = 0 \geq 0 \),
\( \lambda^* g(\mathbf{x}^*) = 0 \)
Ma non so come dimostrare che \( \nabla_{\mathbf{x}}\mathcal{L}(\mathbf{x}^*, \lambda^*) = 0 \) infatti
\( \nabla_{\mathbf{x}}\mathcal{L}(\mathbf{x}^*, \lambda^*) = \nabla f(\mathbf{x}^*) - \lambda^* \nabla g(\mathbf{x}^*) =\nabla f(\mathbf{x}^*) \)
Cioé dovrei dimostrare che \( \mathbf{x}^* \) è un minimo di \( f \) su \( \mathbb{R}^n \) e non solo un minimo sulla condizione \( g(\mathbf{x}) \geq 0 \) perché altrimenti non ho la certezza che \( \nabla f=0 \)
O sbaglio?
3m0o
Cannot live without
Cannot live without
 
Messaggio: 255 di 5327
Iscritto il: 02/01/2018, 15:00

Re: Condizioni di Karush-Kuhn-Tucker

Messaggioda 3m0o » 16/04/2019, 23:23

Secondo me c'è un errore nell enunciato, i vincoli \( \Sigma_g = \{ \mathbf{x} \in \mathbb{R}^n : g(\mathbf{x}) \geq 0 \} \) dovrebbero essere \( \Sigma_g = \{ \mathbf{x} \in \mathbb{R}^n : g(\mathbf{x}) = 0 \} \), non ho davvero idea altrimenti.
3m0o
Cannot live without
Cannot live without
 
Messaggio: 259 di 5327
Iscritto il: 02/01/2018, 15:00

Re: Condizioni di Karush-Kuhn-Tucker

Messaggioda 3m0o » 16/04/2019, 23:46

Anche perché se la condizione dei vincoli è \( \Sigma_g = \{ \mathbf{x} \in \mathbb{R}^n : g(\mathbf{x}) = 0 \} \), (non è rigoroso, ma l'idea generale è questa, credo) sappiamo che \( \nabla g \neq 0 \), \( \forall \mathbf{z} \in \Sigma_g \) e dunque possiamo applicare il teorema delle funzioni implicite e abbiamo che \( \mathbf{x}^*=( \mathbf{z}_0,y_0) \in \Sigma_g \) esiste un unica funzione e un intorno \( U= B( \mathbf{z}_0,\delta) \) di \( \mathbf{z}_0 \), e un aperto \( V \) che contiene \( \mathbf{x}^* \) e un unica funzione \( \phi : U \rightarrow \mathbb{R} \) tale che
\( y_0 = \phi( \mathbf{z}_0) \)
\( g( \mathbf{z}, \phi( \mathbf{z}) ) = 0, \forall \mathbf{z} \in U \)
\( \mathcal{G}(\phi)= \Sigma_g \cap V \)

Questo ci permette di definire \( T_{ \mathbf{x}^*}(\Sigma_g) = \{ \mathbf{x} \in \mathbb{R} : \nabla g( \mathbf{x}^*) \cdot ( \mathbf{x}- \mathbf{x}^*) = 0 \} \)
L'iperpiano tangente a \( \Sigma_g \) in \( \mathbf{x}^* \), e questo mostra che \( \nabla g ( \mathbf{x}^*) \) è perpendicolare a \( \Sigma_g \) in \( \mathbf{x}^* \)
E siccome \( \nabla f( \mathbf{x}^*) \) è normale al piano tangente \( T_{ \mathbf{x}^*}(\Sigma_g) \) (credo)
abbiamo che \( \exists \lambda^* \) tale che \( \nabla f( \mathbf{x}^*) = \lambda^* \nabla g( \mathbf{x}^*) \)
Dunque il punto \( (\mathbf{x}^*,\lambda^* ) \) è un punto stazionario del lagrangiano \( \mathcal{L}(\mathbf{x}^*,\lambda^* ) \)
E mi resterebbe da dimostrare che \( \lambda^* \geq 0 \)
3m0o
Cannot live without
Cannot live without
 
Messaggio: 260 di 5327
Iscritto il: 02/01/2018, 15:00

Re: Condizioni di Karush-Kuhn-Tucker

Messaggioda dissonance » 17/04/2019, 09:54

Credo che l'enunciato sia corretto. Se \(\lambda^\star =0\), allora il punto critico è interno a \(\Sigma_g\); è quindi un normale punto critico, non vincolato, e \(\nabla f(x^\star)=0\). Invece, se \(\lambda^\star\ne 0\) devi necessariamente essere sul bordo di \(\Sigma_g\), perché altrimenti avresti un minimo locale su cui \(\nabla f\) non si annulla. E quindi puoi fare un discorso di moltiplicatori di Lagrange.

Resta da dimostrare che \(\lambda^\star >0\), in effetti. Qui devi usare il fatto che il punto è un minimo. Se fosse un massimo, avresti \(\lambda^\star<0\).
dissonance
Moderatore
Moderatore
 
Messaggio: 15230 di 27757
Iscritto il: 24/05/2008, 19:39
Località: Nomade

Re: Condizioni di Karush-Kuhn-Tucker

Messaggioda 3m0o » 23/04/2019, 11:47

dissonance ha scritto:Credo che l'enunciato sia corretto. Se \(\lambda^\star =0\), allora il punto critico è interno a \(\Sigma_g\); è quindi un normale punto critico, non vincolato, e \(\nabla f(x^\star)=0\). Invece, se \(\lambda^\star\ne 0\) devi necessariamente essere sul bordo di \(\Sigma_g\), perché altrimenti avresti un minimo locale su cui \(\nabla f\) non si annulla. E quindi puoi fare un discorso di moltiplicatori di Lagrange.

Resta da dimostrare che \(\lambda^\star >0\), in effetti. Qui devi usare il fatto che il punto è un minimo. Se fosse un massimo, avresti \(\lambda^\star<0\).

Ho immaginato che dovessi usare il fatto che è un minimo, ma non so proprio come procedere, qualquno ha dei suggerimenti?
3m0o
Cannot live without
Cannot live without
 
Messaggio: 277 di 5327
Iscritto il: 02/01/2018, 15:00

Re: Condizioni di Karush-Kuhn-Tucker

Messaggioda dissonance » 23/04/2019, 12:31

Riduciti al caso di una funzione di una sola variabile. Fissa un punto sul bordo e considera un segmentino che parte da esso ed entra nel dominio, nella direzione di \(\nabla g\). La restrizione di \(f\) al segmentino è una funzione di una variabile e siccome ha un minimo nel punto, la sua derivata deve essere nulla o positiva. A conti fatti ti deve risultare che \(\lambda\) ha il segno giusto.
dissonance
Moderatore
Moderatore
 
Messaggio: 15253 di 27757
Iscritto il: 24/05/2008, 19:39
Località: Nomade

Re: Condizioni di Karush-Kuhn-Tucker

Messaggioda dissonance » 24/04/2019, 11:18

Se ancora hai difficoltà, risolvi il problema con \(n=2\) e \(g(x, y)=y\). In questo caso, \(\Sigma_g\) è il semipiano superiore. Fai molti disegnini. Se capisci questo caso, hai capito tutto.
dissonance
Moderatore
Moderatore
 
Messaggio: 15261 di 27757
Iscritto il: 24/05/2008, 19:39
Località: Nomade

Re: Condizioni di Karush-Kuhn-Tucker

Messaggioda 3m0o » 24/04/2019, 15:12

Chiedo scusa per la grandezza delle immagini non ho idea del motivo per cui siano così grandi e sfasate.
Con l'esempio che mi hai detto te il gradiente di \( \nabla g = (0,1) \)
In questo caso \( f(x,y)=x^2-y^2 \) e il gradiente è \( (2x,-2y) \) non mi sembrano collineari mai. Anzi in zero addirittura (sul bordo) sono proprio diversi, e \( f \) ha un minimo o sbaglio? \( x= 0 , y=0 \) è un minimo sul vincolo o sbaglio?

Immagine

In questo caso \( f(x,y)=-y \) e il gradiente è \( (0,-1) \) mi sembrano collineari con \( \lambda < 0 \) e \( f \) ha un minimo o sbaglio? Tutti i punti sulla retta \( y= 0 , z=0 \) sono un minimo vincolato
Immagine

In questo caso \( f(x,y)=\sin(x+y)+3 \) e \( h(x,y)=\sin(x+y) \) il gradiente è per entrambe le funzioni \( (\cos(x+y),\cos(x+y)) \), \( f \) ha un minimo interno, quindi è un minimo anche di \( f \) intera, e okay ci siamo. La seconda funzione mi sembra abbia minimi vincolati periodici a \( (k \pi,0) \) dunque il gradiente in questi punti è \( (1,1) \) e non mi sembra collineare al gradiente di \( g \).
Immagine


Dove sbaglio?
3m0o
Cannot live without
Cannot live without
 
Messaggio: 279 di 5327
Iscritto il: 02/01/2018, 15:00

Re: Condizioni di Karush-Kuhn-Tucker

Messaggioda dissonance » 24/04/2019, 15:58

Nel primo esempio, \(f\) ha un minimo vincolato in \((0,0)\) e in tale punto \(\nabla f=0\), quindi verifica \(\nabla f = \lambda \nabla g\) con \(\lambda=0\). Nel secondo esempio, i punti \(y=0\) sono *massimi*, non minimi. Ecco perché \(\lambda\) è negativo. Nel terzo esempio, i minimi di \(h(x, 0)=\sin x\) sono per \(x=-\pi/2 + 2k\pi\), in cui il coseno si annulla e siamo di nuovo nel caso del primo esempio.
dissonance
Moderatore
Moderatore
 
Messaggio: 15266 di 27757
Iscritto il: 24/05/2008, 19:39
Località: Nomade

Re: Condizioni di Karush-Kuhn-Tucker

Messaggioda 3m0o » 24/04/2019, 16:18

dissonance ha scritto:Nel primo esempio, \(f\) ha un minimo vincolato in \((0,0)\) e in tale punto \(\nabla f=0\), quindi verifica \(\nabla f = \lambda \nabla g\) con \(\lambda=0\). Nel secondo esempio, i punti \(y=0\) sono *massimi*, non minimi. Ecco perché \(\lambda\) è negativo. Nel terzo esempio, i minimi di \(h(x, 0)=\sin x\) sono per \(x=-\pi/2 + 2k\pi\), in cui il coseno si annulla e siamo di nuovo nel caso del primo esempio.

Allora forse sono io che non ho ben capito come interpretare il problema dei vincoli. Non devo guardare i punti del grafico di f che intersecano \( \Sigma_g \) ? Per il primo okay (non avevo pensato a zero effettivamente).
Per il secondo l'intersezione tra \( \mathcal{G}(f) \) e \( \Sigma_g \) è la retta \( y=0, z=0 \) che è un minimo su \( \Sigma_g \) (anche perché \( f \) ) non prende altri valori di \( \Sigma_g \). Stessa cosa per il terzo \( (x,0) \) perché consideri i punti \(( x= -\pi/2 + 2k\pi ,0) \not\in \Sigma_g \) ??
3m0o
Cannot live without
Cannot live without
 
Messaggio: 281 di 5327
Iscritto il: 02/01/2018, 15:00

Prossimo

Torna a Analisi matematica di base

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite