「支える」技術

量子コンピュータ(入門編)

量子コンピュータって?

  • 名前からすると、「量子」を使ったコンピュータなんだろうなぁって予想はできますが、その「量子」がよくわからないので、結局わかりません。

  • もう少し丁寧に言葉にすると、「原子や分子、もっと小さな電子などが持つ不思議な性質を計算に応用したコンピュータ(計算機)」です。

  • ん? やさしく説明しているようで、やっぱりわからないんですけど・・・。その「原子や電子の不思議な性質」って、いったいどんな性質なんですか?

  • はい、「原子や電子の波のような性質や影響しあう性質など」です。

  • なんか扱いが難しそうですねぇ。

  • (笑)そうですね。でもだからこそ、可能性もたくさんあって世界中で研究開発がすすめられているんですよ。

  • すごいですね!わくわくしてきました。

従来のコンピュータとの違い

何が作れたらコンピュータってできるんだっけ?

  • 突き詰めて言えば、コンピュータの中では、情報を「0」と「1」の組み合わせとして表しています。そのため、どういう状態を「0」とし、または「1」とするか、その違いを決めることができたらコンピュータが作れます。

  • 「0」と「1」の違いが必要なのね!それってどうやって作ってるんだろう?

  • はい、これから説明します。その中で「ビット」という言葉がでてきます。
    「ビット」は、コンピュータが扱う情報の最小単位で、コンピュータの中の1ビットは「0」または「1」を表しています。
    そのビットが従来のコンピュータと量子コンピュータでは異なるのです。
    そこから説明しましょう。

  • はい、お願いします。

コンピュータの中は「1」と「0」だけの世界

従来のコンピュータが使うビットと量子ビットの違いを教えて

(従来のコンピュータで「0」「1」を表しているビット)

  • 私達が普段使っているノートパソコンで使われているビットでは、トランジスタという小さな電子部品の出口の電圧が低いと「0」、高いと「1」を表しています。

  • つまり、従来のコンピュータのビットは、電圧の高低で「0」か「1」のどちらかを表すようにできているってことですね。

  • はい、その通りです。

(量子コンピュータの「0」「1」を表す量子ビット)

  • 量子コンピュータも「0」「1」という形で情報を扱います。しかしそれを表すのに、従来のビットとは異なる特性を持った「量子ビット」というものを使います。量子ビットの作り方は色々ありますが、例えばエネルギーがもっとも低い状態を「0」、少しエネルギーが高くなった状態を「1」として計算をおこないます。

  • エネルギーの高低って言っていますが、具体的にはどういうことですか?

  • 量子ビットの作り方によって色々ありますが、例えば周波数の高低だったり、磁場の中での粒子の向きの違いだったりします。

  • 量子ビットにも種類があるんですね。

  • はい。そして従来のビットは、常に「0」か「1」のどちらかを表すのに対し、量子ビットは「0」か「1」が確定していない状態(=重ね合わせ)のまま計算を進めることができるのです。

  • どういうことですか?

  • 量子ビットをn個集積させると最大2のn乗通りの数字を一度に扱うことができます。例えば、2量子ビットの場合は最大4通りの計算結果が重ね合わさった状態を1回の計算で作れるわけです。

  • つまり量子コンピュータは従来のコンピュータとは情報の扱い方が違うんですよ。

  • それじゃ実際にはどういう流れで計算しているのかなぁ?

  • 具体的な例で説明しましょう。

量子コンピュータが問題を解く流れ

実際は量子の色々な性質を使って計算しますが、この講座では量子計算において「正解が現れてくる様子」をイメージでご紹介します。

  • (本講座では、10進数の数字はカギカッコ無しで表示し、2進数の数字はカギカッコ有りで表示します)
  • ①143の最小の素因数を探すための量子アルゴリズムを用意
  • ②量子ビットを初期化
  • ③量子アルゴリズムを実行
  • ④結果を読み出し
  • 例として143の最小の素因数11を探してみましょう。

    • (わかりやすくするために、本講座では探す範囲を4ビットで表せる0から15に限定して答えをさがします)

➀ 143の最小の素因数を探すための量子アルゴリズムを用意

  • 量子アルゴリズムってなんですか?

  • 量子アルゴリズムとはコンピュータの中で答えを見つけるための計算手順プログラムのことで、人が用意します。
    (実際の量子アルゴリズムの一例を、後ろの方で参考として紹介しています)

  • えー!人が作ってるなんて、すごいですね。

② 量子ビットを初期化

  • 計算前に量子ビットをすべて「0」にする演算をおこないます。

