Vous êtes sur la page 1sur 104

REPUBLIQUE ALGERIENNE DEMOCRATIQUE ET POPULAIRE

MINISTERE DE L’ENSEIGNEMENT SUPERIEUR ET DE LA RECHERCHE


SCIENTIFIQUE
UNIVERSITE DE DJILALI BOUNAÂMA-KHEMIS MILIANA

FACULTÉ DES S CIENCES ET DE LA T ECHNOLOGIE


D ÉPARTEMENT DE M ATHÉMATIQUES ET I NFORMATIQUE

M ÉMOIRE
Pour obtenir
L E DIPLÔME DE MASTER EN INFORMATIQUE
S PÉCIALITÉ : I NGÉNIERIE DE LOGICIELS

Présenté par
Larachiche Imene et Remadelia Amina

Algorithme Branch and Bound appliquée au Problème de Sac à Dos

Soutenu le 24 /06/ 2018 devant les membres du jury :

Mr. A.Khalfi Univ. de Khemis Miliana Président


M.Boukedroun Univ. de Khemis Miliana Encadreur
Mme. F.Meghatria Univ. de Khemis Miliana Examiateur
Mr. R.Sakri Univ. de Khemis Miliana Examiateur

Année Universitaire : 2017/2018


Résumé
Depuis une plusieurs d’année , l’être humain est rencontre à différents problèmes
dans toutes les sphères de la société. Un problème donné peut être défini par l’en-
semble des propriétés que doivent vérifier ses solutions. Il peut être un problème de
décision ou un problème d’optimisation.

Un des problèmes le plus étudié dans l’optimisation combinatoire est le problème


du sac a dos ("knapsack problem" noté "KP") qui consiste a maximiser la valeur to-
tale des objets sans dépasser le poids maximal autorisé pour le sac. Quels sont les
objets que l’on doit prendre pour maximiser les couts transporter tout en respectant
les contraintes de poids de sac à dos ?le KP est un problème NP-difficile.Il existe beau-
coup de variante de problème de sac à dos dans la littérature, Dans notre mémoire on
a choisit le problème de sac à das multidimensionnel.

Une résolution efficace du KP nécessite donc le recours à des méthodes d’optimisa-


tion très performants. Les méthodes de résolution du KP peuvent être réparti en deux
groupes de nature différente : Le première groupe comprend les méthodes exactes qui
garantissent la complétude de la résolution : c’est le cas de l’algorithme du sépara-
tion et évaluation ("Branch and Bound") la méthode étudiée dans notre travail est une
méthode consiste à énumérer implicitement toutes les solutions de problème P en exa-
minant les sous-problème de P. Le second groupe comprend les méthodes approchées
dont le but est de trouver une solution de bonne qualité en un temps de calcul raison-
nable sans garantir l’optimalité de la solution obtenue.

Nous avons proposées dans ce travail une application qui permet de résoudre la
résolution d’un problème de sac à dos multidimensionnel.

Les mots clé : optimisation combinatoire, méthode exacte, séparation et évaluation,


sa a dos multidimensionnelle , heuristique.
Abstract
For about many years, the human being is meeting with different problems in all
the spheres of the society. A given problem can be defined by the set of properties that
its solutions must check. It can be a decision problem or an optimization problem.

One of the most studied problems in combinatorial optimization is the knapsack


problem ("KP"), which consists in maximizing the total value of objects without excee-
ding the maximum weight allowed for the bag. What are the objects that must be taken
to maximize the costs of transport while respecting the weight constraints of the knap-
sack ? the KP is an NP-hard problem, There is a lot of knapsack problem variant in the
literature. In our thesis we have chosen the problem of multidimensional knapsack .

Effective KP resolution therefore requires the use of high performance optimiza-


tion methods. The KP resolution methods can be divided into two groups of different
nature : The first group includes the exact methods that guarantee the completeness
of the resolution : this is the case of the "Branch and Bound" method. method studied
in our work is a method consists in implicitly enumerating all problem solutions P
by examining the subproblems of P. The second group includes approximate methods
whose purpose is to find a good quality solution in a computation time reasonable wi-
thout guaranteeing the optimality of the solution obtained.

We have proposed in this work an application that allows to present the resolu-
tion of a multidimensional knapsack problem.

The key words : combinatorial optimization, exact method, brunch and bound,
multidimensional knapsack, heuristics.
Glossaire

Définition 1. Domaine de solution : Ensemble de toutes les solutions réalisables.

Définition 2. machine non déterministe : une machine non-déterministe est une variante
purement théorique : on ne peut pas construire de telle machine. À chaque étape de son calcul,
cette machine peut effectuer un choix non-déterministe : elle a le choix entre plusieurs actions,
et elle en effectue une. Si l’un des choix l’amène à accepter l’entrée, on considère qu’elle a
fait ce choix-là. En quelque sorte, elle devine toujours juste. Une autre manière de voir leur
fonctionnement est de considérer qu’à chaque choix non-déterministe, elles se dédoublent, les
clones poursuivent le calcul en parallèle suivant les branches du choix. Si l’un des clones accepte
l’entrée, on dit que la machine accepte l’entrée.

Définition 3. Voisinage d’une solution : est l’ensemble des solutions voisines, c’est à dire
l’ensemble des solutions accessibles par un mouvement (et un seul).

Définition 4. Règle de Metropolis : correspond à un choix de probabilité d’acceptation


exponentielle dans l’algorithme du recuit simulé.

Définition 5. Diversification : est une stratégie de recherche permet l’amélioration de l’al-


gorithme. Elle permet de focaliser les recherches dans une portion restreinte des dont le but est
de rediriger le processus de recherche vers d’autres régions non encore explorées.La diversifica-
tion est basée sur des concepts de mémoires à long terme puisqu’elle garde en mémoire toutes les
itérations effectuées. On peut utiliser deux techniques de diversification. La première technique
consiste à redémarrer la recherche dans la même portion en utilisant quelques composantes de la
solution courante ou la meilleure solution trouvée. La deuxième technique intègre des méthodes
de diversification dans le processus de recherche.

Définition 6. L’intensification : est un concept de recherche qui permet d’intensifier l’effort


de recherche dans une région de s qui paraît prometteuse. Pour appliquer ce concept, on arrête
périodiquement la recherche pour effectuer une phase d’intensification d’une durée limitée. Ce
concept est basé sur des mémoires à court terme. L’intensification est utilisée pour l’implémen-
tation de plusieurs algorithmes de la recherche avec tabous.

Définition 7. Mouvement : est une opération élémentaire permettant de passer d’une so-
lution a une solution voisine (exemple : changer la valeur d’une variable, échanger deux va-
riables).

Définition 8. Génération : est l’ensemble des chromosomes obtenus lors de la N i ème


itération.

Définition 9. Population : est l’ensemble des solutions considérées à un moment donné.


Définition 10. Chromosome : est une représentation d’une solution possible de l’espace des
solutions, constitué d’un ensemble de gènes (Holland décrit un chromosome comme une chaîne
de bits).

Définition 11. Fitness : terme anglo-saxon qui désigne la fonction d’évaluation d’un in-
dividu. Cette fonction est liée à la fonction qu’on va optimiser et permet de définir le degré de
performance d’un individu (donc d’une solution).

Définition 12. instance : un exemple spécifique du problème : une configuration particulière


des villes pour le problème du voyageur de commerce, un arbre particulier pour un problème de
graphe. C’est une entrée particulière pour un algorithme.

Définition 13. Meilleur solution :l’optimisation combinatoire consiste à chercher la solu-


tion à “moindre coût” d’un problème combinatoire.

Définition 14. Solution réalisable :solution où toutes les contraintes du modèle sont
satisfaites.

Définition 15. Chemin optimal :chemin de longueur minimale de source à tous les som-
mets.

Définition 16. Fonction objectif : est une fonction qui modélisé le but a atteindre sans le
problème d’optimisation sur l’ensemble des critères. Il s’agit de la fonction qui doit être optimi-
sée. Elle noté F(x). De manière générale,F ( x ) est un vecteur F ( x ) = ( F1 ( x ), F2 ( x ). . . . . . Fn ( x )).

Définition 17. algorithme : procédure de calcul bien définie qui prend en entrée une valeur,
ou un ensemble de valeurs, et qui donne en sortie une valeur, ou un ensemble de valeurs. Un
algorithme est donc une séquence d’étapes de calcul qui transforment l’entrée en sortie.

Définition 18. Solution :est une affectation de toutes les variables du problème.

Définition 19. Solution optimale : est la solution réalisable où la fonction objective atteint
la meilleure valeur, maximum ou minimum.

Définition 20. Problème irréalisable : s’il n’admet pas de solutions réalisables.

Définition 21. Problème non borné : si aucune des solutions réalisables n’est optimale.
Liste des abréviations
AG Algorithme Génétique (Genitic Programming)

BB Branch & Bound

ILP programmation linéaire entière(integer linear programming)

KP Problème de Sac a Dos(Knapsack problem)

LB Lower Bound

MKP Problème de Sac a Dos Multidimensionnel(Multidimensionnel Knapsack problem)

MUKP Problème de sac à dos multiple(multiple Knapsack problem)

MMKP Problème du sac à dos à choix multiple(multiple choice Knapsack problem)

PLNE Programmation Linéaire en Nombre Entiers

PSE Problème Séparation et Evaluation

POC Problème D’optimisation Combinatoire

QKP Problème du sac à dos quadratique(Quadratic Knapsack problem)

Problème du sac à dos quadratique multidimensionnel(Multidimensional Quadratic


QMKP Knapsack problem)

RP Problème relaxé

UB Upper Bound

SA Le Recuit Simulé(Simulated Annealing)

TS La recherche tabou(Tabou Search )

TSP Problème du voyageur de commerce


Table des matières

Introduction 2

1 Notion de graphe 3
1.1 Les Graphes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.1 Définitions et Notations . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.1.1 Graphe . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.1.2 Sommets Adjacents . . . . . . . . . . . . . . . . . . . . . 4
1.1.1.3 Boucle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1.1.4 Degré et Ordre . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1.1.5 Chaine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.1.1.6 Chemin . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.1.1.7 Cycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.1.1.8 Circuit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.1.1.9 Graphe Simple . . . . . . . . . . . . . . . . . . . . . . . . 7
1.1.2 Graphe Connexe . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.1.3 Graphe non orienté (graph) . . . . . . . . . . . . . . . . . . . . . . 8
1.1.4 Graphe orienté fini (digraph) . . . . . . . . . . . . . . . . . . . . . 8
1.2 Arbres et arborescences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.2.1 Arbre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.2.2 Arborescence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.2.3 Propriétés et caractérisations des arbres . . . . . . . . . . . . . . . 10
1.3 Problème d’Ordonnancement . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.3.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.3.2 Éléments fondamentaux d’un problème d’ordonnancement . . . 11
1.3.2.1 Taches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.3.2.2 Ressources . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.3.2.3 Contraintes . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.3.2.4 Critères . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2 Problème d’optimisation combinatoire (p.o.c) 12


2.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2 Notions de complexité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.1 Algorithmes polynomiaux et Algorithmes exponentiels . . . . . 13
2.2.2 Problèmes combinatoires . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.3 Problème de décision . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.4 Problème de recherche . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.5 Problème d’optimisation . . . . . . . . . . . . . . . . . . . . . . . . 14
TABLE DES MATIÈRES

2.2.6 Les différentes classes de complexité . . . . . . . . . . . . . . . . 14


2.3 Modélisation de problème d’optimisation combinatoire . . . . . . . . . . 14
2.4 Résolution d’un problème d’optimisation combinatoire . . . . . . . . . . 15
2.5 Méthodes d’optimisation combinatoire . . . . . . . . . . . . . . . . . . . 16
2.5.1 Critères de sélection d’une méthode de recherche . . . . . . . . . 16
2.5.2 Méthodes exactes . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.5.2.1 Programmation linéaire en nombres entiers(PLNE) . . . 17
2.5.2.2 Méthode de séparation et évaluation (Branch and Bound) 18
2.5.2.3 Méthode de Branch and Cut . . . . . . . . . . . . . . . . 19
2.5.2.4 Programmation dynamique . . . . . . . . . . . . . . . . 20
2.5.2.5 Relaxation lagrangienne . . . . . . . . . . . . . . . . . . 21
2.5.2.6 Méthode des coupes de Gomory (Gomory cutting planes) 23
2.5.3 Méthodes approchés . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.5.3.1 Méta-heuristiques . . . . . . . . . . . . . . . . . . . . . . 26
2.5.3.2 Heuristiques spécifie . . . . . . . . . . . . . . . . . . . . 37

3 Méthode de séparation et évaluation(B&B) 41


3.1 Arborescence des solutions possibles . . . . . . . . . . . . . . . . . . . . . 41
3.1.1 Exemple d’ordonnancement . . . . . . . . . . . . . . . . . . . . . 42
3.1.1.1 L’énonce d’exemple . . . . . . . . . . . . . . . . . . . . . 42
3.1.1.2 La solution heuristique . . . . . . . . . . . . . . . . . . . 43
3.1.1.3 Borne inférieur . . . . . . . . . . . . . . . . . . . . . . . 43
3.1.1.4 Schéma de séparation et d’exploration . . . . . . . . . . 44
3.2 Présentation de la méthode Séparation et évaluation (B&B) . . . . . . . . 45
3.2.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.2.2 La procédure de séparation ("Branching process") . . . . . . . . . 47
3.2.2.1 Démarche de la séparation : . . . . . . . . . . . . . . . . 47
3.2.2.2 Règles de branchement . . . . . . . . . . . . . . . . . . . 48
3.2.3 Procédure d’évaluation ("Bounding process") . . . . . . . . . . . . 49
3.2.3.1 Calcul de la borne inférieure . . . . . . . . . . . . . . . . 50
3.2.3.2 Calcul de la borne supérieure . . . . . . . . . . . . . . . 50
3.2.3.3 Conditions d’élimination . . . . . . . . . . . . . . . . . . 51
3.2.4 La stratégie de parcours . . . . . . . . . . . . . . . . . . . . . . . . 52
3.2.4.1 Profondeur D’abord (Depth-first)
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.2.4.2 Largeur D’abord (Breadth-first)
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.2.4.3 Meilleur D’abord (Best bound first )
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.2.5 Efficacité de l’algorithme B&B . . . . . . . . . . . . . . . . . . . . 54
3.2.5.1 Choix d’une stratégie de recherche . . . . . . . . . . . . 54
3.2.5.2 Choix de la borne inférieure . . . . . . . . . . . . . . . . 54
3.2.5.3 Choix de la borne supérieur . . . . . . . . . . . . . . . . 54
3.2.5.4 Règles de dominance . . . . . . . . . . . . . . . . . . . . 54
3.2.5.5 Choix du critère d’évaluation . . . . . . . . . . . . . . . 54
3.2.6 Quelques problèmes d’applications . . . . . . . . . . . . . . . . . 55
3.2.7 Méthode séparation et évaluation sur des exemples . . . . . . . . 55

8
4 Problème de sac a dos 63
4.1 Famille du problème du sac à dos . . . . . . . . . . . . . . . . . . . . . . 64
4.1.1 Problème du sac à dos classique (KP) . . . . . . . . . . . . . . . . 64
4.1.1.1 Modelisation . . . . . . . . . . . . . . . . . . . . . . . . . 64
4.1.1.2 Résolution . . . . . . . . . . . . . . . . . . . . . . . . . . 64
4.1.2 Problème de sac à dos multiple (MUKP) . . . . . . . . . . . . . . 67
4.1.2.1 Modélisation . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.1.3 problème du sac à dos multidimensionnel (MKP) . . . . . . . . . 68
4.1.3.1 Modélisation . . . . . . . . . . . . . . . . . . . . . . . . . 69
4.1.3.2 Résolution . . . . . . . . . . . . . . . . . . . . . . . . . . 69
4.1.4 Problème du sac à dos à choix multiple . . . . . . . . . . . . . . . 70
4.1.4.1 Modélisation . . . . . . . . . . . . . . . . . . . . . . . . . 70
4.1.4.2 Résolution . . . . . . . . . . . . . . . . . . . . . . . . . . 70
4.1.5 Problème du sac à dos quadratique . . . . . . . . . . . . . . . . . 71
4.1.5.1 Modélisation . . . . . . . . . . . . . . . . . . . . . . . . . 71
4.1.6 Problème du sac à dos quadratique multidimensionnel . . . . . . 71
4.1.6.1 Modélisation . . . . . . . . . . . . . . . . . . . . . . . . . 71
4.1.7 Problème de sac à dos multi-objectif . . . . . . . . . . . . . . . . . 72
4.1.7.1 Modélisation . . . . . . . . . . . . . . . . . . . . . . . . . 72
4.1.8 Problème de sac-à-dos multi-objectif multidimensionnel . . . . . 72
4.1.8.1 Modélisation . . . . . . . . . . . . . . . . . . . . . . . . . 73
4.2 Méthodes de résolution du MKP . . . . . . . . . . . . . . . . . . . . . . . 73

5 Implémentation et validation 75
5.1 Environnements de développement . . . . . . . . . . . . . . . . . . . . . 75
5.1.1 Langage JAVA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
5.1.2 Éclipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
5.1.3 JavaFX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
5.2 Cplex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
5.3 Présentation de l’Algorithme . . . . . . . . . . . . . . . . . . . . . . . . . 77
5.4 Implémentation du système . . . . . . . . . . . . . . . . . . . . . . . . . . 78
5.4.1 Déploiement du système . . . . . . . . . . . . . . . . . . . . . . . 78
5.4.1.1 Organisation du projet de l’application . . . . . . . . . . 78
5.4.1.2 Description des classes des tâches du système . . . . . 78
5.4.1.3 Diagramme de classe . . . . . . . . . . . . . . . . . . . . 79
5.5 Tests et résultats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
5.5.1 Description de l’application . . . . . . . . . . . . . . . . . . . . . . 80
5.6 Exemple d’application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
5.6.1 Résultat avec notre application . . . . . . . . . . . . . . . . . . . . 84
5.6.2 Résultat avec Cplex . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Table des figures

1.1 Graphe G. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 boucle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3 Chaine. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4 Chemin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.5 Cycle Eulerien. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.6 Cycle Hamiltonien. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.7 Circuit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.8 Graphe Connexe. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.9 Graphe non oriente G1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.10 Graphe non oriente G2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.11 Arbre. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.12 forêt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.13 Caractéristiques d’une tâche. [36] . . . . . . . . . . . . . . . . . . . . . . 11

2.1 Relation entre les différents ensembles de complexité. . . . . . . . . . . 15


2.2 Classification des méthodes d’optimisation combinatoire. . . . . . . . . 16
2.3 Domaine de solutions admissibles. . . . . . . . . . . . . . . . . . . . . . 18
2.4 Principe de la programmation dynamique. . . . . . . . . . . . . . . . . 21
2.5 Interprétation géométrique de la coupe de Gomory. . . . . . . . . . . . 25
2.6 Classification des méta-heuristiques. . . . . . . . . . . . . . . . . . . . . 27
2.7 Détermination d’un nouvel état pour la méthode de recuit simulé. . . 28
2.8 Allure de la fonction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.9 Principe générale de l’algorithme génétique . . . . . . . . . . . . . . . . 32
2.10 Codages des individus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.11 Exemplaire de sélection des individus. . . . . . . . . . . . . . . . . . . . 34
2.12 Sélection par tournoi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.13 Croisement a un point d’un chromosome. . . . . . . . . . . . . . . . . . 35
2.14 Croisement multi-points d’un chromosome. . . . . . . . . . . . . . . . . 35
2.15 Une mutation d’un chromosome. . . . . . . . . . . . . . . . . . . . . . . 35
2.16 Compromis entre temps de calcul et qualité du résultat. . . . . . . . . . 40

3.1 Arbre d’une énumération totale des solutions du problème. . . . . . . 42


3.2 Présentation d’ordonnancement d’une machine. . . . . . . . . . . . . . 42
3.3 Représentation de la solution heuristique. . . . . . . . . . . . . . . . . . 43
3.4 Parcours des solutions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.5 Présentation des solutions. . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.6 Présentation de la méthode branch and bound. . . . . . . . . . . . . . . 46
3.7 Décomposition d’un problème binaire. . . . . . . . . . . . . . . . . . . 48
3.8 Éliminer par optimalité. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

10
3.9 Éliminer par borne. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.10 Éliminer par infaisabilité. . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.11 Sous problèmes actifs : { P1 , P2 }. . . . . . . . . . . . . . . . . . . . . . . . 56
3.12 Sous problèmes actifs : { P3 , P4 }. . . . . . . . . . . . . . . . . . . . . . . . 57
3.13 Présentation de parcours du solution. . . . . . . . . . . . . . . . . . . . . 58
3.14 Présentation de parcours du solution. . . . . . . . . . . . . . . . . . . . . 61

4.1 Représentation de parcours de solutions. . . . . . . . . . . . . . . . . . 66

5.1 Organisation de l’application. . . . . . . . . . . . . . . . . . . . . . . . . 78


5.2 diagramme de class. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
5.3 montrant l’écran d’accueil. . . . . . . . . . . . . . . . . . . . . . . . . . . 81
5.4 Problèmes (data ). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
5.5 Exemple d’affichage d’un problème avec le choix d’entre le poids max
d’un sac a dos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
5.6 Exemple de poids max d’un sac a dos . . . . . . . . . . . . . . . . . . . . 82
5.7 L’affichage de résultat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
5.8 Modélisation d’exemple. . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
5.9 Résolution d’exemple. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
5.10 Résolution d’exemple avec Cplex. . . . . . . . . . . . . . . . . . . . . . . 85
Liste des tableaux

2.1 Production de peinture. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

3.1 Donner de l’instance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43


3.2 Sous problèmes P1 et P2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.3 Sous problèmes P3 et P4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Liste des Algorithmes
List of Algorithms

1 Branch and Bound . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19


2 Brunch and Cut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3 Programmation dynamique . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4 Recuit simulé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
5 Recherche Tabou . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
6 Hill Climbing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
7 Algorithme de génétique . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
8 Colonies de fourmis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
9 Algorithme de gloutonne . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
10 Branch and Bound . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
——–

13
Introduction générale

L’optimisation combinatoire occupe une place très importante en informatique. Son


importance se justifie d’une part par la grande difficulté des problèmes d’optimisation
et d’autre part par de nombreuses applications pratiques pouvant être formulées sous
la forme d’un problème d’optimisation combinatoire. Les problèmes d’optimisation
sont utilisés pour modéliser de nombreux problèmes dans différents secteurs de l’in-
dustrie (télécommunications, électronique, mécanique, chimie, transport,...).

