SlideShare une entreprise Scribd logo
Implémentation de l’algorithme du Simplexe En Java

Introduction

Réalisation d’une application mathématique ou application de calculs scientifiques dans
une duréeTrès fiable elle pose plusieurs difficultés.
On parle ici de l’implémentation de l’algorithme du simplexe en certain langage de
programmation.
Mon projet consiste à implémenter l’algorithme simplexe en langage Java . nous
ferons face à plusieurs difficultés surtout que les outils d’implémentation utilisés ne sont
pas faciles à manipuler.
L’implémentation n’est pas la seule difficulté à surmonter, il faut savoir que
comment
Utiliser des interfaces pour gère les itérations de calculs.
Dans l’implémentation de l’algorithme du simplexe j’utilise la méthode deux phases
En ce qui concerne outil le développement, j’utilise NetBeans 7.4, un outil puissant et
complet compatible avec tous les calculs scientifique.

I-Partie théorique
I-1-Algorithme Du simplexe

1
Implémentation de l’algorithme du Simplexe En Java
L'algorithme du simplexe est un algorithme de résolution des problèmes d'optimisation
linéaire. Il a été introduit par George Dantzig à partir de 1947.
C'est probablement le premier algorithme permettant de minimiser une fonction sur un
ensemble défini par des inégalités.
De ce fait, il a beaucoup contribué au démarrage de l'optimisation numérique.
L'algorithme du simplexe a longtemps été la méthode la plus utilisée pour résoudre les
problèmes d'optimisation linéaire.
Depuis les années 1985-90, il est concurrencé par les méthodes de points intérieurs, mais
garde une place de choix dans certaines circonstances (en particulier si l'on a une idée des
contraintes d'inégalité active en la solution).
Le nom de l'algorithme est dérivé de la notion de simplexe et a été suggéré par Motzkin.
En réalité, l'algorithme n'utilise pas de simplexes, mais certaines interprétations de
l'ensemble admissible du problème renvoient au concept de simplexe.

I-2-Démarrage de l’algorithme simplexe

Pour utiliser l'algorithme du simplexe, il faut disposer d'un itéré initial qui est un sommet
de l'ensemble admissible
. Nous présentons dans
cette section plusieurs manières de faire face à cette exigence.

I-3-Méthode de Deux-Phases

Comme son nom l'indique, la technique des deux phases décompose la résolution d'un
problème d'optimisation linéaire en deux étapes. La phase/étape I consiste à résoudre un
problème d'optimisation linéaire auxiliaire, dont on connait un sommet, par l'algorithme
du simplexe. La solution de ce problème auxiliaire fournit un sommet du problème
(si
) ou indique que ce problème n'a pas de point admissible.

2
Implémentation de l’algorithme du Simplexe En Java
Dans la phase II, on résout le problème
sommet obtenu dans la première phase.

par l'algorithme du simplexe, à partir du

La phase I consiste à résoudre le problème d'optimisation linéaire suivant :

où est la matrice diagonale définie par
si
utiliser pour cela l'algorithme du simplexe, démarrant en
son ensemble admissible

et

sinon. On peut
, qui est un sommet de

I-4-Méthode de grand M

Cette technique combine les phases I et II de manière à ne devoir résoudre qu'un seul
problème d'optimisation linéaire, à savoir le problème

Où est prise comme dans la technique des deux phases et
est une constante
choisie « suffisamment grande ». On ne connait pas a priori la valeur qu'il faut donner
à
pour que le problème
soit équivalent au problème
, c'est-à-dire pour
qu'en une solution
du problème
on ait
. Le raisonnement suivant
montre pourquoi ils le seront si
est « suffisamment grand ».
On peut en effet voir le problème
norme , de la contrainte
dans

comme la pénalisation exacte, au moyen de la

3
Implémentation de l’algorithme du Simplexe En Java

Ce dernier problème est équivalent à
. Dès lors, selon la théorie de la pénalisation
exacte, si
est supérieur à la norme
(norme duale de la norme pour le produit
scalaire euclidien) de tout multiplicateur optimal associé à la contrainte
dans ce
dernier problème, et si
, alors toute solution
du problème
sera
telle que
et donc sera solution de
.

II-Partie Réalisation
Introduction

La phase d’implémentation correspond à la vérification de l’algorithme Du simplexe
fourni par la construction
Un modèle de test pour détecter les anomalies et les défauts afin de les corrigées et
aboutir à la version définitive.
Les tests permettent la vérification des résultats de l’implémentation en testant chaque
construction
Le modèle de test comprend deux activités : la vérification et la validation.
La première activité consiste à évaluer le résultat s’il correspond à la spécification et la
deuxième consiste à vérifier si le résultat est conforme au besoin de l’utilisateur.

Dans ce qui suit je présente les interfaces de notre système qui vont détailler le processus
de développement de mon application.

4
Implémentation de l’algorithme du Simplexe En Java

II-1-Interface de démarrage

La première interface qui correspond à démarrage d’application, est une interface qui
gère une fonctionnalité d’accéder à l’application :

Figure 1 : Interface de démarrage

5
Implémentation de l’algorithme du Simplexe En Java

II-2-Interface de Menu

L’interface du menu principale permet à l’utilisateur l’accès deux différentes
Fonctionnalités de l’application.

Figure 2 : Interface de Menu

Maximisation: La première fonction est la maximisation Pour Résoudre un problème de
maximisation.
Minimisation: La deuxième fonction est la minimisation Pour Résoudre un problème
de minimisation (cette partie n’est pas réalisée).

II-3-Interface de Calcule

6
Implémentation de l’algorithme du Simplexe En Java
A travers cette interface l’utilisateur pouvoir donner le nombre des contraintes Et des
variables

Figure 3 : Interface de Calcule

II-4-Interface de Matrice

L’utilisateur recopier la matrice sur l’interface suivante
Donc on a deux variables, trois contraintes.

Figure 4 : Interface de Matrice

II-5-Interface d’itérations

Cette interface affichée les itérations et pivot, variable entrante, variable sortante
Et la fonction maximum

7
Implémentation de l’algorithme du Simplexe En Java

Figure 5 : Interface de Matrice

Conclusion

Ce Mini projet a été réalisé dans le cadre d’un travail personnel pour bien comprendre
Le principe de l’algorithme du simplexe et l’implémentation de cette algorithme dans un
langage très fort comme « java ».
8
Implémentation de l’algorithme du Simplexe En Java
Ce travail permet d’améliorer nos connaissances sur deux choses essentiel c’est
comment résoudre un problème à l’aide de l’algorithme du simplexe.
Et comme implémenter un algorithme basé sur des formules mathématiques
Les calculs à main pose des erreurs pour éviter ce problème il faut automatiser les
calculs.
Mon application permet aux utilisateurs de facilité et automatisé les calculs

III-Présentation de l’outil

NetBeans est un environnement de développement intégré (EDI), placé en open source par Sun en
juin 2000 sous licence CDDL et GPLv2 (Common Development and Distribution License). En plus
de Java, NetBeans permet également de supporter différents autres langages, comme Python, C,
C++, JavaScript, XML, Ruby, PHP et HTML. Il comprend toutes les caractéristiques d'un IDE
moderne (éditeur en couleur, projets multilangage, refactoring, éditeur graphique d'interfaces et de
pages Web).
Conçu en Java, NetBeans est disponible sous Windows, Linux, Solaris (sur x86 et SPARC), Mac OS
X ou sous une version indépendante des systèmes d'exploitation (requérant une machine virtuelle Java).
Un environnement Java Development Kit JDK est requis pour les développements en Java.
NetBeans constitue par ailleurs une plate-forme qui permet le développement
d'applications spécifiques (bibliothèque Swing (Java)). L'IDENetBeans s'appuie sur
cette plate-forme.L'IDE NetBeans s'enrichit à l'aide de plugins

1-1-Historique :
9
Implémentation de l’algorithme du Simplexe En Java
En 1997, NetBeans naît de Xelfi, un projet d'étudiants dirigé par la Faculté de mathématiques et
de physique de l'Université Charles de Prague. Plus tard, une société se forme autour du projet et
édite des versions commerciales de l'EDI NetBeans, jusqu'à ce qu'il soit acheté par Sun en 1999. Sun
place le projet sous double licence CDDL et GPL v2 en juin de l'année suivante.

1-2-Environnement :
NetBeans est un IDE qui supporte une large variété de langages de programmation et d'outils de
collaboration.Environnement de baseL'environnement de base comprend les fonctions générales
suivantes2:
Configuration et gestion de l'interface graphique des utilisateurs,
Support de différents langages de programmation, Traitement du code source (édition, navigation,
formatage, inspection..),Fonctions d'import/export depuis et vers d'autres IDE, tels qu'Eclipse ou
JBuilder,
Accès et gestion de bases de données, serveurs Web, ressources partagées,
Gestion de tâches (à faire, suivi …), Documentationintégrée.L'éditeur intégré propose des fonctions de
complétion, de contrôles syntaxiques et sémantiques, d'avertissements et de conseils, de reprise de
codes (« refactoring » : renommage, changement des méthodes, gestion des classes, …), de
sauvegarde et reprise.
1-3-Les principaux langages supportés
Il supporte les principaux langages suivants3 :
Java (Java SE 4, Java ME 5, Java FX 6, Java EE 7), Javadoc ;
Ruby et Ruby on Rails 8: Ruby 1.9, Ruby on Rails 3, JRuby1.4 ;Groovy et Grails 9 ;
PHP (dont les environnements Zend et Symfony) 10 ;JavaScript 11 ;
C, C++, Fortran12. Netbeans ne requiert pas l'utilisation d'un compilateur particulier. À noter le
support des bibliothèques Qt. Les plates-formes supportées sont Microsoft Windows, Linux, Mac OS,
Solaris 10 et OpenSolaris;Python ;

1-4-Gestion de projet :
NetBeans supporte les principaux systèmes de gestion de versions13 : CVS, Subversion, Mercurial,
ClearCase. Il intègre par ailleurs des outils collaboratifs 13 (Projet Kenai Team Server).
Il interagit avec les logiciels de gestion de bugs : Jira, Bugzilla.

10
Implémentation de l’algorithme du Simplexe En Java
Débogage et Optimisation : NetBeans comprend un profileur Java 14 (analyse des performances
CPU, de la génération de charge, analyse de l'utilisation mémoire, …).Il intègre par ailleurs des outils
de debogage Java15. Il peut aussi inter agir avec des debogeurs PHP (Zend, Xdebug).

1-5-Base de données :
NetBeans comprend un explorateur de bases de données 16 qui supporte toutes les
bases relationnelles pour lesquelles un connecteur JDBC existe (selon les versions
des gestionnaires de bases de données): JavaDB (Derby) MySQL, PostgreSQL,
Oracle, Microsoft SQL, PointBase, jTDS, IBM Redistributable DB2, …
L'explorateur comprend un éditeur de requêtes, un gestionnaire intégré de bases de données MySQL.

1-6-Outils de construction d'applications :
Applications sur serveurs (applications Web et JAVA EE)
NetBeans supporte une importante variété d'environnements pour l'exécution
d'applications web et Java EE 17,7 : Java Server Pages (JSP), Java Server Faces(JSF), Enterprise
JavaBeans (EJB 2.1, EJB 3, EJB 3.1), Apache Struts, Spring
Web MVC, Hibernate… Il supporte les standards Java EE 6, Java EE 5, J2EE 1.4, Java Persistence API
(JPA 2.0), Java Servlet API.
Il permet le déploiement d'applications Java et d'Applets via Java Web Start (JNLP).
Netbeans intègre les fonctions de Hudson (Maven et projets Java SE pour Ant) et de Maven (créer,
exécuter, tester et déboguer des projets Maven Apache).

1-7-Applications sur poste de travail
Il supporte le développement d'applications postes de travail (Java SE) 4, en lien avec JDK 1.1, 1.2, 1.3,
1.4, JDK 5.0 et JDK 6. Il permet l'utilisation des tests JUnit 3 et 4.
NetBeans propose un environnement graphique exploitant Swing, désigné comme Java Swing GUI
Builder (ancien projet Matisse) 18. Cet environnement comporte des palettes d'outils de composition
d'interfaces (composantes Swing et AWT et composantes spécifiques développées pour les projets).
Il est utilisé au travers d'une interface graphique simple (choisir et positionner) qui permet de
dessiner des interfaces pour les utilisateurs et de les visualiser à la volée. Le construction
d'interface graphique est conforme à JSR 296 (Swing Application Framework), et JSR 295
(technologie BeansBinding ).NetBeans supporte par ailleurs Java FX
11
Implémentation de l’algorithme du Simplexe En Java
1-8-Web Services :
NetBeans 19 propose différents outils pour l'exploitation de web services. Il supporte JAX-WS
services, JAX-RS RESTful Web Services, standards JAX-RPC Web Service, SOAP et RESTful
Web Services, JBI Java Business Integration, Java Architecture for XML Binding API (JAXB),
Mobile Java ME Web services.
Il permet l'utilisation des web services Google Maps, StrikeIron, Yahoo News Search. Il supporte
par ailleurs l'intégration de services fournis par quelques acteurs clés (Google, Facebook, Yahoo,
YouTube, …).

1-9-Plate-forme :
NetBeans est aussi une plateforme générique 20 pour le développement d'applications pour
stations de travail (bibliothèque Swing (Java)).Elle fournit des ressources pour développer les
éléments structurants de ces applications: gestion des menus, des fenêtres, configuration, gestion des
fichiers, gestion des mises à jour… Des présentations détaillées sont fournies par le centre de
documentation de NetBeans 21.
L'IDE NetBeans comprend toutes les ressources utiles mais il est aussi possible d'installer la
plateforme séparément.Le développement d'applications sur la base de la plate-forme Netbeans consiste
en la réalisation de "modules" qui s'insèrent dans la plate-forme et en étendent Dynamiquement
les fonctions.
Un module est un groupe de classes Java classes, de portée variée: elle peut consister en une
simple classe Java réalisant des fonctions simples (exemple: ajouter une action dans un menu pour
éditer le contenu du presse papier) comme elle peut intégrer une application externe complète (exemple:
Java profiling suite). Un module peut s'appliquer à l'IDE NetBeans lui-même.La réalisation des
modules s'appuie sur une API normalisée 22.Un espace de partage entre développeurs est mis en
place.

12

Contenu connexe

Tendances

Exercices uml-corrige
Exercices uml-corrigeExercices uml-corrige
Exercices uml-corrige
AmineMouhout1
 
Rapport de PFE
Rapport de PFERapport de PFE
Rapport de PFE
Ghizlane ALOZADE
 
Cours Big Data Chap2
Cours Big Data Chap2Cours Big Data Chap2
Cours Big Data Chap2
Amal Abid
 
Rapport de stage PFE - Mémoire master: Développement d'une application Android
Rapport de stage PFE - Mémoire master: Développement d'une application AndroidRapport de stage PFE - Mémoire master: Développement d'une application Android
Rapport de stage PFE - Mémoire master: Développement d'une application Android
BadrElattaoui
 
Support Web Services SOAP et RESTful Mr YOUSSFI
Support Web Services SOAP et RESTful Mr YOUSSFISupport Web Services SOAP et RESTful Mr YOUSSFI
Support Web Services SOAP et RESTful Mr YOUSSFI
ENSET, Université Hassan II Casablanca
 
[PFE] Master - Génie logiciel
[PFE] Master - Génie logiciel  [PFE] Master - Génie logiciel
[PFE] Master - Génie logiciel
Louati Aicha
 
Rapport de stage du fin d'étude
Rapport de stage du fin d'étudeRapport de stage du fin d'étude
Rapport de stage du fin d'étude
Yahyaoui Mohamed Yosri
 
Rapport d'une application mobile de recommendation de livres
Rapport d'une application mobile de recommendation de livresRapport d'une application mobile de recommendation de livres
Rapport d'une application mobile de recommendation de livres
kaies Labiedh
 
diagramme des cas d'utilisation
diagramme des cas d'utilisationdiagramme des cas d'utilisation
diagramme des cas d'utilisation
Amir Souissi
 
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Riadh K.
 
diagramme de séquence UML
diagramme de séquence UMLdiagramme de séquence UML
diagramme de séquence UML
Amir Souissi
 
TD1-UML-correction
TD1-UML-correctionTD1-UML-correction
TD1-UML-correction
Lilia Sfaxi
 
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2Sofien Benrhouma
 
Chp4 - Diagramme de Séquence
Chp4 - Diagramme de SéquenceChp4 - Diagramme de Séquence
Chp4 - Diagramme de Séquence
Lilia Sfaxi
 
Simplex rapport final1
Simplex rapport final1Simplex rapport final1
Simplex rapport final1
Mohamed Lahouaoui
 
Rapport de stage Application web Gestion RH ASP.NET MVC5
Rapport de stage Application web Gestion RH ASP.NET MVC5Rapport de stage Application web Gestion RH ASP.NET MVC5
Rapport de stage Application web Gestion RH ASP.NET MVC5
YounessLaaouane
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
ENSET, Université Hassan II Casablanca
 
TD2 - UML - Correction
TD2 - UML - CorrectionTD2 - UML - Correction
TD2 - UML - Correction
Lilia Sfaxi
 
Rapport PFE
Rapport PFERapport PFE
Rapport PFE
IbtissemSlimeni
 
Méthodologie 2 Track Unified Process
Méthodologie 2 Track Unified ProcessMéthodologie 2 Track Unified Process
Méthodologie 2 Track Unified Process
Zakaria Bouazza
 

Tendances (20)

Exercices uml-corrige
Exercices uml-corrigeExercices uml-corrige
Exercices uml-corrige
 
Rapport de PFE
Rapport de PFERapport de PFE
Rapport de PFE
 
Cours Big Data Chap2
Cours Big Data Chap2Cours Big Data Chap2
Cours Big Data Chap2
 
Rapport de stage PFE - Mémoire master: Développement d'une application Android
Rapport de stage PFE - Mémoire master: Développement d'une application AndroidRapport de stage PFE - Mémoire master: Développement d'une application Android
Rapport de stage PFE - Mémoire master: Développement d'une application Android
 
Support Web Services SOAP et RESTful Mr YOUSSFI
Support Web Services SOAP et RESTful Mr YOUSSFISupport Web Services SOAP et RESTful Mr YOUSSFI
Support Web Services SOAP et RESTful Mr YOUSSFI
 
[PFE] Master - Génie logiciel
[PFE] Master - Génie logiciel  [PFE] Master - Génie logiciel
[PFE] Master - Génie logiciel
 
Rapport de stage du fin d'étude
Rapport de stage du fin d'étudeRapport de stage du fin d'étude
Rapport de stage du fin d'étude
 
Rapport d'une application mobile de recommendation de livres
Rapport d'une application mobile de recommendation de livresRapport d'une application mobile de recommendation de livres
Rapport d'une application mobile de recommendation de livres
 
diagramme des cas d'utilisation
diagramme des cas d'utilisationdiagramme des cas d'utilisation
diagramme des cas d'utilisation
 
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
 
diagramme de séquence UML
diagramme de séquence UMLdiagramme de séquence UML
diagramme de séquence UML
 
TD1-UML-correction
TD1-UML-correctionTD1-UML-correction
TD1-UML-correction
 
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
 
Chp4 - Diagramme de Séquence
Chp4 - Diagramme de SéquenceChp4 - Diagramme de Séquence
Chp4 - Diagramme de Séquence
 
Simplex rapport final1
Simplex rapport final1Simplex rapport final1
Simplex rapport final1
 
Rapport de stage Application web Gestion RH ASP.NET MVC5
Rapport de stage Application web Gestion RH ASP.NET MVC5Rapport de stage Application web Gestion RH ASP.NET MVC5
Rapport de stage Application web Gestion RH ASP.NET MVC5
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
 
TD2 - UML - Correction
TD2 - UML - CorrectionTD2 - UML - Correction
TD2 - UML - Correction
 
Rapport PFE
Rapport PFERapport PFE
Rapport PFE
 
Méthodologie 2 Track Unified Process
Méthodologie 2 Track Unified ProcessMéthodologie 2 Track Unified Process
Méthodologie 2 Track Unified Process
 

En vedette

Programmation lineaire algorithme_du_simplexe
Programmation lineaire algorithme_du_simplexeProgrammation lineaire algorithme_du_simplexe
Programmation lineaire algorithme_du_simplexeJiijishady
 
Sommaire Mini Projet Implémentation de l’algorithme du Simplexe En Java
Sommaire Mini Projet Implémentation de l’algorithme du Simplexe En JavaSommaire Mini Projet Implémentation de l’algorithme du Simplexe En Java
Sommaire Mini Projet Implémentation de l’algorithme du Simplexe En Java
Rached Krim
 
Numerical analysis dual, primal, revised simplex
Numerical analysis  dual, primal, revised simplexNumerical analysis  dual, primal, revised simplex
Numerical analysis dual, primal, revised simplex
SHAMJITH KM
 
La programmation par contraintes avec Choco3 (Java)
La programmation par contraintes avec Choco3 (Java)La programmation par contraintes avec Choco3 (Java)
La programmation par contraintes avec Choco3 (Java)
Aline Figoureux
 
Recherche opérationnelle : les maths arrivent dans l'emailing !
Recherche opérationnelle : les maths arrivent dans l'emailing !Recherche opérationnelle : les maths arrivent dans l'emailing !
Recherche opérationnelle : les maths arrivent dans l'emailing !
NP6
 
Programmation linéniaire
Programmation linéniaire Programmation linéniaire
Programmation linéniaire
Mohammed Zaoui
 
Cours programmation en matlab2 (1)
Cours programmation en matlab2 (1)Cours programmation en matlab2 (1)
Cours programmation en matlab2 (1)
Guesmi Amal
 
matlab tutorial _ tugas
matlab tutorial _ tugasmatlab tutorial _ tugas
matlab tutorial _ tugas
zn Yedhi
 
Analyse Numérique Chapitre 2: Systèmes d'Équations Linéaires.
Analyse Numérique Chapitre 2: Systèmes d'Équations Linéaires.Analyse Numérique Chapitre 2: Systèmes d'Équations Linéaires.
Analyse Numérique Chapitre 2: Systèmes d'Équations Linéaires.bilal001
 
Rechrches operationnele exam 2016 +corr
Rechrches operationnele exam 2016 +corrRechrches operationnele exam 2016 +corr
Rechrches operationnele exam 2016 +corr
jamal yasser
 
Cours9 programmation linéaire
Cours9 programmation linéaireCours9 programmation linéaire
Cours9 programmation linéaireAroussia Othmen
 
RECHERCHE OPERATIONNELLE S5 WWW.COURS-ECONOMIE.COM
RECHERCHE OPERATIONNELLE S5 WWW.COURS-ECONOMIE.COMRECHERCHE OPERATIONNELLE S5 WWW.COURS-ECONOMIE.COM
RECHERCHE OPERATIONNELLE S5 WWW.COURS-ECONOMIE.COM
jamal yasser
 
Recherche Opérationnelle - Optimisation (notions de base)
Recherche Opérationnelle - Optimisation (notions de base)Recherche Opérationnelle - Optimisation (notions de base)
Recherche Opérationnelle - Optimisation (notions de base)
Mohammed TAMALI
 
Traitement d'image
Traitement d'imageTraitement d'image
Traitement d'imageAnissa Teyeb
 
Telecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQLTelecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQL
webreaker
 
Traitement des images avec matlab
Traitement des images avec matlabTraitement des images avec matlab
Traitement des images avec matlab
omar bllaouhamou
 

En vedette (20)

Programmation lineaire algorithme_du_simplexe
Programmation lineaire algorithme_du_simplexeProgrammation lineaire algorithme_du_simplexe
Programmation lineaire algorithme_du_simplexe
 
Sommaire Mini Projet Implémentation de l’algorithme du Simplexe En Java
Sommaire Mini Projet Implémentation de l’algorithme du Simplexe En JavaSommaire Mini Projet Implémentation de l’algorithme du Simplexe En Java
Sommaire Mini Projet Implémentation de l’algorithme du Simplexe En Java
 
Numerical analysis dual, primal, revised simplex
Numerical analysis  dual, primal, revised simplexNumerical analysis  dual, primal, revised simplex
Numerical analysis dual, primal, revised simplex
 
La programmation par contraintes avec Choco3 (Java)
La programmation par contraintes avec Choco3 (Java)La programmation par contraintes avec Choco3 (Java)
La programmation par contraintes avec Choco3 (Java)
 
Recherche opérationnelle : les maths arrivent dans l'emailing !
Recherche opérationnelle : les maths arrivent dans l'emailing !Recherche opérationnelle : les maths arrivent dans l'emailing !
Recherche opérationnelle : les maths arrivent dans l'emailing !
 
Programmation linéniaire
Programmation linéniaire Programmation linéniaire
Programmation linéniaire
 
Cours programmation en matlab2 (1)
Cours programmation en matlab2 (1)Cours programmation en matlab2 (1)
Cours programmation en matlab2 (1)
 
matlab tutorial _ tugas
matlab tutorial _ tugasmatlab tutorial _ tugas
matlab tutorial _ tugas
 
Analyse Numérique Chapitre 2: Systèmes d'Équations Linéaires.
Analyse Numérique Chapitre 2: Systèmes d'Équations Linéaires.Analyse Numérique Chapitre 2: Systèmes d'Équations Linéaires.
Analyse Numérique Chapitre 2: Systèmes d'Équations Linéaires.
 
Rechrches operationnele exam 2016 +corr
Rechrches operationnele exam 2016 +corrRechrches operationnele exam 2016 +corr
Rechrches operationnele exam 2016 +corr
 
Cours9 programmation linéaire
Cours9 programmation linéaireCours9 programmation linéaire
Cours9 programmation linéaire
 
RECHERCHE OPERATIONNELLE S5 WWW.COURS-ECONOMIE.COM
RECHERCHE OPERATIONNELLE S5 WWW.COURS-ECONOMIE.COMRECHERCHE OPERATIONNELLE S5 WWW.COURS-ECONOMIE.COM
RECHERCHE OPERATIONNELLE S5 WWW.COURS-ECONOMIE.COM
 
0 c2 2013
0 c2 20130 c2 2013
0 c2 2013
 
Programmation linéaire
Programmation linéaireProgrammation linéaire
Programmation linéaire
 
Recherche Opérationnelle - Optimisation (notions de base)
Recherche Opérationnelle - Optimisation (notions de base)Recherche Opérationnelle - Optimisation (notions de base)
Recherche Opérationnelle - Optimisation (notions de base)
 
Traitement d'image
Traitement d'imageTraitement d'image
Traitement d'image
 
Telecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQLTelecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQL
 
RapportComplet
RapportCompletRapportComplet
RapportComplet
 
RapportComplet
RapportCompletRapportComplet
RapportComplet
 
Traitement des images avec matlab
Traitement des images avec matlabTraitement des images avec matlab
Traitement des images avec matlab
 

Similaire à Implémentation de l’algorithme du Simplexe En Java

Mysql
MysqlMysql
Mysql
ismail1989
 
Architecture .net
Architecture  .netArchitecture  .net
1-supportpoojavapremirepartie-140408132307-phpapp01.pptx
1-supportpoojavapremirepartie-140408132307-phpapp01.pptx1-supportpoojavapremirepartie-140408132307-phpapp01.pptx
1-supportpoojavapremirepartie-140408132307-phpapp01.pptx
RihabBENLAMINE
 
Support POO Java Deuxième Partie
Support POO Java Deuxième PartieSupport POO Java Deuxième Partie
Support POO Java Deuxième Partie
ENSET, Université Hassan II Casablanca
 
Architecture java j2 ee a partager
Architecture java j2 ee a partagerArchitecture java j2 ee a partager
Architecture java j2 ee a partager
aliagadir
 
tp-spring.pdf
tp-spring.pdftp-spring.pdf
tp-spring.pdf
badrfathallah2
 
tp-spring.pdf
tp-spring.pdftp-spring.pdf
tp-spring.pdf
seydou4devops
 
Support POO Java première partie
Support POO Java première partieSupport POO Java première partie
Support POO Java première partie
ENSET, Université Hassan II Casablanca
 
At2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville PublicAt2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville Public
Emmanuel Hugonnet
 
Initiation à UML: Partie 1
Initiation à UML: Partie 1Initiation à UML: Partie 1
Initiation à UML: Partie 1DIALLO Boubacar
 
Chap 02 poo en java
Chap 02 poo en javaChap 02 poo en java
Chap 02 poo en java
Yassine Badri
 
Retour d'expérience TAA - 2011/03/29
Retour d'expérience TAA - 2011/03/29Retour d'expérience TAA - 2011/03/29
Retour d'expérience TAA - 2011/03/29
Elapse Technologies
 
Anatomie du test
Anatomie du testAnatomie du test
Anatomie du test
Frederic Hardy
 
Oracle Developer adf
Oracle Developer adfOracle Developer adf
Oracle Developer adf
Bacely YoroBi
 
Développement de plug in sous eclipse
Développement de plug in sous eclipseDéveloppement de plug in sous eclipse
Développement de plug in sous eclipse
ISIG
 
Introduction au Génie Logiciel
Introduction au Génie LogicielIntroduction au Génie Logiciel
Introduction au Génie Logiciel
guest0032c8
 
Methodo support
Methodo supportMethodo support
Methodo support
James Sylvano
 
Article de référence de Winston Royce
Article de référence de Winston RoyceArticle de référence de Winston Royce
Article de référence de Winston Royce
Fabrice Aimetti
 
Tutoriel java
Tutoriel javaTutoriel java
Tutoriel java
Kalilou DIABY
 

Similaire à Implémentation de l’algorithme du Simplexe En Java (20)

Mysql
MysqlMysql
Mysql
 
Architecture .net
Architecture  .netArchitecture  .net
Architecture .net
 
1-supportpoojavapremirepartie-140408132307-phpapp01.pptx
1-supportpoojavapremirepartie-140408132307-phpapp01.pptx1-supportpoojavapremirepartie-140408132307-phpapp01.pptx
1-supportpoojavapremirepartie-140408132307-phpapp01.pptx
 
Support POO Java Deuxième Partie
Support POO Java Deuxième PartieSupport POO Java Deuxième Partie
Support POO Java Deuxième Partie
 
Architecture java j2 ee a partager
Architecture java j2 ee a partagerArchitecture java j2 ee a partager
Architecture java j2 ee a partager
 
tp-spring.pdf
tp-spring.pdftp-spring.pdf
tp-spring.pdf
 
tp-spring.pdf
tp-spring.pdftp-spring.pdf
tp-spring.pdf
 
Support POO Java première partie
Support POO Java première partieSupport POO Java première partie
Support POO Java première partie
 
At2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville PublicAt2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville Public
 
Chapitre 1
Chapitre 1Chapitre 1
Chapitre 1
 
Initiation à UML: Partie 1
Initiation à UML: Partie 1Initiation à UML: Partie 1
Initiation à UML: Partie 1
 
Chap 02 poo en java
Chap 02 poo en javaChap 02 poo en java
Chap 02 poo en java
 
Retour d'expérience TAA - 2011/03/29
Retour d'expérience TAA - 2011/03/29Retour d'expérience TAA - 2011/03/29
Retour d'expérience TAA - 2011/03/29
 
Anatomie du test
Anatomie du testAnatomie du test
Anatomie du test
 
Oracle Developer adf
Oracle Developer adfOracle Developer adf
Oracle Developer adf
 
Développement de plug in sous eclipse
Développement de plug in sous eclipseDéveloppement de plug in sous eclipse
Développement de plug in sous eclipse
 
Introduction au Génie Logiciel
Introduction au Génie LogicielIntroduction au Génie Logiciel
Introduction au Génie Logiciel
 
Methodo support
Methodo supportMethodo support
Methodo support
 
Article de référence de Winston Royce
Article de référence de Winston RoyceArticle de référence de Winston Royce
Article de référence de Winston Royce
 
Tutoriel java
Tutoriel javaTutoriel java
Tutoriel java
 

Plus de Rached Krim

Moodle CMS
Moodle CMSMoodle CMS
Moodle CMS
Rached Krim
 
Architecture des Systèmes Multi-Agents
Architecture des Systèmes Multi-Agents Architecture des Systèmes Multi-Agents
Architecture des Systèmes Multi-Agents
Rached Krim
 
Charte Ergonomique
Charte Ergonomique Charte Ergonomique
Charte Ergonomique Rached Krim
 
Expert System MYCIN
Expert System MYCINExpert System MYCIN
Expert System MYCIN
Rached Krim
 
Langage RDF/RDFs
Langage RDF/RDFsLangage RDF/RDFs
Langage RDF/RDFsRached Krim
 
Langage Perl
Langage PerlLangage Perl
Langage Perl
Rached Krim
 

Plus de Rached Krim (6)

Moodle CMS
Moodle CMSMoodle CMS
Moodle CMS
 
Architecture des Systèmes Multi-Agents
Architecture des Systèmes Multi-Agents Architecture des Systèmes Multi-Agents
Architecture des Systèmes Multi-Agents
 
Charte Ergonomique
Charte Ergonomique Charte Ergonomique
Charte Ergonomique
 
Expert System MYCIN
Expert System MYCINExpert System MYCIN
Expert System MYCIN
 
Langage RDF/RDFs
Langage RDF/RDFsLangage RDF/RDFs
Langage RDF/RDFs
 
Langage Perl
Langage PerlLangage Perl
Langage Perl
 

Dernier

M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...
M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...
M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...
M2i Formation
 
Iris et les hommes.pptx
Iris      et         les      hommes.pptxIris      et         les      hommes.pptx
Iris et les hommes.pptx
Txaruka
 
Iris van Herpen. pptx
Iris            van        Herpen.     pptxIris            van        Herpen.     pptx
Iris van Herpen. pptx
Txaruka
 
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La JeunesseConseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
Oscar Smith
 
Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"
Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"
Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"
IES Turina/Rodrigo/Itaca/Palomeras
 
Système de gestion des fichiers de amine
Système de gestion des fichiers de amineSystème de gestion des fichiers de amine
Système de gestion des fichiers de amine
sewawillis
 
Cours de conjugaison des verbes du premier, deuxième et troisième groupe
Cours de conjugaison des verbes du premier, deuxième et troisième groupeCours de conjugaison des verbes du premier, deuxième et troisième groupe
Cours de conjugaison des verbes du premier, deuxième et troisième groupe
Yuma91
 
Mémoire de licence en finance comptabilité et audit
Mémoire de licence en finance comptabilité et auditMémoire de licence en finance comptabilité et audit
Mémoire de licence en finance comptabilité et audit
MelDjobo
 
Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...
Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...
Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...
mrelmejri
 
Edito-B1-francais Manuel to learning.pdf
Edito-B1-francais Manuel to learning.pdfEdito-B1-francais Manuel to learning.pdf
Edito-B1-francais Manuel to learning.pdf
WarlockeTamagafk
 
SYLLABUS DU COURS MARKETING DTS 1-2.pdf
SYLLABUS DU COURS  MARKETING DTS 1-2.pdfSYLLABUS DU COURS  MARKETING DTS 1-2.pdf
SYLLABUS DU COURS MARKETING DTS 1-2.pdf
Moukagni Evrard
 
Burkina Faso library newsletter May 2024
Burkina Faso library newsletter May 2024Burkina Faso library newsletter May 2024
Burkina Faso library newsletter May 2024
Friends of African Village Libraries
 
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
cristionobedi
 

Dernier (13)

M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...
M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...
M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...
 
Iris et les hommes.pptx
Iris      et         les      hommes.pptxIris      et         les      hommes.pptx
Iris et les hommes.pptx
 
Iris van Herpen. pptx
Iris            van        Herpen.     pptxIris            van        Herpen.     pptx
Iris van Herpen. pptx
 
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La JeunesseConseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
 
Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"
Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"
Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"
 
Système de gestion des fichiers de amine
Système de gestion des fichiers de amineSystème de gestion des fichiers de amine
Système de gestion des fichiers de amine
 
Cours de conjugaison des verbes du premier, deuxième et troisième groupe
Cours de conjugaison des verbes du premier, deuxième et troisième groupeCours de conjugaison des verbes du premier, deuxième et troisième groupe
Cours de conjugaison des verbes du premier, deuxième et troisième groupe
 
Mémoire de licence en finance comptabilité et audit
Mémoire de licence en finance comptabilité et auditMémoire de licence en finance comptabilité et audit
Mémoire de licence en finance comptabilité et audit
 
Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...
Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...
Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...
 
Edito-B1-francais Manuel to learning.pdf
Edito-B1-francais Manuel to learning.pdfEdito-B1-francais Manuel to learning.pdf
Edito-B1-francais Manuel to learning.pdf
 
SYLLABUS DU COURS MARKETING DTS 1-2.pdf
SYLLABUS DU COURS  MARKETING DTS 1-2.pdfSYLLABUS DU COURS  MARKETING DTS 1-2.pdf
SYLLABUS DU COURS MARKETING DTS 1-2.pdf
 
Burkina Faso library newsletter May 2024
Burkina Faso library newsletter May 2024Burkina Faso library newsletter May 2024
Burkina Faso library newsletter May 2024
 
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
 

Implémentation de l’algorithme du Simplexe En Java

  • 1. Implémentation de l’algorithme du Simplexe En Java Introduction Réalisation d’une application mathématique ou application de calculs scientifiques dans une duréeTrès fiable elle pose plusieurs difficultés. On parle ici de l’implémentation de l’algorithme du simplexe en certain langage de programmation. Mon projet consiste à implémenter l’algorithme simplexe en langage Java . nous ferons face à plusieurs difficultés surtout que les outils d’implémentation utilisés ne sont pas faciles à manipuler. L’implémentation n’est pas la seule difficulté à surmonter, il faut savoir que comment Utiliser des interfaces pour gère les itérations de calculs. Dans l’implémentation de l’algorithme du simplexe j’utilise la méthode deux phases En ce qui concerne outil le développement, j’utilise NetBeans 7.4, un outil puissant et complet compatible avec tous les calculs scientifique. I-Partie théorique I-1-Algorithme Du simplexe 1
  • 2. Implémentation de l’algorithme du Simplexe En Java L'algorithme du simplexe est un algorithme de résolution des problèmes d'optimisation linéaire. Il a été introduit par George Dantzig à partir de 1947. C'est probablement le premier algorithme permettant de minimiser une fonction sur un ensemble défini par des inégalités. De ce fait, il a beaucoup contribué au démarrage de l'optimisation numérique. L'algorithme du simplexe a longtemps été la méthode la plus utilisée pour résoudre les problèmes d'optimisation linéaire. Depuis les années 1985-90, il est concurrencé par les méthodes de points intérieurs, mais garde une place de choix dans certaines circonstances (en particulier si l'on a une idée des contraintes d'inégalité active en la solution). Le nom de l'algorithme est dérivé de la notion de simplexe et a été suggéré par Motzkin. En réalité, l'algorithme n'utilise pas de simplexes, mais certaines interprétations de l'ensemble admissible du problème renvoient au concept de simplexe. I-2-Démarrage de l’algorithme simplexe Pour utiliser l'algorithme du simplexe, il faut disposer d'un itéré initial qui est un sommet de l'ensemble admissible . Nous présentons dans cette section plusieurs manières de faire face à cette exigence. I-3-Méthode de Deux-Phases Comme son nom l'indique, la technique des deux phases décompose la résolution d'un problème d'optimisation linéaire en deux étapes. La phase/étape I consiste à résoudre un problème d'optimisation linéaire auxiliaire, dont on connait un sommet, par l'algorithme du simplexe. La solution de ce problème auxiliaire fournit un sommet du problème (si ) ou indique que ce problème n'a pas de point admissible. 2
  • 3. Implémentation de l’algorithme du Simplexe En Java Dans la phase II, on résout le problème sommet obtenu dans la première phase. par l'algorithme du simplexe, à partir du La phase I consiste à résoudre le problème d'optimisation linéaire suivant : où est la matrice diagonale définie par si utiliser pour cela l'algorithme du simplexe, démarrant en son ensemble admissible et sinon. On peut , qui est un sommet de I-4-Méthode de grand M Cette technique combine les phases I et II de manière à ne devoir résoudre qu'un seul problème d'optimisation linéaire, à savoir le problème Où est prise comme dans la technique des deux phases et est une constante choisie « suffisamment grande ». On ne connait pas a priori la valeur qu'il faut donner à pour que le problème soit équivalent au problème , c'est-à-dire pour qu'en une solution du problème on ait . Le raisonnement suivant montre pourquoi ils le seront si est « suffisamment grand ». On peut en effet voir le problème norme , de la contrainte dans comme la pénalisation exacte, au moyen de la 3
  • 4. Implémentation de l’algorithme du Simplexe En Java Ce dernier problème est équivalent à . Dès lors, selon la théorie de la pénalisation exacte, si est supérieur à la norme (norme duale de la norme pour le produit scalaire euclidien) de tout multiplicateur optimal associé à la contrainte dans ce dernier problème, et si , alors toute solution du problème sera telle que et donc sera solution de . II-Partie Réalisation Introduction La phase d’implémentation correspond à la vérification de l’algorithme Du simplexe fourni par la construction Un modèle de test pour détecter les anomalies et les défauts afin de les corrigées et aboutir à la version définitive. Les tests permettent la vérification des résultats de l’implémentation en testant chaque construction Le modèle de test comprend deux activités : la vérification et la validation. La première activité consiste à évaluer le résultat s’il correspond à la spécification et la deuxième consiste à vérifier si le résultat est conforme au besoin de l’utilisateur. Dans ce qui suit je présente les interfaces de notre système qui vont détailler le processus de développement de mon application. 4
  • 5. Implémentation de l’algorithme du Simplexe En Java II-1-Interface de démarrage La première interface qui correspond à démarrage d’application, est une interface qui gère une fonctionnalité d’accéder à l’application : Figure 1 : Interface de démarrage 5
  • 6. Implémentation de l’algorithme du Simplexe En Java II-2-Interface de Menu L’interface du menu principale permet à l’utilisateur l’accès deux différentes Fonctionnalités de l’application. Figure 2 : Interface de Menu Maximisation: La première fonction est la maximisation Pour Résoudre un problème de maximisation. Minimisation: La deuxième fonction est la minimisation Pour Résoudre un problème de minimisation (cette partie n’est pas réalisée). II-3-Interface de Calcule 6
  • 7. Implémentation de l’algorithme du Simplexe En Java A travers cette interface l’utilisateur pouvoir donner le nombre des contraintes Et des variables Figure 3 : Interface de Calcule II-4-Interface de Matrice L’utilisateur recopier la matrice sur l’interface suivante Donc on a deux variables, trois contraintes. Figure 4 : Interface de Matrice II-5-Interface d’itérations Cette interface affichée les itérations et pivot, variable entrante, variable sortante Et la fonction maximum 7
  • 8. Implémentation de l’algorithme du Simplexe En Java Figure 5 : Interface de Matrice Conclusion Ce Mini projet a été réalisé dans le cadre d’un travail personnel pour bien comprendre Le principe de l’algorithme du simplexe et l’implémentation de cette algorithme dans un langage très fort comme « java ». 8
  • 9. Implémentation de l’algorithme du Simplexe En Java Ce travail permet d’améliorer nos connaissances sur deux choses essentiel c’est comment résoudre un problème à l’aide de l’algorithme du simplexe. Et comme implémenter un algorithme basé sur des formules mathématiques Les calculs à main pose des erreurs pour éviter ce problème il faut automatiser les calculs. Mon application permet aux utilisateurs de facilité et automatisé les calculs III-Présentation de l’outil NetBeans est un environnement de développement intégré (EDI), placé en open source par Sun en juin 2000 sous licence CDDL et GPLv2 (Common Development and Distribution License). En plus de Java, NetBeans permet également de supporter différents autres langages, comme Python, C, C++, JavaScript, XML, Ruby, PHP et HTML. Il comprend toutes les caractéristiques d'un IDE moderne (éditeur en couleur, projets multilangage, refactoring, éditeur graphique d'interfaces et de pages Web). Conçu en Java, NetBeans est disponible sous Windows, Linux, Solaris (sur x86 et SPARC), Mac OS X ou sous une version indépendante des systèmes d'exploitation (requérant une machine virtuelle Java). Un environnement Java Development Kit JDK est requis pour les développements en Java. NetBeans constitue par ailleurs une plate-forme qui permet le développement d'applications spécifiques (bibliothèque Swing (Java)). L'IDENetBeans s'appuie sur cette plate-forme.L'IDE NetBeans s'enrichit à l'aide de plugins 1-1-Historique : 9
  • 10. Implémentation de l’algorithme du Simplexe En Java En 1997, NetBeans naît de Xelfi, un projet d'étudiants dirigé par la Faculté de mathématiques et de physique de l'Université Charles de Prague. Plus tard, une société se forme autour du projet et édite des versions commerciales de l'EDI NetBeans, jusqu'à ce qu'il soit acheté par Sun en 1999. Sun place le projet sous double licence CDDL et GPL v2 en juin de l'année suivante. 1-2-Environnement : NetBeans est un IDE qui supporte une large variété de langages de programmation et d'outils de collaboration.Environnement de baseL'environnement de base comprend les fonctions générales suivantes2: Configuration et gestion de l'interface graphique des utilisateurs, Support de différents langages de programmation, Traitement du code source (édition, navigation, formatage, inspection..),Fonctions d'import/export depuis et vers d'autres IDE, tels qu'Eclipse ou JBuilder, Accès et gestion de bases de données, serveurs Web, ressources partagées, Gestion de tâches (à faire, suivi …), Documentationintégrée.L'éditeur intégré propose des fonctions de complétion, de contrôles syntaxiques et sémantiques, d'avertissements et de conseils, de reprise de codes (« refactoring » : renommage, changement des méthodes, gestion des classes, …), de sauvegarde et reprise. 1-3-Les principaux langages supportés Il supporte les principaux langages suivants3 : Java (Java SE 4, Java ME 5, Java FX 6, Java EE 7), Javadoc ; Ruby et Ruby on Rails 8: Ruby 1.9, Ruby on Rails 3, JRuby1.4 ;Groovy et Grails 9 ; PHP (dont les environnements Zend et Symfony) 10 ;JavaScript 11 ; C, C++, Fortran12. Netbeans ne requiert pas l'utilisation d'un compilateur particulier. À noter le support des bibliothèques Qt. Les plates-formes supportées sont Microsoft Windows, Linux, Mac OS, Solaris 10 et OpenSolaris;Python ; 1-4-Gestion de projet : NetBeans supporte les principaux systèmes de gestion de versions13 : CVS, Subversion, Mercurial, ClearCase. Il intègre par ailleurs des outils collaboratifs 13 (Projet Kenai Team Server). Il interagit avec les logiciels de gestion de bugs : Jira, Bugzilla. 10
  • 11. Implémentation de l’algorithme du Simplexe En Java Débogage et Optimisation : NetBeans comprend un profileur Java 14 (analyse des performances CPU, de la génération de charge, analyse de l'utilisation mémoire, …).Il intègre par ailleurs des outils de debogage Java15. Il peut aussi inter agir avec des debogeurs PHP (Zend, Xdebug). 1-5-Base de données : NetBeans comprend un explorateur de bases de données 16 qui supporte toutes les bases relationnelles pour lesquelles un connecteur JDBC existe (selon les versions des gestionnaires de bases de données): JavaDB (Derby) MySQL, PostgreSQL, Oracle, Microsoft SQL, PointBase, jTDS, IBM Redistributable DB2, … L'explorateur comprend un éditeur de requêtes, un gestionnaire intégré de bases de données MySQL. 1-6-Outils de construction d'applications : Applications sur serveurs (applications Web et JAVA EE) NetBeans supporte une importante variété d'environnements pour l'exécution d'applications web et Java EE 17,7 : Java Server Pages (JSP), Java Server Faces(JSF), Enterprise JavaBeans (EJB 2.1, EJB 3, EJB 3.1), Apache Struts, Spring Web MVC, Hibernate… Il supporte les standards Java EE 6, Java EE 5, J2EE 1.4, Java Persistence API (JPA 2.0), Java Servlet API. Il permet le déploiement d'applications Java et d'Applets via Java Web Start (JNLP). Netbeans intègre les fonctions de Hudson (Maven et projets Java SE pour Ant) et de Maven (créer, exécuter, tester et déboguer des projets Maven Apache). 1-7-Applications sur poste de travail Il supporte le développement d'applications postes de travail (Java SE) 4, en lien avec JDK 1.1, 1.2, 1.3, 1.4, JDK 5.0 et JDK 6. Il permet l'utilisation des tests JUnit 3 et 4. NetBeans propose un environnement graphique exploitant Swing, désigné comme Java Swing GUI Builder (ancien projet Matisse) 18. Cet environnement comporte des palettes d'outils de composition d'interfaces (composantes Swing et AWT et composantes spécifiques développées pour les projets). Il est utilisé au travers d'une interface graphique simple (choisir et positionner) qui permet de dessiner des interfaces pour les utilisateurs et de les visualiser à la volée. Le construction d'interface graphique est conforme à JSR 296 (Swing Application Framework), et JSR 295 (technologie BeansBinding ).NetBeans supporte par ailleurs Java FX 11
  • 12. Implémentation de l’algorithme du Simplexe En Java 1-8-Web Services : NetBeans 19 propose différents outils pour l'exploitation de web services. Il supporte JAX-WS services, JAX-RS RESTful Web Services, standards JAX-RPC Web Service, SOAP et RESTful Web Services, JBI Java Business Integration, Java Architecture for XML Binding API (JAXB), Mobile Java ME Web services. Il permet l'utilisation des web services Google Maps, StrikeIron, Yahoo News Search. Il supporte par ailleurs l'intégration de services fournis par quelques acteurs clés (Google, Facebook, Yahoo, YouTube, …). 1-9-Plate-forme : NetBeans est aussi une plateforme générique 20 pour le développement d'applications pour stations de travail (bibliothèque Swing (Java)).Elle fournit des ressources pour développer les éléments structurants de ces applications: gestion des menus, des fenêtres, configuration, gestion des fichiers, gestion des mises à jour… Des présentations détaillées sont fournies par le centre de documentation de NetBeans 21. L'IDE NetBeans comprend toutes les ressources utiles mais il est aussi possible d'installer la plateforme séparément.Le développement d'applications sur la base de la plate-forme Netbeans consiste en la réalisation de "modules" qui s'insèrent dans la plate-forme et en étendent Dynamiquement les fonctions. Un module est un groupe de classes Java classes, de portée variée: elle peut consister en une simple classe Java réalisant des fonctions simples (exemple: ajouter une action dans un menu pour éditer le contenu du presse papier) comme elle peut intégrer une application externe complète (exemple: Java profiling suite). Un module peut s'appliquer à l'IDE NetBeans lui-même.La réalisation des modules s'appuie sur une API normalisée 22.Un espace de partage entre développeurs est mis en place. 12