新幹線の最適化予約システム 親: iphoo さん KMSF B1 fuse
アウトライン 研究概要 問題意識 アプローチ 実装 デモ 評価
概要 空いている席の中からさらに、乗客の快適度を加味、重み付けして席を予約する方法を提供する。 現在の予約方法は、予約順に空いてる席をただ前から埋めていくという方法である。 それに対し本システムは、 空いている席の中からさらに、乗客の快適度を加味、重み付けして席を予約する方法を提供する。
問題意識 窓側乗客の乗り降りのために、通路側乗客が避けてあげないといけない 予約した時間という順位が、窓側or通路側といった席種の選択権にしか反映されていない
アプローチ 窓側乗客の乗り降りのために、通路側乗客が避けてあげないといけない 空いている席の中から、さらに乗客の乗り降りがスムーズになる席を提供する 予約した時間という順位が、窓側or通路側といった席種の選択権にしか反映されていない 予約順位が上位の人ほど、他の乗客の乗り降りが不快になる事態を避ける席を提供する
ソフトウェア構成図 乗客情報生成 乗客データ 空席検索 乗客データ 不快計算された 乗客データ 新幹線シミュレーター 到着 乗り降り 発車 従来型 アルゴリズム スムーズ OR 不快計測 モジュール 乗客データ 不快計算された 乗客データ
実装 新幹線シミュレーター 乗客情報の生成 従来型アルゴリズム 不快計測アルゴリズム スムーズアルゴリズム
新幹線シミュレーター 東海道新幹線のぞみ ABC,DE席が20列並んだ車両を15両編成 コンソールで乗客の現在の不快値を表示 東京―品川―新横浜―名古屋―京都―新大阪 ABC,DE席が20列並んだ車両を15両編成 コンソールで乗客の現在の不快値を表示
乗客情報の生成 ランダムなデータ のぞみの一般的なデータ ランダム乗り降りの希望 ランダム窓側通路側希望 下記の乗車区間を除いた 東京―品川など一般的ではい乗車区間も含まれる ランダム窓側通路側希望 間の席を希望する乗客も生成される 下記の乗車区間を除いた 東京―品川 6.8km 東京―新横浜 28.8km 品川―新横浜 22.8km 京都―新大阪 39.0km 一般的な窓側通路側希望 窓側か通路側を選べるなら、必ずどちらかを選ぶ 窓側と通路側が空いている場合は95%窓側 評価のため2種類
従来型アルゴリズム 空いている席を、席種EA,CD,Bの順に優先して割り当てる さらに列の前から順に割り当てる 乗客情報 乗車区間に合う席を検索 C:3 B:5 A:1 席種に合う席を検索 列番号で昇順に ソート 従来型アルゴリズムで 並び替え 行番号をEACDBの順に ソート リストの最初の席を成約
不快指数の計算 x: 駅での乗り降りの際、 a: 回数 Y: 指定された駅での不快指数 +10 外側の席で人が変わった +10 外側の席で人が変わった +3 隣の席で人が変わった +1 隣の席に人がいる a: 回数 *1 空席に乗客が来た *1 乗客がいなくなった *2 乗客がいなくなって、新たにきた
不快計測アルゴリズム 計測する席 No 乗客が駅で降りない Yes 属する列の席を取得 計測する席の乗客の 不快になるか計算 他の席 通路 通路 C:o C:o No 乗客が駅で降りない C:o B:x B:x Yes A:o A:o 属する列の席を取得 Cは降りない 属する列の取得 Aが降りる 通路 C:o 計測する席の乗客の 不快になるか計算 列の席全て B:x Cの不快値 = 10 * 1 A:x 乗客の不快に加算 Cの不快
重みの計算 Y: 指定された駅での重み N: これまでの成約数 i: 乗客の予約優先順位 iは1からのindex x: 駅での乗り降りの際、 +10 外側の席で人が変わった +3 隣の席で人が変わった +1 隣の席に人がいる a: 回数 *1 空席に乗客が来た *1 乗客がいなくなった *2 乗客がいなくなって、新たにきた 優先度が高い人ほど重みが上がる
スムーズアルゴリズム 乗客情報 候補の席 N = 99 の時 属する列を取得 乗車区間に合う席を検索 席に重み付け 席種に合う席を検索 成約済み乗客の優先順位が i = 33 の時 候補の席が、成約済みの乗客への不快になるか調査 席に重み付け 席種に合う席を検索 新規乗客の優先順位 i = N + 1 = 100 スムーズアルゴリズムで 並び替え 成約済み乗客が、候補の席への不快になるか調査 席に重み付け リストの最初の席を成約 重みを昇順にソート
アルゴリズムの比較 乗客情報 乗車区間に合う席を検索 席種に合う席を検索 アルゴリズムで 並び替え リストの最初の席を成約 候補の席 重みを昇順にソート 属する列を取得 候補の席が、成約済みの乗客への不快になるか調査 席に重み付け 成約済み乗客が、候補の席への不快になるか調査 列番号で昇順に ソート 行番号をEACDBの順に
デモ
評価 想定環境 方法 指針 入力 アルゴリズム 出力 全区間での平均乗車率70% 不快値の予約順位に対する10回の平均をとって比較する ある区間での最高乗車率約90% 方法 不快値の予約順位に対する10回の平均をとって比較する 指針 乗客全体の不快値の平均 予約順位に対する、不快値の相関 入力 ランダム乗客データ, 一般的乗客データ アルゴリズム 従来型アルゴリズム, スムーズアルゴリズム 出力 各乗客の一回の乗車における、総不快値
不快指数平均 2.34倍の差 従来型:8.30 スムーズ:3.55
不快指数平均 2.04倍の差 従来型:4.10 スムーズ:2.01
評価まとめ 不快指数平均 ⇒どちらでも二倍以上の改善が見られた 予約順位と不快指数の相関 従来型アルゴリズムでは スムーズアルゴリズムでは ランダム: 8.30 一般: 4.10 スムーズアルゴリズムでは ランダム: 3.55 一般: 2.01 ⇒どちらでも二倍以上の改善が見られた 予約順位と不快指数の相関 直線的な相関は見られなかった 1500以下に限ってみると、スムーズアルゴリズムは予約順位の高い人を優先できた
まとめ 不快指数を定義した 不快を最小化するスムーズアルゴリズムを実装した 従来型とスムーズアルゴリズムを比較し、評価した 結果、スムーズアルゴリズムで不快は改善された
今後の課題 動的な最適化 動作、音などの動的な不快に対する動的な最適化 シミュレーター パソリの実装 マイク、圧力センサの実装
座席決定のタイミング 現在は予約=座席決定 改札通過時に座席決定できれば、さらなる最適化が可能 重み付けにおいて、優先順位の低い乗客の乗り降り区間も参照できるため