2017-04-12 12 views
-4

私はM人の生徒をNチームに分けたいと思っています。難しいことではありませんが、いくつかの制約があります。学生をNグループに分けるアルゴリズム

1.拘束:(A、B)1組の学生が1つのグループに集まっていなければなりません。それは、studentAがstudentBと同じグループにいたいと考えていることを意味します。

2.constraints:(A、B)一対の学生(studentAとstudentB)は、1つのグループに属してはいけません。

私はM人の生徒がいて、この制約によってN個のグループを作成したいと考えています。それらを分割することが不可能な場合は、制約の最小限の違反で最良の解決策を見つける。

アルゴリズムで解決する方法はありますか?

+5

- ちょうど3つのグループに学生を配置する場合でも、

残念ながら、これはあなたの問題はNP困難であることを証明している(と、この問題がNP-completeであるあなたがグラフの3色を見つけるためにそれを使用する可能性があるため) *あなたの**宿題は、私たちのものではありません。 –

答えて

0

これはgraph colouring problemと考えるのが有益でしょう。このリンクには、さまざまな推奨アルゴリズムが含まれています。

頂点は生徒を表し、色はさまざまなグループを表します。

頂点間のエッジは、それらの学生が異なるグループに属したいことを示します。学生が同じグループに属したい場合は、単に頂点をマージします。 *イッツ

関連する問題