こんにちは、毛利です。みなさんは変わった計算機を見かけたら何を思いますか? 僕は「たくさん計算させたいなぁ」とか「コンパイラを書きたいなぁ」みたいな気持ちになります。この記事では先日試験に合格して取得した量子プログラミングの資格について書きます。
ゲート型量子コンピュータの話
先に量子コンピュータの話をざっとしたいと思います。量子コンピュータには大雑把にはゲート型とアニーリング型の2種類があります。この記事では(取った資格と同じ)ゲート型の話をします。アニーリング型のほうは組合せ最適化などに使われているようです。
ゲート型の量子コンピュータは計算量が減る話が多いです。身近?なのだと素因数分解が理論上とてもはやいです(ショアのアルゴリズム)。他には、N通りの中から正解を探しだすのに、√Nに比例する回数の判定で正解を探しだせるグローバーのアルゴリズムというのもあります。例えるなら10000通りのなかから正解を探しだすのに100回正解か判定すれば探せるようなものです。
最近の話題としては、今後量子コンピュータがどんどん強くなると、RSA暗号など、普通のコンピュータでは攻撃者が解くのにものすごく時間がかかることを利用している暗号の安全性が脅かされる可能性があり、量子コンピュータでも攻撃が難しい暗号(耐量子暗号)が話題になっているようです(記事1, 記事2)。
ゲート型量子コンピュータに触れてみたい場合は IBM Quantum がおすすめです。IBM Quantum では、シミュレータや、IBMが設置しているゲート型量子コンピュータを実際に動かせます。ほとんどの機能は無料で使えます。
ちなみに、Azure にも量子コンピュータに触れられる Azure Quantum というサービスがあります。しかもおすすめに入ってます。ゲート型もアニーリング型もそれぞれ提供されているようなので、今度試してみたいと思います。
取った資格について
2021年の3月末ごろから、IBMの量子プログラミングの資格試験が提供され始めました。量子プログラミングでは世界で初めての資格らしいです。
その試験を受けて、無事合格して IBM Certified Associate Developer - Quantum Computation using Qiskit v0.2X を取得しました。点数はボーダーだったけど。
試験内容としては、Qiskit という IBM Quantum で使える Python のゲート型量子計算向けのライブラリに関する知識・使い方や、ゲート型量子計算の基本的なゲートの理解などが問われます。
受験は ピアソンVUE で受験できるので、普段 Microsoft の資格を ピアソンVUE で受けている方はいつも通りの手順で受けられます。差があるとすれば受験時に渡されるホワイトボードが計算で数式だらけになることでしょうか。いままで ピアソンVUE で自分が受けた資格では数式だらけになることはなかったので、なかなか面白い体験でした。
試験対策
ゲート型量子計算の入門としては、Qiskit の使い方に関しては IBM Quantum Challenge 2020 Fall の教材が良いと思います(僕はこのコンテストで真面目に入門し始めました)(日本語もあります)。量子計算の理解に必要な数学に関しては、基本ゲートと観測のシミュレータを(普通の言語で)一度書いてみるのが個人的におすすめです。(ところでシミュレータを書くとコードの見た目がものすごくFFTだなぁと思っています。)
試験対策としては、公式のサンプル問題(資格ページのSample Test)を解けるだけの知識を集めておくといいかなと思います。
おわりに
そろそろ OpenQASM(量子版アセンブリみたいなの) を出力する自作言語コンパイラを書きたい