meets web browser quantum - ipa ·...

32
Web Browser Meets Quantum Project YAMASHITA

Upload: others

Post on 03-Oct-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Meets Web Browser Quantum - IPA · スクラップアンドビルドを大量に行うことが考えられる ゲームの開発とユーザーからのフィードバックのサイクルを早く回せる状態が望ましい

Web BrowserMeetsQuantumProject YAMASHITA

Page 2: Meets Web Browser Quantum - IPA · スクラップアンドビルドを大量に行うことが考えられる ゲームの開発とユーザーからのフィードバックのサイクルを早く回せる状態が望ましい

Our work

https://github.com/qramana/qramana

2

TypeScript製量子計算ライブラリ `qramana`

量子計算をWebアプリケーションで簡単に実行できる環境を作り上げることを目標に作成。

Page 3: Meets Web Browser Quantum - IPA · スクラップアンドビルドを大量に行うことが考えられる ゲームの開発とユーザーからのフィードバックのサイクルを早く回せる状態が望ましい

目次 3

1

2

3

4

Web開発(特にWebフロント)における

量子計算実装の効率化を図る。

モチベーション

量子計算に習熟していなくても使え、

拡張性の高い設計を目指す。

ライブラリ設計

どのようにコードに導入し、

使っていくか。

成果物紹介

qramanaを使って開発した

ゲームのデモ。

サンプルデモhttps://github.com/qramana/qramana

Page 4: Meets Web Browser Quantum - IPA · スクラップアンドビルドを大量に行うことが考えられる ゲームの開発とユーザーからのフィードバックのサイクルを早く回せる状態が望ましい

モチベーション

01

Page 5: Meets Web Browser Quantum - IPA · スクラップアンドビルドを大量に行うことが考えられる ゲームの開発とユーザーからのフィードバックのサイクルを早く回せる状態が望ましい

量子コンピューターのゲームをつくろう! 5

量子コンピューターの民主化のためには、遊びとしてやってもらうのが一番!

Page 6: Meets Web Browser Quantum - IPA · スクラップアンドビルドを大量に行うことが考えられる ゲームの開発とユーザーからのフィードバックのサイクルを早く回せる状態が望ましい

量子コンピューターのゲームをつくろう! 6

量子コンピューターの民主化のためには、遊びとしてやってもらうのが一番!

どんなゲームをつくる? 🤔ゲームのデザインは固定された正解がないため、

スクラップアンドビルドを大量に行うことが考えられる

Page 7: Meets Web Browser Quantum - IPA · スクラップアンドビルドを大量に行うことが考えられる ゲームの開発とユーザーからのフィードバックのサイクルを早く回せる状態が望ましい

量子コンピューターのゲームをつくろう! 7

量子コンピューターの民主化のためには、遊びとしてやってもらうのが一番!

どんなゲームをつくる? 🤔ゲームのデザインは固定された正解がないため、

スクラップアンドビルドを大量に行うことが考えられる

ゲームの開発とユーザーからのフィードバックのサイクルを早く回せる状態が望ましい

Page 8: Meets Web Browser Quantum - IPA · スクラップアンドビルドを大量に行うことが考えられる ゲームの開発とユーザーからのフィードバックのサイクルを早く回せる状態が望ましい

どこにゲームをつくるか? 8

1 できる限りいろんな属性の人に

プレイしてもらいフィードバックがほしい

多くの人に届けられる媒体

2 特殊な装置の購入や設置で

プレイする人を限定しないようにしたい

簡単にプレイし始められる

Page 9: Meets Web Browser Quantum - IPA · スクラップアンドビルドを大量に行うことが考えられる ゲームの開発とユーザーからのフィードバックのサイクルを早く回せる状態が望ましい

どこにゲームをつくるか? 9

1 できる限りいろんな属性の人に

プレイしてもらいフィードバックがほしい

多くの人に届けられる媒体

2 特殊な装置の購入や設置で

