カプセル演算具体化への具体化 | ihsotasathoのブログって言うほどでもないのですが

ihsotasathoのブログって言うほどでもないのですが

twitterで書いたことをまとめたりしていましたが、最近は直接ココに書き込んだりしています

大きなネットワークのカプセルの特徴を解り易くするため、プログラミングしてみます。
プログラミングするため、設計してみることにしました。

ときどき小説の冒頭に、登場人物とその関係を記した図が出てきます。
登場人物の絵ないし写真が貼られ(人物の性格に合うような表情で)、人物と人物の間に関係線や矢印が引かれ、家族、友達、敵対、好意などの言葉が、線に補足されます。
こうしておくと小説の中で登場する人物の関係を、読み進めている途中で確認でき、便利です。

これと同じように、プログラムを作っていく途中で、登場するデータが他のデータとどのような関係だったか思い出せるよう、図を起こしておきます。
この図は、プログラムを書いた後にプログラムを理解する上でも役立つはずです。

かつて、意識が起こるまでの過程を、私事ではありますが、「作用の記述」と銘打って一枚に纏めました。最終更新版は2014年7月27日[ここ]です(随分時間が経ちました)。この絵を起こしたのも先に述べたような理由からでした。

「そうなんだ。逸れに逸れまくってるじゃない?」
『あれ、そうわん?』

今回もプログラムに登場するデータたちと、それらの関係を一枚の図にしてみます。

図1:プログラムに登場するデータとその関係
150322image01

色の付いた四角の文字はデータの一塊の名前を表しています。
色に違いがありますが、今のところこの色の違いに明確な意味を持たせていません。今は何となく分類しています。
色の無い四角の文字は、一番近い色付きの四角の、具体的なデータの一覧を記しています。

矢印は右上の凡例の通りです。
「継承」は、矢印の先にあるデータやデータの処理方法を基本的には引き継ぐ、と言う意味があります。
「○○所持」は、矢印の先のデータをひとつまたは複数持っていると言う意味で使っています。
「参照・編集」は矢印の先のデータを参照または編集する事を意味します。

色の付いた四角に付いて補足します。
「体」は体を構成する「汎用身体部位」を持っています。
「汎用身体部位」は、腕を動かすモータ(モータとは限らないのですが)やメッシュ状の圧力センサ、はたまた体を構成する骨格などのデバイスと計算機上のモデルが会話するための仲介者の位置づけです。
また、「体」は「ネットワーク」、「受容器」、「効果器」も持っており、「ネットワーク」は「受容器」や「効果器」と繋がっています。
「受容器」や「効果器」は「汎用身体部位」とも繋がっています。
「ネットワーク」は神経系に対応しています。
「ネットワーク」を「カプセル」が流れます。
「ネットワーク」は「ノード」と「エッジ」から構成されています。
「ノード」も「エッジ」も「カプセル」を流し、溜める性質があります。
ただ溜めるだけではなく、漏れ易い性質もあり、それを「リーキースタック」と呼ぶそれで表現します。
「カプセル」は「カプセル」自体も「スタック」を持っていて、そこに他のカプセルとの影響を溜めています。
「仮想空間」は「カプセル」たちの相互作用から再構成される仮想的な空間です。
「カプセル」の位置関係と、「ネットワーク要素」に溜められた「カプセル」の履歴を参考に、内容が構成されていきます。
大きなネットワークで見積もりたかったカプセルの特徴も、ここに現れてくる予定です。

「ネットワーク要素」は、体を構成するあらゆるデータに継承されています。
カプセルの相互作用を計算する時、データすべてより、履歴として持っている「カプセル」だけに注目して相互作用を計算することになります。
履歴に溜められた「カプセル」に即座着目できるように透過性を与えました。
ただ、これから考えていくうちに気が変わってやり方を変えるかもしれません。

「時系列制御」は、計算中のデータを参照しないように管理してくれる仕組みを提供します。
具体的には、幾つか細かい話を省略して言うと、ふたつのネットワークがあります。
ひとつは「計算中のネットワーク」で、どんどんネットワークのデータの値が変わっていきます。
もうひとつは「少し前の時間の計算結果を入れたネットワーク」です。このネットワークは全く変わりません。「計算中のネットワーク」もこの少し前の時間の計算結果を参照して計算されていきます。
「ネットワーク」を見ている「汎用交換器」(受容器や効果器を構成する要素)は、「ネットワーク」を参照する場合、計算中の「ネットワーク」見ては駄目です。「時系列制御」は計算済みのネットワークだけを見せるよう頑張ります。
また、もし複数のプロセッサでネットワークを計算するとなったとき、どのネットワークの範囲をどのプロセッサに割り当てるか決める必要が出てきますが、それを「時系列制御」で吸収しようと考えています。

今は未だ、それぞれのデータをどう処理するか書けていません。
これからそれらを明確にしていこうと考えています。
その結果によっては、この図の書き換えが必要になるかもしれません。

「ふーん、とだけね」
『わん』
「それにしてもこのタイトル」
『何わん?』
「次は具体化への具体化への具体化、よね?」
『……』