Red Hat JBoss BRMS アルゴリズムについて

こんにちは、加藤です。
xmlファイルに設定可能なアルゴリズムについて、動作を調査しました。


・First Fit
PlanningEntityに順番通りルール適用を行います。

・First Fit Decreasing
難易度が高いPlanningEntityを優先的に処理することで、実行時間の短縮を図っています。
difficultyComparatorClassを作成する必要があります。

・Best Fit
FirstFitと似ているが、PlanningValueが低いPlanningEntityを優先的に処理します。
理由としては、PlanningValueの高いPlanningEntityは、処理を後回しにしても対応できる可能性が高いからです。
scoreComparatorClassを作成する必要があります。

・Best Fit Decreasing
FirstFitDecreasingとBestFitを兼ね備えています。
そのため、難易度が高く、計画値が低いPlanningEntityを優先的に処理します。
difficultyComparatorClass・scoreComparatorClassを作成する必要があります。

・Cheapest insertion
マニュアルに記述無し。
名前から予想すると、スコアの最低ラインを設定し、それ以下なら切り捨てるような動作をすると思われます。

・Regret insertion
マニュアルに記述無し。

所感
おおまかに比較すると、
First Fit < First Fit Decreasing = Best Fit < Best Fit Decreasing といった順に優秀なようです(コンパレータ作成の手間を考えると当然ですが)。 問題の規模によって使い分けるのが良いと思います。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です