Pyomoの紹介

Python京都勉強会で発表してきましたという報告とその補足です.関西ではPythonの勉強会はまだ多くはないのでいろいろ貴重でマニアックな話を聞くことができました.プログラムはこんな感じでした.
30分のセッション

LT


さて,自分の発表したPyomoという数理最適化モデリングのライブラリについてですが,プロジェクトのWebサイトはhttps://projects.coin-or.org/Cooprです.PyomoはCOIN-OR傘下のプロジェクトで,オープンな最適化環境を目指して開発が進められています.最適化問題を解くためには通常ソルバーという種類のソフトウェアを使います.商用ではCPLEXやGurobi,フリーのものではGLPKやSYMPHONYなど様々なソルバーが公開されています.問題を解くときには問題の情報をファイルに記述してソルバーに渡してやったりするのですが,そのようなファイルはソルバーが処理しやすいようなフォーマットをしていて人間が直接読んだり書いたりするには適していません.そのため問題データを出力するときにはモデリングツールという別のソフトウェアを使って問題の情報を記述するのが一般的です.モデリングツールを使うことによってソルバー間のファイル形式の違いを吸収したりもしてくれます.この辺りはプログラム言語の高級言語マシン語の関係に似ています.

モデリングツールにも様々な種類があり,単独のソフトウェアとして提供されているもの,CやJavaなどの言語のライブラリとして提供されているものなどがあります.Pyomoは後者で,Python用のライブラリになっています.PyomoがPythonを採用した理由の1つとして,Pythonインタプリタ言語だからコンパイルすることなしにモデルを手探りで修正していけることが挙げられています.Pythonのライブラリとして使用できるため,アプリケーションと統合しやすいこともPyomoの特徴です.

以上,昨日の発表でこのあたりのことを喋りきれていなかったので補足でした.