common.title

Docs
Quantum Circuit
TYTAN CLOUD

Quantum Apps

Quantum Business Magazine


Overview
Contact
Event
Project
Research

Terms of service (Web service)

Terms of service (Quantum and ML Cloud service)

Privacy policy


Sign in
Sign up
common.title

複素フーリエ級数と繰り返し量子回路

Yuichiro Minato

2022/02/19 08:29

こんにちは、今日はデータについて学びます。

参考
The effect of data encoding on the expressive power of variational quantum machine
learning models
Maria Schuld,1 Ryan Sweke,2 and Johannes Jakob Meyer2
1Xanadu, Toronto, ON, M5G 2C8, Canada
2Dahlem Center for Complex Quantum Systems,
Freie Universit¨at Berlin, 14195 Berlin, Germany
(Dated: March 10, 2021)

https://arxiv.org/pdf/2008.08605.pdf

複素フーリエ級数

量子コンピュータは波動を扱います。角度を使って計算をするわけですが、機械学習におけるデータの表現方法にも注意が必要です。ここでは、量子回路の単体量子ビットを使って上記論文におけるデータエンコーディングを見てみたいと思います。

量子コンピュータでは、任意回転ゲートを利用したデータエンコーディングが一般的です。入力値である連続量のデータxを量子回路上に埋め込み、量子ゲートを利用して関数を作ります。

さっそく見てみます。今回は入力値をx1として、角度の連続値を0から6piまで刻んで入力してみます。

import matplotlib.pyplot as plt
from blueqat import Circuit
import numpy as np
x1 = np.arange(0,np.pi*6,np.pi*0.02)
arr = []

for i in range(len(x1)):
    c = Circuit(1).rx(x1[i])[0].run()
    arr.append(c)
    
