Académique Documents
Professionnel Documents
Culture Documents
Historique :
Ces 21 problèmes sont considérés comme les problèmes les plus difficiles en optimisation combinatoire. (approché-
exacte)
une randonnée.
Il existe deux grandes catégories de méthodes de résolution de problèmes d’optimisation combinatoire : les
méthodes exactes et les méthodes approchées
Une méthode approchée a pour but de trouver une solution avec un bon compromis entre la
qualité de la solution et le temps de calcul. Pour le problème du sac à dos, voici un exemple
d’algorithme de ce type :
Algo Glouton
Algo générique
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
Principe :
1. imaginez un sac à dos qui peut contenir au maximum 10kg poids = 10kg
2. on dispose de plusieurs objets de poids et de valeurs différentes
3. l’objectif est de connaitre quel objet on va prendre et le mettre dans le sac pour avoir une
valeur qui est maximale sans dépasser le poids de 10kg que le sac peut contenir
4. il faut choisir des objets à prendre ou non et savoir qu’on ne peut pas prendre un objet
plusieurs fois
Exemple :
Objet 1 2 3
Valeur 2 3 5
Poids 5 6 2
https://interstices.info/le-probleme-du-sac-a-dos/
Méthode numérique : pour résoudre le problème grace à la méthode heuristique ( stratégie de calcul
rapide)
1. mettre en premier dans le sac les objets qui nt la plus grande valeur avec le plus petit poids
possible
2. calculer pour chaque objet : valeur/poids
3. au début mettre dans le sac l’objet 3 vu qu’il est le plus gros nombre des trois objets puis
l’objet 2 (poids 6 + 2)
cette méthode est rapide mais elle n’est pas génial
Car le problème qu’on peut mettre qu’une seule fois l’objet d’un sac et on ne peut pas
l’enlever pour tester d’autres possibilités.--> algorithme gluton
algorithme gluton : on met une fois l’objet dans d’un sac et on peut plus le ressortir
Méthode complète :
arbre
Le but est de trouver k qui maximise le profit total avec le respect d’une contrainte de capacité de
poids.
Algorithme glouton :
L'algorithme le plus simple est un algorithme glouton. L'idée est d'ajouter en priorité les objets les plus efficaces, jusqu'à
saturation du sac :
2 objets à placer dans le sac.
1er objet : profit=2, poids=1
2ème objet : profit=poids=W
on choisit en premier le 1er objet il est plus efficace empêcher la prise du second
nbr element 5
capacité sac 15
1 6 16
2 6 11
3 6 15
4 3 24
5 2 7
trier les objets par ordre décroissant d'efficacité // par rapport leurs profit
w_capActu := 0 // représente la capacité actuelle
pour i de 1 à n
si w[i] + w_capActu ≤ W alors //w[i]:cap de l’élémént; W: capTotaleSac
x[i] := 1 //element accepté
w_capActu := w_capActu + w[i]
sinon
x[i] := 0
fin si
fin pour