builderscon 2016 講演資料...

181
人工知能によってプログラムを 有機化する 三宅 陽一郎 (ゲームAI開発者) https://www.facebook.com/youichiro.miyake http://www.slideshare.net/youichiromiyake [email protected] 2016.12.3 @ Red Bull Studios Tokyo (前篇)

Upload: youichiro-miyake

Post on 16-Apr-2017

2.305 views

Category:

Software


2 download

TRANSCRIPT

Page 1: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

人工知能によってプログラムを有機化する

三宅 陽一郎

(ゲームAI開発者)

https://www.facebook.com/youichiro.miyake http://www.slideshare.net/youichiromiyake [email protected]

2016.12.3 @

Red Bull Studios Tokyo

(前篇)

Page 2: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

経歴

高エネルギー加速器研究所(半年ぐらい。修士論文)

京都大学(数学) 大阪大学(原子核実験物理) 東京大学 (エネルギー工学/人工知能)

Page 3: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

Works (2006-2016)

AI for Game Titles Books

Page 4: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

©2016 SQUARE ENIX CO., LTD. All Rights Reserved.

• ThinkIT https://thinkit.co.jp/author/10026

• AI最前線の現場から【スクウェア・エニックス】

Page 5: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

WIRED A.I.

• WIRED A.I.+ Wired City

• 12月1日発売

• 「人工知能+街 特集」

なぜぼくらには人工知能が必要なのか──『WIRED』Vol.20「人工知能+未来都市」 2大特集・特別保存版 刊行に寄せてhttp://wired.jp/2015/12/01/vol20-editors-letter-ai/

Page 6: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

「IT、都市、ヘルスケア、あらゆる領域で 人工知能と人間が共創する未来」

• WIRED 「INNOVATION INSIGTS」

http://wired.jp/innovationinsights/post/analytics-cloud/w/cocreation_with_ai

Page 7: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

アジェンダ

• 人工知能は一見すると情報処理プログラムと変わらないように見えます。

• ただ、特にゲームAIで顕著な特徴は、そこにソフトウェアの構造から、最後に知的機能を獲得するまでの、階層的な構造を持っているところにあります。

• 自律エージェント指向の場合には、それは開かれた「強いAI」としての人工知能であり、AIアプリケーションの場合それは閉じられた「弱いAI」となります。

• またそれに伴い、人工知能技術は、ソフトウェア全体の構造は、アーキテクチャレベルから末端の各モジュールまでを有機的な関係の中に包むことになります。今回は各種のゲームで用いられる人工知能技術と共に, その具体的なソフトウェアの構造をご説明いたします。

Page 8: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

本セッションの趣旨

人工知能のプログラムの組み方

プログラムの人工知能化

人工知能

ソフトウェア

Page 9: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

本セッションの趣旨

人工知能のプログラムの組み方

プログラムの人工知能化

人工知能

ソフトウェア

Page 10: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

前置き

• プログラムを支える構造はどこから来るか?

• 人工知能=概念の科学

Page 11: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

プログラムの断片

プログラムの断片

プログラムとプログラムをつなげるものは何か?

Page 12: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

プログラムの断片

プログラムの断片

有機的な概念構造

Page 13: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

プログラムの断片

プログラムの断片

有機的な概念構造

要素として何を扱うか?

Page 14: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

プログラムの断片

プログラムの断片

有機的な概念構造

要素として何を扱うか?

アーキテクチャ

Page 15: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

プログラムの断片

プログラムの断片

有機的な概念構造

要素として何を扱うか?

アーキテクチャ

(1) 要素 (2) その関係性 (3) それと包む有機的なアーキテクチャ 今日はこの3つをテーマにします。

Page 16: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

目次

• 第一章 人工知能の作り方

• 第二章 ソフトウェアの構造

• 第三章 人工知能へ

• 第四章 知識構造

• 第五章 ナビゲーションAI

• 第六章 メタAI ゲーム全体の思考

• 第七章 思考

• 第八章 思考の構造

Page 17: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

第一章 人工知能の作り方

Page 18: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

このAIはどう作るか?

プレイヤー キャラクター

岩 地面

例として、次のようなキャラクターのAIをどう作るか考えてみよう。

http://dear-croa.d.dooo.jp/download/illust.html http://piposozai.blog76.fc2.com/

Page 19: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

このAIはどう組むか?

こういったAIをゲーム産業では「Scripted AI」と言

います。こういったAIはゲームデザイナーがスクリプト言語で書く場合多いため。

プレイヤー キャラクター

岩 地面

A B

(例) プレイヤーがAにいれば Bをうろうろする。 プレイヤーがBにいれば 近づいて攻撃する。

http://septieme-ciel.air-nifty.com/nikubanare/2007/08/post_3c38.html http://dear-croa.d.dooo.jp/download/illust.html

http://piposozai.blog76.fc2.com/

Page 20: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

スクリプト

Scripted AI から自律型AIへの変化

ゲームデザイナーの頭の中 ゲームデザイナーの頭の中

知識 思考

Scripted AI 自律型 AI (Autonomous AI) http://piposozai.blog76.fc2.com/

Page 21: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

スクリプト

Scripted AI から自律型AIへの変化

ゲームデザイナーの頭の中 ゲームデザイナーの頭の中

知識 思考

Scripted AI 自律型 AI (Autonomous AI)

操り人形(Scripted AI)から、キャラクターが自分で考えて行動する自律型AI(Autonomous AI)になるためには、

ゲームデザイナーが頭の中で持っている知識と思考をAIに埋め込む必要がある。

Page 22: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

このAIはどう組むか?

プレイヤー キャラクター

岩 地面

地形データ (Way Points)

ステップ1:

AIにゲームステージの地形を認識させたい =地形のデータを与える。

AIは地形データによって、自分とプレイヤーの位置関係を知ることができる。

