数学知らない人も理解するの良いと思うから行列で表現するの好きじゃないけどまずやってみる
量子ゲートは
量子力学、
ユニタリ行列( 複素正方行列 + エルミート(随伴)転置 + 可逆行列 + 単位行列 )
を計算するためいるようなものだ
#行列
##行列の使い
かけさん
条件:左行列の横の長さ×右行列の縦の長さは同じにする
結果として、横l×縦nの行列が作られる
SIZE(横l×縦m)×SIZE(横m×縦n)=SIZE(横l×縦n)
縦計算(筆算、こんな感じの)
1×1は自分1×0はゼロつまりPauli行列は行列で回転するってやつ
#転置
ユニタリ行列
U=ユニタリ行列
U*=Uの可逆行列であり、Uのエルミート転置
I=単位行列
エルミート転置(もしくは随伴行列)とは
複素数成分を持つm×n 行列 A 。転置行列と複素共軛(実部はそのままで虚部の符号を反転する)する
行列Aとその転置行列A*であるエルミート転置
転置行列
まん中の中点で回転反転おk
それと
bitは1と0使うし結果も表紙するけど
Qubitはとと
ととと
などなどいて、使うし結果も表紙する
1縦だけど表現できる使える情報は使いによるが無限大(多分)
理解に良い感じに表現するとこんな形であろう
量子ビットは単位行列同時、ユニタリ行列だ
#量子ゲート
普通のNOTとかORとか見たいに別になくても良いんだが、概念的になんかゲート作ったらしい
パソコンも1と0でなってるだけだがor,and,not(ゲート)を作ったことと似てるよなものだ
いずれせよ行列そのものを利用してね!(勉強してね!)とだろうと思うから、特に耳にしなくて良いゲートの話するね
Xゲート
ブロッホ球上の X 軸の回転できる
Y=
Yゲート
ブロッホ球上の Y 軸の回転できる
Z=
Zゲート
ブロッホ球上の Z 軸の回転できる
ここまではただのPauli matrices
Hadamardゲート(Hadamardという人の名前から作った)
重ね合わせ状態を表現することができる
####hadamardの意味
歴史的に普通のパソコンのhadamardゲートはFFTの元になる
ようするにこれが量子のもつれと似てるから量子hadamardゲートなどがhadamardゲートと呼ばれいるよになったわけだ。
色んな形で使える、量子本来確率という問題があってhadamardでFFTを変わりにすると問題になる。(やりにくい、例えばひたずら細かくすると成功率がひくくなる)
Phase Shift(位相(Phase)偏移変調)ゲート
位相移動
#量子ビット
量子ビットとは
×・・・
=OR
のm×1単位行列の
線形ベクトル(a,b)(ほかの表記ketbra<a|b>)
+=
OR・・・
の集まりがqubit。
#ibm Q Experience
量子パソコンを今出来るよにするサイトの一つ
#qiskit
QISKITはIBMのQパソコンをスクリプトで使えるようにしたりするのを作ったりする
##言語(読まなくて良い)
https://qiskit.org/documentation/ja/_autodoc/qiskit.html
###主な、QISKit public functionality
###Submodules
backends バックエンドを使用するためのユーティリティ。
dagcircuit DAG回線用モジュールn
extensions 量子回路への拡張。
mapper マッピングのためのUtils。
qasm QASMのためのツール。
unroll QASMとさまざまなバックエンドをアンロールします。
wrapper 簡略化されたQISKitの使用のためのヘルパーモジュール。
###Classes
ClassicalRegister 古典的なレジスタを実装する。
CompositeGate コンポジットゲート、ユニタリゲートのシーケンス。
Gate ユニタリーゲート。
Instruction 一般的な量子コンピュータ命令。
InstructionSet 命令のコレクション。
Measure 計算ベースの量子測定。
QuantumCircuit これまでの周り。
QuantumJob 量子回路ジョブを作成します。
QuantumProgram 量子プログラムクラス。
QuantumRegister 量子レジスタを実装する。
Reset Qubitをリセットします。
Result 結果クラス。
###Exceptions
QISKitError QISKit SDKによって生成されたエラーの基本クラス。
###Functions
available_backends SDKで利用可能なバックエンドを返します。必要に応じてその機能に基づいてフィルタリングします。
compile 回路のリストをqobjにコンパイルします。
execute 一連の回路を実行します。
get_backend その名前識別子からバックエンドオブジェクトのインスタンスを返します。
load_qasm_file qasm表現(ファイル)から量子回路を構築する。
load_qasm_string qasm表現(文字列)から量子回路を構築する。
register オンラインバックエンドプロバイダに対して認証を行います。
##コミュー
公式ホーム
https://qiskit.org/
QISKit Algorithms and Circuits for QUantum Applications(QISKit ACQUA)
https://qiskit.org/acqua?language=ja (library github https://github.com/QISKit/qiskit-acqua)
github
https://github.com/QISKit
medium
https://medium.com/@qiskit
youtube
https://www.youtube.com/channel/UCPng8PUDVMAukVKeFppFMzw/featured
##binder
https://hub.mybinder.org
###binderってなに?jupyterをオンラインで使用できる
dockerが関係します
##binder qiskit
https://mybinder.org/v2/gh/QISKit/qiskit-tutorial/master?filepath=index.ipynb
#最後に
結構面白いですね
#参考にすると良いと思われるもの
https://qiita.com/ogyogugige/items/11a7d04c746d02fa5122 量子コンピュータと量子計算のまとめ
tensor product
https://ja.wikipedia.org/wiki/%E5%8D%98%E4%BD%8D%E3%83%99%E3%82%AF%E3%83%88%E3%83%AB 単位ベクトル