量子コンピュータについて
量子コンピュータは、大きく分けて量子コンピュータと疑似量子コンピュータの2つがあります。
量子コンピュータ
量子コンピュータは、量子力学の原理を利用して計算を行うコンピュータのことです。伝統的なコンピュータはビットと呼ばれる0と1の2つの状態を持つデジタルシステムで構成されていますが、量子コンピュータは量子ビットと呼ばれる量子粒子を用いて計算を行います。量子ビットは0と1の2つの状態を同時に持つことができ、これにより量子コンピュータは非常に大量のデータを同時に処理することができます。
量子コンピュータは、一部の分野では伝統的なコンピュータに比べて高速な計算が可能であり、特に暗号解読などの業界で有望な技術とされています。しかし、量子コンピュータはまだ発展途上の技術であり、実用化にはまだ時間がかかる可能性があります。
疑似量子コンピュータ
疑似量子コンピュータは、古典コンピュータ上で量子コンピュータのアルゴリズムをシミュレートすることで、量子コンピュータが解決できる問題のクラスを古典コンピュータでも解決可能にする手法のことを指します。一方で、古典コンピュータには制限があり、現在の技術水準では現実的な時間内に解を得ることができない問題も存在します。例えば、量子コンピュータが多項式時間で解を得ることができる「NP完全問題」などがそうです。
しかし、量子コンピュータがまだ実用化されていない現状では、疑似量子コンピュータは、既に存在する古典コンピュータで、現実的な時間で多くの問題を解決するために活用されています。また、量子コンピュータのアルゴリズムの研究・開発においても、疑似量子コンピュータは有用なツールとなっています。
主な疑似量子コンピュータ
現在、弊社が取り扱う主な疑似量子コンピュータとして、以下の3つがあります。
■従来のコンピュータ + GPUカード + ソフトウエア(ゲート方式)
図のように、従来のコンピュータにGPUを取り付けて、ソフトウエアにより疑似コンピューティング環境を実現します(※図はイメージです)
■従来のコンピュータ単体 + ソフトウエア(アニーリング方式)
従来のコンピュータにソフトウエアをインストールし、CPU(またはGPU)による疑似コンピューティング環境を実現します(※図はイメージです)
■従来のコンピュータ + ベクトルカード + ソフトウエア(アニーリング方式)
図のように、従来のコンピュータにベクトルカードを取り付けて、ソフトウエアにより疑似コンピューティング環境を実現します(※図はイメージです)
キング・テックの量子コンピューティングサービス
目的・用途・ご予算に応じた量子コンピューティングサービスを選べます
キング・テックの量子コンピューティングサービスは、目的・用途・ご予算に応じて、
■量子クラウドコンピューティングサービス(量子ゲート方式):
量子ゲート方式の量子コンピュータ実機および疑似量子コンピュータ実機をクラウド経由で利用できるサービス
■GPU量子コンピューティングスターターキット(量子ゲート方式):
ソフトがプリインストールされた量子ゲート方式の疑似量子コンピュータ実機の納品・設置等のご提供サービス
■QUBO量子コンピューティングスターターキット(アニーリング方式):
ソフトがプリインストールされた量子アニーリング方式の疑似量子コンピュータ実機の納品・設置等のご提供サービス
■ベクトル量子コンピューティングスターターキット(アニーリング方式):
ソフトがプリインストールされた量子アニーリング方式の疑似量子コンピュータ実機の納品・設置等のご提供サービス
を選べます。
量子クラウドコンピューティングサービス(量子ゲート方式)
概要
法人向け blueqat cloud をクラウド基盤とした量子クラウドコンピューティングサービスです。ゲート方式の量子コンピュータ実機ならびにGPU疑似量子コンピュータがクラウド経由で利用できます。キング・テック経由でお申込みいただくと、きめ細かい課金サービス・便利なお支払方法サービスが利用可能です。
特徴
-
量子コンピュータ実機・疑似量子コンピュータが1日¥5,000(税別)で利用できる
-
実機利用は安心のクレジット制で従量課金使い過ぎがなく、月額内で料金が収まる
-
便利なお支払方法を選択できる
-
使い勝手のいい blueqatSDK が使え、簡単な記述で複雑な計算ができる
-
3つの操作を行うだけで、すぐに量子コンピュータ実機・疑似量子コンピュータが利用できる
ご利用イメージ
お申し込みはキング・テックにご用命ください。アカウント発行ならびにご請求はキング・テックより行います。キング・テックにご用命いただくときめ細かい課金サービス・便利なお支払方法サービスが利用可能です。
2023年2月現在。今後予告なく変更することがあります。
料金体系・お支払方法
■インスタンスご利用料金(マシン種別不問)
※2023年2月現在。今後予告なく変更することがあります
■blueqatによる技術サポートサービス料金
※2023年2月現在。今後予告なく変更することがあります
■お支払方法
以下のメニューから、最適なお支払方法を選択できます。
※2023年2月現在。今後予告なく変更することがあります
法人向け blueqat cloud の特徴
量子クラウドコンピューティングサービスの基盤となる法人向け blueqat cloud の特徴です。
2023年3月より、ChatGPTのAPIを呼び出して利用することができるようになりました。
-
実機の利用時間を管理できる
実機利用は安心のクレジット制。従量課金で使い過ぎによる高額請求の心配がなく、月額内ですべて金額が収まります。 -
細かいカリキュラムサポート
業務や用途に合わせたカリキュラムを事前に組むことで、安心して学習し、技術サポートサービスを受けることができます。 -
世界の量子業界最新動向が把握できる
Quantum Bussiness Magazine からの月額レポートを受け、世界の最新データベースを活用できます。
ソフトウエアスタック
法人向け blueqat cloudは、量子コンピュータ実機ならびに GPU疑似量子コンピュータ実機の両方が使えるよう、以下のようなソフトウエアスタックをご用意しております。
シミュレータやアプリケーションのマッピング
シミュレータやアプリケーションについて、量子コンピュータ実機と疑似量子コンピュータ実機とでマッピングしてみました。使用するアプリケーションによって、量子コンピュータ実機とGPU疑似量子コンピュータ実機(GPU疑似量子コンピュータの場合、使用する cuQuantum ライブラリも)について、以下のようにマッピングされます。
※図内に記述されている用語(例えば VQEなど)については、このページ最下方に用語説明欄を設けてありますので、そちらをご覧ください。
出典:blueqat株式会社(旧MDR株式会社) ※Powered by NVIDIA
ポータル機能の「blueqat SDK」
量子クラウドコンピューティングサービスのポータル機能として、「blueqat SDK」が提供されます。
「blueqat SDK」は、量子コンピュータのプログラミングを行うための開発キットで、「blueqat SDK」 の特徴である記述のしやすさにより、量子コンピュータのプログラミングを非常に簡単に行うことができ、
のように簡単な記述で量子コンピュータ、疑似量子コンピュータによる複雑な計算ができます。
簡単な操作で量子実機・GPU疑似量子実機が使える
操作はいたって簡単。3つの操作ですぐに量子コンピュータ実機、GPU疑似量子コンピュータ実機が使えます。
cuStateVec
■まずは、cuStateVec から使ってみましょう。とりあえず最初はこれをつかっておけば OK です。
- 30-50量子ビット程度まで
- どんなアプリケーションでも動く
- 例題がたくさんある
という特徴があります。cuStateVec を使うには Cirq および qsim とビルドが必要ですが、法人向け blueqat cloudではそれが不要です。
法人向け blueqat cloudでは上記のようなビルドは一切不要です 出典:blueqat株式会社(旧MDR株式会社)
■cuStateVec の計算の振る舞い
下図のように、Δt において、1タイムステップごとに量子ビットがどのような状態にあるかを計算します。これは、古典的な HPC アプリケーションの計算振る舞いと似ています。
出典:blueqat株式会社(旧MDR株式会社)
■cuStateVec の計算例
以下は、・Cirqビルトインシミュレータ ・qsim CPUベースのシミュレータ ・qsim cuStateVecで高速化されたシミュレータの計算例です。
出典:blueqat株式会社(旧MDR株式会社)
計算結果の解が得られました。以下のコンソール出力は、CPU SIMD 命令と OpenMP による最適化で、qsim のCPU版は Cirq のシミュレータより5.1倍高速化されたことを示しています。cuStateVec 版を使用することで、さらにシミュレーションが高速化され、Cirq のシミュレータと比較して30.04倍、qsim のCPU版と比較して5.9倍高速になりました。
cirq.sim : [0.70710677+0.j 0.70710677+0.j], 87.51 s
qsim(CPU) : [(0.7071067690849304+0j), (0.7071067690849304+0j)], 17.04 s
cuStateVec: [(0.7071067690849304+0j), (0.7071067690849304+0j)], 2.88 s
出典:blueqat株式会社(旧MDR株式会社)
量子クラウドコンピューティングサービス(量子ゲート方式)の詳細についてはこちらからどうぞ。
(別タブで問合せ画面に変遷しますので、セールスボタンからお問合せ下さい。メーラーが立ち上がります)
量子クラウドコンピューティングサービスパンフレット(A4 2枚/pdf形式/別タブで開きます)
GPU量子コンピューティングスターターキット(量子ゲート方式)
概要
GPU量子コンピューティングスターターキットは、NVIDIA cuQuantum と呼ばれる既存のGPUで動作するライブラリを用いて量子回路シミュレータのアプリ作成および実行が行えるGPU疑似量子コンピュータ実機による開発キットです。このキットは、NVIDIA cuQuantumおよびNVIDIA cuQuantumが動作するソフトウエアプラットフォーム、GPUハードウエアプラットフォーム、そして blueqat社が提供する量子コンピュータのプログラミングを行うための開発キット「 blueqatSDK」、blueqat社の導入立上げ技術サポートサービスから構成されています。NVIDIA cuQuantumは、量子回路シミュレータのアプリ開発および実行を目的としてNVIDIAが開発したライブラリです。
特徴
-
GPUで量子コンピュータ向けのアプリの作成/実行が簡単にできる
-
オンプレミス(お客様先設置)型で自社運用が自由にできる
-
予算にあわせて無理なくハードウエアを選べる
-
blueqat社サポート付きで安心して導入運用ができる
-
既に cuQuantum で5000量子ビットでの量子ゲート計算達成している
導入イメージ
お申し込みはキング・テックにご用命ください。お客様のご利用形態に応じて、デスクサイド型コンピュータまたはラック型コンピュータにソフトをプリインストールして設置します。ソフトがプリインストールされているので、設置してすぐに疑似量子コンピューティング環境が利用可能です。
※GPUカードを装着したコンピュータは、およそ70デシベル(掃除機)程度の音を発します。オプションとして防音ラックをご用意しております。およそ50デシベル(静かな事務所)程度に減衰できます。
NVIDIA cuQuantum とは
- 既存のGPUで動作する量子コンピュータ向けアプリ開発キット
- 状態ベクトルシミュレータとテンソルネットワークシミュレータが提供される
- 量子化学、金融、最適化、機械学習などの幅広い分野で使える
- 超大規模計算も可能に(既にcuQuantumで5000量子ビットでの量子ゲート計算を達成)
■ソフトウエアスタック
NVIDIA cuQuantum には、状態ベクトルとテンソルネットワークのシミュレーションをそれぞれ最適化する NVIDIA の cuStateVec ライブラリと cuTensorNet ライブラリが含まれています。cuTensorNet ライブラリ機能は、Tensor Network 操作のために Python を介してアクセスできます。cuStateVec ライブラリを使用して、NVIDIA は、量子回路用の Google の状態ベクトル シミュレーターである qsim を介して、マルチ GPU に最適化された Google Cirq フロントエンドを提供します。
さらに、GPU量子コンピューティングスターターキットには量子コンピュータのプログラミングを行うための開発キットである「blueqatSDK」もプリインストールされていて、全て「blueqatSDK」から簡単な操作で NVIDIA cuQuantum および qsim、Google Cirq を使えるようにしてあります。
ご利用イメージとしては下図のようになります。
■提供されるシミュレータの機能
- 状態ベクトルシミュレータ機能:最適化されたメモリ管理および数学カーネル、効率化インデックスビットスワップ、ゲートアプリケーションカーネル、および量子ビットセットの確率配列計算が含まれます。
- テンソルネットワークシミュレータ機能:テンソルおよびテンソルネットワーク収縮の高速化、次数の最適化、近似収縮、およびマルチGPU収縮が含まれます。
■提供されるシミュレータの活用用途
- 状態ベクトルシミュレータを使った厳密精度36量子ビットまでの計算。他に量子位相推定や時間発展、shor(多項式時間の整数因数分解)などにも使える。量子化学、金融分野などで使えます。
- テンソルネットワークシミュレータを使ってテンソル縮約/分解手法を利用し、量子回路の順番を工夫することで超大規模計算を行う。最適化、機械学習などの分野で使えます。
使い勝手のいい blueqat SDK をプリインストール
GPU量子コンピューティングスターターキットには、NVIDIA cuQuantumに加え、使い勝手のいい blueqat SDK がプリインストールされ、blueqat SDK による簡単な操作でNVIDIA cuQuantum および qsim、Google Cirqを利用することができます。
blueqat SDK の特徴である記述のしやすさにより、量子コンピュータのプログラミングを非常に簡単に行うことができ、
のように簡単な記述で複雑な計算ができます。
cuStateVec
■まずは、cuStateVec から使ってみましょう。とりあえず最初はこれをつかっておけば OK です。
- 30-50量子ビット程度まで
- どんなアプリケーションでも動く
- 例題がたくさんある
という特徴があります。cuStateVec を使うには Cirq および qsim とビルドが必要ですが、GPU量子コンピューティングスターターキットではそれが不要です。
法人向け blueqat cloudでは上記のようなビルドは一切不要です 出典:blueqat株式会社(旧MDR株式会社)
■cuStateVec の計算の振る舞い
下図のように、Δt において、1タイムステップごとに量子ビットがどのような状態にあるかを計算します。これは、古典的な HPC アプリケーションの計算振る舞いと似ています。
出典:blueqat株式会社(旧MDR株式会社)
■cuStateVec の計算例
以下は、・Cirqビルトインシミュレータ ・qsim CPUベースのシミュレータ ・qsim cuStateVecで高速化されたシミュレータの計算例です。
出典:blueqat株式会社(旧MDR株式会社)
計算結果の解が得られました。以下のコンソール出力は、CPU SIMD 命令と OpenMP による最適化で、qsim のCPU版は Cirq のシミュレータより5.1倍高速化されたことを示しています。cuStateVec 版を使用することで、さらにシミュレーションが高速化され、Cirq のシミュレータと比較して30.04倍、qsim のCPU版と比較して5.9倍高速になりました。
cirq.sim : [0.70710677+0.j 0.70710677+0.j], 87.51 s
qsim(CPU) : [(0.7071067690849304+0j), (0.7071067690849304+0j)], 17.04 s
cuStateVec: [(0.7071067690849304+0j), (0.7071067690849304+0j)], 2.88 s
出典:blueqat株式会社(旧MDR株式会社)
GPU量子コンピューティングスターターキット(量子ゲート方式)の詳細についてはこちらからどうぞ。
(別タブで問合せ画面に変遷しますので、セールスボタンからお問合せ下さい。メーラーが立ち上がります)
GPU量子コンピューティングスターターキットパンフレット表(A4/jpeg形式/別タブで開きます)
GPU量子コンピューティングスターターキットパンフレット裏(A4/jpeg形式/別タブで開きます)
QUBO量子コンピューティングスターターキット(アニーリング方式)
概要
QUBO量子コンピューティングスターターキットは、QUBOソルバーと呼ばれる既存コンピュータの CPU環境上・GPU環境上で動作するライブラリを用いて量子アニーリング方式のアプリ作成および実行が行える疑似量子コンピュータ実機による開発キットです。
特徴
-
D-Wave Neal ベースのアニーリング方式ソルバー(一部改修)
-
活用実績が多い
-
CPUで軽く動くので 1000Qbitまでのスモールスタートに有用(CPU QUBO ソルバー)
-
1000Qbitを超えるより複雑なQUBO対応は GPU QUBOソルバーが有用(GPU QUBO ソルバー)
- CPU、GPUともに同じインターフェースで利用できるため、CPU版からのスケールアウトに有用
導入イメージ
お申し込みはキング・テックにご用命ください。お客様のご利用形態に応じて、デスクサイド型コンピュータまたはラック型コンピュータにソフトをプリインストールして設置します。ソフトがプリインストールされているので、設置してすぐに疑似量子コンピューティング環境が利用可能です。
※GPUカードを装着したコンピュータは、およそ70デシベル(掃除機)程度の音を発します。オプションとして防音ラックをご用意しております。およそ50デシベル(静かな事務所)程度に減衰できます。
QUBO ソルバー とは
QUBOソルバーとは、QUBO(Quadratic Unconstrained Binary Optimization)と呼ばれる特定の形式の最適化問題を解くためのアルゴリズムです。QUBOは、変数がバイナリである(つまり、0または1の値を取る)二次式の形式で表された最適化問題です。
QUBOソルバーは、QUBO問題を解くための最適化アルゴリズムを提供します。これらのアルゴリズムは、量子アニーリングや古典的な局所探索アルゴリズムなどがあります。量子アニーリングでは、量子ビットを用いて最適化問題を解きます。古典的な局所探索アルゴリズムでは、ランダムな解を開始点とし、隣接する解の中で最も良い解を繰り返し選択することによって最適解を探します。
量子アニーリングは量子コンピュータの計算のうち特定の計算を取り出したものになった特化型・簡易型となっており、QUBOと呼ばれる式を作ることによってそれを解いてくれるものです。QUBOは二次式の形式になった数式で組合せ最適化問題と呼ばれる、多くのものから最適な選択肢を選ぶものを解く問題を実装します。QUBO式の形に社会問題を落とし込むのが難しいといわれていますが、現在では多くの実例があります。有名な企業はD-Wave社です。
QUBOソルバーは、最適化問題を解く上で重要な役割を果たしており、実際に産業界や研究分野でも広く使われています。
D-Wave Neal とは
D-Wave Nealは、D-Wave Systemsが開発した、量子アニーリングマシンを用いた最適化問題のソルバーです。量子アニーリングは、量子ビットを用いて、組合せ最適化問題やグラフ理論的な問題などを解決する手法です。D-Wave Nealは、この手法を実現するためのソフトウェアフレームワークであり、QUBO形式の最適化問題を解くことができます。
D-Wave Nealは、Pythonで実装されており、APIを通じてD-Waveの量子アニーリングマシンと接続することができます。D-Wave Nealを使用すると、最適化問題をモデリングし、問題を解くためのパラメータを設定し、最適解を求めることができます。また、D-Wave Nealは、類似性を持つ問題をまとめて処理するための複数の問題を同時に処理することもできます。
D-Wave Nealは、最適化問題において高いパフォーマンスを発揮することが知られています。しかし、D-Wave Nealが解決できる問題には制限があり、大規模な問題には適していません。また、D-Wave Nealを使用するためには、D-Waveの量子アニーリングマシンへのアクセスが必要です。
QUBO量子コンピューティングスターターキットに実装されている、D-Wave Neal ベースのアニーリング方式ソルバーは、D-Waveの量子アニーリングマシンへのアクセスのところを、既存コンピュータの CPUまたはGPUにアクセス・動作するようにカスタマイズされています。
QUBO量子コンピューティングスターターキットパンフレット(A4 2枚/pdf形式/別タブで開きます)
ベクトル量子コンピューティングスターターキット(アニーリング方式)
概要
ベクトル量子コンピューティングスターターキットは、専用のベクトルカード上で動作するベクトルアニーリングと呼ばれるライブラリを用いて量子アニーリング方式のアプリ作成および実行が行える疑似量子コンピュータ実機による開発キットです。
特徴
-
独自アルゴリズムによるアニーリング方式ソルバー
-
活用実績が多い
-
ベクトルカードを複数枚接続でき、計算量のスケールアウトに有用
導入イメージ
お申し込みはキング・テックにご用命ください。お客様のご利用形態に応じて、デスクサイド型コンピュータまたはラック型コンピュータにベクトルカードの装着ならびにソフトをプリインストールして設置します。ソフトがプリインストールされているので、設置してすぐに疑似量子コンピューティング環境が利用可能です。
※ベクトルカードを装着したコンピュータは、およそ70デシベル(掃除機)程度の音を発します。オプションとして防音ラックをご用意しております。およそ50デシベル(静かな事務所)程度に減衰できます。
量子コンピュータの概要
量子コンピュータには、ゲート方式とアニーリング方式の2つのアプローチがあります。
出典:blueqat株式会社(旧MDR株式会社)
粒子としてのビットと波を任意に切り替えて計算を行う
出典:blueqat株式会社(旧MDR株式会社)
1量子ビットの量子データ(そもそもこれまでのコンピュータとデータの持ち方が違う)
出典:wikipedia
量子コンピュータのゲート方式とアニーリング方式の違いについて
量子コンピュータには、ゲート方式とアニーリング方式の2つのアプローチがあります。
ゲート方式は、量子ゲートと呼ばれる演算を順次に適用することで計算を行います。ゲート方式は伝統的なコンピュータと同じような方法で計算を行うため、理解しやすいとされています。
一方、アニーリング方式は、量子粒子が特定の状態に自然に落ち着くことを利用して計算を行います。アニーリング方式はゲート方式よりも高速な計算が可能であり、特に大規模なデータ解析などのタスクに適していますが、実装がより複雑であるとされています。
ゲート方式の特徴と得手不得手について
<特徴>
1.理解しやすい: ゲート方式は伝統的なコンピュータのような方法で計算を行うため、理解しやすいとされています。
2.実現可能性: ゲート方式は現在のテクノロジーで実現可能な計算に限られます。
3.シミュレーション可能: ゲート方式は計算途中の状態をシミュレーションすることができます。
<得手不得手>
ゲート方式は大規模なデータ解析や非常に複雑なタスクには向いていません。一方で、複雑なアルゴリズムを実装するために使用することができ、小規模なタスクや理解しやすいアルゴリズムの実装には向いています。
アニーリング方式の特徴と得手不得手について
<特徴>
1.高速な計算: アニーリング方式はゲート方式よりも高速な計算が可能です。
2.大規模なデータ解析に向いている: アニーリング方式は大規模なデータ解析や非常に複雑なタスクに向いています。
3.複雑な実装: アニーリング方式は実装がより複雑であり、理解するのが難しいとされています。
<得手不得手>
アニーリング方式は大規模なデータ解析や非常に複雑なタスクに向いていますが、小規模なタスクや理解しやすいアルゴリズムの実装には向いていません。また、アニーリング方式では計算途中の状態をシミュレーションすることができないため、デバッグやトラブルシューティングが困難になることもあります。
ゲート方式およびアニーリング方式がそれぞれ得意とする分野について
<ゲート方式>
1.理解しやすいアルゴリズムの実装: ゲート方式は計算の仕組みが単純であり、制御することができるため、理解しやすいアルゴリズムの実装に向いています。
2.小規模なタスク: ゲート方式は小規模なタスクに向いています。
3.計算途中の状態のモニタリング: ゲート方式では計算途中の状態を監視することができます。これはデバッグやトラブルシューティングに役立ちます。
<アニーリング方式>
1.大規模なデータ解析: アニーリング方式は大規模なデータ解析や非常に複雑なタスクに向いています。
2.高速な計算: アニーリング方式はゲート方式よりも高速な計算が可能です。
3.非常に複雑なタスク: アニーリング方式は非常に複雑なタスクに向いています。
これらはあくまで一般的な傾向であり、特定のタスクや用途に応じて異なることもあります。両者のメリット・デメリットを評価して、適切な方式を選択することが重要です。
量子コンピュータの適用分野
<ゲート方式>
1.金融: 量子コンピュータを用いて金融の複雑な問題を解決するためのアルゴリズムの開発や実装に向いています。例えば、量子金融のモデリングや量子化学的な分析などです。
2.計算機科学: ゲート方式は計算機科学に関連するタスクに向いています。例えば、量子アルゴリズムの研究や量子情報処理に関連するタスクなどです。
3.化学: ゲート方式は化学的な計算やシミュレーションに向いています。例えば、分子のシミュレーションや、化学的な反応のシミュレーションなどです。
4.物理学: ゲート方式は物理学的な計算やシミュレーションに向いています。例えば、量子力学的なシミュレーションや結晶のシミュレーションなどです。
※これらはあくまで一般的な傾向であり、特定のタスクや用途に応じて異なることもあります。具体的な応用においては、ゲート方式の有効性を評価することが重要です。
<アニーリング方式>
最適化問題: アニーリング方式は最適化問題に対して強力なパフォーマンスを発揮することがあります。例えば、工学的な最適化問題や経営学的な最適化問題などです。
機械学習: アニーリング方式は機械学習タスクにも利用されています。例えば、画像認識タスクや文書分類タスクなどです。
分子設計: アニーリング方式は分子設計タスクにも利用されています。例えば、分子の設計や分子の合成路線の検索などです。
化学: アニーリング方式は化学的な計算やシミュレーションにも利用されています。例えば、分子のシミュレーションや化学的な反応のシミュレーションなどです。
※これらはあくまで一般的な傾向であり、特定のタスクや用途に応じて異なることもあります。具体的な応用においては、アニーリング方式の有効性を評価することが重要です。
期待されるアプリケーション
今後、さまざまな分野で下記に示すアプリケーションが期待されています。
出典:blueqat株式会社(旧MDR株式会社)
用語の説明
量子コンピュータの分野では、いままで馴染みのなかった用語が多く使われています。以下に主に使われている用語について説明します。
■イジングハミルトニアン
イジングハミルトニアンとは、物理系のエネルギーを表現するために使われる量子力学のハミルトニアンの一種です。イジングハミルトニアンは、多数の量子ビットを持つ量子コンピュータにおいて、最適化問題や組合せ最適化問題を解くためによく使われます。イジングハミルトニアンは、量子ビットの磁場や相互作用を表現するために使用されます。具体的には、各量子ビットはスピン(スピンアップまたはスピンダウン)を持っており、ハミルトニアンには、それらのスピンの相互作用が含まれます。スピンの相互作用は、量子コンピュータにおける量子ビットの相互作用に対応します。
最適化問題や組合せ最適化問題を解くためには、イジングハミルトニアンを解く必要があります。イジングハミルトニアンは、量子コンピュータのアルゴリズムで使用され、量子ビットを操作して問題の最適解を見つけるためのハミルトニアンシミュレーションを実行します。
■組み合わせ問題
組み合わせ問題とは、与えられた集合やグラフに対して、それらの中から特定の条件を満たす部分集合を求める問題のことです。典型的な組み合わせ問題としては、以下のようなものがあります。
1. ナップサック問題
与えられた容量を持つナップサックに、重さと価値の異なる複数の品物を入れるとき、価値の合計が最大になるような品物の組み合わせを求める問題です。
2. 巡回セールスマン問題
全ての都市を一度だけ訪れる巡回路を求める問題で、移動コストが最小になるような巡回路を求めます。
3. 最大カット問題
グラフの頂点集合を2つに分割する際に、カットするエッジの重みの和が最大になるような分割を求める問題です。
4. 最大流問題
与えられた有向グラフ上の2つの頂点間をつなぐ最大流量を求める問題です。
5. 頂点被覆問題
グラフの頂点集合から、全てのエッジの端点が含まれるような最小の頂点集合を求める問題です。
6. グラフ彩色問題
グラフの頂点に色を割り当てる際に、隣接する頂点に同じ色が割り当てられないように色を割り当てる問題です。
これらの問題は、NP完全問題に分類されており、現在のコンピュータでは、問題サイズが大きくなると解くことが困難になります。量子コンピュータでは、これらの問題を高速に解くためのアルゴリズムが提案されており、期待される応用分野となっています。
■テンソル計算
テンソル計算は、多次元配列を扱う数学的な演算を指します。数学的には、0次元のスカラー、1次元のベクトル、2次元の行列、3次元以上のテンソルと呼ばれます。テンソル計算は、画像認識や自然言語処理などの様々な用途に利用されています。例えば、画像認識タスクでは、画像を表すテンソルを入力として、多層のニューラルネットワークを通じて特徴量を抽出します。このように、テンソルを扱うことによって、多次元データを効率的に処理することができます。テンソル計算には、基本的な演算(加算、乗算、転置など)、要素単位の演算(各要素に関数を適用するなど)、行列積、テンソル積などの様々な演算が含まれます。これらの演算は、数学的な定義に基づいて実現されます。
■ハマー演算
ハマー演算(Ising model/Hamiltonian)とは、物理学において、磁気体の系を描写するためのモデルのことです。このモデルは、量子計算においても用いられます。ハマー演算は、磁気体において各粒子(原子や電子)が上下左右などの方向に磁力を持つことを表現するために用いられます。このモデルは、系内の粒子同士の関係を数学的に記述することができます。量子計算においては、ハマー演算を用いて問題を表現することができます。量子イジングマシンは、このハマー演算を利用して最適化問題を解決することができます。量子的な効果を利用することで、高速な最適化が実現することが期待されています。
■ユニタリ行列
ユニタリ行列は、量子力学や量子情報処理で重要な役割を持つ行列の一種です。ユニタリ行列は、正方行列であり、複素共役転置した行列とその逆行列が等しいという性質を持っています。つまり、行列$U$がユニタリであるとは、以下の式が成り立つことを言います。
ここで、$U^{\dagger}$は$U$の随伴行列(複素共役転置した行列)を表し、$I$は単位行列を表します。この性質から、ユニタリ行列は以下のような性質を持っています。
-
ノルムが保存される: $||Ux|| = ||x||$
-
内積が保存される: $(Ux, Uy) = (x, y)$
-
固有値の絶対値が1である: $|\lambda_i| = 1$
また、ユニタリ行列は、量子コンピュータでの時間発展演算子や量子ゲートの実現に用いられます。量子コンピュータでは、ユニタリ行列を実現するための量子回路が構成され、量子状態の時間発展や量子演算が実行されます。
■量子イジングマシン
量子イジングマシン(Quantum Annealing Machine)は、量子コンピューティングの一種です。量子イジングマシンは、特定のタイプの最適化問題に適用することができます。最適化問題とは、特定の条件下で最大または最小の値を求める問題のことを指します。例えば、投資組合の配分問題や工場のスケジューリング問題などがこのタイプの問題です。量子イジングマシンは、量子的な状態という概念を用いてこれらの最適化問題を解決することができます。量子的な状態を使用することで、状態空間の大規模な探索が可能となり、高速な最適化が実現できます。
量子イジングマシンには、通常、量子イジングと呼ばれる特定のアルゴリズムが実装されています。このアルゴリズムは、問題を特定のハマー演算に変換し、量子的な効果を用いて問題を解決することができます。量子イジングマシンは、現在も研究・開発が進められており、新しいアプリケーションや用途が見つかることが期待されています。しかしながら、現時点ではまだ実用化されていないアプリケーションも多いところであり、今後の見通しについては不確実です。
■量子もつれ
量子もつれ(entanglement)とは、2つ以上の量子ビットが相互に強く結びついている状態のことを指します。この状態では、量子ビット間の相関が古典的なビットとは異なり、量子世界の独特の特性が現れます。たとえば、2つの量子ビット $q_1$ と $q_2$ がエンタングル(※量子力学において、2つ以上の量子状態が、それぞれ単独で表現されることができないように結びついている状態。この状態では、2つの量子状態は相互依存しており、1つの状態を観測することで、もう一方の状態が決定されることがある = これは、古典的HPC並列アプリでいう、「データの依存関係(あるセルの計算結果の値が次のセルの入力値になる)」のようなイメージ)している状態を考えます。この状態を以下のように表します。
$$|\psi\rangle = \frac{1}{\sqrt{2}}(|0\rangle_{q_1} |1\rangle_{q_2} – |1\rangle_{q_1} |0\rangle_{q_2})$$
この状態では、$q_1$ の値が $|0\rangle$ である場合、$q_2$ の値は必ず $|1\rangle$ になります。同様に、$q_1$ の値が $|1\rangle$ である場合、$q_2$ の値は必ず $|0\rangle$ になります。つまり、$q_1$ と $q_2$ は相互に補完し合っている状態であり、1つの量子ビットの状態を決定すると、もう一方の量子ビットの状態も自動的に定まることがわかります。
量子もつれは、量子コンピュータにおいて非常に重要な役割を果たします。たとえば、量子テレポーテーションや量子暗号、そして量子エラー訂正などのプロトコルで使用されます。また、量子もつれは量子アルゴリズムの実装にも必要不可欠であり、近年の量子コンピュータの実験でも多くのエンタングルメントが生成されています。
■Circuit depth
Circuit depthは、量子回路の複雑さを表す概念です。量子回路は、複数のユニタリゲート(量子ゲート)を順次適用することで実現されます。Circuit depthは、量子回路中で一つのビットに対して適用されるユニタリゲートの数を指します。すなわち、Circuit depthは、量子回路中のユニタリゲートの数を最大となるビットに適用されたユニタリゲートの数と同じものです。
Circuit depthは、量子回路の計算時間や複雑さと密接に関連しています。量子計算においては、量子効果を使って高速な計算を行うため、Circuit depthを小さくすることが望ましいとされています。同時に、Circuit depthが小さいほど、量子計算を実現するために必要な量子ビット数も少なくなります。しかし、Circuit depthが小さいということは、回路が単純になっているということでもありません。量子回路によっては、Circuit depthが小さいにも関わらず、複雑な計算を実現することができます。
■Cirq
Cirqは、Googleが開発したオープンソースの量子コンピューティングフレームワークです。Cirqは、量子回路をシミュレーションしたり、実際の量子デバイスに対して実行することができます。Cirqは、量子コンピューティングにおいてのアルゴリズム開発や実験を支援することを目的としています。Cirqでは、量子回路をグラフィカルに表現することができ、Pythonとの統合も高く、開発者にとって使いやすいことが特徴です。
■cuStateVec
cuStateVecは、CuPyというPython用のGPUアクセラレーションライブラリにおいて、量子状態を表すためのクラスです。このクラスは、量子回路のシミュレーションにおいて使用され、量子状態を実装することができます。cuStateVecは、量子状態の規模が大きい場合に高速な計算を実現することができるとされています。
■cuTensor
cuTensorは、CuPyというPython用のGPUアクセラレーションライブラリにおいて、テンソル計算を行うためのライブラリです。このライブラリは、GPU上でのテンソル演算を行うことができ、高速な計算を実現することができます。cuTensorは、機械学習やデータ分析などのアプリケーションで、大量のデータを効率的に処理するために用いられます。また、Numpyと同じようなAPIを提供しており、Numpyと同じような記述をすることができるため、Numpyユーザーにも使いやすいライブラリとなっています。
■FTQC
FTQC(Fault-Tolerant Quantum Computing)とは、誤り耐性量子コンピューティングの一形態で、物理的な誤りを許容しながら、誤りが蓄積するのを防ぐために、アルゴリズムの中間段階で誤り訂正を行うことで、信頼性を確保する量子コンピューティングの手法です。量子ビットは物理的な誤りを含んでいるため、量子コンピュータにおいては、量子状態を保持するだけでなく、演算を実行するための制御ゲートにおいても誤りが発生する可能性があります。FTQCでは、誤りが発生する可能性の高い量子ゲートを繰り返し実行し、複数回の測定によって誤りを検出・修正することで、正しい結果を出力することを目指します。
FTQCを実現するには、現在の技術では誤り率が高く、大規模な量子コンピュータを実現するには課題が残されています。しかし、FTQCは将来的に量子コンピュータを実用化する上で必要不可欠な技術となることが期待されています。
■Graph Colouring
Graph Colouringは、グラフ理論の一分野で、与えられたグラフの各頂点に色を割り当てることを目的とした問題です。この問題は、一般に、隣接する頂点は同じ色にならないようにしなければなりません。一般的に、これは最小色数問題として定式化されます。グラフ色分け問題は、実際には、多くの現実の問題において、割り当て問題として応用されます。例えば、ある会場のスケジュール作成において、同じ時間帯に同じ場所で開催される講演の色分けなどがあります。また、地図上の領域を色分けする場合もあります。
グラフの彩色問題は、NP完全であることが知られています。最小色数を決定するためには、最適化アルゴリズムを適用する必要があります。量子コンピュータを用いる場合、グラフ彩色問題を解くためのいくつかのアルゴリズムが提案されています。その中には、Groverのアルゴリズムを使用するものや、量子アニーリングを使用するものがあります。
■Graph Partitioning
Graph Partitioning(グラフ分割)は、グラフ理論の分野で、グラフを複数の部分グラフに分割する問題です。この問題は、さまざまなアプリケーションで使用されます。たとえば、コンピューターネットワークのトラフィック管理、社会ネットワークの分析、イメージ分類などがあります。一般的に、グラフ分割問題では、グラフの頂点をいくつかのグループに分割する必要があります。このとき、グラフの辺を跨いで同じグループに属する頂点の数が最大になるようにグループを分割することが目的です。これは、最適化問題の一種であり、グラフを分割するための効率的なアルゴリズムの開発は、計算機科学の重要な問題の1つです。グラフ分割問題には、さまざまなバリエーションがあります。たとえば、k-way partitioning は、グラフをk個の部分グラフに分割する問題です。また、balanced partitioning は、各部分グラフのサイズを均等にする問題です。
グラフ分割問題は、量子アルゴリズムの中でも特に重要であり、QAOA(Quantum Approximate Optimization Algorithm)などのアルゴリズムで応用されます。
■k-clique
k-clique (k-クリーク) は、グラフ理論における問題の一つで、グラフの中で頂点がk個以上の完全グラフ (クリーク) を見つける問題です。 完全グラフとは、その中のすべての頂点同士が隣接しているようなグラフのことを言います。例えば、以下の図は5つの頂点を持つグラフで、2-クリーク (頂点数が2以上の完全グラフ) が存在します。この例では、頂点1, 2, 3が2-クリークを形成しています。
k-クリーク問題はNP困難であることが知られており、古典的なアルゴリズムでは多項式時間で解くことができません。量子アルゴリズムを使用すると、解を見つけるのに必要な時間が、古典アルゴリズムよりも劇的に短縮されることが期待されています。
■Maxcut
Maxcutとは、グラフ理論の問題の一種で、グラフのエッジを切断して2つのグループに分割することで、切断されたエッジの重みの合計が最大化されるような分割を求める問題です。例えば、4つのノードと4つのエッジを持つグラフがある場合、エッジの重みが次のようになっているとします。
このグラフのMaxcut問題を考えると、エッジ1-2、2-4、3-4のどれかを切断して、ノード1と2を一方のグループに、ノード3と4をもう一方のグループに分割することで、切断されたエッジの重みの合計が最大化されます。Maxcut問題は、NP困難の問題の1つであり、古典的なコンピューターでは大規模なグラフに対しては解くことが難しい問題ですが、量子アルゴリズムを用いることで高速に解くことができると期待されています。
■NISQ
NISQとは、Noisy Intermediate-Scale Quantumの略で、中規模でノイズが多い量子コンピュータのことを指します。NISQデバイスは、量子ビット数が中規模であり、回路の深さが浅く、ノイズによって生じるエラーが多いため、誤り訂正機能を持たないことが一般的です。NISQデバイスは現在の量子コンピュータの主流であり、それらを用いて、量子アルゴリズムの検証や開発、実用化の試みが行われています。しかし、NISQデバイスでは、現在の量子アルゴリズムがエラーに強いわけではないため、エラー耐性のある新しいアルゴリズムの開発や、エラーを減らす技術の開発が求められています。また、NISQデバイスの性能は、ハードウェアの改善によって急速に向上しており、今後の量子コンピュータの発展に期待されています。
■Number Partitioning
Number Partitioning(数の分割問題)は、与えられた数列を2つの部分集合に分割し、それらの集合の要素の総和を等しくする問題です。例えば、数列{3, 1, 4, 2, 2, 1}を2つの部分集合に分割する場合、2つの集合の要素の総和が等しくなるように分割します。この場合、{3, 1, 4, 2}と{2, 1, 2}に分割することができます。
数の分割問題は、難しい最適化問題として知られています。最適解を見つけるためには、全ての可能な分割方法を試す必要があり、要素数が多くなると計算時間が爆発的に増加します。量子アルゴリズムを用いることで、この問題を効率的に解くことができます。例えば、Grover’s algorithmやQuantum approximate optimization algorithm(QAOA)が使われることがあります。
■Numpy
NumPyは、Pythonのための数値計算ライブラリです。NumPyは、高速な数値計算を行うために、多次元配列(ndarray)を提供します。これにより、科学技術計算、データ分析、機械学習などの様々なタスクを高速かつ効率的に処理することができます。NumPyは、大規模な数値データを高速かつ効率的に処理するために、以下のような特徴を持っています。
・多次元配列(ndarray)の提供
・行列演算、統計関数、線形代数などの数値計算を高速に行うためのAPIの提供
・欠損値や順序付けされていないデータを扱うためのサポート
・C言語やFortran言語との相互運用性
NumPyは、科学技術計算、データ分析、機械学習などの様々なタスクに利用されています。特に、Pythonの機械学習ライブラリであるScikit-learnなどは、NumPyを基礎としています。
■QA
QA(Quantum annealing)は、量子アニーリングとも呼ばれ、物理現象を利用した最適化問題の解法の一つです。最適化問題とは、ある目的関数を最大化または最小化するような変数の値を探す問題のことです。例えば、あるグラフにおいて、辺を切断したときにカットの大きさを最大化する問題や、複数の機械を効率的にスケジューリングする問題などが最適化問題の例です。
QAは、物理現象を模擬するために、量子ビットの相互作用を利用します。量子アニーリングマシン(D-Waveマシンなど)では、量子ビットのスピンをイジング模型で表現し、物理的に実現可能なような量子状態を制御することで、目的関数を最小化するような状態を探索します。簡単に言えば、多数の量子ビットを用いて最適化問題を解くことができる方法となります。
QAは、NP困難な問題を高速に解くことが期待されています。しかし、量子ビットの数やエラー率の問題から、現状ではあまり大きな問題を解くことはできていません。ただし、今後の技術の進歩によって、より大きな問題を解くことができるようになる可能性があります。
■QAE
Quantum Amplitude Estimation (QAE)は、量子アルゴリズムの一種です。このアルゴリズムは、量子計算において概率分布に基づいた情報を推定することができます。QAEは、概率分布の要素に対応する量子状態を用いて、量子回路を作ります。この量子回路は、概率分布と量子状態との関係を定義することができます。次に、量子回路に対して、量子操作を行います。この操作によって、量子状態が概率分布に基づいた情報を持った状態になります。最後に、量子状態を観測します。この観測結果を用いて、概率分布に基づいた情報を推定することができます。QAEは、他の量子アルゴリズムと組み合わせて、より高精度な推定結果を得ることができます。
QAEは、数値計算、統計学、量子化学、量子物理学など、様々な分野で用いられています。量子コンピュータによる高精度な計算を行う上で、重要な役割を果たします。
■QAOA
Quantum Approximate Optimization Algorithm(QAOA)は、量子アルゴリズムの一種であり、最適化問題を解決するために使用されます。QAOAは、量子力学的な状態とクラシック的な最適化アルゴリズムを組み合わせて問題を解決する方法を提供します。具体的には、量子系に適用する多段階のゲートを選択し、これらゲートを操作することで最適な答えを探索します。この最適な答えは、クラシック的な最適化アルゴリズムを使って見つけられます。
QAOAは、最適化問題(例えば、グラフ最適化問題など)を解決するための有力な選択肢として見なされており、今後の量子コンピューティングにおいて重要な役割を果たす可能性があります。
■QFT
QFT(量子フーリエ変換)は、古典的なフーリエ変換に相当する量子アルゴリズムであり、離散フーリエ変換(DFT)を効率的に計算することができます。具体的には、状態 「$\sum_{j=0}^{N-1} c_j |j\rangle$」 を、「$\sum_{k=0}^{N-1} \hat{c}_k |k\rangle$ 」に変換することができます。ここで、「$\hat{c}_k$」 は、「$c$」 の DFT に相当する係数です。この変換を利用することで、異なる位相を持つ状態を重ね合わせることができ、量子コンピュータの高速な計算に役立ちます。
QFT は、多くの量子アルゴリズムで使用されます。例えば、位相推定アルゴリズム(QPE)で用いられることで、固有値問題を解くことができます。また、ショアのアルゴリズムにも用いられます。QFT は、簡単に実装できる一方で、回路の深さが $O(N^2)$ となるため、大規模な入力に対しては非常に時間がかかります。しかし、いくつかの改善手法が提案されており、実際のアプリケーションで利用されています。
■Qiskit
Qiskitは、オープンソースのQuantum Information Science Toolkit (量子情報科学ツールキット) です。 IBMが開発・提供する、量子コンピューティングフレームワークです。Qiskitは、量子アニーリングを含む量子アルゴリズムを開発、実行、および分析するためのインターフェイスを提供することで、量子情報科学研究者や開発者向けに設計されています。Qiskitは、Pythonを使用して、量子プログラミングを行うことができます。また、量子シミュレータや実際の量子デバイスとの連携も提供されています。
■QML
Quantum Machine Learning(QML)は、量子アルゴリズムと機械学習アルゴリズムを組み合わせた分野のことを指します。QMLは、量子アルゴリズムを使って高速な計算を行い、機械学習アルゴリズムを使ってデータから決定的な結論を導出することを目的としています。例えば、量子回路を使って高速な特徴量抽出を行い、それをもとに機械学習モデルをトレーニングすることができます。
QMLは、現在までにない新しいタスクを可能にする可能性があり、特に大規模なデータセットに対する処理能力を向上させることが期待されています。また、QMLは、量子アルゴリズムによる高速な計算能力と機械学習アルゴリズムによるデータからの洞察力を組み合わせた形で、実用的なアプリケーションを開発することができます。
■QPE
Quantum Phase Estimation(QPE)は、量子アルゴリズムの一種です。このアルゴリズムは、量子状態のフェーズを推定するために使われます。QPEは、特定のユニタリ行列の回転角を求めるのが目的です。このユニタリ行列は、量子シミュレーションや数値計算などの様々なタスクで使われます。QPEは、このユニタリ行列と初期の量子状態を使って、量子回路を作ります。この量子回路は、回転角と量子状態との関係を定義することができます。QPEアルゴリズムでは、量子状態を多段階で観測していきます。この観測結果を用いて、回転角を繰り返し推定していくことができます。QPEアルゴリズムは、他の量子アルゴリズムと組み合わせて、より高精度な推定結果を得ることができます。
QPEは、量子化学、量子物理学、量子コンピューティングなど、様々な分野で用いられています。量子コンピュータによる高精度な計算を行う上では、重要な役割を果たします。
■Qsim
Qsimは、量子シミュレーションのためのオープンソース・ツールキットのことです。Qsimは、量子計算において基礎的な操作、例えば量子ゲート演算や量子回路のシミュレーション、各種のサンプリングアルゴリズムなどを実行することができます。Qsimは、複雑な量子回路のシミュレーションに有用であり、さまざまな研究や開発に活用されています。
■Qulacs
Qulacs (Quantum Library for Arithmetic and Cryptography) は、量子アルゴリズムを実装するためのオープンソースのライブラリです。このライブラリは、量子アルゴリズムを高速に実行することができるとともに、高いメモリ効率と計算効率を実現することを目的としています。特に、量子アルゴリズムのシミュレーションや評価などに使用することができます。このライブラリは、Pythonを使って開発されており、量子アルゴリズムのエンジニアや研究者が利用することができます。
■RQC
RQC (Randomized Quantum Circuit) は、ランダムな量子回路を用いた量子アルゴリズムの一つです。一般的な量子アルゴリズムは、特定の問題に最適化された量子回路を設計することが求められますが、RQCはランダムな量子回路を使用することで、複数の問題に対して効率的なアルゴリズムを提供することを目的としています。RQCは、ランダムな量子回路を生成し、それを使用して入力データを量子状態に変換します。その後、量子状態を測定して、解を得ます。このプロセスは、複数回繰り返され、統計的な手法を使用して、最適解を見つけることができます。
RQCは、古典的なアルゴリズムよりも高速に問題を解決することができることが知られており、機械学習、最適化、暗号学などの分野で活用されています。また、NISQデバイスの誤り耐性を向上させるためにも、RQCは重要な役割を果たしています。
■SA
SA(Simulated Annealing)は、最適化問題を解くための一般的なアルゴリズムの一つで、自然現象である物質の融点を下げる過程を模した方法です。SAでは、最小化すべき目的関数をもつ問題を解くために、ランダムな解候補を生成し、その解候補のエネルギーを計算します。その後、解候補を少しずつ動かしながら、エネルギーを下げる方向に動かします。このとき、温度と呼ばれるパラメータを導入して、温度を下げながら探索を行います。温度が下がるにつれて、ランダムに探索する確率が下がっていき、より良い解に収束するようになります。
SAは、局所解に陥りやすい最適化問題でも良い解を探すことができます。また、ランダムな初期解から始めるため、初期解に固執しない性質を持ちます。しかし、高次元の問題や大規模な問題には適用が限られているため、そのような問題には別のアルゴリズムが必要となります。
■SQA
SQA(Simulated Quantum Annealing)は、古典的なシミュレーション技術を使用して、イジング模型を模擬的にアニーリングすることで、組み合わせ最適化問題を解く手法の一つです。SQAは、SA(Simulated Annealing)やGA(Genetic Algorithm)などの古典的な最適化アルゴリズムに似ていますが、最適化問題を解くために、古典的なコンピューターではなく、古典的なアルゴリズムを使用して、イジングモデルをシミュレーションします。この手法は、量子アニーリングと同じ問題を解決するための古典的な代替手段として注目されています。
SQAは、量子アニーリングよりも高速であり、より大きな問題を解くことができます。ただし、SQAは、最適化問題がNP困難である場合、全ての解を見つけることはできません。そのため、SQAは、大規模で複雑な問題に対して、量子アニーリングの代替手段として使用されることがあります。
■Shor
Shorのアルゴリズムは、量子コンピュータを使って素因数分解を高速に解くためのアルゴリズムです。現代の暗号には、大きな素数の積を因数分解することが必要であり、その計算には従来のコンピュータでは極めて困難であるため、安全性が保証されています。しかし、Shorのアルゴリズムを用いれば、量子コンピュータを使って効率的に素因数分解を行うことができます。
Shorのアルゴリズムは、以下の2つの部分から構成されています。
1.量子フーリエ変換(QFT)の実行
2.測定と古典的な計算による素因数分解
まず、入力された数を量子ビットにエンコードし、QFTを使って量子状態を変換します。この変換により、素因数分解に必要な情報を持つ量子状態が得られます。そして、測定を行い、得られた結果を古典的なアルゴリズムで解析することで、素因数分解が得られます。
Shorのアルゴリズムは、現在知られている中で最も効率的な素因数分解アルゴリズムであり、大きな素数を高速に因数分解することができます。ただし、現在の量子コンピュータの性能では、実用的な範囲ではないため、まだ実用化されていません。
■Vertex Cover
グラフ理論において、あるグラフにおいてすべての辺が少なくとも1つの頂点に接続されるような、最小の頂点集合を求める問題を「頂点被覆問題 (Vertex Cover Problem)」といいます。例えば、下のようなグラフがあった場合、最小の頂点被覆集合は {2, 3, 6} となります。
Vertex Cover Problem は、NP完全問題の一つであり、最適解を多項式時間で求めるアルゴリズムは知られていません。しかし、近似アルゴリズムは提案されており、量子アルゴリズムにおいても研究されています。
■VQE
VQE(Variational Quantum Eigensolver)は、量子計算の一つのアルゴリズムです。このアルゴリズムは、量子コンピュータ上で物理シミュレーションや最適化問題を解決するために用いられます。VQEは、量子力学に基づいた方法で物理シミュレーションを実行することを目的としています。このアルゴリズムは、量子力学的なハマー演算から算出されるエネルギー値を最小化することで、物理的な状態を推定するというアプローチをとります。VQEは、古典的な最適化アルゴリズムと量子計算を組み合わせたものです。古典的な最適化アルゴリズムは、量子力学的なハマー演算から得られるエネルギー値を最小化することで、物理的な状態を推定するために用いられます。量子計算は、この最適化を高速かつ効率的に行うことができるというメリットがあります。
VQEは、量子コンピュータの一般的な制約(例えば、高誤差や長時間の演算時間)に対応することができるとされています。このため、物理シミュレーションや最適化問題に対する効率的な解法として注目されています。
キング・テックの量子コンピューティングサービスに関する詳細は、お問合せフォーム または下記までお問い合わせください。
株式会社キング・テック 担当:佐々木 [email protected]