検索
連載

「何でもできるが誰にも使えない」――自作MASが突きつけた現実リタイア直前エンジニアの社会人大学漂流記(2-2)(1/3 ページ)

今回は私の自作MAS(マルチエージェントシミュレーション)、「EBASim(Embedded Behavioral Agent Simulation:心理モデル組込型エージェント・シミュレーション)」について説明します。EBASimを開発したのはいいものの、その後、ある絶望的な課題が浮かび上がってきます。

Share
Tweet
LINE
Hatena
MASイメージ図

3年間の休載を経て戻ってきました。休載していた理由は、私はリタイア(定年退職)間際だったにもかかわらず、「MAS(マルチエージェントシミュレーション)」を研究すべく、社会人のまま大学院博士課程に突っ込んでいったからです。なぜ“そんなこと”になったのか――。そして私をそこまでさせた「MAS」とは何なのか。社会人大学院生の実態を赤裸々に語りつつ、MASを技術的に深掘りしていきます。
⇒連載バックナンバーはこちらから

前編「定年間際のエンジニアが博士課程進学を選んだ「本当の理由」」

「EBASim」を作ったものの、絶望的な課題が……

 この連載は、MATSimを取り扱うものですが、今回は私が作成してきたEBASim(Embedded Behavioral Agent Simulation:心理モデル組込型エージェント・シミュレーション)*)のお話をさせて頂きたいと思います。実は、ここ2カ月くらいMATSimの調査を行ってきたのですが、どうやら私の作ってきたEBASimとはかなり大きな違いがあることが分かってきたからです。

*)EBASimとは「エージェントに“不満”をはじめとする心理状態を組み込めるMAS」のこと。

 私がEBASimを作ったのは、こういう背景がありました(大学の入学時の面接の時に作った資料から抜粋)

EBASimを作った背景

 まあ、簡単に言うと、(1)人間らしい振る舞いをするエージェントを、(2)現実と同じ人数分作って、(3)コンピュータで作った街に投げ込んでやれば『面白い“何か”が見えてくるんじゃないかな』と思ったということです。

 このEBASimの考え方に基づくエージェントに、3つの異なるダイエットを行った“バーチャル江端”があります(「“バーチャル江端”3人衆、ダイエットに散る」)。

 このエージェントには、ファジィ推論を用いた簡単な心理モデルを組み込んで、『完全なダイエット』を試みた”バーチャル江端”の一人が、拒食症に至り、死に至るプロセスを明らかにしました。

 私は、このような心理モデルを組み込んだエージェントを大量に街の中に放り込んでみたいと思って、EBASimを作り続けていました。

 EBASimには、以下の特徴があります。

(1)現実の世界(主に日本)の緯度・経度を使います。

 大抵の地図ソフト(Google MAP)は、緯度・経度を指定して表示されますので、MASのインタフェースとしては、最も使いやすい位置情報です。

(2)エージェントを「独立した実行単位」として実現しています。

 これは、かつては「プロセス」、この20年ほどは「スレッド」と呼ばれてきた概念で、私の場合はGo言語のgoroutinesを用いています。

 エージェントごとに独立した実行単位を与えることで、AさんというエージェントとBさんというエージェントが、コンピュータの内部で同時並行的に行動している状態を、そのまま再現します。

 かつて、プロセスでは同時に数人分、スレッドも同時に数百人分でしたが、Go言語のgoroutinesでは、私が確認した範囲では、数十万人(恐らく100万人規模も可能だと思っています)が動きます。さらに、エージェントをプログラム上で同時に動かすというのは、かなりの「夢物語」だったのですが、近年はこれが可能となっています(というか、私がEBASimにGo言語を選んだ理由、この“万”のオーダーのエージェントを並列に動かせる、ということに尽きます)

(3)フリーの地図データから地図データベース(DB)を作ります。各エージェントは自分でその地図を使って移動します。

 OpenStreetMapという、世界中の大勢の有志(同志)が作成してくれた地図情報(ありがたいことです)をダウンロードして、PostgreSQLというデータベース上で動くGISライブラリ「PostGIS」を使います。

 このPostGISが、(私に言わせると)“ものすごいヤツ”でして、SQL文を使って、最短経路や最短地点を一瞬に出力する“魔法のライブラリ”です。数万のエージェントが、数ミリ秒以下の時間間隔で、一斉にこのDBにアクセスしても、ビクともしません(私は、このPostGISの性能評価で、国際学会で特別賞を頂きました)。

 ただ、EBASimには、決定的で、かつ絶望的な問題が一つありました。

(4)江端しか使えない

 EBASimは、何でもできます。以下の図は、EBASimを使ったシミュレーションの一部です。

EBASimを使ったシミュレーションの一部

 LRT(次世代路面電車)とオンデマンドバスをジャストインタイムで乗換させたり、どのサイクルステーションをつぶしても問題がないかを調べるとか、4万人の人間を24時間10年間分動かし続けるとか、ほとんど正気とは思えないシミュレーションであっても ―― EBASimは動くのです。

 しかも、JOSMというOSMデータの改造ツールを使って、道路を作り変えて、電車を追加し、バスを減便し ―― もうやり放題ですが、それでも“動く”。

 なぜ動くのか? それは『私(江端)が自力でプログラミングをして、改造を続けるから』です。逆に言えば『江端しか使いこなせないMAS』である、ということです。

 現在のところ、このEBASimを使い熟せるのは、私以外では、ここ数年懇意にして頂いているソフトウェア会社の中の、さらにその中の特定のエンジニアの方だけです。

 Go言語という ―― すごい超並列計算を超高速で実行できるかもしれないけど ―― マイナーな言語(JavaでもPythonでもCですらない)を使って、PostGISというGIS専用のライブラリを組み合わせて、さらに地図の改ざんまでして、江端だけが使えるMAS ―― そんなものが流行る訳がない。

 人間とは、それがたとえエンジニアであっても、できるだけ手を抜いて、ラクして結果を得たい生き物です。そんな人間が、シミュレーションの対象を変える度にプログラムの改修なんぞするでしょうか? するわけがない。私でも絶対にやらない。

 しかも、江端はEBASimの中で、Go言語のカルトな機能を使い倒しています。EBASimの使用を他人に強要するのは“暴力”と言えるものです(そもそも、私が、その技術を他人に説明しきる自信がない)

「テンセラー」の書籍

 残念ながら証拠があります。私、このEBASimの使い方については、自費出版(500円ワンコイン)で構築手順書を配布しています ―― 収益が主目的ではなくて、『500円払っても読みたい人が何人いるか』を知りたかったからです。

 まあ、現時点で、10人程度の方にご購入いただいておりますが、“ミリオンセラー”に対して“テンセラー”とでも言うのでしょうか(本はこちら)。

 まあ『MASをスクラッチからDIYする』なんていうことは、一般の人だけでなく都市工学や交通工学の専門家の方であっても、「悪夢」のような話であることは私にも分かります。EBASimも、数年かけて、今もなお、私が作り続けているくらいですから。

 これをガウディの未完にして永遠のサグラダ・ファミリアのようだと評価するのか、あるいは延々と続く修行僧の写経のようだと評価するのかは、人によるとは思いますが。

 ともあれ、私はEBASimをベースとした、各種のシミュレーション(3年間で生成したソースコードは約1700ファイルありました)を実施して、博士号をゲットしてきた訳ですが ―― そんなカルトなツールを使わなければ追試ができないような研究を、私の後、一体どこの誰が引き継いでくれるというのでしょうか? 誰もやるわけがない。

 苦労した研究成果が、その人の頭の中だけに閉じて、そのまま後世に伝わることなく消え去る ―― そんなことは、世の中では当たり前のようにあるでしょうが ―― それでも未来に可能性が0とは言えません。

 しかし、私の場合、その可能性は絶対的な意味において“0”なのです。なぜなら、その研究を“動かすための道具”を誰も使えないからです。

 『私の研究は、私だけのもの』だと思ってきましたし、それで良いとも思っていました。しかし、博士論文の執筆にメドがつき始めたある時、冷たい感触が足の先から、膝へ、腰へ、腹へ、そして胸もとからのどへとせり上がってきて、その瞬間、私は初めて動転したのです。

 “私の研究成果を再現することのできる汎用MASツールへの移行” ―― これを成し遂げない限り、自分の研究を、真の意味で「完了した」とは言えない、ということに、私はようやく気がついたのです。

Copyright © ITmedia, Inc. All Rights Reserved.

       | 次のページへ
ページトップに戻る