IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通株式会社の特許一覧

特許7553873量子回路設計装置、量子回路設計プログラムおよび量子回路設計方法
<>
  • 特許-量子回路設計装置、量子回路設計プログラムおよび量子回路設計方法 図1
  • 特許-量子回路設計装置、量子回路設計プログラムおよび量子回路設計方法 図2
  • 特許-量子回路設計装置、量子回路設計プログラムおよび量子回路設計方法 図3
  • 特許-量子回路設計装置、量子回路設計プログラムおよび量子回路設計方法 図4
  • 特許-量子回路設計装置、量子回路設計プログラムおよび量子回路設計方法 図5
  • 特許-量子回路設計装置、量子回路設計プログラムおよび量子回路設計方法 図6
  • 特許-量子回路設計装置、量子回路設計プログラムおよび量子回路設計方法 図7
  • 特許-量子回路設計装置、量子回路設計プログラムおよび量子回路設計方法 図8
  • 特許-量子回路設計装置、量子回路設計プログラムおよび量子回路設計方法 図9
  • 特許-量子回路設計装置、量子回路設計プログラムおよび量子回路設計方法 図10
  • 特許-量子回路設計装置、量子回路設計プログラムおよび量子回路設計方法 図11
  • 特許-量子回路設計装置、量子回路設計プログラムおよび量子回路設計方法 図12
  • 特許-量子回路設計装置、量子回路設計プログラムおよび量子回路設計方法 図13
  • 特許-量子回路設計装置、量子回路設計プログラムおよび量子回路設計方法 図14
  • 特許-量子回路設計装置、量子回路設計プログラムおよび量子回路設計方法 図15
  • 特許-量子回路設計装置、量子回路設計プログラムおよび量子回路設計方法 図16
  • 特許-量子回路設計装置、量子回路設計プログラムおよび量子回路設計方法 図17
  • 特許-量子回路設計装置、量子回路設計プログラムおよび量子回路設計方法 図18
  • 特許-量子回路設計装置、量子回路設計プログラムおよび量子回路設計方法 図19
  • 特許-量子回路設計装置、量子回路設計プログラムおよび量子回路設計方法 図20
  • 特許-量子回路設計装置、量子回路設計プログラムおよび量子回路設計方法 図21
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-10
(45)【発行日】2024-09-19
(54)【発明の名称】量子回路設計装置、量子回路設計プログラムおよび量子回路設計方法
(51)【国際特許分類】
   G06N 10/00 20220101AFI20240911BHJP
   G06N 10/60 20220101ALI20240911BHJP
