CHAPITRE 2
PRO GRA M M A T IO N
MATHÉMATIQUE
Programmation dynamique
Autre
Programmation non linéaire
@mail: nacera.bahnes@univ-mosta.dz
17/04/2021
Introduction
3
La programmation mathématique est le nom donné aux problèmes d’optimisation liée ou
optimisation sous contraintes : il s’agit de rechercher l’optimum d’une fonction de
variables, étant donné que celles-ci doivent vérifier un certain nombre d’équations et/ou
d’inéquations appelées « contraintes ». Le modèle mathématique est composé de variables
de décision, l’ensemble des conditions et l’objectif à optimiser.
Environnement : statique/dynamique.
@mail: nacera.bahnes@univ-mosta.dz
17/04/2021
PL EN NOMBRE ENTIER
4
@mail: nacera.bahnes@univ-mosta.dz
17/04/2021
PL EN NOMBRE ENTIER
Exemple 1
5
Une usine a reçu des plaques de métal d’une largeur de 200 cm et d’une longueur de 500
cm. Il faut en fabriquer au moins:
40 plaques de largeur de 75 cm et
- Donner le modèle mathématique pour que les déchets soient les plus petits possibles.
1ère façon: Une plaque de 75 cm et deux plaques de 60 cm. Les déchets seront de 05 cm.
2ère façon: Une plaque de 110 cm et une plaque de 75 cm. Les déchets seront de 15 cm.
3ère façon: Une plaque de 110 cm et une plaque de 60 cm. Les déchets seront de 30 cm.
Ces problèmes sont décrits par une fonction de coût et des contraintes
linéaires et des variables booléennes.
𝑚𝑎𝑥 𝑛𝑖=1 𝑐𝑖 ∗ 𝑥𝑖
𝐴𝑥 ≤ 𝑏
𝑥𝑖 ∈ 0, 1 ∀ 𝑖 ≤ 𝑛
Quels objets le randonneur doit-il empoter pour maximiser l’utilité totale sans dépasser le poids total permis P ?
0 sinon
𝑛
Max 𝑖=1 𝑐𝑖 ∗ 𝑥𝑖 Maximisation de l’utilité totale
𝑛
𝑖=1 𝑝𝑖 ∗ 𝑥𝑖 ≤ 𝑃 Limitation du poids total
𝑥𝑖 ∈ 0, 1 ∀𝑖 ≤𝑛
Une compagnie de taxi dispose de quatre véhicules libres et doit transporter quatre clients.
Le but de la compagnie est d'assigner un taxi par client en minimisant la somme des
distances parcourues. Les distances respectives (en kilomètres) entre les taxis et les
voyageurs sont données par le tableau ci-contre.
Distance(cij) Client1 Client2 Client3 Client4
Taxi1 6 4 5 4
Taxi2 3 5 6 4
Taxi3 4 4 6 3
Taxi4 5 6 7 5
𝟒 𝟒
𝑴𝒊𝒏 𝒁 = 𝒊=𝟏 𝒋=𝟏 𝑪𝒊𝒋 𝒙𝒊𝒋
𝟒
𝒋=𝟏 𝒙𝒊𝒋 =𝟏 𝒊 = 𝟏…𝟒
𝟒
𝒊=𝟏 𝒙𝒊𝒋 =𝟏 𝒋 = 𝟏…𝟒
𝒙𝒊𝒋 𝝐 *𝟎, 𝟏+ 𝒊 = 𝟏 … 𝟒 , 𝒋 = 𝟏 … 𝟒
Puisque l’ensemble des solutions réalisables n’est pas vide , ce PL admit une (ou plusieurs) solution(s)
optimale(s).
Exemple 1
Solution optimale
entière (1, 4)
x2 ≤ 4
@mail: nacera.bahnes@univ-mosta.dz
17/04/2021
PL EN NOMBRE ENTIER - Résolution
12
Exemple 2
Min Z= -3x1-2x2
-3x1 + 4x2 ≤ 6
2x1 + 2x2 ≤ 11
4x1 - 5x2 ≤ 10
x1, x2 ≥ 0
@mail: nacera.bahnes@univ-mosta.dz
17/04/2021
PL EN NOMBRE ENTIER - Résolution
13
Exemple 3 x2
Max z=2x1+x2
x1 8 x1=19/4, x2=5 z=58/4
5
x 5
2 x1=5 x2=4 z=14
x1+x2 6
4x1+x2 24
x1 N, x2 N
x1
@mail: nacera.bahnes@univ-mosta.dz
17/04/2021
PL EN NOMBRE ENTIER - Résolution
14
Remarque
La solution optimale de PLNE ou de PL mixte n’est pas toujours un sommet de
polyèdre, elle peut situer à l’intérieur de l’espace des solutions réalisables ou sur
les frontières.
En cas de maximisation, Z* ≥ Z* ≥ Z*PLNE
PL mixte
En cas de minimisation, Z* ≤ Z* ≤ Z*
PLNE
PL mixte
@mail: nacera.bahnes@univ-mosta.dz
17/04/2021
PLNE -Les méthodes de résolution
15
@mail: nacera.bahnes@univ-mosta.dz
17/04/2021
PLNE - Résolution
M ÉTHO DE
DES CO UPES DE G O M O RY
Si par contre la solution calculée n’est pas entière, il existe dans le voisinage de cette solution
une région qui ne contient pas de points à coordonnées discrètes et par conséquent on
l’élimine de l’ensemble convexe précédent par une troncature convenable jusqu’à ce qu’une
solution discrète soit obtenue.
@mail: nacera.bahnes@univ-mosta.dz
17/04/2021
PLNE -Coupes de Gomory
18
Etape 1 Soit a un nombre réel
Résoudre le P.L continu obtenu en négligeant la a = 𝒂 +𝒇
condition d’intégralité dans le problème initial.
𝒂 le plus grand entier qui
Etape 2
est plus petit ou égal à a
Si la solution du PL courant est entière : terminer.
C’est la solution optimale du programme linéaire en f =a - 𝒂
nombres entières purs (PLNE).
Autrement, choisir une variable de base qui a une valeur
non entière et utiliser l’équation dont elle fait partie, disons
l’équation i pour engendrer une contrainte de coupe: xq : variable hors base
𝒂𝒊𝒒 = 𝒂𝒊𝒒 + 𝒇𝒊𝒒
𝒒 𝑽𝑯𝑩(−𝒇𝒊𝒒 ) ∗ 𝒙𝒒 + 𝒙𝒏+𝟏 = −𝒇𝒊 , 𝒙𝒏+𝟏 ≥ 𝟎 𝒆𝒏𝒕𝒊𝒆𝒓.
𝒃𝒊 = 𝒃𝒊 + 𝒇𝒊
Etape 3 𝒂𝒊𝒒 partie entiere de 𝒂𝒊𝒒
Ajouter la contrainte de coupe au tableau final du PL
courant et résoudre le nouveau problème avec l’algorithme 𝒃𝒊 partie entiere de 𝒃𝒊
du Dual simplexe. 𝒇𝒊𝒒 et 𝒇𝒊 parties
Poser n = n+1 et retourner à l’étape 2.
fractionnaires
n: nombre des variables
@mail: nacera.bahnes@univ-mosta.dz
18/04/2021
PLNE -Coupes de Gomory
19
Etape 1
Résolution le PL relaxé à l’aide de la M. du Simplexe
Exemple
x1 x2 x3 b
x3 10 12 1 59
-Z -10 -11 0 0
x2 5/6 1 1/12 59/12
-Z 0 1 1 59
Etape 2
Solution optimale de PL en continu: Z* = -59
x1*= 59/10, x2*=0 mais x1 entier
Passer à l’Etape 3
@mail: nacera.bahnes@univ-mosta.dz 17/04/2021
PLNE -Coupes de Gomory
20
Etape 3
En ajoutant une coupe % x1
Sol opt : (1/2, 9/2)
-1/5x2 -1/10x3 - 9/10 (1)
Z* = -109/2
(1) -1/5x2 -1/10x3 + x4 = - 9/10
x1 x2 x3 x4 b
x1 1 6/5 1/10 0 59/10
x4 0 -1/5 -1/10 1 -9/10
-Z 0 1 1 0 59
x1 1 0 -1/2 6 1/2
x2 0 1 1/2 -5 9/2
-Z 0 0 ½ 5 109/2
Etape 2
Solution optimale : Z* = - 109/2
x1*= 1/2, x2*=9/2 mais x1 et x2 non entier En termes de x1 et x2 ,
(1) s’écrit : x1+x2 5
Passer à l’Etape 3
@mail: nacera.bahnes@univ-mosta.dz
18/04/2021
PLNE -Coupes de Gomory
21
Etape 3
Sol opt : (1, 4)
En ajoutant une coupe % x1 (ou x2)
-1/2x3 - 1/2 (2) Z* = -54
(2) -1/2x3 + x5 = - 1/2
x1 x2 x3 x4 x5 b
x1 1 0 -1/2 6 0 1/2
X2 0 1 1/2 -5 0 9/2
x5 0 0 -1/2 0 1 -1/2
-Z 0 0 ½ 5 0 109/2
x1 1 0 0 6 -1 1
X2 0 1 0 -5 1 4
X3 0 0 1 0 -2 1
-Z 0 0 0 5 1 54
Max Z= 2x1 + x2
Max Z= 10x1 + 11x2 -x3
-x + x2 ≤ 0
5x1 + 6x2 + x3 ≤ 27
5x1 + 2x2 ≤ 18
x1 , x2 , x3 ≥ 0 (entier)
x1 , x2 ϵz+
@mail: nacera.bahnes@univ-mosta.dz
18/04/2021
23
MÉTHODE DE
BRA NC H & BOU N D
(B&B)
1. Procédure de Séparation
2. Procédure d’évaluation
3. Procédure de cheminement
Règle de conservation : aucune solution ne peut être éliminée par la séparation (union des sous
problèmes de même parent = sous problème parent).
2. Procédure d’évaluation
problème.
@mail: nacera.bahnes@univ-mosta.dz
17/04/2021
Séparation et évaluation (Branch and Bound)
27
Il est évidemment exclu d’examiner la totalité des nœuds en choisissant une stratégie de
cheminement :
En profondeur d’abord
En largeur d’abord
@mail: nacera.bahnes@univ-mosta.dz
17/04/2021
Séparation et évaluation (Branch and
Bound)
28
@mail: nacera.bahnes@univ-mosta.dz
18/04/2021
Branch And Bound: Algorithme générale
(cas de Max)
29
(1) Choisir une stratégie d’exploration. Poser m=0 k=0, et Z- = -
(2) Résoudre Pm et soit Xm sa solution optimale.
Si Xm est entière. On coupe le nœud et
Si Zm> Z- on pose Z- = Zm (amélioration de la borne)
Sinon Si Zm Z- On coupe le nœud et Aller en 4)
Sinon Aller en 3)
3) Soit (xi =a) une variable entière et a est un nombre non entier tel que 𝑎 <xi < 𝑎 +1.
Séparer Pm en Pk+1 et Pk+2) où :
@mail: nacera.bahnes@univ-mosta.dz
18/04/2021
Exercice
30
- Résoudre P
Mécanisme de cheminement ?
@mail: nacera.bahnes@univ-mosta.dz
18/04/2021
Séparation et évaluation (Branch and Bound)
31
@mail: nacera.bahnes@univ-mosta.dz
18/04/2021
Exercice : Probleme de sac à dos
32
Soit 7 objets de poids Pi (en kilos) et volume Vi (en m3). Etant donné
que le volume maximum de chargement est de 50 m3 (On suppose que
les objets sont déjà classés dans l’ordre des efficacités décroissantes).
i 1 2 3 4 5 6 7
Vi 31 10 20 18 4 3 6
Pi 70 20 39 35 7 5 9
@mail: nacera.bahnes@univ-mosta.dz
17/04/2021
Résolution de problème de sac à dos : Principe
33
3) Evaluation
Résoudre le sous PL relaxé et calculer la borne superieur (Z+)
@mail: nacera.bahnes@univ-mosta.dz
17/04/2021
PL EN NOMBRE BINAIRE
34
Autres exemples
• Problème d’affectation
• Problème de p-median
• Problème de voyageur de commerce
• Etc.
@mail: nacera.bahnes@univ-mosta.dz
17/04/2021
35
Programmation dynamique
Programmation dynamique (PD) est une technique mathématique conçue pour prendre une
suite de décisions mutuellement reliées entre elles en vue d’optimiser un objectif donné.
Elle a été proposée par Richard Bellman dans les années 1950 dans la foulée du succès de
la programmation linéaire. C’est le 1er à avoir décrit en détail et popularisé la PD.
Eviter de calculer deux fois la même chose i.e : la solution du même sous problèmes.
@mail: nacera.bahnes@univ-mosta.dz
17/04/2021
Programmation dynamique
37
@mail: nacera.bahnes@univ-mosta.dz
17/04/2021
Plus court chemin (Algorithme de Bellman)
38
Données: Graphe G=(X, U, d) sans circuit avec d (u) : U IR .
Racine : sommet s
Résultat: A : Arborescence de plus courts chemins.
@mail: nacera.bahnes@univ-mosta.dz
17/04/2021
PROGRAMMATION DYNAMIQUE
39
L’état du système étant présenté par ai=f (ai-1, Xi); f : fonction de transfert
Avec fonction de cout additive dans le temps g(ai, xi) Où i : numéro de la
@mail: nacera.bahnes@univ-mosta.dz
17/04/2021
PROGRAMMATION DYNAMIQUE
40
Il convient à examiner toutes les valeurs possibles que peuvent prendre les
variables ai et pour chacune d’elles déterminer la valeur optimale de Xi.
@mail: nacera.bahnes@univ-mosta.dz
17/04/2021
PROGRAMMATION DYNAMIQUE
41
Exemple 1 (gestion de stock)
Le tableau suivant donne pour les 5 périodes, les quantités demandés et les prix
d’achats d’un produit à revendre. La capacité de stockage est limitée à 5 unités. On
cherche à déterminer les quantités à acheter à chaque période de manière à
minimiser le cout total d’achat sur les 5 périodes.
@mail: nacera.bahnes@univ-mosta.dz
17/04/2021
PROGRAMMATION DYNAMIQUE
42
𝟓
𝑴𝒊𝒏 𝒁 = 𝒋=𝟏 𝒑𝒋 ∗𝒙
𝒋
a0 = 0
0 ≤ aj ≤ 5 – dj j=1..5
aj = aj-1 + xj – dj j=1..5
a5 = 0
xj ϵ N j=1..5
@mail: nacera.bahnes@univ-mosta.dz
18/04/2021
CONCLUSION
44
Un PL mono objectif est défini avec une seule fonction objective par contre un PL
multi-objectif est défini avec plusieurs critères .
Et dans le cas d'un PL mono-objectif, on peut trouver des solutions optimales (si
on utilise des méthodes qui donnent des solutions exactes) mais dans le cas des
programmes linéaire multi objectives on trouve des solutions de compromis.