From: Jérôme Benoit Date: Mon, 26 Nov 2018 10:26:23 +0000 (+0100) Subject: Fix SQP trace calculation. X-Git-Url: https://git.piment-noir.org/?a=commitdiff_plain;h=4466fc2dcbbce87a97c3a7779273d0995bbad35c;p=Projet_Recherche_Operationnelle.git Fix SQP trace calculation. Signed-off-by: Jérôme Benoit --- diff --git "a/pr\303\251sentation/Slides_ProjetOptimRO.tex" "b/pr\303\251sentation/Slides_ProjetOptimRO.tex" index 91a29d5..02182bf 100644 --- "a/pr\303\251sentation/Slides_ProjetOptimRO.tex" +++ "b/pr\303\251sentation/Slides_ProjetOptimRO.tex" @@ -265,8 +265,8 @@ $}} \begin{center} $ \iff \nabla L(x^\ast,\lambda,\mu) = 0 \land \forall i \in I \ \mu_i \nabla g_i(x^\ast) = 0 $ où $ \lambda = (\lambda_1,\ldots,\lambda_q) $ et $ \mu = (\mu_1,\ldots,\mu_p) $. \end{center} - On appelle $ (\mu_i)_{i \in I}$ les multiplicateurs de Kuhn-Tucker et $ (\lambda_j)_{j \in J}$ les multiplicateurs de Lagrange. - \newline + % On appelle $ (\mu_i)_{i \in I}$ les multiplicateurs de Kuhn-Tucker et $ (\lambda_j)_{j \in J}$ les multiplicateurs de Lagrange. + % \newline On nomme également les conditions \textit{KTT} conditions nécessaires d'optimalité du premier ordre. \end{theoreme} \end{frame} diff --git a/rapport/ProjetOptimRO.tex b/rapport/ProjetOptimRO.tex index 98d5d2d..fa23402 100644 --- a/rapport/ProjetOptimRO.tex +++ b/rapport/ProjetOptimRO.tex @@ -866,11 +866,11 @@ $ L((100,100,0),(1,1)) = 4800. $ \STATE {//Calcul du gradient de $ J $ :} \STATE $ \nabla J(x_k,y_k,z_k) = (2x_k,2y_k,2z_k)$ \hfill $ //résultat : (200,200,0) $ \newline - \STATE {//Calcul des deux composantes du gradient de $ g $:} - \STATE $ \nabla g_1(x_k,y_k,z_k) = (2x_k,2y_k,0)$ \hfill $ //résultat : (200, 200, 0)$ - \STATE $ \nabla g_2(x_k,y_k,z_k) = (2x_k,0,2z_k)$ \hfill $ //résultat : (200, 0, 0)$ + % \STATE {//Calcul des deux composantes du gradient de $ g $:} + % \STATE $ \nabla g_1(x_k,y_k,z_k) = (2x_k,2y_k,0)$ \hfill $ //résultat : (200, 200, 0)$ + % \STATE $ \nabla g_2(x_k,y_k,z_k) = (2x_k,0,2z_k)$ \hfill $ //résultat : (200, 0, 0)$ % \STATE $ \nabla g(x_k,y_k,z_k) = (\nabla g_1(x_k,y_k,z_k), \nabla g_2(x_k,y_k,z_k))$ - \newline + % \newline \STATE {//Calcul du gradient de $ L $ :} \STATE $\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2)) = \nabla J(x_k,y_k,z_k) + \lambda_1 \nabla g_1(x_k,y_k,z_k) + \lambda_2 \nabla g_2(x_k,y_k,z_k)) $ \hfill $//résultat : (600, 400, 0)$ \STATE $ \varepsilon_k = \norme{\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2))}$ @@ -895,7 +895,7 @@ $ L((100,100,0),(1,1)) = 4800. $ \STATE $ \varepsilon_k = \norme{\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2))}$ \newline \STATE {//Calcul de la direction de la pente $ d_k $ (méthode de Newton) :} - \STATE $ d_k = -H[J](x_k,y_k,z_k)^{-1}* \nabla J(x_k,y_k,z_k)$ \hfill $ //résultat : (-(50,50,0))$ + \STATE $ d_k = -H[J](x_k,y_k,z_k)^{-1} * \nabla J(x_k,y_k,z_k)$ \hfill $ //résultat : (-(50,50,0))$ \STATE {//Calcul des nouvelles valeurs des coordonnées} \STATE $ (x_{k+1},y_{k+1},z_{k+1}) = (x_k,y_k,z_k) + s_k d_k $ \hfill $ //résultat : (25,25,0)$ \newline @@ -925,18 +925,17 @@ $ L((100,100,0),(1,1)) = 4800. $ \STATE $ \nabla J(x_k,y_k,z_k) = (2x_k,2y_k,2z_k)$ \hfill $ //résultat : (25,25,0) $ \newline \STATE {//Calcul du gradient de $ L $ :} - \STATE $\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2)) = \nabla J(x_k,y_k,z_k) + \lambda_1 \nabla g_1(x_k,y_k,z_k) + \lambda_2 \nabla g_2(x_k,y_k,z_k)) $ \hfill $//résultat : (45, 45, 0)$ + \STATE $\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2)) = \nabla J(x_k,y_k,z_k) + \lambda_1 \nabla g_1(x_k,y_k,z_k) + \lambda_2 \nabla g_2(x_k,y_k,z_k)) $ \hfill $//résultat : (6*12.5, 4*12.5, 0)$ \STATE $ \varepsilon_k = \norme{\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2))}$ \newline \STATE {//Calcul de la direction de la pente $ d_k $ (méthode de Newton) :} - \STATE $ d_k = -H[J](x_k,y_k,z_k)^{-1}* \nabla J(x_k,y_k,z_k)$ \hfill $ //résultat : (-(12.5,12.5,0))$ + \STATE $ d_k = -H[J](x_k,y_k,z_k)^{-1} * \nabla J(x_k,y_k,z_k)$ \hfill $ //résultat : (-(12.5,12.5,0))$ \newline \STATE {//Calcul des nouvelles valeurs des coordonnées} \STATE $ (x_{k+1},y_{k+1},z_{k+1}) = (x_k,y_k,z_k) + s_k d_k $ \hfill $ //résultat : (6.25,6.25,0)$ \STATE {//Incrémentation de $ k $} \newline \STATE $ k \leftarrow k + 1$ \hfill $ //résultat : k = 4$ - \STATE $ $ \newline \STATE {//Cinquième itération :} @@ -962,14 +961,14 @@ $ L((100,100,0),(1,1)) = 4800. $ \STATE $ \nabla J(x_k,y_k,z_k) = (2x_k,2y_k,2z_k)$ \hfill $ //résultat : (6.25,6.25,0) $ \newline \STATE {//Calcul du gradient de $ L $ :} - \STATE $\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2)) = \nabla J(x_k,y_k,z_k) + \lambda_1 \nabla g_1(x_k,y_k,z_k) + \lambda_2 \nabla g_2(x_k,y_k,z_k)) $ \hfill $//résultat : (26.25, 26.25, 0)$ + \STATE $\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2)) = \nabla J(x_k,y_k,z_k) + \lambda_1 \nabla g_1(x_k,y_k,z_k) + \lambda_2 \nabla g_2(x_k,y_k,z_k)) $ \hfill $//résultat : (6*3.125, 4*3.125, 0)$ \STATE $ \varepsilon_k = \norme{\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2))}$ \newline \STATE {//Calcul de la direction de la pente $ d_k $ (méthode de Newton) :} - \STATE $ d_k = -H[J](x,y,z)^{-1}* J(x,y,z)$ \hfill $ //résultat : (-(1.5625,1.5625,0))$ + \STATE $ d_k = -H[J](x_k,y_k,z_k)^{-1} * \nabla J(x_k,y_k,z_k)$ \hfill $ //résultat : (-(1.5625,1.5625,0))$ \STATE {//Calcul des nouvelles valeurs des coordonnées} \newline - \STATE $ (x_{k+1},y_{k+1},z_{k+1}) = (x_k,y_k,z_k)+ d_k $ \hfill $ //résultat : (1.5625,1.5625,0)$ + \STATE $ (x_{k+1},y_{k+1},z_{k+1}) = (x_k,y_k,z_k) + s_k d_k $ \hfill $ //résultat : (1.5625,1.5625,0)$ \STATE {//Incrémentation de $ k $} \newline \STATE $ k \leftarrow k + 1$ \hfill $ //résultat : k = 6$ @@ -977,17 +976,17 @@ $ L((100,100,0),(1,1)) = 4800. $ \STATE {//Septième itération :} \STATE {//Calcul du gradient de $ J $ :} - \STATE $ \nabla J(x,y,z) = (2x_k,2y_k,2z_k)$ \hfill $ //résultat : (3.125, 3.125, 0) $ + \STATE $ \nabla J(x_k,y_k,z_k) = (2x_k,2y_k,2z_k)$ \hfill $ //résultat : (3.125, 3.125, 0) $ \newline \STATE {//Calcul du gradient de $ L $ : } - \STATE $\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2)) = \nabla J(x_k,y_k,z_k) + \lambda_1 \nabla g_1(x_k,y_k,z_k) + \lambda_2 \nabla g_2(x_k,y_k,z_k)) $ \hfill $//résultat : (23.125, 23.125, 0)$ + \STATE $\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2)) = \nabla J(x_k,y_k,z_k) + \lambda_1 \nabla g_1(x_k,y_k,z_k) + \lambda_2 \nabla g_2(x_k,y_k,z_k)) $ \hfill $//résultat : (6*1.5625, 4*1.5625, 0)$ \STATE $ \varepsilon_k = \norme{\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2))}$ \newline \STATE {//Calcul de la direction de la pente $ d_k $ (méthode de Newton) :} - \STATE $ d_k = -H[J](x,y,z)^{-1}* J(x,y,z)$ \hfill $ //résultat : (-(0.78125,0.78125,0))$ + \STATE $ d_k = -H[J](x_k,y_k,z_k)^{-1} * \nabla J(x_k,y_k,z_k)$ \hfill $ //résultat : (-(0.78125,0.78125,0))$ \STATE {//Calcul des nouvelles valeurs des coordonnées} \newline - \STATE $ (x_{k+1},y_{k+1},z_{k+1}) = (x_k,y_k,z_k) + d_k $ \hfill $ //résultat : (0.78125,0.78125,0)$ + \STATE $ (x_{k+1},y_{k+1},z_{k+1}) = (x_k,y_k,z_k) + s_k d_k $ \hfill $ //résultat : (0.78125,0.78125,0)$ \STATE {//Incrémentation de $ k $} \newline \STATE $ k \leftarrow k + 1$ \hfill $ //résultat : k = 7$ @@ -995,17 +994,17 @@ $ L((100,100,0),(1,1)) = 4800. $ \STATE {//Huitième itération :} \STATE{//Calcul du gradient de $ J $ :} - \STATE $ \nabla J(x,y,z) = (2x_k,2y_k,2z_k)$ \hfill $ //résultat : (1.5625, 1.5625, 0) $ + \STATE $ \nabla J(x_k,y_k,z_k) = (2x_k,2y_k,2z_k)$ \hfill $ //résultat : (1.5625, 1.5625, 0) $ \newline \STATE {//Calcul du gradient de $ L $ : } - \STATE $\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2)) = \nabla J(x_k,y_k,z_k) + \lambda_1 \nabla g_1(x_k,y_k,z_k) + \lambda_2 \nabla g_2(x_k,y_k,z_k)) $ \hfill $//résultat : (21.5625, 21.5625, 0)$ + \STATE $\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2)) = \nabla J(x_k,y_k,z_k) + \lambda_1 \nabla g_1(x_k,y_k,z_k) + \lambda_2 \nabla g_2(x_k,y_k,z_k)) $ \hfill $//résultat : (6*0.78125, 4*0.78125, 0)$ \STATE $ \varepsilon_k = \norme{\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2))}$ \newline \STATE {//Calcul de la direction de la pente $ d_k $ (méthode de Newton) :} - \STATE $ d_k = -H[J](x,y,z)^{-1}* J(x,y,z)$ \hfill $ //résultat : (-(0.390625,0.390625,0))$ + \STATE $ d_k = -H[J](x_k,y_k,z_k)^{-1} * \nabla J(x_k,y_k,z_k)$ \hfill $ //résultat : (-(0.390625,0.390625,0))$ \newline \STATE {//Calcul des nouvelles valeurs des coordonnées} - \STATE $ (x_{k+1},y_{k+1},z_{k+1}) = (x_k,y_k,z_k)+ d_k $ \hfill $ //résultat : (0.390625,0.390625,0)$ + \STATE $ (x_{k+1},y_{k+1},z_{k+1}) = (x_k,y_k,z_k) + s_k d_k $ \hfill $ //résultat : (0.390625,0.390625,0)$ \newline \STATE {//Incrémentation de $ k $} \STATE $ k \leftarrow k + 1$ \hfill $ //résulat : k = 8$ @@ -1013,17 +1012,17 @@ $ L((100,100,0),(1,1)) = 4800. $ \STATE {//Neuvième itération :} \STATE {//Calcul du gradient de $ J $ :} - \STATE $ \nabla J(x,y,z) = (2x_k,2y_k,2z_k)$ \hfill $ //résultat : (0.78125, 0.78125, 0) $ + \STATE $ \nabla J(x_k,y_k,z_k) = (2x_k,2y_k,2z_k)$ \hfill $ //résultat : (0.78125, 0.78125, 0) $ \newline \STATE {//Calcul du gradient de $ L $ :} - \STATE $\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2)) = \nabla J(x_k,y_k,z_k) + \lambda_1 \nabla g_1(x_k,y_k,z_k) + \lambda_2 \nabla g_2(x_k,y_k,z_k)) $ \hfill $//résultat : (20.78125, 20.78125, 0)$ + \STATE $\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2)) = \nabla J(x_k,y_k,z_k) + \lambda_1 \nabla g_1(x_k,y_k,z_k) + \lambda_2 \nabla g_2(x_k,y_k,z_k)) $ \hfill $//résultat : (6*0.390625, 4*0.390625, 0)$ \STATE $ \varepsilon_k = \norme{\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2))}$ \newline \STATE {//Calcul de la direction de la pente $ d_k $ (méthode de Newton) :} - \STATE $ d_k = -H[J](x,y,z)^{-1}* J(x,y,z)$ \hfill $ //résultat : (-(0.1953125,0.1953125,0))$ + \STATE $ d_k = -H[J](x_k,y_k,z_k)^{-1} * \nabla J(x_k,y_k,z_k)$ \hfill $ //résultat : (-(0.1953125,0.1953125,0))$ \newline \STATE {//Calcul des nouvelles valeurs des coordonnées} - \STATE $ (x_{k+1},y_{k+1},z_{k+1}) = (x_k,y_k,z_k) + d_k $ \hfill $ //résultat : (0.1953125,0.1953125,0)$ + \STATE $ (x_{k+1},y_{k+1},z_{k+1}) = (x_k,y_k,z_k) + s_k d_k $ \hfill $ //résultat : (0.1953125,0.1953125,0)$ \newline \STATE {//Incrémentation de $ k $} \STATE $ k \leftarrow k + 1 \hfill //résultat : k = 9$ @@ -1031,17 +1030,17 @@ $ L((100,100,0),(1,1)) = 4800. $ \STATE {//Dixième itération :} \STATE {//Calcul du gradient de $ J $ :} - \STATE $ \nabla J(x,y,z) = (2x_k,2y_k,2z_k)$ \hfill $ //résultat : (0.390625, 0.390625, 0) $ + \STATE $ \nabla J(x_k,y_k,z_k) = (2x_k,2y_k,2z_k)$ \hfill $ //résultat : (0.390625, 0.390625, 0) $ \newline \STATE {//Calcul du gradient de $ L $ :} - \STATE $\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2)) = \nabla J(x_k,y_k,z_k) + \lambda_1 \nabla g_1(x_k,y_k,z_k) + \lambda_2 \nabla g_2(x_k,y_k,z_k)) $ \hfill $//résultat : (20.390625, 20.390625, 0)$ + \STATE $\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2)) = \nabla J(x_k,y_k,z_k) + \lambda_1 \nabla g_1(x_k,y_k,z_k) + \lambda_2 \nabla g_2(x_k,y_k,z_k)) $ \hfill $//résultat : (6*0.1953125, 4*0.1953125, 0)$ \STATE $ \varepsilon_k = \norme{\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2))}$ \newline \STATE {//Calcul de la direction de la pente $ d_k $ (méthode de Newton) :} - \STATE $ d_k = -H[J](x,y,z)^{-1}* J(x,y,z)$ \hfill $ //résultat : (-(0.097665625,0.097665625,0))$ + \STATE $ d_k = -H[J](x_k,y_k,z_k)^{-1} * \nabla J(x_k,y_k,z_k)$ \hfill $ //résultat : (-(0.097665625,0.097665625,0))$ \newline \STATE {//Calcul des nouvelles valeurs des coordonnées} - \STATE $ (x_{k+1},y_{k+1},z_{k+1}) = (x_k,y_k,z_k) + d_k $ \hfill $ //résultat : (0.097665625,0.097665625,0)$ + \STATE $ (x_{k+1},y_{k+1},z_{k+1}) = (x_k,y_k,z_k) + s_k d_k $ \hfill $ //résultat : (0.097665625,0.097665625,0)$ \newline \STATE {//Incrémentation de $ k $} \STATE $ k \leftarrow k + 1$ \hfill $ //résultat : k = 10$