日記/2016-06-29 のバックアップの現在との差分(No.1)

お名前:

  • 追加された行はこの色です。
  • 削除された行はこの色です。


**ホムAI:中期的な記憶をどう保存するか。 [#zafc4580]
**ホムAI:中期的な記憶をどう「忘れる」か。 [#zafc4580]
先日書いた『特定マップにいるときには範囲攻撃を云々』という話に関連して、表記、ちょっともやもやと考えてます。~

Glenelgもそうですが、基本的に多くのホムAIでは『情報の記憶』というものについて、以下の2つのタイプは対応しているはずです。
+タイプ1:長期記憶。
--基本的に「一度設定したらそれで運用を続ける」ような、動作設定の類。
+タイプ2:短期記憶。
--テレポートなどをしたら忘れてしまう、まさに「ここ数分レベル」の記憶。

で、中間的記憶というのは、文字通り上記の中間的な位置づけの情報。~
そんなに長期的な記憶ではないけれど、かといってテレポしたくらいで忘れられても困る、という類。

#region(→続きを読む。)

一応、ですね。~
これに近い情報はあるにはあるんですよ。

例えば、友達設定。~
「同じ/同盟のギルドメンバー」のような、実質的に恒久的な友達もいるでしょうが。~
「臨時パーティでの友達」は、少なくとも「そのパーティが終わったら」解散して忘れるべきものですよね。

例えば、まさに地図情報。~
「その狩場で戦闘している最中」は、変わって欲しくないです。~
が、「狩が終わって帰還したら」and/or「別の狩場に移動したら」、前の情報は忘れるべきです。

ポイントとなることは:これらの中間的記憶情報は「忘れなければならない」という点だと思っています。~
それが、実は結構難しい。~
-利用者に「忘れろ」操作をしてもらうのが、一番簡単でかつ現実的ではあります。
--が、それは「利用者がそれ自体を忘れる」ことが当たり前にあり、結果誤動作につながります。
--臨時PTで友達登録した人を削除し忘れると、後日「非PTのその人」に対して横殴りしてしまいます。
-AIが勝手に忘れることができるのなら、それはリーズナブルです。
--が、その場合「何が起きたら忘れていい」のかが、決めづらいのです。

----

例えば『範囲攻撃巻き込み禁止』設定されたラウレルを見つけたら、ここが『無条件に範囲攻撃を撃ってはいけないマップ』であると判断することは自体は、簡単に対応できます。~
問題は、そういうフラグを『短期的』『中期的』でどう持つか、というところです。

短期記憶だと、テレポ狩に対応できません。~
なぜならばテレポしたとたんに短期記憶は失われてしまうため、再びラウレルを見かけるまで AIは『初期状態==範囲攻撃許可』動作してしまうからです。

中期記憶だと、今度は『いつ戻せばいい』という課題が生まれます。~
AIリロードされた。ここはどこなのか。~
テレポしただけで、まだその『範囲攻撃禁止マップ』なのか。~
ワープゲートで別フロア/マップに移動したのか。蝶で帰還して『街』なのか。

Glenelg では、一応「地図情報」に部分的に対応しているので。~
例えば『特定座標にカプラさんがいる』ことを検出すれば、そこが『プロンテラだ』と判断するようなメカニズムがあります。~
これを応用して、例えば『ラウレルがいる生体2or3』にはいないはずの敵がいたら、マップ移動した・・・と考えるような手は、打てます。~
ただそれはメンテ性に問題があるので、正直やりたくないです。~
例えばある日、生体3の敵に突然「アノリアン」が追加されたなら。テレポアウトしたらアノリアンだけがいたら、誤検出してしまいます。

友瀬がいつまでROを続けられるかわかりませんし、そもそもこれだけ多数になったマップのどこにどんな敵がいる、なんて情報をAIに組み込み・メンテするなんてやりたくないです。

# 前述の「カプラなどのNPC位置からの地図判定」もメンテが追いついてませんし、機能自体削除しようかと考えています。


現実的には、長期記憶のメカニズムを使って中期記憶相当の『範囲攻撃優先設定』みたいなスイッチを1つ作るのが、楽チンかな、とは思ってます。


----
ご意見などがあれば。
#comment2(below)

#endregion