2009-06-30 1 views
3

私は理論的にお互いに仲良くなる可能性のある最大の友人グループを考え出しています。つまり、グループ内の各人は、グループ内の他の人の50%以上を知る必要があります。可能な限り多くの共通の友達グループがありますか?

私はこのためのアルゴリズムを思いつきません。 FacebookのAPI /クロスサーバの話はそれほど遅いです。

私は最初に私と最も親しい友人を持つ友人から始めて、次にグループに人を1人ずつ追加することができると考えていました。しかし、私は誰が次に選ぶだろうか?

ちょうど理論に興味があり、コードは必要ありません。


編集:私は本当に:)私は午後にこれをコーディングすることができ期待していたが、私はこれは推測平易な英語で次の論理的なステップ何何を意味するのか、「理論」を言ったとき私が予想していたよりも少し複雑で、私は重いグラフ理論を掘り下げて何週間も過ごしたいとは思っていません。それにもかかわらず、誰かがこの興味深いものを見つけるだろう。

+0

これはNP完全な問題のように聞こえる、トラベルセールスマンによく似ています...しかし、誰かが私を間違っていると証明したら、 – Eric

+0

ええと...そう?あなたは1分以内に300人の友達が解決できると思いますか? – mpen

+0

データをキャッシュすると1分で300になります。毎月300件のWebリクエストと処理が、どのくらいハードなのかに応じてプッシュするかもしれません。 –

答えて

2

MITしばらくしてからソーシャルグラフに取り組みました。携帯電話のデータを使用していましたが、クラスタリングアルゴリズムやその他のシステムは、さまざまな入力と基準を使用して構築されていますが、それでも適用されます。

現在のところ、ソーシャルグラフの作成についてはmore MIT chatterがあります。間違いなくこの種のものに関する技術的なポインタを探す場所。それのエッジに指定されたノードからグラフ列挙の問題は、最も有用な問題のNPが完全であるが...グラフトラバーサルおよび情報の富のアプリケーションは、あなたが、これはより効率的に役立つかもしれない

  1. ノード(プロファイル)Nの場合、Googleなどを使用してデータをスクレイプして関連するエッジを見つけることができます。つまり、ページやGoogle検索技術のキャッシュを活用して、エッジを横断する必要性を緩和することができます。

  2. ソーシャルプロファイルには、多数のメタデータが含まれています。直接経路なしで知るBの可能性を解明するための統計的分析方法を開発することは有用かもしれない。友人が)同様の場所、およびb)同じような興味

  3. その他のデータを持っているやっぱ、一見無関係なお互いを知っている可能性が人々にの場所を特定するための手段を提供することができ、その後、エッジをダブルチェックすることができます。ケイトがメアリーを口で殴ったときに "猫の戦い"と言われた人たち。

データは正しい方法で見ているだけで、MITは地理的統計を見て電話との関係を判断します。

グッドラック

+0

興味深い記事:)ありがとう。私は確率を使用することは、このような小さなアプリケーションのための少し過度のものだろうと思うが、私はそれがもっと大きいもののために役に立つ方法を見ることができます。それを考えなかっただろうか。ありがとう – mpen

1

アルゴリズムがあり、アルゴリズムがかなりの速度でネットワークをクラスタ化することができ、いくつかの前計算してSCAN-アルゴリズムと呼ばれます。

現在のアルゴリズムについての情報を見つけることができます:SCAN:A Structural Clustering Algorithm for Networks

1

Thisは、より多くの「広義」であるが、それはアイデアを得るのに役立ちますかどうかを確認します。

+0

母。それはかなりきちんとしたツールです。私はそれを私のサイトのカップルを与えた、と私のスタックオーバーフローのアカウントを発見したにもかかわらず、それらのいずれかにリンクしています(しかし、SOのリンク)。私はFBデータを適切なフォーマットに変換できると確信していますが、このAPIを使ってこの特定の問題を解決できますか?私は分からない...私は少し深く掘り下げなければならない。リンクありがとう。 – mpen

関連する問題