こんにちは、加藤です。
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
といった順に優秀なようです(コンパレータ作成の手間を考えると当然ですが)。
問題の規模によって使い分けるのが良いと思います。