Version SAT とは
Published in
2 min readApr 27, 2017
via reddit /r/haskell
以下の条件を課すとパッケージ管理はNP完全問題。従って多くのパッケージマネージャーはSATソルバーを必要とする。
- A package can list zero or more packages or specific package versions as dependencies.
- To install a package, all its dependencies must be installed.
- Each version of a package can have different dependencies.
- Two different versions of a package cannot be installed simultaneously.
実際、多くのマネージャーがSATソルバーを使っている。Linux distributionだけでなくある言語のライブラリを選ぶ場合も全く同じことなのでこういうマネージャーは10を超えている。もちろん条件を変えればNP完全問題ではなくなる。例えば1とか4を緩和する。
だったらパッケージマネージャーがSAT問題を解けるだろうと考えた人がいて、dpkgでsudokuを解くとか。