JP2011243029A - シミュレーション・システム、方法及びプログラム - Google Patents

シミュレーション・システム、方法及びプログラム Download PDF

Info

Publication number
JP2011243029A
JP2011243029A JP2010115169A JP2010115169A JP2011243029A JP 2011243029 A JP2011243029 A JP 2011243029A JP 2010115169 A JP2010115169 A JP 2010115169A JP 2010115169 A JP2010115169 A JP 2010115169A JP 2011243029 A JP2011243029 A JP 2011243029A
Authority
JP
Japan
Prior art keywords
simulation
predetermined
generating
processes
timing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2010115169A
Other languages
English (en)
Other versions
JP5633961B2 (ja
Inventor
Takayuki Osogami
貴行 恐神
Sachiko Suzuki
祥子 鈴木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2010115169A priority Critical patent/JP5633961B2/ja
Priority to US13/101,281 priority patent/US8942962B2/en
Publication of JP2011243029A publication Critical patent/JP2011243029A/ja
Application granted granted Critical
Publication of JP5633961B2 publication Critical patent/JP5633961B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G08SIGNALLING
    • G08GTRAFFIC CONTROL SYSTEMS
    • G08G1/00Traffic control systems for road vehicles
    • G08G1/01Detecting movement of traffic to be counted or controlled
    • G08G1/0104Measuring and analyzing of parameters relative to traffic conditions
    • G08G1/0108Measuring and analyzing of parameters relative to traffic conditions based on the source of data
    • G08G1/0112Measuring and analyzing of parameters relative to traffic conditions based on the source of data from the vehicle, e.g. floating car data [FCD]

Landscapes

  • Chemical & Material Sciences (AREA)
  • Analytical Chemistry (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

【課題】実測値に対するシミュレーションの近似精度を高める。
【解決手段】実測値に基づき動作の異なる複数のシミュレーションが並列に起動される。時刻Tで実測値が得られた時、シミュレーションの計算結果は、時刻T>Tまで進んでいる。シミュレーションの遡った値である、時刻Tでの計算結果が、時刻Tでの実測値と比較される。複数のシミュレーションから、重複を許し実測値から近いほど大きい値をとるような第1の重み付けの離散分布が得られ、離散分布に従い複数のシミュレーションが生成され、シミュレーションの計算値相互間が近いほど大きい値をとる第2の重み付けの離散分布、即ち、シミュレーション間の移行尤度が得られる。この移行尤度に従い、再スタートされる前の複数のシミュレーションから個別に次のシミュレーションが生成され実行される。
【選択図】図3

Description

この発明は、コンピュータ・ベースのシミュレーション技法に関し、より詳しくは、交通シミュレーションなどの短期予測に適合するシミュレーション技法に関する。
近年、都市計画の一環として、いわゆる、高度道路交通システム(Intelligent Transportation System)が、特に1990年代後半以降、活発に研究されている。
最近特に要望されてきているのは、自動車流入調整などの道路交通管制業務支援、混雑予測などのカーナビへの情報提供などの、リアルタイムの道路情報処理技術である。このような道路情報処理のベースとなるデータとして、例えば、実際に走行している自動車に取り付けられたセンサから得られたデータである、プローブカーデータがある。プローブカーデータが得られるようになると、それを用いてどのようにしてリアルタイムに、交通量、道路の混み具合などの交通情報を適切に処理するかが課題になりつつある。
シミュレーション一般の背景技術として、実測データに基づきシミュレーションを行う従来技術として、下記のものがある。
特開2000−163451号公報は、シミュレーション計算を行う演算装置と、シミュレーション計算範囲の所定位置の観測データを求める観測機器を有する環境予測システムを開示する。このシステムにおいて、演算装置は、シミュレーション計算範囲を二次元座標マトリクスに区切り、それぞれの座標位置に対して、シミュレーション計算のための初期値を設定され、且つ境界条件が入力され、前記設定された初期値及び、入力された境界条件に基づき、所定期間経過後の各座標位置における観察項目の値をシミュレーション計算により求める。観測機器は、所定期間経過後の所定の座標位置に実際の観測データを求め、前記演算装置は、更に所定の座標位置のシミュレーション計算により求めた値と、観測機器による実際の観測データを比較し、差分があれば、前記初期値及び又は、境界条件を補正して再度シミュレーション計算を行うことを開示する。
特開2002−286860号公報は、地下水の流れの解析を行う地下水流れ解析処理と、この地下水流れ解析処理にて得られる流れの条件下で移流分散遅延モデルにより流れ方向分散係数と遅延係数を物質輸送パラメータとして地下水中の物質移動解析とを行うシミュレーション装置において、前記移流分散遅延モデルの要素である地下水中の対象物質の地下水流れ方向に対する分散を表す流れ方向分散係数aLおよび地下水の流れに対する地下水中の対象物質の移動の遅れを表す遅延係数Rdのうち、前記遅延係数Rdは所望の固定値r0を用いると共に、流れ方向分散係数aLは複数種を用い、これら複数種それぞれにおける前記物質の濃度分布または特定地点の濃度を経過時間対応に算出する物質輸送解析手段と、所要の経過時間mをおいて解析対象地での実測により得られた物質の濃度分布を実測値情報として用い、この実測値情報と前記物質輸送解析手段の算出結果とを比較して、前記算出した結果のうち、前記実測値情報に対する類似度が高い算出結果を選定し、当該算出結果の取得にあたって用いた流れ方向分散係数を以て流れ方向分散係数として決定し、かつ、この算出結果の該当する経過時間nと、前記実測での経過時間mから遅延係数をr0×m/nとして決定する遅延係数決定手段と、を具備することを開示する。
また、交通状況監視に関する従来技術として、下記のものがある。
特開平9−128677号公報は、走行軌跡を計測する車載機を搭載した車両を走行させ、それによって得た走行軌跡データを用いて交通状況を監視し、また、信号タイミングデータの実績値および、車両走行モデルを用いて走行軌跡を実測の軌跡に近似させ、そのモデルを用いてシミュレーションを行い、信号タイミングを最適化することを開示する。
特開2004−118735号公報は、現在から比較的長い将来にわたった交通状況を高い精度で予測するために、交通状況計算部で、道路ネットワークデータ、道路ネットワーク上の信号データ、及びOD交通量を用いた交通流シミュレーションを行なって、交通量の計算値を計算し、将来予測処理部で、過去の交通量の観測値と現在の交通量の観測値とに基づいて、将来の交通量の予測値を予測し、OD交通量推定部で計算値が現在の交通量の観測値及び予測値に一致するように交通状況計算部で使用するOD交通量を修正することを開示する。
特開2000−163451号公報 特開2002−286860号公報 特開平9−128677号公報 特開2004−118735号公報
上記従来技術は、観測結果の実測値に基づき、実測値を近似するようにシミュレータを補正しつつ、シミュレーション動作を行うことは開示するが、シミュレータの精度を高めることについては、特に示唆すものではない。
従って、本発明の目的は、実測値に対する近似精度を高めることを可能ならしめるシミュレーション技法を提供することにある。
本発明の更なる目的は、コンピュータ・システムのマルチスレッド環境を利用して、高速且つ、実測値に対して高精度でシミュレーションを実行する技法を提供することにある。
本発明によれば、上記目的は、コンピュータ・システムにより、モンテカルロ・シミュレーションの原理を利用して、実測値に基づき、乱数的に複数のシミュレーションのスレッドを生成し、後の時点で別の実測値が得られたとき、その実測値から近いシミュレーションを複数残して、そこから更に複数のシミュレーションを再スタートさせるようにすることによって達成される。
本発明によれば、最初に、実測値に基づき、少しずつ動作の異なる複数のシミュレーションが並列に起動される。
シミュレーションの計算は、一般的に実世界の動きよりも高速なので、時刻T0で実測値が得られたとき、シミュレーションの計算の計算結果は、時刻T > T0まで進んでいる。ここで時刻Tは、コンピュータ上のシミュレーション時刻である。そこで、本発明によれば、既に時刻Tまで進んでいるシミュレーションの遡った値である、時刻T0での計算結果が、時刻T0で実測値と比較される。
これを可能とするため、生成された各シミュレーションにおいて、各時刻毎の計算結果が、後に参照可能にログとして保存される。
次に、再スタートされる前の複数のシミュレーションから、好適には重複を許して、実測値から近いほど大きい値をとるような第1の重み付けの離散分布が得られる。
次に、第1の重み付けの離散分布に従い複数のシミュレーションが生成され、そのシミュレーションの計算値相互間の近さを勘案して、近いほど大きい値をとるような第2の重み付けの離散分布、すなわち、シミュレーション間の移行尤度が得られる。
そして、この移行尤度に従い、再スタートされる前の複数のシミュレーションから個別に、次のシミュレーションが生成されて実行される。
本発明の1つの側面によれば、生成される各シミュレーションは、好適には、ある1つのシミュレーション動作関数で、それぞれ異なる引数またはパラメータを付与ことでバリエーションを与えられる。こうしておくと、シミュレーションを再スタートさせるとき、パラメータをコピーすることで、シミュレーションの動作を、再スタートするシミュレーションに継承することができる。
本発明の別の側面によれば、再スタートされるシミュレーションの数は、再スタートされる前のシミュレーションの数と同数で、発生された乱数と、上記第1及び第2の重み付け係数の組み合せにより、重複を許して、可能なシミュレーションから選ばれる。この際、重み付け係数の存在により、実測値に近く且つ移行尤度の高い傾向を示すシミュレーションがより選ばれやすくなる。
本発明の更に別の側面によれば、コンピュータ・システムは、マルチスレッド環境をもち、各々のシミュレーションは、個別のスレッドとして生成される。その際、好適には、コンピュータ・システムは、マルチコアまたはマルチプロセッサのシステムとして実装され、個別のコアまたはプロセッサに、シミュレーションのスレッドを割り当てることにより、シミュレーションがより高速に実行される。
この発明によれば、乱数的に複数生成されたシミュレーションのスレッドから、実測値に近いものがより高い尤度になるように重みをつけてシミュレーションを選び実行されることで、より高い精度のシミュレーションを実行することが可能となる。
また、マルチコアまたはマルチプロセッサのコンピュータ・システム上で、個別のコアまたはプロセッサに、シミュレーションのスレッドを割り当てることにより、シミュレーションがより高速に実行される。このことは、非常に複雑なシミュレーション動作を、実時間の計測よりも高速に実行させることを可能ならしめる。
シミュレーションを実施するための一例のハードウェアのブロック図である。 シミュレーションを実施するための一例の機能ブロック図である。 シミュレーション全体の処理のフローチャートを示す図である。 初期化の処理のフローチャートを示す図である。 シミュレーションの再配置処理のフローチャートを示す図である。 離散分布に従い、シミュレーションの複数のサンプルを生成する処理のフローチャートを示す図である。 シミュレーション処理を模式的に説明する図である。 シミュレーション処理を模式的に説明する図である。
以下、図面を参照して、本発明の一実施例の構成及び処理を説明する。以下の記述では、特に断わらない限り、図面に亘って、同一の要素は同一の符号で参照されるものとする。なお、ここで説明する構成と処理は、一実施例として説明するものであり、本発明の技術的範囲をこの実施例に限定して解釈する意図はないことを理解されたい。
先ず、図1を参照して、本発明を実施するために使用されるコンピュータのハードウェアについて説明する。図1において、ホスト・バス102には、複数のCPU1 104a、CPU2 104b、CPU3 104c、・・・CPUn 104nが接続されている。ホスト・バス102にはさらに、CPU1 104a、CPU2 104b、CPU3 104c、・・・CPUn 104nの演算処理のためのメイン・メモリ106が接続されている。
一方、I/Oバス108には、キーボード110、マウス112、ディスプレイ114及びハードティスク・ドライブ116が接続されている。I/Oバス108は、I/Oブリッジ118を介して、ホスト・バス102に接続されている。キーボード110及びマウス112は、オペレータが、コマンドを打ち込んだり、メニューをクリックするなどして、操作するために使用される。ディスプレイ114は、必要に応じて、後述する本発明に係るプログラムをGUIで操作するためのメニューを表示するために使用される。
この目的のために使用される好適なコンピュータ・システムのハードウェアとして、IBM(R)System Xがある。その際、CPU1 104a、CPU2 104b、CPU3 104c、・・・CPUn 104nは、例えば、インテル(R)Xeon(R)であり、オペレーティング・システムは、Windows(商標)Server 2003である。オペレーティング・システムは、ハードティスク・ドライブ116に格納され、コンピュータ・システムの起動時に、ハードティスク・ドライブ116からメイン・メモリ106に読み込まれる。
本発明を実施するためには、必須ではないが、マルチプロセッサ・システムを用いることが望ましい。十分な数のコアまたはプロセッサがあれば、1つのコアまたはプロセッサに1つのシミュレーションのスレッドを割り当てて、高速に実行できるからである。ここでマルチプロセッサ・システムとは、一般に、独立に演算処理し得るプロセッサ機能のコアを複数もつプロセッサを用いるシステムを意図しており、従って、マルチコア・シングルプロセッサ・システム、シングルコア・マルチプロセッサ・システム、及びマルチコア・マルチプロセッサ・システムのどれかでよいことを理解されたい。
なお、本発明を実施するために使用可能なコンピュータ・システムのハードウェアは、IBM(R)System Xに限定されず、本発明のシミュレーション・プログラムを走らせることができるものであれば、通常のパーソナル・コンピュータなどの任意のコンピュータ・システムを使用することができる。オペレーティング・システムも、Windows(R)に限定されず、Linux(R)、Mac OS(R)など、任意のオペレーティング・システムを使用することができる。さらに、シミュレーション・プログラムを高速で動作させるために、POWER(商標)6ベースで、オペレーティング・システムがAIX(商標)のIBM(R)System Pなどのコンピュータ・システムを使用してもよい。
ハードティスク・ドライブ116にはさらに、図2で後述する本発明に係るシミュレータ204、重み計算モジュール206、シミュレータ選択モジュール208、シミュレーションを実行するためのパラメータ210などが格納されており、オペレータのキーボードやマウス操作に応答して、メイン・メモリ106にロードされて実行される。
I/Oバス108にはさらに、通信インターフェース120により、インターネット122を介して、観測装置124に接続されている。観測装置124は、この実施例では、プローブカー・データの観測装置であり、図1のシステムは、通信インターフェース120を介して、一定周期、あるいは不定周期にプローブカー・データからデータを取得することができる。尚ここで、プローブカー・データでなく、定点観測データを用いるようにしてもよい。
通信インターフェース120は、例えば、イーサネット・カードであり、この場合、図示しないが、特定のウェブ・サーバを介して、観測装置124に有線接続される。
あるいは通信インターフェース120は、データ通信カードを用いて、サーバにダイアルアップ接続するタイプのものでもよく、さらには公衆無線LANによるタイプのものでもよい。本発明において、観測装置124に対する接続形態に制限はなく、任意の接続構成を用いることができることを理解されたい。
次に、図2の機能ブロックを参照して、この実施例で使用されるプログラム・モジュールとその機能について説明する。
図2において、制御モジュール202は、ハードティスク・ドライブ116に保存されており、キーボード110やマウス112などの操作に応答して、オペレーティング・システムの働きにより、メイン・メモリ106にロードされて、実行される。
制御モジュール202は、シミュレーション全体の動作を管理する役割を果たすものであり、これには限定されないが、複数のCPU1 104a、CPU2 104b、CPU3 104c、・・・CPUn 104nのうちの1つに割り当てられる管理スレッドとして実装されてもよい。
本発明によれば、一般的に、多くのシミュレーションを並列に走らせるほど、精度が高まる。並列に走らせることができるシミュレーションの最大数は、システムの可用なリソース、オペレーティング・システムの機能、システムのハードウェア・アーキテクチャ、必要なシミュレーションの動作速度などで決定される。
シミュレータ204は、この実施例では、道路上の自動車の動きをシミュレートするものであり、関数Fで以って、下記のように記述される。
xn+1 = xn + Δt
yn+1 = F(xn,yni)
この式で、n → n+1 を繰り返して、xnが所定の時刻に到達するまで、シミュレーションのスレッドが走ることになる。
ここで、xnはシミュレーション時間であり、Δtはクロック1ステップ分の時間刻みである。
また、ynは、一般的に、複数次元をもつベクトル量であり、シミュレーションの状態量をあらわす。θiは、シミュレータ204のパラメータであり、このθiとして異なる値を与えることにより、シミュレータ204は、異なる挙動を示す。θiは一般的に、複数の要素からなるベクトル量である。パラメータθiの要素には、シミュレータ204で使用される乱数の種も含まれてもよい。
シミュレータ204は、動作中に、シミュレーション時刻T = xnと、
計算結果ynの特徴量S(T)を、例えば、ハードディスク・ドライブ116の所定領域に記録する。すると、制御モジュール202は、任意の時点で、所与の時刻のシミュレータ204の計算結果を取得できる。なお、実測値が得られる時間が予め分かっていれば、計算結果ynの特徴量S(T)は、その時間付近だけ記録するようにしてもよい。
制御モジュール202は、起動した任意のシミュレーションのスレッドを停止、あるいは消滅させることができる。このような機能は、Win32API、Linux APIなど、通常のオペレーティング・システムのAPIとして標準で備わっている機能である。
制御モジュール202は、メイン・メモリ106などのリソースが許す限り、任意の数のシミュレータ204を起動して、個別のスレッドとして並列に走らせることができる。
シミュレーションのためのパラメータ210がハードディスク・ドライブ116に保存されて、そこには、シミュレータ204に引数として与えるためのパラメータθi(i = 1,...,k)が含まれる。
制御モジュール202が参照しやすくするため、パラメータθi(i = 1,...,k)は、システムの起動時に、メイン・メモリ106の所定の領域にロードしておいてもよい。
制御モジュール202は、シミュレータ204を複数個、個別のスレッドとして起動する際、パラメータの引数として、異なるθi(i = 1,...,k)を順次与えて、少しずつ挙動の異なるシミュレーションを走らせることができる。
制御モジュール202がシミュレータ204を複数起動する際、利用可能なプロセッサまたはコアが、起動するシミュレータ204の数より多い場合、制御モジュール202は、個々のプロセッサまたはコアに、起動された個々のシミュレータ204のスレッドが1つずつアサインされる。
重み計算モジュール206は、制御モジュール202からコールされて、観測値と起動されたシミュレータ204の計算結果に基づき、後述するシミュレーションの再配置のために、重みの係数を計算する機能をもつ。
シミュレータ選択モジュール208は、制御モジュール202からコールされて、重み計算モジュール206から得られた重み係数と、起動されたシミュレータ204の計算結果に基づき、重複を許して、k個のシミュレータ204を生成する機能をもつ。
重み計算モジュール206とシミュレータ選択モジュール208のより詳しい機能は、後で、図3以下のフローチャートを参照して説明する。
表示モジュール212は、制御モジュール202により制御されて、シミュレーションの途中経過を、ディスプレイ114に表示する機能を有する。
データ観測モジュール214は、制御モジュール202により制御されて、観測装置124から、観測データと、その観測時刻を取得し、メイン・メモリ106の所定領域に配置する機能をもつ。
尚、図2に示すモジュールは、使用されているオペレーティング・システム及びシステム環境に適合する限り、C、C++、C#、Java(R)などの既知の任意のプログラミング言語により作成することができる。
次に、図3〜図6のフローチャートを参照して、この実施例のシミュレーション実行処理を説明する。図3のステップ302で、制御モジュール202は、シミュレーション開始に当たっての初期化を行う。
図4のフローチャートは、初期化の処理をより詳細に示す。図4において、制御モジュール202は、ステップ402で、データ観測モジュール214の機能を利用して、実状態s(0)を観測する。これは、時間T = 0での観測値に対応する。s(0)は、シミュレータ204の関数Fの計算結果に対応する次元と状態量をもつ。s(0)は、観測値自体であってもよいし、観測値に基づき計算された特徴量であってもよい。この実施例では、s(0)は、観測値に基づき計算された特徴量であるとする。
ステップ404では、制御モジュール202は、パラメータθi(i = 1,...,k)を、メイン・メモリ106または、ハードディスク・ドライブ116の所定の領域から読み込む。
図3に戻って、制御モジュール202は、観測した初期値と、パラメータθi(i = 1,...,k)により、下記のようにk個のシミュレーションを並列に走らせる。
ここで、y(i) 0 = s(0) (i = 1,...,k)とする。
x(1) n+1 = x(1) n + Δt
y(1) n+1 = F(x(1) n,y(1) n1)
---------------------------------------------------------
x(2) n+1 = x(2) n + Δt
y(2) n+1 = F(x(2) n,y(2) n2)
---------------------------------------------------------
x(3) n+1 = x(3) n + Δt
y(3) n+1 = F(x(3) n,y(3) n3)
---------------------------------------------------------
・・・・・・・・・・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・・・・・・・・・・
---------------------------------------------------------
x(k) n+1 = x(k) n + Δt
y(k) n+1 = F(x(k) n,y(k) nk)
ステップ306では、制御モジュール202は、所定時間(例えば、T0)が経過したかどうか、判断する。もしそうでなければ、ステップ308で、k個のシミュレーションは、そのまま並列実行される。
ステップ306で、所定時間が経過したと判断されると、ステップ310で、シミュレーションの再配置が行われ、ステップ312では、再配置された結果のk個のシミュレーションが並列実行される。尚、ステップ310の再配置処理は、図5のフローチャートを参照して、後でより詳細に説明する。
ステップ306の判断は、例えば、カウンタとしての所定の変数に値をセットして、デクリメントし、その値がゼロに達したことに応答して行う。シミュレーションの再配置が行われた後は、カウンタとしての所定の変数に値をセットして、デクリメントする処理が再開される。こうして、シミュレーションの再配置は、所定時間毎に行われることになる。
ステップ306の判断の段階で、所定時間が経過しても、何かの事情で、データ観測モジュールで実測値が得られていない、という場合がありえる。その場合は、所定時間が経過してもステップ306の判断を直ちに真にせず、後で実測値が更新されていたことに応答して、ステップ306の判断を真にしてもよい。
ステップ314では、制御モジュール202は、終了条件に達したかどうかを判断する。ここで終了条件とは例えば、シミュレーション開始後、所定の時間が経過したかどうか、あるいは、観測結果が所定の値になったかどうか、などである。
さらに、観測結果がある程度定期的に得られるなら、ステップ306の判断を所定時間の経過とせず、観測結果が入来したタイミングとすることもできる。
次に、図5のフローチャートを参照して、ステップ310の再配置処理を、より詳細に説明する。
ステップ502では、制御モジュール202は、実状態sを観測した時間T0と、現在のシミュレーション時間Tを読み取る。実状態sを観測した時間T0は、データ観測モジュール214が、観測値とその観測時間を、メモリ上の所定の記憶領域に配置するので、読み取ることができる。また、シミュレーション時間Tは、システムのクロックから読み取ることができる。このとき、シミュレーションは、実世界よりも高速なので、T > T0である。
ステップ504では、制御モジュール202が、重み計算モジュール206を呼び出して、重み値w(1)(i)を、i = 1,...,kに亘って、下記の式により、計算する。
すなわち、k個のシミュレーションの時間T0における値をそれぞれ、
S1(T0),S2(T0),...,Sk(T0)とする。ここで、Si(T0)というのは、上記の式で、y(i) nと同じものである。T0がステップ数nに対応する。
また、時間T0における実測値の特徴量をs(T0)とする。すなわち、シミュレーションの計算結果は、特徴量に対応している。
そこで、ある定義された距離関数d1を以って、
d1(Si(T0),s(T0))が大きいほど、w(1)(i)が小さくなるようにw(1)(i)が選ばれる。ここで、d1は、これには限定されないが、例えば、Si(T0),s(T0)をベクトルとしたとき、ユークリッド距離でよい。あるいは、用途に応じて、マンハッタン距離なども使用することができる。
また、これには限定されないが、例えば、 w(1)(i) 〜 exp(-d1(Si(T0),s(T0)))のように選んでよい。w(1)(i) は、実測値とシミュレーションの計算値の単調減少関数になっていればよい。
こうしておいて、下記のように、w(1)(i)をスケーリングする。
Figure 2011243029

重み値w(1)(i)は、実測値と近い状態値をもつシミュレーションが選ばれやすくなるように分布される。
ステップ506では、制御モジュール202が、P(i) = w(1)(i) i = 1, ...,kの離散分布に従って、シミュレータ選択モジュール208を呼び出し、k個のシミュレーション・サンプル{j}を得る。尚、シミュレータ選択モジュール208の詳細な処理は、図6のフローチャートを参照して、後で説明する。
ステップ508では、制御モジュール202が、ある定義された距離関数d2を以って、ステップ506で生成されたk個のシミュレーション・サンプル{j}の各要素jにおいて、
d2((Si(T),θi),(Sj(T),θj))が大きいほど、w(2) j(i)が小さくなるようにw(2) j(i)を選ぶ。ここで、d2は、これには限定されないが、例えば、(Si(T),θi),(Sj(T),θj)をベクトルとしたとき、ユークリッド距離でよい。d2の式は、d1と同様でもよく、異なっていてもよい。さらに、(Si(T),θi)という記法は、ベクトルSi(T)と、ベクトルθiを並べたベクトルを意味する。前述のように、Si(T)は特徴量なので、パラメータθiも一種の特徴量と解釈してもよい。
また、これには限定されないが、例えば、 w(2) j(i) 〜 exp(-d2((Si(T),θi),(Sj(T),θj))))のように選んでよい。w(2) j(i)も、実測値とシミュレーションの計算値の単調減少関数になっていればよい。
こうしておいて、下記のように、w(2) j(i)をスケーリングする。
Figure 2011243029

重み値w(2) j(i)は、シミュレーションjからシミュレーションiへの移行尤度を示す。
ステップ510では、制御モジュール202が、各jについて、Pj(i) = w(2) j(i) i = 1, ...,kの離散分布に従って、シミュレータ選択モジュール208を呼び出し、k個のシミュレーション・サンプル{i*}を得る。すなわち、このステップでは、各jについて、
Pj(i) = w(2) j(i) i = 1, ...,kの離散分布に従って、その都度シミュレータ選択モジュール208を呼び出し、1つずつシミュレーション・サンプルが選ばれ、j = 1,..,kまで進んだとき、k個のシミュレーション・サンプル{i*}が選ばれている、という次第である。
ステップ512では、制御モジュール202が、ステップ510で生成されたk個のシミュレーション・サンプル{i*}を新たなシミュレータ集合とするように、{i*}のシミュレーション時刻Tでのシミュレーション状態S*i(T)と、パラメータθ* iを、元のシミュレータ集合に下記のように順次コピーする。
for (i = 1;i <= k; i++ ) {
Si(T) = S*i(T);
θi = θ* i;
}
ここでパラメータθ* iとあるのは、実際は、θi ( i = 1,...,k)から選ばれたものであることに留意されたい。
次に図6のフローチャートを参照して、シミュレータ選択モジュール208の処理を説明する。この処理は、離散分布P(i) = w(i) i = 1,...,kと、選択するシミュレータの数Nを引数とする。
ステップ602では、シミュレータ選択モジュール208は、ローカル変数m = 1とおく。
ステップ604では、シミュレータ選択モジュール208は、既知のアルゴリズムを用いて、範囲(0,1)から一様乱数を生成し、それをxとおく。
ステップ604では、シミュレータ選択モジュール208は、下記の式をみたすjを選択する。
Figure 2011243029

但し、
Figure 2011243029

とする。
これによってjが決まるので、ステップ608で、m番目のシミュレータとしてシミュレータjが選択される。これは言い換えると、m番目のシミュレータは、パラメータとして、θjを使用することを意味する。
ステップ610では、mが1増分され、ステップ612でm > Nかどうかが判断される。そうでなければ、処理はステップ604に戻り、そうであるなら、所定の数のシミュレータが選ばれたので、処理を終って、シミュレータ選択モジュール208は、もとの処理に戻る。
尚、xの乱数性により、ステップ608で、同一のシミュレータが重複して選ばれることがあることを理解されたい。
図7は、この実施例のシミュレータの動作を模式的に示す図である。ここで、縦軸は、シミュレーションの状態値、横軸は時間である。また、説明の便宜上、並列に走るシミュレータは3個だけだとする。
この図は、実測値がt = T0で得られたとき、シミュレーション時刻は、T > T0まで進んでいることを示す。ここで、図3のステップ306により、シミュレーションの再配置のステップ310が呼び出される。
すると、本発明によれば、t = T0での実測値とシミュレーションの計算値の距離に従い、ステップ504で、重みw(1)(i)が計算される。
ステップ506で、シミュレータ選択モジュール208が呼び出され、重みw(1)(i)に従い、k個のシミュレーション・サンプルが選ばれる。
そのようにして選ばれたシミュレーション・サンプルに基づき、ステップ508において、重みw(2) j(i)が計算され、それに基づき、各j毎にシミュレータ選択モジュール208が呼ばれて、改めて結果的にk個のシミュレーション・サンプルが選ばれる。
そのk個のシミュレーション・サンプルの状態値とパラメータが、ステップ512で、元のシミュレータ集合の引数としてコピーされ、ステップ312で、その結果再配置されたシミュレーションが実行される。
図8は、その結果選ばれたシミュレータS'1, S'2及びS'3がシミュレーション時刻Tから始まって、先に進んでいる様子を示す。
このようなシミュレーションの挙動は、表示モジュール212の機能により、ディスプレイ114に表示される。
このようにシミュレーション・スレッドが複数あると、それらの状態値を複数のシミュレーションで平均した結果を、最終的にシミュレーションされた結果とみなすことができる。
上記実施例では、第1の重み係数としてのw(1)(i)と、第2の重み係数としてのw(2) j(i)の両方を用いて、シミュレーションの離散分布を生成するようにした。この実施例は、精度の点で好ましいが、第1の重み係数のみを用いてシミュレーションの離散分布を生成しても、シミュレーションを実現することができることを理解されたい。このとき、生成したj番目のシミュレーションがもとのシミュレーションのi番目に対応するなら、生成したj番目のシミュレーションに、もとのi番目のシミュレーションの計算結果とパラメータがコピーされる。
以上、本発明を、プローブカーデータまたは定点観測データの測定結果に基づく、交通シミュレーションを例にとって説明したが、本発明は、これには限定されず、金融工学のリスク・シミュレーション、商品価格や株価の変動シミュレーション、天気予報など、実測値に基づき離散分布に従う複数のシミュレーションを確率的に発生されることが有効であるさまざまな分野に適用可能であることを理解されたい。
また、例示されているハードウェア構成は一例であって、本発明は、マルチタスクあるいははマルチスレッドをサポートする環境であるなら、特定のハードウェア、オペレーティングシステムに限定されるものではない。
104a・・・104n CPU
106 メイン・メモリ
108 バス
110 キーボード
112 マウス
114 ディスプレイ
116 ハードティスク・ドライブ
124 観測装置
202 制御モジュール
204 シミュレータ
206 計算モジュール
208 シミュレータ選択モジュール
210 パラメータ
212 表示モジュール
214 データ観測モジュール

Claims (18)

  1. コンピュータの処理によって、シミュレーションを実行する方法であって、
    前記コンピュータの処理によって、所定の観測時点から出発して、実際の事象の実測値を観測して観測値を得るステップと、
    前記コンピュータの処理によって、前記所定の観測時点から出発して、動作が、異なるパラメータによって特徴づけられる、複数のシミュレーション処理を並列に走らせるステップと、
    前記コンピュータの処理によって、前記所定の観測時点後の所定のタイミングで、そのタイミングまでに得られた前記実測値と、前記各シミュレーション処理の計算結果の間の距離に従う離散分布を生成するステップと、
    前記コンピュータの処理によって、前記離散分布を用いて、複数のシミュレーション処理を生成するステップを有する、
    シミュレーション方法。
  2. 前記コンピュータの処理によって、前記離散分布に従い複数のシミュレーション処理を生成した際の、任意の前記シミュレーション処理と該生成されたシミュレーション処理の間の移行尤度を生成するステップをさらに有し、前記複数のシミュレーション処理を生成するステップは、該移行尤度を利用してシミュレーション処理を生成する、請求項1に記載の方法。
  3. 前記所定のタイミングが、前記所定の観測時点から所定時間経過後である、請求項1に記載の方法。
  4. 前記所定のタイミングが、前記実測値が得られたタイミングである、請求項1に記載の方法。
  5. 前記移行尤度に従い、複数のシミュレーション処理を生成するステップが、それまでに実行されていたシミュレーション処理から、計算結果と前記パラメータを受け取るステップを有する、請求項1に記載の方法。
  6. 前記シミュレーションが交通シミュレーションであり、前記実測値が、プローブカーデータまたは定点観測データである、請求項1に記載の方法。
  7. コンピュータの処理によって、シミュレーションを実行するプログラムであって、
    前記コンピュータに、
    所定の観測時点から出発して、実際の事象の実測値を観測して観測値を得るステップと、
    前記所定の観測時点から出発して、動作が、異なるパラメータによって特徴づけられる、複数のシミュレーション処理を並列に走らせるステップと、
    前記所定の観測時点後の所定のタイミングで、そのタイミングまでに得られた前記実測値と、前記各シミュレーション処理の計算結果の間の距離に従う離散分布を生成するステップと、
    前記離散分布を用いて、複数のシミュレーション処理を生成するステップを実行させる、
    シミュレーション・プログラム。
  8. 前記離散分布に従い複数のシミュレーション処理を生成した際の、任意の前記シミュレーション処理と該生成されたシミュレーション処理の間の移行尤度を生成するステップをさらに有し、前記複数のシミュレーション処理を生成するステップは、該移行尤度を利用してシミュレーション処理を生成する、請求項7に記載のプログラム。
  9. 前記所定のタイミングが、前記所定の観測時点から所定時間経過後である、請求項7に記載のプログラム。
  10. 前記所定のタイミングが、前記実測値が得られたタイミングである、請求項7に記載のプログラム。
  11. 前記移行尤度に従い、複数のシミュレーション処理を生成するステップが、それまでに実行されていたシミュレーション処理から、計算結果と前記パラメータを受け取るステップを有する、請求項7に記載のプログラム。
  12. 前記シミュレーションが交通シミュレーションであり、前記実測値が、プローブカーデータまたは定点観測データである、請求項7に記載のプログラム。
  13. コンピュータの処理によって、シミュレーションを実行するシステムであって、
    所定の観測時点から出発して、実際の事象の実測値を観測して観測値を得る手段と、
    前記所定の観測時点から出発して、動作が、異なるパラメータによって特徴づけられる、複数のシミュレーション処理を並列に走らせる手段と、
    前記所定の観測時点後の所定のタイミングで、そのタイミングまでに得られた前記実測値と、前記各シミュレーション処理の計算結果の間の距離に従う離散分布を生成する手段と、
    前記離散分布を用いて、複数のシミュレーション処理を生成する手段とを有する、
    シミュレーション・システム。
  14. 前記離散分布に従い複数のシミュレーション処理を生成した際の、任意の前記シミュレーション処理と該生成されたシミュレーション処理の間の移行尤度を生成する手段をさらに有し、前記複数のシミュレーション処理を生成する手段が、該移行尤度に基づき複数のシミュレーション処理を生成する、請求項13に記載のシステム。
  15. 前記所定のタイミングが、前記所定の観測時点から所定時間経過後である、請求項13に記載のシステム。
  16. 前記所定のタイミングが、前記実測値が得られたタイミングである、請求項13に記載のシステム。
  17. 前記移行尤度に従い、複数のシミュレーション処理を生成する手段が、それまでに実行されていたシミュレーション処理から、計算結果と前記パラメータを受け取る処理を行う、請求項13に記載のシステム。
  18. 前記シミュレーションが交通シミュレーションであり、前記実測値が、プローブカーデータまたは定点観測データである、請求項13に記載のシステム。
JP2010115169A 2010-05-19 2010-05-19 シミュレーション・システム、方法及びプログラム Expired - Fee Related JP5633961B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010115169A JP5633961B2 (ja) 2010-05-19 2010-05-19 シミュレーション・システム、方法及びプログラム
US13/101,281 US8942962B2 (en) 2010-05-19 2011-05-05 Method and system for measured value simulation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010115169A JP5633961B2 (ja) 2010-05-19 2010-05-19 シミュレーション・システム、方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2011243029A true JP2011243029A (ja) 2011-12-01
JP5633961B2 JP5633961B2 (ja) 2014-12-03

Family

ID=44973197

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010115169A Expired - Fee Related JP5633961B2 (ja) 2010-05-19 2010-05-19 シミュレーション・システム、方法及びプログラム

Country Status (2)

Country Link
US (1) US8942962B2 (ja)
JP (1) JP5633961B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210085375A (ko) * 2019-12-30 2021-07-08 건국대학교 산학협력단 병렬 처리 기반의 교통 시뮬레이션 방법 및 이를 위한 장치

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7207393B2 (ja) 2018-02-28 2023-01-18 ソニーグループ株式会社 情報処理装置および情報処理方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000163451A (ja) * 1998-11-27 2000-06-16 Mitsubishi Heavy Ind Ltd 水域環境予測システム
JP2004118735A (ja) * 2002-09-27 2004-04-15 Toyota Central Res & Dev Lab Inc 交通状況推定装置及びod交通量修正装置
WO2008007471A1 (fr) * 2006-07-10 2008-01-17 Kyoto University Procédé de suivi d'un marcheur et dispositif de suivi d'un marcheur
JP2009032043A (ja) * 2007-07-27 2009-02-12 Panasonic Corp 交通信号制御パラメータ設計装置及び交通信号制御パラメータ生成方法
JP2010501100A (ja) * 2006-08-15 2010-01-14 メンタル イメージズ ゲーエムベーハー 準モンテカルロ法を使用するマルコフ連鎖の同時シミュレーション

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09128677A (ja) 1995-11-06 1997-05-16 Hitachi Ltd 交通監視制御システム
JP3682954B2 (ja) 2001-03-23 2005-08-17 株式会社東芝 地下水シミュレーション装置および地下水シミュレーションの物質輸送パラメータ決定方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000163451A (ja) * 1998-11-27 2000-06-16 Mitsubishi Heavy Ind Ltd 水域環境予測システム
JP2004118735A (ja) * 2002-09-27 2004-04-15 Toyota Central Res & Dev Lab Inc 交通状況推定装置及びod交通量修正装置
WO2008007471A1 (fr) * 2006-07-10 2008-01-17 Kyoto University Procédé de suivi d'un marcheur et dispositif de suivi d'un marcheur
JP2010501100A (ja) * 2006-08-15 2010-01-14 メンタル イメージズ ゲーエムベーハー 準モンテカルロ法を使用するマルコフ連鎖の同時シミュレーション
JP2009032043A (ja) * 2007-07-27 2009-02-12 Panasonic Corp 交通信号制御パラメータ設計装置及び交通信号制御パラメータ生成方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JPN6014012849; Xiaotian Sun et al: 'Highway Traffic State Estimation Using Improved Mixture Kalman Filters for Effective Ramp Metering C' Proc. of the 42nd IEEE Conf. on Decision and Control Vol.6, 200312, pp.6333-6338 *
JPN6014012850; Rhonda Righter et al: 'Distributed Simulation of Discrete Event Systems' Proc. of the IEEE Vol.77 No.1, 198901, pp.99-113 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210085375A (ko) * 2019-12-30 2021-07-08 건국대학교 산학협력단 병렬 처리 기반의 교통 시뮬레이션 방법 및 이를 위한 장치
KR102309714B1 (ko) 2019-12-30 2021-10-06 건국대학교 산학협력단 병렬 처리 기반의 교통 시뮬레이션 방법 및 이를 위한 장치

Also Published As

Publication number Publication date
US8942962B2 (en) 2015-01-27
JP5633961B2 (ja) 2014-12-03
US20110288833A1 (en) 2011-11-24

Similar Documents

Publication Publication Date Title
Simakov et al. A slurm simulator: Implementation and parametric analysis
US9164785B2 (en) Predicting performance of a consolidated virtualized computing environment
US9715663B2 (en) Predicting application performance on hardware accelerators
CA3090095C (en) Methods and systems to determine and optimize reservoir simulator performance in a cloud computing environment
US20170140278A1 (en) Using machine learning to predict big data environment performance
Arda et al. DS3: A system-level domain-specific system-on-chip simulation framework
US10248581B2 (en) Guarded memory access in a multi-thread safe system level modeling simulation
US20110161939A1 (en) Apparatus for displaying the result of parallel program analysis and method of displaying the result of parallel program analysis
JP2007249974A (ja) プロセッサ設計を特徴付けるための方法、装置、論理プログラム及びシステム
US11907821B2 (en) Population-based training of machine learning models
Tuli et al. MCDS: AI augmented workflow scheduling in mobile edge cloud computing systems
CN111316238A (zh) 数据中心利用率预测系统和方法
CN109726811A (zh) 使用优先级队列训练神经网络
US9075666B2 (en) Deferred execution in a multi-thread safe system level modeling simulation
Pelaez et al. Autonomic scheduling of deadline-constrained bag of tasks in hybrid clouds
US20150058854A1 (en) Direct Memory Interface Access in a Multi-Thread Safe System Level Modeling Simulation
US20150019198A1 (en) Method to apply perturbation for resource bottleneck detection and capacity planning
Wu et al. A distributed workflow management system with case study of real-life scientific applications on grids
Zhao et al. Tiny autoscalers for tiny workloads: Dynamic CPU allocation for serverless functions
JP5633961B2 (ja) シミュレーション・システム、方法及びプログラム
Mariani et al. Design-space exploration and runtime resource management for multicores
Bulej et al. Self-adaptive K8S cloud controller for time-sensitive applications
WO2019103773A1 (en) Automatically identifying alternative functional capabilities of designed artifacts
Uddin et al. Cache-based high-level simulation of microthreaded many-core architectures
KR20190057854A (ko) 데이터 입출력 포화 검출 장치 및 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140401

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140423

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20140423

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20140423

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20140423

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140922

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20140924

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20140924

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141010

R150 Certificate of patent or registration of utility model

Ref document number: 5633961

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees