JP4718244B2 - 量子プログラム変換装置、その方法、そのプログラム及び記録媒体 - Google Patents

量子プログラム変換装置、その方法、そのプログラム及び記録媒体 Download PDF

Info

Publication number
JP4718244B2
JP4718244B2 JP2005156722A JP2005156722A JP4718244B2 JP 4718244 B2 JP4718244 B2 JP 4718244B2 JP 2005156722 A JP2005156722 A JP 2005156722A JP 2005156722 A JP2005156722 A JP 2005156722A JP 4718244 B2 JP4718244 B2 JP 4718244B2
Authority
JP
Japan
Prior art keywords
quantum
information
class library
program
error correction
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.)
Expired - Fee Related
Application number
JP2005156722A
Other languages
English (en)
Other versions
JP2006331249A (ja
Inventor
泰人 河野
登 原田
豪 加藤
康博 高橋
裕美 中島
誠一郎 谷
英樹 櫻田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2005156722A priority Critical patent/JP4718244B2/ja
Publication of JP2006331249A publication Critical patent/JP2006331249A/ja
Application granted granted Critical
Publication of JP4718244B2 publication Critical patent/JP4718244B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena

Landscapes

  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Stored Programmes (AREA)

Description

本発明は、量子コンピュータによる処理内容が記述されたソースコードを量子回路に変換する量子プログラム変換装置、その方法、そのプログラム及び記録媒体に関する。
[量子コンピュータ]
因数分解や検索などの特定の問題に関して、現在のコンピュータよりもはるかに高速に問題を解くことができる「量子コンピュータ」と呼ばれるコンピュータが提案されている。量子コンピュータとは、普通のコンピュータで用いられる計算単位のビットの代わりに、「キュービット」を計算単位として用いるコンピュータのことである。キュービットを用いると、ビット列の重ねあわせが表現できる。量子コンピュータの高速性は、重ねあわせを利用した量子並列計算によって得られる。
量子力学の理論では、n個のキュービットが作る量子状態を2次元のヒルベルト空間のベクトルで表現し、量子操作を2×2のユニタリ行列で表現し、量子状態の実験的な測定を射影作用素によって表現する。量子コンピュータでは、入力データをキュービット列の量子状態で表現し、それを量子的に操作して、最後に観測を行うことによって、計算を行う。この過程を量子力学の理論の言葉で表現すると、初期状態を表すヒルベルト空間中のベクトルを、量子操作を表現するユニタリ行列で変換し、得られたベクトルに射影作用素を作用させ、それによって得られた値を量子コンピュータの出力とすることに相当する。
[ユニバーサルゲート]
一般に、任意に与えられたユニタリ行列を物理的に実現することは困難である。そこで、組み合わせれば任意のユニタリ行列を近似できる基本操作の組を用意し、その基本操作を組み合わせることで所望のユニタリ行列を実現する。組み合わせれば任意のユニタリ行列を近似できる基本操作の組をユニバーサルゲートと呼ぶ。なお、これらの基本操作は論理ゲート風の記号で表現されることが多く、量子ゲートとも呼ばれる。また、量子ゲートを論理回路のように並べて作ったものを量子回路と呼ぶ。
最も有名なユニバーサルゲートは、1キュービット回転操作とCNOTの組である(例えば、非特許文献1参照)。また、1キュービット回転操作と制御回転ゲートの組み合わせもユニバーサルゲートである。これらのユニバーサルゲートを使うと、任意のユニタリ行列を量子ゲートで(近似的にではなく)正確に表現できる。しかし、これらのユニバーサルゲートを用いて任意のユニタリ行列を表現するためには無限個の量子ゲートを使用しなければならない。
その一方で、有限個の量子ゲートの組で構成されるユニバーサルゲートも存在する。よく知られた例は、アダマールゲート、フェーズゲート、CNOT、π/8ゲートの組である。これは1キュービット回転操作とCNOTで構成されるユニバーサルゲートの有限部分集合である。このユニバーサルゲートでは、ユニタリ行列を正確に表現することはできないが近似することはできる。そのため、これら4つの量子ゲートを使って量子計算を実行することができる。また、アダマールゲート、フェーズゲート、CNOTゲート、トフォリゲートの組も、有限個でユニバーサルになる例である(例えば、非特許文献2参照)。
[ユニバーサルゲートに要求される物理的制約]
上述のようなユニバーサルゲートを量子コンピュータに実装する場合、その量子系ごとに所定の物理的制約が存在する。また、そのような物理的制約を前提に最適な量子回路を構成する研究も進められている。
例えば、ほとんどの量子系においてユニバーサルゲートに要求される可能性が高い物理的制約として、近接キュービット間相互作用がある。量子コンピュータの操作ではエンタングル状態をコントロールしなければならないため、CNOTのような2キュービット以上の量子ゲートが必須である。そして、1キュービット回転操作とCNOTのユニバーサルゲートモデルでは、遠くは離れた2キュービット間のCNOT操作を認めている。しかし、イオントラップを除くほとんどの量子系では、遠く離れたキュービット問での相互作用は困難である。これに対し、近接キュービット間の相互作用しか利用できない量子系において、効率的な量子回路を構成する方法が特許文献1に開示されている。
また、交換操作は、スピン系の振る舞いを記述するハイゼンベルグ・ハミル卜ニアンから自然に導かれるため、スピン系で量子コンピュータを作る場合、モデルにこのような制約を置くことは自然である。さらに、交換操作だけで量子計算を実行することは、外部からのノイズの影響を低減するために効果があることが知られており、スピン系で作られる量子コンビュータでは有力な一つのモデルである。非特許文献3では、このような近接キュービット間での交換操作しか認めないという制約を課した場合において効率的な量子回路を構成する方法が開示されている。
このように、各量子系に対する物理的制約から、ユニタリ行列を表現するための最適なユニバーサルゲートは量子系に応じて異なる場合が多い。例えば、量子系によってはCNOTよりも他の操作の方が物理的な構成が簡単に実現できる場合もある。そして、量子回路は、現在のコンピュータでいうアセンブラプログラムのようなものであるため、同じユニタリ変換を実現する場合でも、使用するユニバーサルゲートが異なれば、それを近似する量子回路はまったく異なる。
[量子プログラムと量子コンパイラ]
このように、量子系に応じてさまざまユニバーサルゲートが想定できるため、量子プログラム(量子コンピュータによる処理内容を記述したコード)を設計する技術者が量子回路を直接設計することは、非現実的である。そして、量子アルゴリズムの設計のために、より人間が扱いやすい量子言語とそれを量子回路に変換する量子コンパイラが望まれているのは自然の流れである。
最も単純な量子言語は、既存のプログラムにユニタリ行列と観測の記述を加えたものである。そして、既存のプログラム部分は既存の古典コンピュータが実行し、ユニタリ行列と観測部分は、ユニタリ行列をユニバーサルゲートに分解して量子コンピュータが実行する。与えられたユニタリ行列を、1キュービット回転操作とCNOTに分解する方法は、例えば、非特許文献4,5に開示されている。また、非特許文献6には、型理論に基づく量子プログラミング言語が提案されている。
A. Barenco, C. H. Bennett, R. Cleve, D. P. DiVincenzo, N. Margolus, P. Shor, P. Sleator, J. A. Smolin, H. Weinfurter, Elementary Gates for Quantum Computation, Physical Review A 52, 3457(1995) M. A. Nielsen and I. L. Chuang, Quantum Computation and Quantum Information, Section 4.5, Cambridge University Press. 河野泰人,木村欣司,関川浩,「Decoherence-free subspaceにおける量子ゲートについて」,信学技法,COMP2004-23, 2004年6月 R. R. Tucci, A Rudimentary Quantum Compiler (2nd edition), [online], [平成17年5月20日検索], インターネット<http://arxiv.org/abs/quant-ph/9902062> R. R. Tucci, Qubiter Algorithm Modification, Expressing Unstructured Unitary Matrices with Fewer CNOTs), [online], [平成17年5月20日検索], インターネット<http://arxiv.org/abs/quant-ph/0411027> Peter Selinger, Towards a quantum programming language, Mathematical Structures in Computer Science 14(4): 527-586, 2004. 特開2004−094885号公報
しかし、従来は、量子コンピュータのハードウェアに関する豊富な知識がなければ、量子コンピュータのプログラミングを行うことが困難であった。
すなわち、前述のように、最適なユニバーサルゲートは量子コンピュータの量子系に依存する。ところが、量子プログラムの設計者は、プログラミングに詳しくても量子コンピュータに詳しいとは限らない。そのため、量子コンピュータ普及のためには、使用できる量子ゲートを意識せずに、プログラミングができる環境が求められていた。
本発明はこのような点に鑑みてなされたものであり、人間が扱いやすい量子言語を、量子コンピュータの量子系に応じた最適な量子回路に自動的に変換することにより、量子コンピュータのハードウェアを考慮することなく、量子コンピュータのプログラミングを行うことを可能にする技術的思想を提供することを目的とする。
本発明では上記課題を解決するために、クラスライブラリ記憶部に、量子コンピュータの量子系に対応するクラスライブラリ識別情報と、量子コンピュータによる処理内容を記述した量子処理記述情報と、当該クラスライブラリ識別情報に対応する量子コンピュータにおいて当該量子処理記述情報が示す処理内容を実現するために適した量子ゲートを示す量子ゲート情報と、が関連付けられたクラスライブラリを記憶させておく。量子プログラムが入力されると、解析部において、量子プログラムから、クラスライブラリ識別情報を指定するためのクラスライブラリ指定情報と量子処理記述情報とを抽出する。次に、検索部において、解析部が抽出したクラスライブラリ指定情報と量子処理記述情報とに対応する量子ゲート情報をクラスライブラリから抽出する。その後、量子回路生成部において、検索部が抽出した量子ゲート情報を用いて量子回路を生成し、当該量子回路を示す量子回路情報を出力する。
ここで、量子プログラムを実行させる量子コンピュータに対応するクラスライブラリ指定情報を量子プログラムに埋め込んでおけば、その量子コンピュータに適した量子回路が自動的に生成される。
また、好ましくは、クラスライブラリ記憶部に、量子コンピュータの量子系に対応するクラスライブラリ識別情報と、量子コンピュータによる処理内容を記述した量子処理記述情報と、当該クラスライブラリ識別情報に対応する量子コンピュータにおいて当該量子処理記述情報が示す処理内容を実現するために適した量子ゲートを示す量子ゲート情報と、が関連付けられたクラスライブラリを記憶させておき、さらにエラー訂正ライブラリ記憶部に、量子コンピュータの量子系に対応するエラー訂正ライブラリ識別情報と、量子ゲート情報と、当該量子ゲート情報をエラー訂正可能な回路構成に変換したエラー訂正量子ゲート情報と、が関連付けられたエラー訂正ライブラリを記憶させておく。量子プログラムが入力されると、解析部において、当該量子プログラムから、クラスライブラリ識別情報を指定するためのクラスライブラリ指定情報と、エラー訂正ライブラリ識別情報を指定するためのエラー訂正ライブラリ指定情報と、量子処理記述情報とを抽出する。次に、第1検索部において、解析部が抽出したクラスライブラリ指定情報と量子処理記述情報とに対応する量子ゲート情報を、クラスライブラリから抽出する。また、第2検索部において、解析部が抽出したエラー訂正ライブラリ指定情報と第1検索部が抽出した量子ゲート情報とに対応するエラー訂正量子ゲート情報を、エラー訂正ライブラリから抽出する。そして、量子回路生成部において、第2検索部が抽出したエラー訂正量子ゲート情報を用いて量子回路を生成し、当該量子回路を示す量子回路情報を出力する。
ここで、量子プログラムを実行させる量子コンピュータに対応するクラスライブラリ指定情報とエラー訂正ライブラリ指定情報とを量子プログラムに埋め込んでおけば、その量子コンピュータに適したエラー訂正可能な量子回路が自動的に生成される。
本発明では、量子プログラムから量子コンピュータに適した量子回路が自動的に生成されるため、量子コンピュータのハードウェアを考慮することなく、量子コンピュータのプログラミングを行うことが可能となる。
以下、本発明の実施の形態を図面を参照して説明する。
〔第1の実施の形態〕
<装置構成>
図1は、第1の実施の形態における量子プログラム変換装置100の構成を例示したブロック図である。
この図に例示するように、本形態の量子プログラム変換装置100は、制御部110、入力部120、出力部130、クラスライブラリ記憶部140、一時メモリ150、解析部161、検索部162、量子回路生成部163、古典コード生成部165及びリンカ部166を有し、入力された量子プログラムを量子回路情報に変換して出力する。なお、解析部161は、字句解析部161a、構文解析部161b及び意味解析部161cを具備し、一時メモリ150は、領域151〜158を具備している。また、解析部161及び古典コード生成部165が用いるライブラリの記載は省略してある。
ここで、この例の量子プログラム変換装置100は、制御部、演算部及びレジスタ等を有するCPU(Central Processing Unit)、RAM(Random Access Memory)やROM(Read Only Memory)等の主記憶装置、ハードディスク装置等の補助記憶装置、入出力インタフェース等を有する公知のノイマン型のコンピュータに、所定のプログラムが読み込まれることにより構成されるものである。具体的には、例えば、制御部110、解析部161、検索部162、量子回路生成部163、古典コード生成部165及びリンカ部166は、CPUに所定のプログラムが読み込まれ、CPUがこれを実行することにより構成されるものである。また、入力部120及び出力部130は、USB(Universal Serial Bus)等の入出力インタフェースである。さらに、クラスライブラリ記憶部140及び一時メモリ150は、例えば、レジスタ、キャッシュメモリ、RAM、ハードディスク装置等から構成される。
<データ構成>
図2(a)は、図1に例示したクラスライブラリ記憶部140に記憶されるクラスライブラリ200−1〜200−nの様子を例示した概念図である。
図2(a)に例示するように、クラスライブラリ記憶部140には、複数のクラスライブラリ200−1〜200−nが格納されている。これらの各クラスライブラリ200−1〜200−nは、量子プログラムから生成する量子回路が実装される量子コンピュータの量子系(核磁気共鳴(NMR)系、結晶格子量子系、イオントラップ系、線形光学素子系等に代表される量子力学特有の現象を動作原理とする物理素子から成るシステム)にそれぞれ対応して設けられる。
図2(b)は、図2(a)におけるクラスライブラリ200−1のデータ構成を例示した概念図である。
図2(b)に例示するように、クラスライブラリ200−1は、量子コンピュータの量子系に対応するクラスライブラリ識別情報210−1と、量子コンピュータによる処理内容を記述した量子処理記述情報220−1と、当該クラスライブラリ識別情報210−1に対応する量子コンピュータにおいて当該量子処理記述情報220−1が示す処理内容を実現するために適した量子ゲートを示す量子ゲート情報230−1と、が関連付けられている。
この例のクラスライブラリ識別情報210−1は、クラスライブラリ200−1を識別するための情報であり、この例では「cstd1」が設定されている。また、この例の量子処理記述情報220−1は、CNOT(y.CNOT(x);)、否定CNOT(コントロールビットが0のときにターゲットビットを反転させる)(y.CNOT(!x);)、アダマール変換(x.hadamard();)、S変換(x.S();)、π/8ゲート(x.T();)、制御回転(y.CRk(x);)、Toffoli(z.toffoli(x,y);)等を示す記述であり、解析部161が量子プログラムを解析することにより抽出されるコードに対応するものである。さらに、量子ゲート情報230−1は、各量子処理記述情報220−1に対応する量子ゲートを示す情報である。なお、量子処理記述情報220−1は、基本量子ゲート(例えば、CNOT等)のみに対応するものであってもよいし、基本量子ゲートを組み合わせた量子ゲート(例えば、量子フーリエ変換や加算等)に対応するものを含んでもよい。
図3及び図4は、量子処理記述情報220−1が示す量子ゲートを例示した図である。ここで図3(a)〜(d)は、それぞれ、CNOT(y.CNOT(x);)、否定CNOT(y.CNOT(!x);)、アダマール変換(x.hadamard();)、S変換(x.S();)に対応する量子ゲートを示し、図4(a)〜(c)は、π/8ゲート(x.T();)、制御回転(y.CRk(x);)、Toffoli(z.toffoli(x,y);)に対応する量子ゲートを示す。なお、各量子ゲートのデータ表現方法はどのようなものでもよいが、例えば、「ゲート名.コントロールビット.ターゲットビット.回転角度」の組(要素が存在しない位置にはnull値を入れる)によって表現する。この例の場合、CNOT(y.CNOT(x);)に対応する量子ゲート情報1−1は、「NOT.xに対応する量子ビット位置.yに対応する量子ビット位置.null値」となる。また、複数の基本量子ゲートの組によって量子処理記述情報220−1が構成される場合(例えば、量子フーリエ変換や加算等)には、複数の「ゲート名.コントロールビット.ターゲットビット.回転角度」の組を時系列に沿って配置し、量子処理記述情報220−1を構成してもよい。
図5(a)は、図2(a)におけるクラスライブラリ200−2のデータ構成を例示した概念図である。
このクラスライブラリ200−2も、クラスライブラリ識別情報210−2と量子処理記述情報220−2と量子ゲート情報230−2とが関連付けられて構成されている。しかし、クラスライブラリ200−1の場合とは別の量子系の量子コンピュータに対応するものであるため、量子ゲート情報230−2の内容の少なくとも一部はクラスライブラリ200−1と相違する。
図5(b)は、クラスライブラリ200−2の否定CNOT(y.CNOT(!x);)に対応する量子ゲート情報2−2の内容を例示したものである。ここで、前述した図3(b)と比較するとわかるとおり、クラスライブラリ200−1とクラスライブラリ200−2とでは、同じ量子処理記述情報220−1,2(否定CNOT(y.CNOT(!x);))に対し、異なる量子ゲート情報230−1,2が対応付けられている。これは、それぞれに対応する量子コンピュータにおいて物理的に最適な量子ゲート情報が設定されるためである。
なお、その他のクラスライブラリもクラスライブラリ識別情報と量子処理記述情報と量子ゲート情報とが関連付けられて構成されるが、対応する各量子コンピュータに応じ、量子ゲート情報の内容が異なる。
<量子プログラム>
図6は、第1の実施の形態における量子プログラム300を例示した図である。
この図に例示するように、量子プログラム300は、古典コンピュータでの処理内容を記載したソースコードである古典処理記述情報ソースコード301、前述のクラスライブラリ識別情報を指定するためのクラスライブラリ指定情報ソースコード302及び量子コンピュータでの処理内容を記載したソースコードである量子処理記述情報ソースコード303を有している。なお、量子処理記述情報ソースコード303には、量子コンピュータでの処理内容のみが記載され、具体的な量子回路に関する情報は記載されていない。
<処理>
次に、第1の実施の形態における量子プログラム変換処理について説明する。
図7は、第1の実施の形態における量子プログラム変換処理を説明するためのフローチャートである。以下、この図に沿って、本形態の量子プログラム変換処理を説明する。
まず、入力部120において、量子プログラムが入力され、入力された量子プログラムは、一旦、一時メモリ150の領域151に格納される(ステップS1)。次に、解析部161において、一時メモリ150の領域151から量子プログラムを読み込み、当該量子プログラムから、クラスライブラリ識別情報を指定するためのクラスライブラリ指定情報と量子処理記述情報と古典処理記述情報とを抽出する(ステップS2)。具体的には、例えばまず、字句解析部161aにおいて、一時メモリ150の領域151から量子プログラムを読み込み、その字句解析を行い、その字句解析結果を領域152に格納する。次に、構文解析部161bにおいて、一時メモリ150の領域152から字句解析結果を読み込み、その構文解析を行い、その構文解析結果を領域153に格納する。最後に、意味解析部161cにおいて、一時メモリ150の領域153から構文解析結果を読み込み、その意味解析を行い、その意味解析結果である「クラスライブラリ指定情報」「量子処理記述情報」「古典処理記述情報」を領域154に格納する。なお、「クラスライブラリ指定情報」「量子処理記述情報」及び「古典処理記述情報」は、前述の「クラスライブラリ指定情報ソースコード」「量子処理記述情報ソースコード」及び「古典処理記述情報ソースコード」(図6参照)からそれぞれ抽出されたものである。また、ここで抽出される「量子処理記述情報」は、クラスライブラリ200−1〜nの量子処理記述情報の何れかに対応するものである。さらに、量子処理記述情報の抽出には、例えば、「R. R. Tucci, A Rudimentary Quantum Compiler (2nd edition), [online], [平成17年5月20日検索], インターネット<http://arxiv.org/abs/quant-ph/9902062>」や「R. R. Tucci, Qubiter Algorithm Modification, Expressing Unstructured Unitary Matrices with Fewer CNOTs), [online], [平成17年5月20日検索], インターネット<http://arxiv.org/abs/quant-ph/0411027>」に開示された方法を用いる。
次に、検索部162において、一時メモリ150の領域154から、解析部161が抽出したクラスライブラリ指定情報と量子処理記述情報とを読み込み、これらに対応する量子ゲート情報を、クラスライブラリ記憶部140に記憶されたクラスライブラリから抽出する(ステップS3)。
この例の場合、検索部162は、まず、読み込んだクラスライブラリ指定情報が指定するクラスライブラリ識別情報に関連付けられているクラスライブラリをクラスライブラリ記憶部140から抽出する。例えば、図6に例示した量子プログラム300の場合、検索部162は、クラスライブラリ指定情報ソースコード302から抽出されたクラスライブラリ指定情報「cstd1lib」が指定するクラスライブラリ識別情報「cstd1」210−1に関連付けられているクラスライブラリ200−1(図2(b))をクラスライブラリ記憶部140から抽出する。次に、検索部162は、抽出したクラスライブラリにおいて、読み込んだ量子処理記述情報と関連付けられている量子ゲート情報を抽出する。図6に例示した量子プログラム300の場合、検索部162は、抽出したクラスライブラリ200−1(図2(b))において、読み込んだ量子処理記述情報と関連付けられている量子ゲート情報を抽出する。その後、検索部162は、抽出した量子ゲート情報を一時メモリ150の領域155に格納する。
次に、量子回路生成部163において、一時メモリ150の領域155から検索部162が抽出した量子ゲート情報を読み込み、必要であれば領域154から量子記述情報の少なくとも一部(例えば、量子ゲートが作用するキュービット位置に関する情報等)を読み込み、それらを用いて量子回路を生成し、当該量子回路を示す量子回路情報を出力する(ステップS4)。なお、ここでの量子回路の生成は、例えば、各量子ゲート情報を時系列に従って配置して行われる。この例の場合、出力された量子回路情報は一時メモリ150の領域156に格納される。図8は、以上のような処理によって、図6に例示した量子プログラム300の量子処理記述情報ソースコード303から生成された量子回路350の例である。
次に、古典コード生成部165において、一時メモリ150の領域154から古典処理記述情報を読み込み、これらから公知の方法によって古典オブジェクトコード(アセンブラ、機械言語等)を生成し、領域157に格納する(ステップS5)。
次に、リンカ部166において、一時メモリ150の領域156から量子回路情報を、領域157から古典オブジェクトコードを、それぞれ読み込む。そして、リンカ部166は、量子回路情報及び古典オブジェクトコードの動的リンクを形成し、このリンク情報を領域158に格納する(ステップS6)。
最後に、出力部130において、一時メモリ150の領域155,157,158から、量子回路情報、古典オブジェクトコード及びリンク情報が読み込まれ、これらを出力する(ステップS7)。このように出力された量子回路情報、古典オブジェクトコード及びリンク情報は、量子コンピュータ(あるいは量子シミュレータ)及び古典コンピュータに入力され、それらにおいて各処理が実行される。
<本形態の特徴>
本形態では、量子コンピュータの各量子系に対して最適なクラスライブラリを設定しておき、量子プログラムを実装する量子コンピュータに応じて最適なクラスライブラリを用いて、量子プログラムから量子回路への変換を行うこととした。これにより、プログラマが量子コンピュータのハードウェアの違いを意識せずに量子プログラムを記述し、実行させることができる。例えば、本形態の量子プログラム変換装置100では、
main{
qubit x[5],y[6];
y.qadd(x);
}
という入力xとyからx+yを計算し、yに入力する量子プログラムに対し、量子系の違いに応じた以下のような量子回路を自動的に生成できる。例えば、量子プログラム変換装置100は、CNOTゲートよりも制御回転ゲートを用いることが望ましい量子系に対しては、CNOTゲートの代わりに制御回転ゲートを用いたクラスライブラリを用い、量子回路を生成する。その結果、図9(a)に例示するようなキュービット回転ゲートと制御回転ゲートからなるユニバーサルゲートを持つ量子回路が生成される。なお、QFT(量子フーリエ変換)部分の量子回路は図10に示すとおりである。一方、量子プログラム変換装置100は、CNOTゲートを用いることが望ましい量子系に対しては、CNOTゲートを用いたクラスライブラリを用い、量子回路を生成する。その結果、図9(a)に例示するような1キュービット回転ゲートとCNOTゲートからなるユニバーサルゲートを持つ量子回路が生成される。しかし、いずれの場合も、プログラマから見た量子プログラムは同一である。
その他、実装する量子コンピュータの量子系が変更されたとしても、それまでの量子プログラムを継続して利用できるというメリットもある。さらに、量子コンピュータの端末装置に量子シミュレータをインストールし、量子プログラムのデバッグと量子コンピュータの実行を同じ端末装置で実行することもできる。量子コンピュータの計算環境維持が困難な状況下において、この方法は、量子プログラムの開発に大きな恩恵をもたらすことになる。
また、本形態で説明してきたように、この技術を利用することにより、量子プログラムに古典コンピュータの動作命令と、量子コンピュータの動作命令を混在して記述することができる。これにより、プログラマから見て、量子コンピュータと古典コンピュータの区別をすることなく、同じ感覚でプログラミングをすることが可能となる。
<第2の実施の形態>
本形態は、第1の実施の形態の変形例であり、量子プログラムをエラー訂正可能な量子回路に変形する点が第1の実施の形態と相違する。以下では、第1の実施の形態との相違点を中心に説明し、第1の実施の形態と共通する事項については説明を省略する。
<装置構成>
図11は、第2の実施の形態における量子プログラム変換装置400の構成を例示したブロック図である。なお、この図において第1の実施の形態と共通する部分については図1と同じ符号を付した。
この図に例示するように、本形態の量子プログラム変換装置400は、制御部110、入力部120、出力部130、クラスライブラリ記憶部140、エラー訂正ライブラリ記憶部440、一時メモリ150、解析部161、検索部162,461、量子回路生成部163、古典コード生成部165、リンカ部166を有し、入力された量子プログラムを量子回路情報に変換して出力する。なお、解析部161は、字句解析部161a、構文解析部161b及び意味解析部161cを具備し、一時メモリ150は、領域151〜158,451,454を具備している。また、解析部161及び古典コード生成部165が用いるライブラリの記載は省略してある。
<データ構成>
クラスライブラリ記憶部140に格納されるデータの構成は第1の実施の形態と同じである。以下では、エラー訂正ライブラリ記憶部440に格納されるデータの構成について説明する。
図12は、図11に例示したエラー訂正ライブラリ記憶部440に記憶されるエラー訂正ライブラリ500−1〜500−mの様子を例示した概念図である。
図12に例示するように、エラー訂正ライブラリ記憶部440には、複数のエラー訂正ライブラリ500−1〜500−mが格納されている。これらのエラー訂正ライブラリ500−1〜500−mは、量子プログラムから生成する量子回路が実装される量子コンピュータの量子系にそれぞれ対応して設けられる。
図13(a)(b)は、図12におけるエラー訂正ライブラリ500−1,2のデータ構成をそれぞれ例示した概念図である。
これらの図に例示するように、エラー訂正ライブラリ500−1,2は、それぞれ量子コンピュータの量子系に対応するエラー訂正ライブラリ識別情報(「7qubitcode1」「7qubitcode2」)510−1,2と、量子ゲート情報520−1,2と、当該量子ゲート情報520−1,2をエラー訂正可能な回路構成に変換したエラー訂正量子ゲート情報530−1,2と、が関連付けられたテーブルである。その他のエラー訂正ライブラリも同様な構成となっている。しかし、コンピュータの量子系の違いに応じ、エラー訂正量子ゲート情報が異なる場合もあるため、各エラー訂正ライブラリのデータ内容自体はエラー訂正ライブラリごとに相違する。なお、エラー訂正ライブラリにおける量子ゲート情報は、クラスライブラリにおける量子ゲート情報と同じであってもよいし、クラスライブラリにおける量子ゲート情報が示す量子ゲートをさらに分解した量子ゲートや、クラスライブラリにおける量子ゲート情報が示す量子ゲートを統合した量子ゲートの情報であってもよい。また、エラー訂正量子ゲートとしては、例えば、7qubitエラー訂正ゲートを例示できる。なお、7qubitエラー訂正やそれへの変換手法については、例えば、「Michael A.Nielsen, Isaac L.Chuang共著,木村達也訳,”量子コンピュータと量子通信”,オーム社」に詳しく説明されている。
<量子プログラム>
図14は、第2の実施の形態における量子プログラム600を例示した図である。
この図に例示するように、量子プログラム600は、古典コンピュータでの処理内容を記載したソースコードである古典処理記述情報ソースコード601、前述のクラスライブラリ識別情報を指定するためのクラスライブラリ指定情報ソースコード602、前述のエラー訂正ライブラリ識別情報を指定するためのエラー訂正ライブラリ識別情報ソースコード603、及び量子コンピュータでの処理内容を記載したソースコードである量子処理記述情報ソースコード604を有している。なお、量子処理記述情報ソースコード604には、量子コンピュータでの処理内容のみが記載され、具体的な量子回路に関する情報は記載されていない。
<処理>
次に、第2の実施の形態における量子プログラム変換処理について説明する。
図15は、第2の実施の形態における量子プログラム変換処理を説明するためのフローチャートである。以下、この図に沿って、本形態の量子プログラム変換処理を説明する。
まず、入力部120において、量子プログラムが入力され、入力された量子プログラムは、一旦、一時メモリ150の領域151に格納される(ステップS11)。次に、第1の実施の形態と同様に、解析部161において、一時メモリ150の領域151から量子プログラムを読み込み、当該量子プログラムから、クラスライブラリ識別情報を指定するためのクラスライブラリ指定情報とエラー訂正ライブラリ指定情報と量子処理記述情報と古典処理記述情報とを抽出し、一時メモリ150の領域454に格納する(ステップS12)。なお、「エラー訂正ライブラリ指定情報」は、前述の「エラー訂正ライブラリ識別情報ソースコード」(図14参照)から抽出されたものである。
次に、第1の実施の形態と同様に、(第1)検索部162において、一時メモリ150の領域454から、解析部161が抽出したクラスライブラリ指定情報と量子処理記述情報とを読み込み、これらに対応する量子ゲート情報を、クラスライブラリ記憶部140に記憶されたクラスライブラリから抽出し、領域155に格納する(ステップS13)。
次に、(第2)検索部461において、一時メモリ150の領域454から解析部161が抽出したエラー訂正ライブラリ指定情報(例えば「7qubitcode1lib」)を読み込み、領域155から検索部162が抽出した量子ゲート情報を読み込む。そして、検索部461は、これらに対応するエラー訂正量子ゲート情報を、エラー訂正ライブラリ記憶部440に記憶されたエラー訂正ライブラリ(上記の例では、エラー訂正ライブラリ識別情報(7qubitcode1)510−1に対応するエラー訂正ライブラリ500−1を用いる。)から抽出する(ステップS14)。
次に、量子回路生成部163において、一時メモリ150の領域155から検索部461が抽出したエラー訂正量子ゲート情報を読み込み、必要であれば領域454から量子記述情報の少なくとも一部(例えば、量子ゲートが作用するキュービット位置に関する情報等)を読み込み、これら用いて量子回路を生成し、当該量子回路を示す量子回路情報を出力する(ステップS15)。なお、ここでの量子回路の生成は、例えば、各エラー訂正量子ゲート情報を時系列に従って配置して行われる。また、この例の場合、出力された量子回路情報は一時メモリ150の領域156に格納される。
図16は、以上のような処理によって、図14に例示した量子プログラム600の量子処理記述情報ソースコード604から生成された量子回路700の例である。また、図17(a)は、図16の7qubitエラー訂正H量子ゲート回路710(アダマール変換ゲートの7qubitエラー訂正ゲート)を例示した図であり、図17(b)は、図16の7qubitエラー訂正コントロールS量子ゲート回路720(コントロールSゲートの7qubitエラー訂正ゲート)を例示した図である。また、図18は、図17(b)における7qubitシンドローム検出・リカバリー量子回路の構成を例示した図である。
次に、古典コード生成部165において、一時メモリ150の領域454から古典処理記述情報を読み込み、これらから公知の方法によって古典オブジェクトコードを生成し、領域157に格納する(ステップS16)。
次に、リンカ部166において、一時メモリ150の領域156から量子回路情報を、領域157から古典オブジェクトコードを、それぞれ読み込む。そして、リンカ部166は、量子回路情報及び古典オブジェクトコードの動的リンクを形成し、このリンク情報を領域158に格納する(ステップS17)。
最後に、出力部130において、一時メモリ150の領域155,157,158から、量子回路情報、古典オブジェクトコード及びリンク情報が読み込まれ、これらを出力する(ステップS18)。
<本形態の特徴>
本形態では、第1の実施の形態に加え、量子プログラムの量子系ごとにエラー訂正ライブラリを設け、量子系に応じてエラー訂正ライブラリを使い分けつつ、量子ゲート情報からエラー訂正量子ゲートへの変換を行い、これらのエラー訂正量子ゲートから量子回路を構成することとした。これにより、プログラマが量子コンピュータのハードウェアの違いを意識せずに量子プログラムを記述し、エラー訂正可能な量子回路によって各処理を実行させることができる。
なお、本発明は上述の各実施の形態に限定されるものではない。例えば、量子コンピュータの処理内容のみを記述した量子プログラムに対して本発明を適用することとしてもよく、また、一部に量子回路についての記述を含む量子プログラムに対して本発明を適用することとしてもよい。また、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
また、上述の各構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよいが、具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)等を、光磁気記録媒体として、MO(Magneto-Optical disc)等を、半導体メモリとしてEEP−ROM(Electronically Erasable and Programmable-Read Only Memory)等を用いることができる。
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
本発明の利用分野としては、例えば、量子コンピュータや量子シミュレータにおけるコンパイラやインタプリタを例示できる。
図1は、第1の実施の形態における量子プログラム変換装置の構成を例示したブロック図である。 図2(a)は、図1に例示したクラスライブラリ記憶部に記憶されるクラスライブラリの様子を例示した概念図である。図2(b)は、図2(a)におけるクラスライブラリのデータ構成を例示した概念図である。 図3は、量子処理記述情報が示す量子ゲートを例示した図である。 図4は、量子処理記述情報が示す量子ゲートを例示した図である。 図5(a)は、図2(a)におけるクラスライブラリのデータ構成を例示した概念図である。図5(b)は、クラスライブラリの否定CNOT(y.CNOT(!x);)に対応する量子ゲート情報の内容を例示したものである。 図6は、第1の実施の形態における量子プログラムを例示した図である。 図7は、第1の実施の形態における量子プログラム変換処理を説明するためのフローチャートである。 図8は、図6に例示した量子プログラムの量子処理記述情報ソースコードから生成された量子回路の例である。 図9(a)(b)は、本形態において生成される量子回路を例示した図である。 図10は、QFT(量子フーリエ変換)部分の量子回路を例示した図である。 図11は、第2の実施の形態における量子プログラム変換装置の構成を例示したブロック図である。 図12は、図11に例示したエラー訂正ライブラリ記憶部に記憶されるエラー訂正ライブラリの様子を例示した概念図である。 図13(a)(b)は、図12におけるエラー訂正ライブラリのデータ構成をそれぞれ例示した概念図である。 図14は、第2の実施の形態における量子プログラムを例示した図である。 図15は、第2の実施の形態における量子プログラム変換処理を説明するためのフローチャートである。 図16は、図14に例示した量子プログラムの量子処理記述情報ソースコードから生成された量子回路の例である。 図17(a)は、図16の7qubitエラー訂正H量子ゲート回路を例示した図であり、図17(b)は、図16の7qubitエラー訂正コントロールS量子ゲート回路を例示した図である。 図18は、図17(b)における7qubitシンドローム検出・リカバリー量子回路の構成を例示した図である。
符号の説明
100,400 量子プログラム変換装置
140 クラスライブラリ記憶部
440 エラー訂正ライブラリ記憶部

