Rename the subsection 2.3.6
[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 \usepackage{float}
27
28
29 %%%%%Marges & en-t\^etes
30
31 \geometry{hmargin=2.3cm, vmargin=3cm}
32 \fancyhf{} % supprime les en-t\^etes et pieds pr\'ed\'efinis
33 \fancyhead[FC]{\bfseries\thepage} % N∞page centre bas
34 \fancyhead[HC]{\footnotesize\leftmark} % chapitre centre haut
35 \renewcommand{\headrulewidth}{0.2pt} % filet en haut
36 \addtolength{\headheight}{0.5pt} % espace pour le filet
37 \renewcommand{\footrulewidth}{0.2pt} % filet en bas
38
39
40 %%%%%Th\'eor\`eme et d\'efinitions
41
42 \newtheorem{Def}{D\'efinition}
43 \newtheorem{Not}[Def]{Notation}
44 \newtheorem{Th}{Th\'eor\`eme}
45 \newtheorem{Prop}[Th]{Proposition}
46 \newtheorem{Cor}[Th]{Corollaire}
47 \newtheorem{Rmq}{Remarque}
48
49 \newcommand{\norme}[1]{\left\Vert #1 \right\Vert}
50
51 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
52 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
53
54 \begin{document}
55
56 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
57 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
58
59 %%%%%Page de garde
60
61 \begin{center}
62
63 %\includegraphics[scale=0.5]{logo_sciences_rvb.png}\\
64 \includegraphics[scale=0.5]{polytech.png}\\
65
66 \vspace*{0.5cm}
67
68 \footnotesize{
69 \large \bf D\'epartement d'Informatique, Réseaux et Multimédia\\
70 \large \bf 5ème année\\
71 }
72
73 \vspace*{0.5cm}
74
75 %\large{Master 2 Professionnel\\
76 %Math\'ematiques et Informatique des Nouvelles Technologies\\}
77
78 \large{Projet \\ en \\ Optimisation et Recherche Opérationnelle \\}
79
80 \vspace*{0.7cm}
81
82 \begin{tabular}{c}
83 \hline
84 ~ \\
85 \LARGE\textbf {Programmation Quadratique Séquentielle ou PQS} \\
86 \LARGE\textbf {en} \\
87 \LARGE\textbf {Optimisation non linéraire sous contraintes} \\
88 ~ \\
89 \hline
90 \end{tabular}
91
92 \vspace*{0.7cm}
93
94 \includegraphics[scale=0.4]{CE.PNG}\\
95
96 \vspace*{0.5cm}
97
98 \large par\\
99
100 %\large \bsc{}\\
101 %\normalsize{M\'emoire encadr\'e par :} \large St\'ephane \bsc{Ballet}\\
102
103 \vspace*{0.2cm}
104 \large {\bf Jérôme \bsc{Benoit} et Sylvain \bsc{Papa}}\\
105
106 %\vspace*{0.1cm}
107
108 % \large sous la direction de \\
109
110 %\vspace*{0.1cm}
111
112 %Eric Audureau et Thierry Masson
113
114 %\vspace*{1cm}
115
116 \vspace*{1cm}
117
118 %\normalsize{Licence de Mathématiques 3ème année}
119 \normalsize{Année 2018-2019}
120
121 \end{center}
122
123 \thispagestyle{empty}
124
125 \newpage
126
127
128 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
129 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
130
131
132 \pagestyle{plain}
133 \frontmatter
134
135
136 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
137 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
138
139
140 %%%%%Table des mati\`eres
141
142 \tableofcontents
143
144 \begin{figure}[!b]
145 \begin{center}
146 %\includegraphics{logo_fac2}
147 \includegraphics[scale=0.04]{amu}
148 \end{center}
149 \end{figure}
150
151 \newpage
152
153
154 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
155 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
156
157
158 \mainmatter
159 \pagestyle{fancy}
160
161
162 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
163 \chapter{Introduction générale}
164
165 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.
166 \newline
167 Elle est loin d'être exhaustive mais devrait suffire dans le cadre de ce projet.
168
169 \vspace{.5em}
170
171 \section{Qu'est-ce que la recherche opérationnelle?}
172
173 \subsection{Présentation rapide}
174
175 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).
176 \newline
177 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.
178
179 \subsection{Définition de la problèmatique}
180
181 Définissons le problème central $ \mathcal{P} $ que se propose de résoudre la recherche opérationnelle :
182 \begin{Def}
183 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}$.
184 \newline
185 La problèmatique $ \mathcal{P} $ se définit par :
186 $$
187 \mathcal{P} \left \{
188 \begin{array}{l}
189 \displaystyle\min_{x \in \mathbb{R}^n} J(x) \\
190 g(x) \leq 0 \\
191 h(x) = 0
192 \end{array}
193 \right .
194 $$
195 \end{Def}
196 \begin{Def}
197 On définit $ \mathcal{C} $ l'ensemble des contraintes par :
198 $$ \mathcal{C} = \left \{ x \in \mathbb{R}^n \ | \ g(x) \leq 0 \land h(x) = 0 \right \} $$
199 \end{Def}
200 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} $.
201
202 \section{Qu'est-ce que l'optimisation?}
203
204 \subsection{Définition}
205
206 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.
207 \newline
208 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.
209
210 \subsection{Quelques définitions annexes}
211
212 Définissons quelques notions supplémentaires de base nécessaires à la suite :
213 \begin{Def}
214 On définit le Lagrangien associé à $ \mathcal{P} $ par :
215 $$ \begin{array}{r c l}
216 L : \mathbb{R}^n \times \mathbb{R}^q \times \mathbb{R}_+^p & \longrightarrow & \mathbb{R} \\
217 (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) \\
218 & & L(x,\lambda,\mu) = J(x) + \langle \lambda,h(x) \rangle_{\mathbb{R}^q} + \langle \mu,g(x) \rangle_{\mathbb{R}^p}
219 \end{array} $$
220 où l’on note $ \lambda $ et $ \mu $ les vecteurs de coordonnées respectives $ (\lambda_1,\ldots,\lambda_q) $ et $ (\mu_1,\ldots,\mu_p) $.
221 \end{Def}
222 \begin{Def}
223 Soient $ \mathbb{R}^n $ un espace topologique, $ A \subset \mathbb{R}^n $ et $ x^\ast \in \mathbb{R}^n $.
224 \newline
225 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} $.
226 \end{Def}
227 \begin{Rmq}
228 $ A \subset \mathbb{R}^n $ est un ouvert $ \iff A = \mathring{A} $.
229 \end{Rmq}
230 \begin{Def}
231 Soient $ \mathbb{R}^n $ un espace topologique, $ A \subset \mathbb{R}^n $ et $ x^\ast \in \mathbb{R}^n $.
232 \newline
233 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} $.
234 \end{Def}
235 \begin{Rmq}
236 $ A \subset \mathbb{R}^n $ est un fermé $ \iff A = \overline{A} $.
237 \end{Rmq}
238 \begin{Def}
239 Soient $ f : \mathbb{R}^n \longrightarrow \mathbb{R} $ et $ S \subset \mathbb{R}^n $. On définit $ \mathrm{argmin} $ de $ f $ sur $ S $ par :
240 $$ \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) \} $$
241 \end{Def}
242 \begin{Def}
243 Soient une fonction $ f : \mathbb{R}^n \longrightarrow \mathbb{R} $ et $ x^\ast \in \mathbb{R}^n $.
244 \newline
245 On dit que $ f $ est continue en $ x^\ast $ si
246 $$ \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 $$
247 \end{Def}
248 \begin{Def}
249 Soient $ k \in \{ 1,\ldots,n \} $ et une fonction $ f: \mathbb{R}^n \longrightarrow \mathbb{R} $.
250 \newline
251 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
252 $$ t \longmapsto f(x^\ast_1,\ldots,x^\ast_{k-1},x^\ast_k + t,x^\ast_{k+1},\ldots,x^\ast_n) $$
253 définie sur un voisinage de $ 0 $ dans $ \mathbb{R} $ et à valeurs dans $ \mathbb{R} $ est dérivable en $ 0 $.
254 \newline
255 Dans ce cas on note
256 $$ \frac{\partial f}{\partial x_k}(x^\ast) $$ ou $$ \partial_k f(x^\ast) $$
257 cette dérivée.
258 \end{Def}
259 \begin{Def}
260 Soient une fonction $ f : \mathbb{R}^n \longrightarrow \mathbb{R} $
261 et $ x^\ast, h \in \mathbb{R}^n $.
262 \newline
263 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
264 \[
265 f(x^\ast + h) = f(x^\ast) + d_{x^\ast}f(h) + \underset{h \rightarrow 0}{\mathrm{o}}(\norme{h})
266 \]
267 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} $
268 telle que $ \lim\limits_{h \rightarrow 0} \varepsilon_{x^\ast}(h) = 0 $ et
269 \[
270 f(x^\ast + h) = f(x^\ast) + d_{x^\ast}f(h) + \norme{h}\varepsilon_{x^\ast}(h)
271 \]
272 On appelle $ d_{x^\ast}f $ la différentielle de $ f $ en $ x^\ast $.
273 \end{Def}
274 \begin{Rmq}
275 On peut démontrer que : $$ d_{x^\ast}f = \sum_{i=1}^n\frac{\partial f}{\partial x_i}(x^\ast) $$.
276 \end{Rmq}
277 \begin{Def}
278 Soit une fonction $ f: \mathbb{R}^n \longrightarrow \mathbb{R} $ différentiable.
279 \newline
280 Le gradient de $ f $, noté $\nabla f$, en $ x^\ast \in \mathbb{R}^n$ se définit par :
281 \[
282 \nabla f(x^\ast) = (\frac{\partial f}{\partial x_1}(x^\ast),\ldots,\frac{\partial f}{\partial x_n}(x^\ast))
283 \]
284 \end{Def}
285 \begin{Rmq}
286 $ \forall h \in \mathbb{R}^n \ d_{x^\ast}f(h) = \langle \nabla f(x^\ast),h \rangle = \nabla f(x^\ast)^\top h $
287 \end{Rmq}
288 \begin{Def}
289 Soit $ f: \mathbb{R}^n \longrightarrow \mathbb{R} $ une fonction de classe $ \mathcal{C}^2 $.
290 On définit la matrice hessienne de $ f $ en $ x^\ast $ par :
291 $$ H[f](x^\ast) =
292 \begin{pmatrix}
293 \frac{\partial^2 f}{\partial x_1^2}(x^\ast) & \cdots & \frac{\partial^2 f}{\partial x_1\partial x_n}(x^\ast) \\
294 \vdots & & \vdots \\
295 \frac{\partial^2 f}{\partial x_n\partial x_1}(x^\ast) & \cdots & \frac{\partial^2 f}{\partial x_n^2}(x^\ast)
296 \end{pmatrix} $$
297 \end{Def}
298 \begin{Prop}
299 \begin{enumerate}
300 \item $ H[f](x^\ast) $ est une matrice symétrique (Théorème de symétrie de Schwarz).
301 \item On a le développement de Taylor-Young à l'ordre 2 en $ x^\ast $ suivant :
302 $$ 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) $$
303 ou
304 $$ 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) $$
305 avec $ \frac{|\varepsilon(v)|}{\norme{v}} \rightarrow 0 $ quand $ \norme{v} \rightarrow 0 $.
306 \end{enumerate}
307 \end{Prop}
308 \begin{proof}
309 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.
310 \end{proof}
311
312 \subsection{Conditions d'existence d'un extremum}
313
314 On peut démontrer que $ \mathcal{C}$ est un ensemble fermé de $ \mathbb{R}^n $ si $ g $ et $ h $ sont continues.
315 On peut en déduire $ \mathcal{C} $ est un ensemble fermé et borné de $ \mathbb{R}^n $.
316 \begin{Th}[Théorème de Weierstrass]
317 Soient $ \mathcal{C} \neq \emptyset \subset \mathbb{R}^n $ un fermé borné et $ f : \mathcal{C} \longrightarrow \mathbb{R} $ une fonction continue.
318 \newline
319 Alors : $$ \exists x^\ast \in \mathcal{C} \ \forall x \in \mathcal{C} \ f(x) \geq f(x^\ast) $$
320 Autrement dit $ x^\ast $ est un minimum global de $ J $ sur $ \mathcal{C} $.
321 \newline
322 De la même façon, il existe un maximum global de $ J $ sur $ \mathcal{C} $.
323 \end{Th}
324 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}.
325
326 \subsection{Conditions de caractérisation d'un extremum}
327
328 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}.
329 \newline
330 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}.
331
332 \subsubsection{Conditions nécessaires de Karuch-Kuhn-Tucker ou \textit{KKT}}\label{KKT}
333
334 \begin{Th}
335 Soient $ x^\ast \in \mathbb{R}^n $, $ I = \{ 1,\ldots,p \} $ et $ J = \{ 1,\ldots,q \} $.
336 \newline
337 Les conditions nécessaires pour que $ x^\ast \in \mathcal{C}$ soit un minimum local de $ J $ sont :
338 \begin{center}
339 $ \{ \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 \end{center}
341 et
342 \begin{center}
343 $ \forall i \in I \ \exists \mu_i \in \mathbb{R}_{+} \land \forall j \in J \ \exists \lambda_j \in \mathbb{R} $ tels que :
344 \end{center}
345 \begin{center}
346 $ \nabla J(x^\ast) + \sum\limits_{i \in I}\mu_i{\nabla g_i(x^\ast)} + \sum\limits_{j \in J}\lambda_j{\nabla h_j(x^\ast)} = 0 \land \forall i \in I \ \mu_i \nabla g_i(x^\ast) = 0 $
347 \end{center}
348 \begin{center}
349 $ \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) $.
350 \end{center}
351 On appelle $ (\mu_i)_{i \in I}$ les multiplicateurs de Kuhn-Tucker et $ (\lambda_j)_{j \in J}$ les multiplicateurs de Lagrange.
352 \newline
353 On nomme également les conditions \textit{KTT} conditions nécessaires d'optimalité du premier ordre.
354 \end{Th}
355 \begin{proof}
356 Elle repose sur le lemme de Farkas \cite{FEA,RON}.
357 \end{proof}
358 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.
359 \begin{Def}
360 On appelle un point admissible $ x^\ast \in \mathcal{C} $ un point critique de $ \mathcal{P} $ si il statisfait les conditions \textit{KKT}.
361 \end{Def}
362
363 \subsubsection{Conditions suffisantes du deuxième ordre}
364
365 \begin{Th}
366 Les conditions suffisantes en plus de celles \textit{KKT} pour que $ x^\ast \in \mathcal{C} $ soit un minimum local de $ J $ sont :
367 \begin{enumerate}[label=(\roman*)]
368 \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 $.
369 \item $ \forall v \in \mathbb{R}^n \land v \neq 0 \ \langle H_x[L](x^\ast,\lambda,\mu)v,v \rangle > 0 $.
370 \end{enumerate}
371 \end{Th}
372
373 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
374
375 \chapter{Méthode de programmation quadratique séquentielle}
376
377 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.
378
379 \vspace{.5em}
380
381 \section{Methode de descente}\label{descente}
382
383 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.
384
385 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 :
386 $$ x_{k+1} = x_k + s_kd_k $$ où $ s_k \in \mathbb{R}_{+}^{*},d_k \in \mathbb{R}^n $ et avec
387 $$ \forall k \in \mathbb{N} \ J(x_{k+1}) \leq J(x_k) $$
388 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}.
389
390 \subsection{Définition d'une direction de descente}
391
392 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 :
393 $$ \exists \eta \in \mathbb{R}_{+}^{*} \ \forall t \in ]0,\eta] \ J(x_0 + td) < J(x_0) $$
394 Il est donc important d’analyser le comportement de la fonction $ J $ dans certaines directions.
395 \begin{Prop}
396 Soient $ J : \mathbb{R}^n \longrightarrow \mathbb{R} $ différentiable et $ d \in \mathbb{R}^n $.
397 \newline
398 d est un vecteur de descente de $ J $ en $ x_0 \in \mathbb{R}^n $ ssi :
399 $$ \nabla J(x_0)^\top d < 0 $$
400 De plus
401 $$ \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) $$
402 \end{Prop}
403 \begin{proof}
404 Elle s'effectue en utilisant le développement de Taylor-Young de l’application $ t \longmapsto f(x_0 + td) $ à l’ordre 1.
405 \end{proof}
406 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 :
407
408 \hrulefill
409 \newline
410 ALGORITHME DE DESCENTE GÉNÉRIQUE.
411 \newline
412 \textit{Entrées}: $ J : \mathbb{R}^n \longrightarrow \mathbb{R} $ différentiable, $ x_0 \in \mathbb{R}^n $ point initial arbitraire.
413 \newline
414 \textit{Sortie}: une approximation $ x_k $ de la solution $ x^\ast $ du problème : $ \displaystyle\min_{x \in \mathbb{R}^n} J(x) $.
415 \begin{enumerate}
416 \item $ k := 0 $.
417 \item Tant que "test d’arrêt" non satisfait,
418 \begin{enumerate}
419 \item Trouver une direction de descente $ d_k $ telle que : $ \nabla J(x_k)^\top d_k < 0 $.
420 \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). $$
421 \item Mise à jour : $ x_{k+1} = x_k + s_kd_k; \ k := k + 1 $.
422 \end{enumerate}
423 \item Retourner $ x_k $.
424 \end{enumerate}
425
426 \hrulefill
427
428 \subsection{Choix de la direction de descente}
429
430 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 :
431 \begin{itemize}
432 \item la stratégie de Cauchy : $ d_k = -\nabla J(x_k) $, conduisant aux \textit{algorithmes de gradient}.
433 \item la stratégie de Newton : $ d_k = -H[J](x_k)^{-1} \nabla J(x_k) $, conduisant aux \textit{algorithmes Newtoniens}.
434 \end{itemize}
435 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.
436
437 \subsection{Critère d’arrêt}
438
439 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 générique, 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 $.
440 \newline
441 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 $.
442
443 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
444 $$ \norme{\nabla J(x_k)} < \varepsilon, $$
445 auquel cas l’algorithme s’arrête et fournit l’itéré courant $ x_k $ comme solution.
446
447 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 :
448 \begin{itemize}
449 \item Stagnation de la solution : $ \norme{x_{k+1} - x_k} < \varepsilon(1 + \norme{x_k}) $.
450 \item Stagnation de la valeur courante : $ |J(x_{k+1}) - J(x_k)| < \varepsilon(1 + |J (x_k)|) $.
451 \item Nombre d’itérations dépassant un seuil fixé à l’avance : $ k < IterMax $.
452 \end{itemize}
453 et généralement une combinaison de ces critères :
454 \newline
455 \newline
456 Critère d’arrêt =
457 \begin{tabular}{l}
458 Test d’optimalité satisfait \\
459 OU (Stagnation de la valeur courante ET Stagnation de la solution) \\
460 OU Nombre d’itérations maximum autorisé dépassé
461 \end{tabular}
462
463 \subsection{La recherche linéaire}
464
465 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.
466 \newline
467 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 :
468 $$ J(x_0 + sd) < J(x_0). $$
469 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.
470
471 \hrulefill
472 \newline
473 RECHERCHE LINÉAIRE : PAS FIXE. $ s_k = s_{k-1} $
474
475 \hrulefill
476
477 \hrulefill
478 \newline
479 RECHERCHE LINÉAIRE : PAS OPTIMAL. $ s_k $ solution du problème $ \displaystyle\min_{s \in \mathbb{R}_{+}^{*}} J(x_k + sd_k) $
480
481 \hrulefill
482 \newline
483 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.
484 \begin{Def}
485 On appelle $ \varphi : s \in \mathbb{R} \longmapsto J(x + sd)$ la fonction mérite associée à $ J $ en $ x $.
486 \end{Def}
487 \begin{Def}
488 Dans le cas où $ J $ est différentiable sur $ \mathcal{C} $, on dit que un algorithme de descente converge ssi
489 $$ \forall x_0 \in \mathbb{R}^n \lim\limits_{k \rightarrow +\infty} \norme{\nabla J(x_k)} = 0 $$
490 \end{Def}
491
492 \subsubsection{Principe de démonstration de convergence}
493
494 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 :
495 $$ J(x_k) - J(x_{k+1}) \geq c\norme{\nabla J(x_k)}^2, $$
496 où $ c $ est une constante réelle.
497 \newline
498 En sommant ces inégalités pour $ k $ variant de $ 0 $ à $ N - 1 $, on obtient :
499 $$ \forall N \in \mathbb{N} \ J(x_0) - J(x_N) \geq c \sum_{i=0}^{N-1}\norme{\nabla J(x_i)}^2 $$
500 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 :
501 $$ \lim\limits_{k \rightarrow +\infty} \norme{\nabla J(x_k)} = 0 $$
502 \begin{Def}
503 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 :
504 \begin{itemize}
505 \item linéaire si l'erreur décroît linéairement i.e. :
506 $$ \exists \tau \in ]0,1[ \ \lim_{k \rightarrow +\infty} \frac{\norme{x_{k+1} - x^\ast}}{\norme{x_k - x^\ast}} = \tau $$
507 \item superlinéaire si :
508 $$ \lim_{k \rightarrow +\infty} \frac{\norme{x_{k+1} - x^\ast}}{\norme{x_k - x^\ast}} = 0 $$
509 \item d'ordre $ p $ si :
510 $$ \exists \tau \geq 0 \ \lim_{k \rightarrow +\infty} \frac{\norme{x_{k+1} - x^\ast}}{\norme{x_k - x^\ast}^p} = \tau $$
511 En particulier, si $ p = 2 $, la convergence est dite quadratique.
512 \end{itemize}
513 \end{Def}
514 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.
515
516 \section{Méthode Newtonienne}
517
518 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 :
519 $$ \nabla J(x) = 0, $$
520 autrement dit, les points critiques de la fonction $ J $ à minimiser.
521 \newline
522 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 :
523 $$ x_{k+1} = x_k - H[J](x_k)^{-1} \nabla J(x_k), $$
524 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 :
525 $$ \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 $$
526 Autrement dit, $ d_k $ est le point de minimum global de l’approximation quadratique de $ J $ au voisinage du point courant $ x_k $.
527 À 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 $.
528 \newline
529 Les propriétés remarquables de cet algorithme sont :
530
531 \begin{tabular}{|p{20em}|p{20em}|}
532 \hline
533 Avantages & Inconvénients \\
534 \hline
535 sa convergence quadratique (le nombre de décimales exactes est multiplié par 2 à chaque itération). & \\
536 \hline
537 & 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. \\
538 \hline
539 & le coût de résolution du système linéaire $ H[J](x_k )(x_{k+1} - x_k) = \nabla J(x_k) $. \\
540 \hline
541 & l’absence de convergence si le premier itéré est trop loin de la solution, ou si la hessienne est singulière. \\
542 \hline
543 & pas de distinction entre minima, maxima et points stationnaires. \\
544 \hline
545 \end{tabular}
546 \newline
547 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 :
548 $$ x_{k+1} = x_k - s_k H_k^{-1} \nabla J(x_k), $$
549
550 \begin{itemize}
551 \item la matrice $ H_k $ est une approximation de la hessienne $ H[J](x_k) $.
552 \item $ s_k > 0 $ est le pas calculé par une recherche linéaire bien choisie.
553 \end{itemize}
554 Plusieurs questions se posent alors :
555 \begin{itemize}
556 \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 ?
557 \item Comment conserver les bonnes propriétés de l’algorithme de Newton ?
558 \end{itemize}
559 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.
560
561 \section{Méthode PQS (ou SQP)}
562
563 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é}.
564
565 \subsection{Problème quadratique sous contraintes linéaires}
566
567 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.
568 \newline
569 Ce type de problème quadratique se pose sous la forme :
570 $$
571 \mathcal{PQ} \left \{
572 \begin{array}{l}
573 \displaystyle\min_{x \in \mathbb{R}^n} c^\top x + \frac{1}{2} x^\top \mathcal{Q} x \\
574 A^\top x + b \leq 0 \\
575 A^{\prime^\top} x + b^\prime = 0
576 \end{array}
577 \right .
578 $$
579 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 $$
580 Or
581 $$ 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 $$
582 Donc le problème se ramène à :
583
584 \subsubsection{Algorithme 1}
585
586 \subsubsection{Algorithme 2}
587
588 \subsection{Algorithmes Newtoniens}
589
590 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} $.
591
592 \subsection{Algorithme PQS}
593
594 \subsubsection{Contraintes d’égalité}
595
596 Considérons un problème d’optimisation différentiable $ \mathcal{P} $ avec contraintes d’égalité :
597 $$
598 \mathcal{P} \left \{
599 \begin{array}{l}
600 \displaystyle\min_{x \in \mathbb{R}^n} J(x) \\
601 h(x) = 0
602 \end{array}
603 \right .
604 $$
605 où $ J: \mathbb{R}^n \longrightarrow \mathbb{R} $ et $h: \mathbb{R}^n \longrightarrow \mathbb{R}^q$ sont supposées au moins différentiables.
606 \newline
607 Les conditions d’optimalité de Lagrange (ou \textit{KKT}) s’écrivent :
608 $$ \nabla J(x) + \sum\limits_{i=1}^{q} \lambda_i \nabla h_i(x) = 0 \iff \nabla L(x,\lambda) = 0 $$
609 donc $ \mathcal{P} $ devient :
610 $$ \begin{pmatrix}
611 \nabla J(x) + \sum\limits_{i=1}^{q} \lambda_i \nabla h_i(x) \\
612 h(x)
613 \end {pmatrix} = 0 $$
614 Pour résoudre ce système d’équations, utilisons la méthode de Newton dont une itération s’écrit ici :
615 $$ H[L](x_k,\lambda_k)\begin{pmatrix}
616 x_{k+1} - x_k \\
617 \lambda_{k+1} - \lambda_k
618 \end{pmatrix} = -\nabla L(x_k,\lambda_k) $$
619 soit :
620 $$ \begin{pmatrix}
621 H_x[L](x_k,\lambda_k) & D_h(x_k)^\top \\
622 D_h(x_k) & 0
623 \end{pmatrix} \begin{pmatrix}
624 x_{k+1} - x_k \\
625 \lambda_{k+1} - \lambda_k
626 \end{pmatrix} = -\begin{pmatrix}
627 \nabla_x L(x_k,\lambda_k) \\
628 h(x_k)
629 \end{pmatrix} $$
630 où $ D_h(x) $ désigne la matrice jacobienne de l’application $ h : \mathbb{R}^n \longrightarrow \mathbb{R}^q $ définie par :
631 $$ D_h(x)^\top = \begin{bmatrix} \nabla h_1(x)^\top\ldots\nabla h_q(x)^\top \end{bmatrix} $$
632 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 :
633 $$ \begin{pmatrix}
634 H_k & D_h(x_k)^\top \\
635 D_h(x_k) & 0
636 \end{pmatrix} \begin{pmatrix}
637 d \\
638 \mu - \lambda_k
639 \end{pmatrix} = -\begin{pmatrix}
640 \nabla_x L(x_k,\lambda_k) \\
641 h(x_k)
642 \end{pmatrix} $$
643 et est bien définie à condition que la matrice $ H_x[L](x_k,\lambda_k) $ soit inversible. Ce sera le cas si :
644 \begin{enumerate}[label=(\roman*)]
645 \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.
646 \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é.
647 \end{enumerate}
648 Revenons à l’itération. Elle s’écrit encore :
649 $$
650 \left \{
651 \begin{array}{r c l}
652 H_kd + \sum\limits_{i=1}^q(\mu_i - \lambda_{k_i})\nabla h_i(x_k) & = & -\nabla_x L(x_k,\lambda_k) \\
653 \nabla h_i(x_k)^\top d + h_i(x_k) & = & 0, \ \forall i \in \{1,\ldots,q\}
654 \end{array}
655 \right .
656 $$
657 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ù :
658 $$
659 \left \{
660 \begin{array}{r c l}
661 H_kd + \sum\limits_{i=1}^q\mu_i\nabla h_i(x_k) & = & -\nabla J(x_k) \\
662 \nabla h_i(x_k)^\top d + h_i(x_k) & = & 0, \ \forall i \in \{1,\ldots,q\}
663 \end{array}
664 \right .
665 $$
666 On reconnait dans le système ci-dessus les conditions d’optimalité de Lagrange du problème quadratique suivant :
667 $$
668 \mathcal{PQ}_k \left \{
669 \begin{array}{l}
670 \displaystyle\min_{d \in \mathbb{R}^n} \nabla J(x_k)^\top d + \frac{1}{2}d^\top H_k d \\
671 h_i(x_k) + \nabla h_i(x_k)^\top d = 0, \ \forall i \in \{1,\ldots,q\}
672 \end{array}
673 \right .
674 $$
675 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.
676 \newline
677 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 :
678
679 \hrulefill
680 \newline
681 ALGORITHME PQS AVEC CONSTRAINTES D'ÉGALITÉ.
682 \newline
683 \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.
684 \newline
685 \textit{Sortie}: une approximation $ x_k $ de la solution $ x^\ast $ du problème $ \mathcal{P} $.
686 \begin{enumerate}
687 \item $ k := 0 $.
688 \item Tant que $ \norme{\nabla L(x_k,\lambda_k)} > \varepsilon $,
689 \begin{enumerate}
690 \item Résoudre le sous-problème quadratique :
691 $$
692 \mathcal{PQ}_k \left \{
693 \begin{array}{l}
694 \displaystyle\min_{d \in \mathbb{R}^n} \nabla J(x_k)^\top d + \frac{1}{2}d^\top H_k d \\
695 h_i(x_k) + \nabla h_i(x_k)^\top d = 0, \ \forall i \in \{1,\ldots,q\}
696 \end{array}
697 \right .
698 $$
699 et obtenir la solution primale $ d_k $ et le multiplicateur $ \lambda^{\prime} $ associé à la contrainte d’égalité.
700 \item $ x_{k+1} = x_k + d_k; \ \lambda_{k+1} = \lambda^{\prime}; \ k := k + 1 $.
701 \end{enumerate}
702 \item Retourner $ x_k $.
703 \end{enumerate}
704
705 \hrulefill
706
707 \subsubsection{Contraintes d’inégalité}
708
709 Intéressons nous maintenant aux problèmes avec contraintes d’égalité et d’inégalité :
710 $$
711 \mathcal{P} \left \{
712 \begin{array}{l}
713 \displaystyle\min_{x \in \mathbb{R}^n} J(x) \\
714 g(x) \leq 0 \\
715 h(x) = 0
716 \end{array}
717 \right .
718 $$
719 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.
720 \newline
721 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 :
722 $$ 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 $$
723 Soit à l'ordre 2 pour le Lagrangien :
724 $$ 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) $$
725 et à l'ordre 1 pour les contraintes :
726 $$ g(x) \approx g(x_k) + \nabla g(x_k)^\top(x - x_k) $$
727 $$ h(x) \approx h(x_k) + \nabla h(x_k)^\top(x - x_k) $$
728 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 $ :
729
730 \hrulefill
731 \newline
732 ALGORITHME PQS AVEC CONSTRAINTES D'ÉGALITÉ ET D'INÉGALITÉ.
733 \newline
734 \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.
735 \newline
736 \textit{Sortie}: une approximation $ x_k $ de la solution $ x^\ast $ du problème $ \mathcal{P} $.
737 \begin{enumerate}
738 \item $ k := 0 $.
739 \item Tant que $ \norme{\nabla L(x_k,\lambda_k,\mu_k)} > \varepsilon $,
740 \begin{enumerate}
741 \item Résoudre le sous-problème quadratique :
742 $$
743 \mathcal{PQ}_k \left \{
744 \begin{array}{l}
745 \displaystyle\min_{d \in \mathbb{R}^n} \nabla J(x_k)^\top d + \frac{1}{2}d^\top H_k d \\
746 g_j(x_k) + \nabla g_j(x_k)^\top d \leq 0, \ \forall j \in \{1,\ldots,p\} \\
747 h_i(x_k) + \nabla h_i(x_k)^\top d = 0, \ \forall i \in \{1,\ldots,q\}
748 \end{array}
749 \right .
750 $$
751 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.
752 \item $ x_{k+1} = x_k + d_k; \ \lambda_{k+1} = \lambda^{\prime}; \ \mu_{k+1} = \mu^{\prime}; \ k := k + 1 $.
753 \end{enumerate}
754 \item Retourner $ x_k $.
755 \end{enumerate}
756
757 \hrulefill
758 \newline
759 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.
760 \newline
761 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.
762
763 \subsection{Stratégie d'approximation de la hessienne}
764
765 \subsubsection{Équation de sécante et approximation}
766
767 L'approximation $ H_k $ de la hessienne du Lagrangien peut être obtenu par la relation :
768 $$ \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) $$
769 On construit une approximation $ H_{k+1} $ de $ H[L](x_{k+1},\lambda_{k+1},\mu_{k+1}) $ comme solution de l’équation :
770 $$ 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}) $$
771 appelée équation de sécante ou équation de quasi-Newton.
772 \newline
773 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 :
774 $$ 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 $$
775 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.
776 \newline
777 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 :
778 $$ H_{k+1} = H_k + U_k $$
779 % \subsubsection{Mises à jour DFP et BFGS}
780 Les méthodes de mise à jour DFP et BFGS suivent par exemple cette stratégie.
781
782 \subsection{Exemple d'utilisation de PQS}
783
784 Considérons le problème $ \mathcal{P} $ suivant :
785 $$
786 \mathcal{P} \left \{
787 \begin{array}{l}
788 \displaystyle\min_{(x,y,z) \in \mathbb{R}^3} J(x,y,z) = x^2 + y^2 + z^2 -r^2 \\
789 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 \\
790 \end{array}
791 \right .
792 $$
793 où $$ (r,r_1,r_2) \in \mathbb{R}_+^{*^3} \land r < r_1 \land r < r_2. $$
794 \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.
795 \newline
796 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). $$
797 \newline
798 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). $$
799 \newline
800 Le gradient de $ g $ : $$ \nabla g(x,y,z) = (\nabla g_1(x,y,z),\nabla g_2(x,y,z)) $$
801 $$ = ((\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)) $$
802 $$ = ((2x,2y,0),(2x,0,2z)). $$
803 \newline
804 Le gradient du Lagrangien $ L $ :
805 $$ \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)) $$
806 $$ = (2x(1 + \lambda_1 + \lambda_2),2y(1 + \lambda_1),2z(1 + \lambda_2)) $$
807 \newline
808 La matrice hessienne de $ J $ : $$ H[J](x,y,z) =
809 \begin{pmatrix}
810 \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) \\
811 \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) \\
812 \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) \\
813 \end{pmatrix} =
814 \begin{pmatrix}
815 2 & 0 & 0 \\
816 0 & 2 & 0 \\
817 0 & 0 & 2 \\
818 \end{pmatrix} = 2Id_{\mathbb{R}^3} $$
819 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} $.
820
821 \newpage
822
823 \subsection{Trace d'éxécution de l'algorithme pour la méthode de Newton}
824
825 \begin{center}
826 \includegraphics[scale=0.2]{sphere2.jpg} \\
827 \footnotesize{
828 \small \it Fig : Exemple de la sphère \\
829 \vspace*{0.5cm}
830 }
831 \end{center}
832
833 En utilisant le problème $ \mathcal{P} $ précédent :
834
835 \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 $r_1 = r_2 = 10$.
836 \newline
837 Calcul du Lagrangien $ L $ de $ \mathcal{P} $ en $(x_0,y_0,z_0)$ :
838 \newline
839 $ 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). $
840 $ L((100,100,0),(1,1)) = 1000 + 1000 - 1000 + (1000 + 1000 - 100) + (1000 + 1000 - 100). $
841 $ L((100,100,0),(1,1)) = 4800. $
842
843 \newpage
844 \textbf{Trace d'éxécution de l'algorithme :}
845 \newline
846 \newfloat{algorithm}{t}
847
848 %\begin{algorithm}
849 \begin{algorithmic}
850 \REQUIRE $(x_0,y_0,z_0) = (100, 100 ,0), g(x_0,y_0,z_0) \leq 0$
851 \ENSURE $\displaystyle\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 $
852 \STATE \textbf{Data :}
853 \STATE $k \leftarrow 0, (x_k, y_k, z_k) \leftarrow (100, 100, 0), r \leftarrow 100$
854 \STATE $r_1 = r_2 \leftarrow 10, \varepsilon \leftarrow 0.01$
855 \STATE $\lambda_1 = \lambda_2 \leftarrow 1$
856 \STATE $s_k \leftarrow \frac{1}{2}$
857 \STATE $ H[J](x,y,z)^{-1} \leftarrow
858 \begin{pmatrix}
859 0.5 & 0 & 0 \\
860 0 & 0.5 & 0 \\
861 0 & 0 & 0.5 \\
862 \end{pmatrix} $
863 \newline
864
865 \WHILE{$ (\norme{\nabla L(x_k,\lambda_k,\mu_k)} > \varepsilon $ or k $ \leq 10)$}
866
867 \STATE {//Première itération :}
868 \STATE {//Calcul du gradient de $ J $ :}
869 \STATE $ \nabla J(x_k,y_k,z_k) = (2x_k,2y_k,2z_k)$ \hfill $ //résultat : (200,200,0) $
870 \newline
871 % \STATE {//Calcul des deux composantes du gradient de $ g $:}
872 % \STATE $ \nabla g_1(x_k,y_k,z_k) = (2x_k,2y_k,0)$ \hfill $ //résultat : (200, 200, 0)$
873 % \STATE $ \nabla g_2(x_k,y_k,z_k) = (2x_k,0,2z_k)$ \hfill $ //résultat : (200, 0, 0)$
874 % \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))$
875 % \newline
876 \STATE {//Calcul du gradient de $ L $ :}
877 \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)$
878 \STATE $ \varepsilon_k = \norme{\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2))}$
879 % \STATE $ \nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2)) = (x_L , y_L, z_L) $
880 \newline
881 \STATE {//Calcul de la direction de la pente $ d_k $ (méthode de Newton) :}
882 \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))$
883 \newline
884 \STATE {//Calcul des nouvelles valeurs des coordonnées}
885 \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)$
886 \newline
887 \STATE {//Incrémentation de $ k $}
888 \STATE $ k \leftarrow k + 1$ \hfill $ //résultat : k = 1$
889 \newline
890
891 \STATE {//Deuxième itération :}
892 \STATE {//Calcul du gradient de $ J $ :}
893 \STATE $ \nabla J(x_k,y_k,z_k) = (2x_k,2y_k,2z_k)$ \hfill $ //résultat : (100,100,0) $
894 \newline
895 \STATE {//Calcul du gradient de $ L $ :}
896 \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)$
897 \STATE $ \varepsilon_k = \norme{\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2))}$
898 \newline
899 \STATE {//Calcul de la direction de la pente $ d_k $ (méthode de Newton) :}
900 \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))$
901 \STATE {//Calcul des nouvelles valeurs des coordonnées}
902 \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)$
903 \newline
904 \STATE {//Incrémentation de $ k $ }
905 \STATE $ k \leftarrow k + 1$ \hfill $ //résultat : k = 2$
906 \newline
907
908 \STATE {//Troisième itération :}
909 \STATE {//Calcul du gradient de $ J $:}
910 \STATE $ \nabla J(x_k,y_k,z_k) = (2x_k,2y_k,2z_k)$ \hfill $ //résultat : (50,50,0) $
911 \newline
912 \STATE {//Calcul du gradient de $ L $ :}
913 \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)$
914 \STATE $ \varepsilon_k = \norme{\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2))}$
915 \newline
916 \STATE {//Calcul de la direction de la pente $ d_k $ (méthode de Newton) :}
917 \STATE $ d_k = -H[J](x,y,z)^{-1} * \nabla J(x_k,y_k,z_k)$ \hfill $ //résultat : (-(25,25,0))$
918 \STATE {//Calcul des nouvelles valeurs des coordonnées}
919 \newline
920 \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)$
921 \STATE {//Incrémentation de $ k $}
922 \STATE $ k \leftarrow k + 1$ \hfill $ //résultat : k = 3$
923 \newline
924
925 \STATE {//Quatrième itération :}
926 \STATE {//Calcul du gradient de $ J $ :}
927 \STATE $ \nabla J(x_k,y_k,z_k) = (2x_k,2y_k,2z_k)$ \hfill $ //résultat : (25,25,0) $
928 \newline
929 \STATE {//Calcul du gradient de $ L $ :}
930 \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)$
931 \STATE $ \varepsilon_k = \norme{\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2))}$
932 \newline
933 \STATE {//Calcul de la direction de la pente $ d_k $ (méthode de Newton) :}
934 \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))$
935 \newline
936 \STATE {//Calcul des nouvelles valeurs des coordonnées}
937 \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)$
938 \STATE {//Incrémentation de $ k $}
939 \newline
940 \STATE $ k \leftarrow k + 1$ \hfill $ //résultat : k = 4$
941 \newline
942
943 \STATE {//Cinquième itération :}
944 \STATE {//Calcul du gradient de $ J $ :}
945 \STATE $ \nabla J(x_k,y_k,z_k) = (2x_k,2y_k,2z_k)$ \hfill $ //résultat : (12.5,12.5,0) $
946 \newline
947 \STATE {//Calcul du gradient de $ L $ :}
948 \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)$
949 \STATE $ \varepsilon_k = \norme{\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2))}$
950 \newline
951 \STATE {//Calcul de la direction de la pente $ d_k $ (méthode de Newton) :}
952 \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))$
953 \newline
954 \STATE {//Calcul des nouvelles valeurs des coordonnées}
955 \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)$
956 \newline
957 \STATE {//Incrémentation de $ k $}
958 \STATE $ k \leftarrow k + 1$ \hfill $ //résultat : k = 5$
959 \newline
960
961 \STATE {//Sixième itération :}
962 \STATE {//Calcul du gradient de $ J $ :}
963 \STATE $ \nabla J(x_k,y_k,z_k) = (2x_k,2y_k,2z_k)$ \hfill $ //résultat : (6.25,6.25,0) $
964 \newline
965 \STATE {//Calcul du gradient de $ L $ :}
966 \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)$
967 \STATE $ \varepsilon_k = \norme{\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2))}$
968 \newline
969 \STATE {//Calcul de la direction de la pente $ d_k $ (méthode de Newton) :}
970 \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))$
971 \STATE {//Calcul des nouvelles valeurs des coordonnées}
972 \newline
973 \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)$
974 \STATE {//Incrémentation de $ k $}
975 \newline
976 \STATE $ k \leftarrow k + 1$ \hfill $ //résultat : k = 6$
977 \newline
978
979 \STATE {//Septième itération :}
980 \STATE {//Calcul du gradient de $ J $ :}
981 \STATE $ \nabla J(x_k,y_k,z_k) = (2x_k,2y_k,2z_k)$ \hfill $ //résultat : (3.125, 3.125, 0) $
982 \newline
983 \STATE {//Calcul du gradient de $ L $ : }
984 \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)$
985 \STATE $ \varepsilon_k = \norme{\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2))}$
986 \newline
987 \STATE {//Calcul de la direction de la pente $ d_k $ (méthode de Newton) :}
988 \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))$
989 \STATE {//Calcul des nouvelles valeurs des coordonnées}
990 \newline
991 \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)$
992 \STATE {//Incrémentation de $ k $}
993 \newline
994 \STATE $ k \leftarrow k + 1$ \hfill $ //résultat : k = 7$
995 \newline
996
997 \STATE {//Huitième itération :}
998 \STATE{//Calcul du gradient de $ J $ :}
999 \STATE $ \nabla J(x_k,y_k,z_k) = (2x_k,2y_k,2z_k)$ \hfill $ //résultat : (1.5625, 1.5625, 0) $
1000 \newline
1001 \STATE {//Calcul du gradient de $ L $ : }
1002 \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)$
1003 \STATE $ \varepsilon_k = \norme{\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2))}$
1004 \newline
1005 \STATE {//Calcul de la direction de la pente $ d_k $ (méthode de Newton) :}
1006 \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))$
1007 \newline
1008 \STATE {//Calcul des nouvelles valeurs des coordonnées}
1009 \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)$
1010 \newline
1011 \STATE {//Incrémentation de $ k $}
1012 \STATE $ k \leftarrow k + 1$ \hfill $ //résulat : k = 8$
1013 \newline
1014
1015 \STATE {//Neuvième itération :}
1016 \STATE {//Calcul du gradient de $ J $ :}
1017 \STATE $ \nabla J(x_k,y_k,z_k) = (2x_k,2y_k,2z_k)$ \hfill $ //résultat : (0.78125, 0.78125, 0) $
1018 \newline
1019 \STATE {//Calcul du gradient de $ L $ :}
1020 \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)$
1021 \STATE $ \varepsilon_k = \norme{\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2))}$
1022 \newline
1023 \STATE {//Calcul de la direction de la pente $ d_k $ (méthode de Newton) :}
1024 \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))$
1025 \newline
1026 \STATE {//Calcul des nouvelles valeurs des coordonnées}
1027 \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)$
1028 \newline
1029 \STATE {//Incrémentation de $ k $}
1030 \STATE $ k \leftarrow k + 1 \hfill //résultat : k = 9$
1031 \newline
1032
1033 \STATE {//Dixième itération :}
1034 \STATE {//Calcul du gradient de $ J $ :}
1035 \STATE $ \nabla J(x_k,y_k,z_k) = (2x_k,2y_k,2z_k)$ \hfill $ //résultat : (0.390625, 0.390625, 0) $
1036 \newline
1037 \STATE {//Calcul du gradient de $ L $ :}
1038 \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)$
1039 \STATE $ \varepsilon_k = \norme{\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2))}$
1040 \newline
1041 \STATE {//Calcul de la direction de la pente $ d_k $ (méthode de Newton) :}
1042 \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))$
1043 \newline
1044 \STATE {//Calcul des nouvelles valeurs des coordonnées}
1045 \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)$
1046 \newline
1047 \STATE {//Incrémentation de $ k $}
1048 \STATE $ k \leftarrow k + 1$ \hfill $ //résultat : k = 10$
1049 \newline
1050 \STATE {//Fin de la boucle "while" car nous avons atteint $ k = 10 $, condition mettant fin à la //boucle}
1051 \newline
1052
1053 \ENDWHILE
1054
1055
1056 \end{algorithmic}
1057 %\end{floatalgo}
1058 %\end{algorithm}
1059
1060 \bibliographystyle{plain}
1061 \bibliography{stdlib_sbphilo}
1062
1063 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1064
1065 \end{document}