Optimisation de la planification de la maintenance pour le logiciel CARL

La gestion du planning des interventions de maintenance est complexe. Un grand nombre de contraintes doivent être prises en compte lors de la gestion du plan, telles que l'adéquation entre les compétences et les actes d'intervention, le respect des contrats et la disponibilité des techniciens, etc. Par conséquent, la production d'un plan devient un grand défi, car nous devons souvent faire face à de nombreux aléas.

Pour répondre à ce problème, nous étudions dans ce travail le problème de l'optimisation de la planification des ressources matérielles et humaines pour les interventions de maintenance, et nous étudions les capacités des algorithmes d'optimisation par colonies de fourmis pour résoudre ces problèmes. Cette approche est basée sur une extension des algorithmes classiques d'optimisation par colonies de fourmis avec une recherche locale et nous introduisons la notion de pénalités pour faire oublier les mauvaises constructions de la planification.

Nous avons choisi de représenter le problème comme un problème de satisfaction de contraintes (CSP). En effet, cela nous permet de réutiliser de nombreux outils, approches et résultats théoriques concernant la résolution et la complexité informatique des instances du problème. De plus, le CSP est bien adapté pour gérer les contraintes séparément de la résolution du problème, ce qui permet de personnaliser ou d'ajouter facilement des contraintes.

Nous proposons également un langage flexible et expressif pour représenter les contraintes sous forme de prédicats pouvant inclure des variables, des constantes et des fonctions du problème. Toutes les contraintes rencontrées dans le contexte des interventions de maintenance sont exprimables dans notre système et chaque établissement peut adapter le système à son contexte et ajouter ses propres contraintes.

L'architecture de l'application est modulaire, les définitions du problème, des contraintes et de l'algorithme de résolution sont découplées. L'architecture logicielle permet également d'intégrer facilement un autre algorithme de résolution (i.e. autre que ACO, comme l'algorithme génétique par exemple), nous pouvons également changer le langage de représentation des contraintes pour couvrir un langage plus ou moins expressif pour de meilleures performances. Ceci nous permet d'adapter facilement notre implémentation à d'autres applications et d'autres problèmes.

Plus ...

Retour en haut