JP6219528B2 - シミュレーションシステム、及びシミュレーション方法 - Google Patents

シミュレーションシステム、及びシミュレーション方法 Download PDF

Info

Publication number
JP6219528B2
JP6219528B2 JP2016545097A JP2016545097A JP6219528B2 JP 6219528 B2 JP6219528 B2 JP 6219528B2 JP 2016545097 A JP2016545097 A JP 2016545097A JP 2016545097 A JP2016545097 A JP 2016545097A JP 6219528 B2 JP6219528 B2 JP 6219528B2
Authority
JP
Japan
Prior art keywords
behavior
vector
random number
parameter
value
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.)
Active
Application number
JP2016545097A
Other languages
English (en)
Other versions
JPWO2016030938A1 (ja
Inventor
幸二 福田
幸二 福田
泰幸 工藤
泰幸 工藤
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of JPWO2016030938A1 publication Critical patent/JPWO2016030938A1/ja
Application granted granted Critical
Publication of JP6219528B2 publication Critical patent/JP6219528B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/18Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/08Probabilistic or stochastic CAD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/10Numerical modelling

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Algebra (AREA)
  • Geometry (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Evolutionary Biology (AREA)
  • Probability & Statistics with Applications (AREA)
  • Operations Research (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Computing Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

本発明は、シミュレーションシステム、及びシミュレーション方法に関する。
興味の対象であるシステム(系)が与えられたとき、当該システムの振る舞いをモデル化し、計算機が当該モデルに基づいて当該システムの振る舞いをシミュレーションし、将来の振る舞いを予測することが行われる。例えば、ある種の物理現象や、多数の要素が絡み合う社会現象などは、単純な決定論的なモデルでは記述されることができず、複雑かつ確率的なモデルとして記述される。
決定論的なシステムは、与えられた初期条件のもとで、システムの将来の振る舞いが一つに定まる。これに対して、確率的なシステムは、システムの将来の振る舞いはある確率分布にしたがって分布しており、計算機は、例えば、注目する指標の期待値等の統計量を求める場合、シミュレーションを行う必要がある。
確率的なシステムの統計的な振る舞いを計算機が予測、シミュレーションする方法として、モンテカルロ・シミュレーション法が知られている。モンテカルロ・シミュレーション法は、対象システムに存在する確率的な振る舞いを乱数によって模擬したシミュレーションを多数回繰り返し行うことで、注目する指標の期待値を推定する方法である。このとき、シミュレーションの回数を増やすことで、大数の法則により、注目する指標の期待値が真の値に近づくと考えられる。
本技術分野の背景技術として、特開2004−117228号公報(特許文献1)がある。特許文献1には、「気象物理量を対象とした気象庁発表の長期予報を取得するデータ取得ステップ0201、気象物理量の従う時系列モデルを作成する気象時系列モデル作成ステップ0202、推定期間における推定地点の気象物理量をシミュレーション回数だけシミュレートする気象物理量シミュレーションステップ0203、気象物理量のシミュレーション結果を気象物理量推定結果として出力する気象物理量推定結果出力ステップ0204を有する。さらに、気象時系列モデル作成ステップ0202を、気象時系列モデルのパラメータ推定ステップ02021および気象時系列モデルのパラメータ補正ステップ02022から構成する。」と記載されている(要約参照)。
特開2004−117228号公報
例えば、特許文献1に記載の技術のシミュレーション対象である気象物理量のように、モンテカルロ・シミュレーションの対象である、確率的なモデルには、一般的に多数のパラメータが存在することが多い。このとき、モンテカルロ・シミュレーション実行にあたっては、あるパラメータ値の下での注目する指標の期待値だけではなく、注目指標の期待値のパラメータ値に対する感度を算出したい場合がある。注目指標の期待値のパラメータ値に対する感度とは、与えられたパラメータ値が微小に変化したときに、注目指標の期待値がどれくらい変化するかを表す微分係数である。
例えば、システムのパラメータの最適化を行う、すなわち、許容されるパラメータ値の範囲の中で、ある注目指標の期待値を最大化するパラメータ値を探す場合、与えられたパラメータ値の下での感度を得られれば、勾配法やニュートン法といった公知の最適化手法によって最適化を行うことができる。
ところが、モンテカルロ・シミュレーションにおいて、注目指標の期待値のパラメータ値に対する感度を求めることは、とくにパラメータが多数ある場合には、容易ではない。注目指標の期待値のパラメータに対する感度は、単純には、与えられたパラメータ値の下での注目指標の期待値と、パラメータをそこから微小に変化させたときの注目指標の期待値との差を、パラメータの微小変化量で割ることで算出できる。
特許文献1に記載の技術を、多数のパラメータについて注目指標の期待値の感度の推定に適用する場合、例えば特許文献1の数5、数12のように、多数のパラメータそれぞれを一つずつ微小変化させた注目指標の期待値それぞれを算出する必要がある。すなわち、特許文献1に記載の技術を適用した感度推定手法は、当該多数パラメータの個数と同数セットのモンテカルロ・シミュレーションを行う必要がある。
そもそも、1セットのモンテカルロ・シミュレーションを行って注目指標の期待値を求めること自体が、大数の法則を満足するような多数回のシミュレーションをする必要がある。したがって、当該多数パラメータの個数と同数セットのモンテカルロ・シミュレーションを行うことは、計算機リソースや計算時間の制限により困難である。
上記課題を解決するために、本発明は、例えば、以下のような構成を採用する。複数の乱数ベクトルそれぞれを入力とする確率的システムのシミュレーションを繰り返して、前記確率的システムの挙動の複数の実現値を算出する、シミュレーションシステムであって、プロセッサと、メモリと、を含み、前記メモリは、1以上の乱数からなる乱数ベクトルと、1以上のパラメータからなるパラメータベクトルと、に基づいて、確率的システムの挙動の実現値を決定する、挙動関数と、前記確率的システムの挙動の実現値に基づいて、前記確率的システムの挙動の評価値を決定する、挙動評価関数と、乱数ベクトルに対応する挙動関数の実現値を一定に保つ条件において、前記乱数ベクトルの乱数それぞれのパラメータによる第1の微分係数を決定し、当該第1の微分係数に基づき当該パラメータに対する当該乱数ベクトルの重みを決定する、重み関数と、を保持し、前記プロセッサは、複数の乱数ベクトルと、パラメータベクトルと、を取得し、前記取得した複数の乱数ベクトルそれぞれと、前記取得したパラメータベクトルと、前記挙動関数と、に基づいて、前記取得した複数の乱数ベクトルそれぞれに対応する前記確率的システムの挙動の実現値を算出し、前記取得した複数の乱数ベクトルそれぞれと、前記取得したパラメータベクトルと、前記重み関数と、に基づき、前記取得したパラメータベクトルのパラメータそれぞれに対する、前記取得した乱数ベクトルそれぞれの重みを算出し、前記算出した実現値それぞれと、前記挙動評価関数と、に基づいて、前記取得した複数の乱数ベクトルそれぞれに対応する前記確率的システムの挙動の評価値を算出し、前記取得した複数の乱数ベクトルそれぞれに対応する前記算出した挙動の評価値と、前記取得したパラメータベクトルから選択したパラメータに対する前記取得した乱数ベクトルそれぞれの重みと、に基づいて、前記選択したパラメータに対する、前記確率的システムの挙動の評価値の期待値の感度、を算出する、シミュレーションシステム。
本発明の一態様によれば、パラメータが存在する確率的なシステムにおいて、任意に決めた注目指標の期待値のパラメータに対する感度を、1セットのモンテカルロ・シミュレーションによって得られた結果から求めることができる。これにより、注目指標の期待値のパラメータに対する感度を求めるために必要な、計算機リソースや計算時間を削減することができる。
実施例1におけるモンテカルロ・シミュレーション・システムの構成例を表すブロック図である。 実施例1における乱数重要度算出部の構成例を表すブロック図である。 実施例1のモンテカルロ・シミュレーションの全体処理の例を表すフローチャートである。 実施例1におけるシミュレーション実行処理の一例を表すフローチャートである。 実施例1におけるシミュレーション実行処理の別の一例を表すフローチャートである。 実施例1におけるモンテカルロ・シミュレーション・システムのユーザインタフェースの一例である。 実施例2における6個のトランジスタで構成されるSRAMセルの回路の例である。 実施例3における、銀行の収支計画表の例である。 実施例4において、乱数ベクトルが2次元一様分布に従う場合における、境界残余を算出する概念の例を示す図である。
以下、本発明の実施形態について述べる。本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。本実施形態においては、便宜上その必要があるときは、複数のセクションまたは実施形態に分割して説明するが、特に明示した場合を除き、それらは互いに無関係なものではなく、一方は他方の一部または全部の変形例、詳細、補足説明等の関係にある。また、以下の実施形態において、要素の数等(個数、数値、量、範囲等を含む)に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でもよい。
以下、本発明の実施形態を、添付図面を参照して説明する。なお、各図において、共通の構成には原則として同一の参照符号を付し、繰り返しの説明は省略する。
本実施例はモンテカルロ・シミュレーション・システムについて説明する。まず、本実施例のモンテカルロ・シミュレーション・システムがシミュレーションを実行し、感度を算出するための理論的側面について説明する。
確率変数Xは、本実施例のモンテカルロ・シミュレーション・システムによる、シミュレーション対象である確率的なシステムの挙動を表す。つまり、当該シミュレーション対象である確率的なシステムの挙動は確率変数Xでモデル化される。以下、シミュレーション対象である確率的なシステムを、単にシステムとも表記する。また、xはシステムの挙動Xの実現値を表す。
ここで、システムの挙動Xは、1次元又は多次元のベクトルのいずれであってもよく、また、「時刻」と呼ばれる変数tで区別される無限個の確率変数の組(離散時間確率過程と呼ばれる)であってもよい。したがって、システムの挙動Xが離散時間確率過程である場合、Xは本来X(t)と表記されるべきであるが、特に必要がある場合を除いて、単にXとも表記する。また、ある時刻tにおけるシステムの挙動を示す値x(t)を、時刻tにおけるシステムの状態と呼ぶ。
システムの挙動Xの分布は、システムのパラメータzに依存し、さらにXの確率密度関数が、f(x,z)という形で表記されるとする。以下、システムのパラメータzを単にパラメータzと表記する。パラメータzは、N次元のベクトル(すなわち、システムの挙動はN個のパラメータに依存している)であり、zの成分は、z=(z)(ただし、i=1,…,N)であるとする。また、1つのシステムの挙動の実現値X=xに対して1つの実数値を定める、関数a(x)が与えられているとする。a(x)をシステムの挙動の評価関数と呼ぶ。システムの挙動の評価関数は、注目指標の一例である。さらに、a(x)の期待値A(x)=E[a(x)]をシステム評価関数と呼ぶ。
実際に興味あるシステムについて検討する場合、しばしば、Xの確率密度関数f(x,z)が未知であることが問題となる。しかしながら、多くの場合、Xの確率密度関数f(x,z)自体は未知であっても、Xの分布を生み出す挙動自体は既知(又はモデル化可能)である。
この場合、モンテカルロ・シミュレーション・システムは、モンテカルロ・シミュレーションによって、システムの挙動の実現値xを多数生成して、Xの分布、すなわちf(x,z)を模擬することで、システム評価関数A(x)の値を近似的に算出できる。なお、生成されたシステムの挙動の実現値xそれぞれをパスとも呼ぶ。モンテカルロ・シミュレーションは、分布が既知である(複数の)乱数から、システムの挙動の実現値xを算出する計算を含む。以下、これを定式化する。
W=(W)をM次元の確率変数とし(ただし、j=1,…,M)、確率変数Wの実現値をw=(w)と書く。また、Wの(同時)確率密度関数をg(w)と書く。ここで、g(w)は既知であり、また計算機上でこの分布に従う乱数を容易に生成できるものとする。wは、例えば、[0,1]上の一様分布、又は、標準正規分布N(0,1)等に従うM個の独立な乱数からなるベクトルである。このとき、パラメータz=(z)のもとで、乱数ベクトルwから、対応するXの実現値xを計算する方法、すなわち、関数x=x(w,z)が与えられているとする。このとき、以下の数1が成立する。
Figure 0006219528
ただし、Ωは、乱数ベクトルwの分布範囲、つまりg(w)のサポート(台)を表す。また、最右辺の記号dwはdw・dw・…・dwの略記であり、積分記号はM次元の多重積分を表す。モンテカルロ・シミュレーションにおいて1つのパスをシミュレーションすることは、関数x=x(w,z)を計算することに相当する。
さらに、L個のパスによりモンテカルロ・シミュレーションを行う場合、生成されたL個の乱数ベクトルをそれぞれw=(w )と書けば(ただし、j=1,…,M、k=1,…,L、Lは大数の法則を満足する数)、大数の法則から、システム評価関数は、例えば、以下の数2のように、期待値を多数(L個)のサンプルx(w,z)の平均値で近似することにより算出される。
Figure 0006219528
本実施例の目的の1つは、以下の数3で表される、システム評価関数をN個のパラメータ(z)それぞれで微分した微分係数を効率的に算出する方法を提供することである。当該微分係数を、システム評価関数のパラメータに対する感度と呼ぶ。
Figure 0006219528
まず、本実施例の基本的なアイディアを説明する。本実施例の基本的なアイディアは、与えられたパラメータのセットzのもとで生成したシステムの挙動(実現値)xを、パラメータzを微小変化させた後にも利用しつづけることである。多くのシステムにおいてx(w,z)は連続であり、このとき、パラメータの所定の閾値以下である微小変化Δzに対応して、それを打ち消すような乱数ベクトルの所定の閾値以下である微小変化Δwが存在する場合を考える。つまり、与えられたΔzに対して以下の数4を満たすようなΔwが定まる場合を考える。
Figure 0006219528
このとき、w+Δwの分布は、確率密度関数g(w)には従っていないため、例えば数2のような単純な平均によってA(z+Δz)を計算することはできない。しかしながら、w+Δwの分布がg(w)からどれくらい異なっているのかを勘案して、a(x(w,z))にそれぞれ適切な重みをつけたうえで平均をとることで、A(z+Δz)を算出できるというのが、本実施例の基本的なアイディアである。本実施例の手法は、重点サンプリング(Importance Sampling)手法の一例と考えることもでき、当該重みは重要度に相当する。
具体的には、以下の数5で表される、各パスxに対してxを一定に保つようなΔzとΔwとの関係を算出し、当該関係に基づいて重みを算出する。
Figure 0006219528
数5は、ベクトル(∂w/∂z)|x=constの各要素が右辺で表されることを意味している。ただし、前述したように、xは無限次元の変数になりえるため、この表記は形式的なものである。この点については後述する。
実際にモンテカルロ・シミュレーションの対象であるシステムにおいては、多くの場合、w、zからxを計算する構成的なアルゴリズム、即ち関数x=x(w,z)の具体的な形が分かっている。このとき、ユーザ等は数5の右辺が示示す(wとzの)関数の具体的な形を解析的に算出することができる。したがって、(∂w/∂z)|(x=const)は、例えば、当該解析的に算出された関数に乱数ベクトルとパラメータを代入することにより算出される。また、関数x(w,z)の具体的な形がわからないため、数5の右辺が示す関数の具体的な形を解析的に算出することはできない場合でも、パラメータの微小変化Δzに対して、xを一定に保つような、Δwを求めることにより、(∂w/∂z)|x=const=Δw/Δzと近似的に計算することができる。
以下、上記したアイディアを具体的に定式化する。Δzをi番目のパラメータの微小変化として、パラメータがz+Δz=(z,z,…,z+Δz,…,z)であるときの、システム評価関数A(z+Δz)は、以下の数6のように表される。
Figure 0006219528
ただし、(∂w/∂z)|x=constは、前述したようにx=x(w,z)=x(w+Δw,z+Δz)を満たす、パラメータの微小変化Δzと、乱数ベクトルの微小変化Δwとの関係を表す。また、Iは単位行列を、trは行列の跡(trace)を、中点・は内積を表す。|dw’/dw|はwからw’への変数変換によるヤコビ行列式を、Ω’は変数変換によるΩの像を表す。したがって、以下の数7が成立する。
Figure 0006219528
ただし、数7の積分が存在するものとする。ここで、以下の数8で定義されるN変数関数h(w,z)=(h(w,z))を(ただし、i=1,…,N)、等価微分重要度と呼ぶ。
Figure 0006219528
数7より、システム評価関数のパラメータに対する微分係数、すなわち感度は、等価微分重要度によって重みづけされたシステムの挙動の評価値、の期待値に基づいて算出される。また、数7中のRは、数7の積分範囲をΩ’ではなくΩとしたことにともなう差し引きを表す項であり,以下の数9のように表される。
Figure 0006219528
を境界残余と呼ぶ。ただし∂ΩはΩの境界(表面)を、nは境界∂Ωの外向き単位法線ベクトルを表す。数9より、Ωの境界(表面)∂Ωで(∂w/∂z)|x=const=0(ベクトル)であれば、R=0である。この場合、数7により、以下の数10が成立する。
Figure 0006219528
ここで、代表的な乱数ベクトルwの分布における等価微分重要度h(w,z)について述べる。wが一様分布の乱数ベクトルであるとき、h(w,z)は以下の数11で表される。
Figure 0006219528
また、wがM次元独立標準正規分布の乱数ベクトルであるとき,h(w,z)は以下の数12で表される。
Figure 0006219528
また、モンテカルロ・シミュレーションにより、数7が示す、システム評価関数A(z)のパラメータzに対する微分係数は、以下の数13のように近似的に算出される。
Figure 0006219528
とくに,Ωの境界(表面)∂Ωで(∂w/∂z)|x=const=0の場合は、数10より、システム評価関数A(z)のパラメータzに対する感度は、以下の数14で表される。
Figure 0006219528
数2、数13、数14より、初期パラメータzについてのみ、モンテカルロ・シミュレーションを1セット行って、L個のパス{x(w,z)}と、L個のパスそれぞれにおける等価微分重要度{h(w,z)}を計算すれば(ただし、k=1,…,L)、zにおけるシステム評価関数A(z)と同時に、システム評価関数A(z)の全てのパラメータに対する微分係数を計算できる。すなわち、本実施例のモンテカルロ・シミュレーション・システムは、微小変化後の各パラメータz+Δzについてのモンテカルロ・シミュレーションを行う必要がない。
さらに、数2および数14より、システムの挙動の評価関数a(x)はモンテカルロ・シミュレーション終了後に自由に設定できることがわかる。例えば、複雑なシステムをシミュレーション対象とする場合、実際にシステムの挙動をシミュレーションしてみてはじめて何について評価するべきか、どのような現象に注目するべきかが分かる、ということがしばしばあるため、この特徴は望ましい。
また,数13、数14は、通常の期待値計算の形をしているため、L回のシミュレーションによる微分係数の推定値の分散は、O(L−1)で減少する。一方、パラメータの数だけ単純にモンテカルロ・シミュレーションをやり直す方法による微分係数の推定値の分散は、シミュレーション回数に対してO(L−1/4)、又はO(L−1/3)でしか減少しない。つまり、本実施例のシミュレーションによる微分係数の推定値の分散の収束のスピードが速い。
なお、数9で定義される境界残余Rは、x(w,z)=x(w+Δw,z+Δz)を満たすようなw+Δwの分布範囲が、wの分布範囲(すなわち、wが従う確率密度関数の定義域)Ωとずれてしまうことで生じる。つまり、出現する可能性がある全ての乱数ベクトルの実現値w∈Ωに対して、パラメータの微小変化Δzを打ち消すような、乱数ベクトルの実現値w+Δwを考えたときに、w+Δwの分布範囲Ω’={w+Δw;w∈Ω}がΩと一致していれば境界残余Rは生じない。
モンテカルロ・シミュレーションの対象となる実際のシステムを想定すると、システムのどのような挙動xについても、パラメータzが微小変化したときに、それを打ち消すようなノイズ(乱数ベクトルの実現値)が存在する場合が多い。この場合には、境界残余Rは生じない。例えば、正規分布に従う乱数ベクトルのように、wの分布範囲Ωが実数全体にわたっている場合には、Ωに境界が存在しないため境界残余Rはゼロである。
このとき、モンテカルロ・シミュレーション・システムは、境界残余Rを算出しなくてもよいため、計算時間及び計算リソースを削減することができる。以下、特に断らない限り乱数ベクトルwの分布範囲ΩはΩ=Ω’を満たす、即ち境界残余Rがゼロであるものとする。
ここで、本実施例の感度計算手法が適用できる条件の例を説明する。前述の基本的なアイディアの説明において、パラメータの微小変化Δzに対してxを一定に保つようなΔwを考える、と書いたが、実際には、与えられたΔzに対して数4を満たすようなΔwが存在するとは限らない。
前述したように、例えば、xは無限次元のベクトルにもなりえる、つまりxの次元はwの次元Mよりも大きくなりえる。この場合、数4において、制約条件の数が変数Δwの数(次元数)よりも多くなるため、数4を満たすΔwは一般には存在しない。このように、与えられたパラメータの微小変化Δzに対して、数4を満たす乱数ベクトルの微小変化Δwが存在しない場合には本実施例の手法は適用できない。
以下、本実施例の手法が適用可能、すなわち、パラメータの微小変化Δzに対して数4を満たすような乱数ベクトルの微小変化Δwが存在する例を説明する。
システムの挙動を表す時系列x(t)が、例えば、以下の数15のように表せる場合、本実施例の手法が適用可能である。
Figure 0006219528
数15は、乱数ベクトルwとパラメータzで定まる値y(w,z)が定まると、時刻tでのシステムの状態x(t)が、時刻tとyから定まることを示す。なお、この場合、明らかに、以下の数16が成立する。
Figure 0006219528
また、システムの挙動を表す時系列x(t)が、例えば、以下の数17のような漸化式で記述される場合、本実施例の手法が適用可能である。
Figure 0006219528
数17は、時刻t+1でのシステムの状態x(t+1)が、時刻tと、過去(時刻t以前)のシステムの挙動と、時刻tで新たに生成され、時刻毎に異なる乱数w(wは複数個の乱数を含む乱数ベクトルでもよい)と、パラメータzと、から定まることを示す。なお、この場合、以下の数18が成立する。
Figure 0006219528
数18は、パラメータの微小変化Δzを打ち消す乱数の微小変化Δwが、初期時刻t=0からシミュレーションの終了時刻t=Tまで順に定まることを示す。
以下、本実施例のモンテカルロ・シミュレーション・システムがシミュレーションを実行し、感度を算出する実践的側面について説明する。図1は、本実施例のモンテカルロ・シミュレーション・システム100の構成例を示す。モンテカルロ・シミュレーション・システム100は、例えば、CPU110、メモリ120、入出力インタフェース130、二次記憶装置140を含む計算機上に構成される。また、図1において、モンテカルロ・シミュレーション・システムは1つの計算機から構成されているが、複数の計算機から構成されてもよい。
CPU110は、プログラムに従って動作するプロセッサ及び/又は論理回路を含み、データの入力/出力、読み込み/書き込みを行い、さらに、後述する各プログラムを実行する。メモリ120は、CPU110が実行するプログラム及びデータを一時的にロードして記憶し、さらに各プログラム及び各データを保持する。入出力インタフェース130は、外部装置等からデータ等の入力、及び外部装置等に対してデータ等の出力を行うインタフェースである。二次記憶装置140は、不揮発性の記憶装置であり、例えばHDD等である。プログラムやデータ等は二次記憶装置140に格納されてもよい。
プログラムはCPU110によって実行されることで、定められた処理をメモリ120及び入出力インタフェース130を用いながら行う。従って、本実施例及び他の実施例においてプログラムを主語とする説明は、CPU110を主語とした説明でもよい。若しくは、プログラムが実行する処理は、そのプログラムが動作する計算機及び計算機システムが行う処理である。
CPU110は、プログラムに従って動作することによって、所定の機能を実現する機能部として動作する。例えば、CPU110は、後述する乱数発生部210に従って動作することで乱数発生部として機能し、後述するモデル挙動更新部220に従って動作することでモデル挙動更新部として機能する。さらに、CPU110は、各プログラムが実行する複数の処理のそれぞれを実現する機能部としても動作する。計算機及び計算機システムは、これらの機能部を含む装置及びシステムである。プログラムは二次記憶装置140に格納されていてもよい。
メモリ120は、1又は複数のシナリオ・シミュレータ200と、記憶部300と、後処理計算部400と、モンテカルロ・シミュレーション全体制御部500と、を含む。シナリオ・シミュレータ200は、異なる乱数ベクトルを用いてL回のモンテカルロ・シミュレーションを行う。記憶部300は、シナリオ・シミュレータ200から出力された数値等を記憶する。後処理計算部400は、シミュレーション終了後に期待値および感度の計算を行う。
モンテカルロ・シミュレーション全体制御部500は、モンテカルロ・シミュレーション・システム100全体の制御を行う。また、モンテカルロ・シミュレーション全体制御部500は、ユーザ等が指定したシミュレーション回数によって算出されるシステム評価関数及び感度の推定値の計算精度を算出し、出力してもよい。また、モンテカルロ・シミュレーション全体制御部500は、ユーザ等が指定した、システム評価関数及び感度の推定値の計算精度を保証するために必要なシミュレーション回数等を算出、出力してもよい。モンテカルロ・シミュレーション全体制御部500は、例えば、指定された又は算出したシミュレーション回数、例えばL回、シナリオ・シミュレータ200を起動し、L回のシミュレーションが終了すると、後処理計算部400を起動する。
シナリオ・シミュレータ200は、ユーザ等から与えられるシミュレーションモデルの1次元又は多次元のパラメータのベクトルzを入力として、シミュレーションに必要な乱数ベクトルを内部で生成しながらモデルのシミュレーションを実行する。また、シナリオ・シミュレータ200は、システムの挙動の評価関数a(k)と、感度計算に必要な等価微分重要度h (k)を出力する。
シナリオ・シミュレータ200は、それぞれプログラムである、乱数発生部210、モデル挙動更新部220、乱数重要度算出部230、指標算出部260、等価微分重要度算出部270、及びシミュレーション制御部280を含む。また、シナリオ・シミュレータ200は、それぞれデータを格納する領域である、モデル挙動記憶部240、及び乱数重要度記憶部250を含む。
乱数発生部210は、予め定められた、又はユーザ等によって指定されたシミュレーションモデルに対応する確率密度関数に従う乱数ベクトルを生成する。モデル挙動更新部220は、ユーザ等によって与えられたパラメータと乱数発生部210が生成した乱数ベクトルとを入力として、入力されたパラメータと乱数ベクトルとを予め定められた、又はユーザ等によって指定されたシミュレーションモデル(関数)に適用し、システムの挙動の実現値をシミュレートする。
乱数重要度算出部230は、パラメータと乱数発生部210が生成した乱数ベクトルとを入力として、入力された各パラメータについて、w (k)の各パラメータに関する乱数重要度、すなわち数8の総和記号の中の項を算出する。モデル挙動記憶部240は、モデル挙動更新部220が算出したシステムの挙動の実現値を格納する。乱数重要度記憶部250は、乱数重要度算出部230が算出した乱数重要度を格納する。指標算出部260は、例えば、モデル挙動記憶部240に格納されたシステムの挙動の実現値の平均を算出することにより、システムの挙動の評価関数を算出する。
等価微分重要度算出部270は、例えば、乱数重要度記憶部250に格納された乱数重要度の和を算出することにより等価微分重要度を算出する。シミュレーション制御部280は、シナリオ・シミュレータ200全体の動作を制御する。
記憶部300は、指標算出部260が算出したシステムの挙動の評価関数a(k)を格納する指標値記憶部310と、等価微分重要度算出部270が算出した等価微分重要度を格納する等価微分重要度記憶部320と、を含む。
後処理計算部400は、それぞれプログラムである、期待値計算部410、及び感度計算部420を含む。期待値計算部410は、指標値記憶部310に格納されたL個のシステムの挙動の評価関数a(k)の平均値を計算し、当該平均値を期待値、すなわちシステム評価関数A(z)として出力する。このとき、期待値計算部410は、さらにL個のシステムの挙動の評価関数a(k)の分散を計算し、A(z)の推定値の精度(信頼区間)を同時に出力してもよい。
感度計算部420は、指標値記憶部310に格納されたシステムの挙動の評価関数a(k)と、等価微分重要度記憶部320に格納されたN個のパラメータそれぞれに関する等価微分重要度h (k)の組について、それぞれ対応する値同士の積を計算する。さらに、感度計算部420は、算出した積の平均値を計算して、N個のパラメータそれぞれに関するシステム評価関数A(z)の感度∂A/∂zとして出力する。このとき、感度計算部420は、さらにa(k)とh (k)の積の分散を計算し、感度∂A/∂zの推定値の精度(信頼区間)を同時に出力してもよい。
図2は、乱数重要度算出部230の構成例を示す。乱数重要度算出部230は、いずれもプログラムである、サンプルパス固定微分計算部231、サンプルパス固定2階微分計算部232、及び乱数重要度計算部233を含む。
サンプルパス固定微分計算部231は、パラメータと、乱数発生部210が生成した乱数ベクトルと、を入力として(∂w/∂z)|x=constを算出する。サンプルパス固定2階微分計算部232は、パラメータと、乱数発生部210が生成した乱数ベクトルと、を入力として∂Di,j/∂wを算出する(Di,j (k)=(∂w/∂z)|x=const)。サンプルパス固定2階微分計算部23は、サンプルパス固定微分計算部231が算出した(∂w/∂z)|x=constと、パラメータと、を入力として、∂Di,j/∂wを算出してもよい。また、サンプルパス固定2階微分計算部232が(∂w/∂z)|x=constを算出してもよく、このとき、サンプルパス固定微分計算部231は(∂w/∂z)|x=constを算出しなくてもよい。
乱数重要度計算部233は、乱数発生部210から入力された乱数ベクトルと、サンプルパス固定微分計算部231又はサンプルパス固定2階微分計算部232が算出した(∂w/∂z)|x=constと、サンプルパス固定2階微分計算部232が算出した∂Di,j/∂wと、を入力として、各パラメータについて、w (k)の各パラメータに関する乱数重要度、すなわち数8の総和記号の中の項を算出する。
図3は、本実施例におけるモンテカルロ・シミュレーションの全体処理の一例を示す。モンテカルロ・シミュレーションの全体処理は、シナリオ・シミュレータ200が異なる乱数ベクトルを用いてL回のシミュレーションを行うシミュレーション実行処理と、シミュレーション終了後に後処理計算部400が行う期待値・感度計算処理と、を含む。
シナリオ・シミュレータ200は、シミュレーション実行処理を行う(S301)。シミュレーション実行処理は、1セットのモンテカルロ・シミュレーションを構成するL回のシミュレーションを実行する処理である。シナリオ・シミュレータ200は、異なる乱数ベクトルを用いて個々のシミュレーションを実行する。
なお、本実施例のモンテカルロ・シミュレーション・システムは、k回目のシミュレーションにより得られたシステムの挙動の実現値x(k)から、システムの挙動の評価関数a(k)に加えて、N個のパラメータそれぞれについて等価微分重要度h (k)を計算する。なお、シミュレーション実行処理におけるL回のシミュレーションそれぞれは、互いに独立であるため、L回のシミュレーションを逐次的に行うのではなく、例えば、多数のシナリオ・シミュレータ200又は多数の計算機を用いて同時に並列実行してもよい。等価微分重要度h (k)を算出する処理を定める一連の関数を、重み関数と呼ぶ。
続いて、後処理計算部400は、期待値・感度計算処理を行う(S302)。期待値・感度計算処理は、1セットのモンテカルロ・シミュレーションを構成するL回のシミュレーションの実行後に、後処理計算部400が、注目指標の期待値の推定値と、注目指標の期待値のパラメータに対する感度の推定値と、を計算する処理である。
注目指標の期待値、すなわちシステム評価関数A(z)の推定値は、期待値計算部410が、指標値記憶部に格納されたL個のシステムの挙動の評価関数a(k)の平均を計算することで得られる。本実施例におけるモンテカルロ・シミュレーション・システムは、これに加えて、注目指標の期待値のN個のパラメータそれぞれに対する感度の推定値を計算する。
具体的には、感度計算部420は、システム評価関数A(z)のi番目のパラメータそれぞれに対する感度の推定値を、指標値記憶部310に格納された対応するシステムの挙動の評価関数a(k)に、等価微分重要度記憶部320に格納されたi番目のパラメータについての等価微分重要度h (k)を掛けることで重みづけをしたものの平均を計算することで得る。なお、モンテカルロ・シミュレーション・システムは、例えば、ユーザ等が指定したパラメータについてのみ、ステップS301における等価微分重要度の算出処理、及びステップS302における感度の推定値の算出処理を行ってもよい。
なお、前述のように、例えば、システムの挙動を表す時系列x(t)が、数15又は数17の形で表される場合、本実施例における注目指標の期待値のパラメータに対する感度の推定手法が適用できる。図3、図4は、それぞれ、システムの挙動を表す時系列x(t)が、数15、数17の形で表されたモデルで算出される場合における、k回目のシミュレーション実行処理の詳細な処理内容を示す。
図4は、システムの挙動を表す時系列x(t)が数15の形で表される場合、すなわち、乱数ベクトルwとパラメータzで定まる値y(w,z)を定めると、時刻tでのシステムの状態x(t)が,時刻tとyのみで決定論的に定まる場合について、シミュレーション実行処理の詳細な処理内容の一例を示す。
まず、シナリオ・シミュレータ200は、乱数ベクトルw(k)を生成し、w(k)とパラメータzとからy(k)を計算する(S401)。具体的には、乱数発生部210は、予め定められた確率密度関数g(w)にしたがうM次元の乱数ベクトルw(k)を生成し、生成した乱数をモデル挙動更新部220及び乱数重要度算出部230に送信する。なお、乱数発生部210は、例えば、既知の疑似乱数発生アルゴリズム、又は物理乱数発生装置といった公知の手段を用いて乱数ベクトルを生成すればよい。モデル挙動更新部220は、受信したw(k)と、与えられたN次元のパラメータ値zを、予め与えられた関係式y(w,z)に代入してy(k)を計算する。
続いて、シナリオ・シミュレータ200は、N個のパラメータそれぞれについて等価微分重要度h (k)を計算する(S402)。これは、注目指標の期待値のパラメータに対する感度の推定のために必要な処理であり、重み関数が定める処理は当該処理を含む。なお、シナリオ・シミュレータ200は、ユーザ等が指定したパラメータについてのみ、ステップS402における処理を行ってもよい。i番目のパラメータについての等価微分重要度h (k)は、具体的には以下の4つのステップによって算出される、すなわちステップS402は以下の4つのステップを含む。
第1のステップは、サンプルパス固定微分計算部231が、システムの挙動xを一定に保つような、乱数ベクトルw(k)のj番目の要素とi番目のパラメータの微小変化の関係Di,j (k)=(∂w (k)/∂z)|x=constを算出するステップである。ここで、添え字jは、M次元の乱数ベクトルw(k)のj番目の要素についての計算を表す。
システムの挙動を表す時系列x(t)が数15の形で表される場合、数16が成り立つから、サンプルパス固定微分計算部231は、(∂w/∂z)|(y^(k)=const)を求めればよい。つまり、サンプルパス固定微分計算部231は、例えば、関数−(∂y(k)/∂z)/(∂y(k)/∂w (k))がユーザ等によって与えられた場合、入力されたパラメータz及び入力された乱数ベクトルw (k)を当該関数に代入することにより、Di,j (k)を算出すればよい。サンプルパス固定微分計算部231は、当該関数から高速にDi,j (k)を算出することができる。
また、サンプルパス固定微分計算部231は、例えば、パラメータの微小変化Δzに対して、yを一定に保つようなΔwを数値的に探索してΔw/Δzを計算することにより、(∂w/∂z)|(y^(k)=const)、すなわちDi,j (k)を近似的に算出してもよい。例えば、ユーザ等が関数x及びyの具体的な形がわからない場合であっても、サンプルパス固定微分計算部231は、上述の方法により、Di,j (k)を算出することができる。サンプルパス固定微分計算部231は算出したDi,j (k)を、サンプルパス固定2階微分計算部232及び乱数重要度計算部233に送信する。
第2のステップは、サンプルパス固定2階微分計算部232が、受信したDi,j (k)を、w (k)で微分するステップである。Di,j (k)を、w (k)で微分した結果をDDi,j (k)と表記する。サンプルパス固定2階微分計算部232は、例えば、受信したDi,j (k)を数値的に微分することによって、DDi,j (k)を算出すればよい。また、サンプルパス固定2階微分計算部232は、例えば、DDi,j (k)を算出する関数が与えられている場合、入力されたパラメータz及び入力された乱数ベクトルw (k)当該関数に代入することによって、DDi,j (k)を算出してもよい。サンプルパス固定2階微分計算部232は、算出したDDi,j (k)を、乱数重要度計算部233に送信する。
第3のステップは、乱数重要度計算部233が、乱数ベクトルw(k)のj番目の要素w (k)に関する乱数重要度Hi,j (k)を計算するステップである。第3のステップは、数8における総和記号の中の項を計算することに相当する。具体的には、例えば、乱数重要度計算部233は、受信したDi,j (k)と、受信したDDi,j (k)と、予め定められた確率密度関数g(w)から一意に定まる関数LGに乱数ベクトルw (k)を代入した値LGj(w (k))=(1/g(w (k)))×(∂g/∂w (k))と、を図中に示した関係式に代入して乱数重要度Hi,j (k)を計算すればよい。乱数重要度計算部233は、算出したHi,j (k)を乱数重要度記憶部250に格納する。
なお、前述のように、第3のステップにおける計算は、M次元のwが一様分布の乱数ベクトルである場合、又は、wがM次元独立標準正規分布の乱数ベクトルである場合には、それぞれ数11又は数12のように表される。従って、例えば、乱数w (k)が一様分布に従う場合、数11より、乱数重要度はDDi,j (k)で表されるため、乱数重要度算出部230は、第1のステップのみを行うことにより乱数重要度を算出することができる。シナリオ・シミュレータ200は、第1のステップから第3のステップにおける処理を、全てのj(ただし、j=1…M)について行う。
第4のステップは、等価微分重要度算出部270がi番目のパラメータに関する等価微分重要度h (k)を計算するステップである。第4のステップは、前述の数8における総和計算に相当する。等価微分重要度算出部270は、乱数重要度記憶部250に格納された乱数重要度Hi,j (k)を取得し、jについての総和を計算する。なお、各パラメータzについての等価微分重要度h (k)の計算は互いに独立であるため、1つのシナリオ・シミュレータ200によってN個のパラメータz,…,zNについて等価微分重要度の計算を逐次的に行うのではなく、例えば、多数の計算機を用いて同時に並列に当該計算を実行してもよい。
続いて、モデル挙動更新部220は、は、実際にシステムの挙動x(k)(t)をシミュレートし計算する(S403)。モデル挙動更新部220は、時刻tを初期時刻から終了時刻に向かって増加させながら、時刻tでのシステムの状態を逐次的に計算することで当該処理を行うことができるが、これによらずその他の公知の効率的なシミュレーションの計算手法を用いてもよい。また、モデル挙動更新部220は算出したx(k)(t)をモデル挙動記憶部240に格納する。なお、ステップS403における処理は、例えば、ステップS402における処理と並行して行われてもよいし、ステップS402における処理の前に行われてもよい。
続いて、指標算出部260は、モデル挙動記憶部240から、システムの挙動x(k)(t)を取得し、注目指標の評価値、すなわち、システムの挙動の評価関数a(k)を計算する(S404)。指標算出部260は、算出したa(k)を指標値記憶部310に格納する。
以上のように、システムの挙動を表す時系列x(t)が数15の形で表される場合、図4に示した処理により、シナリオ・シミュレータ200はシステム挙動の評価関数a(k)、およびN個のパラメータそれぞれについての等価微分重要度h (k)を計算することができる。
図5は、システムの挙動を表す時系列x(t)が数17の形で表される場合、すなわち、時刻t+1でのシステムの状態x(t+1)が、時刻tと、過去(時刻t以前)のシステムの状態と、時刻tで新たに生成する(時刻毎に異なる)乱数w(複数個の乱数を含む乱数ベクトルもよい)と、パラメータzと、によって定まる場合の、シミュレーション実行処理の詳細な処理内容を示す。
シナリオ・シミュレータ200は、時刻tを、シミュレーション開始時刻t_startから、シミュレーション終了時刻t_endまで、シミュレーション時間ステップΔtずつ増加させながら、時刻tにおけるシステムの状態x(k)(t)と、N個のパラメータ全てについてj番目の乱数w (k)に関する乱数重要度Hi,j (k)と、を計算する処理を繰り返し行うことでシミュレーションを行う。さらに、シナリオ・シミュレータ200は、シミュレーションの結果得られたシステムの挙動x(k)(t)の時系列を用いて、システムの挙動の評価関数a(k)、およびN個のパラメータそれぞれについての等価微分重要度h (k)を計算する。
まず、シミュレーション制御部280は、時刻tをシミュレーション開始時刻t_startにセットし、時刻tに関するループ処理の開始をシナリオ・シミュレータ200の各部に通知する(S501)。時刻tに関するループ処理は、モデル挙動更新部220が時刻tでのシステムの状態x(k)(t)を計算する処理(S502)と、乱数重要度算出部230が時刻tで生成した乱数のN個のパラメータそれぞれに関して乱数重要度Hi,j (k)を計算する処理(S503)と、を含む。
ステップS502における具体的な処理について説明する。まず、乱数発生部210は、時刻tでのシステムの状態x(k)(t)の計算に必要な乱数w (k)を、予め定められた確率密度関数g(w)にしたがって生成し、モデル挙動更新部220、及び乱数重要度算出部230に生成した乱数を送信する。モデル挙動更新部220は、受信した乱数w (k)と過去(時刻t以前)のシステムの挙動とパラメータzと時刻tとを与えられた漸化式(数17)に代入して、時刻tでのシステムの状態x(k)(t)を計算する。
続いて、乱数重要度算出部230は、N個のパラメータz,…,zNそれぞれについて、時刻tで生成した乱数w (k)のパラメータに関する乱数重要度Hi,j (k)を計算する(S503)。なお、シナリオ・シミュレータ200は、ユーザ等が指定したパラメータについてのみ、ステップS503における処理を行ってもよい。
i番目のパラメータについての乱数重要度Hi、j (k)は、具体的には以下の3つのステップにより算出される、すなわちステップS503は以下の3つのステップを含む。なお、各パラメータについての等価微分重要度h (k)の計算は互いに独立であるため、1つのシナリオ・シミュレータ200によってN個のパラメータz,…,zNについて等価微分重要度の計算を逐次的に行うのではなく、例えば多数の計算機を用いて当該計算を同時に並列実行してもよい。
第1のステップは、サンプルパス固定微分計算部231が、システムの挙動xを一定に保つような、乱数w (k)とi番目のパラメータの微小変化の関係Di,j (k)=(∂w (k)/∂z)|x_j+1^(k)=constを求めるステップである。
サンプルパス固定微分計算部231は、例えば、関数−(∂f/∂z)/(∂f/∂w (k))が与えられた場合、入力されたパラメータz及び入力された乱数w (k)を当該関数に代入することにより、Di,j (k)を算出すればよい。また、サンプルパス固定微分計算部231は、例えば、パラメータの微小変化Δzに対して、fを一定に保つようなΔwを数値的に探索してΔw/Δzを計算することにより、(∂w/∂z)|(x(t)=const)、すなわちDi,j (k)を近似的に算出してもよい。サンプルパス固定微分計算部231は、算出したDi,j (k)を、サンプルパス固定2階微分計算部232、及び乱数重要度計算部233に送信する。
第2のステップは、サンプルパス固定2階微分計算部232が、受信したDi,j (k)を、w (k)で微分し、DDi,j (k)を算出するステップである。第2のステップは、ステップS402における第2のステップと同様である。
第3のステップは、乱数重要度計算部233が、時刻tにおける乱数w (k)に関する乱数重要度Hi,j (k)を計算するステップである。第3のステップは、ステップS402における第3のステップと同様である。
続いて、シミュレーション制御部280は、時刻をt+Δtにセットする(S504)。時刻t+Δtがシミュレーション終了時刻t_end以前である場合(S505:Yes)、モンテカルロ・シミュレーション全体制御部500は、シナリオ・シミュレータ200を再度起動し、シナリオ・シミュレータ200は、ステップS502〜ステップS504の処理を行う。
時刻t+Δtがシミュレーション終了時刻t_endより後である場合(S505:No)、指標算出部260は、モデル挙動記憶部240から、システムの挙動x(k)(t)の時系列を取得し、注目指標の評価値、すなわちシステムの挙動の評価関数a(k)を計算する(S506)。指標算出部260は、算出したa(k)を指標値記憶部310に格納する。
続いて、等価微分重要度算出部270は、乱数重要度記憶部250から、全てのjについてHi,j (k)を取得し、jについての総和を計算することで、i番目のパラメータに関する等価微分重要度h (k)を算出する(S507)。なお、等価微分重要度算出部270は、は、ユーザ等が指定したパラメータについてのみ、ステップS507における処理を行ってもよい。なお、ステップS506における処理とステップS507における処理は並行して行われてもよいし、順序を入れ替えて行われてもよい。重み関数が定める処理は、S503及びS507における処理を含む。
以上のように、システムの挙動を表す時系列x(t)が数17の形で表される場合に、図5に示した処理により、シナリオ・シミュレータ200は、システム挙動の評価関数a(k)およびN個のパラメータそれぞれについて等価微分重要度h (k)を計算することができる。
図6は、実施例1におけるモンテカルロ・シミュレーション・システムのユーザインタフェースの一例である。ユーザインタフェース600は、シミュレーション条件設定セクション610、期待値計算セクション620、及び感度計算セクション630を含む。
シミュレーション条件設定セクション610は、入力受付セクション611、612、及び表示セクション613を含む。入力受付セクション611は、シミュレーションモデル、すなわちシステムの挙動の実現値xを定める関数x(w,t)等の入力を受け付ける。入力受付セクション612は、当該シミュレーションモデルによるシミュレーション回数の入力を受け付ける。表示セクション613は、入力受付セクション611〜612が入力を受け付けた内容のシミュレーションを実行するために必要な計算時間を表示する。
期待値計算セクション620は、入力受付セクション621、及び表示セクション622を含む。入力受付セクション621は、注目指標、すなわちシステムの挙動の評価関数a(x)の入力を受け付ける。表示セクション622は、システム評価関数A(x)の計算精度を表示する。
感度計算セクション630は、入力受付セクション632、634、チェックボックス631、633、及び表示セクション635を含む。入力受付セクション632は、感度計算の対象パラメータ、すなわち感度∂A/∂zを算出する対象となるパラメータzの入力を受け付ける。チェックボックス631は、全てのパラメータzを感度計算の対象パラメータとして選択するためのチェックボックスである。入力受付セクション634は、Di,jを計算する方法の入力を受け付ける。チェックボックス633は、Di,jを計算する方法を自動で選択するためのチェックボックスである。表示セクション635は、感度∂A/∂zの計算精度を表示する。
なお、ユーザインタフェース600における、入力セクション、表示セクションは、それぞれ表示セクション、入力セクションであってもよいし、それぞれ表示セクション、入力セクションを兼ねてもよい。例えば、表示セクション622がシステム評価関数A(x)の計算精度の入力を受け付け、表示セクション635が感度∂A/∂zの計算精度の入力を受け付けてもよい。このとき、入力受付セクション611は、例えば、入力されたシステム評価関数A(x)の計算精度と、入力された感度∂A/∂zの計算精度と、を保証するために必要なシミュレーション回数を表示してもよい。
以上、本実施例のモンテカルロ・シミュレーション・システムは、1セットのモンテカルロ・シミュレーションの結果を用いて、システム評価関数の各パラメータに関する感度を算出することができ、ひいては、計算時間及び計算リソースを削減することができる。
また、本実施例のモンテカルロ・シミュレーション・システムが、算出した感度を用いて、ユーザ等は、パラメータの最適化等、すなわちパラメータ値の許容される範囲で、システム評価関数を最大化するパラメータ値の探索等を行うことができる。
本実施例は、多数のパラメータが存在する確率的なモデルにおいて、注目指標の期待値の多数のパラメータ全てに対する感度(微分係数)を、1セットのモンテカルロ・シミュレーションによって同時に求める手段を、半導体集積回路の電子回路における製造ばらつきを考慮した設計に応用する例を説明する。
本実施例は、システムの挙動を表す時系列x(t)が数15の形で表される、すなわち、乱数ベクトルwとパラメータzで定まる値y(w,z)が定まると、時刻tでのシステムの状態x(t)が、時刻tとyのみで決定論的に定まる(図3に相当)一例である。
近年、半導体集積回路の微細化が進むにしたがって、集積回路を構成する個々のトランジスタの特性のばらつきが大きくなっている。集積回路を構成するトランジスタの特性ばらつきは、例えば、集積回路の製造時において、形成される回路要素の物理的なサイズ、基板に注入される不純物イオンの数、又は格子欠陥の数等の製造時に不可避的に生じる確率的な現象に起因する。つまり、当該回路は、個々のトランジスタの特性が確率的にばらつくことを想定して設計される必要がある。
したがって、トランジスタの特性のばらつきを確率分布でモデル化した上で、例えば、回路全体の特性の期待値やばらつき(分散)の大きさ、又は集積回路の歩留まり、すなわち集積回路を構成する回路全体の特性が望ましい範囲におさまる確率、等をモンテカルロ・シミュレーションによって推定することが行われる。回路設計者は、例えば、設計した回路のばらつきを考慮した特性が与えられた仕様を満たすまで、設計パラメータをチューニングしては、モンテカルロ・シミュレーションを行ってばらつきを考慮した特性を確認する、というプロセスを繰り返し行う。
個々のトランジスタにおける設計パラメータは、例えば、ゲート幅W、ゲート長L、拡散層幅LOD、トランジスタ間距離PDXといった、ばらつき・電力・レイアウト面積等に関係するものを10程度含む。したがって、一般に、回路ブロックの設計パラメータの数は、回路を構成するトランジスタ数の10倍程度になる。このため、多数のトランジスタで構成される複雑な回路ブロックにおける設計パラメータは膨大な数となりえるため、上記のように個々の設計パラメータのチューニングを人手で行うことは困難である。
これに対して、本実施例における手法では、任意の注目指標の期待値の多数のパラメータ全てに対する感度(微分係数)を、1セットのモンテカルロ・シミュレーションによって求めることができる。本実施例の手法を用いることで、回路設計者は、単に、現在のパラメータ設定のもとでの回路ブロック全体の特性(性能期待値や歩留まり)や電力の値のみならず、全てのトランジスタの全てのパラメータについて、それらが回路ブロック全体の特性(性能期待値や歩留まり)や電力にどのように影響するのか、その感度を同時に得ることができる。
したがって、回路設計者は、例えば、どのトランジスタのどのパラメータを変えることで、消費電力を増やさずに特性を向上させることができるか等を、やみくもにパラメータをチューニングすることなく知ることができ、設計の効率を大幅に向上できる。
図7は、6個のトランジスタで構成されるSRAMセルの回路の例を示す。SRAMセルは、通常時にはSRAMセルに記憶された値が失われないことと、記憶の書き換え時にはSRAMセルの記憶値が意図した値にきちんと書き変わること、という互いに相反する特性を満たす必要がある。
SRAMに含まれる各トランジスタのパラメータは、集積回路の製造時のばらつきによって、製造された集積回路における個々のトランジスタの実際のパラメータ値は設計時に指定した値にはならず、例えば、ある確率分布にしたがって分布する。その結果、例えば、通常にSRAMセルに記憶していた値が失われる、又は、記憶の書き換え時にはSRAMセルの記憶値が意図した値にきちんと書き変わらない、等の不良が起こりえる。
そこで、回路設計者は、設計パラメータ値をいろいろな値に変えてモンテカルロ・シミュレーションを行い、実際に製造されるSRAMセル回路の不良率が与えられた閾値以下になるように設計パラメータを最適化する必要がある。この例に、実施例1のモンテカルロ・シミュレーション・システムのシミュレーション手法を適用する。
本実施例におけるパラメータベクトルzは、トランジスタの設計パラメータからなる。例えば、個々のトランジスタに10の設計パラメータがある場合、6個のトランジスタで構成されるSRAMセル回路におけるパラメータベクトルzは、60次元のベクトルである。
ところで、前述のように、SRAM回路の特性ばらつきは、トランジスタの実際のパラメータ値が製造時にばらつくことに起因する。すなわち、トランジスタの特性を決める60次元の設計パラメータzに対して、実際には製造時のばらつきにより、例えば、60次元のパラメータyが生成される。
乱数発生部210は、シミュレーション毎に確率密度関数g(w)に従う多次元の乱数ベクトルwを生成する。モデル挙動更新部220は、乱数ベクトルwと60次元の設計パラメータベクトルzと、から製造後の実際のパラメータ値yを関数y=y(w,z)によって定める。このとき、製造後の実際のパラメータ値yの確率分布が、設計パラメータベクトルがzであるときの、製造ばらつきを表すように、乱数ベクトルwが従う確率密度関数g(w)と、関数y(w,z)が定められているものとする。
モデル挙動更新部220は、製造後の実際のパラメータyを定めれば、SRAMセル回路の挙動x(t)を、通常の回路シミュレーションによって決定論的に定めることができる。したがって、本実施例におけるシステムの挙動を表す時系列x(t)は、数15の形で表される、すなわち、乱数ベクトルwとパラメータベクトルzで定まる値y(w,z)を定めると、時刻tでのシステムの状態x(t)が,時刻tとyのみで決定論的に定まる。また、システムの挙動の評価関数a(x)を、そのセルの挙動が正常動作の範囲内であれば0、不良であれば1と定義すれば、システム評価関数A(x)、すなわち、a(x)の期待値E[a(x)]は、SRAMセルの不良率を示す。
したがって、モンテカルロ・シミュレーション・システムは、図4で説明した処理を行うことにより、SRAMセルの不良率の60個の設計パラメータ全てに対する感度を算出することができる。また、モンテカルロ・シミュレーション・システムは、は、算出した感度から、勾配法やニュートン法といった公知の最適化手法を用いてSRAMセル不良率を最小にするような60個の設計パラメータ値の組み合わせを、算出してもよい。
以上のように、本実施例のモンテカルロ・シミュレーション・システムは、多数のトランジスタで構成される半導体集積回路の電子回路における、製造ばらつきを考慮した設計パラメータ値の最適値を効率的に求めることができる。
本実施例は、多数のパラメータが存在する確率的なモデルにおいて、注目指標の期待値の多数のパラメータ全てに対する感度(微分係数)を、1セットのモンテカルロ・シミュレーションによって同時に求める手段を、金融分野、とくに、銀行の収益予測シミュレーションシステムに適用した例を説明する。本実施例における、システムの挙動を表す時系列x(t)が数17の形で表される、すなわち、時刻t+1でのシステムの状態x(t+1)が、時刻tと、過去(時刻t以前)のシステムの挙動と、時刻tで新たに生成する(時刻毎に異なる)乱数wと、パラメータzと、で定まる。
金融機関においては、将来の事業計画の立案時に、取り扱っている金融商品の将来の取扱高やその収益について計画を立てて、当該事業計画の妥当性を経営判断する。
図8は、銀行における収支計画表の例を示す。収支計画表の最左列は、当該銀行における取扱金融商品の科目を示す。取扱金融商品は、例えば、企業向けの事業融資、個人向けの住宅ローン貸付、カードローン貸付、および銀行が自ら保有している有価証券配当について、それぞれAからCまでの3区分の科目を含む。
実際の銀行においては、数千程度の金融商品の科目を保有することがある。表の各行は、最上行に示される期間における、金融商品の科目それぞれについての取扱高を示す。例えば、現時点が2014年2Q終了時とすれば、‘14/1Qおよび‘14/2Qの取扱高は実績値を示すが、‘14/3Q以降の取扱高は現時点(2014年2Q終了時点)における計画値を示す。図8の例では四半期単位で計6期間についての計画を示しているが、実際の銀行においては、例えば、月単位又は週単位で5年程度の計画を立てることもあり、このとき、収支計画表は数百程度の期間を含む。
各科目における取扱高と収益との関係は、例えば、主に銀行の資金調達金利、すなわちスポットレートに依存する。スポットレートと収益の関係については、科目毎にある程度の確度をもったモデル化が可能であるのに対して、将来のスポットレートは不確定であり確率的な予測しかできない。
そこで、銀行の経営においては、モンテカルロ・シミュレーションによって収益の期待値やばらつきをシミュレーションし、事業計画の妥当性を判断する。具体的には、例えば、乱数を用いて将来のスポットレートの実現パスを生成し、各科目の計画取扱高をもとに収益値を計算し、全科目の収益を合計することで銀行全体の収益値を計算する、という処理を多数回行う。当該多数回の処理によって、与えられた事業計画の下での銀行全体の収益の期待値やばらつきを推定する。
ところで銀行において、事業計画の妥当性を判断するにあたっては、将来の各科目の取扱高の計画値が完全に達成された場合の銀行全体の期待収益やばらつきを求めるだけでは不足である。各科目の将来の実際の取扱高は、計画値からずれることが当然に想定されるためである。このとき、計画値と将来の実績がずれたときの影響について、事業計画立案時に予め考慮しておく必要がある。
具体的には、例えば、数千程度の科目それぞれについての数百程度の未来の各期間における取扱高の計画値、すなわち、合計十万個程度の計画値それぞれについて、将来の実績値が計画値からずれたときの銀行全体の収益に対する影響を計算する必要がある。もし実績値が計画値からほんの少しだけずれるだけで、銀行全体の収益に大きな影響を及ぼすような計画となっていることが分かれば、適切な引当金を積んでおく、又は、事業計画そのものを立て直す、といった対策が必要になるであろう。
以下、実施例1のモンテカルロ・シミュレーション・システムによるシミュレーション手法を銀行の収益予測シミュレーションに適用する例を説明する。
本実施例におけるパラメータベクトルzは、例えば、全ての科目それぞれについて未来の各期間における取扱高の計画値である。例えば、科目数は数千程度、期間は数百期間である場合、パラメータベクトルzは十万次元程度のベクトルである。システムの挙動の時系列x(t)は、例えば、将来の各期間における各科目の収益値の集合(例えば、数千次元のベクトルになりえる)と、金利のスポットレートと、を合わせた多次元のベクトルである。
t番目の期間における各科目の収益値は、例えば、スポットレートと、その時刻における各科目の取扱高の計画値であるパラメータzと、に依存する。将来のスポットレートは、例えば、Hull−Whiteモデル、CIRモデル、又はBDTモデルなどといった確率的なモデルで表現される。これらのモデルは、時刻t+1でのスポットレートを、時刻tでのスポットレートと、(時刻tで新たに生成する)乱数と、に基づいて定める。
したがって、本実施例におけるシステムの挙動x(t)は、全体として、数17の形で表される。すなわち、時刻t+1でのシステムの状態x(t+1)は、時刻tと、過去(時刻t以前)のシステムの挙動と、時刻tで新たに生成される(時刻毎に異なる)乱数wと、パラメータzと、からで定まる。
システムの挙動の評価関数a(x)は、例えば、全科目の全期間の収益の合計値である。このとき、システム評価関数A(x)、すなわちa(x)の期待値E[a(x)]は、与えられた計画のもとでの銀行全体の将来の収益の期待値を示す。
本実施例のモンテカルロ・シミュレーション・システムは、上述した前提条件のもとで、図5に示した処理を行うことで、例えば、数千程度ある全ての科目それぞれについて数百程度ある未来の各期間における取扱高の計画値、すなわち、合計十万個程度の計画値それぞれについて、銀行全体の収益の期待値に対する感度、を同時に推定することが可能になる。
銀行は、推定した感度に基づいて、例えば、計画値と実績値のずれの影響を予め考慮して適切な引当金を積んでおく、又は事業計画そのものを立て直す、といった対策を立てることが可能となる。
以上のように、本実施例のモンテカルロ・シミュレーション・システムは、金融分野、とくに銀行の収益予測シミュレーションシステムにおいて計画値の収益に対する感度を推定することが可能となるため、銀行は事業計画立案のプロセスを効率化することができる。
本実施例のモンテカルロ・シミュレーション・システムは、実施例1の数9における境界残余Rを算出する。前述のように、境界残余Rは、乱数ベクトルwの分布範囲Ωの境界面(表面)∂Ωで(∂w/∂z)|x=const=0(ベクトル)であれば、R=0となる。現実的にモンテカルロ・シミュレーションの考察対象となるシステムでは、この条件が成立して、R=0となる場合が多いと考えられる。
しかしながら、例えば、乱数ベクトルwが一様分布乱数である場合などに、この条件が成立せず、具体的に境界残余Rを算出する必要にせまられる場合がある。境界残余Rの算出には、数9の1行目に基づく方法と、数9の3行目に基づく方法と、の2通りの方法が考えられる。
図9は、乱数ベクトルwが、区間[a,b]上の一様分布乱数ベクトルwと、区間[c,d]上の一様分布乱数wと、の2つの要素をもつ2次元のベクトルである場合の境界残余Rを算出する概念の例を示す。図中に矩形で示された範囲がΩである。確率密度関数g(w)は、以下の数19で表される。
Figure 0006219528
なお、本実施例における記憶部300は、サンプルパス固定微分記憶部330(不図示)をさらに含む。サンプルパス固定微分記憶部330は、サンプルパス固定微分計算部231が算出したDi,jを保持する。また、本実施例における後処理計算部400は、プログラムである境界残余算出部430(不図示)をさらに含む。境界残余算出部430は、乱数ベクトルwと、パラメータベクトルzと、サンプルパス固定微分記憶部330から受信するDi,jと、を入力として境界残余Rを算出し、算出した境界残余Rを期待値計算部410に送信する。
以下、乱数ベクトルwが従う確率密度関数gが数19で表される例を用いて、境界残余Rの2通りの算出方法を説明する。境界残余算出部430が、境界残余Rを算出する第1の方法は、数9の1行目に基づくものである。図9の条件において、数9の1行目は、以下の数20のように展開される。
Figure 0006219528
したがって、境界残余算出部430は、wをΩの境界上の値であるbに固定したうえでwを動かしてそれぞれ(∂w/∂z)|x=constを計算した積分値から、wを境界値aに固定したうえでwを動かしてそれぞれ(∂w/∂z)|x=constを計算した積分値を減算した値を算出する。また、境界残余算出部430は、wを分布の境界上の値であるdに固定したうえでwを動かしてそれぞれ(∂w/∂z)|x=constを計算した積分値から、wを境界値cに固定したうえでwを動かしてそれぞれ(∂w/∂z)|x=constを計算した積分値を減算したものと、を加算した値を算出する。
境界残余算出部430は、算出した2つの値を加算することで、境界残余Rを算出する。なお、境界残余算出部430は、例えば、既知の数値積分の手法を用いて、上述した積分値それぞれを算出すればよい。
境界残余算出部430が、境界残余Rを算出する第2の方法は、数9の3行目に基づくものである。数9の3行目は、乱数ベクトルの分布範囲Ω全域における積分であるから、境界残余算出部430は、以下の数21より、モンテカルロ・シミュレーションを用いた期待値として境界残余Rを算出することができる。
Figure 0006219528
すなわち、乱数発生部210が、与えられた確率密度関数g(w)に従う乱数を多数発生させる。境界残余算出部430は、発生した乱数ベクトルそれぞれに対して、数21の2行目の角括弧内の値を計算し、計算した値の平均値をRの推定値とすればよい。
なお、境界残余算出部430は、数値的な微分により、数21中のdivを算出すればよい。また、ユーザ等によって関数としてdivが与えられた場合、境界残余算出部430は、当該関数にパラメータベクトルzと乱数ベクトルwとを代入することにより、divを算出してもよい。なお、境界残余算出部430は、確率密度関数g(w)が、2次元一様分布以外である場合も同様に境界残余Rを算出することができる。感度計算部420は、上述の方法で算出された境界残余Rを、算出した平均値から引いた差を算出する。当該算出した差が当該感度の推定値である。
以上のように、本実施例のモンテカルロ・シミュレーション・システムは、境界残余Rがゼロでな場合に、その値を算出することが可能となる。また、モンテカルロ・シミュレーション・システムは、境界残余Rを算出することにより、システムの挙動の実現値xを算出するモデルに適用する乱数ベクトルがどのような分布であっても、即ちxを算出する全てのモデルに対して、本実施例の感度計算手法を適用することができる。
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることも可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。

Claims (15)

  1. 複数の乱数ベクトルそれぞれを入力とする確率的システムのシミュレーションを繰り返して、前記確率的システムの挙動の複数の実現値を算出する、シミュレーションシステムであって、
    プロセッサと、
    メモリと、を含み、
    前記メモリは、
    1以上の乱数からなる乱数ベクトルと、1以上のパラメータからなるパラメータベクトルと、に基づいて、確率的システムの挙動の実現値を決定する、挙動関数と、
    前記確率的システムの挙動の実現値に基づいて、前記確率的システムの挙動の評価値を決定する、挙動評価関数と、
    乱数ベクトルに対応する挙動関数の実現値を一定に保つ条件において、前記乱数ベクトルの乱数それぞれのパラメータによる第1の微分係数を決定し、当該第1の微分係数に基づき当該パラメータに対する当該乱数ベクトルの重みを決定する、重み関数と、を保持し、
    前記プロセッサは、
    複数の乱数ベクトルと、パラメータベクトルと、を取得し、
    前記取得した複数の乱数ベクトルそれぞれと、前記取得したパラメータベクトルと、前記挙動関数と、に基づいて、前記取得した複数の乱数ベクトルそれぞれに対応する前記確率的システムの挙動の実現値を算出し、
    前記取得した複数の乱数ベクトルそれぞれと、前記取得したパラメータベクトルと、前記重み関数と、に基づき、前記取得したパラメータベクトルのパラメータそれぞれに対する、前記取得した乱数ベクトルそれぞれの重みを算出し、
    前記算出した実現値それぞれと、前記挙動評価関数と、に基づいて、前記取得した複数の乱数ベクトルそれぞれに対応する前記確率的システムの挙動の評価値を算出し、
    前記取得した複数の乱数ベクトルそれぞれに対応する前記算出した挙動の評価値と、前記取得したパラメータベクトルから選択したパラメータに対する前記取得した乱数ベクトルそれぞれの重みと、に基づいて、前記選択したパラメータに対する、前記確率的システムの挙動の評価値の期待値の感度、を算出する、シミュレーションシステム。
  2. 請求項1に記載のシミュレーションシステムであって、
    前記重み関数は、
    前記第1の微分係数それぞれの、前記第1の微分係数それぞれに対応する乱数による、第2の微分係数を決定し、
    前記第2の微分係数に基づき前記パラメータに対する前記乱数ベクトルの重みを決定する、シミュレーションシステム。
  3. 請求項2に記載のシミュレーションシステムであって、
    前記重み関数における重みは、下記数式で表わされ、
    Figure 0006219528
    上記数式における、wは前記乱数ベクトル、zは前記パラメータベクトル、Mは前記乱数ベクトルの次元、wは前記乱数ベクトルwのj番目の要素は前記パラメータベクトルのi番目の要素、xは前記乱数ベクトルwに対応する前記確率的システムの挙動値、gは前記乱数ベクトルwが従う確率密度関数である、シミュレーションシステム。
  4. 請求項2に記載のシミュレーションシステムであって、
    前記取得した複数の乱数ベクトルは、一様分布に従い、
    前記重み関数において、前記重みは、前記乱数ベクトルの全ての乱数の前記第2の微分係数の和である、シミュレーションシステム。
  5. 請求項2に記載のシミュレーションシステムであって、
    前記選択したパラメータに対する、前記確率的システムの挙動の評価値の期待値の感度は、前記取得した複数の乱数ベクトルそれぞれに対応する前記算出した挙動の評価値と、前記選択したパラメータに対する前記取得した乱数ベクトルそれぞれの重みと、の積の平均値で表わされる、シミュレーションシステム。
  6. 請求項1に記載のシミュレーションシステムであって、
    前記挙動関数の独立変数は、時刻及び時刻非依存の内部関数であり、
    前記内部関数は、確率分布に従う乱数ベクトルと、パラメータベクトルと、に基づいて、第1ベクトルを決定し、
    前記挙動関数は、一つの乱数ベクトルから、前記確率的システムの挙動の実現値の一つの時系列を決定し、
    前記挙動評価関数は、前記一つの時系列に基づいて、前記確率的システムの挙動の一つの評価値を決定し、
    前記重み関数は、前記内部関数による第1ベクトルを一定に保つ条件において、前記乱数ベクトルの乱数それぞれのパラメータによる第1の微分係数を決定し、当該第1の微分係数に基づき当該パラメータに対する当該乱数ベクトルの重みを決定し、
    前記プロセッサは、
    前記取得した複数の乱数ベクトルそれぞれと、前記取得したパラメータベクトルと、前記挙動関数と、に基づいて、前記取得した複数の乱数ベクトルそれぞれに対応する前記確率的システムの挙動の実現値の時系列を算出し、
    前記算出した実現値の時系列それぞれと、前記挙動評価関数と、に基づいて、前記取得した複数の乱数ベクトルそれぞれに対応する前記確率的システムの挙動の評価値を算出する、シミュレーションシステム。
  7. 請求項1に記載のシミュレーションシステムであって、
    前記挙動関数は、前記確率的システムの挙動の実現値の時系列を決定し、
    前記挙動関数は、前記時系列における各時刻の実現値を、各時刻に対応付けられている乱数と各時刻より前の時刻の実現値とに基づき決定し、
    前記挙動評価関数は、乱数ベクトルに対応する前記確率的システムの挙動の実現値の時系列に基づいて、前記乱数ベクトルに対応する前記確率的システムの挙動の評価値を決定し、
    前記重み関数は、前記乱数ベクトルの乱数それぞれに対応する時刻における挙動関数の実現値を一定に保つ条件において、前記乱数ベクトルの乱数それぞれのパラメータによる第1の微分係数を決定し、当該第1の微分係数に基づき当該パラメータに対する当該乱数ベクトルの重みを決定し、
    前記プロセッサは、
    前記取得した複数の乱数ベクトルそれぞれと、前記取得したパラメータベクトルと、前記挙動関数と、に基づいて、前記取得した複数の乱数ベクトルそれぞれに対応する前記確率的システムの挙動の実現値の時系列を算出し、
    前記算出した実現値の時系列それぞれと、前記挙動評価関数と、に基づいて、前記取得した複数の乱数ベクトルそれぞれに対応する前記確率的システムの挙動の評価値を算出する、シミュレーションシステム。
  8. 請求項5に記載のシミュレーションシステムであって、
    前記プロセッサは、
    前記取得した複数の乱数ベクトルそれぞれに対応する前記算出した挙動の評価値、前記取得した複数の乱数ベクトルが発生する確率、及び前記取得した複数の乱数ベクトルの乱数それぞれの第1の微分係数からなるベクトルと前記取得した複数の乱数ベクトルが従う確率密度関数の分布範囲の境界の外向き単位法線ベクトルとの内積、の積の前記境界上における積分値を算出し、
    前記平均値と前記積分値とに基づいて、前記確率的システムの挙動の評価値の期待値の感度を算出する、シミュレーションシステム。
  9. 請求項5に記載のシミュレーションシステムであって、
    前記プロセッサは、
    前記取得した複数の乱数ベクトルそれぞれに対応する前記算出した挙動の評価値、前記取得した複数の乱数ベクトルが発生する確率、及び前記取得した複数の乱数ベクトルの乱数それぞれ第1の微分係数からなるベクトル、の積の発散と、前記取得した複数の乱数ベクトルが発生する確率の逆数と、の積の第1の期待値を算出し、
    前記平均値と前記第1の期待値とに基づいて、前記確率的システムの挙動の評価値の期待値の感度を算出する、シミュレーションシステム。
  10. 請求項1に記載のシミュレーションシステムであって、
    前記取得した複数の乱数ベクトルが従う確率密度関数は、前記取得したパラメータベクトルのパラメータそれぞれが微小変化する条件において、前記乱数ベクトルに対応する挙動関数の実現値を一定に保つ、乱数ベクトルの微小変化に対して、定義域が一定である、シミュレーションシステム。
  11. 複数の乱数ベクトルそれぞれを入力とする確率的システムのシミュレーションを繰り返して、前記確率的システムの挙動の複数の実現値を算出する、シミュレーションシステムにおけるシミュレーション方法であって、
    前記シミュレーションシステムは、プロセッサと、メモリと、を含み、
    前記メモリは、
    1以上の乱数からなる乱数ベクトルと、1以上のパラメータからなるパラメータベクトルと、に基づいて、確率的システムの挙動の実現値を決定する、挙動関数と、
    前記確率的システムの挙動の実現値に基づいて、前記確率的システムの挙動の評価値を決定する、挙動評価関数と、
    乱数ベクトルに対応する挙動関数の実現値を一定に保つ条件において、前記乱数ベクトルの乱数それぞれのパラメータによる第1の微分係数を決定し、当該第1の微分係数に基づき当該パラメータに対する当該乱数ベクトルの重みを決定する、重み関数と、を保持し、
    前記方法は、
    前記プロセッサが、
    複数の乱数ベクトルと、パラメータベクトルと、を取得し、
    前記取得した複数の乱数ベクトルそれぞれと、前記取得したパラメータベクトルと、前記挙動関数と、に基づいて、前記取得した複数の乱数ベクトルそれぞれに対応する前記確率的システムの挙動の実現値を算出し、
    前記取得した複数の乱数ベクトルそれぞれと、前記取得したパラメータベクトルと、前記重み関数と、に基づき、前記取得したパラメータベクトルのパラメータそれぞれに対する、前記取得した乱数ベクトルそれぞれの重みを算出し、
    前記算出した実現値それぞれと、前記挙動評価関数と、に基づいて、前記取得した複数の乱数ベクトルそれぞれに対応する前記確率的システムの挙動の評価値を算出し、
    前記取得した複数の乱数ベクトルそれぞれに対応する前記算出した挙動の評価値と、前記取得したパラメータベクトルから選択したパラメータに対する前記取得した乱数ベクトルそれぞれの重みと、に基づいて、前記選択したパラメータに対する、前記確率的システムの挙動の評価値の期待値の感度、を算出する、ことを含む方法。
  12. 請求項11に記載のシミュレーション方法であって、
    前記重み関数は、
    前記第1の微分係数それぞれの、前記第1の微分係数それぞれに対応する乱数による、第2の微分係数を決定し、
    前記第2の微分係数に基づき前記パラメータに対する前記乱数ベクトルの重みを決定する、方法。
  13. 請求項11に記載のシミュレーション方法であって、
    前記重み関数における重みは、下記数式で表わされ、
    Figure 0006219528
    上記数式における、wは前記乱数ベクトル、zは前記パラメータベクトル、Mは前記乱数ベクトルの次元、wは前記乱数ベクトルwのj番目の要素は前記パラメータベクトルのi番目の要素、xは前記乱数ベクトルwに対応する前記確率的システムの挙動値、gは前記乱数ベクトルwが従う確率密度関数である、方法。
  14. 請求項12に記載のシミュレーション方法であって、
    前記取得した複数の乱数ベクトルは、一様分布に従い、
    前記重み関数において、前記重みは、前記乱数ベクトルの全ての乱数の前記第2の微分係数の和である、方法。
  15. 請求項12に記載のシミュレーション方法であって、
    前記選択したパラメータに対する、前記確率的システムの挙動の評価値の期待値の感度は、前記取得した複数の乱数ベクトルそれぞれに対応する前記算出した挙動の評価値と、前記選択したパラメータに対する前記取得した乱数ベクトルそれぞれの重みと、の積の平均値で表わされる、方法。
JP2016545097A 2014-08-25 2014-08-25 シミュレーションシステム、及びシミュレーション方法 Active JP6219528B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/072132 WO2016030938A1 (ja) 2014-08-25 2014-08-25 シミュレーションシステム、及びシミュレーション方法

Publications (2)

Publication Number Publication Date
JPWO2016030938A1 JPWO2016030938A1 (ja) 2017-06-15
JP6219528B2 true JP6219528B2 (ja) 2017-10-25

Family

ID=55398884

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016545097A Active JP6219528B2 (ja) 2014-08-25 2014-08-25 シミュレーションシステム、及びシミュレーション方法

Country Status (3)

Country Link
US (1) US11003810B2 (ja)
JP (1) JP6219528B2 (ja)
WO (1) WO2016030938A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10445442B2 (en) * 2016-09-01 2019-10-15 Energid Technologies Corporation System and method for game theory-based design of robotic systems
US10579754B1 (en) * 2018-09-14 2020-03-03 Hewlett Packard Enterprise Development Lp Systems and methods for performing a fast simulation
WO2020101971A1 (en) * 2018-11-13 2020-05-22 Seddi, Inc. Procedural model of fiber and yarn deformation
US11398072B1 (en) * 2019-12-16 2022-07-26 Siemens Healthcare Gmbh Method of obtaining a set of values for a respective set of parameters for use in a physically based path tracing process and a method of rendering using a physically based path tracing process

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3966139B2 (ja) 2002-09-27 2007-08-29 株式会社日立製作所 気象物理量の推定方法
US7653522B2 (en) * 2005-12-07 2010-01-26 Utah State University Robustness optimization system
JP2007213172A (ja) * 2006-02-07 2007-08-23 Japan Aerospace Exploration Agency モンテカルロ評価における危険不確定パラメータの検出方法
US9201993B2 (en) * 2011-05-11 2015-12-01 Apple Inc. Goal-driven search of a stochastic process using reduced sets of simulation points

Also Published As

Publication number Publication date
JPWO2016030938A1 (ja) 2017-06-15
WO2016030938A1 (ja) 2016-03-03
US11003810B2 (en) 2021-05-11
US20170235862A1 (en) 2017-08-17

Similar Documents

Publication Publication Date Title
Mirhoseini et al. Chip placement with deep reinforcement learning
Mirhoseini et al. A graph placement methodology for fast chip design
Singaravel et al. Deep-learning neural-network architectures and methods: Using component-based models in building-design energy prediction
McConaghy et al. Variation-aware design of custom integrated circuits: a hands-on field guide
US8005660B2 (en) Hierarchical stochastic analysis process optimization for integrated circuit design and manufacture
US9524365B1 (en) Efficient monte carlo flow via failure probability modeling
Xu et al. Learning viscoelasticity models from indirect data using deep neural networks
JP2023522567A (ja) ニューラルネットワークを使った集積回路配置の生成
Ipek et al. Efficient architectural design space exploration via predictive modeling
Jiang et al. A spatial-random-process based multidisciplinary system uncertainty propagation approach with model uncertainty
JP6219528B2 (ja) シミュレーションシステム、及びシミュレーション方法
CN114730352A (zh) 用于集成电路设计延迟计算和验证的基于机器学习的方法和设备
US9779192B2 (en) Multi-rate parallel circuit simulation
JP5418409B2 (ja) モデル式生成方法、装置及びプログラム
JP6730340B2 (ja) 因果推定装置、因果推定方法、及びプログラム
Savari et al. NN-SSTA: A deep neural network approach for statistical static timing analysis
US8813009B1 (en) Computing device mismatch variation contributions
EP2051176A1 (en) Parametric yield improvement flow incorporating sigma to target distance
US10803218B1 (en) Processor-implemented systems using neural networks for simulating high quantile behaviors in physical systems
US20220121800A1 (en) Methods of generating circuit models and manufacturing integrated circuits using the same
Singh et al. A scalable statistical static timing analyzer incorporating correlated non-Gaussian and Gaussian parameter variations
EP4009239A1 (en) Method and apparatus with neural architecture search based on hardware performance
Torres et al. Robust topology optimization under loading uncertainties via stochastic reduced order models
US20200327207A1 (en) Transient Sensitivity Analysis
Brusamarello et al. Fast and accurate statistical characterization of standard cell libraries

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170124

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170124

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: 20170829

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170927

R150 Certificate of patent or registration of utility model

Ref document number: 6219528

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150