現代魔術は異世界をクロールするか:数理科学による魔術の始め方

RichardRoe@書籍化&企画進行中

0.その名は現代魔術

プロローグ「俺は、チューリング完全で、計算完備であることを目指す。才能にこだわるほうがよほどちっぽけである」

◇◇

(前書き)

◇◇



※プロローグは読まなくても、第一話から物語を読むことが可能です。


 現代制御(古典制御ではない制御理論)の話など理屈っぽい議論が読みたい方はこちらプロローグをどうぞ。



◇◇

(前書き終わり)

◇◇





 その赤子は、生まれつき魔力が少なかった。

 マナの属性も欠落しており、生まれつき無意識で使いこなせるような得意魔術もなかった。



 平凡な幼児の、さらに半分ほどの魔力しか持ち合わせないだけの、特に何の才能もない子供。

 ――それが俺、ジーニアス・アスタであった。



「だけど、あらゆる魔術の全体集合 U から、そのうち才能の領域である部分集合 A の要素を取り去って得られる補集合A__に関しては、これが無限集合でないことは証明されていない・・・・・・・・



 才能の壁があると仮定して、その補集合A__は、例えばデデキント有限であるとは限らない。



 たとえばf(x)=2xという簡単な式と、N:自然数全体の集合をおく。このfは全単射なのでf(N)の個数とNの個数は等しい。しかしf(N)⊂Nでf(N)≠Nである(※f(N)は偶数のみしか存在しないのでNと一致しない)ため、Nはデデキント有限ではない。もちろんf(x)=2xでなくてもよく、fは任意である。f(N)の個数とNの個数が等しく、f(N)⊂Nかつf(N)≠Nとなるようなfが一つでも存在すれば、Nはデデキント無限となる。



 魔術の全体集合Uが有限である証明はされていない。きちんと理論化された魔術体系だけでなく、体系化されていないあらゆる独創的な魔術研究は、枚挙にいとまがなく数に限りがない。今この瞬間にも世界のどこかで新しい魔術が生まれているのだ――それが正則性公理を満たすかは置いておいて。



「才能がないのであれば、才能以外の和集合――とくに計算可能性理論をみたすあらゆる計算問題を解いて、それを身に着けることが、自分の魔術の可能性の証明になる」



 直感的な議論をしていいのであれば、この世の魔術の全体集合Uは無限にあるが、才能でしかたどり着けない領域のほうがよっぽど・・・・有限集合のように思われる。補集合A__が有限であるとは考えにくい・・・・・



 計算複雑性の問題である時間や記憶容量の消費量については考えない・・・・。魔力容量――『魂の器』は、魔物を狩ることで増やすことができる。

 俺は、チューリング完全で、計算完備であることを目指す。才能にこだわるほうがよほどちっぽけである。











 俺が魔術を数式化しようとしているのには理由がある。それは平たく言えば「誰でもすぐに使えるから」であった。



 たとえば、炎を射出する魔術があるとして、それをどう表現するかは魔術の文法によって異なる。

 あるものはサンスクリット語、あるものは古代ルーン文字、あるものは旧約ヘブライ語で記述する。もしくは魔法陣を、陰陽五芒星、ケルト十字、ダビデの六芒星など様々な呪術的記号を基にして記述するかもしれない。

 だが、いざそれを扱おうとすると全員が扱えるわけではない。

 陰陽術の文法で書かれているならば、陰陽術の知識がないと、その炎の魔術は使えない。

 同じく、ルーン魔術の文法で書かれているならばルーン魔術の知識が、カバラ数秘術の文法で書かれているならカバラ数秘術の知識が、発動の際に必要になるのである。

 冷静に考えると、奇妙な話である。

 いずれも同じ「炎」という現象を記述しているはずなのに、書き方が違うだけで発動が出来ないのだから。



 チューリング機械の話に置き換えれば、これは決定性有限使い手の状態機械脳みそが悪い。使い手本人が処理できない――計算可能でない形式言語は処理できない、ということだ。



 俺の目論みは、これを一般化することである。

 なぜなら数式は、誰が扱おうが常に不変の答えを導くものであり、同時に誰にとっても普遍的なものでもあるからである。