D’où l’importance donnée à leur résolution par des algorithmes diversifiés (algo-
rithmes exactes, méthodes approchées ou approches hybridées). Le principe de l’opti-
misation combinatoire est de choisir un sous ensemble de solutions parmi un ensemble
donné,répondant à des objectifs (critères) de maximisation ou de minimisation.

notre étude basé sur l’utilisation d’une méthode exacte notée méthode de sépara-
tion et évaluation (branch and bound ) pour résoudre l’un des problème d’optimisation
combinatoire (cas de sac a dos).

Il sera résolu par la méthode Branch and Bound (Séparation et évaluation) qui est
l’une des méthodes les plus utilisées dans la résolution exacte des problèmes d’optimi-
sation combinatoire.

Le principe de l’algorithme Branch and Bound (B&B) est de faire la division de l’en-
semble des solutions selon des critères de branchements, puis l’évaluation qui consiste
à calculer la valeur optimale dans les sous-ensembles. L’évaluation va nous permettre
d’élaguer les branches dont la valeur optimale ne satisfait pas les critères recherchés.
La solution optimale est trouvée quand tous les sous-ensembles sont élagués ou explo-
rés.

Nous présentons notre travail de mémoire en 5 chapitre :

Nous commencerons par notions des graphes qui nous utilisons dans les chapitres
suivantes .

Dans le deuxième chapitre, nous essayons d’aborder quelques notions de base en


optimisation, nous présentons la définition d’un problème d’optimisation combina-
toire , nous dévoilons les définitions sur les notions de complexité et on présentons la
classification des différents problèmes selon leurs complexité en problème P et NP .
Nous donnons une vue générale sur les problèmes des deux classes et nous essayons
d’éclaircir la relation entre les deux classes. Enfin nous présentons les méthodes de ré-
solution ( exactes et approchèes) d’un problème d’optimisation combinatoire dans la

1
Introduction générale

littérature

les méthodes exactes qui consistent généralement à énumérer, de manière im-


plicite, l’ensemble des solutions de l’espace de recherche et garantissent de trouver
une solution optimale.
les méthodes approchées qui traitent généralement des problèmes de grande
taille, elles s’assurent pas de trouver la solution optimale mais sont efficaces. Les mé-
thodes les plus connues et les plus utilisées vont être détaillées.

Dans un troisième partie nous présentons la méthode de séparation et évaluation(


Branch and bound) avec son principe et son algorithme et des exemples d’application .
Ensuite dans le quatrième chapitre nous teutons d’élucider le principe d’un problème,
de sac a dos qui été utilisés dans le test de méthode que nous avons proposons dans le
cadre de notre étude.

La dernière partie est l’implémentation et la validation de notre application et les


réglages de paramètres de contrôle de la méthode de résolution.

2
Chapitre 1

Notion de graphe

Introduction
nous pressentons dans un premier temps quelques notions de théorie des graphes .

1.1 Les Graphes


1.1.1 Définitions et Notations
1.1.1.1 Graphe
Un graphe G est un couple d’ensembles (V (G) ;E(G)), tel que V (G) est l’ensemble
non vide de sommets et de cardinalité |V ( G )| = n et E(G) est l’ensemble non vide
d’arêtes et de cardinalité | E( G )| = m .Et on note G = (V (G) ;E(G)) ou tout simplement
G = (V ;E).

Un graphe peut être représenter géométriquement par des points pour les sommets
et des lignes pour les arêtes reliant les différents sommets.[54]

Exemple
Soit le graphe G = (V; E) défini par V = {1, 2, 3, 4}etE = {e1 , e2 , e3 , e4 } avec
e1 = (1, 2) ,e2 = (1, 3) , e3 = (1, 4) et e4 = (3, 4) : [7]

F IGURE 1.1 – Graphe G.

3
CHAPITRE 1. NOTION DE GRAPHE

1.1.1.2 Sommets Adjacents


Deux sommets u et v de V sont dits adjacents, s’il existe une arête e dans E tel que
ses extrémités sont u et v . Et on note e = (u; v) ∈ E ou bien uv. Autrement dit, deux
sommets u et v, (u; v ∈ V ), sont dits adjacents si et seulement s’ils sont reliés par une
arête, tel qu’on puisse passer de u a v ou inversement de v a u , directement sans
passer par d’autres sommets. On note cette arête de passage par (uv) ou (vu) selon
qu’on passe de u a v ou de v a u .[54]

Exemple
Dans le graphe G (Figure 1.1 ), on voit que les sommets adjacents au :
sommet 1 sont : 2, 4 et 3.
sommet 2 sont : 1.
sommet 3 sont : 1 et 4.
sommet 4 sont : 1 et 3.

1.1.1.3 Boucle
Une boucle est une arête d’un graphe ayant ses extrémités confondues.

Exemple

F IGURE 1.2 – boucle.

1.1.1.4 Degré et Ordre


Le nombre de sommets du graphe G est appelé Ordre de G. Le degré d’un sommet
u, note dG (u), est le nombre d’arêtes incidentes a u. On défini aussi :
– Le degré minimum de G que l’on note δ( G ) = min{dG (u); u ∈ V }.
– Le degré maximum de G que l’on note ∆( G ) = max {dG (u); u ∈ V }.[5]

Exemple
Dans le graphe précédant :
l’ordre du graphe G (Figure 1.1 ) est égale a 4.
–δ( G ) = min{ G (u); u ∈ V } = 1.
–M ( G ) = max { G (u); u ∈ V } = 3.[7]
Les sommets d’un graphe ont quelque propriétés, parmi lesquelles nous citons le théo-
rème et le corollaire suivants :
Théorème 1. La somme des degrés des sommets d’un graphe est égale a 2 fois son nombre
d’arêtes.[6]

∑u∈V dG (u) = 2m
Collaire 1. Le nombre de sommets de degré impair d’un graphe est pair.[21]

4
CHAPITRE 1. NOTION DE GRAPHE

Remarque :
Lorsque dG (u) = 0 , on dit que le sommet u est isolé et quand dG (u) = 1, il est dit
pondent.[21]

1.1.1.5 Chaine
On appelle chaine, une suite de sommets adjacents, c’est a dire une suite de som-
mets reliées par des arêtes. La longueur de la chaîne est le nombre d’arêtes la consti-
tuant. C’est a dire une chaîne de longueur q est une sequence de q+1 sommets de G
noté p = (u1 ; u2 , .., uq+1 ) telle que chaque sommet ui , 2 ≤ i ≤ q de la séquence est
adjacent aux sommets ui−1 et ui+1 .[40]
–Une chaîne qui ne passe pas deux fois le même sommet est dite élémen-
taire. Une chaîne passant une et une seule fois par chacun des sommets de G
est dite une chaîne Hamiltonienne. Un graphe n’admettant que des chaîne
Hamiltoniennes est dit Graphe semi-Hamiltonien.[16]

–Une chaîne qui ne passe pas deux fois la même arête est dite simple. Une
chaîne passant une et une seule fois par chacune des arêtes de G est dite une
chaîne Eulerienne. Un graphe n’admettant que des chaînes Eulerien est dit
Graphe semi-Eulerien.[16]

Exemple
Dans le graphe suivant, on a :
–C1 = (1, 2, 3, 4) est une chaîne de longueur 3.
–C2 = (1, 3, 4, 2) est une chaîne de longueur 3.
–C3 = (1, 3, 4) est une chaîne de longueur 2.[7]

F IGURE 1.3 – Chaine.

1.1.1.6 Chemin
On appelle chemin une suite de sommets relies par des arcs. Alors un chemin est
une chaîne orientée. Comme pour les chaînes, on appelle chemin simple tout chemin
qui ne passe pas deux fois par le même sommet. [7]

Exemple
Dans le graphe suivant, on a :
–C1 = (1, 6, 2, 5) est une chemin de longueur 3.
–C2 = (1, 2, 4, 5) est une chemin de longueur 3.
–C3 = (1, 6, 2) est une chemin de longueur 2.[7]

5
CHAPITRE 1. NOTION DE GRAPHE

F IGURE 1.4 – Chemin.

1.1.1.7 Cycle
On appelle un cycle une chaîne fermée (le sommet initial est aussi le sommet final).
Il est dit élémentaire si la chaîne sur laquelle il est basé est simple( hormis le sommet
de départ et d’arrive). Nous distinguons deux types de cycles :

– Cycle Eulerien : Un cycle Eulerien d’un graphe G un cycle passant une et une seule
fois par chacune des arêtes de G. Un graphe admettant un cycle Eulerien est dit Graphe
Eulerien.[46]

F IGURE 1.5 – Cycle Eulerien.

–Cycle Hamiltonien : Un cycle Hamiltonien d’un graphe G un cycle passant une et


une seule fois par chacun des sommets de G. Un graphe est dit Hamiltonien s’il admet
un cycle Hamiltonien.[46]
Remarque
– Plus simplement, on peut dire qu’un graphe est Eulerien (ou semi-Eulerien) s’il est
possible de dessiner le graphe sans lever le crayon et sans passer deux fois sur la même
arête. [7]
–Contrairement aux graphes Euleriens, il n’existe pas de caractérisation simple des
graphes (semi-)Hamiltoniens.[7]
–Un graphe ayant un sommet de derge 1, ne peut- être Hamiltonien.
– Si un sommet dans un graphe est de degré 2, alors les deux arêtes inci-
dentes ‘a ce sommet doivent faire partie du cycle Hamiltonien.
– les graphes complets k n sont Hamiltoniens.

6
CHAPITRE 1. NOTION DE GRAPHE

F IGURE 1.6 – Cycle Hamiltonien.

1.1.1.8 Circuit

Un circuit est un chemin fermé simple. On entend par chemin fermé, un chemin
dont le sommet initial est aussi le sommet final.[15]

Exemple
Dans le graphe suivant, on a :
–C1 = (1, 2, 3 ,1) est une circuit de longueur 3.
–C2 = (2, 3, 4 , 2) est une circuit de longueur 3.[7]

F IGURE 1.7 – Circuit.

Remarque
Les cycles correspondent les graphe non orientés et les circuits correspondent les graphe
orientés.

1.1.1.9 Graphe Simple

Un graphe G est dit simple, s’il est sans boucles et toute paire de sommets est reliée
par au plus une arête (sans arêtes doubles)[45].

7
CHAPITRE 1. NOTION DE GRAPHE

1.1.2 Graphe Connexe


Un graphe est dit connexe s’il existe pour chaque paire de sommets une chaine les
reliant. Autrement dit, on peut toujours passer d’un sommet ‘a un autre soit directe-
ment soit en passant par un ou plusieurs autres sommets[44].

F IGURE 1.8 – Graphe Connexe.

1.1.3 Graphe non orienté (graph)


Définition 22. Un graphe non orienté G est un graphe non orienté on peut présenter de la
maniéré suivante G(S,A)
– S : l’ensemble des sommets
–A : L’ensemble des couples.[14].
Exemple :
Soit G1 défini par S = { a, b, c, d, f , g} , A = {e1 , e2 , e3 , e4 , e5 , e6 , e7 , e8 } et
ϕ(e1 ) = { a, b} , ϕ(e2 ) = b, c, ϕ(e3 ) = {c} , ϕ(e4 ) = {c, d} , ϕ(e5 ) = {b, d},
ϕ(e6 ) = {d, g} , ϕ(e7 ) = {b, g} , ϕ(e8 ) = {b, c}.[14]

F IGURE 1.9 – Graphe non oriente G1 .

–On dit que les sommets a et b sont adjacents,et que l’arête e4 est incidente
au sommet c et au sommet d.
–Les arêtes e2 et e8 sont parallèles, l’arête e3 est une boucle, le sommet f est
isolé et le sommet a est pendant.

1.1.4 Graphe orienté fini (digraph)


Définition 23. Un graphe orienté fini G est un triplet (X,E,ϕ ) ou
– X est un ensemble fini non vide de sommets (vertices)

8
CHAPITRE 1. NOTION DE GRAPHE

– E est un ensemble fini d’arcs


– ϕ est une fonction d’incidence qui ‘a chaque arc e de E associe un couple (x, y) d’éléments De
X non nécessairement distincts. x est l’origine de e et y est le but de e.[46]

Exemple :
Soit G2 le graphe orienté défini par X = { a, b, c, } , E = {e1 , e2 , e3 , e4 , e5 , e6 } et
ϕ(e1 ) = ( a, b) , ϕ(e2 ) = (b, c) , ϕ(e3 ) = ( a, b) , ϕ(e4 ) = (c, b) , ϕ(e5 ) = (c, c),
, ϕ(e6 ) = ( a, c).[14]

F IGURE 1.10 – Graphe non oriente G2 .

–Le sommet a est l’origine de e1 et le sommet b est le but de e1 .


–Les arcs e1 et e3 sont parallèles, l’arc e5 est une boucle mais les arcs e2 et e4
ne sont pas parallèles.[52]

1.2 Arbres et arborescences


1.2.1 Arbre
Définition 24. Un graphe G = (X,E) est un arbre s’il est connexe sans cycle. Un graphe sans
cycle est une foret (réunion d’arbres).[14]

F IGURE 1.11 – Arbre. F IGURE 1.12 – forêt.

9
CHAPITRE 1. NOTION DE GRAPHE

1.2.2 Arborescence
Définition 25. Une arborescence est un graphe orienté possédant un sommet privilégie, la
racine, tel qu’il existe un et un seul chemin depuis la racine a tout autre sommet.[52]

Propriétiés 1. On peut orienter les arêtes d’un arbre a partir de n’importe quel sommet de
façon a obtenir une arborescence.[14]

1.2.3 Propriétés et caractérisations des arbres


Théorème 2. Soit G un graphe non orienté d’ordre n. Les propositions suivantes sont équi-
valentes :
1. G est un arbre.
2. G est connexe et a n − 1 arêtes.
3. G est sans cycle et a n − 1 arêtes.
4. G est sans boucle et pour tous sommets x, y,x 6= y, il existe une unique chaîne reliant x a
y.[14]
Preuve : elle repose en partie sur les deux lemmes et la propriété suivants :

Lemme 1. Un graphe non orienté connexe d’ordre n a au moins n − 1 arêtes.[14]

Lemme 2. un graphe non orienté d’ordre n qui a au moins n arêtes possède un cycle.[14]

1.3 Problème d’Ordonnancement


1.3.1 Définition
De nombreuses définitions du problème d’ordonnancement sont proposées dans la
littérature. Parmi les définitions les plus souvent rencontrées sont :
–Un problème d’ordonnancement est défini par un ensemble de jobs à réa-
lisé sur un ensemble de ressources ; de sorte qu’une fonction objectif soit
optimisée .

–Le problème d’ordonnancement consiste à organiser dans le temps la réali-


sation de tâches, compte tenu de contraintes temporelles (délais, contraintes
d’enchaînement,...) et de contraintes portant sur l’utilisation et la disponi-
bilité de ressources requises . [30]
C’est aussi programmer l’exécution d’une réalisation en attribuant des ressources aux
tâches et en fixant leurs dates d’exécution.
Pour résoudre un problème d’ordonnancement consiste à programmer l’exécution des
tâches et à allouer les ressources requises afin d’optimiser un ou plusieurs critères, tout
en respectant un ensemble de contraintes.[30]

10
CHAPITRE 1. NOTION DE GRAPHE

1.3.2 Éléments fondamentaux d’un problème d’ordonnancement


Les principaux éléments d’un problème d’ordonnancement sont les tâches, les res-
sources, les contraintes et les critères.

1.3.2.1 Taches
La fabrication de produits dans un atelier de production nécessite l’exécution d’un
ensemble d’opérations élémentaires ou tâches. Une tâche est localisée dans le temps
par une date de début d’exécution ti et/ou par une date de fin ci et une durée d’exécu-
tion pi . Certaines contraintes techniques ou économiques peuvent associer aux tâches
des dates de début ri ou des dates di . La figure 1 illustre les caractéristiques d’une
tâche.[36]

F IGURE 1.13 – Caractéristiques d’une tâche. [36]

1.3.2.2 Ressources
Une ressource est définie comme un moyen technique ou humain requis pour la
réalisation d’une tâche en quantité limitée.

1.3.2.3 Contraintes
Les contraintes sont les conditions à respecter lors de la construction d’un ordon-
nancement

1.3.2.4 Critères
Un critère correspond à des exigences qualitatives et quantitatives à satisfaire per-
mettant d’évaluer la qualité de l’ordonnancement établi. Les contraintes sont les condi-
tions à respecter lors de la construction d’un ordonnancement.

1.4 Conclusion
Dans ce chapitre nous avons asseye d’aborder quelques définitions confrontées sou-
vent dans le domaine de la théorie de graphe , ensuite nous avons présenter un pro-
blème très connu dans l’optimisation combinatoire " le problème d’ordonnancement" .

Dans le chapitre qui suit,nous pressentons un état de l’art sur l’optimisation combi-
natoire et ses méthodes de résolution.

11
Chapitre 2

Problème d’optimisation combinatoire


(p.o.c)

Introduction
L’optimisation combinatoire est un outil indispensable combinant diverses tech-
niques de la mathématique discrète et de l’informatique afin de résoudre des p.o.c de
la vie réelle.
L’optimisation combinatoire définit un cadre formel pour de nombreux problèmes
de de l’industrie, de la finance ou de la vie quotidienne. Les p.o.c sont habituellement
définis comme une problématique de choix d’une meilleure alternative dans un en-
semble très grand mais fini d’alternatives. En raison du très grand nombre d’alterna-
tives pour ces problèmes, l’ensemble des alternatives, dit aussi ensemble de solutions
réalisables, est défini en compréhension, en d’autres termes les solutions réalisables se
distinguent par un ensemble de propriétés ou de conditions, dites aussi contraintes,
qu’elles doivent toutes remplir. Une évaluation est associée à toute solution réalisable
à l’aide d’une fonction dite fonction objectif. Résoudre un tel problème consiste donc à
trouver une solution optimale, c’est-à-dire trouver une solution réalisable qui minimise
ou maximise, selon le contexte, la fonction objectif.
Dans ce chapitre nous présentons certaines méthodes, les méthodes les plus repré-
sentatives, développées pour résoudre les problèmes d’optimisation combinatoire.

2.1 Définition
Un problème d’optimisation combinatoire consiste à trouver la meilleure solution
dans un ensemble discret dit ensemble des solutions réalisables. En général, cet en-
semble est fini mais compte un très grand nombre d’éléments, et il est décrit de manière
implicite, c’est-à-dire par une liste, relativement courte, de contraintes que doivent sa-
tisfaire les solutions réalisables. Pour définir la notion de meilleure solution, une fonc-
tion, dite fonction objectif, est introduite. Pour chaque solution, elle renvoie un réel
et la meilleure solution (ou solution optimale) est celle qui minimise ou maximise la
fonction objectif. Clairement, un problème d’optimisation combinatoire peut avoir plu-
sieurs solutions optimales.

12
CHAPITRE 2. PROBLÈME D’OPTIMISATION COMBINATOIRE (P.O.C)

Bien que les problèmes d’optimisation combinatoire soient souvent faciles à définir,
ils sont généralement difficiles à résoudre., la plupart de ces problèmes appartiennent
à la classe des problèmes NP-difficiles.

2.2 Notions de complexité


On appelle complexité en temps d’un algorithme le nombre d’instructions élémen-
taires mises en œuvre dans cet algorithme afin de résoudre un problème donné. Une
instruction élémentaire sera une affectation, une comparaison, une opération algé-
brique, la lecture et l’écriture etc.. . . Mais comme le décompte précis de toutes les
instructions d’un programme risque d’être assez pénible, et qu’entre deux exécution
du même algorithme avec un jeu de paramètres différent, le nombre d’instructions
exécutées peut changer, on se contentera, en général, d’apprécier un ordre de gran-
deur de ce nombre d’instructions. C’est ce qu’on désigne sous le nom de complexité
de l’algorithme [58]. Donc pour mesurer la complexité temporelle d’un algorithme, on
s’intéresse plutôt aux opérations les plus coûteuses :
– Racine carrée, Log, Exp, Addition réelle .
– Comparaisons dans le cas des tris.
Définition 26. On dit que f (n) = O( g(n)) ( f (n) est de complexité g(n) ), chaque fois qu’il
existe k et n0 tels que : n > n0 ⇒ f (n) < kg(n).[24]

2.2.1 Algorithmes polynomiaux et Algorithmes exponentiels


Un algorithme polynomial est un algorithme dont la complexité est O(p(n)) où p est
une fonction polynomiale et n dénote la longueur de données. Tout algorithme dont la
complexité ne peut être bornée par un tel polynôme d’ordre n, est un algorithme ex-
ponentiel (bien que cette définition inclue certaines complexité non-polynomiales.[58]
comme nlogn , qui n’est pas considéré comme fonction exponentielle).

2.2.2 Problèmes combinatoires


Un problème combinatoire est un problème où il s’agit de trouver la meilleur com-
binaison possible de solutions. Un tel problème peut être soit un problème de décision,
un problème de recherche ou un problème d’optimisation, selon la question à la quelle
on est censé répondre. [58]

2.2.3 Problème de décision


Un problème de décision est un problème où la résolution se limite à la réponse par
« oui » ou par « non » à la question de savoir s’il existe une solution au problème. Par
conséquent, il n’est pas nécessaire de trouver la solution proprement dite.[23]

2.2.4 Problème de recherche


Dans ce cas précis, la résolution du problème ne s’arrête plus au point de savoir si
le problème admet ou non une solution. L’algorithme doit être en mesure de fournir la
solution si celle ci existe . Par conséquent, tout problème de décision peut être étendu
à un problème de recherche. [58]

13
CHAPITRE 2. PROBLÈME D’OPTIMISATION COMBINATOIRE (P.O.C)

2.2.5 Problème d’optimisation


Un problème d’optimisation est obtenu à partir d’un problème de recherche en
associant à chaque solution une valeur. Il consiste à trouver parmi un ensemble de
solutions potentielles celle qui répond le mieux à certains critères décrits sous forme
d’une fonction objectif à maximiser ou minimiser c’est à dire on cherchera une solution
de valeur optimale, minimale, si on minimise la fonction objectif, et maximale, si on la
maximise.[58]

2.2.6 Les différentes classes de complexité


