カスタマーズコンファレンス2000 e-Technology to the Next Century

Session B. マルチエージェントシミュレーションとリスク分析

セミナー議事録

Back

【発表者と公演内容】

15:40 〜 16:20

 (株)構造計画研究所 創造工学部 辺見 和晃

Photo of Mr.Henmi

Topic: 情報端末と遊園地シミュレーション

 仮想遊園地における情報端末の有効性を検討するシミュレーションシステムを紹介するとともに簡単なアルゴリズムで検討できることを紹介する。

資料をダウンロード(PDF書類、589KB)

 

【議事録】
 

【辺見】

 それでは始めさせていただきたいと思います。私、辺見と申します。よろしくお願いいたします。本日はお忙しい中、お越しくださいましてありがとうございます。私の発表させていただく内容は、今までの非常に高尚な3つの発表に比べまして、比較的やわらかな内容になっておりますので、気楽にお聞きいただければなと思っております。

 題名のほう「遊園地における混雑情報と入場者の行動」ということで書いてございますけれども、実際の内容としましては、こちらの3つを考えております。まず1つ目、今まで3つのご発表の中でエージェント別のシミュレータ、弊社において開発させていただきましたシミュレーションのプラットホームなんですけれども、こちらのほう、あまりまだ十分なご説明をしていないということもございまして、こちらのほうに関しましてちょっとご説明をさせていただきます。そして2点目、実際にABSを用いたシミュレーションの構築ということで、実際にABSというアプリケーションを立ち上げて、どのようにシミュレーションを構築していくのか、どうやったら先ほどのような高度なシミュレーションが行えるのか、ごく簡単な例を実際に5分程度でつくってみまして、動作環境ですとか、どういったことの設定が必要かというようなことをご理解いただければなと考えております。

 そして3点目、こちらのほうが題名となっております「遊園地における混雑情報と入場者の行動」、こちらのほうが私の発表させていただく中で最も高度なシミュレーションの内容となるんですけれども、実際に遊園地という箱庭をこのABSというものを使って、コンピュータ上に遊園地という箱庭を再現してみる。そしてその中、入場者はいろいろアトラクションを回って、そして行列をしながら帰っていくというのがあるんですけれども、その中に混雑情報というのを入場者が把握できるようになった場合、どのように入場者の行動は変化していくのか、そしてそれが遊園地全体の状況としてはどのような変化をもたらすのかというようなシミュレーションを行っております。こちらのほうも2つ前の高橋先生のご発表でよく出ていました予期しない結果ですとか、ああ、なるほど、そういう結果が出るのかというような、ちょっとおもしろい結果が出ております。

 こちらの内容のほうに関しましては、ハンドアウトですとかワーキングペーパーがお手元にあるかと思いますので、そちらもご参照いただきながら見ていただければと思います。

 それでは本題に入らせていただきます。まずエージェント・ベースド・シミュレータ、今までのご発表を見させていただきまして、シミュレーションをするということは十分わかっていただけると思うんですけれども、ではエージェント・ベースド・シミュレータ、なぜこんな名前がついているのかということなんですけれども、今までのご議論の中でも幾つかあったんですけれども、もともとちょうど3年ぐらい前でしょうか、複雑系という言葉が非常にはやったんですけれども、その複雑系という分野の中に、エージェント・ベースド・モデル、ボトムアップ型モデルと書いてございますけれども、こちらは例えば人工生命ですとか、人工社会、そういったものをコンピュータ上であらわすときに、こういったエージェント・ベースド・モデルというような手法でシミュレーションを行う系というのをモデリングをしていくわけです。実際にはこのエージェント、日本語に訳しますと代理人とかいろいろあるんですけれども、例えば個と訳すのが多分一番私は好きなんですけれども、個々の動作の総和、個々が好き勝手に動いたとき、全体的にはどうなっていくのか、その個々の総和が全体へ影響することによって、実は個々では予想できない結果みたいなものも出てくる。また、いわゆる創発現象、複雑系でいうところの創発現象のようなおもしろい現象も起こってくる。こういった系を再現しよう、そういったモデルがエージェント・ベースド・モデルという、ボトムアップ型のモデルがありますけれども、こちらのほうをコンピュータ上で簡単にシミュレーションを行えるツールをつくってみたいということで、エージェント・ベースド・シミュレータというのを開発いたしました。

 実際にこのエージェント・ベースド・モデルの例なんですけれども、例えば交通渋滞、トンネルに入るときに1人ひとり、ちょっとずつブレーキを踏む。そのブレーキを見て、さらに後ろの人たちがまたブレーキを踏む。それらの総和によって、実際にトンネルの前では全く意味のないような自然渋滞が大きく起こってしまうというような例えば例があります。また鳥の群れを考えてみますと、非常にきれいなフォーメーション、V字型ですとかいろいろあるんですけれども、こういったフォーメーションはある鳥が指令を出して、そういったフォーメーションをつくっているというわけではないんですけれども、おのおのの鳥が多分ちょっと前にいる鳥と同じ方向にちょっと飛んでみようかなと、実際には鳥に聞いてみないとわからない話なんですけれども、実際にそういった細かいルールに基づいて鳥が動くことによって、全体としては非常にきれいなフォーメーションを持った鳥の群れというのを形成する、こういったようなエージェント・ベースドの考え方が適しているようなモデルが幾つかございます。こういった系を表現するという点で、このボトムアップモデル、ボトムアップ型モデルというのはコンピュータの発達とともに、非常に注目されてきている1つの分野でもございます。

 そもそもエージェント・ベースド・シミュレータ、ちょっとまだ仮称なんですけれども、こちらのほう、なぜ弊社で開発を行うようになったのか、ちょっと経緯的なものをお話しさせていただきますと、まず96年あたりに複雑系というものがはやっていたこともありまして、若干興味を持ちまして、そちらのほうのメッカと呼ばれているサンタフェ研究所に、ビジネスネットワークとして参画いたしました。こちらのほうに関しましては、後の発表の服部のほうから幾つかあると思うんですけれども。そのサンタフェ研究所というところで、SWARMという先ほど申し上げましたようなエージェント・ベースド・モデルをコンピュータ上に構築する、プログラミングのライブラリーという、SWARMというようなものと出会いました。またちょっと別のところなんですけれども、MITのほうでエージェント・ベースドというキーワードというよりも、むしろディセントラリレーションという、日本語に訳すと分散型モデルになるんでしょうか、そういったモデルを表現するためのSTARLOGOという、こちらのほうはどちらかというと高度なシミュレーションというよりも、簡単な研究ですとか、教育用を目的としてつくられたSTARLOGOというLOGO言語を使った、非常にわかりやすくて簡単なシミュレーションプラットホームがございました。こちらのほうは簡単なのはいいんですけれども、逆にちょっと制約が多いかなというようなプラットホームだったんですが、ほかにも幾つかあるんですが、こういったものを見ていく段階で、SWARMを使うためには高度なプログラミングの知識が必要ですので、より簡単にできないかですとか、STARLOGOのような若干制約が大きいものではなくて、よりフレキシビリティの高いものというプラットホームはないのか、そういったものがないのであればつくってしまえという形で、エージェント・ベースド・シミュレータ、ABSというものを開発させていただきました。

 実際にこのABSというのは、どのようにして使うのか、どういう過程を経てシミュレーションというのを行うかということなんですけれども、まずエージェント・ベースド・シミュレータ、ちょっと後で実際にやってみますが、立ち上げますと新規作成というのを行いますと、ワールドというシミュレーションを行う世界、世界の全体というワールドという白い画面が出てまいります。その中に例えば先ほどのアリのモデルですと、2次元空間のようなものを、空間を入れていくわけです。そしてその中にいるアリ、すなわちエージェントというのを入れていく。またそのアリの例えば視野ですとか、持っている財のようなものをエージェントの属性として定義します。簡単にいえばこのワールドの中に空間ですとかエージェントですとか、エージェント属性、変数のようなものを入れることによって、シミュレーションを行う系というものをつくっていくわけです。

 そしてそのシミュレーションを行う系が確定しますと、その各エージェントはどのように動くのか、どのように動いてほしいのかというエージェントの行動ルールというのを設定していきます。こちらのエージェントの行動ルールが結局全体としてはどういうことを起こすのか、エージェントの行動ルールを設定した後、よーい、どんでスタートしたら、各エージェントはそれなりに行動ルールに従ってわがままに動くわけなんですけれども、それが全体としてどういう影響を及ぼすのか、そういったことをこのシミュレーションで行うことができます。

 では実際に見ていただいたほうがいいということで、1つごく簡単な例をABSを用いたシミュレーションの構築ということで行ってみたいと思います。

 まず、ABSのほうを立ち上げますと、こういった何もない画面がありますので、新規作成というふうにします。その辺は先ほど申し上げましたとおりワールドというような、ちょっと見えにくいかとは思うんですけれども、ワールドという世界に今、ただ1つしかない構成物が出てまいります。そしてその中、これはキャンバスという画面なんですけれども、キャンバスという画面があって、この中に例えば空間というような要素を入れていく。ちょっと名前をつけて、空間でいいでしょうか、日本語名でも英語名でも何でもいいんですけれども、そして2つ前の例にありましたループというのを一応設定してみます。この空間というのは2次元平面で50×50というサイズを持っている。そして周り、右に行ったら左が出てくるというような端点の処理を行っている、そういった空間になっています。シミュレーションを行うワールドの中に、1つ空間というのを定義しました。

 そして次に、その中にエージェントを1人ちょっと入れてみます。こちらエージェントの名前、例えば人という名をつけて、オーケーとやりますと、今、ワールドというのの中に空間、そしてその空間にいる人間、人というのが定義づきました。今、空間の中に定義しましたので自動的にこういった属性、例えば自分の座標ですとか、向いている方向というのを定義することができるんですけれども、実際にこの中にはそのほかの属性、例えば何でもいいんですけれども、人ですと年齢ですとか性別、ちょっと発展した段階では幸福度ですとか健康というようなものも加えることができるわけです。

 このようにして今、ツリー、これは世界全体を見ることのできるツリーなんですけれども、まずワールドというものがあって、そして空間、そしてその中に人がいて、その人というのはこういう属性を持っている、そのようにGUIによってシミュレーションを行う世界というのを決定していきます。

 このようにしますと、シミュレーションに存在するものというのがすべてそろったわけなんですけれども、ここに人というのに、その行動ルールを与えてやります。その行動ルールというのがこういったいわゆるルールエディタという画面で設定を行う、ちょっと見えにくいので本当のほうを。今、画面のほうに、ちょっと後ろの方は見えるかどうかわからないんですけれども、Agent init、そしてstepという2つの()が書いてあります。こちらのほうはちょっとなれない方はおわかりにくいかと思うんですけれども、上のほうの()の間にシミュレーションが始まるときに準備という意味でルールを書くことができます。始まるときの行動ルールですね。そしてstepのほうでは、シミュレーションというのはある時間の区切り、時間の単位で進んでいきますので、その1つの単位にエージェントというのが何をするか、この場合人というのはどういう行動をするのかというのが記述してあります。

 例えば初期設定のところで、今、50×50の空間の中に人はいますので、今、自分の位置というのを設定してあげます。自分の横座標といいますか、横位置というのが例えば24、真ん中ですね。Y座標も同じような値の設定をしてやります。これでごく単純なルール、人が空間の中にいて、その座標がこういった座標にいるというような簡単な行動ルールができました。そこでこれを実行してみるわけなんですけれども、実行して何も出ない。これは出力の設定というのをやっていないからで、田中先生のお話の中で行動ルールを書くことだけに専念したいというのがあったんですけれども、出力というのはGUIで次々と設定していくことが可能です。この場合、空間というものを前提としたシミュレーションを行おうとしておりますので、その表現方法というのをまず、先ほどから出ていますような2次元のマップ状のものがいいんじゃないかということで、選んでいきます。これ以外にも時系列のグラフですとか棒グラフのようなものも出力することは可能です。

 こうしてどういったものを出力するかというのを決定していくんですけれども、今、2次元マップの中に人というのを表示しなさいという簡単な設定を行っています。そしてスタートボタンを押しますと、先ほどの空間の真ん中に人がいるという単純な結果が出ております。これだけではちょっとつまりませんので、ちょっと人を動かしてみましょう。各ステップの中で1歩ずつ歩くというような、ちょっとルールを変えてみます。この場合、ホワードというルールを書くんですけれども、こういった各ステップで1歩ずつ進みなさいという命令を書きますと、実際に上のほうに行って、これは空間がループしておりますので上に出ていたものが下から出てくる。こういったような人の行動というのを記述しました。

 では、ちょっと今、上に行っているだけではつまらないということもありますので、実際に今、向いている方向というのをちょっと初期状態でいろんな方向を向かせてみよう、ちょっと変えてみます。これはある方向を向かせることもできるんですけれど、今ちょっとその方向をランダムに、360度ランダムに設定しておきます。このようにルールを変えて実行しますと、いろんな方向に実行することができ、いろんな方向に動いてまいります。

 ここまで非常に単純な例なんですけれども、単純にただこれだけの例でもちょっと人という数をふやしてみます。エージェント数今1となっていますが、例えばここを100としてみます。ものすごく単純な例なんですけれども、こういった例を実行してみますと、こういった当たり前なんですけれども、いろんなところにいろんな方向、360度ランダムに100人の人間が向いて、同じところからスタートすると先ほどのように輪になって広がっていくというような現象が見てとれます。

 このようにある1人の人間のルールを設定することによって、例えば100人であるとか、もうちょっとふやしてみて200人としてみますけれども、500人ぐらい。やや動きが遅くなるかと思うんですけれども、きれいな絵になっています。このようにものすごく幾何学的な模様なんですけれども、これは先ほども設定しました非常に単純なルールにのっとって、これだけ複雑なのか単純なのかよくわからないんですけれども、おもしろい結果が得られる。これだけではちょっと、何も社会現象的なことはいえませんので、若干ここにエージェント同士の相互作用というのをちょっとだけ入れてみます。どういう相互作用を入れるかと申しますと、周りに、近くに人がいたら、ちょっと方向を変えてよけようという、どの方向によけるかまで考えずにとりあえずよけようという、ごく簡単なルールを書いていきます。こういった関数が用意されておりますので、その周りを見るという、何人いるかという関数も用意されていますので、それをちょっと利用します。何人いるかというのが、自分を含めて1人より大きければ、例えば方向を変える。方向を変える一番上のがありますが、ちょっとこれをコピーしていきますと。私の書き方が正しければこれで人に会ったときには方向を変える、ちょっと人が多すぎますので、100人に戻してみますと、こういったような最初、同じところからスタートしていますので、非常に混雑して、これを社会現象に当てはめるのなら、ある劇場かなんかの入り口を想定していただければいいかなと思います。劇場から出た人、非常に混雑していますので、いろんな方向へ行きたいんですけれども、なかなか行けない。ようやく今、ばらばらになりましたけれども、こういったぐあいになかなか出ていかれない。

 通常こういった込みぐあい、従来のシミュレーションでいくと例えば人間の密度とかを計算しまして、例えば移動速度に重みづけをしてやる、そういったようなやり方があるんですけども、こういったぐあいに1人ひとりにルールを与えることによって、その込みぐあいの進みぐあいが変わってしまう。ちょっと結果的なアプローチになるんですけれども、そういったような込みぐあいのシミュレーションですとか、そういったことは簡単に行える。

 そして従来のシミュレーションですと、そこに例えば新たな要素が加わった。例えばものすごく嫌われ者ですとか、ものすごく異臭を放つ人というのを、例えば配した場合に、どういうふうに人の動きが変わっていくのか、従来のシミュレーションの方法ではなかなかそういった実験的なアプローチというのは難しいんですけれども、こういったぐあいに1人ひとりの行動を記述するだけですね。例えば嫌いな人がいたら、その人と反対方向によけていくので、本当にみんなが嫌うような人がいれば、逆に混雑というのはあまり起こらないんじゃないかとか、いろいろな結果を得られるかと思うんですけれども、とりあえずこういった形でシミュレーションを行うことができます。試しにもうちょっと人数をふやしてみましょう。多分実行結果はそれほど変わらないと思うんですけれど、もっと混雑している。ようやく抜けた人も多分、こちら、ようやく抜けて、こっちに戻ってくる人がいるんですけれども、その人もまた混雑に巻き込まれると、ループしているのでこういった変な現象が起きるんですけれども、なかなか、たった7行、1、2、3、4、5、6、7行のルールを書くだけで、非常におもしろいような模様がかけるという、ロジックを書くだけという点で、非常に簡単なシミュレーションが行えるのではないかと考えております。

 こういった形で、いろいろほかにも機能はあるんですけれども、ABS、田中先生、高橋先生、そして遠藤先生がお話しされたようなシミュレーションというのは、こういった形の積み重ねで、より深いシミュレーションを行っていらっしゃったということになります。ここでABS、簡単な例ということで終わらせていただきます。

 それでは次に表題にあります「遊園地における混雑情報と入場者の行動」ということについてお話をさせていただきたいと思います。

 まず概要なんですけれども、このABSを使って仮想的な遊園地をモデル化します。要するにこのコンピュータの中に仮想的な遊園地、今回の場合、非常に簡単な遊園地なんですけれども、仮想的な遊園地をモデル化します。そしてその中の入場者の行動というのを再現します。例えば先ほど申し上げましたようにいろいろなアトラクションをめぐって、自分が満足したらまた入り口に戻って家に帰ると、そういった非常に簡単な行動を再現する。こういった1つの箱庭をつくるわけなんですけれども、この箱庭に混雑情報という新しい要素を追加したらどうなるのか。下の方に書いてありますけれども、箱庭の作成をして、そこに新しい要素を追加したときにどうなるか。先ほどの簡単な例でいうと、ものすごく嫌われ者を入れたらどうなるかというような実験と一緒なんですけれども、この仮想的な遊園地に混雑情報、ここでいう混雑情報というのは各入場者が各アトラクションの行列数を知るというような、非常に簡単な混雑情報なんですけれども、そういった入場者が混雑情報を得ることによって、その人たちの動きはどうなるのか、そしてそれが全体的にはどのような変化を及ぼすのかということについて考えてみました。

 基本的なモデル、こちらのほうはただの箱庭ということになるんですが、遊園地の構成物としましてはこの3つの入場者、そしてアトラクション、ゲートというのがございます。この中で入場者というのを今回、ゲートから生成された入場者は各アトラクションを回って戻るというようなルールなんですけれども、ゲートによって生成される入場者、今、開門と同時に100人入場者が入ると仮定しております。そしてその後は1分間に5人ずつ遊園地に入ってくる、そういった仮定をしております。またアトラクションのほうは遊園地内に3つしかない、ごく簡単な遊園地ですので3つしかない遊園地というのは現実にはないわけなんですけれども、3つのアトラクションを考えます。そのほかにはゲート、ここで入場者というのは生成して、入ってきた人を消すというような役割を担っています。こういった場合に、空間というのがちょっと要素として抜けているんですけれども、2次元、遊園地という2次元空間の中に入場者、そしてアトラクション、ゲートという3つの種類のエージェントを配置しました。

 実際に入場者、細かい行動ルールというのはどういうふうにのっとって動くのかということなんですけれども、まずゲートから入ってきた入場者というのは行動決定を行います。行動決定と呼んでいますが、要はどこのアトラクションに行くのかというのをまず決定します。その決定要因、こちらのほうはちょっと覚えておいていただきたいんですけれども、まずアトラクションの選好度、もちろん好きなアトラクションには行きたいわけですので、まずアトラクションの選好度、どのアトラクションが好きかという要素と、そしてその入り口、入ってきたところですね、入り口からアトラクションまでの移動距離、こういった2つの要素を各アトラクションに関して計算しまして、その2つの要素でよりよいと思われるアトラクションを選択します。ここで今、より好んでいるアトラクションでより近いアトラクションというのをまず目指すことになります。そしてそのアトラクションまで道に沿って移動します。この辺若干複雑なアルゴリズムを使っているんですけれども、その道、2次元空間にあります道に沿って移動する。そしてアトラクションに到着しますと、ここから拘束と書いてありますけれども、ここからアトラクションに身を任せる。行列に並んでアトラクションを楽しんで、そこから解放されるまでというのは、アトラクションに身をゆだねていますので、ここでルールとしては単に拘束されるだけと。そしてアトラクションを楽しんだ後、解放されるともう一度行動決定を行うか、それとももう満足したので退場するか。各入場者というのは、3つアトラクションがあるわけなんですけれども、すべて全員回るわけじゃなくて、ある程度選好度を満たすもの、例えば2つで満足する人もいれば、3つ行かなければ満足しない人もいるというような設定で行っております。

 それで例えば1個行って帰る人もあれば、また行動決定を行って、残っているアトラクションの選好度と残っているアトラクションまでの移動距離を計算して、次はどこに行くかというような行動決定を行います。そうした中でほぼぐるぐる回るわけなんですけれども、行動決定を行ってアトラクションに行って、そしてまた行動決定を行って、場合によってはアトラクションの後、退場する、こういった入場者の設定を行っております。

 一方、入場者が到着したアトラクションなんですけれど、これはどういう動作ルールを行うかといいますと、到着した入場者の待ち行列の登録、到着した入場者をそこで待ちなさいというようなアトラクションが動作するわけです。そしてその待ち行列からアトラクションへの登録、アトラクションに空きがあればその待ち行列の最初の人から、どんどんどんどんアトラクションに入れていくということ。そして今、アトラクションの中には滞在時間というのを設定しておりますので、滞在時間を過ぎた入場者というのを次々と解放していきます。これによって入場者は行動決定をしてアトラクションのほうに行く、そしてアトラクションは拘束して、そこで滞在させて、そして解放する。そしてその入場者はまた行動決定して別なアトラクションへ行く、こういったサイクルで繰り返されるわけです。

 もう1つ、非常に単純なエージェントなんですけれども、出入り口、ゲートです。こちらのほう、入り口で確率的に入場者を生成、約1分間に5人、一番最初ですと開門と同時に100人入るという設定なんですけれども、確率的に入場者を生成します。そして出口に来た人を削除するという簡単な、やや……な動作を行います。

 こうして設定された遊園地というのをまず見ていただきたいんですけれども、実行しますとこういった画面が。ちょっと前のほうの方は見えるかもしれないんですけれど、ゲートから人が入っていっているのが見てとれる。ちょっとこの機能を使ってズームのようなことを、拡大ですか、やってみます。こんな感じで見えますでしょうか。ここが今、ゲートになっておりましてアトラクション、こちらのほうと、ちょっと今は下に隠れているこちらのほうとこちらのほう、3つのアトラクションがありまして、今、設定ではこちらのほうとこちらのほうがやや人気のアトラクションという設定をしてあります。ですので入場者は比較的こちらかこちらに行く確率が高くなっていると思います。

 こういったぐあいに入場者はゲートから入ってきてアトラクション、今、こちらは数字、やや見えにくいかもしれないんですけれど、待ち行列の人数が今、58人待っているというのがありまして、例えば待っていれば自分もそこで待って、待ち行列が自分の番が来たらアトラクションに入り、そして終われば、1個で満足すればもう帰る。満足しなければ違うアトラクションに寄って帰るというような、こういった繰り返しになるわけです。このように基本モデルとして簡単な遊園地というのを、遊園地の箱庭というのをコンピュータの中につくってみました。

 こういった箱庭をつくったわけなんですけれど、ここに各入場者、今、行列とかいろいろつくっていたんですけれど、ここに混雑情報というのを追加したらどういう現象が起こるのであるか。混雑情報の追加といいましても、各入場者の行動ルールを若干変えてやるわけです。今まで行動決定、どのアトラクションに行くかという行動決定に際しては、例えばアトラクションの選好度とアトラクションまでの移動距離という2つの要素で考えておりました。そこに混雑情報を持つエージェント、後で出てきます混雑情報を持つエージェントと持たないエージェント、持つ入場者と持たない入場者というのがいるんですけれども、混雑情報を持つ入場者、さらにこれにアトラクションの混雑状況というのを判断して、行動決定を行います。こちらのほうは単純に行列の情報を考えております。

 このようにして混雑情報を持つ入場者はアトラクションの選好度、より好きで、より近くにあって、混雑していないものを次々に回るようなルールを設定いたしました。実際に見ていただきますと、今、こちら混雑情報ゼロ、また拡大したほうがいいかもしれません。今、こちら混雑情報ゼロでやっております。そして若干次から入ってくるエージェントに混雑情報を持っている人、要するに行列の情報が一目でわかる人を入れてみます。赤い色で入ってきたのが、今、青いのと赤いのといるんですけれども、赤いので入ってきたのがいると思います。今、こちら左下のアトラクション、こちらのアトラクションは非常に人気の高いアトラクションで、行列ができております。そうしますとこちらは人気なので本当は回りたいんですけれども、この赤い入場者はそれを避けるような行動をします。逆に今、青いエージェントを生成しようとしますと、この青いエージェント、この行列情報を知りませんので自分の好きなところからわがままに回っていくというような、こういった行動ルールの設定を行っております。

 そこで実際にこういった混雑情報が、全体にどのような影響を及ぼすかについてなんですけれども、今回結果としましてはこの混雑情報所持率、要するに遊園地の中に混雑情報を持つ人間が何%いるかということを0から100%まで変えていきまして、全く混雑情報を持っていない遊園地、すべての入場者が混雑情報を持たない場合から、すべての人間が混雑情報を持つ場合、行列を考えて行列の並んでいないところになるべく行くような、そういった入場者をすべて持つ場合まで、10%ごとに変えてみて結果がどう変わるかというような研究を行ってみました。

 その結果なんですけれども、結果の評価指標としましては、こちらの2つを考えております。まず1つは満足度、遊園地に行って満足して帰ったかどうか。我々もちょっと満足度というといいすぎかもしれないんですけれど、入場者の平均滞在時間、要するにどれぐらい満足して帰るかというのは一定ですので、実際にそれをどれぐらい効率的に回れたか、これを満足度として評価指標としました。もう1つ、行列がどのぐらい分散しているか。行列が起こっているところじゃないところに行こうという行動をするわけで、各アトラクションの行列人数を見てみれば、どのくらい効果があるのか見てとれる。そういった形でこういった2つの評価指標を調べてみました。混雑情報を全く持たない場合の0%から100%まで、10%刻みで調べてみました。

 そこでまず混雑情報を持つ場合と持たない場合、すべての人がその行列の情報を知ることができない場合、そしてできる場合、情報を持っているのはこれからちょっと赤い色で示されますので、ちょっと覚えていただきたいんですけれども、実際、平均滞在時間、情報を持っている人が100%、すなわちすべての入場者が行列の人数を把握できたならば、比較的0%、すべての人が持っていないときよりは比較的効率がよく回って帰っていっている。比較的に満足して帰っていっているんじゃないかな。ここで行列情報の効果というのは一応あるんじゃないかなというふうに考えられるわけなんですけれども。

 実際には100%の場合、次のような問題が起こっております。ちょっと後ろの方は見えにくいかと思いますので、ワーキングペーパー等参照いただければいいんですけれども。0%のとき、非常に人気の高いアトラクション1、アトラクション2というのに行列が集中しております。ただ、皆さんがその行列の情報を持つことができる場合には、こういった場合に行列の分散は起こっております。ただ、こちらの分散、非常に混雑の波というものがございまして、例えばあるAというアトラクションがあいているという情報があれば、そちらのほうに情報を持っている人たちは行きたがるわけですね。そうするとそこのアトラクション、Aというアトラクションは込んでしまいますので、今度はBというアトラクションがすいてしまう。するとその情報を知った入場者たちはBのほうに殺到してしまう。交通渋滞へ行きますと、ある道がすいているといえばみんなそこへ行くので、そこは結局込んでしまうというような、混雑の波と書いてみましたけれども、こういったぐあいにいろんなアトラクションが次々と混雑していく。分散はしていて、先ほどの効率は比較的上がっているんですけれども、こういった形でちょっとむだな部分が非常に多いんじゃないかということがいえると思います。あいているという情報が逆に混雑を生むんじゃないかなという結果が出ております。

 次に100%から80%、情報を持っている人たちをやや減らして、情報を持っている人と持っていない人というのを同時に存在させて、80%の人が行列の情報を持っていた。比較的多い、混雑情報を持っている人が多い場合なんですけれども、これは知らぬが仏と書いてございますけれども、これは混雑情報、混雑の波、先ほどちょっと説明しました混雑の波に巻き込まれる入場者、要するにこれは情報を知っている人間のほうが効率が悪い。要するに混雑情報なんか知らずに自由に回っていたほうが実は効率的であって、なぜそれが効率的かというと、混雑情報を知っている人たちがいろいろ考えて違うところに行ったり、また別のところに行ったり、いろいろ考えてくれるおかげで、全体的には何もしないほうが効率的に回れてしまうという、ちょっと皮肉的な結果が出ております。

 では、実際にどれぐらいの情報所持率がいいのかということなんですけれども、こちらを見ていただきますと非常に一目瞭然なんですが、こちらの平均滞在時間、先ほどちょっとこんな時間はめったにないのであれなんですけれども、非常に効率的に回っているという数値が出ております。また行列もほとんど分散、逆にほとんど行列が起きていないというような結果が出て。これは情報を持っている人たちが行列を避けるように動いて、自分の好きなように動く人たちの行列というのを緩和しているという、いい例なんですけれども、逆にここでも情報を持つ者と持たない者、全く平均滞在時間としては変化がない。逆に直感的に情報を持ったほうがいいんじゃないかというようなものがあるんですけれども、実際にその情報を持ったほうがいいという人は得するケースというのは、大体20%ぐらいマイナーになって初めて情報所持者が得するというような結果が出ております。

 何を、これを交通渋滞でいいますと、例えばビックスという交通渋滞を知らせるようなシステムがあるんですけれども、たとえばこれを全員の人が持っていたら、本当に渋滞というのは解消されるのかどうか。本当に持っていたほうがいいのか。例えばもちろんビックスの情報に従って動くことが前提なんですけれども、もしそういった情報を持っている人がたくさん多ければ、実はあまり効果がないんじゃないか。逆に少ない場合だと非常に効果を、情報を持っているほうが効果を、得するというようなケースになってくるんじゃないかなというふうに考えております。

 実際にこの20%とか30%、40%とか、こういった数値、例えばアトラクションの数を変えたりですとか、入場者の数を変えたり、そういったことに非常に敏感に反応しますので、あまり数値的な意味はないんですけれども、先ほどのような結果をちょっと教訓としてまとめますと、混雑情報を提供することはある程度の行列分散や満足度の向上を望める、100%であってもそれは向上すると。ただ、情報所持者が多い場合、混雑の波というものができてしまう。要するにあいているところに行くというような現象が起きて、そこがまた込んでしまう。そういった混雑の波によって、所持者が多い場合に、混雑の波によりその効果が薄れるという現象があります。また3番目、情報所持者がある一定のときに非常に大きな効果を生む。うまくわがままに回っている人と、行列を避ける人がうまく相乗効果をもたらしたと。

 そして最後、非常に皮肉的なのが、必ずしも情報所持者のほうが高い効果があるとは限らない。例えば遊園地の入り口において、皆さんが遊園地に行かれて、遊園地の前で行列情報を得られる端末を持ちますかと、例えばiモードで行列情報を取得できるようなサイトを紹介しますかと聞かれたら、皆さんは大体行列情報をずっと欲しいので、そういった端末を持ちますというような答え方をするとは思うんですけれど、実際にみんなが持ってしまうと、行列の波のようなものが発生してしまう。今回の結果だけで申し上げれば、例えばこういうふうに聞かれたら、どう答えるのがいいかというと、今、どのぐらいの人がこの端末をお持ちなんですかというような、聞き返すということが非常に重要なのではないかなと思っているわけです。

 このように情報をただ単に垂れ流すだけということでしたら、混雑の波というような負の要素が出てきますので、ただの情報の垂れ流しというのはあまりよくないという結果がここで得られております。

 では、実際にどうすればいいのか、混雑情報を提供したい場合はどうすればいいのか。そういったときには適切な予測と情報操作、情報のコントロールをすることによって、うまく混雑の波のようなものが起きないようにコントロールが必要なのではないか。もっとその先に行けば、ただ単に一方向に情報を与えるのではなくて、各個人がどのアトラクションに回りたいのか、そしてどれぐらいアトラクションが好きかというような個人の目的、どういう順番で回りたいかというような個人の目的を、例えばもらって皆さんの、入場者全員のそういう情報をもらって、それを最適化した形で情報を流してあげる。個人へさらにフィードバックをかけたり、ワン・ツー・ワンじゃないんですけれども、そういった形で情報というのはただの垂れ流しをしてもあまり意味がなくて、コントロールですとか、より個人に対するフィードバック、インタラクティブな情報というのが非常にこういう場合も有効なんじゃないかなという結果か出ております。

 最後にこの遊園地モデルについてまとめさせていただきますと、箱庭をつくってその中に新しい要素を加えてみる。これは従来コンピュータ上で行うシミュレーションというのは、いわゆる数理モデル、ある数式を立てて計算を解くというようなイメージが多かったんですけれども、どちらかというとコンピュータ上の物理モデル、実際にこれをたたいたらどうなるかというふうな実際の物理モデルに近いような形のシミュレーションができるのではないかな。そこからいろいろな示唆が得られるのではないかなということを思っております。また、こういった遊園地のほうで、例えば今、非常にアトラクションが限定されていたり、配置は実際と違っていたり、いろいろあるんですけれども、実際の例えばスペースワールドとかディズニーランドとか、実際のアトラクション数に合わせたり、また2番目にあります入場者の行動というものを、今は単純にこちらが決めたんですけれども、例えばちょっと後で話が出てくるかもしれないんですけれども、コンジョイント調査ですとか、そういったものをやって、例えばあるアトラクションの選好ですとか、移動距離による選考というものをきちんとはかって、それをモデルの中に組み込んでやる。そしてさらにそうやってできたシミュレーションを、実際の各地点における交通量調査などをもとに、より整合性の高いものに改善していくというような、こういったより現実に近いものへシミュレーションを改定していくことによって、実際の定量的な示唆、今回は非常に何十%のときに何%になるというのはあまり定量的に意味がないんですけれども、実際のモデルに近いものにすることによって、定量的な示唆、要するにビジネスで使えるようなデータ、非常に重要なデータが得られるようになるのではないかなと考えております。

 実際に今のところ、こういったことをあまり、非常にこういうところを全部やりますとお金もかかってしまいますし時間もかかってしまいますので、研究レベルではなかなかできないんですけれども、今後例えばビジネスの世界において、こういったシミュレーションというアプローチがたくさんなされると、もっとおもしろい結果ですとか、有用な使い方というのが出てくるんじゃないかなと、そう考える今日このごろでございます。

 ちょっと時間的にはどうかはわからないんですけれど、これで私の発表を終わらせていただきます。どうもありがとうございました。

【司会】

 どうもありがとうございました。質問のほうはこの後、辺見のほうに直接お声をかけていただければと思います。きょうはちょっと司会進行の私のほうがうまく運べませんで、お時間が実はもう終わりの5時になってしまいました。そこで5分間だけ休憩をとりまして、もしこの後もお時間をいただける方がいらっしゃいましたら、5時5分から最後の発表を30分ほどかけてさせていただきますので、5分後にまたこちらにお戻りいただければと思います。どうもありがとうございました。

 
 

Back