http://dear-croa.d.dooo.jp/download/illust.html

http://piposozai.blog76.fc2.com/

Page 23: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

このAIはどう組むか?

地形データ (Way Points)

AIは地形データによって、自分とプレイヤーの位置関係を知ることができる。(ネットワークグラフの問題に帰着)

http://dear-croa.d.dooo.jp/download/illust.html http://dear-croa.d.dooo.jp/download/illust.html

http://piposozai.blog76.fc2.com/

Page 24: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

ナビゲーションAI

このAIはどう組むか?

プレイヤー キャラクター

岩 地面

ステップ2:

地形データをもとに考える思考を与える。

地形データを用いた 思考

地形データ (Way Points)

http://dear-croa.d.dooo.jp/download/illust.html http://piposozai.blog76.fc2.com/

Page 25: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

このAIはどう組むか?

AIは地形データによって、自分とプレイヤーの位置関係を知ることができる。(ネットワークグラフの問題に帰着)

地形データ (Way Points)

地形データを用いた 思考

最短経路を計算

http://dear-croa.d.dooo.jp/download/illust.html

http://piposozai.blog76.fc2.com/

Page 26: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

ナビゲーションAI

このAIはどう組むか?

地形データ (Way Points)

ここの点グループはお互いが見えている。

ここの点グループはお互いが見えている。

地形データを用いた 思考

ネットワークグラフに可視判定の情報を埋め込む。

Page 27: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

このAIはどう組むか?

ナビゲーションAI

地形データ (Way Points)

ここの点グループはお互いが見えている。

ここの点グループはお互いが見えない。

地形データを用いた 思考

ネットワークグラフに可視判定の情報を埋め込む。

Page 28: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

このAIはどう組むか?

ナビゲーションAI

地形データ (Way Points)

地形データを用いた 思考

プレイヤーからキャラクターが見えていない。

http://dear-croa.d.dooo.jp/download/illust.html http://piposozai.blog76.fc2.com/

Page 29: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

このAIはどう組むか?

ナビゲーションAI

地形データ (Way Points)

地形データを用いた 思考

プレイヤーから見つけて貰うために プレイヤーからキャラクターが見えるように動く。

http://dear-croa.d.dooo.jp/download/illust.html http://piposozai.blog76.fc2.com/

Page 30: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

このAIはどう組むか?

プレイヤーからキャラクターが見えない位置に動く。

ナビゲーションAI

地形データ (Way Points)

地形データを用いた 思考

http://dear-croa.d.dooo.jp/download/illust.html http://piposozai.blog76.fc2.com/

Page 31: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

ナビゲーションAI

このAIはどう組むか?

地形データ (Way Points)

攻撃する

意思決定思考

地形データを用いた 思考

http://dear-croa.d.dooo.jp/download/illust.html http://piposozai.blog76.fc2.com/

Page 32: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

ナビゲーションAI

このAIはどう組むか?

地形データ (Way Points)

攻撃するか? 隠れるか? 牽制するか? を選ぶ思考。 = 意思決定思考

意思決定思考

地形データを用いた 思考

http://dear-croa.d.dooo.jp/download/illust.html http://piposozai.blog76.fc2.com/

Page 33: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

このAIはどう組むか?

プレイヤー キャラクター

岩 地面

地形データ (Way

Points)

これで、キャラクターを知能化することができた。

地形データを用いた思考

意思決定思考

http://dear-croa.d.dooo.jp/download/illust.html http://piposozai.blog76.fc2.com/

Page 34: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

AIを作る

人間

地形データ (Way

Points)

地形データを用いたロジック

オブジェクトを用いたロジック

http://piposozai.blog76.fc2.com/

Page 35: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

AIを作る

人間

地形データ (Way

Points)

地形データを用いたロジック

オブジェクトを用いたロジック

ここでキャラクターに知能を与えたプロセスを振り返ってみる。 ステップ1: 知識を与えた。 ステップ2: 知識の上で操作する思考を与えた。 ステップ3: 自分の意志を決定する思考を与えた。

http://piposozai.blog76.fc2.com/

Page 36: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

知識

思考

AIを作る

人間

地形データ (Way

Points)

地形データを用いた思考

意思決定の思考

知識を(データ)表現する。(知識) 知識に基づいて思考する。(AI思考)

AI自身に「知識」と「知識の上の思考」を与えることが 知能を作る基本。

http://piposozai.blog76.fc2.com/

Page 37: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

思考

知識

AIを作る

人間

地形データ (Way

Points)

地形データを用いた思考

オブジェクトデータ

意思決定の思考

自分の 身体データ

身体運動の

ロジック

知識を(データ)表現する。(知識) 知識に基づいて思考する。(AI思考)

http://piposozai.blog76.fc2.com/

「知識」と「その上の思考」をどんどん増やして行くことでAIは成長する。

Page 38: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

知能

思考

知識

AIを作る

人間

地形データ (Way

Points)

地形データを用いた思考

オブジェクトデータ

意思決定の思考

自分の 身体データ

身体運動の

ロジック

http://piposozai.blog76.fc2.com/

知能 = 知識 × 思考

Page 39: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

知能

思考

知識

AIを作る

人間

地形データ (Way

Points)

地形データを用いた思考

オブジェクトデータ

意思決定の思考

自分の 身体データ

身体運動の

ロジック

http://piposozai.blog76.fc2.com/

これでキャラクター自身が知能を持つことができた。 キャラクターの持つ知能をキャラクターAIと言う。

Page 40: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

知能

思考

知識

AIを作る

人間

地形データ (Way

Points)

地形データを用いた思考

オブジェクトデータ

意思決定の思考

自分の 身体データ

身体運動の

ロジック

http://piposozai.blog76.fc2.com/

この例ではナビゲーションAIとキャラクターAIが連携 していた。

Page 41: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