(そうだとも、馬鹿げている。実際の物理現象に注目すれば、発動させたい現象なんて、とてもシンプルじゃないか。それを妙ちくりんな方法に則ってじゃないと発動できないだとか、これをしないといけないだとか、遠回りしすぎなんだ)



 思わず手帳に書きなぐる文字が荒っぽくなる。

 だが俺は冷静になって、もう一度今度はだれにでも読みやすいように、数式をシンプルにまとめ、そして丁寧な解説を添えて書き直した。



(微分方程式は解けなくても、ラプラス変換さえできれば意味は分かる。いや、ラプラス変換の意味が分からなくても、最悪、伝達関数さえ分かってしまえば魔術の特性が解ける。ボード線図を見れば周波数特性が一発で分かるじゃないか)



 科学的に分析する価値は大きい。

 未知のものであっても、特徴をグループ分けをすることで、定性的、定量的な性質が似ていることに気付くからである。

 そうすれば、ぱっと見では分からない、思いもよらない部分が相似していることに気付いたり、あるいは意味の分からない部分の意味が薄ぼんやりと見えてくる。



 別に俺は鋭いわけではない。天才でもないし閃きが鋭いわけでもない。

 ただ、色んな数字や色んなグラフが、複数の魔術が似ていることを教えてくれるのだ。



(その似ている部分を抜き出せば、無駄のない治癒魔術だとか、無駄のない攻撃魔術を数式で記述できるはずだ)



 俺の作る魔術の数理モデルは、汎用性の極致にあった。











 現在俺が取り掛かっている数理モデルの作り方は、以下の通りである。



 消費した魔力量uと出力される魔法の出力yの間に、まずは簡略な関係式をおき、そこから実際の挙動にあわせてパラメータを調節していく。

 どれぐらいのマナを入力して、それを受けとった術式からどのような魔法が出力されるのか――この関係をプロットしていくのが、魔術系の数理モデル化に必要なすべてである。



 簡易な近似を用いれば、入力マナuは六次元ベクトルで表記することができる。火、水、土、風、の基本四大元素と光、闇の二属性を合わせた六属性。対応する出力魔法もいったん六次元ベクトルで記述する。その間を結ぶ関係式は、例えば6×6の行列式で表現できる。

 すなわち、y=Auという線形アファインな式である。



(でも、単純なモデルではない。入力マナと出力魔法は線形アファインではない。動特性ダイナミクスを持っている)



 この式を拡張するべく、俺は数式を書き換えた。

 普通ダイナミクスを持つシステムは、微分方程式で記述される。システムの状態変数x(という名の媒介変数)をおくことで、入力マナuと出力魔法yの間の関係式は以下のような微分方程式になる。



 x'=Ax+Bu

 y=Cx+Du



 二つの式のうち、前者は状態変数xが時間ごとにどのように変化するのかを記述しており、後者は出力魔法yが時間ごとにどのように射出されるかを記述している。



 あえて状態変数xを置いたのには意味がある。

 魔法陣、呪文、魔道具――どのような魔術を想定するのであれ、魔術はいったん魔力を蓄えてチャージから発動される。

 すなわち、魔術系システムには立ち上がり時間があるのだ。魔力を注いでから発動するまでの立ち上がり――それまでの間、魔術系システムの状態がどのように変化するのかを記述するのが状態変数xなのである。



