1. RAPPORT DU
TP
[2015/2016]
[´Etude et implémentation de l’algorithme du
simplexe]
Fst Beni Mellal
LAHOUAOUI Mohamed
BOUGARNE Mohamed
Master Informatique
Decisionnelle
2. TABLE DES MATIERES
Contenu
Introduction ____ Erreur ! Signet non
défini.
Application_____________________________2
Organigramme de l’application __________2
Teste de l’application _________________2
Realisation _____________________________5
Langage utilise ____________________5
Classes utilisees ___________________5
Conclusion _____________________________7
3.
4. 1/INTRODUCTION
L’algorithme du simplexe est une des méthodes les plus
utilisées dans le cadre de la recherche opérationnelle. La
complexité des problèmes à résoudre évolue
constamment, de telle sorte que les implémentations
existantes s’avèrent parfois trop lente. En parallèle, la
technologie évolue et met à notre disposition de
nouveaux outils. Nous nous intéressons, dans ce travail,
à l’implémentation de l’algorithme du simplexe sur des
unités de calcul. Ces unités de calcul disposent d’une
architecture particulière qui permet de paralléliser des
opérations matricielles ou vectorielles principalement.
Pour implementer cet algorithm on a utilisé le language
de programation JAVA ,l’application va permetre de
résoudre un programme linéaire par la méthode du
simplexe (Primal et Dual) .
Page 1
5. 2/APPLICATION
Pour commencer le calcule on doit d’abord choisir la méthode avec
laquelle on veut résoudre le programme linéaire pour le Primal on tape 1
et pour le Dual 2
Page2
1/organigramme de l’application
Simplex
Primal Dual
2/Test de l’application
6. Après la saisie du choix l’application demande de saisir le nombre des
contraintes suivi du nombre de variables, dans notre exemple on a 3
contraintes et 2 variables.
Ensuite on va taper les coefficients de chaque contrainte :
1er contrainte 2x +2y<=8
1er contrainte 0x +1y<=3
1er contrainte 9x +3y<=27
Par la suite on tape les coefficients de la fonction objective Z :
Z=4x+5y
Après la fin du saisie le calcule commence, l’application va calculer
chaque tableau (itération) jusqu’à trouver la solution optimale comme
elle affiche la photo si dessous
Page 3
7. Après 3 trois itérations le programme trouve que la solution optimale de
ce programme linéaire et Z=19 et x=1 et y=3
Page 4
8. 3/REALISATION
Nous avons développé notre logiciel avec le langage de programmation orienté
objet java.La particularité et l'objectif central de Java est que les logiciels écrits
dans ce langage doivent être très facilement portables sur plusieurs
systèmes d’exploitation tels que UNIX, Windows, Mac OS ou
GNU/Linux, avec peu ou pas de modifications. Pour cela, divers
plateformes et frameworks associés visent à guider, sinon garantir, cette
portabilité des applications développées en Java.
Page 5
1/langage utilise
2/classe utilisees
Projet
main Main
affichage Affichage
traitement
Calcule
Menu
Position
Primal
Dual
Tableau
Exeption
MauvaisChoixExeption
NoPivotExeption
TermeNumberExeption
9. Notre application contient 4 package (main/affichage /traitement/exception)
1/Package Main
Ce package contient une classe Main qui permet d’exécuter
l’application.
2/Package Affichage
Ce package contient une classe affichage qu’il a comme but visualiser
les résultats sur l’écran.
3/Package Traitement
Contient 6 classes
A/La classe Menu
Cette classe a pour but de générer un menu que les utilisateurs vont
suivre pour résoudre le problème linéaire.
B/La classe Tableau
Cette classe va permettre de manipuler les déférentes matrices
C/La classe Calcul
Cette classe aide à calculer les déférentes itérations (Tableaux) et de
déterminer le pivot dans chaque itération
D/La classe Position
Permet de déterminer la position d’un élément dans une matrice
E/La classe Primal
Cette classe contient les traitements de la méthode de simplexe
F/La classe Dual
Cette classe utilise les méthodes de la classe primal mais avec la
méthode du dual
Page 6
10. 4/Package Exception
Contient 3 classes qui ont pour but de gerer les deferentes exceptions de
l’application
A/La classe MauvaisChoixExeption :
Lorsque l’utilisateur saisi un mauvais choix l’exception est genere.
B/La classe NoPivotExeption:
Lorsque l’application n’est pas capable de calculer alors l’exception est generee.
B/La classe TermeNumberExeption:
Lorsque l’utilisateur saisi des donnees qui ne sont pas necessaire une exception
est genere.
4/CONCLUSION
Le but de ce projet était d’implémenter une application pour la
résolution des problèmes linéaire via la méthode du simplex, ce projet a
été sans doute une expérience très bénéfique, il nous a offert l’opportunité
d’améliorer nos connaissances dans le domaine de programmation ainsi
l’amélioration de notre esprit d’équipe.
.
Page7