Java用の数学最適化ライブラリ—無料またはオープンソースの推奨事項? [閉まっている]

StackOverflow https://stackoverflow.com/questions/143020

質問

数学的最適化(線形計画法、凸最適化、またはより一般的な種類の問題)を実行するライブラリを知っている人はいますか?私はMATLABのようなものを探していますが、より大きな問題を処理する能力があります。独自の実装を作成する必要がありますか、またはそれらの商用製品(CPLEXなど)を購入する必要がありますか?

役に立ちましたか?

解決

良い答えは、「凸」の意味に依存します。および「より一般的な」大規模な、または困難な線形または凸2次最適化問題を解決しようとしている場合(特に離散コンポーネントを使用する場合)、主要な商用ソルバー gurobi cplex およびダッシュは、お金があなたにとって大きな問題でない限り。これらはすべてクリーンなJNIインターフェースを備えており、ほとんどの主要なプラットフォームで利用可能です。

coin-or プロジェクトには複数のオプティマイザーがあり、JNIインターフェイス用のプロジェクトがあります。完全に無料です( EPL ライセンス)が、セットアップにはさらに手間がかかりますおそらく同じパフォーマンスは得られません。

他のヒント

lpsolve という線形最適化ツールがあります。 C(私が思う)で書かれていますが、Java / JNIラッパーが付属しています(APIはあまりオブジェクト指向ではありませんが、仕事をします)。使い方はとても簡単で、昨年はライブシステムで非常に楽しく安定して実行していました。

JOptimizer を試すことができます。オープンソースであり、一般的な凸最適化問題に適しています(線形計画法、二次計画法、qcqp 、コーンプログラミング、半正定値プログラミング、ect

OptaPlanner (Java、オープンソース、ASL)は大きな問題を処理でき、制約タイプの制限はありません(線形対凸など)。

JScience をご覧になるとよいかもしれません。 (数学的構造、線形代数の解法など)

IPOPTには Javaのインターフェースがあります。 APMonitorモデリング言語をJavaに適合させることもできます。このプラットフォームを開発しているので、Javaへの新しいインターフェースを作成したい人がいれば喜んで作業します。既に Python API およびMATLABインターフェイスがあり、IPOPT、APOPTなどのソルバーが含まれています。 、BPOPTなど、大規模システムを処理できるもの。

AMPL をご覧ください。基本版は無料ですが、より大きな問題には費用がかかります。言語の費用はかかりません。ソルバーの費用を支払います。コードをアップロードしてサーバーで実行することもできます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top