1

要件

  • あなたはX人の数を持つことができます
    • これらのX人は、管理者によって設定された、全員がログインに招待される前に設定された番号になります。
  • 一人一人が同じ回数話されます。
    • これは管理者によって構成されます。
  • 一人一人が他の人と話すことができるのは一度だけです
  • 人は自分自身と話すことができません
  • ログイン時に人が入って割り当てられ、通信相手が割り当てられます(事前に決定されていません)

例えば:

  • 6人います
  • 1と5の間にいくつかの一方向の交互作用を設定できます。

  • 可能性のある1:6つの一方向の相互作用で行くとしましょう
    • 一人一人が他のすべての人と一度話します。したがって、AさんはB、C、D、E、Fと話します

  • 可能性のある2:2つの一方向の相互作用で行くとしましょう
    • 可能な組み合わせ1
      • 人物Aは次の人と話します:BとC
      • BさんはCとDと話します
      • 人物Cは話します:DとE
      • DさんはEとFと話します
      • Eさんは次の人と話します:FとA
      • FさんはAとBと話します
    • 可能な組み合わせ2
      • 人物Aは話します:DとF
      • BさんはCとEと話します
      • Cさんは次の人と話します:FとA
      • DさんはBとCと話します
      • EさんはAとBと話します
      • Fさんは話します:DとE

これが私がこれまでに思いついたものであり、私が立ち往生している場所を説明します。

  • ユーザーAIが入って、誰と通信できるかを要求します。
  • 次の手順を実行します。
    • 外に出て、私がすでに通信するように割り当てられている人を見つけます。
    • これで、すべてのユーザーのコレクションを取得し、呼び出し元のユーザーと既に割り当てられているユーザーを除外します。
    • 次に、それらの人々をループして、適格な人々のそれぞれと話しているユーザーの数を把握します
    • これで、最大量のインタラクションによって話しかけられた適格な人々がすべて削除されます。
    • 最後に、そのリストからランダムな人を選び、それらを私に割り当てます。

問題は、私の例のコンボ1から使用するとしましょう。

  • ユーザーAはBCを取得しました
  • ユーザーBはCAを取得しました
  • ユーザーCはABを取得しました
  • ユーザーDはCEを取得しました
  • ユーザーEにはオプションとしてFしかありませんが、別の人が必要です
  • ユーザーFにはオプションとしてEしかありませんが、別の人が必要です
  • FとEはまだ他の人に彼らと話すことを要求しています。

問題を防ぐために何ができますか?

4

2 に答える 2

2

問題は「ログイン時に割り当てられる」基準にあるのではないかと思います(私が誤解している場合を除きます)。たとえば、最初の人(A)がログインすると、他に「割り当てられる」人は誰もいません。または、各人と1回話し合い、3人(A、B、C)がすでにログインしている状況では

 A->B 
 B->C
 C->A 

解決策です。しかし、Dが後でログインした場合、彼らが話す相手がいないため、Dの要件を満たすことができません。

一方、管理者がすべての人がログインするまで待つことができる場合、それぞれがq <= p他の人との通信を必要とするp人(ラベル1、2、3 ... p)の簡単な解決策は次のとおりです。

 for i = 1 to p
   for j = 1 to q
     i communicates with (i+j) mod p

ユーザーがログインするたびに異なる通信セットが必要な場合は、ラベル1..pをユーザーA、B、...にランダムに割り当てます。

于 2012-10-10T22:55:07.650 に答える
0

人が入ってきて、どの(他の)人と話すかを割り当てる必要がある場合は、次のように手順を少し変更します。

  1. すべての人のリストを取得しますが、もちろん、自分自身を除外します(自分自身と話すことができないため)。

  2. それぞれが話された回数に基づいてそのリストを注文します。

  3. その順序付きリストから「最下位から」を選択して、話し合いのサブセットを埋めます。これにより、次に来る人が十分な選択肢を持つ可能性が高まります。

  4. 可能なさらなる改良として、話された統計の同じ「低い」数を持つ候補者の中から、セットアップ全体が彼らが次に来る可能性が高い場合は、最初に彼ら自身があまり話していない人を選択します(ですから、あなたはむしろ彼らと話をしたいので、他のより多くの人々を彼らのために開いたままにしておきます)。

于 2012-10-10T22:23:52.860 に答える