スケジューリング問題を解く③-2
前回はMathematicaで書いた訳ですが、ここで使う道具を選んでみましょう。世の中に最適化問題を解くツールは嬉しいことに色々と増えてきているのですが、なるべく間違えないように短く書きたいのです。そこで比較しましょう。
ツールの特性はこちらにまとめてあります。
今回はラズベリーパイを使っているのでMathematicaで書くことにします。
結局、変数制限+整数型制約+コード記述の短さから考えると、MathematicaかJuliaしか選択肢は無いと思います。
最後に列生成法まで行くことを考えると、既にサンプルコードが公開されているJuliaも捨てがたいですが。
逆にいうと、問題の特徴によって適したツールが異なるので一概にはMathematicaで書くのがベストとも言い難いのですが、スケジュール問題は一般には複雑化した制約を書かないといけないので結果的にMathematicaになるというのが現在の結論です。Excelで解ける様な問題は、頑張れば人の頭でも解けますから。
1)小さい問題
👉Excelソルバー最強
2)実数を扱う問題で容量制限や、複数品目を扱わない場合
👉NetworkX最強
3)巡回セールスマン問題
👉サンプルコードがあるのでPython最強
4)列生成法
👉サンプルコードがあるので、PythonかJulia
5)大きな問題
👉Mathematicaで書くのが楽