③ 量子アルゴリズムを実行

  • 個々の量子ビットを操作したり、2つの量子ビットをもつれあわせたり(エンタングルさせたり)します。

    • *量子ビット単体では、計算はできません。相互にもつれあわせて、計算ができるようにします。また、どの量子ビットをどのようにもつれあわせるかは、量子アルゴリズムで指定します。
  • 「もつれあう」とか「エンタングルさせる」とか、ちょっとイメージがわかないのですが・・・。他の言葉で言い換えられませんか?

  • う~ん、難しいですね、それでは「影響しあう」という言い方でどうでしょうか?

  • あ、それならなんとなくイメージがわきます!

  • ホッ、それは良かった。

  • 量子コンピュータは答えの候補をすべて計算します。今回は4ビットで表せる0から15の16通りあります。

  • 今回は限定した範囲で答えを探すということでしたね。

  • はい。まず計算を始めた時にすべての量子ビットを初期化しているので、最初はどの量子ビットも確実に「0」になっています。そのため、10進数の0(ゼロ)が答えになる可能性が高い状態になっています。

  • 計算が進むにつれて、答えとして正しくないビット列の確率が低くなるため、正しいビット列が観測される確率が高まっていきます。

④ 結果の読み出し

  • 人が計算結果を読みだそうとしたときに、「11」を表す量子ビットの列が高い確率で読みだされるので、答えは「11」らしい、という結果が得られます。

  • ちょっと難しいですね・・。なんとなくそうなのかな~ていう感じです。

  • (笑)なんとなくわかってくれれば良いです。

(参考)実際の素因数分解の量子アルゴリズムの一例です

  • この例では、5個の量子ビットを使っています。横線の1本が1個の量子ビットを表します。
  • 時間は左から右へ流れます。
  • 「□(HやXなどのアルファベットが書かれている四角)」「●(黒い丸)」等は、ひとつひとつが各量子ビットへの操作「量子ゲート」を表します。
  • 右端の「メーター」マークが、量子ビットの状態を読み出す操作である「観測」を表します。

*Unathi Skosana & Mark Tame (2021),
https://www.nature.com/articles/s41598-021-95973-w
Fig.2をリライト

結局、量子コンピュータはスパコンよりも速いの?遅いの?

  • それぞれのコンピュータにとって得意、不得意な問題があるので、一概には速いとも遅いとも言えません。解く問題によって使い分けるのが良いと思います。

  • 使い分ける?

  • 具体例を紹介しますね。
    (量子コンピュータはまだ開発中なので予想です)

➀ 量子コンピュータもスパコンも速く解ける計算問題

  • 足し算など、小中学校の算数や数学で言うところの普通の「計算」です。

  • 計算量が多くなっても両方とも同じように速く計算できる問題ですね。

  • どちらも速いのに、量子コンピュータの方が時間がかかっているのはなぜですか?

  • 良いところに気が付きましたね。現状の量子コンピュータは、計算の1ステップにかかる時間がスパコンより長いので、今考えている計算問題では、スパコンより時間がかかります。
    しかし今後、開発が進むと1ステップの計算時間が短くなる可能性もあります。期待したいですね。

② 量子コンピュータもスパコンも解くのが苦手と考えられている計算問題

  • 「NP困難」と呼ばれる難しい計算問題の集まりの中には、量子コンピュータでも解くのが苦手な計算問題が含まれていると考えられています。

    • *NP困難: (non-deterministic polynomial)-hard
      正確に説明するととても難しく、長くなってしまうため本講座では省略させていただきます。
  • 計算量が多くなると、両方とも同じように計算に時間がかかる問題なんですね

③ スパコンは苦手だが量子コンピュータは高速に解けると考えられている計算問題

  • 素因数分解、量子系のシミュレーションなどです。
    例えば、まだ正確には把握できていない人体に対する薬の作用をシミュレーションしたり、新しい材料の開発時間を短縮できると期待されています。

  • 薬の作用をシミュレーション

  • 新しい材料の開発

  • 計算量が多くなるとスパコンでは時間がかかってしまうけれど、量子コンピュータはそれほど計算時間が増えない問題ですね。

  • はい、量子コンピュータは、従来のコンピュータよりも、計算回数や必要なメモリが増えにくいコンピュータなんです。スパコンでも数年以上かかってしまう問題を、数時間から数日で答えを出せる可能性があります。

  • それはなぜですか?

  • 量子ビット(重ね合わせと2つの量子ビットのもつれ)は、従来の『ビット』とは情報の扱い方が異なることは説明しましたね。また、課題に合わせてうまく設計された量子アルゴリズムが、スパコンよりも少ない計算回数で、正解を意味する量子ビット列が強く表れるように導くからです。

  • 量子コンピュータって聞けばきくほど難しいなぁ

  • そうだよねぇ。でも、可能性がたくさん秘められたコンピュータってちょっとおもしろくない?謎めいていてさ。

  • 確かに・・。

  • 量子コンピュータはこれからの技術なので、少しづつ学んでいきましょう!

  • はい!


その他の「支える」技術

  •  

関連記事

  •  

Connect with Fujitsu Research

LinkedIn
Twitter
YouTube
ページの先頭へ