JP6389808B2 - 計算式生成装置、計算式生成方法、及びプログラム - Google Patents

計算式生成装置、計算式生成方法、及びプログラム Download PDF

Info

Publication number
JP6389808B2
JP6389808B2 JP2015138355A JP2015138355A JP6389808B2 JP 6389808 B2 JP6389808 B2 JP 6389808B2 JP 2015138355 A JP2015138355 A JP 2015138355A JP 2015138355 A JP2015138355 A JP 2015138355A JP 6389808 B2 JP6389808 B2 JP 6389808B2
Authority
JP
Japan
Prior art keywords
node
probability
calculation formula
calculation
character string
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
JP2015138355A
Other languages
English (en)
Other versions
JP2017021552A (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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2015138355A priority Critical patent/JP6389808B2/ja
Publication of JP2017021552A publication Critical patent/JP2017021552A/ja
Application granted granted Critical
Publication of JP6389808B2 publication Critical patent/JP6389808B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Complex Calculations (AREA)

Description

本発明は、計算式生成装置、計算式生成方法、及びプログラムに関する。
各種のライフライン等のネットワークを構成する設備においては、設備(例えば、通信用のネットワークであれば、ルータやケーブル等の設備)の故障を想定した上で、拠点間で正常に接続(例えば、通信)が行える度合いを求める信頼性評価が重要となる。一般に、信頼性評価において、接続拠点(例えば、通信用のネットワークに関しては、ルータ等)をノードとみなし、接続設備(例えば、通信用のネットワークに関して、ケーブル等)をリンクとみなしたグラフを想定し、ノードやリンクが正常である確率(以下、「正常確率」という。)を与え、予め指定した複数ノード間が正常なノード及びリンクによって接続される確率(以下、「接続確率」という。)が、正常に接続される「信頼性」として計算される。
信頼性の計算手法については、これまでに多くの方法が提案されており、例えば、通信機能が正常となるために正常である必要があるノード及びリンクの組合せを、二分決定グラフを用いた論理関数として表すことで、信頼性を計算する手法などが有る(例えば、非特許文献1、非特許文献2参照)。このような信頼性評価を利用して、例えば、通信用のネットワークであれば、災害警報に基づき、災害によって他の拠点との接続確率が低くなるようなサーバ上のデータや機能を、事前に他サーバに移行するような技術が提案されている(例えば、非特許文献3参照)。
林, 阿部,"通信ネットワークの信頼性," 社団法人電子情報通信学会, 2010. S. Y. Kuo et al., "Efficient and Exact Reliability Evaluation for Networks With Imperfect Vertices," IEEE Transactions on Reliability, Vol. 56, No. 2, June 2007. H. Saito et al., "Proposal of disaster avoidance control.," Telecommunications Network Strategy and Planning Symposium (Networks), 2014 16th International. IEEE, 2014. Mathematica、[online]、[平成27年6月25日検索]、インターネット(URL:https://www.wolfram.com/index.ja.php) Sympy、[online]、[平成27年6月25日検索]、インターネット(URL:http://www.sympy.org/en/index.html)
しかしながら、台風や竜巻のような災害を想定した信頼性評価においては、台風や竜巻等の移動に応じて被災対象となる拠点が時々刻々と変化するため、ノードやリンクの正常確率も時間と共に変化する。ノードやリンクの正常確率が変化すれば、信頼性(例えば、上記の拠点間の接続確率)の計算を再実行する必要があるが、信頼性計算アルゴリズムは、ネットワークの規模が大きくなるにつれてその計算量も増加するため、大規模なネットワークが対象となった場合、求められる時間内に計算が終了しないことが想定される。
一方で、信頼性は、各ノードやリンクの正常確率を変数とみなした場合、その変数の関数として与えられる。関数の形状は、ネットワークトポロジや経路にのみ依存するため、信頼性を、ノードやリンクの正常確率を変数とした計算式として予め求めておけば、正常確率が変化した際には、単純に新たな正常確率を計算式に代入して計算することで、再度アルゴリズムを実行する場合に比べて信頼性の計算時間を短縮することができる。
記号を含む計算式の生成を行うツールとしてMathematica(非特許文献4)やSympy(非特許文献5)のような数式処理システムが有るが、そのようなシステムが行える数式処理は、四則演算や微積分等の一般的な数学的計算に関するものであり、信頼性計算のようなアルゴリズムの出力を、記号を含む計算式として表現するような仕組みは導入されていない。
本発明は、上記の点に鑑みてなされたものであって、ネットワークにおける信頼性計算において、ネットワークのトポロジが与えられた場合に、任意の2拠点間が正常に接続される確率を、各リンクが正常に動作する確率を表す変数を用いた計算式として出力可能とすることを目的とする。
そこで上記課題を解決するため、計算式生成装置は、節点の集合と辺の集合とを含む、ネットワークを表現するグラフについて、前記節点の集合の中から選択された第1の節点及び第2の節点の間が接続可能となるための辺の組み合わせを表す論理関数を生成する第1の生成部と、前記論理関数に基づく、前記第1の節点及び前記第2の節点の間が正常に接続される確率の計算において、各辺が正常である確率を辺ごとに異なる文字列によって表現して、前記計算における演算を、前記文字列と演算子との結合によって表現することで、前記第1の節点及び前記第2の節点の間が正常に接続される確率を、前記文字列を変数とした計算式として生成する第2の生成部と、を有し、前記第1の生成部は、前記ネットワークに対して追加される可能性が有る辺の集合をも含むグラフについて、前記第1の節点及び前記第2の節点の間が接続可能となるための辺の組み合わせを表す論理関数を生成し、前記第2の生成部は、前記第1の節点及び前記第2の節点の間が正常に接続される確率の計算において、前記追加される可能性が有る辺のうち、追加されないことが指定された辺については、当該辺が無いものとして前記計算式を生成する
ネットワークにおける信頼性計算において、ネットワークのトポロジが与えられた場合に、任意の2拠点間が正常に接続される確率を、各リンクが正常に動作する確率を表す変数を用いた計算式として出力可能とすることができる。
第1の実施の形態における計算式生成装置のハードウェア構成例を示す図である。 第1の実施の形態における計算式生成装置の機能構成例を示す図である。 第1の実施の形態において計算式生成装置が実行する処理手順の一例を説明するためのフローチャートである。 グラフの一例を示す図である。 短絡除去を説明するための図である。 ネットワークのパス関数を示すBDDグラフの一例を示す図である。 BDDを用いた計算式の生成結果の一例を示す図である。 第2の実施の形態において計算式生成装置が実行する処理手順の一例を説明するためのフローチャートである。 第2の実施の形態においてパス関数の変換をBDDで行う際のイメージ図である。 第5の実施の形態において計算式生成装置が実行する処理手順の一例を説明するためのフローチャートである。 第6の実施の形態において計算式生成装置が実行する処理手順の一例を説明するためのフローチャートである。 第7の実施の形態において計算式生成装置が実行する処理手順の一例を説明するためのフローチャートである。 本実施の形態の効果の検証に用いたネットワーク構成例を示す図である。 第1の実施の形態を用いて生成した計算式を示す図である。 第3の実施の形態を用いて生成した計算式を示す図である。 第3の実施の形態及び第5の実施の形態を用いて生成した確率計算式を示す図である。 第1、第3、及び第5の各実施の形態を用いて計算を行った際の計算時間の比較結果である。
以下、図面に基づいて本発明の実施の形態を説明する。図1は、第1の実施の形態における計算式生成装置のハードウェア構成例を示す図である。図1の計算式生成装置10は、それぞれバスBで相互に接続されているドライブ装置100、補助記憶装置102、メモリ装置103、CPU104、及びインタフェース装置105等を有する。
計算式生成装置10での処理を実現するプログラムは、CD−ROM等の記録媒体101によって提供される。プログラムを記憶した記録媒体101がドライブ装置100にセットされると、プログラムが記録媒体101からドライブ装置100を介して補助記憶装置102にインストールされる。但し、プログラムのインストールは必ずしも記録媒体101より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置102は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
メモリ装置103は、プログラムの起動指示があった場合に、補助記憶装置102からプログラムを読み出して格納する。CPU104は、メモリ装置103に格納されたプログラムに従って計算式生成装置10に係る機能を実行する。インタフェース装置105は、ネットワークに接続するためのインタフェースとして用いられる。
図2は、第1の実施の形態における計算式生成装置の機能構成例を示す図である。図2において、計算式生成装置10は、入力部11、パス関数生成部12、確率計算部13、及び出力部14等を有する。これら各部は、計算式生成装置10にインストールされた1以上のプログラムが、CPU104に実行させる処理により実現される。
第1の実施の形態においては、ネットワークを構成する設備のトポロジを表現するグラフとして、節点集合Vと辺集合Eから構成されるグラフG=(V,E)が与えられる。各辺e∈Vには、辺eが正常状態にある確率がそれぞれ定義可能であるとする。節点集合Vのうちのいずれか2つの節点s,tが指定され、s−t節点間が正常な辺によって連結している状態を「s−t間で接続が可能」状態であると定義する。この定義の下で、s−t間で接続(例えば、通信)が可能である確率Rs,t(G)(以下、「接続確率Rs,t(G)」という。)を計算式として出力する。出力方法としては、各辺eが正常である確率(正常確率p(e))が数値で与えられている際に接続確率Rs,t(G)を計算する方法において、各辺eの正常確率p(e)を、数値ではなく文字列として表現し、四則演算の結果を数値計算ではなく、'p(e_1)+p(e_2)'や'p(e_1)*p(e_2)'のような文字列の結合として出力することで、最終的に接続確率Rs,t(G)を表現する計算式を出力する。
以下、第1の実施の形態において計算式生成装置10が実行する処理手順について説明する。図3は、第1の実施の形態において計算式生成装置が実行する処理手順の一例を説明するためのフローチャートである。
ステップS110において、入力部11は、グラフG=(V,E)、及び接続可能(例えば、通信可能)である確率を求める2節点s,tの入力を受け付ける。2節点s,tは、節点集合Eの中から任意に選択される。
続いて、パス関数生成部12は、グラフG上でs−t間が接続可能であるための条件を表すパス関数Stを生成する(ステップS120)。パス関数Stは、s−t間が接続可能となるための辺の組合せを表し、具体的には各辺の状態を表す変数による論理関数である(非特許文献1)。例えば、図4に示されるグラフに対するパス関数Stは、以下の通りである。
St=e_1(e_3e_5∪e_4)∪e_2(e_5∪e_3e_4)
ここで、e_iは各辺を表し、「e_1が正常で、かつ、e_3とe_5とが正常若しくはe_4が正常」、又は「e_2が正常で、かつ、e_5が正常若しくはe_3とe_4とが正常」であれば、s−t間が接続可能であることを示す。このようなパス関数Stを導く方法として、PATHF()(非特許文献1)を以下に示す。なお、PATHF()の手順中、テーブルH1には、途中で生成されたグラフとそれに対応するパス関数とを対にして記憶しておく。こうすることで、一度生成したパス関数Stの再利用を行う。

PATHF()
入力:G,s,t
出力:パス関数St

手順1)入力されたグラフGにおいて、接続する辺の数が1本であり、かつ、sでもtでもない節点がある場合、当該節点と、当該節点に接続する辺とをグラフGから取り除く。また、両端の節点が単一節点であるループとなるような辺(すなわち、両端の節点が同一である辺)が有る場合、当該辺もグラフGから取り除く。
手順2)テーブルH1に対象のグラフGが記憶されていれば、対として記憶されているパス関数Stを出力する。そうでなければ、手順2に進む。
手順3)対象のグラフGが、節点tのみからなるグラフであれば1を出力する。そうでなければ、手順4に進む。
手順4)節点sに接続する全ての辺(e_1,e_2,・・・,e_ns)を抽出し、抽出された辺e_i(i=1,2,・・・,ns)ごとに、次を実行する。対象のグラフGにおいて、抽出された辺からe_iを除く辺(e_1,e_2,・・・,e_{i−1},e_{i+1},・・・,e_ns)を取り除いた後、辺e_iを短絡除去して得られるグラフを生成し、生成されたグラフをG◇e_iとする。例えば、図4のグラフがグラフGである場合、辺e_1及び辺e_2が抽出される。i=1のとき、辺e_2が取り除かれて、辺e_1が短絡除去される。また、i=2のとき、辺e_1が取り除かれて、辺e_2が短絡除去される。なお、辺の短絡除去とは、当該辺の両端の節点を一つの節点に統合することをいう。
図5は、短絡除去を説明するための図である。図5において、(1)は、図4のグラフから辺e_2が除去され、更に、辺e_1が短絡除去された例を示す。したがって、(1)に示されるグラフは、グラフG◇e_1に相当する。また、(2)は、図4のグラフから辺e_1が除去され、更に、辺e_2が短絡除去された例を示す。したがって、(1)に示されるグラフは、グラフG◇e_2に相当する。
なお、短絡除去によって統合された節点は、節点sとされる。
抽出された全ての辺e_iについて、辺e_i以外の除去及び辺e_iの短絡除去が終了すると、手順5に進む。
手順5)パス関数St=(e_1∩PATHF(G◇e_1))∪(e_2∩PATHF(G◇e_2))∪・・・∪(e_ns∩PATHF(G◇e_ns))を出力する。この際、テーブルH1に、対象のグラフGと当該パス関数Stとが対として記憶される。すなわち、手順5では、PATHF()が再帰的に呼び出される。なお、手順4の結果が、図5に示される通りである場合、手順5では、パス関数St=(e_1∩PATHF(G◇e_1))∪(e_2∩PATHF(G◇e_2))が出力される。
第1の実施の形態では、パス関数Stが、二分決定グラフ(BDD:binary decision diagram)を用いて表現される(非特許文献1、非特許文献2)。BDDは、グラフ構造による論理関数の表現である。例えば、論理関数F(e_1,e_2,e_3,e_4,e_5)=e_1(e_3e_5∪e_4)∪e_2(e_5∪e_3e_4)に対するBDDは、図6に示される通りである。これは、論理関数の値を全ての変数について場合分けした結果を二分決定木で表し、それを縮約することにより得られる。図6において、e_1,...,e_5を囲む丸印から下に向かって実線(1枝とよぶ)と点線(0枝とよぶ)が伸びているが、1枝がe_i=1、0枝がe_i=0とすることに対応する。頂点(図6では、e_1)から下方へ向けて辿り、終端ノード1(図6において□で囲まれた1)に至る場合が、論理関数の値が1となるような変数の値の組となる。例えば、e_1=1,e_2=1,e_4=1のとき、F=1となる。終端ノード0(図6において□で囲まれた0)に至る場合は、論理関数の値が0となるような変数の値の組となる。BDDでは、論理関数をコンパクトに表現でき、また、2つのBDDを入力としてそれらの2項論理演算(AND,ORなど)の結果を表すBDDを直接生成する計算方法が存在する。そのため、上記で示したPATHF()において、パス関数StをBDDで表現することで、PATHF()の手順5を効率的に行える。
図3に戻る。ステップS120に続いて、確率計算部13は、ステップS120において生成されたパス関数Stにおいて、辺e_iの正常確率をp(e_i)として表した場合に、接続確率Rs,t(G)を表す計算式を、p(e_i)(i=1,...,|E|)を含んだ文字式として生成する(ステップS130)。ここで、|E|は、辺集合Eの要素数を示す。
ここでは、パス関数Stが、BDDで表現されているとし、BDDにおいて、深さiに辺e_iが有るとする。また、St1(e_i)(又はSt0(e_i))は、パス関数Stを論理関数とみなしたときに、e_i=1(又はe_i=0)とすることに相当し、それは、BDDにおいて、e_iから1枝(又は0枝)が伸びた先に位置する辺eを頂点とした部分グラフに対応する。
パス関数Stを入力とし、接続確率Rs,t(G)を出力する関数であるREL()(非特許文献1)における計算手順を以下に示す。非特許文献1において、REL()は、数値を用いて計算する手順であるのに対し、以下では、各辺の正常確率は、文字列の配列pとして与えられる。具体的には、pは、i番目の要素が辺e_iの正常確率p(e_i)を文字列として保持する配列p=['p(e_1)','p(e_2)',・・・,'p(e_|E|)']である。なお、REL()の手順中、テーブルH2には、途中で生成されたパス関数Stと、それに対応する文字列とを対にして記憶しておく。こうすることで、一度生成した文字列の再利用を行う。

