common.title

Docs
Quantum Circuit
TYTAN CLOUD

QUANTUM GAMING


autoQAOA
Desktop RAG

Overview
Terms of service

Privacy policy

Contact
Research

Sign in
Sign up
common.title

blueqatで量子回路のユニタリ行列を確認する

Yuichiro Minato

2021/01/31 06:20

#量子ゲート

はじめに

こんにちは。量子コンピュータってなんかよくわからないよねっていう人多いですよね。しかしツールがどんどん進化して少しずつ誰でも使える環境ができてきてます。

今回はまだちょっと難しいですが、作った量子回路のユニタリ行列と呼ばれる、全体回路の数学的な表現を取れる機能が量子コンピュータソフトウェア開発キットのblueqatにあります。これによってデバッグが楽になります。

早速使ってみましょう。

早速例題

早速sympyを読み込み、やってみます。

from sympy import pi
from blueqat import Circuit

Circuit().rx(pi / 2)[0].cx[0, 1].run(backend="sympy_unitary")
Matrix([
[   sqrt(2)/2, -sqrt(2)*I/2,            0,            0],
[           0,            0, -sqrt(2)*I/2,    sqrt(2)/2],
[           0,            0,    sqrt(2)/2, -sqrt(2)*I/2],
[-sqrt(2)*I/2,    sqrt(2)/2,            0,            0]])
⎡  √2    -√2⋅ⅈ                 ⎤
⎢  ──    ──────    0       0   ⎥
⎢  2       2                   ⎥
⎢                              ⎥
⎢-√2⋅ⅈ     √2                  ⎥
⎢──────    ──      0       0   ⎥
⎢  2       2                   ⎥
⎢                              ⎥
⎢                -√2⋅ⅈ     √2  ⎥
⎢  0       0     ──────    ──  ⎥
⎢                  2       2   ⎥
⎢                              ⎥
⎢                  √2    -√2⋅ⅈ ⎥
⎢  0       0       ──    ──────⎥
⎣                  2       2   ⎦

できました。行列表現で自分の作った回路が確認できます。素敵ですね。

Circuit().rx(pi / 2)[0].cx[0, 1].run(backend="sympy_unitary")
Matrix([
[   sqrt(2)/2, -sqrt(2)*I/2,            0,            0],
[           0,            0, -sqrt(2)*I/2,    sqrt(2)/2],
[           0,            0,    sqrt(2)/2, -sqrt(2)*I/2],
[-sqrt(2)*I/2,    sqrt(2)/2,            0,            0]])

基本はこんな感じです。

量子フーリエ変換やってみる

N=4の量子フーリエ変換を見てみます。

--H--Rz2--Rz3--Rz4--------------------------
-----*----|----|----H--Rz2--Rz3-------------
----------*----|-------*----|----H--Rz2-----
---------------*------------*-------*----H--

こんな回路です。

from sympy import *
from blueqat import Circuit
init_printing()

