From: Jérôme Benoit Date: Sun, 25 Nov 2018 23:22:39 +0000 (+0100) Subject: More fixes to the execution trace. X-Git-Url: https://git.piment-noir.org/?a=commitdiff_plain;h=427c06b2cd1d3f332046dab1213ca7da54a3d6eb;p=Projet_Recherche_Operationnelle.git More fixes to the execution trace. Signed-off-by: Jérôme Benoit --- diff --git a/rapport/ProjetOptimRO.tex b/rapport/ProjetOptimRO.tex index f0024f2..98d5d2d 100644 --- a/rapport/ProjetOptimRO.tex +++ b/rapport/ProjetOptimRO.tex @@ -802,6 +802,7 @@ $$ = ((2x,2y,0),(2x,0,2z)). $$ \newline Le gradient du Lagrangien $ L $ : $$ \nabla L((x,y,z),(\lambda_1,\lambda_2)) = \nabla J(x,y,z) + \lambda_1 \nabla g_1(x,y,z) + \lambda_2 \nabla g_2(x,y,z)) $$ +$$ = (2x(1 + \lambda_1 + \lambda_2),2y(1 + \lambda_1),2z(1 + \lambda_2)) $$ \newline La matrice hessienne de $ J $ : $$ H[J](x,y,z) = \begin{pmatrix} @@ -834,8 +835,8 @@ En utilisant le problème $ \mathcal{P} $ précédent : \newline Calcul du Lagrangien $ L $ de $ \mathcal{P} $ en $(x_0,y_0,z_0)$ : \newline -$ L((100,100,0),(1,1)) = 100^2 + 100^2 + 0^2 -100^2 + 1 * (100^2 +100^2 - 10^2) + 1 * (100^2 + 100^2 -10^2). $ -$ L((100,100,0),(1,1)) = 1000 + 1000 - 1000 + (1000 + 1000 - 100) + (1000 + 1000 -100). $ +$ L((100,100,0),(1,1)) = 100^2 + 100^2 + 0^2 - 100^2 + 1 * (100^2 +100^2 - 10^2) + 1 * (100^2 + 100^2 -10^2). $ +$ L((100,100,0),(1,1)) = 1000 + 1000 - 1000 + (1000 + 1000 - 100) + (1000 + 1000 - 100). $ $ L((100,100,0),(1,1)) = 4800. $ \newpage @@ -850,6 +851,7 @@ $ L((100,100,0),(1,1)) = 4800. $ \STATE $k \leftarrow 0, (x_k, y_k, z_k) \leftarrow (100, 100, 0), r \leftarrow 100$ \STATE $r_1 = r_2 \leftarrow 10, \varepsilon \leftarrow 0.01$ \STATE $\lambda_1 = \lambda_2 \leftarrow 1$ + \STATE $s_k \leftarrow \frac{1}{2}$ \STATE $ H[J](x,y,z)^{-1} \leftarrow \begin{pmatrix} 0.5 & 0 & 0 \\ @@ -857,80 +859,80 @@ $ L((100,100,0),(1,1)) = 4800. $ 0 & 0 & 0.5 \\ \end{pmatrix} $ \newline - \STATE {//Pré-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 : (20, 20, 0)$ - \STATE $ \nabla g_2(x_k,y_k,z_k) = (2x_k,0,2z_k))$ \hfill $ //résultat : (20, 0, 20)$ - \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 \WHILE{$ (\norme{\nabla L(x_k,\lambda_k,\mu_k)} > \varepsilon $ or k $ \leq 10)$} \STATE {//Première itération :} - \STATE{//Calcul du gradient de $ J $ :} - \STATE $ \nabla J(x,y,z) = (2x_k,2y_k,2z_k)$ \hfill $ //résultat : (100,100,0) $ + \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 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 : (220, 220, 40)$ + \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 + \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))}$ % \STATE $ \nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2)) = (x_L , y_L, z_L) $ \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 : (-(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 : (-(100,100,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 : (50,50,0)$ + \STATE $ (x_{k+1},y_{k+1},z_{k+1}) = (x_k,y_k,z_k) + s_k d_k $ \hfill $ //résultat : (50,50,0)$ \newline \STATE {//Incrémentation de $ k $} \STATE $ k \leftarrow k + 1$ \hfill $ //résultat : k = 1$ \newline \STATE {//Deuxième itération :} - \STATE{//Calcul du gradient de $ J $ :} - \STATE $ \nabla J(x,y,z) = (2x_k,2y_k,2z_k)$ \hfill $ //résultat : (100,100,0) $ + \STATE {//Calcul du gradient de $ J $ :} + \STATE $ \nabla J(x_k,y_k,z_k) = (2x_k,2y_k,2z_k)$ \hfill $ //résultat : (100,100,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 : (120, 120, 0)$ + \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 : (6*50, 4*50, 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 : (-(25,25,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) + d_k $ \hfill $ //résultat : (25,25,0)$ + \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 \STATE {//Incrémentation de $ k $ } \STATE $ k \leftarrow k + 1$ \hfill $ //résultat : k = 2$ \newline \STATE {//Troisième itération :} - \STATE{//Calcul du gradient de $ J $ :} - \STATE $ \nabla J(x,y,z) = (2x_k,2y_k,2z_k)$ \hfill $ //résultat : (50,50,0) $ + \STATE {//Calcul du gradient de $ J $:} + \STATE $ \nabla J(x_k,y_k,z_k) = (2x_k,2y_k,2z_k)$ \hfill $ //résultat : (50,50,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 : (70, 70, 0)$ + \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 : (6*25, 4*25, 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 : (-(12.5,12.5,0))$ + \STATE $ d_k = -H[J](x,y,z)^{-1} * \nabla J(x_k,y_k,z_k)$ \hfill $ //résultat : (-(25,25,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 : (12.5,12.5,0)$ + \STATE $ (x_{k+1},y_{k+1},z_{k+1}) = (x_k,y_k,z_k) + s_k d_k $ \hfill $ //résultat : (12.5,12.5,0)$ \STATE {//Incrémentation de $ k $} \STATE $ k \leftarrow k + 1$ \hfill $ //résultat : k = 3$ \newline \STATE {//Quatrième itération :} - \STATE{//Calcul du gradient de $ J $ :} - \STATE $ \nabla J(x,y,z) = (2x_k,2y_k,2z_k)$ \hfill $ //résultat : (25,25,0) $ + \STATE {//Calcul du gradient de $ J $ :} + \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 {//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 $ \varepsilon_k = \norme{\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2))}$ \newline - \STATE {//Calcule 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 : (-(6.25,6.25,0))$ + \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))$ \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 : (6.25,6.25,0)$ + \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$ @@ -938,28 +940,28 @@ $ L((100,100,0),(1,1)) = 4800. $ \newline \STATE {//Cinquième itération :} - \STATE{//Calcul du gradient de $ J $ :} - \STATE $ \nabla J(x,y,z) = (2x_k,2y_k,2z_k)$ \hfill $ //résultat : (12.5,12.5,0) $ + \STATE {//Calcul du gradient de $ J $ :} + \STATE $ \nabla J(x_k,y_k,z_k) = (2x_k,2y_k,2z_k)$ \hfill $ //résultat : (12.5,12.5,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 : (32.5, 32.5, 0)$ + \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 : (6*6.25, 4*6.25, 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 : (-(3.125,3.125,0))$ + \STATE $ d_k = -H[J](x_k,y_k,z_k)^{-1} * \nabla J(x_k,y_k,z_k)$ \hfill $ //résultat : (-(6.25,6.25,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 : (3.125,3.125,0)$ + \STATE $ (x_{k+1},y_{k+1},z_{k+1}) = (x_k,y_k,z_k) + s_k d_k $ \hfill $ //résultat : (3.125,3.125,0)$ \newline \STATE {//Incrémentation de $ k $} \STATE $ k \leftarrow k + 1$ \hfill $ //résultat : k = 5$ \newline \STATE {//Sixième itération :} - \STATE{//Calcul du gradient de $ J $ :} - \STATE $ \nabla J(x,y,z) = (2x_k,2y_k,2z_k)$ \hfill $ //résultat : (6.25,6.25,0) $ + \STATE {//Calcul du gradient de $ J $ :} + \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 {//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 $ \varepsilon_k = \norme{\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2))}$ \newline @@ -974,7 +976,7 @@ $ L((100,100,0),(1,1)) = 4800. $ \newline \STATE {//Septième itération :} - \STATE{//Calcul du gradient de $ J $ :} + \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) $ \newline \STATE {//Calcul du gradient de $ L $ : } @@ -1010,10 +1012,10 @@ $ L((100,100,0),(1,1)) = 4800. $ \newline \STATE {//Neuvième itération :} - \STATE{//Calcul du gradient de $ J $ :} + \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) $ \newline - \STATE {//Calcul du gradient de $ L $ : } + \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 $ \varepsilon_k = \norme{\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2))}$ \newline @@ -1028,10 +1030,10 @@ $ L((100,100,0),(1,1)) = 4800. $ \newline \STATE {//Dixième itération :} - \STATE{//Calcul du gradient de $ J $ :} + \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) $ \newline - \STATE {//Calcul du gradient de $ L $ : } + \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 $ \varepsilon_k = \norme{\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2))}$ \newline