Claims (8)

  1. 量子コンピュータによる処理内容が記述されたソースコードを具備する量子プログラムから量子回路を示す量子回路情報を生成する量子プログラム変換装置であって、
    量子コンピュータの量子系に対応するクラスライブラリ識別情報と、量子コンピュータによる処理内容を記述した量子処理記述情報と、当該クラスライブラリ識別情報に対応する量子コンピュータにおいて当該量子処理記述情報が示す処理内容を実現するために適した量子ゲートを示す量子ゲート情報と、が関連付けられたクラスライブラリを記憶したクラスライブラリ記憶部と、
    量子プログラムが入力され、当該量子プログラムから、クラスライブラリ識別情報を指定するためのクラスライブラリ指定情報と量子処理記述情報とを抽出する解析部と、
    上記解析部が抽出した上記クラスライブラリ指定情報と上記量子処理記述情報とに対応する上記量子ゲート情報を、上記クラスライブラリから抽出する検索部と、
    上記検索部が抽出した上記量子ゲート情報を用いて量子回路を示す量子回路情報を生成し、当該量子回路を示す量子回路情報を出力する量子回路生成部と、
    を有することを特徴とする量子プログラム変換装置。
  2. 請求項1に記載の量子プログラム変換装置であって、
    前記クラスライブラリ記憶部が、
    複数の量子系にそれぞれ対応する複数の前記クラスライブラリを具備する、
    ことを特徴とする量子プログラム変換装置。
  3. 量子コンピュータによる処理内容が記述されたソースコードを具備する量子プログラムから量子回路を示す量子回路情報を生成する量子プログラム変換装置であって、
    量子コンピュータの量子系に対応するクラスライブラリ識別情報と、量子コンピュータによる処理内容を記述した量子処理記述情報と、当該クラスライブラリ識別情報に対応する量子コンピュータにおいて当該量子処理記述情報が示す処理内容を実現するために適した量子ゲートを示す量子ゲート情報と、が関連付けられたクラスライブラリを記憶したクラスライブラリ記憶部と、
    量子コンピュータの量子系に対応するエラー訂正ライブラリ識別情報と、量子ゲート情報と、当該量子ゲート情報をエラー訂正可能な回路構成に変換したエラー訂正量子ゲート情報と、が関連付けられたエラー訂正ライブラリを記憶したエラー訂正ライブラリ記憶部と、
    量子プログラムが入力され、当該量子プログラムから、クラスライブラリ識別情報を指定するためのクラスライブラリ指定情報と、エラー訂正ライブラリ識別情報を指定するためのエラー訂正ライブラリ指定情報と、量子処理記述情報とを抽出する解析部と、
    上記解析部が抽出した上記クラスライブラリ指定情報と上記量子処理記述情報とに対応する上記量子ゲート情報を、上記クラスライブラリから抽出する第1検索部と、
    上記解析部が抽出した上記エラー訂正ライブラリ指定情報と上記第1検索部が抽出した上記量子ゲート情報とに対応する上記エラー訂正量子ゲート情報を、上記エラー訂正ライブラリから抽出する第2検索部と、
    上記第2検索部が抽出した上記エラー訂正量子ゲート情報を用いて量子回路を示す量子回路情報を生成し、当該量子回路を示す量子回路情報を出力する量子回路生成部と、
    を有することを特徴とする量子プログラム変換装置。
  4. 請求項3に記載の量子プログラム変換装置であって、
    前記エラー訂正ライブラリ記憶部が、
    複数の量子系にそれぞれ対応する複数の前記エラー訂正ライブラリを具備する、
    ことを特徴とする量子プログラム変換装置。
  5. 量子コンピュータによる処理内容が記述されたソースコードを具備する量子プログラムから量子回路を示す量子回路情報を生成する量子プログラム変換方法であって、
    量子コンピュータの量子系に対応するクラスライブラリ識別情報と、量子コンピュータによる処理内容を記述した量子処理記述情報と、当該クラスライブラリ識別情報に対応する量子コンピュータにおいて当該量子処理記述情報が示す処理内容を実現するために適した量子ゲートを示す量子ゲート情報と、が関連付けられたクラスライブラリがクラスライブラリ記憶部に記憶された状態において、
    量子プログラムが解析部に入力され、当該解析部において、当該量子プログラムから、クラスライブラリ識別情報を指定するためのクラスライブラリ指定情報と量子処理記述情報とを抽出するステップと、
    検索部において、上記解析部が抽出した上記クラスライブラリ指定情報と上記量子処理記述情報とに対応する上記量子ゲート情報を上記クラスライブラリから抽出するステップと、
    量子回路生成部において、上記検索部が抽出した上記量子ゲート情報を用いて量子回路を示す量子回路情報を生成し、当該量子回路を示す量子回路情報を出力するステップと、
    を有することを特徴とする量子プログラム変換方法。
  6. 量子コンピュータによる処理内容が記述されたソースコードを具備する量子プログラムから量子回路を示す量子回路情報を生成する量子プログラム変換方法であって、
    量子コンピュータの量子系に対応するクラスライブラリ識別情報と、量子コンピュータによる処理内容を記述した量子処理記述情報と、当該クラスライブラリ識別情報に対応する量子コンピュータにおいて当該量子処理記述情報が示す処理内容を実現するために適した量子ゲートを示す量子ゲート情報と、が関連付けられたクラスライブラリがクラスライブラリ記憶部に記憶され、
    量子コンピュータの量子系に対応するエラー訂正ライブラリ識別情報と、量子ゲート情報と、当該量子ゲート情報をエラー訂正可能な回路構成に変換したエラー訂正量子ゲート情報と、が関連付けられたエラー訂正ライブラリがエラー訂正ライブラリ記憶部に記憶された状態において、
    量子プログラムが解析部に入力され、当該解析部において、当該量子プログラムから、クラスライブラリ識別情報を指定するためのクラスライブラリ指定情報と、エラー訂正ライブラリ識別情報を指定するためのエラー訂正ライブラリ指定情報と、量子処理記述情報とを抽出するステップと、
    第1検索部において、上記解析部が抽出した上記クラスライブラリ指定情報と上記量子処理記述情報とに対応する上記量子ゲート情報を、上記クラスライブラリから抽出するステップと、
    第2検索部において、上記解析部が抽出した上記エラー訂正ライブラリ指定情報と上記第1検索部が抽出した上記量子ゲート情報とに対応する上記エラー訂正量子ゲート情報を、上記エラー訂正ライブラリから抽出するステップと、
    量子回路生成部において、上記第2検索部が抽出した上記エラー訂正量子ゲート情報を用いて量子回路を示す量子回路情報を生成し、当該量子回路を示す量子回路情報を出力するステップと、
    を有することを特徴とする量子プログラム変換方法。
  7. 請求項1から4の何れかに記載の量子プログラム変換装置としてコンピュータを機能させるためのプログラム。
  8. 請求項7に記載のプログラムを格納したコンピュータ読み取り可能な記録媒体。
