QuantOM

About QuantOM
Members
Publications
Some projects
Seminars&conferences
What is OR ?
Podcasts
Links
Contact

 

OPAL

This project was developed by Sabine Limbourg (HEC-ULg, QuantOM), Michaël Schyns (HEC-ULg, QuantOM) and Gilbert Laporte (HEC Montréal, CIRRELT).The details are provided in their paper "Automatic Aircraft Cargo Loading", Journal of the Operational Society, DOI 10.1057/jors.2011.134 .

Links: Air cargo mgt & team - W&B problem - Our solution & video - Download - Additional information

Download

We have developed the software OPAL that takes as input all of the problem's data and feeds them to the IBM ILOG CPLEX integer linear programming solver or to the free GLPK optimizer.
OPAL was written only to test our model and NOT for a production purpose. It is a beta version provided here WITHOUT ANY WARRANTY.
You are free to try it but all developments remain ours.

OPAL is written in Java and works on any platform.
The version provided is for windows. No special requirement. A basic computer with Java is enough (You may need to install first a Java environment. It can be downloaded for free on the official Java Website).
It is however highly recommended to work with a large screen (larger than 1400pixels)!
You can download OPAL here: OPAL for windows
The zip file contains the solver GLPK (and not CPlex). GLPK is slower than CPlex and could need more time for complex problems.
You don't need to install OPAL. You just have to unzip the file in a directory and to double click on "OPAL.bat" (not on "opal_win32_glpk.jar" otherwise the AutoLoad functions won't find GLPK and won't work).
A Boeing 777 configuration is provided for test as well as a few files for listing the ULDs to load. All configuration files are in the "src" directory and can be edited with any text editor. You may create new planes and ULDs files based on these templates (for a plane, duplicate the 777 directory under a new name and edit the files).

Current features

OPAL permet de gérer tous les types d'avion pour lesquels des positions sont pré-établies. Une fois qu'une liste d'ULDs à charger est spécifiée, OPAL pourra proposer automatiquement une solution qui satisfait les contraintes ci-dessous. L'interface graphique permet de visualiser en un coup d'œil ces contraintes et la qualité de la solution. Si une telle solution existe, il est garanti qu'il est impossible d'en trouver une meilleure.

  • Centre de gravité: le centre de gravité du chargement complet sera situé à la position indiquée par le loadmaster avec la précision qu'il demande. Il est ainsi possible de positionner ce centre de gravité automatiquement le plus à l'arrière possible, avec ou sans marge de sécurité, pour réduire la consommation de kérosène;
  • Enveloppes: il y a vérification que le centre de gravité pour le ZFW, LW et TOW sont bien situés dans les enveloppes de faisabilité. Les enveloppes sont représentées graphiquement;
  • Type et contour: chaque ULD doit avoir un type et un contour qui sont compatibles avec la position de l'avion attribuée. La gestion des types est indépendante de celle des contours et permet ainsi toutes les combinaisons;
  • Poids par position: le poids de chaque ULD ne dépassera pas le poids limite autorisé par la position;
  • Poids combiné: le poids combiné de tous les ULDS à chaque pouce de l'avion sera inférieur au seuil autorisé à cet endroit. Ceci est vérifié pour chaque pont séparément et pour tous les ponts ensembles;
  • Poids cumulé (forward): le poids cumulé des ULDs du nez de l'avion jusqu'à son centre sera à chaque pouce inférieur au seuil fixé à cet endroit;
  • Poids cumulé (aft): le poids cumulé des ULDs de la queue de l'avion jusqu'à son centre sera à chaque pouce inférieur au seuil fixé à cet endroit;
  • Poids cumulé (aft 2): il est possible de spécifier pour certains avions (ex.: 747) une seconde limite plus restrictive pour le poids cumulé des ULDs de la queue de l'avion jusqu'à son centre. Une solution satisfaisant cette limite sera proposée si possible;
  • Balance latérale: la balance latérale est maintenue dans les limites imposées;
  • Inertie/chargement compact: la solution proposée minimise l'inertie de l'avion;
  • Produits dangereux et spécifiques: à chaque ULD peut être associé une catégorie de produit. Une table de ségrégation maintiendra une distance minimale entre produits incompatibles;
  • Courbe du fuel: La fuel curve de l'avion est affichée dans les enveloppes et ajustable pour différentes densités.
  • Affectation manuelle d'ULDs: le loadmaster peut spécifier en deux clics qu'un ULD doit être affecté à une position spécifique;
  • Restriction à certaines positions: le loadmaster peut en quelques clics imposer que des ULDs soient positionnés dans des zones bien précises. OPAL déterminera précisément la position de ces ULDs dans ces zones. Par exemple, le loadmaster pourra imposer des ULDs compressibles à l'avant (crash zone);
  • Désactivation de positions: le loadmaster peut interdire des positions qui ne seraient pas disponibles pour des raisons techniques ou autres;
  • Palettes hors normes: les palettes dont le chargement dépasse sont clairement identifiées et en partie gérées par le système. Le système gère aussi les ULDs qui nécessitent plusieurs positions.
  • Indicateurs: tous les indicateurs classiques qui doivent être repris sur les documents de bord sont calculés et affichés. L'utilisateur peut en particulier faire varier en temps réel les paramêtres de fuel.

Modes d'optimisation, interactivité et visualisation graphique

