ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

Shorのアルゴリズムがわかるには、量子フーリエ変換の理解が必要で・・・

2019-06-17 09:20:49 | ネットワーク
量子フーリエ変換を理解するため、位相推定アルゴリズムを聞いてきた?・・・
気がするのでメモメモ

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を作らないといけない:すごいたいへん(長い)
 →つくるのは、難しい・・・
この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
«  年金2000万円不足だけど・・・ | トップ | Session.Run () するTensorFl... »
最新の画像もっと見る

ネットワーク」カテゴリの最新記事