(全く魔力をチャージされていない魔法陣と、魔力を十分チャージされた魔法陣が同じ状態であるはずがない。必ず過渡応答が存在して、定常状態に変遷するまでの変化がある)



 現在、世の魔術研究家たちは、注いだ魔力と発動される魔法の威力が僅かに比例しないことに四苦八苦している最中である。

 魔術式の動特性は、それだけ直感的には分かりにくい。

 そして、俺が父の書斎にある魔術書を複数読み漁ってみたところ――魔術が動特性を持つことにたどり着く研究家はある程度は存在したが、それに数学的な考察を行っている研究者はほぼおらず、ましてや微分方程式で記述する人間は皆無であった。

 今のところは、俺以外にはこの状態空間表記の概念を知っている研究者はほとんど見たことがない。



 問題は、この数理モデルを表現しているシステム行列ABCDをどのようにして算出するか、であった。



(系の特性は、微分方程式の特性方程式である程度導き出せる)



 ここで俺は、系の微分方程式を操作して、少し形を変えて記述し直した。

 それはラプラス変換である。



 x'=Ax+Bu

 y=Cx+Du



 ……という記法からxを消去し、uとyのみで表現するのだ。時間微分を含む方程式だが、幸い、ラプラス変換を施すと、



 x'=Ax+Bu → sX=AX+BU

 y=Cx+Du → Y=CX+DU



 と表現することができるので、Y=GU=C((sI-A)^-1 B+D)Uを得ることができる。

 このGはシステムの伝達関数といい、システムの特性や安定性の解析に用いられる。



 ちなみにラプラス変換後の像関数の変数sは複素数である。"伝達関数Gがこのsでどのように表現されるか"がシステムの特性を表すのだが――この特性を視覚化しておおざっぱに見積もる手法はいくつか存在している。



(システムの特性を視覚的に見たいなら、ボード線図を引けばいい)



 ボード線図というのは、各周波数ごとにどれだけ増幅利得ゲインが得られるかを記述したグラフである。

 意味を説明すると、マナを注ぐ強弱の周期を変えたとき、威力がどれだけ変化するか、魔術系とどう共鳴するか、を表した図である。

 時不変で一定のマナを注入するのであれば周波数特性はあまり考慮しなくていいのだが、通常は、魔法陣に最も共鳴を起こすようにマナを注入する場合が多い。



 このボード線図のいいところは、もし伝達関数が有理関数だった場合、何本かの直線で近似できるところである。つまり系の特性が分かりやすいのだ。



 どれぐらいの周波数でどれぐらい強く共鳴するか。

 これさえ分かれば、システムを最も効率的に運用することができるマナの制御が可能となる。



(マナを注ぐ強弱の周期を変えて、その共鳴度合いをボード線図に記録していけば、魔術の大雑把な特性が分かる。そうやってデータを蓄積していけば、全体的な傾向や属性ごとの特徴を得られるはずだ)



 ここからだ、と俺は気合いを入れ直した。

 治癒魔法や攻撃魔法、その他色んな魔法が世の中には存在する。周波数特性を調べれば大まかな性質が分かるとはいえ、検証する内容は非常に多そうであった。











 ◇◇











 数理モデル化の何が素晴らしいかというと、魔術の研究を、ABCD行列(システム行列)を求めるだけの行為に簡略化できるというところである。



 魔術の構成要素は二つ、術式と投影である。

 それ以外の構成要素もあるが、魔術のほとんどはこの二つで説明できた。



 術式とは、魔術師が投影させたい想像を書き表したもので、いわば設計図のようなものである。

 どういったことを実行したいのか、どういった現象を発動させたいのかを、呪文で詠唱したり、魔法陣に描き表したりする行為が設計だ。

 例えば火を起こすなら、炎元素を司るsalamanderの象徴モチーフを魔法陣に刻んだり、四大元素で炎を意味する図形△を散りばめたり、ルーン文字で炎を意味するkenを装飾したりと、火にちなんだ意味を塗り重ねる。

 意味の連続。文脈の結合。呪力はミームに宿る。

 そうして作り上げられた設計図のことを、人は術式と呼ぶ。



 そして、それを現実世界に具現化するには魔力を流し込んで投影する必要がある。

 どんなに意味を散りばめても、そこに実在を流し込まなくては現実となり得ない。

 形相エイドスの中に質料ヒュレーを流し込む行為。あるいは質料に形相を与える行為。

 魔力というエネルギーの塊そのものをどのような形で運用するか、というのが魔術の理念であり、いうなれば設計図に魔力を流し込んで実質を与えるという行為が投影にあたる。



 この術式設計図投影出力が魔術の二つの根幹なのであった。

 そして、術式設計図にはそれぞれ異なる形式言語が多数あった。



 例えばルーン文字で陰陽術を発動することは非常に難しいことである――。

 例えば星占術アストロロジー死霊術ネクロマンシーを実現したり、錬金術アルケミーで召喚魔術を発動することは難しいとされる。

 投影出力したい事象を適切に記述できる術式設計図が極めて限定的であるからこそ――魔女術ウィッチクラフトにしか到達できない極地、錬丹術にしか到達できない極地、というように、各魔術にしか到達できない領域があると考えられている。



 魔術の統一は難しい。



 "世界言語ホモフォーノイ"は存在しないのだ。



 魔術は文法である。

 世界を操る言葉――世界言語原初の言語を自在に使ってしまえば、どんな魔術でも発動できる。

 かつては世界言語原初の言語が存在したとされるが、神の国にたどり着こうと高い塔を建てようとした人間たちのせいで、神は怒って世界言語を散逸させた、というのは、有名な伝承である。



 しかし、計算可能な形式言語での記述であれば――それはチューリング完全な機械で計算可能な議論の範疇になるはずである。

 当然だが、計算可能である魔術は、計算式で体系を統一できる。