プレイする人を限定しないようにしたい

簡単にプレイし始められる

Page 10: Meets Web Browser Quantum - IPA · スクラップアンドビルドを大量に行うことが考えられる ゲームの開発とユーザーからのフィードバックのサイクルを早く回せる状態が望ましい

どこにゲームをつくるか? 10

ブラウザ上でゲームを動かすことで、

インターネットに繋がる多くの人を対象にできる!

Page 11: Meets Web Browser Quantum - IPA · スクラップアンドビルドを大量に行うことが考えられる ゲームの開発とユーザーからのフィードバックのサイクルを早く回せる状態が望ましい

ブラウザゲームをつくるには? 11

JavaScriptやTypeScriptを用いて

ブラウザ上でゲームのロジックを動かす

Page 12: Meets Web Browser Quantum - IPA · スクラップアンドビルドを大量に行うことが考えられる ゲームの開発とユーザーからのフィードバックのサイクルを早く回せる状態が望ましい

”量子計算”ブラウザゲームをつくるには? 12

量子計算のロジックを一から書くのはしんどい

Page 13: Meets Web Browser Quantum - IPA · スクラップアンドビルドを大量に行うことが考えられる ゲームの開発とユーザーからのフィードバックのサイクルを早く回せる状態が望ましい

”量子計算”ブラウザゲームをつくるには? 13

科学計算ライブラリを使うのはヘビー

- ブラウザで動かすのが手間

- 科学計算指向なので使うハードルが高い

Page 14: Meets Web Browser Quantum - IPA · スクラップアンドビルドを大量に行うことが考えられる ゲームの開発とユーザーからのフィードバックのサイクルを早く回せる状態が望ましい

Web開発へ向けての量子計算ライブラリ 14

JavaScriptまたはTypeScript製の量子計算ライブラリがあれば

ブラウザゲームで動かせる

教育目的のアプリなど幅広い用途で使える可能性大

ゲームのみならず多くのブラウザアプリで量子計算が行える

Page 15: Meets Web Browser Quantum - IPA · スクラップアンドビルドを大量に行うことが考えられる ゲームの開発とユーザーからのフィードバックのサイクルを早く回せる状態が望ましい

JavaScript or TypeScript 15

TypeScript:

- JavaScriptの大量にある資産を使える

- Webアプリケーション開発などをしやすい機能を多く備える

今後の開発を睨みTypeScriptでの量子計算ライブラリを実装

Page 16: Meets Web Browser Quantum - IPA · スクラップアンドビルドを大量に行うことが考えられる ゲームの開発とユーザーからのフィードバックのサイクルを早く回せる状態が望ましい

ライブラリ設計

02

Page 17: Meets Web Browser Quantum - IPA · スクラップアンドビルドを大量に行うことが考えられる ゲームの開発とユーザーからのフィードバックのサイクルを早く回せる状態が望ましい

設計コンセプト 17

ソフトウェア上の役割の記述と量子ビットの記述がうまく馴染むように

二つ以上の量子状態が不可分な状態として存在する場合

それらの量子ビットをどう記述するかを解決する必要がある

量子計算の基本単位「量子ビット」をどう記述するか?

Page 18: Meets Web Browser Quantum - IPA · スクラップアンドビルドを大量に行うことが考えられる ゲームの開発とユーザーからのフィードバックのサイクルを早く回せる状態が望ましい

具体的な問題例 18

・name・location

・name・location

レースゲーム中での車を定義する

Page 19: Meets Web Browser Quantum - IPA · スクラップアンドビルドを大量に行うことが考えられる ゲームの開発とユーザーからのフィードバックのサイクルを早く回せる状態が望ましい

具体的な問題例 19

・name・location・qState

・name・location・qState

レースゲーム中での車を定義する

ここで車に対して量子状態を定義し、

それを元にしたギミックをいれてみる

