• Aucun résultat trouvé

Un algorithme d'évolution différentielle pour la résolution du problème d'arbre dominant

N/A
N/A
Protected

Academic year: 2021

Partager "Un algorithme d'évolution différentielle pour la résolution du problème d'arbre dominant"

Copied!
74
0
0

Texte intégral

(1)

République Algérienne Dénwcratique et PopultUre

Ministère de l'enseignement supérieur et de la recherche scientifique

... ~LN~ ~'JI 4)\$.~l.J W-?.êl ~ r-LJI ~ A

-<

(J 1\

...

9.

.Q

.

~

.:)

.

3

... :

~~I ~.)

'---·

--~.IA.OG/A~

Université

Mohamed Seddik Ben Yahia

-Jijel-FaculJé des Sciences Exactes

et

lnformatûJue

Département de 17nformatique

Mémoire

De Fin d'Etude pour l'obtention du Diplôme de Master en Informatique

Option : Intelligence Artificielle

Thème

Un algorithme d'évolution différentielle pour la résolution

du problème d'arbre dominant

Réalisé par:

laib Bilal

Bouchenine Houcine

Encadré par :

Dr. Berghida Meryem

"?v1

--=

lJ

~,

(2)

~ciement:

Jfous

remercions

avant tout,

«

)f./la,n »

