JP2005250563A - 量子アルゴリズム実行装置及びその方法、プログラム及び記録媒体 - Google Patents
量子アルゴリズム実行装置及びその方法、プログラム及び記録媒体 Download PDFInfo
- Publication number
- JP2005250563A JP2005250563A JP2004056305A JP2004056305A JP2005250563A JP 2005250563 A JP2005250563 A JP 2005250563A JP 2004056305 A JP2004056305 A JP 2004056305A JP 2004056305 A JP2004056305 A JP 2004056305A JP 2005250563 A JP2005250563 A JP 2005250563A
- Authority
- JP
- Japan
- Prior art keywords
- unit
- qubit
- quantum
- operator
- state information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B82—NANOTECHNOLOGY
- B82Y—SPECIFIC USES OR APPLICATIONS OF NANOSTRUCTURES; MEASUREMENT OR ANALYSIS OF NANOSTRUCTURES; MANUFACTURE OR TREATMENT OF NANOSTRUCTURES
- B82Y10/00—Nanotechnology for information processing, storage or transmission, e.g. quantum computing or single electron logic
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N10/00—Quantum computing, i.e. information processing based on quantum-mechanical phenomena
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Chemical & Material Sciences (AREA)
- General Physics & Mathematics (AREA)
- Nanotechnology (AREA)
- Data Mining & Analysis (AREA)
- Computational Mathematics (AREA)
- Condensed Matter Physics & Semiconductors (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Crystallography & Structural Chemistry (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Complex Calculations (AREA)
Abstract
【課題】 2n個の状態中から正しい状態を見つけ出す効率的な量子アルゴリズムを古典(物理的)計算機に直接実行させることを可能とする。
【解決手段】 nビットの初期状態|Ψ>=|00…0>をキュビットにアダマール変換を行って同一振幅の2n個の状態の重ね合せ状態を作り、この重ね合せ状態をn個のテンソルの積に、密度行列繰り込み群法により最適に圧縮し、この圧縮形式に演算子の形式を変換部23で変換し、この変換された演算子を接続初期状態情報に演算・最適化部24で作用させるとともに圧縮が最適された演算結果を得、この演算結果に対し、次の演算子に対する形式変換を行って演算・最適化を行うことを順次実行する。
【選択図】 図1
【解決手段】 nビットの初期状態|Ψ>=|00…0>をキュビットにアダマール変換を行って同一振幅の2n個の状態の重ね合せ状態を作り、この重ね合せ状態をn個のテンソルの積に、密度行列繰り込み群法により最適に圧縮し、この圧縮形式に演算子の形式を変換部23で変換し、この変換された演算子を接続初期状態情報に演算・最適化部24で作用させるとともに圧縮が最適された演算結果を得、この演算結果に対し、次の演算子に対する形式変換を行って演算・最適化を行うことを順次実行する。
【選択図】 図1
Description
この発明は量子アルゴリズムを利用して、例えば検索問題を処理する装置、及びその方法、プログラム及び記録媒体に関する。
量子計算機は“1”と“0”の重ね合わせの状態をとることができる量子ビット(quantum bit)あるいはキュビット(qubit)を利用することにより超並列計算を実現できる。この量子計算機の超並列計算を活かす応用としてグローバーの量子検索アルゴリズムが非特許文献1により提案されている。
この量子検索計算を図10を参照して簡単に説明する。n個のメインキュビットの初期状態|Ψ>=|000…0>(0の個数はn個)がアダマール変換部111,112,…,11nでアダマール変換されて、同じ大きさ(等振幅)の2n個の状態を重ね合わせた状態(量子状態情報)を作る。キュビット“0”及びキュビット“1”はそれぞれ次式で表わせる。|・>は「・」の列ベクトル(ケットベクトル)を表わす。
この量子検索計算を図10を参照して簡単に説明する。n個のメインキュビットの初期状態|Ψ>=|000…0>(0の個数はn個)がアダマール変換部111,112,…,11nでアダマール変換されて、同じ大きさ(等振幅)の2n個の状態を重ね合わせた状態(量子状態情報)を作る。キュビット“0”及びキュビット“1”はそれぞれ次式で表わせる。|・>は「・」の列ベクトル(ケットベクトル)を表わす。
図10において、アダマール変換部111,…,11nは並列に示してあるが、|Ψ>=|00…0>に対し順次アダマール変換を行うことを表わす。つまり、例えばn=4,|Ψ>=|0000>の場合、その1つ目の“0”についてアダマール変換を変換部111で行うと次のようになる。
(1/√2)|0000>+(1/√2)|1000>
これら各ケットベクトルの各2つ目について変換部112でアダマール変換を行う。その結果は次のようになる。
(1/2)|0000>+(1/2)|0100>+(1/2)|1000>+(1/2)|1100>
(1/√2)|0000>+(1/√2)|1000>
これら各ケットベクトルの各2つ目について変換部112でアダマール変換を行う。その結果は次のようになる。
(1/2)|0000>+(1/2)|0100>+(1/2)|1000>+(1/2)|1100>
以下同様にして変換部113ではこれら4つのケットベクトルの3つ目に対して変換する。変換部114では更に得られた8個のケットベクトルの各4つ目について変換を行う。従って最終的には振幅がそれぞれ(1/√2)4の4つのキュビットの全ての取り得る状態の24個のケットベクトルを重ねた状態が得られる。
また|1>にセットしたターゲットキュビットがアダマール変換部11Tでアダマール変換され、これと前記同一振幅の2n個の状態が重ね合わされた量子状態とに対し量子回路12が作用される。量子回路12では例えば2n個のファイル(状態)から1乃至複数の正しいファイル(状態)を検索する量子計算が行われる。その結果、例えば正解となる(当りとなる)状態の振幅(振幅の自乗が出現確率)が大きくなる。
また|1>にセットしたターゲットキュビットがアダマール変換部11Tでアダマール変換され、これと前記同一振幅の2n個の状態が重ね合わされた量子状態とに対し量子回路12が作用される。量子回路12では例えば2n個のファイル(状態)から1乃至複数の正しいファイル(状態)を検索する量子計算が行われる。その結果、例えば正解となる(当りとなる)状態の振幅(振幅の自乗が出現確率)が大きくなる。
しかし2n個の状態間の出現確率の差は比較的小さい。よって量子回路12の出力中の入力nメインキュビットと対応する出力に対し位相シフト演算を位相シフト演算部13で作用させ、その結果の対応メインキュビット及び量子回路12の出力中のターゲットキュビットと対応する出力とを量子回路12に再び入力する。この量子回路12と位相シフト演算部13の適用を複数回繰り返す。この繰り返しは、正しい状態つまり正しいファイル検索の場合、当りのファイル(状態)の数をt個とすると、√(N/t)(N=2n)行う。
この繰り返しの後に、位相シフト演算部13の出力が観測部14で観測される。この観測部では1乃至複数の状態(ケットベクトル)の中から1つの状態(ケットベクトル)だけが確率的に決定する。この観測について図11を参照して簡単に説明する。例として観測部14に渡される4キュビットの量子状態が、|Ψ>=1/2|0000>+1/2|1000>+1/2|1100>+1/2|1111>の様に4つの状態(ケットベクトル)の和である場合を考える(量子状態40)。
まず、1つ目のキュビットに注目すると、1つ目のキュビットが“0”である確率が1/4、“1”である確率が3/4となっている。もし、1つ目のキュビットについて確率的観測を行い“0”が観測されたとすると、波束の収縮により、量子状態40は量子状態41aに変化し、残りのキュビットについては確率1で“0”が観測される。また、1つ目のキュビットについて“1”が観測されたとすると、量子状態40は量子状態41bに変化する。次に、量子状態41bの2つ目のキュビットに注目すると、“0”である確率が1/3、“1”である確率が2/3となっている。ここでも確率的観測によって2つ目のキュビットの値が決定する。このようなキュビットに対する観測を全キュビットに行うことによって全キュビットの値が決定する。ただし、一度の確率的観測によって判明する状態は、量子状態40の4つの状態(ケットベクトル)の中の1つだけである。もし、4つの状態(ケットベクトル)の全てが知りたい場合は、確率的観測を複数回(少なくとも4回)行う必要がある。しかし、物理系を用いて量子計算機を構成した場合は位相シフト演算部13の出力と同じ状態を保存しておくことはできないので図10の始めからやり直す必要がある。一方、古典計算機を用いて量子計算機をシミュレートする場合は位相シフト演算部13の出力情報を記憶媒体上に保存しておき、観測部14だけを複数回繰り返すことによって全状態(ケットベクトル)を得ることができる。
まず、1つ目のキュビットに注目すると、1つ目のキュビットが“0”である確率が1/4、“1”である確率が3/4となっている。もし、1つ目のキュビットについて確率的観測を行い“0”が観測されたとすると、波束の収縮により、量子状態40は量子状態41aに変化し、残りのキュビットについては確率1で“0”が観測される。また、1つ目のキュビットについて“1”が観測されたとすると、量子状態40は量子状態41bに変化する。次に、量子状態41bの2つ目のキュビットに注目すると、“0”である確率が1/3、“1”である確率が2/3となっている。ここでも確率的観測によって2つ目のキュビットの値が決定する。このようなキュビットに対する観測を全キュビットに行うことによって全キュビットの値が決定する。ただし、一度の確率的観測によって判明する状態は、量子状態40の4つの状態(ケットベクトル)の中の1つだけである。もし、4つの状態(ケットベクトル)の全てが知りたい場合は、確率的観測を複数回(少なくとも4回)行う必要がある。しかし、物理系を用いて量子計算機を構成した場合は位相シフト演算部13の出力と同じ状態を保存しておくことはできないので図10の始めからやり直す必要がある。一方、古典計算機を用いて量子計算機をシミュレートする場合は位相シフト演算部13の出力情報を記憶媒体上に保存しておき、観測部14だけを複数回繰り返すことによって全状態(ケットベクトル)を得ることができる。
このようにグローバーのアルゴリズムによれば量子計算機の超並列計算を活すことによって、2n個のファイルから正しい1個のファイルを探し出す問題は2n/2回の繰り返しで正しいファイルを見つけ出すことができる。この検索問題を、古典計算機により古典アルゴリズムにより実行するには、約2n回の繰り返しが必要であった。つまり古典アルゴリズムによれば例えば210=1024回の繰り返しが必要であった所を、量子アルゴリズムによれば25=32回で済む。
このように量子計算機は複数の状態の重ね合わさった波動関数を用い、その複数の状態ごとに波動関数を、外部の入力関数に応じて制御することにより、量子アルゴリズムを実行し、その結果の波動関数により表わされている量子状態を観測して入力関数についての論理計算の結果を得るものである。量子計算機により量子演算を行わせるには、例えば光子を用いた場合、偏光を90度回転させるための制御をビームスプリッタなどにより行っていた。つまり従来においては物理系を用いて量子計算機を構成し、量子アルゴリズムを実行させていた。
このように量子計算機は複数の状態の重ね合わさった波動関数を用い、その複数の状態ごとに波動関数を、外部の入力関数に応じて制御することにより、量子アルゴリズムを実行し、その結果の波動関数により表わされている量子状態を観測して入力関数についての論理計算の結果を得るものである。量子計算機により量子演算を行わせるには、例えば光子を用いた場合、偏光を90度回転させるための制御をビームスプリッタなどにより行っていた。つまり従来においては物理系を用いて量子計算機を構成し、量子アルゴリズムを実行させていた。
前述したように量子計算はキュビット同士が互いに相関した状態を保ちながら演算を実行しなければならない。このため実際の物理系を用いた量子計算機ではキュビット数の増加にともなって指数関数的に増加する状態(nキュビットの場合2n個の状態)を制御することが困難になってくる。
また古典計算機を用いて量子計算機をシミュレートする研究も報告されているが、従来の方法は2n個の状態を保存する必要があるため計算機の記憶容量の限界から約30キュビットが限界となっており、計算時間も指数関数的に増加するため多キュビットのシミュレーションは非常に困難であった。従来においては古典計算機に量子アルゴリズムを直接実行させるのは困難と思われていた。
また古典計算機を用いて量子計算機をシミュレートする研究も報告されているが、従来の方法は2n個の状態を保存する必要があるため計算機の記憶容量の限界から約30キュビットが限界となっており、計算時間も指数関数的に増加するため多キュビットのシミュレーションは非常に困難であった。従来においては古典計算機に量子アルゴリズムを直接実行させるのは困難と思われていた。
状態情報を密度行列繰り込み群法により圧縮することが非特許文献2及び3に示されている。
L.K.Grover著、Phys.Rev.Lett.79巻,325頁(1997) S.R.White著、Phys.Rev.Lett.69巻,2863頁(1992) 西野友年,柴田尚和著,固体物理,32巻,12頁(1997)
L.K.Grover著、Phys.Rev.Lett.79巻,325頁(1997) S.R.White著、Phys.Rev.Lett.69巻,2863頁(1992) 西野友年,柴田尚和著,固体物理,32巻,12頁(1997)
この発明の目的は古典計算機に量子アルゴリズムを直接実行させることを可能とし、かつ記憶容量と計算時間を大幅に削減することができる量子アルゴリズム実行装置及びその方法、プログラム及びその記録媒体を提供することにある。
この発明によれば情報圧縮した初期状態の量子状態情報に演算子を作用させるとともに情報圧縮を最適化する演算・最適化部と、
その最適化された圧縮情報の情報形式と対応した形式に次の演算子を変換する形式変換部とを備える。
その最適化された圧縮情報の情報形式と対応した形式に次の演算子を変換する形式変換部とを備える。
この発明によれば情報量が最適に圧縮された量子状態情報と演算子との演算が行われるため、行列の演算のみで済み量子アルゴリズムを古典計算機に直接実行させることができ、しかも記憶している情報量が少なくて済み、また演算時間も短縮される。
この発明による実施形態の機能構成を図1に、その処理手順を図2に示す。
検索などの処理を量子計算により実行させるために必要な量子回路を構成する各演算子が入力部21に入力され、演算子が演算子記憶部22に格納される(ステップS1)。その後、情報量が圧縮された初期状態が入力される(ステップS2)。この初期量子状態は例えばn個のキュビットが“0”の状態|Ψ>=|00…0>(0の数はn個)であり、これに対する情報量圧縮は、例えば非特許文献2又は3に示されている密度行列繰り込み群法により行われる。初期状態は情報圧縮した状態が自明なものならどのようなものでもよい。初期量子状態を入力し、これを最適化圧縮してもよいが、一般には圧縮情報が自明のものを用い、それだけ処理回数を少なくする。
検索などの処理を量子計算により実行させるために必要な量子回路を構成する各演算子が入力部21に入力され、演算子が演算子記憶部22に格納される(ステップS1)。その後、情報量が圧縮された初期状態が入力される(ステップS2)。この初期量子状態は例えばn個のキュビットが“0”の状態|Ψ>=|00…0>(0の数はn個)であり、これに対する情報量圧縮は、例えば非特許文献2又は3に示されている密度行列繰り込み群法により行われる。初期状態は情報圧縮した状態が自明なものならどのようなものでもよい。初期量子状態を入力し、これを最適化圧縮してもよいが、一般には圧縮情報が自明のものを用い、それだけ処理回数を少なくする。
各量子状態と各演算子との演算を順次行って目的とする量子計算(量子回路の作用)が行われるが、その順に演算子記憶部22から演算子が1つ取り出され(ステップS3)、その演算子はこの演算が施されるべき圧縮量子状態の圧縮形式(フォーマット)に形式変換部23により変換される(ステップS4)。
この形式変換された演算子と圧縮初期状態との演算が演算・最適化部24で行われると共に演算結果の圧縮の最適化が行われる(ステップS5)。
この形式変換された演算子と圧縮初期状態との演算が演算・最適化部24で行われると共に演算結果の圧縮の最適化が行われる(ステップS5)。
i1,i2,…,inはキュビットの状態(“0”又は“1”)を表し、Ψ(i1,i2,…,in)は2n個の情報を持つn階のテンソルとなっている。右辺はn個の3階のテンソルの積となっており、新たな変数x1,x2,…,xn+1(xa=1,…,ma)の和の形式で表わされる。Uaとmaの値は密度行列繰り込み群法により決められる。つまり式(1)における右辺はΣで表わされている和演算を行わない状態は量子状態Ψ(i1,i2,…,in)を情報圧縮した状態(情報)となっている。この圧縮情報に対し演算子との演算が行われるが、この演算は演算子とU1,U2,…,Unを用いて演算が行われ、その結果V1が求まり、更に演算子とV1,U1,U2,…,Unを用いて演算を行ってV2が求まり、と順次計算され、最終的にV1,V2,…,Vnが得られるが、この最終結果は情報圧縮が最適化されたものとなる。なおこの演算子と圧縮情報との演算は行列の演算であり、古典計算機で直接実行される。このことは後に具体的説明で明らかにする。
この演算・圧縮最適化の後、演算子記憶部22に次に演算すべき演算子が残っているかが調べられる(ステップS6)。残っていればステップS3に戻り、前記演算順に従った次の演算子が取り出され、この演算子に対し、演算・最適化部24の出力(圧縮状態情報)の圧縮形式(フォーマット)に適合する変換が行われる(ステップS4)。以下同様のことが繰り返され、演算子記憶部22にその量子回路の量子計算に必要とする演算子が残っていなければ、この演算・最適化部24の出力に対する観測が観測部25で行われる(ステップS7)。この観測も圧縮された状態に対して行われる。制御部26は各部を順次動作させ、また演算子の記憶部22からの順次取り出し、演算すべき演算子が残っているか否かの判断などを行う。
以下の実施例では情報圧縮された状態情報が入力され、その圧縮された状態情報中に含まれる1乃至複数のキュビットの情報に対して行列演算を行う複数の演算ユニットが設けられ、これ等演算ユニットが接続されて、所望の量子アルゴリズムを実行する量子回路が構成されている例を説明する。
まず量子回路と位相シフト演算部との繰り返し演算を行う場合にこの発明を適用した実施例1の機能構成例を図3に示す。この実施例1ではメインキュビットがn=4キュビット、ワークキュビットが3キュビット、ターゲットキュビットが1キュビットの場合で、図3中の記号Hは図4Aに示すようにアダマール変換行列Hによるアダマール変換を表わし、記号Xは図4Bに示すように行入れ替え行列Xによる行入れ替え変換を表わし、図4Cに示すように黒丸記号15と丸内×記号16の接続は、これら記号15及び16に入力される2キュビット、つまり4通りの状態が同時に存在し、これに対し、行列C−NOTの変換を行うもので記号15部分に入力された2要素の列ベクトルをそのまま通過させ、記号16部分に入力された2要素の列ベクトルの行の入れ替えを行って通過させることを表わし、図4Dに示すように、記号15を2つ接続し、これに対し記号16を接続したものは、記号15部分はそのまま通過させ、記号16は行入れ替えして通過させ、つまりこれら2つの記号15部分及び1つの記号16部分に入力された3キュビットは23=8個の状態の重ね合せであり、これに対し、行列C2−NOTの変換を行うものである。
まず量子回路と位相シフト演算部との繰り返し演算を行う場合にこの発明を適用した実施例1の機能構成例を図3に示す。この実施例1ではメインキュビットがn=4キュビット、ワークキュビットが3キュビット、ターゲットキュビットが1キュビットの場合で、図3中の記号Hは図4Aに示すようにアダマール変換行列Hによるアダマール変換を表わし、記号Xは図4Bに示すように行入れ替え行列Xによる行入れ替え変換を表わし、図4Cに示すように黒丸記号15と丸内×記号16の接続は、これら記号15及び16に入力される2キュビット、つまり4通りの状態が同時に存在し、これに対し、行列C−NOTの変換を行うもので記号15部分に入力された2要素の列ベクトルをそのまま通過させ、記号16部分に入力された2要素の列ベクトルの行の入れ替えを行って通過させることを表わし、図4Dに示すように、記号15を2つ接続し、これに対し記号16を接続したものは、記号15部分はそのまま通過させ、記号16は行入れ替えして通過させ、つまりこれら2つの記号15部分及び1つの記号16部分に入力された3キュビットは23=8個の状態の重ね合せであり、これに対し、行列C2−NOTの変換を行うものである。
図10に示した場合と同様に初期状態|0000>のメインキュビット(4キュビット)及び初期状態|1>のターゲットキュビットはアダマール変換部111〜114,11Tによりそれぞれアダマール変換される。この実施例ではメインキュビット(1,2,4,6番目)とワークキュビット(3,5,7番目)が“0”の状態及びターゲットキュビット(8番目)が“1”の状態の初期状態|00000001>が式(1)に示すように圧縮され、かつその圧縮が最適化されたものが量子回路31に入力される。先に述べたように初期状態としては圧縮された形式が自明のものが用いられ、つまり予め知られている情報圧縮された初期状態が量子回路31に入力される。この量子回路31は行列演算により行うことができる構成とされており、この例ではt個の正解の状態を含むN=2n個、図示例では16=24個の状態の中から正解の1つの状態を効率的に取り出すための回路である。
アダマール変換をした後の情報圧縮された状態に対し、1つ目及び2つ目のメインキュビットと1つ目のワークキュビットに対する行列演算が演算ユニット31aで行われ、その結果のワークキュビットと3つ目のメインキュビットと2つ目の初期ワークキュビットに対する行列演算が演算ユニット31bで行われ、その結果のワークキュビットと4つ目のメインキュビットと3つ目の初期ワークキュビットに対する行列演算が演算ユニット31cで行われ、その結果のワークキュビットとターゲットキュビットに対する行列演算が演算ユニット31dで行われる。つまり情報圧縮された状態に対する量子演算が、3つのキュビットに対する8×8行列の演算と、2つのキュビットに対する4×4行列の演算とが順次演算されて量子回路の演算が実質的に行われる。
つまり圧縮状態情報の1又は複数のメインキュビットとワークキュビットとに対し行列演算を行う複数の演算ユニットと、ワークキュビットとターゲットキュビットに対し行列演算を行う演算ユニットとが、演算ユニットのワークキュビットに対する演算結果を入力として、順次縦続的に接続されて、目的とする量子アルゴリズムが実行されるように量子回路31が構成されている。
量子回路31の演算結果、つまり情報圧縮された状態に対し、量子演算がなされ、かつ最適に圧縮された情報を表わす情報が位相シフト演算部32に入力される。位相シフト演算部32も量子回路31と同様にその入力に対して行列演算を順次行うものであるが、図10中の位相シフト演算部13で実行されている量子演算と同様の機能が圧縮状態情報に対して行われる。この場合も圧縮状態情報に対する演算子を適用させながら圧縮状態の最適化も行われる。つまり圧縮状態情報中の当りの状態(正しい状態)の振幅(確率)が大きく、当りでない状態の振幅(確率)が小さくなるように作用される。
量子回路31の演算結果、つまり情報圧縮された状態に対し、量子演算がなされ、かつ最適に圧縮された情報を表わす情報が位相シフト演算部32に入力される。位相シフト演算部32も量子回路31と同様にその入力に対して行列演算を順次行うものであるが、図10中の位相シフト演算部13で実行されている量子演算と同様の機能が圧縮状態情報に対して行われる。この場合も圧縮状態情報に対する演算子を適用させながら圧縮状態の最適化も行われる。つまり圧縮状態情報中の当りの状態(正しい状態)の振幅(確率)が大きく、当りでない状態の振幅(確率)が小さくなるように作用される。
この例では量子回路31の出力中のメインキュビットに対応する出力に対し、それぞれアダマール行列を作用させ、更に行入れ替え行列を作用させる行列演算ユニット32aと、この行列演算ユニットの出力と、量子回路31の出力中の各ワークキュビット出力とが入力され、量子回路31と同様構成の演算ユニットよりなる演算部32bと、演算部32bの出力中のメインキュビットに対し、アダマール行列を作用させ、更に行入れ替え行列を作用させる行列演算ユニット32cとにより位相シフト演算部32が構成されている。ただし演算部32bは、ターゲットキュビット及びこれと行列演算されるべきワークキュビットが入力されていないため、最後、つまり4つ目のメインキュビットに対する演算ユニット31cはC2−NOT行列ではなく、この4つ目のメインキュビットと、その直前のキュビットに対する演算ユニットのワークキュビットに対する演算結果とに対しC−NOT行列を作用させる演算ユニットとなっている。
この位相シフト演算部32の演算結果と量子回路31のターゲットキュビットの出力は、図10に示したものと同様に、量子回路31に再び入力されて量子回路31と位相シフト演算部32との繰り返し演算が√(N/t)回、図3の実施例では√(24/1)回実行される。その後、位相シフト演算部32の出力は観測部34へ出力され観測部34でその圧縮された状態情報が直接、1キュビットずつ、確率的に観測される。
このようにこの実施例1によれば、量子アルゴリズムを古典計算機により直接実行することができる。また図3に示したものを例とすれば、アダマール変換された後のメインキュビット状態は図5中の左辺に示すように24の情報を持つが、図3に示したものでは、この状態情報が圧縮され、図5中の右辺に示す2×4個の情報に削減される。
このようにこの実施例1によれば、量子アルゴリズムを古典計算機により直接実行することができる。また図3に示したものを例とすれば、アダマール変換された後のメインキュビット状態は図5中の左辺に示すように24の情報を持つが、図3に示したものでは、この状態情報が圧縮され、図5中の右辺に示す2×4個の情報に削減される。
つまりnキュビットの重ね合わせ状態は、従来は2n(=N)個に対する記憶容量が必要であったが、圧縮後では2×n個で済む。なお実行時間は従来の量子計算機によれば√(N/t)(tlogN)であったが、実施例1では√(N/t)(tlogN)3となる。
実施例1では演算を√(N/t)回繰り返す必要があり、演算時間が比較的長くなる。実施例2は演算時間を短くしたものであり、図3に示した演算に対し、この実施例2を適用したものを対応する部分に同一参照番号を付けて図6に示す。
この実施例2では情報圧縮された初期状態は、行列演算を順次実行する量子回路31に図3と同様に入力されるが、ターゲットキュビットはアダマール変換が施されることなく、|0>が量子回路31に入力される。また量子回路31より出力される行列演算の結果としての、最適に情報圧縮された状態は位相シフト演算部へ出力されることはない、つまり繰り返し演算は行われない。
この実施例2では情報圧縮された初期状態は、行列演算を順次実行する量子回路31に図3と同様に入力されるが、ターゲットキュビットはアダマール変換が施されることなく、|0>が量子回路31に入力される。また量子回路31より出力される行列演算の結果としての、最適に情報圧縮された状態は位相シフト演算部へ出力されることはない、つまり繰り返し演算は行われない。
この量子回路31は入力状態中の正しい状態、つまりこの例では当りの状態によってターゲットキュビットの演算結果を|1>に変える演算を2n個の状態に対して同時に行うものである。
この実施例2では量子回路31より出力されたターゲットキュビットに対し、非ユニタリ変換部35により射影演算子を作用させる。射影演算子は演算結果のターゲットキュビットを|0>とする状態の確率(振幅)を0にし、かつ波束の収縮を起させるため、ターゲットキュビットを|1>とする正しい(当りの)状態のみを大きな確率(振幅)とする作用がある。射影演算子は図6中の非ユニタリ変換部を示す枠35内に示すように2×2の非ユニタリ行列であり、量子回路31の出力中のターゲットキュビットが|1>の時は非ユニタリ変換部35の出力は1となり、この演算結果のターゲットキュビットが|0>の時は非ユニタリ変換部35の出力は0となる。
この実施例2では量子回路31より出力されたターゲットキュビットに対し、非ユニタリ変換部35により射影演算子を作用させる。射影演算子は演算結果のターゲットキュビットを|0>とする状態の確率(振幅)を0にし、かつ波束の収縮を起させるため、ターゲットキュビットを|1>とする正しい(当りの)状態のみを大きな確率(振幅)とする作用がある。射影演算子は図6中の非ユニタリ変換部を示す枠35内に示すように2×2の非ユニタリ行列であり、量子回路31の出力中のターゲットキュビットが|1>の時は非ユニタリ変換部35の出力は1となり、この演算結果のターゲットキュビットが|0>の時は非ユニタリ変換部35の出力は0となる。
つまり量子回路31の入力は圧縮された状態情報であるが、圧縮前の2n=N個の状態|φ1>の各状態は図7Aの|φ1>の欄に示すように全てターゲットキュビットを|0>とするものであり、その確率は同一であり、|1>とするものは図7Bの|φ1>欄に示すように存在しない、つまり全て確率が0である。図中真線の長さは|0>になる確率の大きさを、破線は確率0を表わす。
入力圧縮状態情報に対し、量子回路31の演算が施されると、この演算結果は情報圧縮された状態であるが、その圧縮が解かれたN個の状態についてみると、図7中の|φ2>欄に示すように、ターゲットキュビットを|0>とする状態、この例では第0番目〜第N−2番目の状態のN−1個(図7A側)と、ターゲットキュビットを|1>とする状態、この例では第N−1番目の状態の1個(図7B側)とが存在するようになる。
入力圧縮状態情報に対し、量子回路31の演算が施されると、この演算結果は情報圧縮された状態であるが、その圧縮が解かれたN個の状態についてみると、図7中の|φ2>欄に示すように、ターゲットキュビットを|0>とする状態、この例では第0番目〜第N−2番目の状態のN−1個(図7A側)と、ターゲットキュビットを|1>とする状態、この例では第N−1番目の状態の1個(図7B側)とが存在するようになる。
この演算結果に対し実施例1では量子回路31と位相シフト演算32との繰り返し演算を√(N/t)回必要としたが、この実施例2では量子回路31の出力の2n個の状態中の|1>の状態のみを残す射影演算子をターゲットキュビットに作用させる。
この射影演算を作用させると、状態|0>の確率を0とし、状態|1>の確率を1とする波束の収縮が起り、ターゲットキュビットを|0>にする状態、この例では第0〜第N−2番目の各状態は図7中の|φ3>欄のA側に示すように、確率が全てゼロになり、ターゲットキュビットを|1>にする状態、この例では第N−1番目の状態の確率が大きくなる。実際には量子回路31、非ユニタリ変換部35のいずれにおいても圧縮された状態情報に対して処理がなされ、図7に示したように各個々の状態が出現しているのではない。圧縮を解くとN個の各状態はこのような関係にあることを示すものである。
この射影演算を作用させると、状態|0>の確率を0とし、状態|1>の確率を1とする波束の収縮が起り、ターゲットキュビットを|0>にする状態、この例では第0〜第N−2番目の各状態は図7中の|φ3>欄のA側に示すように、確率が全てゼロになり、ターゲットキュビットを|1>にする状態、この例では第N−1番目の状態の確率が大きくなる。実際には量子回路31、非ユニタリ変換部35のいずれにおいても圧縮された状態情報に対して処理がなされ、図7に示したように各個々の状態が出現しているのではない。圧縮を解くとN個の各状態はこのような関係にあることを示すものである。
図7中の|φ3>欄に示すN個の状態が圧縮された状態情報は観測部34により、1ビット目から順次確率的観測が行われる。正しい(当りの)状態が複数ある場合は図3に示した実施例1も同様であるが、射影演算子を施した演算結果である圧縮状態情報を計算機上で保存しておき、観測を繰り返すことにより全ての正しい状態を見つける。
この実施例2の場合、図1中に破線で示すように観測部25の入力側に演算結果のターゲットキュビットに対する非ユニタリ変換部27が挿入されることになる。また図2に示した処理においては破線で示すように、ステップS6で残りの演算子がなければ、演算結果のターゲットキュビットに対しステップS8で射影演算子が適用、つまり非ユニタリ演算が実行されてステップS7に移ることになる。なお量子回路31による処理内容によっては、その量子回路31の演算結果を出力する前の途中の演算子を適用した状態に対し非ユニタリ変換(射影演算)を行い、その後量子回路31の続きの演算を行なうこともある。
この実施例2の場合、図1中に破線で示すように観測部25の入力側に演算結果のターゲットキュビットに対する非ユニタリ変換部27が挿入されることになる。また図2に示した処理においては破線で示すように、ステップS6で残りの演算子がなければ、演算結果のターゲットキュビットに対しステップS8で射影演算子が適用、つまり非ユニタリ演算が実行されてステップS7に移ることになる。なお量子回路31による処理内容によっては、その量子回路31の演算結果を出力する前の途中の演算子を適用した状態に対し非ユニタリ変換(射影演算)を行い、その後量子回路31の続きの演算を行なうこともある。
この実施例2においても、全体の処理は行列の演算で行われ、従って古典計算機により量子アルゴリズムを直接実行することができる。実施例1も同様であるが、式(1)中のテンソル(ユニタリ行列)U1の変数x2は次のテンソル(ユニタリ行列)U2に変数として用いられ、このテンソル(ユニタリ行列)U2の変数x3は次のテンソル(ユニタリ行列)U3の変数として含まれ、以下同様に1つのユニタリ行列の1つの変数が次のユニタリ行列の変数に順次含まれ、テンソルUaは1次元でつながっている。
式(1)中の変換x1,x2,…,xn+1(xa=1,…,ma)のmaの値(1から最大2n/2)はキュビット間の相関(エンタングルメント)に依存する。右辺は、波動関数の情報をn個のテンソルUで表わしているから、計算機に必要な記憶容量はO(m2n)(O(・)はオーダを表わす)となる。ここでmはma(a=1,…,n+1)の最大値を表わす。
式(1)中の変換x1,x2,…,xn+1(xa=1,…,ma)のmaの値(1から最大2n/2)はキュビット間の相関(エンタングルメント)に依存する。右辺は、波動関数の情報をn個のテンソルUで表わしているから、計算機に必要な記憶容量はO(m2n)(O(・)はオーダを表わす)となる。ここでmはma(a=1,…,n+1)の最大値を表わす。
図8は、2n個の状態の中から一個もしくは二個の正しい状態を見つけ出す検索を、実施例2によって実行したときのキュビット数nと実行時間の関係であり、黒丸は正しい状態が一個の場合(t=1)、白丸は正しい状態が二個の場合(t=2)に対応している。この計算は、Intel Xeon 2.4Gプロセッサ1個を用い、数値精度は4倍精度で実行している。量子回路31がO(n)のオーダの量子演算子(量子ゲート)で構成され、かつ、密度行列繰り込み群法を利用した場合、計算時間はO(m3n3)となる。図8において、実線と破線は、それぞれ黒丸と白丸を最小自乗法で3次関数にフィットさせた結果であり、キュビット数nに対して計算時間は3次で変化することが確認された。
図9は、232個の状態の中からt個の正しい状態を見つけ出す検索を、実施例2によって実行したときの正しい状態数tと実行時間の関係である。数値精度は2倍精度で実行しており、t個の正しい状態をランダムに設定することによって、あるtに対する計算時間の上限を見積もっている。ただし、計算途中も含めターゲットキュビットが|1>を返す数が最大t個の場合を示している。図9におけるバツ印は、それぞれのtに関して検索を10回ずつ試行した中の最も時間がかかった場合を表し、実線はバツ印を最小自乗法で3次関数にフィットさせた結果であり、正しい状態数tに関して計算時間は3次で変化することが確認された。ここで、正しい状態数tとmは密接な関係があり、1≦m≦t+1で表される関係を持っている。つまり、実施例2で実行される検索問題の場合、計算時間の上限はO(tlogN)3で表すことができ、キュビット数n(=logN)に対して多項式で増加する時間(tlogN)3で正しい状態を見つけ出すことが可能であり、従来の実行時間√(N/t)(tlogN)より著しく短かくなる。
図1、図3、図6にそれぞれ示した量子アルゴリズム実行装置は、コンピュータにより機能させることもできる。この場合はこれら装置としてコンピュータを機能させるための量子アルゴリズム実行プログラムをCD−ROM、磁気ディスク、半導体メモリなどの記録媒体からコンピュータにインストールし、又は通信回線を介してダウンロードして、この量子アルゴリズム実行プログラムをコンピュータに実行させればよい。
Claims (11)
- 複数キュビットの初期状態が情報圧縮された状態情報が入力され、演算量子アルゴリズムを実行する装置であって、
上記量子アルゴリズムの演算に必要とする演算子が記憶された演算子記憶部と、
上記演算子の形式を情報圧縮された状態情報の圧縮形式に変換する形式変換部と、
上記形式変化された演算子と上記情報圧縮された状態情報との演算を行うとともに情報圧縮を最適化した演算結果の状態情報を出力する演算・最適化部と、
上記情報圧縮された演算結果状態情報をそのキュビットごとに観測する観測部と
を具備する量子アルゴリズム実行装置。 - 上記演算・最適化部よりの出力圧縮された状態情報が入力され、位相シフト演算を行い、その演算結果の圧縮状態情報を上記演算・最適化部へ入力する位相シフト演算部を備えることを特徴とする請求項1記載の量子アルゴリズム実行装置。
- 上記複数キュビットはメインキュビット及びターゲットキュビットを含み、
上記演算・最適化部の出力中の上記ターゲットキュビットに対し、射影演算子を適用する非ユニタリ変換部を備えることを特徴とする請求項1記載の量子アルゴリズム実行装置。 - 予め決められた順に上記演算子記憶部から演算子を取り出し、その演算子を上記形式変換部に入力し、その変換された演算子を上記演算・最適化部に入力することを行う制御部を備えることを特徴とする請求項1〜3のいずれかに記載の量子アルゴリズム実行装置。
- 複数キュビットの初期状態が情報圧縮された状態情報が入力され、演算量子アルゴリズムを実行する装置であって、
上記圧縮された複数キュビットの状態情報が入力され、上記圧縮された状態情報中に含まれる1乃至複数のキュビットの情報に対し行列演算を行う複数の演算ユニットを有し、所望の量子アルゴリズムを実行する量子回路を備えることを特徴とする量子アルゴリズム実行装置。 - 上記複数キュビットはメインキュビット及びワークキュビットとターゲットキュビットを含み、
上記演算ユニットは上記圧縮された状態情報中に含まれるメインキュビット1乃至複数とワークキュビット1乃至複数に対し行列演算を行う複数の演算ユニットと、上記ワークキュビットと上記ターゲットキュビットに対し行列演算を行う演算ユニットであり、
上記演算ユニットがそのワークキュビットに対する演算結果を1つの入力として順次連結され、上記所望の量子アルゴリズムを実行する上記量子回路が構成されていることを特徴とする請求項5記載の量子アルゴリズム実行装置。 - 上記量子回路の出力が入力され、これら出力中の上記メインキュビットに対しアダマール行列及び行入れ替え行列を演算する第1行列演算ユニットと、これら行列演算ユニットの各演算結果と状態|0>に初期化されたワークキュビットが入力され、これらに対し、上記量子回路の上記演算ユニットの連結と同一連結されている演算部と、この演算部の出力中の上記メインキュビットに対しアダマール行列及び行入れ替え行列を演算する第2行列演算ユニットと、これ等の演算結果と上記演算部の出力のワークキュビットと、上記量子回路のターゲットキュビット出力とを上記量子回路の対応するキュビット入力に帰還する位相シフト演算部と
を備えることを特徴とする請求項6記載の量子アルゴリズム実行装置。 - 上記ターゲットキュビットの初期状態は|0>であり、
上記量子回路出力中の上記ターゲットキュビットの出力に対し射影演算子を適用する非ユニタリ変換部を備えることを特徴とする請求項6記載の量子アルゴリズム実行装置。 - 複数キュビットの初期状態が情報圧縮された状態情報が入力部より入力される過程と、
演算子記憶部から実行する量子アルゴリズムにより予め決められた順番に1つの演算子を取り出す演算子選択過程と、
上記取り出した演算子を、上記圧縮された状態情報の圧縮形式と対応する形式に形式変換部で変換する形式変換過程と、
上記形式変換された演算子を圧縮された状態情報に作用させるとともに、その演算結果の圧縮最適化を演算・最適化部で行って圧縮された演算結果の状態情報を求める演算・最適化過程と、
上記量子アルゴリズムの実行が終了するまで上記圧縮された演算結果の状態情報に対し、上記選択過程、上記形式変換過程、上記演算・最適化過程を繰り返し実行する過程とを有する量子アルゴリズム実行方法。 - 請求項1〜8のいずれかに記載した量子アルゴリズム実行装置としてコンピュータを機能させるためのプログラム。
- 請求項10に記載したプログラムが記録されたコンピュータ読み取り可能な記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004056305A JP2005250563A (ja) | 2004-03-01 | 2004-03-01 | 量子アルゴリズム実行装置及びその方法、プログラム及び記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004056305A JP2005250563A (ja) | 2004-03-01 | 2004-03-01 | 量子アルゴリズム実行装置及びその方法、プログラム及び記録媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005250563A true JP2005250563A (ja) | 2005-09-15 |
Family
ID=35031018
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004056305A Pending JP2005250563A (ja) | 2004-03-01 | 2004-03-01 | 量子アルゴリズム実行装置及びその方法、プログラム及び記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005250563A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112633508A (zh) * | 2020-11-30 | 2021-04-09 | 合肥本源量子计算科技有限责任公司 | 一种量子线路的生成方法、装置、存储介质及电子装置 |
CN114418105A (zh) * | 2020-10-28 | 2022-04-29 | 合肥本源量子计算科技有限责任公司 | 一种基于量子线路处理量子应用问题的方法及装置 |
CN115169568A (zh) * | 2022-07-20 | 2022-10-11 | 北京百度网讯科技有限公司 | 量子计算处理方法、装置及电子设备 |
WO2023021613A1 (ja) | 2021-08-18 | 2023-02-23 | 富士通株式会社 | 量子回路設計装置、量子回路設計プログラムおよび量子回路設計方法 |
-
2004
- 2004-03-01 JP JP2004056305A patent/JP2005250563A/ja active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114418105A (zh) * | 2020-10-28 | 2022-04-29 | 合肥本源量子计算科技有限责任公司 | 一种基于量子线路处理量子应用问题的方法及装置 |
CN114418105B (zh) * | 2020-10-28 | 2023-08-08 | 本源量子计算科技(合肥)股份有限公司 | 一种基于量子线路处理量子应用问题的方法及装置 |
CN112633508A (zh) * | 2020-11-30 | 2021-04-09 | 合肥本源量子计算科技有限责任公司 | 一种量子线路的生成方法、装置、存储介质及电子装置 |
CN112633508B (zh) * | 2020-11-30 | 2024-02-09 | 本源量子计算科技(合肥)股份有限公司 | 一种量子线路的生成方法、装置、存储介质及电子装置 |
WO2023021613A1 (ja) | 2021-08-18 | 2023-02-23 | 富士通株式会社 | 量子回路設計装置、量子回路設計プログラムおよび量子回路設計方法 |
CN115169568A (zh) * | 2022-07-20 | 2022-10-11 | 北京百度网讯科技有限公司 | 量子计算处理方法、装置及电子设备 |
CN115169568B (zh) * | 2022-07-20 | 2023-03-10 | 北京百度网讯科技有限公司 | 量子计算处理方法、装置及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Heyfron et al. | An efficient quantum compiler that reduces T count | |
CN108154240B (zh) | 一种低复杂度的量子线路模拟*** | |
Terhal et al. | Classical simulation of noninteracting-fermion quantum circuits | |
Verstraete et al. | Renormalization algorithms for quantum-many body systems in two and higher dimensions | |
Sgroi et al. | Reinforcement learning approach to nonequilibrium quantum thermodynamics | |
EP3221822B1 (en) | Method for efficient implementation of diagonal operators over clifford+t basis | |
Brod | Efficient classical simulation of matchgate circuits with generalized inputs and measurements | |
CA3109599A1 (en) | Quantum computer with exact compression of quantum states | |
JP2006345324A (ja) | 量子回路、量子誤り訂正装置および量子誤り訂正方法 | |
CN113222150A (zh) | 一种量子态的变换方法及装置 | |
WO2017131081A1 (ja) | 量子情報処理システム、量子情報処理方法、プログラム、及び記録媒体 | |
Alghassi et al. | Graver bases via quantum annealing with application to non-linear integer programs | |
Marshman et al. | Passive quantum error correction of linear optics networks through error averaging | |
Budroni et al. | Making the bkw algorithm practical for lwe | |
KR20190041887A (ko) | 양자 중첩을 활용한 양자 메모리와 양자 데이터베이스 | |
Wu et al. | Amplitude-aware lossy compression for quantum circuit simulation | |
JP2005250563A (ja) | 量子アルゴリズム実行装置及びその方法、プログラム及び記録媒体 | |
Shimoni et al. | Entangled quantum states generated by Shor’s factoring algorithm | |
Lin et al. | An efficient hybrid Taguchi-genetic algorithm for protein folding simulation | |
EP3206201A1 (en) | Non-decreasing sequence determining device, non-decreasing sequence determining method, and program | |
CN114692880B (zh) | 一种量子线路中量子态振幅的模拟方法及装置 | |
Wright et al. | Deterministic tensor network classifiers | |
EP3982350B1 (en) | Secret conjugate gradient method calculation system, secret calculation device, conjugate gradient method calculation device, secret conjugate gradient method calculation method, conjugate gradient method calculation method, and program | |
JP4260680B2 (ja) | ユニタリ行列分解方法、ユニタリ行列分解装置、ユニタリ行列分解プログラム及び記録媒体 | |
Gerdt et al. | A mathematica package for simulation of quantum computation |