Optimisation Combinatoire
L'optimisation combinatoire est un outil essentiel pour le scientifique
et pour l'ingénieur en particulier. L'optimisation combinatoire,
qui est utilisée aussi bien pour la conception que pour le pilotage
de systèmes, couvre un large éventail de techniques et fait
toujours l'objet de recherches intensives. Notre expérience dans
ce domaine couvre les domaines suivants : programmation linéaire,
programmation non linéaire et en programmation en nombres entiers.
Notre expérience couvre les méthodes de résolution
de problèmes par séparations et évaluations progressives
et les méthodes de résolution basées sur des méta-heuristiques
(recuit simulé et algorithmes génétiques).
Les méta-heuristiques ont été utilisées
dans les cas où les solutions exactes s'avèrent non atteignables
au regard des temps d'exécutions prohibitifs que nécessitent
les problèmes de taille réelle. Nous avons exploré
un très grand nombre d'applications en optimisation combinatoire.
Dans ce qui suit seules certaines d'entre elles sont mentionnées
:
-
gestion et conception optimales de systèmes de distribution d'eau,
pour lesquelles ces techniques ont été appliquées
de manière extensive ;
-
gestion et contrôle optimal pour des systèmes robotiques avec
application de la programmation linéaire et non linéaire
;
-
affectation optimale de tâches sur des
processeurs par séparation et évaluation et par recuit simulé
;
-
apprentissage dans les chaînes de Markov cachées (HMM) par
recuit simulé ;
-
classification d'objets basée sur leurs attributs utilisant le recuit
simulé ;
-
calcul optimal des gains de retour pour systèmes représentés
par équations d'état multiples utilisant le recuit simulé
;
-
réglages de contrôleurs flous par optimisation non linéaire
et recuit simulé.
De nombreux outils ont été développés pour
résoudre ces applications en optimisation combinatoire : pour les
environnements MatLab et YLab (prototypage et
implémentations requérant un environnement de calcul générique)
; pour l'environnement Cplex (problèmes de grande taille) ; programmation
directe quand nous avions besoin d'un environnement spécifique (dans
ce cas, des outils utilisant la notion de matrices creuses ont été
utilisé afin d'améliorer l'efficacité en terme de
temps de calcul).
Dernière mise à jour :
par François Rocaries.