[e

tout puissant

qui nous a écfairé

[e

cliemin

de

{a

réussite et du savoir et

nous a donné

[e

courage

et

{a

vo(onté

pour réa(iser

ce

travail

J{ous remercions tout

cf'

a6ord notre directrice de mémoire

(])r

:Meryem <Bergnidâ

qui a accepté de nous encadrer

et consacrer son temps

à

nous orienter afin

cf'

accompfir

ce travail

Jfous tenons

à

remercier égafement (es mem6res

du jury,

pour avoir accepté de juger ce mémoire.

(3)

Table des matières

Introduction Générale

1 Introduction à l'optimisation 1.1 L'optimisation combinatoire 1.2 Les heuristiques . . . . . . .

1.3 Généralités Sur Les Métaheuristiques 1.3.1 Définition . . 1.3.2 Classification 1.4 Conclusion . . . . 1 4 5 7 8 8 10

2 Métaheuristiques utilisées : Evolution Différentielle et Recuit Simulé 11

2.1 L'algorithme d'évolution différentielle 12

2.1.l Mutation . 13

2.1.2 Croisement 13

2 .1. 3 Sélection . . 14

2.2 L'algorithme de recuit simulé (Simulated Annealing) 15 2.2. l Principe général . . . . . 15

2.2.2 Schéma d'algorithme de recuit simulé 15

2.2.3 Fonction CritMetropolis ( ~' T) 16

2.2.4 Paramètre de température . . . 16

2.3 Conclusion . . . .

3 Problème de l'arbre dominant 3.1 Généralités sur les graphes . .

3.1.1 Graphe . . . .

3.1.2 Notion d'adjacence entre sommets . 3.1.3 Notion de degré d'un sommet 3.1.4 Cheminements et connexités .

3.1.4.1 3.1.4.2 3.1.4.3

Notions de chemin, chaine, cycle et circuit Notions de connexité Distance 17 18

19

19

21 21 22 22 23 23

(4)

3.1.5 Arbres . . . 3.2 Quelques problèmes principaux

3.2.l 3.2.2 3.2.3 3.2.4 3.2.5 Ensemble dominant . . . Arbre de poids minimal (MST) Couverture par sommets Couverture par arêtes La coloration . . . . . 3.3 Problème de l'arbre dominant

3.4 Problèmes connexes au problème DTP

3.4.1 The Connected Dominating Set Problem (CDSP) 3.4.2 Tree Cover Problem (TCP)

3.5 Conclusion . . . . . . . . . . . .

4 Algorithme d'évolution différentielle amélioré 4.1 Encodage de la solution . . . . . . . . . . 4.2 Algorithme d'Evolution Différentielle Amélioré

4.2.l Réglage de paramètres . . . . 4.2.2 Création de la population initiale 4.2.3 Evaluation . 4.2.4 Mutation 4.2.5 Croisement 4.2.6 Sélection . 4.2.7 Recuit simulé 4.3 Conclusion . 5 Résultats et expérimentation 5 .1 Environnement de travail . 5.2 Données de test . . . . . . 5.3 Présentation de l'interface 5.4 Résultats et comparaison .

5.4.l Comparaison avec les petites instances 5.4.2 Comparaison avec les grandes instances . 5.5 Conclusion . . . .

Conclusion générale et perspectives

Table des matières

24 24 24 24 25 26 26 27 29 29 29 29 30 31 31 32 33 38 39

40

42 44 47 48 49 49 50 54 54 57 61 62

(5)

Liste des figures

3.1 exemples des graphes orientés . . . . 3.2 exemples des graphes non orientés . . . . . 3.3 exemple d'un graphe partiel et sous-graphe 3.4 degré d'un sommet dans un graphe non orienté 3.5 degré d'un sommet dans un graphe orienté . . 3.6 degré d'un graphe . . . . 3. 7 chemin, circuit élémentaire et non élémentaire

3.8 exemples de couverture par sommets

3.9 exemples de couverture par arêtes 3.10 exemple d'un problème DT . . . .

4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9

exemple de solution faisable d'un graphe

choix aléatoire du 1er sommet (s9 ) pour solution initiale .

choix aléatoire du 2ème sommet (s8 ) pour solution initiale

choix aléatoire du 3ème sommet (s7 ) pour solution initiale

choix aléatoire du 4ème sommet (s5 ) pour solution initiale

choix aléatoire du 5ème sommet ( s0 ) pour solution initiale

exemple de construction d'une solution initiale par une heuristique

Première étape de la 3ème méthode de génération d'une solution initiale Deuxième étape de la 3ème méthode de génération d'une solution initiale

19 20 20 21 22 22 23 25 26 28 31 34 34 34 35 35 36 37 38 4.10 arbre dominant de la 3ème méthode de génération d'une solution initiale 38

5.1 Représentation d'une instance dans un fichier texte 5.2 Fenêtre principale de l'application

5.3 barre de menu . . . . . . . . . . .

49 50

50

5.4 Chemin d'accès au (aux) fichier(s) des instances . . . . . . 51 5.5 Précision les valeurs des paramètres de l'algorithme d'évolution différentiel 51 5.6 Histogramme des valeurs de fitness . . . . . . . . . . . . . . . . 52 5.7 histogramme de nombre de sommets . . . .

5.8 la barre des raccourcis (barre d'outils) de l'application.

5.9 fenêtre de visualisation du graphe et de l'arbre de dominant

52

53 53

(6)

Liste des figures

5.10 zone des résultats . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 5.11 Représentation graphique des résultats (EADA Vs VNS) pour les petites

instances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 5.12 Représentation graphique des résultats (EADA Vs VNS) pour les grandes

(7)

Liste des tableaux

5.1 5.2 5.3

Résultats de comparaison entre VNS Vs. Solution optimale

Résultats obtenus par notre approche AEDA pour les petites instances Résultats de comparaison entre AEDA Vs. Solution optimale

54 55 56 5.4 Résultats obtenus par l'approche VNS pour les grandes instances . . . 57 5.5 Résultats obtenus par notre approche AEDA pour les grandes instances 58 5.6 Résultats AEDA Vs VNS pour les grandes instances . . . . . . . . 59

(8)

Liste des algorithmes

2.1 Les principales étapes de l'évolution différentielle 14 2.2 Schéma d'algorithme de recuit simulé . . . . 16 3.1 Algorithme de Kruskal . . . 25 3.2 Algorithme de coloration de Welsh et Powell 27 4.1 Pseudo code de l'algorithme AEDA . . . 33 4.2 Création d'une solution initiale aléatoire

..

33 4.3 Construction d'une solution initiale par une heuristique 36

4.4 Evaluation d'une solution 38

4.5 Mutation .. 39

4.6 Croisement 41

4.7 Recuit simulé 45

4.8 Algorithme voisinage_ l 46

(9)

Introduction Générale

Un graphe permet de représenter la structure. les connexions d'un ensemble com-plexe en exprimant les relations entre ses éléments : réseau de communication. réseaux routiers, interaction de diverses espèces animales, circuits électriques, ... etc. Les graphe constituent donc une méthode de pensée qui permet de modéliser une grande variété de problèmes en se ramenant à l'étude de sommets et d'arcs. Les travaux en théorie des graphes sont souvent effectués par des informaticiens, du fait de l'importance qu'y revêt l'aspect algorithmique. La façon dont le graphe est représenté en tant qu'objet mathé-matique est très simple mais l'algorithmique qui on découle de cette représentation sert de support à la résolution d'un vaste échantillon de problèmes.

Au cours des dernières années, de nombreux problèmes d'optimisation combinatoire ont été rencontrés dans le domaine des réseaux de capteurs sans fil (WSN). Le problème de l'arbre dominant (DTP) est l'un des problèmes NP-Hard dans les WSN. Une solution au DTP propose une application pour fournir un squelette virtuel pour le routage dans les réseaux de capteurs. Ce problème consiste à trouver un arbre, disons DT, avec un poids minimum total des arêtes sur un graphe non orienté, pondéré et connexe, de sorte que chaque sommet du graphe soit en DT ou adjacent à un sommet en DT. Il existe des procédures heuristiques efficaces pour ce problème qui atteignent de bonnes solutions en un temps de calcul très court pour les cas avec des centaines de nœuds. Néanmoins, du point de vue des modèles de programmation en nombres entier, seuls quelques modèles exponentiels disponibles peuvent être explorés dans des méthodes exactes pour prouver l'optimalité des instances DT.

Le problème DT comporte plusieurs applications dans la conception de réseau et le routage réseau. Par exemple, la multidiffusion implique la distribution des mêmes données à partir d'un serveur central à plusieurs nœuds du réseau. Dans ce contexte, nous pouvons considérer le poids d'arête comme la consommation d'énergie pour envoyer un message le long de cette arête. Ainsi, le problème devient choisir un ensemble d'arêtes (ou de liens de communication) de poids minimum pour que le serveur achemine les données, ce qui est exactement le problème de DT. Étant donné que tous les nœuds sont au plus à un bond

(10)

Liste des algorithmes

de l'arbre, un message peut être transmis au nœud le plus proche dans l'arbre. Ensuite le message peut être acheminé dans le DT jusqu'à ce qu'il atteigne sa destination. En outre, l'utilisation de DT comme squelette de routage peut aider à réduire la complexité des frais généraux du message.

De nos jours, il existe de nombreux algorithmes d'optimisation qui fonctionnent en utilisant des techniques de recherche à base de gradient et heuristiques dans des contextes déterministes et stochastiques. Afin d'élargir l'applicabilité de l'approche d'optimisation à divers domaines problématiques, les principes naturels et physiques sont imités pour développer des algorithmes d'optimisation robustes. Les algorithmes évolutifs. le recui simulé, l'optimisation des colonies de fourmis, les algorithmes mémétiques, l'optimisa-tion des essaims de particules sont quelques exemples de tels algorithmes. Au cours de la dernière décennie, les algorithmes évolutifs ont été largement utilisés dans différent domaines problématiques et ont réussi à trouver efficacement les solutions quasi opti-males. Depuis sa création en 1995, l'évolution différentielle s'est mérité la réputation d'un optimiseur mondial très efficace (Storn and Price, 1995).

L'algorithme d'évolution différentielle (DE) est une branche de la programmation évolutive développée par Rainer Storn et Kenneth Price (Price and Storn, 1997) pour des problèmes d'optimisation sur des domaines continus. En DE, la valeur de chaque va-riable est représentée par un nombre réel. Les avantages de DE sont sa structure simple, sa facilité d'utilisation, sa vitesse et sa robustesse. DE est l'un des meilleurs algorithmes de type génétique pour résoudre des problèmes avec les variables réelles.

L'évolution différentielle est un outil de conception d'une excellente utilité qui est immé-diatement accessible pour des applications pratiques. DE a été utilisé dans plusieurs ap-plications de sciences et d'ingénierie pour découvrir des solutions efficaces à des problèmes presque intraitable sans faire appel à des connaissances spécialisées ou à des algorithmes de conception complexes. Si un système est susceptible d'être évalué rationnellement, DE peut fournir les moyens d'en extraire les meilleures performances possibles.

Nous nous intéressons dans ce travail à la résolution approchée du problème de l'arbre dominant par un algorithme d'évolution différentielle. Le problème ainsi défini est noté DTP.

L'objectif de ce mémoire est d'adapter l'algorithme d'évolution différentielle pour ré-soudre le problème de l'arbre dominant DTP. L'approche proposée est nommée AEDA (Algorithme d'Evolution Différentielle Amélioré). Cette amélioration est effectuée par l'application de l'algorithme de recuit simulé dans chaque itération. Notre contribution réside dans la discrétisation de cette métaheuristique destinée à résoudre les problèmes

(11)

Liste des algorithmes

continus et d'appliquer le recuit simulé dans chaque itération.

Ce mémoire est constitué de cinq chapitres. Les trois premiers sont consacrés aux études théoriques. Le quatrième chapitre décrit l'approche proposée et le cinquième pré-sente les résultats d'expérimentations sur différentes instances prises de la littérature. Une brève description de ces chapitres est faite dans les paragraphes suivants :

Dans le premier chapitre, nous présentons des notions liées à l'optimisation com -binatoire. Ensuite, nous introduisons la notion des métaheuristiques en présentant de généralités sur ces derniers. Dans le chapitre 2 nous présentons en détails les étapes de l'algorithme d'évolution différentielle pour l'optimisation des problèmes continus. ainsi que l'algorithme de recuit simulé. Dans le chapitre 3, nous présentons quelques notions de bases sur les graphes. Ensuite, nous présentons le problème de l'arbre dominant et le problèmes connexes au problème DT.

Dans le chapitre 4, nous développons l'approche proposée pour résoudre le problème de l'arbre dominant (DTP), pour cela, nous présentons l'approche proposée. à savoir l'algorithme d'évolution différentielle améliorée. Le chapitre 5 est réservé à l'implémen-tation de la méthode proposée (environnement de travail, données de test, résultats et comparaison avec d'autres méthodes). Ce mémoire est clôturé par une conclusion géné -rale.

(12)

Chapitre

1

Introduction

à

l'optimisation

Sommaire

1.1 L'optimisation combinatoire

1.2 Les heuristiques . . . . 1.3 Généralités Sur Les Métaheuristiques

1.4 Conclusion . . . .

5 7 8 10

L'optimisation combinatoire est un domaine vaste où on cherche à optimiser une fonc-tion objectif en fonction de certaines contraintes. Par exemple, on peut vouloir trouver l'arbre couvrant minimal (MST) d'un graphe, le plus court chemin entre deux nœuds d'un graphe, l'appariement maximal dans un graphe biparti ... etc.

Une question connexe consiste à vérifier si une réponse donnée est en effet la solution optimale. Par exemple, compte tenu d'une arborescence, on voudrait vérifier rapidement si l'arbre est en fait l'arbre couvrant minimal (MST). Si l'arbre donné n'est pas le MST, un certificat pour ce fait peut être un arbre couvrant moins coûteux. Cependant, si l'arbre est en effet le MST, on peut essayer d'énumérer tous les arbres et montrer que l'arbre donné est bien l'optimal. Ceci, cependant, n'est pas efficace. On parle alors d'un problème d'optimisation difficile à résoudre.

L'optimisation combinatoire tient une place importante dans la recherche opération-nelle, en mathématiques discrètes et en informatique. En effet, les problèmes d'optimi-sation combinatoire représentent une catégorie de problèmes très difficiles à résoudre [Papadimitriou and Steiglitz, 1982] et de nombreux problèmes pratiques peuvent être formulés sous la forme d'un problème d'optimisation

[Maculan and

Ribeiro

,

1994].

Dans ce chapitre, nous présentons des notions liées à l'optimisation combinatoire et nous introduisons la notion des métaheuristiques qui seront utilisées dans notre travail.

(13)

Chapitre 1. Introduction à l'optimisation

1.1

L'optimisation

combinatoire

Un problème d'optimisation combinatoire, consiste dans un espace discret (i. c. énu-mérable) de solutions réalisables, à trouver la meilleure solution (ou un ensemble des meilleures solutions). La notion de « meilleure solution » est donnée par un critère de qualité via une fonction objectif. Formellement, un problème d'optimisation combina-toire peut être défini par : L'ensemble discret des solutions réalisables du problème. on parle alors d'espace de recherche , et

f

:

n

---+ R la fonction objectif associée au critère de qualité. Le but est de trouver s* E

n

tel que :

s* = argmax{f(s)}

(1.1) s* E r2

On parle d'un problème de maximisation quand la qualité est donnée par une fonction objectif à maximiser et d'un problème de minimisation quand la qualité est donnée par une fonction objectif à minimiser.

La valeur de fitness d'une solution de l'espace de recherche est la valeur de la fonction objectif pour cette solution. L'évaluation d'une solution correspond au calcul de sa valeur de fitness.

Dans ce contexte, nous définissons les termes d'optimum global et d'optimum local associés à un problème d'optimisation. Pour un problème de minimisation (resp. maximisation), un optimum global est une solution s*

En

tel que :

Vs

En

f(s*) ~ f(s) (1.2)

(resp. f(s*) ~ J(s)) (1.3)

Si l'espace de recherche

n

est muni d'une relation de voisinage V. Un optimum local est alors défini comme une solution s* E

n

tel que :

Vs E V(s*), J(s*)

<

f(s) (1.4)

(resp. f(s*)

>

f(s)) (1.5)

Les problèmes d'optimisation peuvent être rencontrés dans plusieurs domaines comme les sciences, l'ingénierie, la gestion ... etc. Par exempl~, un commerçant doit livrer des articles chez ses clients partout en France et souhaite minimiser le coût lié à la livraison. Il dispose de plusieurs camions et doit affecter à chacun d'eux une liste de clients à livrer. Ceci peut être modélisé par un problème d'optimisation combinatoire où l'ensemble des

(14)

Chapitre 1. Introduction à l'optimisation

solutions réalisables correspond à tous les chemins de livraisons possibles et où la distance parcourue par l'ensemble des camions doit être minimale. Ce problème d'optimisation, identifié comme un problème de tournées de véhicules, voit sa difficulté s'accroître à

mesure que le nombre de clients augmente.

Une instance d'un problème est obtenue en donnant des valeurs explicites pour chacun des paramètres du problème instancié. Dans l'exemple précédent. une instance du problème peut correspondre à une liste de clients et, d'articles à livrer et un ensemble de véhicules disponibles le jour considéré. Le jour suivant, l'instance sera différente et la résolution du problème également.

Un algorithme est une séquence d'opérations élémentaires (affectation de variable tests, etc.) qui, quand on le donne une instance d'un problème en entrée. il donne la solution de ce problème en sortie après l'exécution de l'opération finale.

Les deux paramètres les plus importants pour mesurer la qualité d'un algorithme son

son temps d'exécution et l'espace de mémoire qui est utilisée. Le premier paramètre est exprimé en termes de nombre d'instructions nécessaires pour exécuter l'algorithme. Le second paramètre correspond au nombre d'unités de mémoire utilisées par l'algorithme afin de résoudre un problème.

L'utilisation du nombre d'instructions comme unité de temps se justifie par le fait que le même programme utilise le même nombre d'instructions sur deux machines diffé-rentes, mais le temps peut varier, en fonction des vitesses respectives des machines. Nous considérons généralement qu'une instruction correspond à une opération élémentaire, par exemple une affectation, un test, une addition, une multiplication, etc. Ce que nous ap-pelons la complexité en temps ou tout simplement la complexité d'un algorithme nous donne une indication sur le temps qu'il faudra pour résoudre un problème d'une taille donnée. La complexité est généralement définie en termes d'analyse au pire des cas. La complexité d'un problème est équivalente à la complexité du meilleur algorithme résolvant ce problème. Un problème est traitable (ou facile) s'il existe un algorithme polynomial pour le résoudre.

Une grande partie des problèmes d'optimisation combinatoire font partie des pro-blèmes NP-difficiles pour lesquels il n'existe pas d'algorithme de résolution efficace pour toutes les instances [Garey and Johnson, 1990]. Il existe deux classes de méthodes pour résoudre ces problèmes d'optimisation, les méthodes :

• Les méthodes exactes : elles garantissent la complétude de

la résolution,

• Les méthodes approchées : elles perdent la complétude mais gagnent en

(15)

Chapitre 1. Introduction à l'optimisation

Ces méthodes sont souvent testées au préalable sur des instances de la littérature. Ces instances permettent de comparer les méthodes et leur efficacité. On appelle Best-Known Solution BKS, la meilleure solution connue d'une instance. Cette solution

peut être la meilleure parmi les solutions de l'espace de recherche. c'est donc une solution

optimale, ou la meilleure solution trouvée.

Les méthodes exactes énumèrent implicitement toutes les solutions de l'espace de

recherche en utilisant :

• Des mécanismes qui détectent des échecs (calcul de bornes : inférieures (Lower

Bound LB) ou supérieures (Upper Bound UP))

• Et des heuristiques spécifiques au problème qui orientent les choix.

Ces méthodes ont permis de trouver des solutions optimales. Mais ces méthode s'avèrent, malgré les progrès réalisés, plutôt inefficaces à mesure que la taille du problème devient importante.

Les méthodes approchées constituent une alternative très intéressante pour traiter le

problèmes d'optimisation de grande taille si l'optimalité n'est pas primordiale. En effe elles permettent d'obtenir des solutions de qualité intéressante en un temps de calcul ré-duit. Les métaheuristiques font partie de ces méthodes approchées [Jin-Kao et al., 2000]. Les métaheuristiques sont composées de concepts fondamentaux qui permettent de les adapter et de les appliquer à une large classe de problème d'optimisation.

1.2 Les heuristiques

Les heuristiques permettent de trouver des bonnes solutions sur des instances du problème de grande taille. Elles permettent d'obtenir des performances acceptables à des coûts acceptables sur une grande gamme de problèmes. En général, les heuristiques n'ont pas une garantie de performance sur les solutions obtenues.

Elles peuvent être classées en deux familles : les heuristiques constructives qm

sont principalement dédiés à un problème spécifique et essayent de construire une solu-tion unique avec la meilleure qualité possible en choisissant soigneusement les éléments de solution prometteuses. Les heuristiques de recherche mettent en œuvre une

(16)

Chapitre 1. Introduction à l'optimisation

1.3

Généralités Sur Les Métaheuristiques

1.3.1

Définition

Les métaheuristiques sont généralement des stratégies de haut niveau qui guident une heuristique sous-jacente plus spécifique au problème, à améliorer sa performance. L'ob-jectif principal est d'éviter les inconvénients de l'amélioration itérative et, en particulier la descente multiple en permettant à la recherche locale de s'échapper de l'optimum lo-cal. Ceci est réalisé soit en permettant des mouvements de détérioration (accepter une certaine dégradation), ou en générant de nouvelles solutions de départ pour la recherche locale de manière plus intelligente que de fournir des solutions initiales aléatoires.

Les métaheuristiques sont des algorithmes d'usage général qui peuvent être appliqués pour résoudre presque n'importe quel problème d'optimisation. Elles peuvent être consi-dérées comme des méthodes générales de haut niveau qui peuvent être utilisées en tant que stratégie de guidage dans la conception des heuristiques pour résoudre des problèmes d'optimisation spécifiques.

Les métaheuristiques sont utilisées lorsque le problème est difficile et de grande taille leurs objectif est de trouver une solution proche de l'optimal rapidement.

1.3.2

Classification

On peut faire la différence entre les métaheuristiques qui s'inspirent de phénomènes naturels et celles qui ne s'en inspirent pas. Par exemple, les algorithmes génétiques et les algorithmes de colonies de fourmis s'inspirent respectivement de la théorie de l'évolution et du comportement de fourmis à la recherche de nourriture. Par contre, la méthode Tabou ne semble pas être inspirée d'un phénomène naturel.

Une telle classification ne semble cependant pas très utile et est parfois difficile à réaliser. En effet, il existe de nombreuses métaheuristiques récentes qu'il est difficile de les classer dans l'une des deux catégories. Certains se demandent par exemple si l'utilisation d'une mémoire dans la méthode Tabou n'est pas directement inspirée de la nature.

Une autre façon de classifier les métaheuristiques est de distinguer celles qui travaillent avec une population de solutions de celles qui ne manipulent qu'une seule solution à la fois. Les méthodes qui tentent itérativement d'améliorer une seule solution sont appelées méthodes de recherche locale ou méthodes à trajectoire. La méthode Tabou, le Recuit Simulé et la Recherche à Voisinages Variables sont des exemples typiques de méthodes

à trajectoire. Ces méthodes construisent une trajectoire dans l'espace des solutions en tentant de se diriger vers la solution optimale.

(17)

Chapitre 1. Introduction à l'optimisation

Les métaheuristiques à base de population cherchent à améliorer, au fur et à mesure des itérations, une population de solutions. L'exemple le plus connu des méthodes qui travaillent avec une population de solutions est l'algorithme génétique.

Les métaheuristiques peuvent également être classées selon leur manière d'utiliser la fonction objectif. Étant donné un problème d'optimisation consistant à minimiser une fonction

f

sur un espace S de solutions, certaines Métaheuristiques dites statique. travaillent directement sur

f

alors que d'autres, dites dynamiques, font usage d·une fonction g obtenue à partir de

f

en ajoutant quelques composantes qui permettent de modifier la topologie de l'espace des solutions, ces composantes additionnelles peuvent varier durant le processus de recherche.

Des chercheurs préfèrent classifier les métaheuristiques en fonction du nombre de structures de voisinages utilisées. Étant donné qu'un minimum local relativement à un type de voisinage ne l'est pas forcément pour un autre type de voisinage, il peut être intéressant d'utiliser des métaheuristiques basées sur plusieurs types de voisinages.

Certaines métaheuristiques font usage de l'historique de la recherche au cours de l'optimisation, alors que d'autres n'ont aucune mémoire du passé. Les algorithmes sans mémoire sont en fait des processus markoviens puisque l'action à réaliser est totalement déterminée par la situation courante. Les métaheuristiques qui font usage de l'historique de la recherche peuvent le faire de diverses manières. On différentie généralement les méthodes ayant une mémoire à court terme de celles qui ont une mémoire à long terme. Finalement, mentionnant que certaines métaheuristiques utilisent les concepts addi -tionnels que sont la diversification et l'intensification.

La diversification (ou exploration, synonyme utilisé presque indifféremment dans la littérature) désigne les processus visant à explorer différentes zones dans l'espace de recherche du problème à optimiser. L'intensification (ou exploitation) vise à parcourir une zone de l'espace de recherche pour trouver la meilleure solution. La mémoire est le support de l'apprentissage, qui permet à l'algorithme de ne tenir compte que des zones où l'optimum global est susceptible de se trouver, évitant ainsi les optima locaux.

Les métaheuristiques progressent de façon itérative, en alternant des phases d'intensification, de diversification et d'apprentissage. L'état de départ est souvent choisi aléatoirement, l'algorithme se déroulant ensuite jusqu'à ce qu'un critère d'arrêt soit atteint. Les notions d'intensification et de diversification sont prépondérantes dans la conception des métaheuristiques, qui doivent atteindre un équilibre délicat entre ces deux dynamiques de recherches. Les deux notions ne sont donc pas contradictoires, mais complémentaires, et il existe de nombreuses stratégies les mêlant.

(18)

Chapitre 1. Introduction à l'optimisation

Les métaheuristiques présentent une classe des méthodes simples à mettre en œuvre, comme le cas du recuit simulé, d'autres sont bien adaptées à la résolution de certaines classes de problèmes ... etc. Selon le« No Free Lunch Theorem [Ho and Pepyne, 2002]», il n'existe pas de métaheuristique qui soit meilleure que toutes les autres métaheuristiques pour tous les problèmes. Dans la pratique, il existera toujours des instances pour les-quelles une métaheuristique est meilleure qu'une autre. Quel que soit la métaheuristique choisie, elle présente des avantages et des inconvénients.

1.4 C

oncl

us

io

n

La majorité des problèmes d'optimisation combinatoire appartiennent à la classe NP-Difficile. Leur résolution ne peut se faire que de manière approchée, car à ce jour il n'existe aucun algorithme permettant leur résolution en un temps polynomial. Pour cela, on fait appel aux métaheuristiques.

Dans le chapitre suivant, nous présentons les métaheuristiques utilisées dans notre travail à savoir l'évolution différentielle et le recuit simulé.

(19)

Chapitre

2

é

: Evolution

Différentielle et Recuit Simulé

Sommaire

2.1 L'algorithme d'évolution différentielle

2.2 L'algorithme de recuit simulé (Simulated Annealing) 2.3 Conclusion . . . .

12

15

17

L'évolution différentielle ED est une méthode pour l'optimisation mathématique des

fonctions multidimensionnelles. Elle est très utile lorsque les paramètres ne peuvent pas

être codés comme des vecteurs réels. L'idée principale derrière l'évolution différentielle

est l'utilisation d'un opérateur de recombinaison ternaire pour la création de nouvelles

générations. Le nouvel individu est créé en ajoutant la différence entre deux individus

à un troisième individu. Cette méthode a beaucoup évolué depuis le modèle de base et

plusieurs améliorations lui ont été proposées.

L'ED est un algorithme à base de population, alors que l'algorithme de recuit simulé est un algorithme à trajectoire inspiré d'un processus utilisé en métallurgie.

Dans ce chapitre, nous présentons en détails les étapes de l'algorithme d'évolution différentielle pour l'optimisation des problèmes continus, ainsi que l'algorithme de recuit simulé.

(20)

Chapitre 2. Métaheuristiques utilisées : Evolution Différentielle et Recuit Simulé

2.1

L'algorithme

d'évolution

différentielle

L'évolution différentielle (Differential Evolution DE) est une métaheuristique d'opti-misation stochastique. Elle a été inspirée par les algorithmes génétiques et des stratégies évolutionnaires combinées avec une technique géométrique de recherche. Les algorithmes génétiques changent la structure des individus en utilisant la mutation et le croisemen alors que les stratégies évolutionnaires réalisent l'auto-adaptation par une manipula-tion géométrique des individus. Ces idées ont été mises en œuvre grâce à une opération simple, mais puissante, de mutation de vecteurs, proposée en 1995 par K. Price et R. Storn [Storn and Price, 1997].

Même si, à l'origine, la méthode de l'évolution différentielle était conçue pour les problèmes d'optimisation continus et sans contraintes, ses extensions actuelles peuvent permettre de traiter les problèmes à variables mixtes et gèrent les contraintes non linéaires [Lampinen and Zelinka, 1999]. Cette méthode a montré son efficacité lors de son applica-tion sur différents problèmes d'optimisation [Bell, 2012, Vucetic, 2012, Gong et al., 2010 Ali and Ahmed, 2015].

Dans la méthode DE, la population initiale est générée par tirage aléatoire uniforme sur l'ensemble des valeurs possibles de chaque variable. Les bornes inférieures et supé

-rieures des variables sont spécifiées par l'utilisateur selon la nature du problème. Après

l'initialisation, l'algorithme effectue une série de transformations sur les individus, dans un processus appelé évolution.

DE s'inspire en partie de la boucle évolutionnaire car il peut se décomposer en plu-sieurs phases proches des techniques évolutionnaires :

• initialisation ;

• mutation;

• croisement ;

• sélection.

La population contient N individus. Chaque individu xi,G est un vecteur de dimension

D, où G désigne la génération :

Xi,G

=

(x1i,G1 X2i,G1 ... , XDi,G) avec i

=

1, 2, ... N (2.1)

A chaque génération, l'algorithme applique successivement les trois opérations

(21)

Chapitre 2. Métaheuristiques utilisées : Evolution Différentielle et Recuit Simulé

vector)

ui,G+l - (uli,G+li U2i,G+1, ... , UDi,G+l) avec i = 1, 2, ... N (2.2)

Une opération de sélection permet de choisir les individus à conserver pour la nouvelle

génération ( G

+

1).

2.1.1

Mutation

La mutation est une phase importante pour DE car elle permet la génération d·un

vecteur variant qui est généré pour chaque vecteur xi,G de la population. Pour chaque

vecteur courant xi,G, on génère un vecteur mutant vi,G+l qui peut être créé en utilisant

une des stratégies de mutation suivantes :

Rand/1 : Vi , G+l = Xrl G '

+

F.(Xr2 G -, Xr3 a) '

(

2

.

3

)

Best/1 : Vi , G+l = Xbest G '

+

F.(xrl G ' - Xr2 a) )

(2

.

4)

Current to best/1 :

Vi G+l =Xi G ' '

+

F.(xri G , - Xr2 , a) + F.(Xbest G ' - Xi , a)

(

2

.

5

)

Best/2:

Vi,G+l = Xbest,G

+

F.(Xrl,G - Xr2,a)

+

F.(x3,G - X4,a)

(2.6)

Rand/2 :

Vi G+l = Xrl G

+

F.(Xr2 G - Xr3 a)+ F.(xr4 G - Xr5 a)

l ' ' ' , , (2.7)

Les indices r1, r2, r 3 , r4 et r 5 E {1, 2, ... , N} sont des entiers aléatoires et tous différents.

Ils sont également choisis différents de l'indice courant i. Xbest,G est le meilleur individu

à la Gème génération. F E [O, 2] est une valeur constante, appelée differential weight, qui

contrôle l'amplification de la variation différentielle de ( Xri,G - Xrj,G).

2.1.2 Croisement

Après la mutation, une opération de croisement binaire forme le vecteur d'essai final

ui,G+i, selon le vecteur xi,G et le vecteur mutant correspondant vi,G+l · Le croisement

permet dans le cadre de l'évolution différentielle de conserver un certain taux de diversité

(22)

Chapitre 2. Métaheuristiques utilisées : Evolution Différentielle et Recuit Simulé

crée et l'opérateur de croisement garantit qu'au minimum un des éléments du vecteur

variant sera conservé. Le nouveau vecteur ui,G+l est donné par la formule suivante :

V1i,G+1 si ( randb(j) ::; CR) ou j = rnbr( i)

Uji,G+l = pour tout j E {1, 2, ... , D} (2.8)

Xji,G si (randb(j)

>

CR) et j =/:- rnbr( i)

randb(j) est la jème valeur procurée un générateur de nombre aléatoire uniforme

appartenant à l'intervalle (0, 1].

CR est le coefficient de croisement qui appartient à l'intervalle

[O,

1] et est déterminé par

l'utilisateur. rnbr(i) est un indice choisi au hasard dans l'ensemble {1, 2, ... , N}.

2.1.3

Sélection

Pour décider quel vecteur, parmi ui,G+l ou xi,G, doit être choisi dans la génération

G

+

1, on doit comparer les valeurs de fonction du cout de ces deux vecteurs. En effet, on

garde le vecteur ayant la plus petite valeur de fonction du cout en cas de minimisation.

Le nouveau vecteur xi,G+l est choisi selon l'expression suivante :

{

Ui,G+l si J(ui,G+1)

<

j(xi,G)

Xi,G+l =

xi,G sinon

(2.9)

Ces quatre étapes sont réitérées jusqu'à ce qu'un nombre maximal d'itérations soit at

-teint ou jusqu'à ce qu'une solution soit trouvée. Une des grandes forces de l'évolution

différentielle est qu'elle est relativement simple à programmer et que seuls trois princ i-paux paramètres sont nécessaires a son bon fonctionnement : la taille de la population (N), le taux de croisement (CR) et le facteur d'échelle (F). L'algorithme 2.1 résume les

principales étapes de l'évolution différentielle :

Algorithm 2.1 Les principales étapes de l'évolution différentielle

1: pour tout les vecteurs

xi

faire

2: Calculer r 1 , r2, r3 et r 4 tels que i =/:- r1 =/:- r2 =/:- r3 =/:- r 4

3: Calculer le vecteur variant

Vi

4: Créer le vecteur d'essai Ui

5: si

f

(Ui)

<

f

(Xi) alors

6: remplacer

xi

par

ui

7: fin si

8: fin pour

(23)

Chapitre 2. Métaheuristiques utilisées : Evolution Différentielle et Recuit Simulé

2.2

L'algorithme de

recuit

simulé (Simulated

Annea-ling)

Le recuit est le fait de tremper certains alliages de métal, de verre ou de cristal en chauffant au-dessus de son point de fusion, en maintenant sa température, puis en

le refroidissant très lentement jusqu'à ce qu'il se solidifie dans une structure cristalline

parfaite. Ce processus physique / chimique produit des matériaux de haute qualité. La simulation de ce processus est connue sous le nom de recuit simulé (Simulated Annealing SA) [Cerny, 1985, Kirkpatrick et al., 1983].

L'état de cristal sans défaut correspond à la configuration d'énergie minimale globale. Il existe une analogie de SA avec une procédure d'optimisation. Les états des matériaux physiques correspondent à des solutions du problème, l'énergie d'un état correspond au coût d'une solution et la température correspond à un paramètre de contrôle.

L'algorithme de Metropolis est une méthode simple pour simuler l'évolution à

l'équi-libre thermique d'un solide pour une température donnée [Metropolis et al., 1953]. SA

[Kirkpatrick et al., 1983] est une variante de l'algorithme de Metropolis, où la tempéra-ture change de haut en bas. SA se compose essentiellement de deux processus stochas -tiques : un processus de génération de solutions et l'autre pour l'acceptation de solutions.

2.2.1

Principe général

L'idée est d'effectuer un mouvement selon une distribution de probabilité qui dépend de la qualité des différents voisins : Les meilleurs voisins ont une probabilité plus éle

-vée; Les moins bons ont une probabilité plus faible. On utilise un paramètre, appelé la

température (notée T) :

T élevée : tous les voisins ont à peu près la même probabilité d'être acceptés.

T faible : un mouvement qui dégrade la fonction de coût a une faible probabilité d'être choisi.

T = 0 : aucune dégradation de la fonction de coût n'est acceptée.

La température varie au cours de la recherche : T est élevée au début, puis diminue et finit par tendre vers O.

2.2.2 Schéma d'algorithme de recuit simulé

L'algorithme illustrant le schéma d'algorithme de recuit simulé est présenté dans

(24)

Chapitre 2. Métaheuristiques utilisées : Evolution Différentielle et Recuit Simulé

Algorithm 2.2 Schéma d'algorithme de recuit simulé

1: Engendrer une configuration initiale Sa de S;

2: S :=Sa

3: Initialiser T en fonction du schéma de refroidissement

4: répéter

5: Engendrer un voisin aléatoire S' de S 6: Calculer !:l

=

f

(S') -

f

(S)

7: si CritMetropolis ( tl, T) alors

8: S := S'

9: Mettre T à jour en fonction du schéma de refroidissement 10: fin si

11: jusqu'à condition de fin

12: Retourner la meilleure configuration trouvée

2.2.3

Fonction CritMetropolis

(~,

T)

Si !:l :::; 0 renvoyer VRAI

Sinon

• avec une probabilité de exp( - ~) renvoyer VRAI • Sinon renvoyer FAUX

./ Un voisin qui améliore (!l

<

0) ou à coût égal (!l

=

0) est toujours accepté .

./ Une dégradation faible est acceptée avec une probabilité plus grande qu'une dégra-dation plus importante .

./ La fonction CritMetropolis ( !l, T) est une fonction stochastique : appelée deux fois

avec les mêmes arguments, elle peut renvoyer tantôt «vrai» et tantôt «faux».

2.2.4 Paramètre de température

Dans la fonction CritMetropolis ( !l, T), le paramètre T (température) est un réel positif. La température permet de contrôler l'acceptation des dégradations : Si T est grand, les dégradations sont acceptées avec une probabilité plus grande. A la limite, quand T tend vers l'infini, tout voisin est systématiquement accepté. Inversement, pour T

=

0, une dégradation n'est jamais acceptée.

La fonction qui spécifie l'évolution de la température est appelé le schéma de

refroi-dissement.

Dans la méthode RS, les mécanismes d'intensification et de diversification sont contrô-lés par la température. Pendant le processus de recherche, La température « T » va dimi-nuer. L'idée est de diminuer petit à petit la chance d'accepter des solutions qui dégradent la fonction objectif.

(25)

Chapitre 2. Métaheuristiques utilisées : Evolution Différentielle et Recuit Simulé

2.3

Conclusion

Dans ce chapitre, nous avons présenté les algorithmes généraux des métaheuristiques utilisées dans notre mémoire, à savoir, l'algorithme d'évolution différentielle et l'algo-rithme de recuit simulé.

Dans le chapitre qui suit, nous allons introduire le problème étudié de l'arbre domi-nant.

(26)

Chapitre

3

Pro blèrne de l'arbre dominant

Sommaire

3.1 Généralités sur les graphes . 3.2 Quelques problèmes principaux

3.3 Problème de l'arbre dominant . . .

3.4 Problèmes connexes au problème DTP 3.5 Conclusion . . . . 19 24 27 29 29

Un mathématicien confronté à un problème de la vie réelle s'empresse de traduire celui-ci en un problème mathématique, qu'il peut alors tenter de résoudre. Dans sa boîte

à outils mathématiques, les graphes peuvent s'avérer fort utiles. [Topart, 2011]

Les graphes sont un outil de modélisation puissant et très intuitif. Ils sont naturel-lement utilisés pour représenter des réseaux de transport, de communication, et plus généralement des flux de matières ou d'informations. Ils sont également utilisés pour

modéliser des problèmes dans lesquels des objets sont en relation, les sommets du graphe représentant ces objets et les arêtes (ou arcs si une orientation est considérée) les relations

entre ces objets. [Diestel, 2000]

Le problème d'optimisation considéré est modélisé par les outils de la théorie des

graphes ensuite une solution est cherchée qui est généralement un algorithme. Parmi les

problèmes modélisés par la théorie des graphes on cite : le problème d'affectation, de flot

maximum ou minimum, de transport, de voyageur de commerce, de l'arbre dominant

etc. [MOUHOUB, ]

Dans ce chapitre nous présentons des généralités sur les graphes et le problème de l'arbre dominant liées au travail ainsi que les problèmes connectés au problème DT.

(27)

Chapitre 3. Problème de l'arbre dominant

3.1

Généralités

sur

les

graphes

L'histoire de la théorie des graphes débute peut-être avec les travaux d,Euler au

XVIIIe siècle et trouve son origine dans l'étude de certains problèmes, tels que celui

des ponts de Konigsberg (les habitants de Konigsberg se demandaient s,il était possible

en partant d,un quartier quelconque de la ville, de traverser tous les ponts sans passer

deux fois par le même et de revenir à leur point de départ), la marche du cavalier sur

P échiquier ou le problème de coloriage de cartes.

3.1.1

Graphe

Un graphe G (S, A) est défini par :

- Un ensemble S

=

{

s1 , s2 , s3 , ... } de points (appelés « sommets

»),

le plus souvent

symbolisés par des numéros (1, 2, 3, etc ... ), ou par des lettres (a, b, c ... ).

Des liens A = { a1 , a2 , a3 , ... } reliant certains sommets entre eux ; ces liens qui créent

donc des couples de sommets (si, sj) E 82, se nommeront (et se représenteront sur

le dessin) par des « arcs

»

ou des « arêtes

».

Un graphe peut être orienté ou non :

Dans un graphe orienté, les couples (si, sj) E A sont orientés, c'est à dire que

(si, sj) est un couple ordonné, où si est le sommet initial, et Sj le sommet terminal.

Un couple (si, Sj) est appelé un arc, et est représenté graphiquement par si - t Sj

Par exemple,

I ~ ,'\..~,

'

'

?:;

, '\

2 ! . ... . . ,. 1 j _ /,

/

. ..,\

.

./

... ~,... ..,,,,. ... -.... -·"'''" ..,~

'

-..__,,( ~·~ -·· .... ~A.,/-.... ,;'_,&~ ff1•1 j f .,:'\

v

FIGURE 3.1 - exemples des graphes orientés

la figure 3.1 représente le graphe orienté G = (S, A) avec S = {l; 2; 3; 4; 5; 6} et

A= {

(

l

;

2);

(2; 4); (2; 5); (4; 1); (4; 4); (4; 5); (5; 4); (6; 3)}.

- Dans un graphe non orienté, les couples

(si, sJ)

E A ne sont

pas orientés

,

c'est

à dire que (si, sj) est équivalent à (sj, si)· Une paire (si, sj) est appelée une arête,

(28)

Chapitre 3. Problème de l'arbre dominant

Par exemple, la figure 3.2 représente le graphe non orienté G = (S, A) avec S = {l; 2; 3; 4; 5; 6} et A

=

{

(1; 2); (1; 5); (5; 2); (3; 6)}.

,,--

-( ... 1 \ .) - --j_ __ >

__

-". / ') /

-:;-</

\.._: j

(0

(

..

) '-- ,.,.

FIGURE 3.2 - exemples des graphes non orientés

Terminologie

L'ordre d'un graphe est le nombre de ses sommets.

Une boucle est un arc ou une arête reliant un sommet à lui-même.

Un graphe non-orienté est dit simple s'il ne comporte pas de boucle, et s'il ne comporte jamais plus d'une arête entre deux sommets. Un graphe non orienté qui

n'est pas simple est un multigraphe.

Dans le cas d'un multi-graphe, A n'est plus un ensemble mais un multi-ensemble d'arêtes. On se restreindra généralement dans la suite aux graphes simples.

Un graphe orienté est un p-graphe s'il comporte au plus parcs entre deux sommets.

Le plus souvent, on étudiera des 1-graphes.

Un graphe partiel d'un graphe orienté ou non est le graphe obtenu en supprimant certains arcs ou arêtes.

Un sous-graphe d'un graphe orienté ou non est le graphe obtenu en supprimant certains sommets et tous les arcs ou arêtes incidents aux sommets supprimés. La figure 3.3 est un exemple de graphe partiel et sous-graphe :

-

cv

G

Grnohi! partiel Sous-graphe iuduft pa:r 1.2,J.~

(29)

Chapitre 3. Problème de l'arbre dominant

Un graphe orienté est dit élémentaire s'il ne contient pas de boucle.

Un graphe orienté est dit complet s'il comporte un arc (si, sj) et un arc (sj, si) pour tout couple de sommets différents si, Sj E s2 .De même, un graphe non-orienté est dit complet s'il comporte une arête (si, Sj) pour toute paire de sommets différents

si, Sj E 82 .

3.1.2 Notion

d'adjacence

entre sommets

Dans un graphe non orienté, un sommet si est dit adjacent à un autre sommet Sj s1

il

existe une arête entre si et Sj . L'ensemble des sommets adjacents à un sommet si e

défini par: adj(si) = {sj/(si, sj) E A ou (sj, si) E A}

- Dans un graphe orienté, on distingue les sommets successeurs des sommets prédé -cesseurs : suce( si)= {sj/(si, sj) E A}

pred(si) = {sj/(sj,si) E A}

3.1.3

Notion de degré d'un sommet

Dans un graphe non orienté, le degré d'un sommet est le nombre d'arêtes incidentes

à ce sommet (dans le cas d'un graphe simple, on aura d0(si)

= ladj(si)I. La figure 3.4 montre le degré d'un sommet dans un graphe non orienté.

FIGURE 3.4 - degré d'un sommet dans un graphe non orienté

Ce graphe possède 6 arêtes et chaque sommet du graphe est de degré 3.

Dans un graphe orienté, le demi-degré extérieur d'un sommet si, noté d0+(si), est le

nombre d'arcs partant de si (dans le cas d'un 1-graphe, on aura d0+(si) = lsucc(si)I. De même, le demi-degré intérieur d'un sommet si, noté d0-(si), est le nombre d'arcs

arrivant à si (dans le cas d'un 1-graphe, on aura d0

- ( si)

=

lpred( si)

I ·

La figure 3.5 montre le degré d'un sommet dans un graphe orienté.

(30)

Chapitre 3. Problème de l'arbre dominant

G

FIGURE 3.5 - degré d'un sommet dans un graphe orienté

d0+(2) = 3, d0- ( 4) = 2

Propriété : La somme des degrés de tous les sommets d'un graphe est égale au double

du nombre total d'arêtes de ce graphe.En particulier, c'est un nombre pair.

Le degré d'un graphe est le degré maximum de tous ses sommets. Dans la figure 3.6

le degré du graphe est 4, à cause du sommet 3.

FIGURE 3.6 - degré d'un graphe

Un graphe dont tous les sommets ont le même degré est dit régulier. Si le degré

commun est k, alors on dit que le graphe est k-régulier.

3.1.4

Cheminements et connexités

3.1.4.1 Notions de chemin, chaine, cycle et circuit

Dans un graphe orienté, un chemin d'un sommet u vers un sommet v est une séquence

<

so, s1, s2, .... , sk >de sommets tels que u = s0 , v = sk, et (si_1; si) E A pour i E [1..k]. La longueur du chemin est le nombre d'arcs dans le chemin, c'est-à-dire k. On dira que

le chemin contient les sommets s0 , si, ... , sk, et les arcs (s0 , s1), (s1, s2), ... , (sk-1, sk)· S'il

existe un chemin de u à v, on dira que v est accessible à partir de u. Un chemin est

élémentaire si les sommets qu'il contient sont tous distincts.

Dans un graphe orienté, un chemin

<

sO, sl, ... , sk > forme un circuit si sO

=

sk et

si le chemin comporte au moins un arc ( k ~

l).

Ce circuit est

élémentaire

si

en plus

les sommets sl, s2, ... , sk sont tous distincts. Une boucle est un circuit de longueur 1.

(31)

Chapitre 3. Problème de l'arbre dominant

ltj)

l

'-'

1

(3)

/,,

...__,.,

/

!

~

\::_./

FIGURE 3.7 - chemin, circuit élémentaire et non élémentaire

Un chemin élémentaire dans ce graphe est

<

1; 4; 2; 5

>

.

Un chemin non élémentaire dans ce graphe est

<

3; 6; 6; 6

>

.

Un circuit élémentaire dans ce graphe est

<

l; 2; 5; 4; 1

>

.

Un circuit non élémentaire dans ce graphe est

<

l; 2; 5; 4; 2; 5; 4; 1

>.

On retrouve ces différentes notions de cheminement dans les graphes non orientés. Dans

ce cas, on parlera de chaine au lieu de chemin, et de cycle au lieu de circuit. Un graphe sans cycle est dit acyclique.

3.1.4.2 Notions de connexité

Un graphe non orienté est connexe si chaque sommet est accessible à partir de n'importe quel autre. Autrement dit, si pour tout couple de sommets distincts

(si, s j) E 82, il existe une chaine entre si et s j.

Une composante connexe d'un graphe non orienté G est un sous-graphe G' de

G qui est connexe et maximal.

Un graphe orienté est fortement connexe si chaque sommet est accessible à partir

de n'importe quel autre. Autrement dit, si pour tout couple de sommets distincts

(Si, s j) E 82, il existe un chemin de si vers s j , et un chemin de s j vers si.

Une composante fortement connexe d'un graphe orienté Gest un sous-graphe

G' de G qui est fortement connexe et maximal (c'est à dire qu'aucun autre

sous-graphe fortement connexe de G ne contient G').

3.1.4.3 Distance

Soit G un graphe et s, s' deux sommets. La distance entre s et s' est la plus petite

longueur d'un chemin d'extrémité s et s'. Dans un graphe orienté, la distance de s vers

s' est la plus petite longueur d'un chemin orienté allant de s à s'.

Le diamètre D( G) du graphe G est la plus grande des distances dans G : D( G)

(32)

Chapitre 3. Problème de l'arbre dominant

3.1.5

Arbres

On appelle arbre tout graphe connexe sans cycle. Un graphe sans cycle mais non connexe est appelé une forêt. Une feuille ou sommet pendant est un sommet de degré 1.

Quelques propriétés : 1. G est un arbre,

2. G est sans cycle et connexe,

3. G est sans cycle et comporte n - 1 arêtes,

4. Gest connexe et comporte n - 1 arêtes,

5. chaque paire u, v de sommets distincts est reliée par une seule chaîne simple (et le graphe est sans boucle).

3.2

Quelques problèmes principaux

3.2.1

Ensemble dominant

Un sous-ensemble de sommets, D Ç V, est un ensemble dominant du graphe G =

(V, E) si chaque sommet de G est soit un membre de D, soit adjacent à un sommet de D. En outre, si D induit un sous-graphe connexe, il est appelé ensemble dominant connexe ( connected dominating set, CDS). Le cardinal minimum d'un ensemble dominant connexe, noté {c(G), est appelé le nombre de dominance connexe de G. Un CDS ayant une taille égale au nombre de domination connexe est dit ensemble dominant connexe minimum ou minimum connected dominating set (MCDS) en anglais.

Plus formellement, un ensemble dominant d'un graphe G

=

(V, E) est un sous-ensemble D Ç V tel que T(D)UD =V. Autrement dit, Vv EV; (T(v)U{ v} )nD

#

0.

Un ensemble dominant D est dit connexe si le sous-graphe (D, E(D)), qu'il induit, est connexe, avec E(D) = { {i,j} E Eli E D,j ED}.

3.2.2

Arbre de poids minimal (MST)

Soit le graphe G = (V, E) avec un poids associé à chacune de ses arêtes. On veut trouver, dans G, un arbre maximal A= (V, F) de poids total minimum.

Problème : relier n villes par un réseau câblé de la manière la plus économique possible. • On suppose connue la longueur de câble nécessaire reliant les villes

i

et

j.

• Le réseau doit être connexe et n'admet pas de cycles pour être de cout minimum. • C'est donc un arbre et ce doit être l'arbre maximum le plus économique.

,.

"'

'

..

(33)

Chapitre 3. Problème de l'arbre dominant

L'algorithme de l'arbre couvrant de poids minimal du Kruskal noté algorithme 3.1 est

comme suit:

Algorithm 3.1 Algorithme de Kruskal

ENTRÉES:

1: Graphe G =(V, E)(IVI = n,

IEI

= m)

2: pour chaque arête e de E, son poids c(e) faire.

SORTIES:

3: Arbre ou forêt maximale A = (V, F) de poids minimum.

4: Trier et renuméroter les arêtes de G dans l'ordre croissant de leur poids : c(e1) ~

c(e2) ~ ... ~ c(em)·

5: fin pour

6: Poser ,F :=

0

,k := 0

7: tantque k

<

m &

!FI

<

n - 1 faire

8: si ek+l ne forme pas de cycle avec F alors

9: F :=FU

{

ek+i

}

10: fin si

11: k := k + 1

12: fin tantque

Remarque : S'il y a plusieurs arêtes de même poids, il peut y avoir plusieurs arbres

couvrants de poids minimum : tout dépend de l'ordre dans lequel ces arêtes ont été triées.

3.2.3

Couverture par sommets

Une couverture par sommets, ou transversale d'un graphe G est un ensemble C de

sommets tel que chaque arête de G = (V, E) est incidente à au moins un sommet de

C, ie un sous-ensemble de sommets S Ç V tel que pour chaque arête ( u, v) de G on a

u E S ou v E S. On dit que l'ensemble C couvre les arêtes de G. La figure 3.8 montre

des exemples de couvertures des sommets de deux graphes (l'ensemble C est formé des

sommets noires).

~~

FIGURE 3.8 - exemples de couverture par sommets

Une couverture minimale par sommets est une couverture des sommets de taille

minimale.

- La recherche d'un ensemble transversal minimum (minimum vertex cover problem)

(34)

Chapitre 3. Problème de l'arbre dominant

Données : Graphe G

Question : Le plus petit nombre k tel que G a un transversal de taille k

Problème de décision correspondant (vertex cover pro blem) Données : Graphe G et un entier positif k

Question : Est-ce que G contient un transversal de taille k ?

Si un ensemble de sommets S est un transversal, son complément est un stable (ou ensemble indépendant).

3.2.4

Couverture par

arêtes

La couverture par arêtes d'un graphe Gest un ensemble des arêtes C tel que chaque sommet de Gest incident avec au moins une arête en C. L'ensemble C est censé recouvrir les sommets de G. La figure 3.9 montre des exemples de couverture des arêtes de deux graphes.

~~

FIGURE 3.9 - exemples de couverture par arêtes

3.2.5

La coloration

La coloration des sommets d'un graphe G = (V, E) consiste à affecter à tous les sommets de ce graphe une couleur de telle sorte que deux sommets adjacents ne portent

pas la même couleur. Une coloration avec k couleurs est donc une partition de l'ensemble des sommets en k stables.

Nombre chromatique : Le nombre chromatique du graphe G, noté r(G), est le plus

petit entier k pour lequel il existe une partition de V en k sous-ensembles stables. L'algorithme 3.2 résume les étape d'algorithme de coloration de Welsh et Powell.

(35)

Chapitre 3. Problème de l'arbre dominant

Algorithm 3.2 Algorithme de coloration de Welsh et Powell

1: Étape 1 :

- Classer les sommets du graphe dans l'ordre décroissant de leur degré, et attribuer

à chacun des sommets son numéro d'ordre dans la liste obtenue.

2: Étape 2 :

- En parcourant la liste dans l'ordre, attribuer une couleur non encore utilisée au

premier sommet non encore coloré, et attribuer cette même couleur à chaque

sommet non encore coloré et non adjacent à un sommet de cette couleur.

3: Étape 3:

4: si il reste des sommets non colorés dans le graphe alors

5: revenir à l'étape 2.

6: sinon

7: Fin.

8: fin si

3.3 Problème de l'arbre dominant

Le problème de l'arbre dominant, abordé dans cet article, a récemment été présenté

par Shin et al. Dans [Shin et al., 2010]. Ce problème est défini comme suit :

Soit G = (V, E) un graphe non orienté, connecté, pondéré, où V désigne l'ensemble des sommets et E désigne l'ensemble des arêtes. A chaque arête e E E, un poids non négatif

We est attribué. Un arbre T = (V(T), E(T)) du graphe Gest appelé arbre dominant si chaque sommet v EV qui n'est pas dans Test adjacent à un sommet en T. ou autrement dit :

Un arbre dominant T

=

(V(T), E(T)) de G avec V(T)

c

V et E(T)

c

E est un graphe connexe acyclique où chaque nœud v E V\ V(T) est adjacent à un nœud en V(T). Le

poids d'un arbre T est défini comme suit :

L

Ce

(3.1)

eEE(T)

Ce ER+ désigne le poids d'une arête e E E.

Le problème de l'arbre dominant (DTP) est de construire un arbre dominant T du graphe

G avec un poids minimal.

Le DTP a plusieurs applications dans la conception de réseau et le routage réseau. La

multidiffusion est un exemple donné dans [Shin et al., 2010], dont le but est la livraison

simultanée des mêmes données à un groupe

d

'

ordinateurs de destination.

Les serveurs

sont connectés par une structure de réseau arborescente T, et tous les autres ordinateurs

(36)

Chapitre 3. Problème de l'arbre dominant

des données d'un serveur à l'autre, la somme des poids des arêtes en T équivaut à un coût global pour transmettre des données d'un serveur à l'autre.

Les premières approches métaheuristiques pour résoudre le DTP ont été proposée dans [Sundar and Singh, 2013], où les auteurs ont mis en œuvre deux techniques d'intelli-gence d'essaim : la colonie d'abeilles artificielles et l'optimisation des colonies de fourmi..,. L'algorithme d'optimisation des colonies de fourmis a produit de meilleurs résultats sur la plupart des grandes instances, mais il était plus lent que l'algorithme d'optimisation des colonies d'abeilles artificielles.

La figure 3.10 montre un exemple du problème DT.

FIGURE 3.10 - exemple d'un problème DT

Formulation du problème

Soit un arbre dominant T de G représenté par un vecteur d'incidence x E {O, l}IEI,

Xuv = 1 si uv E E(T) et Xuv = 0, sinon.

Définir les variables binaires Yv E {0,1} pour tout v EV, où Yv

=

1 si v E V(T), et

Yv = 0, sinon. Soit E(S) désigne l'ensemble des arêtes avec les deux points d'extrémité dans SC V et soit N(v) = {u 1 uv E E} représente le voisinage d'un nœud v. Un modèle

exponentiel [Shin et al., 2010] pour ce problème est comme suit :

(P)

min L CuvXuv x,y uvEE s.t. L Xuv - L Yv = -1, uvEE vEV L Xuv

~

ISI -

1, V S C V, uvEE(s)

Yu+ Yv ~ 2xuv, Vuv E E,

L

Yu

2:

1, VVE V, uEN(v) (3.2) (3.3) (3.4)

(3.5)

(3.6)

Références

Documents relatifs

Etude d’un dispositif expérimental et des méthodes de traitement pour la résolution du problème inverse Résumé Cette thèse consiste à mettre en place un dispositif

De même on montre la convergence du schéma de point fixe pour la résolution de l’équation ∂ de Brown-Uhlmann pour le cas des conductivités radiales, et on étudie le cas

Cette architecture proposée nous a permis de montrer que la réduction des temps de résolution matérielle pour un problème industriel suivant le formalisme SAT est possible, tenant

approche couplant logique floue et capitalisation des connaissances pour résoudre un problème d’actualité traitant de la sélection des fournisseurs dans une

Les expérimentations réalisées sur l’ensemble des instances de [3] montrent que notre algorithme est capable de résoudre un grand nombre d’instances de tailles

Pour pallier à ce problème, on a proposé dans le contexte de cette recherche une adaptation d’une approche de planification basée sur la spécification formelle des contraintes

Cette étude contribue à la recherche en proposant une méthode de résolution pour deux extensions du problème d'ordonnancement d'un projet avec contraintes de ressources,