Visualisation d’applications industrielles du langage NCL en Java. Projet 3A03-07 Dominique LAINS & Frédéric VOLPI 10 Juin 2004
Visualisation d’applications industrielles du langage NCL en Java. 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. Visualisation d’applications industrielles du langage NCL en Java. Dominique Lains & Frédéric Volpi
Visualisation d’applications industrielles du langage NCL en Java. Présentation d’Enginest 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. Visualisation d’applications industrielles du langage NCL en Java. Dominique Lains & Frédéric Volpi
Visualisation d’applications industrielles du langage NCL en Java. Dominique Lains & Frédéric Volpi
Visualisation d’applications industrielles du langage NCL en Java. Dominique Lains & Frédéric Volpi
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. Visualisation d’applications industrielles du langage NCL en Java. Dominique Lains & Frédéric Volpi
Visualisation d’applications industrielles du langage NCL en Java. Planning Visualisation d’applications industrielles du langage NCL en Java. Dominique Lains & Frédéric Volpi
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. Visualisation d’applications industrielles du langage NCL en Java. Dominique Lains & Frédéric Volpi
Visualisation d’applications industrielles du langage NCL en Java. Programmation par contraintes sur des ensembles, Ecriture proche des mathématiques, Programmation naturelle, Typage implicite. Visualisation d’applications industrielles du langage NCL en Java. Dominique Lains & Frédéric Volpi
Visualisation d’applications industrielles du langage NCL en Java. ActiveX de NCL ActiveX permet l’appel d’un composant logiciel depuis un autre. Visualisation d’applications industrielles du langage NCL en Java. Dominique Lains & Frédéric Volpi
Visualisation d’applications industrielles du langage NCL en Java. ActiveX de NCL 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. Visualisation d’applications industrielles du langage NCL en Java. Dominique Lains & Frédéric Volpi
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. Visualisation d’applications industrielles du langage NCL en Java. Dominique Lains & Frédéric Volpi
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). Visualisation d’applications industrielles du langage NCL en Java. Dominique Lains & Frédéric Volpi
Visualisation d’applications industrielles du langage NCL en Java. 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). Visualisation d’applications industrielles du langage NCL en Java. Dominique Lains & Frédéric Volpi
Visualisation d’applications industrielles du langage NCL en Java. ACC Sports Scheduling 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… Visualisation d’applications industrielles du langage NCL en Java. Dominique Lains & Frédéric Volpi
Visualisation d’applications industrielles du langage NCL en Java. 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. Visualisation d’applications industrielles du langage NCL en Java. Dominique Lains & Frédéric Volpi
Visualisation d’applications industrielles du langage NCL en Java. 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). Visualisation d’applications industrielles du langage NCL en Java. Dominique Lains & Frédéric Volpi
Visualisation d’applications industrielles du langage NCL en Java. 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. Visualisation d’applications industrielles du langage NCL en Java. Dominique Lains & Frédéric Volpi
Visualisation d’applications industrielles du langage NCL en Java. 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…) Visualisation d’applications industrielles du langage NCL en Java. Dominique Lains & Frédéric Volpi
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. Visualisation d’applications industrielles du langage NCL en Java. Dominique Lains & Frédéric Volpi
Visualisation d’applications industrielles du langage NCL en Java. 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. Visualisation d’applications industrielles du langage NCL en Java. Dominique Lains & Frédéric Volpi