REL()
入力:パス関数St
出力:接続確率Rs,t(G)=P[St]

手順1)入力されたパス関数St=1ならば文字列'1'を出力する。すなわち、入力されたパス関数Stが、図6における終端ノード1に対応する場合、文字列'1'が出力される。そうでない場合、手順2に進む。なお、図6に示されるBDDが対象である場合、最初に手順1が実行される時点において、パス関数St=1ではないため、手順2に進む。後述より明らかなように、REL()の再帰的な呼び出しにおいて、パス関数St=1となる状況が発生する。
手順2)入力されたパス関数St=0ならば文字列'0'を出力する。すなわち、入力されたパス関数Stが、図6における終端ノード0に対応する場合、文字列'0'が出力される。そうでない場合、手順3に進む。なお、図6に示されるBDDが対象である場合、最初に手順2が実行される時点において、パス関数St=0ではないため、手順3に進む。後述より明らかなように、REL()の再帰的な呼び出しにおいて、パス関数St=0となる状況が発生する。
手順3)テーブルH2に、パス関数Stが含まれていれば、対として記憶されている文字列を出力する。そうでなければ、手順4に進む。
手順4)パス関数Stの頂点に位置する辺eのインデックスidを特定し、p_id=p[i]として、手順5に進む。p_id=p[i]は、p_idに対するp[i]の代入を示す。なお、図6に示されるBDDが対象である場合、最初に手順4が実行される時点において、パス関数Stの頂点に位置する辺eは、辺e_1である。
手順5)REL(St1(e))により出力される文字列をx_1に代入し、REL(St0(e))により出力される文字列をx_0に代入する。すなわち、REL()が再帰的に呼び出される。続いて、以下の条件判定に基づいて、処理が分岐する。
・if(x_1='1'かつx_0='0'):文字列p_idを出力する。
・elseif(x_1='1'):文字列p_id,'+(1−',p_id,')*(',x_0,')'を結合して構成される文字列を出力する。
・elseif(x0='0'):文字列p_id,'*(',x_1,')を結合して構成される文字列を出力する。
・else:文字列p_id,'*(',x_1,')+(1−',p_id,')*(',x_0,')'を結合して構成される文字列を出力する。
上記のいずれの分岐先においても、パス関数Stと出力対象の文字列との対がテーブルH2に記憶される。再帰的な呼び出しにおける階層構造において、最上層の手順5が終了すると、各辺の正常確率が辺ごとに異なる文字列によって表現され、接続確率Rs,t(G)の計算における演算が、当該文字列と演算子との結合によって表現された計算式が出生成される。したがって、当該計算式では、各辺の正常確率は、変数となる。
図7は、BDDを用いた計算式の生成結果の一例を示す図である。図7において、p(i)=p(e_i)であり、q(i)=1−p(e_i)である。辺e_1以外の辺に付与されている計算式は、REL()の再帰的な呼び出しにおいて生成される計算式である。すなわち、図7の例では、辺e_1に付与されている計算式が、REL()の出力として得られる計算式である。
続いて、出力部14は、REL()の出力結果を、接続確率Rs,t(G)を表す計算式として出力する(ステップS140)。例えば、当該計算式が、補助記憶装置102に記憶されてもよい。
上述したように、第1の実施の形態によれば、ネットワークのトポロジが与えられた場合に、任意の2拠点間(2つの節点間)が正常に接続される確率を、各リンク(各辺)が正常に動作する確率を表す変数を用いた計算式として出力可能とすることができる。
次に、第2の実施の形態について説明する。第2の実施の形態では第1の実施の形態と異なる点について説明する。第2の実施の形態において特に言及されない点については、第1の実施の形態と同様でもよい。
第2の実施の形態においては、辺だけではなく各節点vについても、vが正常状態にある確率として、p(v)が設定される。2つの節点s,tを指定し、s−t節点間が正常な辺及び節点によって連結している状態を「s−t間で接続が可能」状態であると定義する。この定義の下で、s−t間で接続が可能である接続確率Rs,t(G)を、p(e)及びp(v)を文字列として表現することで、最終的に接続確率Rs,t(G)を表現する計算式を出力する。
図8は、第2の実施の形態において計算式生成装置が実行する処理手順の一例を説明するためのフローチャートである。図8中、図3と同一ステップには同一ステップ番号を付し、その説明は適宜省略する。
図8では、ステップS120とステップS130との間に、ステップS125が追加されている。ステップS125において、パス関数生成部12は、ステップS120において生成されたパス関数Stを、節点の正常確率をも考慮したパス関数Stへ変換する。
辺e_mの両端の節点を、v_a及びv_bとした場合に、辺e_mを用いた接続を可能とするためには、v_a及びv_bについても正常である必要がある。したがって、ステップS125では、パス関数Stについて、e_m→v_a∩e_m∩v_bといった置き換えが行われる(非特許文献2)。パス関数StをBDDで表現する場合、辺e_mの1枝の先のグラフをf|e_m=1とし、0枝の先のグラフをf|e_m=0としたときに、置き換えが行われたグラフは、
{(v_a∩e_m∩v_b)∩f|e_m=1}∪{(NOT(v_a∩e_m∩v_b))∩f|e_m=0}
として表される(図9)。ここで、NOT(X)は、Xの否定を示す。このような置き換えは、BDDの頂点から下方に向けて、全ての辺について行われる。
続くステップS130では、このような置き換えが行われたパス関数Stが入力とされて、確率計算部13によって、接続確率Rs,t(G)を表現する計算式が生成される。計算式の生成においては、第1の実施の形態における「辺」が「辺又は節点」に置き換えられて、第1の実施の形態と同様に行われればよい。
上述したように、第2の実施の形態によれば、ネットワークのトポロジが与えられた場合に、任意の2拠点間(2つの節点間)が正常に接続される確率を、各リンク(各辺)及び各拠点(節点)が正常に動作する確率を表す変数を用いた計算式として出力可能とすることができる。
次に、第3の実施の形態について説明する。第3の実施の形態では第1の実施の形態と異なる点について説明する。第3の実施の形態において特に言及されない点については、第1の実施の形態と同様でもよい。
第3の実施の形態においては、第1の実施の形態における接続確率Rs,t(G)の計算において文字列を出力する際に、文字列を数式とみなして縮約が行われる。それにより、縮約された計算式を、接続確率Rs,t(G)として出力する。
具体的には、図3のステップS130において実行されるREL()の手順5において、確率計算部13は、出力対象の文字列がテーブルH2に記憶する際に、当該文字列を数式とみなして縮約を行い、縮約した結果として生成される文字列を、テーブルH2に記憶する。
例えば、縮約として単純な数式展開を用いる場合、生成された文字列が「p(e_1)*p(e_2)*(1−p(e_3))+(1−p(e_2))*p(e_3)+(1−p(e_1))*p(e_2)」であれば、縮約の結果は「−p(e_1)*p(e_2)*p(e_3)+p(e_3)−p(e_2)*p(e_3)+p(e_2)」となる。
次に、第4の実施の形態について説明する。第4の実施の形態では第2の実施の形態と異なる点について説明する。第4の実施の形態において特に言及されない点については、第2の実施の形態と同様でもよい。
第4の実施の形態においては、第2の実施の形態における接続確率Rs,t(G)の計算において、文字列を出力する際に、文字列を数式とみなして縮約を行った上で文字列として出力する。それにより、縮約された計算式を接続確率Rs,t(G)として出力する。
具体的には、図8のステップS130において実行されるREL()の手順5において、第3の実施の形態と同様に縮約が行われる。
次に、第5の実施の形態について説明する。第5の実施の形態では第1の実施の形態と異なる点について説明する。第5の実施の形態において特に言及されない点については、第1の実施の形態と同様でもよい。
第5の実施の形態においては、第1の実施の形態に対して、一部の辺eの正常確率p(e)を文字列として表現し、その他の辺の正常確率を数値として与えることで、文字列で与えられた確率を変数とするような文字式として接続確率Rs,t(G)を表現する。接続確率Rs,t(G)の計算において、文字列同士の四則演算は、第1の実施の形態のように表現されるが、数値同士の四則演算については、通常の数値計算結果を出力とし、数値と文字列の四則演算については、文字列を数式とみなした場合の計算結果を文字列として出力する。
図10は、第5の実施の形態において計算式生成装置が実行する処理手順の一例を説明するためのフローチャートである。図10中、図3と同一ステップには同一ステップ番号を付し、その説明は省略する。
図10では、ステップS110がステップS110aに変更されている。ステップS110aにおいて、入力部11は、対象のグラフG=(V,E)、及び接続可能である確率を求める2節点s,t、に加え、各辺の正常確率pの入力を受け付ける。ここで、pは、i番目の要素が辺e_iの正常確率p(e_i)となる配列であるが、一部の要素については第1の実施の形態と同様に文字列が与えられ、残りの要素については数値が与えられている。
また、ステップS130がステップS130aに変更されている。ステップS130aにおいて、確率計算部13は、REL()の手順5において、x_1,x_0,p_idが数値を含まない文字列である場合には、第1の実施の形態と同様の処理を実行するが、数値を含む文字列である場合には、生成された文字列を数式とみなし、四則演算を行った上での計算結果を出力する。例えば、生成された文字列が「0.99*(1−0.99)+(1−0.99)*p(e_1)」であれば、REL()の出力は「0.0099+0.01*p(e_1)」となる。
上述したように、第5の実施の形態によれば、一部の辺について正常確率が数値として与えられている場合に、当該数値を利用した計算式を生成することができる。なお、第5の実施の形態に対して、第3の実施の形態が組み合わされてもよい。
次に、第6の実施の形態について説明する。第6の実施の形態では第2の実施の形態と異なる点について説明する。第6の実施の形態において特に言及されない点については、第2の実施の形態と同様でもよい。
第6の実施の形態においては、第2の実施の形態に対して、一部の辺eの正常確率p(e)及び一部の節点vの正常確率p(v)を文字列として表現し、その他の辺及び節点の正常確率を数値として与え、第4の実施の形態と同様に接続確率Rs,t(G)を表現する。
図11は、第6の実施の形態において計算式生成装置が実行する処理手順の一例を説明するためのフローチャートである。図11中、図8又は図10と同一ステップには同一ステップ番号を付し、その説明は省略する。
図11では、ステップS110がステップS110aに変更されている。ステップS110aでは、図10のステップS110aと同様の処理が実行される。
また、ステップS130がステップS130bに変更されている。ステップS130bでは、図10のステップS130aと同様の処理が行われる。但し、ステップS130bでは、「辺」だけではなく「辺及び節点」について計算が行われる。
上述したように、第6の実施の形態によれば、一部の辺及び節点について正常確率が数値として与えられている場合に、当該数値を利用した計算式を生成することができる。なお、第6の実施の形態に対して、第4の実施の形態が組み合わされてもよい。
次に、第7の実施の形態について説明する。第7の実施の形態では第1の実施の形態と異なる点について説明する。第7の実施の形態において特に言及されない点については、第1の実施の形態と同様でもよい。
第7の実施の形態においては、第1の実施の形態に対して、元のグラフGに対して追加される可能性のある辺の集合Fを考え、Fを含んだグラフG'=(V,E∪F)について第1の実施の形態と同様にRs,t(G')を求める。その後、辺fの正常確率を表す文字列を'p(f)'とした場合に、辺fをグラフGに追加する場合には、そのまま'p(f)'を含んだ計算式を出力し、辺fをグラフGに追加しない場合には、計算式において'p(f)'を0とみなした(すなわち、辺fが無いものとみなした)計算式を出力する。
図12は、第7の実施の形態において計算式生成装置が実行する処理手順の一例を説明するためのフローチャートである。図12中、図3と同一ステップについては同一ステップ番号を付し、その説明は省略する。
図12では、ステップS110がステップS110bに変更されている。ステップS110bにおいて、入力部11は、対象のグラフGへの追加の可能性がある辺の集合Fを全て含んだとみなしたグラフG'=(V,E∪F)、及び接続可能である確率を求める2節点s,tの入力を受け付ける。その後、第1の実施の形態と同様に、Rs,t(G')を表す計算式が生成される。
続いて、任意のタイミングで、集合F内の全ての辺について、ステップS131が実行される。任意のタイミングとは、例えば、集合F内のいずれかの辺について、追加が決定された際や、集合F内のいずれかの辺が追加された場合の計算式の生成が指示された際等である。この場合、集合Fの中で追加対象とされる辺が、ユーザによって指定されてもよい。
ステップS131において、確率計算部13は、集合F内の各辺f_i∈Fについて、対象のグラフGへの追加対象であるか否かを判定する。辺f_iが、対象のグラフGへの追加対象である場合(S131でYes)、確率計算部13は、f_iの正常確率を表す文字列'p(f_i)'を、Rs,t(G')を表す計算式に残したままとする。一方、辺f_iが、対象のグラフGへの追加対象でない場合(S131でYes)、確率計算部13は、Rs,t(G')を表す計算式において、'p(f_i)'を0とみなして計算式を再構成する(ステップS132)。
例えば、Rs,t(G')を表す計算式が「'p(e_1)*p(e_2)+p(f_1)'」である場合、辺f_1をグラフGに追加する場合には、そのまま「'p(e_1)*p(e_2)+p(f_1)'」が出力結果となる。一方、辺f_1を対象のグラフGに追加しない場合には、計算式は「'p(e_1)*p(e_2)'」として再構成される。
なお、第7の実施の形態に対して、第3の実施の形態、又は第5の実施の形態が組み合わされてもよい。また、第2の実施の形態、第4の実施の形態、又は第6の実施の形態が、第7の実施の形態に組み合わされてもよい。
上述したように、第7の実施の形態によれば、辺の追加の有無に応じて、計算式を再構成することができる。
なお、上記各実施の形態において「ネットワーク」は、通信用のネットワークに限られない。例えば、道路網、鉄道網、電力網、又は上下水道網等、ネットワーク状のライフラインを表すグラフに関して、本実施の形態が適用されてもよい。
次に、図13のネットワークに関して、第1、第3、及び第5の実施の形態を用いて接続確率の計算式及び接続確率を求めた結果を示す。
パス関数の導出にはBDD作成ツールであるpycuddを使用し、文字列としての計算式の生成にはsympyを使用した。第1の実施の形態を用いて求めた計算式を図14、第3の実施の形態を用いて縮約した計算式を図15、辺e_1,e_3,e_7,e_9以外の辺の正常確率を0.9として与えた上で第3の実施の形態及び第5の実施の形態を用いて求めた縮約した計算式を図16に示す。図14、図15、及び図16において、p1,p2,...,p12は、それぞれp(e_1),p(e_2),...,p(e_12)を表す。
また、第1、第3、及び第5の各実施の形態において、計算式の生成に要した時間(秒)及び計算式を用いて接続確率の計算を行った際の計算時間(秒)を図17に示す。図17では、比較手法として、BDDを用いて確率計算を行った結果も「BDD」の列に示されている。比較手法は、第5の実施の形態において全ての確率を数値として与えて計算式の作成を行う手順に相当する。
図17より、計算式の生成には比較手法の計算時間に比べて時間を要するが、計算時間については、生成された計算式を用いることにより第1の実施の形態では約90.0%削減できており、また、計算式を縮約した第3の実施の形態では約91.0%削減できている。また、第3の実施の形態及び第5の実施の形態のように一部の辺のみの正常確率を変数とした場合、計算時間を約99.6%削減できている。1つのネットワークトポロジに対して計算式の生成が必要となるのは一度なので、接続確率の計算を繰り返し行う場合、本実施の形態が有効であるといえる。
なお、上記各実施の形態において、パス関数生成部12は、第1の生成部の一例である。確率計算部13は、第2の生成部の一例である。
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
10 計算式生成装置
11 入力部
12 パス関数生成部
13 確率計算部
14 出力部
100 ドライブ装置
101 記録媒体
102 補助記憶装置
103 メモリ装置
104 CPU
105 インタフェース装置
B バス

Claims (7)

  1. 節点の集合と辺の集合とを含む、ネットワークを表現するグラフについて、前記節点の集合の中から選択された第1の節点及び第2の節点の間が接続可能となるための辺の組み合わせを表す論理関数を生成する第1の生成部と、
    前記論理関数に基づく、前記第1の節点及び前記第2の節点の間が正常に接続される確率の計算において、各辺が正常である確率を辺ごとに異なる文字列によって表現して、前記計算における演算を、前記文字列と演算子との結合によって表現することで、前記第1の節点及び前記第2の節点の間が正常に接続される確率を、前記文字列を変数とした計算式として生成する第2の生成部と、
    を有し、
    前記第1の生成部は、前記ネットワークに対して追加される可能性が有る辺の集合をも含むグラフについて、前記第1の節点及び前記第2の節点の間が接続可能となるための辺の組み合わせを表す論理関数を生成し、
    前記第2の生成部は、前記第1の節点及び前記第2の節点の間が正常に接続される確率の計算において、前記追加される可能性が有る辺のうち、追加されないことが指定された辺については、当該辺が無いものとして前記計算式を生成する、
    ことを特徴とする計算式生成装置。
  2. 前記第1の生成部は、前記第1の節点及び前記第2の節点の間が接続可能となるための辺及び節点の組み合わせを表す論理関数を生成し、
    前記第2の生成部は、前記第1の節点及び前記第2の節点の間が正常に接続される確率の計算において、各辺が正常である確率を辺ごとに異なる文字列によって表現し、各節点が正常である確率を節点ごとに異なる文字列によって表現して、前記計算における演算を、前記文字列と演算子との結合によって表現することで、前記第1の節点及び前記第2の節点の間が正常に接続される確率を、前記文字列を変数とした計算式として生成する、
    ことを特徴とする請求項1記載の計算式生成装置。
  3. 前記第2の生成部は、前記文字列を含む計算式を縮約する、
    ことを特徴とする請求項1又は2記載の計算式生成装置。
  4. 前記第2の生成部は、前記辺の集合のうちの一部の辺については、当該辺に対して与えられた、当該辺が正常である確率を示す数値を用いて前記計算式を生成する、
    ことを特徴とする請求項1乃至3いずれか一項記載の計算式生成装置。
  5. 前記第2の生成部は、前記辺の集合のうちの一部の辺又は前記節点の集合のうちの一部の節点については、当該辺又は当該節点に対して与えられた、当該辺又は当該節点が正常である確率を示す数値を用いて前記計算式を生成する、
    ことを特徴とする請求項2記載の計算式生成装置。
  6. コンピュータが、
    節点の集合と辺の集合とを含む、ネットワークを表現するグラフについて、前記節点の集合の中から選択された第1の節点及び第2の節点の間が接続可能となるための辺の組み合わせを表す論理関数を生成する第1の生成手順と、
    前記論理関数に基づく、前記第1の節点及び前記第2の節点の間が正常に接続される確率の計算において、各辺が正常である確率を辺ごとに異なる文字列によって表現して、前記計算における演算を、前記文字列と演算子との結合によって表現することで、前記第1の節点及び前記第2の節点の間が正常に接続される確率を、前記文字列を変数とした計算式として生成する第2の生成手順と、
    を実行し、
    前記第1の生成手順は、前記ネットワークに対して追加される可能性が有る辺の集合をも含むグラフについて、前記第1の節点及び前記第2の節点の間が接続可能となるための辺の組み合わせを表す論理関数を生成し、
    前記第2の生成手順は、前記第1の節点及び前記第2の節点の間が正常に接続される確率の計算において、前記追加される可能性が有る辺のうち、追加されないことが指定された辺については、当該辺が無いものとして前記計算式を生成する、
    ことを特徴とする計算式生成方法。
  7. コンピュータを、請求項1乃至いずれか一項記載の各部として機能させるためのプログラム。
JP2015138355A 2015-07-10 2015-07-10 計算式生成装置、計算式生成方法、及びプログラム Active JP6389808B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015138355A JP6389808B2 (ja) 2015-07-10 2015-07-10 計算式生成装置、計算式生成方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015138355A JP6389808B2 (ja) 2015-07-10 2015-07-10 計算式生成装置、計算式生成方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2017021552A JP2017021552A (ja) 2017-01-26
JP6389808B2 true JP6389808B2 (ja) 2018-09-12

Family

ID=57889680

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015138355A Active JP6389808B2 (ja) 2015-07-10 2015-07-10 計算式生成装置、計算式生成方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP6389808B2 (ja)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3895700B2 (ja) * 2003-03-14 2007-03-22 日本電信電話株式会社 通信網故障頻度計算方法、通信網故障頻度計算装置、通信網故障頻度計算プログラム及びそのプログラムを記録した記録媒体
JP6003699B2 (ja) * 2013-02-08 2016-10-05 富士通株式会社 テストデータ生成プログラム、方法及び装置
JP6155833B2 (ja) * 2013-05-16 2017-07-05 富士通株式会社 伝達情報変動検知方法、伝達情報変動検知装置および伝達情報変動検知プログラム
JP2015029223A (ja) * 2013-07-30 2015-02-12 Kddi株式会社 複数のリンクに対する送信試行順序を決定する方法及び装置、ノード、並びにプログラム

Also Published As

Publication number Publication date
JP2017021552A (ja) 2017-01-26

Similar Documents

Publication Publication Date Title
CN110597799B (zh) 一种时序数据缺失值自动填补方法、系统和设备
CN110677433A (zh) 一种网络攻击预测的方法、系统、设备及可读存储介质
JP6649294B2 (ja) 状態判定装置、状態判定方法及びプログラム
JP2009181446A (ja) プログラム生成装置およびブロック線図生成装置
JP2016174281A (ja) ネットワーク評価装置、ネットワーク評価方法及びネットワーク評価プログラム
JP6389808B2 (ja) 計算式生成装置、計算式生成方法、及びプログラム
WO2018135515A1 (ja) 情報処理装置、ニューラルネットワークの設計方法及び記録媒体
JP5099854B2 (ja) 不整合オントロジーの修復方法とその装置
Rebenda et al. Differential Transform Algorithm for Functional Differential Equations with Time‐Dependent Delays
JP2008293199A (ja) ベイジアンネットワーク情報処理装置およびベイジアンネットワーク情報処理プログラム
JP2019101712A (ja) 異常推定装置、異常推定方法及びプログラム
JP5510014B2 (ja) ニューラルネットワーク設計方法及びプログラム
Adimoolam et al. Using complex zonotopes for stability verification
WO2012172747A1 (ja) 評価モデル生成装置、評価モデル生成方法および評価モデル生成プログラム
JP2006324959A (ja) 通信網故障頻度計算装置と方法およびプログラム
WO2021124574A1 (ja) トポロジー設計装置、トポロジー設計方法、及びプログラム
JP6981232B2 (ja) ネットワーク設計装置、方法、及びプログラム
JP2009237913A (ja) プロパティ抽出装置及び方法
JP2008146399A (ja) モデル作成装置、モデル作成方法、およびモデル作成プログラム
JP2016099726A (ja) 仕様生成方法、仕様生成装置、及びプログラム
CN112507554B (zh) 一种基于图计算的水文模型并行率定方法和系统
JP6157745B2 (ja) 実行時間推定プログラムおよび実行時間推定装置
JP3679817B2 (ja) 非線形時系列データ予測方法
JP7508838B2 (ja) 部分抽出装置、部分抽出方法およびプログラム
JP2019153047A (ja) 生成装置、生成方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170829

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180518

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180710

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180802

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180820

R150 Certificate of patent or registration of utility model

Ref document number: 6389808

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150