Définition 27. Un problème de la classe P :un problème est dit polynomial s’il existe un
algorithme de complexité polynomiale permettant de répondre à la question posée dans ce pro-
blème, quelque soit la donnée de celui-ci. La classe P est l’ensemble de tous les problèmes de
reconnaissances polynomiaux. [49]
Définition 28. La classe NP contient les problèmes de décision qui peuvent être décidés sur
une machine non déterministe en temps polynomial. C’est la classe des problèmes qui admettent
un algorithme polynomial capable de tester la validité d’une solution du problème. Intuitive-
ment, les problèmes de cette classe sont les problèmes qui peuvent être résolus en énumérant
l’ensemble de solutions possibles et en les testant à l’aide d’un algorithme polynomial.[19]

Définition 29. La classe NP-complet : parmi l’ensemble des problèmes appartenant à NP,
il en existe un sous ensemble qui contient les problèmes les plus difficiles : on les appelle les
problèmes NP-complets. Un problème NP-complet possède la propriété que tout problème dans
NP peut être transformé (réduit) en celui-ci en temps polynomial. [53]

Définition 30. La classe NP-difficile : un problème est NP-difficile s’il est plus difficile qu’un
problème NP-complet, c’est à dire s’il existe un problème NP-complet se réduisant à ce problème
par une réduction de Turing.[19]

2.3 Modélisation de problème d’optimisation combina-


toire
Comme il existe différentes méthodes pour obtenir une solution optimale à un
grand problème d’optimisation combinatoire dans un temps de calcul raisonnable, il
est souvent préférable de reformuler le problème. Dans ce contexte il est souvent pré-
férable d’augmenter le nombre de variables et de contraintes. Une bonne formulation
du problème consisterait à trouver une fonction objectif qui soit le plus approprié au
problème original.[25] Un problème d’optimisation combinatoire peut se formuler de
la manière suivante : données + question.
Données :
– un ensemble fini d’éléments ou configuration.
–une fonction de coût ou poids sur ces éléments.
Question :

14
CHAPITRE 2. PROBLÈME D’OPTIMISATION COMBINATOIRE (P.O.C)

F IGURE 2.1 – Relation entre les différents ensembles de complexité.

Déterminer n éléments de coût minimum ou de poids maximum, ... ?


Quelques exemples de problèmes d’optimisation combinatoire :
1– Plus cours chemin.
2– Arbre de poids minimum.
3– Voyageur de commerce.
4– Réseaux de transports.
5– Connexité dans un réseau de communication.

2.4 Résolution d’un problème d’optimisation combina-


toire
Pour résoudre un problème d’optimisation combinatoire il faut assuré :
–La définition de l’ensemble des solutions réalisables.
–l’expression de l’objectif à optimiser.
–le choix de la méthode d’optimisation à utiliser(méthode de résolution de
notre problème)
Les deux premiers points relèvent de la modélisation du problème, le troisième
point de sa résolution. Afin de définir l’ensemble des solutions réalisables, il est néces-
saire d’exprimer l’ensemble des contraintes du problème. Ceci ne peut être fait qu’avec
une bonne connaissance du problème sous étude et de son domaine d’application.

15
CHAPITRE 2. PROBLÈME D’OPTIMISATION COMBINATOIRE (P.O.C)

2.5 Méthodes d’optimisation combinatoire


Les différentes typologies des méthodes d’optimisation sont classifier sur deux
grandes classes de méthodes pour la résolution des problèmes :
– Les méthodes exactes.
– Les méthodes approchées.

F IGURE 2.2 – Classification des méthodes d’optimisation combinatoire.

2.5.1 Critères de sélection d’une méthode de recherche


Le choix de la méthode de résolution dépend des caractéristiques et de la représen-
tation adoptée pour le problème traité. Ces caractéristiques concernent :
–La complexité du problème (nombre et combinatoire des paramètres à explorer).
– La fonction d’évaluation (coût de l’évaluation, optimisation multi-objectif).
– La présence de contraintes
– Le résultat souhaité (nombre et caractéristiques des solutions)
– les conditions d’obtention de ce résultat (temps imparti, interactions avec l’utilisa-
teur, etc.).
– L’ensemble de ces informations permet la sélection de la technique à employer parmi
la multitude existante.

16
CHAPITRE 2. PROBLÈME D’OPTIMISATION COMBINATOIRE (P.O.C)

2.5.2 Méthodes exactes


Les méthodes éxactes sont des méthodes qui garantit l’obtention de la solution opti-
male pour un problème d’optimisation. L’utilisation de ces méthodes s’avèrent particu-
lièrement intéressante, mais elles sont souvent limitées au cas des problèmes de petite
taille. Le principe essentiel d’une méthode exacte consiste généralement à énumérer,
souvent de manière implicite, l’ensemble des combinaisons de l’espace de recherche.

Parmi les méthodes exactes, nous trouvons la programmation linéaireles , les mé-
thodes de recherche arborescente de séparation et évaluation, dites méthodes de Branch
and Bound, et la programmation dynamique.[28]

2.5.2.1 Programmation linéaire en nombres entiers(PLNE)


Un problème de programmation linéaire en nombres entiers (PLNE) est un pro-
blème de programmation linéaire (PL) avec tout ou une partie des variables qui doivent
être entières, voire restreintes à 0 et 1 comme valeur. On dit que les variables sont sou-
mises à des contraintes d’intégrité.[12]
Un problème de programmation linéaire classique (PL) sera, a contrarie, dit "en va-
riables continues". Dans certains problèmes, les variables de décision sont, par nature,
entières, mais nous allons voir que, dans de nombreux cas la modélisation nécessite
l’introduction de variables booléennes, c’est à-dire qui ne peuvent prendre que la va-
leur 0 ou 1.[38]

Formulation du PLNE
A ∈ <m∗n et B ∈ <m∗ p : des matrices de constantes .
C ∈ <n , d ∈ < p , e ∈ <m :des vecteurs de constantes .
x ∈ <n : un vecteur des variables continues .
y ∈ N :un vecteur des variables entières .
On peut formuler un PLNE

min C T x + d T y sujet à :

 Ax + bx ≥ e
x ∈ <n (2.1)
y∈N

Exemple :Production de peinture [51]


Une société produit de la peinture d’extérieure et d’intérieure à partir de deux pro-
duits de bases B1 et B2 . Les gains par tonne de production des peintures d’extérieure
et d’intérieure sont comparativement de facteurs 5 et 4. Les quantités utilisées et dis-
ponibles des produits de bases sont explicitées dans le tableau ci-dessous :
La chaîne de production ne peut produire qu’au plus deux tonnes de peinture d’in-
térieure par jour. Le problème est de déterminer les quantités de peinture d’extérieure
et d’intérieure que l’on peut produire par jour afin d’avoir un gain optimal.

17
CHAPITRE 2. PROBLÈME D’OPTIMISATION COMBINATOIRE (P.O.C)

peinture d’extérieur peinture d’intérieur quantité disponible par jour


B1 6 4 24
B2 1 2 6
profit par tonne 5 4

TABLEAU 2.1 – Production de peinture.

Modélisation : Production de peinture


2 inconnues du problème :
x1 = tonnes de peinture d’extérieure produites par jour.
x2 = tonnes de peinture d’intérieure produites par jour.

Contraintes :

6x1 + 4x2 ≤ 24
x1 + 2x2 ≤ 6 (2.2)
x2 ≤ 2.
Gain à optimiser :
g( x1 , x2 ) = 5x1 + 4x2 .
On appelle solution admissible toutes valeurs satisfaisant les contraintes du
problème. (Ce ne sont pas nécessairement des valeurs optimales.) On peut
utiliser ici une méthode graphique pour obtenir l’ensemble des solutions
admissibles.

F IGURE 2.3 – Domaine de solutions admissibles.

Remarque
La programmation linéaire en nombres entiers constitue un cadre général particuliè-
rement utile pour modéliser, et bien souvent résoudre, des problèmes d’optimisation
dans des domaines d’application extrêmement varies : logistique et transport, produc-
tique, réseaux de télécommunications ou de distribution d’énergie, etc...

2.5.2.2 Méthode de séparation et évaluation (Branch and Bound)


L’algorithme de séparation et évaluation, plus connu sous son appellation anglaise
Branch and Bound (B&B) (Land et Doig 1960) .

18
CHAPITRE 2. PROBLÈME D’OPTIMISATION COMBINATOIRE (P.O.C)

Les méthodes par séparation et évaluation sont des méthodes de résolution exacte
de problèmes d’optimisation combinatoire introduite par Land et Doig . Une méthode
de séparation et évaluation consiste à énumérer implicitement toutes les solutions dans
S (l’espace de solutions) en examinant les sous-ensembles de S. L’énumération des so-
lutions du problème consiste à construire un arbre Branch and Bound dont les nœuds
sont des sous-ensembles de solutions du problème, et les branches sont les nouvelles
contraintes à respecter. La taille de l’arbre dépend de la stratégie du parcours.[24]
Le branch-and-bound est basé sur trois axes principaux :
– L’évaluation.
– La séparation.
– La stratégie de parcours.

Algorithm 1 Branch and Bound


debut
placer le nœud début de longueur 0 dans une liste
répéter
si la première branche contient le nœud recherché alors
fin avec succès
sinon
supprimer la branche de la liste et former des branches nouvelles en étendant
la branche
supprimer d’une étape
calculer les couts cumulés des branches et ajouter dans la liste de telles sorte
que la liste
soit triée en ordre croissant.
Fin si
jusqu’à (liste vide ou recherché trouvé)
fin

2.5.2.3 Méthode de Branch and Cut


L’algorithme du “Branch and Cut” est une méthode qui conjugue les efforts de l’al-
gorithme du “Branch and Bound” et de la méthode des coupes polyedrales. Ainsi, pour
résoudre un programme linéaire en nombres entiers, le “Branch and Cut” commence
par résoudre une relaxation du problème puis il applique la méthode des coupes po-
lyedrales sur la solution trouvée. Si celle-ci n’arrive pas a obtenir une solution entière
alors le problème est divisé en plusieurs sous-problèmes qui seront résolus de la même
façon.[9]

19
CHAPITRE 2. PROBLÈME D’OPTIMISATION COMBINATOIRE (P.O.C)

Algorithm 2 Brunch and Cut


0
⇒ on veut résoudre le problème d’optimisation combinatoire min{c x : Ax ≥ b, x ∈
Rn } avec A ∈ Rn∗m et b ∈ Rm
liste des problèmes = vide
initialiser le programme linéaire le sous-système de contrainte ( A1 , b1 )
avec A1 ∈ Rn∗m1 et b ∈ R1m avec m1  m
/* étape d’évaluation d’un problème*/
0 0
calculer la solution optimale x̄ du programme linéaire{c x = minc x : A1 x ≥
b1 , x ∈ Rn }
solution courante appliquer la méthode des coupes Polyédral
/* fin l’étape l’évaluation */
si
solutions courantes est réalisable alors
0
x ∗ = x̄ est la solution optimale de min{c x : Ax ≥ b, x ∈ Rn }
Si non
ajoutez le problème dans la liste des problèmes
Fin si
Tant que la liste des problèmes non vide faire
sélectionner un problème
brancher le problème en deux ou plusieurs sous problème
résoudre les nouveaux sous problème ( impliquant les étapes d’évaluation)
Fin tant que

Remarque
La méthode Branch and Cut est un algorithme très efficace pour résoudre
divers problèmes de programmation d’entiers, et elle peut également four-
nir une garantie d’optimalité. De nombreux problèmes impliquent des va-
riables qui ne sont pas continues mais qui ont des valeurs entières et peuvent
être résolues par une méthode de branchement et de coupe. Cette méthode
est un algorithme exact consistant en une combinaison d’une méthode de
plan de coupe et d’un algorithme de branchement et de liaison.[9]

2.5.2.4 Programmation dynamique


Programmation dynamique inventée par Bellman (s 1954) pour résoudre des Pro-
blèmes de chemins optimaux (longueur max. ou min ),Cette programmation procédant
par énumération implicite des solutions. Bien que déjà pratiquée auparavant, elle est
élevée au rang de méthode générale de résolution avec les travaux de Bellman qui for-
malise l’approche. Cette approche permet de résoudre efficacement des problèmes de
décision séquentiels.
Plus généralement, elle consiste à aborder des problèmes d’optimisation avec une
stratégie consistant en deux points essentiels :
–Décomposer le problème en une séquence de problèmes.
–Établir une relation de récurrence entre les solutions optimales des pro-
blèmes.

20
CHAPITRE 2. PROBLÈME D’OPTIMISATION COMBINATOIRE (P.O.C)

F IGURE 2.4 – Principe de la programmation dynamique.

Remarque
Ce schéma représentant la programmation dynamique ou le problème prin-
cipal est divisé en sous-problèmes que l’on résout un par un jusqu’à ce
qu’on trouve la solution finale.

Algorithm 3 Programmation dynamique


Les étapes d’une programmation dynamique
⇒le développement d’un algorithme de programmation dynamique peut être pla-
nifié dans quatre étapes
1–caractériser la structure d’une solution optimale.
2–définir récursivement la valeur de solution optimale.
3–calculer la valeur d’une solution optimale partant des cas simples (cas d’arrêt
des récursions)
et en remontant progressivement jusqu’à l’énoncé du problème initial
4–construire une solution optimale pour les informations calculées

2.5.2.5 Relaxation lagrangienne


L’approche de la relaxation Lagrangienne actuellement utilisée, a été proposée par
Held et Karp (1970) et Held et Karp (1971) [35].Est une manipulation classique en op-
timisation sous contraintes. Bien qu’intimement liée à la convexité, elle est couram-
ment utilisée dans le cas non convexe. En particulier, elle permet d’obtenir des bornes
de la valeur optimale de certains problèmes d’optimisation combinatoire durs. L’idée
consiste à relaxer une partie des contraintes (en principe, celles qui rendent le problème
compliqué) qui sont introduites dans la fonction objectif sous la forme d’une pénalité
qui combine linéairement les contraintes relaxées. Les coefficients de cette combinaison
linéaire sont appelées les variables duales associées à la relaxation lagrangienne.
la relaxation lagrangienne consiste à supprimer des contraintes difficiles en les in-
tégrant dans la fonction objectif en la pénalisant si cette contrainte n’est pas respectée.
La solution obtenue représente ainsi une borne de la solution optimale du problème
initial. [56]
Considérons un Programme Linéaire :

 Max (ouMin)C.X
S.C A.X ≤ (ou ≥)b ( p)
X∈S

21
CHAPITRE 2. PROBLÈME D’OPTIMISATION COMBINATOIRE (P.O.C)

On sépare les contraintes « difficiles » des contraintes « faciles », on obtient :




 Max (ouMin) C.X
A1 .X ≤ (ou ≥)b1 (1) : contraintes  f acile 

S.C
A X ≤ (ou ≥)b2 (2) : contraintes  di f f icile 
 2


X∈S

La relaxation lagrangienne est faite en introduisant les contraintes difficiles dans la


fonction objectif de la manière suivante :

 Max (ouMin) C.X + λ(b2 − A2 X )
S.C A .X ≤ (ou ≥)b1 ( LR)
 1
X∈S

Où λ est un vecteur de pénalités positives appelées « multiplicateurs de Lagrange


».Ainsi, toute violation d’une contrainte (difficile) sera pénalisée dans la fonction objectif.[25]

Définition 31. multiplicateur de Lagrange est une technique permettant de trouver des
points stationnaires (maximum, minimum...) d’une fonction dérivable d’une ou plusieurs va-
riables. Cette technique est utile entre autres pour résoudre les problèmes d’optimisation sous
contrainte(s) (linéaire(s)).

Exemple
Soit le Programme Linéaire suivant :


 Max 7x1 + 2x2
avec − x1 + 2x2 ≤ 4 (1)




 5x1 + x2 ≤ 20 (2)


S.C −2x1 − 2x2 ≤ −7 (3)
− x1 ≤ −2 (4)




x ≤4 (5)

 2



x1 , x2 ∈ Z

La relaxation lagrangienne par rapport aux contraintes (1) et (3) conduit à (λ1 , λ2 ∈
R+ ) :


 Max 7x1 + 2x2 + λ1 (4 + x1 − 2x2 ) − λ2 (−7 + 2x1 + 2x2 )
 avec 5x1 + x2 ≤ 20


S.C − x1 ≤ −2
x2 ≤ 4




x1 , x2 ∈ Z

On obtient ainsi :


 Max x1 (7 + λ1 − 2λ2 ) + x2 (2 − 2λ1 − 2λ2 ) + 4λ1 + 7λ2
 avec 5x1 + x2 ≤ 20


S.C − x1 ≤ −2
x2 ≤ 4




x1 , x2 ∈ Z

22
CHAPITRE 2. PROBLÈME D’OPTIMISATION COMBINATOIRE (P.O.C)

2.5.2.6 Méthode des coupes de Gomory (Gomory cutting planes)


La méthode des coupes (on dit également algorithme du plan sécant ou méthode
des troncatures) développé par Ralph E. Gomory (1958) fournit une méthode de réso-
lution des PLNE. L’idée principale est d’ajouter des contraintes qui n’excluent aucun
point entier admissible. La méthode consistera à ajouter de telles contraintes linéaires
une par une, jusqu’à ce que la solution optimale de la relaxation soit entière [25] . Les
contraintes ajoutées sont appelées troncatures ou coupes. On peut résumer la méthode
comme suit :
– Étant donnée un PLNE, résoudre le PLC correspondant à l’aide du simplexe. Si la
solution optimale obtenue contient uniquement des valeurs entières, la résolution est
terminée.
–Si une ou plusieurs variables de base dans la solution optimale du PLC ne sont pas
entières, on doit alors générer, à partir d’une des lignes du tableau (celle dont la partie
fractionnaire est la plus élevée) une contrainte supplémentaire dite coupe de Gomory
(qui n’exclue aucune solution réalisable entière).
–Après ajout de cette contrainte, on détermine une nouvelle solution à l’aide du
dual simplexe. Le processus est répété jusqu’à ce qu’une solution optimale entière soit
obtenue.[25]

Génération de la Coupe de Gomory


Notation : étant donné un réel y, [y] désigne le plus grand entier inférieur ou égal à
y. Ainsi y = [y] + f , f étant la partie fractionnaire de y.
Par exemple :
y = 2.7 [y] = 2 f = 0.7
y = 16/5 [y] = 3 f = 1/5
y = -8.1 [y] = -9 f = 0.9
y=2 [y] = 2 f=0
Pour générer la nouvelle contrainte (coupe de Gomory), on remplace tout simplement
tous les coefficients dans la contrainte obtenue du tableau optimal par leur partie frac-
tionnaire correspondante ( f ij ) et déclarons par la suite que l’expression résultante doit
être ≥ à la partie fractionnaire du second membre f i . On obtient la contrainte :

Σ f ij x j ≥ f i (2.3)
Remarque
Plusieurs autres méthodes plus ou moins sophistiquées ont été conçues pour géné-
rer des coupes permettant d’obtenir plus ou moins rapidement la solution optimale du
PLNE.

Exemple
On veut résoudre le PLNE suivant :



 MaxZ = 100x1 + 120x2
 Avec 3x1 + 4x2 ≤ 4100


S.C x1 + 3x2 ≤ 2400 (2.4)
2x + 2x2 ≤ 2625

 1



x1 , x2 ∈ I N

23
CHAPITRE 2. PROBLÈME D’OPTIMISATION COMBINATOIRE (P.O.C)

où x1 et x2 représentent les variable de décision.


En appliquant l’algorithme du simplexe, on obtient le tableau optimal suivant :

Solution optimale : x1 = 1150 et x2 = 325/2 = 165.5

Z = 134 500 DA.

Puisque la solution optimale n’est pas entière, on doit poursuivre en construisant


la première contrainte additionnelle dont le but est d’éliminer la solution optimale
réelle sans enlever des solutions entières réalisables. Il s’agit de créer une contrainte
supplémentaire à partir d"une des contraintes du tableau optimal dont la valeur n’est
pas entière (x2 ou t2 ). La pratique consiste à choisir la variable dont la valeur a la
plus grande partie fractionnaire. Dans notre cas, la partie fractionnaire de x2 et t2 est
la même soit 1/2 (0.5), on choisit arbitrairement de rendre entier x2 . D’après le tableau
optimal, nous avons :
3 325
0 x1 + x2 + t1 + 0 t2 – t3 =
2 2
On sépare la partie entière et la partie fractionnaire :
1 1
0 x1 + (1+0) x2 + (1+0) t1 + 0 t2 +(−2 + t3 ) = 162 +
2 2
1 1
On déduit la coupe de Gomory : t3 ≥
2 2
Interprétation géométrique de la coupe de Gomory

Puisque le PLNE ne comporte que 2 variables, on peut tracer le graphe des contraintes,
puis on trace la coupe de Gomory sur le graphe. Pour cela il faut exprimer la nouvelle
contrainte en fonction de x1 et x2 . Ceci peut se faire car nous avons d’après la 3 ème
contrainte 2x1 + 2x2 + t3 = 2625, il s’ensuit que1/2t3 ≥ 1/2équivaut à x1 + x2 ≤ 1312.

24
CHAPITRE 2. PROBLÈME D’OPTIMISATION COMBINATOIRE (P.O.C)

F IGURE 2.5 – Interprétation géométrique de la coupe de Gomory.

Détermination du nouveau tableau optimal


L’algorithme dual simplexe permet de continuer avec le tableau optimal précédent
après ajout de la coupe de Gomory. On a :
1 1 1 1 −1 −1
t3 ≥ ⇒ t3 − t4 = ⇒ t3 + t4 =
2 2 2 2 2 2

25
CHAPITRE 2. PROBLÈME D’OPTIMISATION COMBINATOIRE (P.O.C)

La solution optimale est : x1 = 1148 et x2 = 164

Z = 134 480 DA.

Puisque cette solution est entière, il n’est pas nécessaire d’effectuer une autre coupe de
Gomory.

2.5.3 Méthodes approchés


Typiquement ce type de méthodes, dites heuristiques est particulièrement utile
pour les problèmes nécessitant une solution en temps réel pour résoudre des pro-
blèmes difficiles sur des instances numériques de grande taille. Elles peuvent aussi
être utilisées afin d’initialiser une méthode exacte (Branch Bound par exemple).[25]
Les méthodes approchées permettent d’obtenir une solution de bonne qualité (c’est-
à-dire assez proche de l’optimum) dans un contexte de ressources (temps de calcul
et/ou mémoire) limitées. Dans ce cas l’optimalité de la solution ne sera pas garantie[25].
les méthodes approchées englobent deux classes :
–Les méthodes heuristiques spécifies.
–Les méthodes méta-heuristiques.