【FI】
G06N10/00
G06N10/60
【請求項の数】 6
(21)【出願番号】P 2023542091
(86)(22)【出願日】2021-08-18
(86)【国際出願番号】 JP2021030184
(87)【国際公開番号】W WO2023021613
(87)【国際公開日】2023-02-23
【審査請求日】2023-11-22
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002918
【氏名又は名称】弁理士法人扶桑国際特許事務所
(72)【発明者】
【氏名】石井 雅俊
【審査官】真木 健彦
(56)【参考文献】
【文献】国際公開第2021/101829(WO,A1)
【文献】特表2021-503116(JP,A)
【文献】国際公開第2020/172504(WO,A1)
【文献】Toshinari Itoko, Rudy Raymond, Takashi Imamichi and Atsushi Matsuo,Optimization of Quantum Circuit Mapping using Gate Transformation and Commutation,arXiv.org [online],2019年10月18日,インターネット:<URL:https://arxiv.org/pdf/1907.02686.pdf>
【文献】Dmitri Maslov, Gerhard W. Dueck, D. Michael Miller, and Camille Negrevergne,Quantum Circuit Simplification and Level Compaction,arXiv.org [online],2008年02月27日,インターネット:<URL:https://arxiv.org/pdf/quant-ph/0604001.pdf>
【文献】Kazuhiro Seki, Tomonori Shirakawa and Seiji Yunoki,Symmetry-adapted variational quantum eigensolver,arXiv.org [online],2020年05月29日,インターネット:<URL:https://arxiv.org/pdf/1912.13146.pdf>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 10/00
(57)【特許請求の範囲】
【請求項1】
複数の要素を含む量子回路であって、複数の量子ビットそれぞれへの操作順序を量子回路内における前記複数の要素それぞれの配置によって示す第1量子回路について、前記第1量子回路に含まれる、前記複数の量子ビットのうちの複数の第1量子ビットへの所定の操作を示す第1ゲートと、前記所定の操作を示す第2ゲートとを検出し、前記第1量子回路において前記第1ゲートを第1等価回路に変換し、前記第1等価回路の要素を前記複数の第1量子ビットの配置方向に対称移動させた配置の第2等価回路に前記第2ゲートを変換した第2量子回路を生成する処理部、
を有する量子回路設計装置。
【請求項2】
前記所定の操作は、3つの前記第1量子ビットのうちの2つのコントロールビットに応じて前記第1量子ビットのうちの1つのターゲットビットの位相を反転させる操作である、
請求項1記載の量子回路設計装置。
【請求項3】
前記処理部は、前記第1量子ビットのうちの2つのコントロールビットに応じて前記第1量子ビットのうちの1つのターゲットビットのビットを反転させる第3ゲートを、前記所定の操作を含む第3等価回路に変換する、
請求項2記載の量子回路変換装置。
【請求項4】
前記処理部は、前記第1量子ビットを含む第2量子ビットのうちの3以上のコントロールビットに応じて前記第2量子ビットのうちの1つのターゲットビットのビットを反転させる第4ゲートを、前記第3ゲートを含む第4等価回路に変換する、
請求項3記載の量子回路設計装置。
【請求項5】
コンピュータに、
複数の要素を含む量子回路であって、複数の量子ビットそれぞれへの操作順序を量子回路内における前記複数の要素それぞれの配置によって示す第1量子回路について、前記第1量子回路に含まれる、前記複数の量子ビットのうちの複数の第1量子ビットへの所定の操作を示す第1ゲートと、前記所定の操作を示す第2ゲートとを検出し、
前記第1量子回路において前記第1ゲートを第1等価回路に変換し、前記第1等価回路の要素を前記複数の第1量子ビットの配置方向に対称移動させた配置の第2等価回路に前記第2ゲートを変換した第2量子回路を生成する、
処理を実行させる量子回路設計プログラム。
【請求項6】
コンピュータが、
複数の要素を含む量子回路であって、複数の量子ビットそれぞれへの操作順序を量子回路内における前記複数の要素それぞれの配置によって示す第1量子回路について、前記第1量子回路に含まれる、前記複数の量子ビットのうちの複数の第1量子ビットへの所定の操作を示す第1ゲートと、前記所定の操作を示す第2ゲートとを検出し、
前記第1量子回路において前記第1ゲートを第1等価回路に変換し、前記第1等価回路の要素を前記複数の第1量子ビットの配置方向に対称移動させた配置の第2等価回路に前記第2ゲートを変換した第2量子回路を生成する、
量子回路設計方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、量子回路設計装置、量子回路設計プログラムおよび量子回路設計方法に関する。
【背景技術】
【0002】
量子の性質を利用して古典コンピュータより高速に計算を実行する量子コンピュータがある。量子ゲート方式の量子コンピュータは、量子回路に示される順序で量子ビットにゲート操作をすることで量子計算をする。
【0003】
量子ゲート方式の量子コンピュータが実行する量子アルゴリズムとしては、例えばデータを検索するグローバーのアルゴリズムがある。例えばN個のデータから1つのデータを検索する場合、古典コンピュータによる演算回数の平均がN/2回であるのに対し、グローバーのアルゴリズムによればN1/2回の演算で検索可能である。
【0004】
量子コンピュータに関する技術としては、例えば、量子アルゴリズムを古典計算機に直接実行させることができる量子アルゴリズム実行装置が提案されている。また、例えば、グローバーのアルゴリズムに従って、ターゲット量子状態に対応する検索結果を決定するため反転、計算ステップを繰り返すグローバーのアルゴリズムでの量子回路設計が提案されている。また、例えば、nキュービットのベクトル基底を持つ2変数関数を用いてグローバーの量子アルゴリズムを実行する量子ゲートが提案されている。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2005-250563号公報
【文献】米国特許第7028275号明細書
【文献】米国特許出願公開第2004/0162640号明細書
【発明の概要】
【発明が解決しようとする課題】
【0006】
量子ビットは、例えば超電導やイオントラップ等を利用して実現される。また量子ビットへのゲート操作では、量子コンピュータは、例えば量子ビットにマイクロ波を照射する。このような量子ビットへのゲート操作に含まれるノイズによって、量子計算のエラーが発生することがある。
【0007】
1つの側面では、本件は、量子計算のエラーを低減させることを目的とする。
【課題を解決するための手段】
【0008】
1つの案では、処理部を有する量子回路設計装置が提供される。
処理部は、複数の要素を含む量子回路であって、複数の量子ビットそれぞれへの操作順序を量子回路内における複数の要素それぞれの配置によって示す第1量子回路について、第1量子回路に含まれる、複数の量子ビットのうちの複数の第1量子ビットへの所定の操作を示す第1ゲートと、所定の操作を示す第2ゲートとを検出する。そして処理部は、第1量子回路において第1ゲートを第1等価回路に変換し、第1等価回路の要素を複数の第1量子ビットの配置方向に対称移動させた配置の第2等価回路に第2ゲートを変換した第2量子回路を生成する。
【発明の効果】
【0009】
1態様によれば、量子計算のエラーを低減させることができる。
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
【図面の簡単な説明】
【0010】
図1】第1の実施の形態に係る量子回路設計方法の一例を示す図である。
図2】第2の実施の形態のシステム構成の一例を示す図である。
図3】制御コンピュータのハードウェアの一構成例を示す図である。
図4】グローバーのアルゴリズムによる確率振幅の変化の一例を示す図である。
図5】3量子ビットでグローバーのアルゴリズムを実行する量子回路の一例を示す図である。
図6】CCZゲートの等価回路の一例を示す図(その1)である。
図7】制御コンピュータの機能例を示すブロック図である。
図8】変換情報の一例を示す図である。
図9】CCXゲートの変換処理の一例を示す図である。
図10】CnNOTゲートの変換処理の一例を示す図である。
図11】CnNOTゲートの等価回路の一例を示す図である。
図12】量子回路変換処理の手順の一例を示すフローチャートである。
図13】変換後の量子回路の一例を示す図である。
図14】量子計算結果とノイズとの関係の一例を示す図(その1)である。
図15】CCZゲートの等価回路の一例を示す図(その2)である。
図16】量子計算結果とノイズとの関係の一例を示す図(その2)である。
図17】CCZゲートの等価回路の一例を示す図(その3)である。
図18】量子計算結果とノイズとの関係の一例を示す図(その3)である。
図19】量子計算結果とノイズとの関係の一例を示す図(その4)である。
図20】6量子ビットでグローバーのアルゴリズムを実行する量子回路の一例を示す図である。
図21】量子計算結果とノイズとの関係の一例を示す図(その5)である。
【発明を実施するための形態】
【0011】
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
まず、第1の実施の形態について説明する。第1の実施の形態は、量子計算のエラーを低減させることが可能な量子回路設計方法である。
【0012】
図1は、第1の実施の形態に係る量子回路設計方法の一例を示す図である。図1には、量子計算のエラーを低減させることが可能な量子回路設計方法を実施する量子回路設計装置10が示されている。量子回路設計装置10は、例えば量子回路設計プログラムを実行することにより、量子計算のエラーを低減させることが可能な量子回路設計方法を実施することができる。
【0013】
量子回路設計装置10は、処理部11を有する。処理部11は、例えば量子回路設計装置10が有するプロセッサ、または演算回路である。処理部11は、第1量子回路1に含まれる要素を変換した第2量子回路を生成する。第1量子回路1は、複数の要素を含む量子回路であって、量子ビットq0,q1,q2それぞれへの操作順序を量子回路内における複数の要素それぞれの配置によって示す。例えば第1量子回路1は、量子ビットq0,q1,q2それぞれに対応する線を有する。第1量子回路1では、上から順に量子ビットq0に対応する線、量子ビットq1に対応する線、量子ビットq2に対応する線が配置される。第1量子回路1が有する各線上には、対応する量子ビットの量子状態に対する操作を示す要素が配置される。第1量子回路1では、先に行われる操作を示す要素ほど左に配置される。
【0014】
第1量子回路1に配置される要素としては、例えばHゲート、Xゲート、CCZゲート、測定等がある。ここでCCZゲートは、2つのコントロールビットと1つのターゲットビットとを設定して配置される。CCZゲートは、2つのコントロールビットが「1」である場合に、1つのターゲットビットに対してZゲートを作用させる(位相を反転させる)ことを示す。なおCCZゲートは、3つの量子ビットから2つのコントロールビットと1つのターゲットビットとをいずれの組み合わせで設定した場合も等価である。
【0015】
処理部11は、第1量子回路1に含まれる、量子ビットq0,q1,q2のうちの複数の第1量子ビットへの所定の操作を示す第1ゲートと、所定の操作を示す第2ゲートとを検出する。ここで所定の操作は、3つの量子ビットq0,q1,q2のうちの2つのコントロールビットに応じて量子ビットq0,q1,q2のうちの1つのターゲットビットの位相を反転させる操作である。つまり、処理部11は、量子ビットq0,q1,q2に対するCCZゲートを2つ検出する。
【0016】
そして、処理部11は、第1量子回路1において第1ゲートを第1等価回路2に変換し、第1等価回路2の要素を複数の第1量子ビットの配置方向に対称移動させた配置の第2等価回路3に第2ゲートを変換した第2量子回路を生成する。例えば処理部11は、第1量子回路1に含まれる量子ビットq0,q1,q2に対するCCZゲートを、CXゲートとTゲートとTゲートとの組み合わせであり量子ビットq0,q1,q2に対するCCZゲートに等価な第1等価回路2に変換する。また、処理部11は、第1量子回路1に含まれ、第1等価回路2に変換したCCZゲートと異なる、量子ビットq0,q1,q2に対するCCZゲートを、量子ビットq1に対応する線を軸として第1等価回路2の要素を対称移動させた配置の第2等価回路3に変換する。
【0017】
このように、処理部11は、量子ビットq0,q1,q2それぞれへの操作順序を要素の配置によって示す第1量子回路1に含まれる、量子ビットq0,q1,q2のうちの複数の第1量子ビットへの所定の操作を示す第1ゲートと第2ゲートとを検出する。そして処理部11は、第1量子回路1において第1ゲートを第1等価回路2に変換し、第1等価回路2の要素を複数の第1量子ビットの配置方向に対称移動させた配置の第2等価回路3に第2ゲートを変換した第2量子回路を生成する。
【0018】
量子計算では、量子ビットへのゲート操作に含まれるノイズによって、各量子ビットにエラーが発生することがあるため、各量子ビットに対するゲート操作数に偏りがあると、ゲート操作数の多い量子ビットにエラーが発生しやすくなる。第2量子回路は、第2等価回路3が第1等価回路2の要素を複数の第1量子ビットの配置方向に対称移動させた配置をしているため、量子ビットごとのゲート操作数に偏りが少ない。そのため、量子コンピュータが第2量子回路に従って量子ビットを操作することで、ノイズの影響を受ける量子ビットの偏りを低減することができる。よって量子回路設計装置10は、量子計算のエラーを低減させることができる。
【0019】
また、所定の操作は、3つの第1量子ビットのうちの2つのコントロールビットに応じて第1量子ビットのうちの1つのターゲットビットの位相を反転させる操作である。これにより、量子回路設計装置10は、CCZゲートを含む量子計算のエラーを低減させることができる。
【0020】
なお、処理部11は、第1量子ビットのうちの2つのコントロールビットに応じて第1量子ビットのうちの1つのターゲットビットのビットを反転させる第3ゲートを、所定の操作を含む第3等価回路に変換してもよい。これにより、量子回路設計装置10は、CCXゲートを含む量子計算のエラーを低減させることができる。
【0021】
また、処理部11は、第1量子ビットを含む第2量子ビットのうちの3以上のコントロールビットに応じて第2量子ビットのうちの1つのターゲットビットのビットを反転させる第4ゲートを、第3ゲートを含む第4等価回路に変換してもよい。これにより、量子回路設計装置10は、CnNOTゲートを含む量子計算のエラーを低減させることができる。
【0022】
〔第2の実施の形態〕
次に第2の実施の形態について説明する。第2の実施の形態は、量子回路に従って量子コンピュータが量子計算をするシステムである。
【0023】
図2は、第2の実施の形態のシステム構成の一例を示す図である。量子コンピュータ300は、量子ゲート方式の量子コンピュータである。量子コンピュータ300は、制御コンピュータ100と量子ビット制御装置200とを有する。制御コンピュータ100には、ネットワーク20を介して端末装置31,32,・・・が接続されている。端末装置31,32,・・・は、量子コンピュータ300による量子計算を依頼するユーザが使用するコンピュータである。制御コンピュータ100は、端末装置31,32,・・・から量子回路を受け付ける。量子回路は、ゲート等の要素の配置によって量子ビットへの操作の順序を示すものである。量子ビットは、「0」の状態と「1」の状態との重ね合わせの状態を表現することが可能なビットである。
【0024】
制御コンピュータ100は、端末装置31,32,・・・から受け付けた量子回路に従って、量子ビット制御装置200に量子ビットを制御するための指示をする。また、制御コンピュータ100は、量子ビット制御装置200から各量子ビットの測定結果を取得する。
【0025】
量子ビット制御装置200は、複数の量子ビットと複数の量子ビットそれぞれを操作するための装置を有する。量子ビット制御装置200が有する複数の量子ビットは、例えば超電導量子ビットであってもよいし、イオントラップによる量子ビットであってもよい。また、量子ビット制御装置200は、量子ビットを冷却するための冷凍機を有していてもよい。
【0026】
量子ビット制御装置200が有する、複数の量子ビットそれぞれを操作するための装置は、例えば制御コンピュータ100からの指示に応じて、量子ビットにマイクロ波を照射する。また、複数の量子ビットそれぞれを操作するための装置は、複数の量子ビットそれぞれの状態を測定し、制御コンピュータ100に送信する。
【0027】
図3は、制御コンピュータのハードウェアの一構成例を示す図である。制御コンピュータ100は、CPU(Central Processing Unit)101によって装置全体が制御されている。CPU101は、プログラムの命令を実行するプロセッサである。なお、CPU101は複数のプロセッサコアを含んでもよい。また、CPU101は、複数のプロセッサであってもよく、MPU(Micro Processing Unit)、またはDSP(Digital Signal Processor)等であってもよい。また、CPU101がプログラムを実行することで実現する機能の少なくとも一部を、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)等の電子回路で実現してもよい。CPU101には、バス110を介してRAM(Random Access Memory)102と複数の周辺機器が接続されている。
【0028】
RAM102は、制御コンピュータ100の主記憶装置である。RAM102には、CPU101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に利用する各種データが格納される。なお、制御コンピュータ100は、RAM以外の種類のメモリを備えてもよく、複数個のメモリを備えてもよい。
【0029】
バス110に接続されている周辺機器としては、HDD(Hard Disk Drive)103、GPU(Graphics Processing Unit)104、入力インタフェース105、光学ドライブ装置106、機器接続インタフェース107,108およびネットワークインタフェース109がある。
【0030】
HDD103は、制御コンピュータ100の補助記憶装置である。HDD103は、内蔵した磁気ディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。HDD103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、制御コンピュータ100は、フラッシュメモリやSSD(Solid State Drive)等の他の種類の補助記憶装置を備えてもよく、複数の補助記憶装置を備えてもよい。
【0031】
GPU104には、モニタ21が接続されている。GPU104は、CPU101からの命令に従って、画像をモニタ21の画面に表示させる。モニタ21としては、有機EL(Electro Luminescence)を用いた表示装置や液晶表示装置等がある。
【0032】
入力インタフェース105には、キーボード22とマウス23とが接続されている。入力インタフェース105は、キーボード22やマウス23から送られてくる信号をCPU101に送信する。なお、マウス23は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボール等がある。
【0033】
光学ドライブ装置106は、レーザ光等を利用して、光ディスク24に記録されたデータの読み取りを行う。光ディスク24は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク24には、DVD(Digital Versatile Disc)、DVD-RAM、CD-ROM(Compact Disc Read Only Memory)、CD-R(Recordable)/RW(ReWritable)等がある。
【0034】
機器接続インタフェース107は、制御コンピュータ100に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース107には、メモリ装置25やメモリリーダライタ26を接続することができる。メモリ装置25は、機器接続インタフェース107との通信機能を搭載した記録媒体である。メモリリーダライタ26は、メモリカード27へのデータの書き込み、またはメモリカード27からのデータの読み出しを行う装置である。メモリカード27は、カード型の記録媒体である。
【0035】
機器接続インタフェース108は、制御コンピュータ100に量子ビット制御装置200を接続するための通信インタフェースである。制御コンピュータ100は、機器接続インタフェース108を介して、量子ビットを制御するための指示を量子ビット制御装置200に送信する。
【0036】
ネットワークインタフェース109は、ネットワーク20に接続されている。ネットワークインタフェース109は、ネットワーク20を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
【0037】
制御コンピュータ100は、以上のようなハードウェア構成によって、第2の実施の形態の処理機能を実現することができる。なお、第1の実施の形態に示した量子回路設計装置10も、図3に示した制御コンピュータ100と同様のハードウェアにより実現することができる。また、CPU101は、第1の実施の形態に示した処理部11の一例である。
【0038】
制御コンピュータ100は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。制御コンピュータ100に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、制御コンピュータ100に実行させるプログラムをHDD103に格納しておくことができる。CPU101は、HDD103内のプログラムの少なくとも一部をRAM102にロードし、プログラムを実行する。また、制御コンピュータ100に実行させるプログラムを、光ディスク24、メモリ装置25、メモリカード27等の可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えば、CPU101からの制御により、HDD103にインストールされた後、実行可能となる。また、CPU101が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【0039】
第2の実施の形態では、量子コンピュータ300が量子計算を実行する。量子コンピュータ300が実行可能な量子アルゴリズムとして、例えばグローバーのアルゴリズムがある。
【0040】
図4は、グローバーのアルゴリズムによる確率振幅の変化の一例を示す図である。グローバーのアルゴリズムでは、以下のような確率振幅の反転増幅処理をN1/2回繰り返すことで、N個のデータから正解データの検索が可能である。
【0041】
グラフ41は、基底状態x1,x2,x3,x4の重ね合わせ状態における、基底状態x1~x4それぞれの確率振幅を示す。なお基底状態x1~x4は、それぞれ検索対象のデータに対応する。グラフ41では、基底状態x1~x4それぞれの確率振幅は、N-1/2である。
【0042】
グローバーのアルゴリズムの反転処理では、オラクルUfが適用される。オラクルUfは、以下の(1)式で示される。
【0043】
【数1】
【0044】
式(1)のxは、各基底状態を示す。また式(1)のvは、正解データに対応する基底状態である。また式(1)のf(x)は、f(v)=1となり、v以外のxでf(x)=0となる関数である。また式(1)のIは、N行N列の単位行列である。
【0045】
グラフ42は、グラフ41で示される基底状態x1~x4の重ね合わせ状態に対してオラクルUfが適用された場合の基底状態x1~x4それぞれの確率振幅を示す。なお正解データに対応する基底状態は、基底状態x3であるものとする。グラフ42では、基底状態x1~x4のうちの基底状態x3のみ、グラフ41に対して確率振幅の符号が反転している。
【0046】
グローバーのアルゴリズムの増幅処理では、以下の(2)式で示される-Wが適用される。
【0047】
【数2】
【0048】
式(2)のwは、全状態の重ね合わせの状態を示す。グラフ43は、グラフ42で示される状態に対して-Wが適用された場合の基底状態x1~x4それぞれの確率振幅を示す。グラフ43では、グラフ42に対して基底状態x1~x4の確率振幅が平均値周りで反転している。このような反転増幅処理によって、正解データに対応する基底状態x3の確率振幅が基底状態x1,x2,x4に対して大きくなる。
【0049】
次に上記のようなグローバーのアルゴリズムを3量子ビットで実行する具体例を説明する。3量子ビットで示される状態の重ね合わせの状態|ψ>は、以下の式(3)で示される。
【0050】
【数3】
【0051】
式(3)は、3量子ビットそれぞれについて、状態「0」である確率振幅と状態「1」である確率振幅とが2-1/2であることを示す。また式(3)は、3量子ビットで示される状態「000」~「111」それぞれの確率振幅が8-1/2であることを示す。ここで状態「010」が正解データに対応するものとすると、オラクルUfが適用された状態Uf|ψ>は、以下の式(4)で示される。
【0052】
【数4】
【0053】
式(4)は、状態「000」~「111」のうち、状態「010」の確率振幅が-8-1/2であり、状態「010」以外の状態の確率振幅が8-1/2であることを示す。つまり式(4)は、式(3)で示される状態から状態「010」の確率振幅の符号が反転した状態を示す。また、状態Uf|ψ>における確率振幅の平均値は、以下の式(5)で示される。
【0054】
【数5】
【0055】
状態Uf|ψ>に-Wが適用された状態-WUf|ψ>は、以下の式(6)で示される。
【0056】
【数6】
【0057】
式(6)は、式(4)で示される状態から状態「000」~「111」の確率振幅が、式(5)で示される確率振幅の平均値周りで反転した状態を示す。状態-WUf|ψ>において状態「010」となる確率は、確率振幅の2乗なので以下の式(7)で示される。
【0058】
【数7】
【0059】
以上のように、状態「000」~「111」の重ね合わせの状態|ψ>に-WUfが適用されることで、状態「010」となる確率は、ランダムに8つの状態のうちの1つの状態となる確率である0.125から0.781に増加する。なお、状態|ψ>に-WUfが2回適用されると、状態「010」となる確率は、0.945となる。
【0060】
次に、グローバーのアルゴリズムを量子コンピュータ300に実行させるための量子回路について説明する。
図5は、3量子ビットでグローバーのアルゴリズムを実行する量子回路の一例を示す図である。量子回路50は、繰り返し回数1回のグローバーのアルゴリズムを3量子ビットで実行する場合の、量子ビットq0,q1,q2それぞれに対する操作の順序を示す。量子回路50は、量子ビットq0,q1,q2それぞれに対応する線を有する。量子回路50では、上から順に量子ビットq0に対応する線、量子ビットq1に対応する線、量子ビットq2に対応する線が配置される。量子回路50では、先に行われる操作を示す要素ほど左に配置される。
【0061】
量子回路50の、量子ビットq0,q1,q2それぞれに対応する線上に配置されたHと記載されたブロックは、Hゲートを示す。Hゲートは、重ね合わせの状態を作る操作を示す。また、量子回路50の、量子ビットq0,q1,q2それぞれに対応する線上に配置されたXと記載されたブロックは、Xゲートを示す。Xゲートは、配置された線に対応する量子ビットのビットを反転させる操作を示す。
【0062】
また、量子回路50の、量子ビットq0,q1,q2それぞれに対応する線上に配置されたZと記載されたブロックと、Zと記載されたブロックと線で結ばれ、量子ビットq0,q1,q2それぞれに対応する線上に配置された2つの点とは、CCZゲートを示す。なお、Zと記載されたブロックは、CCZゲートのターゲットビットとなる量子ビットに対応する線上に配置され、2つの点は、CCZゲートの2つのコントロールビットとなる量子ビットそれぞれに対応する線上に配置される。CCZゲートは、2つのコントロールビットが「1」である場合に、1つのターゲットビットに対してZゲートを作用させる(位相を反転させる)ことを示す。
【0063】
なおCCZゲートは、3つの量子ビットから2つのコントロールビットと1つのターゲットビットとをいずれの組み合わせで設定した場合も等価である。つまり量子ビットq1,q2をコントロールビットとし、量子ビットq0をターゲットビットとするCCZゲートは、量子ビットq0,q2をコントロールビットとし、量子ビットq1をターゲットビットとするCCZゲートに置き換えられてもよい。また量子ビットq1,q2をコントロールビットとし、量子ビットq0をターゲットビットとするCCZゲートは、量子ビットq0,q1をコントロールビットとし、量子ビットq2をターゲットビットとするCCZゲートに置き換えられてもよい。以下では、量子ビットq0,q1,q2から2つのコントロールビットと1つのターゲットビットとが設定されたCCZゲートを、量子ビットq0,q1,q2に対するCCZゲートということがある。
【0064】
量子回路50の、量子ビットq0,q1,q2それぞれに対応する線上に配置された、半円の弧と直線とを組み合わせた図形が記載されたブロックは、測定を示す。測定によって量子ビットq0,q1,q2は、それぞれ「0」または「1」の状態に確定する。
【0065】
量子回路50の左端には、量子ビットq0,q1,q2それぞれに対するHゲートが配置されている。量子回路50で示される最初の操作として量子ビットq0,q1,q2それぞれにHゲートが作用されることで、量子ビットq0,q1,q2は、式(3)で示される重ね合わせ状態となる(初期化される)。また、量子回路50では、初期化を示すHゲートの右側に、オラクルを適用する処理を示すXゲートとCCZゲートとの組み合わせが配置される。また、量子回路50では、オラクルを示すゲートの組み合わせの右側に、増幅処理を示すHゲートと、Xゲートと、CCZゲートとの組み合わせが配置される。また、量子回路50では、増幅処理を示すゲートの組み合わせの右側に、量子ビットq0,q1,q2それぞれに対する観測が配置される。量子回路50に示される観測によって、グローバーのアルゴリズムの反転増幅処理を1回行った場合の結果が出力される。
【0066】
なお、量子コンピュータ300は、2つ以下の量子ビットに対するゲート操作をする装置を有し、3つ以上の量子ビットに対するゲート操作が可能な装置を有しないことがある。そこでCCZゲートのような3つの量子ビットに対するゲートは、2つの量子ビットまたは1つの量子ビットに対するゲートを組み合わせた等価回路に変換される。
【0067】
図6は、CCZゲートの等価回路の一例を示す図(その1)である。等価回路51は、量子ビットq0,q1,q2に対するCCZゲートに等価で、2つの量子ビットまたは1つの量子ビットに対するゲートを組み合わせた量子回路である。等価回路51の、量子ビットq0,q1,q2それぞれに対応する線上に配置されたTと記載されたブロックは、Tゲートを示す。Tゲートは、位相を所定値だけ回転させる操作を示す。また、等価回路51の、量子ビットq0,q1,q2それぞれに対応する線上に配置されたTと記載されたブロックは、Tゲートを示す。Tゲートは、位相をTゲートと反対方向に所定値だけ回転させる操作を示す。
【0068】
また、等価回路51の、量子ビットq0,q1,q2それぞれに対応する線上に配置された円と+とを組み合わせた記号と、当該記号と線で結ばれ、量子ビットq0,q1,q2それぞれに対応する線上に配置された点とは、CNOTゲートを示す。なお、円と+とを組み合わせた記号は、CNOTゲートのターゲットビットとなる量子ビットに対応する線上に配置され、点は、CNOTゲートのコントロールビットとなる量子ビットに対応する線上に配置される。CNOTゲートは、コントロールビットが「1」である場合に、ターゲットビットのビットを反転させることを示す。
【0069】
このように、CCZゲートは、2つの量子ビットまたは1つの量子ビットに対するゲートを組み合わせた等価回路51に変換可能である。よって、量子コンピュータ300が量子回路50で示される処理を実行する場合、制御コンピュータ100は、量子回路50に含まれる2つのCCZゲートそれぞれを等価回路51に変換した量子回路を生成することが考えられる。そして制御コンピュータ100は、生成した量子回路に従って、量子ビット制御装置200に量子ビットを制御するための指示をすることが考えられる。
【0070】
ここで量子コンピュータ300による量子計算では、ゲート操作に含まれるノイズによって、各量子ビットにエラーが発生することがある。よって量子回路50に含まれる2つのCCZゲートを等価回路51に変換した場合、等価回路51においてゲート操作数が多い量子ビットにエラーが発生しやすくなる。そこで第2の実施の形態では、制御コンピュータ100は、量子回路にCCZゲートが複数含まれる場合、一部のCCZゲートを等価回路51に変換し、残りのCCZゲートを等価回路51の各要素を上下に対称移動させた配置の等価回路に変換する。
【0071】
次に、制御コンピュータ100の機能について詳細に説明する。
図7は、制御コンピュータの機能例を示すブロック図である。制御コンピュータ100は、記憶部120、量子計算制御部130、ゲート検出部140およびゲート変換部150を有する。記憶部120は、変換情報121を記憶する。変換情報121には、変換するゲートと等価回路とが対応付けて登録されている。
【0072】
量子計算制御部130は、量子計算を制御する。まず、量子計算制御部130は、量子回路を取得する。例えば量子計算制御部130は、端末装置31,32,・・・から、量子コンピュータ300による量子計算の依頼と量子回路とを受け付ける。そして量子計算制御部130は、ゲート変換部150によって変換された量子回路に従って量子ビット制御装置200を制御する。
【0073】
ゲート検出部140は、量子計算制御部130が取得した量子回路からCCZゲートを検出する。またゲート検出部140は、量子回路からCCZゲートが検出された場合、検出されたCCZゲートと同じ量子ビットの組み合わせに対するCCZゲートを検出する。
【0074】
ゲート変換部150は、量子回路に含まれる3つ以上の量子ビットに対するゲートを等価回路に変換する。例えばゲート変換部150は、量子回路に含まれるCnNOTゲートをCCXゲートとCNOTゲートとの組み合わせに変換する。なおCCXゲートは、2つのコントロールビットが「1」である場合に、1つのターゲットビットのビットを反転させるゲートである。またCnNOTゲートは、n個のコントロールビットが「1」である場合に、1つのターゲットビットのビットを反転させるゲートである。そしてゲート変換部150は、量子回路に含まれるCCXゲートをCCZゲートとHゲートとの組み合わせに変換する。
【0075】
ゲート変換部150は、ゲート検出部140が検出したCCZゲートを1つまたは2つの量子ビットへの操作の組み合わせである等価回路に変換する。例えばゲート変換部150は、ゲート検出部140が検出したCCZゲートを等価回路51に変換する。またゲート変換部150は、等価回路に変換したCCZゲートと同じ量子ビットの組み合わせに対するCCZゲートを、変換した等価回路の要素を対称に移動させた等価回路に変換する。例えばゲート変換部150は、CCZゲートを等価回路51の各要素を上下に対称移動させた配置の等価回路に変換する。
【0076】
なお、図7に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。また、図7に示した各要素の機能は、例えば、その要素に対応するプログラムモジュールをコンピュータに実行させることで実現することができる。
【0077】
次に、記憶部120に格納される変換情報121について詳細に説明する。
図8は、変換情報の一例を示す図である。変換情報121には、検出ゲートおよび等価回路の欄が設けられている。検出ゲートの欄には、検出対象のゲートが設定されている。等価回路の欄には、検出対象のゲートの等価回路が設定されている。例えば変換情報121には、CCZゲートと等価回路51および等価回路51の各要素を上下に対称移動させた配置の等価回路とが対応付けて登録されている。
【0078】
次にゲート変換部150によるCCXゲートの変換処理について説明する。
図9は、CCXゲートの変換処理の一例を示す図である。CCXゲートは、2つのコントロールビットが「1」である場合に、1つのターゲットビットに対してXゲートを作用させる(ビットを反転させる)ことを示す。量子回路において、CCXゲートのターゲットビットとなる量子ビットに対応する線上には円と+とを組み合わせた記号が配置され、2つのコントロールビットとなる量子ビットそれぞれに対応する線上には当該記号と線で結ばれた点が配置される。ゲート変換部150は、量子回路に含まれるCCXゲートを、HゲートとCCZゲートとを組み合わせた等価回路に変換する。
【0079】
等価回路61は、量子ビットq1,q2をコントロールビットとし、量子ビットq0をターゲットビットとするCCXゲートに等価な量子回路である。等価回路61は、量子ビットq0に対するHゲートと、量子ビットq0,q1,q2に対するCCZゲートと、量子ビットq0に対するHゲートとが並べて配置されたものである。ゲート変換部150は、等価回路61に含まれるCCZゲートを変換することで、等価回路61を等価回路62,63に変換できる。
【0080】
等価回路62は、等価回路61に含まれるCCZゲートを等価回路51に変換したものである。また、等価回路63は、等価回路61に含まれるCCZゲートを等価回路51の各要素を上下に対称移動させた配置の等価回路に変換したものである。
【0081】
このように、ゲート変換部150は、量子回路に含まれるCCXゲートをCCZゲートを含む等価回路に変換できる。そして、ゲート変換部150は、CCZゲートを等価回路に変換することで、CCXゲートを含む量子回路において、特定の量子ビットにゲート操作が偏ることを抑制できる。
【0082】
次にゲート変換部150によるCnNOTゲートの変換処理について説明する。
図10は、CnNOTゲートの変換処理の一例を示す図である。CnNOTゲートは、n個のコントロールビットが「1」である場合に、1つのターゲットビットのビットを反転させることを示す。量子回路において、CnNOTゲートのターゲットビットとなる量子ビットに対応する線上には円と+とを組み合わせた記号が配置され、n個のコントロールビットとなる量子ビットそれぞれに対応する線上には当該記号と線で結ばれた点が配置される。ゲート変換部150は、量子回路に含まれるCnNOTゲートを、CCXゲートとCNOTゲートとを組み合わせた等価回路に変換する。
【0083】
等価回路71は、量子ビットq0,q1,q2,q3,q4をコントロールビットとし、量子ビットq5をターゲットビットとするC5NOTゲートに等価な量子回路である。等価回路71は、量子ビットq0~q4,a0,a1,a2,a3のいずれか2つをコントロールビットとし、量子ビットq0~q4,a0~a3のいずれか1つをターゲットビットとするCCXゲートを含む。なお量子ビットa0~a3は、アンシラビットである。CnNOTゲートの変換ではn-1個のアンシラビットが使用される。
【0084】
等価回路71は、量子ビットq0,q1をコントロールビットとし、量子ビットa0をターゲットビットとするCCXゲートを2つ含む。また、等価回路71は、量子ビットq2,a0をコントロールビットとし、量子ビットa1をターゲットビットとするCCXゲートを2つ含む。また、等価回路71は、量子ビットq3,a1をコントロールビットとし、量子ビットa2をターゲットビットとするCCXゲートを2つ含む。また、等価回路71は、量子ビットq4,a2をコントロールビットとし、量子ビットa3をターゲットビットとするCCXゲートを2つ含む。また、等価回路71は、量子ビットa3をコントロールビットとし、量子ビットq5をターゲットビットとするCNOTゲートを1つ含む。
【0085】
ゲート変換部150は、等価回路71に含まれるCCXゲートを、CCZゲートとHゲートとを組み合わせた等価回路に変換できる。
図11は、CnNOTゲートの等価回路の一例を示す図である。等価回路72は、等価回路71に含まれるCCXゲートを、CCZゲートとHゲートとを組み合わせた等価回路に変換したものである。つまり、等価回路72は、同じ量子ビットの組み合わせに対するCCZゲートを2つずつ含む。例えば、等価回路72は、量子ビットq0,q1,a0に対するCCZゲートを2つ含む。
【0086】
ゲート変換部150は、等価回路72に含まれる同じ量子ビットの組み合わせに対する2つのCCZゲートの一方を等価回路51に変換し、他方を等価回路51の各要素を上下に対称移動させた配置の等価回路に変換する。これにより、ゲート変換部150は、CnNOTゲートを含む量子回路において、特定の量子ビットにゲート操作が偏ることを抑制できる。
【0087】
次に、量子回路変換処理の手順について詳細に説明する。
図12は、量子回路変換処理の手順の一例を示すフローチャートである。以下、図12に示す処理をステップ番号に沿って説明する。
【0088】
[ステップS101]量子計算制御部130は、量子回路を取得する。例えば量子計算制御部130は、端末装置31,32,・・・から、量子コンピュータ300による量子計算の依頼と量子回路とを受け付ける。
【0089】
[ステップS102]ゲート変換部150は、量子回路に含まれるCnNOTゲートをCCXゲートとCNOTゲートとの組み合わせに変換する。例えばゲート変換部150は、ステップS101で取得された量子回路に含まれるCnNOTゲートを検出する。ゲート変換部150は、検出されたCnNOTゲートのコントロールビットおよびn-1個のアンシラビットのうちの2つをコントロールビットとし、1つをターゲットビットとする複数のCCXゲートと、CNOTゲートとを組み合わせた等価回路を生成する。そしてゲート変換部150は、検出されたCnNOTゲートを生成した等価回路に変換する。
【0090】
[ステップS103]ゲート変換部150は、量子回路に含まれるCCXゲートをCCZゲートとHゲートとの組み合わせに変換する。例えばゲート変換部150は、ステップS102で変換された量子回路に含まれるCCXゲートを検出する。ゲート変換部150は、検出されたCCXゲートのターゲットビットに対するHゲートと、コントロールビットおよびターゲットビットに対するCCZゲートと、ターゲットビットに対するHゲートとを並べて配置した等価回路を生成する。そしてゲート変換部150は、検出されたCCXゲートを生成した等価回路に変換する。
【0091】
[ステップS104]ゲート検出部140は、量子回路からCCZゲートを1つ検出する。
[ステップS105]ゲート検出部140は、ステップS104で量子回路からCCZゲートが検出されたか否かを判定する。ゲート検出部140は、ステップS104で量子回路からCCZゲートが検出されたと判定した場合、処理をステップS106に進める。また、ゲート検出部140は、ステップS104で量子回路からCCZゲートが検出されなかったと判定した場合、処理をステップS110に進める。
【0092】
[ステップS106]ゲート変換部150は、ステップS104で検出されたCCZゲートを1つまたは2つの量子ビットへの操作の組み合わせである等価回路に変換する。例えばゲート変換部150は、ステップS104で検出されたCCZゲートを変換情報121に登録された等価回路51に変換する。
【0093】
[ステップS107]ゲート検出部140は、量子回路から、ステップS104で検出されたCCZゲートと同じ量子ビットの組み合わせに対するCCZゲートを1つ検出する。
【0094】
[ステップS108]ゲート検出部140は、ステップS107で量子回路からCCZゲートが検出されたか否かを判定する。ゲート検出部140は、ステップS107で量子回路からCCZゲートが検出されたと判定した場合、処理をステップS109に進める。また、ゲート検出部140は、ステップS107で量子回路からCCZゲートが検出されなかったと判定した場合、処理をステップS104に進める。
【0095】
[ステップS109]ゲート変換部150は、ステップS107で検出されたCCZゲートを、ステップS106で変換した等価回路の要素を対称に移動させた等価回路に変換する。例えばゲート変換部150は、ステップS107で検出されたCCZゲートを、変換情報121に登録された等価回路51の各要素を上下に対称移動させた配置の等価回路に変換する。そして処理がステップS104に進む。
【0096】
[ステップS110]量子計算制御部130は、変換後の量子回路に従って量子ビット制御装置200を制御する。
このようにゲート変換部150は、同じ量子ビットの組み合わせに対するCCZゲートの一方を等価回路に変換し、他方を等価回路51の各要素を上下に対称移動させた配置の等価回路に変換する。これにより、ゲート変換部150は、特定の量子ビットにゲート操作が偏ることを抑制できる。
【0097】
なおゲート変換部150は、CnNOTゲートをCCXゲートとCNOTゲートとの組み合わせに変換し、CCXゲートをCCZゲートとHゲートとの組み合わせに変換してから、CCZゲートの変換をする。これにより、ゲート変換部150は、量子回路にCCXゲートやCnNOTゲートが含まれる場合でも特定の量子ビットにゲート操作が偏ることを抑制できる。
【0098】
次に、変換後の量子回路について説明する。
図13は、変換後の量子回路の一例を示す図である。ゲート変換部150は、量子回路変換処理によって量子回路50を量子回路50aに変換する。量子回路50aは、量子回路50に含まれる2つのCCZゲートの一方を等価回路51に変換し、他方を等価回路52に変換したものである。等価回路52は、等価回路51の各要素を上下に対称移動させた配置の等価回路である。等価回路52では、等価回路51の各要素の配置が量子ビットq1に対応する線を軸として反転している。
【0099】
量子計算制御部130は、量子回路50を取得すると、ゲート変換部150によって変換された量子回路50aに従って量子ビット制御装置200を制御する。量子ビット制御装置200は、量子回路50aに示される順序で各量子ビットに対するゲート操作をする。これにより、量子回路50に含まれる2つのCCZゲートを等価回路51に変換した場合よりも特定の量子ビットへのゲート操作の偏りが抑制される。
【0100】
次にゲート操作に含まれるノイズの量子計算への影響について説明する。
図14は、量子計算結果とノイズとの関係の一例を示す図(その1)である。グラフ81は、3量子ビットのグローバーのアルゴリズムに含まれる2つのCCZゲートを等価回路51に変換した量子回路による量子計算を、ゲート操作のノイズ量を変えてシミュレーションした結果を示す。グラフ81の縦軸は、正解データに対応する状態の出力確率を示す。グラフ81の横軸は、ゲート操作に含まれるノイズ量を示す。なおsqrt(ε)は、ゲート操作に含まれるノイズ量の指標である。グラフ81の各線は、正解データに対応する状態が「000」~「111」それぞれの場合のシミュレーション結果を示す。
【0101】
グラフ82は、3量子ビットのグローバーのアルゴリズムに含まれる2つのCCZゲートの一方を等価回路51に変換し、他方を等価回路52に変換した量子回路による量子計算を、ゲート操作のノイズ量を変えてシミュレーションした結果を示す。グラフ82の縦軸、横軸、各線の意味は、グラフ81と同様である。
【0102】
グラフ81,82は、ゲート操作のノイズがないと、正解データに対応する状態の出力確率が式(7)に示した理論値0.781となることを示す。また、グラフ81,82は、ゲート操作のノイズ量が増加すると、正解データに対応する状態の出力確率が減少することを示す。ここでグラフ82は、ノイズ量の増加に対する出力確率の減少量がグラフ81に対して小さい。つまり、グラフ81,82は、2つのCCZゲートの一方を等価回路51に変換し、他方を等価回路52に変換した量子回路で量子計算をすると、2つのCCZゲートを等価回路51に変換した量子回路で量子計算をするよりもノイズの影響を低減できることを示す。
【0103】
このように、ゲート変換部150は、同じ量子ビットの組み合わせに対するCCZゲートの一方を等価回路51に変換し、他方を等価回路52に変換することで、ゲート操作に含まれるノイズの影響が特定の量子ビットに偏ることで発生するエラーを低減できる。よってゲート変換部150は、量子計算のエラーを低減させることができる。
【0104】
なお、CCZゲートは、上記の例で示した等価回路51,52以外の等価回路にも変換できる。ゲート変換部150は、CCZゲートを等価回路51,52以外の等価回路に変換してもよい。
【0105】
図15は、CCZゲートの等価回路の一例を示す図(その2)である。等価回路53は、量子ビットq0,q1,q2に対するCCZゲートに等価で、2つの量子ビットまたは1つの量子ビットに対するゲートを組み合わせた量子回路である。等価回路53では、等価回路51の量子ビットq0に対応する線に配置されている各要素が、量子ビットq1に対応する線に配置されている。また、等価回路53では、等価回路51の量子ビットq1に対応する線に配置されている各要素が、量子ビットq2に対応する線に配置されている。また、等価回路53では、等価回路51の量子ビットq2に対応する線に配置されている各要素が、量子ビットq0に対応する線に配置されている。
【0106】
等価回路54は、量子ビットq0,q1,q2に対するCCZゲートに等価で、等価回路53の各要素を上下に対称移動させた配置の等価回路である。等価回路54では、等価回路53の各要素の配置が量子ビットq1に対応する線を軸として反転している。ゲート変換部150は、同じ量子ビットの組み合わせに対するCCZゲートの一方を等価回路53に変換し、他方を等価回路54に変換してもよい。
【0107】
図16は、量子計算結果とノイズとの関係の一例を示す図(その2)である。グラフ83は、3量子ビットのグローバーのアルゴリズムに含まれる2つのCCZゲートを等価回路53に変換した量子回路による量子計算を、ゲート操作のノイズ量を変えてシミュレーションした結果を示す。また、グラフ84は、3量子ビットのグローバーのアルゴリズムに含まれる2つのCCZゲートの一方を等価回路53に変換し、他方を等価回路54に変換した量子回路による量子計算を、ゲート操作のノイズ量を変えてシミュレーションした結果を示す。グラフ83,84の縦軸、横軸、各線の意味は、グラフ81と同様である。
【0108】
グラフ83,84は、グラフ81,82と同様にゲート操作のノイズ量が増加すると、正解データに対応する状態の出力確率が減少することを示す。またグラフ84は、ノイズ量の増加に対する出力確率の減少量がグラフ83に対して小さい。よって、グラフ83,84は、2つのCCZゲートの一方を等価回路53に変換し、他方を等価回路54に変換した量子回路で量子計算をすると、2つのCCZゲートを等価回路53に変換した量子回路で量子計算をするよりもノイズの影響を低減できることを示す。
【0109】
図17は、CCZゲートの等価回路の一例を示す図(その3)である。等価回路55は、量子ビットq0,q1,q2に対するCCZゲートに等価で、2つの量子ビットまたは1つの量子ビットに対するゲートを組み合わせた量子回路である。等価回路55では、等価回路51の量子ビットq0に対応する線に配置されている各要素が、量子ビットq2に対応する線に配置されている。また、等価回路55では、等価回路51の量子ビットq1に対応する線に配置されている各要素が、量子ビットq0に対応する線に配置されている。また、等価回路55では、等価回路51の量子ビットq2に対応する線に配置されている各要素が、量子ビットq1に対応する線に配置されている。
【0110】
等価回路56は、量子ビットq0,q1,q2に対するCCZゲートに等価で、等価回路55の各要素を上下に対称移動させた配置の等価回路である。等価回路56では、等価回路55の各要素の配置が量子ビットq1に対応する線を軸として反転している。ゲート変換部150は、同じ量子ビットの組み合わせに対するCCZゲートの一方を等価回路55に変換し、他方を等価回路56に変換してもよい。
【0111】
図18は、量子計算結果とノイズとの関係の一例を示す図(その3)である。グラフ85は、3量子ビットのグローバーのアルゴリズムに含まれる2つのCCZゲートを等価回路55に変換した量子回路による量子計算を、ゲート操作のノイズ量を変えてシミュレーションした結果を示す。また、グラフ86は、3量子ビットのグローバーのアルゴリズムに含まれる2つのCCZゲートの一方を等価回路55に変換し、他方を等価回路56に変換した量子回路による量子計算を、ゲート操作のノイズ量を変えてシミュレーションした結果を示す。グラフ85,86の縦軸、横軸、各線の意味は、グラフ81と同様である。
【0112】
グラフ85,86は、グラフ81,82と同様にゲート操作のノイズ量が増加すると、正解データに対応する状態の出力確率が減少することを示す。またグラフ86は、ノイズ量の増加に対する出力確率の減少量がグラフ85に対して小さい。よって、グラフ85,86は、2つのCCZゲートの一方を等価回路55に変換し、他方を等価回路56に変換した量子回路で量子計算をすると、2つのCCZゲートを等価回路55に変換した量子回路で量子計算をするよりもノイズの影響を低減できることを示す。
【0113】
図19は、量子計算結果とノイズとの関係の一例を示す図(その4)である。グラフ87は、図14,16,18に示したシミュレーションにおける各量子計算の、sqrt(ε)=0.3の場合の正解データに対応する状態の出力確率を示す。グラフ87は、量子回路に含まれる2つのCCZゲートを同じ等価回路に変換した量子回路(等価回路1種類)による量子計算をsqrt(ε)=0.3で実行した場合の出力確率を示す。また、グラフ87は、量子回路に含まれる2つのCCZゲートの一方を、他方の等価回路の各要素を上下に対称移動させた配置の等価回路に変換した量子回路(等価回路2種類)による量子計算をsqrt(ε)=0.3で実行した場合の出力確率を示す。
【0114】
グラフ87は、2つのCCZゲートを1種類の等価回路に変換した量子回路によって量子計算をする場合よりも、2つのCCZゲートを2種類の等価回路に変換した量子回路によって量子計算を実行した場合のほうが出力確率が大きいことを示す。よって、ゲート変換部150は、2つのCCZゲートを2種類の等価回路に変換することで、量子計算のエラーを低減させることができる。
【0115】
なお、上記では、3量子ビットのグローバーのアルゴリズムを例に説明したが、グローバーのアルゴリズムは、4以上の量子ビットでも実行可能である。
図20は、6量子ビットでグローバーのアルゴリズムを実行する量子回路の一例を示す図である。量子回路70は、繰り返し回数1回のグローバーのアルゴリズムを6量子ビットで実行する場合の、量子ビットq0,q1,q2,q3,q4,q5それぞれに対する操作の順序を示す。
【0116】
量子回路70の左端には、量子ビットq0~q5それぞれに対するHゲートが配置されている。量子回路70で示される最初の操作として量子ビットq0~q5それぞれにHゲートが作用されることで、量子ビットq0~q5は、重ね合わせ状態となる(初期化される)。また、量子回路70では、初期化を示すHゲートの右側に、オラクルを適用する処理を示すXゲートとHゲートとCnNOTゲートとの組み合わせが配置される。また、量子回路70では、オラクルを示すゲートの組み合わせの右側に、増幅処理を示すHゲートと、Xゲートと、CnNOTゲートとの組み合わせが配置される。また、量子回路70では、増幅処理を示すゲートの組み合わせの右側に、量子ビットq0~q5それぞれに対する観測が配置される。量子回路70に示される観測によって、6量子ビットのグローバーのアルゴリズムの反転増幅処理を1回行った場合の結果が出力される。
【0117】
ゲート変換部150は、量子回路70に含まれるCnNOTゲートをCCXゲートとCNOTゲートとの組み合わせに変換し、CCXゲートをCCZゲートとHゲートとの組み合わせに変換する。そしてゲート変換部150は、CnNOTゲートから変換された同じ量子ビットの組み合わせに対する2つのCCZゲートの一方を等価回路51に変換し、他方を等価回路52に変換する。
【0118】
図21は、量子計算結果とノイズとの関係の一例を示す図(その5)である。グラフ91は、6量子ビットのグローバーのアルゴリズムに含まれるCnNOTゲートを変換した量子回路による量子計算を、ゲート操作のノイズ量を変えてシミュレーションした結果を示す。グラフ91の縦軸は、正解データに対応する状態が「000000」~「111111」それぞれの場合の正解データに対応する状態の出力確率の平均を示す。グラフ91の横軸は、ゲート操作に含まれるノイズ量を示す。
【0119】
グラフ91は、CnNOTゲートから変換された同じ量子ビットの組み合わせに対する2つのCCZゲートを等価回路51に変換した量子回路(等価回路1種類)による量子計算のシミュレーション結果を示す。また、グラフ91は、CnNOTゲートから変換された同じ量子ビットの組み合わせに対する2つのCCZゲートの一方を等価回路51に変換し、他方を等価回路52に変換した量子回路(等価回路2種類)による量子計算のシミュレーション結果を示す。
【0120】
グラフ91によれば、2つのCCZゲートを1種類の等価回路に変換した量子回路によって量子計算をする場合よりも、2つのCCZゲートを2種類の等価回路に変換した量子回路によって量子計算を実行した場合のほうが出力確率の減少量が小さい。つまり、グラフ91は、2つのCCZゲートを1種類の等価回路に変換した量子回路によって量子計算をする場合よりも、2つのCCZゲートを2種類の等価回路に変換した量子回路によって量子計算を実行した場合のほうがノイズの影響を低減できることを示す。
【0121】
このように、ゲート変換部150は、CnNOTゲートを含む量子回路によって実行される量子計算においても、ゲート操作に含まれるノイズの影響が特定の量子ビットに偏ることで発生するエラーを低減できる。
【0122】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
【0123】
上記については単に本発明の原理を示すものである。さらに、多数の変形、変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応するすべての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
【符号の説明】
【0124】
1 第1量子回路
2 第1等価回路
3 第2等価回路
10 量子回路設計装置
11 処理部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21