Add the missing bits on quadratic problems solving.
[Projet_Recherche_Operationnelle.git] / rapport / ProjetOptimRO.tex
CommitLineData
e37aec65
JB
1\documentclass[12pt,oneside,a4paper]{book}
2
3
4%%%%%Packages
5
de30386e 6
e37aec65 7\usepackage{latexsym}
66a4e4ad 8\usepackage{amsmath}
8000c039 9\usepackage{amsthm}
66a4e4ad 10\usepackage{mathtools}
e37aec65
JB
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}
7fd51f8b 23\usepackage{enumitem}
4b8b7ee7 24\usepackage{algorithm2e}
b8e1f3f6 25\usepackage{algorithmic}
6788a539 26\usepackage{float}
e37aec65
JB
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
66a4e4ad 37\renewcommand{\footrulewidth}{0.2pt} % filet en bas
e37aec65
JB
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
682e0379 49\newcommand{\norme}[1]{\left\Vert #1 \right\Vert}
e37aec65
JB
50
51%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
52%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
53
54\begin{document}
55
56%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
57%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
58
59%%%%%Page de garde
60
61\begin{center}
62
b0927d0a 63 %\includegraphics[scale=0.5]{logo_sciences_rvb.png}\\
cec1e8f8 64 \includegraphics[scale=0.5]{polytech.png}\\
b0927d0a
JB
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
9f054a9c 84 ~ \\
7fd51f8b 85 \LARGE\textbf {Programmation Quadratique Séquentielle ou PQS} \\
9f054a9c
JB
86 \LARGE\textbf {en} \\
87 \LARGE\textbf {Optimisation non linéraire sous contraintes} \\
88 ~ \\
b0927d0a
JB
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}
91df3de1 104 \large {\bf Jérôme \bsc{Benoit} et Sylvain \bsc{Papa}}\\
b0927d0a
JB
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}
e37aec65
JB
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
e37aec65
JB
140%%%%%Table des mati\`eres
141
142\tableofcontents
143
144\begin{figure}[!b]
b0927d0a
JB
145 \begin{center}
146 %\includegraphics{logo_fac2}
147 \includegraphics[scale=0.04]{amu}
148 \end{center}
e37aec65
JB
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
8000c039
JB
165L'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
167Elle est loin d'être exhaustive mais devrait suffire dans le cadre de ce projet.
168
e37aec65
JB
169\vspace{.5em}
170
171\section{Qu'est-ce que la recherche opérationnelle?}
172
64f7c064
JB
173\subsection{Présentation rapide}
174
f899c72b 175La 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).
e7e85554 176\newline
f899c72b 177On 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.
91df3de1 178
64f7c064
JB
179\subsection{Définition de la problèmatique}
180
f899c72b 181Définissons le problème central $ \mathcal{P} $ que se propose de résoudre la recherche opérationnelle :
6ec0df37 182\begin{Def}
5e4341d1
JB
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 $$
aa023e1c 187 \mathcal{P} \left \{
7fd51f8b 188 \begin{array}{l}
aa023e1c
JB
189 \displaystyle\min_{x \in \mathbb{R}^n} J(x) \\
190 g(x) \leq 0 \\
191 h(x) = 0
192 \end{array}
193 \right .
5e4341d1 194 $$
6ec0df37 195\end{Def}
6ec0df37 196\begin{Def}
5e4341d1
JB
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 \} $$
6ec0df37 199\end{Def}
3b344e8c 200Elle 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} $.
64f7c064 201
e37aec65
JB
202\section{Qu'est-ce que l'optimisation?}
203
f899c72b
JB
204\subsection{Définition}
205
206La 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
8a00a107 208Si 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.
f899c72b
JB
209
210\subsection{Quelques définitions annexes}
211
212Définissons quelques notions supplémentaires de base nécessaires à la suite :
682e0379
JB
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} \\
7fd51f8b 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) \\
682e0379
JB
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}
f899c72b 222\begin{Def}
9f054a9c
JB
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} $.
f899c72b 226\end{Def}
9f054a9c
JB
227\begin{Rmq}
228 $ A \subset \mathbb{R}^n $ est un ouvert $ \iff A = \mathring{A} $.
229\end{Rmq}
f899c72b 230\begin{Def}
9f054a9c
JB
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} $.
f899c72b 234\end{Def}
9f054a9c
JB
235\begin{Rmq}
236 $ A \subset \mathbb{R}^n $ est un fermé $ \iff A = \overline{A} $.
237\end{Rmq}
f899c72b 238\begin{Def}
7590f4bb
JB
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 $.
9f054a9c
JB
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 $$
f899c72b 247\end{Def}
d17ef079
JB
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}
66a4e4ad 259\begin{Def}
7590f4bb 260 Soient une fonction $ f : \mathbb{R}^n \longrightarrow \mathbb{R} $
66a4e4ad 261 et $ x^\ast, h \in \mathbb{R}^n $.
d17ef079 262 \newline
66a4e4ad
JB
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 \]
d17ef079 272 On appelle $ d_{x^\ast}f $ la différentielle de $ f $ en $ x^\ast $.
66a4e4ad 273\end{Def}
d17ef079
JB
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}
5e4341d1
JB
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 \[
de30386e 282 \nabla f(x^\ast) = (\frac{\partial f}{\partial x_1}(x^\ast),\ldots,\frac{\partial f}{\partial x_n}(x^\ast))
5e4341d1
JB
283 \]
284\end{Def}
d17ef079 285\begin{Rmq}
a5f09ac4 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 $
d17ef079 287\end{Rmq}
9f054a9c 288\begin{Def}
84af1fe2 289 Soit $ f: \mathbb{R}^n \longrightarrow \mathbb{R} $ une fonction de classe $ \mathcal{C}^2 $.
9f054a9c
JB
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).
682e0379 301 \item On a le développement de Taylor-Young à l'ordre 2 en $ x^\ast $ suivant :
9f054a9c 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) $$
682e0379
JB
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) $$
9f054a9c
JB
305 avec $ \frac{|\varepsilon(v)|}{\norme{v}} \rightarrow 0 $ quand $ \norme{v} \rightarrow 0 $.
306 \end{enumerate}
307\end{Prop}
682e0379
JB
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}
f899c72b
JB
311
312\subsection{Conditions d'existence d'un extremum}
313
7590f4bb
JB
314On peut démontrer que $ \mathcal{C}$ est un ensemble fermé de $ \mathbb{R}^n $ si $ g $ et $ h $ sont continues.
315On peut en déduire $ \mathcal{C} $ est un ensemble fermé et borné de $ \mathbb{R}^n $.
3b344e8c 316\begin{Th}[Théorème de Weierstrass]
9f054a9c
JB
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} $.
3b344e8c 323\end{Th}
7590f4bb 324Si $ 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}.
b6cd6632 325
3b344e8c
JB
326\subsection{Conditions de caractérisation d'un extremum}
327
9f054a9c 328Dans 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}.
f899c72b 329\newline
9f054a9c 330On 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}.
f899c72b 331
7590f4bb 332\subsubsection{Conditions nécessaires de Karuch-Kuhn-Tucker ou \textit{KKT}}\label{KKT}
f899c72b
JB
333
334\begin{Th}
9f054a9c
JB
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 :
09448b62
JB
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}
9f054a9c 341 et
09448b62
JB
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}
9f054a9c 351 On appelle $ (\mu_i)_{i \in I}$ les multiplicateurs de Kuhn-Tucker et $ (\lambda_j)_{j \in J}$ les multiplicateurs de Lagrange.
7590f4bb
JB
352 \newline
353 On nomme également les conditions \textit{KTT} conditions nécessaires d'optimalité du premier ordre.
f899c72b 354\end{Th}
8000c039 355\begin{proof}
9f054a9c 356 Elle repose sur le lemme de Farkas \cite{FEA,RON}.
8000c039 357\end{proof}
6079168f 358Il 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.
7590f4bb
JB
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}
8000c039 362
7590f4bb
JB
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}
8000c039
JB
372
373%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
374
375\chapter{Méthode de programmation quadratique séquentielle}
376
377Dans 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
682e0379
JB
383Nous 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
8000c039 385Partant 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 :
9f054a9c 386$$ x_{k+1} = x_k + s_kd_k $$ où $ s_k \in \mathbb{R}_{+}^{*},d_k \in \mathbb{R}^n $ et avec
8000c039
JB
387$$ \forall k \in \mathbb{N} \ J(x_{k+1}) \leq J(x_k) $$
388Un 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
9f054a9c 392Un 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 :
8000c039 393$$ \exists \eta \in \mathbb{R}_{+}^{*} \ \forall t \in ]0,\eta] \ J(x_0 + td) < J(x_0) $$
6079168f 394Il est donc important d’analyser le comportement de la fonction $ J $ dans certaines directions.
8000c039 395\begin{Prop}
9f054a9c
JB
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) $$
8000c039
JB
402\end{Prop}
403\begin{proof}
9f054a9c 404 Elle s'effectue en utilisant le développement de Taylor-Young de l’application $ t \longmapsto f(x_0 + td) $ à l’ordre 1.
8000c039 405\end{proof}
6079168f 406Cette 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 :
8000c039
JB
407
408\hrulefill
409\newline
09448b62 410ALGORITHME DE DESCENTE GÉNÉRIQUE.
8000c039
JB
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
e17152e0 414\textit{Sortie}: une approximation $ x_k $ de la solution $ x^\ast $ du problème : $ \displaystyle\min_{x \in \mathbb{R}^n} J(x) $.
8000c039 415\begin{enumerate}
e17152e0 416 \item $ k := 0 $.
8000c039 417 \item Tant que "test d’arrêt" non satisfait,
9f054a9c
JB
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 $.
8000c039
JB
424\end{enumerate}
425
426\hrulefill
427
428\subsection{Choix de la direction de descente}
429
e17152e0 430Une 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 :
8000c039
JB
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}
9f054a9c 435Remarquons 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.
8000c039
JB
436
437\subsection{Critère d’arrêt}
438
09448b62 439Soit $ 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 $.
f899c72b 440\newline
6079168f 441En 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 $.
8000c039 442
6079168f 443Soit $ \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
8000c039
JB
444$$ \norme{\nabla J(x_k)} < \varepsilon, $$
445auquel cas l’algorithme s’arrête et fournit l’itéré courant $ x_k $ comme solution.
446
e17152e0 447En 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 :
8000c039
JB
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}
453et généralement une combinaison de ces critères :
de30386e 454\newline
8000c039
JB
455\newline
456Critère d’arrêt =
457\begin{tabular}{l}
9f054a9c 458 Test d’optimalité satisfait \\
8000c039
JB
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}
6ec0df37 462
8000c039 463\subsection{La recherche linéaire}
e37aec65 464
8000c039
JB
465Supposons 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
467Soit $ 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). $$
6079168f 469Le 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.
8000c039
JB
470
471\hrulefill
472\newline
473RECHERCHE LINÉAIRE : PAS FIXE. $ s_k = s_{k-1} $
474
475\hrulefill
476
477\hrulefill
478\newline
479RECHERCHE LINÉAIRE : PAS OPTIMAL. $ s_k $ solution du problème $ \displaystyle\min_{s \in \mathbb{R}_{+}^{*}} J(x_k + sd_k) $
e37aec65 480
8000c039
JB
481\hrulefill
482\newline
a5f09ac4 483Illustré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.
8000c039
JB
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}
9f054a9c 488 Dans le cas où $ J $ est différentiable sur $ \mathcal{C} $, on dit que un algorithme de descente converge ssi
7590f4bb 489 $$ \forall x_0 \in \mathbb{R}^n \lim\limits_{k \rightarrow +\infty} \norme{\nabla J(x_k)} = 0 $$
8000c039
JB
490\end{Def}
491
492\subsubsection{Principe de démonstration de convergence}
de30386e 493
e17152e0 494Une 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 :
8000c039 495$$ J(x_k) - J(x_{k+1}) \geq c\norme{\nabla J(x_k)}^2, $$
e17152e0 496où $ c $ est une constante réelle.
8000c039
JB
497\newline
498En 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 $$
9f054a9c 500Si $ 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 :
8000c039 501$$ \lim\limits_{k \rightarrow +\infty} \norme{\nabla J(x_k)} = 0 $$
7590f4bb
JB
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}
514L'é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.
8000c039
JB
515
516\section{Méthode Newtonienne}
517
e17152e0 518Les 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 :
8000c039
JB
519$$ \nabla J(x) = 0, $$
520autrement dit, les points critiques de la fonction $ J $ à minimiser.
521\newline
522En 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), $$
682e0379
JB
524où $ 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 $$
c207a96f 526Autrement dit, $ d_k $ est le point de minimum global de l’approximation quadratique de $ J $ au voisinage du point courant $ x_k $.
a5f09ac4 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 $.
7fd51f8b
JB
528\newline
529Les propriétés remarquables de cet algorithme sont :
682e0379
JB
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
09448b62 541 & l’absence de convergence si le premier itéré est trop loin de la solution, ou si la hessienne est singulière. \\
682e0379
JB
542 \hline
543 & pas de distinction entre minima, maxima et points stationnaires. \\
544 \hline
545\end{tabular}
546\newline
6079168f 547La 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 :
682e0379
JB
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}
554Plusieurs 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}
7fd51f8b 559Nous 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.
de30386e 560
8000c039 561\section{Méthode PQS (ou SQP)}
e37aec65 562
7590f4bb 563Nous 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é}.
682e0379 564
329ebbc2
JB
565\subsection{Problème quadratique sous contraintes linéaires}
566
567Nous 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
569Ce 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$$
579où $$ \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 $$
075207e7
JB
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 $$
582On peut ramener le problème à :
583$$
584 \mathcal{PQ} \left \{
585 \begin{array}{l}
586 \displaystyle\min_{x \in \mathbb{R}^n} c^\top x + \frac{1}{2} x^\top \mathcal{Q} x \\
587 A^\top x + b + z = 0 \\
588 A^{\prime^\top} x + b^\prime = 0
589 \end{array}
590 \right .
591$$
592où $$ z \in \mathbb{R}^p $$
593On peut donc ramener l'étude de ce type de problème à :
594$$
595 \mathcal{PQ} \left \{
596 \begin{array}{l}
597 \displaystyle\min_{x \in \mathbb{R}^n} c^\top x + \frac{1}{2} x^\top \mathcal{Q} x \\
598 A^\top x + b = 0 \\
599 \end{array}
600 \right .
601$$
602où $$ \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 $$
603Conditions \textit{KKT} appliquées à $ \mathcal{PQ} $ :
604$$
605 \begin{array}{r c l}
606 \mathcal{Q} x + A \lambda^\ast & = & - c \\
607 A^\top x & = & -b \\
608 \end{array}
609$$
610On obtient donc :
611$$ \lambda^\ast = (A^\top \mathcal{Q} A)^{-1} A^\top \mathcal{Q} c $$
612En posant $ \mathcal{Q} = Id_{\mathbb{R}^n} $, on a une bonne évaluation de $ \lambda^\ast $ :
613$$ \lambda^\ast = (A^\top A)^{-1} A^\top c $$
614
615\subsubsection{Méthode des points intérieurs}
616
617Soit $ F_\mu $ définit par :
618$$ F_\mu(x, \lambda, s) =
619 \begin{pmatrix}
620 \mathcal{Q}x - A^\top \lambda -s -c \\
621 A x + b \\
622 XS - \mu
623 \end{pmatrix}
624$$
625
626$$ X = diag(x) \in \mathcal{M}_n(\mathbb{R}), S = diag(s) \in \mathcal{M}_n(\mathbb{R}), s > 0 \ et \ \mu \in \mathbb{R}^n $$
627\hrulefill
628\newline
629ALGORITHME DES POINTS INTÉRIEURS.
630\newline
631\textit{Entrées}: $ F_\mu : \mathbb{R}^n \times \mathbb{R}^p \times \mathbb{R}^n \longrightarrow \mathcal{M}_{n,2n+p}(\mathbb{R}) $, $ (x_0,\lambda_0,s_0) \in \mathbb{R}^n \times \mathbb{R}^p \times \mathbb{R}^n $ où $ (x_0,s_0) > 0 $ point initial arbitraire, $ \varepsilon > 0 $ précision demandée.
632\newline
633\textit{Sortie}: une approximation $ x_k $ de la solution $ x^\ast $, avec son coefficient $ \lambda_k $, du problème $ \mathcal{PQ} $.
634\begin{enumerate}
635 \item $ k := 0 $.
636 \item Tant que $ \frac{x_k^\top s_k}{n} > \varepsilon $,
637 \begin{enumerate}
638 \item Choisir $ \sigma_k \in [\sigma_{min},\sigma_{max}]$
639 \item Résoudre le sytème linéaire d'équations où $ J_{F_\mu}(x_k,\lambda_k,s_k) $ désigne la matrice jacobienne de $ F_\mu $:
640 $$ J_{F_\mu}(x_k,\lambda_k,s_k) d = -
641 \begin{pmatrix}
642 \mathcal{Q}x - A^\top \lambda -s -c \\
643 A x + b \\
644 XS - \sigma_k \mu
645 \end{pmatrix} $$
646 pour déterminer $ d_k = (d_{x_k},d_{\lambda_k},d_{s_k}) $.
647 \item Choisir $ \alpha_{max} $ la plus grande valeur $ \alpha $ tel que $ (x_k,s_k) + \alpha(d_{x_k},d_{s_k}) > 0 $.
648 \item Choisir $ \alpha_k = \min \{1, \eta_k \sigma_{max} $ tel que $ \exists \eta_k \in [0,1]\} $.
649 \item $ \mu_k = \frac{x_k^\top s_k}{n} $; $ (x_{k+1},\lambda_{k+1},s_{k+1}) := (x_k,\lambda_k,s_k) + \alpha_k d_k $; $ k := k + 1 $.
650 \end{enumerate}
651 \item Retourner $ (x_k,\lambda_k,s_k) $.
652\end{enumerate}
329ebbc2 653
075207e7
JB
654\hrulefill
655\newline
656On note que c'est un algorithme de descente avec recherche d'un pas optimal.
657La détermination de $ \sigma_{min} $ et $ \sigma_{max} $ se fait dans l'intervalle ouvert $ ]0, 1[ $. Il existe d'autres méthodes de résolution du problème $ \mathcal{PQ} $ mais celle-ci à l'avantage de passer à l'échelle et a des vitesses de convergence efficientes. La résolution du système linéaire d'équations peut être faite soit directement, soit en utilisant une méthode itérative de résolution de problèmes d'algèbre linéaire.
329ebbc2 658
a5f09ac4 659\subsection{Algorithmes Newtoniens}
682e0379 660
6079168f 661Les 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} $.
682e0379
JB
662
663\subsection{Algorithme PQS}
664
665\subsubsection{Contraintes d’égalité}
666
667Considérons un problème d’optimisation différentiable $ \mathcal{P} $ avec contraintes d’égalité :
668$$
669 \mathcal{P} \left \{
7fd51f8b 670 \begin{array}{l}
682e0379
JB
671 \displaystyle\min_{x \in \mathbb{R}^n} J(x) \\
672 h(x) = 0
673 \end{array}
674 \right .
675$$
676où $ J: \mathbb{R}^n \longrightarrow \mathbb{R} $ et $h: \mathbb{R}^n \longrightarrow \mathbb{R}^q$ sont supposées au moins différentiables.
677\newline
678Les conditions d’optimalité de Lagrange (ou \textit{KKT}) s’écrivent :
7fd51f8b 679$$ \nabla J(x) + \sum\limits_{i=1}^{q} \lambda_i \nabla h_i(x) = 0 \iff \nabla L(x,\lambda) = 0 $$
682e0379
JB
680donc $ \mathcal{P} $ devient :
681$$ \begin{pmatrix}
075207e7
JB
682 \nabla J(x) + \sum\limits_{i=1}^{q} \lambda_i \nabla h_i(x) \\
683 h(x)
684 \end{pmatrix} = 0 $$
682e0379 685Pour résoudre ce système d’équations, utilisons la méthode de Newton dont une itération s’écrit ici :
7fd51f8b
JB
686$$ H[L](x_k,\lambda_k)\begin{pmatrix}
687 x_{k+1} - x_k \\
688 \lambda_{k+1} - \lambda_k
689 \end{pmatrix} = -\nabla L(x_k,\lambda_k) $$
690soit :
691$$ \begin{pmatrix}
692 H_x[L](x_k,\lambda_k) & D_h(x_k)^\top \\
693 D_h(x_k) & 0
694 \end{pmatrix} \begin{pmatrix}
695 x_{k+1} - x_k \\
696 \lambda_{k+1} - \lambda_k
697 \end{pmatrix} = -\begin{pmatrix}
698 \nabla_x L(x_k,\lambda_k) \\
699 h(x_k)
700 \end{pmatrix} $$
701où $ D_h(x) $ désigne la matrice jacobienne de l’application $ h : \mathbb{R}^n \longrightarrow \mathbb{R}^q $ définie par :
7590f4bb 702$$ D_h(x)^\top = \begin{bmatrix} \nabla h_1(x)^\top\ldots\nabla h_q(x)^\top \end{bmatrix} $$
7fd51f8b
JB
703Posons : $ 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 :
704$$ \begin{pmatrix}
705 H_k & D_h(x_k)^\top \\
706 D_h(x_k) & 0
707 \end{pmatrix} \begin{pmatrix}
708 d \\
709 \mu - \lambda_k
710 \end{pmatrix} = -\begin{pmatrix}
711 \nabla_x L(x_k,\lambda_k) \\
712 h(x_k)
713 \end{pmatrix} $$
714et est bien définie à condition que la matrice $ H_x[L](x_k,\lambda_k) $ soit inversible. Ce sera le cas si :
715\begin{enumerate}[label=(\roman*)]
7590f4bb 716 \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.
7fd51f8b
JB
717 \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é.
718\end{enumerate}
719Revenons à l’itération. Elle s’écrit encore :
720$$
721 \left \{
722 \begin{array}{r c l}
723 H_kd + \sum\limits_{i=1}^q(\mu_i - \lambda_{k_i})\nabla h_i(x_k) & = & -\nabla_x L(x_k,\lambda_k) \\
724 \nabla h_i(x_k)^\top d + h_i(x_k) & = & 0, \ \forall i \in \{1,\ldots,q\}
725 \end{array}
726 \right .
727$$
e17152e0 728Or $ \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ù :
7fd51f8b
JB
729$$
730 \left \{
731 \begin{array}{r c l}
732 H_kd + \sum\limits_{i=1}^q\mu_i\nabla h_i(x_k) & = & -\nabla J(x_k) \\
733 \nabla h_i(x_k)^\top d + h_i(x_k) & = & 0, \ \forall i \in \{1,\ldots,q\}
734 \end{array}
735 \right .
736$$
6079168f 737On reconnait dans le système ci-dessus les conditions d’optimalité de Lagrange du problème quadratique suivant :
7fd51f8b
JB
738$$
739 \mathcal{PQ}_k \left \{
740 \begin{array}{l}
741 \displaystyle\min_{d \in \mathbb{R}^n} \nabla J(x_k)^\top d + \frac{1}{2}d^\top H_k d \\
742 h_i(x_k) + \nabla h_i(x_k)^\top d = 0, \ \forall i \in \{1,\ldots,q\}
743 \end{array}
744 \right .
745$$
746Le 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.
747\newline
748Comme 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 :
749
e17152e0
JB
750\hrulefill
751\newline
6079168f 752ALGORITHME PQS AVEC CONSTRAINTES D'ÉGALITÉ.
e17152e0
JB
753\newline
754\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.
755\newline
756\textit{Sortie}: une approximation $ x_k $ de la solution $ x^\ast $ du problème $ \mathcal{P} $.
757\begin{enumerate}
758 \item $ k := 0 $.
759 \item Tant que $ \norme{\nabla L(x_k,\lambda_k)} > \varepsilon $,
760 \begin{enumerate}
761 \item Résoudre le sous-problème quadratique :
762 $$
763 \mathcal{PQ}_k \left \{
764 \begin{array}{l}
765 \displaystyle\min_{d \in \mathbb{R}^n} \nabla J(x_k)^\top d + \frac{1}{2}d^\top H_k d \\
766 h_i(x_k) + \nabla h_i(x_k)^\top d = 0, \ \forall i \in \{1,\ldots,q\}
767 \end{array}
768 \right .
769 $$
770 et obtenir la solution primale $ d_k $ et le multiplicateur $ \lambda^{\prime} $ associé à la contrainte d’égalité.
771 \item $ x_{k+1} = x_k + d_k; \ \lambda_{k+1} = \lambda^{\prime}; \ k := k + 1 $.
772 \end{enumerate}
773 \item Retourner $ x_k $.
774\end{enumerate}
775
776\hrulefill
777
7fd51f8b 778\subsubsection{Contraintes d’inégalité}
682e0379 779
e17152e0
JB
780Intéressons nous maintenant aux problèmes avec contraintes d’égalité et d’inégalité :
781$$
782 \mathcal{P} \left \{
783 \begin{array}{l}
784 \displaystyle\min_{x \in \mathbb{R}^n} J(x) \\
785 g(x) \leq 0 \\
786 h(x) = 0
787 \end{array}
788 \right .
789$$
790où $ 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.
791\newline
7590f4bb 792Selon 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 :
e17152e0 793$$ 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 $$
7590f4bb
JB
794Soit à l'ordre 2 pour le Lagrangien :
795$$ 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) $$
796et à l'ordre 1 pour les contraintes :
797$$ g(x) \approx g(x_k) + \nabla g(x_k)^\top(x - x_k) $$
798$$ h(x) \approx h(x_k) + \nabla h(x_k)^\top(x - x_k) $$
799En 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 $ :
075207e7
JB
800$$
801 \mathcal{PQ}_k \left \{
802 \begin{array}{l}
803 \displaystyle\min_{d \in \mathbb{R}^n} \nabla J(x_k)^\top d + \frac{1}{2}d^\top H_k d \\
804 g(x_k) + \nabla g(x_k)^\top d \leq 0 \\
805 h(x_k) + \nabla h(x_k)^\top d = 0
806 \end{array}
807 \right .
808$$
809Comme pour la cas précédent, on résoud alors le sous problème quadratique $ \mathcal{PQ}_k $ qui est plus simple avec une méthode vue plus haut en posant $ \mathcal{Q} = H_k = H[L](x_k,\lambda_k,\mu_k) $.
810\newpage
e17152e0
JB
811\hrulefill
812\newline
e173772d 813ALGORITHME PQS AVEC CONSTRAINTES D'ÉGALITÉ ET D'INÉGALITÉ.
e17152e0
JB
814\newline
815\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.
816\newline
817\textit{Sortie}: une approximation $ x_k $ de la solution $ x^\ast $ du problème $ \mathcal{P} $.
818\begin{enumerate}
819 \item $ k := 0 $.
820 \item Tant que $ \norme{\nabla L(x_k,\lambda_k,\mu_k)} > \varepsilon $,
821 \begin{enumerate}
822 \item Résoudre le sous-problème quadratique :
823 $$
824 \mathcal{PQ}_k \left \{
825 \begin{array}{l}
826 \displaystyle\min_{d \in \mathbb{R}^n} \nabla J(x_k)^\top d + \frac{1}{2}d^\top H_k d \\
e173772d 827 g_j(x_k) + \nabla g_j(x_k)^\top d \leq 0, \ \forall j \in \{1,\ldots,p\} \\
e17152e0
JB
828 h_i(x_k) + \nabla h_i(x_k)^\top d = 0, \ \forall i \in \{1,\ldots,q\}
829 \end{array}
830 \right .
831 $$
832 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.
833 \item $ x_{k+1} = x_k + d_k; \ \lambda_{k+1} = \lambda^{\prime}; \ \mu_{k+1} = \mu^{\prime}; \ k := k + 1 $.
834 \end{enumerate}
835 \item Retourner $ x_k $.
836\end{enumerate}
837
838\hrulefill
839\newline
840Afin 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.
841\newline
075207e7 842Étant 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.
e17152e0 843
7590f4bb
JB
844\subsection{Stratégie d'approximation de la hessienne}
845
846\subsubsection{Équation de sécante et approximation}
847
848L'approximation $ H_k $ de la hessienne du Lagrangien peut être obtenu par la relation :
849$$ \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) $$
850On construit une approximation $ H_{k+1} $ de $ H[L](x_{k+1},\lambda_{k+1},\mu_{k+1}) $ comme solution de l’équation :
851$$ 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}) $$
852appelée équation de sécante ou équation de quasi-Newton.
853\newline
854De 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 :
855$$ 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 $$
856Dans 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.
857\newline
858Une 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 :
859$$ H_{k+1} = H_k + U_k $$
075207e7
JB
860Les méthodes de mises à jour PSB et BFGS suivent par exemple cette stratégie.
861
862\subsubsection{Mises à jour PSB}
863
864$$ H_{k+1} = H_k + \frac{1}{d^\top d} ((y - H_k d)d^\top + d(y - H_k d)^\top) - \frac{(y - H_k d)^\top d}{(d^\top d)^2}d^\top d $$
865
866$$ d = x_{k+1} - x_k $$
867$$ y = \nabla L(x_{k+1},\lambda_{k+1},\mu_{k+1}) - \nabla L(x_{k},\lambda_{k+1},\mu_{k+1}) $$
868
869\subsubsection{Mises à jour BFGS}
870
871$$ H_{k+1} = H_k + \frac{y y^\top}{y^\top d} - \frac{H_k d d^\top H_k}{d^\top H_k d}$$
872
873$$ d = x_{k+1} - x_k $$
874$$ y = \nabla L(x_{k+1},\lambda_{k+1},\mu_{k+1}) - \nabla L(x_{k},\lambda_{k+1},\mu_{k+1}) $$
7590f4bb
JB
875
876\subsection{Exemple d'utilisation de PQS}
877
878Considérons le problème $ \mathcal{P} $ suivant :
879$$
880 \mathcal{P} \left \{
881 \begin{array}{l}
882 \displaystyle\min_{(x,y,z) \in \mathbb{R}^3} J(x,y,z) = x^2 + y^2 + z^2 -r^2 \\
883 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 \\
884 \end{array}
885 \right .
886$$
e173772d 887où $$ (r,r_1,r_2) \in \mathbb{R}_+^{*^3} \land r < r_1 \land r < r_2. $$
84af1fe2 888\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.
7590f4bb 889\newline
84af1fe2 890Le 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). $$
7590f4bb 891\newline
84af1fe2 892Le 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). $$
7590f4bb 893\newline
b8e1f3f6 894Le gradient de $ g $ : $$ \nabla g(x,y,z) = (\nabla g_1(x,y,z),\nabla g_2(x,y,z)) $$
84af1fe2
JB
895$$ = ((\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)) $$
896$$ = ((2x,2y,0),(2x,0,2z)). $$
7590f4bb 897\newline
84af1fe2
JB
898Le gradient du Lagrangien $ L $ :
899$$ \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)) $$
427c06b2 900$$ = (2x(1 + \lambda_1 + \lambda_2),2y(1 + \lambda_1),2z(1 + \lambda_2)) $$
84af1fe2
JB
901\newline
902La matrice hessienne de $ J $ : $$ H[J](x,y,z) =
7590f4bb 903 \begin{pmatrix}
46973afb
JB
904 \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) \\
905 \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) \\
906 \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) \\
7590f4bb
JB
907 \end{pmatrix} =
908 \begin{pmatrix}
84af1fe2
JB
909 2 & 0 & 0 \\
910 0 & 2 & 0 \\
911 0 & 0 & 2 \\
912 \end{pmatrix} = 2Id_{\mathbb{R}^3} $$
329ebbc2 913On 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} $.
7590f4bb 914
9862be00 915\newpage
b8e1f3f6 916
fc31b390 917\subsection{Trace d'éxécution de l'algorithme pour la méthode de Newton}
b8e1f3f6 918
a11e6dde
JB
919\begin{center}
920 \includegraphics[scale=0.2]{sphere2.jpg} \\
921 \footnotesize{
922 \small \it Fig : Exemple de la sphère \\
923 \vspace*{0.5cm}
924 }
9862be00 925\end{center}
e173772d 926
a11e6dde 927En utilisant le problème $ \mathcal{P} $ précédent :
e173772d 928
a11e6dde 929\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$.
b8e1f3f6 930\newline
a11e6dde 931Calcul du Lagrangien $ L $ de $ \mathcal{P} $ en $(x_0,y_0,z_0)$ :
e173772d 932\newline
427c06b2
JB
933$ 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). $
934$ L((100,100,0),(1,1)) = 1000 + 1000 - 1000 + (1000 + 1000 - 100) + (1000 + 1000 - 100). $
a11e6dde 935$ L((100,100,0),(1,1)) = 4800. $
e173772d 936
70b2e2fc 937\newpage
fc31b390 938\textbf{Trace d'éxécution de l'algorithme :}
6788a539
SP
939\newline
940\newfloat{algorithm}{t}
4b8b7ee7 941
700d9206
JB
942\begin{algorithmic}
943 \REQUIRE $(x_0,y_0,z_0) = (100, 100 ,0), g(x_0,y_0,z_0) \leq 0$
944 \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$
945 \STATE \textbf{Data :}
946 \STATE $k \leftarrow 0, (x_k, y_k, z_k) \leftarrow (100, 100, 0), r \leftarrow 100$
947 \STATE $r_1 = r_2 \leftarrow 10, \varepsilon \leftarrow 0.01$
948 \STATE $\lambda_1 = \lambda_2 \leftarrow 1$
949 \STATE $s_k \leftarrow \frac{1}{2}$
950 \STATE $ H[J](x,y,z)^{-1} \leftarrow
951 \begin{pmatrix}
952 0.5 & 0 & 0 \\
953 0 & 0.5 & 0 \\
954 0 & 0 & 0.5 \\
955 \end{pmatrix} $
956 \newline
957
958 \WHILE{$ (\norme{\nabla L(x_k,\lambda_k,\mu_k)} > \varepsilon $ or k $ \leq 10)$}
959
960 \STATE {//Première itération :}
961 \STATE {//Calcul du gradient de $ J $ :}
962 \STATE $ \nabla J(x_k,y_k,z_k) = (2x_k,2y_k,2z_k)$ \hfill $ //résultat : (200,200,0) $
963 \newline
964 % \STATE {//Calcul des deux composantes du gradient de $ g $:}
965 % \STATE $ \nabla g_1(x_k,y_k,z_k) = (2x_k,2y_k,0)$ \hfill $ //résultat : (200, 200, 0)$
966 % \STATE $ \nabla g_2(x_k,y_k,z_k) = (2x_k,0,2z_k)$ \hfill $ //résultat : (200, 0, 0)$
967 % \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))$
968 % \newline
969 \STATE {//Calcul du gradient de $ L $ :}
ff9b4c21 970 \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*100, 4*100, 0)$
700d9206
JB
971 \STATE $ \varepsilon_k = \norme{\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2))}$
972 % \STATE $ \nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2)) = (x_L , y_L, z_L) $
973 \newline
974 \STATE {//Calcul de la direction de la pente $ d_k $ (méthode de Newton) :}
975 \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))$
976 \newline
977 \STATE {//Calcul des nouvelles valeurs des coordonnées}
978 \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)$
979 \newline
980 \STATE {//Incrémentation de $ k $}
981 \STATE $ k \leftarrow k + 1 $ \hfill $ //résultat : k = 1$
982 \newline
983
984 \STATE {//Deuxième itération :}
985 \STATE {//Calcul du gradient de $ J $ :}
986 \STATE $ \nabla J(x_k,y_k,z_k) = (2x_k,2y_k,2z_k)$ \hfill $ //résultat : (100,100,0) $
987 \newline
988 \STATE {//Calcul 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_k,y_k,z_k) + \lambda_2 \nabla g_2(x_k,y_k,z_k)) $ \hfill $ //résultat : (6*50, 4*50, 0)$
990 \STATE $ \varepsilon_k = \norme{\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2))}$
991 \newline
992 \STATE {//Calcul de la direction de la pente $ d_k $ (méthode de Newton) :}
993 \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))$
994 \STATE {//Calcul des nouvelles valeurs des coordonnées}
995 \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)$
996 \newline
997 \STATE {//Incrémentation de $ k $ }
998 \STATE $ k \leftarrow k + 1 $ \hfill $ //résultat : k = 2$
999 \newline
1000
1001 \STATE {//Troisième itération :}
1002 \STATE {//Calcul du gradient de $ J $:}
1003 \STATE $ \nabla J(x_k,y_k,z_k) = (2x_k,2y_k,2z_k)$ \hfill $ //résultat : (50,50,0) $
1004 \newline
1005 \STATE {//Calcul du gradient de $ L $ :}
1006 \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)$
1007 \STATE $ \varepsilon_k = \norme{\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2))}$
1008 \newline
1009 \STATE {//Calcul de la direction de la pente $ d_k $ (méthode de Newton) :}
1010 \STATE $ d_k = -H[J](x,y,z)^{-1} * \nabla J(x_k,y_k,z_k) $ \hfill $ //résultat : (-(25,25,0))$
1011 \STATE {//Calcul des nouvelles valeurs des coordonnées}
1012 \newline
1013 \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)$
1014 \STATE {//Incrémentation de $ k $}
1015 \STATE $ k \leftarrow k + 1 $ \hfill $ //résultat : k = 3$
1016 \newline
1017
1018 \STATE {//Quatrième itération :}
1019 \STATE {//Calcul du gradient de $ J $ :}
1020 \STATE $ \nabla J(x_k,y_k,z_k) = (2x_k,2y_k,2z_k)$ \hfill $ //résultat : (25,25,0) $
1021 \newline
1022 \STATE {//Calcul du gradient de $ L $ :}
1023 \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)$
1024 \STATE $ \varepsilon_k = \norme{\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2))}$
1025 \newline
1026 \STATE {//Calcul de la direction de la pente $ d_k $ (méthode de Newton) :}
1027 \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))$
1028 \newline
1029 \STATE {//Calcul des nouvelles valeurs des coordonnées}
1030 \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)$
1031 \STATE {//Incrémentation de $ k $}
1032 \newline
1033 \STATE $ k \leftarrow k + 1 $ \hfill $ //résultat : k = 4$
1034 \newline
1035
1036 \STATE {//Cinquième itération :}
1037 \STATE {//Calcul du gradient de $ J $ :}
1038 \STATE $ \nabla J(x_k,y_k,z_k) = (2x_k,2y_k,2z_k)$ \hfill $ //résultat : (12.5,12.5,0) $
1039 \newline
1040 \STATE {//Calcul du gradient de $ L $ :}
1041 \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)$
1042 \STATE $ \varepsilon_k = \norme{\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2))}$
1043 \newline
1044 \STATE {//Calcul de la direction de la pente $ d_k $ (méthode de Newton) :}
1045 \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))$
1046 \newline
1047 \STATE {//Calcul des nouvelles valeurs des coordonnées}
1048 \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)$
1049 \newline
1050 \STATE {//Incrémentation de $ k $}
1051 \STATE $ k \leftarrow k + 1 $ \hfill $ //résultat : k = 5$
1052 \newline
1053
1054 \STATE {//Sixième itération :}
1055 \STATE {//Calcul du gradient de $ J $ :}
1056 \STATE $ \nabla J(x_k,y_k,z_k) = (2x_k,2y_k,2z_k)$ \hfill $ //résultat : (6.25,6.25,0) $
1057 \newline
1058 \STATE {//Calcul du gradient de $ L $ :}
1059 \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)$
1060 \STATE $ \varepsilon_k = \norme{\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2))}$
1061 \newline
1062 \STATE {//Calcul de la direction de la pente $ d_k $ (méthode de Newton) :}
ff9b4c21 1063 \STATE $ d_k = -H[J](x_k,y_k,z_k)^{-1} * \nabla J(x_k,y_k,z_k) $ \hfill $ //résultat : (-(3.125,3.125,0))$
700d9206
JB
1064 \STATE {//Calcul des nouvelles valeurs des coordonnées}
1065 \newline
1066 \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)$
1067 \STATE {//Incrémentation de $ k $}
1068 \newline
1069 \STATE $ k \leftarrow k + 1 $ \hfill $ //résultat : k = 6$
1070 \newline
1071
1072 \STATE {//Septième itération :}
1073 \STATE {//Calcul du gradient de $ J $ :}
1074 \STATE $ \nabla J(x_k,y_k,z_k) = (2x_k,2y_k,2z_k)$ \hfill $ //résultat : (3.125, 3.125, 0) $
1075 \newline
1076 \STATE {//Calcul du gradient de $ L $ : }
1077 \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)$
1078 \STATE $ \varepsilon_k = \norme{\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2))}$
1079 \newline
1080 \STATE {//Calcul de la direction de la pente $ d_k $ (méthode de Newton) :}
ff9b4c21 1081 \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))$
700d9206
JB
1082 \STATE {//Calcul des nouvelles valeurs des coordonnées}
1083 \newline
1084 \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)$
1085 \STATE {//Incrémentation de $ k $}
1086 \newline
1087 \STATE $ k \leftarrow k + 1 $ \hfill $ //résultat : k = 7$
1088 \newline
1089
1090 \STATE {//Huitième itération :}
1091 \STATE{//Calcul du gradient de $ J $ :}
1092 \STATE $ \nabla J(x_k,y_k,z_k) = (2x_k,2y_k,2z_k)$ \hfill $ //résultat : (1.5625, 1.5625, 0) $
1093 \newline
1094 \STATE {//Calcul du gradient de $ L $ : }
1095 \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)$
1096 \STATE $ \varepsilon_k = \norme{\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2))}$
1097 \newline
1098 \STATE {//Calcul de la direction de la pente $ d_k $ (méthode de Newton) :}
ff9b4c21 1099 \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))$
700d9206
JB
1100 \newline
1101 \STATE {//Calcul des nouvelles valeurs des coordonnées}
1102 \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)$
1103 \newline
1104 \STATE {//Incrémentation de $ k $}
1105 \STATE $ k \leftarrow k + 1 $ \hfill $ //résulat : k = 8$
1106 \newline
1107
1108 \STATE {//Neuvième itération :}
1109 \STATE {//Calcul du gradient de $ J $ :}
1110 \STATE $ \nabla J(x_k,y_k,z_k) = (2x_k,2y_k,2z_k)$ \hfill $ //résultat : (0.78125, 0.78125, 0) $
1111 \newline
1112 \STATE {//Calcul du gradient de $ L $ :}
1113 \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)$
1114 \STATE $ \varepsilon_k = \norme{\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2))}$
1115 \newline
1116 \STATE {//Calcul de la direction de la pente $ d_k $ (méthode de Newton) :}
ff9b4c21 1117 \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))$
700d9206
JB
1118 \newline
1119 \STATE {//Calcul des nouvelles valeurs des coordonnées}
1120 \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)$
1121 \newline
1122 \STATE {//Incrémentation de $ k $}
1123 \STATE $ k \leftarrow k + 1 \hfill //résultat : k = 9$
1124 \newline
1125
1126 \STATE {//Dixième itération :}
1127 \STATE {//Calcul du gradient de $ J $ :}
1128 \STATE $ \nabla J(x_k,y_k,z_k) = (2x_k,2y_k,2z_k)$ \hfill $ //résultat : (0.390625, 0.390625, 0) $
1129 \newline
1130 \STATE {//Calcul du gradient de $ L $ :}
1131 \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)$
1132 \STATE $ \varepsilon_k = \norme{\nabla L((x_k,y_k,z_k),(\lambda_1,\lambda_2))}$
1133 \newline
1134 \STATE {//Calcul de la direction de la pente $ d_k $ (méthode de Newton) :}
ff9b4c21 1135 \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))$
700d9206
JB
1136 \newline
1137 \STATE {//Calcul des nouvelles valeurs des coordonnées}
1138 \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)$
1139 \newline
1140 \STATE {//Incrémentation de $ k $}
1141 \STATE $ k \leftarrow k + 1 $ \hfill $ //résultat : k = 10$
1142 \newline
1143 \STATE {//Fin de la boucle "while" car nous avons atteint $ k = 10 $, condition mettant fin à la //boucle}
1144 \newline
1145
1146 \ENDWHILE
ff9b4c21 1147
700d9206 1148\end{algorithmic}
b8e1f3f6 1149
e37aec65
JB
1150\bibliographystyle{plain}
1151\bibliography{stdlib_sbphilo}
1152
1153%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1154
1155\end{document}