AIプログラミング
2007.10.05|magronbass|PHILOSOPHY|PermaLink|Comments (5)
ここ最近、会社のマックが日本語を受けつけなくなって、投稿できなかったけど、ただいま復活。
今作ってるゲームのうち、スネークがベースになってるやつがあるんだけど、こいつが面白い。 スネークは欧米で、ノキアの電話に入ってて、大ブームになってたゲームで、単純な割には人気が高い。
http://www.gginc.biz/games/snake/snake1.jsp
もとのゲームだと、1匹の蛇を十字キーでコントロールして、自分の体と壁をよけつつ、フルーツを食べるというルール。 ポイントは、蛇は特定なペースでどんどん進んでいくことと、フルーツを食べるたびに、自分の体が長くなること。 画面スペースは限られているから、そのなかで自分が長くなるということは、「逃げる場所」が少なくなるということで、死ぬ確立が高くなる。 「ポイントを取る=死ぬ確立が高くなる」という、かなりシビアな世界だ。
このゲームを、ロボット蛇を3匹投入して、プレーヤーを含めて4匹のバトルにしようというのが今回の企画。 ロボットを動かすためには、単純だけど人工知能が必要。 このシビアな世界を生き延びる人工知能とはどんなんだろう。
この世界で重要なのは、「食べ物を取る」ことと「死なない」こと。 「死なない」は、細かくわけると「壁」と「自分」と「他人」にぶつからないこと。 簡略化すると「食べ物以外のモノすべて」ということになる。 もっとも単純な方法でこれを実装すると「進行方向、1マス先に食べ物があるかどうか確認する」というやり方があるけど、これだと「自爆」の確立が高い。 なぜかというと、自分、他人と壁のコンビネーションで3辺の塞がれた「死のトンネル」が左にあり、右方向には完全に安全は道があるとする。 進行方向1マス先しか見えない彼に取っては、その1マスが空いているかぎり、どちらのも道も同等に安全に見えてしまう。 なので、入り口が安全に見えて、見事「死のトンネル」にはまってしまいうわけだ。 こういう人、実際によくいる気がする。
これを改善する為に、「リスク」制度を取り入れてみた。 視野を少し広くして、全方向を確認して、視野の中のどれぐらいの割合が「危険物質」であるかを確認して、もっとも「危険物質」がすくない方向に曲がるという考え。 右に3X3マスの面積を確認して、1マスが危険物質。 左3X3を確認して5マスが危険であれば、明らかに右の方が生存確立が高い。 完璧だとは言えないが、とりあえずこれで長時間生存できるルールは見つかった。 唯一文句をつけるとしたら、「壁」が有害だと思い込んでいるので、視野が3X3だとすると、壁から3マス、必ず離れて行動する。 ま、安全性を最優先に考えれば確かにそうだけど、やや保守的な感じもする。 ここで出てきた概念が「視野が広いやつは、保守的になる」ってこと。 これも、確かに現実的にだ。
次に、「食べ物」という概念が入ると、世界が一段と複雑になる。 なぜなら、「もっとも安全な道」と、「食べ物への道」との間で、「判断」しないといけないからだ。 まずはじめに、「嗅覚」を使って、特定な面積を感じ取る。 それで内面化された現実世界のなかから、食べ物の位置を割り出す。 ここで面白かったのが、「内面化された現実世界」が、壊れていると、あたりまえだけど、正しい判断ができない。 ようは、「勘違い野郎」なわけだ。 こういうやつ、現実世界に山ほどいるよ。 って思った。
まぁ、現実世界を正確に内面化できたとしよう。 そこから食べ物の場所を割り出して、自分の前後左右、どこにあるか調べる。 そこで、運命の判断が強いられる。 食べ物が前にあるとする。 前方向の危険物質率は30%。 さぁ、そこで食べるか食べないかは本人の「好み」になるわけだ。 そう、この世界だと、蛇たちのメンタルなパラメーターはただ一つ。 「食欲」。 そして、この食欲が高いと、ポイントを稼ぐ確立が高いものの、リスクをおいすぎて、死ぬ確立も高い。 しかも、その食欲をサポートするための、それなりの嗅覚も必要。
う〜ん、「住民」「目的」「死」しか有さない世界が、ここまでディープなものになりうるとは思わなかった。 この世界で成功するには、生まれ持った「食欲」と「嗅覚」、用は「野心」と「才能」を生かして、状況を把握するための「視野」を広く使い、リスクを伴った状況で「野心」と「目的」のバランスを取って正しい判断をしないといけないわけだ。 人間のやってることと、対してかわらないと思った。
Posted Comments
面白いねぇ。
そしてしかし、最後まで横たわる、現実世界とProgrammeの世界の最大の相違は、
前者がQualiaなのに対して後者がby Quantaなのだろうね。
目の前に好きな女の子がいて、その獲得に必要なもの…そんな場合を想定しても、好意も行為もQualiaだからねー。
ドラクエみたいに「経験値100」とかってのは、そう考えると気持ちいいわけだね。快感の単位という考え方がゲーム内だと出来るわけだね。
2007.10.08|Iku
ゲーム理論ってこういう感じで紐解くとおもろいなぁ。
ドラクエの経験値(Quanta)獲得に対するQualiaというのは
言われてみると、確かに快感の単位だね。
はぐれメタルとか、すぐ逃げられてしまう、攻撃がミスった時の
あのSEなどのフラストレーションを超えて、ようやく倒した時の桁はずれな経験値は、攻撃がヒットした時の音に対する聴覚的クオリアとリンクしているように、僕は思う。さらに、その攻撃が改心の一撃だったりすると、もう快感でっす。
2007.10.09|ikeponia
QuantaとQualiaの関係っておもしろいよね。 ま、細かいことは調べたことはないけど、数値とか、断続的なものを、時間軸上に並べて、ある密度を超えるとQualiaみたいに、連続的なものになるって。 Qualiaって人工知能の授業で少し触れたな。
たとえばだけど、和英の通訳をする箱があるとする。 そのなかに、人間が入っているのか、コンピューターが入っているのかはわからない。 でも、日本語を入れると、正確に英語に訳したものが出てくる。 ここで、入った日本語の意味を理解して英語に訳している場合、どっちの意味を理解していなくて、対応表で自動的に通訳している場合、意味をわかりつつも対応表を使って通訳している場合って別れる。 結果だけ見ると、中身がこれらのいずれであっても、変わりはないけど、プロセス的には、どれが「知的」(intelligent)であるかって問題は残る。
それと同じで、Qualiaが記録可能なもので、記録されたものを再生することで再現、変形できるものだとしたら、どの段階で「対応表で通訳している」みたいに、結果は出るけど、行程が間違っているという状況になるのかが気になる。 ゲームのリアルズムを考えるときに重要だよね。 ゲームからの経験は一体なんなのかとか。
2007.10.10|ken
yes yes.
> 数値とか、断続的なものを、時間軸上に並べて、ある密度を超えるとQualiaみたいに、連続的なものになるって。
これはCDがそうだね。離算的に量子化してるんだけど、一秒間に44.1k回以上もやると、自然音に聞こえるもんね。2万回でも聞こえるな。逆にvinylっぽくて良かったりして。。。
2007.10.10|Iku
なるほどねぇぇ。
CDはそういうことか(電球点灯)
通訳BOXの話に近い?というか、人間の声の持つQualiaがどんだけ凄いかっつーのがわかるのが、噂の「Vocaloid」。
音色エンジン(ミクとか、LEONとか)を使って、MIDI的な音程・音価・音量のデータを歌わせるんだけど、それだけだと極端すぎるボコーダーボイスみたいな感じになってしまう。
なので、それをベースに、フレーム単位でリアルタイムなフォルマント変化や言葉のつなぎを作ってゆく=Qualityを上げるための編集作業が必要なんだが、生声に近いように編集するには果てしなく時間と労力を必要とするし、結局、30fpsかつ最大128分割のデータベロシティ調整しか出来ないので、密度が閾値を超えることは非常に難しい。結局、データの集合体(Quanta)っぽくしか聴こえない。
やっぱ音声合成って果てしなく難しいんだなぁ。
2007.10.10|ikeponia
