(57)【要約】【課題】仮想ネットワークの動的割当における物理リソースの利用効率を向上させること。【解決手段】ネットワークサービスを提供するための仮想ネットワークを深層強化学習により物理ネットワーク上に動的に割り当てる制御装置であって、前記物理ネットワークのネットワーク構成情報と、前記物理ネットワークの物理リソース量を示すネットワーク観測情報と、前記ネットワークサービスのユーザ端末の通信行動によって発生した物理リソースの需要量を示すユーザ需要情報とを入力として、時刻ｔにおける状態ｓｔを観測する観測手段と、前記状態ｓｔにおける方策πに従って、前記物理ネットワーク上への前記仮想ネットワークの割り当てを変更する行動ａｔを選択する割当手段と、前記行動ａｔにより遷移した状態ｓｔ＋１から報酬ｒｔ＋１を計算する報酬計算手段と、前記報酬ｒｔ＋１を用いて、前記方策πを学習する学習手段と、を有することを特徴とする。【選択図】図１
2020127182.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークサービスを提供するための仮想ネットワークを深層強化学習により物理ネットワーク上に動的に割り当てる制御装置であって、
前記物理ネットワークのネットワーク構成情報と、前記物理ネットワークの物理リソース量を示すネットワーク観測情報と、前記ネットワークサービスのユーザ端末の通信行動によって発生した物理リソースの需要量を示すユーザ需要情報とを入力として、時刻ｔにおける状態ｓｔを観測する観測手段と、
前記状態ｓｔにおける方策πに従って、前記物理ネットワーク上への前記仮想ネットワークの割り当てを変更する行動ａｔを選択する割当手段と、
前記行動ａｔにより遷移した状態ｓｔ＋１から報酬ｒｔ＋１を計算する報酬計算手段と、
前記報酬ｒｔ＋１を用いて、前記方策πを学習する学習手段と、
を有することを特徴とする制御装置。
【請求項２】
前記状態ｓｔには、
前記仮想ネットワークが必要とするトラヒックの需要量と、前記仮想ネットワークが必要とするサーバ容量の需要量と、前記物理ネットワークに含まれる各リンクの残余帯域と、前記物理ネットワークに含まれる各サーバの残余サーバ容量とが含まれる、ことを特徴とする請求項１に記載の制御装置。
【請求項３】
前記割当手段は、
前記行動ａｔを、予め決められた行動集合の中から選択し、
前記行動集合に含まれる各要素は、時刻ｔ毎に予め設定されたパラメータＮに応じて、Ｎ個の仮想ネットワークを、複数のサーバのうち、前記要素毎に予め決められた１以上のサーバに割り当てることを示す行動である、ことを特徴とする請求項１又は２に記載の制御装置。
【請求項４】
前記報酬ｒｔ＋１は、
ＶＮＥ問題の制約条件を満たし、かつ、前記ＶＮＥ問題の目的関数が最小となるように定義される、ことを特徴とする請求項１乃至３の何れか一項に記載の制御装置。
【請求項５】
前記制約条件は、
前記物理ネットワークに含まれる各リンクの帯域が１００％以下、かつ、前記物理ネットワークに含まれる各サーバのサーバ容量が１００％以下であり、
前記目的関数は、前記各リンクの帯域、前記各サーバのサーバ容量、及び前記仮想ネットワークの再配置回数であり、
前記報酬ｒｔ＋１は、
（１）前記制約条件を満たさない場合は前記報酬ｒｔ＋１を負値、
（２）前記制約条件を満たすものの、前記各リンクの帯域及び各サーバのサーバ容量の少なくとも一方の利用効率が低下した場合は前記報酬ｒｔ＋１を負値、
（３）前記制約条件を満たすものの、前記各リンクの帯域が所定の閾値以上である場合は前記報酬ｒｔ＋１を０、
（４）前記（１）〜前記（３）以外の場合は前記報酬ｒｔ＋１を、報酬ｒｔ＋１＝１−（各リンク帯域の利用率の平均＋各サーバ容量の利用率の平均）／２、
により定義される、ことを特徴とする請求項４に記載の制御装置。
【請求項６】
ネットワークサービスを提供するための仮想ネットワークを深層強化学習により物理ネットワーク上に動的に割り当てるコンピュータが、
前記物理ネットワークのネットワーク構成情報と、前記物理ネットワークの物理リソース量を示すネットワーク観測情報と、前記ネットワークサービスのユーザ端末の通信行動によって発生した物理リソースの需要量を示すユーザ需要情報とを入力として、時刻ｔにおける状態ｓｔを観測する観測手順と、
前記状態ｓｔにおける方策πに従って、前記物理ネットワーク上への前記仮想ネットワークの割り当てを変更する行動ａｔを選択する割当手順と、
前記行動ａｔにより遷移した状態ｓｔ＋１から報酬ｒｔ＋１を計算する報酬計算手順と、
前記報酬ｒｔ＋１を用いて、前記方策πを学習する学習手順と、
を実行することを特徴とする制御方法。
【請求項７】
コンピュータを、請求項１乃至５の何れか一項に記載の制御装置における各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置、制御方法及びプログラムに関する。
【背景技術】
【０００２】
仮想ネットワーク機能（ＶＮＦ：Virtual Network Function）を柔軟に組み合わせることで、様々なネットワークサービスの提供を可能するＮＦＶ（Network Functions Virtualization）と呼ばれる技術が知られている。これらのネットワークサービスは、サービス提供者が構築した仮想ネットワーク（ＶＮ：Virtual Network）を、電気通信事業者が持つ物理リソースに割り当てることで提供される。
【０００３】
ところで、近年、ネットワークサービスの多様化によりトラヒックやサーバリソース等の需要変動が激化している。これに対して、これらの需要変動に応じて、ネットワークサービスの提供中に仮想ネットワークの割り当てを動的に制御する技術が知られている。例えば、ネットワーク状態と最適な制御方法との関係を強化学習により事前に学習しておき、実際の制御時における計算時間を不要とすることで、トラヒックの需要変動に追従可能な仮想ネットワークの動的割当方法が知られている（非特許文献１）。
【０００４】
また、強化学習における状態を入力として行動を出力する関数を深層ニューラルネットワークで近似した深層強化学習と呼ばれる手法が知られている（非特許文献２及び３）。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】R. Mijumbi et al., "Design and evaluation of learning algorithms for dynamic resource management in virtual networks," Network Operations and Management Symposium (NOMS), 2014.
【非特許文献２】Mnih, Volodymyr, et al. "Human-level control through deep reinforcement learning." Nature 518.7540 (2015): 529.
【非特許文献３】Mnih, Volodymyr, et al. "Asynchronous methods for deep reinforcement learning." International conference on machine learning. 2016.
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、非特許文献１に開示されている動的割当方法では、取り得るネットワーク状態の数だけ強化学習により事前学習を行う必要があるため、ネットワーク状態を状態数で表現する必要がある。したがって、離散的かつ低次元（つまり、少ない変数で表現可能）なネットワーク状態しか扱うことができず、仮想ネットワークの割当精度が低い（つまり、物理リソースの利用効率が低い）場合があった。
【０００７】
他方で、深層強化学習は連続的かつ高次元な入力に対しても適切な出力を学習することが可能であるため、深層強化学習を適用することで、連続的かつ高次元なネットワーク状態を扱うことが可能になると考えられる。
【０００８】
本発明は、上記の点に鑑みてなされたもので、仮想ネットワークの動的割当における物理リソースの利用効率を向上させることを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するため、本発明の実施の形態における制御装置は、ネットワークサービスを提供するための仮想ネットワークを深層強化学習により物理ネットワーク上に動的に割り当てる制御装置であって、前記物理ネットワークのネットワーク構成情報と、前記物理ネットワークの物理リソース量を示すネットワーク観測情報と、前記ネットワークサービスのユーザ端末の通信行動によって発生した物理リソースの需要量を示すユーザ需要情報とを入力として、時刻ｔにおける状態ｓｔを観測する観測手段と、前記状態ｓｔにおける方策πに従って、前記物理ネットワーク上への前記仮想ネットワークの割り当てを変更する行動ａｔを選択する割当手段と、前記行動ａｔにより遷移した状態ｓｔ＋１から報酬ｒｔ＋１を計算する報酬計算手段と、前記報酬ｒｔ＋１を用いて、前記方策πを学習する学習手段と、を有することを特徴とする。
【発明の効果】
【００１０】
仮想ネットワークの動的割当における物理リソースの利用効率を向上させることができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施の形態におけるシステムの全体構成の一例を示す図である。
【図２】本発明の実施の形態におけるネットワーク制御装置のハードウェア構成の一例を示す図である。
【図３】本発明の実施の形態における制御部の機能構成の一例を示す図である。
【図４】本発明の実施の形態における事前学習処理の一例を示すフローチャートである。
【図５】本発明の実施の形態における動的ＶＮ割当処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態について、図面を参照しながら詳細に説明する。
【００１３】
＜全体構成＞
まず、本発明の実施の形態におけるシステムの全体構成について、図１を参照しながら説明する。図１は、本発明の実施の形態におけるシステムの全体構成の一例を示す図である。
【００１４】
図１に示すように、本発明の実施の形態におけるシステムには、物理ネットワーク３００と接続されるネットワーク制御装置１００が含まれる。物理ネットワーク３００は電気通信事業者のネットワーク環境であり、例えば、サーバ装置１０と、転送装置２０と、ユーザ端末３０とが含まれる。
【００１５】
ネットワーク制御装置１００は、制御部２００を有するコンピュータ又はコンピュータシステムである。ネットワーク制御装置１００は、制御部２００により、サービス提供者が構築した仮想ネットワーク（以降、単に「ＶＮ」とも表す。）を物理ネットワーク３００上に動的に割り当てる（すなわち、ネットワーク制御装置１００は、制御部２００により、ＮＦＶオーケストレータとして機能する。）。このとき、制御部２００は、ネットワーク状態（以降、単に「ＮＷ状態」とも表す。）と最適なＶＮ割当方法との関係を深層強化学習により事前に学習しておくことで、ＶＮ需要に追従可能な動的ＶＮ割当を実現する。
【００１６】
これにより、ＮＷ状態が連続的かつ高次元であっても、物理リソースの利用効率が高い動的ＶＮ割当を実現することが可能となる。なお、動的ＶＮ割当には、仮想ネットワーク機能（以降、単に「ＶＮＦ」とも表す。）を物理リソース上に配置することだけでなく、例えば、仮想マシン（ＶＭ：Virtual Machine、以降、単に「ＶＭ」とも表す。）を物理リソース上に配置したり、ＶＮＦ間やＶＭ間、ＶＮＦ−ＶＭ間等の最適な経路を決定したりすることも含まれる。
【００１７】
ここで、物理ネットワーク３００に対するＶＮ割当は、最適なＶＮ割当を示す設定命令が制御部２００により各サーバ装置１０及び各転送装置２０に送信されることで行われる。
【００１８】
また、ＮＷ状態とは、物理ネットワーク３００に含まれる各物理リソースの量（例えば、各サーバ装置１０のサーバ容量や各転送装置２０のリンク容量）等のことである。ＶＮ需要とは、ネットワークサービスの提供に必要な物理リソースの需要量（例えば、物理ネットワーク３００に含まれる或るリンクのトラヒック量（つまり、データ量）やサーバ装置１０上に構築する必要があるＶＭ数）等のことである。これらのＮＷ状態やＶＮ需要は、ネットワーク制御装置１００に入力されるネットワーク構成情報やネットワーク観測情報、ユーザ需要等から得られる。
【００１９】
ネットワーク構成情報とは、例えば、物理ネットワーク３００のネットワークトポロジー情報や物理リソースの制約条件（例えば、上述した物理リソースの量）等のことである。また、ネットワーク観測情報とは、例えば、物理ネットワーク３００を構成する各リンクのトラヒック量を示すトラヒック情報と、各サーバ装置１０のサーバ容量やＶＭ数を示すサーバ利用情報とのことである。また、ユーザ需要情報とは、例えば、ユーザ端末３０毎に必要なＶＭやＶＮＦ等の需要量やトラヒックの需要量等を示す情報のことである。
【００２０】
サーバ装置１０は、ネットワーク制御装置１００により割り当てられたＶＮＦを実現するコンピュータ又はコンピュータシステムである。サーバ装置１０は、サーバ利用情報を収集して、収集したサーバ利用情報をネットワーク制御装置１００に送信する。また、サーバ装置１０は、ネットワーク制御装置１００により割り当てられたＶＮＦに従ってトラヒックを処理し、トラヒックを発生させる。なお、以降では、複数のサーバ装置１０の各々を区別する場合は、「サーバ装置１０１」、「サーバ装置１０２」等と表す。
【００２１】
転送装置２０は、トラヒックを転送するノードとして機能する機器である。転送装置２０は、トラヒック情報を収集して、収集したトラヒック情報をネットワーク制御装置１００に送信する。また、転送装置２０は、経路情報に従ってトラヒックを処理する。なお、経路情報とは、例えば、ＶＭ間やＶＮＦ間、ＶＭ−ＶＮＦ間等の経路を示す情報のことである。なお、以降では、複数の転送装置２０の各々を区別する場合は、「転送装置２０１」、「転送装置２０２」等と表す。
【００２２】
ユーザ端末３０は、ユーザの通信行動（例えば、ネットワークサービスの利用開始操作等）により発生したトラヒックを、他のユーザ端末３０やサーバ装置１０等に送信するコンピュータである。また、ユーザ端末３０は、ユーザ需要情報をネットワーク制御装置１００に送信する。なお、以降では、複数のユーザ端末３０の各々を区別する場合は、「ユーザ端末３０１」、「ユーザ端末３０２」等と表す。
【００２３】
＜ネットワーク制御装置１００のハードウェア構成＞
次に、本発明の実施の形態におけるネットワーク制御装置１００のハードウェア構成について、図２を参照しながら説明する。図２は、本発明の実施の形態におけるネットワーク制御装置１００のハードウェア構成の一例を示す図である。
【００２４】
図４に示すように、本発明の実施の形態におけるネットワーク制御装置１００は、ハードウェアとして、外部Ｉ／Ｆ１０１と、ＲＡＭ（Random Access Memory）１０２と、ＲＯＭ（Read Only Memory）１０３と、プロセッサ１０４と、通信Ｉ／Ｆ１０５と、補助記憶装置１０６とを有する。これら各ハードウェアは、それぞれがバスＢを介して通信可能に接続されている。
【００２５】
外部Ｉ／Ｆ１０１は、外部装置とのインタフェースである。外部装置には、記録媒体１０１ａ等がある。ネットワーク制御装置１００は、外部Ｉ／Ｆ１０１を介して、記録媒体１０１ａの読み取りや書き込み等を行うことができる。
【００２６】
記録媒体１０１ａとしては、例えば、フレキシブルディスク、ＣＤ（Compact Disc）、ＤＶＤ（Digital Versatile Disk）、ＳＤメモリカード（Secure Digital memory card）、ＵＳＢ（Universal Serial Bus）メモリカード等がある。
【００２７】
ＲＡＭ１０２は、プログラムやデータを一時保持する揮発性の半導体メモリである。ＲＯＭ１０３は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリである。ＲＯＭ１０３には、例えば、ＯＳ（Operating System）に関する設定情報や通信ネットワークに関する設定情報等が格納されている。
【００２８】
プロセッサ１０４は、例えばＣＰＵ（Central Processing Unit）やＧＰＵ（Graphics Processing Unit）等であり、ＲＯＭ１０３や補助記憶装置１０６等からプログラムやデータをＲＡＭ１０２上に読み出して処理を実行する演算装置である。
【００２９】
通信Ｉ／Ｆ１０５は、ネットワーク制御装置１００を物理ネットワーク３００に接続するためのインタフェースである。
【００３０】
補助記憶装置１０６は、例えばＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）等であり、各種プログラムやデータを格納する。補助記憶装置１０６に格納されているプログラムやデータには、例えば、ＯＳ、当該ＯＳ上で各種機能を実現するアプリケーションソフトウェア、制御部２００を実現するプログラム等がある。
【００３１】
本発明の実施の形態におけるネットワーク制御装置１００は、図２に示すハードウェア構成を有することにより、後述する各種処理を実現することができる。なお、図２に示す例では、本発明の実施の形態におけるネットワーク制御装置１００が１台の装置（コンピュータ）で実現されている場合を示したが、これに限られず、複数台の装置（コンピュータ）で実現されていてもよい。また、１台の装置（コンピュータ）には、複数のプロセッサ１０４や複数のメモリ（ＲＡＭ１０２やＲＯＭ１０３、補助記憶装置１０６等）が含まれていてもよい。また、ネットワーク制御装置１００は、上記のハードウェアに加えて、例えば、ディスプレイ等の表示装置と、キーボードやマウス等の入力装置とを有していてもよい。
【００３２】
＜制御部２００の機能構成＞
次に、本発明の実施の形態における制御部２００の機能構成について、図３を参照しながら説明する。図３は、本発明の実施の形態における制御部２００の機能構成の一例を示す図である。
【００３３】
図３に示すように、本発明の実施の形態における制御部２００には、観測部２０１と、割当部２０２と、報酬計算部２０３と、学習部２０４と、設定命令部２０５とが含まれる。このような制御部２００は、例えば、ネットワーク制御装置１００にインストールされた１以上のプログラムが、プロセッサ１０４に実行させる処理により実現される。なお、観測部２０１と、割当部２０２と、報酬計算部２０３と、学習部２０４とが、深層強化学習におけるエージェントに相当する。
【００３４】
ここで、本発明の実施の形態では、或る一定の時間間隔（以降、「制御間隔」とも表す。）の時刻ｔ毎に事前学習及び動的ＶＮ割当を実行するものとして、深層強化学習における時刻ｔの状態、行動及び報酬をそれぞれｓｔ、ａｔ及びｒｔと表す。ただし、事前学習においては、次の学習を行うにあたり、制御間隔分の時間が実際に経過している必要はない。
【００３５】
観測部２０１は、事前学習及び動的ＶＮ割当において、状態ｓｔとして、ＶＮ需要やＮＷ状態等を観測する。観測部２０１は、ネットワーク構成情報やネットワーク観測情報、ユーザ需要情報を入力することで、状態ｓｔを観測する。
【００３６】
ここで、一例として、以下のように状態ｓｔを定義することが考えられる。
【００３７】
・想定するＶＮ数の最大値：ＮＶＮ
・ｉ番目のＶＮ：ＶＮｉ
・時刻ｔにおけるＶＮｉ（ｉ＝１，・・・，ＮＶＮ）のトラヒック需要（つまり、ＶＮｉが必要とするトラヒックの需要量）：Ｔｔｉ
・時刻ｔにおけるＶＮｉ（ｉ＝１，・・・，ＮＶＮ）のサーバ需要（つまり、ＶＮｉが必要とするサーバ容量）：Ｓｔｉ
・時刻ｔにおけるリンクｍ（ｍ＝１，・・・，Ｍ）の残余リンク帯域：Ｂｔｍ
・時刻ｔにおけるサーバ装置１０ｋ（ｋ＝１，・・・，Ｋ）の残余サーバ容量：Ｃｔｋ
このとき、状態ｓｔを、
【００３８】
【数１】
2020127182.tif 000003
とする。
【００３９】
また、例えば、過去時刻ｔ−Ｔまでのトラヒック需要を考慮する場合、状態ｓｔは、
【００４０】
【数２】
2020127182.tif 000004
とすればよい。
【００４１】
割当部２０２は、事前学習及び動的ＶＮ割当において、行動ａｔとして、状態ｓｔにおける方策πに従ってＶＮ割当の変更を選択及び実行する。なお、方策πは、状態ｓ＝ｓｔ，ａ＝ａｔとして、ａ＝π（ｓ）又はａ〜π（ａ｜ｓ）と表される。ａ〜π（ａ｜ｓ）は条件付き確率分布π（ａ｜ｓ）からａを選択（サンプリング）することを表す。
【００４２】
ここで、一例として、ＶＮ割当の変更量を制限するパラメータをＮとし、以下のように行動ａｔを定義することが考えられる。なお、選択可能な行動ａｔの集合を｛ａｔ１，ａｔ２，・・・｝とする。
【００４３】
（１）Ｎ＝１の場合
行動ａｔ１：ＶＮ１のサーバ需要をサーバ装置１０１に割り当てる
行動ａｔ２：ＶＮ１のサーバ需要をサーバ装置１０２に割り当てる
・・・
行動ａｔＫ：ＶＮ１のサーバ需要をサーバ装置１０Ｋに割り当てる
行動ａｔＫ＋１：ＶＮ２のサーバ需要をサーバ装置１０１に割り当てる
行動ａｔＫ＋２：ＶＮ２のサーバ需要をサーバ装置１０２に割り当てる
・・・
行動ａｔ２Ｋ：ＶＮ２のサーバ需要をサーバ装置１０Ｋに割り当てる
・・・
（２）Ｎ＝２の場合
行動ａｔ１：ＶＮ１のサーバ需要をサーバ装置１０１に割り当て、かつ、ＶＮ２のサーバ需要をサーバ装置１０１に割り当てる
行動ａｔ２：ＶＮ１のサーバ需要をサーバ装置１０１に割り当て、かつ、ＶＮ２のサーバ需要をサーバ装置１０２に割り当てる
・・・
行動ａｔＫ：ＶＮ１のサーバ需要をサーバ装置１０１に割り当て、かつ、ＶＮ２のサーバ需要をサーバ装置１０Ｋに割り当てる
行動ａｔＫ＋１：ＶＮ１のサーバ需要をサーバ装置１０２に割り当て、かつ、ＶＮ２のサーバ需要をサーバ装置１０１に割り当てる
行動ａｔＫ＋２：ＶＮ１のサーバ需要をサーバ装置１０２に割り当て、かつ、ＶＮ２のサーバ需要をサーバ装置１０２に割り当てる
・・・
行動ａｔ２Ｋ：ＶＮ１のサーバ需要をサーバ装置１０２に割り当て、かつ、ＶＮ２のサーバ需要をサーバ装置１０Ｋに割り当てる
・・・
（３）Ｎ＝ｎの場合
行動ａｔ１：ＶＮ１のサーバ需要をサーバ装置１０１に割り当て、かつ、ＶＮ２のサーバ需要をサーバ装置１０１に割り当て、かつ、・・・、かつ、ＶＮｎのサーバ需要をサーバ装置１０１に割り当てる
・・・
このように、パラメータＮがＮ＝ｎである場合、ＶＮ１〜ＶＮｎのｎ個のＶＮを、複数のサーバ装置１０のうち、行動ａｔ毎に予め決められた１以上のサーバ装置１０に割り当てる。なお、例えば、各時刻ｔでパラメータＮを調整することで、各時刻ｔでＶＮ割当の変更に要する時間を調整することが可能となる。
【００４４】
報酬計算部２０３は、事前学習において、行動ａｔの実行により状態がｓｔからｓｔ＋１に遷移した場合に、報酬ｒｔ＋１を計算する。
【００４５】
ここで、一例として、報酬ｒｔ＋１を以下のように定義することが考えられる。すなわち、まず、最適化問題の一種であるＶＮＥ（Virtual Network Embedding）問題の制約条件と目的関数とを以下のように定義する。
【００４６】
・制約条件：リンク帯域の利用率が１００％以下、かつ、サーバ容量の利用率が１００％以下
・目的関数：リンク帯域、サーバ容量及びＶＮ再配置回数
このとき、全ての制約条件を満たしつつ、目的関数が最小となるように、以下のように報酬ｒｔ＋１を定義する。なお、ＶＮ再配置とは、或るサーバ装置１０に割り当てられているＶＮを、他のサーバ装置１０に割り当てることをいう。
【００４７】
・制約条件を満たさない場合、報酬ｒｔ＋１＝−１００
・制約条件を満たすが、ＶＮ再配置の結果、リンク帯域及びサーバ容量のいずれか又は両方の利用効率が低下した場合（つまり、ＶＮ再配置回数の最小化のみが実現されている場合）、報酬ｒｔ＋１＝−１００
・制約条件を満たすが、リンク帯域の利用率が９０％以上の場合（例えば、突発的なトラヒック変動が発生したような場合）、報酬ｒｔ＋１＝０
・上記以外で、制約条件を満たす場合（つまり、リンク帯域の利用率及びサーバ容量の利用率の最小化が実現されている場合）、報酬ｒｔ＋１＝１−（各リンク帯域の利用率の平均＋各サーバ容量の利用率の平均）／２
このように、制約条件を満たし、かつ、できるだけＶＮ再配置回数を少なくしつつ、リンク帯域及びサーバ容量の利用率を最小化（すなわち、物理リソースの利用効率を向上）するように報酬ｒｔ＋１が定義される。
【００４８】
なお、上記の制約条件及び目的関数は一例であって、これ以外にも、例えば、制約条件として「ネットワーク遅延が所定の閾値以下」としてもよいし、目的関数として「サーバ装置１０の消費電力（の合計）」としてもよい。
【００４９】
学習部２０４は、事前学習において、将来にわたって受け取る報酬ｒｔが最大となるように方策πを学習する。
【００５０】
設定命令部２０５は、動的ＶＮ割当において、割当部２０２が実行した行動ａｔに応じた設定命令をサーバ装置１０や転送装置２０等に送信する。これにより、当該行動ａｔにより変更されたＶＮ割当となるように、各サーバ装置１０や各転送装置２０の設定が変更される。
【００５１】
＜事前学習処理＞
次に、動的ＶＮ制御を行う前に実行される事前学習処理について、図４を参照しながら説明する。図４は、本発明の実施の形態における事前学習処理の一例を示すフローチャートである。以降のステップＳ１０１〜ステップＳ１０４は、所定の終了条件を満たすまで時刻ｔ毎に繰り返し実行される。所定の終了条件としては、例えば、所定の繰り返し回数に達したこと、学習結果を表す任意の指標値（例えば、物理リソースの利用効率を表す指標値）が所定の値以上となったこと等が挙げられる。
【００５２】
なお、深層強化学習のアルゴリズムとしては、任意の深層強化学習アルゴリズムを用いることが可能である。例えば、非特許文献１に記載されているＤＱＮ（Deep Q-Network）や非特許文献２に記載されているＡ３Ｃ（Asynchronous Advantage Actor-Critic）等を用いることが可能である。
【００５３】
ステップＳ１０１：観測部２０１は、ネットワーク構成情報やネットワーク観測情報、ユーザ需要情報を入力して、状態ｓｔ（すなわち、ＶＮ需要やＮＷ状態等）を観測する。ただし、各時刻ｔでネットワーク構成情報が不変である場合、ネットワーク構成情報は初回のみ（例えば、時刻ｔ＝１のときのみ）入力されればよい。
【００５４】
ステップＳ１０２：次に、割当部２０２は、状態ｓｔにおける方策πに従って行動ａｔ（すなわち、ＶＮ割当の変更）を選択及び実行する。これにより、状態ｓｔが状態ｓｔ＋１に遷移する。
【００５５】
ステップＳ１０３：次に、報酬計算部２０３は、報酬ｒｔ＋１を計算する。なお、報酬計算部２０３は、状態ｓｔ＋１におけるネットワーク構成情報やネットワーク観測情報、ユーザ需要情報を入力することで、報酬ｒｔ＋１を計算することができる。ただし、上記と同様に、ネットワーク構成情報は初回のみ入力されてもよい。又は、ステップＳ１０３が実行される前に、観測部２０１により状態ｓｔ＋１を観測し、この観測結果を用いて報酬ｓｔ＋１が計算されてもよい。
【００５６】
ステップＳ１０４：次に、学習部２０４は、将来にわたって受け取る報酬ｒｔが最大となるように方策πを学習する。
【００５７】
以上により、本発明の実施の形態におけるネットワーク制御装置１００では、将来にわたって受け取る報酬ｒｔが最大となるように（すなわち、できるだけＶＮ再配置回数を少なくしつつ、物理リソースの利用効率が最大となるように）方策πが学習される。このとき、本発明の実施の形態では、深層強化学習を用いることで、例えばトラヒック需要等の各変数を離散化する必要がなく、連続値として扱うことが可能となると共に、各リンクの残余リンク帯域や各サーバ装置１０の残余サーバ容量等の情報もＮＷ状態として含めることが可能になる。したがって、物理リソースの利用効率を高くするようなＶＮ割当を高い精度で実現することが可能となる。
【００５８】
＜動的ＶＮ割当処理＞
次に、ネットワークサービス提供中に実行される動的ＶＮ割当処理について、図５を参照しながら説明する。図５は、本発明の実施の形態における動的ＶＮ割当処理の一例を示すフローチャートである。以降のステップＳ２０１〜ステップＳ２０５は、時刻ｔ毎に（つまり、制御間隔毎に）繰り返し実行される。
【００５９】
ステップＳ２０１：まず、割当部２０２は、１つ前の時刻ｔ−１から現在の時刻ｔまでの間に、新たなＶＮ割当要求を受け付けたか否かを判定する。ここで、新たなＶＮ割当要求は、例えば、ネットワークサービスのサービス提供者が端末等を操作して新たなＶＮの割当要求操作を行うことで、当該端末等からネットワーク制御装置１００に送信される。
【００６０】
新たなＶＮ割当要求を受け付けた場合、ステップＳ２０２に進む。一方で、新たなＶＮ割当要求を受け付けていない場合、ステップＳ２０２が実行されずに、ステップＳ２０３に進む。
【００６１】
ステップＳ２０２：割当部２０２は、新たなＶＮ割当要求に応じたＶＮを、物理ネットワーク３００の空いている物理リソース上に割り当てる。
【００６２】
ステップＳ２０３：次に、観測部２０１は、ネットワーク構成情報やネットワーク観測情報、ユーザ需要情報を入力して、状態ｓｔ（すなわち、ＶＮ需要やＮＷ状態等）を観測する。ただし、各時刻ｔでネットワーク構成情報が不変である場合、ネットワーク構成情報は初回のみ（例えば、時刻ｔ＝１のときのみ）入力されればよい。なお、上記のステップＳ２０２が実行された場合は、状態ｓｔは、新たなＶＮ割当要求に応じたＶＮが割り当てられた後のＶＮ需要やＮＷ状態等のことである。
【００６３】
ステップＳ２０４：次に、割当部２０２は、状態ｓｔにおける方策πに従って行動ａｔ（すなわち、ＶＮ割当の変更）を選択及び実行する。ここで、方策πは事前学習で学習された方策である。これにより、最適なＶＮ割当の変更が選択及び実行され、状態ｓｔが状態ｓｔ＋１に遷移する。
【００６４】
ステップＳ２０５：次に、設定命令部２０５は、上記のステップＳ２０４で変更されたＶＮ割当に応じた設定命令をサーバ装置１０や転送装置２０等に送信する。これにより、変更後のＶＮ割当となるように、各サーバ装置１０や各転送装置２０の設定が変更される。
【００６５】
以上により、本発明の実施の形態におけるネットワーク制御装置１００では、事前学習で学習された方策πに従って最適な行動ａｔ（すなわち、できるだけＶＮ再配置回数を少なくしつつ、物理リソースの利用効率が最大となるＶＮ割当への変更）が選択及び実行される。
【００６６】
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【符号の説明】
【００６７】
１０        サーバ装置
２０        転送装置
３０        ユーザ端末
１００      ネットワーク制御装置
１０１      外部Ｉ／Ｆ
１０１ａ    記録媒体
１０２      ＲＡＭ
１０３      ＲＯＭ
１０４      プロセッサ
１０５      通信Ｉ／Ｆ
１０６      補助記憶装置
２００      制御部
２０１      観測部
２０２      割当部
２０３      報酬計算部
２０４      学習部
２０５      設定命令部
３００      物理ネットワーク
【図１】
2020127182.tif 000005
【図２】
2020127182.tif 000006
【図３】
2020127182.tif 000007
【図４】
2020127182.tif 000008
【図５】
2020127182.tif 000009