meets web browser quantum - ipa ·...
TRANSCRIPT
Web BrowserMeetsQuantumProject YAMASHITA
Our work
https://github.com/qramana/qramana
2
TypeScript製量子計算ライブラリ `qramana`
量子計算をWebアプリケーションで簡単に実行できる環境を作り上げることを目標に作成。
目次 3
1
2
3
4
Web開発(特にWebフロント)における
量子計算実装の効率化を図る。
モチベーション
量子計算に習熟していなくても使え、
拡張性の高い設計を目指す。
ライブラリ設計
どのようにコードに導入し、
使っていくか。
成果物紹介
qramanaを使って開発した
ゲームのデモ。
サンプルデモhttps://github.com/qramana/qramana
モチベーション
01
量子コンピューターのゲームをつくろう! 5
量子コンピューターの民主化のためには、遊びとしてやってもらうのが一番!
量子コンピューターのゲームをつくろう! 6
量子コンピューターの民主化のためには、遊びとしてやってもらうのが一番!
どんなゲームをつくる? 🤔ゲームのデザインは固定された正解がないため、
スクラップアンドビルドを大量に行うことが考えられる
量子コンピューターのゲームをつくろう! 7
量子コンピューターの民主化のためには、遊びとしてやってもらうのが一番!
どんなゲームをつくる? 🤔ゲームのデザインは固定された正解がないため、
スクラップアンドビルドを大量に行うことが考えられる
ゲームの開発とユーザーからのフィードバックのサイクルを早く回せる状態が望ましい
どこにゲームをつくるか? 8
1 できる限りいろんな属性の人に
プレイしてもらいフィードバックがほしい
多くの人に届けられる媒体
2 特殊な装置の購入や設置で
プレイする人を限定しないようにしたい
簡単にプレイし始められる
どこにゲームをつくるか? 9
1 できる限りいろんな属性の人に
プレイしてもらいフィードバックがほしい
多くの人に届けられる媒体
2 特殊な装置の購入や設置で
プレイする人を限定しないようにしたい
簡単にプレイし始められる
どこにゲームをつくるか? 10
ブラウザ上でゲームを動かすことで、
インターネットに繋がる多くの人を対象にできる!
ブラウザゲームをつくるには? 11
JavaScriptやTypeScriptを用いて
ブラウザ上でゲームのロジックを動かす
”量子計算”ブラウザゲームをつくるには? 12
量子計算のロジックを一から書くのはしんどい
”量子計算”ブラウザゲームをつくるには? 13
科学計算ライブラリを使うのはヘビー
- ブラウザで動かすのが手間
- 科学計算指向なので使うハードルが高い
Web開発へ向けての量子計算ライブラリ 14
JavaScriptまたはTypeScript製の量子計算ライブラリがあれば
ブラウザゲームで動かせる
教育目的のアプリなど幅広い用途で使える可能性大
ゲームのみならず多くのブラウザアプリで量子計算が行える
JavaScript or TypeScript 15
TypeScript:
- JavaScriptの大量にある資産を使える
- Webアプリケーション開発などをしやすい機能を多く備える
今後の開発を睨みTypeScriptでの量子計算ライブラリを実装
ライブラリ設計
02
設計コンセプト 17
ソフトウェア上の役割の記述と量子ビットの記述がうまく馴染むように
二つ以上の量子状態が不可分な状態として存在する場合
それらの量子ビットをどう記述するかを解決する必要がある
量子計算の基本単位「量子ビット」をどう記述するか?
具体的な問題例 18
・name・location
・name・location
レースゲーム中での車を定義する
具体的な問題例 19
・name・location・qState
・name・location・qState
レースゲーム中での車を定義する
ここで車に対して量子状態を定義し、
それを元にしたギミックをいれてみる
具体的な問題例 20
・name・location・qState
・name・location・qState
レースゲーム中での車を定義する
このqStateは具体的になにを使うのか?
問題点〜量子もつれ〜 21
・name・location・qState
・name・location・qState
レースゲーム中での車を定義する
量子もつれの関係を記述する必要がある
問題点〜量子もつれ〜 22
最初は別々に記述していた量子状態がある時から不可分な状態となってしまう
問題点〜量子もつれ〜 23
どれとどれが量子もつれの関係?
・name・location・qState
qStateの定義 24
・name・location・qState
Car1 Car2実際の量子状態はソフトウェアが管理
・name・location・qState
qStateの定義 25
・name・location・qState
Car1 Car2実際の量子状態はソフトウェアが管理
ユーザーは量子状態同士の複雑な関係を管理しなくていい
設計まとめ 26
量子状態の管理や計算を隠蔽できる
ソフトウェアをつくる
成果物紹介
03
ライブラリ紹介 29
1
すべてのコードは公開済み。
JavaScript, TypeScriptのエコシステムから利用可能。
OSSであり、npmからの利用が可能2
量子もつれや複素ベクトル演算などは隠蔽。
現在利用している jsqubits量子計算ライブラリからの切り替えも可能な設計
量子計算の複雑な処理は隠蔽
サンプルデモ
04
量子タワーオブディフェンス
https://github.com/dasoran/phaser-towerdefense/tree/feature/prototype