ネットワークシステム (2024 年度後期)
- 第 1 回: スタートアップ授業 / グラフ理論
- 第 2 回: ネットワークの特徴を表す指標
- 第 3 回: ノードの中心性を表す指標・スケールフリー性
- 第 4 回: ランダムネットワーク・スケールフリーネットワーク
- 第 5 回: コミュニティ構造
- 第 6 回: コミュニティの検出
- 第 7 回: 情報拡散モデル
- 第 8 回: ネットワーク上の情報拡散 / 社会ネットワーク
- 第 9 回: 前半の総復習
- 第 10 回: 無線センサネットワーク
- 第 11 回: アドホックネットワーク・遅延耐性ネットワーク
- 第 12 回: SDN (Software-Defined Networking)
- 第 13 回: コンテンツ配信ネットワーク
- 第 14 回: 情報指向ネットワーク
- 第 15 回: 後半の総復習 / 授業アンケート FURIKA の実施
1. URL
2. 担当者
中村 遼 E-mail: r-nakamura[atmark]fukuoka-u.ac.jp 居室: 14 号館 3 階 313 オフィスアワー: 月曜日 1 限
3. スケジュール (予定)
1. スタートアップ授業 / グラフ理論 24/ 9/16 2. ネットワークの特徴を表す指標 24/ 9/30 3. ノードの中心性を表す指標・スケールフリー性 24/10/ 7 4. ランダムネットワーク・スケールフリーネットワーク 24/10/21 5. コミュニティ構造 24/10/28 6. コミュニティの検出 24/11/11 7. 情報拡散モデル 24/11/18 8. ネットワーク上の情報拡散 / 社会ネットワーク 24/11/25 休講 24/12/ 2 9. 前半の総復習 24/12/ 9 10. 無線センサネットワーク 24/12/16 11. アドホックネットワーク・遅延耐性ネットワーク 24/12/23 12. SDN (Software-Defined Networking) 24/12/26 13. コンテンツ配信ネットワーク 25/ 1/ 6 14. 情報指向ネットワーク 25/ 1/ 9 3 限 15. 後半の総復習 / 授業アンケート FURIKA の実施 ↑ は 1121 教室であることに注意!
4. 到達目標
- [O1] 複雑ネットワークにおける基礎理論として、ネットワークの特徴を表 す指標及びノードの中心性を表す指標を理解できるようになる
- [O2] 複雑ネットワークが有する代表的な性質であるスケールフリー性を、 その定義とともに理解し、説明できるようになる
- [O3] 複雑ネットワークが有するコミュニティ構造を、その定義とともに理 解できるようになる。
- [O4] 情報拡散モデルを用いながら、複雑ネットワーク上の情報の拡散過程 を説明できるようになる
- [O5] 最先端のネットワーク技術である無線センサネットワーク・遅延耐性 ネットワーク・SDN・コンテンツ配信ネットワークの基本的な概念を理解で きるようになる
- [O6] 将来のネットワークシステムとして注目されている情報指向ネットワー クの概念を理解できるようになる
5. 成績評価
定期試験で完全に評価する。
6. 参考書
- A.-L. Barabási, "Network Science", ISBN 1107076269
- M. Newman, "Networks Second Edition", ISBN 0198805098
7. ミニッツペーパの回答フォーム
Microsoft Forms (学内関係者限定) https://forms.office.com/r/XRMhgEPyP9
8. 補助教材
9. 連絡事項
9.1. 出席管理
- 授業教室に設置されているカードリーダのデータにもとづいて、管理します。 ので、授業に出席したら、学生証をカードリーダにかざしてください。
10. 第 1 回: スタートアップ授業 / グラフ理論
10.1. 資料
講義ビデオおよび講義資料 (学内関係者限定) https://fukuoka-u.app.box.com/folder/248245352663
11. 第 2 回: ネットワークの特徴を表す指標
11.1. 講義資料
11.2. 確認演習
以下の演習で対象とするネットワークは、 次に示す 6 頂点から成る無向グラフである。
1 ----- 2 | \ | \ | \ | 5 --- 6 | \ | / 3 ----- 4
演習 1
ネットワークの平均次数を求めなさい。
演習 2
ネットワークの次数分布を求めなさい。
演習 3
ネットワークの平均経路長と直径をそれぞれ求めなさい。
演習 4
クラスタ係数が最大となるノードを答えなさい。
11.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.4. 課題 (任意)
授業内容を十分に復習した後に、 以下の Forms に記載されている設問に、回答しなさい。 回答の期限は、次回講義の開始時刻の 48 時間前とする。
Microsoft Forms (学内関係者限定) https://forms.office.com/r/XRMhgEPyP9
12. 第 3 回: ノードの中心性を表す指標・スケールフリー性
12.2. 講義資料
前回と同じものを用いるので、新たに配布する資料はない。
12.3. 確認演習
以下の演習では、ネットワークとして、 次に示す、6 頂点から成る無向グラフを、対象とする。
1 ----- 2 | \ | \ | \ | 5 --- 6 | \ | / 3 ----- 4
演習 1
以下のア.〜ウ. は、次数中心性・近接中心性・媒介中心性のいずれかを説明 している。ア.〜ウ. の説明に対応する中心性指標の名称を回答しなさい。
- ア. 当該ノードを通過する最短経路の数がどの程度であるかを表す
- イ. 当該ノードから他ノードへの平均距離が短いほど、そのノードが重要である、ということを表す
- ウ. 当該ノードの次数に相当する
演習 2
各ノードの近接中心性を求めなさい。
演習 3
ノード 4 とノード 5 の媒介中心性を求めなさい。 ただし、値を正規化する必要はない。
12.4. 略解
演習 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.5. 課題 (任意)
第 2 回の課題と同様である。
13. 第 4 回: ランダムネットワーク・スケールフリーネットワーク
13.1. 前回の質問とその回答
なし。
13.2. 講義資料
13.3. 確認演習
演習 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
13.4. 略解
演習 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. 課題 (任意)
第 2 回の課題と同様である。
14. 第 5 回: コミュニティ構造
14.1. 前回の質問とその回答
なし。
14.2. 講義資料
14.3. 確認演習
演習 1
コミュニティ構造を有するネットワークの特徴を、「密」および「疎」という語句を用いながら、 説明しなさい。
演習 2
以下に示す無向グラフにおいて 4-クリークは存在するかどうかを答えなさい。
1 ----- 2 | \ | \ | \ | 5 --- 6 | \ | / 3 ----- 4
演習 3
演習 2 で対象としたグラフにおいて、 ノード v1, v2, v3, v4 がコミュニティを形成するものとしたときに、 このコミュニティは「強いコミュニティ」であるかどうかを理由とともに答えなさい。
14.4. 略解
演習 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.5. 課題 (任意)
第 2 回の課題と同様である。
15. 第 6 回: コミュニティの検出
15.1. 前回の質問とその回答
なし。
15.2. 資料
前回と同じものを用いるので、新たに配布する資料はない。
15.3. 確認演習
演習 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 における、 右半分の例 (講義ビデオ内で解説していない方の例) に対して、 モジュラリティを計算しなさい。
15.4. 略解
演習 1
1 ----- 2 | \ | \ | \ | 5 --- 6 | \ | / 3 ----- 4
- ア. ノード 4 が複数のコミュニティで重複しているから
- イ. ノード 6 がいずれのコミュニティにも属していないから
- エ. c2 において、ノード 3 とノード 5 との間で、路が存在しないから
演習 2
省略
15.5. 課題 (任意)
第 2 回の課題と同様である。
16. 第 7 回: 情報拡散モデル
16.1. 前回の質問とその回答
なし。
16.2. 資料
16.3. 確認演習
演習 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 で掲載しているグラフを求めてみなさい。
16.4. 略解
演習 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.5. 課題 (任意)
第 2 回の課題と同様である。
17. 第 8 回: ネットワーク上の情報拡散 / 社会ネットワーク
17.1. 前回の質問とその回答
なし。
17.2. 資料
17.3. 確認演習
演習 1
SIR モデルにおける基本再生産数の定義を、 記号を用いながら、 答えなさい。
演習 2
ネットワーク上の情報拡散を抑制するための方策を、 ネットワークを構成するグラフの観点から、 答えなさい。
17.4. 略解
演習 1
(講義資料に記述されているので) 省略
演習 2
例: ネットワークからノード/リンクを取り除く。
17.5. 課題 (任意)
第 2 回の課題と同様である。
18. 第 9 回: 前半の総復習
18.1. 授業の流れ
1. 演習 (45 分) 2. 採点・教え合い・回答のアップロード (15 分) 3. 解説 (30 分) 注: 様子を見ながら時間を適宜調整します。