スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[Ruby]遺伝的アルゴリズム

現在ゼミの研究前の下準備として,ゲーム開発者のためのAI入門を読んでいます.
ゲーム開発者のためのAI入門ゲーム開発者のためのAI入門
(2005/01)
デイビッド・M. ボーググレン シーマン

商品詳細を見る


その中で遺伝的アルゴリズムのサンプルプログラムを,Rubyで書き直してみました.

いや,正直な話C++で書かれた本書のサンプルコードが読むのがいやだったので自分でこんなもんだろうって組んじゃっただけなんですけどね.

遺伝的アルゴリズムサンプル

起動したとき,世界に水や日光などの環境パラメーターが設定されます.さらに,植物を11本生成します.この植物にはそれぞれ,自分が育ちやすい水や日光などの条件が設定されています.

そして,植物の成長条件と現在の環境条件から,その植物がどれだけ成長したか判定して,それを茎の長さとして表現します.

その後,成長が大きい植物のNo1とNo2を探し,それぞれの遺伝子(成長条件が入ってる配列)を交配(交叉ともいう)させ,新しい種を作り出します.このとき,遺伝子の一部に突然変異をおこさせます.

そして,もっとも成長の悪かった植物を引っこ抜き,交配で生み出した新しい植物を植えなおします.

これを繰り返すと,世代が重なるごとにどんどん植物全体の身長が伸びていく(最初の親の背よりも高く)というプログラムです.それだけしかでき無いとも言いますがw

実際ゲームに使うとしたら,モンスターのパラメーターなどをゲームに自動的に生成させる,などといった時に使えるかもしれません.

詳しくはマッチ箱の脳という記事に載ってますので,そちらを参照のこと.

ファイルも一応アップしておきます.よろしければどうぞ.
http://totobook.pepper.jp/zip/GeneticAlgorithms.zip
スポンサーサイト

[日記]終わりよければ

 晴れ.昨日と比べると少し暖かいか.

 最近日記を書いていなかったのは文化祭があったから.もう,それどころではないくらい忙しかった.私は一切接客や内部の運営にはかかわらない駄目上級生.その代わり開発を全力で行うことに.

 しかし,文化祭という特殊な空間での悪のりと自分の趣味が100%費やされた結果,見事なまでに世間に公表できない(著作権的な意味で)ゲームが出来上がってしまい,完全な身内専用ゲームに.まあ楽しいからいいけど.

 ちなみにこんなの.画像からコーディングまで一日で終わらせた.一応遊べる.
やっちまったZE


 発表もしないつもりなので,完全に自己満足で完結してしまっているけど,創作って本来そういうものだとおもう.

テーマ : 日記というか、雑記というか… - ジャンル : 日記

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。