2.5.3.1 Méta-heuristiques
Il existe un grand nombre de métaheuristiques d’optimisation. Elles se distinguent
classiquement en deux groupes : les méthodes locales et les méthodes de recherche
globale. A partir d’un point de départ quelconque, les méthodes locales permettent
d’obtenir le minimum local le plus proche du point de départ. [42]

Elles essaient toujours d’améliorer la solution courante et sont donc incapables de


s’extraire d’un minimum local puisque cela impliquerait d’accepter de dégrader la so-
lution courante. Les méthodes globales (Tabou, recuit simulé, algorithmes évolution-
naires, etc.) possèdent un mécanisme leur permettant de s’extraire des minima locaux.
Elles sont plus adaptées à l’exploration globale de l’espace de recherche le plus sou-
vent au détriment de l’exploration locale. on peut deviser les méthodes d’optimisation
méta-heuristique en deux grandes classes :
–Les méta-heuristiques a solution unique.
–Les méta-heuristiques a solution multiple.

26
CHAPITRE 2. PROBLÈME D’OPTIMISATION COMBINATOIRE (P.O.C)

F IGURE 2.6 – Classification des méta-heuristiques.

Méta-heuristiques a solution unique

les méta-heuristiques à base de solution unique, aussi appelées méthodes de trajec-


toire. Contrairement aux méta-heuristiques à base de population, les méthodes itéra-
tive a solution unique sont toute basées sur un algorithme de recherche de voisinage
qui commence avec une solution initiale, puis l’améliorer pas a pas en choisissant une
nouvelle solution dans son voisinage [28]. parmi les méthodes méta-heuristique a so-
lution unique on trouve :
–Le recuit simulé(Simulated Annealing).
–La recherche Tabou(tabu search ).
–Les méthodes de descente (Hill Climbing) .
Recuit simulé (Simulated Annealing)

Elle a été mise au point par trois chercheurs de la société IBM : S. Kirkpatrick, C.D.
Gelatt et M.P. Vecchi en 1983, et indépendamment par V. Cerny en 1985 à partir de
l’algorithme de Metropolis . Elle repose sur une analogie avec la métallurgie et le re-
cuit des métaux : un métal refroidi trop vite présente de nombreux défauts qui cor-
respondent à des excédents d’énergie interne. L’objectif du recuit est de minimiser ces
excédents de façon à obtenir une configuration d’énergie minimale.[58]

Le principe du recuit simulé est de parcourir de manière itérative l’espace des solu-
tions.On part avec Une solution réalisable x ∈ X représente, par analogie, l’état d’un

27
CHAPITRE 2. PROBLÈME D’OPTIMISATION COMBINATOIRE (P.O.C)

système avec une certaine distribution de probabilités p.[3]

On effectue une petite variation de la solution qui entraine une variation 4 f ( x ) de


l’énergie du système.
•Si 4 f ( x ) < 0 (l’énergie du système diminue) alors on accepte cette varia-
tion (p = 1).

• Sinon, elle est acceptée avec une probabilité :

p = e−4 f ( x)/T ( règle de Metropolis)

F IGURE 2.7 – Détermination d’un nouvel état pour la méthode de recuit simulé.

Algorithm 4 Recuit simulé


fixer une solution aléatoire S
calculer l’énergie f(S) associé à cette solution
initialiser la température (T)
tant que la condition d’arrêt n’est pas satisfaite faire
tant que l’équilibre thermodynamique n’est pas atteint faire
tirer une nouvelle solution S’
appliquer la règle de Métropolie
Si f (S0 ) < f (S)
S=S’
f (S0 ) = f (S)
Fin si
Fin tant que
décroître la température T
Fin tant que
afficher la solution optimale

28
CHAPITRE 2. PROBLÈME D’OPTIMISATION COMBINATOIRE (P.O.C)

Recherche Tabou (Tabu Search)

La méthode de recherche tabou, ou simplement méthode tabou, a été formalisée


en 1986 par F. Glover. Sa principale particularité tient dans la mise en œuvre de méca-
nismes inspirés de la mémoire humaine. L’idée consiste à garder la trace du chemine-
ment passé dans une mémoire et de s’y référer pour guider la recherche.[32]

•Notion de base

À chaque itération, l’algorithme tabou choisit le meilleur voisin non tabou, même
si celui-ci dégrade la fonction de coût. Pour cette raison, on dit de la recherche avec
tabou qu’elle est une méthode agressive.

•La liste tabou (mémoire)

L’idée de base de la liste taboue consiste à mémoriser les configurations ou régions


visitées et à introduire des mécanismes permettant d’interdire à la recherche de retour-
ner trop rapidement vers ces configurations.

Algorithm 5 Recherche Tabou


1–Initialisation.
2–Créer une liste des mouvements candidats.
3–Choisir le meilleur candidat. Ce choix est basé sur les restrictions Tabou et le critère
d’aspiration.
–On obtient ainsi une autre solution, mais qui ne sera enregistrer que si elle est
meilleur
que la solution précédente.
4–Appliquer le critère d’arrêt.
–Continue : changer les candidats d’admissibilité (restriction Tabou et critère
d’aspiration). Aller à 2.
–Stop : passer aux stratégies d’intensification et diversification.

Méthodes de descente (Hill Climbing)

L’idée générale d’une méthode de descente est de prendre dans un voisinage une
solution meilleure que la solution courante. En ce qui concerne l’exploration du voisi-
nage de la solution courante, plusieurs, attitudes peuvent être adoptées : exploration
aléatoire, exploration systématique pour déterminer un voisin meilleur, ou exploration
exhaustive pour déterminer le meilleur voisin.

Un algorithme à directions de descente est un algorithme d’optimisation différen-


tiable , destiné à minimiser une fonction réelle différentiable définie sur un espace eu-
clidien. L’algorithme est itératif et procède donc par améliorations successives. Un dé-
placement est effectué dans la direction, de manière à faire décroître la fonction. [34]

29
CHAPITRE 2. PROBLÈME D’OPTIMISATION COMBINATOIRE (P.O.C)

Algorithm 6 Hill Climbing


Données : f : <n ⇒ < supposée au moins différentiable.x0 point Initial arbitrairement
choisi
sortie : une approximation de la solution du problème :minx∈<n f ( x )
1. K=0
2.tant que "test est convergence" non satisfait
(a) Trouver une direction de descente dK tels que ∇ f ( xK ) T dK < 0
(b) Recherche linéaire : choisir un pas sK > 0 à faire dans la direction dK tel
que :
f ( xK + sK dK ) < f ( xK )
(c) Mise à jour : xK +1 = xk + sK dK ; K = K + 1;
3. retourner xK

Exemple
1
Allure de la fonction f : x −→ x12 + 2 x22 au point x = (1, 1) T dans
2
plusieurs directions.

F IGURE 2.8 – Allure de la fonction.

30
CHAPITRE 2. PROBLÈME D’OPTIMISATION COMBINATOIRE (P.O.C)

Méta-heuristiques a solution multiple

Contrairement aux recherches locales, les méthodes à base de multiple solutions


améliorent, au fur et à mesure des itérations, une population de solutions. L’intérêt
de ces méthodes est d’utiliser la population comme facteur de diversité. Il existe plu-
sieurs stratégies d’évolution de cette population amenant à des méthodes telles que les
colonies de fourmis (Ants system) , les algorithmes à essaim de particules (Particule
swarm optimiser) , la recherche par dispersion (Scatter search) , les algorithmes géné-
tiques (Genetic algorithm) .[41]

Algorithmes évolutive

Basés sur une simulation d’évolution de populations de solutions. L’objectif des al-
gorithmes évolutives (AE) est de faire évoluer une population P dans le but de trouver
l’optimum. Pour ce faire, à chaque génération t, les individus de la population sont
mutés et croisés avec une probabilité et ce sont les plus aptes qui survivent pour la gé-
nération suivante. Ce processus est répété pendant un certain nombre de générations,
en espérant que les solutions de la fonction fitness apparaissent dans la population.
La recherche de solutions dans un espace complexe implique souvent un compromis
entre deux objectifs apparemment contradictoires : l’exploitation des meilleurs solu-
tions et l’exploration robuste de l’espace des solutions possibles.[59]

Algorithme génétique

Un algorithme génétique noté AG reproduit l’évolution naturelle d’organismes vi-


vants, génération après génération, en respectant les phénomènes d’hérédité et la loi
de survie énoncés par Darwin. Dans une population, ce sont les individus les mieux
adaptés au milieu qui survivront et pourront donner une descendance. Dés les années
cinquante, plusieurs biologistes ont simulé des structures biologiques sur ordinateur.
Dans la décennie soixante, John Holland détermina une analogie entre un individu
dans une population d’individus et une solution d’un POC dans un ensemble de solu-
tions. L’ouvrage de Goldberg (1989) introduit l’application des AGs sur des problèmes
concrets. [8]

Définition 32. Un individu est caractérisé par une structure de données qui représente
une solution. La force d’un individu, encore appelée fitness exprime la qualité de la solution
correspondante. Les opérateurs génétiques de croisement et de mutation agissent sur les struc-
tures de données associées aux individus. Ils permettent de parcourir l’espace de solutions du
problème. La population correspond à l’ensemble courant de solutions. Le renouvellement de
cette dernière, autrement dit la création d’une nouvelle génération, est obtenu par itération de
l’AG, créant de nouveaux individus et détruisant d’autres. L’exécution d’un tel algorithme doit
conduire, à partir d’une population initiale, après de nombreuses générations, à une population
où les individus sont tous forts (un ensemble de ‘bonnes’ solutions).[8]

31
CHAPITRE 2. PROBLÈME D’OPTIMISATION COMBINATOIRE (P.O.C)

Les AGs sont alors basés sur les phases suivantes :


1– Initialisation :Une population initiale de N chromosomes est tirée aléa-
toirement.
2– Évaluation : Chaque chromosome est décodé, puis évalué.
3– Sélection : Création d’une nouvelle population de N chromosomes par
l’utilisation d’une méthode de sélection appropriée.
4– Reproduction : Possibilité de croisement et mutation au sein de la nou-
velle population.
5– Retour à la phase d’évaluation jusqu’à l’arrêt de l’algorithme.

F IGURE 2.9 – Principe générale de l’algorithme génétique .

Codage des individus

Avant de générer l’ensemble des individus représentant la population initiale, il


faut d’abord penser à définir le codage convenable des individus de la population.
Sachant que ces derniers sont représentés par un ou plusieurs chromosomes. Chaque
chromosome est composé d’un ensemble de gènes et chaque gène exprime un para-
mètre ou une information. Tout ça nécessite la définition d’un codage permettant la
modélisation et la manipulation des solutions (les individus) de la population. Le choix
du codage joue un rôle très important. En fait, il doit permettre la représentation des
différentes solutions possibles.[57]

F IGURE 2.10 – Codages des individus.

32
CHAPITRE 2. PROBLÈME D’OPTIMISATION COMBINATOIRE (P.O.C)

Fonction d’évaluation
L’évaluation consiste à mesurer la ‘force’ de chaque individu (fitness) de la popula-
tion. Si le problème est de maximisation, la fonction objectif peut être utilisée comme
mesure. En cas de minimisation, on utilise une fonction qui varie inversement avec la
fonction objectif.[8]

L’opérateur de sélection
La sélection consiste à choisir des individus qui permettront de générer de nou-
veaux individus. Plusieurs méthodes existent pour sélectionner des individus destinés
à la reproduction. On citera les deux méthodes classiques les plus utilisées.

• La sélection par roulette


La phase de sélection spécifie les individus de la population qui doivent survivre.
La méthode de base, appelée roue de loterie attribue à chaque individu une probabilité
de survie proportionnelle à son adaptation dans la population. Lors de la phase de sé-
lection, les individus sont sélectionnés aléatoirement en respectant les probabilités pi
associées pour former la population de la nouvelle génération.

Cette méthode consiste à dupliquer chaque individu de la population propor-


tionnellement à son milieu. Ainsi, les individus ayant la plus grande valeur de fitness
auront plus de chance d’être choisis. Dans une population de N individus, la fonction
de sélection est la suivante :[31]
F ( Xi )
Ps ( Xi ) =
N
∑ F ( Xi )
j =1

En utilisant cette probabilité de reproduction, on peut créer une roue de loterie


biaisée. Chaque individu de la population occupe une section de la roue proportionnel-
lement à son adaptation et qui indique aléatoirement quel individu peut se reproduire.
Cette méthode n’assure pas la sélection des meilleurs individus et peut être une cause
de la convergence prématurée.[57]

Définition 33. La convergence est un phénomène dans le calcul évolutif. Cela provoque l’ar-
rêt de l’évolution car précisément chaque individu de la population est identique. Une conver-
gence complète pourrait être observée dans les algorithmes génétiques en utilisant uniquement
le croisement(une façon de combiner les individus pour faire de nouveaux produits).

Définition 34. Le terme de convergence prématurée signifie qu’une population pour un


problème d’optimisation convergé trop tôt, ce qui à être suboptimale . Dans ce contexte, les
solutions parentales, à l’aide d’ opérateurs génétiques , ne sont pas capables de générer des
descendants supérieurs à leurs parents. Une convergence prématurée peut se produire en cas de
perte de variation génétique

33
CHAPITRE 2. PROBLÈME D’OPTIMISATION COMBINATOIRE (P.O.C)

F IGURE 2.11 – Exemplaire de sélection des individus.

•Sélection par tournoi


Le principe de la sélection par tournoi augmente les chances pour les individus
de piètre qualité de participer à l’amélioration de la population. Le principe est très
rapide à implémenter. Un tournoi consiste en une rencontre entre plusieurs individus
pris au hasard dans la population. Le vainqueur du tournoi est l’individu de meilleure
qualité. Cette méthode est en général satisfaisante.[29]

F IGURE 2.12 – Sélection par tournoi.

L’opérateur de croisement
Les croisements permettent de simuler des reproductions d’individus dans le but
d’en créer des nouveaux. Il est tout à fait possible de faire des croisements aléatoires.
Toutefois, une solution largement utilisée est d’effectuer des croisements multipoints.

•Croisement à un point
c’est le croisement le plus simple et le plus connu dans la littérature. Il consiste
à choisir au hasard un point de croisement pour chaque couple de chromosomes. Les
sous-chaînes situées après ce point sont par la suite inter-changées pour former les
deux fils.

34
CHAPITRE 2. PROBLÈME D’OPTIMISATION COMBINATOIRE (P.O.C)

F IGURE 2.13 – Croisement a un point d’un chromosome.

•Croisements multi-points

Elle reprend le mécanisme de la méthode de croisement à un point en géné-


ralisant l’échange à 3 ou 4 sous chaines.[11]

F IGURE 2.14 – Croisement multi-points d’un chromosome.

L’opérateur de Mutation

La mutation est définie étant la modification aléatoire d’une partie d’un chro-
mosome. Elle constitue une exploration aléatoire de l’espace des chaînes.[59]

F IGURE 2.15 – Une mutation d’un chromosome.

35
CHAPITRE 2. PROBLÈME D’OPTIMISATION COMBINATOIRE (P.O.C)

Critère d’arrêt

Généralement, le cycle de génération et remplacement est répétée jusqu’à ce qu’un


critère d’arrêt soit satisfait. Ce critère peut être notamment un nombre fixe d’itérations
(générations), un temps maximal de calcul, ou/et une solution satisfaisante. L’algo-
rithme évolutionnaire retourne alors la (ou les) meilleure(s) solution(s) qu’il a identi-
fiée(s) de génération en génération.

Algorithm 7 Algorithme de génétique


Début
–initialiser les paramètres nécessaire
–initialiser une population de N individus
–évaluer les N individus
tant que la condition d’arrêt n’est pas satisfaite
–utiliser l’opérateur de sélection pour sélectionner K individus
–appliquer l’opérateur de croisement sur les K individus avec les probabilités
Pc
–appliquer l’opérateur de mutation sur les K individus avec les probabilités
Pm
–appliquer l’opérateur d’évaluation pour évaluer les enfants obtenue
–utiliser la l’opérateur de sélection pour remplacer des individus parents des
individus enfants
Fin tant que
retourner là où le meilleur solution
Fin

Algorithmes de colonies de fourmis

Les algorithmes de colonies de fourmis ont été proposés par Colorni, Dorigo et
Maniezzo en 1992 (Colorni et al. 1992b) et appliquées la première fois au problème du
voyageur de commerce.Ce sont des algorithmes itératifs à population où tous les in-
dividus partagent un savoir commun qui leur permet d’orienter leurs futurs choix et
d’indiquer aux autres individus des choix à suivre ou à éviter.[2]

Le principe de cette méta-heuristique repose sur le comportement particulier des


fourmis, elles utilisent pour communiquer une substance chimique volatile particu-
lière appelée phénomène grâce à une glande située dans leur abdomen. En quittant
leur nid pour explorer leur environnement à la recherche de la nourriture, les fourmis
arrivent à élaborer des chemins qui s’avèrent fréquemment être les plus courts pour
aller du nid vers une source de nourriture. Chaque fourmi dépose alors une quantité
de phénomènes sur ces pistes qui deviendront un moyen de communication avec leurs
congénères, les fourmis choisissent ainsi avec une probabilité élevée les chemins conte-
nant les plus fortes concentrations de phénomènes à l’aide des récepteurs situés dans
leurs antennes.[20]

Cette méta-heuristique a permis de résoudre différents problèmes d’optimisation


combinatoire à forte complexité, comme le problème du voyageur de commerce le pro-
blème de coloration de graphe le problème d’affectation quadratique , etc.

36
CHAPITRE 2. PROBLÈME D’OPTIMISATION COMBINATOIRE (P.O.C)

Algorithm 8 Colonies de fourmis


Pour t = 1, .., tmax
pour chaque fourmi K = 1, .., m
choisi une ville au hasard
Pour chaque ville i non visité
 ville j , dans
choisir une la liste jik des villes restantes
(τij (t))α .(ηij ) β
si j ∈ jik


k
pij (t) = Σl ∈ J k (τil (t)) .(ηij )
α β
 i
0 / jik
si j ∈

