• Aucun résultat trouvé

Interaction entre l’algèbre linéaire et l’optimisation

Dans le document Courtage sémantique de services de calcul (Page 149-153)

Nous avons vu précédemment, section 4.11 (page 114), que l’algorithme a été étendu pour pouvoir travailler dans plusieurs domaines. Nous allons illustrer cette fonctionnalité dans le cas de l’algèbre linéaire et de l’optimisation.

5.4.1 L’intersection des domaines

Nous avons pu remarquer dans les descriptions que nous avons faites de l’algèbre linéaire et de l’optimisation que certains éléments d’un domaine se retrouvaient dans l’autre (les matrices par exemple). Pour que l’interaction entre des domaines soit possible, il faut que les descriptions données pour ces éléments soient identiques. Dans notre cas, nous re-trouvons en commun les matrices, les matrices symétriques, certaines constantes et certains opérateurs sur les matrices.

Dans la formalisation de l’optimisation, nous ne trouvons pas une description aussi précise des matrices et de leurs opérateurs que dans le cas de l’algèbre linéaire. Cependant, si l’utilisateur à un problème d’optimisation à résoudre, un problème quadratique par exemple et que ce problème nécessite un travail en amont sur une matrice, il serait dommage qu’il ne puisse pas résoudre son problème. Il est alors intéressant de pouvoir basculer dans le domaine de l’algèbre linéaire pour traiter la matrice.

5.4.2 Un exemple : Machines à Vecteurs Supports

La SVM (Support Vector Machines) est une méthode de classification. Cette méthode est utilisée dans différents domaines et donc pas seulement par des utilisateurs experts des

bibliothèques d’algèbre linéaire et d’optimisation.

Au coeur de la SVM, la minimisation d’une forme quadratique sous contrainte d’éga-lités et d’inégad’éga-lités linéaires doit être effectuée. Plus précisément le problème à résoudre est de la forme :

min x

1

2xT(Y ∗ N ∗ Y )x + fTx, Aeqx ≤ beq, Ax = b

Le traitement de cette requête, en ne prenant en compte que l’algèbre linéaire ou que l’optimisation, n’aboutit pas. Mais en faisant interagir nos deux domaines nous sommes en mesure de résoudre ce problème.

En utilisant à la fois le BLAS, LAPACK, la boîte à outils d’optimisation de Matlab et le paquetage E04, l’algorithme de courtage renvoie parmi les solutions :

p1=O; sgemm(’n’, ’n’, ?, ?, ?, 1.0, Y, ?, N, ?, 1.0, p1, ? ); //p1 <- Y*N p2=O; sgemm(’n’, ’n’, ?, ?, ?, 1.0, p1, ?, Y, ?, 1.0, p2, ? ); //p2 <- p1*Y

p3 = quadprog(p2, f, A, b, Aeq, beq ); //résolution du problème quadratique p3;

Pour trouver cette solution, l’algorithme doit être paramétré avec : – nombre d’équations autorisées : 5

– taille maximale des transformations : 1 – profondeur de composition : 3

La solution est obtenue instantanément.

Dans cet exemple, lors du calcul, seules des équations de l’algèbre linéaire sont utili-sées. Mais, si nous posons le problème :

min x

1

2xT(Y ∗ N ∗ Y )x, l ≤ x ≤ u

L’algorithme renvoie par exemple : p1=O; sgemm(’n’, ’n’, ?, ?, ?, 1.0, Y, ?, N, ?, 1.0, p1, ? ); //p1 <- Y*N p2=O; sgemm(’n’, ’n’, ?, ?, ?, 1.0, p1, ?, Y, ?, 1.0, p2, ? ); //p2 <- p1*Y p3 = quadprog(p2, Oc, [ ], [], [ ], [], l, u ); //résolution du problème quadratique

p3;

Pour obtenir cette solution, lors du calcul, des équations des deux domaines sont nécessaires. Pour trouver cette solution, l’algorithme doit être paramétré avec :

– nombre d’équations autorisées : 7 – taille maximale des transformations : 1

– profondeur de composition : 3 Elle est obtenue en 2s.

5.5 Conclusion

Nous venons de voir dans ce chapitre l’utilisation de notre approche dans deux do-maines différents : l’algèbre linéaire et l’optimisation. Ces deux dodo-maines ont été choisis car ce sont des domaines avec lesquels nous sommes familiers. De plus, nous travaillons au quotidien avec des spécialistes de ces domaines, ce qui a facilité notre travail.

Nous avons commencé à étudier d’autres domaines qui semblent bien se prêter à cette représentation : traitement du signal ou de l’image, statistiques et probabilité, ... Ces travaux sont encore à un stade embryonnaire.

