ネットワークシステム (2025 年度後期)
- 第 1 回: スタートアップ授業 / グラフ理論
- 第 2 回: ネットワークの特徴を表す指標
- 第 3 回: ノードの中心性を表す指標・スケールフリー性
- 第 4 回: ランダムネットワーク・スケールフリーネットワーク
- 第 5 回: コミュニティ構造
- 第 6 回: コミュニティの検出
- 第 7 回: 情報拡散モデル
- 第 8 回: ネットワーク上の情報拡散 / 社会ネットワーク
1. URL
 
2. 担当者
中村 遼 E-mail: r-nakamura[atmark]fukuoka-u.ac.jp 居室: 14 号館 3 階 313 オフィスアワー: 月曜日 1 限
3. スケジュール (予定)
          1. スタートアップ授業 / グラフ理論
25/ 9/15  2. ネットワークの特徴を表す指標
25/ 9/22  3. ノードの中心性を表す指標・スケールフリー性
25/ 9/29  4. ランダムネットワーク・スケールフリーネットワーク
25/10/ 6  5. コミュニティ構造
25/10/20  6. コミュニティの検出
25/10/27  7. 情報拡散モデル
25/11/ 8  2 限 8. ネットワーク上の情報拡散 / 社会ネットワーク
↑1121 教室であることに注意!
25/11/10  休講
25/11/17  9. 前半の総復習
25/12/ 1  10. 無線センサネットワーク  
25/12/ 8  11. アドホックネットワーク・遅延耐性ネットワーク
25/12/15  12. SDN (Software-Defined Networking)
25/12/22  13. コンテンツ配信ネットワーク
25/12/25  14. 情報指向ネットワーク
26/ 1/ 5  15. 後半の総復習 / 授業アンケート FURIKA の実施
注: 補講日の割当によって、スケジュールは前後します。確定のタイミングはシステムからの通知の時点です。
4. 到達目標
- [O1] 複雑ネットワークにおける基礎理論として、ネットワークの特徴を表 す指標及びノードの中心性を表す指標を理解できるようになる
- [O2] 複雑ネットワークが有する代表的な性質であるスケールフリー性を、 その定義とともに理解し、説明できるようになる
- [O3] 複雑ネットワークが有するコミュニティ構造を、その定義とともに理 解できるようになる
- [O4] 情報拡散モデルを用いながら、複雑ネットワーク上の情報の拡散過程 を説明できるようになる
- [O5] 最先端のネットワーク技術である無線センサネットワーク・遅延耐性 ネットワーク・SDN・コンテンツ配信ネットワークの基本的な概念を理解で きるようになる
- [O6] 将来のネットワークシステムとして注目されている情報指向ネットワー クの概念を理解できるようになる
5. 成績評価
平常点を 20%、定期試験の得点を 80% で重み付けした得点と、 定期試験の得点を 100% とした得点とのうち、 大きいものを最終的な成績とします。
6. 参考書
- A.-L. Barabási, "Network Science", ISBN 1107076269
- M. Newman, "Networks Second Edition", ISBN 0198805098
7. 確認テスト
- 問題は、確認テストを実施する直前に公開されます。
- 持込はなしです。 ただし、確認テストの問題を閲覧するために、 PC・タブレット・スマートフォンを用いるのは構いません。 確認テストを解いている間はこれらの機器を他の用途には用いないでください。
- 答案用紙には手持ちのノート・ルーズリーフなどを用いてください。 所持していなければ、紙を配布します。
- 確認テストを終えた後には採点してください。 できれば、周りの人と答案を交換し相互に採点してください。
- 採点された答案を撮影し、 以下のフォームから提出してください。 提出の期限は、 確認テストを実施した当日の 11:59pm (JST) です。
Microsoft Forms (学内関係者限定) https://forms.office.com/r/bERVLB4Bz4
- (余程のことがない限り、) 確認テストの解答例を公開すること、 若しくは確認テストを解説することはありません。
8. 補助教材
9. 第 1 回: スタートアップ授業 / グラフ理論
9.1. 資料
講義ビデオおよび講義資料 (学内関係者限定) https://fukuoka-u.box.com/s/fpo4j62meghav0xzdqlkkgjtcht3bec8
10. 第 2 回: ネットワークの特徴を表す指標
10.1. 講義資料
10.2. 確認演習
以下の演習で対象とするネットワークは、 次に示す 6 頂点から成る無向グラフである。
1 ----- 2 | \ | \ | \ | 5 --- 6 | \ | / 3 ----- 4
演習 1
ネットワークの平均次数を求めなさい。
演習 2
ネットワークの次数分布を求めなさい。
演習 3
ネットワークの平均経路長と直径をそれぞれ求めなさい。
演習 4
クラスタ係数が最大となるノードを答えなさい。
10.3. 略解
演習 1
8 / 3
演習 2
p(1) = 1 / 6, p(2) = 1 / 6, p(3) = 1 / 2, p(4) = 1 / 6
演習 3
- 平均経路長: 8 / 5
- 直径: 3
演習 4
ノード 3
11. 第 3 回: ノードの中心性を表す指標・スケールフリー性
11.1. 講義資料
前回と同じものを用いるので、新たに配布する資料はない。
11.2. 確認演習
以下の演習では、ネットワークとして、 次に示す、6 頂点から成る無向グラフを、対象とする。
1 ----- 2 | \ | \ | \ | 5 --- 6 | \ | / 3 ----- 4
演習 1
以下のア.〜ウ. は、次数中心性・近接中心性・媒介中心性のいずれかを説明 している。ア.〜ウ. の説明に対応する中心性指標の名称を回答しなさい。
- ア. 当該ノードを通過する最短経路の数がどの程度であるかを表す
- イ. 当該ノードから他ノードへの平均距離が短いほど、そのノードが重要である、ということを表す
- ウ. 当該ノードの次数に相当する
演習 2
各ノードの近接中心性を求めなさい。
演習 3
ノード 4 とノード 5 の媒介中心性を求めなさい。 ただし、値を正規化する必要はない。
11.3. 略解
演習 1
- ア. 媒介中心性
- イ. 近接中心性
- ウ. 次数中心性
演習 2
C(1) = 5 / 8, C(2) = 5 / 7, C(3) = 5 / 9, C(4) = 5 / 6, C(5) = 5 / 7, C(6) = 5 / 11
演習 3
B(4) = 7, B(5) = 8
12. 第 4 回: ランダムネットワーク・スケールフリーネットワーク
12.1. 講義資料
12.2. 確認演習
演習 1
ER モデルに従って、 N = 5, p = 1 / 2 のランダムグラフを手作業で生成してみなさい。
演習 2
以下の文章は、ランダムネットワークの次数分布 P(k) の導出を 説明している。この文章における空欄にあてはまる適切な数式や記号を答えなさい。
- あるノードに着目し、そのノードの次数が k である確率を考える。
- ノードの次数が k であるためには、(1) k 個のノードとつながり、 (2) 残りの N - 1 - k 個のノードとつながらない、ということを満たせばよい。
- あるノードが、k 個のノードと同時につながる確率は、[ ア ] である。 一方、残りの N - 1 - k 個のノードと同時につながらない確率は、 [ イ ] である。
- さらに、N -1 個のノードから k 個のノードを求める組み合わせが [ ウ ] であることを踏まえれば、 次数分布 P(k) は [ エ ] である。
演習 3
スケールフリー性を表現するために、BA モデルが導入した二つの仕組みを答え、 それらを簡潔に説明しなさい。
演習 4
以下に示すグラフに対して、 BA モデルに従って、 新たにノードを追加した時に、 優先的接続で各ノードにリンクが接続される確率を答えなさい。
1 ----- 2 | \ | \ | \ | 5 --- 6 | \ | / 3 ----- 4
12.3. 略解
演習 1
(乱数に依るので) 省略
演習 2
- ア: p^k
- イ: (1 - p)^(N - 1 - k)
- ウ: N - 1 C k
- エ N - 1 C k * p^k * (1 - p)^(N - 1 - k)
演習 3
(講義資料を参照すればよいので) 省略
演習 4
- ノード1: 3 / 16
- ノード2: 3 / 16
- ノード3: 2 / 16 (= 1 / 8)
- ノード4: 4 / 16 (= 1 / 4)
- ノード5: 3 / 16
- ノード6: 1 / 16
13. 第 5 回: コミュニティ構造
13.1. 講義資料
13.2. 確認演習
演習 1
コミュニティ構造を有するネットワークの特徴を、「密」および「疎」という語句を用いながら、 説明しなさい。
演習 2
以下に示す無向グラフにおいて 4-クリークは存在するかどうかを答えなさい。
1 ----- 2 | \ | \ | \ | 5 --- 6 | \ | / 3 ----- 4
演習 3
演習 2 で対象としたグラフにおいて、 ノード v1, v2, v3, v4 がコミュニティを形成するものとしたときに、 このコミュニティは「強いコミュニティ」であるかどうかを理由とともに答えなさい。
13.3. 略解
演習 1
ノード同士が密に接続されたコミュニティと、 疎に接続されたコミュニティから構成されたネットワーク。
演習 2
存在しない。
演習 3
「強いコミュニティ」の定義に基づいて、全てのノードに対して、 k^int_v > k^ext_v が成立しているかどうかを確認すると、
v1: 3 > 0 v2: 2 > 1 v3: 2 > 0 v4: 3 > 1
である。よって、全てのノードに対して、 k^int_v > k^ext_v が成立しているため、 ノード v1, v2, v3, v4 から成るコミュニティは「強いコミュニティ」である。
14. 第 6 回: コミュニティの検出
14.1. 資料
前回と同じものを用いるので、新たに配布する資料はない。
14.2. 確認演習
演習 1
本演習では、以下に示す無向グラフを対象とする。このときに、次の ア.〜エ. のコミュニティ集合が、講義資料の p.7 における定義を満たしているかどう かを検証し、満たいしていないものを列挙しなさい。その理由も述べること。
1 ----- 2 | \ | \ | \ | 5 --- 6 | \ | / 3 ----- 4
- ア. C = {{1, 3, 4}, {2, 4, 5, 6}}
- イ. C = {{1, 3, 4}, {2, 5}}
- ウ. C = {{1, 2, 3}, {4, 5, 6}}
- エ. C = {{1, 2, 4}, {3, 5, 6}}
演習 2
講義資料の p.12 における、 右半分の例 (講義ビデオ内で解説していない方の例) に対して、 モジュラリティを計算しなさい。
14.3. 略解
演習 1
1 ----- 2 | \ | \ | \ | 5 --- 6 | \ | / 3 ----- 4
- ア. ノード 4 が複数のコミュニティで重複しているから
- イ. ノード 6 がいずれのコミュニティにも属していないから
- エ. c2 において、ノード 3 とノード 5 との間で、路が存在しないから
演習 2
省略
15. 第 7 回: 情報拡散モデル
15.1. 資料
15.2. 確認演習
演習 1
講義資料の p.8 で紹介した数値計算に従って、 \(S(1)\) 、 \(I(1)\) 、 \(R(1)\) を手計算しなさい。 パラメータおよび初期値は次の通りとする; \(S(0)\) =9,990、 \(I(0)\) =10、\(R(0)\) =0、 \(\beta\) =0.4、\(\gamma\) =0.2
演習 2
講義資料の p.8 で紹介した数値計算を行うプログラムを、 何らかのプログラミング言語で実装し、 講義資料の p.9 で掲載しているグラフを求めてみなさい。
15.3. 略解
演習 1
- \(S(1)\) = 9,990 - (0.4 * 9,990 * 10) / 10,000 = 9986.004
- \(I(1)\) = 10 + (0.4 * 9,990 * 10) / 10,000 - 0.2 * 10 = 11.996
- \(R(1)\) = 0 + 0.2 * 10 = 2
演習 2
- Python 言語の場合:
Google Colab https://colab.research.google.com/drive/1fzc0MdkKuTWvXas-4-rYNOIl67oQ_s98?usp=sharing#scrollTo=e8jzirdi8mot
- C 言語の場合:
#include <stdio.h>
#define ARRAY_SIZE 1024
#define MAX_TIME 100
int N = 10000;
double BETA = 0.4;
double GAMMA = 0.2;
double DELTA = 1;
int
main()
{
  int k = 0;
  double S[ARRAY_SIZE], I[ARRAY_SIZE], R[ARRAY_SIZE];
  double T[ARRAY_SIZE];
  S[0] = 9990; I[0] = 10; R[0] = 0;
  T[0] = 0;
  for (k = 0; k < MAX_TIME / DELTA; k++) {
    T[k + 1] = T[k] + DELTA;
    // first-order approximation
    S[k + 1] = S[k] - BETA / N * S[k] * I[k] * DELTA;
    I[k + 1] = I[k] + (BETA / N * S[k] * I[k] - GAMMA * I[k]) * DELTA;
    R[k + 1] = R[k] + GAMMA * I[k] * DELTA;
  }
  for (k = 0; k < MAX_TIME / DELTA; k++) {
    printf("%.2f S %.4f\n", T[k], S[k]);
    printf("%.2f I %.4f\n", T[k], I[k]);
    printf("%.2f R %.4f\n", T[k], R[k]);
  }
}
16. 第 8 回: ネットワーク上の情報拡散 / 社会ネットワーク
16.1. 資料
16.2. 確認演習
演習 1
SIR モデルにおける基本再生産数の定義を、 記号を用いながら、 答えなさい。
演習 2
ネットワーク上の情報拡散を抑制するための方策を、 ネットワークを構成するグラフの観点から、 答えなさい。
16.3. 略解
演習 1
(講義資料に記述されているので) 省略
演習 2
例: ネットワークからノード/リンクを取り除く。