Enviar búsqueda
Cargar
ゲーム開発におけるバックトラック法
•
7 recomendaciones
•
6,533 vistas
大介 束田
Seguir
Educación
Denunciar
Compartir
Denunciar
Compartir
1 de 40
Descargar ahora
Descargar para leer sin conexión
Recomendados
指数時間アルゴリズム入門
指数時間アルゴリズム入門
Yoichi Iwata
圏論は、随伴が全て
圏論は、随伴が全て
ohmori
ウェーブレット木の世界
ウェーブレット木の世界
Preferred Networks
SAT/SMTソルバの仕組み
SAT/SMTソルバの仕組み
Masahiro Sakai
明日使えないすごいビット演算
明日使えないすごいビット演算
京大 マイコンクラブ
様々な全域木問題
様々な全域木問題
tmaehara
プログラムを高速化する話
プログラムを高速化する話
京大 マイコンクラブ
AtCoder Regular Contest 036 解説
AtCoder Regular Contest 036 解説
AtCoder Inc.
Recomendados
指数時間アルゴリズム入門
指数時間アルゴリズム入門
Yoichi Iwata
圏論は、随伴が全て
圏論は、随伴が全て
ohmori
ウェーブレット木の世界
ウェーブレット木の世界
Preferred Networks
SAT/SMTソルバの仕組み
SAT/SMTソルバの仕組み
Masahiro Sakai
明日使えないすごいビット演算
明日使えないすごいビット演算
京大 マイコンクラブ
様々な全域木問題
様々な全域木問題
tmaehara
プログラムを高速化する話
プログラムを高速化する話
京大 マイコンクラブ
AtCoder Regular Contest 036 解説
AtCoder Regular Contest 036 解説
AtCoder Inc.
直交領域探索
直交領域探索
okuraofvegetable
Golangで並行シミュレーテッドアニーリング
Golangで並行シミュレーテッドアニーリング
tsuji daishiro
Chokudai search
Chokudai search
AtCoder Inc.
大規模グラフアルゴリズムの最先端
大規模グラフアルゴリズムの最先端
Takuya Akiba
暗号技術の実装と数学
暗号技術の実装と数学
MITSUNARI Shigeo
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
Takuya Akiba
不遇の標準ライブラリ - valarray
不遇の標準ライブラリ - valarray
Ryosuke839
プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法
Takuya Akiba
競技プログラミングのためのC++入門
競技プログラミングのためのC++入門
natrium11321
勉強か?趣味か?人生か?―プログラミングコンテストとは
勉強か?趣味か?人生か?―プログラミングコンテストとは
Takuya Akiba
Rolling Hashを殺す話
Rolling Hashを殺す話
Nagisa Eto
AVX-512(フォーマット)詳解
AVX-512(フォーマット)詳解
MITSUNARI Shigeo
圏論とHaskellは仲良し
圏論とHaskellは仲良し
ohmori
自動定理証明の紹介
自動定理証明の紹介
Masahiro Sakai
平面グラフと交通ネットワークのアルゴリズム
平面グラフと交通ネットワークのアルゴリズム
Takuya Akiba
色々なダイクストラ高速化
色々なダイクストラ高速化
yosupo
メタプログラミングって何だろう
メタプログラミングって何だろう
Kota Mizushima
UMLモデルを使った自動生成
UMLモデルを使った自動生成
Norihito Ohshima
SQLチューニング入門 入門編
SQLチューニング入門 入門編
Miki Shimogai
すごい配列楽しく学ぼう
すごい配列楽しく学ぼう
xenophobia__
第1回GameDesign-遊びの体験と文化
第1回GameDesign-遊びの体験と文化
大介 束田
WWDC 2015 情報共有会
WWDC 2015 情報共有会
大介 束田
Más contenido relacionado
La actualidad más candente
直交領域探索
直交領域探索
okuraofvegetable
Golangで並行シミュレーテッドアニーリング
Golangで並行シミュレーテッドアニーリング
tsuji daishiro
Chokudai search
Chokudai search
AtCoder Inc.
大規模グラフアルゴリズムの最先端
大規模グラフアルゴリズムの最先端
Takuya Akiba
暗号技術の実装と数学
暗号技術の実装と数学
MITSUNARI Shigeo
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
Takuya Akiba
不遇の標準ライブラリ - valarray
不遇の標準ライブラリ - valarray
Ryosuke839
プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法
Takuya Akiba
競技プログラミングのためのC++入門
競技プログラミングのためのC++入門
natrium11321
勉強か?趣味か?人生か?―プログラミングコンテストとは
勉強か?趣味か?人生か?―プログラミングコンテストとは
Takuya Akiba
Rolling Hashを殺す話
Rolling Hashを殺す話
Nagisa Eto
AVX-512(フォーマット)詳解
AVX-512(フォーマット)詳解
MITSUNARI Shigeo
圏論とHaskellは仲良し
圏論とHaskellは仲良し
ohmori
自動定理証明の紹介
自動定理証明の紹介
Masahiro Sakai
平面グラフと交通ネットワークのアルゴリズム
平面グラフと交通ネットワークのアルゴリズム
Takuya Akiba
色々なダイクストラ高速化
色々なダイクストラ高速化
yosupo
メタプログラミングって何だろう
メタプログラミングって何だろう
Kota Mizushima
UMLモデルを使った自動生成
UMLモデルを使った自動生成
Norihito Ohshima
SQLチューニング入門 入門編
SQLチューニング入門 入門編
Miki Shimogai
すごい配列楽しく学ぼう
すごい配列楽しく学ぼう
xenophobia__
La actualidad más candente
(20)
直交領域探索
直交領域探索
Golangで並行シミュレーテッドアニーリング
Golangで並行シミュレーテッドアニーリング
Chokudai search
Chokudai search
大規模グラフアルゴリズムの最先端
大規模グラフアルゴリズムの最先端
暗号技術の実装と数学
暗号技術の実装と数学
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
不遇の標準ライブラリ - valarray
不遇の標準ライブラリ - valarray
プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法
競技プログラミングのためのC++入門
競技プログラミングのためのC++入門
勉強か?趣味か?人生か?―プログラミングコンテストとは
勉強か?趣味か?人生か?―プログラミングコンテストとは
Rolling Hashを殺す話
Rolling Hashを殺す話
AVX-512(フォーマット)詳解
AVX-512(フォーマット)詳解
圏論とHaskellは仲良し
圏論とHaskellは仲良し
自動定理証明の紹介
自動定理証明の紹介
平面グラフと交通ネットワークのアルゴリズム
平面グラフと交通ネットワークのアルゴリズム
色々なダイクストラ高速化
色々なダイクストラ高速化
メタプログラミングって何だろう
メタプログラミングって何だろう
UMLモデルを使った自動生成
UMLモデルを使った自動生成
SQLチューニング入門 入門編
SQLチューニング入門 入門編
すごい配列楽しく学ぼう
すごい配列楽しく学ぼう
Más de 大介 束田
第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 さいたま勉強会
大介 束田
Más de 大介 束田
(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 さいたま勉強会
Último
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
Tokyo Institute of Technology
世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム
世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム
Kochi Eng Camp
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
Tokyo Institute of Technology
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ssusere0a682
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
Kochi Eng Camp
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
Takayuki Itoh
Último
(6)
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム
世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
ゲーム開発におけるバックトラック法
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.
ご清聴 有り難うございました!
Descargar ahora