DATE: 2017/03/12(日)   CATEGORY: 未分類
探索シミュレータVer.2報告会(1)

2017年になり今年もマウスを頑張っていこうと思っていたら
気がつけば3月になっていました。

時が進むのが早過ぎる。

先日今年になってから行っていた
探索シミュレータVer.2が完成したのでその報告です。
シミュレータ合宿(非公式)などもして楽しかったです。
マウス本体の方はもう少し時間がかかりそう。

主にやったことは以下の通り。

1.壁情報の保存方法の変更
2.全体的なソースコードの整理
3.アイコンをかわいくした
4.昨年マウスに実装したアルゴリズムのシミュレータ実装
5.探索アルゴリズムの改良

1.壁情報の保存方法の変更について
昨年のシーズンにかつて元部長が言っていた方法を取り入れてみた。
理由はフレッシュマン世代に教えるためであったが、
やってみると個人的にはこっちの方が使いやすい。
メリットなどは参考記事を読みましょう。

元部長の参考記事はこちら

Miceでは多数派であった1区画あたり8 bitを割り当てる方法
を使っている人は新作で変えてみるのはありかもしれないです。

自分はこんな感じで壁情報保存配列を用意しています。

壁情報

bitがx座標、配列の番号がy座標というイメージ。
入れるときは、壁情報[y]|(1<< x)
消すときは、壁情報[y]&(~(1<< x))
壁情報にアクセスできる関数を作っておけば気持ちがいいですよ。


2.全体的なソースコードの整理
前回の探索シミュレータはフレッシュマンを終えて
テンションに身を任せて作成したものでした。
今年読んでみたらあらわからない。
まあ壁情報の変更も兼ねて整理するよね。

探索シミュレータはマイクロマウスをやる上で
必ず必要なものではないけれどあると便利です。
真面目な顔をしてPCを開いていれば、堂々とマウスをやれる。

また、自分みたいな初心者にはプログラムを書く練習だったり、
シーズンで学んだことを一度整理するいい機会になるので
まだ作ってない人は挑戦してみては?


3.アイコンをかわいくした
(・8・)

アイコン紹介


4.昨年マウスに実装したアルゴリズムのシミュレータ実装
昨年実装したもので特別な物は
おそらく直進優先歩数マップと斜め対応直進優先歩数マップ。
前者については以前書いたので省略。今回は後者について解説です。

ベースとなる考え方はこちら

これについて直線的に展開を行っている。
通常の直進優先歩数マップは4方向のみの展開でした。
斜め対応直進優先歩数マップは8方向について展開しています。
以下に出力例を示します。重みの参考値として、直進14減少2,斜め10減少2。
迷路は2016年全日本クラシック・エキスパート決勝

2016全日本斜め優先歩数マップ


これの良いところはこれだけで"簡単に""ある程度"良い経路が見つかるところです。
例えば、2016年東日本地区大会クラシック迷路の経路比較。

2016東日本経路

こちらは、2016年九州地区大会クラシック迷路の経路比較。

2016九州経路

経路の違いによる走行タイムのシミュレーションを行っていないため
正確な差はわかりませんが、
速度を出せそうな経路を通れていると思います(願望)

また、重みのバランスを変更することにより
斜めを避けたり逆に斜めを優先させたり
マウスの特徴に合わせた経路選択が手軽に行えます。
重みパラメータを変更して経路比較はやってみたいですね。
簡単に上位陣の経路に近い経路を探せます。

現状の欠点は、単純に直進を優先して展開しているだけなので
効率の良いターンの選択が行えないことが挙げられます。
これは2017年の課題ですね。

一旦ここで区切って5についてはもう1つ記事で書こうと思います。
続く…

スポンサーサイト

コメントの投稿

 管理者にだけ表示を許可する
Copyright © うむ夫の歩み. all rights reserved.