(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-01-14
(45)【発行日】2025-01-22
(54)【発明の名称】分散計算方法、分散計算装置及びプログラム
(51)【国際特許分類】
G06F 17/18 20060101AFI20250115BHJP
【FI】
G06F17/18 D
(21)【出願番号】P 2023572322
(86)(22)【出願日】2022-01-07
(86)【国際出願番号】 JP2022000401
(87)【国際公開番号】W WO2023132066
(87)【国際公開日】2023-07-13
【審査請求日】2024-04-30
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(74)【代理人】
【識別番号】110004381
【氏名又は名称】弁理士法人ITOH
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100124844
【氏名又は名称】石原 隆治
(72)【発明者】
【氏名】中村 健吾
(72)【発明者】
【氏名】井上 武
(72)【発明者】
【氏名】西野 正彬
(72)【発明者】
【氏名】安田 宜仁
【審査官】平井 誠
(56)【参考文献】
【文献】佐々木勇和 ほか,曖昧グラフにおける効率的なネットワーク信頼性の近似計算,日本データベース学会和文論文誌 [オンライン],日本,日本データベース学会,2020年03月31日,第18-J巻,pp.1-8
【文献】佐々木 勇和 ほか,BDDによるネットワーク信頼性の近似計算,電子情報通信学会技術研究報告,日本,一般社団法人電子情報通信学会,2017年12月15日,第117巻,第374号,pp.85-90
(58)【調査した分野】(Int.Cl.,DB名)
G06F 17/18
(57)【特許請求の範囲】
【請求項1】
連結な無向グラフG=(V,E)と、端点集合K⊂Vと、前記無向グラフGを構成するリンクe
i∈Eの可用性の平均p
i及び分散σ
i
2とを入力する入力手順と、
前記無向グラフGと、前記端点集合Kとに基づいて、前記端点集合Kに含まれる全てのノードが接続する状態を全て持つ二分決定グラフを構築する構築手順と、
前記二分決定グラフと、前記リンクe
i∈Eの可用性の平均p
i及び分散σ
i
2とに基づいて、前記端点集合Kに含まれる全てのノードが接続する確率を表すネットワーク信頼性の分散値を計算する計算手順と、
をコンピュータが実行する分散計算方法。
【請求項2】
前記計算手順は、
前記リンクe
i∈Eの可用性の平均p
i及び分散σ
i
2を用いて、前記二分決定グラフの頂点ペアに対する共分散を再帰的に計算することで、前記ネットワーク信頼性の分散値を計算する、請求項1に記載の分散計算方法。
【請求項3】
前記計算手順は、
前記二分決定グラフの各頂点vに対して、各リンクe
1,・・・,e
lb(v)-1(ただし、lb(v)は頂点vのラベル)の各々が動作しているか又は故障しているかのいずれであるかを表す状態を固定した下で、前記端点集合Kに含まれる全てのノードが接続する条件付き確率をR
v、前記リンクe
iの可用性をP
i、前記二分決定グラフの根である頂点をrとしたとき、R
rとR
rのP
1,・・・,P
m(ただし、m=|E|)に関する共分散の値を、前記ネットワーク信頼性の分散値として計算する、請求項1又は2に記載の分散計算方法。
【請求項4】
前記計算手順は、
前記二分決定グラフの任意の頂点ペアを(u,v)としたときのR
uとR
vのP
1,・・・,P
mに関する共分散をCov[R
u,R
v]として、
頂点uのラベルと頂点vのラベルの等しい場合に成り立つ第1の等式と、頂点uのラベルが頂点vのラベルより小さい場合に成り立つ第2の等式と、頂点vのラベルが頂点uのラベルより小さい場合に成り立つ第3の等式とのいずれかにより前記共分散Cov[R
u,R
v]を再帰的に計算することで、前記R
rとR
rのP
1,・・・,P
mに関する共分散をCov[R
r,R
r]の値を計算する、請求項3に記載の分散計算方法。
【請求項5】
前記計算手順は、
前記頂点uのラベルをlb(u)、前記頂点vのラベルをlb(v)、前記頂点uのHI辺が指す子頂点をhi(u)、前記頂点uのLO辺が指す子頂点をlo(u)、前記頂点vのHI辺が指す子頂点をhi(v)、前記頂点vのLO辺が指す子頂点をlo(v)、q
i=1-p
i、E(・)を期待値として、
lb(u)=lb(v)=iである場合、前記第1の等式は、Cov[R
u,R
v]=(q
i
2+σ
i
2)Cov[R
lo(u),R
lo(v)]+(p
iq
i-σ
i
2)(Cov[R
lo(u),R
hi(v)]+Cov[R
hi(u),R
lo(v)])+(p
i
2-σ
i
2)Cov[R
hi(u),R
hi(v)]+σ
i
2(E[R
hi(u)]-E[R
lo(u)])(E[R
hi(v)]-E[R
lo(v)])であり、
i=lb(u)<lb(v)である場合、前記第2の等式は、Cov[R
u,R
v]=q
iCov[R
lo(u),R
v]+p
iCov[R
hi(u),R
v]であり、
i=lb(v)<lb(u)である場合、前記第3の等式は、Cov[R
u,R
v]=q
iCov[R
u,R
lo(v)]+p
iCov[R
u,R
hi(v)]である、請求項4に記載の分散計算方法。
【請求項6】
前記構築手順は、
リンクe
i∈Eが動作していればx
i=true、リンクe
i∈Eが故障していればx
i=falseとなる二値変数x
1,・・・,x
mを入力として前記端点集合Kに含まれる全てのノードが接続していればtrue、そうでなければfalseを出力とする論理関数を表現する二分決定グラフを構築する、請求項1乃至5の何れか一項に記載の分散計算方法。
【請求項7】
連結な無向グラフG=(V,E)と、端点集合K⊂Vと、前記無向グラフGを構成するリンクe
i∈Eの可用性の平均p
i及び分散σ
i
2とを入力するように構成されている入力部と、
前記無向グラフGと、前記端点集合Kとに基づいて、前記端点集合Kに含まれる全てのノードが接続する状態を全て持つ二分決定グラフを構築するように構成されている構築部と、
前記二分決定グラフと、前記リンクe
i∈Eの可用性の平均p
i及び分散σ
i
2とに基づいて、前記端点集合Kに含まれる全てのノードが接続する確率を表すネットワーク信頼性の分散値を計算するように構成されている計算部と、
を有する分散計算装置。
【請求項8】
コンピュータに、請求項1乃至6の何れか一項に記載の分散計算方法を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、分散計算方法、分散計算装置及びプログラムに関する。
【背景技術】
【0002】
通信ネットワークや電力網、交通網等のネットワークシステムでは、リンクが故障しそのリンクが使えなくなってしまうことが時折発生する。そのようなリンクの故障を確率的な事象と捉えると、或る指定した複数のノード間が接続している確率(つまり、或る指定した複数のノードのうちの任意の2つのノード間を繋ぐ道が存在する確率)を計算することができる。指定したk個のノード間が接続している確率を求める問題はk-ターミナル信頼性問題(k-terminal network reliability、以下、k-NRと略す。)と呼ばれ、その確率はネットワーク信頼性(又は、単に信頼性)とも呼ばれる。
【0003】
k-NRは#P-完全という計算が困難な問題に属することが知られており、愚直な方法では数十リンク程度のネットワークでもネットワーク信頼性の計算に多くの時間を要してしまう。これに対して、例えば、非特許文献1や2では、組合せ集合をコンパクトに表現できる二分決定グラフ(BDD:Binary Decision Diagram)を用いて高速にネットワーク信頼性を求める手法が提案されている。現在では、数多くの研究により数百リンク程度のネットワークに対して正確なネットワーク信頼性を求めることができる。
【0004】
一方で、既存研究では、各リンクの可用性(すなわち、各リンクが正しく動作する確率)は正確に与えられるという仮定の下でネットワーク信頼性が計算されている。しかしながら、現実的にはリンクの可用性はいくらかの不確かさを持って与えられたり、例えば機械学習により誤差を持った形で推定されたりもする。もし各リンクの可用性が不確かさを分散(variance)の形で持っているならば、ネットワーク信頼性の値も不確かさを分散の形で持っているはずである。このようなネットワーク信頼性の不確かさを計算することは現実的な状況では重要である。例えば、ネットワーク信頼性は99%であるがその標準偏差(不確かさ)が1%あるネットワークシステムと、ネットワーク信頼性は98.5%であるがその標準偏差(不確かさ)は0.1%であるネットワークシステムとを考えた場合、前者の方がネットワーク信頼性自体は高いものの、後者の方が好まれる状況も十分に考えられる。
【先行技術文献】
【非特許文献】
【0005】
【文献】Gary Hardy, Corinne Lucet, and Nikolaos Limnios. K-terminal network reliability measures with binary decision diagrams. IEEE Transactions on Reliability, Vol. 56, pp. 506-515, 2007.
【文献】Johannes U. Herrmann. Improving reliability calculation with augmented binary decision diagrams. In Proceedings of the 24th IEEE International Conference on Advanced Information Networking and Applications (AINA 2010), pp. 328-333, 2010.
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、上述したように、ネットワーク信頼性の不確かさを考慮した既存研究は存在せず、従ってネットワーク信頼性の分散を計算する手法も存在しない。
【0007】
本発明の一実施形態は、上記の点に鑑みてなされたもので、ネットワーク信頼性の分散を計算することを目的とする。
【課題を解決するための手段】
【0008】
上記目的を達成するため、一実施形態に係る分散計算方法は、連結な無向グラフG=(V,E)と、端点集合K⊂Vと、前記無向グラフGを構成するリンクei∈Eの可用性の平均pi及び分散σi
2とを入力する入力手順と、前記無向グラフGと、前記端点集合Kとに基づいて、前記端点集合Kに含まれる全てのノードが接続する状態を全て持つ二分決定グラフを構築する構築手順と、前記二分決定グラフと、前記リンクei∈Eの可用性の平均pi及び分散σi
2とに基づいて、前記端点集合Kに含まれる全てのノードが接続する確率を表すネットワーク信頼性の分散値を計算する計算手順と、をコンピュータが実行する。
【発明の効果】
【0009】
ネットワーク信頼性の分散を計算することができる。
【図面の簡単な説明】
【0010】
【
図1】本実施形態に係る分散計算装置のハードウェア構成の一例を示す図である。
【
図2】本実施形態に係る分散計算装置の機能構成の一例を示す図である。
【
図3】本実施形態に係る分散計算装置が実行する処理の流れの一例を示すフローチャートである。
【
図4】グラフG及び端点集合Kの一例を示す図である。
【
図5】或る信頼性論理関数を表現するBDDの一例を示す図である。
【
図6】BDDによりネットワーク信頼性の分散値を計算するアルゴリズムの一例を示す図である。
【発明を実施するための形態】
【0011】
以下、本発明の一実施形態について説明する。
【0012】
<問題設定>
「ネットワーク信頼性の分散」を数学的に定式化すると以下のようになる。
【0013】
ネットワークは、連結な無向グラフG=(V,E)としてモデル化する。ここで、n=|V|をノード数、m=|E|をリンク数とする。各リンクei∈Eには可用性Pi∈[0,1]が与えられる。これは、リンクeiは確率Piで正しく動作し、確率1-Piで故障する、ということを意味する。各リンクの状態(つまり、動作しているか又は故障しているか)は他のリンクの状態と確率的に独立であるものとする。また、Eに含まれる全てのリンクの状態の集まりを「Eの状態」と呼ぶことにする。このとき、Eの状態Xが与えられると、EX⊆Eを動作しているリンクの集合として、動作しているリンクのみからなるGの部分グラフGX=(V,EX)を考えることができる。この状態Xが起こる確率は以下の式(1)で計算できる。
【0014】
【数1】
ノードの集合K⊆Vが与えられたとき、Kに含まれるノードが全て接続する確率(ネットワーク信頼性)R
G(K)は以下の式(2)で計算できる。
【0015】
【数2】
ここで、Γ
KはKに含まれる全てのノードがG
X中で接続しているようなEの状態Xを全て集めた集合である。言い換えれば、Γ
Kは、Kに含まれる全てのノードが、動作しているリンクの集合E
Xにより全て接続しているようなEの状態Xを全て集めた集合である。
【0016】
いま、不確かさを反映するために、各リンクの可用性Piは平均pi、分散σi
2の確率分布に従うものと仮定する。つまり、各リンクの可用性を確率変数とみなすことにする。このとき、各リンクの状態の独立性を担保するため、i≠jに対してPiとPjは統計的に独立であるものとする。すると、Eの状態Xを一つ固定したときの式(1)のP(X)や式(2)のRG(K)は、P1,・・・,Pmに従属する確率変数となる。
【0017】
以降、E[・]、Var[・]、Cov[・,・]をそれぞれP1,・・・,Pmに関する期待値、分散、共分散とする。各リンクの可用性がPi=piと固定されたときの従来のネットワーク信頼性の値を考えると、これはRG(K)の期待値E[RG(K)]に一致する。求める「ネットワーク信頼性の分散」は、RG(K)の分散Var[RG(K)]の値であり、グラフGと端点集合Kと各リンクeiの平均pi及び分散σi
2とが与えられたときにこの分散Var[RG(K)]の値を求めるのが解くべき問題である。
【0018】
<従来技術>
k-NRで求めるネットワーク信頼性の値は上記の式(2)で表されるため、ΓK、すなわちKに含まれる全てのノードがGX中で接続しているようなEの状態Xを全て列挙することができれば計算できる。しかし、Eの状態はリンクの数に対して指数的に多く存在するため、素直な列挙では数十リンクのネットワークでも計算時間が膨大になってしまう。そこで、Kに含まれる全てのノードが接続するようなリンクの組合せEXを全て持つBDDを構築し、そのBDDを確率計算に用いることで、計算時間を削減することができる。特に、非特許文献1や2では、Kに含まれる全てのノードが接続するようなEの状態を全て列挙することなく、上記のようなBDDを直接構築できる手法となっているため、素直な列挙と比べて大幅な計算時間の削減を実現できる。なお、非特許文献1に記載されている手法がもととなるアイデアを提案したものであり、非特許文献2に記載されている手法は非特許文献1に記載されている手法の一部を改良しより高速にしたものである。
【0019】
一方で、非特許文献1や2に記載されている手法を含む既存研究はいずれも各リンクの可用性が正確に与えられるという仮定の下で行われたものであり、可用性が分散という不確かさを持って与えられた下でネットワーク信頼性の不確かさを議論した研究は存在しない。なお、ネットワーク信頼性の文脈で「分散」について触れているものとしては、式(2)のネットワーク信頼性の値をモンテカルロ法により近似的に計算する場合の誤差を考察した研究が存在するが、この研究はあくまでも近似計算手法に起因する不確かさを議論したものであり、各リンクの可用性の不確かさを考慮したものではない。
【0020】
<提案手法>
上述した通り、ネットワーク信頼性の不確かさについて触れた既存研究は存在せず、従ってネットワーク信頼性の分散を計算する手法も存在しない。一方で、上記の式(2)を用いて、分散Var[RG(K)]を以下のように分解することは可能である。
【0021】
【数3】
ここで、共分散Cov[P(X),P(Y)]はリンクの数に比例する時間で計算できるため、Γ
Kに含まれる状態を全て列挙できれば上記の式によりネットワーク信頼性の分散の値を計算することができる。しかし、一般に、Γ
Kに含まれる状態の個数はリンクの本数mに対して指数的に増加するため、数十リンク程度のネットワークでもこの方法で分散の値を計算するのは計算時間的に困難である。このように、ネットワーク信頼性の分散の値を現実的な時間で計算する手法は存在せず、100リンク以上のネットワークでもネットワーク信頼性の分散の値を計算できるような手法が必要である。
【0022】
そこで、本実施形態では、ネットワーク信頼性の分散の値を高速に計算することができる手法を提案し、この提案手法を実行する分散計算装置10について説明する。
【0023】
本提案手法では、非特許文献1に記載されている手法をベースとして、BDDを用いてネットワーク信頼性の分散値を高速に計算する。非特許文献1や2で用いられているBDDは、頂点と向きのある辺の集まりでできたループの無いグラフ(有向非巡回グラフと呼ぶ)で組合せ集合を表現するデータ構造である。なお、元のネットワークの「ノード」、「リンク」と区別するため、有向非巡回グラフのノード、リンクはそれぞれ「頂点」、「辺」と呼ぶことにする。
【0024】
非特許文献1や2に記載されている手法では、BDDを構築した後、BDDの各頂点を一状態とする動的計画法によりネットワーク信頼性の値を計算している。一方で、本実施形態に係る分散計算装置10では、非特許文献1と同様にBDDを構築した後、BDDの頂点のペアを一状態とする新たな動的計画法によりネットワーク信頼性の分散の値を計算する。これにより、BDDのサイズの多項式に比例する時間でネットワーク信頼性の分散の値を計算することができる。一般に、ネットワーク信頼性を計算するためのBDDのサイズは、ΓKに含まれる状態の個数と比べて非常に小さくなることが多いため、200リンク程度のネットワークでも分散の値を計算できるようになる。
【0025】
<分散計算装置10のハードウェア構成例>
本実施形態に係る分散計算装置10のハードウェア構成例を
図1に示す。
図1に示すように、本実施形態に係る分散計算装置10は一般的なコンピュータ又はコンピュータシステムのハードウェア構成で実現され、入力装置101と、表示装置102と、外部I/F103と、通信I/F104と、プロセッサ105と、メモリ装置106とを有する。これらの各ハードウェアは、それぞれがバス107により通信可能に接続される。
【0026】
入力装置101は、例えば、キーボードやマウス、タッチパネル、各種物理ボタン等である。表示装置102は、例えば、ディスプレイや表示パネル等である。なお、分散計算装置10は、例えば、入力装置101及び表示装置102のうちの少なくとも一方を有していなくてもよい。
【0027】
外部I/F103は、記録媒体103a等の外部装置とのインタフェースである。分散計算装置10は、外部I/F103を介して、記録媒体103aの読み取りや書き込み等を行うことができる。なお、記録媒体103aとしては、例えば、CD(Compact Disc)、DVD(Digital Versatile Disk)、SDメモリカード(Secure Digital memory card)、USB(Universal Serial Bus)メモリカード等が挙げられる。
【0028】
通信I/F104は、分散計算装置10を通信ネットワークに接続するためのインタフェースである。プロセッサ105は、例えば、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)等の各種演算装置である。メモリ装置106は、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)、フラッシュメモリ、RAM(Random Access Memory)、ROM(Read Only Memory)等の各種記憶装置である。
【0029】
本実施形態に係る分散計算装置10は、
図1に示すハードウェア構成を有することにより、後述する各種処理を実現することができる。なお、
図1に示すハードウェア構成は一例であって、分散計算装置10は、例えば、複数のプロセッサ105を有していてもよいし、複数のメモリ装置106を有していてもよいし、図示したハードウェア以外の様々なハードウェアを有していてもよい。
【0030】
<分散計算装置10の機能構成例>
本実施形態に係る分散計算装置10の機能構成例を
図2に示す。
図2に示すように、本実施形態に係る分散計算装置10は、入力部201と、構築部202と、計算部203と、出力部204とを有する。これら各部は、例えば、分散計算装置10にインストールされた1以上のプログラムが、プロセッサ105に実行させる処理により実現される。ここで、分散計算装置10には、連結な無向グラフG=(V,E)と、端点集合K⊆Vと、各リンクe
i∈Eの可用性の平均p
i及び分散σ
i
2とが与えられるものとする。なお、n=|V|をノード数、m=|E|をリンク数とする。
【0031】
入力部201は、与えられた連結な無向グラフGと端点集合Kと各リンクei∈Eの可用性の平均pi及び分散σi
2とを入力する。
【0032】
構築部202は、入力部201によって入力された連結な無向グラフGと端点集合Kとに基づいて、端点集合Kに含まれる全てのノードが接続する状態を全て持つBDDを生成(構築)する。
【0033】
計算部203は、構築部202によって生成されたBDDと各リンクei∈Eの可用性の平均pi及び分散σi
2の値とに基づいて、動的計画法によりネットワーク信頼性の分散の値を計算する。
【0034】
出力部204は、計算部203によって計算されたネットワーク信頼性の分散の値を予め決められた任意の出力先に出力する。なお、当該出力先としては、例えば、ディスプレイ等の表示装置102、メモリ装置106、通信ネットワークを介して接続される他の装置又は機器等が挙げられる。
【0035】
<分散計算装置10が実行する処理の流れ>
本実施形態に係る分散計算装置10が実行する処理の流れについて、
図3を参照しながら説明する。
【0036】
まず、入力部201は、与えられた連結な無向グラフGと端点集合Kと各リンクei∈Eの可用性の平均pi及び分散σi
2とを入力する(ステップS101)。
【0037】
次に、構築部202は、上記のステップS101で入力された連結な無向グラフGと端点集合Kとに基づいて、端点集合Kに含まれる全てのノードが接続する状態を全て持つBDDを生成(構築)する(ステップS102)。なお、本ステップの詳細については後述する。
【0038】
次に、計算部203は、上記のステップS102で生成されたBDDと上記のステップS101で入力された各リンクei∈Eの可用性の平均pi及び分散σi
2とに基づいて、動的計画法によりネットワーク信頼性の分散の値を計算する(ステップS103)。なお、本ステップの詳細については後述する。
【0039】
そして、出力部204は、上記のステップS103で計算されたネットワーク信頼性の分散の値を予め決められた任意の出力先に出力する(ステップS104)。
【0040】
<ステップS102の詳細>
本ステップでBDDを構築する際に構築部202が実行する処理は非特許文献1や2で提案されている手法と同一であるため、以下では、主に、本ステップで構築されるBDDの構造について説明する。
【0041】
構築部202は、グラフGと端点集合Kとに基づいて、端点集合Kに含まれる全てのノードがGX中で接続しているようなEの状態Xを全て集めた集合ΓKを表現する二分決定グラフ(BDD)を構築する。BDDは、本来、論理関数を表現するデータ構造であるため、まずはΓKに対応する論理関数fKを考える。
【0042】
二値変数をリンクの本数と同じ個数用意し、x1,・・・,xmとする。そして、Eの状態Xに対して、リンクeiが動作していればxi=true、リンクeiが故障していればxi=falseとして、x1,・・・,xmへの値の割り当てを対応させる。以上の対応の下で、x1,・・・,xmに対応するEの状態XがΓKに含まれていればtrue、そうでなければfalseの値を取る論理関数をfK(x1,・・・,xm)とする。このfKを以下では信頼性論理関数と呼ぶことにする。
【0043】
以降、BDDの構造について説明する。BDDは、論理関数を根付きの有向非巡回グラフB=(N,A)として表現するデータ構造である。ここで、Nは頂点集合、Aは辺集合とする。根とは、自身に向かう辺が一つも無いような頂点のことであり、以降、r∈Nと表す。
【0044】
頂点集合Nに含まれる頂点は、出る辺が無い特別な頂点である終端頂点と、それ以外の内部頂点とに大別される。以下、終端頂点を
【0045】
【数4】
と表す。以下、これらの終端頂点をそれぞれ「第1の終端頂点」、「第2の終端頂点」ともいう。
【0046】
各内部頂点
【0047】
【数5】
は、LO辺及びHI辺と呼ばれる2つの出る辺と、ラベルと呼ばれる整数値とを持つ。内部頂点vのLO辺及びHI辺が指す先の頂点をそれぞれLO子頂点及びHI子頂点と呼び、それぞれlo(v)及びhi(v)と表す。また、vのラベルはlb(v)∈{1,・・・,c}と表す。ここで、cはBDDが表現する論理関数が入力として取る二値変数の個数である。BDDのラベルは、根から辺を辿って行くに従い値が大きくなっていく必要がある。すなわち、各内部頂点vに対してlb(v)<lb(lo(v))かつlb(v)<lb(hi(v))である必要がある。なお、終端頂点については、それぞれ
【0048】
【数6】
と仮定する。最後に、BDDのサイズは、頂点の個数|N|として定義される。
【0049】
BDDの構造が与えられると、BDDの各頂点vに対して、その頂点に対応する論理関数fvが再帰的に定義される。すなわち、終端頂点
【0050】
【数7】
に対しては、それぞれf
v=true、f
v=falseとする。これらはそれぞれ恒真関数(入力値に関わらずtrueとなる論理関数)、恒偽関数(入力値に関わらずfalseとなる論理関数)である。それ以外の内部頂点vに対しては、
【0051】
【0052】
一例として、
図4に示すグラフG及び端点集合Kが与えられたときのΓ
Kに対応する信頼性論理関数f
Kを表現するBDDを
図5に示す。ここで、
図4に示す例では、丸がグラフGのノード、黒丸が端点(つまり、グラフGのノードのうち、端点集合Kに含まれるノード)を表している。また、
図5に示す例では、a
1~a
8が内部頂点、a
9及びa
10が終端頂点、実線がHI辺、破線がLO辺を表しており、丸の中の数字が内部頂点のラベルを表している。
【0053】
信頼性論理関数fKを表現するBDDは、その根rから第1の終端頂点
【0054】
【数9】
までの経路が、Γ
Kの中の一部の状態に対応している。すなわち、BDDの根rから第1の終端頂点までの各経路のそれぞれは、Γ
Kに含まれる1つ以上の状態に対応している。
【0055】
BDDの根rから第1の終端頂点までの経路が与えられたとき、ラベルがiである頂点からLO辺を辿ることはラベルiに対応するリンクeiが故障していることを意味し、HI辺を辿ることはラベルiに対応するリンクeiが動作していることを意味する。また、ラベルがiである頂点を通らないことは、ラベルiに対応するリンクeiの状態は考慮しないことを意味する。
【0056】
例えば、
図5において、ラベル1の頂点a
1→頂点a
1のHI辺→ラベル2の頂点a
2→頂点a
2のHI辺→ラベル4の頂点a
6→頂点a
6のLO辺→ラベル5の頂点a
8→頂点a
8のHI辺→第1の終端頂点という経路は、(e
1,e
2,e
3,e
4,e
5)=(動作,動作,動作,故障,動作)及び(動作,動作,故障,故障,動作)という2つの状態と対応する。
【0057】
信頼性論理関数fKを表現するBDDを効率的に構築するのが、非特許文献1や2に記載されている手法である。従って、信頼性論理関数fKを表現するBDDを構築する具体的な方法については、非特許文献1や2等を参照されたい。
【0058】
<ステップS103の詳細>
本ステップでは、計算部203は、BDDの頂点のペアを一状態とする新たな動的計画法によりネットワーク信頼性の分散の値を計算する。以下では、まずネットワーク信頼性の分散の値を計算するための考え方について説明した後、その計算を行うための具体的な手順を表すアルゴリズムについて説明する。
【0059】
まず、信頼性論理関数fKを表現するBDDの各頂点vに対して、e1,・・・,elb(v)-1の状態を固定した下で、端点(つまり、端点集合Kに含まれるノード)が全て接続する条件付き確率をRvとする。すると、各リンクの可用性Piを用いて、以下の式(3)及び(4)に示す等式が成立する。
【0060】
【数10】
このとき、根rに対応するR
rがネットワーク信頼性R
G(K)である。
【0061】
ここで、P1,・・・,Pmが確率変数ならば、RvはP1,・・・,Pmに従属する確率変数となる。従って、BDDの頂点のペアu,v∈Nに対して、RuとRvのP1,・・・,Pmに関する共分散Cov[Ru,Rv]を考えることができる。このとき、ネットワーク信頼性の分散Var[RG(K)]は、Cov[Rr,Rr]と表すことができる。
【0062】
共分散に関する等式を用いることにより、共分散Cov[Ru,Rv]はその子頂点に関する共分散に分解することができる。例えば、uとvのラベルがlb(u)=lb(v)=iと等しい場合、qi=1-piとして以下の式(5)に示す等式が成立する。
【0063】
【数11】
また、uのラベルがvのラベルより小さい場合、すなわちi=lb(u)<lb(v)の場合、以下の式(6)に示す等式が成立する。
【0064】
【数12】
lb(u)>lb(v)の場合も同様の等式(つまり、上記の式(6)と対称な式)が成立する。更に、uとvの少なくともいずれか一方が終端頂点である場合、Cov[R
u,R
v]=0となる。
【0065】
以上の等式を再帰的に用いることで、Var[RG(K)]=Cov[Rr,Rr]を再帰的に分割し計算することが可能になる。
【0066】
・ネットワーク信頼性の分散の値を計算する手順
以下では、BDDによりネットワーク信頼性の分散の値を計算する手順を表すアルゴリズムについて、
図6を参照しながら説明する。ここで、本アルゴリズムの入力はBDD B=(N,A)とリンクe
iの可用性の平均p
i及び分散σ
i
2であり、出力はBが表すネットワーク信頼性の分散値である。なお、本アルゴリズムの各行が表す手順は計算部203によって実行される。
【0067】
まず、1行目~3行目では、各v∈Nに対して、e[v]=E[Rv]を計算する。具体的には、まず、1行目で第1の終端頂点に関しては1.0、第2の終端頂点に関しては0.0をそれぞれ代入する。そして、2行目~3行目で、ラベルが大きい頂点を先に走査する順番(bottom-up order)でe[v]←qi・e[lo(v)]+pi・e[hi(v)]によりe[v]の値を順に計算する。この過程で、ネットワーク信頼性の期待値E[RG(K)]=e[r]も求まる。なお、qi=1-piである。
【0068】
次に、4行目で再帰的手続き(関数)であるCov(r,r)を呼び出す。手続きCov(u,v)は共分散Cov[Ru,Rv]を計算する再帰的手続きであり、その中身は5行目~17行目に記述されている。まず、6行目~7行目で、uとvの少なくともいずれか一方が終端頂点であれば0を答えとして返す。次に、8行目~9行目で、すでに共分散Cov[Ru,Rv]を計算していれば、計算済みの値を答えとして返す。ここで、計算済みのCov[Ru,Rv]を保存するためのキャッシュとして連想配列cを用意し、c[(u,v)]にCov[Ru,Rv]の値を格納する。
【0069】
以降は式(5)や式(6)を用いて、手続きCov(u,v)を再帰的に呼び出すことによりCov[Ru,Rv]を計算する。すなわち、10行目でuのラベルとvのラベルの小さい方をiに格納した後、uのラベルがvのラベルより小さい場合は式(6)を用いてCov[Ru,Rv]を計算し(11行目~12行目)、vのラベルがuのラベルより小さい場合は式(6)と対称な式を用いてCov[Ru,Rv]を計算し(13行目~14行目)、ラベルuとラベルvが等しい場合は式(5)を用いてCov[Ru,Rv]を計算する。そして、最後に、計算したCov[Ru,Rv]の値を返す(17行目)。これにより、ネットワーク信頼性の分散値が得られる。
【0070】
<まとめ>
以上により、本実施形態に係る分散計算装置10は、これまでは素朴な方法以外では計算できなかったネットワーク信頼性の分散値を高速に計算することが可能となる。特に、100~200程度のリンク規模の実ネットワークに対してもネットワーク信頼性の分散値を計算できることが確かめられた。これにより、各リンクの可用性の不確かさがネットワーク信頼性の不確かさに与える影響を定量的に評価することができる。したがって、例えば、稼働実績が無く正確な可用性がわからないリンクがネットワークに追加された場合に、そのリンクがネットワーク信頼性の不確かさにどう影響するのかを定量的に分析することができる。
【0071】
なお、本実施形態に係る分散計算装置10は、求めたネットワーク信頼性の分散値を用いて種々のネットワーク制御を行ってもよい。例えば、同程度のネットワーク信頼性であれば分散値が低いネットワークとなるように制御したり、仮にネットワーク信頼性が低くても或る基準範囲内であれば分散値が低いネットワークとなるように制御したりする、といった制御を行ってもよい。
【0072】
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、請求の範囲の記載から逸脱することなく、種々の変形や変更、既知の技術との組み合わせ等が可能である。
【符号の説明】
【0073】
10 分散計算装置
101 入力装置
102 表示装置
103 外部I/F
103a 記録媒体
104 通信I/F
105 プロセッサ
106 メモリ装置
107 バス
201 入力部
202 構築部
203 計算部
204 出力部