[PYTHON] Mémorandum de problème de sac à dos

Quel est le problème du sac à dos?

Le fameux problème complet NP. Le problème de mettre l'article dans le sac à dos pour que la valeur de l'article soit maximisée.

Ce qui est difficile?

Si vous pensez simplement, ce sera $ O (2 ^ N) $ car vous devrez choisir de ne pas mettre l'article. Pensez à résoudre ce problème en temps polymorphe.

Je vais vous expliquer comment les résoudre en temps polymorphe en trois étapes.

1. Image lors de la résolution

En tant qu'image de la méthode de planification dynamique, envisagez d'augmenter à partir d'un petit état. En d'autres termes, pensez à une époque. À un moment donné, il est décidé de le mettre ou non en fonction de la capacité du sac à dos. Bien sûr, il est plus utile de le mettre, alors mettez-le. À la deuxième fois, décidez de le mettre dans le sac à dos. Ce à quoi vous devez faire attention ici, c'est la branche avec la première. La décision de le mettre dans le sac à dos est partagée. Et à la troisième fois, comparez-le avec le sac à dos à la fin du deuxième. En d'autres termes, c'est le miso de ce problème de réfléchir à l'opportunité d'ajouter un nouvel élément à l'état existant.

2. État réel de la mémoire

En production

Recommended Posts

Mémorandum de problème de sac à dos
Illustration des résultats du problème du sac à dos
Mémorandum Matplotlib
mémorandum Linux
mémorandum jinja2
Mémorandum Django
Mémorandum de commandement
Mémorandum Python 2
mémorandum complot
Mémorandum Slackbot (1)
mémorandum de multitraitement
Mémorandum MetaTrader5
Mémorandum ShellScript
mémorandum pip
Mémorandum Python
mémorandum pydoc
Problème de probabilité
mémorandum python
Mémorandum de Pandas
mémorandum python
Mémorandum DjangoGirls
Mémorandum de commandement
Mémorandum Python
mémorandum pandas
mémorandum python
Mémorandum Python
Résoudre les problèmes de sac à dos à l'aide de pyomo et glpk
Résolvez le problème du sac à dos Python avec l'algorithme glouton