Circuit().x[:].h[0].rz(pi/4)[0].cx[1,0].rz(-pi/4)[0].cx[1,0].rz(pi/8)[0].cx[2,0].rz(-pi/8)[0].cx[2,0].rz(pi/16)[0].cx[3,0].rz(-pi/16)[0].cx[3,0].h[1].rz(pi/4)[1].cx[2,1].rz(-pi/4)[1].cx[2,1].rz(pi/8)[1].cx[3,1].rz(-pi/8)[1].cx[3,1].h[2].rz(pi/4)[2].cx[3,2].rz(-pi/4)[2].cx[3,2].h[3].run(backend="sympy_unitary")   
15⋅ⅈ⋅π       15⋅ⅈ⋅π        -5⋅ⅈ⋅π        -5⋅ⅈ⋅π      -11⋅ⅈ⋅π      -11⋅ⅈ⋅π 
⎢   ──────       ──────        ───────       ───────     ────────     ────────
⎢     16           16             16            16          16           16   
⎢  ℯ            ℯ          -ⅈ⋅ℯ          -ⅈ⋅ℯ           ℯ            ℯ        
⎢  ───────      ───────    ────────────  ────────────   ─────────    ─────────
⎢     4            4            4             4             4            4    
⎢                                                                             
⎢  -3⋅ⅈ⋅π       -3⋅ⅈ⋅π        -7⋅ⅈ⋅π        -7⋅ⅈ⋅π        -ⅈ⋅π         -ⅈ⋅π   
⎢  ───────      ───────       ───────       ───────       ─────        ─────  
⎢     16           16            16            16           16           16-ℯ            ℯ            -ℯ             ℯ            -ℯ            ℯ       
⎢──────────    ────────     ──────────     ────────     ────────      ──────  
⎢    4            4             4             4            4            4     
⎢                                                                             
⎢  -5⋅ⅈ⋅π       -5⋅ⅈ⋅π         -ⅈ⋅π          -ⅈ⋅π        -7⋅ⅈ⋅π       -7⋅ⅈ⋅π  
⎢  ───────      ───────        ─────         ─────       ───────      ─────── 
⎢     16           16            16            16           16           16--ℯ              ℯ             ℯ          --ℯ        
⎢──────────   ──────────      ──────        ──────     ──────────   ──────────
⎢    4            4             4             4            4            4     
⎢                                                                             
⎢   9⋅ⅈ⋅π        9⋅ⅈ⋅π         -3⋅ⅈ⋅π        -3⋅ⅈ⋅π       3⋅ⅈ⋅π        3⋅ⅈ⋅π  
⎢   ─────        ─────         ───────       ───────      ─────        ─────  
⎢     16           16             16            16          16           16   
⎢  ℯ           --ⅈ⋅ℯ           ⅈ⋅ℯ            ℯ           -ℯ       
⎢  ──────      ────────    ────────────   ──────────     ──────      ──────── 
⎢    4            4             4             4            4            4     
⎢                                                                             
⎢  -9⋅ⅈ⋅π       -9⋅ⅈ⋅π          3⋅ⅈ⋅π         3⋅ⅈ⋅π      -3⋅ⅈ⋅π       -3⋅ⅈ⋅π  
⎢  ───────      ───────         ─────         ─────      ───────      ─────── 
⎢     16           16             16            16          16           16--ℯ             ⅈ⋅ℯ           ⅈ⋅ℯ          ℯ            ℯ        
⎢──────────   ──────────     ────────      ────────     ────────     ──────── 
⎢    4            4             4             4            4            4     
⎢                                                                             
⎢   5⋅ⅈ⋅π        5⋅ⅈ⋅π          ⅈ⋅π           ⅈ⋅π         7⋅ⅈ⋅π        7⋅ⅈ⋅π  
⎢   ─────        ─────          ───           ───         ─────        ─────  
⎢     16           16            16            16           16           16   
⎢  ℯ           -ℯ              ℯ            --ℯ            ℯ       
⎢  ──────      ────────        ────         ──────      ────────      ──────  
⎢    4            4             4             4            4            4     
⎢                                                                             
⎢   3⋅ⅈ⋅π        3⋅ⅈ⋅π         7⋅ⅈ⋅π         7⋅ⅈ⋅π         ⅈ⋅π          ⅈ⋅π   
⎢   ─────        ─────         ─────         ─────         ───          ───   
⎢     16           16            16            16           16           16   
⎢  ℯ            ℯ            ----ℯ      
⎢  ──────       ──────       ────────      ────────      ──────       ──────  
⎢    4            4             4             4            4            4     
⎢                                                                             
⎢  -15⋅ⅈ⋅π      -15⋅ⅈ⋅π         5⋅ⅈ⋅π         5⋅ⅈ⋅π       11⋅ⅈ⋅π       11⋅ⅈ⋅π 
⎢  ────────     ────────        ─────         ─────       ──────       ────── 
⎢     16           16             16            16          16           16-ℯ            ℯ             ⅈ⋅ℯ          -ⅈ⋅ℯ           ℯ           -ℯ       
⎢───────────   ─────────     ────────     ──────────     ───────     ─────────
⎢     4            4            4             4             4            4    
⎢                                                                             
⎢   15⋅ⅈ⋅π       15⋅ⅈ⋅π        -5⋅ⅈ⋅π        -5⋅ⅈ⋅π      -11⋅ⅈ⋅π      -11⋅ⅈ⋅π 
⎢   ──────       ──────        ───────       ───────     ────────     ────────
⎢     16           16             16            16          16           16--ℯ           ⅈ⋅ℯ           ⅈ⋅ℯ          --ℯ        
⎢ ─────────    ─────────    ──────────    ──────────   ───────────  ──────────
⎢     4            4            4             4             4            4    
⎢                                                                             
⎢  -3⋅ⅈ⋅π       -3⋅ⅈ⋅π        -7⋅ⅈ⋅π        -7⋅ⅈ⋅π        -ⅈ⋅π         -ⅈ⋅π   
⎢  ───────      ───────       ───────       ───────       ─────        ─────  
⎢     16           16            16            16           16           16   
⎢ ℯ           -ℯ             ℯ            -ℯ             ℯ           -ℯ       
⎢ ────────    ──────────     ────────     ──────────     ──────      ──────── 
⎢    4            4             4             4            4            4     
⎢                                                                             
⎢  -5⋅ⅈ⋅π       -5⋅ⅈ⋅π         -ⅈ⋅π          -ⅈ⋅π        -7⋅ⅈ⋅π       -7⋅ⅈ⋅π  
⎢  ───────      ───────        ─────         ─────       ───────      ─────── 
⎢     16           16            16            16           16           16   
⎢ ℯ            ℯ             --ℯ           ℯ            ℯ        
⎢ ────────     ────────      ────────      ────────     ────────     ──────── 
⎢    4            4             4             4            4            4     
⎢                                                                             
⎢   9⋅ⅈ⋅π        9⋅ⅈ⋅π         -3⋅ⅈ⋅π        -3⋅ⅈ⋅π       3⋅ⅈ⋅π        3⋅ⅈ⋅π  
⎢   ─────        ─────         ───────       ───────      ─────        ─────  
⎢     16           16             16            16          16           16-ℯ            ℯ           ⅈ⋅ℯ          -ⅈ⋅ℯ           -ℯ            ℯ       
⎢ ────────      ──────      ──────────   ────────────   ────────      ──────  
⎢    4            4             4             4            4            4     
⎢                                                                             
⎢  -9⋅ⅈ⋅π       -9⋅ⅈ⋅π          3⋅ⅈ⋅π         3⋅ⅈ⋅π      -3⋅ⅈ⋅π       -3⋅ⅈ⋅π  
⎢  ───────      ───────         ─────         ─────      ───────      ─────── 
⎢     16           16             16            16          16           16   
⎢ ℯ            ℯ            -ⅈ⋅ℯ          -ⅈ⋅ℯ         --ℯ        
⎢ ────────     ────────     ──────────    ──────────   ──────────   ──────────
⎢    4            4             4             4            4            4     
⎢                                                                             
⎢   5⋅ⅈ⋅π        5⋅ⅈ⋅π          ⅈ⋅π           ⅈ⋅π         7⋅ⅈ⋅π        7⋅ⅈ⋅π  
⎢   ─────        ─────          ───           ───         ─────        ─────  
⎢     16           16            16            16           16           16-ℯ            ℯ             -ℯ             ℯ           ℯ           -ℯ       
⎢ ────────      ──────        ──────         ────        ──────      ──────── 
⎢    4            4             4             4            4            4     
⎢                                                                             
⎢   3⋅ⅈ⋅π        3⋅ⅈ⋅π         7⋅ⅈ⋅π         7⋅ⅈ⋅π         ⅈ⋅π          ⅈ⋅π   
⎢   ─────        ─────         ─────         ─────         ───          ───   
⎢     16           16            16            16           16           16--ℯ             ℯ             ℯ             ℯ            ℯ      
⎢ ────────     ────────       ──────        ──────        ────         ────   
⎢    4            4             4             4            4            4     
⎢                                                                             
⎢  -15⋅ⅈ⋅π      -15⋅ⅈ⋅π         5⋅ⅈ⋅π         5⋅ⅈ⋅π       11⋅ⅈ⋅π       11⋅ⅈ⋅π 
⎢  ────────     ────────        ─────         ─────       ──────       ────── 
⎢     16           16             16            16          16           16   
⎢ ℯ           --ⅈ⋅ℯ           ⅈ⋅ℯ          -ℯ            ℯ       
⎢ ─────────   ───────────   ──────────     ────────     ─────────     ─────── 
⎣     4            4            4             4             4            4    

     -7⋅ⅈ⋅π      -7⋅ⅈ⋅π        -ⅈ⋅π        -ⅈ⋅π         ⅈ⋅π         ⅈ⋅π      -
     ───────     ───────       ─────       ─────        ───         ───      ─
        16          16           8           8           8           8        
    ℯ           ℯ          -ⅈ⋅ℯ        -ⅈ⋅ℯ         -ⅈ⋅ℯ        -ⅈ⋅ℯ        ℯ 
    ────────    ────────   ──────────  ──────────   ────────    ────────    ──
       4           4           4           4           4           4          
                                                                              
     -5⋅ⅈ⋅π      -5⋅ⅈ⋅π        ⅈ⋅π         ⅈ⋅π        -ⅈ⋅π        -ⅈ⋅π        
     ───────     ───────       ───         ───        ─────       ─────       
        16          16          8           8           8           8         
   -ℯ           ℯ            -ℯ           ℯ         -ℯ           ℯ          -ℯ
   ──────────   ────────     ──────       ────      ────────     ──────     ──
       4           4           4           4           4           4          
                                                                              
     -3⋅ⅈ⋅π      -3⋅ⅈ⋅π       -ⅈ⋅π        -ⅈ⋅π         ⅈ⋅π         ⅈ⋅π       -
     ───────     ───────      ─────       ─────        ───         ───       ─
        16          16          8           8           8           8         
    ℯ           ℯ           --ℯ            ℯ           ℯ        -ℯ 
    ────────    ────────    ────────    ────────      ────        ────     ───
       4           4           4           4           4           4          
                                                                              
      -ⅈ⋅π        -ⅈ⋅π          ⅈ⋅π         ⅈ⋅π       3⋅ⅈ⋅π       3⋅ⅈ⋅π       
      ─────       ─────         ───         ───       ─────       ─────       
        16          16           8           8          8           8         
    -ℯ           ℯ           ⅈ⋅ℯ        -ⅈ⋅ℯ        -ℯ           ℯ           ℯ
    ────────     ──────      ──────     ────────    ────────     ──────      ─
       4           4           4           4           4           4          
                                                                              
       ⅈ⋅π         ⅈ⋅π         -ⅈ⋅π        -ⅈ⋅π      -3⋅ⅈ⋅π      -3⋅ⅈ⋅π      -
       ───         ───         ─────       ─────     ───────     ───────     ─
        16          16           8           8          8           8         
      ℯ           ℯ         ⅈ⋅ℯ         ⅈ⋅ℯ        --ℯ           ℯ 
      ────        ────      ────────    ────────   ──────────  ──────────   ──
       4           4           4           4           4           4          
                                                                              
      3⋅ⅈ⋅π       3⋅ⅈ⋅π        ⅈ⋅π         ⅈ⋅π        -ⅈ⋅π        -ⅈ⋅π        
      ─────       ─────        ───         ───        ─────       ─────       
        16          16          8           8           8           8         
    -ℯ           ℯ            ℯ          -ℯ          ℯ          --ℯ
    ────────     ──────       ────       ──────      ──────     ────────    ──
       4           4           4           4           4           4          
                                                                              
      5⋅ⅈ⋅π       5⋅ⅈ⋅π       -ⅈ⋅π        -ⅈ⋅π         ⅈ⋅π         ⅈ⋅π       -
      ─────       ─────       ─────       ─────        ───         ───       ─
        16          16          8           8           8           8         
     ℯ           ℯ           ℯ           ℯ           ---ℯ 
     ──────      ──────      ──────      ──────      ──────      ──────    ───
       4           4           4           4           4           4          
                                                                              
      7⋅ⅈ⋅π       7⋅ⅈ⋅π         ⅈ⋅π         ⅈ⋅π        -ⅈ⋅π        -ⅈ⋅π       
      ─────       ─────         ───         ───        ─────       ─────      
        16          16           8           8           8           8        
    -ℯ           ℯ          -ⅈ⋅ℯ         ⅈ⋅ℯ        ⅈ⋅ℯ        -ⅈ⋅ℯ          ℯ
    ────────     ──────     ────────     ──────     ────────   ──────────    ─
       4           4           4           4           4           4          
                                                                              
     -7⋅ⅈ⋅π      -7⋅ⅈ⋅π        -ⅈ⋅π        -ⅈ⋅π         ⅈ⋅π         ⅈ⋅π      -
     ───────     ───────       ─────       ─────        ───         ───      ─
        16          16           8           8           8           8        
   ---ⅈ⋅ℯ        -ⅈ⋅ℯ         -ⅈ⋅ℯ        -ⅈ⋅ℯ        ℯ 