print(arr)
[array([1.+0.j, 0.+0.j]), array([0.99950656+0.j        , 0.        -0.03141076j]), array([0.99802673+0.j        , 0.        -0.06279052j]), array([0.99556196+0.j        , 0.        -0.09410831j]), array([0.9921147+0.j        , 0.       -0.12533323j]), array([0.98768834+0.j        , 0.        -0.15643447j]), array([0.98228725+0.j        , 0.        -0.18738131j]), array([0.97591676+0.j        , 0.        -0.21814324j]), array([0.96858316+0.j        , 0.        -0.24868989j]), array([0.96029369+0.j        , 0.        -0.27899111j]), array([0.95105652+0.j        , 0.        -0.30901699j]), array([0.94088077+0.j        , 0.        -0.33873792j]), array([0.92977649+0.j        , 0.        -0.36812455j]), array([0.91775463+0.j        , 0.        -0.39714789j]), array([0.90482705+0.j        , 0.        -0.42577929j]), array([0.89100652+0.j       , 0.        -0.4539905j]), array([0.87630668+0.j        , 0.        -0.48175367j]), array([0.86074203+0.j        , 0.        -0.50904142j]), array([0.84432793+0.j        , 0.        -0.53582679j]), array([0.82708057+0.j        , 0.        -0.56208338j]), array([0.80901699+0.j        , 0.        -0.58778525j]), array([0.79015501+0.j        , 0.        -0.61290705j]), array([0.77051324+0.j        , 0.        -0.63742399j]), array([0.75011107+0.j        , 0.        -0.66131187j]), array([0.72896863+0.j        , 0.        -0.68454711j]), array([0.70710678+0.j        , 0.        -0.70710678j]), array([0.68454711+0.j        , 0.        -0.72896863j]), array([0.66131187+0.j        , 0.        -0.75011107j]), array([0.63742399+0.j        , 0.        -0.77051324j]), array([0.61290705+0.j        , 0.        -0.79015501j]), array([0.58778525+0.j        , 0.        -0.80901699j]), array([0.56208338+0.j        , 0.        -0.82708057j]), array([0.53582679+0.j        , 0.        -0.84432793j]), array([0.50904142+0.j        , 0.        -0.86074203j]), array([0.48175367+0.j        , 0.        -0.87630668j]), array([0.4539905+0.j        , 0.       -0.89100652j]), array([0.42577929+0.j        , 0.        -0.90482705j]), array([0.39714789+0.j        , 0.        -0.91775463j]), array([0.36812455+0.j        , 0.        -0.92977649j]), array([0.33873792+0.j        , 0.        -0.94088077j]), array([0.30901699+0.j        , 0.        -0.95105652j]), array([0.27899111+0.j        , 0.        -0.96029369j]), array([0.24868989+0.j        , 0.        -0.96858316j]), array([0.21814324+0.j        , 0.        -0.97591676j]), array([0.18738131+0.j        , 0.        -0.98228725j]), array([0.15643447+0.j        , 0.        -0.98768834j]), array([0.12533323+0.j       , 0.        -0.9921147j]), array([0.09410831+0.j        , 0.        -0.99556196j]), array([0.06279052+0.j        , 0.        -0.99802673j]), array([0.03141076+0.j        , 0.        -0.99950656j]), array([-1.60812265e-16+0.j,  0.00000000e+00-1.j]), array([-0.03141076+0.j        ,  0.        -0.99950656j]), array([-0.06279052+0.j        ,  0.        -0.99802673j]), array([-0.09410831+0.j        ,  0.        -0.99556196j]), array([-0.12533323+0.j       ,  0.        -0.9921147j]), array([-0.15643447+0.j        ,  0.        -0.98768834j]), array([-0.18738131+0.j        ,  0.        -0.98228725j]), array([-0.21814324+0.j        ,  0.        -0.97591676j]), array([-0.24868989+0.j        ,  0.        -0.96858316j]), array([-0.27899111+0.j        ,  0.        -0.96029369j]), array([-0.30901699+0.j        ,  0.        -0.95105652j]), array([-0.33873792+0.j        ,  0.        -0.94088077j]), array([-0.36812455+0.j        ,  0.        -0.92977649j]), array([-0.39714789+0.j        ,  0.        -0.91775463j]), array([-0.42577929+0.j        ,  0.        -0.90482705j]), array([-0.4539905+0.j        ,  0.       -0.89100652j]), array([-0.48175367+0.j        ,  0.        -0.87630668j]), array([-0.50904142+0.j        ,  0.        -0.86074203j]), array([-0.53582679+0.j        ,  0.        -0.84432793j]), array([-0.56208338+0.j        ,  0.        -0.82708057j]), array([-0.58778525+0.j        ,  0.        -0.80901699j]), array([-0.61290705+0.j        ,  0.        -0.79015501j]), array([-0.63742399+0.j        ,  0.        -0.77051324j]), array([-0.66131187+0.j        ,  0.        -0.75011107j]), array([-0.68454711+0.j        ,  0.        -0.72896863j]), array([-0.70710678+0.j        ,  0.        -0.70710678j]), array([-0.72896863+0.j        ,  0.        -0.68454711j]), array([-0.75011107+0.j        ,  0.        -0.66131187j]), array([-0.77051324+0.j        ,  0.        -0.63742399j]), array([-0.79015501+0.j        ,  0.        -0.61290705j]), array([-0.80901699+0.j        ,  0.        -0.58778525j]), array([-0.82708057+0.j        ,  0.        -0.56208338j]), array([-0.84432793+0.j        ,  0.        -0.53582679j]), array([-0.86074203+0.j        ,  0.        -0.50904142j]), array([-0.87630668+0.j        ,  0.        -0.48175367j]), array([-0.89100652+0.j       ,  0.        -0.4539905j]), array([-0.90482705+0.j        ,  0.        -0.42577929j]), array([-0.91775463+0.j        ,  0.        -0.39714789j]), array([-0.92977649+0.j        ,  0.        -0.36812455j]), array([-0.94088077+0.j        ,  0.        -0.33873792j]), array([-0.95105652+0.j        ,  0.        -0.30901699j]), array([-0.96029369+0.j        ,  0.        -0.27899111j]), array([-0.96858316+0.j        ,  0.        -0.24868989j]), array([-0.97591676+0.j        ,  0.        -0.21814324j]), array([-0.98228725+0.j        ,  0.        -0.18738131j]), array([-0.98768834+0.j        ,  0.        -0.15643447j]), array([-0.9921147+0.j        ,  0.       -0.12533323j]), array([-0.99556196+0.j        ,  0.        -0.09410831j]), array([-0.99802673+0.j        ,  0.        -0.06279052j]), array([-0.99950656+0.j        ,  0.        -0.03141076j]), array([-1.+0.0000000e+00j,  0.+3.2162453e-16j]), array([-0.99950656+0.j        ,  0.        +0.03141076j]), array([-0.99802673+0.j        ,  0.        +0.06279052j]), array([-0.99556196+0.j        ,  0.        +0.09410831j]), array([-0.9921147+0.j        ,  0.       +0.12533323j]), array([-0.98768834+0.j        ,  0.        +0.15643447j]), array([-0.98228725+0.j        ,  0.        +0.18738131j]), array([-0.97591676+0.j        ,  0.        +0.21814324j]), array([-0.96858316+0.j        ,  0.        +0.24868989j]), array([-0.96029369+0.j        ,  0.        +0.27899111j]), array([-0.95105652+0.j        ,  0.        +0.30901699j]), array([-0.94088077+0.j        ,  0.        +0.33873792j]), array([-0.92977649+0.j        ,  0.        +0.36812455j]), array([-0.91775463+0.j        ,  0.        +0.39714789j]), array([-0.90482705+0.j        ,  0.        +0.42577929j]), array([-0.89100652+0.j       ,  0.        +0.4539905j]), array([-0.87630668+0.j        ,  0.        +0.48175367j]), array([-0.86074203+0.j        ,  0.        +0.50904142j]), array([-0.84432793+0.j        ,  0.        +0.53582679j]), array([-0.82708057+0.j        ,  0.        +0.56208338j]), array([-0.80901699+0.j        ,  0.        +0.58778525j]), array([-0.79015501+0.j        ,  0.        +0.61290705j]), array([-0.77051324+0.j        ,  0.        +0.63742399j]), array([-0.75011107+0.j        ,  0.        +0.66131187j]), array([-0.72896863+0.j        ,  0.        +0.68454711j]), array([-0.70710678+0.j        ,  0.        +0.70710678j]), array([-0.68454711+0.j        ,  0.        +0.72896863j]), array([-0.66131187+0.j        ,  0.        +0.75011107j]), array([-0.63742399+0.j        ,  0.        +0.77051324j]), array([-0.61290705+0.j        ,  0.        +0.79015501j]), array([-0.58778525+0.j        ,  0.        +0.80901699j]), array([-0.56208338+0.j        ,  0.        +0.82708057j]), array([-0.53582679+0.j        ,  0.        +0.84432793j]), array([-0.50904142+0.j        ,  0.        +0.86074203j]), array([-0.48175367+0.j        ,  0.        +0.87630668j]), array([-0.4539905+0.j        ,  0.       +0.89100652j]), array([-0.42577929+0.j        ,  0.        +0.90482705j]), array([-0.39714789+0.j        ,  0.        +0.91775463j]), array([-0.36812455+0.j        ,  0.        +0.92977649j]), array([-0.33873792+0.j        ,  0.        +0.94088077j]), array([-0.30901699+0.j        ,  0.        +0.95105652j]), array([-0.27899111+0.j        ,  0.        +0.96029369j]), array([-0.24868989+0.j        ,  0.        +0.96858316j]), array([-0.21814324+0.j        ,  0.        +0.97591676j]), array([-0.18738131+0.j        ,  0.        +0.98228725j]), array([-0.15643447+0.j        ,  0.        +0.98768834j]), array([-0.12533323+0.j       ,  0.        +0.9921147j]), array([-0.09410831+0.j        ,  0.        +0.99556196j]), array([-0.06279052+0.j        ,  0.        +0.99802673j]), array([-0.03141076+0.j        ,  0.        +0.99950656j]), array([-1.8369702e-16+0.j,  0.0000000e+00+1.j]), array([0.03141076+0.j        , 0.        +0.99950656j]), array([0.06279052+0.j        , 0.        +0.99802673j]), array([0.09410831+0.j        , 0.        +0.99556196j]), array([0.12533323+0.j       , 0.        +0.9921147j]), array([0.15643447+0.j        , 0.        +0.98768834j]), array([0.18738131+0.j        , 0.        +0.98228725j]), array([0.21814324+0.j        , 0.        +0.97591676j]), array([0.24868989+0.j        , 0.        +0.96858316j]), array([0.27899111+0.j        , 0.        +0.96029369j]), array([0.30901699+0.j        , 0.        +0.95105652j]), array([0.33873792+0.j        , 0.        +0.94088077j]), array([0.36812455+0.j        , 0.        +0.92977649j]), array([0.39714789+0.j        , 0.        +0.91775463j]), array([0.42577929+0.j        , 0.        +0.90482705j]), array([0.4539905+0.j        , 0.       +0.89100652j]), array([0.48175367+0.j        , 0.        +0.87630668j]), array([0.50904142+0.j        , 0.        +0.86074203j]), array([0.53582679+0.j        , 0.        +0.84432793j]), array([0.56208338+0.j        , 0.        +0.82708057j]), array([0.58778525+0.j        , 0.        +0.80901699j]), array([0.61290705+0.j        , 0.        +0.79015501j]), array([0.63742399+0.j        , 0.        +0.77051324j]), array([0.66131187+0.j        , 0.        +0.75011107j]), array([0.68454711+0.j        , 0.        +0.72896863j]), array([0.70710678+0.j        , 0.        +0.70710678j]), array([0.72896863+0.j        , 0.        +0.68454711j]), array([0.75011107+0.j        , 0.        +0.66131187j]), array([0.77051324+0.j        , 0.        +0.63742399j]), array([0.79015501+0.j        , 0.        +0.61290705j]), array([0.80901699+0.j        , 0.        +0.58778525j]), array([0.82708057+0.j        , 0.        +0.56208338j]), array([0.84432793+0.j        , 0.        +0.53582679j]), array([0.86074203+0.j        , 0.        +0.50904142j]), array([0.87630668+0.j        , 0.        +0.48175367j]), array([0.89100652+0.j       , 0.        +0.4539905j]), array([0.90482705+0.j        , 0.        +0.42577929j]), array([0.91775463+0.j        , 0.        +0.39714789j]), array([0.92977649+0.j        , 0.        +0.36812455j]), array([0.94088077+0.j        , 0.        +0.33873792j]), array([0.95105652+0.j        , 0.        +0.30901699j]), array([0.96029369+0.j        , 0.        +0.27899111j]), array([0.96858316+0.j        , 0.        +0.24868989j]), array([0.97591676+0.j        , 0.        +0.21814324j]), array([0.98228725+0.j        , 0.        +0.18738131j]), array([0.98768834+0.j        , 0.        +0.15643447j]), array([0.9921147+0.j        , 0.       +0.12533323j]), array([0.99556196+0.j        , 0.        +0.09410831j]), array([0.99802673+0.j        , 0.        +0.06279052j]), array([0.99950656+0.j        , 0.        +0.03141076j]), array([1.+0.0000000e+00j, 0.-6.4324906e-16j]), array([0.99950656+0.j        , 0.        -0.03141076j]), array([0.99802673+0.j        , 0.        -0.06279052j]), array([0.99556196+0.j        , 0.        -0.09410831j]), array([0.9921147+0.j        , 0.       -0.12533323j]), array([0.98768834+0.j        , 0.        -0.15643447j]), array([0.98228725+0.j        , 0.        -0.18738131j]), array([0.97591676+0.j        , 0.        -0.21814324j]), array([0.96858316+0.j        , 0.        -0.24868989j]), array([0.96029369+0.j        , 0.        -0.27899111j]), array([0.95105652+0.j        , 0.        -0.30901699j]), array([0.94088077+0.j        , 0.        -0.33873792j]), array([0.92977649+0.j        , 0.        -0.36812455j]), array([0.91775463+0.j        , 0.        -0.39714789j]), array([0.90482705+0.j        , 0.        -0.42577929j]), array([0.89100652+0.j       , 0.        -0.4539905j]), array([0.87630668+0.j        , 0.        -0.48175367j]), array([0.86074203+0.j        , 0.        -0.50904142j]), array([0.84432793+0.j        , 0.        -0.53582679j]), array([0.82708057+0.j        , 0.        -0.56208338j]), array([0.80901699+0.j        , 0.        -0.58778525j]), array([0.79015501+0.j        , 0.        -0.61290705j]), array([0.77051324+0.j        , 0.        -0.63742399j]), array([0.75011107+0.j        , 0.        -0.66131187j]), array([0.72896863+0.j        , 0.        -0.68454711j]), array([0.70710678+0.j        , 0.        -0.70710678j]), array([0.68454711+0.j        , 0.        -0.72896863j]), array([0.66131187+0.j        , 0.        -0.75011107j]), array([0.63742399+0.j        , 0.        -0.77051324j]), array([0.61290705+0.j        , 0.        -0.79015501j]), array([0.58778525+0.j        , 0.        -0.80901699j]), array([0.56208338+0.j        , 0.        -0.82708057j]), array([0.53582679+0.j        , 0.        -0.84432793j]), array([0.50904142+0.j        , 0.        -0.86074203j]), array([0.48175367+0.j        , 0.        -0.87630668j]), array([0.4539905+0.j        , 0.       -0.89100652j]), array([0.42577929+0.j        , 0.        -0.90482705j]), array([0.39714789+0.j        , 0.        -0.91775463j]), array([0.36812455+0.j        , 0.        -0.92977649j]), array([0.33873792+0.j        , 0.        -0.94088077j]), array([0.30901699+0.j        , 0.        -0.95105652j]), array([0.27899111+0.j        , 0.        -0.96029369j]), array([0.24868989+0.j        , 0.        -0.96858316j]), array([0.21814324+0.j        , 0.        -0.97591676j]), array([0.18738131+0.j        , 0.        -0.98228725j]), array([0.15643447+0.j        , 0.        -0.98768834j]), array([0.12533323+0.j       , 0.        -0.9921147j]), array([0.09410831+0.j        , 0.        -0.99556196j]), array([0.06279052+0.j        , 0.        -0.99802673j]), array([0.03141076+0.j        , 0.        -0.99950656j]), array([-5.8201672e-16+0.j,  0.0000000e+00-1.j]), array([-0.03141076+0.j        ,  0.        -0.99950656j]), array([-0.06279052+0.j        ,  0.        -0.99802673j]), array([-0.09410831+0.j        ,  0.        -0.99556196j]), array([-0.12533323+0.j       ,  0.        -0.9921147j]), array([-0.15643447+0.j        ,  0.        -0.98768834j]), array([-0.18738131+0.j        ,  0.        -0.98228725j]), array([-0.21814324+0.j        ,  0.        -0.97591676j]), array([-0.24868989+0.j        ,  0.        -0.96858316j]), array([-0.27899111+0.j        ,  0.        -0.96029369j]), array([-0.30901699+0.j        ,  0.        -0.95105652j]), array([-0.33873792+0.j        ,  0.        -0.94088077j]), array([-0.36812455+0.j        ,  0.        -0.92977649j]), array([-0.39714789+0.j        ,  0.        -0.91775463j]), array([-0.42577929+0.j        ,  0.        -0.90482705j]), array([-0.4539905+0.j        ,  0.       -0.89100652j]), array([-0.48175367+0.j        ,  0.        -0.87630668j]), array([-0.50904142+0.j        ,  0.        -0.86074203j]), array([-0.53582679+0.j        ,  0.        -0.84432793j]), array([-0.56208338+0.j        ,  0.        -0.82708057j]), array([-0.58778525+0.j        ,  0.        -0.80901699j]), array([-0.61290705+0.j        ,  0.        -0.79015501j]), array([-0.63742399+0.j        ,  0.        -0.77051324j]), array([-0.66131187+0.j        ,  0.        -0.75011107j]), array([-0.68454711+0.j        ,  0.        -0.72896863j]), array([-0.70710678+0.j        ,  0.        -0.70710678j]), array([-0.72896863+0.j        ,  0.        -0.68454711j]), array([-0.75011107+0.j        ,  0.        -0.66131187j]), array([-0.77051324+0.j        ,  0.        -0.63742399j]), array([-0.79015501+0.j        ,  0.        -0.61290705j]), array([-0.80901699+0.j        ,  0.        -0.58778525j]), array([-0.82708057+0.j        ,  0.        -0.56208338j]), array([-0.84432793+0.j        ,  0.        -0.53582679j]), array([-0.86074203+0.j        ,  0.        -0.50904142j]), array([-0.87630668+0.j        ,  0.        -0.48175367j]), array([-0.89100652+0.j       ,  0.        -0.4539905j]), array([-0.90482705+0.j        ,  0.        -0.42577929j]), array([-0.91775463+0.j        ,  0.        -0.39714789j]), array([-0.92977649+0.j        ,  0.        -0.36812455j]), array([-0.94088077+0.j        ,  0.        -0.33873792j]), array([-0.95105652+0.j        ,  0.        -0.30901699j]), array([-0.96029369+0.j        ,  0.        -0.27899111j]), array([-0.96858316+0.j        ,  0.        -0.24868989j]), array([-0.97591676+0.j        ,  0.        -0.21814324j]), array([-0.98228725+0.j        ,  0.        -0.18738131j]), array([-0.98768834+0.j        ,  0.        -0.15643447j]), array([-0.9921147+0.j        ,  0.       -0.12533323j]), array([-0.99556196+0.j        ,  0.        -0.09410831j]), array([-0.99802673+0.j        ,  0.        -0.06279052j]), array([-0.99950656+0.j        ,  0.        -0.03141076j])]

