forked from dpo-mth8408/modeling-ipopt
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrapport.qmd
More file actions
86 lines (67 loc) · 2.58 KB
/
rapport.qmd
File metadata and controls
86 lines (67 loc) · 2.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
---
title: "Rapport de laboratoire 1: modélisation et résolution de problèmes avec IPOPT"
subtitle: "MTH8408"
author:
- name: Votre nom
email: votre.adresse@polymtl.ca
affiliation:
- name: Polytechnique Montréal
format:
pdf:
keep-tex: false
documentclass: scrartcl
geometry:
- margin=1in
papersize: letter
colorlinks: true
urlcolor: blue
engine: julia
---
```{julia}
#| output: false
using Pkg
Pkg.activate("rapport_env") # activate a virtual environment
```
# Modélisation d'un problème avec contraintes
Modéliser le problème
$$
\min_{x \in \mathbb{R}^2} \ (x_1 - 2)^2 + (x_2 - 1)^2 \quad \text{s.c.} \ x_1^2 - x_2 \leq 0, \ x_1 + x_2 \leq 2
$$
à l'aide de [`ADNLPModels.jl`](https://github.com/JuliaSmoothOptimizers/ADNLPModels.jl) et le résoudre avec IPOPT à l'aide de [`NLPModelsIpopt.jl`](https://github.com/JuliaSmoothOptimizers/NLPModelsIpopt.jl).
Vous pouvez fournir à IPOPT un point initial de votre choix.
Il ne requiert pas un point initial réalisable (c'est-à-dire qui satisfait les contraintes).
Nous avons vu en classe comment modéliser un problème sans contraintes.
Dirigez-vous vers https://jso.dev/ADNLPModels.jl/stable/ pour découvrir comment modéliser des contraintes.
Effectuez les opérations suivantes :
1. résolvez ce problème avec IPOPT et faites afficher la solution ;
```{julia}
# Insérez votre code ici
```
2. donnez le statut final d'IPOPT ;
```{julia}
# Insérez votre code ici
```
3. Validez manuellement que la solution vérifie les contraintes ;
```{julia}
# Insérez votre code ici
```
4. faites afficher les résidu d'optimalité calculés par IPOPT, contenues dans `stats.primal_feas` et `stats.dual_feas`, respectivement.
NB: `primal_feas` donne la satisfaction des contraintes et `dual_feas` est la norme du gradient du lagrangien du problème.
```{julia}
# Insérez votre code ici
```
# Modélisation d'un problème dégénéré
Modéliser le problème
$$
\min_{x \in \mathbb{R}} \ x \quad \text{s.c.} \ x^2 = 0
$$
à l'aide de [`ADNLPModels.jl`](https://github.com/JuliaSmoothOptimizers/ADNLPModels.jl) et le résoudre avec IPOPT à l'aide de [`NLPModelsIpopt.jl`](https://github.com/JuliaSmoothOptimizers/NLPModelsIpopt.jl).
Un solveur comme IPOPT ne requiert pas un point initial réalisable.
Utilisez le point initial $x = 1$.
```{julia}
# Insérez votre code ici
```
Commentez le statut final d'IPOPT, les résidus d'optimalité, ainsi que la solution finale identifiée.
Ajoutez vos propres commentaires concernant ce problème d'optimisation.
## Commentaires
<!-- Insérez vos commentaires ci-dessous. -->