今回のMATSim(マルチエージェントシミュレーション)実践編では、エージェントの価値観や行動パターンを定義して、「通勤(通学)」させてみます。かなり“人間くさい”価値観を持ったエージェント1万人は、どんな行動を取るのでしょうか。
3年間の休載を経て戻ってきました。休載していた理由は、私はリタイア(定年退職)間際だったにもかかわらず、「MAS(マルチエージェントシミュレーション)」を研究すべく、社会人のまま大学院博士課程に突っ込んでいったからです。なぜ“そんなこと”になったのか――。そして私をそこまでさせた「MAS」とは何なのか。社会人大学院生の実態を赤裸々に語りつつ、MASを技術的に深掘りしていきます。
⇒連載バックナンバーはこちらから
⇒前編「ぼっち系エンジニア、「幸せ」について論文とデータで殴られる」
さて本日は、私がずっと目を背け続けてきた、MATSimの基本機能である、Scoring(得点付け)とReplanning(再計画)のお話をします。
なぜ私がこの2つに目を背けてきたかというと、これまでの私の研究では、この2つの機能が必要なかったからです。私は、ひたすらエージェントたちが「何時に、どのルートを通って、どの目的地に行き、誰と出会うか」しか興味がなく、それを、得点付けをして再度繰り返す、という手間を、ぶっちゃけ「面倒くさい」と思っていました。
ところが、今回の記事を書いて、Scoring(得点付け)とReplanning(再計画)がなかなかに「面白い」と分かってきました。今日は、その話の入口までたどり着きたいと思っています。
MATSimの資料では、次のような図が、かなり頻繁に登場します。
私は長い間、この図を「MATSim の処理手順」だと思っていました。
つまり、
という、単なるフローチャートだと思っていたのです。
しかし、違いました。MATSimにとって、これは「処理順序」ではありません。むしろ、“システムの本体構造”そのものだったのです。
これ、MATSimでは「そういう順番で処理する」という意味ではありません。MATSimは、原則として、この構造を持たないと動かないのです。つまり、これはフローチャートではなく、むしろ「回路図」に近い。
私は、ここを完全に勘違いしていました。
実際、これまでの連載でも、config.xmlの中にはscoringやreplanningの記述を残してはいたものの、実際には、ほぼ動かないようにしていました。
理由は単純です。私が、その機能にあまり興味がなかったからです。
私は、
などのデータ構造や、エージェントの移動、イベントの発生、可視化の方に興味がありました。
逆に、scoring(スコアリング)やreplanning(再計画)は、――「まあ、後で使うチューニング機構みたいなものだろう」くらいに思っていたのです。そして、もっと言えば、私はこれを「全体最適化」のための機構だと考えていました。
例えば、制御工学におけるオペアンプのネガティブフィードバック回路のように、
というタイプのものだと思っていたのです。
Copyright © ITmedia, Inc. All Rights Reserved.
記事ランキング