• Aucun résultat trouvé

CHAPITRE 3 VERS UNE NOUVELLE MÉTHODE POUR LA SYNTHÈSE AUTOMATIQUE DE FORMES

5.1 Algorithmes stochastiques

5 Exploration de l’espace des solutions

solutions dans un temps raisonnable. Elles sont utilisées dès l’instant que les méthodes mathématiques choisies sont impuissantes ou dès l’instant que le problème à résoudre est NP–difficile. Elles sont basées sur des principes aléatoires qui de manière statistique donnent de bons résultats, sans pour autant garantir l’optimalité de la solution obtenue.

Dans la suite, nous présentons deux algorithmes stochastiques et nous illustrons le fait qu’ils peuvent être utilisés.

5.1.1 Le recuit simulé

Historiquement, le principe du recuit simulé21 s’inspire du recuit des matériaux en métallurgie : un métal refroidi trop vite présente de nombreux défauts microscopiques, c’est l’équivalent d’un minimum local. S’il est refroidi plus lentement, les atomes du matériaux se réarrangent, les défauts disparaissent et le métal possède alors une structure interne mieux ordonnée ; c’est l’équivalent du minimum global [Prins 97].

Le principe général de l’algorithme (cf. Figure 3-28) consiste à :

− choisir une solution initiale quelconque ; la température représente l’énergie de cette solution ;

− ensuite, on fait varier la température de la solution jusqu’à la température finale ou jusqu’à la stabilité de la solution ; c’est-à-dire qu’aucune meilleure solution n’a pu être générée. Le nombre maximum de solutions générées par itération est limité par Nb_Max_Modif_Tentées. La modification de la température consiste à étudier le voisinage proche de la solution courante. On étudie donc Nb_Max_Modif_Tentées solutions voisines à la solution courante. Le choix des solutions voisines se fait aléatoirement ce qui justifie le caractère stochastique de la méthode ;

− classiquement, le recuit simulé cherche à diminuer une fonction de coût. Comme nous cherchons la solution qui possède le meilleure degré de satisfaction, nous remplaçons la fonction de coût par une fonction de qualité pour rester cohérent. On calcule alors la différence de qualité qu’il y a entre la solution courante et la solution voisine considérée temporairement ; cette différence est représentée par ΔE ;

− si ΔE est positif, cela signifie que la qualité augmente et par conséquent la solution voisine est meilleure. Elle est donc conservée ;

− si ΔE est négatif, cela signifie que la qualité diminue. Il faut pénaliser cette solution d’autant plus que la température est basse et que la variation ΔE est forte. La fonction exponentielle possède les propriétés désirées. On décide de manière aléatoire l’acceptation de cette solution qui diminue la qualité à l’aide de la fonction Nb_Aléatoire(0,1) ;

− pour assurer la convergence de l’algorithme, la température est diminuée lentement à chaque itération à l’aide de la fonction Évolution(Température).

Les problèmes classiques du recuit simulé sont de déterminer les modifications aléatoires de la solution courante, le calcul de la qualité, et les valeurs initiale et finale de la température. La qualité de la solution est simplement représenté par son degré de satisfaction.

Chapitre 3 Vers une nouvelle méthode pour la synthèse automatique de formes

Thèse de l’université de Metz soutenue le 12 Janvier 2000 – D. Pallez 92

Une solution peut être représentée par l’ensemble de ses paramètres terminaux valués. Ainsi, une modification aléatoire pour déterminer une solution voisine serait en premier lieu de sélectionner aléatoirement le paramètre terminal à modifier. Ensuite, il faudrait choisir aléatoirement la quantité à ajouter ou à retirer au paramètre choisi. Il faudra néanmoins vérifier que la solution voisine ainsi construite appartient toujours à l’espace des solutions. Enfin, la température initiale doit garantir que toutes les modifications sont acceptées pendant les premières itérations ; cela signifie que eΔE/ Température initiale est proche de 1. Comme ΔE est au moins égal à 1, il suffit de choisir une valeur nettement supérieure à 1 pour la température initiale.

5.1.2 Les algorithmes génétiques

Au début de ce chapitre, nous avons déjà présenté le principe de ces algorithmes pour générer des formes complexes. Nous proposons, dans ce paragraphe, d’utiliser ce concept informatique pour obtenir les meilleures solutions de l’espace des solutions. Toutefois, nous retrouvons, ici, les mêmes problèmes liés à ce concept qui sont la modélisation des individus, les méthodes de croisement et de mutation.

Comme pour le recuit simulé, il est possible de modéliser les individus simplement en conservant la liste des valeurs des paramètres terminaux. De ce fait, le croisement se fait en prenant une partie des valeurs d’un individu et une partie des valeurs d’un autre individu. Toutefois, cela présuppose que tous les individus manipulés par l’algorithme génétique appartiennent à la même classe. Il faudra donc appliquer la méthode stochastique pour chaque classe de forme contenue dans la bibliothèque. Enfin, la mutation peut s’effectuer de la même façon que le calcul du voisinage dans l’algorithme du recuit simulé, c’est-à-dire

Algorithme Recuit_Simulé

Solution_Courante ← Choix_Solution_Initiale()

Meilleure_Solution ← Solution_Courante

Température ← Température_Initiale

Solution_Stable ← Faux

Tant que Température ≥ Température_Finale et non Solution_Stable faire

Nb_Modif_Tentées ← 0 Nb_Modif_Acceptées ← 0

Tant que (Nb_Modif_Tentées ≤ Nb_Max_Modif_Tentées) et

(Nb_Modif_Acceptées ≤ Nb_Max_Modif_Acceptées) faire ΔE = Calcul_Variation_Qualité()

Si ΔE > 0 alors Modif_Acceptée ← Vrai sinon si Nb_Aléatoire (0,1) ≤ Température

E

e

Δ

alors Modif_Acceptée ← Vrai sinon Modif_Acceptée ← Faux

Fin si

Nb_Modif_Tentées ← Nb_Modif_ Tentées + 1 Si Modif_Acceptée alors

Nb_Modif_Acceptées ← Nb_Modif_Acceptées + 1

Si Qualité(Solution_Courante) > Qualité(Meilleure_Solution) alors

Meilleure_Solution ← Solution_Courante Fin si Fin si Fin Tant Température ← Évolution(Température) Solution_Stable ← (Nb_Modif_Acceptées = 0) Fin Tant Fin Algorithme

5 Exploration de l’espace des solutions

modifier aléatoirement la valeur d’un des paramètres terminaux de l’individu.

On rencontre le même problème que précédemment à savoir vérifier que l’individu obtenu par croisement ou mutation appartient bien à l’espace des solutions construit. Cette opération de vérification soulève quelques difficultés à cause de l’aspect dynamique des intervalles terminaux : lorsqu’une valeur d’un paramètre terminal est choisie, il est presque inévitable que les intervalles de variation des autres paramètres terminaux changent dans la mesure où les bornes des intervalles sont fonction d’autres paramètres terminaux (cf. 3.4.3).