術式設計図投影出力が魔術の二つの根幹であるなら――術式が数理モデルとなってくれれば再現性の検証が可能だ)



 術式を数理モデル化するには、まず魔術がどんなシステム行列で構成されているかを求めないといけない。

 確かにボード線図を用いれば、システムの特性や安定性の解析などはある程度できるが、俺はそれをさらに数学的に、線形回帰によって求めた。



「状態方程式にラプラス変換を行って、

 x'=Ax+Bu → sX=AX+BU

 y=Cx+Du → Y=CX+DU

 と変形したあと、Y=GU=C((sI-A)^-1 B+D)Uを得ることができて、このY(s)とU(s)に線形回帰を行うと、システム行列ABCが求まる……」



 線形回帰をする際、C((sI-A)^-1 B+D)=Gとおけば、Y(s) = GU(s)という簡単な数式になり、Σ(Y - GU)^2 =(推定誤差)が少なくなるようなGを求めればよくなる。

 推定誤差が最小になるのは、Gについて偏微分した値が0となる場所(極値)であるから、そのようなGが求めるGである。これを6×6行列のA、などに分解すれば、A、B、C、Dが求まるが、Gのままでも計算は解ける。

 あとはコレスキー分解なり、三角行列LU分解なりを行えば(三角行列は右上か左下の要素が全て0であるため)計算量を少なくすることができる。

 あるいは数値的安定性を保つため、グラム・シュミットの正規直交化法を用いて正規直交系座標に変換する。LU分解に対して計算量は多いものの数値的安定であるこの分解法はQR分解と言われており、こちらもよく使われている。



 ――以上を踏まえると、注いだ魔力uと出力魔法yのデータを集めれば、正規方程式を解くだけで魔術の数理モデルの数値パラメタが手に入るのであった。



(これで、任意の魔術をアルゴリズム的な手続きで数学的に記述することが可能になった。あとはこの理論を応用して、魔術を回路化してしまえば……)











 ◇◇











 伝達関数Y(s) = GU(s)の線形回帰――偏微分して0になる値を求める、という数学的な導出が可能になったあとは、求まったGをもとに、回路行列を解けばいい。

 それはつまり、魔術回路の設計に他ならなかった。



