• Aucun résultat trouvé

CHAPITRE 2 REVUE DE LITTÉRATURE

2.5 Méthodes de placement utilisées

2.5.2 Méthodes approchées

Le processus de placement des VMs et celui du routage du trafic sont deux problèmes NP- difficiles, qui lorsque combinés, engendrent un problème encore plus difficile. En considérant un cas simple de placement des VMs, où seules les contraintes en termes de capacité phy- sique des équipements sont prises en compte, le problème demeure difficile, car la taille de l’espace de recherche est le nombre de VMs élevé à une puissance correspondant au nombre de serveurs. Ainsi, pour les grandes instances de problèmes, le temps nécessaire à l’évaluation de toutes les possibilités peut conduire à une explosion combinatoire. Ainsi, des méthodes approchées, permettant de trouver de bonnes solutions, en un temps raisonnable, ont été développées et utilisées pour résoudre le problème de placement des VMs et du routage du trafic.

2.5.2.1 Méthodes de construction progressive

Ces approches permettent de construire la solution au fur et à mesure, en se basant sur des règles d’assignation prédéfinies, sans pour autant revoir les décisions prises aux étapes précédentes. Ces méthodes regroupent, entre autres, les algorithmes gloutons qui consistent à trouver, pour chaque VM, le meilleur data center et serveur hôtes. Elles recherchent, par conséquent, pour chaque VM, l’optimum local. Toutefois, en dépit de leur rapidité, ces mé- thodes n’aboutissent à la solution optimale qu’en cas d’homogénéité de l’infrastructure sous- jacente. Dans le cas contraire, la recherche d’un optimum local (meilleur serveur hôte) pour chaque VM ne saurait garantir l’optimalité de la solution. Les méthodes gloutonnes ont été utilisées afin de résoudre le problème de placement des VMs en considérant l’énergie consom- mée et la dégradation de performance des applications (Beloglazov et al., 2012; Quan et al., 2012). Dong et al. (2013) ont également utilisé un algorithme glouton combinant le Minimum Cut et le Best Fit Decreasing (BFD) afin de maximiser l’utilisation des ressources dans le but ultime de réduire l’énergie consommée. Le Minimum Cut permet de regrouper au niveau d’un même commutateur, les VMs avec un large trafic inter-VMs, afin de réduire le nombre de commutateurs actifs. Puis considérant la configuration résultant de la première phase, le BFD optimise le placement des VMs afin de réduire le nombre de serveurs actifs. En raison de leur simplicité d’implémentation et de leur rapidité à trouver une solution, ces méthodes gloutonnes sont souvent utilisées pour déterminer un schéma de placement initial qui sera,

par la suite, amélioré par des mécanismes plus complexes, telles les heuristiques.

2.5.2.2 Métaheuristiques

Une métaheuristique est une approche qui, par le biais de mécanismes aléatoires et itératifs, explore l’espace de recherche, tout en définissant des stratégies d’apprentissage du milieu, dans le but de déterminer des solutions de qualité. Une métaheuristique débute avec une solution initiale et tente, de manière itérative, d’améliorer le coût de cette dernière en visitant les configurations voisines. Une adaptation de la métaheuristique choisie est de mise afin de solutionner le problème d’intérêt, dont les enjeux vont de la simple approche de représentation des solutions, à la définition de mécanismes d’exploration de l’espace de recherche, ou même au réglage des paramètres de simulations. En général, on distingue les méthodes de trajectoire ou de recherche locale, qui sont des algorithmes travaillant avec une unique solution, des métaheuristiques à base de population.

Recherche locale Les techniques de recherche locale explorent l’espace de recherche en générant, de manière itérative, une nouvelle solution dans le voisinage de la solution actuelle, par le biais de mouvements adaptés au problème en question. La solution initiale est souvent construite à l’aide d’un algorithme glouton et plusieurs critères d’arrêt, comme le nombre d’itérations, le temps limite imposé, peuvent être utilisés pour arrêter le processus.

La stratégie de recherche locale la plus simple est la descente. Partant d’une solution ini- tiale, à chaque itération, l’algorithme choisit la meilleure solution, dans le voisinage de la configuration actuelle. L’exploration s’arrête si, à une itération donnée, il n’existe aucun voi- sin améliorant le coût de la solution actuelle. Quoique rapide, le principal inconvénient de cette méthode de descente est son arrêt prématuré au premier minimum local trouvé, le- quel minimum peut être assez loin de l’optimum global, en termes de coût de la solution, comme l’illustre la Figure 2.3. Pour améliorer les performances de cet algorithme, une stra- tégie consiste à perturber la solution actuelle représentant le minimum local de manière à en modifier certains attributs. Ceci permet de déclencher le processus de descente sur une nouvelle configuration. Dans certains cas, les perturbations peuvent être répétées un certain nombre de fois, ce qui permet d’augmenter les chances d’explorer un plus grand nombre de solutions. C’est la Recherche Locale Itérée ou ILS. Il est à noter que la force des perturbations réalisées sur l’optimum local, à la fin d’un processus de descente, doit être convenablement contrôlée, de manière à éviter qu’on ne s’éloigne trop de cette bonne solution. Les auteurs Leivadeas et al. (2013) ont proposé une adaptation du ILS pour partitionner les demandes des utilisateurs à l’échelle de plusieurs data centers, dans le but de minimiser le taux de rejets

des VMs.

Solution initiale s

s remplace s

Solution finale

Solution initiale s

