Suche senden
Hochladen
ゲーム開発におけるバックトラック法
•
7 gefällt mir
•
6,528 views
大介 束田
Folgen
Bildung
Melden
Teilen
Melden
Teilen
1 von 40
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
五次方程式はやっぱり解ける #日曜数学会
五次方程式はやっぱり解ける #日曜数学会
Junpei Tsuji
明日使えないすごいビット演算
明日使えないすごいビット演算
京大 マイコンクラブ
「五次方程式が代数的に解けないわけ」第3回プログラマのための数学勉強会 #maths4pg
「五次方程式が代数的に解けないわけ」第3回プログラマのための数学勉強会 #maths4pg
Junpei Tsuji
SSE4.2の文字列処理命令の紹介
SSE4.2の文字列処理命令の紹介
MITSUNARI Shigeo
指数時間アルゴリズムの最先端
指数時間アルゴリズムの最先端
Yoichi Iwata
双対性
双対性
Yoichi Iwata
充足可能性問題のいろいろ
充足可能性問題のいろいろ
Hiroshi Yamashita
謎の言語Forthが謎なので実装した
謎の言語Forthが謎なので実装した
t-sin
Empfohlen
五次方程式はやっぱり解ける #日曜数学会
五次方程式はやっぱり解ける #日曜数学会
Junpei Tsuji
明日使えないすごいビット演算
明日使えないすごいビット演算
京大 マイコンクラブ
「五次方程式が代数的に解けないわけ」第3回プログラマのための数学勉強会 #maths4pg
「五次方程式が代数的に解けないわけ」第3回プログラマのための数学勉強会 #maths4pg
Junpei Tsuji
SSE4.2の文字列処理命令の紹介
SSE4.2の文字列処理命令の紹介
MITSUNARI Shigeo
指数時間アルゴリズムの最先端
指数時間アルゴリズムの最先端
Yoichi Iwata
双対性
双対性
Yoichi Iwata
充足可能性問題のいろいろ
充足可能性問題のいろいろ
Hiroshi Yamashita
謎の言語Forthが謎なので実装した
謎の言語Forthが謎なので実装した
t-sin
ユークリッド最小全域木
ユークリッド最小全域木
理玖 川崎
katagaitai workshop #7 crypto ナップサック暗号と低密度攻撃
katagaitai workshop #7 crypto ナップサック暗号と低密度攻撃
trmr
RSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjp
sonickun
Hokkaido.cap#1 Wiresharkの使い方(基礎編)
Hokkaido.cap#1 Wiresharkの使い方(基礎編)
Panda Yamaki
高速な倍精度指数関数expの実装
高速な倍精度指数関数expの実装
MITSUNARI Shigeo
冬のLock free祭り safe
冬のLock free祭り safe
Kumazaki Hiroki
数式を綺麗にプログラミングするコツ #spro2013
数式を綺麗にプログラミングするコツ #spro2013
Shuyo Nakatani
Rolling Hashを殺す話
Rolling Hashを殺す話
Nagisa Eto
日曜数学者のための面白いと思ってもらえるプレゼン術
日曜数学者のための面白いと思ってもらえるプレゼン術
Junpei Tsuji
最適腕識別
最適腕識別
貴之 八木
数独のアルゴリズムを考える ― 各種法の改善と高速化
数独のアルゴリズムを考える ― 各種法の改善と高速化
atmarksharp
強化学習その4
強化学習その4
nishio
何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門
masayoshi takahashi
Nazoki
Nazoki
Ken Ogura
強化学習その2
強化学習その2
nishio
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
Takuya Akiba
グラフネットワーク〜フロー&カット〜
グラフネットワーク〜フロー&カット〜
HCPC: 北海道大学競技プログラミングサークル
Deflate
Deflate
7shi
5分でわかるベイズ確率
5分でわかるベイズ確率
hoxo_m
最大流 (max flow)
最大流 (max flow)
HCPC: 北海道大学競技プログラミングサークル
第1回GameDesign-遊びの体験と文化
第1回GameDesign-遊びの体験と文化
大介 束田
WWDC 2015 情報共有会
WWDC 2015 情報共有会
大介 束田
Weitere ähnliche Inhalte
Was ist angesagt?
ユークリッド最小全域木
ユークリッド最小全域木
理玖 川崎
katagaitai workshop #7 crypto ナップサック暗号と低密度攻撃
katagaitai workshop #7 crypto ナップサック暗号と低密度攻撃
trmr
RSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjp
sonickun
Hokkaido.cap#1 Wiresharkの使い方(基礎編)
Hokkaido.cap#1 Wiresharkの使い方(基礎編)
Panda Yamaki
高速な倍精度指数関数expの実装
高速な倍精度指数関数expの実装
MITSUNARI Shigeo
冬のLock free祭り safe
冬のLock free祭り safe
Kumazaki Hiroki
数式を綺麗にプログラミングするコツ #spro2013
数式を綺麗にプログラミングするコツ #spro2013
Shuyo Nakatani
Rolling Hashを殺す話
Rolling Hashを殺す話
Nagisa Eto
日曜数学者のための面白いと思ってもらえるプレゼン術
日曜数学者のための面白いと思ってもらえるプレゼン術
Junpei Tsuji
最適腕識別
最適腕識別
貴之 八木
数独のアルゴリズムを考える ― 各種法の改善と高速化
数独のアルゴリズムを考える ― 各種法の改善と高速化
atmarksharp
強化学習その4
強化学習その4
nishio
何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門
masayoshi takahashi
Nazoki
Nazoki
Ken Ogura
強化学習その2
強化学習その2
nishio
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
Takuya Akiba
グラフネットワーク〜フロー&カット〜
グラフネットワーク〜フロー&カット〜
HCPC: 北海道大学競技プログラミングサークル
Deflate
Deflate
7shi
5分でわかるベイズ確率
5分でわかるベイズ確率
hoxo_m
最大流 (max flow)
最大流 (max flow)
HCPC: 北海道大学競技プログラミングサークル
Was ist angesagt?
(20)
ユークリッド最小全域木
ユークリッド最小全域木
katagaitai workshop #7 crypto ナップサック暗号と低密度攻撃
katagaitai workshop #7 crypto ナップサック暗号と低密度攻撃
RSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjp
Hokkaido.cap#1 Wiresharkの使い方(基礎編)
Hokkaido.cap#1 Wiresharkの使い方(基礎編)
高速な倍精度指数関数expの実装
高速な倍精度指数関数expの実装
冬のLock free祭り safe
冬のLock free祭り safe
数式を綺麗にプログラミングするコツ #spro2013
数式を綺麗にプログラミングするコツ #spro2013
Rolling Hashを殺す話
Rolling Hashを殺す話
日曜数学者のための面白いと思ってもらえるプレゼン術
日曜数学者のための面白いと思ってもらえるプレゼン術
最適腕識別
最適腕識別
数独のアルゴリズムを考える ― 各種法の改善と高速化
数独のアルゴリズムを考える ― 各種法の改善と高速化
強化学習その4
強化学習その4
何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門
Nazoki
Nazoki
強化学習その2
強化学習その2
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
グラフネットワーク〜フロー&カット〜
グラフネットワーク〜フロー&カット〜
Deflate
Deflate
5分でわかるベイズ確率
5分でわかるベイズ確率
最大流 (max flow)
最大流 (max flow)
Mehr von 大介 束田
第1回GameDesign-遊びの体験と文化
第1回GameDesign-遊びの体験と文化
大介 束田
WWDC 2015 情報共有会
WWDC 2015 情報共有会
大介 束田
Unity testtool
Unity testtool
大介 束田
20141218 お・と・なのlt大会
20141218 お・と・なのlt大会
大介 束田
iOS 8/Swift エンジニア勉強会@ヤフー
iOS 8/Swift エンジニア勉強会@ヤフー
大介 束田
メンボフェスタ
メンボフェスタ
大介 束田
20130119 さいたま勉強会
20130119 さいたま勉強会
大介 束田
20130427 さいたま勉強会
20130427 さいたま勉強会
大介 束田
Mehr von 大介 束田
(8)
第1回GameDesign-遊びの体験と文化
第1回GameDesign-遊びの体験と文化
WWDC 2015 情報共有会
WWDC 2015 情報共有会
Unity testtool
Unity testtool
20141218 お・と・なのlt大会
20141218 お・と・なのlt大会
iOS 8/Swift エンジニア勉強会@ヤフー
iOS 8/Swift エンジニア勉強会@ヤフー
メンボフェスタ
メンボフェスタ
20130119 さいたま勉強会
20130119 さいたま勉強会
20130427 さいたま勉強会
20130427 さいたま勉強会
Kürzlich hochgeladen
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024
koheioishi1
UniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScript
yuitoakatsukijp
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
Takayuki Itoh
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ssusere0a682
TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentation
YukiTerazawa
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
Tokyo Institute of Technology
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ssusere0a682
Kürzlich hochgeladen
(7)
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024
UniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScript
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentation
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム開発におけるバックトラック法
1.
ゲーム開発におけるバックトラック法 2015年 1月 30日
第一回数学勉強会
2.
はじめに
3.
はじめに 自分が一番イラッ☆とくるのが、そもそも論。 「そもそもダメじゃね?」「いや、そうゆうの最初 から調べるでしょ??」を座標の中心で叫んでおり ます。
4.
はじめに そんな自分のコーディングスタイルですが、「まず 何を除外するべきか?」これが体にしみ込んでいま した。 そこからプログラミングを掘り下げた時に、面白い アルゴリズムに出会いました。
5.
バックトラック法
6.
はじめに 「そもそもダメならハイ次ー」 「そこから始るならダメだねー」 って感じです。 なので、実は「バックトラック法だー!」って仰々しく 語る事ではないのですが、アルゴリズムとして成立して いるものなのであれば、しっかり身に付けておこうと考 えた次第です。
7.
はじめに しかしながら、自分の中のルール決めだけで終わる ような事をせず、本来どういったものであるかの認 識が必要だと考えました。 今回はその「認識」の部分をお話ししたいと思いま す。
8.
Unityのおはなし
9.
Unityのお話 本日は「Unity3D」という、ゲーム開発エンジンを使 用してプレゼンテーションしてみたいと思います。 開発言語はC#です。 基本オブジェクト指向ですが、GUIを使用して誰でも 3Dゲームの開発が出来る、とても便利なミドルウェ アです。
10.
Unityのお話 デバックコンソールがみずらいので、一部実行ファイ ルとして検証用に使用します。 具体的な動作としては、クラス単位でコーディング →オブジェクトに配置→実行 となります。
11.
バックトラック法とは
12.
バックトラック法とは バックトラッキング(backtracking)は、制約充足問 題の解を探索する戦略の一種で、力まかせ探索を改 良したもの。「バックトラック」という用語は、ア メリカの数学者デリック・ヘンリー・リーマー (Derrick Henry Lehmer)が1950年代に作った造語で ある。
13.
バックトラック法とは 制約充足問題は完全な解の存在する問題であり、要 素の順序は問題とはならない。一連の変数が与えら れ、指定された制約を満足するようにそれらに値を 設定しなければならない。バックトラッキングでは、 変数の値の組み合わせを試行錯誤して解を探す。バッ クトラッキングの効果は部分的組み合わせを排除す る実装にあり、それによって実行時間を短縮する。
14.
バックトラックアルゴリズム
15.
探査の木 木やグラフを探索するためのアルゴリズムである。 アルゴリズムは根から(グラフの場合はどのノードを 根にするか決定する)始まり、バックトラックするま で可能な限り探索を行う。「縦型探索」とも呼ばれ る
16.
NQueen チェスのクイーンの動作をベースに、 N個のクイーンを置いて、どのクイー ンからも、一手で詰められない場所 に配置をさせるアルゴリズム その配置パターンがいくつあるかも 検出可能
17.
基本思想
18.
基本思想 今回は、条件に合わせて何かアクションを起こす事 を前提に、その条件の効率化を図りたいと思います。 あまり大きなコードになると余計な説明で混乱して しまうので、完結にいきたいと思います!
19.
世界のナベアツ算
20.
Nの倍数でアホになるアレですw
21.
基本ロジック 提示された整数を3で割ったものから、同じく3で 割り、小数点以下を切り捨てた数字をひいて、0で あればTrue。 そもそも3で0にならない数字は演算終了。
22.
例題:世界のナベアツ算 40までかぞえます 3の倍数でアホになります
23.
サンプルコード( Qiita ) Nabeatsu.cs参照 判定用プロパティ
m_nabeatsu (初期値 floart 0) カウント用プロパティ m_maxCount (初期値 int 40)
24.
サンプルコード( Qiita ) 14行目で3で割った浮動小数点型の値から、3で割っ て、小数点以下を切り捨てた値を引きます。 あまりがなく、ちょうど0になればTrueが返ってき て、「Aho」がコンソールに表示されます。
25.
例題:世界のナベアツ算2 40までかぞえます 3の倍数でアホになります 3がつく数字はアホアホになります 3がついて3の倍数もアホアホになります
26.
サンプルコード( Qiita ) Nabeatsu_SanTsuku.cs参照 判定用プロパティ
m_nabeatsu (初期値 floart 0) カウント用プロパティ m_maxCount (初期値 int 40)
27.
サンプルコード( Qiita ) 14行目で整数の中に3が含まれているか、C#の IndexOfメソッドで確認します。ここで一度、検索の ために整数から、String型に変換を行います。 Trueが返ってきたらその数字は「AhoAho」として出 力されます。
28.
サンプルコード( Qiita ) 15行目で3で割った浮動小数点型の値から、3で割っ て、小数点以下を切り捨てた値を引きます。 あまりがなく、ちょうど0になればTrueが返ってき て、「Aho」がコンソールに表示されます。
29.
…これらをふまえて
30.
FizzBuzz式
31.
FizzBuzz式とは? 入社試験とかで(…コイツ本当にプログラマーかぁ …?)と、いらぬ疑いをかけられた時に試されるプロ グラミング 普通に書ける人達は、どこまで効率よく書かれてい るかを議論する良い問題 基本ナベアツ算です(笑)
32.
FizzBuzz式とは そもそも3の倍数、5の倍数でなければ次の数字 ひとつの数字で、3の倍数であるか?5の倍数であ るか?3と5の倍数であるか?を全て調べる必要は 無く、そもそも3でも5でもどちらにも倍数として 当てはまらなければ、次の数字と言ったロジック。
33.
FizzBuzz式 40までかぞえます 3の倍数ではFizzといいます 5の倍数ではBuzzといいます 3と5の倍数ではFizzBuzzといいます
34.
サンプルコード( Qiita ) FizzBuzz.cs参照 判定用プロパティ
m_count (初期値 floart 0) カウント用プロパティ m_maxCount (初期値 int 40)
35.
サンプルコード( Qiita ) 14行目で、そもそも3の倍数でも5の倍数でもない 数字の演算を終了させます。 そこから、3の倍数の処理、5の倍数の処理、3の 倍数で、5の倍数も含む数字の処理を行ないます。
36.
実演
37.
バックトラック法の使い方
38.
NQueen 本日はこちらで解説したかったのですが、時間が足 りないのでまたの機会に。 ちなみにこれが出来ると、キャンディークラッシュ のような3マッチパズルゲームでの駒の配置が、自動 でコントロールできる。( ←これに関連づけて話した かった…orz)
39.
その他の使い方 探索などの振る舞いが得意 ダンジョンのルート検索にとても有用 ノベルゲームのデバック
40.
ご清聴 有り難うございました!
Jetzt herunterladen