L-BFGS-B <http://users.iems.northwestern.edu/~nocedal/lbfgsb.html> のHaskellバインディングってあるのかな、とふと思って探してみると、hlbfgsb <http://hackage.haskell.org/package/hlbfgsb> と l-bfgs-b <http://hackage.haskell.org/package/l-bfgs-b> があった。

hlbfgsbはL-BFGS-BのFORTRANコードをバンドルしているのに対して、l-bfgs-bの方はライブラリとしてインストールされたものを使うようになっている。

どちらもインターフェースは微妙な感じだが、とりあえずl-bfgs-bの方で試しにweighted Max-SATの連続緩和を解かせてみた。 https://gist.github.com/msakai/c4f01ff8a1ca4e3de61d 結果は意外と整数解に近い解が出てちょっと驚いたが、目的関数値のあまり良くない局所最適解になってしまっているよう。