OPAL est un outil hautement interactif et graphique. Le loadmaster garde la main à tout moment et peut intervenir pour dépasser les éventuelles limites du système.

  • Chargement des ULDs: le loadmaster peut charger aisément dans le système le fichier décrivant les ULDs à transporter;
  • Sélection d'ULDs: le loadmaster peut écarter temporairement ou définitivement les ULDs de son choix pendant sa planification. La liste d'ULDs peut dès lors contenir des ULDs supplémentaires à transporter ou non en fonction des possibilités;
  • Sélection de l'avion: chaque avion disponible peut être sélectionné directement à travers un menu;
  • Contrôle graphique: toutes les opérations peuvent se réaliser par quelques clics de souris depuis une même fenêtre. L'avion y est représenté schématiquement et des indicateurs permettent de visualiser en temps réel la qualité de la solution en cours d'élaboration. Différentes options sont disponibles;
  • Fixation de contraintes: le loadmaster peut en quelques clics ajouter des contraintes liées aux ULDs et aux positions comme mentionné à la section précédente;
Trois modes de fonctionnement sont possibles: totalement automatique, semi-automatique ou manuel. Par défaut, une fois que le loadmaster a spécifié les ULDs et l'avion à considérer, il lui suffit d'appuyer sur un bouton pour obtenir la meilleure proposition automatiquement après quelques secondes. Néanmoins, il pourrait également décider d'utiliser OPAL comme outil pour créer lui-même sa propre solution. Dans ce cas, il pourra affecter lui-même manuellement chaque ULD à une position en cliquant d'abord sur l'ULD et puis sur une position. OPAL le secondera en lui indiquant pour chaque ULD quelles sont les positions autorisées (type et forme) et en affichant à chaque étape les indicateurs de la qualité du chargement (contraintes de poids et d'enveloppes). Enfin, le loadmaster peut utiliser OPAL en mode semi-automatique. Sur base de son expérience et de sa connaissance du problème, il peut spécifier explicitement la position de différents ULDs et demander l'optimisation pour les autres. Lorsqu'il obtient une solution d'OPAL, il peut l'accepter dans son entièreté ou en partie et modifier facilement différentes allocations. Ceci permet également au loadmaster de tenir compte de contraintes supplémentaires qui ne seraient pas intégrées dans le système. A nouveau, à chaque étape, le loadmaster peut visualiser la qualité de la solution atteinte jusque-là.

Evolutivité

OPAL est doublement évolutif.
D'une part, l'utilisateur pourra ajouter très facilement de nouveaux avions ou adapter les configurations de ceux existants. Aucune programmation n'est nécessaire. Nous avons tenté d'utiliser les standards les plus simples pour rendre OPAL transparent et facile à maintenir. Un avion est défini par un ensemble de fichiers au format texte (csv). Chacun de ces fichiers est facilement modifiable dans un traitement de texte rudimentaire ou encore plus simplement dans Excel. Créer un nouvel avion reconnu par OPAL consiste simplement à placer les fichiers correspondants dans le répertoire "Aircraft". De même, ajouter de nouveaux types et contours d'ULDs acceptables pour des positions d'un avion peut se faire en quelques minutes. Les fichiers ont une structure simple et si l'on souhaite faire évoluer OPAL vers un système centralisé multi-utilisateurs, la migration réseau, avec ou sans système de gestion de bases de données, serait aisée.

D'autre part, OPAL a été programmé en Java en minimisant les ressources nécessaires. La partie optimisation est bien séparée de la partie de manipulation des données et de visualisation des résultats. Il est donc possible pour un programmeur d'ajouter sans risque de nouvelles fonctionnalités à cette seconde partie: de nouveaux modules graphiques, des interfaces de communication avec d'autres systèmes du handler, une modification des mises en page et conventions… Concernant la partie optimisation, elle est basée sur des techniques de programmation mathématique. En simplifiant, chaque contrainte correspond à un bloc d'instructions. Pour autant que l'on puisse formuler de nouvelles contraintes sous la forme d'une expression mathématique linéaire, elles pourront être ajoutées au programme en ajoutant les lignes de code correspondantes dans un bloc bien déterminé du programme.

Informations complémentaires

Entrées et sorties:
Dans cette version, OPAL a essentiellement besoin de trois jeux d'informations pour démarrer:

  • Un fichier texte (csv) reprenant les ULDs à charger;
  • L'existence dans le répertoire "Aircraft" de la définition de l'avion;
  • Choisir entre un centre de gravité souhaitée à une position imposée ou de sorte à minimiser la consommation de fuel (CG aft)
En sortie, OPAL fourni un fichier texte avec la position obtenue de chaque ULD. OPAL enregistre également une copie graphique de la solution avec les indicateurs.

Environnement:
OPAL a été développé en JAVA et peut dès lors être compilé sur les principaux systèmes d'exploitation. OPAL ne nécessite pas une puissance de calcul importante pour obtenir une planification d'un avion. Des démonstrations ont été réalisées sous Windows et sous Linux avec des ordinateurs portables standards.
A noter qu'OPAL, pour sa phase d'optimisation, recourt soit à la libraire d'optimisation professionnelle IBM ILOG CPLEX, soit au solveur libre GLPK. Ces librairies sont disponibles pour différents systèmes.

Autonomie:
OPAL est actuellement une solution individuelle monoposte autonome. Chaque utilisateur peut bénéficier de son propre système (. Le coeur d'OPAL étant le module d'optimisation et le tout étant développé en java, nous estimons également qu'il serait possible à une équipe de programmeurs de créer rapidement une version réseau si cela était jugé nécessaire, aussi bien pour un partage des données (développement mineur) que pour une interface avec optimisation centralisée (développement plus important).



Links: Air cargo mgt & team - W&B problem - Our solution & video - Download - Additional information



 
 
  HEC-Management School - University of Liège