目次

• 第一章 人工知能の作り方

• 第二章 ソフトウェアの構造

• 第三章 人工知能へ

• 第四章 知識構造

• 第五章 ナビゲーションAI

• 第六章 メタAI ゲーム全体の思考

• 第七章 思考

• 第八章 思考の構造

Page 42: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

第二章 ソフトウェアの構造

Page 43: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

知識 思考

知識 思考

知識 思考

最小の人工知能の単位

独立に持つ

Page 44: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

知識 思考

最小の知能の単位

Page 45: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

2.1 階層型アーキテクチャ

Page 46: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

知識

思考

最小の知能の単位 階層型アーキテクチャ

Page 47: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

知識

思考

最小の知能の単位 階層型アーキテクチャ

Page 48: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

(例)

Page 49: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

ステート・マシン

ステート

ステート ステート

ステートマシン(有限状態マシン)

ステートに自分への命令、遷移条件に世界と自分の状況の変化を書く。 ループ構造により、フィードバック構造はない。

Page 50: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

プレイヤーを待ち構えるAI

2体の敵キャラクターが哨戒していて、一人のプレイヤーが部屋に入って来る。

http://dear-croa.d.dooo.jp/download/illust.html http://piposozai.blog76.fc2.com/

Page 51: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

ステート・マシン

ステートマシン(有限状態マシン)

ステートに自分への命令、遷移条件に世界と自分の状況の変化を書く。 ループ構造により、フィードバック構造はない。

待機

攻撃 パトロール

Page 52: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

警戒

追跡

追いかける

攻撃する

威嚇攻撃

味方に指示

出口をかためる

味方を呼ぶ

味方がいない かつ 戦闘範囲外

味方と合流

味方と合流

味方がいる

見失う

見える

見失う 見つける

巡回する

10秒経つ

物音を 聴く

応答がきた

階層型ステート・マシン

Page 54: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

2.2 メタ思考アーキテクチャ

Page 55: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

知識 思考

知識 思考

知識 思考

メタ思考

思考を選ぶ思考

Page 56: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

知識 思考

知識 思考

知識 思考

メタ思考

メタ思考アーキテクチャ

Page 57: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

(例)

Page 58: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

IF ( 前置宣言文 ) then (後置宣言文)

ルールベース意思決定 Rule-based Decision Making

ルール

ここでは、この形式の制御文をルールと言います。 もちろん、IF ( … IF (.... IF… ) ) ) のような入れ子構造の制御文も ルールベースと呼びますが、 ルールベースと言えば、基本的には、ルールを一つの単位として、 意思決定を行う、という意味です。

Page 59: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

推論エンジン

A B C D E T F F F F T T F F F T T F T F T T T T F T T T T T F T T T T F F F T T …………………………… …………………………… …………………

T: True F: False

ID 0 : IF A THEN B

ID 1 : IF A && D THEN C

ID 3 : IF C THEN E

ID 4 : IF B THEN D

ID .. :

ID 4 : IF E THEN ~A

ルール内の条件部がtrueの時、そのルールが発火する(fired)すると言います。発火したルールの宣言文は true となり、またそれが別のルールを発火させます。

発火をくり返して、true/False が変化して行く様子

Page 60: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

ルール制御

ID 0 : IF …. THEN …

ID 1 : IF …. THEN …

ID 3 : IF …. THEN ….

ID 4 : IF …. THEN …

ID .. :

ID 4 : IF …. THEN …

Priority: 3

Priority: 1

Priority: 4

Priority: 5

Priority: 2

ルールに固定、あるいは変動プライオリティ(優先度)をつけて制御を行う。

あるいはランダムにルールをピックアップする場合もある。戦略思考、キャラクターの挙動などでよく使われる。

Priority: -

制御

ルール= IF ( 行動条件文 ) then (動作命令文)

Page 61: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

(例) ルール制御

ID 0 : IF …. THEN …

ID 1 : IF …. THEN …

ID 3 : IF …. THEN ….

ID 4 : IF …. THEN …

ID .. :

ID 5 : IF …. THEN …

Priority: 3

Priority: 1

Priority: 4

Priority: 5

Priority: 2

或いは、状況判断思考によってルールを振り分ける。戦略思考、キャラクターの挙動などでよく使われる。

Priority: -

制御

思考

ルール= IF ( 行動条件文 ) then (動作命令文)

Page 62: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

応用可能性例

http://gomibako.symphonic-net.com/vote.cgi?genre=act_b&rating=9

ID 0 : IF (敵確認) THEN (逆方向)

ID 1 : IF (誰もいない) THEN (ランダムウォーク)

ID 2 : IF (フルーツ発見) THEN (フルーツゲット)

ID 3 : IF (パワー発見) THEN (パワーゲット)

ID 0 : IF (敵強い) THEN (サンダガ)

ID 1 : IF (自分弱い) THEN (弱い敵に攻撃)

ID 2 : IF (HP<20) THEN (ケアル)

ID 3 : IF (パワー発見) THEN (パワーゲット)

こうなっているというのではなくて、こういうふうに応用できる例

パックマンなど

RPGなど

Page 66: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

プロダクションルール

プロダクションルールは種類によってランク付けされていて、 最もランクの高いルールが発火する。 ルールが発火すると他のSimは、その特性を理解する。

データドリブンなプロダクション・ルール

Sims3 における応用

Page 67: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

(例)

Page 68: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

ユーティリティ・ベース

• ユーティリティ・ベースは高度に抽象的な戦術決定の方法。

• 世界をモデル化し、評価すべき行動群の効用(ユーティリティ)を数値に還元する。

Page 69: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

The Sims シリーズのAIの作り方

人をダイナミクス(力学系、動的な数値の仕組み )として動かす。

世界を動かす PeerAI(=キャラクターAI) を構築。

Sub

Peer