─  ──────────  ──────────  ──────────  ──────────   ────────    ────────    ──
       4           4           4           4           4           4          
                                                                              
     -5⋅ⅈ⋅π      -5⋅ⅈ⋅π        ⅈ⋅π         ⅈ⋅π        -ⅈ⋅π        -ⅈ⋅π        
     ───────     ───────       ───         ───        ─────       ─────       
        16          16          8           8           8           8--ℯ           ℯ         -ℯ           ℯ          -ℯ
    ────────   ──────────    ──────       ────      ────────     ──────     ──
       4           4           4           4           4           4          
                                                                              
     -3⋅ⅈ⋅π      -3⋅ⅈ⋅π       -ⅈ⋅π        -ⅈ⋅π         ⅈ⋅π         ⅈ⋅π       -
     ───────     ───────      ─────       ─────        ───         ───       ─
        16          16          8           8           8           8         
   ----ℯ            ℯ           ℯ        -ℯ 
   ──────────  ──────────   ────────    ────────      ────        ────     ───
       4           4           4           4           4           4          
                                                                              
      -ⅈ⋅π        -ⅈ⋅π          ⅈ⋅π         ⅈ⋅π       3⋅ⅈ⋅π       3⋅ⅈ⋅π       
      ─────       ─────         ───         ───       ─────       ─────       
        16          16           8           8          8           8-ℯ           ⅈ⋅ℯ        -ⅈ⋅ℯ        -ℯ           ℯ           ℯ
     ──────     ────────     ──────     ────────    ────────     ──────      ─
       4           4           4           4           4           4          
                                                                              
       ⅈ⋅π         ⅈ⋅π         -ⅈ⋅π        -ⅈ⋅π      -3⋅ⅈ⋅π      -3⋅ⅈ⋅π      -
       ───         ───         ─────       ─────     ───────     ───────     ─
        16          16           8           8          8           8         
     --ℯ         ⅈ⋅ℯ         ⅈ⋅ℯ        --ℯ           ℯ 
     ──────      ──────     ────────    ────────   ──────────  ──────────   ──
       4           4           4           4           4           4          
                                                                              
      3⋅ⅈ⋅π       3⋅ⅈ⋅π        ⅈ⋅π         ⅈ⋅π        -ⅈ⋅π        -ⅈ⋅π        
      ─────       ─────        ───         ───        ─────       ─────       
        16          16          8           8           8           8-ℯ            ℯ          -ℯ          ℯ          --ℯ
     ──────     ────────      ────       ──────      ──────     ────────    ──
       4           4           4           4           4           4          
                                                                              
      5⋅ⅈ⋅π       5⋅ⅈ⋅π       -ⅈ⋅π        -ⅈ⋅π         ⅈ⋅π         ⅈ⋅π       -
      ─────       ─────       ─────       ─────        ───         ───       ─
        16          16          8           8           8           8         
    --ℯ           ℯ           ℯ           ---ℯ 
    ────────    ────────     ──────      ──────      ──────      ──────    ───
       4           4           4           4           4           4          
                                                                              
      7⋅ⅈ⋅π       7⋅ⅈ⋅π         ⅈ⋅π         ⅈ⋅π        -ⅈ⋅π        -ⅈ⋅π       
      ─────       ─────         ───         ───        ─────       ─────      
        16          16           8           8           8           8--ⅈ⋅ℯ         ⅈ⋅ℯ        ⅈ⋅ℯ        -ⅈ⋅ℯ          ℯ
     ──────     ────────    ────────     ──────     ────────   ──────────    ─
       4           4           4           4           4           4          