JP2005156722A 2005-05-30 2005-05-30 量子プログラム変換装置、その方法、そのプログラム及び記録媒体 Expired - Fee Related JP4718244B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005156722A JP4718244B2 (ja) 2005-05-30 2005-05-30 量子プログラム変換装置、その方法、そのプログラム及び記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005156722A JP4718244B2 (ja) 2005-05-30 2005-05-30 量子プログラム変換装置、その方法、そのプログラム及び記録媒体

Publications (2)

Publication Number Publication Date
JP2006331249A JP2006331249A (ja) 2006-12-07
JP4718244B2 true JP4718244B2 (ja) 2011-07-06

Family

ID=37552853

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005156722A Expired - Fee Related JP4718244B2 (ja) 2005-05-30 2005-05-30 量子プログラム変換装置、その方法、そのプログラム及び記録媒体

Country Status (1)

Country Link
JP (1) JP4718244B2 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5105408B2 (ja) 2007-05-23 2012-12-26 独立行政法人科学技術振興機構 量子プログラム秘匿化装置及び量子プログラム秘匿化方法
JP5921856B2 (ja) * 2011-11-28 2016-05-24 株式会社日立製作所 量子コンピュータシステム、量子コンピュータシステムの制御方法及びプログラム
CA3004633A1 (en) * 2015-11-06 2017-05-11 Google Llc In-situ quantum error correction
US11281987B2 (en) * 2017-11-28 2022-03-22 Duke University Software-defined quantum computer
US10621502B2 (en) * 2018-08-30 2020-04-14 International Business Machines Corporation External port measurement of qubit port responses
CN109376866B (zh) * 2018-09-17 2021-03-12 合肥本源量子计算科技有限责任公司 元数据的记录方法及装置、量子程序的运行方法及装置
JP6977009B2 (ja) * 2019-10-17 2021-12-08 国立大学法人 東京大学 量子ゲート及び量子コンピュータ
CN110889506A (zh) * 2019-10-29 2020-03-17 合肥本源量子计算科技有限责任公司 生成量子指令的方法、设备、***及电子设备
CN110929873B (zh) * 2019-12-11 2023-07-04 合肥本源量子计算科技有限责任公司 一种量子程序的处理方法、装置、存储介质和电子装置
JP6862533B2 (ja) * 2019-12-25 2021-04-21 グーグル エルエルシーGoogle LLC その場量子エラー訂正
CN111415011B (zh) * 2020-02-10 2022-04-26 北京百度网讯科技有限公司 量子脉冲的确定方法、装置、设备及可读存储介质
CN116243974A (zh) * 2021-12-08 2023-06-09 深圳市腾讯计算机***有限公司 量子程序的执行方法和量子程序的编译方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002042104A (ja) * 2000-07-27 2002-02-08 Yamaha Motor Co Ltd 量子ソフトコンピューティングを使用した制御システムと制御方法
JP2002244875A (ja) * 2001-02-16 2002-08-30 Sony Corp 電子機器プログラミングシステムおよびプログラミング方法
JP2005513680A (ja) * 2001-12-22 2005-05-12 ディー−ウェイヴ システムズ インコーポレイテッド 量子コンピューティング統合開発環境

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006061926A1 (ja) * 2004-12-09 2006-06-15 National University Corporation NARA Institute of Science and Technology 量子コンピュータを含むコンピュータシステムのためのプログラム開発支援装置、プログラム開発支援用プログラム、及びシミュレーション装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002042104A (ja) * 2000-07-27 2002-02-08 Yamaha Motor Co Ltd 量子ソフトコンピューティングを使用した制御システムと制御方法
JP2002244875A (ja) * 2001-02-16 2002-08-30 Sony Corp 電子機器プログラミングシステムおよびプログラミング方法
JP2005513680A (ja) * 2001-12-22 2005-05-12 ディー−ウェイヴ システムズ インコーポレイテッド 量子コンピューティング統合開発環境

