2012年5月12日 (土)

壊れるヒンジの性質

この動画に「それは単に斜めから当てると分力で弱くなるからでは」とコメントがついた。

複数の壊れるヒンジを取り付ける向きによって、耐久性が変化するか実験してみる。

円の密度を徐々に上げていくと、このように耐久性が異なることが分かる。
……あれ? 縦に2つつける方が重力に耐えやすくなると思っていたのだけど。

動画中の25秒までの実験は、分力だから斜めに当てる方が壊れにくいというのももちろんあるのだが、それだけではない。

壊れるヒンジについて、もう1つ私が知っていること。
ヒンジが壊れるときに、力を生むことはない。つまり、ヒンジが壊れなければFixで固定されたときと同様に完璧に跳ね返し、壊れるときはヒンジがないときと同じように振る舞う。


上は壊れるヒンジあり。下は無し。この2つは、壊れた後同じように振る舞う。


って、同じにならんじゃないか。上はヒンジが衝撃を吸収したのか、板が飛ぶ量が小さい。

まあ、壊れるヒンジというのはこのくらい分からないことが多いのですよ。

ヒンジ装甲とSHS

動画を投稿

SHSは空気抵抗の影響を受けにくく存速が大きくなるはずだったんだが、実験で使ったパラメータではそうならなかった。本来は戦艦を想定して20~30kmで実験したかったのだが、演算精度の問題で断念。
合計200回の射撃試験をしたわけですが、【Phun】障害物皐月賞で進化してみたと同様に、Perlとuwscを用いて自動化しています。ヒンジが壊れたかどうかの判定は、命中後のシーンにScene.addHingeが何行あるかで判断しています。
・完全破壊=ヒンジが2つとも壊れた=Scene.addHinge無し
・部分破壊=ヒンジが1つ壊れた=Scene.addHinge1行
・無傷=ヒンジが壊れなかった=Scene.addHinge2行

2012年5月11日 (金)

「ここに橋を架けてくれ」ミッション

Phunのミッションを提案してみる。

Algobox

Phunで橋を架ける動画のマイリスト。これでマイリストを使い切ってしまった。100件しか登録できないのか。

2012年5月10日 (木)

なぜ私のタグがついてる?

検索してたらこの動画に「仁科二等兵」のタグがついていることに気づいた。なぜだ? はがしといたけど。

2012年5月 6日 (日)

なぜ退化するのか


についた、コメントに対する回答。

・40世代でいったん退化してるのは何?
・20世代100秒切ってなかった?

理由は2つあります。
・Phunはシミュレーションするたびに結果が変わる
・高速な車体は転倒しやすい(今回シミュレーションした内容では天井に衝突するところまでは行きません)

つまり、高速な車体が登場する→たまたま転倒せず走行できて次世代に引き継がれる→次世代では転倒するということがおこるので、タイムが悪化することもあり得るのです。

横軸世代、縦軸走行時間としたグラフです。

全体として、世代を経るに従ってタイムが短縮される結果になっていますが、単調減少ではないことが分かります。例えば14世代のところに95秒の個体がいますが、それ以降の世代では再現されませんでした。転倒する率が高いので、生存できなかったのでしょう。
GA的な表現では、タイムを短縮する淘汰圧と、転倒を避ける淘汰圧の均衡点あたりで振動している感じです。

2012年5月 4日 (金)

PhunにGAを導入する方法

そういえば大事なことを書いていなかった。

これで使った全体的なフレームワークの説明。

1. Perlスクリプトで遺伝子を決定し、車体とステージを含むphnファイルを生成。
2. PerlスクリプトからPhunを起動。phnファイルを引数に指定することで読み込ませる。
3. PerlスクリプトからUWSCを起動。
4. UWSCはスクリプトによって、Phunへスペース(シミュレーション開始)、スペース(シミュレーション停止)、[Ctrl]+[S](ファイル保存)、[Ctrl]+[Q](Phunの終了)を送信する。
5. UWSCが終了したら、Perlスクリプトは保存されたphzファイルをzipへリネームしてコピーし、展開する。
6. 展開されたphnファイルを解析して走行時間を得る。(boxにtext = ""の形で入っている)
7. 新たな遺伝子を生成して1へ戻る。

一番の親ルーチンになってるのはPerlスクリプト。別にPerlでなくても良い。イベントドリブンな言語は避けた方が良い。
キモはPhunのコントロールにUWSCを使うところ。C#からSendkeysを使ったら、Phunが反応しなかった。一般的なキー入力ルーチンを使っていないようだ。

2012年5月 3日 (木)

anlifeも面白そう

人工生命シミュレータのanlifeも面白そう。
見た目に変化が見えにくいのが難点か。


Phunコンのルールはどうあるべきか

惑星探査ミッションの動画

をみると、ルールの抜けについていくつかコメントされている。

・高さ制限なしなら、空間固定はさせないほうがいいかもしれない・・・
・縦も制限あった方が良い気がするけどな
・でかいクレーンでもおkなのかwww
・縦が無限だと惑星までそのまま届くのもありじゃね?
・それだと馬鹿でかいロボットアームもOKになるけどいいの?

それでも、このミッションはよいミッションだった。
参加者も結構な数いたはず。

コンテストでもルールを厳密に決めない方が良いと思う。

【Phun】障害物皐月賞で進化してみた

GA(遺伝的アルゴリズム)による最適化を、障害物皐月賞のステージで試してみた。

アルゴリズムの概略

1世代あたりの個体数=8
突然変異の幅=最大で±現在のパラメータの10%
評価関数=走行にかかった時間
ただし、転倒した場合、天井に接触した場合は10000秒で走行したものと見なす
交叉は無し

8つの個体のうち最も早かったものは、次の世代へ残す
他の個体は1÷(走行時間-チャンピオンの走行時間)の確率でルーレット選択し、突然変異をした上で次の世代へ引き継ぐ

遺伝的アルゴリズムの説明はこの動画がわかりやすい。

2012年4月20日 (金)

日米の国力比較

HoI3 GER AAR2をプレイしたときの、日米の国力比較です。

実効IC
アメリカは1942年まで参戦しなかったので-50%のペナルティがついていますが、参戦すると+50%になります。

陸軍力

海軍力

«休日の王城建築