その他
    ホーム 技術 仕組みを知らなくても大丈夫!Google Colabで試す量子コンピューターの世界
    仕組みを知らなくても大丈夫!Google Colabで試す量子コンピューターの世界
     

    仕組みを知らなくても大丈夫!Google Colabで試す量子コンピューターの世界

    株式会社アピリッツでは、このたび「量子コンピューター研究チーム」を発足しました。(➤詳細はこちら)今回は、量子コンピューター研究チームのnoteより、一見難しそうな「量子コンピューター」の世界を、私たちの身近にある「コイン」を使って分かりやすく解説している記事をご紹介します!量子コンピューター研究チームのnoteでは、量子コンピューティングの研究・検証で得た知見や取り組みを発信しておりますので、ぜひこちらもご覧ください!(➤量子コンピューター研究チームのnoteはこちら

    はじめまして!
    アピリッツ量子コンピューター研究チームで主に開発・設計を担当しているメンバーです。
    実は私、高度な数学の知識はさっぱりでして……(笑)
    いきなり数式から入ると挫折しそうなので、開発担当らしく「まずはコードを動かして体感する」というプログラミングからのアプローチで量子コンピューターの世界に飛び込んでみたいと思います!

    量子コンピューターとは?

    普段使っているスマホやパソコン(古典コンピューター)とは根本的に異なる仕組みで計算を行う次世代技術です。従来のコンピューターでは何千年もかかるような膨大なパターンの計算を、一瞬で解いてしまう可能性を秘めています。

    押さえておきたい「計算の3つの仕組み」

    • 重ね合わせ(量子ビット): 従来のビットは「0」か「1」のどちらか一方しか表現できませんが、量子ビットは「0であり、同時に1でもある」という不思議な状態を作れます。
    • 量子もつれ: 「コインAが表なら、コインBは必ず裏になる」といった強い連動関係を作る技術です。複数の量子ビットをまとめて膨大なデータを一括処理できます。
    • 量子干渉: 量子が持つ「波」の性質を利用します。波同士を打ち消し合わせることで、間違った答えを消し、正しい答えだけを浮かび上がらせます。

    難解な理論はスキップ!まずは「使ってみる」から

    ここからさらに深掘りすると難解な理論や計算がたくさん出てきますが、最初からすべてを理解しようとするとハードルが高くなってしまいます。
    「仕組みは詳しく知らなくてもスマホは使える」のと同じように、まずは結果を利用して体験してみましょう!

    Google Colaboratoryで量子シミュレーションを体験

    Google Colaboratoryを開いて、ノートブックを新規作成し、以下のコードをそのまま貼り付けて実行してみてください。

    # 量子シミュレーターのライブラリをインストール
    !pip install qiskit qiskit-aer
    
    from qiskit import QuantumCircuit
    from qiskit_aer import AerSimulator
    
    # 1つの「量子ビット(コイン)」と、結果を記録する1つの「古典ビット」を用意
    qc = QuantumCircuit(1, 1)
    
    # 「アダマールゲート(h)」を使い、0と1の重ね合わせ状態(回転するコイン)を作る
    qc.h(0)
    
    # コインをパッと止めて結果を記録(観測)する
    # 0番目の量子ビットの結果を0番目の古典ビットに保存
    qc.measure(0, 0)
    
    # 量子シミュレーターで1,000回実行
    sim = AerSimulator()
    result = sim.run(qc, shots=1000).result()
    counts = result.get_counts()
    
    print("1000回測定した結果:", counts)
    # 実行結果の例: {'0': 502, '1': 498}

    ポイントは「観測した瞬間に決まる」こと

    このプログラムの肝は qc.measure(0, 0) です。
    回転している最中のコインは「表でもあり裏でもある状態」ですが、手でパッと止めて見た(観測した)瞬間に、初めて「0(表)」か「1(裏)」のどちらかに結果が確定します。
    難しそうに思える量子コンピューターですが、このように「くるくる回るコイン」をイメージするとぐっと分かりやすくなります。ぜひ実際にコードを動かして、量子の不思議な世界を体感してみてください!

    最後に

    「で、結局何がすごいの?」と思った方も多いかもしれません(笑)
    今回はコインを1枚投げただけですが、こうした小さなサンプルを動かしながら、「量子コンピューターの何が凄まじいのか」「どんな場面で役に立つのか」を今後少しずつ発信していきます。
    記事を通して、皆さんと一緒に面白い気づきや発見を共有できたら嬉しいです!