Certes le temps de réponse n’est pas toujours négligeable, mais les réponses appor-tées par l’algorithme sont très pertinentes par rapport à la question posée. Ceci n’est pas toujours vrai avec d’autres types de descriptions.

L’interaction entre les domaines est aussi un point important. Il permet de travailler dans plusieurs domaines en parallèle, sans pour autant avoir à les fusionner en un seul. Un tel mécanisme permet de manipuler des domaines qui ne sont pas bien cloisonnés.

Nous allons maintenant conclure et présenter les différentes perspectives qui s’offrent à nous pour prolonger ces travaux.

Conclusion et Perspectives

6.1 Bilan

Nous avons proposé et mis en œuvre une approche pour le courtage de service dé-veloppée pour pallier le manque de précision de certaines approches existantes. L’ajout de précision dans la description des services entraînent une plus grande complexité de la com-paraison des descriptions, nous nous plaçons dans des domaines d’application particuliers afin de garder un temps de calcul raisonnable. La généricité de l’approche et la possibilité de faire interagir plusieurs domaines faiblement couplés assurent que ce positionnement dans un domaine particulier n’est pas une restriction trop contraignante.

Nos travaux s’inspirent du domaine des spécifications formelles en génie logiciel. Plus précisément, la description choisie est basée sur les spécifications algébriques qui offrent un bon compromis entre la facilité d’expression, la richesse sémantique et la construc-tion d’algorithmes de comparaison avec des propriétés correspondant à nos besoins. De plus, cette notation est particulièrement adaptée à la description des services de calcul scientifique qui constituent le domaine d’applications principal de nos travaux. Elle est composée d’une signature hétérogène, avec sous-typage et surcharge, et d’un ensemble d’équations. Cet en-semble d’équations permet de définir les propriétés des opérateurs. Les équations offrent une richesse de description, mais elles rendent la comparaison plus complexe. En effet, la comparaison de deux termes modulo une théorie équationnelle (filtrage équationnel ou unification équationnelle) est indécidable. Il a donc fallu mettre en place d’une part des tech-niques de comparaison semi-décidable et d’autre part des stratégies particulières pour que nos algorithmes terminent. Plus précisément, notre objectif est d’arriver à construire chaque réponse positive en un temps fini, et d’autre part que l’algorithme doit générer toutes les solutions finies avant d’essayer de générer une solution infinie. Notre approche consiste à associer une consommation d’énergie à la construction d’une solution. La quantité d’énergie correspondant au nombre d’équations qui peuvent être appliquées et au nombre de services qui peuvent être composés.

Nous avons défini formellement à partir de la solution dérivée des spécifications al-gébriques, l’ensemble des services qui peuvent être rendus dans un domaine. Nous avons proposé deux algorithmes avec des caractéristiques différentes. Le premier s’inspire des travaux de Gallier et Snyder sur l’unification équationnelle et traite les sous-problèmes de manière indépendante en synthétisant les résultats pour conclure à l’existence d’une solution globale ensuite. Le second repose sur une définition constructive des solutions recherchées

qui répond au fait que la technique de Gallier et Snyder construit un sur-ensemble de ces solutions et qu’il était complexe de restreindre leur approche à nos objectifs tout en préser-vant la propriété de complétude de leur système. Cet algorithme traite les sous-problèmes en séquence et construit la solution au fur et à mesure. Cela permet d’obtenir des performances plus satisfaisantes. Ces deux algorithmes génèrent les solutions finies dont le coût est infé-rieur à une quantité d’énergie donnée, quantifiée en terme de profondeur de composition de services et en coût d’application d’équations.

Les algorithmes s’appuyant sur des approches formelles, nous avons étudié leur cor-rection et leur complétude. Les preuves des corcor-rections des deux algorithmes sont réalisées. Elles permettent de valider formellement l’approche. La complétude du second a également été prouvée pour certaines catégories d’équations. Quelques optimisations sont aussi pro-posées (simplification de la requête, pas de relance sur la requête, ...) pour permettre de trouver d’abord les services les plus intéressants ou de ne pas en calculer certains que nous savons moins intéressants. C’est l’utilisateur qui choisit, ou non, d’utiliser ces optimisations. Des exemples concrets en algèbre linéaire et en optimisation ont été développés afin de montrer les bénéfices d’une telle approche. Ces exemples illustrent bien les capacités de l’algorithme à composer les méthodes et à renvoyer des solutions pertinentes, répondant effectivement au problème.

Dans le document Courtage sémantique de services de calcul (Page 149-153)