Cirqは、ノイズが多い中間段階の量子(NISQ)コンピュータのための量子アルゴリズムの作成、操作、最適化を容易にすることを目指している。Cirqはまた、ローカルシミュレータ上でそれらのプログラムの実行を可能にし、将来の量子ハードウェアおよび量子クラウドプロセッサをサポートするように設計されている。
ノイズが多い中間段階の量子コンピュータは、近い将来に利用可能となり、Microsoft、Google、IBM、Intelなどのいくつかの企業によって発表される最初の量子コンピュータとなるであろう。50~100キュビットで構成されているNISQコンピュータは、量子井戸ノイズとそれによって設計される誤り訂正アルゴリズムの効率によって有用性は制限されるが、研究者は量子超越性を示すことができる。
Google AI QuantumチームエンジニアAlan HoとDave Baconによると、NISQコンピュータをプログラムする際の大きな障害の1つは、本質的な限界を超えて、アルゴリズムとハードウェアの間のマッピングが得ることである。そのため、量子ビットに対して、特定のプロセッサの制約に対処することと同様に、問題の最も難しい部分を解決するためにほとんどの時間が費やされている。それが正しく対処されないと、誤った計算が行われる可能性がある。ここがCirqが活躍する場所である。
Cirqによって、量子ハードウェアの制約内で、ユーザは、量子回路に対する微調整制御、ネイティブゲートを使ったゲート動作の指定、デバイスへの適切なゲートの配置、これらのゲートタイミングのスケジューリングができます。データ構造は、ユーザがNISQアーキテクチャを最大限に活用できるように、これらの量子回路の書き込みとコンパイル向けに最適化されます。
以下はCirq用の最小の "hello world"プログラムである。
import cirq
# Pick a qubit.
qubit = cirq.GridQubit(0, 0)
# Create a circuit
circuit = cirq.Circuit.from_ops(
cirq.X(qubit)**0.5, # Square root of NOT.
cirq.measure(qubit, key='m') # Measurement.
)
print("Circuit:")
print(circuit)
# Simulate the circuit several times.
simulator = cirq.google.XmonSimulator()
result = simulator.run(circuit, repetitions=20)
print("Results:")
print(result)
ご覧のとおり、Cirqは、回路、量子ビットの論理演算、測定など、典型的な量子コンピューティングの抽象概念を管理するためのより高レベルの構文を提供する。上記のコードスニペットが示すように、Cirqはローカルシミュレーションのためのすぐに利用できる機能を提供している。ただし、Google Cirqによると、より高度な命令はGoogleのBristleconeプロセッサ用の量子回路に変換され、利用できるようになったクラウドバージョンにアクセスするために使用される。
Circの使い方を学ぶために、Googleは、Cirqの公式ドキュメントとともに、量子変分アルゴリズムの作成プロセスをガイドするより完全なチュートリアルを提供している。さらに、GoogleはOpenFermion-Cirqを公開している。OpenFermion-Cirqは、分子や複雑な材料の特性をシミュレートするなどの化学的問題の詳細をCirq回路に変換することで、量子化学問題向けの低深度量子アルゴリズムを構築するプラットフォームである。
CirqはGitHubで利用可能で、Linux、Mac OS X、Windowsにpip
を使用してインストールすることができる。
python -m pip install --upgrade pip
python -m pip install cirq
Zapata Computing、QC Ware、Quantum Benchmarkなど、まだベータ版であるCirqの早期採用者が数多く発表されている。
Rate this Article
- Editor Review
- Chief Editor Action