J'essaie de résoudre un problème de type sac à dos de MIT OCW. Son ensemble de problème 5.Comment implémenter un arbre d'espaces d'états?
J'ai besoin d'utiliser l'algorithme de branche et lié pour trouver les états optimaux. J'ai donc besoin de mettre en place un arbre d'état-espace. Je comprends l'idée de cet algorithme, mais je trouve que ce n'est pas si facile à implémenter.
Si je trouve un nœud où le budget ne suffit pas, je devrais arrêter ici. Dois-je ajouter un attribut à chaque nœud d'arbre? Lorsque j'ajoute un nœud, je devrais partir d'un nœud dont la borne supérieure est la plus grande. Comment puis-je trouver un tel noeud? Dois-je traverser tous les nœuds avant d'ajouter chaque nœud? Ou pourrais-je sauvegarder du var pour l'aider?
Avez-vous une idée? Pourriez-vous l'implémenter en python?
Merci pour votre réponse! D'abord, je vais ajouter un attribut 'stop'. Il n'utilise pas beaucoup d'espace. Deuxièmement, avant de trouver les nœuds sans descendance, je dois traverser l'arbre à partir de la racine, n'est-ce pas? –