KNOWLEDGE - COLUMN ナレッジ - コラム

量子コンピュータとは 基本の基

コラムイメージ

エバンジェリスト・フェロー
玉越 元啓
顔写真

量子コンピュータ

量子コンピュータとは

量子コンピュータは、量子力学の原理を計算に応用したコンピュータです。

古典コンピュータでは0か1のどちらかの状態しか持てないビットに対して、量子コンピュータでは0と1の重ね合わせ状態をとることができる量子ビットを用いることで、従来のコンピュータでは不可能だった並列計算を実現しています。

0と1の重ね合わせ状態というのは、0と1のどちらに近いかを表しており、確率で表現されます。地球に例えると北極が1で南極を0としたとき、どの緯度にいるか、で表されています。

また、量子ビットは位相というビットの状態を意味する情報も持っています。こちらは地球に例えると経度にあたります。東京とイランのテヘランは同じ緯度ですが(≒0になる確率が同じ)、経度が違うため、時間や昼夜の状況などが異なるようなものです。

このように、量子ビットはひとつのビットで今まで以上の情報を保持することが出来るようになっています。
まずは、量子ビットは今までよりもかなり多くの情報を持っていることを感じていただけたら充分です。


■既存のビットと量子ビットのイメージ図

  • 既存のビットが持つ情報:0or1
    イメージ画像
    画像出典:https://mechalog.com/bit-byte


  • 量子ビットが持つ情報:0の確率、1の確率、位相
    イメージ画像
    ※赤い点は、1の確率75%、0の確率25%、位相45度を表している。

量子コンピュータの特徴

量子ビットを用いることで、従来のコンピュータでは不可能だった並列計算を実現しています。量子コンピュータが既存のコンピュータと比べて得意なことは、以下のとおりです。

  • 並列計算
    従来のコンピュータでは不可能だった並列計算を実現します。膨大な数の組み合わせを同時に計算することが可能になります。

  • 量子アルゴリズム
    量子力学の原理に基づいた量子アルゴリズムを実行することができます。これらのアルゴリズムは、従来のコンピュータでは複雑すぎて実行できない問題を、高速に解決することができると考えられています。

具体的には、以下のような問題の高速化が期待されています。

  • 量子化学計算:新薬の開発や材料の設計などに利用される。
  • 機械学習:画像認識や自然言語処理などの分野で利用される。
  • 量子シミュレーション:原子や分子の挙動などのシミュレーションに利用される。

量子コンピュータの役割

量子コンピュータは、既存の技術を置き換えるものではなく、新しい機能を提供するものになると考えています。
 
例えば、量子コンピュータは、創薬や材料開発などの分野で、従来のコンピュータでは膨大な時間がかかっていた計算を、短時間で行うことができると期待されています。これにより、新薬の開発や省エネ材料の開発が加速する可能性があります。

また、機械学習などのAIの分野では、従来のコンピュータでは実現できなかった精度や速度の向上をもたらし、画像認識や自然言語処理などの分野での応用が拡大する可能性があります。

特に計算速度は目を見張るものがあります。例えば、生成系AIはプロンプトの入力から生成まで意外に待たされることがありますが、人を凌駕する速度と量でリアルタイムに様々な反応を返すAIの登場が予想されます。

ただし、量子コンピュータの一般利用は、まだ開発の初期段階であり、実用化には課題が残されています。

今後、量子コンピュータの性能が向上し一般化が進むにつれて、既存の技術と量子コンピュータを組み合わせた新しいサービスが提供される時代が来ると考えており、最初は量子コンピュータとクラウドコンピューティングを組み合わせることで、大規模な計算を低コストで実行できるようになるはずです。

量子コンピュータの動向

海外動向

米IBMや米グーグルなどの大手が意欲的なロードマップ(工程表)を相次ぎ公表しています。ロードマップの内容はハードウエアの技術革新の方向性を示す内容が主ですが、一部、利用者に向けた情報も含まれています。

IBMのロードマップによると、2025年には、「量子コンピューティング用のQiskit Runtimeとミドルウェアは、アルゴリズム開発を効率化するためのライブラリーとツールを提供します。」とあります。

他ハードウエアベンダーについてもほぼ同時期にライブラリやツールが提供される見込みです。

2026年から量子コンピュータによる計算を組み込んだ一般向けのサービスの開発が本格化し、早ければ同年内・遅くとも2027年から一部サービスの中で量子コンピュータが提供する機能が組み込まれていくと考えています。

国内動向

東京大学や大阪大学、理化学研究所は国産量子コンピュータの開発を進めています。

産業界では、トヨタ自動車やNTTなど24社が設立した「量子技術による新産業創出協議会(Q-STAR)」が活動を始めています。
『量子技術の応用を通じた中長期的な新産業を創出するために、産業及び企業の枠を超え、グローバルな視点での活動を推進』しており、量子技術の動向に関する調査・研究から制度・ルールについての調査・検討が進められているところです。

