派遣で働くエンジニアのスキルアップを応援するサイト

PRODUCED BY RECRUIT

初心者でもわかる量子コンピュータの計算の仕組み【第2話】量子コンピュータで使用する計算の土台を学ぼう

量子コンピュータに関して専門知識がなくても理解できるようになることを目指した本連載。第1話は想像以上にたくさんの方に読んでいただき、嬉しく思っています。

第2話では、行列の基礎の復習から量子コンピュータで用いられるユニタリ行列までを解説します。高校レベルの行列と確率を思い出しながら、ゆっくり繰り返し読んで理解してみてください。

【筆者】束野 仁政さん

量子コンピュータ・プログラマ。学生時代に数学を専攻したのち、ソフトウェア・エンジニアを経て、現在は研究機関にて量子コンピュータの仕事をしている。量子コンピュータの面白さを多くの人に広めたいと思い、雑誌記事や同人誌の執筆、勉強会での発表等を行う。著書は「Elasticsearch NEXT STEP」(インプレスR&D)。
・Twitterアカウント(https://twitter.com/snuffkin)

今回のサマリ

・量子コンピュータで使用する行列の基礎をおさえましょう
 ・行列の定義から和・差・積、単位行列と逆行列、複素数
     ※高校レベルの復習です。自信がある方は飛ばして構いません
 ・転置行列と随伴行列、ユニタリ行列
     ※何度も読めば理解できるはずですので、焦らず進みましょう

・(コラム)数学と物理学で少しずつ異なる記号の使い方

■免責
本連載は情報の提供のみを目的としています。

本連載の内容を実行・適用・運用したことで何が起きようとも、それは実行・適用・運用した人自身の責任であり、著者や関係者はいかなる責任も負いません。

■商標
本連載に登場するシステム名や製品名は、関係各社の商標または登録商標です。 また本書では、™、®、© などのマークは省略しています。

前回は数式を使わずに、量子コンピュータの概念やよくある誤解について説明しました。今回からは、量子コンピュータの計算の仕組みを具体的に説明します。具体的には、量子コンピュータの計算で利用するベクトルと行列についてです。ベクトルや行列について既知の方は、前半を飛ばしても構いません。

ベクトル・行列・確率といった数式が必要になりますが、手計算できる例を挙げますので、あまり構えずに進みましょう。さまざまな概念が登場しますが、私も初めて学んだときは一度には理解できませんでした。具体的に計算しながら、少しずつ慣れていきましょう。

量子コンピュータで使う行列の基礎

まずは、量子コンピュータで使う行列について説明します。第1話にも登場したユニタリ行列は、量子コンピュータで頻出する特に重要な概念です。

■行列の定義

縦と横に数を並べたものを行列(matrix)といいます。たとえば、次のようなものは行列です。

ここでは下記を例に、行列の用語について説明します。

まず、行列の横方向を行(row)といい、上から下に向かって順に第1行、第2行、と数えます。また、行列の縦方向を列(column)といい、左から 右に向かって順に第1列、第2列……と数えます。

行列の大きさを表すとき、行数と列数を明示して「2×2行列」のようにいいます。下記は2×1行列です。

行と列の大きさが同じものを正方行列(square matrix)といいます。大きさがn×nの場合、n次正方行列といいます。

行が1つの行列を行ベクトル、列が1つの行列を列ベクトルといいます。これらを単にベクトルということも多いです。例として下記のようになります。

■行列の和・差・積

2×2行列の例を挙げながら、行列の用語や性質を説明します。大きさが同じ行列に対して、和(足し算)や差(引き算)を同じ成分同士の計算として定義できます。積(かけ算)はもう少し複雑な定義になります。

「:=」という記号が出てきました。「左辺:=右辺」と書いた場合、「右辺(既知の数式)を使って、左辺(未知の数式)を定義する」ことを意味します。

上の定義は、右辺(実数の足し算。既知)を使って、左辺(行列の足し算。未知)を定義しています。この定義にしたがい、具体的に計算してみましょう。たとえば、

の場合はそれぞれ以下のようになります。

また、積の記号は省略し、A·BはABと書くことが多いです。

■単位行列と逆行列

実数1の性質として、任意の実数aに対してa·1 = 1·a = aを満たすことが挙げられます。この性質を満たすものが、行列にも存在します。

n次正方行列で「行と列が同じ成分が1で、行と列が異なる成分が0」となるものを単位行列(identity matrix)といい、と書きます。

文脈からnが明らかな場合は単にと書きます。

0ではない実数aの性質として、となります。このをaの逆数(inverse)といいます。逆数にあたる概念は、行列にも存在します。n次正方行列Aに対し、

となるn次正方行列Bが存在するとき、BをAの逆行列(inverse matrix)といい、と書きます。

実数0には逆数が存在しません。逆行列もいつでも存在するわけではなく、存在する条件があります。とすると、のときだけ逆行列が存在し、は次の形をしています。

実際に計算してみると、となることを確認できます。

■複素数

ユニタリ行列の要素は複素数です。簡単にですが、複素数についても説明します。

実数を2乗すると0以上になるため、「2乗すると-1になる数」は実数の範囲には存在しません。数の概念を実数から拡張し、「2乗すると-1になる数」を「」と書き、虚数単位(imaginary unit)といいます。

」は添え字(index)を表す記号としても使われるため、混同しないように注意する必要があります。

2つの実数x, yと虚数単位使い、

の形で表せる数を複素数(complex number)といいます。y=0の場合、は実数になります。

のとき、xを実部(real part)といい、yを虚部(imaginary part)といいます。また、複素数zの絶対値(absolute value)を次のように定義します。

この定義は、y=0の場合は実数の絶対値と一致します。

虚部の符号を反転させたものを複素共役(complex conjugate)といい、次のように表します。たとえば、の複素共役はです。

■転置行列と随伴行列

行列Aの行と列を入れ替えた行列を転置行列(transposed matrix)といい、と書きます。

たとえば、下記のようになります。

m×n行列の転置行列はn×m行列になります。行列Aの各成分の複素共役にしたものを複素共役行列(complex conjugate matrix)といい、と書きます。たとえば、下記のようになります。

「複素共役して転置した行列」と「転置して複素共役した行列」は同じになります。そのため、どちらを先に計算しても結果は変わりません。を随伴行列(adjoint matrix)といい、と書きます。記号 はダガー(dagger)と呼びます。

たとえば、下記のようになります。

転置行列の記号()と随伴行列の記号()は似ているため、注意が必要です。

■ユニタリ行列

いよいよユニタリ行列です。随伴行列が逆行列となる正方行列をユニタリ行列(unitary matrix)といいます。数式で書くと、次の3つの条件を満たす行列をユニタリ行列といいます。

実は、上の式のどれか1個が成り立てば他の2個の条件も成り立ちます。そのため、ユニタリ行列であるかは、確認しやすい条件だけチェックすれば十分です。

たとえば、次の行列はユニタリ行列になります。具体的に確認してみてください。

連載の第1話でも触れましたが、ユニタリ行列はベクトルにかけても長さを変えない行列です(図1.1)。

▲図1.1:ベクトルxにユニタリ行列Uをかけても、ベクトルの長さは変わらない(xの長さ=Uxの長さ)

今回はここまでとなります。行列を学んでいない方はもちろん、学んでいても昔の記憶を引っ張り出して理解するのは大変だったかもしれません。一度で理解できなくても、具体的な例を計算して慣れておきましょう。

次回は、量子ビット、量子状態、測定、量子ゲートまでを順に学んでいきます。新しい概念が登場しますが、できるだけ平易に説明します。次回もお楽しみに。

 

(コラム)数学と物理学で少しずつ異なる記号の使い方

今回説明するにあたってさまざまな記号を使いましたが、もしかしたら過去に学んでいた記号の使い方と異なるために混乱した方もいたのではないでしょうか。

それは、数学と物理学では、行列に関連する記号の使い方が異なるからだと考えられます。文献による違いもありますが、それぞれの分野でよく利用される記号は表1.1の通りです。

特に「数学の随伴行列」と「物理学の複素共役」は同じ記号で別のものを指すため、注意が必要です。量子コンピュータでは物理学の記号を使うことが多く、この連載でも物理学で使われる行列の記号を採用します。今後勉強される際に注意して見てみると、違いがわかって面白いかもしれません。

▲表1.1:行列に関連する記号の違い

▼これまでの「初心者でもわかる量子コンピュータの計算の仕組み」
【第1話】数式なしで量子コンピュータの現状を理解しよう
【第2話】量子コンピュータで使用する計算の土台を学ぼう
【第3話】量子コンピュータの基本のルールを学ぼう
【第4話】基本の量子ゲートと量子回路をおさえよう
【第5話】量子プログラミングをやってみよう
【最終話】現在の量子コンピュータの限界とこれから

束野仁政さんの著書『量子コンピュータの頭の中――計算しながら理解する量子アルゴリズムの世界(技術評論社)』もあわせてご覧ください。(2023年7月追記)