「Gは伝達関数だから、ブロック線図に変換するだけで魔術回路が得られるはず。つまり、ラプラス変換の際のsの次元だけ遅延子を置けばいい」



 遅延子というのは、要するに、誘導子インダクタ受容子キャパシタなどの受動素子である。適切な表現ではないが、魔力を変換する性質、魔力をため込む性質、と言い換えていい。

 しかも、誘導子インダクタ受容子キャパシタは魔法陣の研究の世界でも基礎中の基礎であって、比較的簡単に配置することが可能であった。

 それらを組み合わせることで、魔術回路だけで、任意の魔術が記述されることが、ラプラス変換された状態方程式から示されている――言い換えると、どんな魔術でも系統等価回路を算出することで簡単な回路に置き換えられる、ということを意味していた。



(これはつまり、魔法陣魔術回路さえきちんと設計すれば、どんな魔術でも大体は魔道具化することが可能ってことを意味している)



 半信半疑。信じられないのも当然であろう。

 この世界において魔道具というのはそもそも、簡単な魔術を代替するためだけの道具でしかないのだ。



 例えばちょっと火を起こしたいときに、いちいち火の魔術の術式を用意しなくても、マナを流すだけで火を起こせる、といった程度の便利な小道具――というのが魔道具に対する一般の認識である。

 複雑な魔術に関しては、魔道具を作る職人の手に余るため、もしも大掛かりな魔術が使いたかった場合は自分で術式を起こす必要がある、と考えられてきた。



 それが、どんなに複雑な魔術でも、偏微分の計算さえ解いてしまえば、簡単に回路化できてしまう――と説明されたのだ。

 端的に言って、魔術会の革命である。

 どんなに難しかろうが、所詮、一回だけ計算を解いて回路化してしまえばすべて再現できてしまう――というのは、つまり、今までの試行錯誤を繰り返して行う魔術回路設計が、誰でも機械的にできてしまうということだ。

 つまり魔法陣の設計は、貴族御用達の魔道具職人たちによる先天的なセンスではなく、ただの計算問題になる。

 そのことを、この一連の魔術回路設計の手続きは雄弁に教えてくれていた。



 だが、問題は。



「……偏微分の式をどうやって簡単に解くか、だ」



 たかが解くだけ、されど解くだけ。

 複雑な魔術になればなるほど、システムの伝達関数Gは高次元のダイナミクスを持つ複雑なものになる。偏微分の計算だけでも一苦労となるのだった。



(……計算を自動化する必要がある。簡単な演算回路を魔道具で置き換えることができれば、おそらく大幅な演算リソースの節約になるはず)











 ◇◇











 演算回路を作るには、まずはマナ導体、マナ絶縁体を理解しなくてはならない。



 前提として、マナを通しやすいものをマナ導体、マナを通しにくいものをマナ絶縁体と言う。

 そして、不純物を混ぜることで、マナの流れやすさをある程度コントロールできる物質のことをマナ半導体と言う。



 その半導体にもn型半導体、p型半導体という二種類が存在するが、この二種類の半導体をくっつけると、間にマナ導通の空乏層ができるため、マナが導通しにくくなる。



(まずは半導体を組み合わせた演算増幅器オペアンプを作成すればいい。あとは加算回路、減算回路、積分回路、微分回路、コンパレータを作ることも可能だ……)



 この二種類の半導体について、実はマナの流れやすい方向、流れにくい方向というのが存在する。p型領域に正の魔力、n型領域に負の魔力を与えると、キャリアに空乏層が狭くなる方向にエネルギーが加わる。そのためキャリアが双方に容易に移動できるため再び結合が生じ、結合によって失われたキャリアは印加した魔力によってマナを流すことで補給され、連続したマナの流れとなる。

 一方、p型領域に負、n型領域に正の魔力を印加すると、キャリアが極に引かれる方向にエネルギーが加わることで空乏層が広くなり、ほとんどマナを流せなくなる。



 この一方向だけにマナを流す基本的な性質が、整流作用である。



 だが面白いことに、この半導体をnpnというようにサンドイッチにすると、マナの増幅作用が生じるのだった。

 それも半導体による定マナ流量特性により、うまくやれば一定値のマナを供給し続ける特性があるのだ。



 もちろん増幅分は外部からエネルギーを供給する必要があるので、全体で見ればエネルギーが勝手に増えたわけではなく、夢の永久機関みたいにはならない。

 しかし、エネルギーさえ与えたらマナの量を増幅できるというのは、非常に便利である。



 この増幅特性は、演算回路の基礎的な部分、演算増幅器オペアンプの原理に当たるのであった。



