1

A、B、C、D、E の 5 つのセクションがあるクラスがあるとします。各セクションは異なる時間に開催されるため、コースに登録する学生は、どのセクションを受講するかを優先できます (受講できるセクションは 1 つだけです)。学生がコースに登録するとき、受講したい 3 つのセクションを優先順にリストします。

各セクションには n 人の学生がいます。簡単にするために、正確に n*5 人の学生がコースに登録したとしましょう。

では、問題は次のとおりです。どのようにして効率的に学生を希望するセクションにマッチングさせるのでしょうか?

似たようなマッチング シナリオの質問がある質問を見たことがありますが、どれも適切ではありません。残念ながら、アルゴリズムについて十分な知識がなく、自分で作成することはできません。ところで、これは本当の問題であり、問​​題の部門が手作業で行うには数日かかることを私は知っています.

4

3 に答える 3

0

生徒 1 がセクション A にいる場合、スコアが 20 になる採点システムはありますか? (一方、生徒 2 がセクション A の場合、スコアは 15 ですか?

セクション A の空きが 1 つだけで、学生 1 と 2 の両方がセクション A を最も優先している場合、最初に登録された人がその場所を取得します。誰が最も適しているかの代わりに (より高いスコア)。

採点がない場合は、生徒をループして、生徒が好むセクションに配置できます。最初の希望が満席の場合は、2 番目の希望を試してから、次の希望を試してください。学生が希望する 3 つのセクションすべてが満たされている場合は、満たされていないセクションに登録してください。

(各セクションの優先キューを使用して最大化する必要があるため、スコアリングがある場合は異なります。)

于 2013-08-12T09:20:13.533 に答える
0

たぶん、それらをランダムにセクションに配布できます。次に、学生のランダムなペアを選択し、それらを交換することで分布が改善されるかどうかを検討します (それにより、学生の好みとの一致が増加しますか?)。X回の反復で改善が不可能になるまで反復できます。これは明らかに非常に単純なアプローチですが、サンプルが小さい場合はすぐに収束する可能性があります。最適なソリューションがあることを保証することはできませんが、おそらく不可能なブルート フォース アプローチが必要になります。

于 2013-08-12T08:29:51.350 に答える