Académique Documents
Professionnel Documents
Culture Documents
1
4.1.1 Principe d’Algorithme Génétique :
Ils simulent l'évolution naturelle d'organismes (individus), génération après
génération, en respectant des phénomènes d'hérédité lors de reproduction par
croisement ou mutation et une loi de survie. en développant une analogie entre un
individu dans une population et une solution d'un problème dans un ensemble de
solutions.
Voici la liste d'hypothèses d'évolution dans une population :
Les bons chromosomes doivent avoir une probabilité plus grande d'être choisis
comme parents.
Le mariage de bons parents devraient donner de bons enfants.
Les bons chromosomes doivent avoir une meilleure chance de survivre.
Les croisements cherchent à conserver les meilleures caractéristiques des
parents.
Le rôle des opérateurs de mutation est de créer de la diversité de manière à
éviter la dégénérescence.
2
Gène : Les différents éléments d'un chromosome.
Fitness : On appelle force ou fitness une valeur calculée associée à chaque
chromosome et qui mesure sa qualité.
Opérateur de croisement : C'est un opérateur binaire, à partir de deux parents
conçoit deux enfants ou plus.
Opérateur de mutation : C'est un opérateur unaire qui modifie légèrement un
chromosome.
Remarques :
1) Ils existent d'autres variantes différentes du schéma donné ci-dessus. Nous citons
les différences suivantes :
3
Donner plus de chance de sélection aux individus forts, ie. on attribue à chaque
individu de la population une probabilité d'être reproduit qui est
proportionnelle à sa force (technique de la roulette).
4
permettront de construire une solution en utilisant un générateur.
Le codage binaire est fréquement utilisé, il est efficace lorsque les solutions sont
réels ou formées de réels. On représente ainsi un réel par sa représentation binaire. Ce
type de codage facilite le croisement et la mutation.
Le codage réel n'utilise pas la représenation binaire, il est considéré plus efficace
mais nécessite la conception d'opérateurs de croisement et de mutation adaptés.
Dans les problèmes d'odonnancement ou les problèmes d'optimisation combinatoire
en général, on utilise des valeurs qui ont une signification pour le problème
considéré, par exemple des lettres ou des chiffres, on parle alors de codage
symbolique.
5
pour tout x de V(xo) faire
nouveau = f(x);
si (f(x)<mini) alors
FIN = FAUX ;
meilleur = x ;
mini = f(meilleur);
finsi ;
fin pour tout x ;
xo = meilleur;
fin tant que
xo et meilleur contiennent la meilleure solution trouvée
Remarques :
* Selon l'opérateur de voisinage utilisé, l'algorithme termine avec un minimum
local.
Si dans le voisinage de x0, la meilleure solution a la même fonction objective
que x0 (f(x)=mini), on peut penser qu'on pourrait progresser vers une meilleure
solution (f(x)<mini). Dans ce cas, l'algorithme peut boucler sur un ensemble de
solutions voisines ayant la même fonction objective. Nous verrons plus loins
l'algorithme taboue qui permet d'éviter cette situation.
6
FIN = faux ;
J = 0;
Itérations
tantque FIN == faux faire
FIN = vrai ;
x = v(xo) ;
si(f(x)<f(xo) alors
FIN = FAUX;
J=0;
xo = x ;
sinon
J = J+1;
si J > N alors
vérification pour voir si on est dans un optimum local
meilleur = xo ;
mini = f(meilleur) ;
pour tout x de V(xo) (tant que FIN == VRAI) faire
si (f(x)<mini) alors
FIN = FAUX ;
meilleur = x ;
mini = f(meilleur);
finsi ;
fin pour tout x ;
xo = meilleur;
fin si ; fin de la vérification pour voir si on est dans un optimum local
fin si ; fin du cas initialement non améliorant
fin tant que fin de la progression d'un pas de l'aveugle
xo et meilleur contiennent la meilleure solution trouvée
Remarque :
L'exploration aléatoire nous permet, probablement, de sortir d'un minimum local mais
elle ignore les directions de recherche améliorant la solution. La méthode suivante
utilise un principe physique pour exploiter au mieux les deux approches.
7
4.2.3 Recuit simulé :
Principe thermodynamique : Pour que la structuration finale d'un corps soit
harmonieuse, il est nécessaire qu'il passe par des phases intermédiaires moins
favorables pour atteindre son état final, état qu'il ne pourrait peut-être jamais atteindre
si on cherchait une suite d'états qui tendent de manière uniforme et régulière vers
l'état souhaité. A haute température, le corps passe par de nombreux stades de
transformation qu'il atteint facilement grâce à l'énergie liée à la température, plus la
température baisse et plus les transformations sont régulières et orientées vers l'état
final.
8
un essai
Initialisation de l'essai
xo:=solution aléatoire; Solution de départ
fm:=f(xo); Initilisation meilleure valeur
J:=0; Initialisation compteur arrêt
T:=To; Initialisation Température
Déroulement de l'essai
tantque J ≤ Q faire
Palier température
I:=0; Initialisation compteur palier
Boucle sur les essais élémentaires au sein du palier
........................
........................
(les détails sont dans le listing suivant)
Fin palier température
T:=T*a;
fintantque
retenir fm , xm;
finpour (k) Fin essai
Le résultat est lameilleure solution trouvée par l'ensemble des essais.
Boucle interne (palier de température)
tantque I ≤ N et J ≤ Q faire
x:=VOISIN(xo); une tentative de progression
I:=I+1; incrémentation du compteur pour le palier de température
J:=J+1; incrémentation du compteur pour l'arrêt final d'un essai
si f(x) < f(xo) alors
xo:=x;
si f(xo)<fm alors
xm:=xo;
fm:=fo; = f(xo)
J:=0;
9
finsi;
sinon
∆f:=f(x)-f(xo);
U:=Uniforme(0,1);
si U ≤ exp (- ∆f / T) alors
xo:=x
finsi
finsi;
fintantque
Remarque :
Si le point x est strictement meilleur que le point xo. Il remplace xo et si la solution
est meilleure que la meilleure solution trouvée dans l'essai, on corrige la meilleure
solution trouvée et on remet à 0 le compteur de fin.
Si le point x n'est pas strictement meilleur que le point xo. Il remplace xo avec la
probabilité exp(-perte/température).
La probabilité d'accepter de passer à un point plus mauvais
Figure 3: Un ensemble de villes (nœuds) reliés entre eux par des routes (arcs).
Total=26
Total=21
Figure 5: Le résultat donné par l’algorithme glouton (se délacer d’un sommet vers son plus proche
voisin).
10
Total=22
Total=18
11
à échanger de nouveau ces deux éléments.
12345
21345cons = [(1,2)]
21354 cons = [(1,2), (4,5)]
….
12354 cons = [(1,2), (4,5), (1,2)]
12345 cons = [(1,2), (4,5), (1,2), (4,5)] interdit
12