6

ドキュメントで矛盾したことを読んでいます。

一方では、この一節は、継続的な計画変数が可能であることを示しているようです。

計画値範囲は、計画変数の可能な計画値のセットです。このセットは、不連続 (たとえば、行 1、2、3、または 4) または連続 (たとえば、0.0 と 1.0 の間の任意の double) にすることができます。

一方、計画変数を定義するときValueRangeProviderは、値セットに使用するフィールドに注釈を指定する必要があります。

Solution 実装には Collection を返すメソッドがあります。そのコレクションからの任意の値は、この計画変数の可能な計画値です。

これらのスニペットはどちらもドキュメントの同じセクションにあります ( http://docs.jboss.org/drools/release/latest/optaplanner-docs/html_single/#d0e2518 )

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

提供されている実際のアルゴリズムを見ると、実際に連続変数の最適化に適したものは見当たらないので、それが可能かどうかは疑問ですが、それを明確にして明示することをお勧めします。

4

1 に答える 1

6

連続変数の完全なサポートに向けて取り組んでいます。しかし、現在 (6.0.0.CR2 では) まだ適切にサポートされていません

値の範囲は確かに連続した範囲にすることができますが、実際にそれらを使用するための配管はまだありません。最近は順調に進んでいます。https://issues.jboss.org/browse/PLANNER-160を参照してください。

これがどのように機能するかは次のとおりです。 ( の代わりに)@ValueRangeProviderを返すメソッドでも注釈を使用できます。ValueRangeCollection

ValueRangeは、ランダムな値の選択、サイズの取得などをサポートするインターフェイスになります。すぐに使用できる、IntValueRangeDoubleValueRangeBigDecimalValueRange... (実装の詳細: Collection を返すメソッドをCollectionValueRange)_

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

連続変数を最適化する適合性については、次のとおりです。

  • JIT ランダム選択は非常に高速で、メモリ効率が非常に高くなります。
  • NP 完全/NP 困難な問題がある場合は、OptaPlanner が最適です。連続変数のみ (単一の離散変数ではない) がある場合、問題が NP 完全である可能性は低く (制約がそれを反証しない限り)、その場合はカスタムの手作りの多項式アルゴリズムを使用する方がよいでしょう。 (NP完全ではないため、「簡単な」解決策があります)。
于 2013-08-21T08:06:54.737 に答える