0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Qiskit SDK v2.X Developer Certification(C1000-179)を公式一次資料から整理する

0
Posted at

はじめに

Qiskit Advocateプログラム2.0では、Tier0から上位Tierへ昇格するために「Qiskit SDK v2.X Developer Certification」への合格が必須要件の一つになっています。ではこの試験、具体的に何が出るのか調べようとしたのですが、IBM公式ブログや認定ページはJavaScriptで描画されていたりアクセス制限があったりで、機械的に内容を追うのが少し面倒でした。

そこで今回は、IBM公式サイトから直接ダウンロードできる Study Guide PDF(C1000-179_STU_StudyGuideQiskitv2.pdf)と Sample Test PDF(C1000-179_SAM_SampleTestQiskitv2.pdf)、および公式認定ページの記載内容を一次情報として、出題範囲・試験形式・学習の進め方を整理しました。

なお試験要項の概要自体はw371dyさんの記事で既に紹介されています。本記事ではそれに加えて、公式Study Guide PDFのTask単位の参照先や、実際に学習を進める中で気づいた実践的な注意点(GuideとTutorialの違いなど)を掘り下げます。

試験の基本情報

項目 内容
試験コード C1000-179(Fundamentals of Quantum Computing Using Qiskit v2.X Developer)
認証コード C9008400(旧コード C0010300 を置換)
問題数 68問
合格ライン 47問正解(約69%)
制限時間 90分
受験言語 英語のみ
費用 本試験 $200 USD、評価試験(Assessment Exam)$30 USD/回
受験方式 Pearson VUE経由(テストセンター対面 または OnVUE自宅受験)

評価試験(Assessment Exam)はスコアレポート付きの模擬試験で、何度でも再受験可能ですが問題セット自体は同じで出題順序が変わるだけです。公式Study Guideの「Next Steps」では、①評価試験を受ける→②合格したらPearson VUEで本試験を予約→③不合格ならセクション別のスコアを見て弱点を復習、という流れが推奨されています。

出題範囲: 8セクションと配点

IBM公式認定ページに掲載されている、セクションごとの配点は以下の通りです。

# セクション 配点
1 Perform quantum operations(量子演算の実行) 16%
2 Visualize quantum circuits, measurements, and states(可視化) 11%
3 Create quantum circuits(量子回路の作成) 18%
4 Run quantum circuits(量子回路の実行) 15%
5 Use the sampler primitive(サンプラープリミティブ) 12%
6 Use the estimator primitive(推定量プリミティブ) 12%
7 Retrieve and analyze the results(結果取得・解析) 10%
8 Operate with OpenQASM(OpenQASM運用) 6%

「量子回路の作成(18%)」「量子演算の実行(16%)」「量子回路の実行(15%)」の上位3セクションだけで配点の約半分(49%)を占めるため、時間が限られている場合はここを優先するのが効率的です。

各セクションのTask構成

Study Guide PDFには、セクションごとにさらに細かい"Task"単位の目標と、それぞれに対応する公式ドキュメントの参照URLが明記されています。ただし正直に言うと、Task によっては参照先がクラスのAPIリファレンス1本だけというケースもあり、いきなりそこを読みに行くのはハードルが高いです。そこで各Taskに「結局何をする話か」を一言添えた上で、公式リンクを併記します。

セクション1: Perform quantum operations(16%)

  • Task 1.1: Define Pauli Operators — X/Y/Z/Iとそのテンソル積で観測量を表現する話。Estimatorに渡す観測量(SparsePauliOp)の元になる。
  • Task 1.2: Apply quantum operations — h, x, cx, rzなど標準ゲートを回路に適用する基本操作。

セクション2: Visualize quantum circuits, measurements, and states(11%)

セクション3: Create quantum circuits(18%・最大配点)

  • Task 3.1: Construct dynamic circuits — 測定結果に応じて後続ゲートを条件分岐させる(if_test)。先述のサンプル回路がこれに当たる。
  • Task 3.2: Construct parameterized circuitsParameterで値未確定の変数を持つ回路を作り、後で数値をbindする。VQEなど変分アルゴリズムの基本形。
  • Task 3.3: Transpile and optimize circuits — 回路を実機の接続トポロジ・ネイティブゲートに合わせて変換・最適化する。optimization_level(0〜3)の使い分けが問われやすい。
  • Task 3.4: Construct basic quantum circuits — レジスタ定義・基本ゲート配置・測定など、QuantumCircuitの基礎的な組み立て方。

セクション4: Run quantum circuits(15%)

セクション5: Use the sampler primitive(12%)

セクション6: Use the estimator primitive(12%)

セクション7: Retrieve and analyze the results of quantum circuits(10%)

セクション8: Operate with OpenQASM(6%)

  • Task 8.1: Structure types in OpenQASM 3 programs — qubit/bit宣言やintfloatangle等の古典型の構文。
  • Task 8.2: Interpret OpenQASM semantics — if/for/while等の制御構造の意味論の理解。
  • Task 8.3: Interoperate different versions of OpenQASM with Qiskitqiskit.qasm3.dump()/loads()によるQASM2/3とQiskit回路の相互変換。
  • Task 8.4: Interact with the Qiskit IBM Runtime REST API — OpenQASM 3プログラムをRuntime REST API経由で直接投入する方法。

