SlideShare a Scribd company logo
メカ女子将棋💙
メカ女子将棋部 メカきむりん(@kimrin)
1
お品書き
自己紹介(@kimrin)
メカ女子将棋部の紹介
なぜ#JuliaLangでコンピュータ将棋を?
コンピュータ将棋システムの仕組み
Magic Bit Board と #JuliaLang の128bit Integerとの蜜月
動かしてみよう(論より証拠w)
2
自己紹介(@kimrin)
組込みエンジニア(メイン:OpenGL関係, 某Game機, 某歩く人など)
コンパイラ(COINSのお手伝い、AspectJ静的解析系)
自然言語処理(修論は形態素解析)
ゲーム木探索(海外発表あり)
ソニー子会社勤務などを経て、現在某SIer勤務

(主にSなんとか、とかに常駐してます)
Mecha Lady Shogi Blog: http://mechawooser.blogspot.jp/
絶賛転職活動中です
3
@kimrinの主な成果(1)
@mechawooser (メカウーサーCC)
3時間に一回つぶやく、

@wooserさんのtwitter bot
「うーさーのその日暮らし(覚醒編)」にも

「メカウーサー」として登場しました
自然言語処理技術を使っています
現在約2,000名のフォロアー
4
@kimrinの主な成果(2)
メカ女子将棋(@mechajyo)   ←メカジョさん
女流棋士2名を含む(!)

女性メンバーによるコンピュータ将棋システム
メカきむりんは小六女子のおっさん、ということで

一応女子ということになってます(^_^;)
世界初、#JuliaLangによるコンピュータ将棋システム!
(今日はこちらを詳しく、詳しく!)
5
メカ女子将棋部
メンバー
竹部 さゆり 女流三段(メカさゆりん)
渡辺 弥生 女流初段(メカみおたん)
メカりえぽん(広報、女子大学院生)
メカみゅーん(お裁縫担当)
メカきむりん(ただのPCヲタw)
6
なぜ#JuliaLangで

コンピュータ将棋プログラムを?
他のコンピュータ将棋システムは、C/C++を使ってるのが
ほとんど
C/C++やFortranに迫る性能を#JuliaLangが出している
ちょうど#JuliaLang、興味があって覚えたいしー
将来評価関数の機械学習もしたいし
じゃぁ、#JuliaLangで将棋ソフト作ったら、

うっしっし(*^_^*) w
7
#JuliaLangでコンピュータ
将棋ソフト開発
スクリプト言語チックなので、色々楽w 
C++もある程度コンテナとかあるけど、
#JuliaLangの方が楽(なにぶん直感的)
ポインタないしw
その場で実行開始できるので

(JIT Compilation)開発効率もよい!
8
コンピュータ将棋

システムの仕組み
現在はネットワーク対戦で勝敗を決めることが
ほとんど
将棋エンジン
UI (盤面表示)
ネットワーク通信部
全部自分で作ると結構な量のコードに
9
将棋GUIソフトの登場
将棋所
ShogiGUI
上記二つのソフトウェアはGUIやネットワークの部分を提
供してくれる。コンピュータ将棋プログラム作者は将棋
エンジンと呼ばれる標準入出力を使ったEXE Fileを作るだ
けで、将棋の対局を実現できるようになった
コンピュータ将棋エンジン作成者はより将棋エンジンの
ロジックの設計に集中できるようになった
10
将棋エンジンとは
GUIソフトウェアからの起動
され、次のデータをASCIIで
GUI側から受信・あるいは送
信する
ソフトウェア名[Send]
対局準備OK[Recv]
対局準備OK[Send]
対局開始[Recv]
現在局面[Recv]
思考開始指令[Recv]
現在の探索深さと読み筋