Figure 2.3 Évolution d’une solution dans l’algorithme de descente

Il existe également des métaheuristiques qui dérivent du domaine de la physique, comme le Recuit Simulé ou SA. Contrairement aux méthodes de descente, le Recuit Simulé permet de s’échapper des optima locaux. Il repose sur des techniques utilisées en métallurgie et sur des travaux décrivant l’évolution d’un système thermodynamique. L’algorithme débute avec une solution initiale s0 à laquelle s’associe une énergie E0. À chaque itération, une solution est choisie au hasard dans le voisinage de la solution actuelle. Ce voisin est automatiquement accepté si l’énergie qui lui est associée est inférieure à celle de la configuration courante. Dans le cas contraire, cette solution voisine n’est acceptée qu’avec une certaine probabilité. Une adaptation du SA a été proposée par Wu (2013) afin de réduire l’énergie consommée par les serveurs et les ressources réseau.

L’algorithme de Recherche Tabou ou Tabu Search (TS) présente une structure similaire au SA, mais permet également d’éviter de cycler autour d’une bonne solution. Partant d’une solution initiale, s0, à chaque itération, l’algorithme choisit toujours la meilleure configura- tion, si+1dans le voisinage de la solution actuelle, si, que cette configuration voisine améliore

le coût de si ou pas. Toutefois, dans l’éventualité que si soit également la meilleure solution

dans le voisinage de si+1, l’algorithme aura tendance à cycler autour de ces deux solutions.

Pour remédier à ce problème, l’algorithme introduit un mécanisme de mémoire à court terme, soit la liste tabou, lui permettant de garder un historique des récentes solutions, de façon à ce que ces dernières ne soient pas sélectionnées pour un certain nombre k d’itérations. Tou- tefois, l’existence d’un critère d’aspiration force l’algorithme à parfois choisir une solution, même lorsque cette dernière est taboue. Un exemple de critère d’aspiration consiste à sélec- tionner une configuration taboue si cette dernière est meilleure que toutes les configurations évaluées jusque-là. Outre la liste taboue, des mécanismes de mémoire à moyen (Intensifica-

tion) et long (Diversification) termes peuvent être également implémentés afin d’optimiser les performances de la méthode. Alors que l’Intensification approfondit la recherche autour des meilleures solutions trouvées lors de la Recherche locale, la Diversification relance la re- cherche dans une zone totalement inexplorée, ce qui permet d’élargir l’éventail des solutions possibles. Larumbe et Sanso (2013) ont proposé un algorithme basé sur la Recherche Tabou afin de solutionner le problème de placement des VMs dans un environnement InterCloud.

Métaheuristiques à base de population Les algorithmes à base de population, à l’in- verse des méthodes de recherche locale, font évoluer un ensemble de solutions simultanément. Ces méthodes sont caractérisées par plusieurs itérations d’une phase de coopération, suivie d’une étape d’adaptation. À l’étape de coopération, les solutions sont analysées et combinées entre elles afin de produire de nouvelles solution-enfants héritant des meilleures caractéris- tiques des configurations parentes. À la phase d’adaptation, chaque configuration évolue de manière indépendante. À l’instar des stratégies de recherche locale, plusieurs critères d’arrêt peuvent être définis pour mettre fin à l’exploration de l’espace de recherche.

L’optimisation par colonies de fourmis est un algorithme à base de population s’inspirant de l’éthologie. La conception de cette métaheuristique repose sur le fait que les individus (ou so- lutions) d’une population se partagent le savoir, ce qui guide leurs options futures et orientent leurs compatriotes dans les choix à effectuer. Plus particulièrement, dans leur quête de nour- riture, les fourmis éclaireuses, grâce aux phéromones dégagées sur leur passage, parviennent à indiquer à leurs congénères le plus court chemin reliant le nid à la source de nourriture, lequel chemin se distingue par la forte concentration de phéromones qui y est déposée. Un algorithme basé sur l’optimisation par colonies de fourmis a été proposé par Feller et al. (2011) afin d’assigner les VMs aux serveurs dans le but de réduire le nombre d’équipements actifs et minimiser l’énergie consommée. Cette méthode de résolution a également été utilisée par Gao et al. (2013) afin de réduire l’énergie consommée tout en maximisant l’utilisation des ressources.

L’algorithme génétique est un exemple d’algorithme à base de population, et dont le prin- cipe de fonctionnement repose sur la sélection naturelle et la génétique. L’algorithme débute avec une population initiale de solutions potentielles (individus ou chromosomes). À chaque itération (ou génération), des opérateurs évolutionnaires simples, tels que la sélection, le croi- sement, la mutation, sont appliqués à la population actuelle afin de produire la génération suivante. Au cours de ce processus, certains individus se reproduisent, d’autres disparaissent, et les mieux adaptés parviennent à survivre au fil des générations. Une fois le critère d’ar- rêt atteint, par exemple le nombre de générations (ou le nombre d’itérations), la meilleure solution trouvée, qui représente le meilleur individu de la population, est renvoyée et l’al-

gorithme s’arrête. Mi et al. (2010) ont proposé une adaptation de l’algorithme génétique à des fins de migrations des VMs. Xu et Fortes (2010) ont également développé une approche basée sur l’algorithme génétique dans le but de minimiser le gaspillage de ressources, l’énergie consommée et la dissipation thermique. Wu et al. (2012) ont aussi utilisé ces techniques afin de minimiser l’énergie consommée par les serveurs et les ressources réseau.