maj documentation
This commit is contained in:
parent
bad7d52d64
commit
4163d5fded
14
docs/make.jl
14
docs/make.jl
|
@ -19,13 +19,13 @@ makedocs(
|
||||||
"Annexes" => "Annexes.md",
|
"Annexes" => "Annexes.md",
|
||||||
#"Exemples d'appels" =>"Exemples.md",
|
#"Exemples d'appels" =>"Exemples.md",
|
||||||
"Mise en place" => "mise_en_place.md",
|
"Mise en place" => "mise_en_place.md",
|
||||||
"Julia vs MatLab"=> "julia_vs_matlab.md",
|
#"Julia vs MatLab"=> "julia_vs_matlab.md",
|
||||||
"Création de Modules en Julia" => "create_package.md",
|
#"Création de Modules en Julia" => "create_package.md",
|
||||||
"Création d'un dépôt Git pour un module Julia" => "git_doc.md",
|
#"Création d'un dépôt Git pour un module Julia" => "git_doc.md",
|
||||||
"Géneration de la doc" => "generation_doc.md",
|
#"Géneration de la doc" => "generation_doc.md",
|
||||||
"Intégration continue et déploiement de la Doc avec Travis" =>"Integration_continue.md",
|
#"Intégration continue et déploiement de la Doc avec Travis" =>"Integration_continue.md",
|
||||||
"Précompilation des modules"=>"Precompilation.md",
|
#"Précompilation des modules"=>"Precompilation.md",
|
||||||
"Génération du rapport" => "generate_pdf.md",
|
#"Génération du rapport" => "generate_pdf.md",
|
||||||
"Foire aux Questions" =>"FAQ.md"
|
"Foire aux Questions" =>"FAQ.md"
|
||||||
|
|
||||||
]
|
]
|
||||||
|
|
|
@ -2,19 +2,19 @@
|
||||||
|
|
||||||
Les problèmes de minimisation sans contraintes à résoudre sont les suivants :
|
Les problèmes de minimisation sans contraintes à résoudre sont les suivants :
|
||||||
|
|
||||||
###### Problème 1
|
#### Problème 1
|
||||||
|
|
||||||
``\hspace*{1.5cm}`` ``\begin{aligned} f_{1}: \mathbb{R}^{3} & \rightarrow \mathbb{R} \\ \left(x_{1}, x_{2}, x_{3}\right) & \mapsto 2\left(x_{1}+x_{2}+x_{3}-3\right)^{2}+\left(x_{1}-x_{2}\right)^{2}+\left(x_{2}-x_{3}\right)^{2} \end{aligned}``
|
``\hspace*{1.5cm}`` ``\begin{aligned} f_{1}: \mathbb{R}^{3} & \rightarrow \mathbb{R} \\ \left(x_{1}, x_{2}, x_{3}\right) & \mapsto 2\left(x_{1}+x_{2}+x_{3}-3\right)^{2}+\left(x_{1}-x_{2}\right)^{2}+\left(x_{2}-x_{3}\right)^{2} \end{aligned}``
|
||||||
|
|
||||||
On cherchera à minimiser ``f_{1}`` sur ``R^{3}`` , en partant des points suivants: ``\\``
|
On cherchera à minimiser ``f_{1}`` sur ``\mathbb{R}^{3}`` , en partant des points suivants : ``\\``
|
||||||
|
|
||||||
``\hspace*{2cm}`` ``x_{011}=\left[\begin{array}{c} 1 \\ 0 \\ 0 \end{array}\right], \quad x_{012}=\left[\begin{array}{c} 10 \\ 3 \\ -2.2 \end{array}\right]``
|
``\hspace*{2cm}`` ``x_{011}=\left[\begin{array}{c} 1 \\ 0 \\ 0 \end{array}\right], \quad x_{012}=\left[\begin{array}{c} 10 \\ 3 \\ -2.2 \end{array}\right]``
|
||||||
|
|
||||||
###### Problème 2
|
#### Problème 2
|
||||||
|
|
||||||
``\hspace*{1.5cm}`` ``\begin{aligned} f_{2}: \mathbb{R}^{2} & \rightarrow \mathbb{R} \\ \left(x_{1}, x_{2}\right) & \mapsto 100\left(x_{2}-x_{1}^{2}\right)^{2}+\left(1-x_{1}\right)^{2} \end{aligned}``
|
``\hspace*{1.5cm}`` ``\begin{aligned} f_{2}: \mathbb{R}^{2} & \rightarrow \mathbb{R} \\ \left(x_{1}, x_{2}\right) & \mapsto 100\left(x_{2}-x_{1}^{2}\right)^{2}+\left(1-x_{1}\right)^{2} \end{aligned}``
|
||||||
|
|
||||||
On cherchera à minimiser ``f_{2}`` sur ``R^{2}`` , en partant des points suivants:``\\``
|
On cherchera à minimiser ``f_{2}`` sur ``\mathbb{R}^{2}`` , en partant des points suivants :``\\``
|
||||||
|
|
||||||
|
|
||||||
``x_{0 2 1}=\left[\begin{array}{c} -1.2 \\ 1 \end{array}\right]\\``
|
``x_{0 2 1}=\left[\begin{array}{c} -1.2 \\ 1 \end{array}\right]\\``
|
||||||
|
@ -29,15 +29,15 @@ On cherchera à minimiser ``f_{2}`` sur ``R^{2}`` , en partant des points suivan
|
||||||
|
|
||||||
On considère des fonctions quadratiques de la forme ``q(s)=s^{\top} g+\frac{1}{2} s^{\top} H s``
|
On considère des fonctions quadratiques de la forme ``q(s)=s^{\top} g+\frac{1}{2} s^{\top} H s``
|
||||||
|
|
||||||
###### Quadratique 1
|
#### Quadratique 1
|
||||||
|
|
||||||
``g=\left[\begin{array}{l} 0 \\ 0 \end{array}\right]``,``H=\left[\begin{array}{ll} 7 & 0 \\ 0 & 2 \end{array}\right]\\``
|
``g=\left[\begin{array}{l} 0 \\ 0 \end{array}\right]``,``H=\left[\begin{array}{ll} 7 & 0 \\ 0 & 2 \end{array}\right]\\``
|
||||||
|
|
||||||
###### Quadratique 2
|
#### Quadratique 2
|
||||||
``g=\left[\begin{array}{l} 6 \\ 2 \end{array}\right]``,``H=\left[\begin{array}{ll} 7 & 0 \\ 0 & 2 \end{array}\right]\\``
|
``g=\left[\begin{array}{l} 6 \\ 2 \end{array}\right]``,``H=\left[\begin{array}{ll} 7 & 0 \\ 0 & 2 \end{array}\right]\\``
|
||||||
|
|
||||||
|
|
||||||
###### Quadratique 3
|
#### Quadratique 3
|
||||||
|
|
||||||
``g=\left[\begin{array}{l} -2 \\ 1 \end{array}\right]``,``H=\left[\begin{array}{ll} -2 & 0 \\ 0 & 10 \end{array}\right]\\``
|
``g=\left[\begin{array}{l} -2 \\ 1 \end{array}\right]``,``H=\left[\begin{array}{ll} -2 & 0 \\ 0 & 10 \end{array}\right]\\``
|
||||||
|
|
||||||
|
@ -45,15 +45,15 @@ On considère des fonctions quadratiques de la forme ``q(s)=s^{\top} g+\frac{1}{
|
||||||
|
|
||||||
On reprendra les 3 quadratiques testées avec le pas de Cauchy, auxquelles on ajoutera :
|
On reprendra les 3 quadratiques testées avec le pas de Cauchy, auxquelles on ajoutera :
|
||||||
|
|
||||||
###### Quadratique 4
|
#### Quadratique 4
|
||||||
|
|
||||||
``g=\left[\begin{array}{l} 0 \\ 0 \end{array}\right]``, ``H=\left[\begin{array}{ll} -2 & 0 \\ 0 & 10 \end{array}\right]\\``
|
``g=\left[\begin{array}{l} 0 \\ 0 \end{array}\right]``, ``H=\left[\begin{array}{ll} -2 & 0 \\ 0 & 10 \end{array}\right]\\``
|
||||||
|
|
||||||
###### Quadratique 5
|
#### Quadratique 5
|
||||||
|
|
||||||
``g=\left[\begin{array}{l} 2 \\ 3 \end{array}\right]``,``H=\left[\begin{array}{ll} 4 & 6 \\ 6 & 5 \end{array}\right]\\``
|
``g=\left[\begin{array}{l} 2 \\ 3 \end{array}\right]``,``H=\left[\begin{array}{ll} 4 & 6 \\ 6 & 5 \end{array}\right]\\``
|
||||||
|
|
||||||
###### Quadratique 6
|
#### Quadratique 6
|
||||||
|
|
||||||
``g=\left[\begin{array}{l} 2 \\ 0 \end{array}\right]``, ``H=\left[\begin{array}{ll} 4 & 0 \\ 0 & -15 \end{array}\right]\\``
|
``g=\left[\begin{array}{l} 2 \\ 0 \end{array}\right]``, ``H=\left[\begin{array}{ll} 4 & 0 \\ 0 & -15 \end{array}\right]\\``
|
||||||
|
|
||||||
|
@ -62,10 +62,10 @@ On reprendra les 3 quadratiques testées avec le pas de Cauchy, auxquelles on aj
|
||||||
|
|
||||||
## D. Problèmes avec contraintes
|
## D. Problèmes avec contraintes
|
||||||
|
|
||||||
#### Retour sur f1
|
### Retour sur ``f_1``
|
||||||
On s'intéresse à la valeur minimale de f1 sur un ensemble défini par une contrainte linéaire. La formulation du problème sera alors
|
On s'intéresse à la valeur minimale de ``f_1`` sur un ensemble défini par une contrainte linéaire. La formulation du problème sera alors
|
||||||
|
|
||||||
``\min _{x \in \mathbb{R}^{3}} f_{1}(x) \text { s.t. } x_{1}+x_{3}=1``
|
``\min _{x_{1}+x_{3}=1; x \in \mathbb{R}^{3}} f_{1}(x)``
|
||||||
|
|
||||||
On choisira comme point initial
|
On choisira comme point initial
|
||||||
|
|
||||||
|
@ -75,10 +75,10 @@ ou
|
||||||
|
|
||||||
``x_{c 12}=\left[\begin{array}{l} 0.5 \\ 1.25 \\ 1 \end{array}\right]`` (non réalisable) .
|
``x_{c 12}=\left[\begin{array}{l} 0.5 \\ 1.25 \\ 1 \end{array}\right]`` (non réalisable) .
|
||||||
|
|
||||||
#### Retour sur f2
|
#### Retour sur ``f_2``
|
||||||
On cherche à minimiser la fonction f2 décrite dans la partie précédente, en se restreignant maintenant à une sphère. Le problème s'écrit :
|
On cherche à minimiser la fonction ``f_2`` décrite dans la partie précédente, en se restreignant maintenant à une sphère. Le problème s'écrit :
|
||||||
|
|
||||||
``\min _{x \in \mathbb{R}^{2}} f_{2}(x) \quad \text { s.t. } \quad x_{1}^{2}+x_{2}^{2}=1.5``
|
``\min _{x_{1}^{2}+x_{2}^{2}=1.5; x \in \mathbb{R}^{2}} f_{2}(x)``
|
||||||
|
|
||||||
On choisira comme point initial
|
On choisira comme point initial
|
||||||
|
|
||||||
|
@ -88,8 +88,8 @@ ou
|
||||||
|
|
||||||
``x_{c 22}=\left[\begin{array}{c} \sqrt{3} / 2 \\ \sqrt{3} / 2 \end{array}\right]`` (réalisable).
|
``x_{c 22}=\left[\begin{array}{c} \sqrt{3} / 2 \\ \sqrt{3} / 2 \end{array}\right]`` (réalisable).
|
||||||
|
|
||||||
#### Un problème avec contraintes d'inégalité (supplément)
|
### Un problème avec contraintes d'inégalité (supplément)
|
||||||
|
|
||||||
``\left\{\begin{array}{lll} \min _{(x, y) \in \mathbb{R}^{2}} f_{3}(x, y) & = & (x-1)^{2}+(y-2.5)^{2} \\ x-2 y+2 & \geq & 0 \\ -x-2 y+6 & \geq & 0 \\ -x+2 y+2 & \geq & 0 \\ x & \geq & 0 \\ y & \geq & 0 \end{array}\right.``
|
``\left\{\begin{array}{lll} \min _{(x, y) \in \mathbb{R}^{2}} f_{3}(x, y) & = & (x-1)^{2}+(y-2.5)^{2} \\ x-2 y+2 & \geq & 0 \\ -x-2 y+6 & \geq & 0 \\ -x+2 y+2 & \geq & 0 \\ x & \geq & 0 \\ y & \geq & 0 \end{array}\right.``
|
||||||
|
|
||||||
L'origine porra être prise comme point initial.
|
L'origine pourra être prise comme point initial.
|
||||||
|
|
|
@ -1,23 +1,23 @@
|
||||||
# Principe
|
# Principe
|
||||||
|
|
||||||
La méthode du lagrangien augmenté appartient à une classe d'algorithme qui
|
La méthode du lagrangien augmenté appartient à une classe d'algorithme qui
|
||||||
permettent la résolution des problèmes avec contraintes.Elle s'apparente aux méthodes de
|
permettent la résolution des problèmes avec contraintes. Elle s'apparente aux méthodes de
|
||||||
pénalisation, dans lesquelles on résout le problème avec contraintes à travers une suite de
|
pénalisation, dans lesquelles on résout le problème avec contraintes à travers une suite de
|
||||||
problèmes sans contraintes.
|
problèmes sans contraintes.
|
||||||
|
|
||||||
# Algorithme du Lagrangien augmenté pour contraintes d'égalité
|
# Algorithme du Lagrangien augmenté pour contraintes d'égalité
|
||||||
|
|
||||||
On s'intéresse ici au cas où l'ensemble C est défini par un ensemble des contraintes d'égalités.
|
On s'intéresse ici au cas où l'ensemble ``C`` est défini par un ensemble des contraintes d'égalités.
|
||||||
Le problème se met ainsi sous la forme :
|
Le problème se met ainsi sous la forme :
|
||||||
|
|
||||||
``\min _{x \in \mathbb{R}^{n}} f(x)`` ; ``c(x)=0``
|
``\min _{c(x) = 0; x \in \mathbb{R}^{n}} f(x)``
|
||||||
|
|
||||||
où ``c : \mathbb{R}^{n} \rightarrow \mathbb{R}^{m}``.
|
où ``c : \mathbb{R}^{n} \rightarrow \mathbb{R}^{m}``.
|
||||||
L'algorithme suivant est obtenu de Bierlaire, *Introduction à l'optimisation différentiable*.
|
L'algorithme suivant est obtenu de Bierlaire, *Introduction à l'optimisation différentiable*.
|
||||||
|
|
||||||
|
|
||||||
### Données :
|
### Données :
|
||||||
``\mu_{0} > 0, \tau > 0, \hat{\eta}_{0}=0.1258925 , \alpha=0.1, \beta=0.9, \epsilon_{0}=1 , \mu_{0}, \eta_{0}=\hat{\eta}_{0} / \mu_{0}^{\alpha}`` , et un point de départ du Lagrangien ``(x_{0},\lambda_{0})``. On pose ``k = 0``
|
``\mu_{0} > 0, \tau > 0, \hat{\eta}_{0}=0.1258925[^1] , \alpha=0.1, \beta=0.9, \epsilon_{0}=1 , \mu_{0}, \eta_{0}=\hat{\eta}_{0} / \mu_{0}^{\alpha}`` , et un point de départ du Lagrangien ``(x_{0},\lambda_{0})``. On pose ``k = 0``
|
||||||
|
|
||||||
### Sorties :
|
### Sorties :
|
||||||
une approximation de la solution du problème avec contraintes.
|
une approximation de la solution du problème avec contraintes.
|
||||||
|
@ -25,9 +25,9 @@ une approximation de la solution du problème avec contraintes.
|
||||||
### 1. Tant qu'il n'y a pas convergence, répéter
|
### 1. Tant qu'il n'y a pas convergence, répéter
|
||||||
a. Calculer approximation un minimiseur ``x_{k+1}`` du problème sans contraintes suivant :
|
a. Calculer approximation un minimiseur ``x_{k+1}`` du problème sans contraintes suivant :
|
||||||
|
|
||||||
``\min _{x \in \mathbb{R}^{n}} L_{A}\left(x, \lambda_{k}, \mu_{k}\right)=f(x)+\lambda_{k}^{T} c(x)+\frac{\mu_{k}}{2}\|c(x)\|^{2}``
|
``\min _{x \in \mathbb{R}^{n}} L_{A}\left(x, \lambda_{k}, \mu_{k}\right)=f(x)+\lambda_{k}^{T} c(x)+\frac{\mu_{k}}{2}\|c(x)\|^{2},``
|
||||||
|
|
||||||
avec ``x_{k}`` comme point de départ ,en terminant lorsque ``\| \nabla_{x} L_{A}\left(x, \lambda_{k}, \mu_{k}\right) \| \leq \epsilon_{k}``.
|
avec ``x_{k}`` comme point de départ, en terminant lorsque ``\| \nabla_{x} L_{A}\left(x, \lambda_{k}, \mu_{k}\right) \| \leq \epsilon_{k}``.
|
||||||
Si convergence de l'algorithme global, s'arrêter , sinon aller en b
|
Si convergence de l'algorithme global, s'arrêter , sinon aller en b
|
||||||
|
|
||||||
b. Si ``\|c(x_{k+1})\| \leq \eta_{k}``, mettre à jour (entre autres) les multiplicateurs :
|
b. Si ``\|c(x_{k+1})\| \leq \eta_{k}``, mettre à jour (entre autres) les multiplicateurs :
|
||||||
|
@ -39,3 +39,5 @@ Si convergence de l'algorithme global, s'arrêter , sinon aller en b
|
||||||
``\left\{\begin{array}{l}\lambda_{k+1} =\lambda_{k} \\\mu_{k+1} =\tau \mu_{k} \\\epsilon_{k+1} =\epsilon_{0} / \mu_{k+1} \\\eta_{k+1} =\hat{\eta}_{0} / \mu_{k+1}^{\alpha} \\k=k+1\end{array}\right.``
|
``\left\{\begin{array}{l}\lambda_{k+1} =\lambda_{k} \\\mu_{k+1} =\tau \mu_{k} \\\epsilon_{k+1} =\epsilon_{0} / \mu_{k+1} \\\eta_{k+1} =\hat{\eta}_{0} / \mu_{k+1}^{\alpha} \\k=k+1\end{array}\right.``
|
||||||
|
|
||||||
### 2. Retourner ``x_{k},\lambda_{k},\mu_{k}`` .
|
### 2. Retourner ``x_{k},\lambda_{k},\mu_{k}`` .
|
||||||
|
|
||||||
|
[^1] : Pour que ``\eta_0=0.1``.
|
|
@ -90,7 +90,7 @@ On s’intéresse maintenant à la résolution approchée du problème (2.1) à
|
||||||
|
|
||||||
###### Sorties:
|
###### Sorties:
|
||||||
|
|
||||||
le pas s qui approche la solution du problème : ``\min_{\|s \| \leq \Delta_{k}} q(s)``
|
le pas ``s`` qui approche la solution du problème : ``\min_{\|s \| \leq \Delta_{k}} q(s)``
|
||||||
|
|
||||||
où ``q(s)=g^{\top} s+\frac{1}{2} s^{\top} H_{k} s``
|
où ``q(s)=g^{\top} s+\frac{1}{2} s^{\top} H_{k} s``
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,13 @@
|
||||||
# Optinum - Méthodes numériques pour les problèmes d’optimisation
|
# Optinum - Méthodes numériques pour les problèmes d’optimisation
|
||||||
|
|
||||||
Le package [Optinum](https://github.com/mathn7/Optinum) concerne le projet d’Optimisation Numérique pour l’année 2020-2021 de l'École INP-ENSEEIHT. Pour récupérer le répertoire Optinum et toute la structuration il vous faut cloner ce dépot GitHub. Pour cela, ouvrer une fenêtre de commande et clone ce dépot (il faut que git soit installé sur votre machine) :
|
Le package [Optinum](https://github.com/mathn7/Optinum) concerne le projet d’Optimisation Numérique pour l’année 2020-2021 de l'École INP-ENSEEIHT. Pour récupérer le répertoire Optinum et toute la structuration il vous faut cloner ce dépot GitHub. Pour cela, ouvrer une fenêtre de commande et cloner ce dépot (il faut que git soit installé sur votre machine) :
|
||||||
|
|
||||||
`git clone https://github.com/mathn7/Optinum.git`
|
`git clone https://github.com/mathn7/Optinum.git`
|
||||||
|
|
||||||
**Il ne faut en aucun cas modifier la structuration** de ce projet, ni les interfaces des fonctions.
|
**Il ne faut en aucun cas modifier la structuration** de ce projet, ni les interfaces des fonctions.
|
||||||
|
|
||||||
|
Les fichiers `julia` que vous aurez à modifier se trouvent dans le répertoire `Optinum/src`.
|
||||||
|
|
||||||
|
Dans ce même répertoire se trouve notebook (`TP-Projet-Optinum.ipynb` que vous aurez aussi à modifier pour faire les expérimentations numériques et répondre aux questions posées.
|
||||||
|
|
||||||
###### Auteurs : O.Cots, J. Gergaud, S. Gratton, P. Matalon, C. Royer, D. Ruiz et E. Simon
|
###### Auteurs : O.Cots, J. Gergaud, S. Gratton, P. Matalon, C. Royer, D. Ruiz et E. Simon
|
||||||
|
|
Loading…
Reference in a new issue