ⅈ⋅π      -ⅈ⋅π             ⎤
────     ─────            ⎥
 4         4              ⎥
        ℯ                 ⎥
────    ──────   1/4   1/44         4               ⎥
                          ⎥
ⅈ⋅π       ⅈ⋅π             ⎥
───       ───             ⎥
 4         4              ⎥
         ℯ                ⎥
────     ────    -1/4  1/44         4               ⎥
                          ⎥
ⅈ⋅π      -ⅈ⋅π             ⎥
────     ─────            ⎥
 4         4-ℯ                 ⎥
─────  ────────  1/4   1/44         4               ⎥
                          ⎥
ⅈ⋅π       ⅈ⋅π             ⎥
───       ───             ⎥
 4         4-ℯ                ⎥
───     ──────   -1/4  1/44         4               ⎥
                          ⎥
ⅈ⋅π      -ⅈ⋅π             ⎥
────     ─────            ⎥
 4         4              ⎥
        ℯ                 ⎥
────    ──────   1/4   1/44         4               ⎥
                          ⎥
ⅈ⋅π       ⅈ⋅π             ⎥
───       ───             ⎥
 4         4              ⎥
         ℯ                ⎥
────     ────    -1/4  1/44         4               ⎥
                          ⎥
ⅈ⋅π      -ⅈ⋅π             ⎥
────     ─────            ⎥
 4         4-ℯ                 ⎥
