系が激変を起こす臨界点の定量的解析
以下は作用マトリックス理論において、系が変化していく際に一種の臨界点がどこに生じるのかの解析である。
これは具体的に言うと、作用マトリックス内の相互作用成分のどれか1個の値を、外部から強制的に変化させてしまった場合、それが固有値全体を変化させてしまう確率がどの程度なのかを、系全体のゼロ成分の個数との関係の形でグラフにしたものである。
この場合言うまでもなく、例えば相互作用が疎、つまり相互作用成分の90%以上がゼロ成分という、大部分がゼロ成分ばかりの系では、たとえ成分のどれか1個が変化しても、それが固有値を変化させてしまう確率は小さい。一方それとは逆に、ゼロ成分が全体の10%ぐらいしかなく、相互作用成分の大部分が非ゼロの値をもってしまっているような系では、固有値が変化してしまう可能性が高い。
そしてある時点を超えたあたりで、その確率は急速に上昇するものと考えられる。つまり大体その確率が、この種の系における一種の臨界点の目安になるというわけである。
この「臨界曲線」が秘める意義
思い返せばかつての解析学では、通常の微分方程式で扱える現象の大部分が、何らかの形で指数関数exp at をベースとするパターンに従っており、それゆえそのカーブの様子が頭の中に入っていることが、あらゆる問題に接する際の必須の心得であった。
その連想でいけば、ここで扱う臨界点のグラフは、この種の現象を扱う際にややそれに似た位置を占める可能性が高く、いわば必須の常識となるはずである。
実際この固有値変化の臨界点の問題は、様々な問題の中でいろいろな異なる意味をもって現われる。例えば交通渋滞の問題などでは、これは車の密度が上がっていった際に、一か所で発生した渋滞が急速に全体に波及し始める臨界点としての意味をもつ。
また生態系や医学などの場合では、これは系をどの程度いじってしまうとコントロール不能の臨界点を超えてしまうのかを意味するものとなり、言葉を換えれば、これはどの程度複雑な系ならどの程度いじって良いのかを数学的に知る際の、重要で基本的な定量的指針となるはずである。
それゆえこの臨界曲線のグラフは今後、生態系、医学、経済、交通渋滞など、さまざまな場所でexp関数並みの重要度で登場してくるものと予想されるのであり、そのつもりで以下をご覧いただきたいと思う。
どのようにしてそれを求めるか
しかしこれを求めることは、決して難しい問題ではない。要するにその問題の相互作用成分(外からいじって変える予定のもの)が、もともと固有値の決定に関与していたかどうかを調べればよいのであり、もしそれが最初から固有値の決定に関与していなかったならば、その成分の値が変わろうが変わるまいが、固有値には全く影響しないことになる。
そして一般に固有値を求める作業とは、突き詰めて言えば要するにその行列の行列式を求める作業をちょっと変えたものに過ぎない。つまりこの場合、行列Aの行列式をそのまま求めるのではなく、A−λEの行列式を計算するという点が違うだけなのであり、特にこの問題の場合、両者の作業内容は事実上ほとんど同じものとなる。
それならば、行列式の計算とはどんなものだったかをあらためて振り返ってみると、例えば10行10列の行列の場合、まず各行(または各列)から1個づつ代表を出す格好で10個の成分を並べて、それらをかけ合わせた値を作る。そしてその種の10個の成分の組合せを一つ残らず書き出して、それぞれこの積の値を計算し、最後にそれら全部を足し合わせたものが、行列式の値となる。
この作業は、見方を変えれば次のようにも表現できる。つまりそれは行列内部にできる一種のループ(ただしそのループは10個の成分を通って行列内部を1周するものに限られる)を残らず書き出して、その値を全部足し合わせる作業であるとも考えることができる。
そしてその個々のループの値は、要するに10個の成分の積なので、もしその中にどれか一つでもゼロが混じっていれば、そのループの値はゼロになってしまう。(これは言葉を換えれば、一個ゼロ成分が混じっていると、そこでループが切れて閉曲線を作れないことに相当する。)
ループ(ゼロ成分があるとそこで切れる) 個数は全部で10!個
図1
ではそのループの個数が全部で何個あるかということだが、それはこの場合10!個ということになる。ただしこの場合、実はそのループのうち、われわれが問題にしている成分(変えてしまう予定のもの)を通過するものは1割だけで、残りの9割のループはそれを経由しない。
それゆえ問題の成分を通過するループの個数は、10!/10個、つまり9!個である。つまりもしこの9!個の値が全部がゼロだったとするなら、そのときこの成分は固有値の決定に関与していないことになり、たとえスイッチ演算子がオンになっても系の固有値は変化しない。
外からいじれる成分 これを通るループは全体の1/10(=9!個)
図2
9!個というと、約36万個なので、これが全部ゼロでなければならないというのは非常に狭い門のようにも思えるが、しかし一方で、個々のループの値がゼロでなくなる確率の方を見てみると、こちらはこちらでかなり狭き門なのである。
なぜならこちらは、かけ合わせる10個の成分の中にゼロ成分が1個も混じっていてはならないのだから、個々の確率の10乗ということになり、もし系全体にゼロ成分が多く混じっているならば、積の値がそれを全部すり抜けて非ゼロとなる確率はかなり低いものとなる。
要するにこの二つの狭き門の綱引きという形で、それが固有値に関与するか否かが決定されるわけである。
(註・なお後に詳しく述べるが、問題を単純化するため現在の段階ではすべての成分を一律同様に扱っており、対角成分に関してもそれは特に1に想定されてはいない。図を見ると矢印が対角成分のところで絶対に切れないようになっているので、一見全部が1のようにも見えるが、これは矢印の描き方の都合から来る錯覚である。ただし最終的にはやはりそれはすべて1にしていくことが必要となるが。)
具体的な計算方法
では計算方法を具体的に見てみよう。パラメーターとしては「成分の非ゼロ率」、すなわち系の相互作用成分のうちゼロでない成分がもともと何%存在するかという率の値をrとして採用する。(グラフにする場合の単位は、100を上限とする「%」を採用するか、1を上限とする確率を採用するか、そのどちらでも良い。)
そしてグラフは、横軸にその非ゼロ率rをとり、縦軸にはそのような系のどこかをいじった時に固有値が変化してしまう確率の値をとる。そしてm行m列の作用マトリックスの次数mごとに、1本のカーブが描かれる。
それぞれのカーブには、どこかで急激に立ち上がってしまう点が現れ、それが臨界点に相当する。つまり要素同士の相互作用が稠密になっていく(rの値が増大する)に従って、系をいじった時に系全体が激変する可能性は増大し、そしてその臨界点付近が、いじっても安全な状態といじるのが危険な状態の決定的な分かれ目だということになる。
この場合、個々のループの値は先ほど見たようにm個の成分の積で表現されるが、そのうち1個は、外から値をいじる予定の相互作用成分それ自身であり、これがゼロである可能性は最初から考える必要がない。
つまりm個の成分からこの1個を除いた、m−1個の成分が問題になるわけで、これらが全部の積がゼロにならない(つまり成分全部が非ゼロである)確率を、まず求めることが必要である。
それは、特にややこしい条件を想定しない限りは非常に単純で、要するに
rm−1
が、ループ1個あたりの積の値がゼロではなくなる確率である。(逆に言えば、ループ1個の値がゼロである確率は1−rm−1である。)
続いて、ループの全部がゼロである確率を求める。ループ全体の個数はm!個だが、そのうち問題の成分を通過するものの個数は、先ほども述べたように、(m−1)!個である。
そのためループ全部の値が一つ残らずゼロになる確率は、
(1−rm−1)(m−1)!
である。
この値は、カーブが1から右下がりで減少するものであることからわかるように「固有値を変えない確率」を指している。まあどちらをとっても良いのだが、むしろグラフにする場合には逆に「固有値を変えてしまう危険度の確率」という右肩上がりの曲線とした方が印象的であろう。つまりその場合は、1から今の値を引いて
1−(1−rm−1)(m−1)!
とすればよく、これが最終的な結果である。要するにこれが、m個の要素から成る系において、相互作用成分の非ゼロ率をrとした場合に、ある一個の相互作用成分の変化が固有値を変化させる確率であり、これを単純に計算してグラフにすればそれで良いのである。
(なお、先ほどの「ややこしい条件を考えない」ということには、例えば次のようなことも含まれている。それは、ここではrの値は完全に独立事象と考えてすべて一定値としてあるが、本当は各ループの計算値を次々に求めていく途中で、それまで求めた値を手がかりに残りのループの値を推理できてしまうことがあり得る。つまりその場合、rの値も一律ではなく条件つき確率として考える必要が出て来るのであり、厳密には補正が必要である。)
「短いループ」の存在
ところで先ほど、対角成分のことに関して少し述べたが、現実の系を表現する際には、その作用マトリックスは対角成分に1が斜め一列にずらりと並んだものになっていることが多い。そしてそういう場合、一つの重要な問題が現われてくることになるのであり、以下、それについて述べてみよう。
その重要な問題とは、こういう局面では「ローカルな短いループの影響」というものの考慮が必要になってくるということである。それを見るために、ここで一旦通常の行列式の演算法則に立ち返ってみよう。
一般的な線形代数においては、行列式の計算に際していわゆる「余因数展開」を用いることで、それをある程度簡略化することができる。要するにm次の行列の行列式を計算する場合、その行と列をそれぞれ1つづつ抜いて作ったm−1次の行列をm個用意し、それらの行列式と、抜いた位置の成分の値をかけてそれを全部合計したものが、まともにm次で計算した場合の行列式の値と一致するということである。
そして特に対角成分に1がずらりと並んでいる場合、その過程の一部でこれが入れ子式に繰り返されることになる。
つまりこの展開で現われるm−1次の行列の中には、前と基本的に同じ格好(つまり対角成分が全て1)のものが含まれており、その行列式を求める際に再び同じことを実行できる。そしてこれを次々に繰り返すことで、最終的には2行2列の行列式に相当する量までが、項の中に現われてくることになるのである。
図3
ところがわれわれの観点からすれば、これは少々困惑する話ではあるまいか。それというのも先ほどの計算では、ループの長さを全部同じと仮定していたが、上のようにして出て来るサイズの小さな行列式は、いわばループの長さが短いため、計算の過程でかかってくるrの個数が少なくなってしまっているからである。このことは一体どう解釈されるべきなのだろうか。
しかし実を言えばこのことは、ある意味でむしろ現実の系の振る舞いを正確に表現していると言えなくもないのである。つまり現実の系がどうなっているかを考えると、その中に存在するループは、必ずしもその全部が系全体をくまなく一周してくるものばかりではなく、中にはもっとローカルな場所で小さく閉じて完結してしまっているものも含まれているからである。
つまりこれらのローカルな短いループの存在が、まさしく先ほどの次数の小さな行列式に対応していると考えられるのであり、全般的にこれらの状況が見事に数学的に表現されていたと解釈できるのである。
「長・短ループ」は分離した方が便利
それゆえここでも、本来ならばそういう短いループの存在を考慮し、それらすべての確率を別個に計算して合計することが必要であるとは一応言える。
しかし現実に道具としてこれを用いることを考えた場合、実はそれらが全て合計された厳密な値として出てきたのでは、かえって不便であることが多いのである。
確かに現実のほとんどの系の振る舞いは、そのような長いループと短いループの混合的な作用によって成り立ってはいる。しかしそれに接する人間の立場からすると、実際には両者を質的に別物として扱っていることが多いのである。
それは社会のことを考えてもよくわかる。つまり人間は、社会の多数の構成要素の中から、自分が相互作用を行なうべき相手をいくつか選んで、それらの相互の取り引きの糸をつなぎ、日々の生活はむしろその中で行なわれている。言うまでもなく、こちらが「短いループ」である。
その一方で社会内部には、全く意識していない波及効果のループというものが存在して、相互作用の糸が社会の思わぬ場所を大きく回って、最終的に全く予想もしていなかった場所から自分に戻ってくることがある。つまりこれが「長いループ」である。
これはシステムの設計や戦略の立案などに関しても同様で、一般にシステムを設計する場合、設計者たちはまず基本的な構成要素として、限られた数個の要素を選択し、その間のループを考慮することで一応一個のシステムを組み上げる。
そしてその後で、波及効果や副作用を修正事項として考慮するのであり、これらの二種類の作業が最初から完全に一体として同時に行なわれることはむしろ稀である。
このように人間は、現実には両者をある程度別物として扱っている。本来ならそれは正しい態度とは言えないのだが、しかし現実問題としては、やはりそのようにしない限り身動きがとれないのである。
そう考えると、解析結果として常に長短二種類のループによる値が混ざって単一の値として出てくるようではむしろ不便なのであり、できれば前者と後者はある程度別々に求めることができた方が、実用上は圧倒的に便利なのである。
rが小さい時は分離はむしろ必要
またこのような使い勝手の問題を別にしても、局面によってはそもそもその混合値そのものが最初から意味をなさない場合がある。
例えば砂漠や大草原の中に少ない人口の集落が孤立して点在しているような「社会」を作用マトリックスで表現することを考えよう。このような社会は、相互作用が極めて疎であるため、どこかをいじった時にその社会全体が激変する確率は本来非常に低く、いわばその典型である。
ところがそんな社会であっても、孤立した各集落の内部では、当然ながら極めてローカルに完結した短いループが何本も存在しており、そこを下手にいじると集落内部の秩序を乱すため、ばしば家長たちがその維持と調整に気を配っているものである。
つまりここでの固有値変化確率の問題を考えると、長いループから来る値はほぼゼロなのに、極度に短いループから来る値は常に一定値として存在していることになる。
図4
そしてこれをあくまでも数学的に厳密にそれを求めようとすると、両者を無理矢理平均した値が出てきてしまい、それはどちらの観点からもあまり意味をなさないのである。
rの大小による態度の違い
そしてさらに言えば、このように長短のループを分離するということは、rの値がある程度小さい場合にのみ、意義と意味をもっている。そもそもrの値が大きくてほとんど1、つまり成分全部が非ゼロで埋まっているような場合、そのように長短二種を分けること自体が非常に不健全であり、そこで無条件にそれを行なおうとすることは、ハーモニック・コスモス信仰以外の何物でもない。
一方それに対してrの値がゼロに近い場合、現実の系の姿は先ほどのようになっていることが多く、分離は十分に意味をもつ。というよりrが小さくなると、先ほどの砂漠の集落の話のように、両者の乖離が著しくなってその平均値に意味がなくなるため、むしろ分離は必要なこととなってくる。
こうしてみると、本来ならrの大小によって態度を変える必要があるという話になるべきではあるのだが、ところが現実問題としてみると、前者のようにrがほとんど1であるような系は、もともと完全な非ハーモニック系であって数学的解析そのものが大体は不可能なのである。
つまりそのような系に向けてツールを作ること自体、よほど特殊な局面を除いてはほとんど意味がないのであり、数学的ツールが実際に使える局面の大部分はrが小さい場合であると言ってよい。
われわれがとるアプローチ
そのためわれわれとしては、最初から主としてrがある程度小さい場合での使用を想定し、ループにどこかで適切に線引きを行なって、短いループの影響と長いループの影響を別々に解析できるようにしておくことにする。
確かに厳密な合計値を出すことはいずれは必要であるとしても、実用上の問題を考えると、ひとまず両者を分けた「パーツ」の形で、その大まかな振る舞いがわかるようなツールを作っておき、必要に応じてそれを組み合わせるというやり方をとる方が望ましい。
また哲学的観点からしても、長いループの影響に関しては、そもそも定性的にその大まかな振る舞いそのものが従来ほとんど未知であり、人類が一番知りたかったものもむしろこちらだったのである。それゆえそちらだけが分離されて鮮明にわかるようになっていた方がむしろ哲学的意味が大きく、その面でも有利であると言えるだろう。
なおそういう方針で臨むため、対角成分の条件設定に関しても、ひとまず先ほど行なったようにそれらを特に1と規定せずに、まず問題を単純化して長いループの大域的な振る舞いを調べることにする。
そのため当面は、rの名目上の定義は「対角成分を含めた全成分の非ゼロ率」という形になっているが、それは最終的には「対角成分以外の成分の非ゼロ率」に移行していくことになり、体系全体も近似的にそちらに移行させていくこととする。
付録・臨界曲線の計算ソフト
なおここでは、mが20以下ぐらいの範囲で、臨界曲線の具体的なカーブを計算するソフトが付録としてついているので役立てていただきたい
この計算ソフトの場合、系のサイズmを入力すると、自動的に臨界曲線を描いてくれる。ただしm=21以上になると、エラーを生じて正しく結果が表示されない。
http://www.motion.ne.jp/pathfind2/BreakGraph.html
(計算ソフト制作者・中西達夫)
ともあれこの臨界曲線は、複雑な相互作用をもつ系の振る舞いを知る上で、決定的かつ基本的なツールになると思われる。それゆえ数値解析まで含めた大域的な振る舞いについては、次回の稿であらためて本格的に述べることとする。(このグラフは、横軸にr=「作用マトリックスの成分のうちの非ゼロ成分の割合(ないしは、ある成分が非ゼロ成分である確率)」をとってある。(尚、「確率」としたときにはrは0から1まで。「割合」としたときは0%から100%まで。無論左端がr=0。)一方縦軸は先ほど求めた臨界曲線の値、すなわち「系のどこかをいじった時、固有値が変化して系全体に指数関数的激変が起こる確率」の大きさを示す。この「臨界曲線」のグラフは、系のサイズmごとにそれぞれ1枚づつ描かれる。
S,Naganuma,Rep.Path Find.Phys.,Vol.1,pp.24-34(2002)