(複数)[Send]
自分の着手[Send]
投了[Send]
勝敗[Recv]
11
具体例:▲7六歩
△4二王を指すところ
>1:position startpos moves 7g7f
>1:go btime 1499000 wtime 1500000 byoyomi 0
<1:info time 62 depth 1 nodes 51 score cp 11 nps 827 pv 3c3d 8h2b+ 8b2b
<1:info time 122 depth 2 nodes 135 score cp -69 nps 1102 pv 3c3d 5g5f 2b8h+ 2h8h
<1:info time 177 depth 2 nodes 313 score cp -205 nps 1770 pv 3c3d 5i6h 2b8h+ 7i8h
<1:info time 279 depth 3 nodes 2812 score cp 54 nps 10079 pv 5a4b 3i4h 3c3d 8h2b+ 3a2b
<1:info time 397 depth 4 nodes 4788 score cp 91 nps 12069 pv 5a4b 3i4h 3c3d 8h2b+ 3a2b
<1:info time 550 depth 4 nodes 11286 score cp 118 nps 20507 pv 5a4b 5g5f 3c3d 5f5e 2b5e
<1:info time 1077 depth 5 nodes 46579 score cp 188 nps 43256 pv 5a4b 5i6h 3c3d 8h2b+ 3a2b
<1:info time 2635 depth 6 nodes 136954 score cp -229 nps 51967 pv 5a4b 5i6h 4b3b 3i4h 3b4b 5g5f
<1:info time 7257 depth 6 nodes 501384 score cp -295 nps 69089 pv 5c5d 2g2f 8b5b 2f2e 5a6b 2e2d
<1:bestmove 5a4b
12
盤面と指し手
position startpos moves 7g7f
初期盤面から▲7六歩まで
以下、指し手を連ねていく
7g7f: (移動元)(移動先)になってる
7: 7筋(これは棋譜と一緒)
g, f: 7段、6段(aが1段)
駒台から打つ手の場合
P*7f のように、打つ駒の名前、”*” 、打つ場所、と表記する
13
そもそも将棋エンジンとは、

何を計算するのか?
Pseudo Code で書いてみた:
Algorithm S(p::Position)
lis = generate_moves(p)
move = choice(p,lis)
return move
choiceがキモ!
実際は、Alpha Beta Search(後述)というのを行う
14
Algorithm Choice
for id_depth = 1:ID_MAX
val = AlphaBeta (p, -Infinity, Infinity, id_depth, 0, teban)
report_to_UI( PV) (後述)
if timedOut
return PV[1,1] # 指し手(後述)
end
end
Algorithm AlphaBeta( p::Position, alpha::Int64, beta::Int64,

depth::Int64, ply::Int64, teban::Int64)
こんな感じの関数をひたすら再帰で実行する
15
Alpha Beta Search(1)
Algorithm AlphaBeta(p,alpha,beta,depth,ply,teban)
if depth <= 0
return evaluate(p,teban)
end
lis = generate_moves (p,teban)
if length(lis) == 0
return -Infinity + ply
end
(続く。。。)
16
Alpha Beta Search(2)
for m in lis
(本体は次ページ)
end
return alpha
end
!
!
!
!
17
(本体)
make_move (p, m, teban)
val = -AlphaBeta( p, -beta, -alpha, depth-1, ply+1, teban*(-1))
move_back(p, m, teban)
if val > alpha
alpha = val # alpha update
update_pv( p, m, val) # update Principal Variation
if val >= beta
break # beta cutoff
end
end
18
Alpha Beta Search(3)

関数について
evaluate: 評価関数
局面の価値を計算する関数
メカ女子将棋ではbonanzaプログラムの素性値を利用
generate_moves: 可能手生成関数
局面から指せる手をすべてリストに列挙する
後述のMagic BitBoardはここの話
legal/pseudo legal の二種類がある(この例ではlegal)
以上二つがCPUのかなりの時間を使う(※重要)
19
Alpha Beta Search(4)
make_move/move_back:
一手指す(mを)そしてpを更新する
move_backは一手戻す
update_pv:
最善応手手順(PV)を更新する
関数が手を返すのではなくここでPVを更新するケースが多い
このPVの結果の1手目を指し手とする
実際は三角な行列を更新することが多い
PVをtransposition table と呼ばれるハッシュテーブルから取得する場合も

