Académique Documents
Professionnel Documents
Culture Documents
Optimisation D'une Fonction en Utilisant Ant Colony Optimization ACO
Optimisation D'une Fonction en Utilisant Ant Colony Optimization ACO
Rapport de projet
3 remerciements 3
4 Introduction générale 4
5 But du travail 5
6 CHAPITRE I :
Fondements théoriques de l’ACO 6
6.1 Présentation de l’inspiration de l’ACO : comportement des
fourmis dans la recherche de nourriture. . . . . . . . . . . . . . 7
6.2 Description des principaux concepts de l’ACO : . . . . . . . . 7
7 CHAPITRE II :
Implémentation de l’ACO 9
7.1 Présentation des algorithmes ACO les plus couramment utilisés : 10
7.2 Structure de l’ACO . . . . . . . . . . . . . . . . . . . . . . . . 10
7.2.1 Etape 1 (initialisation) . . . . . . . . . . . . . . . . . . 11
7.2.2 Etape 2 : Tant que (t < tmax) . . . . . . . . . . . . . . 11
7.2.3 Etape 3 : . . . . . . . . . . . . . . . . . . . . . . . . . 12
7.3 L’ACO pour rechercher tous les points extrêmes d’une fonction 12
7.3.1 Partition of Interval and Initialization . . . . . . . . . . 13
7.3.2 Rule of Ant Moving . . . . . . . . . . . . . . . . . . . 14
7.3.3 La règle de mise à jour de phéromone . . . . . . . . . 16
7.3.4 Garder uniquement les intervalles contenant des four-
mis pour réduire la plage de recherche . . . . . . . . . 17
7.3.5 Méthode de recherche de tous les ExtremePoints . . . . 18
8 CHAPITRE III :
Simulation de l’ACO avec MATLAB 20
8.1 Description du logiciel Matlab . . . . . . . . . . . . . . . . . . 21
8.2 Simulation du code matlab . . . . . . . . . . . . . . . . . . . 21
9 CONCLUSION GENERALE 27
1/28
Ant Colony Optimization ACO Projet libre
2/28
Ant Colony Optimization ACO Projet libre
3 remerciements
3/28
Ant Colony Optimization ACO Projet libre
4 Introduction générale
L’optimisation par colonie de fourmis (ACO) est un algorithme d’opti-
misation inspiré du comportement des fourmis dans la recherche de nourri-
ture. Il a été introduit pour la première fois en 1992 par Marco Dorigo, un
chercheur belge, dans son mémoire de doctorat intitulé "Optimisation par
colonie de fourmis : une méthode pour résoudre des problèmes de recherche
de chemin". L’ACO est utilisé pour résoudre des problèmes d’optimisation
en créant des "colonies de fourmis virtuelles" qui cherchent la solution op-
timale en parcourant un espace de recherche. L’idée de base de l’ACO est
de simuler le comportement des fourmis lorsqu’elles cherchent de la nour-
riture. Les fourmis déposent des phéromones sur leur chemin, ce qui attire
d’autres fourmis à emprunter le même chemin. Les chemins les plus fréquem-
ment empruntés deviennent plus "attractifs" en raison de la concentration
accrue de phéromones, ce qui permet aux fourmis de trouver plus efficace-
ment la nourriture. Depuis sa création, l’ACO a été utilisé pour résoudre
une variété de problèmes d’optimisation, tels que la recherche de chemin, le
triage de paquets et la planification de tâches. Il a également été combiné
avec d’autres algorithmes pour améliorer les performances et a été appliqué
à des domaines tels que l’intelligence artificielle, la robotique et la génétique.
En somme, l’ACO est un algorithme d’optimisation efficace qui permet de
résoudre des problèmes complexes en simulant le comportement des fourmis
dans la recherche de nourriture.
4/28
Ant Colony Optimization ACO Projet libre
5 But du travail
Le but de ce projet est d’explorer les possibilités de l’optimisation par
colonie de fourmis (ACO) en utilisant la plateforme de simulation MATLAB.
Nous allons présenter les fondements théoriques de l’ACO, en expliquant
comment il est inspiré du comportement des fourmis dans la recherche de
nourriture. Nous allons également décrire les principaux concepts de l’ACO
tels que les colonie de fourmis virtuelles et les phéromones. Ensuite, nous al-
lons montrer comment implémenter l’ACO en utilisant différentes approches
et les algorithmes les plus couramment utilisés. Enfin, nous allons utiliser la
plateforme de simulation MATLAB pour simuler l’ACO sur différents pro-
blèmes d’optimisation et analyser les résultats obtenus. Enfin, nous allons
présenter les applications de l’ACO dans différents domaines. Ce projet vise
à montrer les avantages de l’utilisation de l’ACO pour résoudre des problèmes
d’optimisation complexes et à montrer comment MATLAB peut être utilisé
pour simuler ces algorithmes.
Ainsi, le présent rapport se divise en 3 chapitres :
5/28
Ant Colony Optimization ACO Projet libre
6 CHAPITRE I :
Fondements théoriques de l’ACO
6/28
Ant Colony Optimization ACO Projet libre
7/28
Ant Colony Optimization ACO Projet libre
indiquer aux autres fourmis qu’elles ont trouvé de la nourriture. Les chemins
les plus fréquemment empruntés deviennent plus "attractifs" en raison de la
concentration accrue de phéromones, ce qui permet aux fourmis de trouver
plus efficacement la nourriture.
Les mécanismes de mise à jour de phéromones permettent de réguler la quan-
tité de phéromones déposée sur un chemin. Il existe différentes approches
pour mettre à jour les phéromones, telles que l’évaporation, la déposition et
l’intensification. Ces mécanismes permettent de réguler la quantité de phéro-
mones déposée sur un chemin pour éviter les chemins avec des phéromones
déposées en excès et les chemins avec aucune phéromones.
En plus de ces concepts clés, il y a d’autres concepts importants liés à l’op-
timisation par colonie de fourmis (ACO).
L’une de ces idées est celle de l’évaporation de phéromones, qui consiste à
réduire graduellement la quantité de phéromones déposées sur un chemin
au fil du temps, pour éviter l’accumulation excessive de phéromones sur des
chemins qui ne mènent pas à des solutions optimales.
Une autre idée importante est celle de la détermination de la probabilité de
transition entre les différents chemins. Cela permet de déterminer avec quelle
probabilité une fourmi virtuelle va choisir un chemin donné en fonction de la
quantité de phéromones déposées sur ce chemin.
Il y a aussi des algorithmes ACO spécifiques qui ont été développés pour
résoudre des problèmes particuliers, tels que l’algorithme ACO-AS (ACO
pour la recherche de meilleur chemin) qui est utilisé pour résoudre des pro-
blèmes de recherche de chemin, et l’algorithme ACO-MTSP (ACO pour le
problème de voyageur de commerce à visiter plusieurs villes) qui est utilisé
pour résoudre des problèmes de planification de tournées.
8/28
Ant Colony Optimization ACO Projet libre
7 CHAPITRE II :
Implémentation de l’ACO
9/28
Ant Colony Optimization ACO Projet libre
10/28
Ant Colony Optimization ACO Projet libre
fourmi peut accéder ; τij (t) est la valeur de phéromone de l’arête (i,
j) ; ηij est une fonction heuristique locale définie comme suit :
11/28
Ant Colony Optimization ACO Projet libre
— Etape 2.2 : Une fois que toutes les fourmis ont terminé leurs voyages,
toutes les valeurs de phéromone sont mises à jour en fonction de
l’équation 2. où L (k) (t) est la longueur de l’itinéraire passé par
Figure 3 – Équation 2
7.2.3 Etape 3 :
Finir la procédure et sélectionner le chemin le plus court en sortie parmi
les itinéraires parcourus par les fourmis.
12/28
Ant Colony Optimization ACO Projet libre
13/28
Ant Colony Optimization ACO Projet libre
14/28
Ant Colony Optimization ACO Projet libre
Supposons que l’intervalle Ii contient une fourmi ak. Si f(xi ) > f(xj ), la
15/28
Ant Colony Optimization ACO Projet libre
constante positive.
Plus f(xi ) f(xj ) est, plus la quantité de phéromone libérée est, plus éventuel-
lement que d’autres fourmis seront attirés à intervalle Ij .Non seulement la
fourmi ak arrive Ij et libère des phéromones, mais aussi d’autres fourmis qui
se déplacent à intervalle Ij et relâcher phéromone trop. Supposez qu’il y a
q ants se déplacera à intervalle Ij au cours de l’étape de l’itération t, qui
sont indiqués par aj1 , aj2 , , ajp . La somme des phéromone par aj1 , aj2 , , ajp
est τj (t). Alors : (Figure 11) Lorsque toutes les fourmis aj1 , aj2 , , ajp se
16/28
Ant Colony Optimization ACO Projet libre
17/28
Ant Colony Optimization ACO Projet libre
18/28
Ant Colony Optimization ACO Projet libre
19/28
Ant Colony Optimization ACO Projet libre
8 CHAPITRE III :
Simulation de l’ACO avec MATLAB
20/28
Ant Colony Optimization ACO Projet libre
21/28
Ant Colony Optimization ACO Projet libre
1 % Inputs :
2 % f : the function to be minimized
3 % a : left endpoint of interval
4 % b : right endpoint of interval
5 % N : number of small intervals to divide the interval into
6 % n_ants : number of ants to use in the algorithm
7
8 % Outputs :
9 % x_min : the estimate of the local minimum
10 % f_min : the function value at the local minimum
11 % a = - pi ; b = pi ; N = 1000; n_ants = 1000;
12
13 function [ x_min , f_min ] = ant_algorithm (f , a , b , N , n_ants )
14
15 f = @ ( x ) sin (2* pi * x ) ;
16 a = - pi ; b = pi ; N = 1000; n_ants = 1000;
17 % Initialize the original N value
18 original_N = N ;
19 num_steps = 100;
20 num_moves = 50;
21 evaporation_rate =0.1;
— Dans une boucle pour un nombre fixe d’étapes, un tableau est ini-
22/28
Ant Colony Optimization ACO Projet libre
23/28
Ant Colony Optimization ACO Projet libre
14
— Suivre les intervalles qui ont des fourmis en eux,comme indiqué par
le bout de code suivant où un tableau de zéros est créé pour sto-
cker les informations sur les intervalles avec des fourmis. La boucle
parcourt chaque fourmi et vérifie si sa position actuelle dépasse la
longueur originale . Si c’est le cas, la position de la fourmi est réini-
tialisée en la soustractant de la longueur originale moins la somme
des intervalles avec des fourmis . On définit l’intervalle actuel de
la fourmi en utilisant sa position actuelle, et puis on met à jour le
tableau pour indiquer qu’il y a une fourmi dans cet intervalle.
1 % Keep track of which intervals have ants
2 i nt e r va l s_ w it h _ an t s = zeros (1 , N ) ;
3 for i = 1: n_ants
4 if ( curre nt_posit ions ( i ) >= original_N )
5 curre nt_posit ions ( i ) = current _positio ns ( i ) -
( original_N - sum ( i n te r va l s _w i th _ a nt s ) ) ;
6 end
7 current_interval = cu rrent_po sitions ( i ) ;
8 i nt e r va l s_ w it h _ an t s ( c urrent_p ositions ( i ) ) = 1;
9 end
— Mise à jour des phéromones : une fois que toutes les fourmis ont
parcouru tous les intervalles, le code met à jour les phéromones
en augmentant celles des intervalles visités par les fourmis et en
réduisant celles des intervalles non visités.
1 % store the indices of the current intervals with ants
2 c u r r e n t _ p o s i t i o n s _ i n d i c e s = find ( i nt e r va l s_ w i th _ an t s
==1) ;
3 % Update the pheromones
4 for i = 1: N
5 pheromones ( i ) = pheromones ( i ) * (1 -
evaporation_rate ) ;
6 for j = 1: n_ants
7 if curre nt_posit ions ( j ) == i
8 pheromones ( i ) = pheromones ( i ) + delta_f ;
24/28
Ant Colony Optimization ACO Projet libre
9 end
10 end
11 end
25/28
Ant Colony Optimization ACO Projet libre
Figure 15 – Compilation
...
26/28
Ant Colony Optimization ACO Projet libre
9 CONCLUSION GENERALE
En conclusion, dans ce projet, nous avons utilisé l’algorithme de colo-
nie de fourmis (ACO) pour optimiser une fonction spécifique. Nous avons
démontré que l’utilisation de l’ACO était efficace pour atteindre des résul-
tats optimaux pour cette fonction en utilisant des techniques d’optimisation
telles que la méthode de recherche locale. Cependant, il est important de no-
ter que l’ACO peut ne pas être la meilleure méthode pour optimiser toutes
les fonctions et il est donc important de considérer plusieurs méthodes d’op-
timisation pour trouver celle qui convient le mieux pour un cas d’utilisation
donné. En général, l’optimisation des fonctions est un domaine en constante
évolution et il y a encore beaucoup de travail à faire pour améliorer les mé-
thodes existantes et en développer de nouvelles.
27/28
Ant Colony Optimization ACO Projet libre
Références
[1] M. Dorigo, V. Maniezzo, and A. Colorni. Ant system : Optimization by
a colony of cooperating agents. IEEE Transactions on Systems, Man,
and Cybernetics Part B (Cybernetics), 1997, 27(1), pp. 29-41.
[2] T. Stützle and H.-H. Hoos. MAX-MIN Ant System. Future Generation
Computer Systems, 2000, 16(8), pp. 889-914.
[3] B. Bullnheimer, R. F. Hartl, and A. Jain. A Better Ant for the Traveling
Salesman Problem. Journal of Heuristics, 1997, 3(4), pp. 365-376.
[4] Chao-Yang Pang and Hui Liu and Xia Li and Yun-Fei Wang and Ben-
Qiong Hu. Apply Ant Colony Algorithm to Search All Extreme Points
of Function. arXiv preprint arXiv :0911.3209, 2009.
[5] C. Blum and A. Roli. Metaheuristics in Combinatorial Optimiza-
tion : Overview and Conceptual Comparison. ACM Computing Surveys
(CSUR), 2010, 42(4), pp. 1-52.
28/28