これを実装できるかどうかについてのアドバイスは、Drools Planner です。
問題はチーム編成です。強い制約: 学生は N グループに配置する必要があります 各グループには X グループ メンバーを含める必要があります 弱い制約 (可能な順序付けまたは重み付け): 各グループには、数学スコア > Y を持つメンバーを含める必要があります 各グループは、すべて同じ関心を持つメンバーで構成する必要があります(実行時に弱い制約を追加する必要がある場合があります)
これを実装できるかどうかについてのアドバイスは、Drools Planner です。
問題はチーム編成です。強い制約: 学生は N グループに配置する必要があります 各グループには X グループ メンバーを含める必要があります 弱い制約 (可能な順序付けまたは重み付け): 各グループには、数学スコア > Y を持つメンバーを含める必要があります 各グループは、すべて同じ関心を持つメンバーで構成する必要があります(実行時に弱い制約を追加する必要がある場合があります)
はい、これは Manners2009 の例によく似ています。各テーブル (= グループ) の各座席 (= グループ スポット) をゲスト (= 生徒) に割り当て、各テーブル (= グループ) に少なくとも 1 席あることを確認します。民主主義者 (= 数学のスコア > Y の学生)。次に、同じ金利ルールにソフト制約を追加します。
Manners2009 の例は、5.4.0.Final (5.5.0.Beta1 になる予定) のジェネリック ムーブ ファクトリでは最新ではなく、HardAndSoftScore の代わりに SimpleScore を使用しているため、カリキュラム コースも参照してください。インスピレーションの例。
同じ金利ルールのソフト制約で「スコア トラップ」(マニュアルを参照) を回避するには、(通常の changeMove と swapMove に加えて) swapPillarMove も使用する必要があると思われます。