(57)【要約】      （修正有）【課題】ルータ数が増加した場合であっても、ＮＰ困難の問題を解くことなく、最適なパスを現実的な期間で学習可能にすることを目的とする。【解決手段】入口ルータ（ｓ）から出口ルータ（ｄ）までの通信要求を要素（ｄｓｄ）とする交流行列（Ｄ）に対して、ネットワークに含まれる各入口ルータ（ｓ）から出口ルータ（ｄ）までのパス（ｐｓｄ）を学習するのではなく、ネットワークに含まれるルータ（ｒ）ごとに次ホップ（ｎｓｄｒ）を学習する、経路制御方法、パス学習・設定サーバ、経路制御プログラムにおいて、機械学習における出力層に次ホップｎｓｄｒを用いているため、機械学習における出力層にパスｐｓｄを用いた場合に比べ、次ホップ導出関数ｎｓｄｒ＝ｆｓｄｒ（Ｄ）における中間層の素子数を非常に減らすことができる。このため、ルータ数が増加した場合であっても、ＮＰ困難の問題を解く必要はない。【選択図】図８
2018088602.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに含まれるルータの経路を制御する経路制御方法であって、
最適パス計算部が、前記ネットワークに含まれるルータの経路における入口ルータ及び出口ルータを対とする教師データ用の通信要求及び最適経路を取得し、最適経路上の各ルータにおける次ホップを、各最適経路について求める次ホップ導出ステップと、
関数学習部が、最適経路上の各ルータについて、当該最適経路のときの各ルータの通信要求及び当該最適経路のときの次ホップを教師データに用い、次ホップを求める次ホップ導出関数を学習する関数学習ステップと、
次ホップ設定部が、前記ネットワークにおいて発生した通信要求及び当該通信要求の入口ルータ及び出口ルータを取得し、当該通信要求に対する次ホップを、前記次ホップ導出関数を用いて求める次ホップ設定ステップと、
を有する経路制御方法。
【請求項２】
前記ネットワークに含まれるルータが、
パケットを受信するステップと、
当該パケットの入口ルータ及び出口ルータを決定するステップと、
決定した入口ルータ及び出口ルータに対応する次ホップを、前記次ホップ設定部で設定された次ホップに従って選択するステップと、
選択した次ホップへ向けて当該パケットを送出するステップと、
を有する、
請求項１に記載の経路制御方法。
【請求項３】
前記次ホップ設定部は、前記ネットワークに含まれるルータの経路を制御するサーバ装置に備わり、
前記サーバ装置が、前記次ホップ設定部の設定した次ホップを、前記ネットワークに含まれる各ルータに設定するルータ設定ステップをさらに有する、
請求項１又は２に記載の経路制御方法。
【請求項４】
前記関数学習部は、前記ネットワークに含まれるルータの経路を制御するサーバ装置に備わり、
前記次ホップ設定部は、前記ネットワークに含まれる各ルータに備わり、
前記サーバ装置が、前記次ホップ導出関数を、前記ネットワークに含まれる各ルータに設定するルータ設定ステップを、前記関数学習ステップと前記次ホップ設定ステップの間にさらに有し、
前記次ホップ設定ステップにおいて、前記次ホップ設定部が、前記ネットワークにおいて発生した通信要求に対する自装置の次ホップを、前記次ホップ導出関数を用いて求める、
請求項１又は２に記載の経路制御方法。
【請求項５】
前記次ホップ設定ステップにおいて、前記次ホップ設定部が、前記ネットワークにおいて発生した通信要求に対する当該通信要求の入口ルータから出口ルータまでの各ルータにおける次ホップを、前記次ホップ導出関数を用いて求め、
前記ネットワークに含まれるルータは、
受信したパケットの入口ルータが自装置である場合、
当該パケットの入口ルータから出口ルータまでの各ルータにおける次ホップを用いて、受信したパケットの経路を設定する、
請求項４に記載の経路制御方法。
【請求項６】
ネットワークに含まれるルータの経路を制御するサーバ装置であって、
前記ネットワークに含まれるルータの経路における入口ルータ及び出口ルータを対とする教師データ用の通信要求及び最適経路を取得し、最適経路上の各ルータにおける次ホップを、各最適経路について求める最適パス計算部と、
最適経路上の各ルータについて、当該最適経路のときの各ルータの通信要求及び当該最適経路のときの次ホップを教師データに用い、次ホップを求める次ホップ導出関数を学習する関数学習部と、
前記ネットワークにおいて発生した通信要求及び当該通信要求の入口ルータ及び出口ルータを取得し、当該通信要求に対する次ホップを、前記次ホップ導出関数を用いて求める次ホップ設定部と、
を備えるサーバ装置。
【請求項７】
請求項１から５のいずれかに記載の各ステップをコンピュータに実行させるための経路制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、通信ネットワークにおけるＡＩ（Ａｒｔｉｆｉｃｉａｌ  Ｉｎｔｅｌｌｉｇｅｎｃｅ）学習を用いた経路制御手法、サーバ装置及び経路制御プログラムに関する。
【背景技術】
【０００２】
通信ネットワークにおける経路制御手法において、宛先に向けてパケットを転送するだけではなく、ＴＥ（Ｔｒａｆｆｉｃ  Ｅｎｇｉｎｅｅｒｉｎｇ）などの高度な目的を持つ手法が提案されている（例えば、非特許文献１参照。）。ＴＥの技術向上は、ネットワークの到達性や信頼性を向上させることから、ＮＷの運用上、極めて重要な技術要素であり、本開示の貢献は大きい。
【０００３】
ＴＥのためには、様々な通信要求に対して、いずれも輻輳しないようにそれぞれのパスを決定する必要がある。しかし、そのような計算はＮＰ（Ｎｏｎ−ｄｅｔｅｒｍｉｎｉｓｔｉｃ  Ｐｏｌｙｎｏｍｉａｌ  ｔｉｍｅ）困難であり、通信要求が発生してからリアルタイムにパスを計算することは難しい。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Ｂ．  Ｆｏｒｔｚ  ａｎｄ  Ｍ．  Ｔｈｏｒｕｐ，  “Ｉｎｔｅｒｎｅｔ  ｔｒａｆｆｉｃ  ｅｎｇｉｎｅｅｒｉｎｇ  ｂｙ  ｏｐｔｉｍｉｚｉｎｇ  ＯＳＰＦ  ｗｅｉｇｈｔｓ，”  ｉｎ  ＩＥＥＥ  ＩＮＦＯＣＯＭ，  ｖｏｌ．  ２，  ２０００，  ｐｐ．  ５１９−５２８．
【非特許文献２】Ｒ．  Ｓａｌａｋｈｕｔｄｉｎｏｖ  ａｎｄ  Ｇ．  Ｈｉｎｔｏｎ，  “Ａｎ  ｅｆｆｉｃｉｅｎｔ  ｌｅａｒｎｉｎｇ  ｐｒｏｃｅｄｕｒｅ  ｆｏｒ  ｄｅｅｐ  ｂｏｌｔｚｍａｎｎ  ｍａｃｈｉｎｅｓ，”  Ｎｅｕｒａｌ  ｃｏｍｐｕｔａｔｉｏｎ，  ｖｏｌ．  ２４，  ｎｏ．  ８，  ｐｐ．  １９６７−２００６，  ２０１２．
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本開示は、ルータ数が増加した場合であっても、ＮＰ困難の問題を解くことなく、最適なパスを現実的な期間で学習可能にすることを目的とする。
【課題を解決するための手段】
【０００６】
本開示は、通信ネットワークにおける経路制御を行うため、通信要求を表す交流行列に対して各入口ルータから出口ルータまでのパスを事前学習する方法において、各ルータごとに次ホップを学習する。
【０００７】
具体的には、本開示に係る経路制御方法は、
ネットワークに含まれるルータの経路を制御する経路制御方法であって、
最適パス計算部が、前記ネットワークに含まれるルータの経路における入口ルータ及び出口ルータを対とする教師データ用の通信要求及び最適経路を取得し、最適経路上の各ルータにおける次ホップを、各最適経路について求める次ホップ導出ステップと、
関数学習部が、最適経路上の各ルータについて、当該最適経路のときの各ルータの通信要求及び当該最適経路のときの次ホップを教師データに用い、次ホップを求める次ホップ導出関数を学習する関数学習ステップと、
次ホップ設定部が、前記ネットワークにおいて発生した通信要求及び当該通信要求の入口ルータ及び出口ルータを取得し、当該通信要求に対する次ホップを、前記次ホップ導出関数を用いて求める次ホップ設定ステップと、
を有する。
【０００８】
本開示は、
前記ネットワークに含まれるルータが、
パケットを受信するステップと、
当該パケットの入口ルータ及び出口ルータを決定するステップと、
決定した入口ルータ及び出口ルータに対応する次ホップを、前記次ホップ設定部で設定された次ホップに従って選択するステップと、
選択した次ホップへ向けて当該パケットを送出するステップと、
を有する態様を含む。
【０００９】
本開示は、
前記次ホップ設定部は、前記ネットワークに含まれるルータの経路を制御するサーバ装置に備わり、
前記サーバ装置が、前記次ホップ設定部の設定した次ホップを、前記ネットワークに含まれる各ルータに設定するルータ設定ステップをさらに有する態様を含む。
【００１０】
本開示は、
前記関数学習部は、前記ネットワークに含まれるルータの経路を制御するサーバ装置に備わり、
前記次ホップ設定部は、前記ネットワークに含まれる各ルータに備わり、
前記サーバ装置が、前記次ホップ導出関数を、前記ネットワークに含まれる各ルータに設定するルータ設定ステップを、前記関数学習ステップと前記次ホップ設定ステップの間にさらに有し、
前記次ホップ設定ステップにおいて、前記次ホップ設定部が、前記ネットワークにおいて発生した通信要求に対する自装置の次ホップを、前記次ホップ導出関数を用いて求める態様を含む。
【００１１】
本開示は、
前記次ホップ設定ステップにおいて、前記次ホップ設定部が、前記ネットワークにおいて発生した通信要求に対する当該通信要求の入口ルータから出口ルータまでの各ルータにおける次ホップを、前記次ホップ導出関数を用いて求め、
前記ネットワークに含まれるルータは、
受信したパケットの入口ルータが自装置である場合、
当該パケットの入口ルータから出口ルータまでの各ルータにおける次ホップを用いて、受信したパケットの経路を設定する態様を含む。
【００１２】
具体的には、本開示に係るサーバ装置は、
ネットワークに含まれるルータの経路を制御するサーバ装置であって、
前記ネットワークに含まれるルータの経路における入口ルータ及び出口ルータを対とする教師データ用の通信要求及び最適経路を取得し、最適経路上の各ルータにおける次ホップを、各最適経路について求める最適パス計算部と、
最適経路上の各ルータについて、当該最適経路のときの各ルータの通信要求及び当該最適経路のときの次ホップを教師データに用い、次ホップを求める次ホップ導出関数を学習する関数学習部と、
前記ネットワークにおいて発生した通信要求及び当該通信要求の入口ルータ及び出口ルータを取得し、当該通信要求に対する次ホップを、前記次ホップ導出関数を用いて求める次ホップ設定部と、
を備える。
【００１３】
具体的には、本開示に係る経路制御プログラムは、本開示に係る経路制御方法に備わる各ステップをコンピュータに実行させ、本開示に係るサーバ装置に備わる各機能部としてコンピュータを機能させる。
【００１４】
なお、上記各開示は、可能な限り組み合わせることができる。
【発明の効果】
【００１５】
本開示によれば、ルータ数が増加した場合であっても、ＮＰ困難の問題を解くことなく、最適なパスを現実的な期間で学習することができ、リアルタイムに交流行列に適したパスを設定することが可能となる。
【図面の簡単な説明】
【００１６】
【図１】ネットワークの例。
【図２】パス学習・設定サーバの一例を示す機能ブロック図。
【図３】ルータの一例を示す機能ブロック図。
【図４】基本技術における事前準備のフローチャート。パス学習・設定サーバが実行する。
【図５】教師データの例。
【図６】基本技術におけるパス計算・設定のフローチャート。パス学習・設定サーバが実行する。
【図７】基本技術におけるパケット転送のフローチャート。ルータｓが実行する。
【図８】実施形態１における事前準備の第１のフローチャート。パス学習・設定サーバが実行する。
【図９】実施形態１における事前準備の第２のフローチャート。パス学習・設定サーバが実行する。
【図１０】ルータβを入口ルータｓ、ルーラδを出口ルータｄとするとき、ルータβの次ホップを学習するための教師データの一例。
【図１１】実施形態１におけるパス計算・設定のフローチャート。パス学習・設定サーバが実行する。
【図１２】実施形態１におけるパケット転送のフローチャート。ルータｒが実行する。
【図１３】実施形態２におけるルータの一例を示す機能ブロック図。
【発明を実施するための形態】
【００１７】
以下、本開示の実施形態について、図面を参照しながら詳細に説明する。なお、本開示は、以下に示す実施形態に限定されるものではない。これらの実施の例は例示に過ぎず、本開示は当業者の知識に基づいて種々の変更、改良を施した形態で実施することができる。なお、本明細書及び図面において符号が同じ構成要素は、相互に同一のものを示すものとする。
【００１８】
（開示のポイント）
交流行列に対して、各入口ルータから出口ルータまでのパスを学習する場合、ネットワークが大規模になると、オフラインでも現実的な期間で完了しないほどに、事前の学習時間が長くなる。本開示では、交流行列に対して、各入口ルータから出口ルータまでのパスを学習するのではなく、ルータごとに次ホップを学習することにより、学習の高速化を行った。各ルータの次ホップの数は、ルータ数に対して指数的に増加することはない。これにより、事前学習にて最適なパスを現実的な期間で学習でき、リアルタイムにＮＰ困難の問題を解くことなく、交流行列に適したパスを設定するＴＥを実現できる。
【００１９】
また、トラフィック以外の教師データを用いることで、教師データの値を加味したＴＥが実現できる。例として、ユーザの体感品質を示すＱｏＥ（Ｑｕａｌｉｔｙ  ｏｆ  Ｅｘｐｅｒｉｅｎｃｅ）値を用いることで、当品質の向上を目的とするＴＥを達成することも可能である。
【００２０】
（基本技術）
〔機械学習〕
ＴＥのために機械学習を利用する。本開示では、機械学習を次のように定義する。関数の引数と戻り値のペアがいくつか与えられているとする。たとえば、ｘを引数、ｙを戻り値とすると、（ｘ（１），ｙ（１））、（ｘ（２），ｙ（２））、…となる。機械学習では、これらを教師データと呼ぶ。機械学習は、近年、注目されているディープニューラルネットワーク等の技術（非特許文献２）を示しており、教師データから、ｙ＝ｆ（ｘ）の関数形を「学習」する。すると、教師データに含まれないｘ’に対しても、ｙ’＝ｆ（ｘ’）を推定できるようになる。なお、ｘ、ｙはベクトルや行列でもよい。
【００２１】
図１に、本実施形態に係るネットワークの一例を示す。本実施形態では、ネットワーク９３の一例として、ルータα，β，γ，δがネットワーク９３の入り口又は出口として機能する例を示す。また本実施形態では、パスの学習と設定を行う経路制御サーバ装置を「パス学習・設定サーバ」と呼ぶ。実際には、パス学習・設定サーバ９１の機能が、ルータα，β，γ，δに備わっていても構わない。また、本実施形態に係るルータα，β，γ，δは、次ホップを決定しうる任意のネットワーク機器を用いることができる。
【００２２】
図２は、パス学習・設定サーバの一例を示す機能ブロック図である。パス学習・設定サーバ９１は、最適パス計算部１１、関数学習部１２、学習済み関数格納部１３、ルータ設定部１４を備える。図３は、ルータの一例を示す機能ブロック図である。ルータ９２は、ルータα，β，γ，δとして機能し、関数受信部２１、パス／次ホップ格納部２２、パス／次ホップ選択部２３、パケット受信・転送部２４を備える。基本技術において、パス／次ホップ格納部２２はパス格納部として機能し、パス／次ホップ選択部２３はパス選択部として機能する。
【００２３】
〔パスの学習〕
パス学習・設定サーバ９１は、事前準備を実行する。図４に、事前準備のフローチャートの一例を示す。事前準備では、最適パス計算部１１が教師データを用いて最適なパスｐｓｄを計算し（Ｓ１０３）、関数学習部１２が最適なパスｐｓｄを用いて関数を学習する（Ｓ１０５）。
【００２４】
本開示の教師データは、通信要求と、適用するパスを含む。本実施形態では、教師データに含まれる通信要求を交流行列Ｄで表す。Ｄの要素ｄｓｄは、ｓを入口ルータとし、ｄを出口ルータとするトラフィック量やトラフィックの時系列変動を表す。例えば、本実施形態では、４つのルータα〜δが備わるため、交流行列Ｄは次式で表すことができる。
【数１】
2018088602.tif 000003
【００２５】
図５に、交流行列Ｄの一例を示す。本実施形態では、交流行列Ｄ（１）から交流行列Ｄ（２）に変動した場合を想定する。交流行列Ｄ（１）は、αからδと、βからδに、それぞれ１０のトラフィックがあることを表している。最適パス計算部１１は、過去のトラフィックデータなどを参考に、実際に発生しそうな交流行列をいくつか取得しておく（Ｓ１０１）。これを教師データとして用いる。なお、ここで用いる交流行列Ｄは、必ずしも後述の運用時に同じものが現れる必要はない。つまり、正確に「当てる」ことを目的としない。それよりも、運用時の推定に役に立つように、様々なパターンを挙げておくのがよい。
【００２６】
次に、最適パス計算部１１が、非特許文献１のＴＥ手法を用いて、交流行列Ｄ（ｉ）ごとにｓ、ｄペアごとの最適なパスｐｓｄ（ｉ）を計算する（Ｓ１０２、Ｓ１０３）。例えば、本実施形態では、４つのルータα〜δが備わるため、最適なパスｐｓｄ（ｉ）は次式のような行列Ｐで表すことができる。
【数２】
2018088602.tif 000004
【００２７】
図５に、行列Ｐの一例を示す。ルータαを入口ルータとし、ルータδを出口ルータとする最適なパスはα−δであることから、最適なパスｐαδ（１）＝αδとなる。またルータβを入口とし、ルータδを出口とする最適なパスはβ−γ−δであることから、最適なパスｐβδ（１）＝βγδとなる。ここで、リンクα−δの輻輳を避けるために、ＴＥ手法は、パスｐβδをα回りではなくγ回りとしている。Ｄ（２）も同様に、リンクγ−δの輻輳を避けるように、パスｐβδをα回りで設定している。最適なパスｐｓｄ（ｉ）の計算は、運用中にリアルタイムで行う必要はなく、事前にオフラインで交流行列Ｄ（ｉ）ごとに計算しておけばよい。
【００２８】
続いて、関数学習部１２が、関数の学習を行い、学習済み関数格納部１３に格納する（Ｓ１０４〜Ｓ１０５）。トラフィックの出入口ｓ、ｄごとに別々の関数を用意し、学習する。教師データを（Ｄ（１），ｐｓｄ（１））、（Ｄ（２），ｐｓｄ（２））、…と表し、学習対象の関数をｐｓｄ＝ｆｓｄ（Ｄ）とする。輻輳を避けるようにｓ、ｄ間のパスを決定するためには、他ルータ間のトラフィック量も必要となるため、ｄｓｄではなく、最適パスを求めたときの各ルータの通信要求を表す交流行列Ｄそのものを入力とする。
【００２９】
ネットワーク９３を運用し始める前に、この教師データを用いて、関数ｐｓｄ＝ｆｓｄ（Ｄ）を学習しておく。
【００３０】
〔パスの設定〕
運用開始後、パス学習・設定サーバ９１は、パスの計算及び設定を実行する。図６に運用開始後のフローチャートの一例を示す。運用開始後、ルータ設定部１４は、一定時間ごとに交流行列Ｄ’を更新する（Ｓ２０１）。そして、ルータ設定部１４は、学習済みの関数ｆｓｄを用いてパスｐ’ｓｄ＝ｆｓｄ（Ｄ’）を計算し、計算結果であるパスｐ’ｓｄを入口ルータｓに設定する。
【００３１】
例えば、ｓ＝αのパスｐ’ｓｄをルータαに設定し、ｓ＝βのパスｐ’ｓｄをルータβに設定し、ｓ＝γのパスｐ’ｓｄをルータγに設定し、ｓ＝δのパスｐ’ｓｄをルータδに設定する。各ルータα〜δの関数受信部２１は、入口ルータｓ及び出口ルータｄに対応するパスｐ’ｓｄをルータ設定部１４から受信し、パス／次ホップ格納部２２に格納する。
【００３２】
ここで、パスｐ’ｓｄ＝ｆｓｄ（Ｄ’）の計算は、観測トラフィックや疑似的に生成したトラフィックから求めてもよいし、顧客との契約条件から決定してもよい。ただし、事前準備の交流行列Ｄ（ｉ）と異なり、実トラフィックを表していなければならない。ｆｓｄ（Ｄ’）の計算は、ＮＰ困難の最適化問題を解くよりも簡単であり、一度学習してしまえば高速に計算できる。
【００３３】
〔パケット転送〕
各ルータα〜δは、ルータ設定部１４の設定に従ってパケット転送を行う。図７に、パケット転送のフローチャートの一例を示す。入口ルータｓはパケットを受信すると（Ｓ３０１）、経路表などを用いて、出口ルータｄを決定し（Ｓ３０２）、設定されたパスｐ’ｓｄに従って送り出す（Ｓ３０３）。
【００３４】
例えば、ルータαにおいて、パケット受信・転送部２４がパケットを受信すると、パス／次ホップ選択部２３は、パケットの送信元及び送信先を読み出し、パケットの送信先に対応する出口ルータｄを決定する。そして、パス／次ホップ選択部２３は、パス／次ホップ格納部２２に格納されているパスｐ’ｓｄのなかから、出口ルータｄに対応するパスｐ’ｓｄを選択する。パケット受信・転送部２４は、パス／次ホップ選択部２３の選択したパスに向けてパケットを転送する。
【００３５】
ここでのパケットの転送方法は任意である。たとえばＭＰＬＳのようなｌａｂｅｌ  ｓｗｉｔｃｈｉｎｇを用いる場合には、パスｐ’ｓｄに対応するｌａｂｅｌを付与して送出すればよい。あるいは、ｓｏｕｒｃｅ  ｒｏｕｔｉｎｇを行う場合は、パスｐ’ｓｄそのものをパケットヘッダに記載する。
【００３６】
（実施形態１）
〔次ホップの学習〕
ネットワーク９３が大規模になると、事前の学習時間が長くなる。これは、関数ｆの値域（パス数）が大きいことが原因である。パス数は、ネットワーク規模に対して指数的に増加することがある。そこで、パスを学習するのではなく、ルータごとに次ホップを学習することで、この問題を解決する。
【００３７】
具体的には、本実施形態では、図２において、学習済み関数格納部１３が次ホップを求める次ホップ導出関数を学習し、ルータ設定部１４が次ホップ設定部として機能し、図３において、パス／次ホップ格納部２２が次ホップ格納部として機能し、パス／次ホップ選択部２３が次ホップ選択部として機能する。
【００３８】
次ホップは、隣接ルータのいずれかであるため、パスのようにルータ数に対して指数的に増加することはなく、最大でもルータ数を超えない。図１に示すルータαで説明すると、隣接ルータはβとδであり、いずれかが次ホップとなる。
【００３９】
図８に、パス学習・設定サーバ９１における事前準備のフローチャートの一例を示す。本実施形態では、最適パス計算部１１が、教師データとして、図５に示すような交流行列Ｄ及び最適パスｐｓｄの組を取得し、次ホップをフォーマルに定義する（Ｓ１１１〜Ｓ１１２）。入口ルータｓから出口ルータｄへのパス上に、ルータｒがあるとする。このとき、ｎｓｄｒを、ｓからｄへのパスにおけるｒの次ホップとする。図５のパスｐβδ＝βγδを例に取ると、γの次ホップはδなので、ｎβγδ＝δとなる。
【００４０】
図９に、教師データとして交流行列Ｄと共に最適パスｐｓｄが得られない場合のパス学習・設定サーバ９１における事前準備のフローチャートの一例を示す。教師データとして交流行列Ｄと共に最適パスｐｓｄが得られない場合、最適パス計算部１１は、基本技術と同様に最適パスｐｓｄを計算し（Ｓ１０２〜Ｓ１０３）、それに基づいて次ホップｎｓｄｒ（ｉ）を計算すればよい（Ｓ１１１〜Ｓ１１２）。
【００４１】
基本技術では、関数学習部１２が、入口ルータｓ及び出口ルータｄのルータペアごとに、関数ｐｓｄ＝ｆｓｄ（Ｄ）を学習した。本実施形態では、関数学習部１２が、３つ組みｓ、ｄ、ｒごとに、次ホップ導出関数である関数ｎｓｄｒ＝ｆｓｄｒ（Ｄ）を学習する。本実施形態では、ｒごとに関数ｎｓｄｒ＝ｆｓｄｒ（Ｄ）を学習するため、最適パス上のルータごとの学習となる。
【００４２】
なお、入口ルータｓと出口ルータｄ毎に次ホップを決定しているが、出口ルータｄのみで次ホップを決定する場合は、ｎｓｄｒ＝ｎｓ’ｄｒ∀ｓ，ｓ’となり、この場合の次ホップ導出関数は、ｆｓｄｒではなくｆｄｒと表現できる。
【００４３】
本実施形態の教師データは（Ｄ（ｉ），ｎｓｄｒ（ｉ））となる。図１と同じネットワーク９３を想定し、ルータβからルータδへのパスを考えるとき、ルータβの次ホップを学習するための教師データは、図１０のようになる。たとえば、ｐβδ（１）＝βγδから、βの次ホップがγであるとわかる。よって、ｐβδ（１）＝βγδの場合のルータβの次ホップは、ｎβδβ（１）＝γとなる。
【００４４】
ネットワーク９３を運用し始める前に、関数学習部１２が、この教師データを用いて、次ホップ導出関数ｎｓｄｒ＝ｆｓｄｒ（Ｄ）を学習しておく。
【００４５】
〔次ホップの設定〕
運用開始後、パス学習・設定サーバ９１は、次ホップの計算及び設定を実行する。図１１に運用開始後のフローチャートの一例を示す。基本技術と同様に、運用開始後、ルータ設定部１４は、一定時間ごとに交流行列Ｄ’を更新する（Ｓ２０１）。そして、学習済みの次ホップ導出関数ｎｓｄｒを用いて次ホップｎ’ｓｄｒ＝ｆｓｄｒ（Ｄ’）を計算し、ルータｒに設定する（Ｓ２１１〜Ｓ２１２）。
【００４６】
例えば、ｒ＝αの次ホップｎ’ｓｄｒをルータαに設定し、ｒ＝βの次ホップｎ’ｓｄｒをルータβに設定し、ｒ＝γの次ホップｎ’ｓｄｒをルータγに設定し、ｒ＝δの次ホップｎ’ｓｄｒをルータδに設定する。このとき、各ルータα〜δの関数受信部２１は、入口ルータｓ及び出口ルータｄに対応する次ホップｎ’ｓｄｒをルータ設定部１４から受信し、パス／次ホップ格納部２２に格納する。
【００４７】
〔パケット転送〕
各ルータα〜δは、ルータ設定部１４の設定に従ってパケット転送を行う。図１２に、パケット転送のフローチャートの一例を示す。ルータｒはパケットを受信すると（Ｓ３０１）、送信元アドレスや経路表を用いて入口ルータｓと出口ルータｄを決定し（Ｓ３１１）、パス／次ホップ格納部２２に格納された次ホップｎ’ｓｄｒに送り出す（Ｓ３１２）。
【００４８】
例えば、ルータαにおいて、パケット受信・転送部２４がパケットを受信すると、パス／次ホップ選択部２３は、パケットの送信元及び送信先を読み出し、パケットの送信元に対応する入口ルータｓを決定し、パケットの送信先に対応する出口ルータｄを決定する。そして、パス／次ホップ選択部２３は、パス／次ホップ格納部２２に格納されている次ホップｎ’ｓｄｒのなかから、入口ルータｓ及び出口ルータｄに対応する次ホップｎ’ｓｄｒを選択する。パケット受信・転送部２４は、パス／次ホップ選択部２３の選択した次ホップｎ’ｓｄｒに向けてパケットを転送する。
【００４９】
以上説明したように、本実施形態は、機械学習における出力層に次ホップｎｓｄｒを用いているため、機械学習における出力層にパスｐｓｄを用いた場合に比べ、次ホップ導出関数ｎｓｄｒ＝ｆｓｄｒ（Ｄ）における中間層の素子数を非常に減らすことができる。このため、本実施形態は、ルータ数が増加した場合であっても、ＮＰ困難の問題を解く必要はない。
【００５０】
さらに、次ホップ導出関数ｎ’ｓｄｒ＝ｆｓｄｒ（Ｄ’）の計算における中間層の素子数を少なくすることができるため、運用開始後に通信要求が発生してからであっても、次ホップ導出関数ｎ’ｓｄｒ＝ｆｓｄｒ（Ｄ’）の計算をリアルタイムに行うことができる。
【００５１】
ここで、ルータｒは最適パス上のルータであるため、最適なパスを学習することできる。したがって、本実施形態は、ルータ数が増加した場合であっても、ＮＰ困難の問題を解くことなく、最適なパスを現実的な期間で学習可能にすることができる。
【００５２】
（実施形態２）
実施形態１では、次ホップｎ’ｓｄｒ＝ｆｓｄｒ（Ｄ’）をルータｒに設定したが、本開示はこれに限定されない。例えば、ルータ９２は学習済みの次ホップ導出関数ｎｓｄｒ＝ｆｓｄｒ（Ｄ）を保持していてもよい。この場合のルータ９２の機能ブロックの一例を図１３に示す。ルータ９２は、次ホップ設定部２７をさらに備え、パス／次ホップ格納部２２に代えて学習済み関数格納部２５を備え、パス／次ホップ選択部２３に代えて次ホップ選択部２６を備える。パス学習・設定サーバ９１の機能ブロックは図２のとおりである。以下、実施形態１と異なる点について説明する。
【００５３】
〔次ホップの学習〕
実施形態１において説明したように、ネットワーク９３を運用し始める前に、関数学習部１２が、教師データを用いて、次ホップ導出関数ｎｓｄｒ＝ｆｓｄｒ（Ｄ）を学習しておく。学習完了後、図２に示すルータ設定部１４は、学習済み関数格納部１３に格納されている学習済みの次ホップ導出関数ｎｓｄｒ＝ｆｓｄｒ（Ｄ）をルータｒに送信する。
【００５４】
例えば、ルータ設定部１４は、ｒ＝αの次ホップ導出関数ｎｓｄｒ＝ｆｓｄｒ（Ｄ）をルータαに送信し、ｒ＝βの次ホップ導出関数ｎｓｄｒ＝ｆｓｄｒ（Ｄ）をルータβに送信し、ｒ＝γの次ホップ導出関数ｎｓｄｒ＝ｆｓｄｒ（Ｄ）をルータγに送信し、ｒ＝δの次ホップ導出関数ｎｓｄｒ＝ｆｓｄｒ（Ｄ）をルータδに送信する。各ルータα〜δの関数受信部２１は、次ホップ導出関数ｎｓｄｒ＝ｆｓｄｒ（Ｄ）をルータ設定部１４から受信し、学習済み関数格納部２５に格納する。
【００５５】
〔次ホップの設定〕
運用開始後、次ホップ設定部２７は、次ホップの計算及び設定を実行する。次ホップの計算及び設定は、実施形態１におけるルータ設定部１４と同様である。すなわち、次ホップ設定部２７は、一定時間ごとに交流行列Ｄ’を更新し（Ｓ２０１）、学習済みの次ホップ導出関数ｎｓｄｒを用いて次ホップｎ’ｓｄｒ＝ｆｓｄｒ（Ｄ’）を計算し、ルータｒに設定する（Ｓ２１１〜Ｓ２１２）。
【００５６】
ここで、本実施形態では、ルータｒにおいて次ホップｎ’ｓｄｒ＝ｆｓｄｒ（Ｄ’）の計算を行っているため、自装置への設定となる。そして、次ホップ設定部２７は、計算によって得られた入口ルータｓ及び出口ルータｄに対応する次ホップｎ’ｓｄｒを、学習済み関数格納部２５に格納する。
【００５７】
〔パケット転送〕
各ルータα〜δにおいて、パケット受信・転送部２４がパケットを受信すると、次ホップ選択部２６は、パケットの送信元及び送信先をパケットから読み出し、パケットの入口ルータｓ及び出口ルータｄを特定する。そして、次ホップ選択部２６は、学習済み関数格納部２５に格納されている次ホップｎ’ｓｄｒのなかから、入口ルータｓ及び出口ルータｄに対応する次ホップｎ’ｓｄｒを選択する。パケット受信・転送部２４は、次ホップ選択部２６の選択した次ホップｎ’ｓｄｒに向けてパケットを転送する。
【００５８】
以上説明したように、本開示は、次ホップ導出関数ｎｓｄｒ＝ｆｓｄｒ（Ｄ）における中間層の素子数を非常に減らすことができるため、学習済みの次ホップ導出関数ｎｓｄｒを各ルータに搭載し、各ルータにおいて次ホップｎ’ｓｄｒの計算を行うことができる。これにより、本実施形態は、各ルータにおける次ホップｎ’ｓｄｒをリアルタイムで更新することができる。
【００５９】
（実施形態３）
〔パスによる転送〕
実施形態１及び２において、各ルータα〜δが次ホップを選択するとしたが、本開示はこれに限定されない。例えば、入口ルータに集約してパスを構成し、基本技術と同様にパスを指定して送出してもよい。次ホップｎ’ｓｄｒを入口ルータｓから出口ルータｄへ順に並べれば、パスを構成できる。この場合、図１１は、図６と同様に、入口ルータｓのみにパスを設定することになる。また、図１２は、図７と同じになる。
【００６０】
例えば、実施形態２の図１３に示すように、学習済みの次ホップ導出関数ｎｓｄｒ＝ｆｓｄｒ（Ｄ）を次ホップ情報として各ルータα〜δに格納する。ここで、本実施形態の場合、入口ルータｓから出口ルータｄまでの各ルータをルータｒとしうる次ホップの次ホップ導出関数ｎｓｄｒ＝ｆｓｄｒ（Ｄ）を学習済み関数格納部２５に格納する。そして、運用開始後の次ホップの設定において、入口ルータｓから出口ルータｄまでの各ルータをルータｒとしたときの次ホップ導出関数ｎ’ｓｄｒ＝ｆｓｄｒ（Ｄ’）を用いて、次ホップの計算及び設定を実行する。
【００６１】
各ルータα〜δのいずれかのパケット受信・転送部２４がパケットを受信すると、次ホップ選択部２６は、学習済み関数格納部２５に格納されている次ホップｎ’ｓｄｒのなかから、入口ルータｓ及び出口ルータｄに対応しかつ入口ルータｓから出口ルータｄまでの各ルータをルータｒとする次ホップｎ’ｓｄｒを選択する。そして、次ホップ選択部２６は、入口ルータｓから出口ルータｄへ順に並べ、パスとしてパケットに格納する。パケット受信・転送部２４は、次ホップ選択部２６の設定したパスに従ってパケットを転送する。
【００６２】
入口ルータｓから出口ルータｄまでの各ルータは、パケットに設定されているパスに従って、パケットを転送する。パケットの転送方法は、基本技術と同様に任意である。これにより、各ルータでの演算処理を軽減することができる。
【００６３】
以上説明したように、本実施形態は、入口ルータｓにおいて、入口ルータｓから出口ルータｄまでの各ルータをルータｒとする次ホップｎ’ｓｄｒを選択する。これにより、本実施形態は、パスを学習することなく、入口ルータｓから出口ルータｄまでのパスを設定することができる。したがって、本実施形態は、ルータ数が増加した場合であっても、ＮＰ困難の問題を解くことなく、最適なパスを現実的な期間で学習可能にすることができる。
【００６４】
なお、本開示の装置は、コンピュータとプログラムによっても実現でき、プログラムを記録媒体に記録することも、ネットワークを通して提供することも可能である。
【産業上の利用可能性】
【００６５】
本開示は情報通信産業に適用することができる。
【符号の説明】
【００６６】
１１：最適パス計算部
１２：関数学習部
１３：学習済み関数格納部
１４：ルータ設定部
２１：関数受信部
２２：パス／次ホップ格納部
２３：パス・次ホップ選択部
２４：パケット受信・転送部
２５：学習済み関数格納部
２６：次ホップ選択部
２７：次ホップ設定部
９１：パス学習・設定サーバ
９２：ルータ
９３：ネットワーク
【図１】
2018088602.tif 000005
【図２】
2018088602.tif 000006
【図３】
2018088602.tif 000007
【図４】
2018088602.tif 000008
【図５】
2018088602.tif 000009
【図６】
2018088602.tif 000010
【図７】
2018088602.tif 000011
【図８】
2018088602.tif 000012
【図９】
2018088602.tif 000013
【図１０】
2018088602.tif 000014
【図１１】
2018088602.tif 000015
【図１２】
2018088602.tif 000016
【図１３】
2018088602.tif 000017