Submit Search
Upload
ランク6の俺がパズドラについて語る
•
Download as PPTX, PDF
•
19 likes
•
24,498 views
tosaka 2
Follow
comb meet up!でLTしたスライド
Read less
Read more
Software
Report
Share
Report
Share
1 of 30
Download now
Recommended
画像認識の初歩、SIFT,SURF特徴量
画像認識の初歩、SIFT,SURF特徴量
takaya imai
メタプログラミングって何だろう
メタプログラミングって何だろう
Kota Mizushima
ゲーム木探索技術とコンピュータ将棋への応用
ゲーム木探索技術とコンピュータ将棋への応用
Shogo Takeuchi
シェーダだけで世界を創る!three.jsによるレイマーチング
シェーダだけで世界を創る!three.jsによるレイマーチング
Sho Hosoda
深層学習による非滑らかな関数の推定
深層学習による非滑らかな関数の推定
Masaaki Imaizumi
パターン認識と機械学習入門
パターン認識と機械学習入門
Momoko Hayamizu
新入社員のための大規模ゲーム開発入門 サーバサイド編
新入社員のための大規模ゲーム開発入門 サーバサイド編
infinite_loop
UE4ディープラーニングってやつでなんとかして!環境構築編(Python3+TensorFlow)
UE4ディープラーニングってやつでなんとかして!環境構築編(Python3+TensorFlow)
エピック・ゲームズ・ジャパン Epic Games Japan
Recommended
画像認識の初歩、SIFT,SURF特徴量
画像認識の初歩、SIFT,SURF特徴量
takaya imai
メタプログラミングって何だろう
メタプログラミングって何だろう
Kota Mizushima
ゲーム木探索技術とコンピュータ将棋への応用
ゲーム木探索技術とコンピュータ将棋への応用
Shogo Takeuchi
シェーダだけで世界を創る!three.jsによるレイマーチング
シェーダだけで世界を創る!three.jsによるレイマーチング
Sho Hosoda
深層学習による非滑らかな関数の推定
深層学習による非滑らかな関数の推定
Masaaki Imaizumi
パターン認識と機械学習入門
パターン認識と機械学習入門
Momoko Hayamizu
新入社員のための大規模ゲーム開発入門 サーバサイド編
新入社員のための大規模ゲーム開発入門 サーバサイド編
infinite_loop
UE4ディープラーニングってやつでなんとかして!環境構築編(Python3+TensorFlow)
UE4ディープラーニングってやつでなんとかして!環境構築編(Python3+TensorFlow)
エピック・ゲームズ・ジャパン Epic Games Japan
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
モノビット エンジン
Sliced Wasserstein距離と生成モデル
Sliced Wasserstein距離と生成モデル
ohken
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
Norishige Fukushima
TensorFlowをもう少し詳しく入門
TensorFlowをもう少し詳しく入門
tak9029
[DL輪読会]Wasserstein GAN/Towards Principled Methods for Training Generative Adv...
[DL輪読会]Wasserstein GAN/Towards Principled Methods for Training Generative Adv...
Deep Learning JP
「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料
「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料
Ken'ichi Matsui
劣モジュラ最適化と機械学習1章
劣モジュラ最適化と機械学習1章
Hakky St
CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編
CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編
Fixstars Corporation
機械学習モデルの判断根拠の説明(Ver.2)
機械学習モデルの判断根拠の説明(Ver.2)
Satoshi Hara
人工知能技術を用いた各医学画像処理の基礎 (2022/09/09)
人工知能技術を用いた各医学画像処理の基礎 (2022/09/09)
Yutaka KATAYAMA
カスタムSIで使ってみよう ~ OpenAI Gym を使った強化学習
カスタムSIで使ってみよう ~ OpenAI Gym を使った強化学習
Hori Tasuku
Kaggleのテクニック
Kaggleのテクニック
Yasunori Ozaki
言語と画像の表現学習
言語と画像の表現学習
Yuki Noguchi
画像処理の高性能計算
画像処理の高性能計算
Norishige Fukushima
SSII2021 [TS1] Visual SLAM ~カメラ幾何の基礎から最近の技術動向まで~
SSII2021 [TS1] Visual SLAM ~カメラ幾何の基礎から最近の技術動向まで~
SSII
実機で動かす深層強化学習(画像なし)
実機で動かす深層強化学習(画像なし)
Deep Learning Lab(ディープラーニング・ラボ)
オススメの標準・準標準パッケージ20選
オススメの標準・準標準パッケージ20選
Takuya Ueda
【TECH×GAME COLLEGE#32】ゼロからリアルタイムサーバーを作るまで
【TECH×GAME COLLEGE#32】ゼロからリアルタイムサーバーを作るまで
techgamecollege
RustによるGPUプログラミング環境
RustによるGPUプログラミング環境
KiyotomoHiroyasu
実社会・実環境におけるロボットの機械学習 ver. 2
実社会・実環境におけるロボットの機械学習 ver. 2
Kuniyuki Takahashi
本当にあった怖い話 ~大学生はプログラミングをしてはいけない~
本当にあった怖い話 ~大学生はプログラミングをしてはいけない~
happo31
アルゴリズムのイメージを擬人化する
アルゴリズムのイメージを擬人化する
AtCoder Inc.
More Related Content
What's hot
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
モノビット エンジン
Sliced Wasserstein距離と生成モデル
Sliced Wasserstein距離と生成モデル
ohken
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
Norishige Fukushima
TensorFlowをもう少し詳しく入門
TensorFlowをもう少し詳しく入門
tak9029
[DL輪読会]Wasserstein GAN/Towards Principled Methods for Training Generative Adv...
[DL輪読会]Wasserstein GAN/Towards Principled Methods for Training Generative Adv...
Deep Learning JP
「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料
「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料
Ken'ichi Matsui
劣モジュラ最適化と機械学習1章
劣モジュラ最適化と機械学習1章
Hakky St
CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編
CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編
Fixstars Corporation
機械学習モデルの判断根拠の説明(Ver.2)
機械学習モデルの判断根拠の説明(Ver.2)
Satoshi Hara
人工知能技術を用いた各医学画像処理の基礎 (2022/09/09)
人工知能技術を用いた各医学画像処理の基礎 (2022/09/09)
Yutaka KATAYAMA
カスタムSIで使ってみよう ~ OpenAI Gym を使った強化学習
カスタムSIで使ってみよう ~ OpenAI Gym を使った強化学習
Hori Tasuku
Kaggleのテクニック
Kaggleのテクニック
Yasunori Ozaki
言語と画像の表現学習
言語と画像の表現学習
Yuki Noguchi
画像処理の高性能計算
画像処理の高性能計算
Norishige Fukushima
SSII2021 [TS1] Visual SLAM ~カメラ幾何の基礎から最近の技術動向まで~
SSII2021 [TS1] Visual SLAM ~カメラ幾何の基礎から最近の技術動向まで~
SSII
実機で動かす深層強化学習(画像なし)
実機で動かす深層強化学習(画像なし)
Deep Learning Lab(ディープラーニング・ラボ)
オススメの標準・準標準パッケージ20選
オススメの標準・準標準パッケージ20選
Takuya Ueda
【TECH×GAME COLLEGE#32】ゼロからリアルタイムサーバーを作るまで
【TECH×GAME COLLEGE#32】ゼロからリアルタイムサーバーを作るまで
techgamecollege
RustによるGPUプログラミング環境
RustによるGPUプログラミング環境
KiyotomoHiroyasu
実社会・実環境におけるロボットの機械学習 ver. 2
実社会・実環境におけるロボットの機械学習 ver. 2
Kuniyuki Takahashi
What's hot
(20)
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
Sliced Wasserstein距離と生成モデル
Sliced Wasserstein距離と生成モデル
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
TensorFlowをもう少し詳しく入門
TensorFlowをもう少し詳しく入門
[DL輪読会]Wasserstein GAN/Towards Principled Methods for Training Generative Adv...
[DL輪読会]Wasserstein GAN/Towards Principled Methods for Training Generative Adv...
「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料
「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料
劣モジュラ最適化と機械学習1章
劣モジュラ最適化と機械学習1章
CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編
CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編
機械学習モデルの判断根拠の説明(Ver.2)
機械学習モデルの判断根拠の説明(Ver.2)
人工知能技術を用いた各医学画像処理の基礎 (2022/09/09)
人工知能技術を用いた各医学画像処理の基礎 (2022/09/09)
カスタムSIで使ってみよう ~ OpenAI Gym を使った強化学習
カスタムSIで使ってみよう ~ OpenAI Gym を使った強化学習
Kaggleのテクニック
Kaggleのテクニック
言語と画像の表現学習
言語と画像の表現学習
画像処理の高性能計算
画像処理の高性能計算
SSII2021 [TS1] Visual SLAM ~カメラ幾何の基礎から最近の技術動向まで~
SSII2021 [TS1] Visual SLAM ~カメラ幾何の基礎から最近の技術動向まで~
実機で動かす深層強化学習(画像なし)
実機で動かす深層強化学習(画像なし)
オススメの標準・準標準パッケージ20選
オススメの標準・準標準パッケージ20選
【TECH×GAME COLLEGE#32】ゼロからリアルタイムサーバーを作るまで
【TECH×GAME COLLEGE#32】ゼロからリアルタイムサーバーを作るまで
RustによるGPUプログラミング環境
RustによるGPUプログラミング環境
実社会・実環境におけるロボットの機械学習 ver. 2
実社会・実環境におけるロボットの機械学習 ver. 2
Viewers also liked
本当にあった怖い話 ~大学生はプログラミングをしてはいけない~
本当にあった怖い話 ~大学生はプログラミングをしてはいけない~
happo31
アルゴリズムのイメージを擬人化する
アルゴリズムのイメージを擬人化する
AtCoder Inc.
C#でこなすexcel課題
C#でこなすexcel課題
tosaka 2
ぷよぷよAIの新しい探索法
ぷよぷよAIの新しい探索法
Takaya Doki
競技プログラミングのためのC++入門
競技プログラミングのためのC++入門
natrium11321
競技プログラミング入門
競技プログラミング入門
Naohiro Kurihara
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
Takuya Akiba
AtCoderに毎回参加したくなる仕組み
AtCoderに毎回参加したくなる仕組み
AtCoder Inc.
プログラミングコンテストでのデータ構造
プログラミングコンテストでのデータ構造
Takuya Akiba
とあるアプリの設計進化
とあるアプリの設計進化
yone64
超Linq入門 実践編
超Linq入門 実践編
yone64
超LINQ入門
超LINQ入門
yone64
ぷよぷよ AI: mayah(AI) の実装
ぷよぷよ AI: mayah(AI) の実装
mayahjp
いろいろな問題の解説
いろいろな問題の解説
Masaki Hara
ご静聴ありがとうございました
ご静聴ありがとうございました
Masaki Hara
Coqでsprintf
Coqでsprintf
Masaki Hara
opencocon を使って RaspberryPi で艦これ
opencocon を使って RaspberryPi で艦これ
Kenichiro MATOHARA
MUJINプログラミングチャレンジ2016 解説
MUJINプログラミングチャレンジ2016 解説
AtCoder Inc.
Coqの公理
Coqの公理
Masaki Hara
Chokudai search
Chokudai search
AtCoder Inc.
Viewers also liked
(20)
本当にあった怖い話 ~大学生はプログラミングをしてはいけない~
本当にあった怖い話 ~大学生はプログラミングをしてはいけない~
アルゴリズムのイメージを擬人化する
アルゴリズムのイメージを擬人化する
C#でこなすexcel課題
C#でこなすexcel課題
ぷよぷよAIの新しい探索法
ぷよぷよAIの新しい探索法
競技プログラミングのためのC++入門
競技プログラミングのためのC++入門
競技プログラミング入門
競技プログラミング入門
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
AtCoderに毎回参加したくなる仕組み
AtCoderに毎回参加したくなる仕組み
プログラミングコンテストでのデータ構造
プログラミングコンテストでのデータ構造
とあるアプリの設計進化
とあるアプリの設計進化
超Linq入門 実践編
超Linq入門 実践編
超LINQ入門
超LINQ入門
ぷよぷよ AI: mayah(AI) の実装
ぷよぷよ AI: mayah(AI) の実装
いろいろな問題の解説
いろいろな問題の解説
ご静聴ありがとうございました
ご静聴ありがとうございました
Coqでsprintf
Coqでsprintf
opencocon を使って RaspberryPi で艦これ
opencocon を使って RaspberryPi で艦これ
MUJINプログラミングチャレンジ2016 解説
MUJINプログラミングチャレンジ2016 解説
Coqの公理
Coqの公理
Chokudai search
Chokudai search
ランク6の俺がパズドラについて語る
1.
ランク6の俺がパズドラ について語る
2.
お詫びと訂正 ランク7になりました
3.
ランク6の俺がパズドラ について語る
4.
ランク7の俺がパズドラ について語る
5.
自己紹介 これが私 齋藤主裕(さいとうかずひろ)
高校2年! 渋谷教区学園渋谷渋谷中学高等学校 コンピューター部部長 (3年目) Tiwtter: @tnkt37 主催者の手伝いの手伝いくらい 本当はXamarinの話したかった セキュキャンでるよ! SuperCon出るよ
6.
パズドラとは パズル アンド
ドラゴンズ 巷で流行ってるゲーム 今は以前ほどじゃないイメージけど、周り見渡すとやってる人結構居る どういうゲームなんですか? ガチャ モンスター育成 パズル(ダンジョン攻略) とはいえ・・・ ランク7の初心者なのであまり知りません
7.
ランク7ではパズドラに ついて語れなかった しってた
8.
パズドラのルート解析 アルゴリズム タイトルは釣り!
9.
概要 渋谷教育学園には自調自考論文とかいう卒業論文みたいなものがある まともに遊んだこともないくせにテーマが決まらなかったので仕方なく パズドラのルート解析アルゴリズムついての研究を行った
今回はその論文の順序通りに説明を行う スライドには色々書いてあるけど口頭ではほとんど触れません 時間無い! どこかにアップロードするので後で読んで
10.
パズドラの「パズル」 盤面に 5
× 6 ドロップが並んでいる ドロップには6種類(属性)がある
11.
パズドラの「パズル」 盤面に 5
× 6 ドロップが並んでいる ドロップには6種類(属性)がある 一つのドロップを選んで8方向に動かせる
12.
パズドラの「パズル」 盤面に 5
× 6 ドロップが並んでいる ドロップには6種類(属性)がある 一つのドロップを選んで8方向に動かせる ドロップを移動させると移動前のドロップと入れ替わる
13.
パズドラの「パズル」 盤面に 5
× 6 ドロップが並んでいる ドロップには6種類(属性)がある 一つのドロップを選んで8方向に動かせる ドロップを移動させると移動前のドロップと入れ替わる 選んだドロップは連続で動かせる
14.
パズドラの「パズル」 盤面に 5
× 6 ドロップが並んでいる ドロップには6種類(属性)がある 一つのドロップを選んで8方向に動かせる ドロップを移動させると移動前のドロップと入れ替わる 選んだドロップは連続で動かせる 縦または横連続に3つ以上揃えるとコンボになる ↓コンボにならない例↓
15.
パズドラの「パズル」 盤面に 5
× 6 ドロップが並んでいる ドロップには6種類(属性)がある 一つのドロップを選んで8方向に動かせる ドロップを移動させると移動前のドロップと入れ替わる 選んだドロップは連続で動かせる 縦または横連続に3つ以上揃えるとコンボになる このコンボをたくさん作りたい!
16.
研究の目的 パズドラの「パズル」でコンボをたくさん 作る事ができるルートを見つけ出すアルゴ リズム(を実装したプログラム)を作る! 実用性を考え、実行時間は1秒程度
17.
実装言語 基本C++ たまにC#
並列処理 Parallel.For 計測 超乱雑コード ( Let’s Repeat Yourself! ) グラフ出力 OxyPlot 画像生成ツール 古き良きGDI+ (・ω<)
18.
先行研究の分析 ちゃんとした「研究」は無い Google
PlayやApp Storeに同じことをやっているアプリはある 当然解説なんて無い!ソースも公開してない! 平均8~8.9コンボ(自称) 多分落ちコンを含んだ数値 実行時間は1秒程度 GPGPUでやってる動画はあったけど今回は参考にならない 結論:参考にならない! 1から考えましょう
19.
パズルの実装 解析するにはまずパズルそのものを実装しなければならない 解析アルゴリズムの中で何度も呼び出される部分になるので速度が重要
と言いつつ富豪的に組みました 論文では字数稼ぎのためにドロップを数値で扱うとか盤面が2次元配列とか押 し下げ処理が動的計画法とか色々言ってるけど特筆することはあまりない コンボ処理だけは少し特殊なので触れるよ
20.
パズルの実装(コンボ処理) このパターンが1コンボとして判定される 同じ属性でコンボが隣接している状態
これが組みづらかった
21.
パズルの実装(コンボ処理) Union-Find使った グループを扱うデータ構造
以下の操作が行える グループAがグループBに属しているか グループAとグループBを一つのグループにまとめる はやい(小並感) これで2回の走査でコンボ処理が行える 普通にboolの二次元配列と一回の走査で出来そう(後から気付いた) 書きなおすの面倒なので実装してない
22.
ルートを保持するデータ構造 二つのlong long
(64bit整数型)に突っ込んでく 8方向の移動を0~7で表せば3bitで表現可能 追加の際は3つシフトして新しいのと論理和 ルート長42 までいける 大きさ(すでに入っているルート長)をメモリを使わずO(1)で取得可能 初期状態を1にしてMSBをとる 追加、削除がO(1) コピーもO(1) 大事
23.
解析アルゴリズム(全探索) ※今までは8方向で出来るように組んでたけどここから上下左右の4方向に制限 します 実際にプレイしてみると斜めに移動させるの結構大変
4方向に移動させるパターンを繰り返すと4^n 行って帰ってくるのは無駄なので3方向に制限しても3^n さらに全部のドロップの移動を試すと30倍 ルート長40で30×3^40 = 364729963771707864030通り 地球爆発! 全探索で全て解決するほど世の中甘く無い
24.
解析アルゴリズム(山登り法もどき) 1. 「今の状態」からちょうどLターン分動かした移動を全パターン見る 2. その中から最も評価値の高い移動を選ぶ
今回の評価はコンボ数とリーチ数(落ちコン狙い) 3. その移動の一番最初の移動方向を「今の状態」に追加する 4. 決まった長さになるまで繰り返す 時間かけてそれなりに色々工夫した 5コンボ~7コンボ 微妙・・・
25.
解析アルゴリズム(ビームサーチ) メタヒューリスティクスアルゴリズム! だいたい幅優先探索 1.
今の状態の近傍を探索する 今回は数回移動したルートのパターン 2. 探索した近傍から評価値が高い順にk個取り次の状態にする 3. 決まった長さになるまで繰り返す 最初のコードは電車の中で1時間弱で実装 7コンボ~9コンボ ぅゎビームサーチっょぃ
26.
解析アルゴリズム(ビームサーチ) 色々なパラメータで実行して計測し、最適化 並列処理して計測した結果・・・
平均コンボ数 7.8 コンボ 落ちコン含むと 9.2 コンボ!!! 既存ツール超! ※平均実行時間 0.98秒 ※もちろんスペックによるハンデは 大きいが、実行時間は簡単に調整で き、多少実行時間を短くしてもコン ボ数はそれほど低下しないことが先 の計測でわかっている
27.
結論と得られた経験 パズドラのルート解析アルゴリズムにはビームサーチが有効 途中色々と工夫をしたが
ほとんど無意味または逆効果で 普通に組んだ方が良い結果が得られることが多く 人生の厳しさを知った
28.
ソースコード もちろんオープンソース! https://github.com/tnkt37/PuzzDraSolver
評価関数はカスタマイズ出来るようになってるよ! 研究用コードなので(?)LGPLになってます そのうち更に最適化したやつをMITで上げたいがいつになることやら…
29.
最後に よく分からなくて辛くなることもあるが アルゴリズムは楽しい!
30.
ご清聴 ありがとうございました ランク7の俺がパズドラについて語れなかったので パズドラのルート解析アルゴリズムの話をした
Download now