出力は状態ベクトルの形にしてみました。刻々と状態が変化しているのが分かります。これだとかなりわかりにくいです。xの値を関数に通してf(x)の形にしたいです。そこで、期待値を計算します。今回は期待値はパウリ行列Zをつかいます。これを使えば、答えが実数で出ます。ほかのを使うと答えが虚数ででてグラフで見づらかったです。

計算方法は、状態ベクトルcをつかって、

<c^*|Z|c>

最終的な式は状態ベクトルの要素を使って、

<c^*|Z|c> = c[0]^2-c[1]^2
となります。c[0]は|0>の係数、c[1]は|1>の係数です。

Z = np.array([[1,0],[0,1]])
x1 = np.arange(0,np.pi*6,np.pi*0.02)
arr = []

for i in range(len(x1)):
    c = Circuit(1).rx(x1[i])[0].run()
    arr.append(np.abs(c[0])**2-np.abs(c[1])**2)
    
plt.plot(arr)
plt.show()
<Figure size 432x288 with 1 Axes>

image

これを見るとわかりやすいですね。関数f(x)は三角関数になっています。Zに係数をかけても振幅という縦の大きさが圧縮されるだけで関数の形状に大きな変化ありません。

arr = []

for i in range(len(x1)):
    c = Circuit(1).rx(x1[i])[0].run()
    arr.append(0.1*(np.abs(c[0])**2-np.abs(c[1])**2))
    