Page 20: Meets Web Browser Quantum - IPA · スクラップアンドビルドを大量に行うことが考えられる ゲームの開発とユーザーからのフィードバックのサイクルを早く回せる状態が望ましい

具体的な問題例 20

・name・location・qState

・name・location・qState

レースゲーム中での車を定義する

このqStateは具体的になにを使うのか?

Page 21: Meets Web Browser Quantum - IPA · スクラップアンドビルドを大量に行うことが考えられる ゲームの開発とユーザーからのフィードバックのサイクルを早く回せる状態が望ましい

問題点〜量子もつれ〜 21

・name・location・qState

・name・location・qState

レースゲーム中での車を定義する

量子もつれの関係を記述する必要がある

Page 22: Meets Web Browser Quantum - IPA · スクラップアンドビルドを大量に行うことが考えられる ゲームの開発とユーザーからのフィードバックのサイクルを早く回せる状態が望ましい

問題点〜量子もつれ〜 22

最初は別々に記述していた量子状態がある時から不可分な状態となってしまう

Page 23: Meets Web Browser Quantum - IPA · スクラップアンドビルドを大量に行うことが考えられる ゲームの開発とユーザーからのフィードバックのサイクルを早く回せる状態が望ましい

問題点〜量子もつれ〜 23

どれとどれが量子もつれの関係?

Page 24: Meets Web Browser Quantum - IPA · スクラップアンドビルドを大量に行うことが考えられる ゲームの開発とユーザーからのフィードバックのサイクルを早く回せる状態が望ましい

・name・location・qState

qStateの定義 24

・name・location・qState

    Car1 Car2実際の量子状態はソフトウェアが管理

Page 25: Meets Web Browser Quantum - IPA · スクラップアンドビルドを大量に行うことが考えられる ゲームの開発とユーザーからのフィードバックのサイクルを早く回せる状態が望ましい

・name・location・qState

qStateの定義 25

・name・location・qState

    Car1 Car2実際の量子状態はソフトウェアが管理

ユーザーは量子状態同士の複雑な関係を管理しなくていい

Page 26: Meets Web Browser Quantum - IPA · スクラップアンドビルドを大量に行うことが考えられる ゲームの開発とユーザーからのフィードバックのサイクルを早く回せる状態が望ましい

設計まとめ 26

量子状態の管理や計算を隠蔽できる

ソフトウェアをつくる

Page 27: Meets Web Browser Quantum - IPA · スクラップアンドビルドを大量に行うことが考えられる ゲームの開発とユーザーからのフィードバックのサイクルを早く回せる状態が望ましい

成果物紹介

03

Page 28: Meets Web Browser Quantum - IPA · スクラップアンドビルドを大量に行うことが考えられる ゲームの開発とユーザーからのフィードバックのサイクルを早く回せる状態が望ましい

ライブラリ紹介 28

https://github.com/qramana/qramana

Page 29: Meets Web Browser Quantum - IPA · スクラップアンドビルドを大量に行うことが考えられる ゲームの開発とユーザーからのフィードバックのサイクルを早く回せる状態が望ましい

ライブラリ紹介 29

1

すべてのコードは公開済み。

JavaScript, TypeScriptのエコシステムから利用可能。

OSSであり、npmからの利用が可能2

量子もつれや複素ベクトル演算などは隠蔽。

現在利用している jsqubits量子計算ライブラリからの切り替えも可能な設計

量子計算の複雑な処理は隠蔽

Page 31: Meets Web Browser Quantum - IPA · スクラップアンドビルドを大量に行うことが考えられる ゲームの開発とユーザーからのフィードバックのサイクルを早く回せる状態が望ましい

サンプルデモ

04

Page 32: Meets Web Browser Quantum - IPA · スクラップアンドビルドを大量に行うことが考えられる ゲームの開発とユーザーからのフィードバックのサイクルを早く回せる状態が望ましい

量子タワーオブディフェンス

https://github.com/dasoran/phaser-towerdefense/tree/feature/prototype