特にセクション3の「動的回路」は、測定結果に応じて後続のゲートを条件分岐させる機能で、QuantumCircuit.if_test()を使って書きます。イメージが掴みにくいので、簡単な例を実際に描画してみました。

from qiskit import QuantumCircuit, QuantumRegister, ClassicalRegister

qubits = QuantumRegister(2, "q")
clbits = ClassicalRegister(2, "c")
circuit = QuantumCircuit(qubits, clbits)
(q0, q1) = qubits
(c0, c1) = clbits

circuit.h(q0)
circuit.measure(q0, c0)

with circuit.if_test((c0, 1)):
    circuit.x(q1)

circuit.measure(q1, c1)
circuit.draw(output="mpl")

dynamic_circuit_example.png

q0をアダマールゲートで重ね合わせ状態にしてから測定し、その結果(古典ビットc0)が1だった場合だけq1Xゲートを適用する、という条件分岐の回路です。回路の途中で測定して古典的な判断を挟む、という発想自体が古典プログラミングのif文に近く、静的な回路構築(セクション3の「Construct basic quantum circuits」)とは別のTaskとして独立して出題されるのも納得できます。

サンプルテストから見える出題傾向

Sample Test PDFには全8セクションから計21問(選択式)と解答キーが収録されています。公式の断り書きとして「本試験の全範囲を網羅するものではなく、これらの問題への正答率が本試験の合否を予測するものではない」と明記されているので過信は禁物ですが、出題の"作法"を知る手がかりにはなります。印象に残った傾向を2つ紹介します。

1. コードを読んで出力を予測させる問題が多い
「このコードを実行すると何が出力されるか」「この回路図を生成するコードはどれか」という形式の設問が、セクション1〜3にかけて繰り返し登場します。暗記よりも、実際にコードを書いて動かした経験の有無が問われる作りです。

2. Estimatorのprecisionパラメータと必要shot数の関係
Estimatorのオプションprecisionは「目標とする標準誤差」を表す値で、標準誤差は測定回数(shot数)の平方根に反比例します(誤差 ∝ 1/√shots)。そのためprecisionの値を大きくする(=許容する誤差を粗くする)と、必要なshot数はその2乗に反比例して少なくなります。サンプル問題ではprecisionを0.015625から0.03125へと2倍にした場合の挙動が問われており、正解は「shot数が減少する」でした。数値の大小と物理的な意味(precisionは"誤差の許容量"であって"精度そのもの"ではない)を混同しないよう注意が必要です。

学習リソースの実践的な注意点

公式ドキュメントサイト(quantum.cloud.ibm.com/docs)で学習を進める際に気づいた点です。

GuidesとTutorialsは別物、試験対策はGuidesで完結する
ドキュメントサイトには「Guides」と「Tutorials」という2種類のセクションがあります。Tutorialsには49件のチュートリアルが掲載されていますが、中身はVQE・QAOA・Shorのアルゴリズム・化学シミュレーション・機械学習といった応用色の強い実演がほとんどで、Pauli演算子の定義や基本的な回路構築、OpenQASMの構文といった試験のTaskに直結する基礎的な内容はほぼ扱われていません。試験範囲(8セクション)はGuides側で網羅されているため、対策としてTutorialsを一通りこなす必要はありません。

Guides配下のnotebookはそのままでは実行しづらい
GuidesのソースはGitHubのQiskit/documentationリポジトリで公開されており、docs/guides/配下には.mdx(説明文のみ)と.ipynb(コード付きnotebook)が混在しています。ただし.ipynbのmarkdownセルにも<Admonition><Accordion>といったドキュメントサイト独自のJSXタグがそのまま埋め込まれているため、ダウンロードしてJupyterで開くと説明文が読みにくい状態になります(コードセル自体は素のPythonなので実行はできます)。手を動かしたいだけであれば、Guidesのnotebookを無理にダウンロードするより、最初から実行を前提に書かれているTutorialsを使うか、Guidesのページはブラウザでそのまま読む方がストレスがありません。

日本語で学びたいならQuantum Tokyoの連続企画も
Qiskitの日本コミュニティ「Quantum Tokyo」が、この試験の8セクションに対応させる形で「Qiskit Summer Dojo」という全4回の勉強会シリーズを開催しています(#1 量子操作&可視化編#2 量子回路の作成実行編)。アーカイブはQuantum TokyoのYouTubeチャンネルで公開される予定なので、英語ドキュメントを読む前の日本語での導入として活用できます。

まとめ

  • C1000-179は8セクション・配点が公式に公開されており、「量子回路の作成(18%)」「量子演算の実行(16%)」「量子回路の実行(15%)」の上位3セクションで配点の約半分を占める
  • 公式Study Guide PDFにはTask単位で参照ドキュメントURLまで指定されており、これに沿って読めば学習リソース選びに迷わない
  • ドキュメントサイトのGuidesとTutorialsは役割が異なり、試験対策としてはGuidesのみで完結する。Tutorialsは応用例中心で試験範囲との対応はほぼない

参考文献

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?