(Stock Fishなど)
20
Alpha Beta Search(5)
注目すべきは beta cutoff
これ、途中でSearchを止めている
しかし、このcutoffを行っても、最後に計算されるval(ゲーム木の値)は変わらない
[Knuth 75]

=つまりサボれる=もっと深く探索できる
実際にはmove ordering という指し手リストの並べ替えを行って、できるだけ最初の方
でbeta cutoffが起きるようにしている
最も最適な並び替えられたtree全体のことを、optimal treeと呼ぶ
!
[Knuth 75] An Analysis of Alpha-Beta Pruning(Artificial Intelligence 6(1975), 293-326)

という論文にこの点についての考察がある
21
メカ女子将棋GitHub repo.
第24回世界コンピュータ将棋選手権出場

プログラム(そこそこの強さ、原始的)
https://github.com/kimrin/WCSC23
現在開発中のNextGenバージョン

(Magic BitBoard搭載、まだ未完成)
https://github.com/kimrin/NextGenMechajyo
22
Magic BitBoard と
#JuliaLang 128bit 整数
まず、bitboardとは、を説明します
Chessでは、64bit変数のそれぞれのbitで、各
squareの駒の有無を表現する
Whites, Blacks, AllPieces, WhiteBishopsなど、用
途に応じて色んなbitboardを作る
将棋は9x9なので、さて、困った。。。(続く)
23
NextGen Mechajyoでは
Stockfish(Chess program)の64bit bitboardをそのまま128bitに拡
張して、下位81bit(=9x9)を使用する
#JuliaLangでは、128bit 整数の演算をサポートしている
(LLVM由来)ので、ロジックそのままに若干修正するだけ
でbitboardを将棋にも導入できます!
#JuliaLangまんせー\(^o^)/
ほかのソフトは32bit x 3とか、64bit+32bitとかやって、C/C++
で頑張って計算しています。。。
24
BitBoard
基本、駒の可能手を、次の関数で計算
する(表引き)
B = F(original_position,piece_kind)
例:B= F(7七,先手歩)

  Bは7六だけbitが立ったBitBoard
25
BitBoard続き
自分の駒のいないマスとANDを取る

つまり自分の駒は取れない
算出したBitBoardについて、各bitの位置を
trailing_zerosなどで求める
すべての1になっているbitを拾い出し、可能手
を生成する(可能手は32bit の整数で表現)
26
Magic BitBoardとは
Sliding Pieces(香車、飛車、角、竜、
馬)などの可能手を高速に求める方
法
なんと、かけ算使って、効きを求め
る!!!(なんだってー!!!)
27
解説しよう
Sliding Piecesの効き(=可能手の行き先)
は、前述の場所と駒種類の関数にはならな
い!
Slidingは自分や相手の駒が有ると止まるの
で、効きはcontextに依存する

(contextとは、効きの途中にある駒たち)
28
例:指し手生成祭り
!
!
!
!
9八の先手飛車は上の後手歩や香を取れない
9七の先手歩があるので、そこで効きが止まる
29
よって、効きを求める関数は
C =
G(original_position,piece_kind,

context)
となる ここで、contextは効きの
状態を駒の有無でbit化した整数
30
Programming Chessの仙人
が考えた斬新な方法とは
contextを高速に求めたい。例えばcontextの長さが10bitで、すべ
てのマスに駒がいる場合、1023という数字を、高速に求めたい
Bishop, Rookのそれぞれで、縦横斜めの連続したbit列を集めてこ
ないといけない
そこで、以下の式でcontextを求めちゃう
uint((((occ & Masks[s+1]) * Magics[s+1])) >>> Shifts[s
+1])
詳しくは次ページ
31
uint((((occ & Masks[s+1]) *
Magics[s+1])) >>> Shifts[s+1])
occが全部の駒のbitboard
Masksは、駒がsの位置に有った場合の、行き
放題の効き
で、それにhashを求めるべくMagicsを掛けると
縦横斜めのbit達が連続した領域に入る♡
で、Shiftsで寄せて、contextのできあがり♡
32
contextが求まれば、