plt.plot(arr)
plt.show()
<Figure size 432x288 with 1 Axes>

image

上記回路を2回繰り返すと、当たり前ですが、角度が2倍されるので周期が短くなります。

arr = []

for i in range(len(x1)):
    c = Circuit(1).rx(x1[i])[0].rx(x1[i])[0].run()
    arr.append(np.abs(c[0])**2-np.abs(c[1])**2)
    
plt.plot(arr)
plt.show()
<Figure size 432x288 with 1 Axes>

image

下記のように角度を二倍するのと同じです。

arr = []

for i in range(len(x1)):
    c = Circuit(1).rx(x1[i]*2)[0].run()
    arr.append(np.abs(c[0])**2-np.abs(c[1])**2)
    
plt.plot(arr)
plt.show()
<Figure size 432x288 with 1 Axes>

image

rxの角度を変えずにryを使って同じ周期で角度を入れてみます。

arr = []

for i in range(len(x1)):
    c = Circuit(1).rx(x1[i])[0].ry(x1[i])[0].run()
    arr.append(np.abs(c[0])**2-np.abs(c[1])**2)
    
plt.plot(arr)
plt.show()
<Figure size 432x288 with 1 Axes>

image

rxとryを併用することでも周期を変更できました。では、この繰り返しを利用して、異なる周期の波を重ねてみます。二回計算しますが、一回目の量子回路をrx、二回目の繰り返しの量子回路をrx+ryとしてみます。

