2011年12月9日金曜日

github_masterをpush

githubのアカウントを登録をした。
忘れるからメモ

まずリポジトリを作成(New repositoryボタンをクリック)

そうすると、、、以下のような画面に遷移
Project Name と Description書いて
Create Repositoryをクリック(HERE!!って遊びで書いといた)
すると、
たしかSSHのやつをcloneしてもいけるんじゃね?


masterとして送る方法(多分公開keyと秘密鍵が必要?)
チュートリアルから
ローカルにて
>mkdir Hello-World
>cd Hello-World
>git init
>touch README
>git add README
>git commit -m 'first commit'
>git remote add origin git@github.com:自分のアカウント名/Hello-World.git
>git push origin master
これでさっきリポジトリを作成したページを更新するとできてた。


2011年12月7日水曜日

rails 3.1.1 をmac lion にインストール

前回 ruby 1.9 を入れた

>ruby -v
ruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-darwin11]


こんなのでる。

次にgemのリストを見る

>gem list
~
rails (3.1.3, 3.1.1)
~


いろいろ失敗して3.1.3とか中途半端に入っていて、かつ3.1.1も失敗していた。
最初からやるために一度アンインストールしとく

>sudo gem uninstall rails

Select gem to uninstall:
 1. rails-3.1.1
 2. rails-3.1.3
 3. All versions
> 3
Successfully uninstalled rails-3.1.1
Remove executables:
rails

in addition to the gem? [Yn]  y
Removing rails
Successfully uninstalled rails-3.1.3

アンインストール成功したっぽい
確認はもっかいアンインストールしようとするか、「>gem list installed」とかで確認できる。
やっとgemでrails -v 3.1.1をインストール
しかし、このままでは"lib" notfound的なエラーが.....
下記を実行
>sudo gem install rdoc

Fetching: rdoc-3.11.gem (100%)
Depending on your version of ruby, you may need to install ruby rdoc/ri data:

<= 1.8.6 : unsupported
 = 1.8.7 : gem install rdoc-data; rdoc-data --install
 = 1.9.1 : gem install rdoc-data; rdoc-data --install
>= 1.9.2 : nothing to do! Yay!
Successfully installed rdoc-3.11
1 gem installed
Installing ri documentation for rdoc-3.11...
Installing RDoc documentation for rdoc-3.11...

これが今まで失敗していた原因だったぽい

>sudo gem install rails -v 3.1.1

次に確認として、railsで何かしらのプロジェクトを作成
そしてサーバーを立ち上げる
>rails new hoge
成功したら
>cd hoge
>rails server

=> Booting WEBrick
=> Rails 3.1.1 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
成功
テキトーにブラウザ開いて
http://localhost:3000
を開く。
確認done


===余談

次にお決まりのMacportのselfupdate

>sudo port selfupdate
ちょっとこれ毎回しんどい。cronで常にupdateをかけようか迷うレベル
portは無理やり .zshrc の環境変数に
>vi .zshrc

export PATH=/opt/local/bin:/opt/local/sbin:$PATH
export MANPATH=/opt/local/share/man:/opt/local/man:$MANPATH
これらを入れないといけない。こんなふうに無理やりパスを通すと、いろいろ不具合が出るのかね?(出るらしい)
portではなく、これから homebrew にしようか迷う
これは保留



2011年12月4日日曜日

gdbメモ

授業で
LLVMのソースを読むことをした。
その際にgdbを使い、ソース読み。

gdbを実行する前に、コンパイルする際に-vをつけると情報いっぱい。

(gdb)>b 関数

b= (breakpoint)
で run した時、止める

(gdb)>s
で関数に潜ったりする。

(gdb)>fin
finishでsから一回分抜け出す。

(gdb)>n
nextで次の命令へ飛ぶ

(gdb)>where
関数がスタックに積まれている様子を見ることができる

(gdb)>l
今いるソースを(10行)表示

2011年11月30日水曜日

Mario AI Competitionにて、プログラムからMarioを動かす in 2009

何度も右往左往

2009ver -> 2011ver -> 2009ver(今ここ)

とりあえず、参考サイト通りの動きができた

参照したのは、

> /src/ch/idsia/ai/agents/ai

以下にある
ForwardAgent.java
これと参考サイト様を見ながらやっていく。以下のようなソースを作成。
> /src/ch/idsia/ai/agents/ai/KanpeAgent.java



package ch.idsia.ai.agents.ai;

import ch.idsia.ai.agents.Agent;
import ch.idsia.mario.engine.sprites.Mario;
import ch.idsia.mario.environments.Environment;
import ch.idsia.utils.MathX;

/*
*By Kanpe777
*/


public class KanpeAgent extends BasicAIAgent implements Agent
{
private int trueJumpCounter = 0;

    public KanpeAgent()
    {
        super("KanpeAgent");
        reset();
    }

    public boolean[] getAction(Environment observation)
    {
if (trueJumpCounter > 16) {
                trueJumpCounter = 0;
                action[Mario.KEY_JUMP] = false;
            } else {
                trueJumpCounter++;
                action[Mario.KEY_JUMP] = true;
            }

        action[Mario.KEY_RIGHT] = true;

return action;
    }
}

このファイルを作成して、AIMarioのトップディレクトリにて
>ant
コマンドを実行、BUILD SUCCESSFULがでるはず
>cd classes
にて、
>java  java ch.idsia.scenarios.Play ch.idsia.ai.agents.ai.KanpeAgent
これで定期的にジャンプをするMarioができる。

これをGAでやるため、メタプログラミングをするか迷ったが、既に学習プログラムがある。
もともとに入っている。
次は、NNで学習しているソースを読みたいと思う。



2011年11月28日月曜日