こっちのもの
先ほどの関数Gの表引きを実現するだけ!
飛車と角の二通りがある
馬は角、竜は飛車に、1マスの効きをORしたBitBoardで表現
香車は飛車の前方向マスクを取ったもので表現
!
でも、どうやってMagics計算するの?(真っ当な疑問w)
33
Magicsの求め方♡
希薄な乱数(1のbitが少ないという意味)をひたすら生
成して、条件を満たすMagicsを計算? するw
すいません、ローテクかもしれませぬ
とりあえずNextGen Mechajyoでは10分くらいMacBookPro
でごりごりやると計算できます。serializeしておいて、
実行時にファイルから読み出してます
基本NextGen MechajyoはStockfishの真似しっこです(^_^;)
34
動かしてみよう!
(時間が余ったらね。。。//////)
35
ご清聴ありがとう
ございました きゃぴっ♡
質問はこの場で言っていただくか、

twitter: @kimrin まで!
36
メカ女子将棋
(愛称:メカジョさん)の棋風
ファンシーな指し手w
飛車 角を先に取られる(T_T)
とにかく、成らないw
なぜか相手のマシンがハング・反則をするw
第24回世界コンピュータ将棋選手権

一次予選 22チーム中 19位
棋力は不明だけど、強いと感じさせる手もある
37
将棋盤(棋譜)
9一 8一 7一 6一 5一 4一 3一 2一 1一
9二 8二 7二 6二 5二 4二 3二 2二 1二
9三 8三 7三 6三 5三 4三 3三 2三 1三
9四 8四 7四 6四 5四 4四 3四 2四 1四
9五 8五 7五 6五 5五 4五 3五 2五 1五
9六 8六 7六 6六 5六 4六 3六 2六 1六
9七 8七 7七 6七 5七 4七 3七 2七 1七
9八 8八 7八 6八 5八 4八 3八 2八 1八
9九 8九 7九 6九 5九 4九 3九 2九 1九
38
将棋盤(USI)
9a 8a 7a 6a 5a 4a 3a 2a 1a
9b 8b 7b 6b 5b 4b 3b 2b 1b
9c 8c 7c 6c 5c 4c 3c 2c 1c
9d 8d 7d 6d 5d 4d 3d 2d 1d
9e 8e 7e 6e 5e 4e 3e 2e 1e
9f 8f 7f 6f 5f 4f 3f 2f 1f
9g 8g 7g 6g 5g 4g 3g 2g 1g
9h 8h 7h 6h 5h 4h 3h 2h 1h
9i 8i 7i 6i 5i 4i 3i 2i 1i
39

More Related Content

Viewers also liked

あなたの業務に機械学習を活用する5つのポイント
あなたの業務に機械学習を活用する5つのポイントあなたの業務に機械学習を活用する5つのポイント
あなたの業務に機械学習を活用する5つのポイント
Shohei Hido
 
データ・サイエンティストに学ぶ「分析力」読書メモ
データ・サイエンティストに学ぶ「分析力」読書メモデータ・サイエンティストに学ぶ「分析力」読書メモ
データ・サイエンティストに学ぶ「分析力」読書メモ
Yoshihide Nishio
 
基礎完成
基礎完成基礎完成
基礎完成
osaihou
 
Ehsan parallel accelerator-dec2015
Ehsan parallel accelerator-dec2015Ehsan parallel accelerator-dec2015
Ehsan parallel accelerator-dec2015
Christian Peel
 
Ansibleを使ってローカル開発環境を作ろう ( #PyLadiesTokyo Meetup )
Ansibleを使ってローカル開発環境を作ろう ( #PyLadiesTokyo Meetup ) Ansibleを使ってローカル開発環境を作ろう ( #PyLadiesTokyo Meetup )
Ansibleを使ってローカル開発環境を作ろう ( #PyLadiesTokyo Meetup )
Ai Makabi
 
Rによる統計解析と可視化
Rによる統計解析と可視化Rによる統計解析と可視化
Rによる統計解析と可視化
弘毅 露崎
 
第6章 2つの平均値を比較する - TokyoR #28
第6章 2つの平均値を比較する - TokyoR #28第6章 2つの平均値を比較する - TokyoR #28
第6章 2つの平均値を比較する - TokyoR #28horihorio
 
Data science packages
Data science packagesData science packages
Data science packages
yuta july
 
SVM実践ガイド (A Practical Guide to Support Vector Classification)
SVM実践ガイド (A Practical Guide to Support Vector Classification)SVM実践ガイド (A Practical Guide to Support Vector Classification)
SVM実践ガイド (A Practical Guide to Support Vector Classification)
sleepy_yoshi
 
数学プログラムを Haskell で書くべき 6 の理由
数学プログラムを Haskell で書くべき 6 の理由数学プログラムを Haskell で書くべき 6 の理由
数学プログラムを Haskell で書くべき 6 の理由
Hiromi Ishii
 
Introduction to Kanagawa Ruby Kaigi01 #kana01
Introduction to Kanagawa Ruby Kaigi01 #kana01Introduction to Kanagawa Ruby Kaigi01 #kana01
Introduction to Kanagawa Ruby Kaigi01 #kana01
Aki Ariga
 
非負値行列分解の確率的生成モデルと 多チャネル音源分離への応用 (Generative model in nonnegative matrix facto...
非負値行列分解の確率的生成モデルと多チャネル音源分離への応用 (Generative model in nonnegative matrix facto...非負値行列分解の確率的生成モデルと多チャネル音源分離への応用 (Generative model in nonnegative matrix facto...
非負値行列分解の確率的生成モデルと 多チャネル音源分離への応用 (Generative model in nonnegative matrix facto...
Daichi Kitamura
 
プログラムを高速化する話
プログラムを高速化する話プログラムを高速化する話
プログラムを高速化する話
京大 マイコンクラブ
 
On the benchmark of Chainer
On the benchmark of ChainerOn the benchmark of Chainer
On the benchmark of Chainer
Kenta Oono
 
深層学習ライブラリの環境問題Chainer Meetup2016 07-02
深層学習ライブラリの環境問題Chainer Meetup2016 07-02深層学習ライブラリの環境問題Chainer Meetup2016 07-02
深層学習ライブラリの環境問題Chainer Meetup2016 07-02
Yuta Kashino
 
ヤフー音声認識サービスでのディープラーニングとGPU利用事例
ヤフー音声認識サービスでのディープラーニングとGPU利用事例ヤフー音声認識サービスでのディープラーニングとGPU利用事例
ヤフー音声認識サービスでのディープラーニングとGPU利用事例
Yahoo!デベロッパーネットワーク
 
俺のtensorが全然flowしないのでみんなchainer使おう by DEEPstation
俺のtensorが全然flowしないのでみんなchainer使おう by DEEPstation俺のtensorが全然flowしないのでみんなchainer使おう by DEEPstation
俺のtensorが全然flowしないのでみんなchainer使おう by DEEPstation
Yusuke HIDESHIMA
 

Viewers also liked (20)

あなたの業務に機械学習を活用する5つのポイント
あなたの業務に機械学習を活用する5つのポイントあなたの業務に機械学習を活用する5つのポイント
あなたの業務に機械学習を活用する5つのポイント
 
データ・サイエンティストに学ぶ「分析力」読書メモ
データ・サイエンティストに学ぶ「分析力」読書メモデータ・サイエンティストに学ぶ「分析力」読書メモ
データ・サイエンティストに学ぶ「分析力」読書メモ
 
基礎完成
基礎完成基礎完成
基礎完成
 
Ehsan parallel accelerator-dec2015
Ehsan parallel accelerator-dec2015Ehsan parallel accelerator-dec2015
Ehsan parallel accelerator-dec2015
 
Ansibleを使ってローカル開発環境を作ろう ( #PyLadiesTokyo Meetup )
Ansibleを使ってローカル開発環境を作ろう ( #PyLadiesTokyo Meetup ) Ansibleを使ってローカル開発環境を作ろう ( #PyLadiesTokyo Meetup )
Ansibleを使ってローカル開発環境を作ろう ( #PyLadiesTokyo Meetup )
 
Rによる統計解析と可視化
Rによる統計解析と可視化Rによる統計解析と可視化
Rによる統計解析と可視化
 
第6章 2つの平均値を比較する - TokyoR #28
第6章 2つの平均値を比較する - TokyoR #28第6章 2つの平均値を比較する - TokyoR #28
第6章 2つの平均値を比較する - TokyoR #28
 
Data science packages
Data science packagesData science packages
Data science packages
 
SVM実践ガイド (A Practical Guide to Support Vector Classification)
SVM実践ガイド (A Practical Guide to Support Vector Classification)SVM実践ガイド (A Practical Guide to Support Vector Classification)
SVM実践ガイド (A Practical Guide to Support Vector Classification)
 
数学プログラムを Haskell で書くべき 6 の理由
数学プログラムを Haskell で書くべき 6 の理由数学プログラムを Haskell で書くべき 6 の理由
数学プログラムを Haskell で書くべき 6 の理由
 
Introduction to Kanagawa Ruby Kaigi01 #kana01
Introduction to Kanagawa Ruby Kaigi01 #kana01Introduction to Kanagawa Ruby Kaigi01 #kana01
Introduction to Kanagawa Ruby Kaigi01 #kana01
 
非負値行列分解の確率的生成モデルと 多チャネル音源分離への応用 (Generative model in nonnegative matrix facto...
非負値行列分解の確率的生成モデルと多チャネル音源分離への応用 (Generative model in nonnegative matrix facto...非負値行列分解の確率的生成モデルと多チャネル音源分離への応用 (Generative model in nonnegative matrix facto...
非負値行列分解の確率的生成モデルと 多チャネル音源分離への応用 (Generative model in nonnegative matrix facto...
 
プログラムを高速化する話
プログラムを高速化する話プログラムを高速化する話
プログラムを高速化する話
 
On the benchmark of Chainer
On the benchmark of ChainerOn the benchmark of Chainer
On the benchmark of Chainer
 
MVC 01
MVC 01MVC 01
MVC 01
 
MVC 02
MVC 02MVC 02
MVC 02
 
MVC 03
MVC 03MVC 03
MVC 03
 
深層学習ライブラリの環境問題Chainer Meetup2016 07-02
深層学習ライブラリの環境問題Chainer Meetup2016 07-02深層学習ライブラリの環境問題Chainer Meetup2016 07-02
深層学習ライブラリの環境問題Chainer Meetup2016 07-02
 
ヤフー音声認識サービスでのディープラーニングとGPU利用事例
ヤフー音声認識サービスでのディープラーニングとGPU利用事例ヤフー音声認識サービスでのディープラーニングとGPU利用事例
ヤフー音声認識サービスでのディープラーニングとGPU利用事例
 
俺のtensorが全然flowしないのでみんなchainer使おう by DEEPstation
俺のtensorが全然flowしないのでみんなchainer使おう by DEEPstation俺のtensorが全然flowしないのでみんなchainer使おう by DEEPstation
俺のtensorが全然flowしないのでみんなchainer使おう by DEEPstation
 

Similar to メカ女子将棋Julia tokyo#1

Enjoy handwritten digits recognition AI !!
Enjoy handwritten digits recognition AI !!Enjoy handwritten digits recognition AI !!
Enjoy handwritten digits recognition AI !!
KAIKenzo
 
[CEDEC2018] UE4アニメーションシステム総おさらい
[CEDEC2018] UE4アニメーションシステム総おさらい[CEDEC2018] UE4アニメーションシステム総おさらい
[CEDEC2018] UE4アニメーションシステム総おさらい
エピック・ゲームズ・ジャパン Epic Games Japan
 
関数プログラミング ことはじめ (再)
関数プログラミング ことはじめ (再)関数プログラミング ことはじめ (再)
関数プログラミング ことはじめ (再)
Suguru Hamazaki
 
命令プログラミングから関数プログラミングへ
命令プログラミングから関数プログラミングへ命令プログラミングから関数プログラミングへ
命令プログラミングから関数プログラミングへNaoki Kitora
 
Can A Python Go Beyond The Python
Can A Python Go Beyond The PythonCan A Python Go Beyond The Python
Can A Python Go Beyond The PythonYusuke Muraoka
 
関数プログラミングことはじめ
関数プログラミングことはじめ関数プログラミングことはじめ
関数プログラミングことはじめ
Naoki Kitora
 
C++でのゲームプログラミングをしたときのお話 札幌C++勉強会 #4 〜スタートゲームプログラミング〜
C++でのゲームプログラミングをしたときのお話 札幌C++勉強会 #4 〜スタートゲームプログラミング〜C++でのゲームプログラミングをしたときのお話 札幌C++勉強会 #4 〜スタートゲームプログラミング〜
C++でのゲームプログラミングをしたときのお話 札幌C++勉強会 #4 〜スタートゲームプログラミング〜
勝成 鈴江
 

Similar to メカ女子将棋Julia tokyo#1 (7)

Enjoy handwritten digits recognition AI !!
Enjoy handwritten digits recognition AI !!Enjoy handwritten digits recognition AI !!
Enjoy handwritten digits recognition AI !!
 
[CEDEC2018] UE4アニメーションシステム総おさらい
[CEDEC2018] UE4アニメーションシステム総おさらい[CEDEC2018] UE4アニメーションシステム総おさらい
[CEDEC2018] UE4アニメーションシステム総おさらい
 
関数プログラミング ことはじめ (再)
関数プログラミング ことはじめ (再)関数プログラミング ことはじめ (再)
関数プログラミング ことはじめ (再)
 
命令プログラミングから関数プログラミングへ
命令プログラミングから関数プログラミングへ命令プログラミングから関数プログラミングへ
命令プログラミングから関数プログラミングへ
 
Can A Python Go Beyond The Python
Can A Python Go Beyond The PythonCan A Python Go Beyond The Python
Can A Python Go Beyond The Python
 
関数プログラミングことはじめ
関数プログラミングことはじめ関数プログラミングことはじめ
関数プログラミングことはじめ
 
C++でのゲームプログラミングをしたときのお話 札幌C++勉強会 #4 〜スタートゲームプログラミング〜
C++でのゲームプログラミングをしたときのお話 札幌C++勉強会 #4 〜スタートゲームプログラミング〜C++でのゲームプログラミングをしたときのお話 札幌C++勉強会 #4 〜スタートゲームプログラミング〜
C++でのゲームプログラミングをしたときのお話 札幌C++勉強会 #4 〜スタートゲームプログラミング〜
 

Recently uploaded

ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMMハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
osamut
 
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobodyロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
azuma satoshi
 
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
Yuki Miyazaki
 
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
Osaka University
 
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
sugiuralab
 
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
Osaka University
 
iMacwoSu_Gong_de_barabaranishitaHua_.pptx
iMacwoSu_Gong_de_barabaranishitaHua_.pptxiMacwoSu_Gong_de_barabaranishitaHua_.pptx
iMacwoSu_Gong_de_barabaranishitaHua_.pptx
kitamisetagayaxxx
 
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
嶋 是一 (Yoshikazu SHIMA)
 
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
ARISE analytics
 
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライドHumanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
tazaki1
 

Recently uploaded (10)

ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMMハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
 
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobodyロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
 
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
 
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
 
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
 
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
 
iMacwoSu_Gong_de_barabaranishitaHua_.pptx
iMacwoSu_Gong_de_barabaranishitaHua_.pptxiMacwoSu_Gong_de_barabaranishitaHua_.pptx
iMacwoSu_Gong_de_barabaranishitaHua_.pptx
 
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
 
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
 
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライドHumanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
 

メカ女子将棋Julia tokyo#1