【実施例1】
【0018】
実施例1では流通網を扱う。
図1は、実施例1の流通網の一例を示す図である。
【0019】
図1に示す流通網100は、最も単純な網であり、顧客101、複数の拠点102、103、104、105から構成される。
図1では、データ及び物の流れの方向として、拠点105から顧客101の方向を上流と設定し、顧客101から拠点105の方向を下流と設定する。なお、拠点102は小売り業者の拠点を表し、拠点103、104は卸売業者の拠点を表し、拠点105は工場拠点を表す。
【0020】
図1に示す流通網100では、顧客101は、拠点102に対して商品の注文を行う。拠点102は、商品の在庫がある場合、当該商品を顧客101に対して出荷し、商品の在庫状況及び発注状況に応じて、下流の拠点103に商品の発注を行う。商品の発注は、拠点102、103、104の在庫状況に応じて、最下流の拠点105にまで伝播する。また、ある拠点が出荷した商品は、他の拠点を経由して、又は、直接、顧客101に配送される。
【0021】
図1に示す流通網では、商品の受注及び発注を行う各拠点102、103、104は、商品の欠品を防ぐために、顧客101又は上流の拠点からの受注を予測し、下流の拠点への発注数を決定する必要がある。また、拠点105も、上流の拠点群の状況を考慮して商品の生産数を決定し、上流の拠点104に商品を出荷する必要がある。
【0022】
例えば、欠品を防ぐために発注数が過多になった場合、拠点には商品の在庫数が過多になるため運営コストが増大する。
【0023】
図2は、実施例1の流通網のモデルを示す図である。
【0024】
流通網100は、ノード及び各ノードを接続するブランチとして表現できる。顧客101、拠点102、拠点103、拠点104、及び拠点105は、それぞれ、顧客ノード201、小売拠点ノード202、第2卸売拠点ノード203、第1卸売拠点ノード204、及び工場拠点ノード205に対応する。以下の説明では、各拠点ノードを区別しない場合、単に拠点ノードと記載する。
【0025】
実施例1では、商品の発注及び受注が、拠点ノード202、203、204、205のアクションである。
【0026】
通常、拠点間における商品の発注及び商品の配送には時間を要する。本実施例では、商品の発注を発注遅延時間と呼び、また、商品の発送に要する時間を配送遅延時間と呼ぶ。工場拠点ノード205の商品の生産に要する時間を生産遅延時間と呼ぶ。発注遅延時間、配送遅延時間、及び生産遅延時間を区別しない場合、遅延時間と呼ぶ。
【0027】
図2では、拠点間の遅延時間を遅延ノード211、212、213として表している。本実施例では、発注遅延時間及び配送遅延時間がともに「2」であるものとする。また、生産遅延時間は「3」であるものとする。
【0028】
図3は、実施例1の拠点ノード及び遅延ノードを実現する構成の一例を示す図である。ここでは、拠点ノード203及び遅延ノード211、212を一例として示す。
【0029】
遅延ノード211、212の発注遅延時間は、バッファ321を用いて実現され、遅延ノード211、212の配送遅延時間は、バッファ322を用いて実現される。遅延時間の長さは、バッファ321、322の数、容量を用いて調整することができる。
【0030】
拠点ノード203は、計算機400(
図4を参照)を用いて実現される。拠点ノード203は、受注モジュール301、発注モジュール302、入荷モジュール303、出荷モジュール304、在庫確認モジュール305、及び分析モジュール306を含む。
【0031】
受注モジュール301は、外部からの商品の注文又は発注を受け付け、要求された商品の数等を含む問合せを在庫確認モジュール305に出力する。発注モジュール302は、分析モジュール306の指示に従って、他の拠点に商品の発注を行う。
【0032】
入荷モジュール303は、他の拠点が発送した商品を受け取り、受け取った商品の数等を在庫確認モジュール305に通知する。出荷モジュール304は、分析モジュール306からの指示に従って、商品の出荷を行う。
【0033】
在庫確認モジュール305は、商品の在庫を管理する。具体的には、以下の(1)及び(2)の処理が実行される。
【0034】
(1)在庫確認モジュール305は、受注モジュール301からの問合せを受け付けた場合、拠点103の商品の在庫数を確認する。商品が不足している場合には、在庫確認モジュール305は、分析モジュール306に分析処理の実行を指示する。商品が足りている場合、在庫確認モジュール305は、分析モジュール306を介して、出荷モジュール304に商品の出荷指示を出力する。
【0035】
(2)在庫確認モジュール305は、入荷モジュール303から通知を受け付けた場合、分析モジュール306を介して、出荷モジュール304に商品の出荷指示を出力する。
【0036】
分析モジュール306は、在庫確認モジュール305から分析処理の実行指示を受け付けた場合、入荷、受注、出荷等のトレンドを分析し、現在の網の稼働状態を判定するための指標を算出する。また、分析モジュール306は、当該指標に基づいて商品の発注数等を制御することによって、アクションの最適化を行う。
【0037】
なお、分析モジュール306は、ログDB311に格納される情報を用いて分析処理を実行し、また、指標及び制御ポリシ情報312を用いて網に含まれるノードのアクションを制御する。
【0038】
ログDB311には、網の運用に影響を与える情報を格納する。例えば、拠点の構成、入荷数、出荷数、発注数、発注遅延時間、配送遅延時間、及び在庫数等の情報が格納される。なお、入荷数、出荷数、発注数、発注遅延時間、配送遅延時間、及び在庫数は、商品の種類ごとに管理される。また、拠点の構成、入荷数、出荷数、発注数、発注遅延時間、配送遅延時間、及び在庫数は、日時と対応付けて管理される。従って、ログDB311に格納されるデータは、時系列データとなる。
【0039】
制御ポリシ情報312は、運営戦略(制御目的)、構成要素(制御対象)、及び運営戦術(制御方法)が対応付けられた情報である。運営戦略は、在庫及び欠品の低減、利益増大、及びリスクヘッジ等である。構成要素は、入荷数、出荷数、発注数、発注遅延時間、配送遅延時間、及び在庫数等である。また、運営戦術は、アクションの制御方法であり、例えば、発注に関する制御の場合、いつ、どこに、なにを、いくつ発注するかを制御する方法である。
【0040】
図4は、実施例1の拠点ノード203を実現する計算機の構成例を示す図である。
【0041】
計算機400は、CPU(Central Processing Unit)401、主記憶装置402、副記憶装置403、ネットワークインタフェース404、及び入出力インタフェース405を有する。各構成は、内部バスライン410を介して互いに接続される。
【0042】
CPU401は、プログラムに従って演算処理を実行する演算装置である。本実施例のCPU401は、主記憶装置402に格納されるプログラムを実行する。CPU401がプログラムに従って処理を実行することによって、特定の機能を実現するモジュールとして動作する。以下の説明では、モジュールを主語に処理を説明する場合、CPU401が当該モジュールを実現するプログラムを実行していることを示す。
【0043】
主記憶装置402は、メモリ等の記憶装置である。本実施例の主記憶装置402は、CPU401が実行するプログラムとして、受注モジュール301、発注モジュール302、入荷モジュール303、出荷モジュール304、在庫確認モジュール305、及び分析モジュール306を実現するプログラムを格納する。また、主記憶装置402は、遅延時間を再現するバッファ321、322を含み、プログラムが一時的に使用するワークエリアを含む。
【0044】
副記憶装置403は、HDD(Hard Disk Drive)及びSSD(Solid State Drive)等の記憶装置である。本実施例の副記憶装置403は、ログDB311及び制御ポリシ情報312を格納する。
【0045】
なお、主記憶装置402に格納されるプログラムは、副記憶装置403に格納されてもよい。この場合、CPU401が、副記憶装置403からプログラムを読み出し、主記憶装置402にロードし、さらに、主記憶装置402にロードされたプログラムを実行する。
【0046】
ネットワークインタフェース404は、LAN(Local Area Network)及びWAN(Wide Area Network)等のネットワークを介して他の計算機と接続するためのインタフェースである。なお、ネットワークの接続方式は有線又は無線のいずれでもよい。
【0047】
入出力インタフェース405は、外部装置と接続するためのインタフェースである。本実施例では、入出力インタフェース405には、入力装置406及び出力装置407が接続される。入力装置406は、キーボード、マウス、及びタッチパネル等の装置である。出力装置407は、タッチパネル及びディスプレイ等の装置である。
【0048】
なお、全ての拠点ノードのログを管理するログ管理ノードが、ログDB311及び制御ポリシ情報312を保持するような構成でもよい。この場合、拠点ノードは、ログ管理ノードに制御ログを送信し、また、ログ管理ノードから制御ログを取得する。なお、制御ログには、商品の種類、入荷数、出荷数、発注数、及び在庫数に関する情報が含まれる。
【0049】
なお、一つの拠点ノードを一つの計算機400を用いて実現しているがこれに限定されない。例えば、仮想計算機を用いて拠点ノードを実現してもよい。
【0050】
図5は、実施例1の拠点ノード203が実行する処理の一例を説明するフローチャートである。なお、拠点ノード202及び拠点ノード204も同様の処理を実行する。
【0051】
本実施例では、流通網内における商品の流れを再現するために、各拠点ノードが実行するアクションが同期するように制御されている。具体的には、各拠点ノードは、ターン単位にアクションを実行し、また、各拠点ノードに処理の実行を指示する拠点管理ノードを設定している。拠点管理ノードは、各拠点ノードにアクションの開始を通知し、各拠点ノードのアクションの実行状態を監視する。拠点管理ノードは、全ての拠点ノードのターン単位の処理が終了したことを検知した場合、各拠点ノードに新たなターン単位のアクションの実行を指示する。
【0052】
拠点ノード203は、入荷及び受注の少なくともいずれかを受け付ける(ステップS501)。
【0053】
具体的には、受注モジュール301が受注を受け付け、又は、入荷モジュール303が入荷を受け付ける。
【0054】
次に、拠点ノード203は、拠点内の商品の在庫を確認する(ステップS502)。
【0055】
具体的には、在庫確認モジュール305が、入荷又は受注の対象となる商品の在庫数を確認する。在庫確認モジュール305は、入荷内容又は受注内容と、商品の在庫数とを分析モジュール306に出力する。
【0056】
次に、拠点ノード203は、分析処理を実行する(ステップS503)。
【0057】
具体的には、分析モジュール306が、ログDB311及び制御ポリシ情報312を用いて分析処理を実行する。分析処理の詳細は
図6を用いて説明する。
【0058】
次に、拠点ノード203は、分析処理の結果に基づいて、商品の出荷及び商品の発注を制御する(ステップS504)。
【0059】
具体的には、発注モジュール302が商品の発注を行い、又は出荷モジュール304が商品の出荷を行う。
【0060】
次に、拠点ノード203は、ログDB311を更新する(ステップS505)。
【0061】
具体的には、各モジュールが、入荷、受注、出荷、発注、及び在庫等、アクションに関連するログデータをログ管理ノードに格納する。なお、本実施例では、拠点管理ノードを設けているため、分析モジュール306は、ターン処理の完了通知を拠点管理ノードに送信する。拠点管理ノードは、全ての拠点ノードからターン処理の完了通知を受信した場合、各拠点ノードに新たなターン単位の処理の実行を指示する。
【0062】
図6は、実施例1の分析モジュール306が実行する分析処理の一例を説明するフローチャートである。
【0063】
本実施例では、予め、運用戦略ごとに分析する時系列データの種別が設定されている。例えば、在庫及び欠品の低減が運用戦略又はリスクヘッジが運用戦略である場合、入荷、受注、出荷等のトレンドが分析対象の時系列データとして設定される。
【0064】
まず、分析モジュール306は、健全性を評価する対象網の固有値を設定する(ステップS601)。
【0065】
ここで、対象網の固有値は、対象網に含まれる各ノードのアクションの発生要因となる起点アクションの影響が及ぶ範囲を示す値である。本実施例では、顧客101からの商品の注文が、拠点ノード202、203、204の商品の発注及び拠点ノード205の商品の生産の発生要因となる起点アクションに対応する。したがって、流通網100又は流通網100の一部である局所網の固有値は、顧客101からの商品の注文の影響が及ぶ範囲を示す値である。
【0066】
本実施例では、対象網の起点ノードにおける商品の発注から、商品の発注の応答である商品の受注までに要する時間を対象網の固有値として用いる。より具体的には、起点ノードから終点ノードまでの間の遅延時間の合計値を固有値として用いる。なお、対象網の固有値は、網毎に異なる。従って、網に応じて適切な固有値を設定する。対象網の固有値の設定方法については後述する。
【0067】
次に、分析モジュール306は、対象網の固有値に基づいて、スペクトル分析(時間周波数解析)に使用する分析窓幅を選択する(ステップS602)。
【0068】
後述するように分析窓幅は、波の分析に関する物理的な制約を受けて離散値しか取ることができない。分析窓幅の決定方法については、
図8A及び
図8Bを用いて説明する。
【0069】
次に、分析モジュール306は、健全性指標の算出処理を実行する(ステップS603)。
【0070】
後述するように、分析モジュール306は、選択された分析窓幅の分析窓を用いたスペクトル分析を実行する。さらに、分析モジュール306は、スペクトル分析によって算出された周波数スペクトルを用いてべき乗回帰係数を算出する。本実施例では、べき乗回帰係数が健全性指標となる。
【0071】
流通網が環境変動に対する適応力を最も高めた状態、すなわち、自己組織化臨界の状態にある場合、健全性指標の値は「−1」となる。健全性指標の値が「−1」の状態は1/fゆらぎとも呼ばれる。自己組織化臨界の状態にある場合、流通網のスペクトル特性はフラクタル性を持つ。すなわち、流通網の全体及び部分のいずれでも同一のスペクトル特性が観測される。
【0072】
そこで、本実施例では、健全性指標を「−1」とすることを、流通網全体の最適化の目標に設定する。以下の説明では、健全性指標が「−1」に近いことを健全性が高いとも記載する。流通網が、自己組織化臨界の状態になる前の状態である準自己組織化臨界の状態では、健全性指標は−1より大きくかつ0以下の値となる。
【0073】
一般的に、流通網の個々の拠点の健全性を高めても流通網全体の健全性を高めることができるわけではない。なぜならば、拠点間では常に取引が行われており、各拠点間には強い相互作用が働くためである。
【0074】
本実施例では、スペクトル特性のフラクタル性を持つ状態を示す健全性指標を目標として各拠点の稼働状態(アクション)を最適化する。これによって、流通網全体の健全性を高めることができる。健全性指標が「−1」の状態は、究極的な健全性を表しているものといえる。
【0075】
なお、健全性指標の算出処理の詳細については、
図7を用いて説明する。
【0076】
次に、分析モジュール306は、健全性指標及び制御ポリシ情報312を用いて拠点ノードの制御内容を決定する(ステップS604)。例えば、以下のような処理が実行される。
【0077】
分析モジュール306は、分析した時系列データについて、健全性指標に対する影響の大きさを算出する。運営戦略が在庫及び欠品の低減である場合、入荷数、受注数、出荷数、発注数、それぞれのトレンドが影響因子となる。
【0078】
分析モジュール306は、影響の大きさに基づいて、在庫及び欠品の低減に対する影響が大きい影響因子を選択する。ここでは、現在のターンから15ターン前の受注数x、現在の入荷数y、及び現在の発注数zが影響の大きい影響因子として選択されたものとする。なお、xは式(1)を満たし、yは式(2)を満たし、zは式(3)を満たす。
【0079】
【数1】
【0080】
【数2】
【0081】
【数3】
【0082】
ここで、X、Y
1、Y
2、Z
1、及びZ
2は任意の実数である。
【0083】
また、健全性指標βと、影響因子x、y、zとの間には、式(4)の関係が成り立っているものとする。
【0084】
【数4】
【0085】
分析モジュール306は、健全性指標βの絶対値が1に近づくように、例えば、式(4)の関係を満たす影響因子x、y、zの値の組合せが増えるように、制御可能な影響因子zを制御する。
【0086】
なお、ある指標に対して大きな影響を与える因子の特定方法、及び指標と因子との間の関係式の算出方法は公知であるため詳細な説明は省略する。
【0087】
なお、分析モジュール306は、健全性指標と閾値との比較結果に基づいて、流通網の状態が健全であると判定した場合、前回の制御内容をそのまま使用してもよい。後述するように、分析モジュール306は、健全性指標が「−1」に近い場合、流通網の稼働状態が健全であると判定する。
【0088】
なお、分析モジュール306は、健全性指標に基づいて流通網の稼働状態が健全であるか否かを判定するだけでもよい。この場合、他の装置又はユーザが制御内容を決定すればよい。
【0089】
図7は、実施例1の分析モジュール306が実行する健全性指標の算出処理の一例を説明するフローチャートである。
【0090】
分析モジュール306は、ログDB311から、任意のターン数の時系列データを取得する(ステップS701)。
【0091】
次に、分析モジュール306は、対象のターンを表す変数pに初期値「1」を設定する(ステップS702)。
【0092】
次に、分析モジュール306は、ターンpの時系列データを読み出し、時間−振幅空間における時系列データの先頭からp+W−1の位置に分析窓を設定する(ステップS703)。
【0093】
次に、分析モジュール306は、分析窓に含まれる時系列データに対してスペクトル分析(時間周波数解析)を実行する(ステップS704)。スペクトル分析は公知のものであるため説明を省略する。
【0094】
次に、分析モジュール306は、算出結果である周波数スペクトルを変数pの値と対応付けて主記憶装置402に格納する(ステップS705)。
【0095】
次に、分析モジュール306は、パワースペクトルと周波数との間の関係性を解析するべき乗モデルの回帰分析を実行する(ステップS706)。本実施例では、分析モジュール306は、べき乗モデルの両辺の対数をとって直線の関係を示す式に変換した回帰分析を実行する。
【0096】
具体的には、分析モジュール306は、横軸が周波数、かつ、縦軸がパワースペクトルである両対数グラフ(周波数−パワースペクトル空間)上の回帰直線を算出する。分析モジュール306は、回帰直線の傾き、すなわち、回帰係数を健全性指標として算出する。なお、べき乗モデルでは、当該回帰係数は、周波数を底とする指数関数の指数に対応する。
【0097】
次に、分析モジュール306は、変数pに「1」を加算する(ステップS707)。
【0098】
次に、分析モジュール306は、変数pの値が(P−W+1)より大きいか否かを判定する(ステップS708)。
【0099】
変数pの値が(P−W+1)以下であると判定された場合、分析モジュール306は、ステップS703に戻り、同様の処理を実行する。変数pの値が(P−W+1)より大きいと判定された場合、分析モジュール306は、処理を終了する。
【0100】
図8A及び
図8Bは、実施例1の分析窓幅の設定方法を説明する図である。
【0101】
図8A及び
図8Bに示すグラフ800は、横軸が時間の対数であり、縦軸が周波数の対数である両対数グラフである。
【0102】
周波数分析能を示す周波数レンジ及び分析窓幅(時間レンジ)との間には、不確定性原理が成り立ち、また、分析窓幅は2のべき乗の値であることから、周波数レンジは離散的な値となる。また、分析窓幅はサンプリング周期とサンプリング数の積で表される。本実施例では、サンプリング周期が2ターンの局在波を観測できるように設定した。
【0103】
従って、分析窓幅を「128」、「64」、「32」、「16」、「8」とした場合、観測される周波数及び時間の組合せ(観測可能ポイント)は、それぞれ64個、32個、16個、8個、4個となる。なお、観測可能ポイントは、スペクトルの観測が可能なポイントを表す。
図8A及び
図8Bでは、黒丸が観測可能ポイントを表す。なお、時間は最小の刻み幅が1ターンとなるように変換を行っている。
【0104】
本実施例では、固有値に基づいて分析窓幅が決定される。顧客101による商品の注文は、遅延を伴いながら拠点102、103、104に伝搬し、最終的に拠点105における商品の生産量に影響を与える。また、拠点105で生産された商品は、遅延を伴いながら上流の拠点104、103、102に介して顧客101に配送される。本実施例では、対象網の起点ノードと終点ノードとの間において、商品の発注から商品の受注までに要する最大遅延時間を対象網の固有値として扱う。ここでは、固有値をλと表記する。
【0105】
固有値に着目したのは、以下で述べるように波形の局在性によるものである。
【0106】
実用技術としての汎用性を損なわないためには、各回(各ターン)の顧客101の注文を独立した事象と捉えなければならず、顧客101からの商品の注文が複数回発生した場合でも周期性又は連続性は存在しないと考えなければならない。そのため、一回の顧客101からの商品の注文の影響は、連続波ではなく、時間−周波数空間に局在する局在波と捉えなければならない。
【0107】
局在波を分析するためには、局在波のサイズに合致した時間と周波数の窓を用いる必要がある。窓が大きすぎる場合、局在波はオーバーオールで平均されて消失し、窓が小さすぎる場合、局在波が検出されない。さらに、窓が大きすぎる場合の懸念として、商品の注文とは関係が無い局在波がノイズとなって混入することによって分析精度が低下することが考えられる。
【0108】
図2に示す流通網100において、顧客ノード201と工場拠点ノード205との間の最大遅延時間、すなわち、固有値λは「15」となる。
【0109】
なお、流通網100の一部である局所網が対象網である場合、各局所網の固有値は以下のようになる。起点ノードが拠点ノード203かつ終点ノードが拠点ノード205である局所網の固有値λは「11」となり、起点ノードが拠点ノード204かつ終点ノードが拠点ノード205である局所網の固有値λは「7」となり、起点ノード及び終点ノードが拠点ノード205である局所網の固有値λは「3」となる。
【0110】
黒丸811、812、813、814は、分析窓幅Wが「128」である場合の観測可能ポイントの中で、時間の値が各固有値λに一致又は近い観測可能ポイント、すなわち、時間の値と固有値λとの間の差が閾値以下である観測可能ポイントを表す。黒丸821、822、823、824は、分析窓幅Wが「64」である場合の観測可能ポイントの中で、時間の値が各固有値λに一致又は近い観測可能ポイントを表す。黒丸831、832、833、834は、分析窓幅Wが「32」である場合の観測可能ポイントの中で、時間の値が各固有値λに一致又は近い観測可能ポイントを表す。黒丸841、842は、分析窓幅Wが「16」である場合の観測可能ポイントの中で、時間の値が各固有値λに一致又は近い観測可能ポイントを表す。黒丸851、852は、分析窓幅Wが「8」である場合の観測可能ポイントの中で、時間の値が各固有値λに一致又は近い観測可能ポイントを表す。なお、矩形は、選択対象の観測可能ポイントを特定する範囲を示す。ここでは、固有値λを中心に時間レンジが2である矩形を用いている。
【0111】
図8Aに示すように、分析窓幅Wが大きい場合、観測可能ポイントの数は多い。しかし、不要な観測領域も広がるため、局在波の振幅が小さい場合、オーバーオールで平均化されることによって局在波が消滅し、また、他の局在波がノイズとして混入する可能性がある。一方、分析窓幅Wが小さい場合、観測可能ポイントの数が少なくなり、固有値λに一致又は近い観測可能ポイントを特定するのが困難になる。
【0112】
前述した理由から、本実施例では、時間の値と固有値λとの差が閾値以下である観測可能ポイントが存在する分析窓幅Wの中から、最も小さい分析窓幅Wが選択される。前述の選択方法に従って選択された観測可能ポイントは
図8Bのようになる。
【0113】
従って、固有値λが「3」の場合、分析窓幅Wは「32」が設定され、固有値λが「7」の場合、分析窓幅Wは「64」が設定され、固有値λが「11」の場合、分析窓幅Wは「32」が設定され、固有値λが「15」の場合、分析窓幅Wは「128」が設定される。
【0114】
ここで、前述の算出方法に基づく分析モジュール306の処理について説明する。まず、分析モジュール306は、複数の分析窓幅を設定し、各分析窓幅Wの観測可能ポイントを特定する。分析モジュール306は、対象網の固有値に基づいて、時間の値と固有値との差が閾値より小さい観測可能ポイントが存在する分析窓幅Wを特定する。分析モジュール306は、特定された分析窓幅の中から最も小さい分析窓幅を選択する。
【0115】
ここで、
図2に示す流通網より複雑な網の固有値の設定及び分析窓幅の選択方法について説明する。
【0116】
まず、
図9A及び
図9Bを用いて複雑な網の固有値の設定方法について説明する。
図9A及び
図9Bは、実施例1の複雑な流通網のモデルを示す図である。
【0117】
図9A及び
図9Bに示す流通網900は、顧客ノードと工場拠点ノードとの間の拠点ノードの階層構造は、
図2と同様である。ただし、一つの階層には同一種類の拠点ノードが一つ以上存在し、顧客ノードから工場拠点ノードに至る経路が複数存在する。
【0118】
具体的には、流通網900は、顧客ノード901、902、903、小売拠点ノード904、905、第2卸売拠点ノード906、907、第1卸売拠点ノード908、909、工場拠点ノード910、及び遅延ノード921、922、923、924、925、926、927から構成される。ここでは、黒丸で示す第2卸売拠点ノード907の分析モジュール306が処理を実行するものとする。
【0119】
対象網が流通網900の全体である場合、固有値の候補としては、顧客ノードから工場拠点ノードまでの経路の数だけ存在する。流通網900の場合、顧客ノード901、902、903から工場拠点ノード910に至る経路のうち、第2卸売拠点ノード907を経由する経路の数は三つである。三つの経路のうち、
図9Aに示す経路の遅延時間の合計値が最も大きくなる。そこで、
図9Aに示す経路の遅延時間を流通網900の固有値に設定する。
【0120】
対象網が
図9Bに示すような局所網950である場合、局所網950の固有値は、
図9Bに示す経路の遅延時間の合計値となる。
【0121】
次に、
図10A及び
図10Bを用いて分析窓幅の設定方法について説明する。
図10A及び
図10Bは、実施例1における分析窓幅の設定例を示す図である。
【0122】
図10A及び
図10Bに示すグラフは、横軸が時間(ターン)を表し、縦軸が時系列データの振幅を表す。ここでは、時系列データ1001は、第2卸売拠点ノード907における在庫及び欠品のトレンドに関する時系列データを表す。なお、時系列データ1001は、1ターンからPターンまでの時系列データを示す。
【0123】
図9Aに示す固有値λの場合、
図8A及び
図8Bで説明したように、分析モジュール306は、時間の値が固有値λに近い観測可能ポイントが存在する分析窓幅のうち、最小の分析窓幅を選択する。分析窓幅Wを用いて算出された健全性指標は流通網900の健全性を評価する指標として使用できる。また、健全性指標に基づいて、商品の発注数を制御することによって、流通網900の稼働状態を最適化できる。
【0124】
図9Bに示す固有値λ
jの場合も同様に、分析モジュール306は、時間の値が固有値λ
jに値が近い観測可能ポイントが得られる分析窓幅のうち、最小の分析窓幅を選択する。分析窓幅W
jを用いて算出された健全性指標は局所網950の健全性を評価する指標として使用できる。また、健全性指標に基づいて、商品の発注数を制御することによって、局所網950の稼働状態を最適化できる。
【0125】
図11は、実施例1の分析モジュール306が算出した健全性指標が従う法則を説明する図である。
【0126】
図11のグラフは、準自己組織化臨界の状態における周波数とパワースペクトルとの間の関係を示す。
図11では、横軸である周波数を在庫変動周波数と記載し、また、縦軸であるパワースペクトルを拠点在庫と記載している。なお、
図11に示すグラフは両対数グラフである。
【0127】
白丸1101はグラフ上のスペクトルを表す。直線1102は回帰直線を表し、当該直線の傾き、すなわち、回帰係数が健全性指標となる。
【0128】
図6で説明したように、流通網900が自己組織化臨界の状態である場合、健全性指標は「−1」となり、流通網900の在庫変動及び在庫変動周波数のスペクトル特性がフラクタル性を持つ。このとき、拠点及び分析窓幅をどのように選択した場合であっても、相似なスペクトル特性が得られる。
【0129】
流通網900が準自己組織化臨界の状態にある場合、第2卸売拠点ノード907の時系列データに対して、分析窓幅W又は分析窓幅W
jを用いてスペクトル分析を行うことによって算出された健全性指標は−1より大きくかつ0以下の値となる。
【0130】
流通網900が準自己組織化臨界の状態にある場合、健全性指標に基づいて流通網の健全性を評価できる。具体的には、健全性指標が「−1」に近い場合、流通網900の健全性が高く、健全性指標が「−1」に遠い場合、流通網900の健全性が低い。
【0131】
ただし、準自己組織化臨界の状態から逸脱してしまうと、健全性指標を用いて流通網900の健全性を評価できない。そこで、健全性指標の信頼性についても別途評価する必要がある。
【0132】
図12は、実施例1の健全性指標の信頼性の評価方法を説明する図である。
【0133】
図12に示すグラフの横軸及び縦軸は
図11に示すグラフの横軸及び縦軸と同一である。また、白丸1201はグラフ上のスペクトルを表し、直線1202は回帰直線を表す。
【0134】
本実施例では、自己組織化臨界の状態からの乖離度σ
xを、回帰直線1202とスペクトル1201との距離xを用いた式(5)の母標準偏差として定義する。なお、nはスペクトル1201の数を表す。
【0135】
【数5】
【0136】
乖離度σ
xが小さいほど健全性指標の信頼性が高いことを示す。
【0137】
以上で説明したように、計算機400は、複数のノードから構成される網の稼働状態を評価する健全性指標を算出し、健全性指標に基づいて各ノードのアクションを制御する。これによって網全体の稼働状態を最適化できる。また、網の固有値に基づいて設定される分析窓幅を用いてスペクトル分析を行うことによって分析精度を高めることができる。
【0138】
また、スペクトル特性のフラクタル性によって、健全性指標を算出する場合に、任意のノードのアクションに関連する時系列データのみを取得すればよい。そのため、時系列データの取得が制限されるシステム及び事象においても網の稼働状態を評価し、また、最適化できる。
【実施例2】
【0139】
実施例2では、人間の健康状態を網として扱う。人の健康状態は、心拍、血糖値、及び活動量等の様々な要因が関係する。そこで、人の健康状態を終点ノードとし、また、要因をノードとする網を考える。
【0140】
実施例2の計算機400のハードウェア構成は、実施例1の計算機400と同一である。実施例2の計算機400は、ノードに対応する要因を模擬するモジュール、及び分析モジュール306を有する。
【0141】
実施例2では、人の腕に装着したリストバンド型センサから取得されたデータを要因の時系列データとして扱う。従って、実施例2では、計算機400は、腕の動きをノードとした扱い、当該ノードの時系列データを用いて健全性指標を算出する。なお、実施例2では、健全性指標は身体の健康状態を評価する指標である。
【0142】
リストバンド型センサは、3軸の加速度センサを有し、当該センサを用いて、x軸方向、y軸方向、及びz軸方向の加速度を計測する。人の腕は、肩を起点とした動作の制約を受けるため、自由に腕を動かしたとしても大局的には周期性のある運動と考えることができる。従って、リストバンド型センサが計測した加速度は、肩を起点とした回転座標系におけるx軸方向、y軸方向、及びz軸方向の角加速度ωと考えることができる。角加速度ωには、周波数fとの間で式(6)の関係が成り立つため、x軸方向、y軸方向、及びz軸方向の角速度は各軸の周波数と同義である。
【0143】
【数6】
【0144】
そこで、式(7)で示す実効値p
eを腕の動作を表す時系列データとして扱う。なお、x、y、zは、それぞれ、x軸方向、y軸方向、及びz軸方向の加速度を表す。
【0145】
【数7】
【0146】
本実施例では、腕の動作のデータを10秒間隔で計測した。この場合、1日に51万8400個のデータが計測される。
【0147】
実施例2において健全性指標の算出に当たり、身体動作の固有値を設定する必要がある。例えば、視床下部からの指令によって活発になった自律神経(交感神経及び副交感神経)の影響が及ぶ範囲を示す値を身体動作の固有値として扱うことができる。
【0148】
視床下部からの指令は、自律神経を通じて、遅延時間を伴って腕、足、及び臓器等の身体器官へ伝搬し、身体器官の動作に影響を与える。身体器官の動作に応じて感覚器が感じ取った感覚情報は脳に伝達される。そこで、実施例2では、視床下部からの指令を受けた身体器官が動作し、感覚情報が脳に伝達されるまでの最大所要時間を固有値として扱う。
【0149】
前述の固有値は、例えば次の方法で計測できる。視床下部からの指令は、例えば人のストレスに応じて出される。そこで、ストレスを与えた時刻から、視床下部からの指令によって自律神経が活発になった結果、身体の緊張、指先の震え及び冷え、体温変化、動悸息切れ等の身体の反応として感受される時刻までの経過時間を固有値として計測する。
【0150】
視床下部からの各回の指令は、例えば人のストレスと独立に起こる事象であるから、周期性及び連続性は存在しないと考えられる。そのため、一回の指令の影響は連続波ではなく、時間−周波数空間に局在する局在波と捉えなければならない。
【0151】
ここでは、被験者の左腕のストレス反応動作に関する時間が20分であるものとする。この場合、固有値λを「20分」と設定する。
【0152】
図8Aで説明したように、任意の分析窓幅Wに対して時間及び周波数の離散的な組合せを見つけ出すことができる。分析モジュール306は、時間の値が固有値λに一致又は近い観測可能ポイントが存在する分析窓幅Wの中から、最も小さい分析窓幅Wを選択する。
【0153】
本実施例では、上記のような固有値λを用いた結果、分析窓幅Wとして1280秒(21分3秒)が選択された。このとき、分析モジュール306は、一日分の時系列データに対して実施例1と同様の処理を実行することによって健全性指標を算出できる。
【0154】
図13は、実施例2の健全性指標の分析結果を示す図である。
図14は、実施例2の加速度変動周波数とパワースペクトルとの間の関係を示す図である。
【0155】
図13は、横軸は分析日であり、縦軸は健全性指標の絶対値であるグラフを示す。縦軸が折れ線1301は算出された健全性指標をプロットしたものである。本実施例では、10ヶ月分の健全性指標をプロットしている。また、近似曲線1302は、折れ線1301から算出された近似曲線を表す。健全性指標は、約0.30から0.55の間で推移している。このことから、左腕の運動は準自己組織化臨界の状態にあることが分かる。
【0156】
準自己組織化臨界の状態では、スペクトル特性はフラクタル性が認められる。従って、被験者の身体のどの部分に同一の加速度センサを装着した場合であっても、同じ傾向の周波数スペクトルが観測される。
【0157】
本実施例では、分析窓幅Wを1280秒としたことによって、最大21分3秒周期の運動を計測したことになる。しかし、人はこのような周期運動を意識的に調節することは不可能であり、無意識下で身体の様々な部位の運動を制御しているのは自律神経である。
【0158】
従って、この健全性指標は自律神経の健全性の評価にも適用できる。例えば心拍は自律神経の影響を強く受けることが知られているが、心拍データからも同じ傾向の周波数スペクトルが観測される。
【0159】
近似曲線1302は、6月ごろを谷とする曲線であり、被験者の主観的な体調の変化と曲線の変化と一致した。従って、健全性指標は、客観的に被験者の健康状態を評価する指標として用いることができる。
【0160】
図14は、測定日1303における二人の被験者の加速度変動周波数とパワースペクトルとの間の関係を示すグラフであり、横軸が加速度変動周波数であり、縦軸がパワースペクトルである。線1401は、50歳代の被験者の周波数スペクトルをプロットした結果を示し、健全性指標βは「−0.41」である。グラフ1402は、80歳代の被験者の周波数スペクトルをプロットした結果を示し、健全性指標βは「−0.35」である。このことから、健全性指標は、加齢に伴う体調の低下を評価する指標としても用いることができる。
【0161】
以上で説明したように、エネルギー網及び金融網等の様々な網における影響因子に対して、本発明を適用することによって、様々な対象の健全性を評価することができる。また、健全性指標に基づいてノードのアクションを最適化することによって、網運営の頑健化及びインシデント発生のリスクの低減が可能となる。
【0162】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、例えば、上記した実施例は本発明を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、実施例の構成の一部について、他の構成に追加、削除、置換することが可能である。
【0163】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるCPUが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、CD−ROM、DVD−ROM、ハードディスク、SSD(Solid State Drive)、光ディスク、光磁気ディスク、CD−R、磁気テープ、不揮発性のメモリカード、ROMなどが用いられる。
【0164】
また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、C/C++、perl、Shell、PHP、Java(登録商標)等の広範囲のプログラム又はスクリプト言語で実装できる。
【0165】
さらに、実施例の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段又はCD−RW、CD−R等の記憶媒体に格納し、コンピュータが備えるCPUが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。
【0166】
上述の実施例において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。