Meta

Meta

Peer

Sub

[原則] 周囲の対象に対する、あらゆる可能な行動から、 ムード(幸せ) 係数を最大化する行動を選択する。

Sims (not under direct player control) choose what to do by selecting, from all of the

possible behaviors in all of the objects, the behavior that maximizes their current happiness.

Will Wright, AI: A Design Perspective (AIIDE 2005) http://www.aaai.org/Papers/AIIDE/2005/AIIDE05-041.ppt

Kenneth Forbus, Will Wright, “Some notes on programming objects in The Sims – Example” http://www.qrg.cs.northwestern.edu/papers/Files/Programming_Objects_in_The_Sims.pdf

Page 70: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

オブジェクトに仕込むデータ構造

Data (Class, Sate)

Graphics (sprites, z-

buffers) Animations (skeletal)

Sound Effects

Code (Edith)

-Main (object thread)

-External 1

-External 2

-External 3

パラメーター

グラフィックス

アニメーション

サウンド

メインスレッド

いろいろなインタラクションの仕方

Ken Forbus, “Simulation and Modeling: Under the hood of The Sims” (NorthWerstern大学、講義資料) ※IEで見てください。

http://www.cs.northwestern.edu/%7Eforbus/c95-gd/lectures/The_Sims_Under_the_Hood_files/frame.htm

Kenneth Forbus, Will Wright, “Some notes on programming objects in The Sims – Example” http://www.qrg.cs.northwestern.edu/papers/Files/Programming_Objects_in_The_Sims.pdf

Page 71: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

The Sims における「モチーフ・エンジン」

Ken Forbus, “Simulation and Modeling: Under the hood of The Sims” (NorthWerstern University)

http://www.cs.northwestern.edu/%7Eforbus/c95-gd/lectures/The_Sims_Under_the_Hood_files/frame.htm

Data - Needs - Personality - Skills - Relationships Sloppy - Neat

Shy - Outgoing Serious - Playful Lazy - Active Mean - Nice

Physical - Hunger

- Comfort - Hygiene - Bladder

Mental - Energy - Fun - Social - Room

Motive Engine

Cooking Mechanical

Logic Body Etc.

AIの人格モデル

Page 72: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

最適(=最大効用)な行動を選択する

Hunger +20 Comfort -12 Hygiene -30 Bladder -75 Energy +80 Fun +40 Social +10 Room - 60 Mood +18

Toilet

- Urinate (+40 Bladder) - Clean (+30 Room) - Unclog (+40 Room)

Mood +26

Bathtub

- Take Bath (+40 Hygiene) (+30 Comfort) - Clean (+20 Room)

Mood +20

[原則] 周囲の対象に対する、あらゆる可能な行動から、 総合的な効用 (=Mood) を最大化する行動を選択する。

Page 73: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

ムードの計算方法と各パラメーターのウェイトグラフ

Mood = W_Hunger(X_Hunger) * X_Hunger + W_Engergy(X_Energy) * X_Energy + …

-100 0 100 -100 0 100

-100 0 100 -100 0 100

-100 0 100 -100 0 100

-100 0 100 -100 0 100

W_Hunger W_Energy

W_Comfort W_Fun

W_Hygiene W_Social

W_Bladder W_Room

Page 74: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

効用(Utility)の計算の仕方

W_Hunger

X_Hunger

W_Hunger(-80)

-80 60

W_Hunger(60)

Page 75: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

効用(Utility)の計算の仕方

W_Hunger

X_Hunger

W_Hunger(-80)

-80 60

W_Hunger(60)

Hunger degree at -80 = W_Hunger(-80)*(-80)

Hunger degree at 60 = W_Hunger(60)*(60)

Δ = W_Hunger(60)*(60) - W_Hunger(-80)*(-80)

Utility for hunger

Page 76: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

限界効用逓減の法則

X_Hunger

W_Hunger(-80)

-80 60

W_Hunger(60)

Δ(-80 → 60)=W_Hunger(60)*(60) - W_Hunger(-80)*(-80)

Δ (60→90) =W_Hunger(90)*(90) - W_Hunger(60)*(60)

90

W_Hunger(90)

Δ(-80 → 60) is much larger than Δ(60→90)

ある程度満たされたものを満たすより、

満たされないものをある程度満たす方が大きな満足をもたらす

Utility for hunger

ビールは一杯目が一番おいしい

Page 77: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

The Sims のAIの原理

