5

私はドキュメント内で矛盾したことを読んでいます。一方OptaPlannerは連続変数の最適化と制約をサポートしていますか?

、この通路は、連続企画変数が可能であることを示しているようだ:

計画値の範囲は 計画変数のための可能な計画値のセットです。このセットは、離散的なもの(例えば、行1,2,3,または4)または連続したもの(たとえば、0.0と1.0の間の任意の倍数)にすることができます。一方

計画変数を定義するとき、あなたは値のセットで使用するフィールド上ValueRangeProviderアノテーションを指定する必要があります。

ソリューションの実装は、コレクションを返すメソッドを持っています。そのコレクションからの 値は、この 計画変数の計画値です。それである

したがって、これらのスニペットの両方が文書の同じセクションにある

http://docs.jboss.org/drools/release/latest/optaplanner-docs/html_single/#d0e2518

、? doubleを計画変数として使用することはできますか、その範囲を特定のCollectionの値に制限する必要がありますか?

実際のアルゴリズムを見ると、実際には連続変数の最適化には適していませんので、それは可能ですが、それを明確にして明示するのは良いことです。

答えて

4

私たちは、連続変数を完全にサポートするように取り組んでいます。しかし、現在(6.0.0.CR2)ではそれほどサポートされていません。

値の範囲は実際には連続した範囲になる可能性がありますが、実際にそれらを使用する配管はまだありません。我々は最近、良い進歩を遂げました。https://issues.jboss.org/browse/PLANNER-160を参照してください。ここで

は、それが動作する方法は次のとおりです。 あなたは「あまりにも(代わりにCollectionの)ValueRangeを返すメソッドに@ValueRangeProviderアノテーションを使用することができるでしょう。

ValueRangeインターフェイスは、我々はIntValueRangeDoubleValueRangeBigDecimalValueRange、... (実装の詳細をサポートします すぐに...、ランダムな値を選択するサイズの取得がサポートされます:私たちは」これらのコレクションを返すメソッドをCollectionValueRangeにレトロフィットします。)

次に、ValueSelectorの実装では、それを直接使用します。

  • JITランダムな選択は、高速燃えると非常にメモリ効率もされます。連続変数を最適化するための適性については

  • NP完了/ NP困難な問題がある場合は、OptaPlannerが最適です。連続変数だけではなく、単一の離散変数であれば、問題がNP完全であることはありません(制約がそれを裏付けるものでない限り)。その場合、カスタム、ハンドメイドの多項式アルゴリズム(NP完結ではないので、「簡単な」解決策があります)。
関連する問題