10 フレームワーク(2)
10 フレームワーク(2)
「べス、よく眠れたか?」
「いや~徹夜なんだもん。お陰で薄い知識の膜が張ったような気分だもん」
「その表現はわかるような気がする。深くは理解していないが、全てが繋がったというところか?」
「そうだもん。知識の落ちはないはずだもん」
「だが、ここから難所に入る。なんといってもループが出てくるからな」
「大量のデータを木構造に投入するためにはループは避けて通れないもん」
「覚悟はいいな」
「まな板の上の鯉のような気分だもん。ところで中東で鯉もまな板もみたことないもん」
「変な例えをするからだ。それに心境はそれでは伝わらん」
「では素直に100m走のスタート前の気分ということだもん」
「気を取り直していくぞ。RN1集合+RE1集合=R1集合群、LN1集合+LE1集合=L1集合群とおく。R1集合群とL1集合群は同種の集合群とみなせるから片方の処理はもう一方の処理と同じになる。そしてAR1集合群=R1集合群+CRN1集合+C1集合、AL1集合群=L1集合群+CLN1集合+C1集合とする」
「C1集合が重複しているもん」
「それがこの木構造の大切な部分だ。重複データを保持しながら木構造は構築される。そしてC1集合は右側集合群(AR1)と左側集合群(AL1)の共通部分だ。ここで大事なポイントを2つ挙げておこう。1つは、この木構造の要素は実体ではなく可能性を残していると考えた方がいい。上手く表現できなくてすまないが、理解が進めば納得するだろう。1つは、C1集合は右側集合群(AR1)と左側集合群(AL1)を繋ぐ重要なブリッジ(コネクション)になるということだ。C1集合なしではAR1の要素とAL1の要素を繋ぐことはできない」
「ループに入る前に降参したいもん」
「耐えろ。耐えるんだ。この時点の実体は原エッジ(E1)だけだ。その両端をP1、P2とすると原エッジとP1、P2は等価だからそれも実体だ。次にAR1からP3を選択する。AR1のノード集合から選択するといってもいい。また2本目のエッジ(E2)を選択することは完全グラフの場合等価となる。汎用性を持たせるならエッジを選択する方が賢明だ。完全グラフでないグラフを扱うとき、例えばハミルトン閉路の解をもとめるときなどで悩まなく済む。この時点で実体はエッジE1とE2になる。結果としてP1、P2、P3ともなる」
「早く、早くループに。もう限界だ」
「次がループだ。原エッジはE1からE2に、全体集合はAR1またはAL1に移行する。そして、同じ分解条件で木構造の次の階層を構築する。後はその繰り返し、ループだ」
「終わったもん?」
「現段階で思い出せる部分は終わった。残りは脳に霞がかかって思い出せない」
「すまないもん。霞はわしのせいだもん」
「プログラムを書いて検証したいと思うが、どうやらそれも思うだけでストップがかかるようだ」
「そのストップもわしのせいだもん。早く精神の枷を外したいもん」
「どうやらべスの国に行くことを本気で考えないといけないようだな」
「そうだもん。そうだもん」
「ところで、今わかっている部分だけでも、改良点がいくつもあることがわかった。何かを人に話したり伝えたりすることは自分の思考を整理することになるんだと再認識してしまった」
「いい相棒になるもん」
「大事なことを忘れていた」
「何だもん」
「このアルゴリズムは大抵の大量データの処理に応用できると思うが、それは単にフレームワークに過ぎないということだ。核は分解条件だ。つまり問題によってコアを探さなければならないということだ。仮に不適切なコアを使って問題を処理したとすると、処理自体が発散したり、効率の悪い処理になってしまう」