よろしい、ならば分析だ。(作者同士のネットワーク編その4)
タケルは全身全霊の力を込めて、
百五十八神将が鉄壁の防御『スケールフリー』を発動させたのだ!
説明しよう! 『スケールフリー』とは、眷属85142人分の
奴らの弱点が見当たらない。どうする、英雄タケル!
――――――――――――――――
俺の名前は
なお、何の薬物かは秘密だ。
「おはよー。昨日はぐっすり眠れたわ」
幼なじみの
「あら? なんか顔色悪いわね」
「いや、こっちの話だ……」
殺人事件の話なんて、聞きたくあるまい。
「そんなことより、『自主企画参加者ネットワーク』の話をしようか」
「? まぁいいわ」
「しつこいようだけど、図のアドレスはこちらだ」
https://pbs.twimg.com/media/ERIheBiUUAI35yP?format=jpg&name=4096x4096
(ツイート本体:https://twitter.com/t_kusanagi/status/1230082456709038080)
(※データは二〇二〇年二月十八日に収集しました)
「今日はどんな話なの?」
「うん。本題に入る前に、今までの復習をしておこう」
・丸い点(○)はノードで、ユーザーを表す
・ノード同士を繋ぐ棒(―)がエッジ
・エッジには有向(―>)と双方向(<―>)の二種類がある
・次数とはノードに繋がっているエッジの総数
・Twitterに載せた図では、次数が大きいほどノードが大きい
図1:有向グラフ
――――――――――――――――
有向 双方向
○――――>○<―――>○
ノード1 ノード2 ノード3
(次数1) (次数2) (次数1)
――――――――――――――――
「有向エッジの向きがフォロー関係を表すんだったかしら。上の例だと、ノード1がノード2をフォローしているのよね」
「その通り。双方向エッジのときは相互フォローになっていて、ネットワークの相互フォロー率は約56.8%だったのを確認したのが、前回までの話だ。
さて、ここで問題です。今回使っているデータは二〇二〇年二月十八日時点のものだけど、その時点で自主企画『100質って憧れませんか?』に参加している人たちはいったい何人でしょうか?」
「覚えてるわ。百五十八人でしょ?」
「正解」
「つまり、このTwitterに載せた図には百五十八個のノードが描かれている訳ね」
「不正解」
「え!?」
「実は、このネットワークに描かれているノードは百五十八個ではない」
「どういうこと!? 数が合わないじゃない!」
「正確に言うと、ノードは確かに百五十八個存在するが、図の中に百五十八個描く必要がなかった」
「ますます言っている意味が分からないわ……」
「うん、混乱させてごめんね。まずは下の図を見て欲しい」
図2:非連結グラフ
――――――――――――――――
<例1>
○ ○ ○
ノード1 ノード2 ノード3
(次数0) (次数0) (次数0)
<例2>
○ ○――――>○
ノード1 ノード2 ノード3
(次数0) (次数1) (次数1)
<例3>
(次数1)
ノード1 ノード2 ノード3
○ ○――――>○
↑ (次数1) (次数1)
○ ノード4(次数1)
――――――――――――――――
「なにこれ? こんなのグラフって呼べるの?」
「例1から例3に示したものも立派なグラフなんだ。今までの例と違うのは、ノード同士が分断されていることだね」
「確かに、どの例もノード1とノード2はエッジで繋がってないわ」
「このように、全部のノードがエッジによって繋がっていない――連結していないグラフのことを『非連結グラフ』と呼ぶ」
「悲恋! ケツ・グラフ!」
「うーん、そんな名前の主人公は嫌だし、失恋話とか読みたくないなぁ……」
「段々読めてきたわ。つまり、自主企画参加者ネットワークは非連結グラフなのね!」
「あ、珍しく先回りされた。その通りだよ。百五十八ノード中、七ノードが次数0、つまり、どのノードとも繋がっていなかった」
「なるほど。図には百五十一ノードしか描かれてなかったのかー」
「全部数えるのは手間だし、流石に気付いた人はいなかったと思うよ。
ところで、例3を見て欲しい。ノード同士が繋がっている『塊』ができているのが分かるかな?」
「うーんっと……ノード1とノード4が塊で、ノード2とノード3が塊ってことかしら?」
「そうだね。このような塊のことを『連結成分』と言うんだ。例3の場合、連結成分は二つあるという風に数える」
「例1や例2も数えられるの?」
「うん。例1の連結成分は三個、例2の連結成分は二個だ」
「ノードが一個でも塊としてカウントしていいんだね」
「その通りだ」
「さて、次は非連結グラフとは逆の話をしよう」
「連結グラフってこと?」
「うん。ただし、有向グラフの連結性は二種類存在する。『
「狂恋! ケツ・グ――」
「あーはいはい。では、説明が簡単な強連結グラフから始めるぞ。まずは連結性を考えるときの基本的なルールを押さえておこう」
「基本的なルール?」
「『ノードからノードへは矢印の方向にしか移動できません』。以上」
「あら、意外と簡単だった」
「これ、大切だから覚えておいてね。
さて、このルールの下で『どのノードからスタートしても自分が行きたいノードに行けるグラフ』のことを強連結グラフと言う。例えば、次のようなグラフだ」
図3:強連結グラフ
――――――――――――――――
<例1>
双方向 双方向
○<―――>○<―――>○
ノード1 ノード2 ノード3
<例2>
ノード1 ノード2 ノード3
○――――>○――――>○
↑___________|
有向エッジ
――――――――――――――――
「例1だと、ノード1からノード2とノード3の両方へ行けるわね」
「ノード1から他のノードを通ってノード1へ戻ってくることもできる。ノード2やノード3からスタートしても同じことが言えるから、このグラフは強連結だ」
「例2は……一周してるのね」
「その通りだ。ノード2からノード1へ行きたかったら――
ノード2→ノード3→ノード1
――と一周回れば必ず辿り着ける。ノード1、ノード3についても全く同じことが言えるから、これも強連結だ」
「うーん、強連結が何かは分かったんだけど、なんで『強い』の?」
「その疑問はもっともなんだが、それを説明するには弱連結を知った方が早い」
「ごめんなさい、気が早すぎたわ」
「まずは下の例を見て欲しい」
図4:弱連結グラフ
――――――――――――――――
有向 有向
○――――>○――――>○
ノード1 ノード2 ノード3
――――――――――――――――
「このグラフは強連結かな? それとも強連結ではない? どっちでしょう」
「えっと……ノード2からノード1に行けないから、強連結ではない……かな?」
「正解だ」
「でも、全部のノードはエッジで繋がってるわ。連結してるじゃない」
「ケイコちゃんの言う通りだよ。実は、ルールを緩くする――弱くすると(強)連結になるグラフのことを弱連結グラフと言うんだ」
「ルールを緩くする?」
「最初に言った基本的なルールを思い出してみよう」
「えーっと、『ノードからノードへは矢印の方向にしか移動できません』だっけ……あっ!」
「どうやら気付いたようだね」
「もしかし、『矢印の方向を無視』ってこと!?」
「おー、素晴らしい。つまり弱連結とは、矢印の向きとは関係なく、どのノードからスタートしても自分が行きたいノードに行けるグラフのことを言うよ」
「ここまで教えてもらっておいて言うのもなんなんだけど……」
「どうした?」
「こんな難しい話をする必要はあったのかしら!」
「もちろんあったとも。秘密は、『85142人』という数字に隠されている」
「あー、なんでそんな中途半端な数字なのか、気になってたのよね」
「だろう? これは、弱連結性に大きく関係しているんだ。と言うことで、前回出した表に『連結性の情報』を加えた表を出すぞ。ドドーン!」
自主企画参加者ネットワーク
――――――――――――――――
ノード数(ユーザー数):158
エッジ数:764
双方向エッジ数:382
相互フォロー率:56.8%
平均次数:6.7261
強連結ネットワーク?:いいえ
弱連結ネットワーク?:いいえ
弱連結成分:8
――――――――――――――――
85142人のネットワーク
――――――――――――――――
ノード数(ユーザー数):85142
エッジ数:543301
双方向エッジ数:291274
相互フォロー率:53.6%
平均次数:7.9862
強連結ネットワーク?:いいえ
弱連結ネットワーク?:いいえ
弱連結成分:56
――――――――――――――――
オフィシャルアカウント( Official @~ )79個を除いた85063人のネットワーク
――――――――――――――――
ノード数(ユーザー数):85063
エッジ数:514947
双方向エッジ数:291274
相互フォロー率:56.6%
平均次数:7.7658
強連結ネットワーク?:いいえ
弱連結ネットワーク?:はい
弱連結成分:1
――――――――――――――――
「オフィシャルアカウントを除いた85063人のネットワークが弱連結ってことは……うわっ、85063人のノードが全部繋がってるってこと!?」
「ふふ……その通りさ。このネットワークは、矢印の向きさえ無視すれば85063人全員が繋がってることを表しているんだ!」
「ひえー! なんていう
「実は、オフィシャルアカウントのうち該当する五十五個のアカウントさえ取り除いてしまえば弱連結グラフになるんだけどね。まぁ、公平に全部削除してやったさ」
「ところで、この85063人って言うのはカクヨムの全ユーザーなのかしら?」
「それは違う。これはあくまでお互いに繋がっているユーザーを探索した結果得られた数字で、カクヨムに登録された全部の数ではない」
「そうなんだ。カクヨムってどれくらいのユーザーがいるのかしら」
「その答えは……」
「その答えは……?」
「新作エッセイを準備中なので、そちらをお楽しみに!」
「宣伝かーい!」
「ちょーっと難しい内容だったけど、どうだった?」
「まぁ、今までで一番ハードだったわ」
「本当はもう一つのトピックも書きたかったんだけど、思った以上に文字数が伸びてしまって、次回に回すことにしたよ。一旦休憩」
「そのトピックってどんなこと? 簡単に教えてくれないかしら」
「うん。Twitterの図なんだけど、ノードの配置にも実は意味があるんだ」
「えぇ!? 適当な配置じゃなかったんだ」
「ある意味『適当』な配置なんだけどね」
「えー、その言い方は気になる……」
「次回のお楽しみだ」
「しょうがないわね。待ってあげるわよ。……そう言えば、タケル君。85142人からデータがさらに増強されたって噂を耳にしたんだけど」
「誰から聞いたんだよ、そんなこと」
「ひ・み・つ」
「まったく、しょうがないなぁ……。あぁ、増強したよ」
「どれくらい?」
「全部で約十一万人分のデータになった」
「えぇ……」
「聞いておいてドン引きすんなよ!?」
「いや、なんて言うか、言葉が出ない」
「そんな訳で、十一万人のうちどれくらいが読み専なのかとか、ネットワークの特徴とか、カクヨムのユーザー数成長曲線とか、そんなエッセイを新作として出そうと思ってます!」
「その宣伝、二回目ね。じゃぁ、私も二回目。興味があればそちらも是非! タケル君をフォローすれば新作通知が行くので、読み逃したくない方は今すぐフォロー!」
「はい、宣伝どうもありがとう」
「では、次回をお楽しみに。さようなら~!」
「さようならー!」
――――――――――――――――
次回予告
ネットワークに『孤高の存在』がいることを突き止めた英雄タケルは、各個撃破戦術により僅かではあるが百五十八神将の一角を崩すことに成功した。しかし、彼らの眷属85063人はほとんど一体であることが判明し、今度こそ絶体絶命の大ピンチ!
果たして、この状況を乗り切ることができるのか!?
次回、制作スタジオの都合により公開延期になった『配置に意味あり? 百五十八神将のストラテジー!』がついに登場! みんなで読もう!
(続く!)
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます