Help us understand the problem. What is going on with this article?

ふわっとマルチエージェントシステム

More than 1 year has passed since last update.

はじめに

マルチエージェントシステム( MAS: Multi-Agent System ) とは
「多数の」「知的な主体の」「系」 です.
それじゃわからんて? そらそうだ.
本記事は,私の研究について説明してもわかってもらえないことが多く,理解してもらえるように試行錯誤した集大成です.
何となくわかった気になってもらえれば幸いです.

※ここでは何となくわかった気になる,を目的としています.「エージェントとは何か」みたいなお堅い定義の説明などは他の記事に譲りますので悪しからず.

応用先の具体例

まずはどこに応用できるかを知っていただいて,何となくイメージを持ってもらえればいいなと思います.

  • エレベーター
    皆さんエレベーターに長く待たされてイライラした経験ありませんか?
    そしてそのエレベーターが激しく込んでいて見送る羽目になったことは?
    MASはこれを解決します.一台一台のエレベータに知能を載せて最適なルーティングをしてくれます.

  • お掃除ロボット
    広いお部屋にたくさん設置して勝手に最適な巡回ルートを学んでくれたら便利じゃないですか?
    MASでは,お掃除ロボットに学習をさせて勝手に分業を学んでもらいます.
    勝手に充電もしてくれます.

  • 自動車 ... 自動運転,話題ですね.自動車が知能を持てばあら不思議.最短ルートを導いてくれます.

お掃除ロボットはすでに人工知能を積んであるし勝手に充電するじゃないか,とか,エレベーターくらいなら集中制御でいいじゃないか,とかあると思いますが,重要なのは「勝手に」「協調関係」を学んでくれるところです.
例えば,建物1棟のエレベーターならともかく大学内全ての建物の制御だったらどうでしょう.
集中制御だと大変なことでもエレベータ一台一台が知能を持っていれば関係ありません.
また,故障した場合や新たに建物を増やした場合でも中身を改修する必要はありません.
エレベーター1台が動くアルゴリズムを書き換えるのにおよそ何万円必要か知っていますか?
私も詳しくは知らないのですがこの記事によると数百万単位になることも珍しくなさそうです.
それが必要ないのですからえらいもんです.

そして最後に大事なのは,上記の例はあくまでも例に過ぎないということです.
例えばエレベーターのアルゴリズムは昔から盛んに研究されてきましたが,これはもともとハードディスク内のヘッドの動きを制御するスケジューリングアルゴリズムのためです.
このように,適応できそうなところならどこでもいいのです.最近ならIoTやエッジコンピューティングがホットですね.
私もたまに何の研究をしているのかわからなくなる時がありますが,自分の研究がKubernetesなどのオーケストレーションシステムの負荷分散アルゴリズムに使えるのでは?ということに気づいてワクワクしております.

では,具体例でイメージを掴んだところでちょこっとお堅い話をしていきたいと思います.
(掴めてない? ごめんなさいとしか言いようがないです😞精進します.)

背景(何を解決したいか)

この分野は下記を解決するために発展してきました.

  • 人間社会はどのように成り立っているのか?
  • 協力や変化・環境への適応と言うものはどのように生まれるのか?

人工知能と言って一般的に連想されるのは例えば「アルファ碁」や上記でも触れた「お掃除ロボット」ですね.
しかしこれらは"1人で超強い"を突き詰めて作られた人工知能です.複数体での協調は考えておりません.また,変化に弱いです.
そこで,「知能がたくさん集まったときに何が起こるんだろう?」「たくさん知能がせめぎ合う中で最適な戦略はなんだろう?」を解決するのがMASの生まれた背景です.
MASでは,"複数の知能"が織りなす協調がどうできているか,どうすれば"全体として"最も効率よく利益が得られるか,を突き詰め現実からのフィードバックを得てそれを現実に還元することを目的とします.

ここは自動運転がわかりやすいですね. みなさん自動運転のどこがマルチなんだと思われるでしょう.
自分の最短経路を学習して交通ルールとかを学習するだけじゃないかと.でもよく考えてみてください.
みんながみんな最短経路を行ったらどうなりますか? 「お父さんが帰ってくる.駅に迎えに行かなきゃ.」
仕事が終わる時間は必然的に偏ります.こうして同じところに同時にたくさんの自動車が向かったら?
渋滞になりますよね.その場合むしろ遠回りするのが時間的には最短だったりします.
急がば回れとはよく言ったものです. このように,自動運転はもはや一台で完結する問題ではないのです.
「たくさんの」自動運転技術特化の人工知能の相互関係に注目しなければ解決できないわけですね.

要は現実のある課題をプログラム上で模倣できる程度にモデル化し,シミュレーションし,解決するにはどうすればいいか考える,あるいは解決できるような新たなモデルを提案する,ということです.

もう一個具体例

先ほどは応用先の具体例でしたが, もう一つ自然界のMASを紹介します.
知っている人は知っている,「働きアリの原則」についてです.

働きアリの原則とは, 蟻の群れを10としたときに2はよく働き6はそこそこ働くが残りの2はサボっているというもので,どんな組織にもサボる奴はいる,みたいな教訓としてよく聞く気がします.
しかし実際は奴らもサボってはいないのです.
サボっている蟻は疲労している蟻であり,働いているのは元気な蟻です.そのうち元気な蟻が疲れれば下の2割になり,回復した蟻は8割の一員として働きます.
このように,サボっている2割は全体のバッファとして機能しているのです. 有事の際に備えているとも言えます.
ここで注目して欲しいのが,蟻本人からすれば「疲れた,休みたい」「元気になったから働こう」と言うとても単純なルールでしか動いていないということです.
蟻自体は全体のためなんて一切考えていません.そもそもそんな脳は持ちません.
ところが人間の目線で見ると,全体としてうまく組織を回すようなアルゴリズムがあるように見えます.
説明されればなるほどなぁと言う感じですが,蟻はそんなこと知りません.気づいたら全体のためになっていたのです.

このように,ミクロな視点(蟻)での行動原理と,マクロな視点(人間)での現象理解の関係性を分析することで,現象がどのように創発されるかを解析するのがMASです.
分析して,実世界に応用した例が最初にあげた具体例になるわけですね.
なお,働きアリの原則のような例を「群知能」といい,この他にも渡り鳥の移動やイワシの群れなど自然界でもまま見られます.
興味がおありでしたら調べてみてはいかがでしょうか.

最後に

まとめてみれば具体例と背景だけになっちゃいました.
ざっくりマルチエージェントシステムとは,を説明しましたがいかがでしょうか.ちょっと冗長かなぁと思わなくもないですが自分では削るところがわかりません泣. 
明確に間違っている部分などあれば是非ご指摘ください. 私が取り返しのつかない赤っ恥を晒す前に.
その他にもコメントいただければ嬉しいです.内容は問いませんが私のメンタルが豆腐であることにご留意くだされば幸いです.

odds0128
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした