投稿者:量子コンピュータタスクチーム

みなさま、こんにちは。量子コンピュータタスクチームの柳浦です。我々のチームでは、量子コンピュータに関連する活動をおこなっています。今回は、IBMで主催された量子コンピュータ・プログラミングのコンテストに参加しましたので、どのようなイベントだったのかをご紹介します。

目次


◆量子コンピュータとは?
◆IBMの量子コンピュータ
◆IBM Quantum Challenge Fall 2021
 ・Challengeの内容について
 ・コンテストの進め方について
 ・参加してみて



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

量子の特性を情報処理に利用したコンピュータです。量子とは、粒子と波の性質をあわせ持った極小の物質やエネルギーの単位のことです。物質を形作っている原子そのものや、原子を構成する粒子などをさします。この量子の特性を利用することで、従来型コンピュータとは異なる方法で計算処理を行っています。

従来型コンピュータとの特徴的な違いの1つが、演算単位です。量子コンピュータの演算単位である量子ビットは「0と1の重ね合わせ状態」を取ります。量子コンピュータでは、この重ね合わせた状態を利用して全入力に対して一括計算することができます。従来型コンピュータが全入力に対して毎回計算することと比べると、計算過程をスキップできるため、短時間で解ける可能性が期待されています。
QuantumChallengeFall2021_01.png


◆IBMの量子コンピュータ

2021年11月、2020年に公開した65量子ビットに続き、単体の量子プロセッサー上では初めてとなる127量子ビットが提供されました。量子ビット数の増加により、ユーザーは実験やアプリケーションの実行にあたり、新たなレベルで複雑な問題を探索することができるようになるとのことです。

IBM 量子コンピュータの詳細はこちらから
IBM Quantum Computing - 量子コンピューター

IBMの量子コンピュータは量子ゲート方式を採用しています。ゲート方式では、アルゴリズムに基づいて量子ゲートを適切に組み合わせ、配置して量子回路を作成します。量子ゲートとは、量子ビットにどのような操作や変換を行うかを示したものです。量子コンピュータは、量子回路に従って量子ビットの状態を操作し、最後に状態を測定して計算結果を読み出します。

IBMの量子コンピュータにはクラウド経由でアクセスし、一部無償で利用することができます。また、オープンソースSDKのQiskitを活用することでPython言語のプログラミングを行うことができます。Qiskitには、量子コンピュータの専門知識をもたないユーザーであっても量子コンピューティング処理を扱える機能が用意されています。


◆IBM Quantum Challenge Fall 2021

2021年10月27日~11月6日の期間で開催された量子コンピュータ・プログラミングのコンテストです。参加者はQiskitを使って量子コンピュータ・プログラミングに挑戦します。これまで量子コンピュータに触れたことがない方でも参加可能で、世界中から量子コンピュータ・プログラミングに興味のある方が参加しています。

QuantumChallengeFall2021_02.png
コンテストの概要はこちら
量子プログラミング・コンテスト開催 | THINK Blog Japan - IBM

今回のテーマは、「量子コンピュータのビジネス活用を知るキッカケとなる産業応用の問題」でした。参加者は問題を解くことで、量子コンピュータのビジネス活用を体感し、量子コンピュータ・プログラミングのスキル向上を目指すことができます。IBMが注目する「金融」、「量子化学・物理」、「量子機械学習」、「最適化」の4つの産業応用分野からChallenge1~4として問題が出されました。


・Challengeの内容について

Challengeの内容を少しご紹介します。各Challengeには、分野の背景や考え方の紹介パートおよび、設問に沿ってプログラムをつくるパートがありました。

各Challengeは、以下の要素で構成されていました。
 ・当該分野の背景や考え方の紹介
 ・問題の目標と構成の紹介
 ・設問(プログラムで回答)

QuantumChallengeFall2021_03.png
当該分野の背景や考え方の紹介

QuantumChallengeFall2021_04.png
問題の目標と構成の紹介

QuantumChallengeFall2021_05.png
設問(プログラムで回答)

Challengeごとに背景と目標が説明されていたことで、詳しく知らない分野の問題にも取り組みやすく、各Challengeで達成したいことが分かりやすいと感じました。また、設問を解くための筋道がしっかりと用意されており、内容を理解しながらプログラミングを進めることができました。


・コンテストの進め方について

初めにチャレンジ事務局からの案内に従って、専用のYoutubeチャンネルを見て各分野の予備知識を収集しました。英語の動画で難しかったですが、日本語字幕をつけて何とか視聴しました。また、Qisikitのオンライン教材にも同様の内容があり、参考になりました。
QuantumChallengeFall2021_06.png

演習はQisikitの資料を見ながら実施しました。特に、Qiskit tutorialを読んでモジュールの使い方などを確認しました。問題内の指示に従いながらプログラミングし、演習の中で解答を提出すると、その場で合否が判定されます。
QuantumChallengeFall2021_07.png

また、専用のSlackチャンネルがあり、参加者・メンター間で情報交換やコミュニケーションを取ることができます。演習に行き詰ったら、Slackで質問するか他のやり取りを見て、情報収集をすることができました。
QuantumChallengeFall2021_08.png


・参加してみて

量子コンピュータのビジネス活用について知りたい、また量子コンピュータ・プログラミングについてさらに学びたいと思い参加しました。参加時の私の状況は、量子コンピュータの概要を知っており、Qiskitを使った簡易なプログラミングをした経験がある程度でした。

結果として、IBM Quantum Challenge Fall 2021のバッジがもらえるChallenge1~4-bまで解くことができました。最終問題のChallenge4-cは時間切れで解答までにいたりませんでした。参加者の半数近くが同じ問題(4-b)まで解答できたようです。
QuantumChallengeFall2021_09.png

今回、量子コンピュータのビジネス活用について、問題を解きながら体感することができました。量子コンピュータが活躍できる場面のイメージを持つことができ、参加して良かったです。また、難しそうな問題でも、Qisikitをうまく使いこなすことで容易にプログラムを実装できました。次回は全問正解を目指します!
各問題の解説については機会がありましたらご紹介したいと思います。