Beruflich Dokumente
Kultur Dokumente
Mini Projet
Recherche opérationnelle, programmation dans C
Préparé par :
Mohamed BOUSSAKSSOU
1
Plan :
I. Introduction générale
a. Method simplexe
b. Method Big M
c. Method Dual
2
I. Introduction générale
3
II. Les méthodes du Programmations linéaire
a. Method simplexe
Etape 1
4
programme équivalent où toutes les contraintes technologiques sont des
équations et toutes les variables sont non négatives.
c) Le vecteur de variables obtenu est appelé solution de base (il contient les
variables de base et les variables hors base) Une solution de base est
admissible si toutes les variables de la solution de base sont supérieur ou
égale à 0.
5
Toute solution de base de (PL=) pour laquelle toutes les variables sont non
négatives, est appelée solution de base admissible. Cette solution de base
admissible correspond à un point extrême.
Exemple d’application :
(n-m)=0
n= 6 et m = 4
(6 – 4) = 2 variables = 0
6
Cj – zj 1000 1200 0 0 0 0
Dans notre exemple : x2 a le plus grand Cj– Zj donc, il entre dans la base.
200 /50 = 40
60/3=20
14/1 =14 c’est le minimum, donc e4 est la variable qui sort de la base.
Etape d : pivotage
7
Le pivotage s’effectue de la manière suivante :
Nous poursuivons avec la matrice identité pour les variables de base. Nous
inscrivons 1 à l’intersection de chaque variable et 0 ailleurs.
Nous devons calculer les nouvelles valeurs pour les cases restantes à partir du
tableau précédent (tableau initial pour la première itération).
Nouveau valeur = ancienne valeur – (projection sur ligne pivot * projection sur
ligne pivot)/pivot .
Le critère d’arrêt
b. Method Big M
8
Exemple :
x1 , x2 >= 0
x1 , x2 >= 0
9
Ensuite on va construire les tableaux du simplexe jusqu’à la dernier qui
vérifiée les critères d’arrêt.
c. Method Dual
Principe de la méthode :
Règles a suivre.
10
Etapes de l’algorithme Primal-dual:
Y’a plusieurs exemples à donner mais on s’arrête ici pour parler un peu sur
l’implémentation du code et les cas qu’on n’a pas de chance de les traité.
Le Programme
Lorsque le programme s’ouvre .. vous avez devant vous une page qui vous
demande d’entrer 1 ou 2 selon vos besoins.. 1 pour une maximisation et 2
pour une minimisation.. ensuite lorsque tu tape 1 .. le programme demande
d’entrer le nombre de variable que vous avez, et le nombre des inéquations..
Dans presque tout le programme je ne traite pas les cas où l’utilisateur tape
une lettre ou bien autre chose que les nombres ??
11
Lorsque tu tape 2 .. le programme a vous demander de choisir avec quelle
méthode vous voulez. Méthode BigM ou bien le Dual
Donc Il vous reste rien à faire, juste vous attendez un peu .. et le programme
va faire les calculs et ensuite affichera les différents tableau du simplexe..
Si vous tapez des lettres.. le programme sera bloqué. Donc il est obligé de
taper des nombres correcte..
Si vous essayez la méthode bigM vous trouver que dans l’affichage des tables
ne contiennent pas le nombre M .. parce que dons notre cas on a déclaré le
matrice de type entier .. et donc on peut pas stocker le M dans la matrice
12