00ee5839229dfe8831f6a0f8745565384f486fbe
[Projet_Recherche_Operationnelle.git] / rapport / ProjetOptimRO.tex
1 \documentclass[12pt,oneside,a4paper]{book}
2
3
4 %%%%%Packages
5
6
7 \usepackage{latexsym}
8 \usepackage{amsmath}
9 \usepackage{amsthm}
10 \usepackage{mathtools}
11 \usepackage{amssymb}
12 \usepackage[utf8]{inputenc}
13 \usepackage[francais]{babel}
14 \usepackage{color}
15 \usepackage{geometry}
16 \usepackage{graphicx}
17 \usepackage{amsfonts}
18 \usepackage[T1]{fontenc}
19 \usepackage{multirow}
20 \usepackage{fancyhdr}
21 \usepackage{tocbibind}
22 \usepackage{lmodern}
23 \usepackage{enumitem}
24 \usepackage{algorithm2e}
25 \usepackage{algorithmic}
26
27
28 %%%%%Marges & en-t\^etes
29
30 \geometry{hmargin=2.3cm, vmargin=3cm}
31 \fancyhf{} % supprime les en-t\^etes et pieds pr\'ed\'efinis
32 \fancyhead[FC]{\bfseries\thepage} % N∞page centre bas
33 \fancyhead[HC]{\footnotesize\leftmark} % chapitre centre haut
34 \renewcommand{\headrulewidth}{0.2pt} % filet en haut
35 \addtolength{\headheight}{0.5pt} % espace pour le filet
36 \renewcommand{\footrulewidth}{0.2pt} % filet en bas
37
38
39 %%%%%Th\'eor\`eme et d\'efinitions
40
41 \newtheorem{Def}{D\'efinition}
42 \newtheorem{Not}[Def]{Notation}
43 \newtheorem{Th}{Th\'eor\`eme}
44 \newtheorem{Prop}[Th]{Proposition}
45 \newtheorem{Cor}[Th]{Corollaire}
46 \newtheorem{Rmq}{Remarque}
47
48 \newcommand{\norme}[1]{\left\Vert #1 \right\Vert}
49
50 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
51 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
52
53 \begin{document}
54
55 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
56 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
57
58 %%%%%Page de garde
59
60 \begin{center}
61
62 %\includegraphics[scale=0.5]{logo_sciences_rvb.png}\\
63 \includegraphics[scale=0.5]{polytech.png}\\
64
65 \vspace*{0.5cm}
66
67 \footnotesize{
68 \large \bf D\'epartement d'Informatique, Réseaux et Multimédia\\
69 \large \bf 5ème année\\
70 }
71
72 \vspace*{0.5cm}
73
74 %\large{Master 2 Professionnel\\
75 %Math\'ematiques et Informatique des Nouvelles Technologies\\}
76
77 \large{Projet \\ en \\ Optimisation et Recherche Opérationnelle \\}
78
79 \vspace*{0.7cm}
80
81 \begin{tabular}{c}
82 \hline
83 ~ \\
84 \LARGE\textbf {Programmation Quadratique Séquentielle ou PQS} \\
85 \LARGE\textbf {en} \\
86 \LARGE\textbf {Optimisation non linéraire sous contraintes} \\
87 ~ \\
88 \hline
89 \end{tabular}
90
91 \vspace*{0.7cm}
92
93 \includegraphics[scale=0.4]{CE.PNG}\\
94
95 \vspace*{0.5cm}
96
97 \large par\\
98
99 %\large \bsc{}\\
100 %\normalsize{M\'emoire encadr\'e par :} \large St\'ephane \bsc{Ballet}\\
101
102 \vspace*{0.2cm}
103 \large {\bf Jérôme \bsc{Benoit} et Sylvain \bsc{Papa}}\\
104
105 %\vspace*{0.1cm}
106
107 % \large sous la direction de \\
108
109 %\vspace*{0.1cm}
110
111 %Eric Audureau et Thierry Masson
112
113 %\vspace*{1cm}
114
115 \vspace*{1cm}
116
117 %\normalsize{Licence de Mathématiques 3ème année}
118 \normalsize{Année 2018-2019}
119
120 \end{center}
121
122 \thispagestyle{empty}
123
124 \newpage
125
126
127 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
128 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
129
130
131 \pagestyle{plain}
132 \frontmatter
133
134
135 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
136 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
137
138
139 %%%%%Table des mati\`eres
140
141 \tableofcontents
142
143 \begin{figure}[!b]
144 \begin{center}
145 %\includegraphics{logo_fac2}
146 \includegraphics[scale=0.04]{amu}
147 \end{center}
148 \end{figure}
149
150 \newpage
151
152
153 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
154 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
155
156
157 \mainmatter
158 \pagestyle{fancy}
159
160
161 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
162 \chapter{Introduction générale}
163
164 L'objectif de ce chapitre est de faire un bref rappel des définitions, notions et résultats essentiels en recherche opérationnelle ainsi que en mathématiques nécessaires à l'étude de la méthode PQS.
165 \newline
166 Elle est loin d'être exhaustive mais devrait suffire dans le cadre de ce projet.
167
168 \vspace{.5em}
169
170 \section{Qu'est-ce que la recherche opérationnelle?}
171
172 \subsection{Présentation rapide}
173
174 La recherche opérationnelle est une discipline dite "hybride" au confluent de plusieurs disciplines dont principalement les mathématiques (l'analyse numérique, les probabilités, la statistique) et l'informatique (l'algorithmie).
175 \newline
176 On la considère usuellement comme une sous discipline des mathématiques de la décision. Elle a de nombreuses applications, particulièrement en intelligence artificielle.
177
178 \subsection{Définition de la problèmatique}
179
180 Définissons le problème central $ \mathcal{P} $ que se propose de résoudre la recherche opérationnelle :
181 \begin{Def}
182 Soient $(n, p, q) \in \mathbb{N}^3$, $x \in \mathbb{R}^n$, une fonction $g: \mathbb{R}^n \longrightarrow \mathbb{R}^p$ représentant les contraintes d'inégalités, une fonction $h: \mathbb{R}^n \longrightarrow \mathbb{R}^q$ représentant les contraintes d'égalités et une fonction dite objectif $J: \mathbb{R}^n \longrightarrow \mathbb{R}$.
183 \newline
184 La problèmatique $ \mathcal{P} $ se définit par :
185 $$
186 \mathcal{P} \left \{
187 \begin{array}{l}
188 \displaystyle\min_{x \in \mathbb{R}^n} J(x) \\
189 g(x) \leq 0 \\
190 h(x) = 0
191 \end{array}
192 \right .
193 $$
194 \end{Def}
195 \begin{Def}
196 On définit $ \mathcal{C} $ l'ensemble des contraintes par :
197 $$ \mathcal{C} = \left \{ x \in \mathbb{R}^n \ | \ g(x) \leq 0 \land h(x) = 0 \right \} $$
198 \end{Def}
199 Elle se doit de résoudre les problèmes d'existence d'une solution ($ \mathcal{C} \neq \emptyset $ et $ \displaystyle\min_{x \in \mathbb{R}^n} J(x) $ défini dans $ \mathcal{C} $) ainsi que de construction d'une solution dans $ \mathcal{C} $.
200
201 \section{Qu'est-ce que l'optimisation?}
202
203 \subsection{Définition}
204
205 La recherche d'une méthode permettant de trouver la solution au problème $ \mathcal{P} $ dans $ \mathcal{C} $ est l'activité principale de l'optimisation.
206 \newline
207 Si la modélisation de la problèmatique $ \mathcal{P} $ est considérée comme un art, la recherche d'une solution au problème $ \mathcal{P} $ dans $ \mathcal{C} $ est, elle, une science.
208
209 \subsection{Quelques définitions annexes}
210
211 Définissons quelques notions supplémentaires de base nécessaires à la suite :
212 \begin{Def}
213 On définit le Lagrangien associé à $ \mathcal{P} $ par :
214 $$ \begin{array}{r c l}
215 L : \mathbb{R}^n \times \mathbb{R}^q \times \mathbb{R}_+^p & \longrightarrow & \mathbb{R} \\
216 (x,\lambda,\mu) & \longmapsto & L(x,\lambda,\mu) = J(x) + \sum\limits_{i=1}^{q} \lambda_i h_i(x) + \sum\limits_{j=1}^{p} \mu_j g_j(x) \\
217 & & L(x,\lambda,\mu) = J(x) + \langle \lambda,h(x) \rangle_{\mathbb{R}^q} + \langle \mu,g(x) \rangle_{\mathbb{R}^p}
218 \end{array} $$
219 où l’on note $ \lambda $ et $ \mu $ les vecteurs de coordonnées respectives $ (\lambda_1,\ldots,\lambda_q) $ et $ (\mu_1,\ldots,\mu_p) $.
220 \end{Def}
221 \begin{Def}
222 Soient $ \mathbb{R}^n $ un espace topologique, $ A \subset \mathbb{R}^n $ et $ x^\ast \in \mathbb{R}^n $.
223 \newline
224 On dit que $ x^\ast $ est \textbf{intérieur} à $ A $ si $ A $ est un voisinage de $ x^\ast $. On appelle intérieur de $ A $ l'ensemble des points intérieurs à $ A $ et on le note $ \mathring{A} $.
225 \end{Def}
226 \begin{Rmq}
227 $ A \subset \mathbb{R}^n $ est un ouvert $ \iff A = \mathring{A} $.
228 \end{Rmq}
229 \begin{Def}
230 Soient $ \mathbb{R}^n $ un espace topologique, $ A \subset \mathbb{R}^n $ et $ x^\ast \in \mathbb{R}^n $.
231 \newline
232 On dit que $ x^\ast $ est \textbf{adhérent} à $ A $ si et seulement si $ \forall V \in \mathcal{V}(x^\ast) \ A \cap V \neq \emptyset $. On appelle adhérence de $ A $ l'ensemble des points adhérents à $ A $ et on le note $ \overline{A} $.
233 \end{Def}
234 \begin{Rmq}
235 $ A \subset \mathbb{R}^n $ est un fermé $ \iff A = \overline{A} $.
236 \end{Rmq}
237 \begin{Def}
238 Soient $ f : \mathbb{R}^n \longrightarrow \mathbb{R} $ et $ S \subset \mathbb{R}^n $. On définit $ \mathrm{argmin} $ de $ f $ sur $ S $ par :
239 $$ \underset{x \in S}{\mathrm{argmin}} f(x) = \{ x \in \mathbb{R}^n \ | \ x \in S \land \forall y \in S \ f(y) \geq f(x) \} $$
240 \end{Def}
241 \begin{Def}
242 Soient une fonction $ f : \mathbb{R}^n \longrightarrow \mathbb{R} $ et $ x^\ast \in \mathbb{R}^n $.
243 \newline
244 On dit que $ f $ est continue en $ x^\ast $ si
245 $$ \forall \varepsilon \in \mathbb{R}_{+}^{*} \ \exists \alpha \in \mathbb{R}_{+}^{*} \ \forall x \in \mathbb{R}^n \ \norme{x - x^\ast} \leq \alpha \implies |f(x) - f(x^\ast)| \leq \varepsilon $$
246 \end{Def}
247 \begin{Def}
248 Soient $ k \in \{ 1,\ldots,n \} $ et une fonction $ f: \mathbb{R}^n \longrightarrow \mathbb{R} $.
249 \newline
250 On dit que la $ k^{ième} $ dérivée partielle de $ f $ existe au point $ x^\ast \in \mathbb{R}^n $ si l’application
251 $$ t \longmapsto f(x^\ast_1,\ldots,x^\ast_{k-1},x^\ast_k + t,x^\ast_{k+1},\ldots,x^\ast_n) $$
252 définie sur un voisinage de $ 0 $ dans $ \mathbb{R} $ et à valeurs dans $ \mathbb{R} $ est dérivable en $ 0 $.
253 \newline
254 Dans ce cas on note
255 $$ \frac{\partial f}{\partial x_k}(x^\ast) $$ ou $$ \partial_k f(x^\ast) $$
256 cette dérivée.
257 \end{Def}
258 \begin{Def}
259 Soient une fonction $ f : \mathbb{R}^n \longrightarrow \mathbb{R} $
260 et $ x^\ast, h \in \mathbb{R}^n $.
261 \newline
262 On dit que $ f $ est différentiable en $ x^\ast $ si il existe une application linéraire $ d_{x^\ast}f $ de $ \mathbb{R}^n $ dans $ \mathbb{R} $ telle que
263 \[
264 f(x^\ast + h) = f(x^\ast) + d_{x^\ast}f(h) + \underset{h \rightarrow 0}{\mathrm{o}}(\norme{h})
265 \]
266 Autrement dit il existe une application $ \varepsilon_{x^\ast} $ définie sur le voisinage de $ 0 $ dans $ \mathbb{R}^n $ et à valeurs dans $ \mathbb{R} $
267 telle que $ \lim\limits_{h \rightarrow 0} \varepsilon_{x^\ast}(h) = 0 $ et
268 \[
269 f(x^\ast + h) = f(x^\ast) + d_{x^\ast}f(h) + \norme{h}\varepsilon_{x^\ast}(h)
270 \]
271 On appelle $ d_{x^\ast}f $ la différentielle de $ f $ en $ x^\ast $.
272 \end{Def}
273 \begin{Rmq}
274 On peut démontrer que : $$ d_{x^\ast}f = \sum_{i=1}^n\frac{\partial f}{\partial x_i}(x^\ast) $$.
275 \end{Rmq}
276 \begin{Def}
277 Soit une fonction $ f: \mathbb{R}^n \longrightarrow \mathbb{R} $ différentiable.
278 \newline
279 Le gradient de $ f $, noté $\nabla f$, en $ x^\ast \in \mathbb{R}^n$ se définit par :
280 \[
281 \nabla f(x^\ast) = (\frac{\partial f}{\partial x_1}(x^\ast),\ldots,\frac{\partial f}{\partial x_n}(x^\ast))
282 \]
283 \end{Def}
284 \begin{Rmq}
285 $ \forall h \in \mathbb{R}^n \ d_{x^\ast}f(h) = \langle \nabla f(x^\ast),h \rangle = \nabla f(x^\ast)^\top h $
286 \end{Rmq}
287 \begin{Def}
288 Soit $ f: \mathbb{R}^n \longrightarrow \mathbb{R} $ une fonction de classe $ \mathcal{C}^2 $.
289 On définit la matrice hessienne de $ f $ en $ x^\ast $ par :
290 $$ H[f](x^\ast) =
291 \begin{pmatrix}
292 \frac{\partial^2 f}{\partial x_1^2}(x^\ast) & \cdots & \frac{\partial^2 f}{\partial x_1\partial x_n}(x^\ast) \\
293 \vdots & & \vdots \\
294 \frac{\partial^2 f}{\partial x_n\partial x_1}(x^\ast) & \cdots & \frac{\partial^2 f}{\partial x_n^2}(x^\ast)
295 \end{pmatrix} $$
296 \end{Def}
297 \begin{Prop}
298 \begin{enumerate}
299 \item $ H[f](x^\ast) $ est une matrice symétrique (Théorème de symétrie de Schwarz).
300 \item On a le développement de Taylor-Young à l'ordre 2 en $ x^\ast $ suivant :
301 $$ f(x^\ast + v) = f(x^\ast) + \langle \nabla f(x^\ast),v \rangle + \frac{1}{2} v^\top H[f](x^\ast) v + \varepsilon(v) $$
302 ou
303 $$ f(x^\ast + v) = f(x^\ast) + \langle \nabla f(x^\ast),v \rangle + \frac{1}{2} \langle H[f](x^\ast)v,v \rangle + \varepsilon(v) $$
304 avec $ \frac{|\varepsilon(v)|}{\norme{v}} \rightarrow 0 $ quand $ \norme{v} \rightarrow 0 $.
305 \end{enumerate}
306 \end{Prop}
307 \begin{proof}
308 Elle repose entièrement sur deux autres théorèmes dont les preuves sont connues et de la réécriture de formulation de résultat.
309 \end{proof}
310
311 \subsection{Conditions d'existence d'un extremum}
312
313 On peut démontrer que $ \mathcal{C}$ est un ensemble fermé de $ \mathbb{R}^n $ si $ g $ et $ h $ sont continues.
314 On peut en déduire $ \mathcal{C} $ est un ensemble fermé et borné de $ \mathbb{R}^n $.
315 \begin{Th}[Théorème de Weierstrass]
316 Soient $ \mathcal{C} \neq \emptyset \subset \mathbb{R}^n $ un fermé borné et $ f : \mathcal{C} \longrightarrow \mathbb{R} $ une fonction continue.
317 \newline
318 Alors : $$ \exists x^\ast \in \mathcal{C} \ \forall x \in \mathcal{C} \ f(x) \geq f(x^\ast) $$
319 Autrement dit $ x^\ast $ est un minimum global de $ J $ sur $ \mathcal{C} $.
320 \newline
321 De la même façon, il existe un maximum global de $ J $ sur $ \mathcal{C} $.
322 \end{Th}
323 Si $ J $ est continue, on en déduit que $ \mathcal{P} $ admet au moins une solution dans le cas où $ J, g ,h $ sont continues \cite{LJK,RON}. L'étude de la convexité de $ J $ sur $ \mathcal{C} $ permet d'explorer l'unicité de la solution \cite{LJK,RON}.
324
325 \subsection{Conditions de caractérisation d'un extremum}
326
327 Dans le cas où $ J, g, h $ sont continûment différentiable et ses dérivées sont continues (c'est à dire de classe $ \mathcal{C}^1 $), la recherche du mimimum consiste à faire des descentes par gradient [section \ref{descente}] de $ J $ sur $ \mathcal{C} $ avec comme critère d'arrêt : $ x_i = \displaystyle\min_{x \in \mathcal{C}} J(x) \iff \forall \varepsilon \in \mathbb{R}_{+}^{*} \ \norme{\nabla J(x_i)} < \varepsilon $, $ i \in \mathbb{N} $ \cite{FEA}.
328 \newline
329 On peut en déduire que une condition nécessaire et suffisante pour que $ x^\ast \in \mathring{\mathcal{C}} $ soit un des extremums locaux de $ J $ est que $ \nabla J(x^\ast) = 0 $. Mais si $ x^\ast \in \overline{\mathcal{C}}\setminus\mathring{\mathcal{C}} $ (la frontière de $ \mathcal{C} $) alors $ \nabla J(x^\ast) $ n'est pas nécessairement nul. Il sera par conséquent nécessaire de trouver d'autres caratérisations d'un extremum local \cite{FEA,WAL}.
330
331 \subsubsection{Conditions nécessaires de Karuch-Kuhn-Tucker ou \textit{KKT}}\label{KKT}
332
333 \begin{Th}
334 Soient $ x^\ast \in \mathbb{R}^n $, $ I = \{ 1,\ldots,p \} $ et $ J = \{ 1,\ldots,q \} $.
335 \newline
336 Les conditions nécessaires pour que $ x^\ast \in \mathcal{C}$ soit un minimum local de $ J $ sont :
337 \newline
338 \newline
339 \centerline{$ \{ \nabla g_1(x^\ast),\ldots,\nabla g_p(x^\ast),\nabla h_1(x^\ast),\ldots,\nabla h_q(x^\ast) \} $ sont linéairement indépendants.}
340 \newline
341 \newline
342 et
343 $$ \forall i \in I \ \exists \mu_i \in \mathbb{R}_{+} \land \forall j \in J \ \exists \lambda_j \in \mathbb{R} \ \nabla J(x^\ast) + \sum_{i \in I}\mu_i{\nabla g_i(x^\ast)} + \sum_{j \in J}\lambda_j{\nabla h_j(x^\ast)} = 0 \land \forall i \in I \ \mu_i \nabla g_i(x^\ast) = 0 $$
344 On appelle $ (\mu_i)_{i \in I}$ les multiplicateurs de Kuhn-Tucker et $ (\lambda_j)_{j \in J}$ les multiplicateurs de Lagrange.
345 \newline
346 On nomme également les conditions \textit{KTT} conditions nécessaires d'optimalité du premier ordre.
347 \end{Th}
348 \begin{proof}
349 Elle repose sur le lemme de Farkas \cite{FEA,RON}.
350 \end{proof}
351 Il est à noter que une condition d'égalité peut se répresenter par deux conditions d'inégalité : $ \forall x \in \mathbb{R}^n \ \forall i \in \{ 1,\ldots,q \} \ h_i(x) = 0 \iff h_i(x) \leq 0 \land h_i(x) \geq 0 $ \cite{FEA}, ce qui peut permettre de réécrire le problème $ \mathcal{P} $ en éliminant les contraintes d'égalités et change la forme des conditions \textit{KKT} à vérifier mais rajoute $ 2q $ conditions d'inégalités et donc $ 2q $ multiplicateurs de Kuhn-Tucker.
352 \begin{Def}
353 On appelle un point admissible $ x^\ast \in \mathcal{C} $ un point critique de $ \mathcal{P} $ si il statisfait les conditions \textit{KKT}.
354 \end{Def}
355
356 \subsubsection{Conditions suffisantes du deuxième ordre}
357
358 \begin{Th}
359 Les conditions suffisantes en plus de celles \textit{KKT} pour que $ x^\ast \in \mathcal{C} $ soit un minimum local de $ J $ sont :
360 \begin{enumerate}[label=(\roman*)]
361 \item relâchement complémentaire dual\footnote{La définition de cette notion ne sera pas donnée car elle n'est pas nécessaire pour l'étude de la méthode PQS.} strict en $ x^\ast $.
362 \item $ \forall v \in \mathbb{R}^n \land v \neq 0 \ \langle H_x[L](x^\ast,\lambda,\mu)v,v \rangle > 0 $.
363 \end{enumerate}
364 \end{Th}
365
366 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
367
368 \chapter{Méthode de programmation quadratique séquentielle}
369
370 Dans ce projet, nous nous proposons d'étudier une des méthodes d'optimisation non linéaire avec contraintes nommée programmation quadratique séquentielle ou PQS.
371
372 \vspace{.5em}
373
374 \section{Methode de descente}\label{descente}
375
376 Nous supposons que le domaine des contraintes de $ \mathcal{P} $ est un ouvert de $ \mathbb{R}^n $ (c'est à dire que nous n'avons pas de contraintes) et $ J $ est une fonction définie sur $ \mathbb{R}^n $ à valeurs réelles supposée différentiable, voire même deux fois différentiable. Les conditions nécessaires d’optimalité du premier et du second ordre expriment le fait qu’il n’est pas possible de “descendre” à partir d’un point de minimum (local ou global). Cette observation va servir de point de départ à l’élaboration des méthodes dites de descente.
377
378 Partant d’un point $ x_0 \in \mathbb{R}^n $ arbitrairement choisi, un algorithme de descente va chercher à générer une suite d’itérés $ (x_k)_{k \in \mathbb{N}} $ de $ \mathbb{R}^n $ définie par :
379 $$ x_{k+1} = x_k + s_kd_k $$ où $ s_k \in \mathbb{R}_{+}^{*},d_k \in \mathbb{R}^n $ et avec
380 $$ \forall k \in \mathbb{N} \ J(x_{k+1}) \leq J(x_k) $$
381 Un tel algorithme est ainsi déterminé par deux éléments à chaque étape $ k $ : le choix de la direction $ d_k $ appelée direction de descente, et le choix de la taille du pas $ s_k $ à faire dans la direction $ d_k $. Cette étape est appelée \textit{recherche linéaire}.
382
383 \subsection{Définition d'une direction de descente}
384
385 Un vecteur $ d \in \mathbb{R}^n $ est une direction de descente pour $ J $ à partir d’un point $ x_0 \in \mathbb{R}^n $ si $ t \longmapsto f(x_0 + td) $ est strictement décroissante en $ t = 0 $, c’est-à-dire :
386 $$ \exists \eta \in \mathbb{R}_{+}^{*} \ \forall t \in ]0,\eta] \ J(x_0 + td) < J(x_0) $$
387 Il est donc important d’analyser le comportement de la fonction $ J $ dans certaines directions.
388 \begin{Prop}
389 Soient $ J : \mathbb{R}^n \longrightarrow \mathbb{R} $ différentiable et $ d \in \mathbb{R}^n $.
390 \newline
391 d est un vecteur de descente de $ J $ en $ x_0 \in \mathbb{R}^n $ ssi :
392 $$ \nabla J(x_0)^\top d < 0 $$
393 De plus
394 $$ \forall \beta < 1 \in \mathbb{R}_{+} \ \exists \eta \in \mathbb{R}_{+}^{*} \ \forall t \in ]0,\eta] \ J(x_0 + td) < J(x_0) + t\beta \nabla J(x_0)^\top d < J(x_0) $$
395 \end{Prop}
396 \begin{proof}
397 Elle s'effectue en utilisant le développement de Taylor-Young de l’application $ t \longmapsto f(x_0 + td) $ à l’ordre 1.
398 \end{proof}
399 Cette dernière inégalité garantit une décroissance minimum de la fonction $ J $ dans la direction $ d $ et peut se traduire par : la décroissance de la fonction $ J $, en effectuant un pas de longueur $ t $ dans la direction $ d $, est au moins égale à la longueur du pas multipliée par une fraction de la pente. Le schéma général d’un algorithme de descente est alors le suivant :
400
401 \hrulefill
402 \newline
403 ALGORITHME DE DESCENTE MODÈLE.
404 \newline
405 \textit{Entrées}: $ J : \mathbb{R}^n \longrightarrow \mathbb{R} $ différentiable, $ x_0 \in \mathbb{R}^n $ point initial arbitraire.
406 \newline
407 \textit{Sortie}: une approximation $ x_k $ de la solution $ x^\ast $ du problème : $ \displaystyle\min_{x \in \mathbb{R}^n} J(x) $.
408 \begin{enumerate}
409 \item $ k := 0 $.
410 \item Tant que "test d’arrêt" non satisfait,
411 \begin{enumerate}
412 \item Trouver une direction de descente $ d_k $ telle que : $ \nabla J(x_k)^\top d_k < 0 $.
413 \item \textit{Recherche linéaire} : Choisir un pas $ s_k > 0 $ à faire dans cette direction et tel que : $$ J(x_k + s_kd_k) < J(x_k). $$
414 \item Mise à jour : $ x_{k+1} = x_k + s_kd_k; \ k := k + 1 $.
415 \end{enumerate}
416 \item Retourner $ x_k $.
417 \end{enumerate}
418
419 \hrulefill
420
421 \subsection{Choix de la direction de descente}
422
423 Une fois la théorie bien maîtrisée, calculer une direction de descente est relativement simple. Dans le cas différentiable, il existe deux grandes stratégies de choix de direction de descente :
424 \begin{itemize}
425 \item la stratégie de Cauchy : $ d_k = -\nabla J(x_k) $, conduisant aux \textit{algorithmes de gradient}.
426 \item la stratégie de Newton : $ d_k = -H[J](x_k)^{-1} \nabla J(x_k) $, conduisant aux \textit{algorithmes Newtoniens}.
427 \end{itemize}
428 Remarquons que si $ x_k $ est un point stationnaire ($ \iff \nabla J(x_k) = 0 $) non optimal alors toutes ces directions sont nulles et aucun de ces algorithmes ne pourra progresser. Ce problème peut être résolu en utilisant des approches de type région de confiance qui ne seront pas étudiées dans le cadre de ce projet.
429
430 \subsection{Critère d’arrêt}
431
432 Soit $ x^\ast $ un minimum local de l'objectif $ J $ à optimiser. Supposons que l’on choisisse comme test d’arrêt dans l’algorithme de descente modèle, le critère idéal : "$ x_k = x^\ast $". Dans un monde idéal (i.e. en supposant tous les calculs exacts et la capacité de calcul illimitée), soit l’algorithme s’arrête après un nombre fini d’itérations, soit il construit (théoriquement) une suite infinie $ x_0,x_1,\ldots,x_k,\ldots $ de points de $ \mathbb{R}^n $ qui converge vers $ x^\ast $.
433 \newline
434 En pratique, un test d’arrêt devra être choisi pour garantir que l’algorithme s’arrête toujours après un nombre fini d’itérations et que le dernier point calculé soit suffisamment proche de $ x^\ast $.
435
436 Soit $ \varepsilon \in \mathbb{R}_{+}^{*} $ la précision demandée. Plusieurs critères sont à notre disposition : tout d’abord (et c’est le plus naturel), un critère d’optimalité basé sur les conditions nécessaires d’optimalité du premier ordre : en optimisation différentiable sans contrainte, on testera si
437 $$ \norme{\nabla J(x_k)} < \varepsilon, $$
438 auquel cas l’algorithme s’arrête et fournit l’itéré courant $ x_k $ comme solution.
439
440 En pratique, le test d’optimalité n’est pas toujours satisfait et on devra faire appel à d’autres critères fondés sur l’expérience du numérique :
441 \begin{itemize}
442 \item Stagnation de la solution : $ \norme{x_{k+1} - x_k} < \varepsilon(1 + \norme{x_k}) $.
443 \item Stagnation de la valeur courante : $ |J(x_{k+1}) - J(x_k)| < \varepsilon(1 + |J (x_k)|) $.
444 \item Nombre d’itérations dépassant un seuil fixé à l’avance : $ k < IterMax $.
445 \end{itemize}
446 et généralement une combinaison de ces critères :
447 \newline
448 \newline
449 Critère d’arrêt =
450 \begin{tabular}{l}
451 Test d’optimalité satisfait \\
452 OU (Stagnation de la valeur courante ET Stagnation de la solution) \\
453 OU Nombre d’itérations maximum autorisé dépassé
454 \end{tabular}
455
456 \subsection{La recherche linéaire}
457
458 Supposons pour l’instant résolu le problème du choix de la direction de descente et intéressons nous uniquement au calcul du pas : c’est la phase de recherche linéaire.
459 \newline
460 Soit $ x_0 \in \mathbb{R}^n $ un point non critique et $ d $ une direction de descente de $ J $ en $ x_0 $. Nous cherchons à calculer un pas $ s > 0 $ de sorte que :
461 $$ J(x_0 + sd) < J(x_0). $$
462 Le choix de ce pas répond généralement à deux objectifs souvent contradictoires : trouver le meilleur pas possible et effectuer le moins de calculs possibles. Ces deux objectifs ont donné naissance à deux grandes familles : les algorithmes à pas fixe et ceux à pas optimal.
463
464 \hrulefill
465 \newline
466 RECHERCHE LINÉAIRE : PAS FIXE. $ s_k = s_{k-1} $
467
468 \hrulefill
469
470 \hrulefill
471 \newline
472 RECHERCHE LINÉAIRE : PAS OPTIMAL. $ s_k $ solution du problème $ \displaystyle\min_{s \in \mathbb{R}_{+}^{*}} J(x_k + sd_k) $
473
474 \hrulefill
475 \newline
476 Illustrées par les méthodes de descente de gradient, aucune de ces deux stratégies ne s’est révélée réellement convaincante : si la première peut être “risquée” du point de vue de la convergence, la seconde est souvent loin d’être triviale à mettre en oeuvre (sauf dans le cas quadratique) et généralement inutilement coûteuse : en effet, à quoi bon calculer très précisément un pas optimal dans une direction qui n’est peut-être pas la bonne ? (comme c’est par exemple le cas pour la méthode de plus profonde descente). Les recherches linéaires modernes reposent sur l’idée qu’un pas de descente acceptable est un pas qui fait “suffisamment” décroître la fonction objectif. Reste alors à définir les pas qui sont acceptables et ceux qui ne le sont pas.
477 \begin{Def}
478 On appelle $ \varphi : s \in \mathbb{R} \longmapsto J(x + sd)$ la fonction mérite associée à $ J $ en $ x $.
479 \end{Def}
480 \begin{Def}
481 Dans le cas où $ J $ est différentiable sur $ \mathcal{C} $, on dit que un algorithme de descente converge ssi
482 $$ \forall x_0 \in \mathbb{R}^n \lim\limits_{k \rightarrow +\infty} \norme{\nabla J(x_k)} = 0 $$
483 \end{Def}
484
485 \subsubsection{Principe de démonstration de convergence}
486
487 Une technique classique en optimisation pour obtenir des résultats de convergence globale consiste à montrer que l’algorithme de descente considéré vérifie une inégalité du type :
488 $$ J(x_k) - J(x_{k+1}) \geq c\norme{\nabla J(x_k)}^2, $$
489 où $ c $ est une constante réelle.
490 \newline
491 En sommant ces inégalités pour $ k $ variant de $ 0 $ à $ N - 1 $, on obtient :
492 $$ \forall N \in \mathbb{N} \ J(x_0) - J(x_N) \geq c \sum_{i=0}^{N-1}\norme{\nabla J(x_i)}^2 $$
493 Si $ J $ est bornée inférieurement, alors nécessairement $ J(x_0 ) - J(x_N) $ est majorée et donc la somme partielle est majorée, et donc la série $ (\sum\limits_{i=0}^{N-1}\norme{\nabla J(x_i)}^2)_{N \in \mathbb{N}} $ converge, ce qui implique :
494 $$ \lim\limits_{k \rightarrow +\infty} \norme{\nabla J(x_k)} = 0 $$
495 \begin{Def}
496 On considère $ (x_n)_{n \in \mathbb{N}} $, la suite des itérés donnés par un algorithme convergent. On note $ x^\ast $ la limite de la suite $ (x_n)_{n \in \mathbb{N}} $ et on suppose que $ x_k \neq x^\ast $, pour tout $ k \in \mathbb{N} $. La convergence de l’algorithme est alors dite :
497 \begin{itemize}
498 \item linéaire si l'erreur décroît linéairement i.e. :
499 $$ \exists \tau \in ]0,1[ \ \lim_{k \rightarrow +\infty} \frac{\norme{x_{k+1} - x^\ast}}{\norme{x_k - x^\ast}} = \tau $$
500 \item superlinéaire si :
501 $$ \lim_{k \rightarrow +\infty} \frac{\norme{x_{k+1} - x^\ast}}{\norme{x_k - x^\ast}} = 0 $$
502 \item d'ordre $ p $ si :
503 $$ \exists \tau \geq 0 \ \lim_{k \rightarrow +\infty} \frac{\norme{x_{k+1} - x^\ast}}{\norme{x_k - x^\ast}^p} = \tau $$
504 En particulier, si $ p = 2 $, la convergence est dite quadratique.
505 \end{itemize}
506 \end{Def}
507 L'étude plus détaillée de différents algorithmes de descente qui utilisent différentes méthodes de recherche linéaire pour optimiser $ \varphi $ ainsi que leurs convergences sort du cadre de ce projet.
508
509 \section{Méthode Newtonienne}
510
511 Les hypothèses sur $ \mathcal{P} $ de la section précédente restent les mêmes dans cette section. L’algorithme de Newton en optimisation est une application directe de l’algorithme de Newton pour la résolution d’équations du type : $ F(x) = 0 $. En optimisation sans contrainte, l’algorithme de Newton cherche les solutions de l’équation :
512 $$ \nabla J(x) = 0, $$
513 autrement dit, les points critiques de la fonction $ J $ à minimiser.
514 \newline
515 En supposant $ J $ de classe $ \mathcal{C}^2 $ et la matrice hessienne $ H[J](x_k) $ inversible, une itération de l’algorithme de Newton s’écrit :
516 $$ x_{k+1} = x_k - H[J](x_k)^{-1} \nabla J(x_k), $$
517 où $ d_k = -H[J](x_k)^{-1} \nabla J(x_k) $ est appelée direction de Newton. La direction $ d_k $ est également l’unique solution du problème :
518 $$ \underset{d \in \mathbb{R}^n}{\mathrm{argmin}} \ J(x_k) + \langle \nabla J(x_k),d \rangle + \frac{1}{2}\langle H[J](x_k)d,d \rangle $$
519 Autrement dit, $ d_k $ est le point de minimum global de l’approximation quadratique de $ J $ au voisinage du point courant $ x_k $.
520 À condition que la matrice $ H[J](x_k) $ soit définie positive à chaque itération, la méthode de Newton est bien une méthode de descente à pas fixe égal à $ 1 $.
521 \newline
522 Les propriétés remarquables de cet algorithme sont :
523
524 \begin{tabular}{|p{20em}|p{20em}|}
525 \hline
526 Avantages & Inconvénients \\
527 \hline
528 sa convergence quadratique (le nombre de décimales exactes est multiplié par 2 à chaque itération). & \\
529 \hline
530 & les difficultés et le coût de calcul de la hessienne $ H[J](x_k) $ : l’expression analytique des dérivées secondes est rarement disponible dans les applications. \\
531 \hline
532 & le coût de résolution du système linéaire $ H[J](x_k )(x_{k+1} - x_k) = \nabla J(x_k) $. \\
533 \hline
534 & l’absence de convergence si le premier itéré est trop loin de la solution, ou si la hessienne est singulière. \\
535 \hline
536 & pas de distinction entre minima, maxima et points stationnaires. \\
537 \hline
538 \end{tabular}
539 \newline
540 La question que l’on se pose est donc : comment forcer la convergence globale de l’algorithme de Newton ? L’idée des méthodes de type Newton consiste à reprendre l’algorithme de Newton en remplaçant les itérations par :
541 $$ x_{k+1} = x_k - s_k H_k^{-1} \nabla J(x_k), $$
542
543 \begin{itemize}
544 \item la matrice $ H_k $ est une approximation de la hessienne $ H[J](x_k) $.
545 \item $ s_k > 0 $ est le pas calculé par une recherche linéaire bien choisie.
546 \end{itemize}
547 Plusieurs questions se posent alors :
548 \begin{itemize}
549 \item Comment déterminer une matrice $ H_k $ qui soit une “bonne” approximation de la hessienne à l’itération $ k $ sans utiliser les informations de second ordre et garantir que $ H_k^{-1} \nabla J(x_k) $ soit bien une direction de descente de $ J $ en $ x_k $, sachant que la direction de Newton, si elle existe, n’en est pas nécessairement une ?
550 \item Comment conserver les bonnes propriétés de l’algorithme de Newton ?
551 \end{itemize}
552 Nous ne répondrons pas à ces questions qui sont hors du cadre de ce projet. Cette section permet d'introduire certains prérequis pour l'étude de la méthode PQS et de rendre compte de sa filiation.
553
554 \section{Méthode PQS (ou SQP)}
555
556 Nous supposons les fonctions $ J,g,h $ à valeurs réelles et de classe $ \mathcal{C}^1 $. Trouver une solution d’un problème d’optimisation sous contraintes fonctionnelles consiste à déterminer un point optimal $ x^\ast $ et des multiplicateurs associés $ (\lambda^\ast,\mu^\ast) $. Deux grandes familles de méthodes peuvent être définies pour la résolution des problèmes d’optimisation sous contraintes : les méthodes primales et les méthodes duales. Les approches primales se concentrent sur la détermination du point $ x^\ast $, les multiplicateurs $ (\lambda,\mu) $ ne servant souvent qu’à vérifier l’optimalité de $ x^\ast $. Les méthodes duales quant à elles mettent l’accent sur la recherche des multiplicateurs en travaillant sur un problème d’optimisation déduit du problème initial par \textit{dualité}.
557
558 \subsection{Problème quadratique sous contraintes linéaires}
559
560 Nous introduisons les différentes approches développées pour la résolution des problèmes de programmation quadratique avec contraintes d'égalités et d’inégalités linéaires.
561 \newline
562 Ce type de problème quadratique se pose sous la forme :
563 $$
564 \mathcal{PQ} \left \{
565 \begin{array}{l}
566 \displaystyle\min_{x \in \mathbb{R}^n} c^\top x + \frac{1}{2} x^\top \mathcal{Q} x \\
567 A^\top x + b \leq 0 \\
568 A^{\prime^\top} x + b^\prime = 0
569 \end{array}
570 \right .
571 $$
572 où $$ \mathcal{Q} \in \mathcal{M}_n(\mathbb{R}) \ symétrique, c \in \mathbb{R}^n, A \in \mathcal{M}_{n,p}(\mathbb{R}), b \in \mathbb{R}^p, A^\prime \in \mathcal{M}_{n,q}(\mathbb{R}), b^\prime \in \mathbb{R}^q $$
573 Or
574 $$ A^{\prime^\top} x + b^\prime = 0 \iff A^{\prime^\top} x + b^\prime \leq 0 \land -A^{\prime^\top} x - b^\prime \leq 0 $$
575 Donc le problème se ramène à :
576
577 \subsubsection{Algorithme 1}
578
579 \subsubsection{Algorithme 2}
580
581 \subsection{Algorithmes Newtoniens}
582
583 Les algorithmes newtoniens sont basés sur la linéarisation d’équations caractérisant les solutions que l’on cherche, fournies par les conditions d’optimalité d’ordre $ 1 $. Ces algorithmes sont \textit{primaux-duaux} dans le sens où ils génèrent à la fois une suite primale $ (x_k )_{k \in \mathbb{N}} $ convergeant vers une solution $ \overline{x} $ du problème considéré, et une suite duale $ (\lambda_k)_{k \in \mathbb{N}} $ (resp. $ ((\lambda_k, \mu_k))_{k \in \mathbb{N}} $) de multiplicateurs convergeant vers un multiplicateur optimal $ \overline{\lambda} $ (resp. $ (\overline{\lambda},\overline{\mu})) $ associé à $ \overline{x} $.
584
585 \subsection{Algorithme PQS}
586
587 \subsubsection{Contraintes d’égalité}
588
589 Considérons un problème d’optimisation différentiable $ \mathcal{P} $ avec contraintes d’égalité :
590 $$
591 \mathcal{P} \left \{
592 \begin{array}{l}
593 \displaystyle\min_{x \in \mathbb{R}^n} J(x) \\
594 h(x) = 0
595 \end{array}
596 \right .
597 $$
598 où $ J: \mathbb{R}^n \longrightarrow \mathbb{R} $ et $h: \mathbb{R}^n \longrightarrow \mathbb{R}^q$ sont supposées au moins différentiables.
599 \newline
600 Les conditions d’optimalité de Lagrange (ou \textit{KKT}) s’écrivent :
601 $$ \nabla J(x) + \sum\limits_{i=1}^{q} \lambda_i \nabla h_i(x) = 0 \iff \nabla L(x,\lambda) = 0 $$
602 donc $ \mathcal{P} $ devient :
603 $$ \begin{pmatrix}
604 \nabla J(x) + \sum\limits_{i=1}^{q} \lambda_i \nabla h_i(x) \\
605 h(x)
606 \end {pmatrix} = 0 $$
607 Pour résoudre ce système d’équations, utilisons la méthode de Newton dont une itération s’écrit ici :
608 $$ H[L](x_k,\lambda_k)\begin{pmatrix}
609 x_{k+1} - x_k \\
610 \lambda_{k+1} - \lambda_k
611 \end{pmatrix} = -\nabla L(x_k,\lambda_k) $$
612 soit :
613 $$ \begin{pmatrix}
614 H_x[L](x_k,\lambda_k) & D_h(x_k)^\top \\
615 D_h(x_k) & 0
616 \end{pmatrix} \begin{pmatrix}
617 x_{k+1} - x_k \\
618 \lambda_{k+1} - \lambda_k
619 \end{pmatrix} = -\begin{pmatrix}
620 \nabla_x L(x_k,\lambda_k) \\
621 h(x_k)
622 \end{pmatrix} $$
623 où $ D_h(x) $ désigne la matrice jacobienne de l’application $ h : \mathbb{R}^n \longrightarrow \mathbb{R}^q $ définie par :
624 $$ D_h(x)^\top = \begin{bmatrix} \nabla h_1(x)^\top\ldots\nabla h_q(x)^\top \end{bmatrix} $$
625 Posons : $ H_k = H_x[L](x_k,\lambda_k), \ d = x_{k+1} - x_k $ et $ \mu = \lambda_{k+1} $. L'itération s'écrit donc :
626 $$ \begin{pmatrix}
627 H_k & D_h(x_k)^\top \\
628 D_h(x_k) & 0
629 \end{pmatrix} \begin{pmatrix}
630 d \\
631 \mu - \lambda_k
632 \end{pmatrix} = -\begin{pmatrix}
633 \nabla_x L(x_k,\lambda_k) \\
634 h(x_k)
635 \end{pmatrix} $$
636 et est bien définie à condition que la matrice $ H_x[L](x_k,\lambda_k) $ soit inversible. Ce sera le cas si :
637 \begin{enumerate}[label=(\roman*)]
638 \item Les colonnes $ \nabla h_1(x_k)^\top,\ldots,\nabla h_q(x_k)^\top $ de $ D_h(x_k)^\top $ sont linéairement indépendants : c’est la condition première de \textit{KTT} ou condition de qualification des contraintes.
639 \item Quel que soit $ d \neq 0 $ tel que $ D_h(x_k)d = 0, \ d^\top H_k d > 0 $ : c’est la condition suffisante d’optimalité du second ordre dans le cas de contraintes d’égalité.
640 \end{enumerate}
641 Revenons à l’itération. Elle s’écrit encore :
642 $$
643 \left \{
644 \begin{array}{r c l}
645 H_kd + \sum\limits_{i=1}^q(\mu_i - \lambda_{k_i})\nabla h_i(x_k) & = & -\nabla_x L(x_k,\lambda_k) \\
646 \nabla h_i(x_k)^\top d + h_i(x_k) & = & 0, \ \forall i \in \{1,\ldots,q\}
647 \end{array}
648 \right .
649 $$
650 Or $ \nabla_x L(x_k,\lambda_k) = \nabla J(x_k) + \sum\limits_{i=1}^{q} \lambda_{k_i} \nabla h_i(x_k) $, d'où :
651 $$
652 \left \{
653 \begin{array}{r c l}
654 H_kd + \sum\limits_{i=1}^q\mu_i\nabla h_i(x_k) & = & -\nabla J(x_k) \\
655 \nabla h_i(x_k)^\top d + h_i(x_k) & = & 0, \ \forall i \in \{1,\ldots,q\}
656 \end{array}
657 \right .
658 $$
659 On reconnait dans le système ci-dessus les conditions d’optimalité de Lagrange du problème quadratique suivant :
660 $$
661 \mathcal{PQ}_k \left \{
662 \begin{array}{l}
663 \displaystyle\min_{d \in \mathbb{R}^n} \nabla J(x_k)^\top d + \frac{1}{2}d^\top H_k d \\
664 h_i(x_k) + \nabla h_i(x_k)^\top d = 0, \ \forall i \in \{1,\ldots,q\}
665 \end{array}
666 \right .
667 $$
668 Le problème $ \mathcal{PQ}_k $ peut être vu comme la minimisation d’une approximation quadratique du Lagrangien de $ \mathcal{P} $ avec une approximation linéaire des contraintes.
669 \newline
670 Comme son nom l’indique, la méthode PQS consiste à remplacer le problème initial par une suite de problèmes quadratiques sous contraintes linéaires plus faciles à résoudre. L’algorithme est le suivant :
671
672 \hrulefill
673 \newline
674 ALGORITHME PQS AVEC CONSTRAINTES D'ÉGALITÉ.
675 \newline
676 \textit{Entrées}: $ J : \mathbb{R}^n \longrightarrow \mathbb{R} $, $ h : \mathbb{R}^n \longrightarrow \mathbb{R}^q $ différentiables, $ x_0 \in \mathbb{R}^n $ point initial arbitraire, $ \lambda_0 \in \mathbb{R}^q $ multiplicateur initial, $ \varepsilon > 0 $ précision demandée.
677 \newline
678 \textit{Sortie}: une approximation $ x_k $ de la solution $ x^\ast $ du problème $ \mathcal{P} $.
679 \begin{enumerate}
680 \item $ k := 0 $.
681 \item Tant que $ \norme{\nabla L(x_k,\lambda_k)} > \varepsilon $,
682 \begin{enumerate}
683 \item Résoudre le sous-problème quadratique :
684 $$
685 \mathcal{PQ}_k \left \{
686 \begin{array}{l}
687 \displaystyle\min_{d \in \mathbb{R}^n} \nabla J(x_k)^\top d + \frac{1}{2}d^\top H_k d \\
688 h_i(x_k) + \nabla h_i(x_k)^\top d = 0, \ \forall i \in \{1,\ldots,q\}
689 \end{array}
690 \right .
691 $$
692 et obtenir la solution primale $ d_k $ et le multiplicateur $ \lambda^{\prime} $ associé à la contrainte d’égalité.
693 \item $ x_{k+1} = x_k + d_k; \ \lambda_{k+1} = \lambda^{\prime}; \ k := k + 1 $.
694 \end{enumerate}
695 \item Retourner $ x_k $.
696 \end{enumerate}
697
698 \hrulefill
699
700 \subsubsection{Contraintes d’inégalité}
701
702 Intéressons nous maintenant aux problèmes avec contraintes d’égalité et d’inégalité :
703 $$
704 \mathcal{P} \left \{
705 \begin{array}{l}
706 \displaystyle\min_{x \in \mathbb{R}^n} J(x) \\
707 g(x) \leq 0 \\
708 h(x) = 0
709 \end{array}
710 \right .
711 $$
712 où $ J: \mathbb{R}^n \longrightarrow \mathbb{R} $, $g: \mathbb{R}^n \longrightarrow \mathbb{R}^p$ et $h: \mathbb{R}^n \longrightarrow \mathbb{R}^q$ sont supposées au moins différentiables.
713 \newline
714 Selon le même principe qu’avec contraintes d’égalité seules, on linéarise les contraintes et on utilise une approximation quadratique du Lagrangien à l'aide de développements de Taylor-Young en $ x_k $ et $ (x_k,\lambda_k,\mu_k) $ respectivement :
715 $$ L(x,\lambda,\mu) = J(x) + \lambda^\top g(x) + \mu^\top h(x), \ \lambda \in \mathbb{R}_+^p \land \mu \in \mathbb{R}^q $$
716 Soit à l'ordre 2 pour le Lagrangien :
717 $$ L(x,\lambda,\mu) \approx L(x_k,\lambda_k,\mu_k) + \nabla L(x_k,\lambda_k,\mu_k)^\top (x - x_k) + \frac{1}{2} (x - x_k)^\top H[L](x_k,\lambda_k,\mu_k) (x - x_k) $$
718 et à l'ordre 1 pour les contraintes :
719 $$ g(x) \approx g(x_k) + \nabla g(x_k)^\top(x - x_k) $$
720 $$ h(x) \approx h(x_k) + \nabla h(x_k)^\top(x - x_k) $$
721 En posant $ d = x - x_k $ et $ H_k = H[L](x_k,\lambda_k,\mu_k) $, on obtient le sous problème quadratique $ \mathcal{PQ}_k $ :
722
723 \hrulefill
724 \newline
725 ALGORITHME PQS AVEC CONSTRAINTES D'ÉGALITÉ ET D'INEGALITÉ.
726 \newline
727 \textit{Entrées}: $ J : \mathbb{R}^n \longrightarrow \mathbb{R} $, $g: \mathbb{R}^n \longrightarrow \mathbb{R}^p$, $ h : \mathbb{R}^n \longrightarrow \mathbb{R}^q $ différentiables, $ x_0 \in \mathbb{R}^n $ point initial arbitraire, $ \lambda_0 \in \mathbb{R}_+^p $ et $ \mu_0 \in \mathbb{R}_+^q $ multiplicateurs initiaux, $ \varepsilon > 0 $ précision demandée.
728 \newline
729 \textit{Sortie}: une approximation $ x_k $ de la solution $ x^\ast $ du problème $ \mathcal{P} $.
730 \begin{enumerate}
731 \item $ k := 0 $.
732 \item Tant que $ \norme{\nabla L(x_k,\lambda_k,\mu_k)} > \varepsilon $,
733 \begin{enumerate}
734 \item Résoudre le sous-problème quadratique :
735 $$
736 \mathcal{PQ}_k \left \{
737 \begin{array}{l}
738 \displaystyle\min_{d \in \mathbb{R}^n} \nabla J(x_k)^\top d + \frac{1}{2}d^\top H_k d \\
739 g_j(x_k) + \nabla g_j(x_k)^\top d \leq 0 \\, \ \forall j \in \{1,\ldots,p\} \\
740 h_i(x_k) + \nabla h_i(x_k)^\top d = 0, \ \forall i \in \{1,\ldots,q\}
741 \end{array}
742 \right .
743 $$
744 et obtenir la solution primale $ d_k $ et les multiplicateurs $ \lambda^{\prime} $ et $ \mu^{\prime} $ associé aux contraintes d’inégalité et d’égalité respectivement.
745 \item $ x_{k+1} = x_k + d_k; \ \lambda_{k+1} = \lambda^{\prime}; \ \mu_{k+1} = \mu^{\prime}; \ k := k + 1 $.
746 \end{enumerate}
747 \item Retourner $ x_k $.
748 \end{enumerate}
749
750 \hrulefill
751 \newline
752 Afin que le sous-programme quadratique $ \mathcal{PQ}_k $ admette une unique solution, la plupart des implémentations actuelles de PQS utilisent une approximation du hessien $ H_k $ du Lagrangien qui soit définie positive, en particulier celle fournie par les techniques quasi-newtonienne (BFGS) par exemple.
753 \newline
754 Etant une méthode newtonienne, l’algorithme PQS converge localement quadratiquement pourvu que les points initiaux $ (x_0,\lambda_0 ) $ (resp. $ (x_0,\lambda_0,\mu_0) $) soient dans un voisinage d’un point stationnaire $ \overline{x} $ et de ses multiplicateurs associés $ \overline{\lambda} $ (resp. $ (\overline{\lambda},\overline{\mu}) $). Bien entendu, il est possible de globaliser l’algorithme en ajoutant une étape de recherche linéaire.
755
756 \subsection{Stratégie d'approximation de la hessienne}
757
758 \subsubsection{Équation de sécante et approximation}
759
760 L'approximation $ H_k $ de la hessienne du Lagrangien peut être obtenu par la relation :
761 $$ \nabla L(x_{k+1},\lambda_{k+1},\mu_{k+1}) - \nabla L(x_{k},\lambda_{k+1},\mu_{k+1}) \approx H[L](x_{k+1},\lambda_{k+1},\mu_{k+1})(x_{k+1} - x_k) $$
762 On construit une approximation $ H_{k+1} $ de $ H[L](x_{k+1},\lambda_{k+1},\mu_{k+1}) $ comme solution de l’équation :
763 $$ H_{k+1}(x_{k+1} - x_k) = \nabla L(x_{k+1},\lambda_{k+1},\mu_{k+1}) - \nabla L(x_{k},\lambda_{k+1},\mu_{k+1}) $$
764 appelée équation de sécante ou équation de quasi-Newton.
765 \newline
766 De façon similaire, on peut construire une approximation $ B_{k+1} $ de $ H[L](x_{k+1},\lambda_{k+1},\mu_{k+1})^{-1} $ comme solution de l’équation :
767 $$ B_{k+1}(\nabla L(x_{k+1},\lambda_{k+1},\mu_{k+1}) - \nabla L(x_{k},\lambda_{k+1},\mu_{k+1})) = x_{k+1} - x_k $$
768 Dans les deux cas, les équations de quasi-Newton forment un système sous-déterminé à $ n $ équations et $ n^2 $ inconnues. Il existe donc une infinité de matrices $ H_{k+1} $ pouvant convenir.
769 \newline
770 Une stratégie commune est de calculer $ (x_{k+1},\lambda_{k+1},\mu_{k+1}) $ pour une matrice $ H_k $ donnée et faire une mise à jour de $ H_k $ de rang 1 ou 2 :
771 $$ H_{k+1} = H_k + U_k $$
772
773 \subsubsection{Mises à jour DFP et BFGS}
774
775 \subsection{Exemple d'utilisation de PQS}
776
777 Considérons le problème $ \mathcal{P} $ suivant :
778 $$
779 \mathcal{P} \left \{
780 \begin{array}{l}
781 \displaystyle\min_{(x,y,z) \in \mathbb{R}^3} J(x,y,z) = x^2 + y^2 + z^2 -r^2 \\
782 g(x,y,z) = (g_1(x,y,z), g_2(x,y,z)) = (x^2 + y^2 - r_1^2, x^2 + z^2 -r_2^2) \leq 0 \\
783 \end{array}
784 \right .
785 $$
786 où $$ (r,r_1,r_2) \in \mathbb{R}_+^3. $$
787 \textit{Entrées} : $ J $ et $ g $ de classe $ \mathcal{C}^2 $, $ \varepsilon = 0.01 $ la précision, $ (x_0,y_0,z_0) = $ point initial et $ (\lambda_{0_1},\lambda_{0_2}) = $ multiplicateur initial.
788 \newline
789 Le Lagrangien $ L $ de $ \mathcal{P} $ : $$ L((x,y,z),(\lambda_1,\lambda_2)) = x^2 + y^2 + z^2 -r^2 + \lambda_1(x^2 + y^2 - r_1^2) + \lambda_2(x^2 + z^2 -r_2^2). $$
790 \newline
791 Le gradient de $ J $ : $$ \nabla J(x,y,z) = (\frac{\partial J}{\partial x}(x,y,z),\frac{\partial J}{\partial y}(x,y,z),\frac{\partial J}{\partial z}(x,y,z)) = (2x,2y,2z). $$
792 \newline
793 Le gradient de $ g $ : $$ \nabla g(x,y,z) = (\nabla g_1(x,y,z),\nabla g_2(x,y,z)) $$
794 $$ = ((\frac{\partial g_1}{\partial x}(x,y,z),\frac{\partial g_1}{\partial y}(x,y,z),\frac{\partial g_1}{\partial z}(x,y,z)),(\frac{\partial g_2}{\partial x}(x,y,z),\frac{\partial g_2}{\partial y}(x,y,z),\frac{\partial g_2}{\partial z}(x,y,z)) $$
795 $$ = ((2x,2y,0),(2x,0,2z)). $$
796 \newline
797 Le gradient du Lagrangien $ L $ :
798 $$ \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)) $$
799 \newline
800 La matrice hessienne de $ J $ : $$ H[J](x,y,z) =
801 \begin{pmatrix}
802 \frac{\partial^2 J}{\partial^2 x}(x,y,z) & \frac{\partial^2 J}{\partial x\partial y}(x,y,z) & \frac{\partial^2 J}{\partial x\partial z}(x,y,z) \\
803 \frac{\partial^2 J}{\partial y\partial x}(x,y,z) & \frac{\partial^2 J}{\partial^2 y}(x,y,z) & \frac{\partial^2 J}{\partial y\partial z}(x,y,z) \\
804 \frac{\partial^2 J}{\partial z\partial x}(x,y,z) & \frac{\partial^2 J}{\partial z\partial y}(x,y,z) & \frac{\partial^2 J}{\partial^2 z}(x,y,z) \\
805 \end{pmatrix} =
806 \begin{pmatrix}
807 2 & 0 & 0 \\
808 0 & 2 & 0 \\
809 0 & 0 & 2 \\
810 \end{pmatrix} = 2Id_{\mathbb{R}^3} $$
811 On en déduit que $ H[J](x,y,z) $ est inversible et que $ H[J](x,y,z)^{-1} = \frac{1}{2}Id_{\mathbb{R}^3} $.
812
813 \hrulefill
814
815 \subsection{Trace d'éxécution de PQS}
816
817 Utilisons le problème $ \mathcal{P} $ précédent :
818
819 $$
820 \mathcal{P} \left \{
821 \begin{array}{l}
822 \displaystyle\min_{(x,y,z) \in \mathbb{R}^3} J(x,y,z) = x^2 + y^2 + z^2 -r^2 \\
823 g(x,y,z) = (g_1(x,y,z), g_2(x,y,z)) = (x^2 + y^2 - r_1^2, x^2 + z^2 -r_2^2) \leq 0 \\
824 \end{array}
825 \right .
826 $$
827 où $$ (r,r_1,r_2) \in \mathbb{R}_+^3. $$
828 \textit{Entrées} : $ J $ et $ g $ de classe $ \mathcal{C}^2 $, $ \varepsilon = 0.01 $, $ (x_0,y_0,z_0) = (100, 100 ,0)$ et $(\lambda_{0_1},\lambda_{0_2}) = (1 , 1)$, les rayons : $r= 100$ et $r1 = r2 = 10$.
829 \newline
830 Le Lagrangien $ L $ de $ \mathcal{P} $ : $$ L((x,y,z),(\lambda_1,\lambda_2)) = x^2 + y^2 + z^2 -r^2 + \lambda_1(x^2 + y^2 - r_1^2) + \lambda_2(x^2 + z^2 -r_2^2). $$
831 \newline
832 Le Lagrangien $ L $ de $ \mathcal{P} $ avec les valeurs :
833 $ L((100,100,0),(1,1)) = 100^2 + 100^2 + 0^2 -100^2 + 1 * (100^2 +100^2 - 10^2) + \lambda_2(100^2 + 100^2 -10^2). $
834 $ L((100,100,0),(1,1)) = 1000 + 1000 - 1000 + (1000 + 1000 - 100) + (1000 + 1000 -100). $
835 $ L((100,100,0),(1,1)) = 4800. $
836
837 \begin{algorithmfloat}[#1]
838 \caption {PQS du problème $ \mathcal{P} $}
839 \begin{algorithmic}
840 \REQUIRE $g(x_0,y_0,z_0)\leq 0$, $(x_0,y_0,z_0) = (10, 10 ,10)$
841 \ENSURE $\min_{(x,y,z) \in \mathbb{R}^3} J(x,y,z) = x^2 + y^2 + z^2 -r^2$ and \newline $g(x,y,z) = (g_1(x,y,z), g_2(x,y,z)) = (x^2 + y^2 - r_1^2, x^2 + z^2 -r_2^2) \leq 0 $
842 \STATE \textbf{Data :}
843 \STATE $k \leftarrow 0, (x_k, y_k, z_k) \leftarrow (100, 100, 0), r \leftarrow 100$
844 \STATE $r_1 = r2 \leftarrow 10, \varepsilon \leftarrow 0.01$
845 \STATE $\lambda_1 = \lambda_2 = 1$
846 \STATE $ H[J](x,y,z)^{-1}\leftarrow \begin{pmatrix}
847 0.5 & 0 & 0 \\
848 0 & 0.5 & 0 \\
849 0 & 0 & 0.5 \\ \end{pmatrix} $
850 \newline
851
852 \STATE{//Calcule du gradient de $ J $ :}
853 \STATE $ \nabla J(x,y,z) = (2x_k,2y_k,2z_k)$ \hfill $ // résultat : (100,100,0) $
854 \newline
855 \STATE {//calcule des deux sous partie de du gradient de $ g $: }
856 \STATE $ \nabla g_1(x_a,y_a,z_a) = ((2x_a,2y_a,0)$ \hfill $ //résultat : (20, 20, 0)$
857 \STATE $ \nabla g_2(x_a,y_a,z_a) = (2x_a,0,2z_a))$ \hfill $ //résultat : (20, 0, 20)$
858 \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))$
859 \newline
860 \WHILE{$ (\norme{\nabla L(x_k,\lambda_k,\mu_k)} > \varepsilon $ or k $ \leq 10)$}
861
862 \STATE { //première itération :}
863
864 \STATE {//Calcule du gradient de $ L $ : }
865 \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_a,y_a,z_a) + \lambda_2 \nabla g_2(x_a,y_a,z_a)) $ \hfill $// résultat : (220, 220, 40)$
866 \STATE $ \nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2)) = (x_L , y_L, z_L) $
867 \newline
868 \STATE {//Calcule de la direction de la pente dk (méthode de Newton) : }
869 \STATE $ d_k = -H[J](x,y,z)^{-1}* J(x,y,z)$ \hfill $ //résultat : (-(50,50,0))$
870 \newline
871 \STATE {//Calcul nouvelles valeurs des coordonnées}
872 \STATE $ (x_{k+1},y_{k+1},z_{k+1}) = (x_k,y_k,z_k)+ d_k $ \hfill $ //résultat : (50,50,0)$
873 \newline
874 \STATE {//Incrémentation de k}
875 \STATE $ k \leftarrow k+1$\hfill $ //k = 1$
876 \newline
877
878 \STATE {//Deuxième itération :}
879 \STATE{//Calcule du gradient de $ J $ :}
880 \STATE $ \nabla J(x,y,z) = (2x_k,2y_k,2z_k)$ \hfill $ // résultat : (100,100,0) $
881 \newline
882 \STATE {//Calcule du gradient de $ L $ : }
883 \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_a,y_a,z_a) + \lambda_2 \nabla g_2(x_a,y_a,z_a)) $ \hfill $// résultat : (120, 120, 0)$
884 \STATE $ \varepsilon _1 = \norme{\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2))}$
885 \newline
886 \STATE {//Calcule de la direction de la pente dk (méthode de Newton) : }
887 \STATE $ d_k = -H[J](x,y,z)^{-1}* J(x,y,z)$ \hfill $ //résultat : (-(25,25,0))$
888 \STATE {//Calcul nouvelles valeurs des coordonnées}
889 \STATE $ (x_{k+1},y_{k+1},z_{k+1}) = (x_k,y_k,z_k)+ d_k $ \hfill $ //résultat : (25,25,0)$
890 \newline
891 \STATE {//Incrémentation de k}
892 \STATE $ k \leftarrow k+1$\hfill $ //k = 2$
893 \newline
894
895 \STATE {//Troisième itération :}
896 \STATE{//Calcule du gradient de $ J $ :}
897 \STATE $ \nabla J(x,y,z) = (2x_k,2y_k,2z_k)$ \hfill $ // résultat : (50,50,0) $
898 \newline
899 \STATE {//Calcule du gradient de $ L $ : }
900 \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_a,y_a,z_a) + \lambda_2 \nabla g_2(x_a,y_a,z_a)) $ \hfill $// résultat : (70, 70, 0)$
901 \STATE $ \varepsilon _1 = \norme{\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2))}$
902 \newline
903 \STATE {//Calcule de la direction de la pente dk (méthode de Newton) : }
904 \STATE $ d_k = -H[J](x,y,z)^{-1}* J(x,y,z)$ \hfill $ //résultat : (-(12.5,12.5,0))$
905 \STATE {//Calcul nouvelles valeurs des coordonnées}
906 \newline
907 \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)$
908 \STATE {//Incrémentation de k}
909 \STATE $ k \leftarrow k+1$\hfill $ //k = 3$
910 \newline
911
912 \STATE {//Quatrième itération :}
913 \STATE{//Calcule du gradient de $ J $ :}
914 \STATE $ \nabla J(x,y,z) = (2x_k,2y_k,2z_k)$ \hfill $ // résultat : (25,25,0) $
915 \newline
916 \STATE {//Calcule du gradient de $ L $ : }
917 \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_a,y_a,z_a) + \lambda_2 \nabla g_2(x_a,y_a,z_a)) $ \hfill $// résultat : (45, 45, 0)$
918 \STATE $ \varepsilon _1 = \norme{\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2))}$
919 \newline
920 \STATE {//Calcule de la direction de la pente dk (méthode de Newton) : }
921 \STATE $ d_k = -H[J](x,y,z)^{-1}* J(x,y,z)$ \hfill $ //résultat : (-(6.25,6.25,0))$
922 \newline
923 \STATE {//Calcul nouvelles valeurs des coordonnées}
924 \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)$
925 \STATE {//Incrémentation de k}
926 \newline
927 \STATE $ k \leftarrow k+1$\hfill $ //k = 4$
928 \STATE $ $
929
930 \STATE {//Cinquième itération :}
931 \STATE{//Calcule du gradient de $ J $ :}
932 \STATE $ \nabla J(x,y,z) = (2x_k,2y_k,2z_k)$ \hfill $ // résultat : (12.5,12.5,0) $
933 \newline
934 \STATE {//Calcule du gradient de $ L $ : }
935 \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_a,y_a,z_a) + \lambda_2 \nabla g_2(x_a,y_a,z_a)) $ \hfill $// résultat : (32.5, 32.5, 0)$
936 \STATE $ \varepsilon _1 = \norme{\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2))}$
937 \newline
938 \STATE {//Calcule de la direction de la pente dk (méthode de Newton) : }
939 \STATE $ d_k = -H[J](x,y,z)^{-1}* J(x,y,z)$ \hfill $ //résultat : (-(3.125,3.125,0))$
940 \newline
941 \STATE {//Calcul nouvelles valeurs des coordonnées}
942 \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)$
943 \newline
944 \STATE {//Incrémentation de k}
945 \STATE $ k \leftarrow k+1$\hfill $ //k = 5$
946 \newline
947
948 \STATE {//Sixième itération :}
949 \STATE{//Calcule du gradient de $ J $ :}
950 \STATE $ \nabla J(x,y,z) = (2x_k,2y_k,2z_k)$ \hfill $ // résultat : (6.25,6.25,0) $
951 \newline
952 \STATE {//Calcule du gradient de $ L $ : }
953 \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_a,y_a,z_a) + \lambda_2 \nabla g_2(x_a,y_a,z_a)) $ \hfill $// résultat : (26.25, 26.25, 0)$
954 \STATE $ \varepsilon _1 = \norme{\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2))}$
955 \newline
956 \STATE {//Calcule de la direction de la pente dk (méthode de Newton) : }
957 \STATE $ d_k = -H[J](x,y,z)^{-1}* J(x,y,z)$ \hfill $ //résultat : (-(1.5625,1.5625,0))$
958 \STATE {//Calcul nouvelles valeurs des coordonnées}
959 \newline
960 \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)$
961 \STATE {//Incrémentation de k}
962 \newline
963 \STATE $ k \leftarrow k+1$\hfill $ //k = 6$
964 \newline
965
966 \STATE {//Septième itération :}
967 \STATE{//Calcule du gradient de $ J $ :}
968 \STATE $ \nabla J(x,y,z) = (2x_k,2y_k,2z_k)$ \hfill $ // résultat : (3.125, 3.125, 0) $
969 \newline
970 \STATE {//Calcule du gradient de $ L $ : }
971 \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_a,y_a,z_a) + \lambda_2 \nabla g_2(x_a,y_a,z_a)) $ \hfill $// résultat : (23.125, 23.125, 0)$
972 \STATE $ \varepsilon _1 = \norme{\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2))}$
973 \newline
974 \STATE {//Calcule de la direction de la pente dk (méthode de Newton) : }
975 \STATE $ d_k = -H[J](x,y,z)^{-1}* J(x,y,z)$ \hfill $ //résultat : (-(0.78125,0.78125,0))$
976 \STATE {//Calcul nouvelles valeurs des coordonnées}
977 \newline
978 \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)$
979 \STATE {//Incrémentation de k}
980 \newline
981 \STATE $ k \leftarrow k+1$\hfill $ //k = 7$
982 \newline
983
984 \STATE {//Huitième itération :}
985 \STATE{//Calcule du gradient de $ J $ :}
986 \STATE $ \nabla J(x,y,z) = (2x_k,2y_k,2z_k)$ \hfill $ // résultat : (1.5625, 1.5625, 0) $
987 \newline
988 \STATE {//Calcule du gradient de $ L $ : }
989 \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_a,y_a,z_a) + \lambda_2 \nabla g_2(x_a,y_a,z_a)) $ \hfill $// résultat : (21.5625, 21.5625, 0)$
990 \STATE $ \varepsilon _1 = \norme{\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2))}$
991 \newline
992 \STATE {//Calcule de la direction de la pente dk (méthode de Newton) : }
993 \STATE $ d_k = -H[J](x,y,z)^{-1}* J(x,y,z)$ \hfill $ //résultat : (-(0.390625,0.390625,0))$
994 \newline
995 \STATE {//Calcul nouvelles valeurs des coordonnées}
996 \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)$
997 \newline
998 \STATE {//Incrémentation de k}
999 \STATE $ k \leftarrow k+1$\hfill $ //k = 8$
1000 \newline
1001
1002 \STATE {//neuvième itération :}
1003 \STATE{//Calcule du gradient de $ J $ :}
1004 \STATE $ \nabla J(x,y,z) = (2x_k,2y_k,2z_k)$ \hfill $ // résultat : (0.78125, 0.78125, 0) $
1005 \newline
1006 \STATE {//Calcule du gradient de $ L $ : }
1007 \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_a,y_a,z_a) + \lambda_2 \nabla g_2(x_a,y_a,z_a)) $ \hfill $// résultat : (20.78125, 20.78125, 0)$
1008 \STATE $ \varepsilon _1 = \norme{\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2))}$
1009 \newline
1010 \STATE {//Calcule de la direction de la pente dk (méthode de Newton) : }
1011 \STATE $ d_k = -H[J](x,y,z)^{-1}* J(x,y,z)$ \hfill $ //résultat : (-(0.1953125,0.1953125,0))$
1012 \newline
1013 \STATE {//Calcul nouvelles valeurs des coordonnées}
1014 \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)$
1015 \newline
1016 \STATE {//Incrémentation de k}
1017 \STATE $ k \leftarrow k+1 \hfill //k = 9$
1018 \STATE $ $
1019
1020 \STATE {//Dixième itération :}
1021 \STATE{//Calcule du gradient de $ J $ :}
1022 \STATE $ \nabla J(x,y,z) = (2x_k,2y_k,2z_k)$ \hfill $ // résultat : (0.390625, 0.390625, 0) $
1023 \newline\newline
1024 \STATE {//Calcule du gradient de $ L $ : }
1025 \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_a,y_a,z_a) + \lambda_2 \nabla g_2(x_a,y_a,z_a)) $ \hfill $// résultat : (20.390625, 20.390625, 0)$
1026 \STATE $ \varepsilon _1 = \norme{\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2))}$
1027 \newline
1028 \STATE {//Calcule de la direction de la pente dk (méthode de Newton) : }
1029 \STATE $ d_k = -H[J](x,y,z)^{-1}* J(x,y,z)$ \hfill $ //résultat : (-(0.097665625,0.097665625,0))$
1030 \newline
1031 \STATE {//Calcul nouvelles valeurs des coordonnées}
1032 \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)$
1033 \newline
1034 \STATE {//Incrémentation de k}
1035 \STATE $ k \leftarrow k+1$\hfill $ //k = 10$
1036
1037 \STATE $ // Fin de la boucle "while" car nous avons atteint k =10, condition mettant fin à la boucle$
1038
1039
1040 \ENDWHILE
1041
1042 \end{algorithmic}
1043 \end{algorithmfloat}
1044
1045
1046 \hrulefill
1047
1048 \bibliographystyle{plain}
1049 \bibliography{stdlib_sbphilo}
1050
1051 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1052
1053 \end{document}