Fin pour
Déposer une piste 4τijk sur le trajet τ K (t)
( ℘
k K (t)
si (i, j) ∈ T K (t)
4τij = L
0 si (i, j) ∈/ T K (t)
Fin pour
Évaporer les pistes
τij (t + 1) = (1 − p).τij (t) + 4τij (t)
Fin pour

2.5.3.2 Heuristiques spécifie


En optimisation combinatoire, une heuristique est un algorithme approché qui per-
met d’identifier en temps polynomial au moins une solution réalisable rapide, pas obli-
gatoirement optimale. L’usage d’une heuristique est efficace pour calculer une solution
approchée d’un problème et ainsi accélérer le processus de résolution exacte. Généra-
lement une heuristique est conçue pour un problème particulier, en s’appuyant sur sa
structure propre sans offrir aucune garantit quant à la qualité de la solution calculée.
Les heuristiques peuvent être classées en deux catégories :
– Méthodes constructives qui génèrent des solutions à partir d’une solution initiale
en essayant d’en ajouter petit à petit des éléments jusqu’à ce qu’une solution complète
soit obtenue.
– Méthodes de fouilles locales qui démarrent avec une solution initialement com-
plète (probablement moins intéressante), et de manière répétitive essaie d’améliorer
cette solution en explorant son voisinage.

Algorithme de gloutonne

Un algorithme gloutonne est un algorithme qui suit le principe de faire, étape par
étape, un choix optimum local, dans l’espoir d’obtenir un résultat optimum global. Par
exemple, dans le problème du rendu de monnaie (donner une somme avec le moins
possible de pièces), l’algorithme consistant à répéter le choix de la pièce de plus grande
valeur qui ne dépasse pas la somme restante est un algorithme gloutonne. Dans les cas
où l’algorithme ne fournit pas systématiquement la solution optimale, il est appelé une
heuristique gloutonne. L’illustration ci-contre montre un cas où ce principe est mis en
échec.[48]

37
CHAPITRE 2. PROBLÈME D’OPTIMISATION COMBINATOIRE (P.O.C)

Le principe d’une méthode gloutonne est très simple, Dans le cas d’une méthode
gloutonne, on construit tout simplement cette solution incrémentant en rajoutant à
chaque pas un élément selon un critère gloutonne, i.e. celui qui nous paraît "locale-
ment" le meilleur un choix à "court terme". Si cette vison à court terme nous donne
toujours une solution optimale, on parlera d’algorithme gloutonne exact sinon d’heu-
ristique gloutonne. [27]
La construction de la solution est donc souvent très simple, le problème étant plutôt
de justifier que la solution construite ainsi est bien optimale.

Algorithm 9 Algorithme de gloutonne


Debut
Trier (E)
Init (S)
Tant que Non complete (S) Faire
Select (x , E)
Si AjoutPossible (x) Alors
Ajout (S , x)
Fin tant que
Fin

Exemple

On considère la carte suivante .L’objectif est de trouver le chemin optimale entre A


et I. On donne egalement l’heuristique h

nœuds A B C D E F G H I
h 10 2 8 11 6 2 1 5 0

Appliquez un algorithme de gloutonne en utilisant h (donnez la suite des nœuds


développées (l’état de la liste Open a chaque itération). Déduire alors le chemin tra-
versé .

38
CHAPITRE 2. PROBLÈME D’OPTIMISATION COMBINATOIRE (P.O.C)

Solution

Open Close
(A,10,Void) Vide
(c,8,A), (D,11,A) (A,10,void)
(B,2,C), (F,2,C), (H,5,C), (D,11,A) (A,10,void), (c,8,A)
(I,0,B), (G,1,B), (F,2,C), (H,5,C) , (D,11,A) (A,10,void), (c,8,A), (B,2,C)
(A,10,void), (c,8,A), (B,2,C), (I,0,B)
A,C,B,I

L’explication :
Nous utilisons seulement la valeur heuristique h des nœuds développés .les nœuds
seront ordonnes selon leur valeur de h par ordre décroissant, les nœuds développés
auront le format suivant dans la liste Open (Nœud, h , parent)

Méta-heuristique hybride

Le mode d’hybridation qui semble le plus fécond concerne la combinaison entre


les méthodes de voisinage et les méthodes évolutives. L’idée essentielle de cette hy-
bridation consiste à exploiter pleinement la puissance de recherche de méthodes de
voisinage et de recombinaison des algorithmes évolutionnaires sur une population de
solutions. Un tel algorithme utilise une ou plusieurs méthodes de voisinage sur les
individus de la population pendant un certain nombre d’itération ou jusqu’à la décou-
verte d’un ensemble d’optima locaux et invoque ensuite un mécanisme de recombinai-
son pour créer de nouveaux individus.[58]
Les algorithmes hybrides sont considérés parmi les méthodes les plus puissantes.
Cette puissance réside dans la combinaison des deux principes de recherche fonda-
mentalement différents comme on a vu dans le paragraphe précédent. Le rôle de les
méthode population et l’espace de recherche de la méthode évolutive introduit des
règles de conduite générales dans le but de guider la recherche au travers de l’espace
de recherche. Dans ce sens, les opérateurs de combinaison ont un effet diversificateur
bénéfique à long terme.

39
CHAPITRE 2. PROBLÈME D’OPTIMISATION COMBINATOIRE (P.O.C)

F IGURE 2.16 – Compromis entre temps de calcul et qualité du résultat.

Conclusion
Nous avons présenté dans ce chapitre une bref définition sur l’optimisation combi-
natoire et ces méthodes de résolution .Donc pour résoudre un problème on doit choisir
les méthodes adéquates qui peuvent être adapté au type du problème. Après la pré-
sentation du problème qu’on va traiter dans le chapitre suivant on va choisir certaines
méthodes adéquates vus dans ce chapitre pour la résolution de notre problème.

40
Chapitre 3

Méthode de séparation et
évaluation(B&B)

Introduction
Pour trouver la solution optimale, et être certain qu’il n’y a pas mieux, il faut utiliser
une méthode exacte, qui demande un temps de calcul beaucoup plus long. Il n’existe
pas une méthode exacte universellement plus rapide que toutes les autres. Chaque
problème possède des méthodes mieux adaptées que d’autres. Dans ce chapitre nous
allons présenter un exemple d’algorithme de ce type, nommé procédure par séparation
et évaluation (PSE), ou en anglais branch and bound.

La méthode de branch and bound (procédure par évaluation et séparation progres-


sive) consiste à énumérer ces solutions d’une manière intelligente en ce sens que, en
utilisant certaines propriétés du problème en question, cette technique arrive à élimi-
ner des solutions partielles qui ne mènent pas à la solution que l’on recherche. De ce
fait, on arrive souvent à obtenir la solution recherchée en des temps raisonnables. Bien
entendu, dans le pire cas, on retombe toujours sur l’élimination explicite de toutes les
solutions du problème.

3.1 Arborescence des solutions possibles


Soit E l’ensemble des solutions d’un problème. On le suppose discret, fini mais très
grand. On énuméré tous les éléments de E en le séparant en n1 sous-ensembles non
vides contenant chacun une partie, de taille variable, des éléments de E (on n’impose
pas toujours que ces sous ensembles soient disjoints, mais c’est en général le cas). On
peut recommencer avec chaque sous ensemble qui contient plus d’un élément et ainsi
de suite jusqu’à ce que tous les ensembles ne contiennent plus qu’un seul élément
.Cette énumération peut se représenter par un arbre de la façon suivante (la figure sui-
vante ) : la racine de l’arbre représente E, ses n1 fils représentent les n1 sous-ensembles
crées dans la première partition de E, et ainsi de suite.

41
CHAPITRE 3. MÉTHODE DE SÉPARATION ET ÉVALUATION(B&B)

F IGURE 3.1 – Arbre d’une énumération totale des solutions du problème.

Les feuilles de l’arbre représentent les éléments de l’ensemble, c’est-à-dire les solu-
tions au problème. Si on a effectue une partition des ensembles a chaque fois, chaque
élément n’est présent qu’une fois. S’il y a eu séparation en sous-ensembles non dis-
joints, on obtient des répétitions d’éléments. Il y a bien entendu un très grand nombre
de façons différentes de choisir les partitions pour un ensemble donne.

3.1.1 Exemple d’ordonnancement


Dans ce exemple ,nous présentons une illustration de la méthode sur un problème
d’ordonnancement sur une machine.
Définition 35. Ordonnancement sur une machine son environnement est composé d’une
seule machine, m = 1, qui est disponible d’une manière continue. Les n tâches à ordonnancer
ne comprennent qu’une seule opération à effectuer sur la machine. Dans ce cas, l’opération est
assimilée à sa tâche. [47]
C’est un modèle simple, mais il possède des propriétés uniques. De plus, il est utile dans
l’étude de modèles plus complexes, car il fournit des algorithmes et heuristiques de base. Sou-
vent, les modèles plus complexes sont décomposables en sous-problèmes contenant le modèle
à une machine. Par ailleurs, dans la pratique il existe des problèmes n’utilisant qu’une seule
machine, comme par exemple une pointeuse dans une usine.[47]

F IGURE 3.2 – Présentation d’ordonnancement d’une machine.

3.1.1.1 L’énonce d’exemple


Ce problème consiste à ordonnancer un ensemble U de cinq tâches : U = { A, B, C, D, E}.
Chaque tâche peut commencer après une date ri (date de début au plus tôt) et doit du-
rer pi unités de temps 1 ≤ i ≤ 5. Nous cherchons à construire un ordonnancement
réalisable en minimisant le mokespon (date de fin d’exécution de la dernière tâche). Le
problème se ramène donc à trouver la séquence optimale des tâches sur la machine.

42
CHAPITRE 3. MÉTHODE DE SÉPARATION ET ÉVALUATION(B&B)

Les données du problème sont présentées dans le tableau suivant. La préemption des
tâches est interdite et la machine est disponible à tdisp = 0

tache A B C D E
ri 0 4 8 7 11
pi 4 2 1 3 4

TABLEAU 3.1 – Donner de l’instance

Définition 36. mokspon c’est la longueur d’ordonnancement (schedule lengh).c’est la durée


total d’ordonnancement le délai d’exécution ,les retard etc .Noté cmax est égale la durée d’achè-
vement de la tache la plus tardive.[47]

Remarque

Le problème en question est un problème polynomial. La solution optimale peut


être simplement obtenue en ordonnançant les tâches dans l’ordre croissant des ri (règle
FIFO ou First In First Out). L’objectif de cet exemple est tout simplement d’illustrer la
procédure de séparation et d’évaluation et de montrer qu’elle trouve bien la solution
optimale pour ce problème particulier. Dans la suite, nous donnons le détail de la ré-
solution de l’exemple.

3.1.1.2 La solution heuristique


La solution heuristique que nous choisissons est la suivante : ABDEC. Elle est repré-
sentée dans le diagramme de Gantt de la figure suivante. Cette solution est caractérisée
par une valeur de la fonction objectif égale à b0 = 16.

F IGURE 3.3 – Représentation de la solution heuristique.

3.1.1.3 Borne inférieur


La borne inférieure proposée ici se base sur la relaxation de la contrainte de dis-
ponibilité des tâches. Il est donc clair que pour exécuter un sous ensemble V ⊂ U, le
temps nécessaire est minoré par la valeur B(V ) définie comme suit :

B(V ) = max {tdisp ; mini∈V {ri }} + ∑ Pi


i ∈V

Cette borne va nous servir à évaluer la performance de chaque branche séparée.


L’étape initiale consiste à évaluer la borne inférieure pour l’ensemble U (car on n’a
pas encore séparé l’ensemble des solutions possibles). On trouve B(U ) = 14, ce qui

43
CHAPITRE 3. MÉTHODE DE SÉPARATION ET ÉVALUATION(B&B)

correspond à l’évaluation de la branche primaire (voir l’arborescence à la fin de cet


exemple). Par la suite, la solution optimale de notre problème a une valeur de critère
comprise entre 14 et 16.

3.1.1.4 Schéma de séparation et d’exploration


La règle de séparation choisie consiste à considérer plusieurs niveaux dont le
nombre est égal à celui de tâches à réaliser. A chaque niveau on décide de séquencer
une tâche sur la machine parmi toutes les possibilités qui sont envisageables. Ainsi, on
commence au début de la procédure par séparer selon la tâche qui s’exécute à la pre-
mière position. Évidemment, cinq cas sont possibles : A, B, C, D ou E. Cela génère donc
cinq branches que nous devons évaluer (voir l’arborescence ci-dessous). Dans cette ar-
borescence la valeur indiquée dans chaque nœud correspond à la valeur de la borne
inférieure (et à la valeur de la fonction objectif dans un nœud terminal).

Considérons par exemple la branche correspondant à commencer l’ordonnancement


par la tâche A. Dans ce cas, A sera réalisée durant l’intervalle [0, 4]. Par la suite, la ma-
chine sera disponible à tdisp = 4 et l’ensemble des tâches restant à réaliser estV =
{ B, C, D, E} . Il s’ensuit que l’évaluation de cette branche, en appliquant la formule de
la borne inférieure, donne le résultat suivant : B(V ) = max {4, min{4, 8, 7, 11}} + 2 +
1 + 3 + 4 = 14, ce qui impose l’exploration de cette branche car 14 < b0 (voir l’arbores-
cence).

L’application du même raisonnement sur la branche correspondant à commencer


l’ordonnancement par la tâche B conduit à une évaluation de 18 > b0 (voir l’arbores-
cence). Il est donc inutile d’explorer cette branche puisque l’on dispose déjà d’une so-
lution dont la valeur du critère est meilleure. Cela permet donc d’écarter plusieurs pos-
sibilités moins bonnes que la solution courante et diminuer la taille de l’arborescence.
L’exploration est donc bien implicite. L’évaluation des autres branches conduit égale-
ment à conclure l’inutilité de leur exploration. Un résultat pertinent est donc conclu à
l’issue de l’exploration de ce premier niveau : pour aboutir à une solution optimale, il
faut obligatoirement commencer l’ordonnancement par exécuter la tâche A.

La méthode est poursuivie en employant la même démarche. L’application de la


méthode de proche en proche conduit à l’arborescence représentée dans la figure ci-
dessus. L’ordonnancement optimal correspond donc à la séquence ABDCE (qui cor-
respond bien à la séquence FIFO). Il est représenté dans la figure suivante.

44
CHAPITRE 3. MÉTHODE DE SÉPARATION ET ÉVALUATION(B&B)

F IGURE 3.4 – Parcours des solutions.

F IGURE 3.5 – Présentation des solutions.

3.2 Présentation de la méthode Séparation et évaluation


(B&B)

Historique
– Le premier exemple développé de procédure par séparation est l’algorithme pro-
posé en 1960 par LAND et DOIG pour les programmes mixtes.
– En 1963, Little et al. utilisent une PS pour résoudre le problème du voyageur de com-
merce et eut un grand retentissement.
– de façon à isoler une solution optimale dans l’un de ses sous ensembles.En 2002 G.

45
CHAPITRE 3. MÉTHODE DE SÉPARATION ET ÉVALUATION(B&B)

Gutin et A.P. Punnen publiaient un livre “The Traveling Salesman Problem and Its Va-
riations”Ce livre couvre tous les domaines importants de l’étude sur TSP, y compris la
théorie des polyèdres symétriques et asymétriques pour le TSP, branch and bound et
d’autres méthodes.

3.2.1 Définition
Les méthodes par séparation et évaluation sont des méthodes de résolution exacte
de problèmes d’optimisation combinatoire introduite par Land et Doig. Une méthode
de séparation et évaluation consiste à énumérer implicitement toutes les solutions dans
S (l’espace de solutions) en examinant les sous-ensembles de S.

Il s’agit essentiellement de diviser (divide and conquer) l’ensemble de toutes les


solutions réalisables (problème initial) en sous-ensembles plus petits (sous problèmes)
et mutuellement exclusifs. C’est la phase « séparation » (Branch). Puis divers critères
sont utilisés pour identifier les sous-ensembles qui peuvent contenir la solution op-
timale et les sous-ensembles qui ne doivent pas être explorés plus à fond car ils ne
peuvent pas contenir la solution optimale. C’est la phase « évaluation » (Bound).

L’énumération des solutions du problème consiste à construire un arbre Branch


and Bound dont les nœuds sont des sous-ensembles de solutions du problème, et les
branches sont les nouvelles contraintes à respecter. La taille de l’arbre dépend de la
stratégie utilisée pour la construire.

Pour ce faire, cette méthode se dote d’une fonction qui permet de mettre une borne
inférieure (en cas de min) ou borne supérieure( en cas de max) sur certaines solutions
pour soit les exclure soit les maintenir comme des solutions potentielles. Bien entendu,
la performance d’une méthode de branch and bound dépend, entre autres, de la qualité
de cette fonction (de sa capacité d’exclure des solutions partielles tôt).

F IGURE 3.6 – Présentation de la méthode branch and bound.

46
CHAPITRE 3. MÉTHODE DE SÉPARATION ET ÉVALUATION(B&B)

Une méthode de branch and bound est basé sur de trois axes principaux :
–La procédure de séparation ou bien Le branchement, qui consiste de partitionner
un ensemble de solutions en sous (branching rule)
– La procédure dévaluation permettant le calcul d’une borne pour un ensemble de
solutions (évaluation function).
– La stratégie de parcours ou procédure de cheminement d’exploration de l’arbo-
rescence de recherche" (search strategy).

3.2.2 La procédure de séparation ("Branching process")


La séparation consiste à diviser le problème en un certain nombre de sous-problèmes
qui ont chacun leur ensemble de solutions réalisables. En résolvant tous les sous-
problèmes et en prenant la meilleure solution trouvée, on est assuré d’avoir résolu le
problème initial. Ce principe de séparation est appliqué de manière récursive à chacun
des sous-ensembles tant que celui-ci contient plusieurs solutions.[37]

3.2.2.1 Démarche de la séparation :


Définition 37. un domaine est un ensemble fini ou infiniment dénombrable d’élément D =
{d1 , d2 , .., dm }
On fait l’hypothèse d’une minimisation de la fonction objectif F. Posons W = min{ F ( X ) |
X ∈ D }.Nous allons supposer que l’arbre construit est binaire(le degré extérieur de
chacun de ses sommets est soit 0 soit 1 "voir l’exemple de séparation") pour simplifier
la présentation de la méthode. La généralisation à un arbre quelconque se ferait sans
difficulté. A chaque sommet xi de l’arbre correspond un domaine de solutions di ⊂ D
de façon qu’à tout moment de la construction du graphe, l’arbre possède la propriété
suivante :

Les di associés aux feuilles du graphe forment une partition de D. Pour ce faire,
l’arbre est construit au départ d’un sommet (racine) dont le domaine associé est D tout
entier. Ensuite, à chaque étape un sommet xi de niveauN ≥ 0 et de domaine di est
0
analysé. Cet algorithme lui associe 2 descendants y et y de niveau N + 1 dont les do-
maines respectifs forment une partition de di .

Les descendants du sommet xi s’obtiennent en fixant une caractéristique binaire de


la solution. Pour ce faire, on choisit une variable de séparation et on coupe en deux
0
son domaine de valeurs possibles. Une fois le sommet xi analysé et les sommets y et y
définis, xi n’est plus candidat à une étude ultérieure.

Exemple
Si S ⊆ {0, 1}3 on peut construire l’énumération suivant :
d’abord on divise S en deux ensembles :
S0 = { x ∈ S; x1 = 0} et S1 = { x ∈ S; x1 = 1} en suite
S00 = { x ∈ S0 ; x2 = 0} = { x ∈ S0 ; x1 = 0 = x2 = 0} , S01 = { x ∈ S0 ; x2 =
1} et ainsi de suite... [24]

47
CHAPITRE 3. MÉTHODE DE SÉPARATION ET ÉVALUATION(B&B)

F IGURE 3.7 – Décomposition d’un problème binaire.

3.2.2.2 Règles de branchement


Les règles de branchement dans un algorithme (B&B), sont utilisées pour subdivi-
ser l’ensemble des solutions possibles.

Deux règles sont utilisées dans le branchement, qui consistent à affecter les tâches
une à une à partir de la fin (branchement en arrière exemple Problème des 8 reines), ou
au contraire, affecter les tâches à partir du début (branchement en avant).

Toutefois, il existe des heuristiques qui, une fois appliquées, déterminent à chaque
étape, les tâches qui doivent être affectées au début, à la fin, directement après ou di-
rectement avant une tâche.[50]

Remarque

Le processus de séparation d’un sous-ensemble pi s’arrête dans l’un des cas sui-
vants (cas Min) :
–Lorsque la borne inférieure de pi est ≥ à la meilleure solution trouvée jusqu’à main-
tenant pour le problème initial.
– Lorsque pi n’admet pas de solution réalisable.
– Lorsque pi admet une solution complète du problème initial.[25]

48
CHAPITRE 3. MÉTHODE DE SÉPARATION ET ÉVALUATION(B&B)

3.2.3 Procédure d’évaluation ("Bounding process")

L’évaluation d’un noeud de l’arbre de recherche a pour but de déterminer l’opti-


mum de l’ensemble des solutions réalisables associées au noeud en question ou, au
contraire, de prouver mathématiquement que cet ensemble ne contient pas de solution
intéressante pour la résolution du problème. Lorsqu’un tel noeud est identifié dans
l’arbre de recherche, il est inutile d’effectuer la séparation de son espace de solutions.
On peut distinguer pendant le déroulement de l’algorithme trois types de noeuds dans
l’arbre de recherche : le noeud courant qui est le noeud en cours d’évaluation, des
noeuds actifs qui sont dans la liste des noeuds qui doivent être traités, et des noeuds
inactifs qui ont été élagués au cours du calcul.[22]

Donc la procédure d’évaluation consiste à analyser un nœud( sous-probleme), cette


analyse vise à évaluer la valeur optimale de la fonction objectif de sous-problème, plus
précisement à déterminer une borne inférieure ou la borne supérieur de cette valeur.

L’algorithme de Branch and Bound maintient une borne supérieure (UB) et infé-
rieure (LB) au noeud racine.

Borne supérieure (upper bound UB )


Est la meilleure solution réalisable connue. Une solution réalisable est
trouvée par l’algorithme aux feuilles de l’arbre d’énumération, et parfois
avec un peu de chance comme solution de la relaxation linéaire à un noeud.
On peut bien sûr utiliser en plus des heuristiques pour en générer au cours
de l’exploration et espérer accélérer la recherche.

Borne inférieure (lower bound LB)


A chaque noeud x, la borne inférieure LB(x) pour le sous-problème cor-
respondant est calculée, par relaxation linéaire. Ceci permet éventuellement
d’éliminer le noeud de la recherche si LB( x ) > UB . Ceci permet aussi (et
surtout) de mettre à jour la borne inférieure de son père. En effet, la borne
inférieure d’un noeud doit être supérieure à la plus petite des bornes in-
férieures de ces fils. Les bornes inférieures sont ainsi mis à jour de proche
en proche, éventuellement jusqu’au noeud racine. Mais la valeur LB de la
racine augmente en générale très lentement.

La connaissance d’une borne inférieure du problème et d’une borne su-


périeure de la fonction d’utilité de chaque sous-problème permet de stop-
per l’exploration d’un sous-ensemble de solutions qui ne sont pas candi-
dates à l’optimalité.
si pour un sous-problème la borne supérieure est plus petite que la borne
inférieure du problème, l’exploration du sous-ensemble correspondant est
inutile. D’autre part, lorsque le sous-ensemble est suffisamment « petit »,
on procède à une énumération explicite : on résout alors le sous-problème
correspondant.[37]

49
CHAPITRE 3. MÉTHODE DE SÉPARATION ET ÉVALUATION(B&B)

3.2.3.1 Calcul de la borne inférieure


La procédure qui calcule la borne inférieure est l’élément clé de n’im-
porte quel algorithme BB, car une qualité médiocre de la borne inférieure
ne peut pas être compensée par de bons choix de la stratégie de recherche
ou de la règle de branchement.[13]
Les techniques de relaxation sont souvent utilisées dans le calcul d’une
borne inférieure. Appliquées à un problème de minimisation, elles four-
nissent une évaluation par défaut de l’optimum, en relâchant les contraintes
les plus difficiles à satisfaire, c’est-à-dire en les supprimant, ou en les pre-
nant partiellement en compte. [17]

Voici dans ce qui suit, les principales techniques de relaxation :

• Relaxation des contraintes : Une technique simple de relaxation consiste


à ignorer certaines contraintes du problème. On obtient alors un problème
dont la solution optimale est plus facile à calculer. [24]

•Relaxation lagrangienne : Déjà introduite au section (2.4.2.5)

• La relaxation continue :est une relaxation naturelle qui est, pour la


PLNE (par l’algorithme du simplexe, des points intérieurs ou du volume) et
la programmation quadratique (avec matrice définie positive) très efficace.
Néanmoins, nous verrons que la relaxation continue n’est pas forcément la
meilleure.

Il est également possible d’améliorer la borne obtenue par relaxation


continue en utilisant des idées spécifiques au problème. En ce qui concerne
plus spécifiquement la PLNE, on peut améliorer la valeur de relaxation li-
néaire en ajoutant des contraintes, le renforcement ou des variables, la re-
formulation.

•Relaxation linéaire continue :le problème (LP) obtenu par relaxation


des contraintes d’intégrité d’un (ILP"integer linear programming") définit
une relaxation de ce (ILP). Pour un problème de minimisation, la solution
optimale du (LP) donne une borne inférieure de la valeur de la solution op-
timale du (ILP), il s’agit d’un relâchement de la contrainte x ∈ P ∩ N n en
x ∈ P telle que :
P = { x ∈ Rn + : Ax ≤ b}.
Comme P ∩ N n ⊆ P et la fonction objective ne change pas alors il est
clair qu’il est une relaxation . La relaxation linéaire ne donne pas seulement
un borne inférieure mais des fois preuve l’optimalité. [24]

3.2.3.2 Calcul de la borne supérieure


La borne supérieure est un élément essentiel de l’algorithme B&B. Calcu-
lée initialement par une heuristique appropriée, la borne supérieure est tou-
jours comparée avec les bornes inférieures trouvées au niveau des noeuds.

50
CHAPITRE 3. MÉTHODE DE SÉPARATION ET ÉVALUATION(B&B)

Dans le cas où une borne inférieure d’un noeud est supérieure à la borne
supérieure, ce noeud est élagué. Une fois arrivé à un noeud feuille, la borne
supérieure sera remplacée par la valeur de la solution calculée au niveau de
la feuille. [18]

3.2.3.3 Conditions d’élimination


Le nœud ide l’arborescence sondé si une des trois conditions suivantes sont :
– Éliminé par optimalité.
•Il s’agit de la solution optimale du problème P(i ) .

•si f (i ) ≤ f il convient d’actualiser x = f .


–Éliminé par borne.
– Éliminé par infaisabilité :Pi = ∅. [24]

Éliminé par optimalité :


– Dans la figure suivante on a une décomposition d’un problème P a deux sous-
problèmes P1 et P2 avec ses bornes supérieur et inférieure.

On observer que :
la borne inférieure P1 égale, LB (P1 ) = 17
la borne supérieure P2 égale, UB (P2 ) = 22
Donc ne peut pas deviser P1 . Alors la branche de sous-problème P1 est éliminé par
optimalité.

F IGURE 3.8 – Éliminer par optimalité.

Éliminé par borne :


Dans la figure suivante on a une autre décomposition d’un problème P a deux sous-
problèmes P1 et P2 avec ses bornes supérieur et inférieur.
On observer que :

la valeur optimale est minoré par 16 , mais la borne supérieure P1 égale,


UB (P1 ) = 22 Donc le sous problème P1 ne contient pas la solution optimale . Alors la
branche de sous-problème P1 est éliminé a partir de borne .

51
CHAPITRE 3. MÉTHODE DE SÉPARATION ET ÉVALUATION(B&B)

F IGURE 3.9 – Éliminer par borne.

Éliminé par infaisabilité

Dans la figure suivante on a une autre décomposition d’un problème P a deux


sous-problèmes P1 et P2 avec ses bornes supérieur et inferieur. On observer que :
la borne inferieure P1 égale, LB (P1 ) = ∅

la borne supérieure P2 égale, UB (P2 ) = 22


Donc le sous problème P1 infaisabilité. Alors la branche de sous-problème P1 est
éliminé a par infaisabilité.

F IGURE 3.10 – Éliminer par infaisabilité.

3.2.4 La stratégie de parcours


La plupart des méthodes de parcours d’un arbre de recherche sont connues depuis
déjà plusieurs années. La différence entre deux stratégies de recherche réside principa-
lement dans la taille de l’arbre de recherche généré et donc dans le temps de résolution
du problème traité. Les stratégies appliquées sont la plupart du temps différentes selon
la nature du problème. On distingue les problèmes d’optimisation combinatoire avec
une fonction objectif et un nombre généralement important de solutions et les pro-
blèmes de satisfaction de contraintes pour lesquels on ne cherche la plupart du temps
qu’une seule solution [4]. On peut citer différentes stratégies de recherche. Pour les
méthodes de parcours de l’arbre de recherche, on peut citer, entre autres, les politiques
suivantes :

52
CHAPITRE 3. MÉTHODE DE SÉPARATION ET ÉVALUATION(B&B)

3.2.4.1 Profondeur D’abord (Depth-first)

La méthode depth-first search est une méthode couramment utilisée. Elle consiste
en une exploration en profondeur de l’arbre de recherche. Les variables sont fixées une
à une itérativement, jusqu’à obtenir une solution ou jusqu’à ce qu’une variable ait un
domaine vide. Lorsque c’est le cas, on revient sur la dernière décision qui a été prise et
on prend une autre décision, si cela est possible. Dans le cas contraire, on remonte plus
haut dans les décisions prises. Cette technique est appelée Backtrack "marchè en ar-
riere ". Lorsque le nombre de solutions est important, cette méthode permet de trouver
très rapidement une solution. Cette méthode est très classique dans l’implémentation
d’un Branch and Bound. En terme d’occupation mémoire, cette méthode est la plus
intéressante.[39]

3.2.4.2 Largeur D’abord (Breadth-first)

Cette méthode est la méthode opposée à la méthode depth-first search. Elle


consiste à explorer l’arbre en largeur. Le parcours en largeur correspond à un parcours
par niveau de nœuds de l’arbre. Un niveau est un ensemble de nœuds ou de feuilles
situés à la même distance du nœud racine. Ce type de parcours est rarement utilisé, du
fait de l’occupation mémoire trop importante.

Une fois l’arbre créé, elles permettent d’ordonner une liste de nœuds à traiter. Elles
ne modifient en aucun cas la structure propre de l’arbre. Néanmoins, deux politiques
de parcours d’arbre de recherche peuvent donner des résultats différents en terme de
rapidité d’exécution et en terme d’occupation mémoire. En effet, on peut associer à ces
méthodes des calculs de bornes qui pourront amener à la troncature de sous-espaces
de l’arbre de recherche (par exemple, lorsque la borne inférieure calculée à un nœud
est supérieure à la borne supérieure). Ainsi, si la structure de l’arbre n’est pas modifiée,
les espaces explorés de l’arbre peuvent être modifiés par les schémas d’exploration.[4]

3.2.4.3 Meilleur D’abord (Best bound first )

On choisit parmi les nœuds restant à traiter celui qui a la plus petite borne in-
férieure. Cette borne peut être calculée par exemple, par relaxation de contraintes, par
une méthode heuristique, . . . Ce choix est efficace lorsque les bornes calculées sont de
bonne qualité. Elle présente par contre l’inconvénient de traiter des nœuds successifs
très différents (valeurs et variables différentes) et donc de ne présenter que peu d’incré-
mentalité dans les calculs, notamment les calculs de bornes inférieures. De plus, cette
méthode n’est applicable que lorsqu’une borne est calculable, ce qui peut ne pas être
le cas pour certains problèmes de satisfaction de contraintes, dans lesquels il n’y a pas
de fonction objectif.[34]

53
CHAPITRE 3. MÉTHODE DE SÉPARATION ET ÉVALUATION(B&B)

3.2.5 Efficacité de l’algorithme B&B


Différentes techniques sont utilisées pour rendre l’algorithme BB plus efficace. On
peut en citer quelques unes :

3.2.5.1 Choix d’une stratégie de recherche


La stratégie « profondeur d’abord » mariée avec le choix du nœud de plus petite
borne inférieure, est utilisée en pratique car elle nécessite peu d’espace mémoire. Par
contre, la stratégie « largeur d’abord » trouve une solution optimale plus rapidement
que la stratégie « profondeur d’abord » . Il est donc primordial de faire un bon choix
de la stratégie de recherche, qui dépend généralement de la taille du problème et des
ressources informatiques disponibles. [55]

3.2.5.2 Choix de la borne inférieure


Une borne inférieure doit être proche de l’optimum. Le choix de la borne inférieure
dépend pleinement du problème à résoudre et de la technique utilisée (relaxation, heu-
ristiques. . . ). Les bonnes sont celles qui éliminent un grand nombre de noeuds le plus
rapidement possible, ce qui réduit considérablement l’arbre de recherche.

3.2.5.3 Choix de la borne supérieur


la borne supérieure peut être une heuristique qui permet d’élaguer certaines branches
de l’arbre de recherche.

3.2.5.4 Règles de dominance


Les règles de dominance sont des conditions posées sur un noeud, pour pouvoir
l’éliminer si elles sont vérifiées (on dit que ce noeud est dominé), et ce avant de calculer
sa borne inférieure. Les règles de faisabilité sont appliquées en premier aux noeuds,
pour décider de l’admissibilité de la séquence traversant ce noeud, évidemment, le
noeud est éliminé si la séquence n’est pas admissible. Les règles de dominance sont
utiles pour réduire au mieux l’arbre de recherche, en éliminant les noeuds dominés.
[55]

3.2.5.5 Choix du critère d’évaluation


Lors d’une application de branch and bound, on a besoin d’avoir une fonction qui
permet d’évaluer chaque noeud traité, et éventuellement élaguer ceux qui sont inutiles.
De même, un noeud peut être élagué dans trois cas possibles : dans le premier cas,
on arrive à un stade où la valeur de la borne inférieure d’un noeud courant est plus
grande ou égale à la valeur de la borne supérieure qu’on avait établie auparavant. Dans
le deuxième cas, la solution n’est pas réalisable, l’un des critères d’évaluation n’a pas
été respecté. Le troisième cas est le cas où on a obtenu une solution réalisable, tous les
critères sont valides, mais la solution obtenue est supérieure à la borne inférieure.

54
CHAPITRE 3. MÉTHODE DE SÉPARATION ET ÉVALUATION(B&B)

3.2.6 Quelques problèmes d’applications


La méthode de séparation et évaluation, notons la B&B, est applicable à de nom-
breux problèmes relevant ou non de la théorie des graphes et dont les plus connus
sont :

– La programmation ou optimisation linéaire en variables mixtes c-à-d réelles, en-


tières et binaires où B&B se combine à l’algorithme du simplexe destiné à l’optimisa-
tion en variables réelles uniquement.
– Le problème du voyageur de commerce TSP (Traveling SalesmanProblem) c-à-d.
la recherche d’un circuit hamiltonien de poids minimum que nous allons décrire ci-
après.
– Des problèmes complexes, NP-complets le plus souvent.
– Le problème du sac à dos : Étant donné plusieurs objets possédant chacun un
poids et une valeur et étant donné un poids maximum pour le sac. "Quels objets faut-
il mettre dans le sac de manière à maximiser la valeur totale sans dépasser le poids
maximal autorisé pour le sac ?"

3.2.7 Méthode séparation et évaluation sur des exemples


La caractéristique principale de cette technique consiste de trouver dans quelle
branche les solutions ont le plus de chance d’être trouvées pour ne pas continuer inuti-
lement et voila deux exemple pour comprendre le parcours des solution.

Exemple 1
Soit le PLNE (noté P) : min x1 − 2x2


 −4x1 + 6x2 ≤ 9
S.C x + x2 ≤ 4 (3.1)
 1
x1 , x2 ≥ 0, estentiers

Z ∗ sera le coût optimal de la relaxation linéaire (borne inférieure).


– Si la solution de la relaxation est entière, pas besoin de partitionner le sous problème.
– Sinon, on choisit un non entier, et on crée deux sous problèmes en ajoutant les
contraintes :

xi ≤ xi∗ et xi ≥ xi∗
   

La solution optimale réelle obtenue par le simplexe (de P relaxé) est

x∗ = (1.5, 2.5)

et

Z ∗ = −3.5

En cas de minimisation cette solution représente donc une borne inférieure (LB) :

ZLB = Z ∗ = −3.5.

55
CHAPITRE 3. MÉTHODE DE SÉPARATION ET ÉVALUATION(B&B)

l’arrondir de cette solution donne une solution réalisable (borne supérieure (UB) ZUB
),
on a :

x = (1, 2) et = ZUB = −3.

Ainsi on peut borner la solution optimale du PLNE comme suit :

−3.5 ≤ Zopt ≤ −3
Création des sous problèmes P1 et P2 :
en rajoutant les contraintes x2 ≤ 2 et x2 ≤ 3

P1 P2
minx1 − 2x2 minx1 − 2x2
S.c S.c
4x1 + 6x2 ≤ 9 −4x1 + 6x2 ≤ 9

x1 + x2 ≤ 4 x1 + x2 ≤ 4

x2 ≤ 3 x2 ≤ 2

x1 , x2 , est entiers x1 , x2 , est entiers

TABLEAU 3.2 – Sous problèmes P1 et P2 .

Liste des sous problèmes actifs : { P1 , P2 }

F IGURE 3.11 – Sous problèmes actifs : { P1 , P2 }.

56
CHAPITRE 3. MÉTHODE DE SÉPARATION ET ÉVALUATION(B&B)

On observe que :
Le problème P1 n’est pas réalisable
Liste des problèmes actifs P2
La solution optimale réelle de p2 relaxé est :

x ∗ = (0.75, 2) et Z ∗ = −3.25.

La borne inférieure trouvée LB=(-3.25) étant inférieure à la meilleure solu-


tion trouvée (-3)
Création des sous problèmes P3 et P4 :
en rajoutant les contraintes x1 ≤ 0 et x1 ≥ 1

P3 P4
minx1 − 2x2 minx1 − 2x2
S.c S.c
4x1 + 6x2 ≤ 9 −4x1 + 6x2 ≤ 9

x1 + x2 ≤ 4 x1 + x2 ≤ 4

x2 ≤ 2 x2 ≤ 2

x1 ≥ 1 x1 ≤ 0

x1 , x2 , est entiers x1 , x2 , est entiers

TABLEAU 3.3 – Sous problèmes P3 et P4 .

F IGURE 3.12 – Sous problèmes actifs : { P3 , P4 }.

57
CHAPITRE 3. MÉTHODE DE SÉPARATION ET ÉVALUATION(B&B)

Liste des problèmes actifs :(P3 , P4 )


La solution optimale de P3 relaxé est entière donc :

x ∗ = (1 , 2) et Z = -3.

La solution optimale réelle de P4 relaxé est :

x ∗ = (0 , 1.5) et Z ∗ = -3.

Cette branche est arrêtée car Z ∗ (LB) ≥ -3.


La solution optimale est donc :

x PLNE = (1 , 2) avec Zopt = -3

F IGURE 3.13 – Présentation de parcours du solution.

58
CHAPITRE 3. MÉTHODE DE SÉPARATION ET ÉVALUATION(B&B)

Exemple 2
Problème du sac à dos (problème. de maximisation) – Deux simplifications
1. Les variables sont binaires.
2. La relaxation linéaire peut être résolue efficacement par un algorithme simple :
prendre d’abord les articles à meilleur rendement, jusqu’à atteindre la capacité.
– Une société dispose de 1 400 000 DA à investir.
– Les experts proposent 4 investissements possibles :

Coût Bénéfice Rendement


Inv. 1 500 000 1 600 000 3.20
Inv. 2 700 000 2 200 000 3.14
Inv. 3 400 000 1 200 000 3.00
Inv. 4 300 000 800 000 2.67

Résolution :

ai ci Rdt p p1 p3 p4 p5 p6 p2 p7 p8 p9 p10 p11 p12


3 5
500 000 1 600 000 3.20 1 1 1 0 1 1 1 1 1 0 1
5 4
5 6
700 000 2 200 000 3.14 1 0 1 1 1 1 1 0 1 1 1
7 7
1
400 000 1 200 000 3.00 1 1 1 1 1 0 0 0 0 0 0 0
2
2
300 000 800 000 2.67 0 0 1 0 1 1 0 1 1 1 1 1
3
Commentaires :

IRelaxation de p
–Solution réelle x ∗ = (1 , 1 , 0.5 , 0) , Z ∗ = 4 400 000
–Solution arrondie x̄ = (1, 1, 0, 0) , Z̄ = 3800000
On enregistre cette solution comme meilleure solution rencontrée : xbest = x̄ et Zbest =
3800000
Nous avons 3800000 ≤ Zopt ≤ 4400000
Création de deux sous problèmes P1 (x3 = 1) et P2 (x3 = 0)

IRelaxation de p1
–Solution réelle x ∗ = (1 , 5/7 , 1 , 0) , Z ∗ = 4371429 > 3800000
–Création de deux sous problèmes p3 ( x3 = 0) et P4 ( x2 = 1)
Note : On va appliquer comme stratégie de parcours le DFS (Parcours en profondeur)

I Relaxation de p3
–Solution entière x̄ = (1 , 0 , 1 , 1) , Z̄ = 3 600 000
Arrêt de cette branche, puisque nous avons obtenu une solution entière (qui n’est pas
optimale Z̄ < Zbest )

IRelaxation de p4

59
CHAPITRE 3. MÉTHODE DE SÉPARATION ET ÉVALUATION(B&B)

–Solution réelle x ∗ = (3/5 , 1 , 1 , 0) Z ∗ = 4 360 000 > 3 800 000


Création de deux sous problèmes p5 (x1 = 0) et p6 (x1 = 1)

I Relaxation de p5
– Solution entière x̄ = (0 , 1 , 1 , 1), Z̄ = 4 200 000
Arrêt de cette branche, puisque nous avons obtenu une solution entière. Mise à jour de
xbest et zbest = 4 200 000

IRelaxation de p6
–Problème non réalisable ⇒ Arrêt de la branche.
I Relaxation de p2
–Solution réelle x ∗ = (1 , 1 , 0 , 2/3) Z ∗ = 4 333 333 > 4 200 000
Création de deux sous problèmes P7 (x4 = 0) et p8 (x4 = 1)

I Relaxation de P7
–Solution entière x̄ = (1 , 1 , 0 , 0) , Z̄ = 3 800 000
Arrêt de cette branche.

I Relaxation de p8
–Solution réelle x ∗ = (1 , 6/7 , 0 , 1) Z ∗ = 4 285 714 > 4 200 000
Création de deux sous problèmes p9 (x2 = 0) et p10 (x2 = 1)

I Relaxation de p9
–Solution x̄ = (1 , 0 , 0 , 1) , Z̄= 2 400 000
Arrêt de cette branche, car solution entière.

I Relaxation de p10
–Solution réelle x ∗ = (4/5 , 1 , 0 , 1) Z ∗ = 4 280 000> 4 200 000
Création de deux sous problèmes p11 (x1 = 0) et p12 (x1 = 1)

I Relaxation de p11
–Solution entière x̄ = (0 , 1 , 0 , 1) , Z̄= 3 000 000
Arrêt de cette branche.

I Relaxation de pp12
Problème non réalisable ⇒ Arrêt de la branche.
La meilleure solution trouvée est donc la solution optimale (Nœud p5 ), ainsi Solution
optimale

xopt = (0 , 1 , 1 , 1) , Zopt = 4 200 000

60
CHAPITRE 3. MÉTHODE DE SÉPARATION ET ÉVALUATION(B&B)

Note :
Seules 7 combinaisons ont été considérées (p3 , p5 , p6 , p7 , p9 , p11 , p12 ), une énumération
complète aurait considéré 24=16 combinaisons.

F IGURE 3.14 – Présentation de parcours du solution.

61
CHAPITRE 3. MÉTHODE DE SÉPARATION ET ÉVALUATION(B&B)

Conclusion
L’optimisation combinatoire consiste à trouver une solution parmi un grand nombre
fini de solutions, elle se situe au carrefour de la théorie des graphes, de la programma-
tion mathématique, informatique théorique et de la recherche opérationnelle.

Deux axes principaux de recherche de solutions existent, les algorithmes exacts,


et les heuristiques ,parmi les algorithmes exacts on trouve l’algorithme séparation et
évaluation.

Nous nous intéressons particulièrement aux méthodes par séparation et évaluation,


dites aussi Branch and Bound , qui sont basées sur l’idée de l’énumération des solu-
tions réalisables. L’avantage certain de ces méthodes est qu’elles sont exploitables pour
tout problème d’optimisation combinatoire puisqu’elles tirent leur validité du seul fait
que l’ensemble admissible d’un problème est fini. Bien évidemment, le principe de
ces méthodes n’est pas d’énumérer toutes les solutions réalisables mais de restreindre
progressivement l’ensemble des solutions réalisables, et ce en alternant une étape dite
de séparation et une étape d’évaluation jusqu’à obtention de la preuve de l’optimalité
d’unesolution. C’est la raison pour laquelle elles sont aussi appelées méthodes d’énu-
mération implicite.

cette méthode se dote d’une fonction qui permet de mettre une borne sur certaines
solutions pour soit les exclure soit les maintenir comme des solutions potentielles.

62
Chapitre 4

Problème de sac a dos

Introduction

Dans ce chapitre, on s’intéresse à une classe de problèmes d’optimisation connus


sous le nom général de problème du sac à dos, nous présentons le problème de sac à
dos dans sa version la plus simple
Le sac à dos est un problème N P-complet fondamental de l’optimisation combina-
toire. De part ses nombreuses variantes, il est au cœur de nombreux problèmes d’opti-
misation et, bien qu’il soit étudié depuis plusieurs décennies, il reste un sujet actif dans
le domaine et les non moins récentes publications portant tant sur sa résolution exacte
,que sur une résolution approchée .
L’intérêt du problème n’est pas que théorique. En effet, de nombreux cas pratiques
se formulent sous la forme d’un problème de sac à dos ou similaire. Il est en particulier
à l’origine de plusieurs algorithmes de chiffrement , bien que ces méthodes se soient
avérées peu fiables . C’est aussi un modèle classiquement utilisé dans la gestion de
portefeuilles, le transport et bien d’autres domaines.

Historique

Ce problème fait partie des 21 problèmes NP-complets identifiés par Richard Karp
en 1972. Ces 21 problèmes sont réputés comme les problèmes les plus difficiles en op-
timisation combinatoire. Un grand nombre d’autres problèmes NP-complets peuvent
se ramener à ces 21 problèmes de base. Nous pouvons retrouver le problème du sac à
dos dans de nombreux domaines :
– en cryptographie, où il fut à l’origine du premier algorithme de chiffrement asymé-
trique en 1976 .
– dans les systèmes financiers, où l’idée est la suivante : étant donné un certain mon-
tant d’investissement dans des projets, quels projets choisir pour que le tout rapporte
le plus d’argent possible .
– pour la découpe de matériaux, afin de minimiser les pertes dues aux chutes .
– dans le chargement de cargaisons (avions, camions, bateaux ...) .
– ou encore, dès qu’il s’agit de préparer une valise ou un sac à dos.

63
CHAPITRE 4. PROBLÈME DE SAC A DOS

4.1 Famille du problème du sac à dos


4.1.1 Problème du sac à dos classique (KP)
Le problème de sac à dos est un problème d’optimisation combinatoire modéli-
sant une situation dans laquelle un décideur dispose d’un ensemble d’objets parmi
lesquels il doit faire une sélection, en respectant une contrainte de capacité. L’objectif
est de maximiser le profit apporté par les objets choisis.

4.1.1.1 Modelisation
Considérons n objets, notés i = 1, ..., n apportant chacun un profit Vi mais possé-
dant un poids Wi . On veut ranger ces objets dans un « sac » que l’on veut au maximum
de poids C. Le problème de sac-à-dos (knapsack) consiste à choisir les objets à prendre
parmi les n objets de manière à avoir un profit maximal et respecter la contrainte du
poids à ne pas dépasser. Chaque objeti, i ∈ 1, ..., n doit être sélectionné au moins pi fois
et au plus qi fois. Ce problème se rencontre bien entendu dès que l’on part en randon-
née en voulant emmener le plus possible d’objets utiles.[26]
De manière générale, un problème d’optimisation peut être formulé de la façon sui-
vante :

 n


 Max Z ( x ) = ∑ v j xi

 j =1
n


∑ wj xj ≤ C

 S.c
(KP) j =1 (4.1)
x j ∈ {0, 1} et j ∈ {1, .., n}




 pi ≤ xi ≤ qi , pour i = 1, .., n




xi ∈ N, pour i = 1, .., n

4.1.1.2 Résolution
Le problème consiste donc à choisir un sous-ensemble d’objets parmi la collection
d’objets initialement prévue en vue de maximiser la fonction objectif :
n
Z( x) = ∑ v j xi
j =1

L’hypothèse suivante est alors formulée :


n
∀ j ∈ {1, .., n} w j ≤ C et ∑ wj > C
j =1

On dit qu’une solution est réalisable, notée x , si elle vérifie la contrainte de capacité,
c’est-à- dire
n
∑ w j x̄ j ≤ C
j =1

64
CHAPITRE 4. PROBLÈME DE SAC A DOS

La solution est dite optimale, notée x ∗ , si elle est à la fois réalisable et si elle maxi-
mise la somme des valeurs profits des objets mis dans le sac. En d’autres termes, pour
toute solution réalisable , on a :
n n
∑ v j x̄i ≤ ∑ v j x̄ ∗
j =1 j =1

Prenant un exemple très simple de ce problème KP. Supposons que n projets s’offrent
à un investisseur qui dispose d’un fond de C quantité d’argent .sachant que le profit
du j iéme est j ∈ 1, .., n ; et qu’investir dans ce projet coûteux . l’investissement optimal
peut être trouvé en résolvant un probleme du knapsack en 0-1.[25]

Exemple
Nous allons montrer le problème avec la procédure de séparation et d’évaluation
particulière grâce à une relaxation réelle de la contrainte d’intégrité. Reprenons le pro-
blème de sac-à-dos classique traité précédemment. On considère une instance de 3
objets définie comme suit :

w1 = 10 ; w2 = 7 ; w3 = 6
v1 = 7 ; v2 = 4 ; v3 = 6
vmax = 10

Le problème peut donc être représenté sous la forme linéaire suivante :


Maximiser : f = 10x1 + 7x2 + 6x3
tel que :

7x1 + 4x2 + 6x3 ≤ 10


xi ∈ {0, 1}∀ 1 ≤ i ≤ 3

L’exécution de la solution
⇒1er étape : recherche d’une solution heuristique

On peut classer les objets selon le rapport de l’utilité sur le volumewi /vi et en-
suite les insérer dans le sac selon ce classement. L’insertion est achevée quand le sac
est plein. Dans notre cas, on a :w1 /v1 = 10/7 ; w2 /v2 = 7/4 etw3 /v3 = 6/6. Il s’en-
suit que le classement est le suivant : objet 2, objet 1, objet 3 et que la solution retenue
est :x2 = 1; x1 = 0; x3 = 1 ce qui donne une valeur de f 1 est égale à 13.

⇒ 2e étape : recherche de la solution optimale

La relaxation de la contrainte d’intégrité binaire ( xi ∈ {0, 1}) permet de considérer


la résolution du problème à variables réelles et d’appliquer la méthode de résolution li-
néaire de Simplexe. Sa résolution donne les résultats suivants : x1∗ = 0, x2∗ = 2.25, x3∗ =
0 et f ∗ = 15.75.

65
CHAPITRE 4. PROBLÈME DE SAC A DOS

F IGURE 4.1 – Représentation de parcours de solutions.

Un tel résultat nous indique que dans le meilleur des cas l’utilité optimale f ∗ ne
peut pas dépasser 15.75. On sait également que la solution optimale est meilleure que
celle donnée par l’heuristique et que par suite, on peut espérer une valeur de f supé-
rieure ou égale à 13.

La première séparation consiste à considérer les deux cas :x2 = 0 et x2 = 1(voir


la figure ci-dessus).

Si x2 = 0 , le système est équivalent à :


Maximiser : 7x1 + 6x3 ≤ 10
avec :
x1 et x3 ∈ {0, 1}
10x1 + 6x3

Pour ce système d’équations, la relaxation de la contrainte d’intégrité conduit à


l’issue de l’application de la méthode de Simplexe à un profit maximal de 14.28 ce qui
est supérieur à la valeur f 1 obtenue pour la solution heuristique initiale (voir la branche
S1 dans la figure ci-dessus). Il s’ensuit que l’exploration de cette branche sera suivie.

Pour x2 = 1, le système est équivalent à :


Maximiser : {10x1 + 6x3 }
tel que :
7x1 + 6x3 ≤ 6
x1 et x3 ∈ {0, 1}
La résolution d’un tel système d’équations nous donne un profit maximal de 15.57,
la branche sera donc explorée (voir la branche S2 dans la figure précédente). Pour la
branche S2 , on choisit de séparer avec x1 = 1 et x1 = 0.

66
CHAPITRE 4. PROBLÈME DE SAC A DOS

L’hypothèse de x1 = 1 est impossible car cela viole la contrainte de volume maxi-


mal (nœud S3 de l’arbre). On sera donc obligé à continuer l’exploration en imposant
x1 = 0 . Pour x1 = 0 , on calcule la borne supérieure du profit en relâchant la
contrainte d’intégrité en imposant x1 = 0et x2 = 1 selon les équations :

Maximiser : 7 ∗ 0 + 4 ∗ 1 + 6x3
tel que :
7 ∗ 0 + 4 ∗ 1 + 6x3 ≤ 10
x3 ∈ {0, 1}

ce qui donne x3 = 1 avec un profit maximal de 13 (nœud S4 de la figure précédente).


Or, la solution heuristique initiale a le même profit et donc c’est inutile d’explorer cette
branche.

Pour la branche S1 , la décision x1 = 0 nous permet théoriquement d’avoir une


borne supérieure de profit égale à 10 (branche S5 de l’arbre). Il est donc inutile de
l’explorer puisque la solution déjà trouvée est meilleure. D’autre part, si x1 = 1, les
équations deviennent :

Maximiser 10 ∗ 1 + 7 ∗ 0 + 6x3
tel que :
10 ∗ 1 + 7 ∗ 0 + 6x3 ≤ 10
x3 ∈ {0, 1}

La résolution d’un tel système d’équations en relâchant la contrainte d’intégrité


nous donne une borne supérieure sur le profit égale à 13 unités. Par la suite, il n’est pas
opportun d’explorer cette branche (nœud S6 de l’arbre).

4.1.2 Problème de sac à dos multiple (MUKP)


Le problème du sac à dos multiple (MUKP) est une variante du problème du sac à
dos (KP) dont la résolution est beaucoup plus difficile. Le fait qu’on rencontre ce pro-
blème dans des domaines d’application aussi différents que l’économie, l’industrie,
les transports, le chargement de cargaisons et l’informatique répartie, lui confère un
grand intérêt pratique. Ce problème d’optimisation combinatoire sous contraintes est
NP-complet, les méthodes exactes existantes sont limitées à de petites instances.
Aujourd’hui, la résolution des instances très difficiles s’effectue grâce à des ap-
proches heuristiques, l’aptitude de ces dernières à fournir des solutions de bonne qua-
lité les rend indispensables dans le domaine pratique et elles s’avèrent aussi très utiles
pour le développement de méthodes exactes fondées sur des techniques d’évaluation
et de séparation.[37]

67
CHAPITRE 4. PROBLÈME DE SAC A DOS

4.1.2.1 Modélisation
La formulation mathématique du problème MKP est comme suit :

 m n


 Max ∑ ∑ p j xij

 i =1 j =1
n


∑ wi xij

 S.c ≤ ci pour i ∈ {1, .., m}
( MKP) j =1 (4.2)

 m
S.c ∑ xij ≤ 1 pour j ∈ {1, .., n}





 i =1
xij ∈ {0, 1} pour i ∈ {1, .., m} ; j ∈ {1, .., n}

Avec p j , w j et , ci des entiers positifs.


On suppose que : wmax = max {w1 , ..wn } , wmin = min{w1 , ..wn } , cmax = max {c1 , ..cn } , cmin =
min{c1 , ..cn } . Afin d’éviter les cas triviaux, nous faisons les hypothèses suivantes :
– Tous les items peuvent être chargés (au moins dans le plus grand sac) :

wmax ≤ cmax (4.3)

– Le plus petit item peut être chargé au moins dans le plus petit sac :

wmin ≤ cmin (4.4)

– Aucun sac à dos ne peut être rempli avec tous les items de N :

n
∑ w j > cmax (4.5)
j =1

Exemple
Par exemple on suppose qu’on a le problème MKP avec 4 items, 2 sacs :
–capacité des sac ci = (10,7).
– Les profits et les poids des items (wi , pi ) = j1 (9, 3), j2 (7, 3), j3 (6, 7), j4 (1, 5).
– La solution optimale à cet exemple de MKP est d’affecter l’item j1 (9, 3) et j4 (1, 5) au
sac de capacité 10
– L’item j3 (6, 7) au sac de capacité 7.[28]

4.1.3 problème du sac à dos multidimensionnel (MKP)


Le problème du sac à dos multidimensionnel (Multidimensional Knapsack Pro-
blem : MKP) est un problème d’optimisation combinatoire sous contraintes NP dif-
ficile. Plusieurs problèmes pratiques peuvent être formalisés comme un MKP.

68
CHAPITRE 4. PROBLÈME DE SAC A DOS

4.1.3.1 Modélisation
Le MKP est un problème NP-Difficile. En effet, si m = 1le MKP se réduit au pro-
blème du sac-a-dos.On peut modéliser le MKP de la manière suivante :

 n


 Maximiser Z ( x ) = ∑ pj xj

 j =1
n
( MKP) (4.6)
 S.c ∑ wij x j ≤ ci pour i = 1, .., m
j =1



x j ∈ {0, 1}

pour j = 1, .., n

Avec p j , wij , ci des entiers positifs, (pour j = 1, .., n et pour i = 1, .., m) Les instances
du MKP qui existent dans la littérature ne contiennent que très peu de contraintes.

x j est une variable de décision qui peut prendre la valeur 0 (si l’objet j n’est pas
sélectionné) ou 1 (s’il est sélectionné).

Le problème du sac à dos multidimensionnel (MKP) est un problème d’optimisation


combinatoire sous contraintes NP difficile. Ce qui explique le nombre de travaux qui
ont été effectués pour résoudre ce problème. Plusieurs problèmes pratiques peuvent
être formulés comme un MKP.

Nous citons l’allocation des processeurs et des bases de données dans les systèmes
informatiques distribués, le chargement des cargaisons, les problèmes de découpage
de stock.

Le MKP permet de modéliser une grande variété de problèmes où il s’agit de maxi-


miser un profit tout en ne disposant que de ressources limitées. D’une manière formelle[25],
il est présenté par les paramètres suivants :
– m : le nombre de ressources.
– n : le nombre d’objets sélectionnables.
– p j { j ∈ 1, .., n} : le profit apporté par l’objet j.
– wij (i ∈ {1, .., m}; j ∈ {1, .., n}) : la consommation de la ressource i par
l’objet j.
– ci ∈ {1, .., m} : est la quantité totale disponible de la ressource i.

4.1.3.2 Résolution
Le MKP a deux spécificités par rapport aux autres problèmes de la famille du sac-
à-dos.D’une part, la matrice associée au MKP est en général dense et d’autre part, l’ob-
tention d’une solution réalisable du MKP est une opération facile. En effet, en fixant
toutes les variables du MKP à 0, on obtient une solution de valeur égale à 0. Plusieurs
auteurs ont effectué des travaux sur le MKP. Parmi lesquels figurent Dommayer et
Voss, Glover et Kochenberger,Hanafi et Fréville, Chu et Beasley.[25]

Cependant, leur résolution reste assez difficile pour les logiciels d’optimisation.
A titre d’exemple, des instances qui comportent 10 contraintes et 500 variables ne
sont ‘ pas résolues de manière optimale en un temps raisonnable, par les logiciels

69
CHAPITRE 4. PROBLÈME DE SAC A DOS

d’optimisation.[25]

Sa résolution a fait l’objet principal de plusieurs travaux proposés par plusieurs cher-
cheurs, Chu et Beasley ont proposé un algorithme génétique pour résoudre le MKP.[25]

Alonso et ses collègues ont suggéré une stratégie évolutionnaire basée sur le cal-
cul génétique de multiplicateurs de substitution. Li et ses collègues ont proposé un
algorithme génétique basé sur le plan orthogonal pour le MKP.[25]

Zhou et ses collègues ont proposé une combinaison entre les réseaux de neurones
chaotiques et une stratégie heuristiques pour le MKP. Angelelli et ses collègues ont pro-
posé une heuristique générale pour le MKP. Kong et Tian ont proposé une optimisation
par essaim de particules pour résoudre le MKP.[25]

4.1.4 Problème du sac à dos à choix multiple


Le problème de sac-‘a-dos généralise à choix multiple (note MMKP) consiste à
maximiser une fonction objectif linéaire sous deux types de contraintes linéaires. La
première contrainte représente la contrainte de capacité, alors que la deuxième est une
contrainte de choix. Le MMKP appartient ‘a la classe des problèmes NP-difficile.[43]

4.1.4.1 Modélisation
Le MMKP est un programme linéaire a variables bivalentes. Chaque instance du
MMKP possédé n classes et m sacs. Le sac d’indice k; k = 1, .., m. est caractérisé par sa
contrainte k de capacité Ck Chaque classe i, i = 1, .., n est caractérisée par un ensemble
d’objets. A chaque objet j appartenant a la classes i est associe un profit vij et un vecteur
poidswij = (wijk ) , ou wijk dénote le k-ème poids de l’objet j dans la classe i .[43]
A tout objet d’indice j de la classe i on associe une variable de décision xij : Cette
variable est définie par :
 
 
xij = 1 si l’objet d’indice j de la classe i est sélectionné
0 sinon
 

Un seul objet est sélectionné par classe :


ri
∑ = 1, i = 1, .., m
j =1

4.1.4.2 Résolution
Le problème du sac à dos à choix multiple peut être utilisé pour la formulation de
nombreux problèmes dans différents domaines,y compris les problèmes de gestion de
budgets, l’allocation de ressources et la fiabilité des systèmes.[25]

70
CHAPITRE 4. PROBLÈME DE SAC A DOS

4.1.5 Problème du sac à dos quadratique


Dans le problème du sac-‘a-dos quadratique noté QKP, le profit obtenu en choisis-
sant un objet ne dépend pas seulement de cet objet, mais aussi des autres objets choisis.
Le QKP a été introduit pour la première fois par Gallo, Hammer et Simeone Il a permis
de modéliser certaines problèmes en théorie des graphes.[43]

4.1.5.1 Modélisation

Le problème de sac a dos formuler comme suite :


N N N
Maximiser ∑ xi pi + ∑ ∑ xi x j pij




i =1 i =1 j =1



N


∑ wi x i ≤ c

( QKP) Avec (4.7)
 i =1



 

 1 Si objet i est sélectionné
 xi = 0 Sinon

ou pij est le profit associé au couple d’objet i et j .[43]

4.1.6 Problème du sac à dos quadratique multidimensionnel


Le problème du sac à dos quadratique multidimensionnel est une extension de
deux autres variantes du problème du sac à dos : le problème du sac à dos multidimen-
sionnel (MKP) et le problème du sac à dos quadratique (QKP). Le problème du sac à
dos quadratique multidimensionnel est noté par QMKP (de l’anglais : Quadratic Mul-
tidimensional Knapsack Problem). Son principe combine les principes des variantes
MKP et QKP. En effet, dans le QMKP.[43]

4.1.6.1 Modélisation

on considère un ensemble N d’objets et un sac à dos avec M dimensions. Chaque


dimension a une capacité maximale Cj et chaque objet a une valeur (profit) pi et un
poids wij dans la dimension j du sac à dos. En plus du profit de chaque objet seul,
un profit quadratique est affecté à chaque paire d’objets, i.e. un profit supplémentaire
associé au pair d’objets i et j sera ajouté au profit total si les deux objets i et j sont dans
le même sac (la même dimension). Lors de la sélection des objets, on doit veiller à ce
qu’un objet ne peut être affecté qu’à un seul sac (dimension) au maximum. L’objectif du
problème est de trouver la bonne distribution des objets sur les différentes dimensions
du sac à dos de façon à maximiser le profit total des objets du sac à dos (avec toutes ses
dimensions) sans dépasser les capacités de ses différentes dimensions.[28]
Le QMKP peut être formulé comme suit :

71
CHAPITRE 4. PROBLÈME DE SAC A DOS


N M N −1 N N
Maximiser ∑ ∑ x p + ∑ ∑ ∑ xij xkj pik



 ij i


 i =1 j =1 i =1 k = i +1 j =1
N


∑ xij wij ≤ c j



 Avec
i =1

( QKP) (4.8)
 

 1 Si objet i est sélectionné

 x ij =



 0 Sinon



 i = 1, .., N
 j = 1, .., M

4.1.7 Problème de sac à dos multi-objectif


Le problème de sac à dos multi-objectif est une variante du problème de sac à dos
dans laquelle plusieurs coûts sont associés à chaque objet. [33]

4.1.7.1 Modélisation
Plus formellement, un MOKP est défini comme suit :
– m est le nombre de fonctions objectif.
– n est le nombre d’objets.
– x j est la variable de décision associée à l’objet j.
– q est le nombre de contraintes de ressource.
– w j est la quantité de la ressource i consommé par l’objet j.
– bi est la quantité totale disponible de la ressource i.
– pkj est le profit associé à l’objet j relativement l’objectif k.[25]

 m


 Maximiser ( Fi ( x )) = ∑ cij x j

 j =1
n
( QKP) (4.9)
 ∑ wij x j ≤ bi , ∀i = 1, .., q
j =1



x j ∈ {0, 1}

pour j = 1, .., n

Avec x ∈ C
w j : poids de l’élément j et cij : utilité de l’élément j / critère i


1 Si objet j est sélectionné
xj =
0 Sinon

4.1.8 Problème de sac-à-dos multi-objectif multidimensionnel


Les problèmes de sac-à-dos multi-objectif multidimensionnel sont fréquemment
utilisés pour modéliser des applications, telles que l’investissement de capitaux ou
l’allocation de processeurs. Ces problèmes consistent à sélectionner un sous-ensemble
d’objets de façon à ce que le cumul de leur poids ne dépasse pas une capacité donnée,
sur m dimensions, tout en maximisant le profit sur p fonctions objectifs.

72
CHAPITRE 4. PROBLÈME DE SAC A DOS

Chaque objet est caractérisé par un poids non-négatif pour chacune des m di-
mensions et un profit non-négatif sur chacun des p objectifs. Ce problème est connu
pour être particulièrement difficile lorsque plusieurs dimensions sont considérées, et
ce même dans le contexte mono-objectif. Plusieurs variantes du problème peuvent être
distinguées, en fonction du nombre d’objectifs et de contraintes pris en compte. De
nombreux travaux s’attachent à résoudre de manière exacte le problème du sac-à-dos
multi-objectif monodimensionnel. La méthode de résolution employée est générale-
ment une méthode en deux phases. La seconde phase est soit un algorithme de branch-
and-bound, soit une méthode de programmation.[10]

Le problème du sac-à-dos mono-objectif multi-dimensionnel a également été lar-


gement étudié. Afin de réduire le temps de résolution, l’ajout d’inégalités valides est
souvent utilisé. La variante du problème ayant sans doute été la moins étudiée est celle
considérant simultanément plusieurs objectifs et plusieurs dimensions. [1]

4.1.8.1 Modélisation

L’objectif de ce problème est de maximiser un vecteur de fonction profit tout en


satisfaisant un ensemble de contraintes de capacité du sac à dos. Plus formellement,un
MOKP est défini comme suit :

 n


 Maximiser F ( x ) = ∑ pkj x j , ∀k ∈ 1, .., m

 j =1
n
( MKP) (4.10)
 S.c ∑ wij x j ≤ bi , ∀i = 1, .., q
j =1



x j ∈ {0, 1}

pour j = 1, .., n

où :
–m est le nombre de fonctions objectif.
–n est le nombre d’objets, x j est la variable de décision associée à l’objet o j .
–q est le nombre de contraintes de ressource.
– wij est la quantité de la ressource.
–i consommé par l’objet o j .
–bi est la quantité totale disponible de la ressource i.
–pkj est le profit associé à l’objet o j relativement l’objectif k.

4.2 Méthodes de résolution du MKP


la résolution d’un problème d’optimisation est réalisée à l’aide des méthodes de
résolution dont la classification. et comme tous les problème d’optimisation plusieurs
méthodes pour la résolution du problème MKP ont été proposés, on situe trois types
différents : méthodes exactes, méthodes heuristiques et méthodes méta-heuristiques
(chapitre2)

73
CHAPITRE 4. PROBLÈME DE SAC A DOS

Conclusion
Nous avons présenté dans ce chapitre quelques problèmes de la famille du sac-à-
dos en commençant par le problème « père » sac a dos classique , très connu et en-
core très étudié de nos jours. Nous avons décrit l’ensemble des variantes ainsi que la
modélisation de chaque type du problème du sac-à dos. Les méthodes de résolution
existantes dans le deuxième chapitre de cette mémoire .

74
Chapitre 5

Implémentation et validation

Introduction
Dans les chapitres précédents ont donné une vision globale des différentes classes
d’optimisation combinatoire y compris la méthode de separation et évaluation (B&B)
avec différents principe et objectifs.

Durant ce chapitre nous présentons l’implémentation de notre système. Nous abor-


dons, tout particulièrement, les outils de développement ainsi que les principales fonc-
tionnalités de notre système à travers des captures d’écran.

5.1 Environnements de développement


Avant de commencer la description de l’implémentation de notre application, nous
avons choisi un ensemble d’outils qui peuvent répondre aux exigences de développe-
ment de notre application en vue des possibilités et des avantages qu’ils offrent.

5.1.1 Langage JAVA


Notre choix du langage de programmation s’est porté sur le lan-
gage JAVA et cela pour diverses raisons :

–JAVA est un langage orienté objet simple ce qui réduit les risques
d’incohérence.

– Il est portable. Il peut être utilisé sous Windows, sur Macintosh et sur d’autres
plates-formes sans aucune modification. C’est donc un langage multiplateforme, ce
qui permet aux développeurs d’écrire un code qu’ils peuvent exécuter dans tous les
environnements.

– Il possède une riche bibliothèque de classes comprenant des fonctions diverses


telles que les fonctions standards, le système de gestion de fichiers, les fonctions mul-
timédia et beaucoup d’autres fonctionnalités.

75
CHAPITRE 5. IMPLÉMENTATION ET VALIDATION

5.1.2 Éclipse
Pour accélérer le développement de notre application nous avons
utilisé l’environnement de développement Eclipse.

Eclipse est un environnement de développement intégré libre ex-


tensible, universel et polyvalent, permettant de créer des projets de
développement mettant en œuvre n’importe quel langage de programmation. Eclipse
IDE est principalement écrit en Java (à l’aide de la bibliothèque graphique SWT d’IBM),
et ce langage, grâce à des bibliothèques spécifiques, est également utilisé pour écrire
des extensions. Dans le cadre de notre projet, nous avons utilisé la version Eclipse Oxy-
gen O3 .

5.1.3 JavaFX
JavaFX est une technologie créée par Sun Microsystems qui ap-
partient désormais à Oracle, à la suite du rachat de Sun Microsys-
tems par Oracle le 20 avril 2009.

Avec l’apparition de Java 8 en mars 2014, JavaFX devient l’outil


de création d’interface graphique (’GUI toolkit’) officiel du langage Java, pour toutes
les sortes d’application (applications mobiles, applications sur poste de travail, appli-
cations Web...), le développement de son prédécesseur Swing étant abandonné (sauf
pour les corrections de bogues).

Notre choix s’est porté sur le JavaFX pour diverses raisons :


–Le SDK de JavaFX étant désormais intégré au JDK standard Java SE, il n’y a pas
besoin de réaliser d’installation spécifique pour JavaFX.

–Des projets libres complètent JavaFX en fournissant des composants de haute qua-
lité absents de JavaFX proprement dit.

5.2 Cplex
CPLEX est un outil informatique d’optimisation commercialisé par IBM depuis son
acquisition de l’entreprise française ILOG en 2009. Son nom fait référence au langage
C et à l’algorithme du simplexe. Il est composé d’un exécutable (CPLEX interactif) et
d’une bibliothèque de fonctions pouvant s’interfacer avec différents langage de pro-
grammation : C, C++,C#, Java et Python.

76
CHAPITRE 5. IMPLÉMENTATION ET VALIDATION

5.3 Présentation de l’Algorithme


Nous proposons un algorithme basé sur la procédure de séparation et évaluation
progressive une version modifiée résolu le problème de sac a dos multidimensionnelle
pour garantir l’optimalité des solutions obtenues.

Algorithm 10 Branch and Bound


procédure BBNœuds
Début
Lire (M) //poids maximal de sac a dos
Lire (N)// nombre des objets
pour (i :=1 a N) Faire
Lire size[i] ;// le poids de chaque objets
Lire val[i] ;// la valeur de chaque objets
Lire Max_item[i ] ;//liste de quantité du chaque objets
Fin pour
//création de tableau des objets croiser
Cur_item := tableau de [N+1] des entiers ;
Max_val :=0 ;//la valeur de la fonction objectif
Pour (i :=1 a N) Faire
Si (size[i ] <= M) Alors
BBSac (i,0,0)//appel vers la procédure BBsac
Fin Si
Fin pour
Fin
procédure BBSac (entier LVL , entier Som , entier Vl)
Début
Cur_item[ LVL] + +;
Som i := Som + size[ LVL];//poids de sac a dos avec Cur_item
Vl := Vl + val [ LVL];//valeur de sac dos avec Cur_item
Si (Vl > Max_val ) Alors
Max_val = Vl;
pour (i :=LVL a N) Faire
//pour assurer de ne pas dépasser le poids maximal du sac a dos
et ne pas dépasser la quantité maximal d’objets
Si (Som <= M ) et (Cur_item[i ] < Max_item[i ]) Alors
BBSac(i, Som, Vl )
Fin Si
Fin pour
Fin Si
Afficher ( Max_val );
Afficher (Cur_item);
Fin

77
CHAPITRE 5. IMPLÉMENTATION ET VALIDATION

5.4 Implémentation du système


Cette partie décrit les détails d’implémentation de notre application. Nous com-
mencerons d’abord par la présentation de l’architecture de déploiement du système,
puis on effectuera quelques tests pour enfin avoir nos résultats.

5.4.1 Déploiement du système


5.4.1.1 Organisation du projet de l’application
Notre système est développé sur Eclipse, ce dernier impose une structure bien dé-
finie pour l’organisation de l’application comme le montre la figure suivante :

F IGURE 5.1 – Organisation de l’application.

Le système est structuré en quatre partie :


1.Les classes des tâches du système
2.Les interface décrit en JavaFX
3.Les contrôleur qui relient les différentes tâches avec l’interface .
4.Le path qui contient les problèmes a testé.

5.4.1.2 Description des classes des tâches du système


la classe bbController :
c’est la classe principales de notre application qui contient les méthodes suivant :
•branchKnap() : c’est la méthode qui permet de crée et charger les nœuds .

78
CHAPITRE 5. IMPLÉMENTATION ET VALIDATION

•knapsack() : cette méthode évaluer la borne supérieur d’un nœud de l’arbre


de recherche pour déterminer l’optimum de l’ensemble des solutions réali-
sables associées.

5.4.1.3 Diagramme de classe


La figure suivante représente le diagramme de classe notre application et les rela-
tions entre les différents classe :

79
CHAPITRE 5. IMPLÉMENTATION ET VALIDATION

F IGURE 5.2 – diagramme de class.

5.5 Tests et résultats


Maintenant on fera des tests sur l’application et nous allons les effectuer dans les
prises d’écrans qui nous montrent les différentes étapes nécessaires à la réalisation de
la composition de notre implémentation et avoir les résultats dans une interface simple
qui facilite à l’utilisateur de bien exploité les fonctionnalités de notre application, qui
sont :

5.5.1 Description de l’application


L’application qu’on a développée est destinée a la résolution du problème de sac a
dos multidimensionnelle en utilisant la méthode de séparation et évaluation Lorsque
l’application est lancée, cette fenêtre s’affiche :
Cette fenêtre est composée des champs suivant :

1.champ ouvrir : l’utilisateur permet de choisir le probleme a tester qui est deja exite
dans le dossier data ( on peut ajouter un probleme par crée un fichier text et enregistre
dans data ).

80
CHAPITRE 5. IMPLÉMENTATION ET VALIDATION

F IGURE 5.3 – montrant l’écran d’accueil.

F IGURE 5.4 – Problèmes (data ).

2. Champ d’entre : il suffit l’utilisateur ouvrir un problème le system afficher les


paramètres relatifs au suivant :
•Nombre Items
•Poids Items
•Valeurs des Items
•Max de chaque Item

81
CHAPITRE 5. IMPLÉMENTATION ET VALIDATION

F IGURE 5.5 – Exemple d’affichage d’un problème avec le choix d’entre le poids max
d’un sac a dos

3.champ Entrer le poids Max du Sac a Dos : ou l’utilisateur doit entre la valeur
max du sac a dos.

F IGURE 5.6 – Exemple de poids max d’un sac a dos .

4. Champ d’exécution : appuie sur le button exécuter pour lancer la résolution du pro-
blème.

82
CHAPITRE 5. IMPLÉMENTATION ET VALIDATION

5. Champ de sortie : dans cette partie les résultats de l’exécution de la méthode


s’affichent directement :les solutions efficaces sont affiches

F IGURE 5.7 – L’affichage de résultat.

Les solutions efficaces sont affichées, ainsi que la durée d’exécution, affin de mieux
comprendre le fonctionnement de la méthode, on va faire un exemple d’application
avec son exécution et les résultats sont détailles.

83
CHAPITRE 5. IMPLÉMENTATION ET VALIDATION

5.6 Exemple d’application


Dans le cadre de l’étude du chargement d’un voiture de livraison le problème est
défini comme suivants La voiture possède une capacité maximale 130 kg .
Les objets sont des tuples (poids, valeur, quantité de chaque objets) présentés sous
forme d’une liste.

5.6.1 Résultat avec notre application

F IGURE 5.8 – Modélisation d’exemple.

F IGURE 5.9 – Résolution d’exemple.

84
CHAPITRE 5. IMPLÉMENTATION ET VALIDATION

5.6.2 Résultat avec Cplex

F IGURE 5.10 – Résolution d’exemple avec Cplex.

Conclusion
Ce chapitre présenté une implémentation de la méthode de séparation et évaluation
(Branch and bound ”B&B”) appliquée a un problème de sac a dos multidimensionnelle
, les expérimentations numérique nous ont montré l’efficacité de la méthode en terme
de recherche de solutions efficaces.

85
Conclusion générale

Dans notre memoire, nous avons traiter un des problèmes d’optimisation combina-
toire " le problème de sac a dos multidimensionnelle "MKP".nous avons citer plusieurs
approches de résolution dans le seconde chapitre . Ces approches peuvent être divisées
en deux grandes catégories : les méthodes approchées et les méthodes exactes. La pre-
mière partie est consacrée a la résolution approchée du problème et la deuxième partie
s’intéresse a la résolution exacte.Nous avons présenter plusieurs algorithmes exacts .

Le MKP est un des variantes de problème sac a dos qui déjà bien étudie dans le
chapitre 4 ,il appartient à la classe des problèmes NP-Difficiles . Dans ce problème, on
suppose qu’on a un sac à dos avec M dimensions. Chaque dimension a une capacité
maximale . D’autre part, on a un ensemble d’objets. Chaque objet a une valeur un poids
dans la dimension du sac à dos.

« Étant donné plusieurs objets possédant chacun un poids et une valeur et étant
donné un poids maximum pour le sac, quels objets faut-il mettre dans le sac de ma-
nière à maximiser la valeur totale du sac à dos sans dépasser sans dépasser les capacités
de toutes ses dimensions ? »

Pour trouver la solution optimale de ce problème , et être certain qu’il n’y a pas
mieux, il faut utiliser une méthode exacte, qui demande un temps de calcul beaucoup
plus long par rapport a une méthode approchée .Il n’existe pas une méthode exacte
universellement plus rapide que toutes les autres. Chaque problème possède des mé-
thodes mieux adaptées que d’autres. Nous avons présenter la méthode de procédure
par séparation et évaluation (PSE), ou en anglais branch and bound. Nous avons dé-
tailler le principe de la méthode dans le chapitre 3 .

Généralement les méthodes exactes proposées dans la littérature pour résoudre le


problème MKP sont à base du Branch-and-Bound (B&B) ou Séparation et Evaluation
en Français. Ce qui veut dire que sont des méthodes a base d’arbre. La méthode Branch
&Bound repose sur une méthode d’énumération intelligente de l’espace de recherche
basée sur l’analyse des propriétés du problème. Ce qui permet d’éviter l’énumération
d’une large classe de solutions ne pouvant pas mener à l’optimum, et cela en utilisant
la structure d’arbre.

Cette énumération permet d’obtenir la solution optimale recherchée en un temps


raisonnable, bien qu’on puisse se trouver dans le pire cas, où on explore toutes les solu-
tions du problème. La construction de l’arbre ainsi que son exploration sont effectuées
à l’aide de trois opérateurs : la séparation (Branch), l’évaluation (Bound),la stratégie
de parcours :on utilisant les méthodes de parcours en largeur, parcours en profondeur,

86
Conclusion générale

parcours par meilleure évaluation .

Les méthodes de B&B ont donné des résultats intéressants pour des problèmes de
taille moyenne. Elles ne sont pas utilisables pour des problèmes de grande taille.

L’autre problèmes des méthodes de B&B est le développement de bornes pour l’éli-
miner les nœuds indésirable .Ce qui est difficile dans la plupart des cas.

Les méthodes exactes sont qui résolu le problème MKP basées un principes : le
calcul des Bornes supérieure (majorant de la valeur optimale) .

Le point fort de cette méthode réside dans le fait qu’elle ne parcourt pas les sous
branches dont on peut savoir à priori qu’elles ne permettent pas d’améliorer la solu-
tion rencontrée, ce qui est établi grâce aux bornes des nœuds. Cela permet de trouver
de bonnes solution en un temps de recherche relativement court.

87
Bibliographie

[1] Analyse de contraintes de coupe et de substitution pour des solutions de havresac


multidimensionnelles améliorées. Annals of Operations Research, 117 :71–93.
[2] Inès Alaya. Optimisation multi-objectif par colonies de fourmis : cas des problèmes de
sac à dos. PhD thesis, Université Claude Bernard-Lyon I, 2009.
[3] Fouad Bekkari. Résolution des problèmes difficiles par optimisation distribuée. PhD
thesis, Université Mohamed Khider de Biskra, 2009.
[4] Boris Bontoux. Techniques hybrides de recherche exacte et approchée : application
à des problèmes de transport. Avignon, 2008.
[5] Pierre Bornsztein. Cours théorie des graphes.
[6] Sami Bouarfa. Pour une recherche-intervention appliquée à la gestion des ressources en
eau souterraines. PhD thesis, Université Montpellier 2, 2013.
[7] Mourad Bouhadj and Mounir Graine. Recherche du plus grand sous-graphe com-
mun entre deux graphes. Master’s thesis, 2017.
[8] Hocine Boumédiène-Merouane and Ali Derbala. Les problèmes d’ordonnance-
ment à machines parallèles de tâches dépendantes : une evaluation de six listes
et d’un algorithme génétique. COSI’06 International colloquim on optimisation and
information systems, pages 279–289, 2006.
[9] Mohamed Ekbal Bouzgarrou. Parallélisation de la méthode du" Branch and Cut"
pour résoudre le problème du voyageur de commerce. PhD thesis, Institut National
Polytechnique de Grenoble-INPG, 1998.
[10] Audrey Cerqueus, Xavier Gandibleux, Anthony Przybylski, Frédéric Saubion,
and Stefan Ruzika. Branch-and-cut bi-objectif appliqué au problème du sac-à-dos
bi-dimensionnel. In 17ème congrès de la société Française de Recherche Opérationnelle
et d’Aide à la Décision (ROADEF 2016), 2016.
[11] Tarek Chaari. Un algorithme génétique pour l’ordonnancement robuste : application
au problème du flow shop hybride. PhD thesis, Université de Valenciennes et du
Hainaut-Cambresis, 2010.
[12] Sara Chelouti and Karima Kaidi. Résolution d’un problème d’optimisation multi-
objectif fractionnaire linéaire flou en nombres entiers. Master’s thesis, 2016.
[13] Jens Clausen. Branch and bound algorithms-principles and examples. Department
of Computer Science, University of Copenhagen, pages 1–30, 1999.
[14] Joëlle Cohen. Théorie des graphes et algorithmes. Course notes. http ://www. univ-
paris12. fr/lacl/cohen/poly-gr. ps, 2006.
[15] Tom Davot-Grangé, Olivier Baudon, and Éric Sopena. Coloration de graphes par
multi-sommes. 2018.

88
BIBLIOGRAPHIE

[16] Yves Colin de Verdiere. Spectres de graphes, volume 4. Société mathématique de


France, 1998.
[17] Sophie Demassey. Méthodes hybrides de programmation par contraintes et program-
mation linéaire pour le problème d’ordonnancement de projet à contraintes de ressources.
PhD thesis, Université d’Avignon, 2003.
[18] Sophie Demassey and Dominique Feillet. Hybridation de programmation linéaire
et de programmation par contraintes pour le problème de déplacement de conte-
neurs. In ROADEF’15-16ème congrès annuel de la Société française de Recherche Opé-
rationnelle et d’Aide à la Décision, 2015.
[19] M Douiri, Souad Elbernoussi, and Halima Lakhbab. Cours des méthodes de réso-
lution exactes heuristiques et métaheuristiques. Université Mohamed V, Faculté des
sciences de Rabat, 2009.
[20] Johann Dréo. Adaptation de la méthode des colonies de fourmis pour l’optimisation en
variables continues. Application en génie biomédical. PhD thesis, PhD thesis, Paris 12,
2004.
[21] Christophe Dumeunier. Coloration de graphe en ligne.
[22] Sana El Bahloul. Flow-shop à deux machines avec des temps de latence : approche
exacte et heuristique. 2008.
[23] Bruno Escoffier. Approximation polynomiale de problèmes d’optimisation : Aspects
structurels et opérationnels. PhD thesis, Laboratoire LAMSADE, Paris Dauphine,
2005.
[24] AHMEDI EZZOURGUI and SALMA ZAHIA-KALLOUCH. Algorithme branch
and bound et application au problème tsp. Master’s thesis, 2016.
[25] Hamdaoui Fawzia. CONTRIBUTION A LA RESOLUTION DU PROBLEME DU
SAC A DOS MULTIDIMENSIONNEL A CHOIX MULTIPLE. PhD thesis, Univer-
sité Mohamed Boudiaf des sciences et de la technologie d’Oran.
[26] Pierre Fouilhoux. Optimisation combinatoire : Programmation linéaire et algo-
rithmes. Université Pierre et Marie Curie, 2015.
[27] Pierre Fraigniaud. Notes de cours algorithmique avancée.
[28] Amira Gherboudj. Méthodes de résolution de problèmes difficiles académiques.
Université de Constantine2, 2013.
[29] FRÉDÉRIC Girard. Optimisation de stratifiés en utilisant un algorithme géné-
tique. Master’s Dissertation, Faculté des Sciences et Génie, Université Laval, Québec,
Canada.[Links], 2006.
[30] Abdelkader HADRI. L’ORDONNANCEMENT PAR INSERTION EN TEMPS REEL
DE LA PRODUCTION DANS UN ATELIER FLEXIBLE. PhD thesis, Université de
Batna 2, 2012.
[31] C Hedible and S Pierre. Algorithme génétique pour l’affectation de cellules à des
commutateurs dans les réseaux de communications personnelles. In Proc. IEEE
Canadian Conf. Elect. Comput. Eng., pages 1077–1081, 2000.
[32] Mehdi Jaoua. Algorithme de recherche tabou pour la planification optimale d’une cam-
pagne marketing sur les moteurs de recherche. PhD thesis, École Polytechnique de
Montréal, 2014.

89
BIBLIOGRAPHIE

[33] Julien Jorge. Nouvelles propositions pour la résolution exacte du sac à dos multi-objectif
unidimensionnel en variables binaires. PhD thesis, Université de Nantes, 2010.
[34] Laetitia Jourdan. Métaheuristiques pour l’extraction de connaissances : Application à
la génomique. PhD thesis, Université des Sciences et Technologie de Lille-Lille I,
2003.
[35] Sona Kande. Etude et résolution de problèmes de planification dans des réseaux logis-
tiques multi-échelons. PhD thesis, Troyes, 2015.
[36] Asma Karray. Contribution à l’ordonnancement d’ateliers agroalimentaires utilisant des
méthodes d’optimisation hybrides. PhD thesis, Ecole Centrale de Lille, 2011.
[37] Mohamed Esseghir Lalami. Contribution à la résolution de problèmes d’optimisation
combinatoire : méthodes séquentielles et parallèles. PhD thesis, Université de Toulouse,
Université Toulouse III-Paul Sabatier, 2012.
[38] J-P Legendre and M Minoux. Une application de la notion de dualité en pro-
grammation en nombres entiers : sélection et affectation optimales d’une flotte
d’avions. RAIRO-Operations Research, 11(2) :201–222, 1977.
[39] Samir Loudni. Contributions à la résolution des WCSP et approches déclaratives pour
la fouille de données. PhD thesis, Université Caen Normandie, 2016.
[40] R Mariani, F Lecourt, M PIERROT DESEILLIGNY, J Labiche, and Y Lecourtier. In-
terprétation de cartes géographiques : Algorithmes de reconstruction des réseaux
hydrographiques et routiers. TS. Traitement du signal, 14(3) :317–335, 1997.
[41] Marie-Éléonore Marmion. Recherche locale et optimisation combinatoire : de l’analyse
structurelle d’un problème à la conception d’algorithmes efficaces. PhD thesis, Univer-
sité des Sciences et Technologie de Lille-Lille I, 2011.
[42] Souhil Mouassa. Optimisation de l’écoulement de puissance par une méthode
métaheuristique (technique des abeilles) en présence d’une source renouvelable
(éolienne) et des dispositifs facts. Mémoire de Magister, Université de SETIF, 2012.
[43] Mohamed Elhavedh Ould Ahmed Mounir. Contribution à la résolution du sac-à-dos
à contraintes disjonctives. PhD thesis, Université de Picardie Jules Verne, 2009.
[44] Didier Müller. Introduction à la théorie des graphes. Commission romande de ma-
thématique, 2012.
[45] Joël Njitchoum Tchékounang. Conception d’un générateur de topologie de réseaux
électriques. PhD thesis, École de technologie supérieure, 2013.
[46] Antonella Romano. Rome et la science moderne : entre Renaissance et Lumières. Pu-
blications de l’École française de Rome, 2013.
[47] Carine Ruhlmann. Étude du problème de job shop avec un convoyeur. Université du
Québec à Chicoutimi, 2007.
[48] Paul Sabatier. MÉMOIRE. PhD thesis, Université de Toulouse, 2014.
[49] ADEL SAHA. Résolution des Problèmes Multi Objectifs à Base de Colonies de Fourmi.
PhD thesis, Université de Batna 2, 2010.
[50] Soukaina Semami, Mohamed Bouchoum, and Brahim Aghezzaf. Une approche
branch-cut-and-price pour la résolution du problème de voyageur de commerce
suffisamment proche avec contraintes de couverture sur les arcs.
[51] Michel Simonnard. Programmation linéaire. Dunod, 1962.

90
BIBLIOGRAPHIE

[52] Christine Solnon. Théorie des graphes et optimisation dans les graphes. INSA de
Lyon.
[53] Christine Solnon. Résolution de problèmes combinatoires et optimisation par co-
lonies de fourmis. Université Lyon, 1, 2010.
[54] Sylvain Surcin, Christine Choppy, and Marie-Geneviève Séré. Analyse didac-
tique d’un cours de génie logiciel basé sur l’approche orientée objets. Sciences et
Technologies de l’Information et de la Communication pour l’Éducation et la Formation,
2(3) :265–286, 1995.
[55] MEHENNI Tahar. UTILISATION DES METAHEURISTIQUES POUR RESOUDRE
UN PROBLEME D’ORDONNANCEMENT SUR MACHINE A CONTRAINTE DE
RESSOURCE NON RENOUVELABLE. PhD thesis, Université Mohamed Boudiaf
de M’sila, 2006.
[56] Guy Aimé Tanonkou. Une approche par relaxation lagrangienne pour l’optimisation
d’un réseau de distribution : modèles stochastiques et fiables. PhD thesis, Metz, 2007.
[57] Amel Terki. Analyse des pérformances des algorithmes génétiques utilisant dif-
férentes techniques d’évolution de la population. 2009.
[58] Fatiha Troudi. Résolution du probléme de l’emploi du temps.
[59] Naima ZERARI. Les Algorithmes Génétiques en Maintenance. PhD thesis, Université
de Batna 2, 2006.

91

Vous aimerez peut-être aussi