内閣府が発表した「量子未来社会ビジョン」によると、2030年には量子技術の利用者1000万人になるとされています。これは、海外動向の段落で言及した、「2026年から量子コンピュータによる計算を組み込んだ一般向けのサービスの開発が本格化」した結果、達成される目標と考えています。


■Q-STARが発表した量子コンピュータの利用に向けたアーキテクチャ・モデル

イメージ画像 
画像出典:https://monoist.itmedia.co.jp/mn/articles/2109/02/news061.html

利用例

現在は量子コンピュータを開発しているベンダーがその利用成果を発表している状況です。その中から新しい発表を1つ紹介します。

2024年1月9日、MicrosoftとPNNL (パシフィック・ノースウエスト国立研究所)が、既存のリチウムイオンに代わりうる物質を発見したと発表しました。
※出典:https://news.microsoft.com/source/features/sustainability/how-ai-and-hpc-are-speeding-up-scientific-discovery/

この物質の発見に量子コンピュータを使用したそうです。具体的には、リチウムに代わる分子構造をもった物質3200万個の提案、そこから条件や実験により、最終的に23個まで絞り込むまでに約80時間で終了したと発表しています。

実用化されるにはまだ時間が必要とのことですが、飛躍的に技術の進歩が進んでいると実感した発表でした。


■分子構造の提案とスクリーニングのイメージ




Microsoft発表資料から作成

量子コンピュータの利用方法

量子コンピュータを利用するための言語と環境

量子コンピュータで計算するには、量子ビットを操作するための記述ができる量子プログラミング言語を使う必要があります。
 
量子プログラミング言語を直接利用するほか、Pythonなどの既存の言語で量子ビットを操作するためのライブラリが提供されています。

量子コンピュータを利用しようとしても実際に触れるわけではありません。量子コンピュータで動かしたいコードをハードベンターに提供して結果を受け取るか、現実的なのは、量子コンピュータのシミュレーション環境を使って動かしてみることになります。

量子コンピュータを利用するための環境のイメージを図にしてみました。


イメージ画像


  • 量子プログラミング言語
    量子コンピュータ上で直接プログラムを実行するための言語

  • Quantum simulator(量子シミュレータ)
    量子コンピュータをシミュレートするための環境

量子プログラミング言語には、以下のようなものがあります。

  • Qiskit
    IBMが開発した量子プログラミングフレームワーク

  • Cirq
    Googleが開発した量子プログラミングフレームワーク

  • Rigetti Forest
    Rigetti Computingが開発した量子プログラミングフレームワーク

量子シミュレータには、以下のようなものが存在します。

  • Qiskit Aqua
    IBMが開発した量子シミュレータ

  • Google Quantum Simulator
    Googleが開発した量子シミュレータ
     
  • QIR(Quantum Intermediate Representation)
    QIRは、量子プログラミング言語から量子コンピュータを呼び出す共通インターフェイスです。QIRにより、ハードウェアに依存しない形式で量子プログラミングできることが期待されており、量子コンピュータのシミュレータの利用が可能となっています。

量子プログラミングについて

ハードウエアベンダー各社が自社の量子コンピュータ(のシミュレータ)を利用可能な開発ツールの提供を始めています。

例えば、Microsoftが提供しているQuantum Development Kitには、量子プログラミング言語Q#が含まれており、量子ハードウェアで実行されるプログラムをビルドできます。

また、量子アルゴリズムを実行およびデバッグできる量子コンピュータのシミュレーターが含まれています。


■Visual Studio CodeでのQDK導入画面

イメージ画像

まとめ

量子コンピュータとは、量子力学に基づいた量子ビットを利用して計算する仕組みであり、膨大な数の組み合わせを同時に計算する並列処理が可能となっています。

現在は、ハードウエアの開発と並行して、一般利用に向けたソフトウエア/アルゴリズムの開発、利用法の模索が進められている段階です。

ただし、既存のコンピュータやソフトを置き換えるものではなく、アーキテクチャをデザインする際の新しいオプションとして近く入ってくることは間違いありません。その準備を進める必要があると感じています。

次回以降、各社の開発ツールの利用方法や特徴、量子ビットに基づいたアルゴリズム等について考察していく予定です。


当サイトの内容、テキスト、画像等の転載・転記・使用する場合は問い合わせよりご連絡下さい。

エンジニアによるコラムやIDグループからのお知らせなどを
メルマガでお届けしています。

メルマガ登録ボタン


玉越 元啓

株式会社インフォメーション・ディベロプメント フェロー

この執筆者の記事一覧

関連するナレッジ・コラム

関係組織の協力が不可欠!サプライチェーン攻撃対策

レストラン業界 ITトレンドレビュー2024年

重要経済安保情報の保護及び活用に関する法律案 -日本を守るセキュリティクリアランス