Stage : Développement logiciel d’optimisation en JAVA
- 05/12/2017
- Cyrille Folleau
- Recrutement
Contexte et Objectif : Nous développons des moteurs de calculs qui permettent de fournir des informations sur la fiabilité des systèmes industriels (avions, trains, unités de production, …).
Les calculs prennent de nombreuses valeurs en paramètres : taux de défaillance des composants, périodes de maintenance, taille des stocks. Lorsque l’utilisateur souhaite trouver un ensemble de paramètres fournissant la meilleure fiabilité du système à moindre coût, sa seule solution est de lancer de nombreux calculs et de voir quelle configuration est « optimale »
L’objectif est de réaliser un logiciel permettant de trouver la configuration optimale d’un ensemble de paramètres pour atteindre un objectif donné, en effectuant le moins de calculs possibles.
Déroulement du stage :
Le stage se déroulera en plusieurs étapes :
– Le stage commencera par une recherche bibliographique sur les différents algorithmes d’optimisation. Le stagiaire devra faire un document de synthèse indiquant les avantages et inconvénients des différents algorithmes. S’en suivra une sélection de 1 ou 2 algorithmes pouvant répondre à nos besoins qui auront été préalablement définis avec le tuteur.
– Définition d’une interface de programmation (API) permettant de spécifier les variations possibles sur les paramètres d’entrée, l’objectif et le lancement de l’optimisation. Définition d’une autre API permettant de lancer un moteur de calcul avec une configuration de paramètres afin d’obtenir un résultat unitaire.
– Implémentation en JAVA d’un algorithme d’optimisation respectant les interfaces définies et implémentation de l’appel du moteur de calcul ALBIZIA.
– Création de l’interface graphique, intégration du travail réalisé dans un plug-in pour le module Tree du logiciel GRIF-Workshop.
Environnement de développement : Eclipse, GIT, JUnit, Jenkins, SonarQube, Méthode Agile
Tout au long du stage, le stagiaire sera encadré par un ingénieur R&D auquel il fera un rapport régulier de son avancement et de ses choix techniques.
Profil recherché : Élève bac +5 ayant suivi un cursus type génie logiciel ou équivalent et maîtrisant JAVA. Des connaissances en sureté de fonctionnement seraient un plus.
Durée : 6 mois sur la période de Janvier à Aout 2018 avec possibilité d’embauche dès Septembre 2018.
Rémunération : 1200€/mois + prime + indemnité repas