演算増幅器オペアンプ。operational amplifier。差動増幅回路の一種だけど、特筆すべき機能として、利得が10^4倍から10^5倍と非常に高いため、ノイズに弱いアナログ演算回路にとって非常に重要な役割を持つ)



 増幅が大きいということは、回路の導線自体が持つ微妙な抵抗や、近似回路しか作れないときの誤差などを一気に小さくできる、という利点を持つ。

 そうすれば、加算回路、減算回路、微分回路、積分回路がどうしても無視できない構造的・物性的な微妙な誤差を極めて小さくできるのである。



 かつて失われた文明では、真空管で計算を行う演算装置が存在していたという伝承が残っているが、それは真空管によって増幅、整流を行っていたからである。増幅特性と整流特性は、機械演算の基礎である。



(まずは加減算回路。これは先程の半導体を使って反転増幅回路を作れば構築できる。積分回路、微分回路なんかは、キャパシタ、インダクタなどの受動素子を組み込めばそれだけで実現可能だ。掛け算、割り算の回路よりも積分回路、微分回路のほうが楽ちんなぐらいだ……)



 加算減算の原理は、単純な和である。

 電気回路で説明すれば、抵抗をつないで電流値の和を取ればいい。

 これを魔術回路に置き換えるだけになる。



 積分回路と微分回路はマナを蓄積する受容子キャパシタを使えばいい。

 受容子キャパシタの魔力蓄積量は積分そのものを表し、回路に取り付ける位置を工夫すれば微分値を算出することさえできる。



 これらは誤差に弱いが、演算増幅器オペアンプの増幅特性を用いれば、誤差を極めて小さくすることが可能――つまり演算回路による加減乗除と微積分を高い精度で実現可能ということであった。



 半導体の特性を利用すれば、フリップフロップ回路(=記憶回路)と組み合わせて演算記憶回路さえも作ることができる。



 むろん、このままでは演算の自動化には程遠い。

 だが、演算の原理というのは拍子抜けするほど簡単なものである。



 あとは演算回路をたくさん作るだけである。数さえたくさん揃えたらいいのだから、気楽なものだ。



(あとは計算速度の改善だ。数式化して、演算回路を作ったとしても、計算が遅ければ結果が得られない)











 ◇◇











 魔術の数理モデル化について、俺は計算速度の壁に行き詰まっていた。



 魔術の数理モデルの導出は、注いだ魔力と出力魔法のデータをたくさんサンプリングするだけで理論上は可能である。



 ボード線図にデータを点でプロッティングしていき、それを滑らかに補完することで大まかな魔術の形を得て、それを伝達関数に戻す。

 もしくは得られたデータを元にして線形回帰を行い、数値的に答えを求める。



 今まで議論してきたことは、その一連のプロセスである。

 だがしかし、これをいざ大規模な魔術にあてはめようとすると、速度の壁に直面する。



「……演算回路を使って計算を半自動化してるとはいえ、普通に計算に時間がかかってしまうな」



 初級魔術、中級魔術までは今までどおり解けたが、上級魔術となると、そろそろ流石に計算が厳しくなっていた。動的システムが複雑化されており極めて解きづらいのだ。



 多くの魔術師が簡単に使える初級魔術、それなりの数の魔術師が駆使する中級魔術までは、世間的にも研究も進んでおり、魔術の術式が綺麗に整理されていた。

 ところが上級魔術となると、急に複雑怪奇になっているのだ。



 これは、上級魔術を使いこなせる人が極端に少ないせいで、術式の簡略化などが手つかずになっていることが多いからである。