LLVM3.0のビルド_Lion

ちょっくらソースを読むためにビルド

まずダウンロードとかしたいが、公式ページによると2.9まではダウンロードできるが
3.0はsvnじゃないと無理とかorz

mkdir とかでとりあえず、svnで落としてくるようのディレクトリ作成。
>mkdir ~/llvm

作成したディレクトリのsvnでおとす
>svn co http://llvm.org/svn/llvm-project/llvm/trunk ~/llvm
>mkdir ~/myllvm
>cd ~/myllvm
>~/llvm/configure --disable-optimized --enable-assertions --enable-debug-runtime --enable-debug-symbols
そうするとmakeファイルができる。
>ls

Makefile         config.log       include/         runtime/         utils/
Makefile.common  config.status*   lib/             test/
Makefile.config  docs/            llvm.spec        tools/
bindings/        examples/        projects/        unittests/

以前gccをビルドする際に、フツーにmakeをすると、6h以上かかってしまったので.....
パラレルビルドをしてやります。
make j○<-数字
My Mac はcoreは2個なので2にしてやりました。
1h以内でおわったはず
>make -j 2
でやりました。
jの後に引数を渡さないと、やりすぎとあるので気をつける。
※j の後の引数はコア数*1~2がいいとのこと

んで、make終了。

2011年11月15日火曜日

Rubyのバージョンを上げる

色々苦戦したので載せる

MacにはデフォルトでRubyが入っている。

>ruby -v
ruby 1.8.7 (2011-06-30 patchlevel 352) [i686-darwin11]

Ruby on Railsの環境構築のサイトは結構あるが、Rubyのバージョンアップはなかなかしんどい。
っていってもやることは、MacPortsのバージョンアップをして、installをやればok。

MacPortsのバージョンアップ
>sudo port selfupdate

Ruby1.9のインストール
>port search ruby
ruby19 @1.9.xがあるはず

インストールする
>sudo ports install ruby19 +nosuffix
これで、ruby19としてではなく、rubyとして登録できる。

>ruby -v
ruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-darwin11]
done

参考にさせてもらいました。

2011年11月12日土曜日

Mario AI Competition 2009 -> 2011 移行

参考サイトに沿って、じゃあ次はプログラムで動かすぞー
しかし、googleグループにあるはずのiMario.jarがない!!
2009/5/18(一番古い記事)に遡っても、iMario.jarは見つからないorz

色々やってみた。しかし、見つからないorz
eclipseも用意したのに...

もう2009を諦める。
実は2011年verがあるのでそれに移行する。

2011 Mario AI Championship

上記のサイトから「Getting Started」--> 「Mario AI Benchmark source package」から「MarioAI.zip」というファイルをダウンロード。
解凍する。

















MarioAI フォルダ内にて

>cd MarioAI/bin/AmiCobuild/PyJava
>java ch.idsia.scenarios.Main

あっさり起動。

A:fire and run
S:jump
←:左へ動く
→:右へ動く
↓:ストップ and しゃがむ
W:強制終了
L:ラベル(ウィンドウのからの座標?)
C:マリオの位置をセンターへ
G:グリッド表示
Z:ウィンドウをズーム
-:FPS を1下げる
^:FPSを1上げる
8:FPSを無限
スペースキー:ポーズ
F:空を飛ぶ(チートw)





前回までは、時間切れや敵にあたって死亡すると、そのままだったが、今回は色々結果が出力され、プログラムも終了した。

例:時間切れの出力結果
[~ Mario AI Benchmark ~ 0.1.9]

[MarioAI] ~ Evaluation Results for Task: BasicTask
Evaluation lasted : 122994 ms
Weighted Fitness : 307
Mario Status : Loss...
Mario Mode : FIRE
Collisions with creatures : 0
Passed (Cells, Phys) : 15 of 256, 243 of 4096 (5% passed)
Time Spent(marioseconds) : 200
Time Left(marioseconds) : 0
Coins Gained : 0 of 285 (0% collected)
Hidden Blocks Found : 0 of 0 (0% found)
Mushrooms Devoured : 0 of 0 found (0% collected)
Flowers Devoured : 0 of 0 found (0% collected)
kills Total : 0 of 40 found (0%)
kills By Fire : 0
kills By Shell : 0
kills By Stomp : 0
MEMO INFO: Reason of death: Time out!

プログラムが良い感じになってる〜
2011/11/12

2011年11月8日火曜日

Mario AI Competition にて最初の一歩

Mario Competition 2009というのがあったらしい

この話はRL Competition 2009の一部....
RL Competition = 強化学習コンペ(Reinforcement Learning Competition)
強化学習アルゴリズムを競う大会

頑張ればこんなこともできる

Infinite Mario AI - Long Level



ちょっと課題でこれを機会学習でマリオを操作することになった。(面白そ~)
方法はGA(遺伝的アルゴリズム)!!

最終的にはGAでマリオの動きを最適化とかしたい。
GAでやる方法も後々考えるorz
下記のブログ様を参考にさせてもらいました。
http://symfoware.blog68.fc2.com/blog-entry-120.html


動作環境
Mac OSX 10.7.2
javaのバージョン:1.6.0_26

Mario AI Competition



このサイトの「Getting started」から右上にある「source code」をクリックするとソースコードがzip形式でダウンロードされる。


これを解凍して動かす。
方法もこのサイトに載っている。
marioai/classesにて
>java ch.idsia.scenarios.Play
すぐに起動


マリオの動作
→:右へ
←:左へ
↓:しゃがむ
 s :ジャンプ
 a :ファイアボール
  l :各Agentの座標
 w :強制終了
まぁ最初はこんなもん
2011/11/8

2011年8月24日水曜日