arr = []

for i in range(len(x1)):
    c = Circuit(1).rx(x1[i])[0].rx(x1[i])[0].ry(x1[i])[0].run()
    arr.append(np.abs(c[0])**2-np.abs(c[1])**2)
    
plt.plot(arr)
plt.show()
<Figure size 432x288 with 1 Axes>

image

繰り返しを追加してみました。

arr = []

for i in range(len(x1)):
    c = Circuit(1).rx(x1[i])[0].rx(x1[i])[0].ry(x1[i])[0].rx(x1[i])[0].ry(x1[i])[0].run()
    arr.append(np.abs(c[0])**2-np.abs(c[1])**2)
    
plt.plot(arr)
plt.show()
<Figure size 432x288 with 1 Axes>

image

変数のパラメータが増えればそれだけ複雑な関数も表現できるようになります。ランダム値を入れてみます。

arr = []

for i in range(len(x1)):
    c = Circuit(1).rx(x1[i])[0].rx(x1[i])[0].ry(x1[i]+np.random.random())[0].run()
    arr.append(np.abs(c[0])**2-np.abs(c[1])**2)
    
plt.plot(arr)
plt.show()
<Figure size 432x288 with 1 Axes>

image

実際にはある程度同じパラメータを使っても量子回路を繰り返すことで、複雑な関数に機械学習でフィットさせることができますので、とても便利です。以上です。

© 2025, blueqat Inc. All rights reserved