(57)【要約】【課題】高い閾値を少ないリソースで実現する。【解決手段】成功したか失敗したかに関する失敗情報を伴う２量子ビットゲート操作法を用い、Pauliゲート、Hadamardゲート、CNOTゲートをtransversalに実行できるＮ誤り訂正コードを連結した連結コードを利用し、誤り訂正を誤り訂正テレポーテーションによって実行し、符号化された量子ビット（符号化ビットと称す）に対するCNOTゲート（符号化CNOTゲートと称す）を、誤り訂正テレポーテーションによって実行し、誤り訂正テレポーテーションのベル測定における、符号化されていない量子ビットの測定結果の処理において、レベル（ｌ＋１）の符号化ビットの失敗情報を適切に定義することにより、各レベルの符号化ビットの測定結果を決定すると同時に、各レベルの符号化ビットの失敗情報を定義することで、最上位レベルの符号化ビットである論理ビットの測定結果を決定する。【選択図】図１４
2010233066.tif 000002
【特許請求の範囲】
【請求項１】
成功したか失敗したかに関する失敗情報（失敗を示唆する失敗情報をＦ、成功を示唆する失敗情報をＳと表す）を伴う２量子ビットゲート操作法を用い、
２量子ビットゲートの失敗情報がＦ（Ｓ）のとき、そのゲート操作を行った２つの量子ビットの失敗情報をＦ（Ｓ）と定義し、
Pauliゲート、Hadamardゲート、制御NOTゲート（CNOTゲートと称す）をtransversalに実行できるＮ誤り訂正コード（Ｎは１以上の整数）を連結した連結コードを利用し、
誤り訂正を誤り訂正テレポーテーションによって実行し、
符号化された量子ビット（符号化ビットと称す）に対するCNOTゲート（符号化CNOTゲートと称す）を、
【数１】
2010233066.tif 000044
を利用した誤り訂正テレポーテーションによって実行し、
誤り訂正テレポーテーションのベル測定における、符号化されていない量子ビット（物理ビットと称す、物理ビットに対するゲートは物理ゲートと称す）の測定結果の処理において（ただし、レベル０（ｌ＝０）では「符号化ビット」を「物理ビット」と読み替え、「符号化CNOTゲート」を「物理CNOTゲート」と読み替える）、
１．                             レベル（ｌ＋１）（ｌは０以上の整数）の符号化ビットを構成するレベルｌの符号化ビットの失敗情報がすべてＳの場合、Ｎ誤り訂正を行ってレベル（ｌ＋１）の符号化ビットの測定値を決定し、このレベル（ｌ＋１）の符号化ビットの失敗情報をＳと定義し、
２．                             レベル（ｌ＋１）の符号化ビットを構成するレベルｌの符号化ビットの失敗情報のうちＦが１からＮ個の場合、失敗情報は無視してＮ誤り訂正を行ってレベル（ｌ＋１）の符号化ビットの測定値を決定し、このレベル（ｌ＋１）の符号化ビットの失敗情報をＳと定義し、
３．                             レベル（ｌ＋１）の符号化ビットを構成するレベルｌの符号化ビットの失敗情報のうちＦが（Ｎ＋１）から２Ｎ個の場合、
３−１．                       ２Ｎ消失誤り訂正コードとしてのシンドロームが、誤りなしを示すか、または、失敗情報がＦであるビットにのみ誤りがあることを示していれば、該Ｆであるビットを訂正してレベル（ｌ＋１）の符号化ビットの測定値を決定し、このレベル（ｌ＋１）の符号化ビットの失敗情報をＳと定義し、
３−２．                       ２Ｎ消失誤り訂正コードとしてのシンドロームが、誤りがあることを示し、かつ、失敗情報がＳであるビットに誤りがあることを示していれば、失敗情報は無視してＮ誤り訂正を行ってレベル（ｌ＋１）の符号化ビットの測定値を決定し、このレベル（ｌ＋１）の符号化ビットの失敗情報をＦと定義し、
４．                             レベル（ｌ＋１）の符号化ビットを構成するレベルｌの符号化ビットの失敗情報のうち（２Ｎ＋１）個以上がＦの場合、失敗情報は無視してＮ誤り訂正を行ってレベル（ｌ＋１）の符号化ビットの測定値を決定し、このレベル（ｌ＋１）の符号化ビットの失敗情報をＦと定義する、
ことにより、各レベルの符号化ビットの測定結果を決定すると同時に、各レベルの符号化ビットの失敗情報を定義することで、最上位レベルの符号化ビットである論理ビットの測定結果を決定することを特徴とする量子計算方法。
【請求項２】
レベル１の状態準備においては、用いる物理CNOTゲートの失敗情報がすべてＳとなるまで繰り返すというpostselectionを行い、
レベル（ｌ’＋１）（ｌ’は１以上の整数）の状態準備においては、用いるレベルｌ’の符号化CNOTゲートを
【数２】
2010233066.tif 000045
を利用した誤り訂正テレポーテーションで実行し、そのテレポーテーションのベル測定における物理ビットの測定結果の処理において、各レベルの符号化ビットの失敗情報の定義を請求項１の方法で決定するか、または、
１．                             レベル（ｌ＋１）の符号化ビットを構成するレベルｌの符号化ビットの失敗情報がすべてＳの場合、Ｎ誤り訂正を行ってレベル（ｌ＋１）の符号化ビットの測定値を決定し、このレベル（ｌ＋１）の符号化ビットの失敗情報をＳと定義する。
２．                             レベル（ｌ＋１）の符号化ビットを構成するレベルｌの符号化ビットの失敗情報のうちＦが１からＮ個の場合、
２−１．                       シンドロームｓが０ならば何もせず、ｓが０でなくシンドロームが示す誤りの場所がちょうど失敗情報が示す誤りの場所と一致していれば、シンドロームに従って誤り訂正を行ってレベル（ｌ＋１）の符号化ビットの測定値を決定し、このレベル（ｌ＋１）の符号化ビットの失敗情報をＳと定義し、
２−２．                       シンドロームｓが０でなく、シンドロームが示す誤りの場所と失敗情報が示す誤りの場所が一致しなければ、失敗情報は無視してＮ誤り訂正を行ってレベル（ｌ＋１）の符号化ビットの測定値を決定し、このレベル（ｌ＋１）の符号化ビットの失敗情報をＦと定義し、
３．                             レベル（ｌ＋１）の符号化ビットを構成するレベルｌの符号化ビットの失敗情報のうちＦが（Ｎ＋１）から２Ｎ個の場合、失敗情報は無視してＮ誤り訂正を行ってレベル（ｌ＋１）の符号化ビットの測定値を決定し、このレベル（ｌ＋１）の符号化ビットの失敗情報をＦと定義し、
４．                             レベル（ｌ＋１）の符号化ビットを構成するレベルｌの符号化ビットの失敗情報のうち（２Ｎ＋１）個以上がＦの場合、失敗情報は無視してＮ誤り訂正を行ってレベル（ｌ＋１）の符号化ビットの測定値を決定し、このレベル（ｌ＋１）の符号化ビットの失敗情報をＦと定義する、
ことにより、各レベルの符号化ビットの測定結果を決定すると同時に、各レベルの符号化ビットの失敗情報を定義して、最上位レベルの符号化ビットである論理ビットの測定結果および失敗情報を決定し、こうして決定された論理ビットの失敗情報が１つでもＦの場合は初めから作り直すというpostselectionを行うことで、準備された状態に含まれる誤りを少なくすることを特徴とする請求項１に記載の量子計算方法。
【請求項３】
量子誤り訂正コードとして、７量子ビットを用いるＳｔｅａｎｅの１誤り訂正コードを用いることを特徴とする請求項１または請求項２に記載の量子計算方法。
【請求項４】
成功したか失敗したかに関する失敗情報（失敗を示唆する失敗情報をＦ、成功を示唆する失敗情報をＳと表す）を伴う２量子ビットゲート操作法を用い、
２量子ビットゲートの失敗情報がＦ（Ｓ）のとき、そのゲート操作を行った２つの量子ビットの失敗情報をＦ（Ｓ）と定義し、
量子誤り訂正コードとしてKnillコード（レベル１は４ビットをビットペアにコード化する１ビット誤り検出コード、レベル２以上は３ビットペアを１ビットペアにコード化する１ビットペア誤り検出コードとする連結コード）を利用し、
誤り訂正を誤り訂正テレポーテーションによって実行し、
符号化された量子ビット（符号化ビットと称す）に対するCNOTゲート操作（符号化CNOTゲート操作と称す）を、
【数３】
2010233066.tif 000046
を利用した誤り訂正テレポーテーションによって実行し、
誤り訂正テレポーテーションのベル測定における、符号化されていない量子ビット（物理ビットと称す、物理ビットに対するゲートは物理ゲートと称す）の測定結果の処理において、
１．                             レベル１の４個の物理ビットの失敗情報がすべてＳの場合、誤り検出を行い、誤りが検出されなければレベル１の符号化ビットペアの測定値を決定してこのレベル１の符号化ビットペアの失敗情報をＳと定義し、誤りが検出されればこのレベル１の符号化ビットペアの失敗情報をＦと定義し、
２．                             レベル１の４個の物理ビットの失敗情報のうち１個がＦの場合、このビットに誤りがある消失誤りと見なして消失誤り訂正してレベル１の符号化ビットペアの測定値を決定し、このレベル１の符号化ビットペアの失敗情報をＳと定義し、
３．                             レベル１の４個の物理ビットの失敗情報のうち２個以上がＦの場合、このレベル１の符号化ビットペアの失敗情報をＦと定義し、
４．                             レベル（ｌ＋１）（ｌは１以上の整数）の符号化ビットペアを構成するレベルｌの符号化ビットペア３個の失敗情報がすべてＳの場合、誤り検出を行い、誤りが検出されなければレベル（ｌ＋１）の符号化ビットペアの測定値を決定してこのレベル（ｌ＋１）の符号化ビットペアの失敗情報をＳと定義し、誤りが検出されればこのレベル（ｌ＋１）の符号化ビットペアの失敗情報をＦと定義し、
５．                             レベル（ｌ＋１）の符号化ビットペアを構成するレベルｌの符号化ビットペア３個の失敗情報のうち１個がＦの場合、このビットペアに誤りがある消失誤りと見なして消失誤り訂正してレベル（ｌ＋１）の符号化ビットペアの測定値を決定し、このレベル（ｌ＋１）の符号化ビットペアの失敗情報をＳと定義し、
６．                             レベル（ｌ＋１）の符号化ビットペアを構成するレベルｌの符号化ビットペア３個の失敗情報のうち２個以上がＦの場合、このレベル（ｌ＋１）の符号化ビットペアの失敗情報をＦと定義する、
ことにより、各レベルの符号化ビットペアの測定結果を決定すると同時に、各レベルの符号化ビットペアの失敗情報を定義することで、最上位レベルの符号化ビットペアである論理ビットペアの測定結果を決定することを特徴とする量子計算方法。
【請求項５】
レベル１の状態準備においては、用いる物理CNOTゲートの失敗情報がすべてＳとなるまで繰り返すといpostselectionを行い、
レベル（ｌ’＋１）（ｌ’は１以上）の状態準備においては、用いるレベルｌ’の符号化CNOTゲートをテレポーテーションで実行し、そのテレポーテーションのベル測定における物理ビットの測定結果の処理において、各レベルの符号化ビットの失敗情報の定義を請求項４の方法で決定するか、または、
１．                             レベル１の４個の物理ビットの失敗情報がすべてＳの場合、誤り検出を行い、誤りが検出されなければレベル１の符号化ビットペアの測定値を決定してこのレベル１の符号化ビットペアの失敗情報をＳと定義し、誤りが検出されればこのレベル１の符号化ビットペアの失敗情報をＦと定義し、
２．                             レベル１の４個の物理ビットの失敗情報のうち１個がＦの場合、このビットに誤りがある消失誤りと見なして消失誤り訂正してレベル１の符号化ビットペアの測定値を決定し、このレベル１の符号化ビットペアの失敗情報をＦと定義し、
３．                             レベル１の４個の物理ビットの失敗情報のうち２個以上がＦの場合、このレベル１の符号化ビットペアの失敗情報をＦと定義し、
４．                             レベル（ｌ＋１）（ｌは１以上の整数）の符号化ビットペアを構成するレベルｌの符号化ビットペア３個の失敗情報がすべてＳの場合、誤り検出を行い、誤りが検出されなければレベル（ｌ＋１）の符号化ビットペアの測定値を決定してこのレベル（ｌ＋１）の符号化ビットペアの失敗情報をＳと定義し、誤りが検出されればこのレベル（ｌ＋１）の符号化ビットペアの失敗情報をＦと定義し、
５．                             レベル（ｌ＋１）の符号化ビットペアを構成するレベルｌの符号化ビットペア３個の失敗情報のうち１個がＦの場合、このビットペアに誤りがある消失誤りと見なして消失誤り訂正してレベル（ｌ＋１）の符号化ビットペアの測定値を決定し、このレベル（ｌ＋１）の符号化ビットペアの失敗情報をＦと定義し、
６．                             レベル（ｌ＋１）の符号化ビットペアを構成するレベルｌの符号化ビットペア３個の失敗情報のうち２個以上がＦの場合、このレベル（ｌ＋１）の符号化ビットペアの失敗情報をＦと定義する、
ことにより、各レベルの符号化ビットペアの測定結果を決定すると同時に、各レベルの符号化ビットペアの失敗情報を定義して、最上位レベルの符号化ビットペアである論理ビットペアの測定結果および失敗情報を決定し、こうして決定された論理ビットペアの失敗情報が１つでもＦの場合は初めから作り直すというpostselectionを行うことで、準備された状態に含まれる誤りを少なくすることを特徴とする請求項４に記載の量子計算方法。
【請求項６】
論理CNOTゲートを実行するために利用する
【数４】
2010233066.tif 000047
の準備において、この準備の最後に実行する論理CNOTゲートの後、これを実行した２つの論理ビットに対して誤り検出テレポーテーションを実行し、誤りが検出されたら初めから作り直すというpostselectionを行うことで、誤りの少ない｜χ＞を準備することを特徴とする請求項１から請求項５のいずれか１項に記載の量子計算方法。
【請求項７】
２Ｎ個の物理ビットからなる線形クラスター状態（｜＋＞＝｜０＞＋｜１＞という状態の２Ｎ個の物理ビットを一列に並べ、隣り合ったすべての物理ビットペアに対して制御位相反転ゲート（ＣＺゲートと称す）を行って得られるエンタングルド状態）の先端の物理ビットを、符号化ビットの各物理ビットにＣＺゲートで結合したものを符号化ビットとして用い、
２つの元の符号化ビットのそれぞれに属する２つの物理ビットに対してＣＺゲート（物理ＣＺゲートと称す）を行う際、これらの物理ビットに結合した線形クラスター状態の先端の２つの物理ビットに対して物理ＣＺゲートを行い、この物理ＣＺゲートが成功した場合は不要な線形クラスター状態の物理ビットをＸ測定して１量子ビットテレポーテーションによって削除し、失敗した場合はＣＺゲートを実行した物理ビットの隣りの物理ビットをＺ測定して先端の２つの物理ビットを切り離して再び物理ＣＺゲートを実行することにより、最大でＮ回の物理ＣＺゲートの失敗を許容できることを特徴とする請求項１から請求項６のいずれか１項に記載の量子計算方法。
【請求項８】
前記２Ｎ個の物理ビットからなる線形クラスター状態が結合した符号化ビットなどの状態の準備において用いる物理ＣＺゲートを実行する際（この物理ＣＺゲートを実行したい２つの物理ビットをそれぞれ物理ビット１、物理ビット２と称す）、（４Ｎ＋２）個の物理ビットからなる線形クラスター状態の中央の２つの物理ビットを物理ビット３および物理ビット４として、物理ビット１と物理ビット３、および、物理ビット２と物理ビット４に対して物理ＣＺゲートを実行し、この物理ＣＺゲートが成功した場合は不要な線形クラスター状態の物理ビットをＸ測定して１量子ビットテレポーテーションによって削除し、失敗した場合は物理ビット１および物理ビット２の隣りの物理ビットをＺ測定して準備している状態の先端の２つの物理ビットを切り離して新しい（４Ｎ＋２）個の物理ビットからなる線形クラスター状態の中央の２つの物理ビットの間で物理ＣＺゲートを実行することにより、常に最大でＮ回の物理ＣＺゲートの失敗を許容しながら状態を準備できることを特徴とする請求項７に記載の量子計算方法。
【請求項９】
少なくとも２つの安定な下状態｜０＞および｜１＞と１つの上状態｜２＞を有する物理系の下状態｜０＞および｜１＞を量子ビットとして使い、
各物理系の｜１＞−｜２＞間遷移と共鳴的に結合する共振器モードを有する片側光共振器を各物理系に１つずつ設置し、
２つの片側光共振器である第１の片側光共振器と第２の片側光共振器内の物理系の量子ビットに２量子ビットゲートを実行するために、
単一光子を第１の半波長板へ照射し、第１の半波長板を透過した光子は第１の偏光ビームスプリッターへ入射し、第１の偏光ビームスプリッターを透過した光子は第１の１／４波長板を通って第１の片側光共振器へ入射されて逆向きに反射され、第１の偏光ビームスプリッターによって反射された光子は第２の１／４波長板を通って第１の高反射ミラーによって逆向きに反射され、第１の片側光共振器によって反射された光子は第１の１／４波長板を通って第１の偏光ビームスプリッターへ入射されて反射され、第１の高反射ミラーによって反射された光子は第２の１／４波長板を通って第１の偏光ビームスプリッターへ入射されて透過し、第１の偏光ビームスプリッターから出力された光子は第２の半波長板へ入射され、第２の半波長板によって水平偏光および垂直偏光を量子ビットとしたHadamardゲートを光子に実行し、第２の半波長板を通った光子は第２の偏光ビームスプリッターへ入射され、第２の偏光ビームスプリッターを透過した光子は第３の１／４波長板を通って第２の光共振器へ入射されて逆向きに反射され、第２の偏光ビームスプリッターによって反射された光子は第４の１／４波長板を通って第２の高反射ミラーによって逆向きに反射され、第２の光共振器によって反射された光子は第３の１／４波長板を通って第２の偏光ビームスプリッターへ入射されて反射され、第２の高反射ミラーによって反射された光子は第４の１／４波長板を通って第２の偏光ビームスプリッターへ入射されて透過し、第２の偏光ビームスプリッターから出力された光子は第３の半波長板を通って第３の偏光ビームスプリッターへ入射され、第３の偏光ビームスプリッターで透過した光子は第１の光子検出器で検出され、第３の偏光ビームスプリッターで反射した光子は第２の光子検出器で検出され、第１および第２の光子検出器の検出結果に基づいて前記２つの量子ビットに１量子ビットゲートを実行することにより、これらの量子ビットに制御位相反転ゲートを実行し、
光子が検出されたときの失敗情報をＳ、光子が検出されなかったときの失敗情報をＦとすることで失敗情報を伴う２量子ビットゲートを実現することを特徴とする請求項１から請求項８のいずれか１項に記載の量子計算方法。
【請求項１０】
前記１／４波長板の代わりにファラデー回転子と半波長板を使用するか、または、
前記第１の１／４波長板および第２の１／４波長板の代わりに前記第１の偏光ビームスプリッターの手前に第１の光サーキュレータと、前記第３の１／４波長板および第４の１／４波長板の代わりに前記第２の偏光ビームスプリッターの手前に第２の光サーキュレータと、を使用することを特徴とする請求項９に記載の量子計算方法。
【請求項１１】
複数個の光学系と、１つの光学系から他の光学系へ光子を導く導光用光学系と、各光学系に単一光子を照射できる単一光子源と、偏光を調べる測定系である偏光測定系を具備する量子計算機において、
前記各光学系は、
前記単一光子源から単一光子を入射する第１の半波長板と、
前記第１の半波長板を透過した光子を入射する第１の偏光ビームスプリッターと、
前記第１の偏光ビームスプリッターを透過した光子を入射する第１の１／４波長板と、
前記第１の１／４波長板を透過した光を入射する光共振器であって、少なくとも２つの安定な下状態｜０＞および｜１＞と１つの上状態｜２＞を有する１つの物理系を内部に有し、その物理系の｜１＞−｜２＞間遷移と共鳴的に結合する共振器モードを有する光共振器と、
前記第１の偏光ビームスプリッターを反射した光子を入射する第２の１／４波長板と、
前記第２の１／４波長板を透過した光子を入射し、入射光と同じ方向かつ逆向きに入射光を反射する高反射ミラーと、を具備し、前記第１の偏光ビームスプリッターは、光子を次段の光学系に出力し、
前記導光用光学系は、第２の半波長板を具備し、
前記偏光測定系は、
光学系からの光子を入射する第３の半波長板と、
前記第３の半波長板を透過した光子を入射する第２の偏光ビームスプリッターと、
前記第２の偏光ビームスプリッターからの光を検出する２つの光検出器と、を具備し、
請求項９に記載の量子計算方法によって失敗情報を伴う２量子ビットゲートを実行し、
請求項１または請求項４に記載の量子計算方法によって誤り訂正を実行する誤り訂正装置を具備することを特徴とする量子計算機。
【請求項１２】
前記１／４波長板の代わりにファラデー回転子と半波長板、または、
前記第１の１／４波長板および第２の１／４波長板の代わりに前記第１の偏光ビームスプリッターの手前に第１の光サーキュレータを具備し、
請求項９の代わりに請求項１０に記載の量子計算方法によって失敗情報を伴う２量子ビットゲートを実行することを特徴とする請求項１１に記載の量子計算機。
【請求項１３】
成功したか失敗したかに関する失敗情報（失敗を示唆する失敗情報をＦ、成功を示唆する失敗情報をＳと表す）を伴う２量子ビットゲート操作法を用いた量子計算機の制御装置（コンピュータ）を動作させるプログラムであって、
２量子ビットゲートの失敗情報がＦ（Ｓ）のとき、そのゲート操作を行った２つの量子ビットの失敗情報をＦ（Ｓ）と定義し、
Pauliゲート、Hadamardゲート、制御NOTゲート（CNOTゲートと称す）をtransversalに実行できるＮ誤り訂正コード（Ｎは１以上の整数）を連結した連結コードを利用し、
誤り訂正を誤り訂正テレポーテーションによって実行し、
符号化された量子ビット（符号化ビットと称す）に対するCNOTゲート（符号化CNOTゲートと称す）を、
【数５】
2010233066.tif 000048
を利用した誤り訂正テレポーテーションによって実行し、
誤り訂正テレポーテーションのベル測定における、符号化されていない量子ビット（物理ビットと称す、物理ビットに対するゲートは物理ゲートと称す）の測定結果の処理において（ただし、レベル０（ｌ＝０）では「符号化ビット」を「物理ビット」と読み替え、「符号化CNOTゲート」を「物理CNOTゲート」と読み替える）、
１．                             レベル（ｌ＋１）（ｌは０以上の整数）の符号化ビットを構成するレベルｌの符号化ビットの失敗情報がすべてＳの場合、Ｎ誤り訂正を行ってレベル（ｌ＋１）の符号化ビットの測定値を決定し、このレベル（ｌ＋１）の符号化ビットの失敗情報をＳと定義し、
２．                             レベル（ｌ＋１）の符号化ビットを構成するレベルｌの符号化ビットの失敗情報のうちＦが１からＮ個の場合、失敗情報は無視してＮ誤り訂正を行ってレベル（ｌ＋１）の符号化ビットの測定値を決定し、このレベル（ｌ＋１）の符号化ビットの失敗情報をＳと定義し、
３．                             レベル（ｌ＋１）の符号化ビットを構成するレベルｌの符号化ビットの失敗情報のうちＦが（Ｎ＋１）から２Ｎ個の場合、
３−１．                       ２Ｎ消失誤り訂正コードとしてのシンドロームが、誤りなしを示すか、または、失敗情報がＦであるビットにのみ誤りがあることを示していれば、該Ｆであるビットを訂正してレベル（ｌ＋１）の符号化ビットの測定値を決定し、このレベル（ｌ＋１）の符号化ビットの失敗情報をＳと定義し、
３−２．                       ２Ｎ消失誤り訂正コードとしてのシンドロームが、誤りがあることを示し、かつ、失敗情報がＳであるビットに誤りがあることを示していれば、失敗情報は無視してＮ誤り訂正を行ってレベル（ｌ＋１）の符号化ビットの測定値を決定し、このレベル（ｌ＋１）の符号化ビットの失敗情報をＦと定義し、
４．                             レベル（ｌ＋１）の符号化ビットを構成するレベルｌの符号化ビットの失敗情報のうち（２Ｎ＋１）個以上がＦの場合、失敗情報は無視してＮ誤り訂正を行ってレベル（ｌ＋１）の符号化ビットの測定値を決定し、このレベル（ｌ＋１）の符号化ビットの失敗情報をＦと定義する、
ことにより、各レベルの符号化ビットの測定結果を決定すると同時に、各レベルの符号化ビットの失敗情報を定義することで、最上位レベルの符号化ビットである論理ビットの測定結果を決定することを特徴とする量子計算用プログラム。
【請求項１４】
成功したか失敗したかに関する失敗情報（失敗を示唆する失敗情報をＦ、成功を示唆する失敗情報をＳと表す）を伴う２量子ビットゲート操作法を用いた量子計算機の制御装置（コンピュータ）を動作させるプログラムであって、
２量子ビットゲートの失敗情報がＦ（Ｓ）のとき、そのゲート操作を行った２つの量子ビットの失敗情報をＦ（Ｓ）と定義し、
量子誤り訂正コードとしてKnillコード（レベル１は４ビットをビットペアにコード化する１ビット誤り検出コード、レベル２以上は３ビットペアを１ビットペアにコード化する１ビットペア誤り検出コードとする連結コード）を利用し、
誤り訂正を誤り訂正テレポーテーションによって実行し、
符号化された量子ビット（符号化ビットと称す）に対するCNOTゲート操作（符号化CNOTゲート操作と称す）を、
【数６】
2010233066.tif 000049
を利用した誤り訂正テレポーテーションによって実行し、
誤り訂正テレポーテーションのベル測定における、符号化されていない量子ビット（物理ビットと称す、物理ビットに対するゲートは物理ゲートと称す）の測定結果の処理において、
１．                             レベル１の４個の物理ビットの失敗情報がすべてＳの場合、誤り検出を行い、誤りが検出されなければレベル１の符号化ビットペアの測定値を決定してこのレベル１の符号化ビットペアの失敗情報をＳと定義し、誤りが検出されればこのレベル１の符号化ビットペアの失敗情報をＦと定義し、
２．                             レベル１の４個の物理ビットの失敗情報のうち１個がＦの場合、このビットに誤りがある消失誤りと見なして消失誤り訂正してレベル１の符号化ビットペアの測定値を決定し、このレベル１の符号化ビットペアの失敗情報をＳと定義し、
３．                             レベル１の４個の物理ビットの失敗情報のうち２個以上がＦの場合、このレベル１の符号化ビットペアの失敗情報をＦと定義し、
４．                             レベル（ｌ＋１）（ｌは１以上の整数）の符号化ビットペアを構成するレベルｌの符号化ビットペア３個の失敗情報がすべてＳの場合、誤り検出を行い、誤りが検出されなければレベル（ｌ＋１）の符号化ビットペアの測定値を決定してこのレベル（ｌ＋１）の符号化ビットペアの失敗情報をＳと定義し、誤りが検出されればこのレベル（ｌ＋１）の符号化ビットペアの失敗情報をＦと定義し、
５．                             レベル（ｌ＋１）の符号化ビットペアを構成するレベルｌの符号化ビットペア３個の失敗情報のうち１個がＦの場合、このビットペアに誤りがある消失誤りと見なして消失誤り訂正してレベル（ｌ＋１）の符号化ビットペアの測定値を決定し、このレベル（ｌ＋１）の符号化ビットペアの失敗情報をＳと定義し、
６．                             レベル（ｌ＋１）の符号化ビットペアを構成するレベルｌの符号化ビットペア３個の失敗情報のうち２個以上がＦの場合、このレベル（ｌ＋１）の符号化ビットペアの失敗情報をＦと定義する、
ことにより、各レベルの符号化ビットペアの測定結果を決定すると同時に、各レベルの符号化ビットペアの失敗情報を定義することで、最上位レベルの符号化ビットペアである論理ビットペアの測定結果を決定することを特徴とする量子計算用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、量子誤り訂正を利用した量子計算（フォールトトレラント量子計算）の方法およびこの方法に基づく量子計算機に関する。
【背景技術】
【０００２】
近年量子計算機の研究が盛んである。普通の計算（古典計算）に比べて、量子計算ではデコヒーレンスによるメモリー誤りがある上に信頼性の高いゲート操作が困難であるため、誤り訂正が極めて重要となる。量子誤り訂正の理論によると、量子誤り訂正コードを使うことによって、計算量の増加に伴う計算結果の誤り確率の急激な上昇を抑えることができる。このように誤り訂正しながら計算を行うことをフォールトトレラント計算と呼ぶ。この結果、基本的な誤り（メモリー誤り、１量子ビットゲートの誤り、２量子ビットゲートの誤り、量子ビットの初期化の誤り、量子ビットの測定の誤り）の確率がある値（この値を閾値と呼ぶ）よりも小さければ、最終的な計算結果の誤り確率をいくらでも下げることができる（すなわち、いくらでも長い計算が可能となる）。これは閾値定理（threshold theorem）と呼ばれ、量子情報科学において最も重要な結果の１つである。閾値定理の観点から見ると、量子計算機の実現が現在困難なのは、基本的な誤りの確率を閾値以下にすることが困難であるため、ということができる。そこで、もし誤り訂正の方法の工夫などによって閾値を上げることができれば、量子計算機の実現がより容易になると考えられる。
【０００３】
閾値の値は、当初は１０−４〜１０−６と非常に小さく見積もられていたが、最近では１０−２〜１０−３まで上げられることがわかっている（例えば、非特許文献１、非特許文献２、非特許文献３参照）。しかし、依然として小さい値であり、より大きな閾値を実現することが望まれる。また、高い閾値を実現するには多くのリソース（基本操作の回数）がかかってしまうという問題があり（例えば、非特許文献２、非特許文献３参照）、高い閾値を少ないリソースで実現することが理想的である。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】M. A. Steane, Phys. Rev. A 68, 042322 (2003).
【非特許文献２】E. Knill, Nature 434, 39 (2005).
【非特許文献３】B. W. Reichardt, e-print arXiv:quant-ph/0406025.
【発明の概要】
【発明が解決しようとする課題】
【０００５】
このように高い閾値を少ないリソースで実現することが困難であるという問題がある。  
本発明は、上記事情を考慮してなされたものであって、高い閾値を少ないリソースで実現する量子計算方法、量子計算機およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述の課題を解決するため、本発明の量子計算方法は、成功したか失敗したかに関する失敗情報（失敗を示唆する失敗情報をＦ、成功を示唆する失敗情報をＳと表す）を伴う２量子ビットゲート操作法を用い、２量子ビットゲートの失敗情報がＦ（Ｓ）のとき、そのゲート操作を行った２つの量子ビットの失敗情報をＦ（Ｓ）と定義し、Pauliゲート、Hadamardゲート、制御NOTゲート（CNOTゲートと称す）をtransversalに実行できるＮ誤り訂正コード（Ｎは１以上の整数）を連結した連結コードを利用し、誤り訂正を誤り訂正テレポーテーションによって実行し、符号化された量子ビット（符号化ビットと称す）に対するCNOTゲート（符号化CNOTゲートと称す）を、
【数１】
2010233066.tif 000003
【０００７】
を利用した誤り訂正テレポーテーションによって実行し、誤り訂正テレポーテーションのベル測定における、符号化されていない量子ビット（物理ビットと称す、物理ビットに対するゲートは物理ゲートと称す）の測定結果の処理において（ただし、レベル０（ｌ＝０）では「符号化ビット」を「物理ビット」と読み替え、「符号化CNOTゲート」を「物理CNOTゲート」と読み替える）、
１．                             レベル（ｌ＋１）（ｌは０以上の整数）の符号化ビットを構成するレベルｌの符号化ビットの失敗情報がすべてＳの場合、Ｎ誤り訂正を行ってレベル（ｌ＋１）の符号化ビットの測定値を決定し、このレベル（ｌ＋１）の符号化ビットの失敗情報をＳと定義し、
２．                             レベル（ｌ＋１）の符号化ビットを構成するレベルｌの符号化ビットの失敗情報のうちＦが１からＮ個の場合、失敗情報は無視してＮ誤り訂正を行ってレベル（ｌ＋１）の符号化ビットの測定値を決定し、このレベル（ｌ＋１）の符号化ビットの失敗情報をＳと定義し、
３．                             レベル（ｌ＋１）の符号化ビットを構成するレベルｌの符号化ビットの失敗情報のうちＦが（Ｎ＋１）から２Ｎ個の場合、
３−１．                       ２Ｎ消失誤り訂正コードとしてのシンドロームが、誤りなしを示すか、または、失敗情報がＦであるビットにのみ誤りがあることを示していれば、該Ｆであるビットを訂正してレベル（ｌ＋１）の符号化ビットの測定値を決定し、このレベル（ｌ＋１）の符号化ビットの失敗情報をＳと定義し、
３−２．                       ２Ｎ消失誤り訂正コードとしてのシンドロームが、誤りがあることを示し、かつ、失敗情報がＳであるビットに誤りがあることを示していれば、失敗情報は無視してＮ誤り訂正を行ってレベル（ｌ＋１）の符号化ビットの測定値を決定し、このレベル（ｌ＋１）の符号化ビットの失敗情報をＦと定義し、
４．                             レベル（ｌ＋１）の符号化ビットを構成するレベルｌの符号化ビットの失敗情報のうち（２Ｎ＋１）個以上がＦの場合、失敗情報は無視してＮ誤り訂正を行ってレベル（ｌ＋１）の符号化ビットの測定値を決定し、このレベル（ｌ＋１）の符号化ビットの失敗情報をＦと定義する、
ことにより、各レベルの符号化ビットの測定結果を決定すると同時に、各レベルの符号化ビットの失敗情報を定義することで、最上位レベルの符号化ビットである論理ビットの測定結果を決定することを特徴とする。
【０００８】
また、本発明の量子計算方法は、成功したか失敗したかに関する失敗情報（失敗を示唆する失敗情報をＦ、成功を示唆する失敗情報をＳと表す）を伴う２量子ビットゲート操作法を用い、２量子ビットゲートの失敗情報がＦ（Ｓ）のとき、そのゲート操作を行った２つの量子ビットの失敗情報をＦ（Ｓ）と定義し、量子誤り訂正コードとしてKnillコード（レベル１は４ビットをビットペアにコード化する１ビット誤り検出コード、レベル２以上は３ビットペアを１ビットペアにコード化する１ビットペア誤り検出コードとする連結コード）を利用し、誤り訂正を誤り訂正テレポーテーションによって実行し、符号化された量子ビット（符号化ビットと称す）に対するCNOTゲート操作（符号化CNOTゲート操作と称す）を、
【数２】
2010233066.tif 000004
【０００９】
を利用した誤り訂正テレポーテーションによって実行し、誤り訂正テレポーテーションのベル測定における、符号化されていない量子ビット（物理ビットと称す、物理ビットに対するゲートは物理ゲートと称す）の測定結果の処理において、
１．                             レベル１の４個の物理ビットの失敗情報がすべてＳの場合、誤り検出を行い、誤りが検出されなければレベル１の符号化ビットペアの測定値を決定してこのレベル１の符号化ビットペアの失敗情報をＳと定義し、誤りが検出されればこのレベル１の符号化ビットペアの失敗情報をＦと定義し、
２．                             レベル１の４個の物理ビットの失敗情報のうち１個がＦの場合、このビットに誤りがある消失誤りと見なして消失誤り訂正してレベル１の符号化ビットペアの測定値を決定し、このレベル１の符号化ビットペアの失敗情報をＳと定義し、
３．                             レベル１の４個の物理ビットの失敗情報のうち２個以上がＦの場合、このレベル１の符号化ビットペアの失敗情報をＦと定義し、
４．                             レベル（ｌ＋１）（ｌは１以上の整数）の符号化ビットペアを構成するレベルｌの符号化ビットペア３個の失敗情報がすべてＳの場合、誤り検出を行い、誤りが検出されなければレベル（ｌ＋１）の符号化ビットペアの測定値を決定してこのレベル（ｌ＋１）の符号化ビットペアの失敗情報をＳと定義し、誤りが検出されればこのレベル（ｌ＋１）の符号化ビットペアの失敗情報をＦと定義し、
５．                             レベル（ｌ＋１）の符号化ビットペアを構成するレベルｌの符号化ビットペア３個の失敗情報のうち１個がＦの場合、このビットペアに誤りがある消失誤りと見なして消失誤り訂正してレベル（ｌ＋１）の符号化ビットペアの測定値を決定し、このレベル（ｌ＋１）の符号化ビットペアの失敗情報をＳと定義し、
６．                             レベル（ｌ＋１）の符号化ビットペアを構成するレベルｌの符号化ビットペア３個の失敗情報のうち２個以上がＦの場合、このレベル（ｌ＋１）の符号化ビットペアの失敗情報をＦと定義する、ことにより、各レベルの符号化ビットペアの測定結果を決定すると同時に、各レベルの符号化ビットペアの失敗情報を定義することで、最上位レベルの符号化ビットペアである論理ビットペアの測定結果を決定することを特徴とする。
【発明の効果】
【００１０】
本発明の量子計算方法、量子計算機およびプログラムによれば、高い閾値を少ないリソースで実現することができる。
【図面の簡単な説明】
【００１１】
【図１】３ビットを１ビットにコード化した場合のTransversal CNOTゲートの一例を示す図。
【図２】誤り訂正テレポーテーションを説明するための図。
【図３】テレポーテーションによってCNOTゲートを実行するために必要な４量子ビット状態｜χ＞の生成手法を説明するための量子回路図。
【図４】｜χ＞の第２ビットがCNOTゲート後の標的ビット、｜χ＞の第３ビットがCNOT後の制御ビットとなることを示す量子回路図。
【図５】Steaneコードの場合のシミュレーション結果を示す図（縦軸および横軸はlogスケール）。
【図６】Knillコードの場合のシミュレーション結果を示す図（縦軸および横軸はlogスケール）。
【図７】Steaneコードで状態準備における誤りを減らした場合のシミュレーション結果を示す図（縦軸および横軸はlogスケール）。
【図８】リソースのシミュレーション結果を示す図。
【図９】１量子ビットテレポーテーションを説明するための図。
【図１０】線形クラスター状態を結合したレベル１のSteaneコードを表す図。
【図１１】線形クラスター状態を結合した状態にＣＺゲートを実行する手順を示す図。
【図１２】線形クラスター状態を結合した符号化ビットを準備する際のＣＺゲートを実行する手順を示す図。
【図１３】Duanらの制御位相反転ゲートの方法を説明するための図。
【図１４】実施例の量子計算機の基本構成図。
【図１５】実施例で用いる物理系のエネルギー準位構造を示す図。
【図１６】実施例で用いる切り替え可能ミラーを実現するためのリング共振器を示す図。
【発明を実施するための形態】
【００１２】
以下、図面を参照しながら本発明の実施形態に係る量子計算方法、量子計算機およびプログラムについて詳細に説明する。なお、以下の実施形態では、同一の番号を付した部分については同様の動作を行うものとして、重ねての説明を省略する。  
閾値の理論的な推定値は次のものに依存する。  
１．   量子誤り訂正コード  
２．   誤りモデル  
３．   フォールトトレラント量子計算の方法
本発明の量子計算方法では、量子誤り訂正コードは既存のものを用いる（詳しくは後述）。誤りモデルは通常はできる限り一般的なものが仮定されるが、本発明では特殊なものを考える（後述）。フォールトトレラント量子計算の方法は、Knillによって提案された誤り訂正テレポーテーション（例えばE. Knill, Phys. Rev. A 71, 042322(2005)参照）を、上記の特殊な誤りモデルに最適な形に改良した方法を用いる。以下、まず、本発明で扱う誤りモデルについて詳しく述べ、次に、本発明のフォールトトレラント量子計算の方法について説明する。その説明の中で、利用する量子誤り訂正コードについても述べる。
【００１３】
＜本発明の量子計算方法で扱う誤りモデル＞  
本発明の量子計算方法では、２量子ビットゲートの実現法として、成功したか失敗したかに関する情報（以下、これを失敗情報と呼ぶ）が得られるような方法を採用する。以下、失敗を示唆する失敗情報をＦ、成功を示唆する失敗情報をＳと表す。ここで、もしも失敗情報がＳのときに成功する確率が１ならば誤りの起きた場所を失敗情報によってあらかじめ特定できる。このような誤りは消失誤り（erasure error）と呼ばれる。  
このような方法としては、Duanらによって提案されている光共振器と単一光子を用いた方法が知られている（L.-M. Duan, B. Wang, H. J. Kimble, Phys. Rev. A 72, 032333 (2005)参照）。このDuanらの方法は、ゲート操作を行う際に照射する単一光子を検出し、光子が検出された場合は高い確率で２量子ビットゲートが成功し、検出されなかった場合は高い確率で失敗する、というものであり、光子の検出結果が失敗情報となる。本発明の量子計算方法は、このような特殊な２量子ビットゲートを利用することを前提とし、その場合に適した量子誤り訂正方法を提案し、それによって高い閾値を実現するものである。この失敗情報を伴う２量子ビットゲートにおいて、失敗情報がＦとなる確率をｐＦと表し、これをゲートの失敗確率と呼ぶ。そして、失敗情報がＦとなった条件下での誤り確率をｐＦｅ、失敗情報がＳとなった条件下での誤り確率をｐＳｅと表す。このように、失敗情報を伴う２量子ビットゲートは３つの確率ｐＦ、ｐＦｅ、ｐＳｅで特徴付けられる。失敗情報の定義より、ｐＦｅ＞＞ｐＳｅとする。失敗情報を無視したときの誤り確率（失敗情報がＳの場合とＦの場合を合わせた誤り確率）は下記（１）となる。
【数３】
2010233066.tif 000005
【００１４】
特に、ｐＳｅが非常に小さくｐＦｅが１に近い場合は下記（２）となる。
【数４】
2010233066.tif 000006
【００１５】
この場合に、本発明の方法を使わずに失敗情報を無視して従来の量子誤り訂正方法を用いたとすると、閾値の条件は「ｐＦが従来の閾値１０−２〜１０−３よりも小さい」となる。なお「Ａ〜Ｂ」の表記では、ＡおよびＢを数値とした場合「ＡからＢまで」の意味で「〜」を使用する。上記のDuanの方法の場合、この閾値条件は緩和（原子の励起状態の緩和と光共振器の共振器モードの緩和の２つがある）が非常に遅くなければならないという厳しい条件を課すことになる。後述するように、本発明の方法を用いれば、ｐＦに対する閾値を閾値１０−２〜１０−３よりもはるかに高くすることが可能となる。
【００１６】
上で述べた失敗情報を伴う２量子ビットゲートとして、上述のDuanらのゲートの他にKnillらによって提案された線形光学素子量子計算（例えばE. Knill, R. Laflamme, and G. J. Milburn, Nature 409, 46 (2001)）のゲートがよく知られている。このゲートでは原理的に失敗確率が非常に高く、その高い失敗確率に対してフォールトトレラント計算を行うために様々な工夫が提案されている。中でもクラスター状態と呼ばれるエンタングルド状態を利用することが有効であることがわかっており、それと様々な手法を組み合わせて比較的高い閾値が達成できることが示されている（例えばC. M. Dawson, H. L. Haselgrove, and M. A. Nielsen, Phys. Rev. A 73, 052306 (2006)参照）。このDawsonらの方法は本発明の方法に似ている点が多いが、彼らの方法がクラスター状態を多用していることや線形光学素子量子計算特有の手法を用いていることなどから、本発明とは異なる（誤り訂正方法の詳細も異なる）。本発明においても、クラスター状態の手法を応用することにより、失敗確率に対する閾値を上げることが可能である。それについては後に述べることとし、まずはクラスター状態を使わない方法について説明する。
【００１７】
上述の２量子ビットゲートに関する仮定に加え、以下で考察する誤りモデルに関して、次の２つのことを仮定する。  
１．   ２量子ビットゲートの誤りはいわゆる「depolarizingモデル」でモデル化する。ここで、「depolarizingモデル」とはPauli誤りが均等な確率で起こるものであり、ｊ番目とｋ番目の量子ビットに対する２量子ビットゲートの誤りは、下記（３）で定義される。  
【数５】
2010233066.tif 000007
【００１８】
ここで、誤り確率をｐｅ、ｊ番目の量子ビットに対する恒等演算子およびPauli演算子をＩｊ、Ｘｊ、Ｙｊ、Ｚｊ、全系の状態を表す密度演算子をρとした。（以下、このような誤りを「depolarizing誤り」と呼ぶ。）Depolarizingモデルは最もよく使われる誤りモデルであり、解析が非常に簡単になるというメリットがある。また、depolarizingモデルに対して耐性のある量子誤り訂正はその他の誤りモデルに対しても有効だと考えられている（例えば、C. M. Dawson, H. L. Haselgrove, and M. A. Nielsen, Phys. Rev. A 73, 052306 (2006)参照）。そこで、ここではdepolarizingモデルを仮定する。
【００１９】
２．   量子ビットの初期化の誤りは、誤り確率ｐｐで正しい状態と直交した状態に初期化されるとしてモデル化する。  
３．   量子ビットの測定の誤りは、誤り確率ｐｍで正しい状態と直交した状態として測定されるとしてモデル化する。
【００２０】
４．   基本的な誤りのうち、２量子ビットゲートの誤りが主要な誤りであるとし、その他の誤りの確率は小さいとする。つまり、他の誤り（メモリー誤り、１量子ビットゲートの誤り、量子ビットの初期化の誤り、量子ビットの測定の誤り）の確率が下記（４）に比べて小さいとする。  
【数６】
2010233066.tif 000008
【００２１】
５．   メモリー誤りおよび１量子ビットゲートの誤りは無視する。  
簡単のためここではこれらの誤り確率は十分小さいとして考えないが、前後の操作の誤り確率を少し増やして考慮することもできる。
【００２２】
＜本発明の量子計算方法におけるフォールトトレラント量子計算の方法＞  
次に、本発明のフォールトトレラント量子計算方法について説明する。以下の説明において、次の２つのことを仮定する。  
１．   量子誤り訂正コードは連結コード（concatenated code）とする。ここで、連結コードとは、まず、原子のエネルギー準位などで表された量子ビット（「物理ビット（physical qubit）」と呼ぶ）を複数用いてコード化して量子ビットを構成し（これを「レベル１の符号化ビット（encoded qubit)」と呼ぶ）、さらに、レベル１の符号化ビットを複数用いてコード化してレベル２の符号化ビットを構成する、というようにして大きなコードを構成するものである。物理ビットに対するゲートは「物理ゲート（physical gate）」、符号化ビットに対するゲートは「符号化ゲート（encoded gate）」と呼ぶ。レベル０は、物理ビット、物理ゲートを指すものとする。また、最上位のレベルの符号化ビットは、計算に使われる符号化ビットであるため、他の符号化ビットと区別して論理ビット（logical qubit）と呼び、論理ビットに対するゲートは論理ゲート（logical gate）と呼ぶ。
【００２３】
２．   利用する量子誤り訂正（または検出）コードは、Pauliゲート（Pauli演算子Ｘ，Ｙ，Ｚを行うゲートをPauliゲートと呼び、Ｘ，Ｙ，Ｚに対応してそれぞれＸゲート、Ｙゲート、Ｚゲートと呼ぶ）、制御ＮＯＴゲート（CNOTゲート）、Hadamardゲートを“Transversal”に実行できるものとする（これまでに研究されている多くのコードはこれを満たす）。ここで、「ゲートを“Transversal”に実行できる」とは、ｎ個の物理ビットをコード化してｍ個の符号化ビットを構成した場合、ｎ個の物理ビットにそれぞれ独立にある物理ゲートＧまたはＩ（恒等演算子）を行うと、ｍ個の符号化ビットのそれぞれに符号化ゲートＧが実行されることを言う（ｍ，ｎは正の整数）。例えば、３ビットを１ビットにコード化した場合のTransversal CNOTゲートは図１のようになる。また、Hadamardゲートは次の（５）のように定義される。
【数７】
2010233066.tif 000009
【００２４】
ここで、任意の量子計算を論理ビット（符号化された量子ビット）に対して実行する方法について説明する。Pauliゲート、CNOTゲート、Hadamardゲート、下記（６）で定義されるphaseゲート、および、これらのゲートの組み合わせはCliffordゲートと呼ばれる。
【数８】
2010233066.tif 000010
【００２５】
ユニバーサルな量子計算にはCliffordゲートだけでは足りず、これらに加え、ある種の状態、例えば、下記（７）という状態を準備できればよいことが知られている（このような状態をマジック状態（magic state）と呼ぶ）。
【数９】
2010233066.tif 000011
【００２６】
｜Ｈ＞とCNOTゲートを使うとnon-Cliffordゲートであるπ／８ゲート：下記（８）を実行でき、これとCliffordゲートでユニバーサル量子計算が可能となる。
【数１０】
2010233066.tif 000012
【００２７】
また、π／８ゲートを２回行うとphaseゲートが実行できる。よって、任意の量子計算を論理ビットに対して実行できるためには、論理ビットに対してPauliゲート、CNOTゲート、Hadamardゲートが実行でき、上記の｜Ｈ＞を論理ビットによって準備できればよい。論理ビットに対するPauliゲート、CNOTゲート、HadamardゲートはTransversalに実行できる。また、｜Ｈ＞Ｌ（添え字Ｌは論理ビットであることを表す）の準備は以下のように“復号化（decoding）”によって行う（例えばE. Knill, Nature 434, 39 (2005)参照）。まず、Cliffordゲート（phaseゲートは不要）によって論理ビットを用いた下記（９）のベル状態を準備し、この第１ビットをCliffordゲート（phaseゲートは不要）によって物理ビットへ“復号化（decoding）”し（下記（１０））、第１ビットに次のように１量子ビットゲートを行い、下記（１１）となり、この第１ビットを測定する。この測定で｜０＞を得た場合、第２ビットは｜Ｈ＞Ｌとなる。
【数１１】
2010233066.tif 000013
【００２８】
上でユニバーサルな量子計算を論理ビットに対して行う方法を説明した。ここで、閾値を考える際はCliffordゲート（phaseゲートは不要）のみを考えればよいことを説明する。誤り訂正によって論理ビットに対するCliffordゲートは十分高い信頼性で実行できると仮定する。もし理想的なマジック状態｜Ｈ＞Ｌが準備できれば、信頼性の高い論理Cliffordゲートと合わせて信頼性の高いユニバーサルな量子計算が可能となる。しかし、上述のように復号化を使って｜Ｈ＞Ｌを準備すると、途中の論理ゲートでない符号化ゲートや物理ゲートによって誤りが加わり、理想的なマジック状態｜Ｈ＞Ｌにはならない。そこで、この誤りを含んだ｜Ｈ＞Ｌを複数準備し、これらから誤りの少ない｜Ｈ＞Ｌを取り出すことを考える。この手法はマジック状態蒸留（magic state distillation）と呼ばれる（例えばB. W. Reichardt, e-print ArXiv:quant-ph/0612004参照）。マジック状態蒸留を使うと、初めの｜Ｈ＞Ｌの誤り確率が小さければ、論理Cliffordゲートのみを使っていくらでも理想的に近いマジック状態を作ることができる。この｜Ｈ＞Ｌの誤り確率に対する条件は数１０％以下と非常に緩いため、この条件は閾値にはほとんど効かない。よって、閾値の条件は信頼性の高い論理Cliffordゲートを実現するための条件となる。特に、CNOTゲートの誤り確率はPauliゲートとHadamardゲートに比べて大きいので、閾値の条件は信頼性の高い論理CNOTゲートを実現するための条件となる。（このため、後で説明するシミュレーションによる閾値の見積もりでは、論理CNOTゲートの誤り確率を計算する。）
それでは、本発明の量子誤り訂正方法について説明する。失敗情報を伴う２量子ビットゲートに適した量子誤り訂正方法とするために、本発明の方法はKnillによって提案された誤り訂正テレポーテーションという量子誤り訂正方法に基づく（例えばE. Knill, Phys. Rev. A 71, 042322(2005)参照）。そこでまず、誤り訂正テレポーテーションについて簡単に説明する（図２参照）。誤り訂正テレポーテーションとは、簡単に言うと論理ビットを用いた量子テレポーテーションのことである。まず、論理ビット（最上位レベルの符号化ビット）を用いてベル状態｜Ｂ＞Ｌ＝（｜００＞Ｌ＋｜１１＞Ｌ）を準備し（添え字Ｌは論理ビットであることを表す）、この第１ビットと誤り訂正を行いたい入力ビット（これも論理ビット）に対していわゆるベル測定を行う。ベル測定では、CNOTゲートを行った後にビット測定を行う。（このゲート操作とビット測定は論理ビットに対するものであるが、論理CNOTゲートは物理CNOTゲートをTransversalに行えばよく、論理ビットの測定は物理ビットの測定によってできる。）ビット測定の基底は、CNOTゲートの制御ビットに対しては｛｜＋＞，｜−＞｝、標的ビットに対しては｛｜０＞，｜１＞｝とする。（これらの測定はそれぞれ２つのPauli演算子ＸとＺの固有値の測定と同じ（固有値１がビット０、固有値−１がビット１に対応）なので、Ｘ測定、Ｚ測定と呼ぶ。図２ではこれに対応して、測定をＭＸ，ＭＺで表している。また、Ｘ測定は、Hadamardゲートを行ってからＺ測定をすることと同じである。）測定結果に対応して、ベル状態の第２ビットは入力状態にＩ，Ｘ，Ｙ，Ｚのいずれかがかかった状態となる（Ｘ測定、Ｚ測定の結果が（０，０）ならＩ、（０，１）ならＸ、（１，０）ならＺ、（１，１）ならＹである）。測定結果に基づいて、かかっている演算子の逆演算（かかっている演算子と同じ）を行えば、ベル状態の第２ビットは入力状態となる。これが量子テレポーテーションである。以上の処理において、出力であるベル状態の第２ビットに生じる主要な誤りは、ベル測定の結果に基づいて行う論理Pauliゲートの選択ミスである。（論理Pauliゲートの実行はTransversalに各物理ビットにPauliゲートを行えばよく、誤り確率は低く、問題にならない。また、続く操作がCliffordゲートであれば、何もせずに次のテレポーテーションの論理Pauliゲートと合わせることができる。つまり、次のnon-Cliffordゲートが来るまでは論理Pauliゲートを実行する必要はない。例えばE. Knill, Phys. Rev. A 71, 042322(2005)参照。）ここで、入力状態もベル状態も符号化された状態を使っているので、物理ビットの測定結果に対して誤り訂正を行って論理ビットに対するベル測定の結果を高い正確さで得ることができる。その結果、出力に生じる誤りの確率を小さくできる。これがKnillの誤り訂正テレポーテーションである。
【００２９】
論理Pauliゲートと論理HadamardゲートはTransversalに実行することで低い誤り確率で実行でき、その誤りに対して誤り訂正を行う場合は、ゲートを行った論理ビットを入力ビットとして上で説明した誤り訂正テレポーテーションを行えばよい。論理CNOTゲートは（KnillがNature 434, 39 (2005)でそうしたように）Transversalに行うこともできるがそうはせず、図３のようにして得られる４ビット状態｜χ＞を用いたテレポーテーションを用いて行うことにする。（２つの量子ビット（制御ビットと標的ビット）にCNOTゲートを行う場合、｜χ＞の第１ビットと制御ビットに対するベル測定と｜χ＞の第４ビットと標的ビットに対するベル測定からなる２回のテレポーテーション操作を行う。その結果、｜χ＞の第２ビットがCNOTゲート後の標的ビット、｜χ＞の第３ビットがCNOT後の制御ビットとなる。（図４およびD. Gottesman and I. L. Chuang, Nature 402, 390 (1999)参照。）前述のように、ユニバーサル量子計算に必要なゲート操作は以上のものだけである。これらを行う際、物理CNOTゲートはベル測定でのみ必要であり、測定直前に各物理ビットに実行される物理CNOTゲートは１回だけである。このことが失敗情報を伴う２量子ビットゲートに適した誤り訂正を行う際に重要となる（後述参照）。（｜χ＞の準備の際に誤り検出を行って誤りがない状態のみを採用するpostselectionを行うことによって、｜χ＞の誤りは小さくすることができる。これも符号化CNOTゲートをテレポーテーションで行う理由である。）
以下、本発明の方法における誤り訂正テレポーテーションを詳しく説明する。話を具体的にするために、まず、１誤り訂正コードとして最もよく知られたSteaneコードを用いた場合での誤り訂正法を説明する。後で、より一般のＮ誤り訂正コード（Ｎは１以上の自然数）を用いた場合と、Knillによって提案された誤り検出コードを使った連結コード（以下、Knillコード）を用いた場合での誤り訂正法も説明する。
【００３０】
まず、Steaneコードについて説明しておく。Steaneコードは次の（１２）のように定義される。
【数１２】
2010233066.tif 000014
【００３１】
ここで、添え字Ｌｌはレベルlの符号化ビットであることを表す（lは０以上の整数）。レベル０は物理ビットである。Steaneコードは、Cliffordゲート（Pauliゲート、CNOTゲート、Hadamardゲート、phaseゲート）をTransversalに実行できる。Steaneコードの符号化された｜０＞と｜１＞は１６個の７ビット状態からなるが、これは４ビット（１６通りの値を取る）を７ビットに符号化する古典的なコード（ハミングコードと呼ばれるよく知られた効率的なコード）を利用していることによる。この古典コードを（７，４）ハミングコードと呼ぶ。ハミングコードは線形コードと呼ばれる古典コードの一種であり、符号化されたビット列をベクトルと見なしてそれに検査行列と呼ばれる行列をかけることで誤りを検出し、訂正できる。（７，４）ハミングコードの場合、検査行列Ｈは次の（１３）のようになる。
【数１３】
2010233066.tif 000015
【００３２】
（７，４）ハミングコードの符号化された４ビットのうちの１つを下記（１４）のようにベクトル表示したとき、これに検査行列をかけて得られる下記（１５）のベクトルをシンドロームと呼び、これによって誤りの場所を特定できる。（右辺の行列成分の和はｍｏｄ ２をとる。つまり、２で割った余りとする。以下では和については「＝」をｍｏｄ ２の合同式の意味で使用することがある。）
【数１４】
2010233066.tif 000016
【００３３】
シンドロームの３成分を各桁とした下記（１６）の２進数（これもシンドロームと呼ぶ）は０〜７の８通りの値を取るが、誤り（ビット反転誤り）が１個以下の場合、ｓ＝０のときは誤りなし、ｓ＞０のときはｘｓに誤りあり、となる。このように１ビットの誤りであれば訂正できることから、（７，４）ハミングコードは１誤り訂正コードである。
【数１５】
2010233066.tif 000017
【００３４】
Steaneコードでも同様にして１個のビット反転誤りを訂正することができる。例えば、レベル１の符号化ビットを構成する７個の物理ビットを測定する場合、その７個の測定結果は誤りがなければ（７，４）ハミングコードの１６通りのうちの１つとなる。もしもビット反転誤りが１個以下であれば、これに（７，４）ハミングコードの検査行列をかけてシンドロームを求めることで誤りの場所を特定し訂正することができる。その結果、レベル１の符号化ビットの測定結果を高い正確さで知ることができる。（ここで、１ビットを訂正したことで正確さが高くなるためには２ビット以上誤る確率が十分低いという仮定が必要である。そのため、各ビットの誤り確率をｐｅとしたとき、ｋ個誤る確率は常にｐｅｋのオーダーになるようにする。この条件を満たしながら計算を行うことがフォールトトレラント計算の条件である。Transversalなゲート操作は自動的にこのフォールトトレラントの条件を満たす。）古典コードでは７ビットで４ビットを表せるのに対して、量子コードでは８個ずつの重ね合わせの状態を作って７量子ビットで１量子ビットしか表せないのは、ビット反転誤り（古典的な誤りはこれだけ）だけでなく位相反転誤りも訂正できるようにするためである。位相反転誤りも訂正できることは次のようにしてわかる。Steaneコードの基底をHadamardゲートによって｛｜＋＞，｜−＞｝に変換する（｜±＞＝｜０＞±｜１＞）。SteaneコードではHadamardゲートはTransversalに実行できるので、符号化された｛｜＋＞，｜−＞｝は１つ下位のレベルのビットにHadamardゲートを行ったものに等しく、次の（１７）のようになる。
【数１６】
2010233066.tif 000018
【００３５】
位相反転は＋と−を反転させるので、＋を０、−を１に対応させると位相反転はビット反転と同等になり、ビット反転誤りと同様にしてハミングコードによって訂正できる。誤り訂正テレポーテーションでは、測定の基底は｛｜０＞，｜１＞｝または｛｜＋＞，｜−＞｝なので、ビット反転と位相反転だけ訂正できれば十分である。誤りが消失誤り（誤りの場所があらかじめ特定できる誤り）の場合、Steaneコードは２つの誤りを訂正できる。（一般に、Ｎ誤り訂正コードは２Ｎ個の消失誤りを訂正することができる。例えばM. Grassl, T. Beth, T. Pellizzari, Phys. Rev. A 56, 33(1997)参照。）この方法について述べる。上述の誤り訂正の説明からわかるように、（７，４）ハミングコードが２つのビット反転消失誤りを訂正できることを示せば十分である。２つの消失誤りがあった場合（場所をｊ１とｊ２とする）、上述のようにして得られるシンドロームｓが、ｓ＝０なら誤りなし、ｓ＝ｊ１ならｊ１のみに誤りあり、ｓ＝ｊ２ならｊ２のみに誤りありとなる。また、ｊ１とｊ２を２進数表示したときの各桁同士をｍｏｄ ２で足して、それらを２進数の各桁とした数をＪとするとき、ｓ＝Ｊならｊ１とｊ２の両方に誤りありとなる。こうして、（７，４）ハミングコードは２つのビット反転消失誤りを訂正でき、Steaneコードは２つの消失誤りを訂正することができる。
【００３６】
Steaneコードを用いた場合の本発明の誤り訂正テレポーテーションは次のようにして行う。テレポーテーションで行う主な処理は２つの論理ビットに対するベル測定である。ベル測定において、物理ビットの測定結果（これは０または１という古典ビットで表された古典情報）から論理ビットの値を決定（推定）するのに、本発明の方法では次にようにする。まず、レベル１の符号化ビットごとに考え、物理ビットの測定結果から各レベル１の符号化ビットの測定値を決定する。あるレベル１の符号化ビットを構成する７個の物理ビットの測定結果を下記（１８）とする（上述の（７，４）ハミングコードのときと同様）。
【数１７】
2010233066.tif 000019
【００３７】
誤りがなければ、これは（７，４）ハミングコードの１６通りのうちの１つと一致する。ここで、本発明の物理CNOTゲートには失敗情報があることから、各物理ビットの測定結果も失敗情報を伴うことになる（ある物理CNOTゲートの失敗情報がＦ（Ｓ）のとき、そのゲート操作を行った２つの物理ビットの測定結果の失敗情報もＦ（Ｓ）と定義する）。この失敗情報に基づいて、物理ビットの測定結果からレベル１の符号化ビットの測定値を次のように決定する。
【００３８】
１．   ７個の物理ビットの失敗情報がすべてＳの場合、上述の誤り訂正法によって１誤り訂正を行ってレベル１の符号化ビットの測定値を決定し、このレベル１の符号化ビットの失敗情報をＳと定義する。
【００３９】
２．   ７個の物理ビットの失敗情報のうち１個がＦの場合（その場所をｊとする）、失敗情報は無視して１誤り訂正を行ってレベル１の符号化ビットの測定値を決定し、このレベル１の符号化ビットの失敗情報をＳと定義する。
【００４０】
３．   ７個の物理ビットの失敗情報のうち２個がＦの場合（その場所をｊ１とｊ２とする）、
３−１．シンドロームｓが０，ｊ１，ｊ２，Ｊ（Ｊは上述のようにｊ１，ｊ２から定義する）のどれかに等しい場合、上述の消失誤りの訂正法で訂正してレベル１の符号化ビットの測定値を決定し、このレベル１の符号化ビットの失敗情報をＳと定義する。
【００４１】
３−２．シンドロームｓが０，ｊ１，ｊ２，Ｊのどれとも等しくなければ、失敗情報は無視して１誤り訂正を行ってレベル１の符号化ビットの測定値を決定し、このレベル１の符号化ビットの失敗情報をＦと定義する。
【００４２】
４．   ７個の物理ビットの失敗情報のうち３個以上がＦの場合、失敗情報は無視して１誤り訂正を行ってレベル１の符号化ビットの測定値を決定し、このレベル１の符号化ビットの失敗情報をＦと定義する。
【００４３】
（上記の場合分けは、物理CNOTゲートの誤り確率だけを考えた場合に、誤り訂正によって決定されたレベル１の符号化ビットの測定値が正しくなる確率に基づいており、この確率が高い順に並べてある。そして、この確率が比較的高い「１」，「２」，「３−１」の場合の失敗情報をＳ、この確率が低い「３−２」，「４」の場合の失敗情報をＦと定義している。）こうして、各レベル１の符号化ビットの測定結果を決定すると同時に、レベル１の符号化ビットの失敗情報を定義する。次に、このようにして得られたレベル１の符号化ビットの測定値を用いてレベル２の符号化ビットの測定値を同様の処理方法によって決定する。これを最上位のレベルまで繰り返すことで、論理ビット（最上位レベルの符号化ビット）の測定値を決定する。
【００４４】
上述の方法を拡張して、一般のＮ誤り訂正コードを用いた場合の誤り訂正方法を次のように定義する。（レベル０（l＝０）では「符号化ビット」→「物理ビット」、「符号化CNOTゲート」→「物理CNOTゲート」と読み替える。）
１．   レベル（l＋１）の符号化ビットを構成するレベルlの符号化ビットの失敗情報がすべてＳの場合、Ｎ誤り訂正を行ってレベル（l＋１）の符号化ビットの測定値を決定し、このレベル（l＋１）の符号化ビットの失敗情報をＳと定義する。
【００４５】
２．   レベル（l＋１）の符号化ビットを構成するレベルlの符号化ビットの失敗情報のうちＦが１からＮ個の場合、失敗情報は無視してＮ誤り訂正を行ってレベル（l＋１）の符号化ビットの測定値を決定し、このレベル（l＋１）の符号化ビットの失敗情報をＳと定義する。
【００４６】
３．   レベル（l＋１）の符号化ビットを構成するレベルlの符号化ビットの失敗情報のうちＦが（Ｎ＋１）から２Ｎ個の場合、
３−１．２Ｎ消失誤り訂正コードとしてのシンドロームが、誤りなしを示すか、または、失敗情報がＦであるビットにのみ誤りがあることを示していれば、それらを訂正して（誤りなしなら訂正不要）レベル（l＋１）の符号化ビットの測定値を決定し、このレベル（l＋１）の符号化ビットの失敗情報をＳと定義する。
【００４７】
３−２．２Ｎ消失誤り訂正コードとしてのシンドロームが、誤りがあることを示し、かつ、失敗情報がＳであるビットに誤りがあることを示していれば、失敗情報は無視してＮ誤り訂正を行ってレベル（l＋１）の符号化ビットの測定値を決定し、このレベル（l＋１）の符号化ビットの失敗情報をＦと定義する。
【００４８】
４．   レベル（l＋１）の符号化ビットを構成するレベルlの符号化ビットの失敗情報のうち（２Ｎ＋１）個以上がＦの場合、失敗情報は無視してＮ誤り訂正を行ってレベル（l＋１）の符号化ビットの測定値を決定し、このレベル（l＋１）の符号化ビットの失敗情報をＦと定義する。
【００４９】
利用できる誤り訂正コードの具体例としては、例えば、３つの誤りを訂正できる［２３，１，７］ Ｇｏｌａｙコードなどがある（例えばA. M. Steane, Phys. Rev. A 68, 042322 (2003)参照）。
【００５０】
次に、Knillコードについて詳しく説明する。Knillコードは次の（１９）および（２０）のように定義される。
【数１８】
2010233066.tif 000020
【００５１】
レベル２以上では（l≧１）、
【数１９】
2010233066.tif 000021
【００５２】
レベル１は４ビットをビットペアにコード化するもので、４ビットのうちの１ビットの誤りを検出できる（消失誤りであれば訂正できる）。レベル２以上はビットペア３つをビットペアにコード化するもので、１ペア内の誤りを検出できる（消失誤りであれば訂正できる）。また、Knillコードは、Pauliゲート、CNOTゲート、HadamardゲートをTransversalに実行できる。（符号化ビットは常にペアになっているが、符号化ゲートはペアの２つのビットのそれぞれに同じゲートが実行される。そのため、符号化ゲートは常にペアで実行されるが、簡単のため「符号化ゲートペア」とは呼ばず単に「符号化ゲート」と呼ぶこととする。）Knillコードも古典的な線形コードに基づいており、レベル１の検査行列は下記（２１）であり、レベル２以上の検査行列は下記（２２）である。
【数２０】
2010233066.tif 000022
【００５３】
レベル１における誤り検出および消失誤り訂正は以下のように行う。レベル１の符号化ビットペアの測定結果は４つの物理ビットの測定結果からなる。それを下記（２３）とすると、シンドロームは下記（２４）となる（和はｍｏｄ ２をとる）。
【数２１】
2010233066.tif 000023
【００５４】
誤りが１ビット以下のとき、シンドロームｓが０ならば誤りなし、ｓ＝１ならば１ビット誤りありとなり、誤りが検出できる。消失誤りの場合、どのビットに誤りがあるかわかっているので、それを例えばｘ１とすると、シンドロームを０にするように、下記（２５）とすることで訂正できる（和はｍｏｄ ２をとる）。
【数２２】
2010233066.tif 000024
【００５５】
レベル２における誤り検出および消失誤り訂正は以下のように行う。レベル２の符号化ビットペアの測定結果は３つのレベル１の符号化ビットペアの測定結果からなる。それを下記（２６）とすると、シンドロームは下記（２７）となる。
【数２３】
2010233066.tif 000025
【００５６】
誤りが１ビットペア以下のとき、ｓ１，ｓ２がともに０ならば誤りなし、そうでなければ１ビットペア誤りありとなり、誤りが検出できる。消失誤りの場合、どのビットペアに誤りがあるかわかっているので、それを例えばｘ１，ｘ２とすると、シンドロームを０にするように、下記（２８）、（２９）とすることで訂正できる（和はｍｏｄ ２をとる）。
【数２４】
2010233066.tif 000026
【００５７】
Knillコードを用いた場合の本発明の誤り訂正テレポーテーションにおけるベル測定の結果に対する誤り訂正方法を述べる。まず、レベル１では次のようにする。
【００５８】
１．   ４個の物理ビットの失敗情報がすべてＳの場合、上述の誤り検出法によって誤り検出を行い、誤りが検出されなければレベル１の符号化ビットペアの測定値を決定してこのレベル１の符号化ビットペアの失敗情報をＳと定義し、誤りが検出されればこのレベル１の符号化ビットペアの失敗情報をＦと定義する（誤りが検出されたときはレベル１の符号化ビットペアの測定値を決定できないが、失敗情報がＦとなるためにその情報は必要なく、問題ない）。
【００５９】
２．   ４個の物理ビットの失敗情報のうち１個がＦの場合、このビットに誤りがある消失誤りと見なして上述の方法によって消失誤り訂正してレベル１の符号化ビットペアの測定値を決定し、このレベル１の符号化ビットペアの失敗情報をＳと定義する。
【００６０】
３．   ４個の物理ビットの失敗情報のうち２個以上がＦの場合、このレベル１の符号化ビットペアの失敗情報をＦと定義する（レベル１の符号化ビットペアの測定値を決定できないが、失敗情報がＦとなるためにその情報は必要なく、問題ない）。
【００６１】
こうして、各レベル２の符号化ビットペアの測定結果を決定すると同時に、レベル１の符号化ビットペアの失敗情報を定義する。レベル２以上では次のようにする（l≧１）。
【００６２】
１．   レベル（l＋１）の符号化ビットペアを構成するレベルlの符号化ビットペア３個の失敗情報がすべてＳの場合、誤り検出を行い、誤りが検出されなければレベル（l＋１）の符号化ビットペアの測定値を決定してこのレベル（l＋１）の符号化ビットペアの失敗情報をＳと定義し、誤りが検出されればこのレベル（l＋１）の符号化ビットペアの失敗情報をＦと定義する。
【００６３】
２．   レベル（l＋１）の符号化ビットペアを構成するレベルlの符号化ビットペア３個の失敗情報のうち１個がＦの場合、このビットペアに誤りがある消失誤りと見なして消失誤り訂正してレベル（l＋１）の符号化ビットペアの測定値を決定し、このレベル（l＋１）の符号化ビットペアの失敗情報をＳと定義する。
【００６４】
３．   レベル（l＋１）の符号化ビットペアを構成するレベルlの符号化ビットペア３個の失敗情報のうち２個以上がＦの場合、このレベル（l＋１）の符号化ビットペアの失敗情報をＦと定義する。
【００６５】
こうして、各レベル（l＋１）の符号化ビットペアの測定結果を決定すると同時に、レベル（l＋１）の符号化ビットペアの失敗情報を定義する。これを最上位のレベルまで繰り返すことで、論理ビットペア（最上位レベルの符号化ビットペア）の測定値を決定する。
【００６６】
＜状態準備の誤り＞  
上ではフォールトトレラント量子計算の唯一の処理である誤り訂正テレポーテーションの方法について説明した。上で述べた誤り訂正テレポーテーションの方法が本発明の本質的なところである。しかし、閾値を求めるにはこれだけでは足りず、符号化ビットやテレポーテーションに用いるエンタングルド状態（ベル状態や｜χ＞）を準備する際に混入する誤りも考慮しなければならない。この状態準備の誤りはできる限り小さく抑える必要があり、状態準備の方法には注意を要する。また、前に述べたフォールトトレラントの条件（各ビットの誤り確率をｐｅとしたとき、ｋ個誤る確率は常にｐｅｋのオーダーでなければならない）も満たさなければならない。以下、この状態準備の方法について説明する。
【００６７】
符号化の方法はコードごとに異なる。Steaneコードについては、例えばReichardt, e-print arXiv:quant-ph/0612004参照、Knillコードについては、例えばE. Knill, Nature 434, 39 (2005)参照。（本発明の符号化方法は、以下に述べる点を除いてこれら公知の方法をそのまま用いる。これらの符号化方法はフォールトトレラントの条件を満たす。）低いレベルから順に、レベルlの状態を用いてレベル（l＋１）の状態を準備するということをするが、レベル（l＋１）の状態準備には、レベルlの符号化CNOTゲートを使う。レベル１の状態準備においては、用いる物理CNOTゲートの失敗情報がすべてＳとなるまで繰り返すというpostselectionを行う。レベル（l＋１）（lは１以上の整数）の状態準備においては、用いるレベルlの符号化CNOTゲートは｜χ＞と２回のテレポーテーションを使って行う（図４参照）。誤りを減らすために、符号化CNOTゲートにおいてベル測定の結果における論理ビットの失敗情報が１つでもＦとなった場合は初めから作り直す、というpostselectionを行う。さらに、｜χ＞の状態準備では、状態準備における最後の符号化CNOTゲートを行った後、それを実行した２つの符号化ビットに対して「誤り検出テレポーテーション」を行う。ここで、「誤り検出テレポーテーション」とは、誤り訂正テレポーテーションにおけるベル測定の結果の処理において最上位レベルでは上述の誤り訂正ではなく誤り検出を行うものである。この誤り検出テレポーテーションで１つも誤りが検出されたかったときのみ（つまり、最上位より一つ下のレベルの符号化ビットの失敗情報がすべてＳで、かつ、最上位レベルにおけるシンドロームに誤りがない場合）、その状態を採用するというpostselectionを行う。
【００６８】
状態準備における誤りをより低くするには、postselectionの条件を厳しくすればよい。例えば、状態準備に用いる符号化CNOTゲートの失敗情報の定義を次のように変更する。Ｎ誤り訂正コードの場合：
１．   レベル（l＋１）の符号化ビットを構成するレベルlの符号化ビットの失敗情報がすべてＳの場合、Ｎ誤り訂正を行ってレベル（l＋１）の符号化ビットの測定値を決定し、このレベル（l＋１）の符号化ビットの失敗情報をＳと定義する。
【００６９】
２．   レベル（l＋１）の符号化ビットを構成するレベルlの符号化ビットの失敗情報のうちＦが１〜Ｎ個の場合、
２−１．シンドロームｓが０ならば何もせず、ｓが０でなくシンドロームが示す誤りの場所がちょうど失敗情報が示す誤りの場所を一致していれば、シンドロームに従って誤り訂正を行ってレベル（l＋１）の符号化ビットの測定値を決定し、このレベル（l＋１）の符号化ビットの失敗情報をＳと定義する。
【００７０】
２−２．シンドロームｓが０でなく、シンドロームが示す誤りの場所と失敗情報が示す誤りの場所が一致しなければ、失敗情報は無視してＮ誤り訂正を行ってレベル（l＋１）の符号化ビットの測定値を決定し、このレベル（l＋１）の符号化ビットの失敗情報をＦと定義する。
【００７１】
３．   レベル（l＋１）の符号化ビットを構成するレベルlの符号化ビットの失敗情報のうちＦが（Ｎ＋１）〜２Ｎ個の場合、失敗情報は無視してＮ誤り訂正を行ってレベル（l＋１）の符号化ビットの測定値を決定し、このレベル（l＋１）の符号化ビットの失敗情報をＦと定義する。
【００７２】
４．   レベル（l＋１）の符号化ビットを構成するレベルlの符号化ビットの失敗情報のうち（２Ｎ＋１）個以上がＦの場合、失敗情報は無視してＮ誤り訂正を行ってレベル（l＋１）の符号化ビットの測定値を決定し、このレベル（l＋１）の符号化ビットの失敗情報をＦと定義する。
【００７３】
Knillコードの場合：  
１．   レベル１の４個の物理ビットの失敗情報がすべてＳの場合、誤り検出を行い、誤りが検出されなければレベル１の符号化ビットペアの測定値を決定してこのレベル１の符号化ビットペアの失敗情報をＳと定義し、誤りが検出されればこのレベル１の符号化ビットペアの失敗情報をＦと定義する。
【００７４】
２．   レベル１の４個の物理ビットの失敗情報のうち１個がＦの場合、このビットに誤りがある消失誤りと見なして上述の方法によって消失誤り訂正してレベル１の符号化ビットペアの測定値を決定し、このレベル１の符号化ビットペアの失敗情報をＦと定義する。
【００７５】
３．   レベル１の４個の物理ビットの失敗情報のうち２個以上がＦの場合、このレベル１の符号化ビットペアの失敗情報をＦと定義する。
【００７６】
４．   レベル（l＋１）（以下、lは１以上の整数）の符号化ビットペアを構成するレベルlの符号化ビットペア３個の失敗情報がすべてＳの場合、誤り検出を行い、誤りが検出されなければレベル（l＋１）の符号化ビットペアの測定値を決定してこのレベル（l＋１）の符号化ビットペアの失敗情報をＳと定義し、誤りが検出されればこのレベル（l＋１）の符号化ビットペアの失敗情報をＦと定義する。
【００７７】
５．   レベル（l＋１）の符号化ビットペアを構成するレベルlの符号化ビットペア３個の失敗情報のうち１個がＦの場合、このビットペアに誤りがある消失誤りと見なして消失誤り訂正してレベル（l＋１）の符号化ビットペアの測定値を決定し、このレベル（l＋１）の符号化ビットペアの失敗情報をＦと定義する。
【００７８】
６．   レベル（l＋１）の符号化ビットペアを構成するレベルlの符号化ビットペア３個の失敗情報のうち２個以上がＦの場合、このレベル（l＋１）の符号化ビットペアの失敗情報をＦと定義する。
【００７９】
このように条件を厳しくすると誤りは減るが繰り返し回数が増え、リソースが増加する。すべてのレベルで上記の厳しい条件を課すとリソースが増加し過ぎてしまう場合は、リソースが増加し過ぎない程度にいくつかのレベルのみ上記の厳しい条件を課し、誤りとリソースに関して最適化すればよい。
【００８０】
＜シミュレーションによる効果の確認＞  
上で説明してきた本発明の誤り訂正方法の効果を確認するために、SteaneコードとKnillコードの場合のシミュレーションを行った。（シミュレーションの方法についてはE. Knill, Nature 434, 39 (2005)参照。）シミュレーションでは、論理CNOTゲート（｜χ＞と２回のテレポーテーションを使う）の誤り確率を計算し、基本的な誤りの確率に対する閾値を推定した。（前述のように、論理CNOTゲートに対する閾値がフォールトトレラント量子計算の閾値と考えてよい。）
入力の２つのビットの状態準備の誤りは、計算途中を想定して、｜χ＞の出力用の２つのビット（第２ビットと第３ビット。図４参照。）と同じとした。（計算途中では、あるCNOTゲートの出力が次のCNOTゲートの入力となるため。２つのCNOTゲートの間にある誤りは簡単のため無視する。）基本的な誤りおよびそれらの確率としては、物理CNOTゲートの誤りを特徴付ける３つの下記（３１）の確率、物理ビットの初期化の誤り（下記（３２）の誤り確率）、物理ビットの測定の誤り（下記（３３）の誤り確率）を考える。
【数２５】
2010233066.tif 000027
【００８１】
前述の誤り訂正方法では、ベル測定における論理ビットの失敗情報を定義しているので、それによって論理CNOTゲートの失敗確率（論理CNOTゲートにおいてベル測定される４つの論理ビットのうち少なくとも１つの失敗情報がＦとなる確率）および失敗情報の条件付の誤り確率を、物理CNOTゲートの場合と同じように考えることができる。レベルlの論理CNOTゲートにおいて、失敗確率を下記（３４）、失敗情報がＦとなった条件下での誤り確率を下記（３５）、失敗情報がＳとなった条件下での誤り確率を下記（３６）とする。論理CNOTゲートの下記（３７）の誤り確率は下記（３８）となる。
【数２６】
2010233066.tif 000028
【００８２】
状態準備は、このシミュレーションでは（上述の厳しい条件ではなく）通常の誤り訂正方法に基づいてpostselectionした。
【００８３】
まず、Steaneコードの場合のシミュレーション結果を説明する。基本的な誤り確率のうち、下記（３９）以外を下記（４０）と固定して下記（４１）を動かしたときの下記（４２）の計算結果を図５に示す（誤りバーは、２８回のシミュレーションから見積もった標準誤差）。
【数２７】
2010233066.tif 000029
【００８４】
図５より、下記（４３）であればレベルが上がるほど下記（４４）が小さくなる。よって、下記（４５）に着目すると、例えば、下記（４６）のときの下記（４７）に対する閾値は０．０４よりも大きいということができる。
【数２８】
2010233066.tif 000030
【００８５】
これに対して、前に説明したように、本発明の方法を使わずに失敗情報を無視して従来の量子誤り訂正方法を用いたとすると、閾値の条件は「ｐＦが従来の閾値１０−２〜１０−３よりも小さい」となるので、下記（４８）に対する閾値が０．０４以上というシミュレーションの結果は本発明の効果が大きいことを示している。
【数２９】
2010233066.tif 000031
【００８６】
次に、Knillコードの場合のシミュレーション結果を説明する。Steaneコードの場合と同様、基本的な誤り確率のうち、下記（４９）以外を下記（５０）のように固定して下記（５１）を動かしたときの下記（５２）の計算結果を図６に示す（誤りバーは、２８回のシミュレーションから見積もった標準誤差）。図６より、下記（５３）が４×１０−３であればレベルが上がるほど下記（５４）が小さくなる。よって、下記（５５）のときの下記（５６）に対する閾値は０．０４よりも大きいということができる。上述のSteaneコードの場合と同様の議論より、このシミュレーション結果は本発明の効果が大きいことを示している。
【数３０】
2010233066.tif 000032
【００８７】
KnillコードのほうがSteaneコードよりも高い閾値が得られた。そこで、Steaneコードの状態準備において前述のより厳しい条件を課して状態準備における誤りを減らした場合のシミュレーションを行った。結果を図７に示す。これは、レベル２における｜χ＞の準備において厳しい条件を課した。図７より、期待通り、閾値が改善されることがわかる。
【００８８】
最後にリソースについて述べる。前述のように、少ないリソースで高い閾値を実現することが望まれる。リソースとして、レベルlの｜χ＞準備に必要な物理CNOTの回数Ｎ（l）CNOTを考える。シミュレーションより、Ｎ（l）CNOTの平均値を見積もった。高い閾値を得ようとする際に大きなリソースがかかってしまうのはpostselectionによる繰り返しが原因であるので、上記のシミュレーションで見積もったＮ（l）CNOTと理想的な（postselectionが不要な）場合のＮ（l）CNOTの比をとった。Steaneコードの場合（図５）とKnillコードの場合（図６）、および、誤りの少ない状態準備の方法を使ったSteaneコードの場合（図７）の結果を図８に示す。（ａ），（ｂ），（ｃ）がそれぞれ図５，図６，図７の場合に対応する。ここで、パラメータは下記（５７）とした。この結果（比が小さいこと、レベルが上がるにつれて比の増加率が下がること）から、上記の高い閾値を比較的少ないリソースで実現できると言える。
【数３１】
2010233066.tif 000033
【００８９】
＜クラスター状態を利用した失敗確率に対する閾値の向上＞  
上述のように、失敗確率に対して４％という高い閾値が得られたが、クラスター状態を利用すると失敗確率に対する閾値をさらに高くすることができる。クラスター状態を利用すると、状態を壊すことなく物理CNOTゲート（より正確には制御位相反転ゲート）を繰り返して行うことができるようになる（後述参照）。使うクラスター状態を大きくしていくと、物理CNOTゲートの繰り返せる回数が増え、物理CNOTゲートが最終的に失敗してしまう確率を指数関数的に下げることができる。例えば、２つの物理ビットからなるクラスター状態を符号化ビットの各物理ビットに結合した場合（詳細は後述）、ある物理CNOTゲートが失敗したらもう一回だけ物理CNOTゲートを行うことができ、物理CNOTゲートが最終的に失敗する確率は下記（５８）となる。よって、クラスター状態を利用しない場合の下記（５９）に対する閾値が４％ならば、上記のクラスター状態を結合した場合の下記（５９）に対する閾値は（４％）１／２＝２０％と高くなる。（ただし、後述のように、下記（６０）に対する条件は厳しくなる。）
【数３２】
2010233066.tif 000034
【００９０】
まず、クラスター状態について説明する。クラスター状態（またはグラフ状態）とは、頂点を辺でつないだいわゆるグラフに対応したエンタングルド状態で、頂点に対応して｜＋＞を準備し、辺で結ばれた２つの頂点に対して制御位相反転ゲートを実行した状態として定義される。（制御位相反転ゲートは制御ビットが｜０＞のときは標的ビットに何もせず、制御ビットが｜１＞のときは標的ビットにＺゲートを行うもので、以下ＣＺゲートと呼ぶ。ＣＺゲートは、Hadamardゲートと組み合わせることでCNOTゲートとなる、基本的な２量子ビットゲートの１つである。これまで２量子ビットゲートとしてCNOTゲートを考えてきたが、Hadamardゲートは比較的容易に実行できるため、CNOTゲートの代わりにＣＺゲートを利用しても特に問題はない。）クラスター状態の１つの量子ビットを他の任意の状態の１つの量子ビットと結合するときも、それらの間でＣＺゲートを行う。
【００９１】
次に、クラスター状態を用いた量子ゲートについて説明する。その動作を理解するポイントは次のものである。  
１．   ｜＋＞とＣＺゲートによって量子テレポーテーションができる（１量子ビットテレポーテーションと呼ばれる）。図９参照。ただし、出力状態は元の状態そのものではなく、それにHadamardゲートを行ったものとなる。
【００９２】
２．   ＣＺゲートは互いに可換である（順序を入れ換えてもよい）。
【００９３】
３．   Pauliゲートを行ってからCliffordゲート（ＣＺゲート、Hadamardゲートを含む）を行ったものは、先にCliffordゲートを行ってから別のあるPauliゲートを行ったものと同じになる。（言い換えると、Ｕｐをパウリ群の演算子、ＵｃをClifford群の演算子とすると、ＵｃＵｐ＝Ｕｐ’Ｕｃとなるパウリ群の演算子Ｕｐ’が存在する。これはClifford群の定義でもある。）
４．   クラスター状態の中の１つの量子ビットをＺ測定すると、そのあとの状態は測定した量子ビットを除いたクラスター状態となる。ただし、測定結果に応じて、測定された量子ビットと結合していた量子ビットにはＺ演算子がかかる。
【００９４】
以上に基づいて、本発明におけるクラスター状態の役割を説明する。本発明では、ＣＺゲートを繰り返し行えるように、論理ビットの各物理ビットに線形クラスター状態を結合した状態を新たな論理ビットとして計算に利用する。例えば、線形クラスター状態が結合したレベル１のSteaneコードは、図１０のように図示できる。ある２つの物理ビットにＣＺゲートを行うには、それらに結合した線形クラスター状態の先端の物理ビットにＣＺゲートを行う。もしこれが成功したら、Ｘ測定することで１量子ビットテレポーテーションを行って不要な物理ビットを消して所望の２つの物理ビットにＣＺゲートが行われた状態にすることができる。（クラスター状態が結合した状態でＸ測定しても１量子ビットテレポーテーションが可能であるのは、ＣＺゲートが可換であることから１量子ビットテレポーテーションを行った後に残りのクラスター状態を結合したとも見なせるため。また、１量子ビットテレポーテーションの出力状態にはHadamardゲートが実行されているが、線形クラスター状態の量子ビット数を偶数個にして、偶数回１量子ビットテレポーテーションを行うことで、このHadamardゲートはキャンセルできる。奇数個の場合は、あらかじめ線形クラスター状態の先端の量子ビットにHadamardゲートを行っておけば、同様にキャンセルできる。）もしＣＺゲートが失敗したら、ＣＺゲートを行った物理ビットの隣りの物理ビットをＺ測定することで、符号化ビットから線形クラスター状態の先端の２つの物理ビットを除く。こうして、失敗した場合も、符号化ビットを壊すことなく再びＣＺゲートを行うことができる。２ビットのクラスター状態を結合した場合について、以上の動作を図１１に図示した。一般に、２Ｎ個の物理ビットからなる線形クラスター状態を結合した場合、最大Ｎ回のＣＺゲートの失敗が許される。  
以上のようにして、線形クラスター状態を結合した論理ビットを用いることで、失敗確率に対する閾値を上げることができる。
【００９５】
線形クラスター状態を結合した論理ビットに対してＣＺゲート以外のCliffordゲート（Ｚゲート、Ｘゲート、Hadamardゲートのみで十分）を行う方法を述べる。ＺゲートはＣＺゲートと可換なので、元の符号化ビットの物理ビットに直接TransversalにＺゲートを行えばよい。Ｘゲートは、元の符号化ビットの物理ビットに直接TransversalにＸゲートを行うと同時に、その物理ビットの隣りの線形クラスター状態の物理ビットにＺゲートを行えばよい。（Ｘ１Ｚ２ＵＣＺ＝ＵＣＺＸ１より。ここで、ＵＣＺはＣＺゲートの演算子、Ｘ１、Ｚ２はＣＺゲートを行う２つの物理ビットに対するＸ演算子とＺ演算子。）Hadamardゲートは、それを実行したい元の符号化ビットの物理ビットに結合した線形クラスター状態の先端の物理ビットにHadamardゲートを行えばよい。
【００９６】
次に、線形クラスター状態を結合した符号化ビットの準備の仕方を考える。単に、通常の符号化ビットを準備してから線形クラスター状態をＣＺゲートで結合する場合、すべてのＣＺゲートが成功しなければならず、大きなリソースがかかってしまう（通常の符号化ビットの準備にも、線形クラスター状態を利用しなければ大きなリソースがかかる）。また、途中で線形クラスター状態を結合して、その後は上述の方法で失敗確率を減らすという方法を使うと、線形クラスター状態の長さが短くなってしまうので、状態準備のその後の処理において線形クラスター状態の効果が小さくなってしまう。そこで、状態準備において線形クラスター状態を利用する際は、線形クラスター状態の長さを一定に保ちながら失敗確率の低いＣＺゲートを行う、巧妙な方法が必要である。本発明では、図１２のように、ＣＺゲートを行う際、線形クラスター状態を折り曲げたものを結合するという方法を使う。（線形クラスター状態は失敗確率の高いＣＺゲートを用いても効率的に生成できることが知られている。L.-M. Duan and R. Raussendorf, Phys. Rev. Lett. 95, 080503 (2005)参照。）図１２は結合に利用した２つのＣＺゲートが成功した場合だが、失敗した場合は隣りの物理ビットをＺ測定して切り離し、新しい線形クラスター状態を準備してもう一度同様の方法を行う。こうして、結合した線形クラスター状態の長さを保ったまま高い成功確率でＣＺゲートを行うことができ、線形クラスター状態を結合した符号化ビットを少ないリソースで準備できる。
【００９７】
最後に下記（６１）に対する閾値の変化について述べる。線形クラスター状態に含まれる誤りのために、下記（６１）は実効的に、量子計算実行の際は線形クラスター状態を利用しない場合の（４Ｎ＋１）倍、状態準備の際は（４Ｎ＋３）倍になる。よって、線形クラスター状態を結合した場合の下記（６１）の閾値は、結合しない場合の下記（６１）の閾値のおよそ（４Ｎ＋３）−１倍となる。これを改善する方法としては、例えば、状態準備で利用する線形クラスター状態を、エンタングルメント純粋化によって誤りの少ない状態にしておくことが考えられる（W. Dur, H. Aschauer, and H.-J. Briegel, Phys. Rev. Lett. 91, 107903 (2003)）。
【数３３】
2010233066.tif 000035
【実施例】
【００９８】
以下、本発明の実施例について説明する。  
失敗情報を伴う２量子ビットゲート操作法は前記のDuanらの方法を用いる（L.-M. Duan, B. Wang, H. J. Kimble, Phys. Rev. A 72, 032333 (2005)参照）。このDuanらの方法を用いた量子計算機の提案として我々が以前提案した特開２００６−２１５１９７公報がある。本実施例の量子計算機の基本的な構成はこれと同じである（後述するように、誤り訂正に関するところが異なる。）。以下、まずDuanらのゲートの方法とそのための最適な条件について述べ、次に本発明の量子計算機の構成について説明する。
【００９９】
Duanらの２量子ビットゲートのための基本的なセットアップを図１３に示す。まず、図１３を用いて理想的な（光子損失のない）場合の動作について説明する。光共振器内に下状態｜０＞，｜１＞と上状態｜ｅ＞を有する物理系を配置し、この物理系の｜０＞と｜１＞で量子ビットを表す。下状態と上状態は、エネルギー準位を示し、下状態が上状態よりも低いエネルギー準位であることを示す。また、光共振器の共振器モードは、その光共振器が有する物理系の｜１＞−｜ｅ＞遷移と共鳴的に結合する。（図１３に示したように、この結合定数をｇとする。）光共振器は、片側共振器となっており、片側光共振器とも呼ばれ、外部から光を入射するミラーのみが一部透過ミラーでその他のミラーは高反射ミラー（例えば全反射ミラー）であり、外部から入射された光はほぼ完全に逆向きに反射するような光共振器である。Duanらの方法は、１つの光子を上記のような光共振器２つに順に照射してその光子を検出することで、その２つの光共振器内の物理系の量子ビットにＣＺゲートを実行するものである。以下、その原理を詳しく説明する。
【０１００】
２つの物理系の始状態は下記（６２）とする。ＣＺゲートは、下記（６３）によって定義される。これをどのようにして実行するか説明する。まず直線偏光の単一光子パルスを半波長板ＨＷＰ１によって４５度偏光にする。このとき全系の状態は次の（６４）のようになる。
【数３４】
2010233066.tif 000036
【０１０１】
ここで、初めの２つの状態ベクトルはそれぞれ図１３の物理系１と物理系２の状態を表し、最後の状態ベクトルは単一光子パルスの状態を表す（Ｈ，Ｖは水平偏光、垂直偏光を表す）。光子は偏光ビームスプリッターＰＢＳ１によって分けられ、水平偏光の光子は物理系１のある光共振器へ入射され、垂直偏光の光子は全反射ミラーＭ１により反射されてＰＢＳ１に戻される。水平偏光の光子が光共振器へ入射されたとき、もしも物理系１の状態が｜０＞であれば光子は光共振器に共鳴して反射されるが、物理系１の状態が｜１＞であれば真空ラビ分裂によって光子は光共振器に共鳴できずに反射される。その結果、光子が水平偏光で物理系１の状態が｜０＞の場合のみ、他の場合に対して位相が１８０度ずれる。よって、光子がＰＢＳ１へ戻ってきたときの全系の状態は次のようになる。
【数３５】
2010233066.tif 000037
【０１０２】
次に、ＰＢＳ１へ戻ってきた光子は光サーキュレータなどにより入射時の光路からずらされ、半波長板ＨＷＰ２に入射され、ＨＷＰ２によって光子に対してHadamardゲートを実行する。その結果、全系の状態は下記（６６）となる。
【数３６】
2010233066.tif 000038
【０１０３】
さらに、光子はＰＢＳ２によって分けられ、水平偏光の光子は物理系２のある光共振器へ入射され、垂直偏光の光子は全反射ミラーＭ２により反射されてＰＢＳ２に戻される。物理系１を含む光共振器へ入射された場合と同様にして、光子がＰＢＳ２へ戻ってきたときの前傾の状態は次の（６７）のようにある。
【数３７】
2010233066.tif 000039
【０１０４】
最後に、ＨＷＰ３によって光子に対してHadamardゲートを実行した後、ＰＢＳ３によって水平偏光・垂直偏光に分けて、光子検出器Ｄ１，Ｄ２で光子を検出する。
【０１０５】
光子が検出される直前の全系の状態は次のようになる。
【数３８】
2010233066.tif 000040
【０１０６】
よって、光子がＤ２で検出された場合（垂直偏光だった場合）、原子の状態はＣＺゲートが実行された状態となり、光子がＤ１で検出された場合（水平偏光だった場合）、物理系１にＺゲート（下記（６９））を実行すれば、原子の状態はＣＺゲートが実行された状態となる。こうして、ＣＺゲートが実行される。
【数３９】
2010233066.tif 000041
【０１０７】
上記のDuanらの方法によるＣＺ反転ゲートにおける失敗確率ｐＦを考える。失敗となるのは光子がＤ１，Ｄ２のどちらでも検出されなかった場合である。この光子損失の原因としては、（１）光共振器におけるロス、（２）光子検出器の不完全な検出効率、（３）単一光子源（単一光子を照射できる光源）の不完全な光子発生効率、（４）光路におけるロス、などが考えられる。以下、光共振器におけるロスを最小にする条件を示す。
【０１０８】
光共振器におけるロスを考える際に考慮すべき量は、原子と共振器モードの結合定数ｇ、原子の励起状態の緩和率γ、光共振器の共振器モードの場の入力ミラーによる減衰率κ、光共振器の共振器モードの場の入力ミラー以外の損失による減衰率γｃである。κは光共振器の入力ミラーの透過率を選ぶことによって自由に選ぶことができるが、原子の状態が｜０＞の場合と｜１＞の場合の光子のロスがちょうど等しくなるように、下記（７０）と選ぶ。ここで、ｎａは下記（７１）で定義される無次元量であり、結合定数が十分大きい（強結合）として下記（７２）のように仮定した。（原子の状態が｜０＞の場合と｜１＞の場合の光子のロスがちょうど等しい場合がロスを最小にする。）このとき、光共振器による光子損失の確率はおよそ下記（７３）となる。これとバランスするように全反射ミラーＭ１，Ｍ２を下記の（７４）の反射率のミラーで置き換える（例えば、ミラーの代わりにゲート用光共振器と同じ（空の）片側共振器をミラーの代わりに使うとちょうどこうなる。）。こうすることで、成功した場合（光子が検出された場合）のゲートフィデリティ（理想的な出力状態との内積の絶対値２乗）はほぼ１となる。このとき、光共振器におけるロスのみを考慮したときのＣＺゲートの失敗確率は下記（７５）となる。
【数４０】
2010233066.tif 000042
【０１０９】
ＣＺゲートの失敗確率は、設定を少し変更すると（フィデリティがほぼ１という条件は満たしながら）もう少し上げることもできる。それには、Ｍ１は全反射ミラー、半波長板ＨＷＰ２，ＨＷＰ３はHadamardゲート（理想的な場合と同じ）でよいが、入射する偏光状態は４５度偏光ではなく下記（７６）（下記（７７）とおいた）となり、Ｍ２は全反射ミラーではなく反射率ηとする。このとき光子のロスは最小となり、光共振器におけるロスのみを考慮したときのＣＺゲートの失敗確率は下記（７８）となる。この方法では、Ｍ１，Ｍ２が異なる性質のミラーであることから、任意の２つの量子ビット間でＣＺゲートを行うには、ミラーの反射率が変えられるのが望ましい。それには片側共振器をミラーの代わりに用いて、共振器長を調整することで反射率を変えるということが考えられる。
【数４１】
2010233066.tif 000043
【０１１０】
次に、図１４を参照しながら本実施例の量子計算機の構成を説明する。これは同一の構成の光学系を複数並べた構造をしており、図１３の系を拡張したものとなっている。（図１３ではＰＢＳへの入力と出力の光路を分けるのに光サーキュレータなどを用いると述べたが、図１４では特開２００６−２１５１９７公報に従いファラデー回転子と半波長板を用いている。）各光学系は光共振器を有し、その内部には図１５に示すようなエネルギー準位構造を持つ物理系が設置される。この物理系の下状態｜０＞と｜１＞を量子ビットとして用い、｜１＞−｜２＞間遷移は光共振器の共振器モードと共鳴的に結合する。
【０１１１】
物理系及び光共振器は、結晶中の希土類イオン（例えば、Ｙ２ＳｉＯ５結晶中にドープされたＰｒ３＋イオン。量子状態のコヒーレンスを保つためにクライオスタットに入れて冷却して用いる。）を物理系として用い、結晶の向かい合う面を鏡面加工して光共振器を構成したものを用いることができる（特開２００６−２１５１９７公報参照）。または、極低温にレーザー冷却された原子を光共振器中にトラップしたものも用いることができる（例えばA.Boca, et al. Phys. Rev. Lett. 93, 233603 (2004)参照）。これらの場合にはデコヒーレンスの影響（メモリー誤りの確率）が小さく、１量子ビットゲート、量子ビットの初期化、量子ビットの測定が比較的容易にできるため、本発明で仮定した誤りモデルがよく当てはまると考えられる。
【０１１２】
高反射と高透過を切り替えられる切り替え可能ミラーを各所に設置することにより、すべての光学系に直接単一光子を照射できる上に、ある光学系から出力された光子を隣の光学系の中の光子検出器で検出することができる。切り替え可能ミラーは図１６のようにリング共振器によって実装できる（特開２００６−２１５１９７公報参照）。
【０１１３】
Duanらの方法に基づいてＣＺゲートを行う方法について説明する。Duanらの方法でＣＺゲートを行うには、１つの光学系へ光子を照射し、その出力をもう１つの光学系へ入射し、その出力を隣の光学系の光子検出器で検出すればよい（こうなるように切り替え可能ミラーの反射・透過を設定しておく）。こうすることで、光子を入射した光学系の物理系の量子ビットに対してＣＺゲートが実行される（特開２００６−２１５１９７公報参照）。光子検出が失敗情報となる。光子が検出されれば失敗情報はＳ、検出されなければ失敗情報はＦとする。  
量子ビットの読み出しも光子を照射して検出することによって実行できる（特開２００６−２１５１９７公報参照）。  
１量子ビットゲートは、光共振器内の物理系に外部から直接レーザー光を照射し、下状態｜３＞も利用して公知の方法によって実行できる（L.-M. Duan, J. I. Cirac, and P. Zoller, Science 292, 1695 (2001)またはZ. Kis and F. Renzoni, Phys. Rev. A 65, 032318 (2002)参照）。
【０１１４】
量子ビットの初期化は、光共振器内の物理系に外部から直接レーザー光を照射し、光ポンピングによって実行できる（特開２００６−２１５１９７公報参照）。  
以上の１量子ビットゲートおよび初期化を行うために、本発明の量子計算機は物理系の各光遷移に共鳴するレーザー光を供給できるレーザー光源１４０３および周波数や強度を制御するための変調器（音響光学変調器１１０１〜１１０３）を有する。
【０１１５】
本実施例の量子計算機が特開２００６−２１５１９７公報と異なる点は、光子検出器からの検出結果に対して誤り訂正の処理するための誤り訂正装置が設置されている点である（図１４参照）。誤り訂正装置は、誤り訂正テレポーテーションの際のＣＺゲートの光子の検出結果（失敗情報）を利用して、上で詳しく説明した本発明の誤り訂正を行うことにより、論理ビット（最上位レベルの符号化ビット）の測定値を決定する。また、状態準備においては、上で詳しく説明した状態準備用失敗情報を用いて処理する。
【０１１６】
以上の処理（ＣＺゲート、量子ビットの読み出し、１量子ビットゲート、量子ビットの初期化、誤り訂正）を実行するために、本発明の量子計算機は、上記の切り替え可能ミラー、単一光子源、光子検出器からの信号、レーザー光源、変調器、誤り訂正装置などの各装置を操作する制御装置を有する。
【０１１７】
以上に示した実施形態によれば、特殊な２量子ビットゲートを利用して、比較的少ない手続きで高い閾値を実現することができる。例えば、ゲート操作を行う際に照射する単一光子を検出し、光子の検出結果を失敗情報として、光子が検出された場合は高い確率で２量子ビットゲートが成功し、検出されなかった場合は高い確率で失敗する、という２量子ビットゲートを利用する。
【０１１８】
また、上述の実施形態の中で示した処理手順に示された指示は、ソフトウェアであるプログラムに基づいて実行されることが可能である。汎用の計算機システムが、このプログラムを予め記憶しておき、このプログラムを読み込むことにより、上述した実施形態の量子計算機を本発明の量子計算方法に従って動作させることが可能である。上述の実施形態で記述された指示は、コンピュータに実行させることのできるプログラムとして、磁気ディスク（フレキシブルディスク、ハードディスクなど）、光ディスク（ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ±Ｒ、ＤＶＤ±ＲＷなど）、半導体メモリ、またはこれに類する記録媒体に記録される。コンピュータまたは組み込みシステムが読み取り可能な記録媒体であれば、その記憶形式は何れの形態であってもよい。コンピュータは、この記録媒体からプログラムを読み込み、このプログラムに基づいてプログラムに記述されている指示をＣＰＵで実行させれば、上述した実施形態の量子計算機を本発明の量子計算方法に従って動作させることができる。もちろん、コンピュータがプログラムを取得する場合または読み込む場合はネットワークを通じて取得または読み込んでもよい。  
また、記録媒体からコンピュータや組み込みシステムにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているＯＳ（オペレーティングシステム）や、データベース管理ソフト、ネットワーク等のＭＷ（ミドルウェア）等が本実施形態を実現するための各処理の一部を実行してもよい。  
さらに、本願発明における記録媒体は、コンピュータあるいは組み込みシステムと独立した媒体に限らず、ＬＡＮやインターネット等により伝達されたプログラムをダウンロードして記憶または一時記憶した記録媒体も含まれる。  
また、記録媒体は１つに限られず、複数の媒体から本実施形態における処理が実行される場合も、本発明における記録媒体に含まれ、媒体の構成は何れの構成であってもよい。
【０１１９】
なお、本願発明におけるコンピュータまたは組み込みシステムは、記録媒体に記憶されたプログラムに基づき、本実施形態における各処理を実行するためのものであって、パソコン、マイコン等の１つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であってもよい。  
また、本願発明の実施形態におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の実施形態における機能を実現することが可能な機器、装置を総称している。
【０１２０】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【符号の説明】
【０１２１】
１０１〜１０４・・・偏向ビームスプリッター（ＰＢＳ）、２０１〜２０６・・・ファラデー回転子と半波長板、３０１〜３０３・・・高反射ミラー、４０１〜４０３・・・片側共振器、５０１〜５０３・・・半波長板（ＨＷＰ）、６０１〜６０６・・・光子検出器、７０１〜７０９・・・切り替え可能ミラー、８０１，８０２・・・リング型共振器の入出力ミラー、９０１・・・リング型共振器の共振器長調整器、１００１〜１００３・・・ビームスプリッター、１１０１〜１１０３・・・音響光学変調器、１４０３・・・レーザー光源、１７０１・・・単一光子源。
【図１】
2010233066.tif 000050
【図２】
2010233066.tif 000051
【図３】
2010233066.tif 000052
【図４】
2010233066.tif 000053
【図５】
2010233066.tif 000054
【図６】
2010233066.tif 000055
【図７】
2010233066.tif 000056
【図８】
2010233066.tif 000057
【図９】
2010233066.tif 000058
【図１０】
2010233066.tif 000059
【図１１】
2010233066.tif 000060
【図１２】
2010233066.tif 000061
【図１３】
2010233066.tif 000062
【図１４】
2010233066.tif 000063
【図１５】
2010233066.tif 000064
【図１６】
2010233066.tif 000065