─────  ────────  1/4   1/44         4               ⎥
                          ⎥
ⅈ⋅π       ⅈ⋅π             ⎥
───       ───             ⎥
 4         4-ℯ                ⎥
───     ──────   -1/4  1/44         4               ⎥
                          ⎥
ⅈ⋅π      -ⅈ⋅π             ⎥
────     ─────            ⎥
 4         4              ⎥
        ℯ                 ⎥
────    ──────   1/4   1/44         4               ⎥
                          ⎥
ⅈ⋅π       ⅈ⋅π             ⎥
───       ───             ⎥
 4         4              ⎥
         ℯ                ⎥
────     ────    -1/4  1/44         4               ⎥
                          ⎥
ⅈ⋅π      -ⅈ⋅π             ⎥
────     ─────            ⎥
 4         4-ℯ                 ⎥
─────  ────────  1/4   1/44         4               ⎥
                          ⎥
ⅈ⋅π       ⅈ⋅π             ⎥
───       ───             ⎥
 4         4-ℯ                ⎥
───     ──────   -1/4  1/44         4               ⎥
                          ⎥
ⅈ⋅π      -ⅈ⋅π             ⎥
────     ─────            ⎥
 4         4              ⎥
        ℯ                 ⎥
────    ──────   1/4   1/44         4               ⎥
                          ⎥
ⅈ⋅π       ⅈ⋅π             ⎥
───       ───             ⎥
 4         4              ⎥
         ℯ                ⎥
────     ────    -1/4  1/44         4               ⎥
                          ⎥
ⅈ⋅π      -ⅈ⋅π             ⎥
────     ─────            ⎥
 4         4-ℯ                 ⎥
─────  ────────  1/4   1/44         4               ⎥
                          ⎥
ⅈ⋅π       ⅈ⋅π             ⎥
───       ───             ⎥
 4         4-ℯ                ⎥
───     ──────   -1/4  1/44         4

image

でました!

unitary.png

中は大変なことになってたんですね。。。勉強になりました!みなさんもつかってみてくださいませ。以上です。

© 2025, blueqat Inc. All rights reserved