ArchLinux,MATLAB,制御理論など(の予定)

マルチエージェントシステムの制御1

2016-11-18

以下の本を読み始めたので各章に関するちょっとした雑記1
マルチエージェントシステムの制御 MATLABでboidsを実装してみたのでその報告が主。(もはや本の紹介ではない

最近あたらしく色々と参考書を読み漁っているので、読み進めたところまでブログを書くと理解が深まるのかなという同期から更新してみようかなぁ。

第一章 序論 #

第一章は序論ということで、マルチエージェントシステムの導入といった感じ。 boidsから始まって、センサーネットワークやらなんやら。 boidsを実装したことがお恥ずかしいことになかったので、MATLABを使って作ってみました。 boidsのアルゴリズム自体に関しては文献が沢山存在するので特にいうことはありません。 ただ、MATLABで作ってみると色々MATLABのことを知ることができて良いかもしれません。 boids

MATLABの描画関連 #

MATLABの描画周りの知見を得られたので良かった。MATLABを使うと色々な関数がそろっていて大変うれしいのですが、高速に描画を行って欲しいときはちょっと辛い。 とりあえず、何でもオブジェクトにしてプロパティをセットして動かすとかなり速くなります。 グラフィックス オブジェクトのプロパティ あとはメモリを大盤振る舞いしてアイコンの回転した状態のimageを360度分全部持っておくと、わざわざアイコンを回転させる手間がなくなるのでこれも速くなりました。 boidsのアイコンとして動かしたい画像をimage関数で取得して保持しておき、 表示する場所を決めるプロパティであるXData,YDataと、 表示するデータを決めるプロパティであるCData,AlphaDataをset関数で変えることによって比較的高速に描画することが出来ました。 ## MATLABの関数 MATLABを使うと個体間の距離が関数一つで計算されるのでかなり楽です。 pdist 今回は簡単に一番近い個体に速度と向きを合わせるような実装をしたので、pdistで手に入れた距離から行列形式に表示して、minで最小となるindexを取ってくればそれが最も近い個体の番号に対応するのでめっちゃ楽です。 進行方向や恥での動きについては思考停止でゴリゴリ条件文を書いてしまったのでちょっとだめ。


Blog comments powered by Disqus