量産試験を止めたあとの秘密基地は、急に広く感じられた。
さっきまで作業台へ増え続けていた細い棒状結晶は、合格品と規格外品に分けて小さなケースへ収められている。肉眼では、どちらもほとんど同じに見えた。
ヴァルトは合格品のケースを持ち上げ、光へ透かすように眺めた。
「2,000個/分まで出せるのでしたら、3月分には対応できるのですよね」
「私が作るなら可能だ」
真壁はPCに残した計算結果を閉じなかった。
800万個。4,000分。66時間40分。
数字だけを見れば、もう答えは出ている。
ヴァルトはケースを戻し、今度は真壁の顔を見た。
「他の収納使いでも、同じように作れるようにしたいのですか」
「そうだ」
澪は隣で、その返事に少しだけ肩の力を抜いた。
真壁が1人で66時間40分やれば終わる、と言い出さなかったことには安心する。問題は、安心した直後にまた別の話が始まったことだった。
「時間を進める試験より先に、そっちなんですね」
「ああ。工程を速くしても、私しか扱えないままでは分散できない」
真壁は合格品を1本、規格外品を1本、作業台へ並べた。
「同じ原料を入れて、同じ形のプラントを作るところまでは渡せる。しかし、この2本をどちらへ送るかは、まだ私の判断だ」
理央が顔を近づけた。
「私にはほぼ同じに見えます」
「肉眼で分ける物ではない」
「じゃあ、設備だけ真似しても駄目なんですね」
「ああ。判断基準まで揃える必要がある」
真壁は規格外品を指で押し、少しだけ横へずらした。
完成側へ送るのか。再処理へ戻すのか。いったん保留するのか。そこで止めるのか。
プラントの形を真似するだけでは、その分岐まで同じにはならない。
ヴァルトはしばらく2本を見比べていた。
「速度の次は、判断を渡す必要があるということですね」
「そういうことだ」
真壁はPCを閉じず、そのまま新しいファイルを開いた。
澪はその手元を見て、また嫌な予感がした。
前の問題が終わったから新しい問題を探した、という顔ではない。
真壁の中では、800万個を作るところから、誰が作っても同じ物になるところまでが最初から一続きなのだろう。
理央が小声で言った。
「800万個、作れるようになったんですよね」
「なったな」
「普通、そこでちょっと喜びません?」
「納期には間に合う」
「そうじゃなくて」
真壁はもう新しいファイルへ条件を書き始めていた。
理央はその背中を見て、諦めたように椅子へ座り直す。
「作る方は足りたのに、今度は考える方が足りないんですね」
真壁の手が一瞬だけ止まった。
「そういうことだ」
理央は軽く言ったつもりだったらしいが、真壁にはそのまま技術上の問題として通じてしまった。
「分類について、もう少し分かったことがある」
真壁が言うと、ヴァルトは椅子を引き寄せた。
作業台には、寸法や状態を少しずつ変えた棒状結晶が十数本だけ残されている。
「中の動きを見るなら鑑定を向けてくれ」
「分かりました」
ヴァルトが鑑定を発動する。
真壁も自分の収納へ意識を向け、試料を取り込んだ。
外からは何も見えない。
けれど鑑定を通すと、真壁の収納内で試料が条件ごとに分けられていくのが分かる。
「まず長さだけだ」
一部が別へ寄る。
「次は長さと直径」
残る数が変わった。
「両方を満たす物だけ、ということですか」
「ああ」
真壁は条件を戻し、今度は片方だけで成立するように変えた。
分類結果がまた変わる。
ヴァルトの目が細くなった。
「ANDとORですね」
「そう見える」
「否定もできますか」
「試した」
真壁が条件を切り替える。
今度は欠けがある物だけが外れ、残りが別側へ寄った。
「『欠けがない』という条件ですか」
「ああ。それから数値範囲も使える」
直径の下限と上限を決める。
範囲内だけを残す。
そこへ内部亀裂の有無を重ね、さらに別の条件へ送る。
ヴァルトは途中で鑑定を解かず、その一連だけを追った。
「一度分けて終わりではないのですね」
「その結果を次の条件へ渡せる」
真壁は条件の順序を入れ替えた。
先に既知の異常を外す。
その後で寸法を見る。
最後に再処理可能かどうかを判定する。
同じ試料でも、どの条件を先に置くかで途中の振り分けが変わった。
「優先順位までありますね」
「ある。少なくとも、今のところはそれで破綻していない」
ヴァルトはそこで鑑定を解いた。
机の上に戻された試料は、さっきと同じ小さな棒にしか見えない。
「分類という別の何かが、考えているわけではなさそうですね」
「私もそう見ている」
真壁は一本をつまんだ。
「先に鑑定で情報を取る。条件を当てる。結果に応じて収納が動かす」
「入力、条件判定、出力という形ですか」
「そうだ」
ヴァルトは少し笑った。
「収納の話をしていたはずなのですが、かなりプログラムに聞こえてきましたね」
「私もそう思う」
真壁の返事が早かった。
それが、次の話へ進む合図だった。
真壁はPCの画面をヴァルト側へ向けた。
長いコードはまだない。
短い条件式と、返す結果の名前だけが並んでいた。
「鑑定はプログラミングできる。そこまでは分かった」
真壁はそこで一度キーから手を離した。
「なら、私の判断も外へ出せるはずだ」
ヴァルトは画面を見たまま黙った。
画面には、規格内なら完成側へ送り、規格外でも再処理できるなら戻す、という分岐が続いていた。既知の異常は保留し、どこにも入らない状態だけは止める。
文章にしてしまえば数行で済む。けれど、その結論へ届く前には、寸法や内部状態をどの順で見るかという細かな条件がいくつも重なっている。
「真壁さんが、今まで頭の中で決めていた順番を、そのまま条件式にするのですね」
「そうだ」
「それなら、判断する人が変わっても基準は変わりません」
「変えないために書く」
真壁は続きを打ち始めた。
鑑定から返ってくる数値や真偽、状態を、判断に使える形で受け取る。その上で条件を当て、どれを優先し、どこへ送るかを決めていく。
真壁の指は速かったが、途中で何度か止まった。
書き間違えたからではない。
自分が普段どの順番で見ているのかを、ひとつずつ外へ出している。
「ここ、先に内部異常を見ているんですね」
ヴァルトが指した。
「寸法より先だな。再処理する価値がない物を、後ろまで回す必要がない」
「なるほど」
真壁が次の分岐を書く。
今度はヴァルトが少し考えた。
「これは、真壁さんの判断そのものですね」
「人格はいらない」
「もちろんです」
「必要なのは、同じ入力なら同じ結果を返すことだけだ」
理央が横から画面を覗き込んだ。
「真壁さんの頭の中をコピーするんじゃないんですか?」
「しない」
「ちょっと安心しました」
「何を想像したんだ」
「魔石の中に小さい真壁さんがいるやつです」
澪が吹き出しかけて咳払いでごまかした。
ヴァルトは笑いを抑えながら、もう一度画面へ視線を戻す。
「判断するのは真壁さんで、あとから同じ判断を実行する物を作る、ということですね」
「そうだ」
真壁は最後の分岐を入力し、保存した。
画面に残ったのは、真壁の説明ではない。
真壁が実際に使っている判断の順序だった。
「これをPCで動かすだけなら簡単だ」
真壁はそう言って、椅子の横にある電源ケーブルへ目を落とした。
ヴァルトも同じ方を見る。
「それでしたら、PCを使うのが一番簡単なのではありませんか」
「私の収納なら問題ない」
真壁はノートPCの蓋を少し閉じた。
「電源が要る」
ヴァルトは一瞬だけ黙った。
「……ああ。他の収納使いには、ゲンダイの電源がありませんね」
「ノートPCならバッテリーで動く。だが量産設備として配るなら、充電、交換、電池の管理まで一緒についてくる」
「収納ごとに電源設備まで持たせることになりますね」
「できなくはないが、やりたくない」
真壁らしい答えだった。
技術的に可能かどうかと、運用したいかどうかは別らしい。
澪は机の端に転がっていた小さな魔石を見た。
PCの電源ケーブルの横では、あまりにも簡単な物に見える。
真壁も同じ物を見ていた。
「ヴァルト君」
「はい」
「私の考えたロジックを、魔石へ組み込むことはできるだろうか」
ヴァルトの視線が魔石へ落ちる。
「魔石の中で、その条件分岐を動かすということですか」
「ああ。必要なのは高性能なPCではない」
真壁は画面を指した。
「入力、比較、条件判定、結果。それで足りる」
ヴァルトはすぐには答えなかった。
魔石を手に取り、指先で回す。
「この程度の処理なら、魔術へ置き換える余地はあると思います」
「判断の順序まで再現できるか」
「そこが問題ですね。私が一から組み直すと、真壁さんの判断とずれる可能性があります」
真壁は開いたままのPCへ目を戻した。
「なら、判断そのものを渡そう」
ヴァルトも画面を見る。
「その形があるなら、話は早そうですね」
「なら試そう」
真壁は即座にPCを閉じた。
理央が目を丸くする。
「もうPC案、終わりですか?」
「量産現場用からは外す」
「電源に負けたんですね」
「電源まで配る運用は避けたい」
澪は思った。
たぶん、普通の会社ならそこで充電器を買う。
押入商会では、魔石に処理系を作るらしい。
その日の夕方、真壁とヴァルトはヴァルトのゲンダイ側の家へ移った。
秘密基地ではなくこちらへ来たのは、生成AIを使う前に、まず真壁の判断ロジックを正確に共有するためだった。
部屋には、秘密基地の作業音がない。PCのファンとキーを打つ音だけが続き、机の上では持ってきた魔石が場違いなくらい静かだった。
ヴァルトのPCへ真壁がファイルを開く。
秘密基地で書いた条件を、もう一度言葉で説明し直すつもりはなかった。ヴァルトが前世でC++を扱っていたことを、真壁は覚えている。
「ヴァルト君、C++は扱えるか」
「ええ。前世で使ったことはあります。ただ、細かいところまではもう怪しいですよ」
「十分だ。判断ロジックは私が書く」
ヴァルトは椅子を寄せた。
画面には、真壁が秘密基地で書き始めた条件分岐が続いている。
今どきのライブラリや細かな仕様を知らなくても、変数に値を入れ、比較し、条件によって処理先を変えるという骨格は読める。
「これは、規格条件を通った場合ですね」
「ああ」
「こちらは再処理可能かどうか」
「そうだ」
「その前に異常状態を見ているのは、後ろの判定へ流さないためですか」
「無駄だ」
ヴァルトは頷いた。
自然言語で長く説明されるより、コードの方が早い。
真壁が何を先に見て、何を後回しにしているのか。どの条件で処理を止めるのか。
順番までそのまま残っている。
「これなら意味は分かります。条件が成立した時に、返す結果を変えているのですね」
「そうだ。これが私がやっている判断だ」
真壁は一部を書き直した。
境界値の扱いを明示する。
想定外の状態を、再処理側へ落とさないよう別にする。
ヴァルトはその修正を見て、少し笑った。
「前世からずいぶん経って、またC++を見ることになるとは思いませんでした」
「役に立つなら十分だ」
「国家魔術師を辞めたあとに使うとは、もっと思いませんでしたね」
真壁はそこで初めて手を止めた。
「用途としては珍しいな」
「かなり珍しいですね」
ヴァルトは丁寧に言ったが、声には少しだけ呆れが混じっていた。
それでも画面から目は離さない。
真壁が完成したロジックを保存する。
「これを魔石側で読める形へ変える」
「そこからですね」
ヴァルトは生成AIを開いた。
前世で触れた言語を、目の前の生成AIでほどき、その先では魔石へ持っていく。
ヴァルトは画面と机の上の魔石を見比べ、少しだけ首を振った。
「ずいぶん遠いところまでつながりましたね」
「使えるなら問題ない」
「真壁さんはそう言うと思いました」
ヴァルトは真壁のコードを、そのまま生成AIへ放り込まなかった。
まず目的を書いた。
このプログラムを動かすために、最低限どんな処理が必要か。
言語機能の一覧ではなく、実行時に必要な操作だけへ分解させる。
画面に返ってきた内容を見ながら、ヴァルトが一つずつ拾っていく。
「全部を再現する必要はなさそうですね」
「というと?」
「比較と値の保持、条件分岐、それから結果を返す部分。この辺りだけなら、かなり単純化できます」
真壁が画面を見る。
「繰り返しも要る」
「ええ。対象が複数ありますから、そこも残します」
ヴァルトは必要な処理だけを別にまとめた。値を受け取り、保持し、比較する。複数条件ならANDやORを使い、必要ならNOTで反転する。条件が成立した時だけ次へ進み、最後に結果を返す。
生成AIから返ってきたのは、その流れを情報処理の言葉へほどいて並べ直したものだった。
ヴァルトはそこから必要な処理だけを拾い、今度は自分の紙へ魔術側の構造を書き始めた。
「比較はできます。値の保持も問題ありません」
「分岐は?」
「術式の流れを切り替える形なら出来そうです。ただ、汎用的にするなら少し工夫が必要ですね」
真壁は処理の意味だけを補い、ヴァルトが引いていく術式の線には口を挟まなかった。
しばらくして、ヴァルトが紙の上を指でなぞった。
「毎回、真壁さんの条件式に合わせて魔術式を作り直すのは避けたいです」
「私もそう思う」
「でしたら、命令をいくつか決めておいて、それを順番に実行する側を先に作ります」
「小さな実行環境だな」
「ええ。そこへ、真壁さんのロジックを魔石用の命令へ変換して渡す形です」
真壁の目が少し細くなる。
「一度作れば、ロジックだけ入れ替えられる」
「そこまで出来れば理想ですね」
ヴァルトはもう一度生成AIへ向き直った。
今度は、限定した命令だけで真壁のロジックを表せるかを確認する。
返ってきた案を鵜呑みにはしない。
不要な処理は外す。
魔術で扱いにくい表現は、もっと単純な形へ落とす。
「これなら、かなり小さく出来そうです」
「PCそのものを作る必要はない」
「真壁さんの判断ロジックが、同じ結果を返せればいい」
「そうだ」
画面の中ではC++が単純な命令へほどかれ、紙の上ではその命令が魔術式へ置き換えられていく。
行き先だけを見ると、とても同じ作業には見えなかった。
秘密基地へ戻った頃には、外はすっかり暗くなっていた。
ヴァルトは作業台へ小さな魔石を置いた。
その横にはPC。
画面には真壁の元のロジックが残っている。
「まず比較と分岐まで動かします」
「値の保持は?」
「そちらも入っています。結果を収納内プラントへ渡せるかは、このあと確認します」
ヴァルトの指先が魔石へ触れる。
小さな術式を一つずつ組み込む。
比較した値を保持し、条件に応じて処理先を変え、最後に結果を返す。言葉だけなら単純だが、ヴァルトは一つ組むたびに必ず状態を確かめた。
真壁も急かさない。
自分のコード側に必要な変更があれば直すが、魔術式そのものへ口を出すことはなかった。
しばらくして、ヴァルトが顔を上げる。
「これで比較と分岐までは動きます」
「なら、結果を見よう」
「分かりました。簡単な入力で試してみましょう」
真壁は規格内、再処理可能な規格外、既知異常、想定外の4種類について鑑定結果を用意した。
順に魔石へ渡すと、決めた結果が返ってくる。
ヴァルトが一度だけ眉を上げた。
「返っていますね」
「なら次へ進める」
理央が、机の端から魔石を見た。
「それ、魔石の中にパソコンを作ってません?」
「少し違いますね」
ヴァルトが丁寧に答えた。
「正確には違う」
真壁も続ける。
理央は2人を見比べた。
「今の否定、ほぼ同時でしたけど」
澪は笑いをこらえながら、魔石へ視線を戻した。
「どこが違うんです?」
ヴァルトが説明する。
「PCの機能を全部入れているわけではありません。真壁さんのロジックを、こちらで決めた命令へ変換して、その命令だけを順番に動かす仕組みです」
「……小さいパソコンでは?」
「似ているところはありますね」
「ですよね」
「だが電源はいらない」
真壁が言った。
理央の顔が止まる。
「そこ、一番大事なんですか?」
「今回の目的では重要だ」
魔石は見た目だけなら、相変わらずただの小さな石だった。
けれど、その中で動くのはヴァルトの判断ではない。
真壁が書いた条件だった。
最後の試験は、真壁とヴァルトの収納を並べて使った。
同じ条件になるよう、試験用の棒状結晶を二組に分ける。
片方は真壁の収納へ、もう片方はヴァルトの収納へ入れる。
真壁側は先ほど固定した判断条件をそのまま使い、ヴァルト側では本人が判断に手を出さない。
鑑定結果を判断魔石へ渡し、その出力を収納内プラントの振り分けへつなぐ。ヴァルト自身は処理先を選ばない。
「始めます」
ヴァルトが自分の収納へ試料を取り込んだ。
真壁も同時に始める。
澪と理央は外から結果を待った。
他人の収納内で何が動いているかは、そのままでは見えない。
今回は途中経過を見る必要がない。
2人がそれぞれ処理を終え、完成、再処理、保留の三つへ分けた試料を作業台へ出す。
2人が出した結果を左右に並べる。
一見すると同じだった。
しかし鑑定して比べると、一本だけ違った。
「違いますね」
ヴァルトが言う。
自分の収納で処理した側から、その一本を取り出した。
「こちらは再処理側です。真壁さんの方は保留ですね」
真壁はすぐPCを開いた。
「境界条件だ」
該当部分を見る。
値そのものは同じ。
違うのは、等しい場合をどちらへ入れるかだった。
「ここを含める」
真壁がC++側を直す。
ヴァルトは更新したロジックを、さっき作った変換側へ通した。
魔術式を最初から作り直す必要はない。
魔石が実行する命令だけを入れ替える。
「もう一度やりましょう」
同じ試料で再試験する。
今度は一致した。
次は条件の優先順位で差が出た。
再処理可能ではあるが、先に止めるべき既知異常を持つものだった。
「私は、こちらを先に見たくなりますね」
ヴァルトが自分の収納から取り出した試料を見た。
「ですが、魔石は真壁さんが書いた順番で判定しています」
「それでいい。再現するのは私の判断だ」
「分かっています。ただ、自分の収納なのに、中で使われている基準は真壁さんのものというのは、少し妙な感じがしますね」
真壁はまたコードを直し、今度は既知異常の優先順位を上げた。
ヴァルトが再変換し、もう一度試す。
何度か繰り返すうちに、不一致は減っていった。
作業台には、合わなかった試料だけが少しずつ端へ寄せられていく。最初はそのたびに真壁がPCを開いていたが、後半になると修正する箇所も短くなった。
ヴァルトも結果を見るたびに魔石を作り直すことはない。実行する側はそのままに、変換した命令だけを入れ替える。
最後に、条件の端へわざと寄せた試料と、想定外の状態を混ぜる。
最後の結果も左右へ並べた。完成へ送った物、再処理へ戻した物、保留した物、止めた物まで、今度はすべて一致していた。
ヴァルトが自分の収納から最後の試料を取り出し、作業台へ置いた。
「同じですね」
「ああ」
真壁はPCを閉じた。
澪は2組の試料を見比べた。
真壁が触っていない方まで、真壁が分けたのと同じ結果になっている。
「これなら、真壁さんが横にいなくても判断できますね」
「必要な鑑定情報が取れることが条件だ」
真壁はそこだけ条件を残した。
誰にでも無条件で使えるとは言っていない。
そこは次に確認する話だ。
理央は判断魔石を持ち上げ、しげしげと見た。
「やっぱり中身、だいたいパソコンじゃないですか」
「仕組みとして似ているところはありますね」
ヴァルトが答える。
「だが電源はいらない」
真壁がまた言った。
「そこ、そんなに好きなんですか?」
「運用上重要だ」
理央は納得していない顔のまま魔石を戻した。
真壁は、ヴァルト側から出てきた合格品を一つ手に取った。
自分の収納で作った物ではない。
それでも、判断基準は同じだった。
「自分の判断まで切り離せたな」
澪がその言葉に顔を上げる。
真壁はもう、作業台の向こうを見ていた。
「なら、この量産工程を私の収納に置く必要もない」
「次は何です?」
理央が警戒するように聞く。
「別の収納を使う」
理央は一度、判断魔石を見た。
次に真壁を見る。
そして小さくため息をついた。
「今度は収納を貸してもらうんですね」
真壁は否定しなかった。