ネットワークシステム研究室
指導教員: 坂本 直志
研究者氏名: 21EC053 芹沢 悠真
図1 小規模遅延の要因内訳[1]
本研究を進めるにあたり、シミュレーションを使った関連研究が多くなされている。
藤田らは、鉄道車両の乗降時間に関する実験的研究およびシミュレーション分析を行い、混雑状況下での効率的な乗降を実現するための要因を明らかにしている。モックアップ車両を用いた実験により、乗客の人数、車両・ホームの構造、乗客の立ち位置が乗降時間に与える影響を測定。その結果をもとに、乗客の行動をポテンシャル関数としてモデル化したシミュレーションを構築し、実験値とシミュレーション値を比較した。その比較から、混雑が進むほど乗降時間が非線形的に増加する傾向が確認され、混雑緩和策の重要性が示唆された。また、車両のドア配置や乗客誘導による改善策が乗降効率向上に寄与することが論じられている。
藤田の研究は、鉄道車両内の乗客の立ち位置選択と乗降時間の関係を数理モデルとして体系化し、シミュレーションを用いて分析を行ったものである。本研究では、車内混雑の程度が乗降時間に与える影響を非線形的に評価し、特にドア付近の混雑が乗降効率を低下させる要因であることを実証している。さらに、ドア付近の混雑を避ける行動が乗降時間の短縮に寄与することを明らかにし、鉄道事業者に対し、車内空間の配置や利用客誘導の最適化による運行効率向上策を提案している。本研究は、鉄道運営における人流管理の高度化に資する新たな知見を示し、実務的応用においても有用性が高い。特に、シミュレーション結果の妥当性は、実際の混雑緩和策の決定に向けた一助となっている。
大佛らは、鉄道利用客が車両を選択する際の行動特性を解析し、混雑緩和策の提案を目的として、研究を行った。駅ホームにおける乗車位置の選択は、階段・エスカレーターの位置、改札への利便性、混雑状況、他の利用客の行動に影響を受ける。本論文では、実地調査とアンケートを通じて利用客の行動データを収集し、車両選択における主要因を特定した。シミュレーション結果から、乗降客の混雑が特定の車両に集中する傾向が明らかになり、案内表示や階段配置の最適化、誘導策が有効であることを示している。
本研究では、シミュレーションソフトとしてNetLogoを利用する。NetLogoは、マルチエージェントシミュレーション環境の一つであり、特に個体ベースモデル(Agent-Based Model, ABM)を構築するために広く用いられている。1999年に米国ノースウェスタン大学のウリ・ウィルスキー(Uri Wilensky)によって開発され、教育機関および研究分野で多くの場面で利用されている。NetLogoは、エージェントの振る舞いや相互作用を記述するための専用言語を備えており、複雑な現象を簡潔にモデリングできる環境を提供するため本研究に適していると考える。
NetLogoのシミュレーション環境は、主に以下の3つの要素で構成されている。
NetLogoは、簡潔な構文を用いてTurtleやPatchに対して命令を出すことができる。今回作成したシミュレーションで利用したコマンドを以下に示す。
表1 NetLogoで使ったコマンド
コマンド | 説明 |
---|---|
globals | グローバル変数を定義する。シミュレーション全体で使用される変数である。 |
breed | 新しいエージェントの種類(breed)を定義する。 |
turtles-own | 各エージェント(タートル)が持つ独自のプロパティを定義する。 |
passengers-own | 乗客エージェント専用のプロパティを定義する |
to end | 手続き(プロシージャ)を定義する。 |
ask | 特定のエージェントに命令を実行させる。 |
clear-all | すべてのエージェント、プロット、変数をクリアする。 |
set | 変数に値を設定する。 |
let | 一時的な変数を定義する。 |
ifelse | 条件に基づいて異なる命令を実行する。 |
ifelse | 条件に基づいて異なる命令を実行する。 |
foreach | リスト内の要素を順番に処理する。 |
repeat | 指定した回数だけ手続きを繰り返す。 |
while | 条件が満たされている間、手続きを繰り返す。 |
if | 条件が真の場合に命令を実行する。 |
move to | 指定されたパッチにタートルを移動させる。 |
die | エージェント(タートル)を削除する。 |
tick | 時間を1ティック進める。 |
file open | ファイルを開く。 |
file print | ファイルにデータを書き込みむ。 |
file close | 開いているファイルを閉じる。 |
file exists? | 指定されたファイルが存在するかどうかを確認する。 |
set-current-plot | 現在のプロットを設定する。 |
set-plot-x-range | プロットのX軸の範囲を設定する。 |
set-plot-y-range | プロットのY軸の範囲を設定する。 |
plot | プロットにデータポイントを追加する。 |
show | メッセージを表示する。 |
patches | すべてのパッチの集合を取得する。 |
pxcor | パッチのX座標を取得する。 |
pycor | パッチのY座標を取得する。 |
set pcolor | パッチの色を設定する。 |
patch-at | 指定されたオフセットにあるパッチを取得する。 |
neighbors | 8方向の隣接パッチを取得する。 |
parches with | 条件を満たすパッチの集合を取得する。 |
sprout | 現在のパッチに新しいタートルを生成する。 |
face | 指定されたエージェントまたはパッチの方向に向く。 |
fd | タートルを前進させる。 |
rt | タートルを右に回転させる。 |
lt | タートルを左に回転させる。 |
distance | 指定されたエージェントまたはパッチとの距離を計算する。 |
one-of | リストの中からランダムに1つの要素を取得する。 |
n-of | リストの中から指定された数の要素をランダムに取得する。 |
create-global-plot | グローバル変数を使ってプロットを作成する。 |
plot | 現在のプロットにデータポイントを追加する。 |
本研究では、実際に現在も通勤の際に利用されている電車を対象に研究を行う。対象となるのは東武東上線の9050系である。東武鉄道9050系電車は、東武東上線で運用される通勤型電車である。9050系式は、東京メトロ(旧営団地下鉄)有楽町線および副都心線との直通運転に対応するため、既存の9050系をベースに、地下鉄直通運転に必要な改良を施して導入された系列である。5)埼玉県から都内へ出勤する人たちに多く使われ、朝や夕方の時間帯は大変込み合う。また、車内設備として、ロングシートを採用し、通勤時間帯の混雑に対応している。座席の想定使用人数はロングシート各7人、優先席各3人である。
乗客には、一般的な人間のモデルを使用している。本研究では、性差や年齢、体格、荷物の有無は考慮せず、すべて統一したモデルで行っている。体格は、人間の平均的な肩幅のサイズで作られ、頭部と肩幅が「頭部:肩幅 = 1 : 2」になっている。運動能力も人間の平均的な歩くペース6)の1.4 m/sに統一している。
多変量回帰モデル(Multivariate Regression Model)とは、複数の独立変数(説明変数)を用いて、1つまたは複数の従属変数(目的変数)を予測する回帰モデルのことである。統計解析での場面では、広く利用される手法である。本シミュレーションも、シミュレーションを複数回繰り返した時の値をもとにデータを算出し、各パラメータの因果関係について検証を行う。
多変量回帰モデルの式は次のように表される。
y = β0 + β1x1 + β2x2 + β3x3 + ε…①
これらの項は以下の表のような意味を持っている。
表2 多変量回帰モデルの各項の説明
項 | 説明 | シミュレーション内での各項の意味 |
---|---|---|
y | 目的変数(従属変数) | ティック数 |
x1,x2,x3 | 説明変数(独立変数) | ドア枚数、乗客数、降車率 |
β0 | 切片(x = 0 のときの y の予測値) | - |
β1,β2,β3 | 回帰係数(各説明変数の重み) | - |
ε | 誤差項(モデルで説明できない要因) | - |
多変量回帰モデルは、説明変数の線形結合を用いて目的変数を表現する。以下は①式を変換したものである
…②
これにより、説明変数が目的変数にどれだけ寄与するかを示すことができる。各回帰係数がその影響度を表す
②式によって得たのが次のような式の時、
y = 10 + 2x1 + 0.5x2 - 3x3
x1 の係数が 2 → x1が 1 増加すると、yは 2 増加
x2 の係数が 0.5 → x2が 1 増加すると、yは 0.5 増加
x3 の係数が -3 → x3が 1 増加すると、yは 3 減少
という変化を示す。
近似した曲線を探索するにあたり、「R²スコア」を利用する。回帰分析においてモデルの予測精度を評価する指標の一つで、「モデルがどれだけデータの変動を説明できているか」を表すことに役立つ。つまり、実際こうなるであろうという予測で描かれた関数に、比較させたいデータの関数がどれほど近似しているかを示すことに長けている。
値は 0から1 の範囲をとり、1に近いほどモデルの精度が高いことを意味する。負の値を示すこともある。
は次のように計算される
…③
yi: 実際の値
: モデルの予測値
: 実際の値の平均
分母 :データ全体の「ばらつき」を表す(全変動)
分子 :モデルの予測が実際のデータからどれだけ外れているかを示す(残差平方和)
このR2の値が
以下に計算例を示し、解説する。
表3 モデルデータによる算出表
実際の値 | モデルの予測値 | 平均値 |
---|---|---|
3 | 2.8 | 3.6 |
5 | 5.1 | 3.6 |
4 | 3.9 | 3.6 |
2 | 2.2 | 3.6 |
5 | 4.8 | 3.6 |
実際の値と予測値の差(残差):
(3 - 2.8)2 + (5 - 5.1)2 + (4 - 3.9)2 + (2 - 2.2)2 + (5 - 4.8)2 = 0.14
実際の値と平均値の差(全変動):
(3 - 3.6)2 + (5 - 3.6)2 + (4-3.6)2 + (2 - 3.6)2 + (5 - 3.6)2 =6.0
これらの式の値を③式に代入する。
R² = 1 - 0.14/6.00 = 1 - 0.0233 = 0.9767
この場合、R² = 0.9767となり、1に値が近いため、このモデルは非常に高い精度を持つことがわかる。
本研究では、鉄道車両内の乗客の降車行動をシミュレーションし、降車時間の特性を分析することで、乗客の流動性を可視化し観察することを目的としている。特に、乗客や車両のモデルを単純化することで、個々の乗客の行動ではなく、集団としての降車パターンや混雑が降車時間に与える影響を明確にすることを目指している。
本研究の方向性として、以下の点が示唆される。
本研究では、降車割合や乗客数が降車時間に与える影響を数値的に評価し、多変量回帰モデルを用いて降車時間の予測モデルを算出する。これにより、乗降にかかる時間を事前に見積もることが期待できる。
先行研究のデータから降車割合の増加に伴い降車時間が一時的に増加し、その後減少するという特性が見られたことから、乗客の降車特性が降車時間に及ぼす影響を分析することが重要であると考えられる。
本研究では、NetLogo を使用して乗客の降車行動をシミュレーションする。NetLogo は、個体ベースモデル(Agent-Based Model, ABM)を構築するためのプラットフォームであり、シンプルなルールを設定することで大規模なシミュレーションを容易に実施できる。
実際の車両サイズを単純なパッチ(セル)単位に置き換え、各パッチを50cm四方の単位とする。本研究のシミュレーションで利用する電車車両の大きさは長さ40patch、幅7patchの大きさになっており、実際の電車車両の大きさは長さ20,000 mm、幅3,878 mmであるため、1patchあたり500 mmの大きさで表している。ドアの幅は各ドア3patch、座席には各7人で座れるように設計してある。
乗客は座席または床に配置され、最も近いドアを目指して移動する。乗客に個性を与えすぎてしまうと、決まった状況下での降車行動しか見られないため、乗客のモデルは人の肩幅が平均45cm7)であることから、1patch=50cmで作成しているため1patch分のサイズで均一にした。
ドアは開閉状態を制御できるスイッチを持ち、開いているドアのみ通過可能とする。
本シミュレーションに利用したコードや関数については付録A、Bにてまとめている。ここでは、シミュレーションの流れをまとめる。
図2 シミュレーション画面
図3 本研究シミュレーションの降車客の動き
これらの動作を実行した後、シミュレーションのステップ(tick)を1進める
今回利用したシミュレーションが、実際の電車車両と同じような降車行動が行われるものであることを確かめるために、片側4枚のドアが開いたときの降車状況についての検証から始めた。
シミュレーションを開始するときに、n(乗客数)人の中からm(降車客数)人をランダムで選出がおこなわれ、mの値を変化させたときの平均降車時間の変化を計測し、観察する。nの値は、n=[50 , 100 , 150 , 200 , 250 , 300]となり、mの値は乗車率に対する割合をもとに決められ、m= [0.05 , 0.10 , 0.15 , 0.20 , 0.25 , 0.30 , 0.35 , 0.40 , 0.45 , 0.50 , 0.55 , 0.60 , 0.65 , 0.70 , 0.75 0. 80 , 0.85 , 0.90 , 0.95 , 1.00]をnに掛け算することで行った。シミュレーションは各値300回ほど行った。
図4 ドア枚数4の時の降車割合対平均降車時間のグラフ
図5 ドア枚数4の時の降車割合対平均降車時間のグラフの3次関数フィッティング
図4、図5は、乗客数に応じた降車割合ごとの平均所要時間を示しており、乗客数50人の時以外は、全体的に放物線型のアーチ状を描く傾向が見られる。このアーチは、降車割合が低い場合は所要時間が短く、降車割合が増えるにつれて一時的に所要時間が増加し、その後減少する現象を示している。具体的には、降車割合が40%から60%付近で所要時間が最大となり、それ以降は降車割合が高くなるほど所要時間が減少する傾向がある。これは、混雑のピークが40%から60%付近で発生し、降車割合が高まることで車内の混雑が緩和され、残留乗客の動きがスムーズになるためと考えられる
図5によって得られた3次関数フィッティングのグラフから、この3次関数のグラフに沿う3.3の多変量回帰モデルの式を近似させた。これにより、降車に関係する条件の因果関係を示すことができる。時間に対してどのパラメータがどれほど影響をしているかがわかるため、乗降にかかる時間の予測を行うことに適している。
これが多変量回帰モデルにより導き出された式である
tick数(ドア枚数、乗客数、降車率)=t(4,y,z)
=-2.5198 × 10-5 y3 z3+4.9372 × 10-5 y3 z2-3.0085 × 10-5 y3 z+4.3794 ×10-6 y3+0.0131y2 z3-0.0256y2 z2+0.0146y2 z-0.0014y2-1.9058yz3+3.5814yz2-1.8308yz+0.1592 y+73.28z3-136.8446z2+71.0703z+2.3083…④図6ドア枚数4の時の予測関数のグラフ
今回多変量回帰モデルによって導き出された予想関数を予想関数1とする。図7のグラフを見てみると、どの乗客数においても、2次関数のグラフと非常に一致しているのが見て取れる。
表4 乗客数ごとの一致率(R²スコア)
乗客数 [人] | R²スコア(三次補正式) |
---|---|
50 | 0.84 |
100 | 0.75 |
150 | 0.94 |
200 | 0.86 |
250 | 0.70 |
300 | 0.62 |
上記の表は3.3の式③から算出された残差平方和から全変動を割った値である。乗客数どの値をみても非常に高いスコアを得て、一致率が大変高いことがこのことからもわかる。
次に、式④によって得られた係数の値から、乗客数と降車割合が時間に与える影響を読み解いていく。
以下の表に各項の変数がどのような事象を及ぼすか説明をまとめる。
表5 式④の各項の説明
項 | 主な影響 | 例 |
---|---|---|
y3 | 乗客数が非常に多いときに影響 | 大人数グループが降車する時間の増加 |
y2 | 乗客数が多いときに影響 | 比較的大人数グループの降車で変化 |
y | 乗客数が少ない場合に影響 | 小人数グループの降車で変化 |
z3 | 高い降車割合でtickの増加をモデル化 | 非線形的な影響 |
z2 | 中程度の降車割合の影響をモデル化 | 緩やかな影響 |
z | 降車割合の線形な影響 | 基本的な変化 |
定数項 | 乗客数に関係なくtickに影響 | 降車割合のみの影響 |
表5で示す通り、各項は混雑のピークと緩和、乗客数と降車割合の相互作用を詳細にとらえるために重要な役割を果たしている。この関数は、少人数の時は時間の増加は緩やかになり、中人数程度だと降車割合が高くなることで、時間の増加が現れやすい。大人数の時では、どんな時も時間の増加は急激になる。
この式⑤のこの予測関数の関係式に条件を加えて起こる影響をについて考える。 例えば、乗客数y = 100、降車割合z = 0.5の条件を与えた場合、各項が所要時間に与える影響を以下に示す。
表6 変数を与えた時の影響
項 | 影響 (ticks) |
---|---|
a1y3z3 | -3.1498 |
a2y3z2 | 12.3429 |
a3y3z | -15.0427 |
a4y3 | 4.3794 |
b1y2z3 | 16.375 |
b2y2z2 | -64.0 |
b3y2z | 73.0 |
b4y2 | -14.0 |
300 | 0.62 |
c1yz3 | -23.8225 |
c2yz2 | 89.535 |
c3yz | -91.54 |
c4y | 15.92 |
d1z3 | 9.16 |
d2z2 | -34.2112 |
d3z | 35.5352 |
d4 | 2.3083 |
3次の項は、乗客数が非常に多い場合や降車割合が高い場合に大きく影響を与える。今回の乗客数は中程度なので、そこまで大きく変化を与えない。一番大きく影響を当てているのは、中間の2次の項だ。中程度の乗客数や降車割合に大きく影響を与えるため、2次の項が含まれる項のtick数は大きくなっている。線形の項は乗客数が少ない場合や降車割合が低い場合に影響を及ぼす。今回はそこまで影響を与えていないことがわかる。
以下に、式④に代入し、数値化した様子を示す。
t(4,乗客数,降車割合)= t(4,100,0.5)=
(-3.150)+0.9932+ 12.3429+(-15.043)+ 4.3794+16.38+(-64.0)+ 73.0+(-14.0)+ (-23.82)+ 89.54+(-91.54)+ 15.92+ 9.16+(-34.21)+ 35.5+ 2.31 =12.79 ticks …⑤
と、導き出すことができる。このように、式④は降車に関係する条件の因果関係を示すことができるため、大まかな乗客数と降車割合を与えるだけで、降車に要する時間を予測できる。
4.4で予測した予測関数から、降車割合が中程度の時に、やや山なりになる傾向がみられる。そこで、本研究で利用したシミュレーションの予測関数1と2.2にて紹介した関連研究の藤田のシミュレーションで得られたデータと比較を行いこの傾向について確かめていく。藤田の研究により得られたシミュレーションデータをもとに出力したグラフからプロットを抽出し、多変量回帰モデルの式に変形した結果を重ね比較を行った。
図9 抽出によって得た藤田のシミュレーション波形
この抽出したプロットから、予測関数を導き出した。
t(4,y,x) = 0.9934 - 0.00110y + 0.9932z +0.2687yz + 0.00045y2 + 0.9915z2 - 0.1267yz2 -0.00058y2z + 0.9907z3 + 0.9934…⑥以下に本実験のシミュレーションで得られた予測関数1と藤田の研究のシミュレーションで得られた予測関数2を並べて示す。
図10 藤田の波形の予測値(予測値曲線1)と
多変量回帰モデルの式から導き出した予測値(予測値曲線2)との比較表7 それぞれの関数の一致率(R²スコア)
乗客数 [人] | R²スコア(三次補正式) |
---|---|
50 | -0.445 |
100 | 0.891 |
150 | 0.836 |
200 | 0.646 |
250 | 0.702 |
300 | 0.800 |
図10と表7で示す通り、今回利用したシミュレーションが予測により出力した波形は、藤田のシミュレーションにより得た波形と重ねてみると重なるところが多かった。どうやら、モデルが違うシミュレーションを行ったが、降車特性にはあまり変化がないようだ。ただ、乗客数50人の時だけは、スコアが負の値を示し、特性がまったく一致していないようである。原因として考えられるのは、藤田のシミュレーションでは利用されていなかった、座席を配置したり、乗客のモデルの移動の速さを設定したりという条件が加わったからだろうと考える。
しかし、藤田のシミュレーションでも降車割合が中程度な時に同様な降車特性を得ることができた。わずかな降車客が動くために道を作り降車をスムーズにしたり、多くの乗客が出口に向かって流れに沿って降りたりする方が、早そうであると経験的に感じている性質を2つの異なるシミュレーションモデルによって示すことができた。
本研究では、鉄道車両内における乗客の降車行動を NetLogo を用いたシミュレーションによって再現し、降車割合と平均所要時間の関係性を分析した。その結果、降車割合が増加するにつれて一時的に所要時間が増加し、一定の割合を超えると減少するという特徴的な傾向が確認された。この傾向は、藤田らの実測データを基にしたシミュレーション研究でも確認されており、降車行動に関する基本的な特性を本研究のシミュレーションでも再現できたことを示している。
特に、藤田の研究では、実測データからポテンシャル関数を算出し、その関数を基に乗客の動きをモデル化しているのに対し、本研究では、乗客の個々の動きをルールベースで定義し、単純な移動モデルに基づいて降車行動をシミュレーションした。ところが、本研究のシミュレーション結果と藤田の研究結果には多くの共通点が見られた。降車割合が40%から60%付近で平均降車時間が最大化するという傾向が確認されたことは、車両内の混雑がこの範囲でピークに達し、降車経路が狭まることで、降車がスムーズに進まなくなることを示唆している。
この結果から、本研究のシミュレーションモデルは、ある程度の大雑把な行動モデルをでも、降車特性の大局的な挙動を再現できる可能性を示している。実際に、藤田の研究ではポテンシャル関数を導入することで、乗客の相互作用や混雑の影響をより精緻に表現していたが、本研究の単純化されたルールベースのアプローチでも、降車特性の一般的な傾向を捉えることができた。これは、個々の細かい行動パターンを必ずしもモデルに組み込まなくても、一定の仮定のもとで降車特性の大まかな挙動を捉えることが可能であることを示唆している。
本研究のシミュレーションと藤田のシミュレーションとの間には、相違点も見られた。特に、乗客数が少ない場合の降車特性が異なっていることが確認された。この原因として、本研究では座席の配置や乗客の移動速度に関する制約を導入しているのに対し、藤田の研究ではポテンシャル関数によって動きを与えていた点が考えられる。乗客がどのようにドアへ向かうのか、どのように他の乗客を回避するのかといった詳細な動作は、ポテンシャル関数を用いたモデルのほうがより精緻に表現できる可能性がある。
本研究では、単純化されたシミュレーションモデルであっても、実測データに基づいたポテンシャル関数モデルと類似した降車特性を再現できることを示した。これは、鉄道車両内の降車行動をモデル化する際に、必ずしも複雑な個別の行動モデルを導入しなくても、降車特性の大局的な挙動を捉えられることを意味している。今後はもっと細やかなところまで観測できるようなシミュレーションモデルを構築したい。