Also Published As

Publication number Publication date
JP2006331249A (ja) 2006-12-07

Similar Documents

Publication Publication Date Title
JP4718244B2 (ja) 量子プログラム変換装置、その方法、そのプログラム及び記録媒体
JP7186797B2 (ja) 量子計算のための方法及びシステム
JP5921856B2 (ja) 量子コンピュータシステム、量子コンピュータシステムの制御方法及びプログラム
CN110569979B (zh) 面向嘈杂中型量子设备的逻辑-物理比特重映射方法
US20030169041A1 (en) Quantum computing integrated development environment
JP5045666B2 (ja) プログラム解析方法、プログラム解析装置およびプログラム解析プログラム
Marella et al. Introduction to quantum computing
CN109886412B (zh) 一种量子程序的持久化存储方法、装置及存储介质
CN106164942A (zh) 在Clifford+T基础上的“重复直到成功”电路的有效合成
Lin et al. FTQLS: Fault-tolerant quantum logic synthesis
CN114175060A (zh) 用于量子计算设备的测量序列确定
JP2015143939A (ja) コンパイルプログラム、コンパイル方法およびコンパイル装置
Arthuis et al. ADG: Automated generation and evaluation of many-body diagrams II. Particle-number projected Bogoliubov many-body perturbation theory
Tichai et al. Symmetry reduction of tensor networks in many-body theory: I. Automated symbolic evaluation of SU (2) algebra
JP4260751B2 (ja) ユニタリ行列分解装置、ユニタリ行列分解方法、ユニタリ行列分解プログラム及び記録媒体
Surana et al. Deep learning for conversions between melodic frameworks of indian classical music
Smith et al. Programming physical quantum systems with pulse-level control
Bernard et al. New techniques for inferring L-systems using genetic algorithm
Vinkhuijzen et al. Efficient implementation of LIMDDs for quantum circuit simulation
Neha Quantum programming: working with IBM’S qiskit tool
Velasquez et al. Automated synthesis of quantum circuits using symbolic abstractions and decision procedures
JP4758965B2 (ja) ユニタリ行列分解方法、ユニタリ行列分解装置、ユニタリ行列分解プログラム及び記録媒体
Gushanskiy et al. Development of a scheme of a hardware accelerator of quantum computing for correction quantum types of errors
JP4904107B2 (ja) 制御回転ゲート、その決定装置、その決定方法、そのプログラム及びその記録媒体
JP4260680B2 (ja) ユニタリ行列分解方法、ユニタリ行列分解装置、ユニタリ行列分解プログラム及び記録媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070810

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110208

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110224

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110322

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110331

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140408

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees