Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
はじめてみよう量子プログラミング
Search
ito-koichi
September 17, 2024
Programming
740
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
はじめてみよう量子プログラミング
吉祥寺.pm36【オンライン】
https://kichijojipm.connpass.com/event/328378/
LT資料
ito-koichi
September 17, 2024
More Decks by ito-koichi
See All by ito-koichi
量子コンピュータはどのように計算するのか
itokoichi01
0
23
量子ビットを見てみよう
itokoichi01
0
16
RubyKaigiに参加したら何かやりたくなった
itokoichi01
0
44
Other Decks in Programming
See All in Programming
鹿野さんに聞く!『TypeScriptコードレシピ集』で磨く実践力
tonkotsuboy_com
4
1.1k
えっ!!コードを読まずに開発を!?
hananouchi
0
230
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
340
Laravel Boostに学ぶ、AIにPHPを書かせる技術 〜OSSの実装から蒸留するエージェント制御の王道〜
kentaroutakeda
3
510
霧の中の代数的エフェクト
funnyycat
1
410
フィードバックで育てるAI開発
kotaminato
1
120
言語を使う側から、作る側へ。 自作 Lisp で得た新たな気づき。
andpad
0
130
継続モナドとリアクティブプログラミング
yukikurage
3
620
任せる範囲はこう広がった / How the Scope of AI Delegation Has Expanded
nrslib
1
270
はてなアカウント基盤 State of the Union
cockscomb
1
1.3k
5分で問診!Composer セキュリティ健康診断
codmoninc
0
500
【やさしく解説 設計編・中級 #6】良いアーキテクチャとは ~ 一本の登り道の、行き先 ~
panda728
PRO
0
170
Featured
See All Featured
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
270
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.2k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.3k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
340
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
201
75k
We Are The Robots
honzajavorek
0
280
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.1k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
810
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
220
The Cost Of JavaScript in 2023
addyosmani
55
10k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
410
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
220
Transcript
はじめてみよう 量子プログラミング 2024.9.17 吉祥寺.pm36 ito-koichi
自己紹介 名前: ito-koichi (伊藤公一) X:@itokoichi01X: @itokoichi01 所属:富士通 職業:システムエンジニア テーマ「プログラミング!」: 仕事:TypeScript、Kotlin 好きな言語:Ruby
量子プログラミングはただの趣味です(専門ではありません) Qiskit (IBMの量子コンピュータSDK) の資格持ってます
量子プログラミングしたことありますか • 量子コンピュータ持ってません • 量子プログラミングって言語は何を使うの? ここできみにすごいラッキーなニュースがあります
量子プログラミングはブラウザ上でできるんです * Python + Qiskit SDK 等 • IBM Quantum
Composer • Qni • QCoder • Qookbook 量子プログラミング環境 を作る(*) コード プログラミング ビジュアル プログラミング ブラウザベースのサービス 自分で環境構築
量子プログラミングはブラウザ上でできるんです • ビジュアル系 ◦ IBM Quantum Composer (https://quantum.ibm.com/composer) ◦ Qni
(https://qniapp.net/) • コード系 ◦ QCoder (https://www.qcoder.jp/) (Qiskitを使用する) ◦ Qookbook (https://www.qookbook.net/) IBM Quantum Composerを使って ビジュアル量子プログラミングのデモをします
IBM Quantum Composer IBM Quantum(*)のビジュアル量子プログラミング環境 * IBM Quantum: IBMの量子コンピューティングプラットフォーム •
量子コンピュータのシミュレータを使えます(ユーザー登録不要) ※デモ • 量子コンピュータの実機を使えます(ユーザー登録要) 量子プログラムの動きを見れるので便利
デモ 量子ビットの論理演算 量子ビットを量子ゲートで反転した後に測定する • 量子ビット ◦ ふつーのビットの量子版(重ね合わせ状態) ◦ 重ね合わせ状態のままでは値は決まらない(不確定性原理) ◦ 測定すると重ね合わせ状態が壊れて値が決まる(波束の収縮)
• 量子ゲート ◦ ふつーの論理ゲートの量子版 ◦ 入力、出力とも量子ビット(並列計算) ◦ デモではXゲート(NOTゲートの量子版)を使う
デモ
できました! 量子プログラミングは ブラウザ上で すぐにはじめられる
できました! 量子プログラミング 完全に理解した!
できました! おい
今回のデモはプログラムを書く部分 プログラムの書き方 • ビジュアルプログラミング • コードプログラミング 量子アルゴリズム • 量子位相推定、誤り訂正 ...
前提知識 • 数学、物理学 • 情報理論 量子コンピュータの知識 • 量子ビット、量子ゲート • トランスパイラ プログラムの周 辺知識も必要 そのためにおす すめの方法を二 つ紹介します 適用できる問題の探求 • 量子鍵配送、...
①勉強しよう • 本(「量子コンピュータ」で探す) • Webコンテンツ(チュートリアル等) • 動画コンテンツ できれば数式を説明しているもの(大事) そのうち「数式の方がシンプルで楽」になる 説明をプログラムにして動かしてみる
実際に動かすことで説明を納得できる
①勉強しよう 本を読んでも「量子プログラミングなにもわからない(本当に)」とき 別の本を読んでみる それでもわからなかったら、さらに別の本を 一冊で全てを理解できなくてもいい(大事)
②量子プログラミングのイベントに参加しよう • QCoder Programming Contest (https://www.qcoder.jp/) ◦ 不定期に開催されるオンラインの量子プログラミングコンテスト(競プロ) ◦ ブラウザ上でQiskitを使ったコードを入力して問題を解く
• IBM Quantum Challenge (https://challenges.quantum.ibm.com/) ◦ 年2回くらい開催されるオンラインの量子プログラミングイベント ◦ Python + Qiskitを実行できる環境を用意して問題を解く 問題が解けるとモチベーションが上がる(大事)
まとめ 量子プログラミングはブラウザ上ですぐにはじめられる 周辺知識を得るためには勉強とイベント参加がおすすめ 準備はできた おいでよ量子プログラミングの沼 基本的な 量子ゲート操作 量子 アルゴリズム ハイブリッド
アルゴリズム 問題解決 量子アプリケーション 量子コンピュータ の基礎 とはいえ沼は広くて深い。無理せず楽しんでいこう
おまけ1 デモ
デモ 準備 1. IBM Quantum Composerを開く (https://quantum.ibm.c om/composer) • ①:量子回路(ここに量子ゲー トを配置する)
• ②:量子ゲート(ここから回路 上に持っていく) ① ②
デモ 準備 2. 量子回路を学習用に1量子ビット構成にする 初期状態 q[3]をクリックしてごみ 箱。 q[0]のみにする c4をクリックしてマイナ ス。 c1まで減らす
1量子ビット構成の完成 → → →
デモ 準備 3. グラフを「Statevector」と「Probalilities」にする(左右は任意) • Statevector (状態ベクトル) ◦ 量子状態を表す ◦ 初期状態は|0>が1.0、|1>が0.0
(ちなみに値は確率振幅と呼ばれる複素数 ) • Probabilities (測定確率) ◦ 量子状態を1024回測定したときに0, 1がそれぞれ出る確率 (%)
デモ 初期状態 • 量子ビットの初期状態は |0> • Statevectorは|0>が1.0
デモ Xゲートを配置する • 量子ビットの初期状態は|0> • Statevactorは|0>が1.0 • Probabilitiesは未測定なので無し • Xゲートを配置する •
量子ビットは反転して |1>に なった • Statevectorは|1>が1.0
デモ 測定 • 測定を配置する • 量子ビットを測定した結果が c1 に入る • |1>状態は、測定すると100% で1になる
• Probabilitiesを見ると確かに1 が100%になっている
参考 量子コンピュータの実機で実行した結果 ノイズがあるため1が100%にはな らない 1024回の実行結果 • 0: 19回 (1.9%) • 1:
1005回 (98.1%)
おまけ2 量子プログラミングを学習するときの予備知識
量子プログラミングを学習するときの予備知識 本には書いてあることですが、最初はイメージしにくい(実感しにくい)ので図にしてみま した。 知ってると位相キックバックや量子テレポートを理解しやすいと思います。 ①量子ビットは全体で一つの系を構成する ②量子演算は量子系全体に影響する
①量子ビットは全体で1つの系を構成する 0 or 1 1ビット 2ビット 3ビット 古典ビット 量子ビット a|00>
+ b|01> + c|10> + d|11> 0 or 1 0 or 1 a|0> + b|1> 0 or 1 0 or 1 0 or 1 a|000> + b|001> + c|010> + d|011> + e|100> + f|101> + g|110> + h|111> 量子系は「全体で一つの状態ベクトル」ということです
②量子演算は量子系全体に影響する 入力 2ビット 0 or 1 0 or 1 a|00>
+ b|01> + c|10> + d|11> 古典ビット 量子ビット NOT 0 or 1 0 or 1 X 1ビット目を反転 a|01> + b|00> + c|11> + d|10> 出力 2ビット 量子演算は「系全体の状態ベクトル」を変更するものと考えるとよいです Id (単位ゲート)