YouTube

Got a YouTube account?

New: enable viewer-created translations and captions on your YouTube channel!

Japanese subtitles

← 02-06 Ring Network

Get Embed Code
2 Languages

Showing Revision 1 created 03/11/2014 by Fran Ontanaya.

  1. 次はリング型ネットワークです
  2. チェーンネットワークは
    個人間の関係として考えることができます
  3. 例えば私と私の先祖の関係に見られるような
  4. 一直線のつながりです
  5. これが私の息子だとすると私につながり
    私は父につながっています
  6. 父から祖父、曽祖父へと続きます
  7. これがチェーンネットワークです
  8. リング型ネットワークではループになります
  9. 私の家系の形とは違いますが
  10. このような関係はたくさんあります
  11. このリングの例では
    5個のノードと5本のエッジがあります
  12. 1、2、3、4、5
  13. 便利なことにリング型ネットワークは
    コードの一部に似ています
  14. このコースではグラフを
    辞書の辞書と見なして説明したいと思います
  15. 具体的な方法はこれで見ていきましょう
  16. これから作るグラフをa_ringとします
  17. n=5にして このリングを空の辞書として初期設定します
  18. そしてこの空のグラフにエッジを追加していきます
  19. 追加するエッジはこの処理を
    ゼロからn-1回まで繰り返したものとなります
  20. このグラフにおいてノードiから
    ノード(i+1)%nにリンクを張るようにすると
  21. 最後のノードは最初のノードにつながります
  22. ずっと同じ定義を使うつもりですが
    make_linkで行うのは
  23. 辞書つまりグラフで2個のノードをつなげることです
  24. node1がすでにグラフにあるかを確認して
  25. もしなければnode1に対する空の辞書を生成します
    node2の処理も同様です
  26. そしてnode1の辞書に対して
    node2につながると言っています
  27. つまりnode1とnode2にリンクを張っているのです
  28. 後ほど試してみましょう
  29. この辞書が完成すれば
    ノードやエッジの数を計算できます
  30. 実際に動かしてみたところ
  31. ノードの数は正しく5と出ています
  32. 設定どおりですね
  33. 私たちがエッジの数を計算する時は
    すべてのノードを見て数えています
  34. このコードではa_ring.keys()が
  35. グラフの中にある
    すべてのノードの名前を格納したリストを返します
  36. 変数であるノードをここに順番に割り当てます
  37. そのノードの値で辞書を参照して
  38. そのノードが持つすべてのリンクとその長さを
    リストに格納します
  39. このリストにはグラフの各ノードにつき
    1つの項目が存在します
  40. リストを参照すれば
  41. ノードにつながるエッジの数
    すなわちノードの次数が分かるのです
  42. この式では
    この角括弧("["および"]")で囲まれている部分が
  43. ノードの次数のリストを返します
  44. すべてを合計すると各エッジは2回数えられるので
  45. 2で割ればエッジの総数が出ます
  46. 最後にグラフを出力して結果が分かるようにしました
  47. 5はノードの数です この5はエッジの数ですね
  48. リングでは1個のノードから1本のエッジが出て
    最後尾は先頭につながるためです
  49. 処理の結果はノードのリストで分かります
  50. 各ノードが独自の名前であれば
    どんな名前でも構いません
  51. ここでは数字を使いました
  52. ノード0、ノード1、ノード2、
    ノード3、ノード4があります
  53. ノード0というのは
    すべてのノードの始まりとなる辞書です
  54. 5個のノードがあるリングの
    ノード0は右側のノード1につながります
  55. ノード0の1個前はノード4になります
  56. 同様に1は0と2につながり
    2は1と3につながるという構造になっているのです