(まあ、主要なダイナミクスだけ取り出せばいいやって考えたら、従来の特異値分解からの線形回帰でいいんだけど……)



 そうもいかないのが魔術である。細かい技巧によって繊細かつ大胆な大魔術が得られていることも多い。

 細かいダイナミクスを無視するのは、最後の最後である。



 そこで俺は、動的モード分解(DMD)によってシステムを簡略化することにした。



 やることは一つ。複雑な波を、固有値分解を用いて単純な波に分解することである。

 単純な波に分解できたら、その波の周波数と増幅率・減衰率だけに気を払っておけばいい。そのモードが時間的に成長するのか、減衰するのか、時間的な安定性を見積もることができるのは大きな進歩である。



 ここで、行列Aの固有ベクトルというのは、行列Aと掛け算しても、ベクトルの向きや軸が変化しないものである。

 これは逆に言えば、行列を固有ベクトルで分解すれば、対角化によって線形方程式を解くのが飛躍的に楽になるというものである。



 動的モード分解の真髄はそこである。対角化された行列の冪乗は、対角成分の冪乗だけ計算すればいいので、計算コストが一気に小さくなるのだ。



 そのうえで、線形回帰の際、シンプレックス法で線形計画問題を解いたり、ラグランジュ緩和で術式の条件を書き換えることをすれば、比較的計算は楽に置き換えることができる。



 他にも、動的モード分解が困難な場合に備えた別の行列分解も、俺は研究していた。

 外積ガウス法による三角行列計算法(※計算量はランクnの二乗程度から三乗程度になる)。

 疎行列の性質を近似することで計算を高速化する不完全コレスキー分解法(※疎行列は対角成分付近にのみ値があり、非対角成分のほとんどが0の行列である)。

 システム行列Aのランクを許容値εで打ち切って次元を落とす基底計算法。

 片側ヤコビ法による高い相対精度の特異値分解法(※ヤコビ法は密行列に直接対角化を行う手法であり、小さい特異値に対しても相対精度の高い近似である)。



 本来は動的モードで分解したほうが、それぞれのモードに物理的・数式的な意味を見出しやすいのだが、全てがそうとは限らない。行列分解は計算の強力なツールであった。



 ただし、問題は行列分解そのものにかかる時間である。



 演算回路を用いた計算は、クロック間隔×計算ステップ数でどれだけ時間がかかるか、が露骨に判明する。

 三角行列の計算だけでも、およそN^3 /3回計算するので、システム行列のランクが非常に大きなものだと時間がべらぼうにかかるのである。



 かといって、行列分解は、行列の繰り返し計算の簡略化に欠かせない操作である。

 これ以上計算コストを落とすのはかなり難解であるように思われた。



 膨大な数の魔術を解析し、自分の手で魔術のデータベースを構築していくにあたって、どうしても避けられない壁。

 もっと根本的に、計算を高速化させるいい方法はないか。



(……そうだ、メタマテリアル化されたマナの特異な振る舞いを利用して、量子演算ができないか実験してみよう……。量子演算なら、計算量がべらぼうに増えても実用に耐えられるかもしれない……!)



 マナマテリアル。マナを凝縮させた、特異な物性をもつマナ物体。量子演算の可能性は、もしかしたらこのマナマテリアルによって打破できるかもしれない。

 この時俺は、ついに何か天啓のようなものを得られたような気分になった。

 マナの研究。

 マナそのものの振る舞いが、演算の効率を高めてくれるのであれば、それは――俺にとってまさに魔法・・である。











 ◇◇











 解き明かしたい魔術を発動して実験し、その動特性をボード線図で大雑把に掴む。

 そして得られた実験データに線形回帰を施して、システムの状態方程式を数値的に得る。

 その式をラプラス変換したものに基づいて、ルーン文字などで受動素子を記述し、魔術回路を組み上げる。



 マナマテリアルの研究の傍ら、俺は、それらを繰り返して近似式を得ることによって、多数の魔術の魔道具化に成功していた。



