Ryuz's tech blog

FPGAなどの技術ブログ

出力から入力する回路

20年前のアイデアの振り返り

例によってネタ記事です。 ちょうど20年ほど前に中二病的に思いついたネタ構造でこのへんから辿れます。とあるきかっけで思い出す機会があったので、改めて面白半分に恥をさらしてみようと思います。

遊星歯車で構成するNANDゲート

この形のアイデア出力から入力が作れないか? という、まあそういう話を夢想しているときに出てきたもので、遊星歯車的な機構を使って、入力側と出力側で力比べできるようになっています。

例えば黄色いレバーを解放した状態で、赤と青を入力として緑を出力とみなすとNANDゲート的にふるまいます。

NAND ゲートがあればどんなロジックでも組めることは有名ですが、この機構では、出力を強い力で 1 にすれば、2つの入力は常にどちらか一方は 0 にならないといけなくなりますし、出力を 0 にすれば入力はどちらも強制的に 1 になります。

なので、このような機構を組み合わせて演算回路を作り、出力側を力持ちの巨人に操作させ、入力側をか弱い小人さんに操作してもらえば、弱い小人さんは、強い巨人の 求める出力になる入力範囲でしか操作できなくなる のではないかという事を考えたわけです。

部分的にこれは正しいのですが、当時まだ二十代でバリバリの中二病だった私は、このNANDゲートで乗算器を組めば一瞬で素因数分解できるんじゃね と、「そんなわけねーだろ!」という妄想に突っ走ったわけです(笑)。

当時知ったエニグマの暗号解読で有名なチューリングボンベが恒等式だという知って影響を受けていたのは言うまでもない話です。

電気回路で再現する

で、当然ながら機械式にそんな複雑なものは組めませんので、電気的な方法を考え始めたわけですが、当然デジタル回路ではこんなことは不可能ですので、自己再帰の筆頭格であるOPアンプの登場です。

  • 力の強い弱いは出力インピーダンスで表現する
  • 常に入出力を対称に、NANDなどの演算を恒等式として満たさないといけないようにする

などの条件で回路を組むこと自体はおそらく可能で、当時 P-Spice 無償版で置ける部品数上限と戦いながら NOT 演算で遊んだのが下記です。

当たり前と言えば当たり前ですが、電気の世界でも力比べは成り立つようですし、演算自体もできそうではあります。

20年前の画像がネット上で掘り起こすと出てくるのが怖いところです(笑)

降下電圧がゼロの理想ダイオードがあれば楽そうですが、まあ頑張れば理想OPアンプだけで出来そうです(笑)。

解なしで爆発するコンピュータ

チューリングボンベも矛盾する入力だとショートするとかしないとか読んだような記憶もありますが忘れ去っています。

例えばこの機構で乗算回路を作った上で出力側に素数を入力しようとしても当然ながら矛盾が生じます。整数と整数を掛け算して素数が生まれることは無いからです。

従って出力に力づくで素数を入れるとかすると

  • 機械式ならレバーが折れて歯車が割れる
  • 電気式ならショートして爆発する

という映画みたいな事が起こる計算機が作れるのではないかと妄想を楽しんでいたわけです。

まあ、矛盾すれば当然レバーは折れるんですが、多分、多項式時間で解けない問題を一瞬で解こうとした場合も折れるんじゃないかなぁ、と。

おわりに

まあ、妄想は妄想として、昨今、誤差逆伝搬法みたいに欲しい出力になるように出力側からあれこれアプローチする手法が生まれて、量子コンピュータのようにいろんな状態を重ね合わせた中から目的の出力を持つものだけを探し出す仕組みであったり、出力から入力を考えるという試みは成功を収めているものも沢山あるのかなと思います。こういった出力側から力を加えて逆算しようというのもやりようによっては面白いかもしれません。

なお、ここで書いた仕組みがなぜ成り立たないのか、かなり昔に中二なりにいろいろ考えて無理だという結論に達した記憶はあるのですが、どうやら当時の私はデスマすぎて「それを書き記すには余暇が足りない」状態だったらしく、今になっては何も思い出せない私なのでした。