par Sylviel » 01 Déc 2010, 23:31
L'idée très générale de Branch and Bound (je préviens j'écris au vol donc je ne cherche pas à montrer l'efficacité de la méthode, mais seulement le principe) :
Problème du sac à dos : maximiser la valeur d'un sac à dos de 20kg. Imaginons qu'il y a 3 objets :
A (poids : 1, valeur : 1)
B (poids : 3, valeur : 4)
C (poids : 6, valeur : 12)
Si le problème n'était pas à nombre entier (si on pouvait prendre des quantités réelles des objets) il suffirait de prendre le maximum de l'objet le plus dense en valeur, ie l'objet dont la valeur pour un poids unité est maximum, ici mon objet C. --> tu remarques que sans la contrainte de nombres entier la solution se fait très facilement (de manière générale il s'agit d'optimisation linéaire, domaine très bien connu des mathématiques).
Donc maintenant comment procéder pour trouver la solution optimale en nombre entier ? Et bien on va commencer par s'intéresser à un objet, par exemple le plus dense, et se demander combien on en met. 4 possibilités :
0, 1, 2, 3.
On calcule une solution possible (S): 2A+3C qui a pour valeur 2+3*12 = 38
Maintenant si on prends 2C seulement, et qu'on relâche la contrainte de nombre entier sur les autres variables on a : 2*12 + 8*(4/3) < 38, donc comme la meilleure solution possible en prenant seulement 2C est moins bonne que la solution optimale en nombre réel, qui est moins bonne que S pas la peine de se casser la tête ! On peux éliminer toutes les possibilités avec 2C.
Pour résumer :
* j'ai fait un arbre de possibiliités (sans l'écrire, heureusement !)
--> Choisir le nombre de C, puis le nombre de B puis le nombre de A
* J'ai trouvé une "bonne solution"
* J'ai majoré (puisqu'on est dans un problème de maximisation) la meilleure solution d'un sous arbre
* Et montré que cette borne est moins bonne qu'une vraie solution déjà obtenue
--> pas la peine d'explorer le sous arbre !
Bon je sais que ce n'est pas évident la première fois, donc prends le temps de relire mon message avant de poser une question.
Merci de répondre aux questions posées, ce sont des indications pour vous aider à résoudre vos exercices.