投稿

10月, 2019の投稿を表示しています

半正定値計画問題(Semidefinite Programming)を解くためのライブラリCSDP

イメージ
CまたはC++で半正定値計画問題を取り扱うことのできるライブラリを探していたところ以下のライブラリが見つかった。 ・CSDP https://github.com/coin-or/Csdp WindowsのVisual Studioで利用するためには少し作業が必要だったので軽くメモをしておく。基本的には、以下のサイトを見ながらライブラリを生成した。ただ、バージョンの違いなのか、いくつか修正する点があった。 ・CSDPのVisual Studio2010でのコンパイル方法 http://buaiso.blogspot.com/2013/01/csdpvisual-studio2010.html CLAPACKの準備 上記サイトに書かれているように内部でLAPACKが使用されているため、まずはCLAPACKを準備する。上記サイトとは異なり、CMake版をダウンロードして用いた。 http://www.netlib.org/clapack/ よりclapack-3.2.1-CMAKE.tgzをダウンロードし解凍する。 CMakeを使ってVisual Studioのプロジェクトを生成する。ただし、今回はx64環境でライブラリを使いたいのでx64でプロジェクトを生成する。(ConfigureするといくつかWarningが出るが無視) 出来上がったプロジェクトを開きビルドする。 Debug, Release各々でlapack.lib, blas.lib, libf2c.libが生成されていればOK。 CSDPのビルド GitHubからCSDPのコードをCloneする。 https://github.com/coin-or/Csdp ここ から Csdp-6.1.1_vcproj.zipをダウンロードして解凍する。(誰がアップしているんだろう。。。) 解凍するとvcbuildというフォルダができるので、これをCSDP直下にコピーする。※参考にしたウェブではlibsというフォルダができるとあるが私の環境では生成されませんでした。 CSDP直下にlibsフォルダを作成する。 vcbuild内にあるvcbuild.slnを開く。Visual Studioのバージョンによってはアップグレードのダイアログが出てくるので、とりあえずOK