(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024006151
(43)【公開日】2024-01-17
(54)【発明の名称】シミュレーション実行方法およびプログラム
(51)【国際特許分類】
G06Q 50/10 20120101AFI20240110BHJP
【FI】
G06Q50/10
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2022106776
(22)【出願日】2022-07-01
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002918
【氏名又は名称】弁理士法人扶桑国際特許事務所
(72)【発明者】
【氏名】板倉 宏太
(72)【発明者】
【氏名】山岡 久俊
(72)【発明者】
【氏名】高橋 英一
【テーマコード(参考)】
5L049
【Fターム(参考)】
5L049CC11
(57)【要約】
【課題】多くの値についてのシミュレーション結果を早いタイミングで取得可能にする。
【解決手段】コンピュータは、移動体による交通動態のシミュレーションを、パラメータの値を変更することで複数回実行する。その際、コンピュータは、シミュレーションそれぞれを一定ステップ数または一定時間実行する。コンピュータは、実行されたシミュレーションにより得られた交通動態を示す情報に基づいて、シミュレーションそれぞれの完了に要する予測時間を算出する。コンピュータは、シミュレーションそれぞれのうち、算出された予測時間が短いシミュレーションについて、一定ステップ数または一定時間以降の実行を優先的に行う。
【選択図】
図17
【特許請求の範囲】
【請求項1】
コンピュータが、移動体による交通動態のシミュレーションを、パラメータの値を変更することで複数回実行するシミュレーション実行方法であって、
前記シミュレーションそれぞれを一定ステップ数または一定時間実行し、
実行された前記シミュレーションにより得られた前記交通動態を示す情報に基づいて、前記シミュレーションそれぞれの完了に要する予測時間を算出し、
前記シミュレーションそれぞれのうち、算出された前記予測時間が短いシミュレーションについて、前記一定ステップ数または前記一定時間以降の実行を優先的に行う、
シミュレーション実行方法。
【請求項2】
前記交通動態を示す情報は、前記移動体の速度、前記移動体の数および前記移動体におけるルート再探索の回数の少なくとも1つである、
請求項1記載のシミュレーション実行方法。
【請求項3】
前記予測時間の算出では、前記一定ステップ数または前記一定時間の前記シミュレーションにより処理された前記移動体の平均速度、ステップ当たりの前記移動体の数の平均値、および、ステップ当たりの前記ルート再探索の回数の平均値の少なくとも1つに基づいて、前記予測時間を算出する、
請求項2記載のシミュレーション実行方法。
【請求項4】
前記予測時間の算出では、前記一定ステップ数の前記シミュレーションの実行に要した第1時間、または、前記一定時間の前記シミュレーションで実行した第1ステップ数に基づいて、前記交通動態を示す情報に基づいて算出した前記予測時間を補正する、
請求項1記載のシミュレーション実行方法。
【請求項5】
前記予測時間に基づいて前記シミュレーションの実行順序を決定する際に、前記パラメータの各々の値のうちの前記実行順序を決定済である値と前記パラメータの各々の値のうちの前記実行順序を未決定である第1の値との間の最短距離、および、前記第1の値に対して予測された前記予測時間に応じた優先度を、複数の第1の値それぞれに対して算出し、前記優先度に基づいて、前記シミュレーションの次の実行に用いる前記第1の値を決定する、
請求項1記載のシミュレーション実行方法。
【請求項6】
前記優先度に基づいて、複数の第1の値それぞれのうち、前記予測時間が短く、かつ、前記最短距離が長い前記第1の値についての前記シミュレーションを優先的に実行する、
請求項5記載のシミュレーション実行方法。
【請求項7】
前記パラメータは複数であり、
複数のパラメータの値の複数の組それぞれを用いた前記シミュレーションを前記一定ステップ数または前記一定時間実行し、
前記複数の組それぞれを用いた前記シミュレーションにより得られた前記交通動態を示す情報に基づいて、前記シミュレーションそれぞれについて前記予測時間を算出する、
請求項1記載のシミュレーション実行方法。
【請求項8】
移動体による交通動態のシミュレーションを、パラメータの値を変更することで複数回実行するコンピュータに、
前記シミュレーションそれぞれを一定ステップ数または一定時間実行し、
実行された前記シミュレーションにより得られた前記交通動態を示す情報に基づいて、前記シミュレーションそれぞれの完了に要する予測時間を算出し、
前記シミュレーションそれぞれのうち、算出された前記予測時間が短いシミュレーションについて、前記一定ステップ数または前記一定時間以降の実行を優先的に行う、
処理を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はシミュレーション実行方法およびプログラムに関する。
【背景技術】
【0002】
複雑化した都市問題などを解決するため、コンピュータによるシミュレーションが用いられることがある。コンピュータは、様々な条件の元でシミュレーションを網羅的に実行し得る。条件はパラメータの値として与えられる。例えば、シミュレーションの結果は多様な観点での施策の評価や立案に用いられる。
【0003】
なお、化学物質を製造する製造装置の稼働条件を定める、チャンバの温度、溶液の種類や濃度といった複数のパラメータを効率的に探索する探索装置の提案がある。この提案では、製造装置の稼働条件を最適化するため、グリッドサーチによって最適なパラメータを網羅的に探索したり、ランダムサーチによって最適なパラメータを確率的に探索したりすることが例示されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
グリッドサーチ法やランダムサーチ法により、交通シミュレーションなどの時間発展系のシミュレーションが行われることがある。この場合、1つの条件、すなわち、パラメータをある値としたときのシミュレーション結果を得るまでに長い時間がかかることがある。このため、各条件でのシミュレーション結果として得られる評価値などの分布の全体構造を把握するのに時間がかかることがある。
【0006】
1つの側面では、本発明は、多くの値についてのシミュレーション結果を早いタイミングで取得可能にすることを目的とする。
【課題を解決するための手段】
【0007】
1つの態様では、コンピュータが、移動体による交通動態のシミュレーションを、パラメータの値を変更することで複数回実行するシミュレーション実行方法が提供される。このシミュレーション実行方法では、コンピュータが、シミュレーションそれぞれを一定ステップ数または一定時間実行する。コンピュータが、実行されたシミュレーションにより得られた交通動態を示す情報に基づいて、シミュレーションそれぞれの完了に要する予測時間を算出する。コンピュータが、シミュレーションそれぞれのうち、算出された予測時間が短いシミュレーションについて、一定ステップ数または一定時間以降の実行を優先的に行う。
【0008】
また、1つの態様では、プログラムが提供される。
【発明の効果】
【0009】
1つの側面では、多くの値についてのシミュレーション結果を早いタイミングで取得できる。
【図面の簡単な説明】
【0010】
【
図1】第1の実施の形態の情報処理装置を説明する図である。
【
図2】第2の実施の形態の情報処理装置のハードウェア例を示す図である。
【
図3】都市交通シミュレーションによる施策の評価例を示す図である。
【
図4】グリッドサーチ法およびランダムサーチ法の例を示す図である。
【
図8】シミュレーションのステップと車両速度との関係の例を示す図である。
【
図9】施策パラメータ範囲情報の例を示す図である。
【
図12】シミュレーション結果テーブルの例を示す図である。
【
図13】完了予測時間テーブルの例を示す図である。
【
図15】シミュレーション結果テーブルの取得例を示すフローチャートである。
【
図16】シミュレーションの実行順序の決定例を示すフローチャートである。
【
図17】時間と得られるサンプル数との関係の例を示す図である。
【
図18】シミュレーションの実行例を示す図である。
【
図19】第3の実施の形態の実行順序の決定例を示す図である。
【
図20】優先度スコアテーブルの例を示す図である。
【
図21】シミュレーションの実行順序の決定例を示すフローチャートである。
【発明を実施するための形態】
【0011】
以下、本実施の形態について図面を参照して説明する。
[第1の実施の形態]
第1の実施の形態を説明する。
【0012】
図1は、第1の実施の形態の情報処理装置を説明する図である。
情報処理装置10は、移動体による交通動態のシミュレーションを行う。移動体は、自動車や鉄道車両や自転車などの車両でもよいし、船舶や航空機でもよい。また、移動体は人でもよい。情報処理装置10は、記憶部11および処理部12を有する。
【0013】
記憶部11は、RAM(Random Access Memory)などの揮発性記憶装置でもよいし、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性記憶装置でもよい。処理部12は、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)などを含み得る。処理部12はプログラムを実行するプロセッサであってもよい。ここでいう「プロセッサ」には、複数のプロセッサの集合(マルチプロセッサ)も含まれ得る。
【0014】
記憶部11は、シミュレーションに用いられるパラメータの値を保持する。一例として、パラメータP1,P2が用いられると仮定する。ただし、パラメータの数は、1つでもよいし、3つ以上でもよい。パラメータP1,P2の値の組は、予め与えられる。パラメータP1,P2の値の組は、パラメータ空間20における点で表される。パラメータ空間20の横軸はP1である。パラメータ空間20の縦軸はP2である。パラメータ空間20の図では、各点が縦横に等間隔に並ぶ例が示されている。ただし、各点はパラメータ空間20においてランダムに決定されたものでもよいし、その他の方法により決定されたものでもよい。
【0015】
ここで、シミュレーションでは、シミュレーションの対象の空間(例えば、ある都市の道路網、鉄道網または航路など)および時間(例えば、午前8時~午前9時までの時刻範囲や午前0時~次の日の午前0時までの時刻範囲など)が予め定められる。シミュレーションでは、シミュレーションの対象の空間、すなわち、シミュレーション空間内に、定期的に移動体が複数配置され、各移動体について初期位置から目的地までの移動がシミュレートされる。目的に到達した移動体は、シミュレーション空間から消去される。
【0016】
こうしたシミュレーションによる施策評価の一例として、ロードプライシング施策評価が挙げられる。ロードプライシング施策評価では、パラメータとして、課金エリアの広さや金額が用いられる。課金エリアは、移動体が通行する際に課金されるエリアである。課金額は、課金エリアの通行のために課金される金額である。課金エリアの広さや金額を変えながら所定時間分のミクロ交通シミュレーションが行われ、課金エリアの広さおよび金額の組に応じた、安全性、二酸化炭素排出量および地域経済などへの影響に関する評価値が算出される。
【0017】
処理部12は、パラメータの複数の値それぞれについて移動体による交通動態のシミュレーションを一定ステップ数または一定時間実行する。処理部12は、一定ステップ数または一定時間のシミュレーションにより得られた交通動態を示す情報に基づいて、複数の値それぞれについてのシミュレーションの完了に要する時間を予測する(S1)。シミュレーションの完了に要する時間Tは、秒や分などの通常の単位で表される時間の長さでもよいし、単に時間の長さを示す指標でもよい。時間Tは予測時間Tと言われてもよい。例えば、時間Tは、値が大きいほど時間が長いことを示す指標値でもよい。当該指標値は、時間の次元(物理量の単位)とは異なる次元をもつ指標値でもよいし、無次元の指標値でもよい。
【0018】
ここで、シミュレーションにおける1ステップは、シミュレーションにおける時間発展の単位時間に対する処理である。時間発展の単位時間は例えば1秒などである。例えば、全体で1時間分の時間発展を単位時間1秒で行う場合、全ステップ数は3600となる。一定ステップ数は、当該全ステップ数に比べて非常に小さい数(例えば、全ステップ数の1~10%程度など)となるように予め定められる。また、一定時間は、ある値での全ステップのシミュレーションに対して予想されるおおよその所要時間に比べて非常に短い時間となるように予め定められる。
【0019】
交通動態を示す情報は、例えば、各ステップにシミュレーション空間内に存在した移動体の数や速度、各ステップに移動体で行われたルート再探索の回数を含む。
シミュレーション空間内の移動体の数が多いほど、計算対象が増える。このため、シミュレーション空間内の移動体の数が増すほど、シミュレーションの実行時間が長くなる。
【0020】
また、移動体の速度が遅いほど、シミュレーション空間内に滞留する移動体の数が増える。このため、移動体の速度が遅いほど、シミュレーションの実行時間が長くなる。
ルート再探索は、課金エリアに対する迂回ルートの再計算の処理である。例えば、シミュレーションでは、移動体が課金エリアに到達した場合に、移動体に対して予め定義される行動特性の情報を基に迂回するか否かの判定が行われ、迂回する場合、迂回ルートが再度計算される。このため、ルート再探索の回数が増すほど、シミュレーションの実行時間が長くなる。
【0021】
シミュレーションの実行時間に対する上記の傾向に基づき、処理部12は、例えば次の第1~第7の例の方法で、時間Tを求めてもよい。ただし、第1~第7の例の方法は一例であり、他の方法が用いられてもよい。
【0022】
第1の例では、処理部12は、1ステップ当たりにシミュレーション空間に存在した移動体の平均数に比例するように時間Tを算出する。
第2の例では、処理部12は、一定ステップ数または一定時間における移動体の平均速度に反比例するように時間Tを算出する。
【0023】
第3の例では、処理部12は、1ステップ当たりに発生したルート再探索の平均回数に比例するように時間Tを算出する。
第4の例では、処理部12は、上記の移動体の平均数、平均速度およびルート再探索の平均回数のうちの2つ以上を組み合わせて時間Tを算出する。
【0024】
第4の例において、移動体の平均数と平均速度とを用いる場合、処理部12は、1ステップ当たりにシミュレーション空間に存在した移動体の平均数に比例し、かつ、一定ステップ数または一定時間における移動体の平均速度に反比例するように時間Tを算出してもよい。より具体的には、処理部12は、1ステップ当たりにシミュレーション空間に存在した移動体の平均数に比例する項と、一定ステップ数または一定時間における移動体の平均速度に反比例する項との和を用いて時間Tを算出してもよい。
【0025】
第5の例では、処理部12は、移動体の数や速度などの変化傾向に基づいて、時間Tを算出する。例えば、処理部12は、シミュレーションのステップ数に対する移動体の平均速度の関係を表す回帰直線を求め、回帰直線から1ステップ当たりの移動体の平均速度を求めて、当該平均速度に反比例するように時間Tを算出してもよい。
【0026】
第6の例では、処理部12は、上記の第1~第5の例で求めた時間をT1とする。そして、処理部12は、一定ステップ数のシミュレーション実行に要した時間uによりT1を補正することで、時間Tを算出する。例えば、処理部12は、uに比例する項をT1に加算することで、時間Tを算出してもよい。
【0027】
第7の例では、処理部12は、上記の第1~第5の例で求めた時間をT1とする。そして、処理部12は、一定時間のシミュレーションで実行されたステップ数sによりT1を補正することで、時間Tを算出する。例えば、処理部12は、sに反比例する項をT1に加算することで、時間Tを算出してもよい。
【0028】
ステップS1に対応する図ではパラメータP1,P2の値の組で表される各点に対し、、シミュレーションの完了に要する時間Tの予測結果を示す数値が例示されている。ステップS1で示される数値は、小数点以下が省略されていると考えてもよい。
【0029】
処理部12は、パラメータの複数の値のうち、予測された時間が短い値についてのシミュレーションから優先的に実行する(S2)。例えば、2つのパラメータP1,P2に対して、処理部12は、パラメータP1,P2の値の組で表される複数の点のうち、予測された時間Tが短い点を優先してシミュレーションを実行する。処理部12は、各値のシミュレーションを最初から実行してもよいし、一定ステップ数または一定時間以降から実行してもよい。何れの場合でも、処理部12は、算出された予測時間が短いシミュレーションについて、一定ステップ数または一定時間以降の実行を優先的に行うことになる。
【0030】
このように、情報処理装置10によれば、使用するパラメータを変更したシミュレーションそれぞれが一定ステップ数または一定時間実行される。実行されたシミュレーションにより得られた交通動態を示す情報に基づいて、シミュレーションそれぞれの完了に要する予測時間が算出される。シミュレーションそれぞれのうち、算出された予測時間が短いシミュレーションについて、一定ステップ数または一定時間以降の実行が優先的に行われる。
【0031】
すなわち、情報処理装置10は、パラメータ空間20の各点でのシミュレーション完了に要する時間の予測に応じて、パラメータ空間20を早い段階でなるべく広くカバーするような順序でシミュレーションを実行する。このため、情報処理装置10は、パラメータ空間20の全ての点でのシミュレーションが完了していない段階であっても、より多くの点に対応するおおまかな評価値の分布などをユーザが素早く把握できるように支援できる。また、これによって情報処理装置10は、シミュレーションの中断などの判断も早期に行えるように支援でき、計算にかかるコストの抑制を図ることでもできる。
【0032】
[第2の実施の形態]
次に、第2の実施の形態を説明する。
図2は、第2の実施の形態の情報処理装置のハードウェア例を示す図である。
【0033】
情報処理装置100は、CPU101、RAM102、HDD103、GPU(Graphics Processing Unit)104、入力インタフェース105、媒体リーダ106およびNIC(Network Interface Card)107を有する。なお、CPU101は、第1の実施の形態の処理部12の一例である。RAM102またはHDD103は、第1の実施の形態の記憶部11の一例である。
【0034】
CPU101は、プログラムの命令を実行するプロセッサである。CPU101は、HDD103に記憶されたプログラムやデータの少なくとも一部をRAM102にロードし、プログラムを実行する。なお、CPU101は複数のプロセッサコアを含んでもよい。また、情報処理装置100は複数のプロセッサを有してもよい。以下で説明する処理は複数のプロセッサまたはプロセッサコアを用いて並列に実行されてもよい。また、複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。
【0035】
RAM102は、CPU101が実行するプログラムやCPU101が演算に用いるデータを一時的に記憶する揮発性の半導体メモリである。なお、情報処理装置100は、RAM以外の種類のメモリを備えてもよく、複数個のメモリを備えてもよい。
【0036】
HDD103は、OS(Operating System)やミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性の記憶装置である。なお、情報処理装置100は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の記憶装置を備えてもよく、複数の不揮発性の記憶装置を備えてもよい。
【0037】
GPU104は、CPU101からの命令に従って、情報処理装置100に接続されたディスプレイ31に画像を出力する。ディスプレイ31としては、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、プラズマディスプレイ、有機EL(OEL:Organic Electro-Luminescence)ディスプレイなど、任意の種類のディスプレイを用いることができる。
【0038】
入力インタフェース105は、情報処理装置100に接続された入力デバイス32から入力信号を取得し、CPU101に出力する。入力デバイス32としては、マウス、タッチパネル、タッチパッド、トラックボールなどのポインティングデバイス、キーボード、リモートコントローラ、ボタンスイッチなどを用いることができる。また、情報処理装置100に、複数の種類の入力デバイスが接続されていてもよい。
【0039】
媒体リーダ106は、記録媒体33に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体33として、例えば、磁気ディスク、光ディスク、光磁気ディスク(MO:Magneto-Optical disk)、半導体メモリなどを使用できる。磁気ディスクには、フレキシブルディスク(FD:Flexible Disk)やHDDが含まれる。光ディスクには、CD(Compact Disc)やDVD(Digital Versatile Disc)が含まれる。
【0040】
媒体リーダ106は、例えば、記録媒体33から読み取ったプログラムやデータを、RAM102やHDD103などの他の記録媒体にコピーする。読み取られたプログラムは、例えば、CPU101によって実行される。なお、記録媒体33は可搬型記録媒体であってもよく、プログラムやデータの配布に用いられることがある。また、記録媒体33やHDD103を、コンピュータ読み取り可能な記録媒体と言うことがある。
【0041】
NIC107は、ネットワーク34に接続され、ネットワーク34を介して他のコンピュータと通信を行うインタフェースである。NIC107は、例えば、スイッチやルータなどの通信装置とケーブルで接続される。NIC107は、無線通信インタフェースでもよい。
【0042】
図3は、都市交通シミュレーションによる施策の評価例を示す図である。
情報処理装置100により実行されるシミュレーションの一例として、都市交通シミュレーションを挙げる。都市交通シミュレーションは例えばロードプライシング施策評価に用いられる。このようなシミュレーションでは、シミュレーションの対象とする空間(例えば、ある都市の道路網)および時間(例えば、午前8時~午前9時までの時刻範囲など)が予め定められる。
【0043】
例えば、シミュレーション空間40は、ある都市で自動車などの車両が通行可能な道路網を示す。課金エリア41は、シミュレーション空間40において車両の通行のために課金されるエリアである。例えば、課金エリア41は、シミュレーション空間40における特定の地点を中心として設けられる。ロードプライシング施策評価では、例えば課金エリア41の広さおよび課金額という2種類のパラメータが用いられる。課金エリア41の指定は、課金エリア41に相当する多角形の頂点の指定により行われる。課金エリア41に相当する当該多角形の面積が課金エリア41の広さに相当する。このため、例えば課金エリア41が指定されることで、課金エリア41の広さが指定される。
【0044】
情報処理装置100は、課金エリア41の広さや課金額を変えながら所定時間分のミクロ交通シミュレーションを行う。そして、情報処理装置100は、課金エリア41の広さおよび金額の組に応じた、安全性、二酸化炭素排出量(Co2排出)および地域経済などの評価値を算出する。分布50は、パラメータ空間に対する評価値の定性分布の例を示す。例示のパラメータ空間は、課金額を横軸、課金エリア41の広さを縦軸とする。課金額は、1つ目のパラメータP1の一例である。課金エリア41の広さは、2つ目のパラメータP2の一例である。
【0045】
分布50は、課金エリア41の広さおよび課金額に設定する値の組に応じて、安全性、Co2排出および地域経済の良し悪しを表す評価値の傾向を示す。例えば、専門家による施策の検討では、分布50における評価値の傾向に基づいて、適切な施策が判断される。このため、分布50を得ることが重要となる。
【0046】
図4は、グリッドサーチ法およびランダムサーチ法の例を示す図である。
分布50の取得には、パラメータ空間60から特定の規則でパラメータの値をサンプリングし、シミュレーションを繰り返すグリッドサーチ法やランダムサーチ法が用いられる。パラメータ空間60は、課金額を横軸(P1)、課金エリア41の広さ(P2)を縦軸とする。
【0047】
図4(A)は、グリッドサーチ法の例を示す。グリッドサーチ法は、パラメータ空間60上の点を一定規則に従ってずらしながら、パラメータ空間60を網羅的にくまなく探索する手法である。ここでは、探索することはシミュレーションを実行することに相当する。
図4(B)は、ランダムサーチ法の例を示す。ランダムサーチ法は、パラメータ空間60上の点をランダムに使用して探索する手法である。
【0048】
しかしながら、グリッドサーチ法やランダムサーチ法を単純に行っていると、交通シミュレーションのような時間発展形のシミュレーションは1回のサンプル値、すなわち、パラメータ空間60上の1つの点に対する評価値を得るのに長い時間がかかる。このため、
図3で例示した分布50の全体構造を把握できるまでに時間がかかる。
【0049】
そこで、情報処理装置100は、パラメータ空間60上の比較的多くの点に対して早期に評価値を得る機能を提供する。
図5は、情報処理装置の機能例を示す図である。
【0050】
情報処理装置100は、記憶部110および制御部120を有する。記憶部110には、RAM102やHDD103の記憶領域が用いられる。制御部120は、RAM102に記憶されたプログラムがCPU101により実行されることで実現される。
【0051】
記憶部110は、シミュレーションに用いられるパラメータの値の範囲や、シミュレーションの結果として得られる情報を記憶する。また、記憶部110は、パラメータの値ごとのシミュレーションの実行順序を示す情報を記憶する。パラメータの値ごとのシミュレーションの実行順序を示す情報は、制御部120により決定される。
【0052】
制御部120は、シミュレーションの実行を制御する。制御部120は、シミュレーション実行部121、第1実行指示部122、実行順序決定部123、第2実行指示部124および結果出力部125を有する。
【0053】
シミュレーション実行部121は、シミュレーションを実行する。シミュレーション実行部121には、シミュレーション環境設定情報が事前に設定される。シミュレーション環境設定情報は、道路ネットワークトポロジ、車両配置情報および車両行動特性情報を含む。
【0054】
道路ネットワークトポロジは、シミュレーション空間40における道路配置を示す。車両配置情報は、シミュレーションの各ステップでシミュレーション空間40に配置する車両の情報を定義する。車両配置情報は、車両の初期位置および目的地の情報を含む。車両行動特性情報は、車両のルート選択における行動特性を定義する。車両行動特性情報は、車両が課金エリアに到達した際に、ルート再探索を行う確率の情報を含む。ここで、一例として、シミュレーションにおける1ステップは、シミュレーションにおける時間発展の1秒に相当するものとする。
【0055】
シミュレーション実行部121は、第1実行指示部122の指示に応じて、パラメータの各値に対する一定ステップ数または一定時間のシミュレーションを実行する。一定ステップ数は、シミュレーション対象の全体の時間に対応する全ステップ数に比べて非常に小さい数(例えば、全ステップ数の1~10%程度など)となるように予め定められる。一定時間は、ある値での全ステップのシミュレーションに対して予想されるおおよその所要時間に比べて非常に短い時間となるように予め定められる。
【0056】
シミュレーション実行部121は、一定ステップ数または一定時間のシミュレーションにより得られた、シミュレーションの順序制御に用いられる情報を第1実行指示部122に応答する。シミュレーションの順序制御に用いられる情報は、車両の交通動態を示す情報を含む。交通動態を示す情報は、例えば、各ステップにおいてシミュレーション空間40内に存在した車両の数や速度、各ステップにおいて行われたルート再探索の回数を含む。
【0057】
また、シミュレーション実行部121は、第2実行指示部124の指示に応じて、パラメータの各値に対する全ステップのシミュレーションを実行する。シミュレーション実行部121は、全ステップのシミュレーションの実行中に、パラメータの各値に対して算出された評価値を第2実行指示部124に応答する。このとき、シミュレーション実行部121は、第2実行指示部124により指示された順序でパラメータの各値を使用して、全ステップのシミュレーションを実行する。
【0058】
第1実行指示部122は、パラメータの各値に対する一定ステップ数または一定時間のシミュレーションの実行を、シミュレーション実行部121に指示する。第1実行指示部122からシミュレーション実行部121への指示は、使用するパラメータの値と、実行ステップ数または実行時間の情報と、順序制御に用いる情報の出力指示とを含む。ここで、前述のようにパラメータは1種類以上ある。例えば、パラメータP1,P2のように2種類の場合、「パラメータの各値」は、「パラメータP1の値とパラメータP2の値との各組」に相当する。パラメータが3種類以上の場合も同様である。また、順序制御に用いる情報の出力指示は、結果出力指示と言われる。
【0059】
実行順序決定部123は、シミュレーション実行部121による一定ステップ数または一定時間のシミュレーションにより得られた順序制御用の情報を第1実行指示部122から取得する。実行順序決定部123は、当該順序制御用の情報を基に、パラメータの各値に対する全ステップのシミュレーションの実行に要する時間を予測する。実行順序決定部123は、パラメータの各値に対して予測した時間Tに基づいて、パラメータの各値に対する全ステップのシミュレーションの実行順序を決定する。具体的には、実行順序決定部123は、時間Tが短い値を優先してシミュレーションを実行するように、実行順序を決定する。実行順序決定部123は決定した実行順序を第2実行指示部124に通知する。
【0060】
第2実行指示部124は、全ステップのシミュレーションの実行を、シミュレーション実行部121に指示する。第2実行指示部124からシミュレーション実行部121への指示は、使用するパラメータの値と、ユーザにより指定された評価値の出力指示とを含む。第2実行指示部124は、実行順序決定部123に決定された実行順序に従って、使用するパラメータの値を、シミュレーション実行部121に指示する。
【0061】
結果出力部125は、第2実行指示部124を介して、シミュレーション実行部121からシミュレーションの結果として得られた評価値を取得し、ユーザに提示する。結果出力部125は、パラメータの値ごとの評価値を、当該値に対するシミュレーションが完了するごとに取得し、ディスプレイ31に表示することでユーザに提示する。例えば、ユーザは、パラメータ空間60において、ある点に対する全ステップのシミュレーションが完了するたびに、当該点に対応する評価値を順次確認することができる。
【0062】
ここで、車両の交通動態によるシミュレーションの実行時間への影響を説明する。
図6は、車両数の増減の例を説明する図である。
シミュレーション実行部121は、まずはm台の車両でシミュレーションを開始し、例えば、シミュレーション対象時間における1分ごとなどの所定時間間隔で、n台の車両を追加する。一例では、m=5000、n=100である。
【0063】
この場合、シミュレーション空間40内の車両台数が多いほど、計算に時間がかかる。課金額と課金エリアの広さとを変更してシミュレーションを行う場合、シミュレーション空間40内に投入される車両の総台数は変わらないが、目的に到着して消滅する車両により台数の差が生じて、計算量が変わる。
【0064】
例えば、P1=1,P2=1でシミュレーションを一定ステップ実行した後に渋滞が発生する場合、シミュレーション空間40内の車両数が増える。このため、計算時間が増大する。
【0065】
また、例えばP1=1,P2=2でシミュレーションを一定ステップ実行した後、スムーズに車両が目的地へ到着している場合、シミュレーション空間40内の車両数が減る、または車両数が一定となる。このため、渋滞が発生する場合に比べて計算時間が減少する。
【0066】
図7は、ルート再探索の例を説明する図である。
経路R1,R2は、各車両が初期位置から目的地までに通る経路を示す。経路R1は、課金エリア41を通らない経路である。経路R2は、課金エリア41を通る経路である。
【0067】
経路R1のケースでは、課金エリア41を通らないので、ルート再探索は行われない。一方、経路R2のケースでは、課金エリア41に到達したときに、ルート再探索を行うか否かが決定される。ルート再探索を行うか否かは、前述の車両行動特性情報に基づいて決定される。ルート再探索を行う場合、目的地までの迂回路R3が再計算される。このため、ルート再探索の回数が増えると、計算時間が増大する。
【0068】
図6、
図7で例示されるように、車両の交通動態は、シミュレーションの実行時間に影響する。そこで、実行順序決定部123は、一定ステップ数または一定時間のシミュレーション実行によりパラメータの各値に対して取得した交通動態の情報を基に、次のようにシミュレーションの実行に要する時間Tを算出する。
【0069】
図8は、シミュレーションのステップと車両速度との関係の例を示す図である。
グラフ70は、シミュレーションのステップ数(シミュレーションステップ)と車両速度の関係を示す。グラフ70の横軸はシミュレーションステップであり、縦軸は車両速度である。系列71は、ステップごとの車両の平均速度を示す。系列72は、一定ステップ数における車両の平均速度を示す。系列73は、ステップごとの車両の平均速度の変化傾向を表す回帰直線を示す。なお、グラフ70の縦の破線は、一定ステップ数または一定時間に相当するタイミングを示す。
【0070】
例えば、実行順序決定部123は、一定ステップ数または一定時間における車両の平均速度vaveに基づいて時間Tを求めてもよい。ここで、時間Tは、時間の長さを表す指標値でよい。このため、時間Tは、完了予測時間指標Tと言われてもよい。系列72に相当する平均速度vaveは、次の式により算出される。
【0071】
vave=(全車両の一定ステップ数での移動距離合計)/(全車両の一定ステップ数での移動時間合計)
なお、順序制御用の情報を得るためにシミュレーションを一定時間実行する場合、上記の式の「一定ステップ数」を、「一定時間」と読み替えればよい。あるいは、順序制御用の情報を得るためにシミュレーションを一定時間実行する場合、上記の式の「一定ステップ数」を、当該一定時間の間に実行されたステップ数としてvaveが算出されてもよい。
【0072】
上記vaveを用いる場合、時間Tは、式(1)で求められる。
【0073】
【0074】
a,bは予め与えられる正の係数である。
また、ステップtにおける車両の平均速度は、系列73の回帰直線に相当する下記の式(2)により計算されてもよい。
【0075】
【0076】
なお、係数0.2や定数項の値37は一例であり、当該係数や定数項の値は、各ステップにおいて各車両に対して得られる速度に応じて変わり得る。vave(t)が式(2)のように表される場合、時間Tは、式(3)により計算されてもよい。
【0077】
【0078】
ここで、tallは、順序制御用の情報を得るために実行したシミュレーションの一定ステップ数でもよいし、シミュレーション対象の全ステップ数でもよい。
また、実行順序決定部123は、一定ステップ数または一定時間における車両の台数に基づいて時間Tを求めてもよい。例えば、あるステップtの車両台数をn(t)とする。ステップ0からステップkまでの平均車両台数naveは、式(4)により計算される。
【0079】
【0080】
時間Tは、平均車両台数naveに比例するとみなして式(5)により計算される。
【0081】
【0082】
Aは予め定められる正の係数である。Aは比較時に無視できる。
また、実行順序決定部123は、一定ステップ数または一定時間におけるルート再探索の回数に基づいて時間Tを求めてもよい。例えば、あるステップtでルートの再探索を行った車両数をc(t)とする。ステップ0からステップkまでの平均ルート再探索回数caveは、式(6)により計算される。
【0083】
【0084】
時間Tは、平均ルート再探索回数caveに比例するとみなして式(7)により計算される。
【0085】
【0086】
Bは予め定められる正の係数である。Bは比較時に無視できる。
また、実行順序決定部123は、車両の台数と平均速度など、交通動態に関する複数種類の指標を組み合わせて時間Tを求めてもよい。この場合、時間Tは式(1)、(3)、(5)、(7)の右辺側の項の少なくとも2つの重み付き線形和によって計算される。このようにすると、個々の指標でばらつきが生じる場合でも、複数の指標を合わせることでばらつきを抑えることができる。例えば、車両台数とルート再探索の回数とを用いる場合、時間Tは式(8)により計算される。
【0087】
【0088】
また、実行順序決定部123は、順序制御用の情報を得るためにシミュレーションを一定時間実行した場合に実行したステップ数sを、平均速度などの交通動態の情報と組み合わせて時間Tを求めてもよい。この場合、ステップ数sが多いほど、時間Tは短くなると推定される。よって、時間Tは、例えば式(9)により計算される。
【0089】
【0090】
更に、実行順序決定部123は、順序制御用の情報を得るためにシミュレーションを一定ステップ数実行した場合に要した時間uを、平均速度などの交通動態の情報と組み合わせて時間Tを求めてもよい。この場合、時間uが短いほど時間Tは短くなると推定される。よって、時間Tは、例えば式(10)により計算される。
【0091】
【0092】
このように、実行順序決定部123は、一定ステップ数または一定時間のシミュレーションにより得られた交通動態の情報に基づいて、時間Tを予測することができる。
次に、情報処理装置100により保持される情報の例を説明する。
【0093】
図9は、施策パラメータ範囲情報の例を示す図である。
施策パラメータ範囲情報111は、記憶部110に予め記憶される。施策パラメータ範囲情報111は、パラメータ名および値の項目を含む。パラメータ名の項目には、パラメータの名称、すなわち、パラメータ名が登録される。値の項目には、該当のパラメータに設定されるパラメータの値の取り得る範囲、すなわち、パラメータの値の候補が設定される。
【0094】
例えば、施策パラメータ範囲情報111は、パラメータ名「課金エリア」、値「[[{lat:51.5018139,lon:-0.124708},{lat:...],[{lat:51.5055859,lon:-0.12172},{lat:...]]」のレコードを有する。このレコードは、パラメータ名「課金エリア」のパラメータに設定され得る値の候補を示す。latは、latitude(緯度)の略である。lonは、longitude(経度)の略である。ここで、課金エリアは、緯度および経度の座標で指定される複数の頂点をもつ多角形によって表される。当該多角形の面積が、課金エリアの広さに相当する。例えば、シミュレーションで用いる課金エリアは、シミュレーション空間40の特定の地点を中心として、課金エリアが狭いものから広いものまで段階的に用意される。ある広さをもつ課金エリアは1つである。課金エリアを示す1つの多角形は、1つの課金エリアの広さに対応する。
【0095】
また、施策パラメータ範囲情報111は、パラメータ名「課金額」、値「[0,2,4,6,8,10]」のレコードを有する。このレコードは、パラメータ名「課金額」のパラメータに設定され得る値の候補が「0,2,4,6,8,10」であることを示す。なお、課金額の単位は、該当の都市で使用される、例えばポンドやドルや円などの通貨単位である。
【0096】
図10は、施策パラメータ情報の例を示す図である。
施策パラメータ情報112は、記憶部110に保持される。施策パラメータ情報112は、シミュレーションの実行に用いるパラメータの値を示す。当該パラメータの値は、第1実行指示部122および第2実行指示部124により施策パラメータ範囲情報111から抽出される。施策パラメータ情報112は、第1実行指示部122および第2実行指示部124により、シミュレーション実行部121に入力される。
【0097】
施策パラメータ情報112は、パラメータ名および値の項目を含む。パラメータ名の項目には、パラメータ名が登録される。値の項目には、パラメータに設定する値が登録される。
【0098】
例えば、施策パラメータ情報112は、パラメータ名「課金エリア」、値「[{lat:51.5018139,lon:-0.124708},{lat:...]」のレコードを有する。このレコードは、パラメータ名「課金エリア」のパラメータに、「[{lat:51.5018139,lon:-0.124708},{lat:...]」で示される、課金エリアに相当する多角形の複数の頂点を設定することを示す。
【0099】
また、施策パラメータ情報112は、パラメータ名「課金額」、値「4」のレコードを有する。このレコードは、パラメータ名「課金額」のパラメータに値「4」を設定することを示す。
【0100】
図11は、結果出力指示の例を示す図である。
結果出力指示113は、第1実行指示部122によりシミュレーション実行部121に入力される。結果出力指示113は、記憶部110に保持される。結果出力指示113は、シミュレーション実行部121により出力させる要素名、すなわち、出力要素名の指定を含む。結果出力指示113の例では、出力要素名として、「step_execution_time」(ステップ実行時間)、「car_num」(車両数)、「car_speed_ave」(車両平均速度)が指定されている。
【0101】
シミュレーション実行部121は、「step_execution_time」、「car_num」、「car_speed_ave」として、1ステップ当たりの値を第1実行指示部122に応答する。
【0102】
図12は、シミュレーション結果テーブルの例を示す図である。
シミュレーション結果テーブル114は、シミュレーション実行部121により出力された情報を基に第1実行指示部122により生成され、記憶部110に格納される。シミュレーション結果テーブル114は、step、step_execution_time、car_num、car_speed_aveの項目を含む。シミュレーション結果テーブル114で例示される各項目は、
図11で例示した結果出力指示113で指定される各項目に対応する。
【0103】
stepの項目には、シミュレーションのステップ数が登録される。step_execution_timeの項目には、該当のステップの実行時間、すなわち、当該ステップの実行開始から実行完了までの時間が登録される。step_execution_timeの単位は、ミリ秒である。car_numの項目には、該当のステップにおいて、シミュレーション空間40に存在した車両数が登録される。car_speed_aveの項目には、該当のステップにおける車両の平均速度が登録される。car_speed_aveの単位は、km/h(キロメートル毎時)である。
【0104】
例えば、シミュレーション結果テーブル114は、step「1」、step_execution_time「15」、car_num「326」、car_speed_ave「32.23」のレコードを有する。このレコードは、シミュレーションにおける1番目のステップの実行時間が15ミリ秒であったことを示す。また、当該レコードは、1番目のステップにおいて、シミュレーション空間40に存在した車両数が326台であり、各車両の平均速度が32.23km/hであったことを示す。
【0105】
シミュレーション結果テーブル114には、他のステップに対しても、ステップの実行時間、車両数および車両の平均速度のレコードを有する。
図示を省略しているが、シミュレーション結果テーブル114は、パラメータの値の組に対応付けられる。具体的には、シミュレーション結果テーブル114は、一定ステップ数または一定時間のシミュレーションに用いられたパラメータの値の組、すなわち、課金エリアの値と課金額の値との各組に対して生成される。
【0106】
図13は、完了予測時間テーブルの例を示す図である。
完了予測時間テーブル115は、課金エリアの値と課金額の値との組ごとのシミュレーション結果テーブル114に基づいて、実行順序決定部123により生成され、記憶部110に格納される。完了予測時間テーブル115は、課金エリア、課金額、完了予測時間の項目を含む。
【0107】
課金エリアの項目には、課金エリアの値が登録される。課金額の項目には、課金額の値が登録される。完了予測時間の項目には、時間Tが登録される。時間Tは、該当の課金エリアの値と課金額の値との組に対して予測された、シミュレーションの実行に要する時間である。
【0108】
例えば、完了予測時間テーブル115は、課金エリア「[{lat:51.5018139,lon:-0.124708},{lat:...]」、課金額「0」、完了予測時間「10m12s」のレコードを有する。このレコードは、課金エリアの値を「[{lat:51.5018139,lon:-0.124708},{lat:...]」に設定し、課金額の値を「0」に設定する場合の全ステップのシミュレーションの完了予測時間Tが10分12秒であることを示す。
【0109】
完了予測時間テーブル115は、課金エリアの値と、課金額の値との他の組に対する完了予測時間のレコードも有する。
なお、実行順序決定部123は、前述の式(1)、(3)、(5)、(7)、(8)、(9)、(10)などを用いて時間Tを計算することができる。例えば、式(7)や式(8)で示されるように、交通動態の情報として、ルート再探索の回数を時間Tの計算に使用する場合、第1実行指示部122は、結果出力指示113において、ルート再探索の回数の要素名を指定すればよい。
【0110】
図14は、実行順序テーブルの例を示す図である。
実行順序テーブル116は、完了予測時間テーブル115に基づいて、実行順序決定部123により生成され、記憶部110に格納される。実行順序テーブル116は、実行順序、課金エリアおよび課金額の項目を含む。
【0111】
実行順序の項目には、課金エリアの値および課金額の値の組に対する実行順序を示す番号が登録される。課金エリアの項目には、課金エリアの値が登録される。課金額の項目には、課金額の値が登録される。
【0112】
例えば、実行順序テーブル116は、実行順序「1」、課金エリア「[{lat:51.5018139,lon:-0.124708},{lat:...]」、課金額「0」のレコードを有する。このレコードは、課金エリアの値「[{lat:51.5018139,lon:-0.124708},{lat:...]」と課金額の値「0」との組に対応するシミュレーションの実行順序が1番目であることを示す。実行順序決定部123は、完了予測時間テーブル115に基づいて、完了予測時間が短いパラメータの値の組を早い順序で実行するように、実行順序を決定する。
【0113】
実行順序テーブル116は、課金エリアの値と課金額の値との他の組に対する実行順序のレコードも有する。
次に、情報処理装置100の処理手順を説明する。
【0114】
図15は、シミュレーション結果テーブルの取得例を示すフローチャートである。
(S10)第1実行指示部122は、施策パラメータ範囲情報111から各パラメータの値の1つの組を抽出して施策パラメータ情報112を生成する。第1実行指示部122は、施策パラメータ情報112と結果出力指示113とを、前処理として実行する一定ステップ数または一定時間の情報とともに、シミュレーション実行部121に入力する。すると、第1実行指示部122によりシミュレーション実行部121に順次入力されるパラメータの値の組ごとに、下記のステップS11が繰り返し実行される。
【0115】
(S11)シミュレーション実行部121は、一定ステップ数または一定時間のシミュレーションを実行し、結果出力指示113に応じた情報を第1実行指示部122に応答する。第1実行指示部122は、シミュレーション実行部121から得られた情報を、シミュレーション結果テーブル114に記録する。前述のように、第1実行指示部122は、パラメータの値の組ごとにシミュレーション結果テーブル114を生成する。
【0116】
(S12)第1実行指示部122は、各パラメータの取り得る値の全ての組を抽出すると、繰り返しを終了する。そして、シミュレーション結果テーブル114の取得が終了する。
【0117】
図16は、シミュレーションの実行順序の決定例を示すフローチャートである。
(S20)実行順序決定部123は、一定ステップ数または一定時間のシミュレーションの実行に用いられたパラメータの値の組ごとに、下記のステップS21を繰り返し実行する。
【0118】
(S21)実行順序決定部123は、パラメータの値の該当の組に対応するシミュレーション結果テーブル114から、当該組を用いた場合のシミュレーションの完了に要する時間Tを予測して、完了予測時間テーブル115に記録する。例えば時間Tは
図8で例示された方法により計算される。また、予測された時間Tは、完了予測時間テーブル115の完了予測時間の項目に記録される。
【0119】
(S22)実行順序決定部123は、パラメータの値の全ての組についてステップS21を実行すると、繰り返しを終了し、ステップS23に処理を進める。
(S23)実行順序決定部123は、完了予測時間テーブル115に基づいて、シミュレーションの完了予測時間の短い順にパラメータの値の組を並び替え、全ステップのシミュレーションの実行順序とする。ステップS23により実行順序決定部123は、実行順序テーブル116を生成する。こうして、実行順序決定部123は、完了予測時間が短いパラメータの値の組を早い順序で実行するように、実行順序を決定する。そして、シミュレーションの実行順序の決定が終了する。
【0120】
第2実行指示部124は、実行順序テーブル116の実行順序に従って、パラメータの値の組に対する全ステップのシミュレーションの実行を、シミュレーション実行部121に指示する。結果出力部125は、該当のパラメータの値の組に対する全ステップのシミュレーションが完了するたびに、シミュレーション実行部121から所定の評価値などを含むシミュレーション結果を取得し、ユーザに提示する。
【0121】
これにより、情報処理装置100は、各パラメータの値の組に対する評価値などの分布の全体的な傾向を比較的早い段階でユーザが把握できるように支援できる。
なお、上記のように、第2実行指示部124は、各値のシミュレーションを最初から全ステップ実行するようにシミュレーション実行部121に指示してもよい。この場合、シミュレーション実行部121は、各値のシミュレーションを最初から全ステップ実行する。
【0122】
あるいは、一定ステップ数または一定時間のシミュレーション結果が記憶部110に保持される場合も考えられる。その場合、第2実行指示部124は、一定ステップ数または一定時間以降から、該当の値でのシミュレーションを実行するようにシミュレーション実行部121に指示してもよい。この場合、シミュレーション実行部121は、各値のシミュレーションを一定ステップ数または一定時間以降から実行する。何れの場合でも、算出された予測時間が短いシミュレーションについて、一定ステップ数または一定時間以降の実行が優先的に行われることになる。
【0123】
図17は、時間と得られるサンプル数との関係の例を示す図である。
グラフ80は、時間tと得られるサンプル数との関係を示す。グラフ80の横軸は時間tであり、縦軸はサンプル数(個)である。サンプルは、各パラメータの値の1つの組に対する全ステップのシミュレーションにより得られる評価値などのシミュレーション結果に相当する。
【0124】
グラフ80は、系列81,82を含む。系列81は、
図15,
図16で例示した情報処理装置100の手法によりパラメータの値の組に対する実行順序の制御を行う場合である。すなわち、情報処理装置100の手法は、ステップST1,ST2を有する。ステップST1では、制御部120は、パラメータ空間60の各点について一定ステップ数または一定時間でのシミュレーションの実行結果から、各点のシミュレーションに要する時間Tを予測する。ステップST2では、制御部120は、予測した時間Tを基に早く完了する点を優先する順でシミュレーションを実行する。
【0125】
系列82は、当該実行順序の制御を行わずに、単に既存のグリッドサーチ法を用いる場合である。既存のグリッドサーチ法では、例えばパラメータ空間60の点を一定間隔ずつずらして順番に抽出してシミュレーションを実行し、シミュレーションの結果を得る。
【0126】
系列81,82を比較すると、比較的早い段階で、系列81の方が、系列82よりも、得られるサンプル数が多いことが分かる。すなわち、情報処理装置100は、各パラメータの値の多くの組についてのシミュレーション結果を早いタイミングで取得できる。
【0127】
図18は、シミュレーションの実行例を示す図である。
タイミングチャート91,92は、図面の左から右へ向かう方向を時間tの正方向として、パラメータの値の組に対してシミュレーションが実行されるタイミングを表す。タイミングチャート91,92の左端が開始時点である。
【0128】
タイミングチャート91は、既存のグリッドサーチ法を用いる場合の比較例である。タイミングチャート92は、情報処理装置100の手法により実行順序を制御して、シミュレーションを実行する場合である。ここでは、説明を簡単にするため、パラメータP1,P2の取り得る値の組を(P1,P2)=(1,1),(1,2),(2,1),(2,2)とする。タイミングチャート91は、この順番でシミュレーションが行われる例を示す。
【0129】
タイミングチャート92の例では、制御部120は、ステップST10,ST11,ST12を順に実行する。
ステップST10では、制御部120は、パラメータの値の組(1,1),(1,2),(2,1),(2,2)それぞれに対するシミュレーションを一定ステップ数(または一定時間)だけ実行する。
【0130】
ステップST11では、制御部120は、一定ステップ数または一定時間のシミュレーション実行により得られた交通動態の情報に基づき、パラメータの値の組のシミュレーション実行順序を並び替える。例えば、制御部120は、実行順序を(P1,P2)=(1,2),(2,2),(2,1),(1,1)の順に並び替える。
【0131】
ステップST12では、制御部120は、並び替えた順序でシミュレーションを実行する。例えば、制御部120は、ステップST11で決定した(P1,P2)=(1,2),(2,2),(2,1),(1,1)の順で、シミュレーションを実行する。タイミングチャート91,92を比較すると、タイミングチャート92では、各パラメータの値の1つ目~3つ目の組までのシミュレーション結果を、タイミングチャート91よりも早く得られている。
【0132】
このように、情報処理装置100は、比較的長い時間を要すると予測されるパラメータの値の組に対するシミュレーションを後回しにすることで、多くのパラメータの値の組に対するシミュレーション結果を早く得られる。
【0133】
こうして、情報処理装置100は、既存の手法よりも早い段階で、シミュレーションの結果として得られる評価値などの全体的な傾向をユーザが把握できるように支援できる。また、これによって情報処理装置10は、シミュレーションの中断などの判断も早期に行えるように支援でき、計算にかかるコストの抑制を図ることもできる。
【0134】
[第3の実施の形態]
次に、第3の実施の形態を説明する。第3の実施の形態では、第2の実施の形態と相違する事項を主に説明し、共通する事項の説明を省略する。
【0135】
図19は、第3の実施の形態の実行順序の決定例を示す図である。
第3の実施の形態では、実行順序決定部123は、各点に対するシミュレーションの実行に要する時間Tに加えて、パラメータ空間60における各点の距離を考慮する。例えば、パラメータ空間60における1つの点は、パラメータP1の値とパラメータP2の値との1つの組に相当する。例えば、実行順序決定部123の処理の進行に応じて、パラメータ空間60上の点は、3種類に分類される。
【0136】
1つ目の分類は、シミュレーションの実行順序が未決定かつ短時間でシミュレーションが終わると見込まれる点である。2つ目の分類は、シミュレーションの実行順序が未決定かつシミュレーションに時間がかかると見込まれる点である。3つ目の分類は、シミュレーション実行順序決定済の点である。
【0137】
実行順序決定部123は、予測される時間Tが短く、かつ、実行順序決定済の点からの距離が遠い点に対するシミュレーションを優先して実行するように、実行順序を決定する。より具体的には、実行順序決定部123は、パラメータ空間60上の実行順序未決定の点pkに対する優先度スコアPriority(pk)を、時間Tおよびパラメータ空間60における特定の点の間の距離を基に計算する。kは、実行順序未決定の点を識別するインデックスである。実行順序決定部123は、Priority(pk)に基づいて、実行順序を決定する。例えば、優先度スコアPriority(pk)は、式(11)により計算される。
【0138】
【0139】
Aは予め与えられる正の係数である。PDoneは、実行順序決定済の点の集合である。pはPDoneの要素である。min||p-pk||は、p-pk(p∈PDone)のうちの最小値を示す。Tkはpkに対して計算された、シミュレーションの実行に要する時間である。優先度スコアPriority(pk)は、値が大きい程、優先される度合いが高い。
【0140】
実行順序決定部123は、優先度スコアPriority(pk)を用いることで、例えば、パラメータ空間60のラベル「1」「2」の実行順序決定済の点に対し、時間Tが比較的短く、かつ、ラベル「1」「2」の点からの距離が遠い点を優先して選択する。こうして、実行順序決定部123は、実行順序決定済の点から、ある程度離れた点を次のシミュレーション実行に用いる点として選択できる。
【0141】
これにより、実行済のパラメータのうち、最も近いパラメータまでの距離が最も遠いもの、すなわち、今まで実行したどのパラメータよりも遠いものが優先される。また、係数Aは、用途に合わせて予め選択される。例えば、A>1とすることで、パラメータの各値の間の距離min||p-pk||が優先される(距離の重みが大きくなる)。一方、0<A<1とすることで、シミュレーションの時間Tkが優先される(時間の重みが大きくなる)。
【0142】
図20は、優先度スコアテーブルの例を示す図である。
第3の実施の形態では、完了予測時間テーブル115の代わりに、優先度スコアテーブル117が用いられる。優先度スコアテーブル117は、実行順序決定部123により生成され、記憶部110に格納される。優先度スコアテーブル117は、課金エリア、課金額、完了予測時間、既存パラメータ組合せからの最短距離および優先度スコアの項目を含む。
【0143】
課金エリアの項目には、課金エリアの値が登録される。課金額の項目には、課金額の値が登録される。完了予測時間の項目には、課金エリアの値および課金額の値の組に対する全ステップのシミュレーションの実行に要する時間Tが登録される。既存パラメータ組合せからの最短距離の項目には、シミュレーションの実行順序を決定済であるパラメータの値の組からの最短距離min||p-pk||が登録される。優先度スコアの項目には、式(11)に基づいて計算された優先度スコアが登録される。
【0144】
例えば、優先度スコアテーブル117には、課金エリア「A1」、課金額「0」、完了予測時間「10m12s」、既存パラメータ組合せからの最短距離「1.42」、優先度スコア「0.001150695」のレコードを有する。なお、
図20の例では、課金エリアの値を「A1」のように略記しているが、課金エリアの値は、前述のように多角形の頂点を示す(緯度、経度)の座標の組合せにより表される。
【0145】
このレコードは、課金エリア「A1」、課金額「0」の組に対して時間Tが10分12秒であることを示す。また、当該レコードは、課金エリア「A1」、課金額「0」の組に対応する点の、シミュレーションの実行順序を決定済であるパラメータの値の組に対応する点からの最短距離min||p-pk||が1.42であることを示す。更に、当該レコードは、時間T=10分12秒およびmin||p-pk||=1.42に対して、式(11)により計算される優先度スコアが「0.001150695」であることを示す。
【0146】
優先度スコアテーブル117は、課金エリアの値および課金額の値の他の組に対しても、優先度スコアを示すレコードを有する。
次に、第3の実施の形態の情報処理装置100の処理手順を説明する。シミュレーション結果テーブル114の取得の手順は、
図15で例示した手順と同様であるため説明を省略する。
【0147】
図21は、シミュレーションの実行順序の決定例を示すフローチャートである。
(S30)実行順序決定部123は、一定ステップ数または一定時間のシミュレーションの実行に用いられたパラメータの値の組ごとに、下記のステップS31を繰り返し実行する。
【0148】
(S31)実行順序決定部123は、各パラメータの値の該当の組に対応するシミュレーション結果テーブル114から、当該組を用いた場合のシミュレーションの完了に要する時間Tを予測して、優先度スコアテーブル117に記録する。例えば時間Tは
図8で例示された方法により計算される。また、予測された時間Tは、優先度スコアテーブル117の完了予測時間の項目に記録される。
【0149】
(S32)実行順序決定部123は、パラメータの値の全ての組合せについてステップS31を実行すると、繰り返しを終了し、ステップS33に処理を進める。
(S33)実行順序決定部123は、優先度スコアテーブル117に基づいて、シミュレーションの完了予測時間が最も短いパラメータの値の組を選択して、実行順序テーブル116に追加する。ステップS33で選択されたパラメータの値の組は、実行順序「1」となる。これ以降、実行順序テーブル116にパラメータの値の組が追加されるたびに、実行順序「2」、「3」、…が付与される。実行順序決定部123は、実行順序決定済のパラメータの値の組のレコードを優先度スコアテーブル117から消去する。
【0150】
(S34)実行順序決定部123は、実行順序テーブル116に含まれないパラメータの値の組ごとに、ステップS35,S36を繰り返し実行する。ステップS35,S36で使用される、実行順序テーブル116に含まれないパラメータの値の組は、パラメータ空間60における点pkに対応する。実行順序テーブル116に含まれるパラメータの値の組は、パラメータ空間60における点p∈PDoneに対応する。
【0151】
(S35)実行順序決定部123は、実行順序未決定である該当のパラメータの値の組(点pkに相当)に対し、実行順序テーブル116に追加済のパラメータの値の組からの最短距離を決定し、優先度スコアテーブル117に記録する。この最短距離は、式(11)のmin||p-pk||(p∈PDone)に相当する。
【0152】
(S36)実行順序決定部123は、完了予測時間Tkと、最短距離min||p-pk||から、式(11)に基づき、優先度スコアPriority(pk)を計算する。実行順序決定部123は、計算した優先度スコアPriority(pk)を、pkに相当するパラメータの値の組に対応付けて、優先度スコアテーブル117に登録する。
【0153】
(S37)実行順序決定部123は、実行順序テーブル116に含まれないパラメータの値の全ての組についてステップS35,S36を実行すると、繰り返しを終了し、ステップS38に処理を進める。
【0154】
(S38)実行順序決定部123は、優先度スコアテーブル117に基づいて、優先度スコアが最も高いパラメータの値の組を選択して、実行順序テーブル116に追加する。実行順序決定部123は、実行順序決定済のパラメータの値の組のレコードを優先度スコアテーブル117から消去する。
【0155】
(S39)実行順序決定部123は、パラメータの値の全ての組を実行順序テーブル116に追加済であるか否かを判定する。実行順序テーブル116に未追加のパラメータの値の組がある場合、ステップS34に処理が進む。パラメータの値の全ての組を実行順序テーブル116に追加済である場合、シミュレーションの実行順序の決定が終了する。
【0156】
第2実行指示部124は、実行順序テーブル116の実行順序に従って、パラメータの値の組に対する全ステップ(あるいは一定ステップ数または一定時間以降)のシミュレーションの実行を、シミュレーション実行部121に指示する。結果出力部125は、該当のパラメータの値の組に対する全ステップのシミュレーションが完了するたびに、シミュレーション実行部121から所定の評価値などを含むシミュレーション結果を取得し、ユーザに提示する。
【0157】
これにより、情報処理装置100は、各パラメータの値の組に対する評価値などの分布の全体的な傾向を比較的早い段階でユーザが把握できるように支援できる。
特に、単純に計算量が短いシミュレーションを優先して実行すると、パラメータ空間60の一部ばかりを計算することがあり、その場合、評価値などの全体の分布を早期に把握することが難しくなる。そこで、情報処理装置100は、シミュレーションの実行時間に基づくシミュレーションの実行順序の優先度に対し、シミュレーション実行済のパラメータからの距離による補正を加えることで、パラメータ空間60の一部ばかりが計算されることを抑制する。その結果、情報処理装置100は、早期に全体の分布を把握し易くすることができる。
【0158】
以上説明したように、情報処理装置100は次の処理を実行する。
制御部120は、移動体による交通動態のシミュレーションを、パラメータの値を変更することで複数回実行する。このとき制御部120は、シミュレーションそれぞれを一定ステップ数または一定時間実行する。制御部120は、実行されたシミュレーションにより得られた交通動態を示す情報に基づいて、シミュレーションそれぞれの完了に要する予測時間Tを算出する。制御部120は、シミュレーションそれぞれのうち、算出された予測時間Tが短いシミュレーションについて、一定ステップ数または一定時間以降の実行を優先的に行う。
【0159】
これにより、情報処理装置100は、多くの値についてのシミュレーション結果を早いタイミングで取得できる。また、情報処理装置100は、比較的早い段階で、評価値などを示すシミュレーション結果の全体分布を把握可能にできる。情報処理装置100の処理は次のように言うこともできる。
【0160】
制御部120は、パラメータの複数の値それぞれについて移動体による交通動態のシミュレーションを一定ステップ数または一定時間実行する。制御部120は、一定ステップ数または一定時間のシミュレーションにより得られた交通動態を示す情報に基づいて、複数の値それぞれについてのシミュレーションの完了に要する時間Tを予測する。時間Tの予測は、予測時間Tの算出と同じことである。制御部120は、複数の値のうち、予測された時間Tが短い値についてのシミュレーションから優先的に実行する。
【0161】
これにより、情報処理装置100は、多くの値についてのシミュレーション結果を早いタイミングで取得できる。また、情報処理装置100は、比較的早い段階で、評価値などを示すシミュレーション結果の全体分布を把握可能にできる。なお、移動体は、例えば自動車や鉄道車両や自転車などの車両でもよい。移動体は、船舶や航空機でもよい。また、移動体は人でもよい。また、パラメータは1つでもよいし、複数でもよい。パラメータの数が1個の場合、パラメータの値は、1次元のパラメータ空間にプロットされる。パラメータの数がN(Nは2以上の整数)個の場合、N個のパラメータの値の組は、N次元のパラメータ空間にプロットされる。
【0162】
例えば、交通動態を示す情報は、移動体の速度、移動体の数および移動体におけるルート再探索の回数の少なくとも1つでもよい。すなわち、制御部120は、交通動態を示す情報として、移動体の速度、移動体の数および移動体におけるルート再探索の回数の少なくとも1つを取得してもよい。このように、情報処理装置100は、シミュレーションの完了に要する時間に影響を及ぼす指標を、交通動態を示す情報として用いることで、時間Tの予測を適切に行える。
【0163】
なお、「移動体の数」は、例えば、シミュレーションにおいて、シミュレーション空間40にステップごとに存在していた移動体の数、すなわち、ステップごとに処理された移動体の数である。
【0164】
制御部120は、一定ステップ数または一定時間のシミュレーションにより処理された移動体の平均速度、ステップ当たりの移動体の数の平均値およびステップ当たりのルート再探索の回数の平均値の少なくとも1つに基づいて、時間Tを予測してもよい。これにより、情報処理装置100は、時間Tの予測の精度を高められる。制御部120は、時間Tの予測に、例えば式(1)、(3)、(5)、(7)、(8)などを用いることができる。
【0165】
また、制御部120は、時間Tの予測では、一定ステップ数のシミュレーションの実行に要した第1時間、または、一定時間のシミュレーションで実行した第1ステップ数に基づいて、交通動態を示す情報に基づいて算出した時間Tを補正してもよい。これにより、情報処理装置100は、時間Tの予測の精度を高められる。制御部120は、時間Tの補正に、例えば式(9)、(10)などを用いることができる。
【0166】
また、制御部120は、予測された時間Tに基づいてシミュレーションの実行順序を決定する際に次の処理を実行してもよい。制御部120は、パラメータの各々の値のうちの実行順序を決定済である値とパラメータの各々の値のうちの実行順序を未決定である第1の値との間の最短距離、および、第1の値に対して予測された時間Tに応じた優先度を、複数の第1の値それぞれに対して算出してもよい。制御部120は、算出した優先度に基づいて、シミュレーションの次の実行に用いる第1の値を決定してもよい。
【0167】
これにより、情報処理装置100は、パラメータの各値に対する実行順序をより適切に決定できる。制御部120は、優先度の算出に例えば式(11)を用いることができる。
例えば、制御部120は、当該優先度に基づいて、複数の第1の値それぞれのうち、時間Tが短く、かつ、上記最短距離が長い第1の値についてのシミュレーションを優先的に実行する。これにより、情報処理装置100は、パラメータ空間の狭い範囲でシミュレーションが実行されることを抑制し、比較的早い段階で、評価値などを示すシミュレーション結果の全体分布を把握可能にできる。
【0168】
また、パラメータは複数でもよい。制御部120は、複数のパラメータの値の複数の組それぞれを用いたシミュレーションを一定ステップ数または一定時間実行してもよい。そして、制御部120は、当該複数の組それぞれを用いたシミュレーションにより得られた交通動態を示す情報に基づいて、シミュレーションそれぞれについて予測時間Tを算出してもよい。
【0169】
すなわち、制御部120は、複数のパラメータの値の複数の組それぞれについてシミュレーションを一定ステップ数または一定時間実行してもよい。制御部120は、一定ステップ数または一定時間のシミュレーションにより得られた交通動態を示す情報に基づいて、複数の組それぞれについて時間Tを予測してもよい。制御部120は、複数の組のうち、予測された時間Tが短い組についてのシミュレーションから優先的に実行してもよい。
【0170】
これにより、情報処理装置100は、多くの値の組についてのシミュレーション結果を早いタイミングで取得できる。また、情報処理装置100は、比較的早い段階で、評価値などを示すシミュレーション結果の全体分布を把握可能にできる。
【0171】
なお、第1の実施の形態の情報処理は、処理部12にプログラムを実行させることで実現できる。また、第2,第3の実施の形態の情報処理は、CPU101にプログラムを実行させることで実現できる。プログラムは、コンピュータ読み取り可能な記録媒体33に記録できる。
【0172】
例えば、プログラムを記録した記録媒体33を配布することで、プログラムを流通させることができる。また、プログラムを他のコンピュータに格納しておき、ネットワーク経由でプログラムを配布してもよい。コンピュータは、例えば、記録媒体33に記録されたプログラムまたは他のコンピュータから受信したプログラムを、RAM102やHDD103などの記憶装置に格納し(インストールし)、当該記憶装置からプログラムを読み込んで実行してもよい。
【符号の説明】
【0173】
10 情報処理装置
11 記憶部
12 処理部
20 パラメータ空間