JDNet Développeurs: Tout d'abord pourriez-vous
définir la programmation par contrainte ?
Gregory Glockner : C'est une technologie qui permet de résoudre
des problèmes pour lesquels il existe plusieurs contraintes. Elle
est constituée d'algorithmes issus de la programmation logique et
linéaire, elle utilise des techniques de propagation de contraintes
et exploite les relations logiques existantes entre plusieurs variables
afin d'isoler des solutions non compatibles avec le résultat recherché
(arbre des candidats). Elle permet également de dissocier la résolution
d'un problème de sa modélisation.
Quels sont les temps de réponse moyens constatés
lors de l'utilisation de Ilog JSolver ? Est-ce plus rapide que des
modules de recherche personnalisés ?
Le temps de reponse varie évidemment selon le problème : de quelques
secondes, à quelques heures pour des problématiques plus complexes.
Par rapport aux algorithmes de recherche personnalisés, le moteur
JSolver est plus rapide, notamment grâce à ses algorithmes de réduction
des domaines, et de propagation de contraintes. Notre moteur est
issu de recherches effectuées sur une douzaine d'années, portant
sur la technologie des contraintes. Son but est de résoudre le plus
rapidement possible des problèmes de planification. Un client de
Seattle me confiait hier qu'après le passage de notre consultant,
il a obtenu des temps de réponse divisé par deux par rapport à
une solution basée sur des algorithmes de recherche personnalisés.
Leur solution n'était pas mauvaise en soi, mais notre moteur
fait mieux !
A propos de ces modules de recherche personnalisés,
Ilog JSolver promet que lorsque le fonctionnement d'une des activités
d'une société est modifiée, il est inutile de réécrire les algorithmes,
comment est-ce possible ?
Dans les modules de recherche personnalisés il n'existe pas de division
entre les contraintes et les algorithmes, il est donc très difficile
de changer la logique du programme lorsque les règles du business
changent, et cela arrive fréquemment. Ilog JSolver intercale justement
une couche de modélisation entre les algorithmes et les contraintes.
Selon le type de changement à répercuter sur le processus d'optimisation,
ces modifications sont effectuées dans l'heure ou en quelques jours
pour des refontes plus importantes.
Comment les contraintes sont-elles definies
?
Java s'avère très utile pour l'intégration
d'une application d'optimisation |
Avant de définir les contraintes il faut passer par une étape
de modélisation afin de décrire le type d'activité impliqué et les
contraintes qui lui sont liées (nombre d'usines, nombre d'employés...).
Vous rentrez ensuite ces informations au sein d'une interface Java
composée d'objets génériques comme le type de décisions, le temps
imparti...
Quel est le délai de mise en place moyen
de Ilog JSolver ?
Il faut compter entre un et deux
mois pour une modélisation optimisée des contraintes, quelques mois
ensuite pour l'intégration et les tests. Selon le type de clients,
c'est plus ou moins 6 mois.
Une nouvelle version d'ILOG Concert Technology
est inclue dans JSolver. Elle "unifie les deux principales techniques
d'optimisation, la programmation par contraintes et la programmation
mathématique". Quelle différence faites-vous entre ces deux types
de programmation ?
La programmation mathématique est très connue. Son histoire débute
aux états-unis dans les années 40. Son domaine de prédilection se
situe autour de problèmes de planification à long terme, d'objectifs
économiques à atteindre par exemple, tout ce qui relève du domaine
stratégique en fait. La programmation par contrainte est davantage
utilisée pour des problèmes "présents", du court terme. Il s'agit
de réagir rapidement sur un problème opérationnel. Pour un constructeur
automobile par exemple, il peut s'agir de calculer quels modèles
de véhicules doivent être conçus en premier sur la chaîne de production,
avec des contraintes de couleurs pourquoi pas, afin qu'un éventuel
changement de machine sur cette chaîne fasse perdre le moins de
temps possible.
Quel est le profil de vos clients ?
Des compagnies aériennes (remplissage des vols, service frêt...),
des constructeurs automobiles, de manière générale partout où la
gestion d'une chaîne logistique est cruciale. Air France, United
Airlines, Michelin, PSA Peugeot Citroën, Daimler Chrysler... nous
font confiance.
Que pensez-vous de Java ?
Java est susceptible de couvrir toute une entreprise. Il s'avère
très utile pour l'intégration d'une application d'optimisation.
La plate-forme J2EE permet à Ilog JSolver de s'intégrer sur des
serveurs d'application tels que BEA WebLogic ou IBM WebSphere. Au
delà de ses facultés à s'insérer dans un environnement web, Java
est aussi très efficace pour développer des applications plus rapidement
qu'en C/C++ grâce entre autres à sa gestion de la mémoire facilitée.
On remarque cependant que les entreprises observent désormais et
attendent ce qui va se passer du côté de la plateforme .Net de Microsoft.
Jusqu'alors Java était seul, les prochains mois vont être intéressants.
Dr. Gregory Glockner a obtenu un doctorat en recherche opérationnelle
au "Georgia Institute of Technology", sa thèse
reçu un prix en 1997. Avant de rejoindre Ilog Gregory Glockner
a travaillé comme analyste en recherche opérationnelle
dans l'aviation, et comme concepteur d'outils statistiques dans
le domaine de l'énergie.
|