このプロジェクトについて

jcspは、Java 21+を使用して、制約充足問題(CSP)を解決するための現代的なライブラリです。このライブラリは、純粋な関数型プログラミングと不変性を重視しており、グローバルな可変状態や命令型のトレーススタックに依存する従来のソルバーの限界を克服しています。主な特徴には、スレッドセーフな深く不変なコアオブジェクト、複数のCPUコアを活用した並列ローカルサーチ、および標準のJava Streamパイプラインを使用してソリューションを増分的に処理できる遅延ストリーミングAPIが含まれます。バックトラッキングサーチ、ツリー分解、ブランチアンドバウンド最適化などの複数の解決戦略をサポートしています。また、AllDiff、Cumulative、GlobalCardinalityなどのさまざまなグローバル制約を使用した広範な一貫性前処理を提供し、効率的なドメイン削減を保証します。さらに、jcspは、区間算術を使用した実数値変数、組み合わせ問題用のセット変数、およびXCSP3インスタンスファイルの解析をサポートしています。ソルバーの構成は柔軟で、検索制限、キャンセル、およびnogood学習を可能にし、クラウドマイクロサービスや複雑な最適化タスクに適しています。