0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめに

前回は、量子アルゴリズムについて整理しました。

今回は第5回として、量子ソフトウェアを見ていきます。

とはいえ、このあたりはまだ自分も正直あまり追えていません。

なので、Qiskit の細かい API には入らずに、Hello World と、ざっくりしたアーキテクチャだけ置いておきます。ここは実際に触りながら、あとで直します。

software.png

Qiskit の Hello World

Qiskit は、量子回路を書いて、最適化して、シミュレータや実機で実行するためのオープンソース SDK です。

ベル状態を作るだけなら、雰囲気はこんな感じです。

from qiskit import QuantumCircuit

qc = QuantumCircuit(2)
qc.h(0)
qc.cx(0, 1)

これで、2 qubit の回路を作り、1つ目に H ゲートをかけて、CNOT でもつれを作るところまで書けます。

ただし、これはまだ「回路を書いた」だけです。

実際に動かすには、シミュレータで試すのか、実機に投げるのか、測定結果を見るのか、期待値を見るのか、といった話が続きます。が、ここでは省略します。

いろんなレイヤーがある

Qiskit まわりは、量子回路だけじゃなく、いろんなレイヤーの道具があるようです。

Qiskit のレイヤー図

出典: https://www.ibm.com/quantum/qiskit

レイヤー ざっくり何をするか
回路を書く QuantumCircuit
状態や演算子を見る quantum_info
実機向けに変換する transpiler
実行する primitives、Runtime
上位の部品を使う addons、Functions
GUI で触る Composer

このうち primitives は、量子回路を実行するときの入口です。

primitive ざっくり何をするか
Sampler 回路を何回も実行して、測定結果の分布を見る 00 が何回、11 が何回出たか
Estimator 回路で作った状態に対して、観測量の期待値を見る エネルギーや相関の値を推定する

最初は Sampler = 測定結果を見るEstimator = 期待値を見る と分けます。

処理の流れとしては、公式ドキュメントの Qiskit patterns が参考になります。

Map       問題を量子回路や演算子に写す
Optimize  実行に向けて最適化する
Execute   primitive で実行する
Analyze   結果を解析する

参考

https://www.ibm.com/quantum/qiskit
https://quantum.cloud.ibm.com/docs/en/guides
https://github.com/Qiskit/qiskit

おわりに

今回は、Qiskit をかなり軽く眺めました。正直、あまり触れてないので近いうちに、もうちょい触ろうとおもいます。
次は、ビジネス編として、PoC、ポスト量子暗号、材料探索、時間軸あたりを整理する予定です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?