Cours
Cours
K. Oufaska
A.U., 2025/2026
80x1 + 60x2
10x1 + 6x2 ≤ 45
4x1 + 6x2 ≤ 36
2x1 + 6x2 ≤ 27
Il faut également que le nombre de bouquets préparés soint non nul, ainsi :
x1 , x2 ≥ 0
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 9 / 190
Modélisation mathématique
Problème de fleuriste
P1 P2
M1 30 min 20 min
M2 40 min 10 min
Variables de décision :
x1 : le nombre d’unités produit de P1
x2 : le nombre d’unités produit de P2
Modèle mathématique :
Max z = 400x1 + 200x2
Sous contraintes :
30x1 + 20x2 ≤ 6000
40x + 10x ≤ 4000
1 2
Exercice
Proposer une modélisation du problème d’affectation
Ou
Max f (x)
Sujet à
(P ′ )
fi (x) ≤ 0, i ∈ {1, ..., m}
x ∈ C
Remarque
Nous pouvons considérer seulement les problèmes de type (P) ; en
effet,
Max f (x) = − Min(−f (x))
Dans le problème (P), il n’y a pas de contraintes d’égalités, car une
contrainte de type h(x) = 0 peut être remplacée par deux contraintes
h(x) <= 0 et –h(x) <= 0
Définition
On dit que x ∗ est un minimum local de (P) s’il existe un voisinage Vx de
x ∗ tel que x ∗ soit minimum du problème (P1 ) suivant :
Min f (x)
Sujet à
(P1 )
fi (x) ≤ 0, i ∈ {1, ..., m}
x ∈ C ∩ V
x
Définition
Soient A = (aij )1≤i,j≤n et B = (bij )1≤i,j≤n deux matrices carrées, alors :
A + B = (aij + bij )1≤i,j≤n
n
X
AB = (cij )1≤i,j≤n avec cij = aik bkj
k=1
Définition
La matrice A est dite symétrique si aij = aji , ∀1 ≤ i, j ≤ n
La matrice A est dite antisymétrique si aij = −aji , ∀1 ≤ i, j ≤ n
La matrice A est dite diagonale si aii = λi , ∀ 1 ≤ i ≤ n et
aij = 0, ∀i ̸= j
Définition
La matrice A est dite triangulaire supérieure si aij = 0, ∀ i > j
La matrice A est dite triangulaire inférieure si aij = 0, ∀ i < j
Si le déterminant d’une matrice est différent de 0, on dit que la
matrice est régulière ou inversible
Le rang d’une matrice est l’ordre de la plus grande matrice extraite
de A dont le déterminant est non nul
Soit A une matrice de rang m. On appelle base de A toute sous
matrice carrée régulière d’ordre m extraite de A.
Définition
Solution réalisable : Solution qui satisfait toutes les contraintes du
problème.
Définition
Domaine réalisable : Ensembles de tous les jeux de valeurs des variables
de décision satisfaisant toutes les contraintes et restriction de signe du
programme linéaire (PL).
Définition
Solution optimale : Solution réalisable qui optimise (maximise ou
minimise) la fonction économique.
Définition
Un problème de programmation linéaire peut être écrit sous la forme
suivante (forme matricielle) :
Min c t x
Sujet à
(PL)
Ax = b
x ≥ 0
Définition
Il peut s’écrire également sous la forme suivante, dite forme standard :
Min c1 x1 + c2 x2 + ... + cn xn
Sujet à
a11 x1 + a12 x2 + ... + a1n xn = b1
(PL) a21 x1 + a22 x2 + ... + a2n xn = b2
...
am1 x1 + am2 x2 + ... + amn xn = bm
xi ≥ 0, ∀i ∈ {1, ..., n}
Définition
Un problème avec des contraintes d’inégalités de la forme suivante :
Min c1 x1 + c2 x2 + ... + cn xn
Sujet à
a11 x1 + a12 x2 + ... + a1n xn ≤ b1
(PL) a21 x1 + a22 x2 + ... + a2n xn ≤ b2
...
am1 x1 + am2 x2 + ... + amn xn ≤ bm
xi ≥ 0, ∀i ∈ {1, ..., n}
Définition
Avec les variables d’écarts :
Min c1 x1 + c2 x2 + ... + cn xn
Sujet à
a11 x1 + a12 x2 + ... + a1n xn + y1 = b1
(PL) a21 x1 + a22 x2 + ... + a2n xn + y2 = b2
...
am1 x1 + am2 x2 + ... + amn xn + yn = bm
xi , yi ≥ 0, ∀i ∈ {1, ..., n}
Définition
Un problème avec des contraintes d’inégalités de la forme suivante :
Min c1 x1 + c2 x2 + ... + cn xn
Sujet à
a11 x1 + a12 x2 + ... + a1n xn ≥ b1
(PL) a21 x1 + a22 x2 + ... + a2n xn ≥ b2
...
am1 x1 + am2 x2 + ... + amn xn ≥ bm
xi ≥ 0, ∀i ∈ {1, ..., n}
Définition
Avec les variables de surplus :
Min c1 x1 + c2 x2 + ... + cn xn
Sujet à
a11 x1 + a12 x2 + ... + a1n xn − y1 = b1
(PL) a21 x1 + a22 x2 + ... + a2n xn − y2 = b2
...
am1 x1 + am2 x2 + ... + amn xn − yn = bm
xi , yi ≥ 0, ∀i ∈ {1, ..., n}
Remarque
Sans perte de généralité, nous pouvons supposer que x1 , x2 , ..., xn sont
positifs. En effet, s’il existe j tel que xj < 0, on pose xj = xj+ − xj− , avec
xj+ = max(xj , 0) et xj− = max(−xj , 0)
Exercice
Ecrire sous forme standard le programme linéaire suivant :
Min z = 5x1 − 3x2
Sujet à
x − x ≥ 2
1 2
(P)
2x 1 + 3x2 ≤ 4
−x1 + 6x2 = 10
x , x ≥ 0
1 2
Exercice
Ecrire sous forme standard le programme linéaire suivant :
Min z = x1 + 2x2 + x3
Sujet à
x1 − x2 + x3 = 1
(P) x1 + x2 − x3 ≤ 2
x1 + x2 + x3 ≥ 3
x1 , x2 ≥ 0
x3 ∈ R
Exemple
Soit à résoudre graphiquement le programme :
Min − 10x1 − 20x2
s.c :
x + 3x ≤ 12
1 2
(P)
x1 + x2 ≤ 6
8x1 + 5x2 ≤ 39
x , x ≥ 0
1 2
Exercice
Résoudre graphiquement le programme linéaire suivant :
Min x1 + x2
s.c :
2x + x ≥ 12
1 2
5x1 + 8x2 ≥ 74
x1 + 6x2 ≥ 24
x , x ≥ 0
1 2
Exercice
Résoudre graphiquement le programme linéaire suivant :
Min 2x1 + x2
s.c :
x − x ≤ 6
1 2
2x1 + x2 ≤ 24
x2 ≤ 20
x , x ≥ 0
1 2
Exercice
Appliquer le pivot de Gauss sur la matrice suivante :
2 1 3 4
3 −1 0 6
1 0 −1 4
4 1 −1 3
Exercice
Appliquer le pivot de Gauss sur la matrice suivante :
6 0 −3 1
2 3 4 16
8 5 −1 0
1 3 −1 −3
La solution de base (x, y , u, v , h) = (0, 0, 45, 36, 27) n’est pas optimale
puisque les coefficients dans la fonction objectif des variables hors-base x
et y sont négatifs.Puisque nous cherchons à minimiser z = −80x − 60y
alors c’est la variable x qui influence plus la diminution de z.
L’augmentation de x est limitée par la contrainte de positivité. En effet,
45
u = 45 − 10x ≥ 0 ⇐⇒ x ≤ 10
v = 36 − 4x ≥ 0 ⇐⇒ x ≤ 36 4
27
h = 27 − 2x ≥ 0 ⇐⇒ x ≤ 2
Exercice
Appliquer la méthode de Simplexe tabulaire pour résoudre le programme
linéaire suivant :
Min z = −x1 − 2x2
S.c :
−3x + 2x ≤ 2
1 2
(P)
−x1 + 2x2 ≤ 4
x1 + x2 ≤ 5
x , x ≥ 0
1 2
Exercice
Appliquer la méthode de Simplexe tabulaire pour résoudre le programme
linéaire suivant :
Min z = −x1 − 2x2
S.c :
−3x + 2x ≤ 2
1 2
(P)
−x1 + 2x2 ≤ 4
x1 + x2 ≤ 5
x , x ≥ 0
1 2
Remarque
Pour résoudre un problème de maximisation il faut le transformer en
problème de minimisation ou bien adapter le critère d’optimalité. Ainsi,
dans ce cas, il faut que les coûts marginaux de toutes les variables
hors-base soient négatifs ou nuls
Exercice
Résoudre le programme suivant par la méthode tabulaire de Simplexe
Max z = x1 + 2x2
sujet à
−3x + 2x + x = 2
1 2 3
−x1 + 2x2 + x4 = 4
x1 + x2 + x5 = 5
x , x , x , x , x ≥ 0
1 2 3 4 5
Exercice
Résoudre le programme suivant par la méthode tabulaire de Simplexe
Max z = x1 + 2x2
sujet à
−3x + 2x + x = 2
1 2 3
−x1 + 2x2 + x4 = 4
x1 + x2 + x5 = 5
x , x , x , x , x ≥ 0
1 2 3 4 5
Théorème
Considérons le polytope X = {x ∈ Rn : Ax = b, x ≥ 0} où A est de rang
m. Alors, x ∈ X est un point extrême de X si et seulement si x est une
solution de base de X .
Remarque
L’augmentation de la valeur d’une variable hors-base et l’ajustement des
valeurs des variables de base pour effectuer un changement de base
correspond géométriquement à se déplacer sur une arête du polytope X .
Aurement dit, cela consiste à se déplacer d’un point extrême à un autre
point extrême adjacent.
Nous obtenons une solution optimale dont les variables de bases sont
x, v , h. Mais le coût marginal de y est nul. Faisons entrer cette variable y
Nous obtenons donc une autre solution de base optimale dont les variables
de base sont x, v , y
V. B x1 x2 x3 x4 x5 x6 -z b
x4 1 -1 0 1 0 0 0 2
x5 2 0 1 0 1 0 0 4
x6 1 1 1 0 0 1 0 3
-z -4 0 -3 0 0 0 1 0
V. B x1 x2 x3 x4 x5 x6 -z b
x1 1 -1 0 1 0 0 0 2
x5 0 2 1 -2 1 0 0 0
x6 0 2 1 -1 0 1 0 1
-z 0 -4 -1 0 2 0 1 4
Cette nouvelle solution n’est pas optimale. Cette solution est dite
dégénérée puisque l’une des variables de base est nulle (x5 = 0). En
appliquant la méthode de plus rapport, nous constatons que la variable x5
quitte la base et nous obtenons le tableau suivant :
V. B x1 x2 x3 x4 x5 x6 -z b
x1 1 0 1/2 0 1/2 0 0 2
x2 0 1 1/2 -1 1/2 0 0 0
x6 0 0 0 1 -1 1 0 1
-z 0 0 -3 4 0 0 1 4
V. B x1 x2 x3 x4 x5 x6 -z b
x1 1 -1 0 1 0 0 0 2
x3 0 2 1 -2 1 0 0 0
x6 0 0 0 1 -1 1 0 1
-z 0 6 0 -2 3 0 1 4
V. B x1 x2 x3 x4 x5 x6 -z b
x1 1 -1 0 0 1 -1 0 1
x3 0 2 1 0 -1 2 0 2
x4 0 0 0 1 -1 1 0 1
-z 0 6 0 0 1 2 1 6
Remarque
Dans certains cas de problèmes dégénérés, nous pouvons avoir un
phénomène de cyclage où nous retrouvons une même solution de base
après un certain nombre d’itérations sans aucune amélioration de la valeur
de la fonction objectif.
Remarque
Dans le cas où on a plusieurs variables candidates à enter en base nous
pouvons utiliser la règle de Bland qui consiste à choisir systématiquement
comme variable entrante, parmi les variables candidates, celle ayant le plus
petit indice et comme variable sortante celle ayant le plus petit indice.
Dans tous les exemples que nous avons étudié, une solution de base
réalisable initiale est facile à identifier puisque la forme standard est aussi
une forme canonique. Ceci n’est pas toujours le cas. Soit l’exemple
suivant :
Min z = −80x − 60y
sujet à
10x + 6y = 45
4x + 6y ≤ 36
2x + 6y ≤ 27
x ≥2
x, y ≥ 0
Soit le PL :
Min z = c1 x1 + c2 x2 + ... + cn xn
sujet à
a x + a x + ... + a x = b
11 1 12 2 1n n 1
(P)
a21 x1 + a22 x2 + ... + a2n xn = b2
am1 x1 + am2 x2 + ... + amn xn = bm
x , x , ..., x ≥ 0
1 2 n
Min z = c1 x1 + c2 x2 + ... + cn xn
sujet à
a11 x1 + a12 x2 + ... + a1n xn = t1 = b1
a21 x1 + a22 x2 + ... + a2n xn + t2 = b2
(P+) .
.
.
am1 x1 + am2 x2 + ... + amn xn + tm = bm
x1 , x2 , ..., xn , t1 , t2 , ..., tm ≥ 0
t1 + t2 + ... + tm = 0
Ce qui nous obligera à ajouter une autre variable artificielle. L’idée consiste
à ne pas introduire une nouvelle contrainte dans le modèle (P+), mais de
considérer un nouveau modèle ayant les mêmes contraintes que (P+) et
qui pénalise le fait que t1 , t2 , ..., tm prennent des valeurs strictement
positives. Donc au lieu de résoudre (P+) on peut résoudre le programme
suivant :
Min w = t1 + t2 + ... + tm
sujet à
a11 x1 + a12 x2 + ... + a1n xn = t1 = b1
a21 x1 + a22 x2 + ... + a2n xn + t2 = b2
(Pa ) .
.
.
am1 x1 + am2 x2 + ... + amn xn + tm = bm
x1 , x2 , ..., xn , t1 , t2 , ..., tm ≥ 0
Exemple
Soit le programme linéaire
Min z = −80x − 60y
sujet à
10x + 6y = 45
(P1 ) 4x + 6y ≤ 36
2x + 6y ≤ 27
x ≥ 2
x, y ≥ 0
V.B x y e1 e2 e3 t1 t2 T.D
t1 10 6 0 0 0 1 0 45
e1 4 6 1 0 0 0 0 36
e2 2 6 0 1 0 0 0 27
t2 1 0 0 0 -1 0 1 2
−za 0 0 0 0 0 1 1 0
V.B x y e1 e2 e3 t1 t2 T.D
t1 10 6 0 0 0 1 0 45
e1 4 6 1 0 0 0 0 36
e2 2 6 0 1 0 0 0 27
t2 1 0 0 0 -1 0 1 2
−za − za0 -11 -6 0 0 1 0 0 -47
V.B x y e1 e2 e3 t1 t2 T.D
t1 0 6 0 0 10 1 -10 25
e1 0 6 1 0 4 0 -4 28
e2 0 6 0 1 2 0 -2 23
x 1 0 0 0 -1 0 1 2
−za − za0 0 -6 0 0 -10 0 11 -25
V.B x y e1 e2 e3 t1 t2 T.D
e3 0 3/5 0 0 1 1/10 -1 5/2
e1 0 18/5 1 0 0 -2/5 0 18
e2 0 24/5 0 1 0 -1/5 0 18
x 1 3/5 0 0 0 1/10 0 9/2
−za − za0 0 0 0 0 0 1 1 0
La solution (9/2, 0, 18, 18, 5/2, 0, 0) est une solution de base optimale de
(Pa ) avec une valeur optimale égale à 0. Donc (9/2, 0, 18, 18, 5/2)
constitue une solution de base initiale du problème (P1 ). Ceci termine la
phase 1 et va nous permettre de construire un tableau initial du Simplexe
de (P1 ) pour démarrer la phase 2.
Phase 2 :
Pour commencer la phase 2, il suffit de supprimer les colonnes associées
aux variables artificielles et remplacer les coefficients de la fonction objectif
za par ceux de la fonction objectif z.
V.B x y e1 e2 e3 T.D
e3 0 3/5 0 0 1 5/2
e1 0 18/5 1 0 0 18
e2 0 24/5 0 1 0 18
x 1 3/5 0 0 0 9/2
−z -80 -60 0 0 0 0
x étant une variable de base, nous devons donc remplacer -80 par 0. Nous
multiplions la quatirème par -80 et nous l’ajoutons à la dernière ligne.
V.B x y e1 e2 e3 T.D
e3 0 3/5 0 0 1 5/2
e1 0 18/5 1 0 0 18
e2 0 24/5 0 1 0 18
x 1 3/5 0 0 0 9/2
−z 0 -12 0 0 0 360
V.B x y e1 e2 e3 T.D
e3 0 0 0 -3/5 1 1/4
e1 0 0 1 -18/5 0 9/2
y 0 1 0 5/24 0 15/4
x 1 0 0 -1/8 0 9/4
−z 0 0 0 5/4 0 405
Méthode de grand M
Contrairement à la méthode des variables artificielles, la méthode du grand
M utilise à la fois les variables initiales du problème et les variables
artificielles. On pénalise les variables artificielles en leur affectant un
coefficient de valeur très élevée dans la fonction objectif (+M pour un
problème de minimisation, −M pour un problème de maximisation). Les
pénalités ont pour objet de forcer, au fil des itérations, les variables
artificielles à quitter la base. A l’optimum (s’il existe) les variables
artificielles sont hors base. Si à l’optimum, certaines variables artificielles
sont dans la base, avec une valeur non nulle, alors le programme n’a pas
de solution réalisable.
V.B x y e1 e2 e3 t1 t2 T. droite
t1 10 6 0 0 0 1 0 45
e1 4 6 1 0 0 0 0 36
e2 2 6 0 1 0 0 0 27
t2 1 0 0 0 -1 0 1 2
−zm -80 -60 0 0 0 M M 0
V.B x y e1 e2 e3 t1 t2 T. droite
t1 10 6 0 0 0 1 0 45
e1 4 6 1 0 0 0 0 36
e2 2 6 0 1 0 0 0 27
t2 1 0 0 0 -1 0 1 2
0
−zm − zm -80-11M -60-6M 0 0 M 0 0 -47M
V.B x y e1 e2 e3 t1 t2 T. droite
t1 0 6 0 0 10 1 -10 25
e1 0 6 1 0 4 0 -4 28
e2 0 6 0 1 2 0 -2 23
x 1 0 0 0 -1 0 1 2
0
−zm − zm 0 -60-6M 0 0 -80-10M 0 80+11M 160-25M
V.B x y e1 e2 e3 t1 t2 T. droite
e3 0 3/5 0 0 1 1/10 -1 5/2
e1 0 18/5 1 0 0 -2/5 0 18
e2 0 24/5 0 1 0 -1/5 0 18
x 1 3/5 0 0 0 1/10 0 9/2
0
−zm − zm 0 -12 0 0 0 8+M M 360
Toutes les variables artificelles sont hors base avec un fort coefficient positif
et ne pourront plus y entrer. La phase 1 s’achève en éliminant les variables
artificielles du tableau précédent et la phase 2 du simplexe démarre.
V.B x y e1 e2 e3 T. droite
e3 0 3/5 0 0 1 5/2
e1 0 18/5 1 0 0 18
e2 0 24/5 0 1 0 18
x 1 3/5 0 0 0 9/2
−z 0 -12 0 0 0 360
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 101 / 190
Programmation linéaire
Dualité en programmation linéaire
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 102 / 190
Programmation linéaire
Dualité en programmation linéaire
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 103 / 190
Programmation linéaire
Dualité en programmation linéaire
↔
Max b t u
sujet à
(D)
At u ≤ c
u ≥ 0
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 104 / 190
Programmation linéaire
Dualité en programmation linéaire
↔
Max b t u
sujet à
(D)
At u ≤ c
u ∈ R
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 105 / 190
Programmation linéaire
Dualité en programmation linéaire
Exercice
Donner le dual du programe suivant :
Min z = 2x1 + 3x2
sujet à
x ≥ 3
1
(P)
x2 ≥ 6
2x1 + 3x2 ≥ 9
x , x ≥ 0
1 2
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 106 / 190
Programmation linéaire
Dualité en programmation linéaire
Exercice
Donner le dual du programme suivant :
Min z = x1 − 3x2
sujet à
x ≤ 5
1
(P)
x2 ≤ 3
2x1 + x2 ≤ 10
x , x ≥ 0
1 2
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 107 / 190
Programmation linéaire
Dualité en programmation linéaire
Théorème
Pour toute solution x réalisable du problème primal et toute solution u
réalisable du dual, on a :
bt u ≤ c t x
Preuve
On a
c t x = x t c ≥ x t (At u) = (Ax)t u ≥ b t u
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 108 / 190
Programmation linéaire
Dualité en programmation linéaire
Théorème
Si le problème primal admet une solution réalisable x et si son dual admet
une solution réalisable u telles que b t u = c t x alors x et u sont des
solutions optimales respectivement du primal et du dual.
Preuve
c t x ≥ bt u = c t x
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 109 / 190
Programmation linéaire
Dualité en programmation linéaire
Théorème
Considérons le programme linéaire (P) et son dual (D)
Si l’un des problèmes duaux admet une solution optimale finie, alors il
en est de même pour l’autre et les valeurs des fonctions objectifs à
l’optimum sont égales
Si l’un des problèmes duaux n’est pas borné, alors l’autre n’est pas
réalisable
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 110 / 190
Programmation linéaire
Dualité en programmation linéaire
Théorème
Étant donné un programme linéaire (P) et le programme dual (D) associé.
Si (P) et (D) ont des solutions, alors chacun d’eux a une solution optimale
et Min(P) = Max(D). Ce théorème est dit ”Théorème fondamental de la
dualité”.
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 111 / 190
Programmation linéaire
Dualité en programmation linéaire
Théorème
Soient x et u des solutions réalisables respectivement pour les problèmes
primal et dual. Alors x et u sont des solutions optimales pour ces
problèmes si et seulement si :
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 112 / 190
Programmation linéaire
Dualité en programmation linéaire
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 113 / 190
Programmation linéaire
Dualité en programmation linéaire
Min z = 2u1 + 3u2
sujet à
(D) u1 − 2u2 ≥ 1
−2u1 − u2 ≥ −3
u1 , u2 ≥ 0
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 114 / 190
Programmation linéaire
Dualité en programmation linéaire
Nous constatons que la solution est optimale, mais elle n’est pas réalisable
puisque l’un des termes de droite est négatif. Donc u3 sort de la base
(variable associé à la ligne du terme négatif. Et la variable u1 entre en base
car c’est la variable correspondante au plus petit rapport positif. En
effectuant la règle de pivotage, nous obteneons le tableau :
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 115 / 190
Programmation linéaire
Dualité en programmation linéaire
Tous les coûts relatifs associés aux variables hors-base sont positiifs et tous
les termes de droite sont positifs. Donc la solution de base actuelle est
optimale.
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 116 / 190
Programmation linéaire
Dualité en programmation linéaire
Remarque
Dans l’algorithme primal de Simplexe, nous commençons par des solutions
réalisables et on cherche au courant des itérations une solution optimale
alors que pour l’algorithme dual de Simplexe, on part d’une solution
optimale (peut être non réalisable) et on cherche une solution réalisable.
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 117 / 190
Programmation linéaire en nombres entiers
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 118 / 190
Programmation linéaire en nombres entiers
Définition
Un problème de PLNE est donné sous la forme générale :
X n
Min cj xj
j=1
S.c :
(PLNE ) X n
aij xj ≥ bi , i = 1, 2, ..., m
j=1
xj ≥ 0, xj ∈ N, j = 1, 2, ..., n
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 119 / 190
Programmation linéaire en nombres entiers
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 120 / 190
Programmation linéaire en nombres entiers
Remarque
La relaxation continue consiste à supprimer (ou relâcher) les
contraintes d’intégrité du problème
Un cas particulier est lorsque la solution optimale de la relaxation
continue du problème est une solution entière
Dans le cas général, la relaxation continue nous donne une borne
inférieure du problème PLNE (problème de minimisation)
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 122 / 190
Programmation linéaire en nombres entiers
Méthode d’arrondi
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 123 / 190
Programmation linéaire en nombres entiers
Méthode d’énumération
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 124 / 190
Programmation linéaire en nombres entiers
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 125 / 190
Programmation linéaire en nombres entiers
Partitionnement
Définition
On dit que le problème (P) de domaine réalisable F (P) est partitionné en
sous-problèmes (P1 ), (P2 ), ..., (Pq ) si F (P1 ), F (P2 ), ..., F (Pq ) constitue
une partition de F (P). Autrement dit, si :
1 Toute solution réalisable de (P) est réalisable pour exactement un
sous-problème (Pj )
2 Toute solution réalisable pour l’un des sous-problèmes (Pj ) est
réalisable pour (P)
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 126 / 190
Programmation linéaire en nombres entiers
Partitionnement
Exemple
1 Le problème (P) dont le domaine réalisable
F (P) = {xj = 0 ou xj = 1} peut être partitionné en deux problèmes
(P1 ) et (P2 ) de même fonction objectif et ayant respectivement
comme domaine réalisable : F (P1 ) = {xj = 0} et F (P2 ) = {xj = 1}
2 Le problème (P) dont le domaine réalisable
F (P) = {0 ≤ xj ≤ 2 et xj ∈ N} peut être partitionné en trois
problèmes (P1 ), (P2 ), (P3 ) de même fonction objectif et ayant comme
DR respectivement :
F (P1 ) = {xj = 0}, F (P2 ) = {xj = 1} et F (P3 ) = {xj = 2}
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 127 / 190
Programmation linéaire en nombres entiers
Partitionnement
Exemple
Le problème (P) dont le domaine réalisable
F (P) = {0 ≤ xj ≤ 4 et xj ∈ N} peut être partitionné en deux problèmes
(P1 ) et (P2 ) de même fonction objectif et ayant respectivement comme
domaine réalisable : F (P1 ) = {0 ≤ xj ≤ 2 et xj ∈ N} et
F (P2 ) = {3 ≤ xj ≤ 4 et xj ∈ N}
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 128 / 190
Programmation linéaire en nombres entiers
Stratégie de la méthode de résolution
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 129 / 190
Programmation linéaire en nombres entiers
Stratégie de la méthode de résolution
Remarque
Chaque fois que la solution de (PC ) est faite avec succès, on identifie une
solution réalisable de (P) et on retient la meilleure solution de (P) retenue
jusqu’ici.
Si aucun candidat n’a pas été identifié, alors le problème n’aura pas de
solution optimale. Sinon, le dernier point candidat est considéré comme
solution optimale.
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 130 / 190
Programmation linéaire en nombres entiers
Définition
Le problème (P) est dit relaxé si certaines contraintes sont relâchées,
c’est-à-dire ne sont pas prises en considération. Le problème relaxé sera
noté (PR)
Proposition
1 F (P) ⊂ F (PR)
2 F (PR) = ∅ =⇒ F (P) = ∅
3 V (PR) ≤ V (P) (pour un problème de minimisation )
4 Si une solution optimale de (PR) est dans F (P), alors c’est aussi une
solution optimale de (P)
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 131 / 190
Programmation linéaire en nombres entiers
Méthode de Branch and Bound
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 132 / 190
Programmation linéaire en nombres entiers
Méthode de Branch and Bound
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 133 / 190
Programmation linéaire en nombres entiers
Méthode de Branch and Bound
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 134 / 190
Programmation linéaire en nombres entiers
Méthode de Branch and Bound
Nous pouvons choisir une des deux variables pour la séparation, il existe
plusieurs critères de séparation
Choix arbitraire
Critère de la variable du plus petit indice
Critère de la variable la plus distante : choisir une variable ayant une
valeur non entière qui s’écarte le plus de l’entier le plus près
Critère du meilleur Cj
Lorsque plusieurs variables sont jugées intéressantes pour un critère on
peut adopter un autre critère, ainsi de suite. Dans notre exemple les deux
variables seront choisies selon le critère de la variable la plus distante, on
fait donc un choix arbitraire en préférant x
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 135 / 190
Programmation linéaire en nombres entiers
Méthode de Branch and Bound
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 136 / 190
Programmation linéaire en nombres entiers
Méthode de Branch and Bound
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 137 / 190
Programmation linéaire en nombres entiers
Méthode de Branch and Bound
est (x, y ) = (2, 37 ) et z = −6, elle est donc non entière, donc non
réalisable pour le problème (P). Inutile de séparer suivant la variable y du
fait que les solutions qui seront obtenus seront supérieure ou égale à -6
(> −8) déjà obtenue
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 138 / 190
Programmation linéaire en nombres entiers
Méthode de Branch and Bound
xj ≤ E (xj∗ )
xi ≥ E (xj∗ ) + 1
3 Si une solution réalisable de (P) a été trouvée, c’est donc une
solution candidate à être optimale. Une borne supérieure est donc
trouvée. Sinon, faire une séparation.
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 139 / 190
Programmation linéaire en nombres entiers
Méthode de Branch and Bound
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 140 / 190
Programmation linéaire en nombres entiers
Méthode de Branch and Bound
Exercice
Résoudre le PLNE suivant avec la méthode de Branch and Bound :
Min 4x − 7y − 12z
s.c :
−3x + 6y + 8z ≤ 12
6x − 3y + 7z ≤ 8
−6x + 3y + 3z ≤ 5
x, y , z ≥ 0
x, y , z ∈ N
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 141 / 190
Programmation non linéaire
Rappels
Définition
Normes et distances (EVN, EM)
Normes classiques
Fonctions de plusieurs variables (Dérivées partielles, laplacien,
jacobienne, hessien)
Définitions de limites
Théorème de Weierstrass sur R
Optimum sur R
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 142 / 190
Programmation non linéaire
Rappels
Exercice
Calculer les dérivées partielles premières et secondes des fonctions
suivantes :
1
f (x, y ) = e x cos(y )
2
f (x, y ) = (x 2 + y 2 ) cos(xy )
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 143 / 190
Programmation non linéaire
Rappels
Exercice
Calculer le gradient des fonctions suivantes :
1 f (x, y ) = x 2 + y 2 − 2ax − 2by
2 f (x, y ) = x 4 + y 4 + 2(x − y )2
3 f (x, y ) = 4xy − x 4 − y 4
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 144 / 190
Programmation non linéaire
Introduction
′
Notez que Pi ∈ D, donc yi = axi + b.
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 145 / 190
Programmation non linéaire
Introduction
Formulation de (PO)
2 ′
− y i )2 = − axi − b)2
P P P
Minimiser i=1 (ei ) = i=1 (yi i=1 (yi
(a, b) ∈ R2 .
⇒ Problème d’Optimisation non-linéaire continue sans contraintes
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 146 / 190
Programmation non linéaire
Généralités
Définition
Soit f une fonction de Rn 7→ R qui à x 7→ f (x) où x = (x1 , x2 , ..., xn ).
Considérons le problème :
Min f (x)
(P) s.c :
x ∈ U ⊂ Rn
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 147 / 190
Programmation non linéaire
Définitions
Définition
Lorsque U ̸= Rn , on dit que (P) est un problème avec contraintes
Lorsque U = Rn , on dit que (P) est un problème sans contraintes
Lorsque U = {x ∈ Rn , gi (x) ≤ 0, i = 1, ..., m}, on dit qu’on a des
contraintes d’inégalités
Si les fonctions gi et f sont convexes, on dit que le problème (P) est
convexe.
Si la fonction f et les fonctions gi peuvent s’écrire comme différence
de fonctions convexes, on dit que (P) est un problème d’optimisation
DC
Si f est une fonction quadratique et U est un polyèdre convexe, on
dit que (P) est un problème d’optimisation quadratique.
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 148 / 190
Programmation non linéaire
Théorème
Soient U une partie fermée bornée (compacte) de Rn et f : Rn 7→ R une
fonction continue, alors le problème :
Min f (x)
(P) s.c :
x ∈ U ⊂ Rn
Définition
Soit f : Rn 7→ R une fonction. On dit que f est coercive si
lim f (x) = +∞
∥x∥→+∞
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 149 / 190
Programmation non linéaire
Théorème
Soient U une partie non vide fermée de Rn et f : Rn 7→ R une fonction
continue coercive. Si l’ensemble U est non borné, alors il existe au moins
un élement x ∗ ∈ U, tel que f (x ∗ ) = inf{f (x), x ∈ U}
Preuve
Soit x 0 ∈ U, comme f est coercive, alors : ∃r > 0 tel que
∥x∥ > r =⇒ f (x 0 ) < f (x) (prendre A = f (x 0 ) dans la définition de la
limite). Donc l’ensemble des solutions du problème (P) coincide avec
l’ensemble des solutions du problème (P0 ) suivant :
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 150 / 190
Programmation non linéaire
Preuve
Min f (x)
(P0 ) s.c :
x ∈ U0 = U ∩ {x ∈ Rn , ∥x∥ ≤ r }
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 151 / 190
Programmation non linéaire
Considérons le problème :
Min f (x)
(P) s.c :
x ∈ Rn
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 152 / 190
Programmation non linéaire
Définition
Soit A ∈ Mn (R),
On dit que la matrice A est semi-définie positive sur Rn si
∀x ∈ Rn , < Ax, x >≥ 0 ou x t Ax ≥ 0
On dit que la matrice A est définie positive sur Rn si elle est
semi-définie positive sur Rn et si ∀x ∈ Rn , x ̸= 0, < Ax, x >≥ 0
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 153 / 190
Programmation non linéaire
Conditions nécessaires d’optimalité
Théorème
Pour que x ∗ soit un minimum de f , il faut que les deux conditions
suivantes soient vérifiées :
1 Le gradient ∇f (x ∗ ) = 0
∂2f
2 La matrice hessienne ∇2 f (x ∗ ) = ∂xi ∂xj soit une matrice semi-définie
positive
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 154 / 190
Programmation non linéaire
Exercice
Déterminer les points critiques et calculer le Hessien des fonctions
suivantes :
1 f (x, y ) = −x 4 − y 4
2 f (x, y ) = x 2 − y 3
3 f (x, y ) = 4xy − x 4 − y 4
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 155 / 190
Programmation non linéaire
Remarque
Le contre exemple suivant montre que la réciproque du théorème
précédent n’est pas toujours vraie : Considérons la fonction à une variable
réelle f (x) = x 3 Le point x = 0 vérifie les conditions 1) et 2) du théorème
mais il n’est pas un optimum
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 156 / 190
Programmation non linéaire
Conditions suffisantes d’optimalité
Théorème
Soit f : Rn 7→ R de classe C 2 .Pour que x ∗ soit un minimum de f , il faut et
il suffit que les deux conditions suivantes soient vérifiées :
1 Le gradient ∇f (x ∗ ) = 0
∂2f
2 La matrice hessienne ∇2 f (x ∗ ) = ∂xi ∂xj soit une matrice définie
positive
Définition
On dit que f est strictement convexe sur U si :
Définition
On dit que x ∗ est un point critique ou un point stationnaire de f si
∇f (x ∗ ) = 0
Remarque
Toutes les méthodes numériques d’optimisation sans contraintes dans Rn
consistent à chercher un point critique x ∗ , ce qui est équivalent à résoudre
le système d’équations :
∂f
(x) = 0, ∀i = 1, ..., n
∂xi
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 158 / 190
Programmation non linéaire
Exercice
Chercher les points critiques des fonctions suivantes :
1 f (x, y ) = x 3 y − y 3 x
2 f (x, y ) = x 4 + y 4 + 2(x − y )2
3 f (x, y ) = 4xy − y 4 − x 4
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 159 / 190
Programmation non linéaire
Méthode de gradient à pas fixe
La méthode du gradient à pas fixe est une méthode itérative qui consiste à
construire une suite x 0 , x 1 , x 2 , ..., x n telle que
f (x 0 ) ≥ f (x 1 ) ≥ ... ≥ f (x n−1 ≥ f (x n ). L’étape de l’algorithme sont :
1 On se donne un point x 0
2 On calcule le gradient ∇f (x 0 )
3 Pour k = 1, ..., n, on calcule x k+1 = x k − h∇f (x k ) avec h > 0
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 160 / 190
Programmation non linéaire
Méthode de gradient à pas prédéterminé
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 161 / 190
Programmation non linéaire
Méthode de gradient normalisé à pas prédéterminé
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 162 / 190
Programmation non linéaire
Méthode de gradient à pas prédéterminé
Remarque
La méthode est dite à pas prédéterminée car αk est choisi à priori
Théorème
La méthode de gradient à pas prédéterminé est convergente
Remarque
1
En pratique on prend en général αk = k
L’inconvénient de cette procédure est que la convergence peut être
lente
L’avantage est qu’elle peut être généralisée au cas des fonctions non
partout différentiables
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 163 / 190
Programmation non linéaire
Méthode de la plus forte pente
3 Poser x k+1 = x k − αk d k
4 Si le test d’arrêt est vérifié, stop, sinon faire k = k + 1 et retourner à
l’étape 2
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 164 / 190
Programmation non linéaire
Méthode de la plus forte pente
Remarque
Comme on ne sait pas d’avance l’optimum et comme on n’est pas sûr que
la convergence a lieu en nombre limité d’itérations, nous devons faire un
test d’arrêt
Les tests d’arrêts les plus utilisés sont :
∂f
max(| ∂x i
|) < ϵ
∥∇f ∥2 < ϵ
|f (x k+1 ) − f (x k )| < ϵ
Dans tous les cas, il est préférable de limiter le nombre d’itérations
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 165 / 190
Programmation non linéaire
Méthode de la plus forte pente
Théorème
Soit f : Rn 7→ R de classe C 1 et coercive alors pour tout point de départ
x 0 , la méthode de la plus forte pente converge vers un point stationnaire.
Remarque
La convergence de la méthode ne signifie pas que l’on trouve un
optimum de f
La convergence de la méthode de la plus forte pente peut être plus
lente
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 166 / 190
Programmation non linéaire
Méthode des directions conjuguées
Définition
On dit que la fonction f est quadratique si :
1
f (x) = < Ax, x > + < b, x > +c
2
Avec A ∈ Mn (R) est une matrice, b ∈ Rn et c ∈ R
Exemple
Exemple de fonction quadratique :
f (x, y ) = x 2 + y 2 + 2xy
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 167 / 190
Programmation non linéaire
Méthode des directions conjuguées
Définition
Soient d 0 , d 1 , ..., d n−1 , n vecteurs de Rn tels que
d i = 1, ∀i = 0, ..., n − 1. (d 0 , d 1 , ..., d n−1 ) sont appelés des directions
de Rn
Définition
On dit que les directions d 0 , d 1 , ..., d n−1 sont mutuellement conjuguées
par rapport à la forme quadratique q(x) si (d i )t Ad i = 0, ∀i ̸= j
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 168 / 190
Programmation non linéaire
Méthode des directions conjuguées
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 169 / 190
Programmation non linéaire avec contraintes
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 170 / 190
Programmation non linéaire avec contraintes
Définition
On dit que x ∗ ∈ X est un optimum local de (P1 ) s’il existe un voisiange
Vx ∗ de x ∗ tel que : f (x ∗ ) ≤ f (x), ∀x ∈ Vx ∗ et gi (x ∗ ) ≤ 0, ∀i ∈ I
Théorème
On suppose que la fonction f et les fonctions gi , (i ∈ I ) sont de classe C 1 ,
alors une condition nécessaire pour que x 0 soit un optimum local du
problème (P1 ) est qu’il existe des nombres λi (i ∈ I ) tels que :
X
∇f (x 0 ) + λi ∇gi (x0 ) = 0
i∈I
λi gi (x 0 ) = 0, ∀i ∈ I
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 171 / 190
Programmation non linéaire avec contraintes
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 172 / 190
Programmation non linéaire avec contraintes
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 173 / 190
Programmation non linéaire avec contraintes
Une condition nécessaire pour que x 0 soit un optimum local est qu’il existe
des µj (j ∈ J) non contraintes en signe tels que :
X
∇f (x 0 ) + µj ∇hj (x 0 ) = 0
j∈J
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 174 / 190
Programmation non linéaire avec contraintes
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 175 / 190
Programmation non linéaire avec contraintes
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 176 / 190
Programmation non linéaire avec contraintes
Théorème
Si (x ∗ , λ∗ ) est un point col de L(x, λ) alors x ∗ est un optimum global de
(P)
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 177 / 190
Programmation non linéaire avec contraintes
Définition
Soit C un sous-ensemble de Rn , on définit la fonction ΨC associée à C
par : (
0 si x ∈ C
ΨC (x) =
+∞ sinon
On considère les problèmes :
(
Min f (x)
(P1 )
x ∈C
et (
Min f (x) + ΨC (x)
(P2 )
x ∈ Rn
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 178 / 190
Programmation non linéaire avec contraintes
Proposition
Les problèmes (P1 ) et (P2 ) sont équivalents
Remarque
Comme la fonction Ψc n’est pas continue et donc n’est pas dérivable, les
méthodes que nous avons vues ne sont pas appliquables. Pour remédier à
ce problème, des auteurs ont proposé d’autres méthodes de pénalités.
Considérons le problème :
Min f (x)
sujet à
(P)
gi (x) ≤ 0, i ∈ I
x ∈ Rn
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 179 / 190
Programmation non linéaire avec contraintes
Méthode de pénalités extérieures
Fiacco et Mc Cormic ont proposé la méthode de pénalisation suivante :
On considère la fonction :
(
h(y ) = 0 pour y ≤ 0
h(y ) = y 2 pour y > 0
On pose
m
X m
X
H(x) = h(gi (x)) = (gi (x))2
i=1 i=1
Définition
La fonction H est appelée une fonction de pénalisation extérieure (où)
fonction de pénalité extérieure)
Remarque
Le nombre réel r doit être choisi suffisament grand pour que le point
x ∗ obtenu soit proche de l’ensemble des solutions de X .
Si r est choisi trop grand, la fonction ϕ peut être mal conditionnée ce
qui conduit à des difficultés numériques. Il faut donc un compromis
pour le choix de r .
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 181 / 190
Programmation non linéaire avec contraintes
Théorème
Soit H : Rn 7→ R une fonction de pénalisation extérieure vérifiant :
1 H(x) ≥ 0, ∀x ∈ Rn
2 H(x) = 0, ∀x ∈ X = {x ∈ Rn /gi (x) ≤ 0, i ∈ I }
3 H continue
Supposons aussi que f continue, que X est fermé et que l’une des deux
conditions suivantes est vérifiée :
f est coercive : lim f (x) = +∞
∥x∥→+∞
X est borné et lim H(x) = +∞
∥x∥→+∞
Alors, lorsque le coefficient de pénalité r → +∞, la suite x ∗ (r ) admet au
moins un point d’accumulation et tout point d’accumumlation de la suite
(x ∗ (rk ))k est une solution optimale du problème (P)
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 182 / 190
Programmation non linéaire avec contraintes
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 183 / 190
Programmation non linéaire avec contraintes
Définition
La fonction B est appelée une fonction de pénalisation ou fonction barrière.
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 184 / 190
Programmation non linéaire avec contraintes
Théorème
Soit X = {x ∈ Rn /gi (x) ≤ 0, i ∈ I } l’ensemble des solutions de (P). On
suppose que X est fermé, que int(X ) ̸= ∅ et que :
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 185 / 190
Programmation non linéaire avec contraintes
Théorème
On suppose que f est continue et qu’elle vérifie l’une des conditions
suivantes :
f est coercive
X est bornée
Alors lorsque le coefficient de pénalité tk → 0, la suite (x ∗ (tk ))k admet au
moins un point d’accumulation et tout point d’accumulation de la suite
(x ∗ (tk ))k est un optimum de (P)
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 186 / 190
Programmation non linéaire avec contraintes
Dualité lagrangienne
Considérons le programme :
Min f (x)
sujet à
(P)
gi (x) ≤ 0, i ∈ I
x ∈ S ⊂ Rn
X
On a la fonction de Lagrange : L(x, λ) = f (x) + λi gi (x)
i∈I
Pour λ ≥ 0 posons W (λ) = inf{L(x, λ), x ∈ S}. Supposons qu’on a les
conditions sur f et gi et S pour que :
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 187 / 190
Programmation non linéaire avec contraintes
Dualité lagrangienne
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 188 / 190
Programmation non linéaire avec contraintes
Dualité lagrangienne
Théorème
Pour tout λ ∈ Rn+ on a :
W (λ) ≤ W (λ∗ ) ≤ f (x ∗ )
Proposition
La fonction duale W est une fonction convexe de λ
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 189 / 190
Programmation non linéaire avec contraintes
Dualité lagrangienne
Théorème
Si le problème (P) admet un point col (x ∗ , λ∗ ) alors :
W (λ∗ ) = f (x ∗ )
K. Oufaska (UIR) Cours de mathématiques pour ingénieurs A.U., 2025/2026 190 / 190