Visualisation d’applications industrielles du langage NCL
en Java.
Projet 3A03-07
Dominique LAINS & Frédéric VOLPI
10 Juin 2004
Dominique Lains & Frédéric Volpi
Visualisation d’applications industrielles du langage NCL en Java. 2
Sommaire
Présentation d’Enginest,Cahier des charges et planning,Organisation du travail,Langage NCL,ActiveX de NCL,Présentation des 4 applications :– Call Trafic Optimisation,– Sports Scheduling,– Production Planning,– Well Mining.
Diffusion de notre travail,Conclusion.
Dominique Lains & Frédéric Volpi
Visualisation d’applications industrielles du langage NCL en Java. 3
Innovation : technologie NCL (Natural Constraint Language) techniques de langage naturel mathématique et programmation par contraintes.
Fournisseur de moteurs de calcul (domaine de la planification et de l’ordonnancement)
Développement de POEM (Programming in Ordinary & Expressive Models) : plate-forme de NCL.
Présentation d’Enginest
Dominique Lains & Frédéric Volpi
Visualisation d’applications industrielles du langage NCL en Java. 4
Dominique Lains & Frédéric Volpi
Visualisation d’applications industrielles du langage NCL en Java. 5
Dominique Lains & Frédéric Volpi
Visualisation d’applications industrielles du langage NCL en Java. 6
Travail demandé (CDCF)
Travail sur 3+1 applications.
Pour chacun :- ActiveX de NCL (calcul),- Visualisation des résultats,- Mise en évidence des contraintes.
Visualisation concrète et interactive des résultats.
Dominique Lains & Frédéric Volpi
Visualisation d’applications industrielles du langage NCL en Java. 7
Planning
Dominique Lains & Frédéric Volpi
Visualisation d’applications industrielles du langage NCL en Java. 8
Organisation du travail
Déplacement hebdomadaire chez Enginest,
Recherches de documentation (Internet & MSDN) sur les composants graphiques et leur utilisation,
Etude d’un sujet:– Fichiers de solutions et de données (M. Courtet), lecture des
fichiers,– Réflexion individuelle & mise en commun des résultats
(Brainstorming),– Programmation modulaire, méthode «Essai & Erreur», – ActiveX de NCL,– Traduction en anglais.
Dominique Lains & Frédéric Volpi
Visualisation d’applications industrielles du langage NCL en Java. 9
Langage NCL
Programmation par contraintes sur des ensembles,
Ecriture proche des mathématiques,
Programmation naturelle,
Typage implicite.
Dominique Lains & Frédéric Volpi
Visualisation d’applications industrielles du langage NCL en Java. 10
ActiveX permet l’appel d’un composant logiciel depuis un autre.
ActiveX de NCL
Dominique Lains & Frédéric Volpi
Visualisation d’applications industrielles du langage NCL en Java. 11
Insertion du composant ActiveX sur la fenêtre graphique,
Configuration de celui-ci (fichiers solutions, données, config et source),
Adaptation de notre programme pour la lecture des solutions.
ActiveX de NCL
Dominique Lains & Frédéric Volpi
Visualisation d’applications industrielles du langage NCL en Java. 12
Call Traffic Optimisation
Problème: acheminer des appels téléphoniques entre 7 villes.
Contrainte principale: problèmes de capacité maximale des lignes, nécessité de minimiser le nombre de villes intermédiaires.
Données: – Nom des villes,– Nombre de flux,– Ville de départ, d’arrivée, flux à faire passer et flux max.
Dominique Lains & Frédéric Volpi
Visualisation d’applications industrielles du langage NCL en Java. 13
Call Traffic Optimisation
Solution: – Valeur des flux directs entre deux villes,– Valeur des flux intermédiaires.
Mise en place de plusieurs options: affichage des flux ville par ville (démo), valeur des flux entre deux villes…
Raisonnement mathématique et logique:– Fonction de dessin des flux (position des villes),– Difficulté de visualisation des différents types de flux et de leur
capacité,– Utilisation de nouveaux éléments graphiques (tracer des lignes,
possibilité de cliquer sur les villes dans la carte).
Dominique Lains & Frédéric Volpi
Visualisation d’applications industrielles du langage NCL en Java. 14
ACC Sports Scheduling
Problème: organiser les rencontres Aller-retour d’un championnat de 9 équipes.
Nombreuses contraintes: répartition des matchs domicile extérieur, spécificité des 5 premiers week-ends, critères spécifiques…
179 solutions: pour chacun des 18 jours, 4 matchs sont prévus.
2 onglets:– Calendrier général, – Calendrier spécifique (pour chaque équipe).
Dominique Lains & Frédéric Volpi
Visualisation d’applications industrielles du langage NCL en Java. 15
Possibilité de choisir la contrainte à mettre en évidence:– Descriptif de la contrainte,– Visualisation de la contrainte sur le calendrier.
Détails sur chaque match (quelles équipes et où?)
Utilisation de nouveaux éléments graphiques : – Remplissage de rectangles en couleur (relief),– Mise en place de hachures, – Utilisation d’images…
ACC Sports Scheduling
Dominique Lains & Frédéric Volpi
Visualisation d’applications industrielles du langage NCL en Java. 16
Production Planning
Problème: visualisation de la production d’une entreprise sur 3 périodes, avec 3 types de produit (des ordinateurs).
Contraintes: visualisation des évolutions des ventes & de la production en fonction de la solution, respect des capacités maximales.
Données:– Nom et prix des produits et nom de leurs composants,– Demande max et min pour chaque produit pour chaque période,– Capacité maximale de production par période,– Fournisseurs et prix pratiqués en fonctions de la quantité
commandée pour chaque produit.
Dominique Lains & Frédéric Volpi
Visualisation d’applications industrielles du langage NCL en Java. 17
Production Planning
Solutions:– Chiffre d’affaire,– Production et ventes pour chaque produit et pour chaque
période.
Particularités: – Édition d’une facture (fournisseur, PU, quantité etc.)– Mise en évidence des stocks, de la production, des ventes
et de la demande en composants,– Utilisation de nouveaux éléments graphiques,– Similitude avec les programmes existants (aspect visuel).
Dominique Lains & Frédéric Volpi
Visualisation d’applications industrielles du langage NCL en Java. 18
Well Mining
Problème: Visualiser l’activité de 5 puits de forage.
Contraintes: problème d’allocation de ressources– Données : 5 puits, 3 machines, un seul workover, 3 types de
couches, …– Minimiser le temps total de forage des 5 puits,– Le workover doit préparer chaque puits avant qu’une machine n’y
creuse.
Données:– Liste des couches pour chaque puits et leur épaisseur,– Taux de production pour chaque puits et par type de sol,– Durée de travail du workover en fonction du type de sol qui suit.
Dominique Lains & Frédéric Volpi
Visualisation d’applications industrielles du langage NCL en Java. 19
Well Mining
Solutions: pour chaque puits, heures de travail du workover, de la machine et numéro de cette machine.
Visualisation graphique:– Mise en œuvre de l’animation du forage (avancement de la
simulation…): difficulté de programmation importante,– Dessin des diagrammes d’état des puits (activité sur chaque
puit en fonction du temps),– Emploi du temps du workover (nombre d’heures de travail et
de repos…)
Dominique Lains & Frédéric Volpi
Visualisation d’applications industrielles du langage NCL en Java. 20
Diffusion de notre travail
CD-Rom: – Enginest avec module NCL,– ESSTIN sans module NCL, avec lecture directe
des solutions.
Site internet: http://projetesstin.free.fr– Accès à tous les documents concernant notre
projet (CDCF, planning, rapport de mi-étude…)– Accès aux fichiers exécutables des 4 problèmes.
Dominique Lains & Frédéric Volpi
Visualisation d’applications industrielles du langage NCL en Java. 21
Conclusion
Contribution au développement des démonstrations de NCL pour Enginest,
Découverte d’un nouveau langage et spécialisation dans le Visual Java,
Diffusion des travaux sur différents supports multimédia,
Bonne collaboration avec Enginest.