Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

C / C++のBarabasiAlbertGraph(スケールフリーモデル用)?


Barabási-Albertモデルは、スケールフリーネットワークを生成するいくつかの提案されたモデルの1つとして扱われます。これは、成長と優先的な愛着という2つの重要な一般的な概念を組み合わせたものです。成長と優先的アタッチメントの両方の概念は、実際のネットワークに広く存在します。成長の意味は、ネットワーク内のノードの数が時間の経過とともに増加することです。

優先接続の意味は、ノードが接続されているほど、新しいリンクを受信する可能性が高くなることです。

次数の高いノードは、ネットワークに追加されたリンクをキャッチまたは取得する能力が高くなります。基本的に、人をつなぐソーシャルネットワークを考えれば、優先的な愛着はよく理解できます。この場合、XからYへのリンクは、人物Xが人物Yを「知っている」または「知っている」ことを意味します。強くリンクされたノードは、多くの関係を持つ有名な人物を表すことができます。新規参入者がコミュニティに参加できるようになると、より一般的には、比較的未知の人々ではなく、より目に見える人々の1人と知り合うことになります。 BAモデルの提案は、ワールドワイドウェブでは、新しいページが、ほとんど誰も知らないページではなく、ハブ、つまりYahoo、Googleなどの非常に有名なサイトに優先的にリンクすることを前提としていました。誰かが既存のリンクをランダムに選択してリンクする新しいページを選択した場合、特定のページを選択する可能性または確率はその程度に比例します。

下の画像は、優先アタッチメントモデルに従った50ノードのBAモデルグラフを示しています。

C / C++のBarabasiAlbertGraph(スケールフリーモデル用)?


上のグラフは、金持ちはより金持ちになり、貧乏人はより貧しくなるという論理を完全に満たすことができます。


  1. 三角マッチ棒番号のC/C ++プログラム?

    ここでは、ピラミッドを作るために必要なマッチ棒の数を数える方法を以下に示します。ピラミッドのベースが与えられます。したがって、ベースが1の場合、ピラミッドを作成するには3本のマッチ棒が必要です。ベース2の場合は9本のマッチ棒が必要であり、ベースサイズ3の場合は18本のマッチ棒が必要です。 この問題を解決するには、次の式を使用する必要があります- 例 #include <iostream> using namespace std; int main(){    int x;    cout << "Enter

  2. C++での切断されたグラフのBFS

    切断されたグラフ は、1つ以上のノードがグラフの端点ではない、つまり接続されていないグラフです。 切断されたグラフ… 現在、Simple BFSは、グラフが接続されている場合、つまりグラフのすべての頂点にグラフの1つのノードからアクセスできる場合にのみ適用できます。上記の切断されたグラフの手法では、いくつかの法則にアクセスできないため不可能です。したがって、切断されたグラフで幅優先探索を実行するには、次の変更されたプログラムの方が適しています。 例 #include<bits/stdc++.h> using namespace std; void insertnode(v