Optimisation Combinatoire : Notions de Base

Telechargé par souarhamid
Chapitre 1 : Notions de base sur l’optimisation combinatoire
1
1.Introduction
L'optimisation combinatoire à une très grande importance en recherche
opérationnelle, en mathématiques discrètes et en informatique. Son très
grand intérêt se justifie d'une part par la grande difficulté des problèmes
d'optimisation [1] et d'autre part par le nombre d’applications pratiques qui peut
être formulé grâce à l’optimisation combinatoire [2].
Il faut citer que les problèmes d'optimisation combinatoire sont faciles à
définir, mais difficiles à résoudre.
Dans ce chapitre on va définir l’optimisation combinatoire puis donner
quelques exemples pour bien éclaircir ce concept, ensuite on expliquera la
notion de complexité des algorithmes et les différentes classes des problèmes ;
ensuite on exposera les méthodes de résolutions que ce soit exactes ou
approchées ; à la fin de ce chapitre on va consacrer une partie concernant la
programmation linéaire et ces méthodes de résolutions les plus utilisées.
Chapitre 1 : Notions de base sur l’optimisation combinatoire
2
2.Optimisation combinatoire
2.1. Définition
En langue française
Le verbe optimiser veut dire : obtenir le meilleur résultat possible par une action
adaptée.
Synonymes : améliorer, maximiser, mettre au point, optimaliser.
En informatique
Un problème d’optimisation combinatoire est défini comme un ensemble fini de
solutions et une fonction objectif associant à chaque solution une valeur (la plupart du
temps une valeur réelle) [3].
Donc, un problème d’optimisation combinatoire consiste a minimiser ou à
maximiser cette fonction sous différentes contraintes permettant de délimiter
l’ensemble de solutions réalisables (solutions admissibles) puis de trouver la solution
optimale.
Un problème d’optimisation vise à trouver une instanciation d’un certains
ensemble de variables soumises à des contraintes, de manière à maximiser ou
minimiser un critère donné. Si les domaines de valeurs des variables sont discrets, on
parle alors de problèmes d’optimisation combinatoire [4].
2.2. Exemples de problèmes combinatoires
A) Le problème du sac-à-dos (Knapsack Problem)
C’est un problème de sélection qui vise à maximiser un critère de qualité sous
une contrainte linéaire appelée contrainte de capacité de ressource. Son nom est venu
par similitude avec le problème du randonneur lorsqu’il veut remplir son sac-à-dos: il
doit choisir les objets selon leurs importances, tout en respectant la capacité de son
sac-à-doc.
D’une façon formelle on peut le décrie de la manière suivante :
Soit un ensemble de n éléments et une ressource disponible en quantilimitée b. Pour
j =1 à n, on note pj le profit associé à la sélection de l’élément j et on note aj la quantité
de ressource nécessaire à l’élément j s’il est sélectionné. Les coefficients pj et aj ont
des valeurs positives pour chaque j allant de 1 à n.
Chapitre 1 : Notions de base sur l’optimisation combinatoire
3
Le problème du sac-à-dos consiste à choisir un sous-ensemble des n éléments
qui maximise le profit total tout en respectant la quantité de ressource disponible [4].
Pour chaque élément j on associé une variable de sélection binaire xj , elle est
égale à 1 si j est sélectionné et 0 sinon. Le profit total obtenu est donc écrit comme la
somme
n
jjj xp
1
et la quantité totale de ressource utilisée comme la somme
n
jjj xa
1
.
Donc le problème du sac-à-dos se modélise sous la forme:
 
njx
bxa
xpZMax
j
n
jjj
n
jjj
..11,0
1
1
B) Le problème de couverture (Set Covering Problem)
Ce problème consiste en un ensemble de points U appelé l’univers et d’une
collection S de sous-ensembles de A .On dit qu’un ensemble A U couvre x U si x
A. Le but est de trouver une sélection des ensembles de S qui couvre chaque
élément de l’univers exactement une fois (Figue 1) [5] [6].
L'objectif de ce problème est de terminer une couverture de coût minimum.
Un exemple d'application classique est celui de l'ouverture d'un nombre minimum de
magasins qui peut couvrir une certaine zone donnée.
Figure 1.1 Une instance d’un problème de couverture
Chapitre 1 : Notions de base sur l’optimisation combinatoire
4
C) Le Problème d’affectation
Ce problème à pour objectif d’établir des liens entre les éléments de deux
ensembles distincts, de manière à minimiser un coût et en respectant des contraintes
d’unicité de lien pour chaque élément [4].
On considère tâches et agents, avec . Pour tout couple
, l’affectation de la che i à j implique un coût de
réalisation noté .Chaque tâche doit être réalisée une seule fois et chaque
agent peut réaliser au maximum une tâche.
On doit affecter les tâches aux agents, de manière à minimiser le coût total de
réalisation et en respectant les contraintes de réalisation des tâches et de disponibilité
des Agents.
A chaque couple tâche/agent , on associe une variable d’affectation binaire :
Le coût total de réalisation des tâches est égal à la somme :
Le nombre d’agents réalisant la tache i est donné par :
Le nombre de tâches réalisées par l’agent j est donné par :
Donc le problème d’affectation sera modélisé sous la forme :
Chapitre 1 : Notions de base sur l’optimisation combinatoire
5
2.3. La théorie de la complexité
La complexité d’un problème donné est observée selon deux axes: axe temporel
(complexité temporelle) et axe spatial (complexité spatiale). L’objectif de la
complexité temporelle est d’évaluer le temps de calcul nécessaire pour résoudre un
problème donné. Tandis que la complexité spatiale à pour objectif d’estimer les
besoins en mémoire (l’espace mémoire demandé) pour la résolution d’un problème
donné. La complexité d’un problème donné est estimée en fonction du nombre
d’instructions nécessaire pour aboutir à la solution du problème posé. Elle est en
relation étroite avec la taille du problème en question. En effet, elle exprime un
rapport entre la taille du problème, le temps de calcul nécessaire et l’espace mémoire
requis.
La théorie de la complexité mesure la difficulté des problèmes par l’étude de la
complexité de solutions algorithmiques proposées. Elle associe à chaque algorithme
résolvant un problème donné une fonction de complexité et mesure les ressources
nécessaires pour la résolution d’un problème posé. En effet, elle classe l’ensemble des
problèmes le temps de calcul nécessaire et l’espace mémoire requis.
La théorie de la complexité est étendue aux problèmes d’optimisations malgré
qu’elle était concentrée sur des problèmes de décision [7].
La théorie de la complexité classe les problèmes selon leur complexité en deux
classes principales: la classe P (Polynomial time) et la classe NP (Non deterministic
Polynomial time). En outre, elle partage les problèmes de la classe NP en deux sous
classes: NP-Complet et NP-Difficile.
2.3.1. Les problèmes de la classe P
Ce sont les problèmes qui peuvent être résolus en un temps de calcul
polynomial par rapport à la taille de l’instance du problème à traiter. Ils sont souvent
faciles à résoudre par des algorithmes efficaces dont le nombre d’instructions
nécessaire pour la résolution d’un problème donné est borné par une fonction
polynomiale par rapport à la taille du problème [6].
Le calcul du plus grand diviseur commun est un exemple d’un problème
appartenant à la classe P.
1 / 24 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans l'interface ou les textes ? Ou savez-vous comment améliorer l'interface utilisateur de StudyLib ? N'hésitez pas à envoyer vos suggestions. C'est très important pour nous!