Suche senden
Hochladen
Go + WS (仮) psoをws使ってやってみる- @spdy+ws勉強会
•
2 gefällt mir
•
1,563 views
Takuya Ueda
Folgen
Technologie
Melden
Teilen
Melden
Teilen
1 von 22
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
IPAmj明朝の漢字を検索
IPAmj明朝の漢字を検索
Ryusei Yamaguchi
S08 t6 wrapup
S08 t6 wrapup
Takeshi Akutsu
KOF2017 東海道らぐLT
KOF2017 東海道らぐLT
Masataka Kondo
S09 t4 wrapup
S09 t4 wrapup
Takeshi Akutsu
S06 t4 wrapup
S06 t4 wrapup
Takeshi Akutsu
S05 t4 wrapup
S05 t4 wrapup
Takeshi Akutsu
mongodbの簡易ストレージ化
mongodbの簡易ストレージ化
Hidetoshi Mori
Vimとjson
Vimとjson
hayajo Imai
Empfohlen
IPAmj明朝の漢字を検索
IPAmj明朝の漢字を検索
Ryusei Yamaguchi
S08 t6 wrapup
S08 t6 wrapup
Takeshi Akutsu
KOF2017 東海道らぐLT
KOF2017 東海道らぐLT
Masataka Kondo
S09 t4 wrapup
S09 t4 wrapup
Takeshi Akutsu
S06 t4 wrapup
S06 t4 wrapup
Takeshi Akutsu
S05 t4 wrapup
S05 t4 wrapup
Takeshi Akutsu
mongodbの簡易ストレージ化
mongodbの簡易ストレージ化
Hidetoshi Mori
Vimとjson
Vimとjson
hayajo Imai
Goにおけるバージョン管理の必要性 − vgoについて −
Goにおけるバージョン管理の必要性 − vgoについて −
Takuya Ueda
WebAssembly with Go
WebAssembly with Go
Takuya Ueda
GAE/Goとsyncパッケージ
GAE/Goとsyncパッケージ
Takuya Ueda
静的解析を使った開発ツールの開発
静的解析を使った開発ツールの開発
Takuya Ueda
そうだ、Goを始めよう
そうだ、Goを始めよう
Takuya Ueda
マスター・オブ・goパッケージ
マスター・オブ・goパッケージ
Takuya Ueda
メルカリ カウルのマスタデータの更新
メルカリ カウルのマスタデータの更新
Takuya Ueda
Go1.8 for Google App Engine
Go1.8 for Google App Engine
Takuya Ueda
Go Friday 傑作選
Go Friday 傑作選
Takuya Ueda
GoによるiOSアプリの開発
GoによるiOSアプリの開発
Takuya Ueda
Static Analysis in Go
Static Analysis in Go
Takuya Ueda
静的解析とUIの自動生成を駆使してモバイルアプリの運用コストを大幅に下げた話
静的解析とUIの自動生成を駆使してモバイルアプリの運用コストを大幅に下げた話
Takuya Ueda
メルカリ・ソウゾウでは どうGoを活用しているのか?
メルカリ・ソウゾウでは どうGoを活用しているのか?
Takuya Ueda
エキスパートGo
エキスパートGo
Takuya Ueda
Go静的解析ハンズオン
Go静的解析ハンズオン
Takuya Ueda
Goにおける静的解析と製品開発への応用
Goにおける静的解析と製品開発への応用
Takuya Ueda
オススメの標準・準標準パッケージ20選
オススメの標準・準標準パッケージ20選
Takuya Ueda
Gopher Fest 2017参加レポート
Gopher Fest 2017参加レポート
Takuya Ueda
Google Assistant関係のセッションまとめ
Google Assistant関係のセッションまとめ
Takuya Ueda
Cloud functionsの紹介
Cloud functionsの紹介
Takuya Ueda
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
Hiroki Ichikura
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
Weitere ähnliche Inhalte
Mehr von Takuya Ueda
Goにおけるバージョン管理の必要性 − vgoについて −
Goにおけるバージョン管理の必要性 − vgoについて −
Takuya Ueda
WebAssembly with Go
WebAssembly with Go
Takuya Ueda
GAE/Goとsyncパッケージ
GAE/Goとsyncパッケージ
Takuya Ueda
静的解析を使った開発ツールの開発
静的解析を使った開発ツールの開発
Takuya Ueda
そうだ、Goを始めよう
そうだ、Goを始めよう
Takuya Ueda
マスター・オブ・goパッケージ
マスター・オブ・goパッケージ
Takuya Ueda
メルカリ カウルのマスタデータの更新
メルカリ カウルのマスタデータの更新
Takuya Ueda
Go1.8 for Google App Engine
Go1.8 for Google App Engine
Takuya Ueda
Go Friday 傑作選
Go Friday 傑作選
Takuya Ueda
GoによるiOSアプリの開発
GoによるiOSアプリの開発
Takuya Ueda
Static Analysis in Go
Static Analysis in Go
Takuya Ueda
静的解析とUIの自動生成を駆使してモバイルアプリの運用コストを大幅に下げた話
静的解析とUIの自動生成を駆使してモバイルアプリの運用コストを大幅に下げた話
Takuya Ueda
メルカリ・ソウゾウでは どうGoを活用しているのか?
メルカリ・ソウゾウでは どうGoを活用しているのか?
Takuya Ueda
エキスパートGo
エキスパートGo
Takuya Ueda
Go静的解析ハンズオン
Go静的解析ハンズオン
Takuya Ueda
Goにおける静的解析と製品開発への応用
Goにおける静的解析と製品開発への応用
Takuya Ueda
オススメの標準・準標準パッケージ20選
オススメの標準・準標準パッケージ20選
Takuya Ueda
Gopher Fest 2017参加レポート
Gopher Fest 2017参加レポート
Takuya Ueda
Google Assistant関係のセッションまとめ
Google Assistant関係のセッションまとめ
Takuya Ueda
Cloud functionsの紹介
Cloud functionsの紹介
Takuya Ueda
Mehr von Takuya Ueda
(20)
Goにおけるバージョン管理の必要性 − vgoについて −
Goにおけるバージョン管理の必要性 − vgoについて −
WebAssembly with Go
WebAssembly with Go
GAE/Goとsyncパッケージ
GAE/Goとsyncパッケージ
静的解析を使った開発ツールの開発
静的解析を使った開発ツールの開発
そうだ、Goを始めよう
そうだ、Goを始めよう
マスター・オブ・goパッケージ
マスター・オブ・goパッケージ
メルカリ カウルのマスタデータの更新
メルカリ カウルのマスタデータの更新
Go1.8 for Google App Engine
Go1.8 for Google App Engine
Go Friday 傑作選
Go Friday 傑作選
GoによるiOSアプリの開発
GoによるiOSアプリの開発
Static Analysis in Go
Static Analysis in Go
静的解析とUIの自動生成を駆使してモバイルアプリの運用コストを大幅に下げた話
静的解析とUIの自動生成を駆使してモバイルアプリの運用コストを大幅に下げた話
メルカリ・ソウゾウでは どうGoを活用しているのか?
メルカリ・ソウゾウでは どうGoを活用しているのか?
エキスパートGo
エキスパートGo
Go静的解析ハンズオン
Go静的解析ハンズオン
Goにおける静的解析と製品開発への応用
Goにおける静的解析と製品開発への応用
オススメの標準・準標準パッケージ20選
オススメの標準・準標準パッケージ20選
Gopher Fest 2017参加レポート
Gopher Fest 2017参加レポート
Google Assistant関係のセッションまとめ
Google Assistant関係のセッションまとめ
Cloud functionsの紹介
Cloud functionsの紹介
Kürzlich hochgeladen
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
Hiroki Ichikura
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
Kürzlich hochgeladen
(10)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
Go + WS (仮) psoをws使ってやってみる- @spdy+ws勉強会
1.
Go + WS
(仮) PSOをWS使って やってみる 2013/3/28(Wed.) @SPDY+WS勉強会
2.
自己紹介 上田拓也 豊橋技術科学大学大学院 電子・情報工学専攻 博士後期課程3年 (今週末まで) twitter : @tenntenn blog:
http://u.hinoichi.net
3.
アジェンダ ● Go言語でWebSocket ○ ライブラリの使い方 ●
粒子群最適化法(PSO) + WebSocket ○ WebSocketを使った分散シミュレーション ○ 粒子群最適化法
4.
Go言語でWebSocket
5.
Go言語とは(念のため) ● Googleの開発しているネイティブコードを吐き 出す、クールな言語 ○ シンプルな文法 ○
静的型付け ○ チャネルとGoroutine ○ 豊富なライブラリ ○ かわいいマスコット ● ビッグウェーブがきてますよ ○ GoCon 2013 spring ■ 申込人数 182 / 120人 ○ 電車でGo! ■ 電車借り切ってGo言語でハッカソン
6.
net/httpパッケージ package main import "fmt" import
"net/http" func handler(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "hello, gophers") } func main() { http.HandleFunc("/", handler) http.ListenAndServe(":8080", nil) } localhost:8080にアクセすると 「hello, gophers」と出る。
7.
HandlerとHandlerFunc type Handler interface
{ ServeHTTP(ResponseWriter, *Request) } // ServeHTTPを実装 type HandlerFunc func(ResponseWriter, *Request) func (f HandlerFunc) ServeHTTP(w ResponseWriter, r *Request)
8.
websocketパッケージ ● リポジトリ ○ code.google.com/p/go.net/websocket ●
ドキュメント ○ http://godoc.org/code.google.com/p/go. net/websocket
9.
構成の例 受信部 送信部 クライアントサイド Clients 受信部 送信部 Server ブロードキャスト 受信部
10.
websocketパッケージの使い方 ● ハンドラを作って登録する ○ Clientを作りServerに登録 ●
Client型を作る ○ 受信部を作る ○ 送信部を作る ● Server型を作る ○ 登録部 ○ 掃除受信部(ブロードキャスト)
11.
ハンドラの作成と登録 ● WebSocketのハンドラの型 type Handler
func(*Cnn) // http. func (Handler) ServeHTTP(w http.ResponseWriter, r *http.Request) handler := func (ws *websocket.Cnn) { // 受信部 // 送信部 } http.Handle("/ws", handler)
12.
受信部を作る ● websocket.JSON.Receiveを使う // 別のgoroutineで受信処理 go
func() { done = make(chan bool) for { var msg Message // 適当な型 err := websocket.JSON.Receive(ws, &msg) if (err == io.EOF) { done <- true break } // ブロードキャストする } }()
13.
送信処理を作る ● websocket.JSON.Sendを使う for { select
{ case msg := <-ch: websocket.JSON.Send(ws, msg) case <-done: return } }
14.
粒子群最適化法(PSO) + WebSocket
15.
何をやったのか? ● 粒子群最適化法をブラウザ側(JS0で実行する ● 結果をWSでサーバに送る ●
サーバに送られてきた結果を他のクライアント にブロードキャスト 分散して粒子群最適化法を行なう!
16.
粒子群最適化法とは? ● 粒子に解空間を探索させ、目的関数値を最小 に最適化していく ● 個体のベストと全体のベストを持つことで、他の 粒子に結果を伝達する 解空間 解
17.
粒子群最適化法とは? ● 基本的にはランダムウォーク ● ローカルベストとグローバルベストに吸いよされ る ●
完成も持つ 解空間 解
18.
粒子群最適化法とは? ● 粒子 ○ 解空間上の位置 ○
速度 ○ 個体のベスト ○ 全体のベスト
19.
粒子群最適化法と分散処理 ● 粒子群最適化法は分散処理と相性がいい ○ 各粒子の動作はグローバルベストとして以外影響がな い ○
粒子を動的に増減できる ○ 粒子を小グループに分割して実行できる ■ グローバルベストを一定間隔で同期する
20.
分散型の粒子群最適化法 解空間 =1クライアント Server グローバルベスト ブロードキャスト
21.
DEMO
22.
まとめ ● Go言語で結構簡単にWebSocket使える ○ Goroutineとチャネルが便利 ●
ブラウザで分散シミュレーション ○ WebSocketを使えば簡単 ○ 粒子群最適化法は実装簡単
Jetzt herunterladen