@yuichirominato 2019.02.19更新 162views

【論理回路】古典論理回路をイジングで再現してみる


はじめに

バイナリの掛け算の論理回路をイジングつかって実現したいと思います。今回は4*3=12をみてみます。

論理回路

使用するのは、いくつかの論理回路ですが、まずはAND回路を含む基本的なものをみてみます。バイナリ値の掛け算で3*4は11*100と表現されます。

  100
 * 11
-----
  100
 100
-----
 1100

この際に実現したいのは、
1、100*1で100を再現するAND回路。こちらは11なので、両方の位に必要
2、100と100を足し合わせるための回路。0のくらいはそのまま落とせばOK。
3、桁上がりを保存して足す回路。桁上がりを想定する必要があります。

図に落としてみる

多分こんな感じ。

最初にAND回路で掛け合わせます。次に下のくらいから順番に足していきながら桁上がりを上のくらいの足し算に足し合わせていき、一番上の回路が決まります。

もっとイジングぽくしてみる

上記を頑張って量子ビットで表記した結果。。。

こうなりました!39量子ビット使っています!

一番左は入力の3と4に対応。左から二列目はAND回路をイジングで3量子ビットに分解しました。そして桁上がりをしながら3列目は左上から順番に桁上がりを導入した加算器です。

AND回路が6つ。桁上がり対策の特殊回路が3つですね。次回実装してみたいと思います。。。zzz。

(追記)書いてて気付いちゃいました。。。もっと節約できますね。線で繋がってるだけのところは、同じ量子ビットとしてあつかって大丈夫そうです。次回やってみます。

Recommended


Wikiへ移動