量子フーリエ変換を理解するため、位相推定アルゴリズムを聞いてきた?・・・
気がするのでメモメモ
6月14日に
基礎から応用やトレンドまで学ぶ量子コンピューティング入門セミナー #4
https://liberal-arts-for-tech.connpass.com/event/131884/
を聞いてきた!内容メモメモ
今日の教材
https://github.com/kyamaz/openql-notes/tree/master/docs/20190614
・自己紹介
・今日のゴール
Groverのアルゴリズム
量子テレポーテーション
アダマールテスト、量子フーリエ変換など
Shorのアルゴリズム
・量子コンピューターとは
物理的な量子現象を計算のための情報として扱う計算機
アニーリング方式
ゲート方式
→ものも、いろいろある
超電導、、イオントラッパ、だいやもんど・・・
量子コンピューターの分類
アニーリング方式:組み合わせ最適化だけ
ゲート方式:古典コンピューターの上位互換
量子コンピューターのソフトウェアライブラリ
→おすすめSymPy
SymPyをインストール
pip install sympy
量子計算は
sympy.physics.quantum
from sympy import *
from sympy.physics.quantum import *
from sympy.physics.quantum.qubit import Qubit, QubitBra, measure_all, measure_all_oneshot,measure_partial
from sympy.physics.quantum.gate import H,X,Y,Z,S,T,CPHASE,CNOT,SWAP,UGate,CGateS,gate_simp
from sympy.physics.quantum.gate import IdentityGate as _I
from sympy.physics.quantum.qft import *
from sympy.printing.dot import dotprint
な風に宣言
基本は同じ。環境をスイッチする
・量子コンピューターの裏側
→量子力学に関係するけど・・・いらない
ただ、シュレーディンガー方程式を解いていく過程でできあがる
→ユニタリの積で変わっていく:量子回路図で表す
→量子ゲート回路図が大事!
「量子計算は、複素行列の演算として扱えます!」
手順はだいたい決まっています。
1.量子ビットを準備、初期化
2、量子計算をユニタリ行列
3.計算
4.測定→とれる値の確率が決まる
from sympy.physics.quantum.gate import H,X,Y,Z,S,T,CPHASE,CNOT,SWAP,UGate,CGateS,gate_simp
のH→あだマールのH
計算qapply
係数の2乗が期待値
・量子ビット=複素ベクトル
ブロッホ球→縦ベクトル
・2量子ビット
・ユニタリ
あるところからあるところへ
この積になる
・射影測定
→いまはZ基底
・重ね合わせ計算
・エンタングルメント:普通のコンピューターで表現できない
・量子アルゴリズム
大規模で高精度が前提→いまやっても、正しい答えは出ません・・・
・トレンドは・・・
NISQ世代量子コンピューター
量子・古典ハイブリッド
・3つの潮流
量子アルゴリズムの開発
量子・古典ハイブリッド
スパコンよりすごいんだ!を一生懸命・・・
・Groverのアルゴリズム
あたりを位相反転
マーキングしたところがでる
・量子テレポーテーション
アリスが持っている状態をボブに送る
・位相推定アルゴリズムに向けて
ブロッホ球:位相差を調べる(どれくらいの角度動いたか)
→調べる方法:あだまーるテスト(位相を取り出せる)
→あだまーるではさむ
これを応用する。
→量子状態の物理量Uの実部を求める
ちょっとかえると(だがーをかける)
→量子状態の物理量Uの虚部が出てくる
・特殊ケース
SWAPテスト:2つの調子ビットの状態の内積を求めるのに便利
→コントロールスワップゲートをつくる(Toffoli)
→CNOT3つでSWAPする
・位相推定アルゴリズム
コントロールユニタリ
0のときなにもしない、1のとき、ユニタリをかける
入れ替えたい
行列は入れ替えができない→固有値を考えて、対角か
→固有値が推定できる!
さらに精度をあげる:コントロールユニタリを2乗する
1ビット目がわかり、逆量子フーリエ変換する
→指数的に精度が上がる
・そもそも、離散フーリエ変換ありますよね。
→これを行列にする:ユニタリ行列にできる
→量子フーリエ変換は、波動関数の振幅の離散フーリエ変換の量子計算での実装
・デコンポーズすると、QFTのなかみがわかる
Tを作らないといけない:すごいたいへん(長い)
→つくるのは、難しい・・・
気がするのでメモメモ
6月14日に
基礎から応用やトレンドまで学ぶ量子コンピューティング入門セミナー #4
https://liberal-arts-for-tech.connpass.com/event/131884/
を聞いてきた!内容メモメモ
今日の教材
https://github.com/kyamaz/openql-notes/tree/master/docs/20190614
・自己紹介
・今日のゴール
Groverのアルゴリズム
量子テレポーテーション
アダマールテスト、量子フーリエ変換など
Shorのアルゴリズム
・量子コンピューターとは
物理的な量子現象を計算のための情報として扱う計算機
アニーリング方式
ゲート方式
→ものも、いろいろある
超電導、、イオントラッパ、だいやもんど・・・
量子コンピューターの分類
アニーリング方式:組み合わせ最適化だけ
ゲート方式:古典コンピューターの上位互換
量子コンピューターのソフトウェアライブラリ
→おすすめSymPy
SymPyをインストール
pip install sympy
量子計算は
sympy.physics.quantum
from sympy import *
from sympy.physics.quantum import *
from sympy.physics.quantum.qubit import Qubit, QubitBra, measure_all, measure_all_oneshot,measure_partial
from sympy.physics.quantum.gate import H,X,Y,Z,S,T,CPHASE,CNOT,SWAP,UGate,CGateS,gate_simp
from sympy.physics.quantum.gate import IdentityGate as _I
from sympy.physics.quantum.qft import *
from sympy.printing.dot import dotprint
な風に宣言
基本は同じ。環境をスイッチする
・量子コンピューターの裏側
→量子力学に関係するけど・・・いらない
ただ、シュレーディンガー方程式を解いていく過程でできあがる
→ユニタリの積で変わっていく:量子回路図で表す
→量子ゲート回路図が大事!
「量子計算は、複素行列の演算として扱えます!」
手順はだいたい決まっています。
1.量子ビットを準備、初期化
2、量子計算をユニタリ行列
3.計算
4.測定→とれる値の確率が決まる
from sympy.physics.quantum.gate import H,X,Y,Z,S,T,CPHASE,CNOT,SWAP,UGate,CGateS,gate_simp
のH→あだマールのH
計算qapply
係数の2乗が期待値
・量子ビット=複素ベクトル
ブロッホ球→縦ベクトル
・2量子ビット
・ユニタリ
あるところからあるところへ
この積になる
・射影測定
→いまはZ基底
・重ね合わせ計算
・エンタングルメント:普通のコンピューターで表現できない
・量子アルゴリズム
大規模で高精度が前提→いまやっても、正しい答えは出ません・・・
・トレンドは・・・
NISQ世代量子コンピューター
量子・古典ハイブリッド
・3つの潮流
量子アルゴリズムの開発
量子・古典ハイブリッド
スパコンよりすごいんだ!を一生懸命・・・
・Groverのアルゴリズム
あたりを位相反転
マーキングしたところがでる
・量子テレポーテーション
アリスが持っている状態をボブに送る
・位相推定アルゴリズムに向けて
ブロッホ球:位相差を調べる(どれくらいの角度動いたか)
→調べる方法:あだまーるテスト(位相を取り出せる)
→あだまーるではさむ
これを応用する。
→量子状態の物理量Uの実部を求める
ちょっとかえると(だがーをかける)
→量子状態の物理量Uの虚部が出てくる
・特殊ケース
SWAPテスト:2つの調子ビットの状態の内積を求めるのに便利
→コントロールスワップゲートをつくる(Toffoli)
→CNOT3つでSWAPする
・位相推定アルゴリズム
コントロールユニタリ
0のときなにもしない、1のとき、ユニタリをかける
入れ替えたい
行列は入れ替えができない→固有値を考えて、対角か
→固有値が推定できる!
さらに精度をあげる:コントロールユニタリを2乗する
1ビット目がわかり、逆量子フーリエ変換する
→指数的に精度が上がる
・そもそも、離散フーリエ変換ありますよね。
→これを行列にする:ユニタリ行列にできる
→量子フーリエ変換は、波動関数の振幅の離散フーリエ変換の量子計算での実装
・デコンポーズすると、QFTのなかみがわかる
Tを作らないといけない:すごいたいへん(長い)
→つくるのは、難しい・・・