(治癒魔術の魔道具化って、そんなに難しいことじゃないのに、皆なかなか成功できてないみたいだな。父さんと母さんにこっそり話してみたら、目を丸くして驚いてたし)



 特に反響が大きかったのは治癒魔術の魔道具化である。

 俺にとってみれば何てことはないただの魔道具なのだが、これが高い値段で飛ぶように売れた。



 何でも、そもそも治癒魔術の術式自体がかなり難解であり、誰もそれを魔道具化しようとは思わなかった――とのことである。

 ただでさえこんなに難しい術式なのだから、魔道具化するとなれば相当困難に違いない、と思い込まれていたというわけである。



 ところがしかし、そんな治癒魔術も、突き詰めたところ概ね計算問題にすぎない。

 確かに、ボード線図からの近似では思うような効果が得られず、ちょっとは面倒な計算問題になったが、今まで積み上げてきた膨大な計算が、簡単な治癒魔術を実現可能とさせていた。



 こっそり作ってみた。

 作ってみたら非常によく売れた。

 飛ぶように売れるとは正にこのことである。



 そのことを、妹と幼馴染に報告したら、これまたとても褒められてしまった。



 妹のティターニャは手紙で『天才です! お兄様はやっぱり、才能なしなんかじゃなかったのです! 誰でも治癒魔術が使える魔道具なんて、世界がひっくり返るほどの発明です!』と絶賛していた。



 幼馴染のナーシュカなんか、この前会ったとき「ほら見ろよジーニアス! 才能がないなんて嘘じゃんか! オレは信じてた、おめでとう!」と泣きながら抱きついてくる始末であった。



 これには俺のほうが面食らってしまった。計算して等価回路を組んだだけなのに、大袈裟に褒められると恥ずかしい。

 いうなれば計算式通りに配置しただけ。

 線形最適制御を有本・ポッターの固有値分解法で解いただけだ。



 飛ぶように売れたのも、イナンナ商会という大きな商会の力があってのことである。人の力を借りての業績なので、今ひとつピンとこない。



「お前は魔道具の天才だよ、ジーニアス! オレが保証する! お前には天性の魔道具作りの才能がある!」



「え、魔道具の天才……? 魔術の天才じゃなくて……?」



「……え、何でそんな微妙な顔してるんだよ」



 幼馴染にはそう言われたものの、正直なところ、俺は誰でもできることをやっただけに過ぎない。



 道具に刻み込んた魔術回路――魔法陣だって、特別な技工を凝らしたものではなく、答えを知っていれば誰でも書けそうな単純な図形と簡単な単語の繰り返しである。無断複製防止のため、肝心な術式は魔石の中に書き込んで、外から誰にも見えないようにしているが、それだけのこと。魔石に書き込む術式さえ知っていれば、俺でなくても作ることができる。



 今まで偶然、誰も魔道具化するための術式記法を思いつかなかっただけのこと。それを俺は、数値的計算によって求め、何とか魔術回路化しただけなのだ。

 いくつもの幸運が積み重なった結果である。











(違うんだよ、ナーシュカ、ターニャ)



 こんなことは口に出すことではないのだけれど。



(俺がやりたいのは、こういったことじゃなくて、魔術師として・・・・・・、お前たちのような天才と、肩を並べることなんだ)



 そうでなければ、生まれつき魔力が足りなく、マナが欠乏していて、魔術の才能がないと言われたあの悔しさそのもの・・・・を、克服したことにならないのだ。



 今、世界で有名な特級指定魔術の使い手は七人いる。

 魔女術。

 陰陽術。

 竜魔術。

 王国魔術。

 教会魔術。

 精霊魔術。

 刻印魔術。



 そして、世界最高の魔術師の座は八人とされている。

 現在はいずれも空位だが、七つはおそらく将来その七名の特級指定魔術の使い手が認定されると噂されている。



 残るは一つ。

 その最後の一つになることが、俺、ジーニアス・アスタの夢であり、魔術の可能性の証明なのである。





  • Xで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る