• Aucun résultat trouvé

3.4 Algorithme évolutionnaire guidé par les connaissances

3.4.6 Mutation « guidée par les connaissances »

Dans la version précédente, la mutation choisie consistait à muter un gène sélectionné aléatoirement et lui donner une valeur aléatoirement parmi l'ensemble des valeurs possibles. Le codage choisi évite l'opération de vérification après la mutation. Néanmoins, la mutation est beaucoup plus sensible aux nombreux gènes inactifs dus au codage. En effet, pour l'exemple de la section § 3.4.2, il y a en moyenne 5.5 gènes inactifs par chromosome et donc la probabilité d’une mutation inutile est de 0.5. Cette mutation peut se révéler utile par la suite si le gène devient actif, ce qui a plus ou moins de chance d’arriver selon l’avancement de la recherche (population stabilisée en fin de recherche ou phase exploratoire). Nous allons réévaluer l’impact des inhibitions sur la mutation par le contrôle de la connaissance structurelle.

Il peut également être modifié selon la connaissance spécifique du problème. Nous avons vu que la première partie du chromosome (choix de chemin pour les nœuds OU dans le graphe) est supposée plus sensible que la seconde partie, essentiellement car les décisions de la première partie contrôlent l’inhibition des décisions suivantes (dans l’ordre du chromosome). R. Chelouah dans [Chelouah et al., 2006] a utilisé cette caractéristique en limitant la mutation à la première partie, dans le but d'explorer globalement l’espace de recherche ou à la seconde partie, pour intensifier la recherche localement.

Le contrôle de l’opérateur de mutation par le modèle de connaissances permet de limiter la destruction de « schèmes » performants. Il est présent dans toutes les méthodes d’optimisation guidée par les connaissances, la plupart du temps par un contrôle des domaines de valeurs possibles pour chaque gène. Ce processus est suffisant pour obtenir une orientation globale puisque la probabilité de chaque gène n’est pas calculée en fonction de l’état des autres gènes (dans la méthode proposée seulement en fonction des nœuds instanciés donc les objectifs et les paramètres environnementaux). Il est possible d’imaginer un contrôle total de l’opérateur de mutation : au fur et

à mesure de l’application de l’opérateur sur le chromosome d’un individu, il instancie le modèle de connaissances avec les choix réalisés pour affiner les probabilités pour les gènes restants. Nous n’avons pas retenu cette solution pour notre étude car elle est contraire à l’esprit de notre démarche de guidage global. En outre, elle nécessiterait un volume de calculs d’inférence bien supérieur à notre calcul de classes.

Nous avons vu que les classes de paramètres fournies par le modèle sont obtenues en considérant que chaque gène est totalement actif (la probabilité de l’état « inhibé » est ramenée à zéro) ou totalement inactif (représenté par un -1). De cette façon, les probabilités dans les classes sont toujours contextualisées selon la connaissance structurelle. Nous allons évaluer l’utilisation de cette information structurelle au travers différents modes sélectionnés selon la variable Mod_Kstruct dans l’algorithme de la figure 3.18. Dans l'opérateur proposé, la connaissance est supposée exacte et doit être utilisée pour éviter la destruction des schèmes performants. Nous avons donc envisagé une démarche généralisée où pour chaque gène, la mutation est décidée selon l’état actif du gène dans l’individu et l’état attendu pour ce gène selon le modèle. Plus le modèle et l’individu sont cohérents, plus la probabilité de mutation est diminuée. De façon simultanée, la mutation conserve les bonnes caractéristiques d’un individu selon le modèle, introduit des connaissances si l’individu est très différent du modèle (ce qui permet d’améliorer l’individu selon les connaissances les plus pertinentes du modèle) et limite la recherche aux gènes restants.

La figure 3.18 présente donc l’opérateur de mutation guidée par les connaissances proposé. Celui-ci correspond à une fonction parcourant la population pour modifier les individus, et qui utilise également en entrée le projet, la probabilité de mutation et la connaissance structurelle. Pour chaque individu de la population, la mutation est appliquée à l’individu selon la probabilité de mutation fixée (Prob_mut). Si l’individu est sélectionné, sa classe d’objectifs est recherchée (voir section précédente), puis, pour chaque gène, les probabilités de la classe sont utilisées pour choisir l’opération réalisée selon le mode utilisé. Si le modèle indique un gène inactif (probabilité de -1), une mutation aléatoire classique est utilisée si la mémoire diploïde n’est pas conservée (Mode_Diplo correspond à la conservation de l’état des gènes inactifs).

Si le gène est actif, nous avons envisagé deux alternatives pour la sélection des gènes à muter. La première appelée Mode_AEmut correspond à une sélection uniforme classique (chaque gène est sélectionné pour la mutation selon la probabilité Pmut). Tandis que la seconde correspond à l’utilisation du modèle pour déterminer si la mutation est réalisée en utilisant la pertinence de l’état courant du gène. Les chances de mutation sont alors inversement proportionnelles à la probabilité de l’état courant du gène. Dans les deux cas, les probabilités de la classe de l’individu sont utilisées pour choisir la nouvelle valeur du gène. Dans notre plateforme, l’algorithme évolutionnaire classique correspond à un algorithme guidé par un modèle uniforme (tous les états de chaque nœud sont équiprobables). Tous les états d’un gène ont une probabilité équivalente d’être sélectionnés. La seconde stratégie appelée Mode_Kmut est particulièrement adaptée lorsqu’on dispose d’un modèle relativement fiable, par contre avec le modèle équiprobable utilisé pour simuler l’AE classique, la probabilité de mutation dépend du nombre d’état de chaque gène. Nous utiliserons donc cette stratégie uniquement pour une première phase d’injection lorsqu’on dispose de données relativement sûres (voir section 4.3.4).

Enfin, la dernière partie de l’opérateur de mutation correspond à l’application de la connaissance structurelle de la même façon que lors de l’initialisation. Si le gène courant correspond à un choix de chemin inhibant d’autres gènes, les gènes désactivés sont enregistrés temporairement au niveau de la classe de l’individu.