三宅陽一郎、「Spore におけるゲームAI技術とプロシージャル」 (DiGRA Japan 第14回 月例研究

http://digrajapan.org/?wpdmact=process&did=Ni5ob3RsaW5r

Ken Forbus, “Simulation and Modeling: Under the hood of The Sims” (NorthWerstern大学、講義資料)

http://www.cs.northwestern.edu/%7Eforbus/c95-gd/lectures/The_Sims_Under_the_Hood_files/frame.htm

Richard Evans, Modeling Individual Personalities in The Sims 3, GDC 2010 http://www.gdcvault.com/play/1012450/Modeling-Individual-Personalities-in-The

Page 79: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

2.3 マルチレイヤード・アーキテクチャ

Page 80: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

知識 思考

知識 思考

知識 思考

レイヤー

Page 81: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

知識 思考

知識 思考

知識 思考

レイヤー

マルチレイヤード・アーキテクチャ

Page 82: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

J.M.P. van Waveren, “The Quake III Arena Bot” http://www.kbs.twi.tudelft.nl/docs/MSc/2001/Waveren_Jean-Paul_van/thesis.pdf

Page 83: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

知識 思考

知識 思考

知識 思考

サブサンプション・アーキテクチャ

抑制・解放

抑制・解放

Page 84: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

2.4 サブサンプション・アーキテクチャ

Page 85: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

サブサンプション・アーキテクチャ

INPUT OUTPUT

Time

情報を抽象化

反射的

より抽象的思考

理論的思考

抽象的思考

アクションを生成

Page 86: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

古典: 中央集権型(Central domain) すべての知的プロセスが 順番に実行

サブサンプション : 並列 & 多層化 すべての知的プロセスが、 並列に実行

Rodney Brooks, A robust layered control system for a mobile robot Robotics and Automation, IEEE Journal of (Volume:2 , Issue: 1 ) 1986

Page 87: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

Roomba (iRobot)

http://www.irobot.com/en/us/learn/home/roomba.aspx

Roomba はサブサンプション・アーキテクチャを持つ

Page 88: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

サブサンプション・アーキテクチャ

INPUT OUTPUT

Time

Reactive

R

ロボットは障害物をみつけと ターン。

Page 89: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

サブサンプション・アーキテクチャ

INPUT OUTPUT

Time

Reactive

R

ロボットは崖を見つけると 後退する.

Page 90: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

サブサンプション・アーキテクチャ

INPUT OUTPUT

Time

Reactive

More Abstract thinking

Abstract thinking

R ロボットは足音を聴くと、 とりあえずストップする。

Page 91: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

Subsumption Architecture

INPUT OUTPUT

Time

Reactive

More Abstract thinking

Theoretical thinking

Abstract thinking

R

全部掃除が終わると、 エネルギーステーションに戻る

Page 92: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

Subsumption Architecture

INPUT OUTPUT

Time

Reactive

More Abstract thinking

Theoretical thinking

Abstract thinking

サブサンプションを エージェント・アーキテクチャに適用。

情報を抽象化 アクションを生成

Page 93: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

目次

• 第一章 人工知能の作り方

• 第二章 ソフトウェアの構造

• 第三章 人工知能へ

• 第四章 知識構造

• 第五章 ナビゲーションAI

• 第六章 メタAI ゲーム全体の思考

• 第七章 思考

• 第八章 思考の構造

Page 94: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

第三章 人工知能へ

Page 95: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

世界

情報的・物質的循環

物質

物理的OUTPUT

代謝機能 情報

INPUT INFORMATION

OUTPUT INFORMATION

情報処理=情報代謝 (つまり思考)

生理的代謝機能 物理的INPUT

Page 96: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

キャラクターの知能を表現する

世界

http://piposozai.blog76.fc2.com/

Page 97: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

知能

身体

キャラクターを表現する

世界

記憶

Page 98: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

知能

身体

キャラクターを表現する

世界

記憶 五感

身体

言語

知識表現型

センサー・ 物理

Page 99: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

知能

身体

キャラクターを表現する

世界

記憶 五感

身体

言語

知識表現型

センサー・ 物理

知識 生成

Knowledge Making

Page 100: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

身体

キャラクターを表現する

世界

記憶 五感

身体

言語

知識表現型

センサー・ 物理

知識 生成

Knowledge Making

意思決定

Decision Making

Page 101: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

身体

キャラクターを表現する

世界

記憶 五感

身体

言語

知識表現型

センサー・。 物理

知識 生成

Knowledge Making

意思決定

Decision Making

運動 生成

Motion Making

Page 102: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

身体

キャラクターを表現する

世界

記憶 五感

身体

言語

知識表現型

センサー・ 物理

知識 生成

Knowledge Making

意思決定

Decision Making

運動 生成

Motion Making

身体・ 発話・

情報発信

エフェクター

Page 103: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

身体

エージェント・アーキテクチャ

世界

記憶 五感

身体

言語

知識表現型

センサー・ 物理

知識 生成

Knowledge Making

意思決定

Decision Making

運動 生成

Motion Making

身体・ 発話・

情報発信

エフェクター

Page 104: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

身体

キャラクターを表現する

世界

記憶 五感

身体

言語

知識表現型

センサー・ 物理

知識 生成

Knowledge Making

意思決定

Decision Making

運動 生成

Motion Making

身体・ 発話・

情報発信

エフェクター

エージェント・アーキテクチャ

インフォメーション・フロー(情報回廊)

Page 105: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

身体

世界

記憶 五感

身体

言語

知識表現型

センサー・ 物理

知識 生成

Knowledge Making

意思決定

Decision Making

運動 生成

Motion Making

身体・ 発話・

情報発信

エフェクター

インフォメーション・フロー(情報回廊)

内部循環インフォメーション・フロー(情報回廊)

エージェント・アーキテクチャ

Page 106: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

世界 / データ群 (Undifined)

センサー エフェクター

知能

エージェント・アーキテクチャ

Page 107: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

世界 / データ群 (Undifined)

センサー エフェクター

知能

インフォメーション・フロー

エージェント・アーキテクチャ

Page 108: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

世界 / データ群 (Undefined)

センサー エフェクター

インフォメーション・フロー

知識 思考

エージェント・アーキテクチャ

Page 109: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

世界 / データ群 (Undefined)

センサー エフェクター

インフォメーション・フロー

エージェント・アーキテクチャ

Page 110: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

世界 / データ群 (Undefined)

センサー エフェクター

インフォメーション・フロー

エージェント・アーキテクチャ

Page 111: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

目次

• 第一章 人工知能の作り方

• 第二章 ソフトウェアの構造

• 第三章 人工知能へ

• 第四章 知識構造

• 第五章 ナビゲーションAI

• 第六章 メタAI ゲーム全体の思考

• 第七章 思考

• 第八章 思考の構造

Page 112: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

第四章 知識構造

Page 113: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

描画データ

描画データ

http://piposozai.blog76.fc2.com/

Page 114: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

http://piposozai.blog76.fc2.com/

衝突モデル(当たりモデル)

キャラクター衝突データ

オブジェクト衝突データ

オブジェクト衝突データ

物理的インタラクション

Page 115: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

知識表現データ

知識表現データ

http://piposozai.blog76.fc2.com/

Page 116: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

http://piposozai.blog76.fc2.com/

知識表現データ

知識表現データ 知識表現データ

知識表現データ

Page 117: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

知識表現データ

知識表現データ

知識表現データ

知識表現データ

情報の受け渡し (例)私は座標(2.1, 3.4, 5.6)にいる。 薬草は体力を回復する

(例)私は座標(2.1, 3.4, 5.6)にいる。 薬草は体力を回復する

(例)これは岩である。 動かすことはできない。 側の点に隠れることができる。

http://piposozai.blog76.fc2.com/

Page 118: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

知識表現・世界表現

仮想世界の知性 =人工知能

WORLD

人工知能は生物のように世界をそのまま認識・解釈できるだろうか?

仮想世界の知性 =人工知能

WORLD

AIが世界(物・事・空間など)を解釈できるように、世界をうまく情報表現する = 知識表現 (KR、Knowledge Representation)

知識表現 (KR)

http://piposozai.blog76.fc2.com/

Page 119: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

ゲーム世界

世界をリアルタイムに解釈

知識表現と作用世界・知覚世界

AIはそのままでは 理解できない。

http://piposozai.blog76.fc2.com/

Page 120: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

ゲーム世界

世界をリアルタイムに解釈

知識表現と作用世界・知覚世界

AIはそのままでは 理解できない。

現在の人工知能のレベルは難しい

http://piposozai.blog76.fc2.com/

Page 121: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

ゲーム世界

知識表現

知識表現と作用世界・知覚世界

AIはそのままでは 理解できない。

http://piposozai.blog76.fc2.com/

Page 122: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

ゲーム世界

知識表現

知識表現と作用世界・知覚世界

AIは知識表現を通して世界を見る。それはAIの主観を決定し、 作用世界と知覚世界も決定する。

http://piposozai.blog76.fc2.com/

Page 123: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

ゲーム世界

知識表現

知識表現と作用世界・知覚世界

AIはそのままでは 理解できない。

作用世界

知覚世界

AIは知識表現を通して世界を見る。それはAIの主観を決定し、 作用世界と知覚世界も決定する。

AI

http://piposozai.blog76.fc2.com/

Page 124: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

いろいろな知識表現

事実表現(信頼度表現)

意味ネットワーク

敵表現リスト

依存グラフ ルールベース表現

世界表現

Griesemer,J, "The Illusion of Intelligence: The Integration of AI and Level Design in Halo", 2002 http://downloads.bungie.net/presentations/gdc02_jaime_griesemer.ppt

Page 125: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

世界表現(知識表現の一つ)

マップ全体に関わる知識表現を世界表現という (ウェイポイント、ナビメッシュを基本とする表現)

World Representation (WR)

(例) 8方向の可視距離の各ポイントに埋め込まれたウェイポイント群 (Killzone)

Straatman, R., Beij, A., Sterren, W.V.D., "Killzone's AI : Dynamic Procedural Combat Tactics", 2005 http://www.cgf-ai.com/docs/straatman_remco_killzone_ai.pdf

Page 126: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

知識表現・世界表現

知識表現

世界表現

Page 127: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

いろいろな世界表現

ナビメッシュ-ウェイポイント階層表現

LOS マップ

戦術マップクラスタリング

敵配位マップ テリトリー表現

Tactical Point System

Halo2 Killzone

Killzone2 Halo Assassin’s Creed

Left 4 Dead

Alex J. Champandard, Remco Straatman, Tim Verweij, "On the AI Strategy for KILLZONE 2's Bots” http://aigamedev.com/open/coverage/killzone2/

Damian Isla,"Building a Better Battle: HALO 3 AI Objectives", http://halo.bungie.net/inside/publications.aspx

Michael Booth, "The AI Systems of Left 4 Dead," Artificial Intelligence and Interactive Digital Entertainment Conference , http://www.valvesoftware.com/company/publications.html

Page 128: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

世界表現(知識表現の1つ)

マップ全体に関わる知識表現を世界表現という (ウェイポイント、ナビメッシュを基本とする表現)

World Representation (WR)

(例) 8方向の可視距離の各ポイントに埋め込まれたウェイポイント群 (Killzone)

Straatman, R., Beij, A., Sterren, W.V.D., "Killzone's AI : Dynamic Procedural Combat Tactics", 2005 http://www.cgf-ai.com/docs/straatman_remco_killzone_ai.pdf

Page 129: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

Halo2 :世界表現

Dude, Where's My Warthog: From Pathfinding to General Spatial Competence, D. Isla, Invited talk, Artificial Intelligence and Interactive Digital Entertainment (AIIDE) 2005 http://naimadgames.com/publications.html

Page 130: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

Dude, Where's My Warthog: From Pathfinding to General Spatial Competence, D. Isla, Invited talk, Artificial Intelligence and Interactive Digital Entertainment (AIIDE) 2005 http://naimadgames.com/publications.html

Halo2 :世界表現

Page 131: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

Halo2 :世界表現

Dude, Where's My Warthog: From Pathfinding to General Spatial Competence, D. Isla, Invited talk, Artificial Intelligence and Interactive Digital Entertainment (AIIDE) 2005 http://naimadgames.com/publications.html

Page 132: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

Halo2 :世界表現

Dude, Where's My Warthog: From Pathfinding to General Spatial Competence, D. Isla, Invited talk, Artificial Intelligence and Interactive Digital Entertainment (AIIDE) 2005 http://naimadgames.com/publications.html

Page 133: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

Halo2: 世界表現

Dude, Where's My Warthog: From Pathfinding to General Spatial Competence, D. Isla, Invited talk, Artificial Intelligence and Interactive Digital Entertainment (AIIDE) 2005 http://naimadgames.com/publications.html

Page 134: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

Halo2: 世界表現

Dude, Where's My Warthog: From Pathfinding to General Spatial Competence, D. Isla, Invited talk, Artificial Intelligence and Interactive Digital Entertainment (AIIDE) 2005 http://naimadgames.com/publications.html

Page 135: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

Halo2: 世界表現

Dude, Where's My Warthog: From Pathfinding to General Spatial Competence, D. Isla, Invited talk, Artificial Intelligence and Interactive Digital Entertainment (AIIDE) 2005 http://naimadgames.com/publications.html

Page 136: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

Halo2: 世界表現

Dude, Where's My Warthog: From Pathfinding to General Spatial Competence, D. Isla, Invited talk, Artificial Intelligence and Interactive Digital Entertainment (AIIDE) 2005 http://naimadgames.com/publications.html

Page 137: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

Halo2: 世界表現

Dude, Where's My Warthog: From Pathfinding to General Spatial Competence, D. Isla, Invited talk, Artificial Intelligence and Interactive Digital Entertainment (AIIDE) 2005 http://naimadgames.com/publications.html

Page 138: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

Counter Strike : Navigation Mesh 世界表現

Dude, Where's My Warthog: From Pathfinding to General Spatial Competence, D. Isla, Invited talk, Artificial Intelligence and Interactive Digital Entertainment (AIIDE) 2005 http://naimadgames.com/publications.html

Page 139: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

知識表現・世界表現

知識表現

世界表現

オブジェクト表現

Page 140: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

オブジェクト表現

レバー

ドアの知識表現

位置 x: 3.0 y:.10,0

レバーで開けることが出来る

壊して開けることが出来る

車の知識表現

位置 x: 3.0 y:.2,0

乗って動かすことが出来る。

時速80kmで動く。

レバーの知識表現

位置 x: 5.0 y:.5,0

引くが出来る。

(結果:ドアが開く)

ドア

ドアの知識表現 位置 x:3.0 y:10.0

レバーを引くと開く(ルール)

レバーの知識表現 位置 x:5.0 y:5.0

引くことができる(アフォーダンス). レバーを引くとドアが開く(ルール)

車の知識表現 位置 x:3.0 y:2.0

運転することができる. 最大速度: 80km

物に対する表現

Page 141: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

オブジェクト表現

これが車である この方向に押せば動く

Dude, Where's My Warthog: From Pathfinding to General Spatial Competence, D. Isla, Invited talk, Artificial Intelligence and Interactive Digital Entertainment (AIIDE) 2005 http://naimadgames.com/publications.html

Page 142: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

アフォーダンス

食べること ができる

登ること ができる

動かすことができる

http://piposozai.blog76.fc2.com/

Page 143: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

作用空間

アフォーダンス

食べること ができる

登ること ができる

動かすことができる

http://piposozai.blog76.fc2.com/

Page 144: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

アフォーダンス

歩くこと ができる

届く

押すことができる

http://piposozai.blog76.fc2.com/

Page 145: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

作用空間

アフォーダンス

歩くこと ができる

届く

押すことができる

http://piposozai.blog76.fc2.com/

Page 146: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

知識表現データ

知識表現データ

知識表現データ

知識表現データ

情報の受け渡し (例)私は座標(2.1, 3.4, 5.6)にいる。 薬草は体力を回復する

(例)私は座標(2.1, 3.4, 5.6)にいる。 薬草は体力を回復する

(例)これは岩である。 動かすことはできない。 側の点に隠れることができる。

http://piposozai.blog76.fc2.com/

Page 147: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

知識 表現 知識

表現

知性を豊かにするには?

知識 表現 知識

表現 知識 表現 知識

表現 知識 表現 知識

表現 知識 表現

知識 表現

世界 表現

知識表現・世界表現が思考の足場を与える。

不安定な足場では高い思考を積み上げることはできない。

思考

Page 148: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

知識 表現 知識

表現 知識 表現 知識

表現

知識 表現 知識

表現 知識 表現 知識

表現

知性を豊かにするには?

知識 表現 知識

表現 知識 表現 知識

表現

知識 表現 知識

表現 知識 表現 知識

表現 知識 表現 知識

表現 知識 表現 知識

表現

知識 表現 知識

表現 知識 表現 知識

表現

知識 表現 知識

表現 知識 表現 知識

表現

世界 表現 世界

表現 世界 表現 世界

表現

知識表現・世界表現が思考の足場を与える。

Page 149: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

知識 表現 知識

表現 知識 表現 知識

表現

知識 表現 知識

表現 知識 表現 知識

表現

知性を豊かにするには?

知識 表現 知識

表現 知識 表現 知識

表現

知識 表現 知識

表現 知識 表現 知識

表現 知識 表現 知識

表現 知識 表現 知識

表現

知識 表現 知識

表現 知識 表現 知識

表現

知識 表現 知識

表現 知識 表現 知識

表現

世界 表現 世界

表現 世界 表現 世界

表現

思考 思考

思考

知識表現・世界表現が思考の足場を与える。

Page 150: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

知識 表現

知識表現に応じた思考

最小の知能の単位

Page 151: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

知識 表現

知識表現に応じた思考

最小の知能の単位

人工知能技術

Page 152: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

世界 / データ群 (Undefined)

センサー エフェクター

インフォメーション・フロー

知識 表現

思考

エージェント・アーキテクチャ

Page 153: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

目次

• 第一章 人工知能の作り方

• 第二章 ソフトウェアの構造

• 第三章 人工知能へ

• 第四章 知識構造

• 第五章 ナビゲーションAI

• 第六章 メタAI ゲーム全体の思考

• 第七章 思考

• 第八章 思考の構造

Page 154: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

第五章 ナビゲーションAI

Page 155: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

ナビゲーション・データ

フリー素材屋Hoshino http://www.s-hoshino.com/

Page 156: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

ナビゲーション・データ

ウェイポイント・グラフ (点を要素とするネットワークグラフ)

ナビゲーションメッシュ・グラフ (三角形(凸角形)を要素とする ネットワークグラフ)

歩くこと ができる。

フリー素材屋Hoshino http://www.s-hoshino.com/

Page 157: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

パス検索 =ゲーム内で任意の2点間の経路をゲーム進行中に計算する技術

RTS – Pathfinding A* https://www.youtube.com/watch?v=95aHGzzNCY8

Page 158: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

ネットワーク上のグラフ検索法

M

F

L

B

A

O

P

D

C

G

S

V

H

Q X

K

N

J

R

T

W

E I

U

Z

Y

5 4

6 3

7 2 3

B C

3

G

D E

3

2 2 4

L

3

3

5

5 J

F

出発点(S)を中心に、最も短い経路を形成して行く。Gにたどり着いたら終了。

各ノードの評価距離=出発点からの経路

ダイクストラ法

Page 159: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

ネットワーク上のグラフ検索法 ダイクストラ法

M

F

L

B

A

O

P

D

C

G

S

V

H

Q X

K

N

J

R

T

W

E I

U

Z

Y

5 4

6 3

7 2 3

B C

3

G

D E

3

2 2 4

L

3

3

5

5 J

F

出発点(S)を中心に、最も短い経路を形成して行く。Gにたどり着いたら終了。

各ノードの評価距離=出発点からの経路

Page 160: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

ネットワーク上のグラフ検索法 A*法

M

F

L

B

A

O

P

D

C

G

S

V

H

Q X

K

N

J

R

T

W

E I

U

Z

Y

5 4

6 3

7 2 3

B C

3

3

2 2 4 3

5

5

出発点(S)を中心に、そのノードまでの 最も短い経路を形成して行く。Gにたどり着いたら終了。

ゴール地点がわかっている場合、現在のノードとゴールとの推定距離(ヒューリスティック距離) を想定して、トータル距離を取り、それが最少のノードを探索して行く。

各ノードの評価距離=出発点からの経路+ヒューリスティック距離

ヒューリスティック距離 (普通ユークリッド距離を取る)

3+14.2 3+13.8

G H 3 5+10.5 6+8.4

Page 161: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

ネットワーク上のグラフ検索法 A*法

M

F

L

B

A

O

P

D

C

G

S

V

H

Q X

K

N

J

R

T

W

E I

U

Z

Y

5 4

6 3

7 2 3

B C

3

3

2 2 4 3

5

5

出発点(S)を中心に、そのノードまでの 最も短い経路を形成して行く。Gにたどり着いたら終了。

ゴール地点がわかっている場合、現在のノードとゴールとの推定距離(ヒューリスティック距離) を想定して、トータル距離を取り、それが最少のノードを探索して行く。

各ノードの評価距離=出発点からの経路+ヒューリスティック距離

ヒューリスティック距離 (普通ユークリッド距離を取る)

3+14.2 3+13.8

G H 3 5+10.5 6+8.4

Page 162: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

Counter Strike (2000)におけるナビメッシュ

The Official Counter-Strike Bot http://aigamedev.com/insider/presentation/official-counter-strike-bot/

Page 163: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

Counter Strike (2000)におけるナビメッシュ

The Official Counter-Strike Bot http://aigamedev.com/insider/presentation/official-counter-strike-bot/

Page 164: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

Counter Strike: Path Following (デモ)

The Official Counter-Strike Bot http://aigamedev.com/insider/presentation/official-counter-strike-bot/

Page 165: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

Dragon Age : Way Point

Dragon Age pathfinding program put to the test https://www.youtube.com/watch?v=l7YQ5_Nbifo

Page 166: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

位置解析システム

Page 167: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

TPS (Tactical Point System)

• 戦術位置検索システム

• 目的に応じたポイントをその場で探し出す。

• CryEngine で発想され、2011年ぐらいから実装されている。

• Unreal Engine 4では、EQS(Evaluation Query System)で同じ機能がある。BehaviorTree や、BluePrintから呼び出して使える。

Page 168: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

高台

野原

味方 AI(現在位置)

このような状況でAIは次にどこに行くべきか? を自分で考えさせたい。

Page 169: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

高台

野原

味方 AI(現在位置)

動的にポイントを生成します

Page 170: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

高台

野原

味方 AI(現在位置)

フィルター1:そもそも足場の悪い点を除外します。

Page 171: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

高台

野原

味方 AI(現在位置)

フィルター2:敵に近くのポイントも除外します

Page 172: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

高台

野原

味方 AI(現在位置)

フィルター3:味方に近くのポイントも除外します

Page 173: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

高台

野原

味方 AI(現在位置)

フィルター4:残ったポイントの中で一番高い場所を選択します。

Page 174: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

TPS (Tactical Point System)

ゲーム中(ランタイム)に、グリッドか円形にポイントを生成。

条件を設定して要らないポイントをふるい落とす

条件を設定して要らないポイントをふるい落とす

残ったポイントを評価する

一点だけが残る

Page 175: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

(例)クエリー(Query)システム =問い合わせシステム

目的地

味方 味

味方

Query(最短パス)

Query(安全パス)

Query(味方合流パス)

Query(武器の届く、高台ポイント)

Page 176: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

ポイントを動的に配置して評価する

Page 177: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)
Page 178: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)
Page 180: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

世界 / データ群 (Undefined)

センサー エフェクター

インフォメーション・フロー

知識 表現

知識表現に基づく思考

エージェント・アーキテクチャ

Page 181: Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

目次

• 第一章 人工知能の作り方

• 第二章 ソフトウェアの構造

• 第三章 人工知能へ

• 第四章 知識構造

• 第五章 ナビゲーションAI

• 第六章 メタAI ゲーム全体の思考

• 第七章 思考

• 第八章 思考の構造