本発明の実施の形態について図面を参照しながら詳細に説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰返さない。
図1は、この発明の実施の形態による通信システムの概略図である。図1を参照して、この発明の実施の形態による通信システム100は、制御装置10と、BSS_1~BSS_N(Nは、2以上の整数)と、BSS_UNCOORDとを備える。
BSS_1~BSS_N,BSS_UNCOORDの各々は、アクセスポイントAPと端末装置TMとからなるBSS(Basic Service Set)である。以下、BSSを「サービスセット」と言う。
サービスセットBSS_1は、アクセスポイントAP_1と端末装置TM_1とからなる。サービスセットBSS_2は、アクセスポイントAP_2と端末装置TM_2とからなる。以下、同様にして、サービスセットBSS_N-1は、アクセスポイントAP_N-1と端末装置TM_N-1とからなり、サービスセットBSS_Nは、アクセスポイントAP_Nと端末装置TM_Nとからなる。サービスセットBSS_UNCOORDは、アクセスポイントAP_UNCOORDと端末装置TM_UNCOORDとからなる。
サービスセットBSS_1~BSS_Nは、フレームの送信情報を共有し、相互に協調して無線通信を行うサービスセットである。サービスセットBSS_UNCOORDは、サービスセットBSS_1~BSS_Nにおける無線通信を妨害するサービスセットである。
アクセスポイントAP_1~AP_Nは、それぞれ、タイムスロットを用いて端末装置TM_1~TM_Nと相互に無線通信を行う。アクセスポイントAP_UNCOORDは、アクセスポイントAP_1~AP_Nのうちの制御対象のアクセスポイントAP_CTLにおける無線通信を妨害するように、タイムスロットを用いて端末装置TM_UNCOORDと相互に無線通信を行う。
制御対象のアクセスポイントAP_CTLは、アクセスポイントAP_1~AP_Nのうちの任意の1つのアクセスポイントAPからなる。アクセスポイントAP_1~AP_Nのうちの制御対象のアクセスポイントAP_CTL以外のアクセスポイントAPは、協調APである。
以下においては、例えば、アクセスポイントAP_Nを制御対象のアクセスポイントAP_CTLとし、アクセスポイントAP_1~AP_N-1を協調APとする。そして、アクセスポイントAP_UNCOORDは、制御対象のアクセスポイントAP_CTLと協調して無線通信を行わない協調外のアクセスポイントである。
制御対象のアクセスポイントAP_CTLであるアクセスポイントAP_Nは、フレームを端末装置TM_Nへ送信し、その後、端末装置TM_NからACKを受信したか否かによってフレームの端末装置TM_Nへの送信が成功したか失敗したかを判定することによってフレームの端末装置TM_Nへの送信が成功したか失敗したかを示す成功/失敗情報IF_SUCCESS/FAILUREを検出する。この場合、アクセスポイントAP_Nは、端末装置TM_NからACKを受信したとき、フレームの端末装置TM_Nへの送信が成功したと判定し、端末装置TM_NからACKを受信しないとき、フレームの端末装置TM_Nへの送信が失敗したと判定する。
また、アクセスポイントAP_Nは、フレームの送信に用いた送信区間TRS_CTLと、各送信区間TRS_CTLにおけるフレームの伝送速度TRD_CTLとを検出する。
更に、アクセスポイントAP_Nは、フレームの送信を予定する送信スケジュールSCH_CTLを生成する。
そして、アクセスポイントAP_Nは、送信者としての自己のMACアドレスAdd_AP_N、成功/失敗情報IF_SUCCESS/FAILURE、送信区間TRS_CTL、伝送速度TRD_CTLおよび送信スケジュールSCH_CTLを制御装置10へ送信する。
更に、アクセスポイントAP_Nは、アクセスポイントAP_UNCOORDと端末装置TM_UNCOORDとの無線通信を検知したとき、アクセスポイントAP_UNCOORDおよび端末装置TM_UNCOORDが相互に無線通信を行った送信区間TRS_UNCOORDを検出する。そして、アクセスポイントAP_Nは、アクセスポイントAP_UNCOORDのMACアドレスAdd_AP_UNCOORDと送信区間TRS_UNCOORDとを制御装置10へ送信する。
協調APであるアクセスポイントAP_1~AP_N-1は、アクセスポイントAP_N(=制御対象のアクセスポイントAP_CTL)とフレーム送信情報を共有し、アクセスポイントAP_N(=制御対象のアクセスポイントAP_CTL)と協調して、それぞれ、端末装置TM_1~TM_N-1と相互に無線通信を行う。
そして、アクセスポイントAP_1~AP_N-1は、それぞれ、フレームの送信を予定する送信スケジュールSCH_COORD_1~SCH_COORD_N-1を生成し、その生成した送信スケジュールSCH_COORD_1~SCH_COORD_N-1とMACアドレスAdd_AP_1~Add_AP_N-1とを制御装置10へ送信する。
アクセスポイントAP_UNCOORDは、アクセスポイントAP_N(=制御対象のアクセスポイントAP_CTL)とフレーム送信情報を共有することなく、アクセスポイントAP_N(=制御対象のアクセスポイントAP_CTL)による無線通信を妨害するように端末装置TM_UNCOORDと相互に無線通信を行う。
なお、図1においては、サービスセットBSS_1~BSS_N,BSS_UNCOORDの各々は、1つのアクセスポイントAPと1つの端末装置TMとからなるように示されているが、この発明の実施の形態においては、これに限らず、サービスセットBSS_1~BSS_N,BSS_UNCOORDの各々は、1つのアクセスポイントAPと複数の端末装置TMとからなっていてもよい。
制御装置10は、有線ケーブルを介してアクセスポイントAP_1~AP_Nと接続されている。そして、制御装置10は、有線ケーブルを介して制御対象のアクセスポイントAP_NからMACアドレスAdd_AP_N、成功/失敗情報IF_SUCCESS/FAILURE、送信区間TRS_CTL、伝送速度TRD_CTL、送信スケジュールSCH_CTL、MACアドレスAdd_AP_UNCOORDおよび送信区間TRS_UNCOORDを収集し、協調APのアクセスポイントAP_1~AP_N-1からそれぞれMACアドレスAdd_AP_1~Add_AP_N-1および送信スケジュールSCH_COORD_1~SCH_COORD_N-1を収集する。
制御装置10は、成功/失敗情報IF_SUCCESS/FAILURE、送信区間TRS_CTL、伝送速度TRD_CTL、送信スケジュールSCH_CTL、送信区間TRS_UNCOORDおよび送信スケジュールSCH_COORD(=SCH_COORD_1~SCH_COORD_N-1)に基づいて、後述する方法によって、敵対的強化学習を実行して、アクセスポイントAP_Nと端末装置TM_Nとの無線通信へのアクセスポイントAP_UNCOORDによる妨害が存在する通信環境において、アクセスポイントAP_Nの無線通信性能を維持するアクセスポイントAP_Nの行動(「性能維持行動」と言う。)を生成し、その生成した性能維持行動を行うように制御対象のアクセスポイントAP_Nを制御する。
図2は、図1に示す制御装置10の概略図である。図2を参照して、制御装置10は、収集手段1と、データベース2と、制御手段3と、学習器4,5とを備える。
収集手段1は、有線ケーブル6を介して制御対象のアクセスポイントAP_NからMACアドレスAdd_AP_N、成功/失敗情報IF_SUCCESS/FAILURE、送信区間TRS_CTL、伝送速度TRD_CTL、送信スケジュールSCH_CTL、MACアドレスAdd_AP_UNCOORDおよび送信区間TRS_UNCOORDを受信し、協調APのアクセスポイントAP_1~AP_N-1からそれぞれMACアドレスAdd_AP_1~Add_AP_N-1および送信スケジュールSCH_COORD_1~SCH_COORD_N-1を受信する。
そして、収集手段1は、その受信したMACアドレスAdd_AP_N、成功/失敗情報IF_SUCCESS/FAILURE、送信区間TRS_CTL、伝送速度TRD_CTL、送信スケジュールSCH_CTL、MACアドレスAdd_AP_UNCOORD、送信区間TRS_UNCOORD、MACアドレスAdd_AP_1~Add_AP_N-1および送信スケジュールSCH_COORD_1~SCH_COORD_N-1をデータベース2に格納する。
データベース2は、MACアドレスAdd_AP_N、成功/失敗情報IF_SUCCESS/FAILURE、送信区間TRS_CTL、伝送速度TRD_CTL、送信スケジュールSCH_CTL、MACアドレスAdd_AP_UNCOORD、送信区間TRS_UNCOORD、MACアドレスAdd_AP_1~Add_AP_N-1および送信スケジュールSCH_COORD(=SCH_COORD_1~SCH_COORD_N-1)を記憶する。
制御手段3は、成功/失敗情報IF_SUCCESS/FAILURE、送信区間TRS_CTL、伝送速度TRD_CTL、送信スケジュールSCH_CTL、送信区間TRS_UNCOORDおよび送信スケジュールSCH_COORDをデータベース2から読み出す。そして、制御手段3は、アクセスポイントAP_Nが制御対象のアクセスポイントAP_CTLであることを示す信号S_CTL_AP(AP_N)を生成する。その後、制御手段3は、後述する方法によって、送信区間TRS_CTLおよび送信区間TRS_UNCOORDに基づいて、直近Xスロットにおける制御対象のアクセスポイントAP_Nおよび協調外のアクセスポイントAP_UNCOORDによるフレームの送信有無の履歴Shistoryを生成する。そうすると、制御手段3は、信号S_CTL_AP(AP_N)、成功/失敗情報IF_SUCCESS/FAILURE、送信区間TRS_CTL、送信区間TRS_UNCOORD、伝送速度TRD_CTL、送信スケジュールSCH_CTL,SCH_COORDおよび履歴Shistoryを学習器4,5へ出力する。
また、制御手段3は、制御対象のアクセスポイントAP_Nが次にフレームを送信するタイミングになると、敵対的強化学習の結果を学習器4から受け、その受けた敵対的強化学習の結果に基づいて、次にフレームを送信するタイムスロットにおける制御対象のアクセスポイントAP_Nの行動を制御する。
更に、制御手段3は、制御対象のアクセスポイントAP_Nが次にフレームを送信するタイミングになると、敵対的強化学習の結果を学習器5から受け、その受けた敵対的強化学習の結果に基づいて、次にフレームを送信するタイムスロットにおける協調外のアクセスポイントAP_UNCOORDの行動を制御する。
学習器4は、信号S_CTL_AP(AP_N)、成功/失敗情報IF_SUCCESS/FAILURE、送信区間TRS_CTL、伝送速度TRD_CTL、送信スケジュールSCH_CTL,SCH_COORDおよび履歴Shistoryを制御手段3から受ける。そして、学習器4は、信号S_CTL_AP(AP_N)に基づいて、アクセスポイントAP_Nが制御対象のアクセスポイントAP_CTLであり、アクセスポイントAP_1~AP_N-1が協調APであることを検知する。また、学習器4は、アクセスポイントAP_UNCOORDの行動価値関数FUNCTION_UNCOORDを学習器5から受ける。
そうすると、学習器4は、送信区間TRS_CTL、伝送速度TRD_CTL、成功/失敗情報IF_SUCCESS/FAILURE、送信スケジュールSCH_CTL,SCH_COORDおよび履歴Shistoryを入力情報として、後述する方法によって、アクセスポイントAP_UNCOORDの行動価値関数FUNCTION_UNCOORDを固定して敵対的強化学習をN0(N0は、1以上の整数)個のタイムスロットにおいて繰り返し実行することによって制御対象のアクセスポイントAP_Nの期待累積報酬が最大になるように制御対象のアクセスポイントAP_Nの行動価値関数FUNCTION_CTLを繰り返し更新し、その更新した行動価値関数FUNCTION_CTLを学習器5へ出力することをNitcr個のタイムスロット内のN0個のタイムスロットごとに繰り返し実行する。
また、学習器4は、送信スケジュールSCH_CTLに基づいて制御対象のアクセスポイントAP_Nが次にフレームを送信するタイミングになったことを検知すると、制御対象のアクセスポイントAP_Nが次にフレームを送信するタイミングになったときの敵対的強化学習の結果を制御手段3へ出力する。
学習器5は、信号S_CTL_AP(AP_N)、成功/失敗情報IF_SUCCESS/FAILURE、送信区間TRS_CTL、伝送速度TRD_CTL、送信スケジュールSCH_CTL,SCH_COORDおよび履歴Shistoryを制御手段3から受ける。そして、学習器5は、信号S_CTL_AP(AP_N)に基づいて、アクセスポイントAP_Nが制御対象のアクセスポイントAP_CTLであり、アクセスポイントAP_1~AP_N-1が協調APであることを検知する。また、学習器5は、制御対象のアクセスポイントAP_Nの行動価値関数FUNCTION_CTLを学習器4から受ける。
そうすると、学習器5は、制御対象のアクセスポイントAP_Nの行動価値関数FUNCTION_CTLを固定して敵対的強化学習をN1(N1は、1以上の整数)個のタイムスロットにおいて繰り返し実行することによって制御対象のアクセスポイントAP_Nの期待累積報酬が最小になるようにアクセスポイントAP_UNCOORDの行動価値関数FUNCTION_UNCOORDを繰り返し更新し、その更新した行動価値関数FUNCTION_UNCOORDを学習器4へ出力することをNitcr個のタイムスロット内のN1個のタイムスロットごとに繰り返し実行する。
また、学習器5は、送信スケジュールSCH_CTLに基づいて制御対象のアクセスポイントAP_Nが次にフレームを送信するタイミングになったことを検知すると、制御対象のアクセスポイントAP_Nが次にフレームを送信するタイミングになったときの敵対的強化学習の結果を制御手段3へ出力する。
このように、学習器4は、学習器5から出力されるアクセスポイントAP_UNCOORDの行動価値関数FUNCTION_UNCOORDを固定して敵対的強化学習を実行し、学習器5は、学習器4から出力されるアクセスポイントAP_Nの行動価値関数FUNCTION_CTLを固定して敵対的強化学習する。つまり、学習器4,5は、それぞれN0個のタイムスロットおよびN1個のタイムスロットにおいて敵対的強化学習を交互に実行することをNitcr個のタイムスロットにおいて実行する。従って、Nitcrは、(N0+N1)を自然数倍した整数からなる。
また、学習器4,5は、制御対象のアクセスポイントAP_Nの送信スケジュールSCH_CTLに基づいて制御対象のアクセスポイントAP_Nによるフレームの送信タイミングになったことを検知すると、制御対象のアクセスポイントAP_Nによるフレームの送信タイミングにおける敵対的強化学習の最新の結果を制御手段3へ出力する。
図3は、制御対象のアクセスポイントAP_Nから収集した情報を記憶する対応表の概念図である。
図3を参照して、テーブルTBL1-1は、名前と、送信者と、送信区間と、伝送速度と、成功/失敗情報と、送信スケジュールとを含む。
名前、送信者、送信区間、伝送速度、成功/失敗情報および送信スケジュールは、相互に対応付けられる。
送信者は、制御対象であるアクセスポイントAP_NのMACアドレスAdd_AP_Nからなる。送信区間は、過去の直近Xスロットにおいて、アクセスポイントAP_Nがフレームの送信に用いたタイムスロットの開始時刻および終了時刻[tSTART_N_1,tEND_N_1],[tSTART_N_2,tEND_N_2],・・・からなる。その結果、開始時刻および終了時刻[tSTART_N_1,tEND_N_1],[tSTART_N_2,tEND_N_2],・・・で表される送信区間以外の送信区間は、過去の直近Xスロットにおいて、アクセスポイントAP_Nがフレームを送信しなかったタイムスロットを表す。伝送速度は、TR_rate_N_1,TR_rate_N_2,・・・からなる。そして、伝送速度TR_rate_N_1,TR_rate_N_2,・・・は、それぞれ、送信区間[tSTART_N_1,tEND_N_1],[tSTART_N_2,tEND_N_2],・・・に対応付けられる。
成功/失敗情報は、“0”または“1”(=0/1)からなる。“0”は、フレームの送信が失敗したことを表し、“1”は、フレームの送信が成功したことを表す。そして、各成功/失敗情報は、それぞれ、送信区間[tSTART_N_1,tEND_N_1],[tSTART_N_2,tEND_N_2],・・・および伝送速度TR_rate_N_1,TR_rate_N_2,・・・に対応付けられる。
送信スケジュールSCH_CTLは、制御対象のアクセスポイントAP_Nがフレームの送信を予定するタイムスロットの開始時刻および終了時刻[tSTART_SCH_N_1,tEND_SCH_N_1],[tSTART_SCH_N_2,tEND_SCH_N_2],・・・からなる。そして、送信スケジュールSCH_CTLは、送信者Add_AP_Nに対応付けられる。
収集手段1は、アクセスポイントAP_NからMACアドレスAdd_AP_N、成功/失敗情報IF_SUCCESS/FAILURE、送信区間TRS_CTL、伝送速度TRD_CTLおよび送信スケジュールSCH_CTLを受信すると、MACアドレスAdd_AP_N、送信区間TRS_CTL、伝送速度TRD_CTL、成功/失敗情報IF_SUCCESS/FAILUREおよび送信スケジュールSCH_CTLをデータベース2内の対応表TBL1-1に格納する。
図4は、制御対象のアクセスポイントAP_Nによる無線通信を妨害するアクセスポイントAP_UNCOORDのフレームの送信区間TRS_UNCOORDを記憶する対応表の概念図である。
図4を参照して、対応表TBL1-2は、名前と、送信者と、送信区間とを含む。名前、送信者および送信区間は、相互に対応付けられる。
送信者は、アクセスポイントAP_UNCOORDのMACアドレスAdd_AP_UNCOORDからなる。送信区間TRS_UNCOORDは、過去の直近Xスロットにおいて、アクセスポイントAP_UNCOORDがフレームを送信したタイムスロットの開始時刻および終了時刻[tSTART_UNCOORD_1,tEND_UNCOORD_1],[tSTART_UNCOORD_2,tEND_UNCOORD_2],・・・,[tSTART_UNCOORD_d,tEND_UNCOORD_d]からなる。dは、アクセスポイントAP_UNCOORDがフレームを送信した直近のタイムスロットの個数を表し、0以上の整数からなる。その結果、開始時刻および終了時刻[tSTART_UNCOORD_1,tEND_UNCOORD_1],[tSTART_UNCOORD_2,tEND_UNCOORD_2],・・・,[tSTART_UNCOORD_d,tEND_UNCOORD_d]で表される送信区間以外の送信区間は、過去の直近Xスロットにおいて、アクセスポイントAP_UNCOORDがフレームを送信しなかったタイムスロットを表す。
対応表TBL1-2における送信区間[tSTART_UNCOORD_1,tEND_UNCOORD_1],[tSTART_UNCOORD_2,tEND_UNCOORD_2],・・・,[tSTART_UNCOORD_d,tEND_UNCOORD_d]の引数1,2,・・・,dは、アクセスポイントAP_UNCOORDがフレームを送信した直近のタイムスロットの個数を表すため、対応表TBL1-1における送信区間[tSTART_N_1,tEND_N_1],[tSTART_N_2,tEND_N_2],・・・の引数1,2,・・・と同じである場合もあれば、異なる場合もある。
収集手段1は、アクセスポイントAP_NからMACアドレスAdd_AP_UNCOORDおよび送信区間TRS_UNCOORDを受信すると、MACアドレスAdd_AP_UNCOORDおよび送信区間TRS_UNCOORDを対応表TBL1-2に格納する。
図5は、協調APであるアクセスポイントAP_1~AP_N-1の送信スケジュールを記憶する対応表の概念図である。
図5を参照して、テーブルTBL2-1は、名前と、送信者と、送信スケジュールとを含む。名前、送信者および送信スケジュールは、相互に対応付けられる。
送信者は、協調APであるアクセスポイントAP_1~AP_N-1のMACアドレスAdd_AP_1~Add_AP_N-1からなる。
送信スケジュールは、タイムスロットの開始時刻および終了時刻“[tSTART_1_1,tEND_1_1],[tSTART_1_2,tEND_1_2],・・・”、“[tSTART_2_1,tEND_2_1],[tSTART_2_2,tEND_2_2],・・・”、“[tSTART_3_1,tEND_3_1],[tSTART_3_2,tEND_3_2],・・・”、・・・、“[tSTART_N-1_1,tEND_N-1_1],[tSTART_N-1_2,tEND_N-1_2],・・・”からなる。
送信スケジュール[tSTART_1_1,tEND_1_1],[tSTART_1_2,tEND_1_2],・・・は、送信者Add_AP_1に対応付けられ、送信スケジュール[tSTART_2_1,tEND_2_1],[tSTART_2_2,tEND_2_2],・・・は、送信者Add_AP_2に対応付けられ、送信スケジュール[tSTART_3_1,tEND_3_1],[tSTART_3_2,tEND_3_2],・・・は、送信者Add_AP_3に対応付けられ、以下、同様にして、送信スケジュール[tSTART_N-1_1,tEND_N-1_1],[tSTART_N-1_2,tEND_N-1_2],・・・は、送信者Add_AP_N-1に対応付けられる。
収集手段1は、アクセスポイントAP_1~AP_N-1からそれぞれMACアドレスAdd_AP_1~Add_AP_N-1および送信スケジュールSCH_COORD_1~SCH_COORD_N-1を受信すると、MACアドレスAdd_AP_1~Add_AP_N-1および送信スケジュールSCH_COORD_1~SCH_COORD_N-1を対応表TBL2-1に格納する。
学習器4,5における敵対的強化学習(非特許文献2)について説明する。この発明の実施の形態においては、学習器4は、フレームの送信タイミングにおける制御対象のアクセスポイントAP_Nの方策(即ち、制御対象のアクセスポイントAP_Nが行動を選択すること)を獲得するため、学習段階において制御対象のアクセスポイントAP_Nの無線通信を妨害する仮想的なアクセスポイントである敵対アクセスポイントAP_ADVの存在下において敵対的強化学習を実行する。従って、上述したアクセスポイントAP_UNCOORDは、学習段階においては、敵対アクセスポイントAP_ADVからなる。
学習器5は、制御対象のアクセスポイントAP_Nによる無線通信をより効果的に妨害するような敵対アクセスポイントAP_ADVの方策を獲得しようと学習する。
一方、学習器4は、制御対象のアクセスポイントAP_Nが妨害に晒されたとしても無線通信の性能を維持できるような方策を獲得しようと学習する。
学習段階において、主体エージェント(制御対象のアクセスポイントAP_N)と敵対者(敵対アクセスポイントAP_ADV)が競争を行うシナリオを考える際、この二者の競争を2プレーヤーゼロサムマルコフゲーム(非特許文献3,4)で表現する。
マルコフゲームは、(S,Ap,Aa,T,r,γ,P)によって表すことができる。Sは、状態空間を表し、Apは、主体エージェントの行動空間を表し、Aaは、敵対者の行動空間を表し、Tは、S×Ap×Aa×Sからなり、状態遷移確率を表し、rは、S×Ap×Aaからなり、報酬を表し、γは、割引率を表し、Pは、初期状態の確率分布を表す。なお、γは、0≦γ≦1を満たす実数からなる。
制御対象のアクセスポイントAP_Nおよび敵対アクセスポイントAP_ADVは、各タイムスロットにおいて同じ状態(=状態空間Sのうちの1つの状態)を観測する。この状態は、(1)協調APであるアクセスポイントAP_1~AP_N-1のフレームの送信有無の状態と、(2)制御対象のアクセスポイントAP_Nおよび敵対アクセスポイントAP_ADVの直近Xスロットにおけるフレームの送信有無の履歴とからなる。なお、Xは、1以上の整数である。
従って、状態空間Sは、次式によって表される。
式(1)において、Si(i=1,2,・・・,N-1)は、協調APであるアクセスポイントAP_1~AP_N-1のフレームの送信有無の状態を表し、次式によって定義される。
式(2)において、“-1”は、1つのタイムスロットにおいてフレームを送信していない状態を表し、“1”は、1つのタイムスロットにおいてフレームを送信している状態を表す。
また、式(1)において、Shistoryは、制御対象のアクセスポイントAP_Nおよび敵対アクセスポイントAP_ADVの直近Xスロットにおけるフレームの送信有無の履歴を表しており、次式によって定義される。
式(3)において、S0は、0以上の整数である。また、x1,x2,x3は、直近Xスロットの間にそれぞれのタイムスロットに対応する制御対象のアクセスポイントAP_Nと敵対アクセスポイントAP_ADVとの行動組のスロット数を表す。
そして、x1は、制御対象のアクセスポイントAP_Nおよび敵対アクセスポイントAP_ADVの両者が共にフレームを送信していたスロット数を表し、x2は、制御対象のアクセスポイントAP_Nがフレームの送信を行っていたが、敵対アクセスポイントAP_ADVがフレームの送信を行っていなかったスロット数を表し、x3は、敵対アクセスポイントAP_ADVのフレームの送信の有無に関わらず、制御対象のアクセスポイントAP_Nがフレームの送信を行っていなかったスロット数を表す。なお、初期状態S0のうち、制御対象のアクセスポイントAP_Nおよび敵対アクセスポイントAP_ADVの直近Xスロットの通信履歴によって決定されるS0,history∈Shistoryは、一様分布によって決定される。
制御手段3は、データベース2の対応表TBL1-1から送信区間[tSTART_N_1,tEND_N_1],[tSTART_N_2,tEND_N_2],・・・を読み出し、データベース2の対応表TBL1-2から送信区間[tSTART_UNCOORD_1,tEND_UNCOORD_1],[tSTART_UNCOORD_2,tEND_UNCOORD_2],・・・,[tSTART_UNCOORD_d,tEND_UNCOORD_d]を読み出す。
そして、制御手段3は、送信区間[tSTART_N_1,tEND_N_1],[tSTART_N_2,tEND_N_2],・・・と送信区間[tSTART_UNCOORD_1,tEND_UNCOORD_1],[tSTART_UNCOORD_2,tEND_UNCOORD_2],・・・,[tSTART_UNCOORD_d,tEND_UNCOORD_d]とにおいて、相互に一致する送信区間を検出し、その検出した送信区間の個数をスロット数x1とする。
また、制御手段3は、送信区間[tSTART_N_1,tEND_N_1],[tSTART_N_2,tEND_N_2],・・・から、送信区間[tSTART_UNCOORD_1,tEND_UNCOORD_1],[tSTART_UNCOORD_2,tEND_UNCOORD_2],・・・,[tSTART_UNCOORD_d,tEND_UNCOORD_d]のいずれとも一致しない送信区間を検出し、その検出した送信区間の個数をスロット数x2とする。送信区間[tSTART_N_1,tEND_N_1],[tSTART_N_2,tEND_N_2],・・・のうち、送信区間[tSTART_UNCOORD_1,tEND_UNCOORD_1],[tSTART_UNCOORD_2,tEND_UNCOORD_2],・・・,[tSTART_UNCOORD_d,tEND_UNCOORD_d]のいずれとも一致しない送信区間は、制御対象のアクセスポイントAP_Nがフレームを送信し、かつ、敵対アクセスポイントAP_ADVがフレームを送信しなかった送信区間を表すからである。
更に、制御手段3は、送信区間[tSTART_N_1,tEND_N_1],[tSTART_N_2,tEND_N_2],・・・と異なる送信区間(制御対象のアクセスポイントAP_Nがフレームを送信しなかった区間)のうちで、送信区間[tSTART_UNCOORD_1,tEND_UNCOORD_1],[tSTART_UNCOORD_2,tEND_UNCOORD_2],・・・,[tSTART_UNCOORD_d,tEND_UNCOORD_d]のいずれかと一致する送信区間と、送信区間[tSTART_UNCOORD_1,tEND_UNCOORD_1],[tSTART_UNCOORD_2,tEND_UNCOORD_2],・・・,[tSTART_UNCOORD_d,tEND_UNCOORD_d]と異なる送信区間(アクセスポイントAP_UNCOORDがフレームを送信しなかった送信区間)のいずれかと一致する送信区間とを検出し、その検出した2つの送信区間の個数をスロット数x3とする。制御対象のアクセスポイントAP_Nがフレームを送信しなかった区間のうちで、送信区間[tSTART_UNCOORD_1,tEND_UNCOORD_1],[tSTART_UNCOORD_2,tEND_UNCOORD_2],・・・,[tSTART_UNCOORD_d,tEND_UNCOORD_d]のいずれかと一致する送信区間は、制御対象のアクセスポイントAP_Nがフレームを送信せず、かつ、敵対アクセスポイントAP_ADVがフレームを送信した送信区間TRS_1を表し、制御対象のアクセスポイントAP_Nがフレームを送信しなかった区間のうちで、アクセスポイントAP_UNCOORDがフレームを送信しなかった送信区間のいずれかと一致する送信区間は、制御対象のアクセスポイントAP_NおよびアクセスポイントAP_UNCOORDの両方がフレームを送信しなかった区間TRS_2を表すので、上記の2つの区間TRS_1,TRS_2は、敵対アクセスポイントAP_ADVのフレームの送信の有無に関わらず、制御対象のアクセスポイントAP_Nがフレームの送信を行っていなかったスロット数を表すからである。
このように、制御手段3は、送信区間[tSTART_N_1,tEND_N_1],[tSTART_N_2,tEND_N_2],・・・と送信区間[tSTART_UNCOORD_1,tEND_UNCOORD_1],[tSTART_UNCOORD_2,tEND_UNCOORD_2],・・・,[tSTART_UNCOORD_d,tEND_UNCOORD_d]とに基づいて、スロット数x1,x2,x3を生成する。即ち、制御手段3は、制御対象のアクセスポイントAP_Nの送信区間TRS_CTLとアクセスポイントAP_UNCOORDの送信区間TRS_UNCOORDとに基づいて直近Xスロット(X=x1+x2+x3)におけるフレームの送信有無の履歴Shistoryを生成する。
次に、行動空間について説明する。各タイムスロットにおいて、制御対象のアクセスポイントAP_Nは、獲得した方策に基づいてフレームを送信するか否かを決定する。そして、制御対象のアクセスポイントAP_Nは、フレームを送信する場合、MCS(Modulation and coding scheme)index(以下、「MCSインデックス」と言う。)に基づいてフレームの伝送速度TRD_CTLを決定する。つまり、制御対象のアクセスポイントAP_Nの行動空間Apは、次式によって表される。
式(4)において、“-1”は、フレームを送信しないことを表し、Mは、フレームを送信する場合に選択できるMCSインデックスの集合を表す。
MCSインデックスの集合Mは、次式によって表される。
式(5)の右辺の各数字は、制御対象のアクセスポイントAP_Nがフレームを送信する場合に選択するMCSインデックスの値を表す。ここで、式(5)の右辺の数字が大きい方がより速い伝送速度でフレームを送信する行動を表し、数字が小さい方がより遅い伝送速度でフレームを送信する行動を表してもよく、数字が大きい方がより遅い伝送速度でフレームを送信する行動を表し、数字が小さい方がより速い伝送速度でフレームを送信する行動を表してもよく、一般的には、数字が異なれば、異なる伝送速度でフレームを送信することを表していればよい。
敵対アクセスポイントAP_ADVは、フレームを送信するか送信しないかのみを決定する。従って、敵対アクセスポイントAP_ADVの行動空間Aaは、次式によって表される。
式(6)において、“-1”は、フレームを送信しないことを表し、“1”は、フレームを送信することを表す。
次に、制御対象のアクセスポイントAP_Nが獲得する報酬rについて説明する。制御対象のアクセスポイントAP_Nの報酬および敵対アクセスポイントAP_ADVの報酬は、互いに符号を反転させた関係を有する。従って、学習器5は、制御対象のアクセスポイントAP_Nが獲得する報酬が小さくなるように、即ち、制御対象のアクセスポイントAP_Nの無線通信を妨害するように学習する。
制御対象のアクセスポイントAP_Nが獲得する報酬rは、次式によって表される。
式(7)において、apは、制御対象のアクセスポイントAP_Nの行動を表し、aaは、敵対アクセスポイントAP_ADVの行動を表す。また、cは、正の整数である。そして、制御対象のアクセスポイントAP_Nがフレームを送信する行動(ap=“1”)は、式(5)に示す集合Mの1つの要素(集合Mの1つのMCSインデックスで表される伝送速度でフレームを送信する行動)からなる。
式(7A)は、制御対象のアクセスポイントAP_Nおよび敵対アクセスポイントAP_ADVの両方がフレームを送信した場合に制御対象のアクセスポイントAP_Nが得られる報酬を表す。式(7A)においては、制御対象のアクセスポイントAP_Nがフレームの送信に成功したとき、報酬rは、タイムスロット当たりの“0”よりも大きいデータ量(Data/slot(>0))からなり、制御対象のアクセスポイントAP_Nがフレームの送信に失敗したとき、報酬rは、“0”からなる。従って、式(7A)においては、制御対象のアクセスポイントAP_Nが得られる報酬rをタイムスロット当たりの“0”以上のデータ量(Data/slot(≧0))としている。
また、式(7B)は、制御対象のアクセスポイントAP_Nがフレームを送信せず、かつ、敵対アクセスポイントAP_ADVがフレームを送信した場合に制御対象のアクセスポイントAP_Nが得られる報酬rを表す。
更に、式(7C)は、制御対象のアクセスポイントAP_Nがフレームを送信し、かつ、敵対アクセスポイントAP_ADVがフレームを送信しなかった場合に制御対象のアクセスポイントAP_Nが得られる報酬rを表す。式(7C)においては、制御対象のアクセスポイントAP_Nがフレームの送信に成功したとき、報酬rは、タイムスロット当たりの“0”よりも大きいデータ量(Data/slot(>0))からなり、制御対象のアクセスポイントAP_Nがフレームの送信に失敗したとき、報酬rは、“0”からなる。つまり、敵対アクセスポイントAP_ADVがフレームを送信しない場合、制御対象のアクセスポイントAP_Nは、必ずしも、フレームの送信に成功するということはなく、例えば、伝送速度が速過ぎたためにフレームの送信に失敗することもある。従って、式(7C)においても、制御対象のアクセスポイントAP_Nが得られる報酬rをタイムスロット当たりの“0”以上のデータ量(Data/slot(≧0))としている。
なお、式(7A)によって得られる報酬rと式(7C)によって得られる報酬rとを比較した場合、一般的には、式(7A)によって得られる報酬rは、式(7C)によって得られる報酬rよりも小さくなる。式(7A)においては、制御対象のアクセスポイントAP_Nおよび敵対アクセスポイントAP_ADVの両方がフレームを送信するので、制御対象のアクセスポイントAP_Nによるフレームの送信が敵対アクセスポイントAP_ADVによるフレームの送信と衝突し、制御対象のアクセスポイントAP_Nがフレームの送信に失敗する場合があるが、式(7C)においては、敵対アクセスポイントAP_ADVがフレームを送信しないので、制御対象のアクセスポイントAP_Nによるフレームの送信と敵対アクセスポイントAP_ADVによるフレームの送信との衝突によって制御対象のアクセスポイントAP_Nがフレームの送信に失敗する場合が無いからである。つまり、式(7C)の場合の方が式(7A)の場合よりも制御対象のアクセスポイントAP_Nがフレームの送信に成功する可能性が大きくなるからである。
このように、式(7A)によって得られる報酬rは、式(7C)によって得られる報酬rよりも小さくなるので、制御対象のアクセスポイントAP_Nは、敵対アクセスポイントAP_ADVとの衝突を避ける行動を取るようになる。
更に、式(7D)は、制御対象のアクセスポイントAP_Nおよび敵対アクセスポイントAP_ADVの両方がフレームを送信しなかった場合に制御対象のアクセスポイントAP_Nが得られる報酬rを表す。
従って、制御対象のアクセスポイントAP_Nが式(7)によって得る報酬rは、各タイムスロットにおいて制御対象のアクセスポイントAP_Nがフレームを送信したときに得られる第1の報酬(式(7A)または式(7C)によって得られる報酬)と、各タイムスロットにおいて制御対象のアクセスポイントAP_Nがフレームを送信しなかったときに得られる第2の報酬(式(7B)または式(7D)によって得られる報酬)とを含む。
式(7)において、式(7D)によって得られる報酬r(=-c)を式(7B)によって得られる報酬r(=c)よりも小さく設定することによって、敵対アクセスポイントAP_ADVがフレームを送信する場合と比較して、敵対アクセスポイントAP_ADVがフレームを送信しない場合に制御対象のアクセスポイントAP_Nの報酬rがより小さくなるため(つまり、制御対象のアクセスポイントによる無線通信を妨害できるため)、敵対アクセスポイントAP_ADVが常にフレームを送信するようになることを回避できる。
このように、報酬rは、協調外の敵対アクセスポイントAP_ADVの行動にも依存するため、制御対象のアクセスポイントAP_Nは、後述する運用段階において、敵対アクセスポイントAP_ADVのような外部のアクセスポイントとの衝突を避けようとするようになる。
なお、式(7)においては、式(7B)において、制御対象のアクセスポイントAP_Nがフレームを送信せず、かつ、敵対アクセスポイントAP_ADVがフレームを送信したときに制御対象のアクセスポイントAP_Nが得られる報酬rをG(>0)とし、式(7D)において、制御対象のアクセスポイントAP_Nおよび敵対アクセスポイントAP_ADVの両方がフレームを送信しなかったときに制御対象のアクセスポイントAP_Nが得られる報酬rを-Y(Y>0)としてもよい。この場合、Gは、式(7B)に示す“c”と同じ値であってもよく、“c”と異なる値であってもよい。また、-Yは、式(7D)に示す“-c”と同じ値であってもよく、“-c”と異なる値であってもよい。その結果、Gは、Yと同じ値であることもあれば、Yと異なる値であることもある。
敵対アクセスポイントAP_ADVは、制御対象のアクセスポイントAP_Nによる無線通信を妨害する。つまり、敵対アクセスポイントAP_ADVは、制御対象のアクセスポイントAP_Nが取得する報酬rが少なくなる行動を取ろうとする。従って、制御対象のアクセスポイントAP_Nによる無線通信を妨害する観点からすれば、敵対アクセスポイントAP_ADVは、制御対象のアクセスポイントAP_Nがフレームを送信しないとき、自己もフレームを送信しない行動(aa=-1)を取ることによって、制御対象のアクセスポイントAP_Nが取得する報酬rを最も少なくできる(r=-c)。
また、敵対アクセスポイントAP_ADVは、制御対象のアクセスポイントAP_Nがフレームを送信するとき(ap=1)、自己もフレームを送信する行動(aa=1)を取って制御対象のアクセスポイントAP_Nによるフレームの送信を失敗させることによって、または制御対象のアクセスポイントAP_Nによるフレームの送信が失敗することが無くても制御対象のアクセスポイントAP_Nがフレームを送信するときの伝送速度を低下させることによって制御対象のアクセスポイントAP_Nが取得する報酬rを2番目に少なくできる(r≧0)。
制御対象のアクセスポイントAP_Nがフレームを送信せず、かつ、敵対アクセスポイントAP_ADVがフレームを送信する場合(ap=-1,aa=1)、および制御対象のアクセスポイントAP_Nがフレームを送信し、かつ、敵対アクセスポイントAP_ADVがフレームを送信しない場合(ap=1,aa=-1)においては、cの具体的な値によって、報酬r=cと報酬r=データ量/Slotとの大小関係が決まる。
従って、c>データ量/Slotであるとき、敵対アクセスポイントAP_ADVは、制御対象のアクセスポイントAP_Nがフレームを送信すれば(ap=1)、フレームを送信しない行動(aa=-1)を制御対象のアクセスポイントAP_Nの無線通信を妨害する行動として3番目に取る。そして、敵対アクセスポイントAP_ADVは、制御対象のアクセスポイントAP_Nがフレームを送信しないとき(ap=-1)、自己がフレームを送信する行動(aa=1)を制御対象のアクセスポイントAP_Nの無線通信を妨害する行動として4番目に取る。
また、データ量/Slot>cであるとき、敵対アクセスポイントAP_ADVは、制御対象のアクセスポイントAP_Nがフレームを送信しないとき(ap=-1)、自己がフレームを送信する行動(aa=1)を制御対象のアクセスポイントAP_Nの無線通信を妨害する行動として3番目に取る。そして、敵対アクセスポイントAP_ADVは、制御対象のアクセスポイントAP_Nがフレームを送信すれば(ap=1)、フレームを送信しない行動(aa=-1)を制御対象のアクセスポイントAP_Nの無線通信を妨害する行動として4番目に取る。データ量/Slot>cであるときに敵対アクセスポイントAP_ADVが1番目および2番目に取る行動は、c>データ量/Slotであるときと同じである。
一方、制御対象のアクセスポイントAP_Nが敵対アクセスポイントAP_ADVによる妨害が存在する通信環境において自己の無線通信の性能を維持する観点からは、制御対象のアクセスポイントAP_Nは、できるだけ多くの報酬rを取得できる行動を取ろうとする。
従って、データ量/Slot>cであるとき、制御対象のアクセスポイントAP_Nは、敵対アクセスポイントAP_ADVがフレームを送信しないとき(aa=-1)、フレームを送信する行動(ap=1)を1番目に取る。そして、制御対象のアクセスポイントAP_Nは、敵対アクセスポイントAP_ADVがフレームを送信するとき(aa=1)、フレームを送信する行動(ap=1)を2番目に取る。また、制御対象のアクセスポイントAP_Nは、敵対アクセスポイントAP_ADVがフレームを送信するとき(aa=1)、フレームを送信しない行動(ap=-1)を3番目に取る。更に、制御対象のアクセスポイントAP_Nは、敵対アクセスポイントAP_ADVがフレームを送信しないとき(aa=-1)、フレームを送信しない行動(ap=-1)を4番目に取る。
一方、c>データ量/Slotであるとき、制御対象のアクセスポイントAP_Nは、敵対アクセスポイントAP_ADVがフレームを送信するとき(aa=1)、フレームを送信しない行動(ap=-1)を1番目に取る。そして、制御対象のアクセスポイントAP_Nは、敵対アクセスポイントAP_ADVがフレームを送信しないとき(aa=-1)、フレームを送信する行動(ap=1)を2番目に取る。また、制御対象のアクセスポイントAP_Nは、敵対アクセスポイントAP_ADVがフレームを送信するとき(aa=1)、フレームを送信する行動(ap=1)を3番目に取る。更に、制御対象のアクセスポイントAP_Nは、敵対アクセスポイントAP_ADVがフレームを送信しないとき(aa=-1)、フレームを送信しない行動(ap=-1)を4番目に取る。
図6は、敵対的強化学習の方法を説明するための図である。図6を参照して、学習器4は、敵対アクセスポイントAP_ADVの方策を固定した状態で制御対象のアクセスポイントAP_Nの方策をN0個のタイムスロットにおいて学習する。
次に、学習器5は、制御対象のアクセスポイントAP_Nの方策を固定した状態で敵対アクセスポイントAP_ADVの方策をN1個のタイムスロットにおいて学習する。
以後、学習器4,5は、それぞれ、N0個のタイムスロットにおいて制御対象のアクセスポイントAP_Nの方策を学習することと、N1個のタイムスロットにおいて敵対アクセスポイントAP_ADVの方策を学習することとを交互にNitcr個のタイムスロットにおいて繰り返し実行する。即ち、学習器4は、Nitcr個のタイムスロットにおいて、N0個のタイムスロットごとに、敵対アクセスポイントAP_ADVの方策を固定した状態で制御対象のアクセスポイントAP_Nの方策を学習し、学習器5は、Nitcr個のタイムスロットにおいて、N1個のタイムスロットごとに、制御対象のアクセスポイントAP_Nの方策を固定した状態で敵対アクセスポイントAP_ADVの方策を学習する。なお、N0は、N1と同じであってもよく、N1と異なっていてもよい。
学習器4,5がそれぞれ制御対象のアクセスポイントAP_Nの方策および敵対アクセスポイントAP_ADVの方策を交互に更新することによって、制御対象のアクセスポイントAP_Nの行動価値関数Qπ
p(s,a)および敵対アクセスポイントAP_ADVの行動価値関数Qπ
a(s,a)が最適化されて行く。
ここで、行動価値関数Qπ
i(s,a),i∈{p,a}は、エージェントiが方策πに基づいて状態sで行動aを取る場合の価値を表し、次式によって表される。
式(8)において、s0は、初期の状態を表し、a0は、初期の行動を表す。また、式(8)において、r_{i,t+1}は、制御対象のアクセスポイントAP_Nの報酬r_{p,t+1}または敵対アクセスポイントAP_ADVの報酬r_{a,t+1}である。
学習器4は、最初のN0個のタイムスロットにおいて、敵対アクセスポイントAP_ADVの行動価値関数Qπ
a(s,a)を固定して、次式に示す期待累積報酬Rが最大になるように制御対象のアクセスポイントAP_Nの行動価値関数Qπ
p(s,a)を更新する。
式(9)において、rkは、制御対象のアクセスポイントAP_Nがkスロット先に観測する報酬を表す。その結果、式(9)は、制御対象のアクセスポイントAP_Nがフレームを送信する予定であるタイムスロットにおいて取得し得る報酬を累積した期待累積報酬を表す。
学習器4は、敵対アクセスポイントAP_ADVの行動価値関数Qπ
a(s,a)を固定した状態で、N0個のタイムスロットの各タイムスロットにおいて、式(9)に示す期待累積報酬Rが最大になるように制御対象のアクセスポイントAP_Nの行動価値関数Qπ
p(s,a)をQ学習(非特許文献5)によって次式のように更新する。
式(10)において、αは、学習率であり、0<α<1を満たす実数である。また、s’は、次のタイムスロットにおける状態を表す。
次に、学習器5は、制御対象のアクセスポイントAP_Nの行動価値関数Qπ
p(s,a)を固定した状態で、N1個のタイムスロットの各タイムスロットにおいて、式(9)に示す期待累積報酬Rが最小になるように敵対アクセスポイントAP_ADVの行動価値関数Qπ
a(s,a)をQ学習によって次式のように更新する。
式(11)に示すように、敵対アクセスポイントAP_ADVが取得する報酬(=-r)は、式(10)に示す制御対象のアクセスポイントAP_Nが取得する報酬rの符号を反転させた報酬である。
学習器4,5は、それぞれ、式(10)に示す行動価値関数Qπ
p(s,a)の更新と式(11)に示す行動価値関数Qπ
a(s,a)の更新とを交互にNitcr個のタイムスロットにおいて繰り返し実行する。
制御対象のアクセスポイントAP_Nおよび敵対アクセスポイントAP_ADVは、それぞれ、自己の行動価値関数Qπ
p(s,a),Qπ
a(s,a)に基づいて行動を選択する場合、ソフトマックス(Softmax)行動選択則(非特許文献5)またはε-greedy行動則(非特許文献5)に従って行動ap,aaを選択する。
ソフトマックス(Softmax)行動選択則によって行動を選択する場合、制御対象のアクセスポイントAP_Nおよび敵対アクセスポイントAP_ADVは、それぞれ、自己の行動ap,aaを次式に示す確率で選択する。
式(12)において、Q(s,b)は、行動価値関数を表し、式(12)の分母のシグマは、全ての行動bに対する和を表す。τは、温度と呼ばれる正の数である。τが高くなれば、全ての行動がほぼ同じ確率で選択されるようになり、τが低くなれば、価値の高い行動が選ばれ易くなる。
また、ε-greedy行動則によって行動を選択する場合、制御対象のアクセスポイントAP_Nは、確率1-εで行動価値関数Qπ
p(s,a)が最大になる行動apを選択し、確率εで行動apをランダムに選択する。一方、敵対アクセスポイントAP_ADVは、確率1-εで行動価値関数Qπ
a(s,a)が最小になる行動aaを選択し、確率εで行動aaをランダムに選択する。εは、例えば、0.3に設定される。
図7は、協調アクセスポイントの状態を説明するための図である。図7を参照して、時刻t1~t2のタイムスロットSlot_1においては、協調APであるアクセスポイントAP_1が送信を行っている状態であり、時刻t2~t3のタイムスロットSlot_2においては、協調APであるアクセスポイントAP_N-1が送信を行っている状態である。
また、時刻t3~t4のタイムスロットSlot_3においては、協調APであるアクセスポイントAP_1~AP_N-1の全てが送信を行っていない状態であり、時刻t4~t5のタイムスロットSlot_4においては、協調APであるアクセスポイントAP_1,AP_N-1が送信を行っている状態である。
従って、協調APであるアクセスポイントAP_1~AP_N-1から収集した送信スケジュールSCH_COORDを参照すれば、各タイムスロットSlotにおいて、協調APであるアクセスポイントAP_1~AP_N-1の状態(=“-1”または“1”)を容易に決定することができる。
制御対象のアクセスポイントAP_Nは、タイムスロットSlot_1において、協調APであるアクセスポイントAP_1がフレームの送信を行っている状態で3Mbit/slotの伝送速度でフレームを送信し、端末装置TM_NからのACKの有無によってフレームの送信が成功したか失敗したかを示す成功/失敗情報IF_SUCCESS/FAILUREを検出する。そして、制御対象のアクセスポイントAP_Nは、その検出した成功/失敗情報IF_SUCCESS/FAILUREを制御装置10へ送信する。
また、制御対象のアクセスポイントAP_Nは、タイムスロットSlot_3において、協調APであるアクセスポイントAP_1~AP_N-1の全てがフレームの送信を行っていない状態で1Mbit/slotの伝送速度でフレームを送信し、端末装置TM_NからのACKの有無によってフレームの送信が成功したか失敗したかを示す成功/失敗情報IF_SUCCESS/FAILUREを検出する。そして、制御対象のアクセスポイントAP_Nは、その検出した成功/失敗情報IF_SUCCESS/FAILUREを制御装置10へ送信する。
更に、制御対象のアクセスポイントAP_Nは、タイムスロットSlot_4において、協調APであるアクセスポイントAP_1,AP_N-1がフレームの送信を行っている状態で2Mbit/slotの伝送速度でフレームを送信し、端末装置TM_NからのACKの有無によってフレームの送信が成功したか失敗したかを示す成功/失敗情報IF_SUCCESS/FAILUREを検出する。そして、制御対象のアクセスポイントAP_Nは、その検出した成功/失敗情報IF_SUCCESS/FAILUREを制御装置10へ送信する。
この発明の実施の形態においては、式(7A)および式(7C)における“0”よりも大きい報酬rは、ある1つのタイムスロットにおいて制御対象のアクセスポイントAP_Nがフレームの送信に成功したときのデータ量である。
従って、式(7A)および式(7C)における“0”よりも大きい報酬rは、図3に示す対応表TBL1-1の送信区間、伝送速度および成功/失敗情報に基づいて算出される。より具体的には、成功/失敗情報が“1”からなる場合、式(7A)および式(7C)における“0”よりも大きい報酬rは、r=送信区間の時間長(=tEND_N-tSTART_N)×伝送速度によって算出され、成功/失敗情報が“0”からなる場合、報酬rは、r=0である。
以下においては、協調APであるアクセスポイントAP_1~AP_N-1を2個のアクセスポイント(=アクセスポイントAP_1,AP_2)に設定し、制御対象のアクセスポイントAP_Nが取り得る行動apを、フレームを送信しない行動(=“-1”)、MCSインデックスが“1”である伝送速度でフレームを送信する行動(=“1”)、MCSインデックスが“2”である伝送速度でフレームを送信する行動(=“2”)、およびMCSインデックスが“3”である伝送速度でフレームを送信する行動(=“3”)の4個に設定して、Q学習の方法について説明する。
図8から図10は、協調APであるアクセスポイントAP_1,AP_2の状態と、制御対象のアクセスポイントAP_Nおよび敵対アクセスポイントAP_ADVの直近Xスロットにおけるフレームの送信有無の履歴Shistoryの状態とを示す図である。
図8は、X(=x1+x2+x3)が“1”であるときの協調APであるアクセスポイントAP_1,AP_2の状態と、制御対象のアクセスポイントAP_Nおよび敵対アクセスポイントAP_ADVの直近Xスロットにおけるフレームの送信有無の履歴Shistoryの状態とを示す。
図9は、X(=x1+x2+x3)が“2”であるときの協調APであるアクセスポイントAP_1,AP_2の状態と、制御対象のアクセスポイントAP_Nおよび敵対アクセスポイントAP_ADVの直近Xスロットにおけるフレームの送信有無の履歴Shistoryの状態とを示す。
図10は、X(=x1+x2+x3)が“3”であるときの協調APであるアクセスポイントAP_1,AP_2の状態と、制御対象のアクセスポイントAP_Nおよび敵対アクセスポイントAP_ADVの直近Xスロットにおけるフレームの送信有無の履歴Shistoryの状態とを示す。
図8から図10においては、協調APであるアクセスポイントAP_1,AP_2の状態を2ビットの数値[n1,n2]で表し、制御対象のアクセスポイントAP_Nおよび敵対アクセスポイントAP_ADVの直近Xスロットにおけるフレームの送信有無の履歴Shistoryの状態を式(3)に示すように3個の数値[x1,x2,x3]で表す。x1は、制御対象のアクセスポイントAP_Nおよび敵対アクセスポイントAP_ADVの両方がフレームを送信したスロット数を表し、x2は、制御対象のアクセスポイントAP_Nがフレームを送信し、かつ、敵対アクセスポイントAP_ADVがフレームを送信しなかったスロット数を表し、x3は、敵対アクセスポイントAP_ADVのフレームの送信有無に関わらず、制御対象のアクセスポイントAP_Nがフレームを送信しなかったスロット数を表す。
その結果、協調APであるアクセスポイントAP_1,AP_2の状態と、制御対象のアクセスポイントAP_Nおよび敵対アクセスポイントAP_ADVの直近Xスロットにおけるフレームの送信有無の履歴Shistoryの状態とは、2ビットの数値[n1,n2]と3個の数値[x1,x2,x3]とからなる状態[n1,n2,x1,x2,x3]で表される。
図8を参照して、X(=x1+x2+x3)が“1”であるとき、x1,x2,x3のうちの1つが“1”であり、残りの2つが“0”であるので、x1,x2,x3の状態[x1,x2,x3]は、[1,0,0],[0,1,0],[0,0,1]の3通りである。そして、アクセスポイントAP_1,AP_2の状態[n1,n2]は、n1,n2の各々がフレームを送信する状態(=“1”)とフレームを送信しない状態(=“-1”)とからなるので、[-1,-1],[1,-1],[-1,1],[1,1]の4通りである。その結果、3通りの状態[x1,x2,x3]は、アクセスポイントAP_1,AP_2の4通りの状態[n1,n2]の各々に対して存在するので、アクセスポイントAP_1,AP_2の状態と、制御対象のアクセスポイントAP_Nおよび敵対アクセスポイントAP_ADVの直近Xスロットにおけるフレームの送信有無の履歴Shistoryの状態とを示す[n1,n2,x1,x2,x3]は、12(=4×3)通りである。
図9を参照して、X(=x1+x2+x3)が“2”であるとき、x1,x2,x3のうちの1つが“2”であり、残りの2つが“0”である場合と、x1,x2,x3のうちの2つが“1”であり、残りの1つが“0”である場合とがあるので、x1,x2,x3の状態[x1,x2,x3]は、[2,0,0],[0,2,0],[0,0,2],[1,1,0],[1,0,1],[0,1,1]の6通りである。その結果、アクセスポイントAP_1,AP_2の状態[n1,n2]が4通りであり、6通りの状態[x1,x2,x3]がアクセスポイントAP_1,AP_2の4通りの状態[n1,n2]の各々に対して存在するので、アクセスポイントAP_1,AP_2の状態と、制御対象のアクセスポイントAP_Nおよび敵対アクセスポイントAP_ADVの直近Xスロットにおけるフレームの送信有無の履歴Shistoryの状態とを示す[n1,n2,x1,x2,x3]は、24(=4×6)通りである。
図10を参照して、X(=x1+x2+x3)が“3”であるとき、x1,x2,x3のうちの1つが“3”であり、残りの2つが“0”である場合と、x1,x2,x3のうちの1つが“2”であり、別の1つが“1”であり、残りの1つが“0”である場合と、x1,x2,x3の各々が“1”である場合とがあるので、x1,x2,x3の状態[x1,x2,x3]は、[3,0,0],[0,3,0],[0,0,3],[2,1,0],[2,0,1],[0,2,1],[1,2,0],[1,0,2],[0,1,2],[1,1,1]の10通りである。その結果、アクセスポイントAP_1,AP_2の状態[n1,n2]が4通りであり、10通りの状態[x1,x2,x3]がアクセスポイントAP_1,AP_2の4通りの状態[n1,n2]の各々に対して存在するので、アクセスポイントAP_1,AP_2の状態と、制御対象のアクセスポイントAP_Nおよび敵対アクセスポイントAP_ADVの直近Xスロットにおけるフレームの送信有無の履歴Shistoryの状態とを示す[n1,n2,x1,x2,x3]は、40(=4×10)通りである。
図8から図10において説明したように、スロット数x1,x2,x3のうちの1つによってXを構成する場合と、スロット数x1,x2,x3のうちの2つによってXを構成する場合と、スロット数x1,x2,x3の全てによってXを構成する場合とについて、スロット数x1,x2,x3の各々がとり得る値を決定することによって履歴Shistoryの状態が何通りあるかを決定し、その決定した履歴Shistoryの状態の通り数を協調APであるアクセスポイントAP_1,AP_2の各状態に適用してアクセスポイントAP_1,AP_2および履歴Shistoryの状態を求める。
Xが“4”以上である場合について、[n1,n2,x1,x2,x3]の通り数は、次の方法によって求める。x1がXである場合には、x2,x3の状態[x2,x3]は、[0,0]の1通り、x1がX-1である場合には、x2,x3の状態[x2,x3]は、[0,1],[1,0]の2通り、x1がX-2である場合には、x2,x3の状態[x2,x3]は、[0,2],[1,1],[2,0]の3通り、・・・、x1が0である場合には、x2,x3の状態[x2,x3]は、[0,X],[1,X-1],…,[X,0]のX+1通りあり、これらの合計1+2+…+(X+1)=(X+1)(X+2)/2通りの状態がアクセスポイントAP_1,AP_2の4通りの状態[n1,n2]の各々に対して存在するので、アクセスポイントAP_1,AP_2の状態と、制御対象のアクセスポイントAP_Nおよび敵対アクセスポイントAP_ADVの直近Xスロットにおけるフレームの送信有無の履歴Shistoryの状態とを示す[n1,n2,x1,x2,x3]は、2(X+1)(X+2)(=(X+1)(X+2)/2×4)通りである。
従って、Xが“4”以上である場合も、アクセスポイントAP_1,AP_2の状態と、制御対象のアクセスポイントAP_Nおよび敵対アクセスポイントAP_ADVの直近Xスロットにおけるフレームの送信有無の履歴Shistoryの状態とを示す[n1,n2,x1,x2,x3]を求めることができる。
以下においては、X(=x1+x2+x3)が“2”であるときを例として制御対象のアクセスポイントAP_Nおよび敵対アクセスポイントAP_ADVの敵対的強化学習を説明する。
図11は、制御対象のアクセスポイントAP_Nの行動価値関数Qπ
p(s,a)をQ学習によって更新するときのQテーブルの概念図である。
図11を参照して、制御対象のアクセスポイントAP_Nの行動価値関数Qπ
p(s,a)をQ学習によって更新するときのQテーブルTBL-Q1は、協調APであるアクセスポイントAP_1,AP_2および直近Xスロットにおけるフレームの送信有無の履歴Shistoryの状態と、制御対象のアクセスポイントAP_Nの行動とによって構成される。
X=2であるので、QテーブルTBL-Q1における協調APであるアクセスポイントAP_1,AP_2およびShistoryの状態は、図9に示すアクセスポイントAP_1,AP_2およびShistoryの状態からなる。
制御対象のアクセスポイントAP_Nの行動apは、上述したように、[-1,1,2,3]の4個であるので、QテーブルTBL-Q1における行動は、4個の行動からなる。
従って、QテーブルTBL-Q1は、24行×4列の行列によって表され、96個のQ値(=Q1,1~Q24,4)を含む。そして、96個のQ値(=Q1,1~Q24,4)の初期値は、“0”である。
図12は、敵対アクセスポイントAP_ADVの行動価値関数Qπ
a(s,a)をQ学習によって更新するときのQテーブルの概念図である。
図12を参照して、敵対アクセスポイントAP_ADVの行動価値関数Qπ
a(s,a)をQ学習によって更新するときのQテーブルTBL-Q2は、協調APであるアクセスポイントAP_1,AP_2および履歴Shistoryの状態と、敵対アクセスポイントAP_ADVの行動とによって構成される。
協調APであるアクセスポイントAP_1,AP_2および履歴Shistoryの状態は、図11において説明した通りである。
敵対アクセスポイントAP_ADVの行動空間Aaは、式(6)に示すように、フレームを送信する(=“1”)と、フレームを送信しない(=“-1”)とからなるので、敵対アクセスポイントAP_ADVが取り得る行動aaは、2個である。
従って、QテーブルTBL-Q2は、24行×2列の行列によって表され、48個のQ値(=Q1,1~Q24,2)を含む。そして、48個のQ値(=Q1,1~Q24,2)の初期値は、“0”である。
図13から図19は、それぞれ、Qテーブルの更新方法を説明するための第1から第7の概略図である。また、図20は、制御対象のアクセスポイントAP_Nおよび敵対アクセスポイントAP_ADVの通信の履歴を示す図である。なお、図20において、“-1/1”は、敵対アクセスポイントAP_ADVがフレームを送信する行動およびフレームを送信しない行動のうちのいずれかの行動を実行したことを示す。
図13を参照して、Q学習の初期状態においては、QテーブルTBL-Q1_1の全てのQ値(Q1,1~Q24,4)は、“0”である(図13の(a)参照)。
そして、学習器4は、アクセスポイントAP_1,AP_2の状態、および制御手段3から受けた履歴Shistoryに基づいてアクセスポイントAP_1,AP_2および履歴Shistoryの状態stを決定する。
図20に示すように、制御対象のアクセスポイントAP_Nは、タイムスロットSlot_5においてフレームを送信し、成功/失敗情報IF_SUCCESS/FAILUREを取得する。また、制御対象のアクセスポイントAP_Nは、タイムスロットSlot_5において、敵対アクセスポイントAP_ADVがフレームを送信したことを観測する。そして、制御対象のアクセスポイントAP_Nは、タイムスロットSlot_5において、成功/失敗情報IF_SUCCESS/FAILUREと、自己の送信区間TRS_CTL(=タイムスロットSlot_5の開始時刻および終了時刻)と、自己の伝送速度TRD_CTLと、敵対アクセスポイントAP_ADVの送信区間TRS_ADV(=タイムスロットSlot_5の開始時刻および終了時刻)とを制御装置10へ送信する。
更に、タイムスロットSlot_6において、敵対アクセスポイントAP_ADVは、フレームを送信する行動およびフレームを送信しない行動のうちのいずれかを実行し、制御対象のアクセスポイントAP_Nは、フレームを送信しなかった。その結果、タイムスロットSlot_6は、敵対アクセスポイントAP_ADVがフレームを送信する行動およびフレームを送信しない行動のうちのいずれを実行したかに関らず、制御対象のアクセスポイントAP_Nがフレームを送信しなかったタイムスロットを示す。
従って、制御手段3は、制御対象のアクセスポイントAP_Nの送信区間TRD_CTL(=タイムスロットSlot_5の開始時刻および終了時刻)と、敵対アクセスポイントAP_ADVの送信区間TRS_ADV(=タイムスロットSlot_5の開始時刻および終了時刻)とに基づいて、タイムスロットSlot_5がスロット数x1(=1)に該当し、タイムスロットSlot_6がスロットx3(=1)に該当することを検知するとともに、タイムスロットSlot_5,Slot_6に基づいて、履歴Shistoryの状態[1,0,1]を生成する。
そして、学習器4は、制御手段3から受けた履歴Shistoryの状態[1,0,1]を含む[-1,-1,1,0,1],[1,-1,1,0,1],[-1,1,1,0,1],[1,1,1,0,1]の状態[n1,n2,x1,x2,x3]において、ソフトマックス行動選択則またはε-greedy行動則に従って制御対象のアクセスポイントAP_Nの行動apを選択する。この場合、学習器4は、例えば、[-1,-1,1,0,1]の状態[n1,n2,x1,x2,x3]において、制御対象のアクセスポイントAP_Nの行動apとして“2”(MCSインデックスが“2”である伝送速度でフレームを送信する行動)を選択したものとする。
そうすると、学習器4は、敵対アクセスポイントAP_ADVの行動価値関数Qπ
a(s,a)(即ち、Q値)を固定してQ学習によって制御対象のアクセスポイントAP_Nの行動価値関数Qπ
p(s,a)を更新する。
より具体的には、学習器4は、制御対象のアクセスポイントAP_Nの行動apが“2”(MCSインデックスが“2”である伝送速度でフレームを送信する行動)であるので、敵対アクセスポイントAP_ADVの行動価値関数Qπ
a(s,a)から検出した敵対アクセスポイントAP_ADVの行動aaに応じて式(7A)または式(7C)に基づいて報酬rを算出する。この場合、式(7A)または式(7C)によって得られる報酬rは、共に“0”以上のデータ量/Slotであるが、上述したように、一般的には、式(7C)によって得られる報酬rは、式(7A)によって得られる報酬rよりも大きい。
その後、学習器4は、次のタイムスロットにおける状態sp(=s’)において、制御対象のアクセスポイントAP_Nが行動空間Apの全ての行動apを取ったときの行動価値関数Qπ
p(s’,a)の最大値(=maxQπ
p(s’,a)(a∈Ap)(=最大のQ値))を算出する。この場合、QテーブルTBL-Q1において、全てのQ値が“0”であるので、行動価値関数Qπ
p(s’,a)の最大値(=maxQπ
p(s’,a)(a∈Ap)(=最大のQ値))は、“0”からなる。
引き続いて、学習器4は、算出した報酬rと、予め設定されたα,γと、算出した行動価値関数Qπ
p(s’,a)の最大値(=maxQπ
p(s’,a)(a∈Ap)(=最大のQ値))と、行動価値関数Qπ
p(s,a)(=Q値)とを式(10)に代入して行動価値関数Qπ
p(s,a)を更新する。この場合、QテーブルTBL-Q1の全てのQ値が“0”であるので、行動価値関数Qπ
p(s,a)(=Q値)は、“0”からなる。その結果、式(10)の右辺は、0+α[r+γ×0-0]=αrとなるので、更新された行動価値関数Qπ
p(s,a)は、Q値(q5,3=αr)からなる。これによって、図13の(a)に示すQテーブルTBL-Q1_1は、図14に示すQテーブルTBL-Q1_2に更新される。
引き続いて、N0個のタイムスロットの2番目のタイムスロットにおいて、学習器4は、ソフトマックス行動選択則またはε-greedy行動則に従って、状態sp(=[-1,1,1,0,1])における制御対象のアクセスポイントAP_Nの行動apを選択する。この場合、学習器4は、例えば、制御対象のアクセスポイントAP_Nの行動apとして“-1”(フレームを送信しない行動)を選択したものとする。
そうすると、学習器4は、敵対アクセスポイントAP_ADVの行動価値関数Qπ
a(s,a)(即ち、Q値)を固定してQ学習によって制御対象のアクセスポイントAP_Nの行動価値関数Qπ
p(s,a)を更新する。
より具体的には、学習器4は、制御対象のアクセスポイントAP_Nの行動apが“-1”(フレームを送信しない行動)であるので、敵対アクセスポイントAP_ADVの行動価値関数Qπ
a(s,a)から検出した敵対アクセスポイントAP_ADVの行動aaに応じて式(7B)または式(7D)に基づいて報酬rを算出する。この場合、学習器4は、敵対アクセスポイントAP_ADVの行動aaが“1”(フレームを送信する行動)であれば、式(7B)に基づいて報酬r(=c)を算出し、敵対アクセスポイントAP_ADVの行動aaが“-1”(フレームを送信しない行動)であれば、式(7D)に基づいて報酬r(=-c)を算出する。
その後、学習器4は、次のタイムスロットにおける状態sp(=s’)において、制御対象のアクセスポイントAP_Nが行動空間Apの全ての行動apを取ったときの行動価値関数Qπ
p(s’,a)の最大値(=maxQπ
p(s’,a)(a∈Ap)(=最大のQ値))を算出する。この場合、次のタイムスロットにおける状態sp(=s’)が[-1,-1,1,0,1]であるとき、行動価値関数Qπ
p(s’,a)の最大値(=maxQπ
p(s’,a)(a∈Ap)(=最大のQ値))は、q5,3からなり、次のタイムスロットにおける状態sp(=s’)が[-1,-1,1,0,1]以外であるとき、行動価値関数Qπ
p(s’,a)の最大値(=maxQπ
p(s’,a)(a∈Ap)(=最大のQ値))は、“0”からなる(図14のQテーブルTBL-Q2参照)。
引き続いて、学習器4は、算出した報酬rと、予め設定されたα,γと、算出した行動価値関数Qπ
p(s’,a)の最大値(=maxQπ
p(s’,a)(a∈Ap)(=最大のQ値))と、行動価値関数Qπ
p(s,a)(=Q値)とを式(10)に代入して行動価値関数Qπ
p(s,a)を更新する。この場合、行動価値関数Qπ
p(s,a)(=Q値)は、q5,3からなる。その結果、式(10)の右辺は、q5,3+α[r+γ×q5,3-q5,3]またはq5,3+α[r+γ×0-q5,3]=q5,3+α[r-q5,3]となる。即ち、更新された行動価値関数Qπ
p(s,a)のQ値は、q17,1(=q5,3+α[r+γ×q5,3-q5,3]またはq5,3+α[r-q5,3])からなる。これによって、図14に示すQテーブルTBL-Q1_2は、図15に示すQテーブルTBL-Q1_3に更新される。
その後、学習器4は、N0個のタイムスロットの最後のタイムスロットまで、上述した方法によって、敵対アクセスポイントAP_ADVの行動価値関数Qπ
a(s,a)(即ち、Q値)を固定してQ学習によって制御対象のアクセスポイントAP_Nの行動価値関数Qπ
p(s,a)を繰り返し更新する。
そして、N0個のタイムスロットの最後のタイムスロットにおいて、制御対象のアクセスポイントAP_Nの行動価値関数Qπ
p(s,a)を更新すると、図15に示すQテーブルTBL-Q1_3は、図16に示すQテーブルTBL-Q1_4に更新される。
学習器4は、N0個のタイムスロットにおいて制御対象のアクセスポイントAP_Nの行動価値関数Qπ
p(s,a)を繰り返し更新すると、行動価値関数Qπ
p(s,a)を最終的に更新したときのQテーブルTBL-Q1_4に含まれる最大のQ値(=q5,2,q5,3,q11,2,q11,4,q17,1,q17,3,q23,1,q23,2のうちの最大のQ値)を有する行動価値関数Qπ
p(s,a)を学習器5へ出力する。また、学習器4は、N0個のタイムスロットにおける敵対的強化学習(上述した方法による行動価値関数Qπ
p(s,a)の更新)を実行中に、制御対象のアクセスポイントAP_Nの送信スケジュールSCH_CTLに基づいて制御対象のアクセスポイントAP_Nによるフレームの送信タイミングtg_TRになったことを検知すると、送信タイミングtg_TRになったときのQテーブルTBL-Q1を制御手段3へ出力する。
なお、学習器4がN0個のタイムスロットにおいて制御対象のアクセスポイントAP_Nの行動価値関数Qπ
p(s,a)を繰り返し更新する間、学習器5が実行するQ学習のQテーブルTBL-Q2は、一定に維持される。
学習器4によるN0個のタイムスロットにおける敵対的強化学習が終了すると、学習器5は、行動価値関数Qπ
p(s,a)(=q5,2,q5,3,q11,2,q11,4,q17,1,q17,3,q23,1,q23,2のうちの最大のQ値を有する行動価値関数Qπ
p(s,a))を学習器4から受ける。
そして、学習器5は、行動価値関数Qπ
p(s,a)(=q5,2,q5,3,q11,2,q11,4,q17,1,q17,3,q23,1,q23,2のうちの最大のQ値を有する行動価値関数Qπ
p(s,a))を固定して、式(11)によって、敵対アクセスポイントAP_ADVの行動価値関数Qπ
a(s,a)をN1個のタイムスロットにおいて繰り返し更新する。
学習器5は、行動価値関数Qπ
p(s,a)(=q5,2,q5,3,q11,2,q11,4,q17,1,q17,3,q23,1,q23,2のうちの最大のQ値を有する行動価値関数Qπ
p(s,a))を学習器4から受けると、行動価値関数Qπ
p(s,a)(=q5,2,q5,3,q11,2,q11,4,q17,1,q17,3,q23,1,q23,2のうちの最大のQ値を有する行動価値関数Qπ
p(s,a))の状態sp、行動apおよび報酬rを検出する。即ち、学習器5は、行動価値関数Qπ
p(s,a)の状態sp(=q5,2,q5,3,q11,2,q11,4,q17,1,q17,3,q23,1,q23,2のうちの最大のQ値が得られるときの状態)と、行動ap(=q5,2,q5,3,q11,2,q11,4,q17,1,q17,3,q23,1,q23,2のうちの最大のQ値が得られるときの行動ap)と、報酬r(=q5,2,q5,3,q11,2,q11,4,q17,1,q17,3,q23,1,q23,2のうちの最大のQ値が得られるときの報酬r)とを検出する。
そして、学習器5は、敵対アクセスポイントAP_ADVの行動価値関数Qπ
a(s,a)を更新する場合、制御対象のアクセスポイントAP_Nの行動価値関数Qπ
p(s,a)の状態sp(=q5,2,q5,3,q11,2,q11,4,q17,1,q17,3,q23,1,q23,2のうちの最大のQ値が得られるときの状態)と同じ状態において敵対アクセスポイントAP_ADVの行動価値関数Qπ
a(s,a)を更新する。
ここで、制御対象のアクセスポイントAP_Nの行動価値関数Qπ
p(s,a)の状態sp(=q5,2,q5,3,q11,2,q11,4,q17,1,q17,3,q23,1,q23,2のうちの最大のQ値が得られるときの状態)は、例えば、状態[1,1,1,0,1]であるものとする。
従って、学習器5は、N1個のタイムスロットの最初のタイムスロットにおいて、アクセスポイントAP_1,AP_2および履歴Shistoryの状態saを状態[1,1,1,0,1]に決定する。
そして、学習器5は、ソフトマックス行動選択則またはε-greedy行動則に従って敵対アクセスポイントAP_ADVの行動aaを選択する。敵対アクセスポイントAP_ADVの行動空間Aaは、式(6)に示すように、フレームを送信する行動(=“1”)と、フレームを送信しない行動(=“-1”)との2つの行動からなる。
従って、学習器5は、行動価値関数Qπ
p(s,a)の行動ap(=q5,2,q5,3,q11,2,q11,4,q17,1,q17,3,q23,1,q23,2のうちの最大のQ値が得られるときの行動ap)を妨害するために、状態sp(=[1,1,1,0,1])において、敵対アクセスポイントAP_ADVの行動aaとして、“1”(=フレームを送信する行動)を選択する。
この行動(=“1”)を選択するのは、次の理由による。QテーブルTBL-Q1_4のQ値(=q5,2,q5,3,q11,2,q11,4,q17,1,q17,3,q23,1,q23,2)は、実質的に報酬rに等しく、報酬rは、制御対象のアクセスポイントAP_Nがフレームの送信に成功したときに大きくなるので、q5,2,q5,3,q11,2,q11,4,q17,1,q17,3,q23,1,q23,2のうちの最大のQ値は、制御対象のアクセスポイントAP_Nがフレームを送信するときに得られる。そこで、敵対アクセスポイントAP_ADVがフレームを送信することによって、制御対象のアクセスポイントAP_Nによるフレームの送信と衝突させ、報酬rを低下させることが制御対象のアクセスポイントAP_Nによる無線通信を妨害することになるからである。
学習器5は、敵対アクセスポイントAP_ADVの行動(=“1”)を選択すると、次のタイムスロットにおける状態sa(=s’)において、敵対アクセスポイントAP_ADVが行動空間Aaの全ての行動aaを取ったときの行動価値関数Qπ
a(s’,a)の最大値(=maxQπ
a(s’,a)(a∈Aa)(=最大のQ値))を算出する。この場合、図13の(b)に示すQテーブルTBL-Q2_1において、全てのQ値が“0”であるので、行動価値関数Qπ
a(s’,a)の最大値(=maxQπ
a(s’,a)(a∈Aa)(=最大のQ値))は、“0”からなる。
引き続いて、学習器5は、検出した報酬rと、予め設定されたα,γと、算出した行動価値関数Qπ
a(s’,a)の最大値(=maxQπ
a(s’,a)(a∈Aa)(=最大のQ値))と、行動価値関数Qπ
a(s,a)(=Q値)とを式(11)に代入して行動価値関数Qπ
a(s,a)を更新する。この場合、図13の(b)に示すQテーブルTBL-Q2_1の全てのQ値が“0”であるので、行動価値関数Qπ
a(s,a)(=Q値)は、“0”からなる。また、報酬rを式(11)のrに代入することによって行動価値関数Qπ
a(s,a)における報酬は、-rになる。その結果、式(11)の右辺は、0+α[-r+γ×0-0]=-αrとなるので、更新された行動価値関数Qπ
a(s,a)は、Q値(q23,2=-αr)からなる。これによって、図13の(b)に示すQテーブルTBL-Q2_1は、図17に示すQテーブルTBL-Q2_2に更新される。
その後、N1個のタイムスロットの2番目のタイムスロットにおいて、学習器5は、ソフトマックス行動選択則またはε-greedy行動則に従って、状態sa(=[1,1,1,0,1])における敵対アクセスポイントAP_ADVの行動aaを選択する。
この場合、制御対象のアクセスポイントAP_Nが得る報酬rを“-c”にするために(即ち、制御対象のアクセスポイントAP_Nを妨害するために)、学習器5は、敵対アクセスポイントAP_ADVの行動aaとして“-1”(=フレームを送信しない行動)を選択する。
また、学習器5は、更新された行動価値関数Qπ
a(s,a)(=q23,2=-αr)から報酬rを検出する。
更に、学習器5は、次のタイムスロットにおける状態sa(=s’)において、敵対アクセスポイントAP_ADVが行動空間Aaの全ての行動aaを取ったときの行動価値関数Qπ
a(s’,a)の最大値(=maxQπ
a(s’,a)(a∈Aa)(=最大のQ値))を算出する。この場合、次のタイムスロットにおける状態sa(=s’)が状態[1,1,1,0,1]であるとき、状態[1,1,1,0,1]に対応する2つのQ値(“0”,q23,2(=-αr))のうちの最大値が“0”であるので、行動価値関数Qπ
a(s’,a)の最大値(=maxQπ
a(s’,a)(a∈Aa)(=最大のQ値))は、“0”からなる(図17のQテーブルTBL-Q2_2参照)。一方、次のタイムスロットにおける状態sa(=s’)が状態[1,1,1,0,1]以外であるとき、状態[1,1,1,0,1]以外の状態に対応する全てのQ値が“0”であるので、行動価値関数Qπ
a(s’,a)の最大値(=maxQπ
a(s’,a)(a∈Aa)(=最大のQ値))は、“0”からなる(図17のQテーブルTBL-Q2_2参照)。従って、次のタイムスロットにおける状態sa(=s’)が状態[1,1,1,0,1]であるか否かに関わらず、行動価値関数Qπ
a(s’,a)の最大値(=maxQπ
a(s’,a)(a∈Aa)(=最大のQ値))は、“0”からなる。
そうすると、学習器5は、検出した報酬rと、予め設定されたα,γと、算出した行動価値関数Qπ
a(s’,a)の最大値(=maxQπ
a(s’,a)(a∈Aa)(=最大のQ値))と、更新された行動価値関数Qπ
a(s,a)(=q23,2)とを式(11)に代入して行動価値関数Qπ
a(s,a)を更新する。この場合、式(11)の右辺は、q23,2+α[-r+γ×0-q23,2]=q23,2+α[-r-q23,2]となる。その結果、更新された行動価値関数Qπ
a(s,a)は、q23,1=q23,2+α[-r-q23,2]からなる。これによって、図17に示すQテーブルTBL-Q2_2は、図18に示すQテーブルTBL-Q2_3に更新される。
その後、学習器5は、N1個のタイムスロットの最後のタイムスロットまで、上述した方法によって、制御対象のアクセスポイントAP_Nの行動価値関数Qπ
p(s,a)(即ち、Q値)を固定してQ学習によって敵対アクセスポイントAP_ADVの行動価値関数Qπ
a(s,a)を繰り返し更新する。
そして、N1個のタイムスロットの最後のタイムスロットにおいて、敵対アクセスポイントAP_ADVの行動価値関数Qπ
a(s,a)を更新すると、図18に示すQテーブルTBL-Q2_3は、図19に示すQテーブルTBL-Q2_4に更新される。
学習器5は、N1個のタイムスロットにおいて敵対アクセスポイントAP_ADVの行動価値関数Qπ
a(s,a)を繰り返し更新すると、最終的に更新した行動価値関数Qπ
a(s,a)(=QテーブルTBL-Q2_4に含まれる最小のQ値(=q’23,1,q”23,2のうちの最小のQ値)を有する行動価値関数)を学習器4へ出力する。
学習器5は、N1個のタイムスロットにおける敵対的強化学習(上述した方法による行動価値関数Qπ
a(s,a)の更新)を実行中に、制御対象のアクセスポイントAP_Nの送信スケジュールSCH_CTLに基づいて制御対象のアクセスポイントAP_Nによるフレームの送信タイミングtg_TRになったことを検知すると、送信タイミングtg_TRになったときのQテーブルTBL-Q2を制御手段3へ出力する。
なお、学習器5がN1個のタイムスロットにおいて敵対アクセスポイントAP_ADVの行動価値関数Qπ
a(s,a)を繰り返し更新する間、学習器4が実行するQ学習のQテーブルTBL-Q1は、一定(図16に示すQテーブルTBL-Q1_4)に維持される。
学習器5が上述した方法によってN1個のタイムスロットにおいて敵対アクセスポイントAP_ADVの行動価値関数Qπ
a(s,a)を繰り返し更新すると、その後、学習器4が上述した方法によってN0個のタイムスロットにおいて制御対象のアクセスポイントAP_Nの行動価値関数Qπ
p(s,a)を繰り返し更新する学習と、学習器5が上述した方法によってN1個のタイムスロットにおいて敵対アクセスポイントAP_ADVの行動価値関数Qπ
a(s,a)を繰り返し更新する学習とが交互にNitcr個のタイムスロットにおいて繰り返し実行される。
学習器4が2回目にN0個のタイムスロットにおいて制御対象のアクセスポイントAP_Nの行動価値関数Qπ
p(s,a)を繰り返し更新するとき、図16に示すQテーブルTBL-Q1_4において、図13から図16において説明した方法によってQ値を順次更新することによって制御対象のアクセスポイントAP_Nの行動価値関数Qπ
p(s,a)を繰り返し更新する。そして、学習器4がm(mは、2以上の整数)回目にN0個のタイムスロットにおいて制御対象のアクセスポイントAP_Nの行動価値関数Qπ
p(s,a)を繰り返し更新するとき、(m-1)回目にN0個のタイムスロットにおいて制御対象のアクセスポイントAP_Nの行動価値関数Qπ
p(s,a)を繰り返し更新したときの最終的に更新されたQテーブルにおいて、図13から図16において説明した方法によってQ値を順次更新することによって制御対象のアクセスポイントAP_Nの行動価値関数Qπ
p(s,a)を繰り返し更新する。
また、学習器5が2回目にN1個のタイムスロットにおいて敵対アクセスポイントAP_ADVの行動価値関数Qπ
a(s,a)を繰り返し更新するとき、図19に示すQテーブルTBL-Q2-4において、図13、図17から図19において説明した方法によってQ値を順次更新することによって敵対アクセスポイントAP_ADVの行動価値関数Qπ
a(s,a)を繰り返し更新する。そして、学習器5がm回目にN1個のタイムスロットにおいて敵対アクセスポイントAP_ADVの行動価値関数Qπ
a(s,a)を繰り返し更新するとき、(m-1)回目にN1個のタイムスロットにおいて敵対アクセスポイントAP_ADVの行動価値関数Qπ
a(s,a)を繰り返し更新したときの最終的に更新されたQテーブルにおいて、図13、図17から図19において説明した方法によってQ値を順次更新することによって敵対アクセスポイントAP_ADVの行動価値関数Qπ
a(s,a)を繰り返し更新する。
その結果、学習器4は、QテーブルTBL-Q1におけるQ値が大きくなるようにQ学習を実行し、学習器5は、QテーブルTBL-Q2におけるQ値が小さくなるようにQ学習を実行する。
従って、制御対象のアクセスポイントAP_Nは、QテーブルTBL-Q1においてQ値が最大になるときの行動apを実行することによって自己の無線通信に対する敵対アクセスポイントAP_ADVの妨害を克服する方策を取ることができる。
一方、敵対アクセスポイントAP_ADVは、QテーブルTBL-Q2においてQ値が最小になるときの行動aaを実行することによって制御対象のアクセスポイントAP_Nによる無線通信を妨害する方策を取ることができる。
図20を参照して、タイミングT1になると、制御手段3は、学習器4から最終的に更新されたQテーブルTBL-Q1を受け、学習器5から最終的に更新されたQテーブルTBL-Q2を受ける。
そして、制御手段3は、QテーブルTBL-Q1において、最大のQ値が得られるときの制御対象のアクセスポイントAP_Nの行動apを検出し、QテーブルTBL-Q2において、最小のQ値が得られるときの敵対アクセスポイントAP_ADVの行動aaを検出する。
そうすると、制御手段3は、タイムスロットSlot_7におけるアクセスポイントAP_1,AP_2のフレームの送信スケジュール(アクセスポイントAP_1がフレームを送信し、アクセスポイントAP_2がフレームを送信しないスケジュール)と、検出した行動apとに基づいて、フレームを送信する行動を実行するように制御対象のアクセスポイントAP_Nを制御する。また、制御手段3は、検出した行動aa(=フレームを送信しない行動)を実行するように敵対アクセスポイントAP_ADVを制御する。
なお、タイミングT1の時点で、学習器4が制御対象のアクセスポイントAP_Nの行動価値関数Qπ
p(s,a)を上述した方法によって繰り返し更新しているとき、制御手段3は、N0個のタイムスロットにおいて敵対的強化学習を実行中のQテーブルTBL-Q1を学習器4から受け、N0個のタイムスロットよりも1つ前のN1個のタイムスロットにおいて実行された敵対的強化学習によって最終的に更新されたQテーブルTBL-Q2を学習器5から受ける。
一方、タイミングT1の時点で、学習器5が敵対アクセスポイントAP_ADVの行動価値関数Qπ
a(s,a)を上述した方法によって繰り返し更新しているとき、制御手段3は、N1個のタイムスロットにおいて敵対的強化学習を実行中のQテーブルTBL-Q2を学習器5から受け、N1個のタイムスロットよりも1つ前のN0個のタイムスロットにおいて実行された敵対的強化学習によって最終的に更新されたQテーブルTBL-Q1を学習器4から受ける。
そして、タイムスロットSlot_7において、制御対象のアクセスポイントAP_Nおよび敵対アクセスポイントAP_ADVがそれぞれ上述した行動を実行すると、直近Xスロット(X=2)は、タイムスロットSlot_5,Slot_6からタイムスロットSlot_6,Slot_7に更新される。即ち、履歴Shistoryは、履歴Shistory_1から履歴Shistory_2に更新される。
その後、タイムスロットSlot_6,Slot_7における制御対象のアクセスポイントAP_Nおよび敵対アクセスポイントAP_ADVの行動に基づいて、上述した方法によって、直近Xスロット(X=2)における履歴Shistory_2の状態[x1,x2,x3](=[0,1,1])が決定される。この場合、タイムスロットSlot_6は、x3に該当し、タイムスロットSlot_7は、x2に該当する。そして、学習器4,5は、決定された履歴Shistory_2の状態[0,1,1]を用いて、上述した方法によって、それぞれ、行動価値関数Qπ
p(s,a)および行動価値関数Qπ
a(s,a)を繰り返し更新し、タイミングT2になると、それぞれ、QテーブルTBL-Q1およびQテーブルTBL-Q2を制御手段3へ出力する。
制御手段3は、タイミングT2において、QテーブルTBL-Q1およびQテーブルTBL-Q2をそれぞれ学習器4,5から受けると、その受けたQテーブルTBL-Q1,TBL-Q2およびタイムスロットSlot_8におけるアクセスポイントAP_1,AP_2のフレームの送信スケジュールに基づいて、上述した方法によって、タイムスロットSlot_8において、フレームを送信しない行動を実行するように制御対象のアクセスポイントAP_Nを制御するとともに、フレームを送信する行動とフレームを送信しない行動とのいずれの行動を実行してもよいように敵対アクセスポイントAP_ADVを制御する。
そして、制御対象のアクセスポイントAP_Nおよび敵対アクセスポイントAP_ADVがそれぞれ制御手段3による制御に従って上述した行動を実行すると、直近Xスロット(X=2)は、タイムスロットSlot_6,Slot_7からタイムスロットSlot_7,Slot_8に更新される。即ち、履歴Shistoryは、履歴Shistory_2から履歴Shistory_3に更新される。なお、履歴Shistory_3は、[x1,x2,x3]=[0,1,1]からなる。
以後、上述した動作が繰り返され、タイミングT3になると、タイムスロットSlot_9において、制御対象のアクセスポイントAP_Nおよび敵対アクセスポイントAP_ADVは、履歴Shistory_3を用いて学習された行動を実行する。即ち、タイムスロットSlot_9において、制御対象のアクセスポイントAP_Nがフレームを送信する行動を実行し、かつ、敵対アクセスポイントAP_ADVがフレームを送信しない行動を実行する。
また、タイミングT4になると、タイムスロットSlot_10において、制御対象のアクセスポイントAP_Nおよび敵対アクセスポイントAP_ADVは、履歴Shistory_4を用いて学習された行動を実行する。即ち、タイムスロットSlot_10において、制御対象のアクセスポイントAP_Nおよび敵対アクセスポイントAP_ADVの両方がフレームを送信する行動を実行する。なお、履歴Shistory_4は、[x1,x2,x3]=[0,1,1]からなる。
このように、履歴Shistoryは、制御対象のアクセスポイントAP_Nおよび敵対アクセスポイントAP_ADVが各タイムスロットSlot_7,Slot_8,Slot_9において、それぞれ学習器4,5によって学習された行動ap,aaに基づいて決定された行動を実行することによって更新される。
上記においては、直近Xスロットが“2”である場合について学習器4による敵対的強化学習および学習器5による敵対的強化学習を説明したが、直近Xスロットが“1”,“3”,“4”,・・・である場合についても、上述した方法によって、学習器4による敵対的強化学習および学習器5による敵対的強化学習を実行することができる。
図21は、図1に示す制御装置10の動作を説明するためのフローチャートである。図21を参照して、制御装置10の動作が開始されると、収集手段1は、有線ケーブル6を介して制御対象のアクセスポイントAP_NからMACアドレスAdd_AP_N、フレームの送信区間TRS_CTL、伝送速度TRD_CTL、フレームの成功/失敗情報IF_SUCCESS/FAILURE、フレームの送信スケジュールSCH_CTL、MACアドレスAdd_AP_ADVおよび送信区間TRS_ADVを収集する(ステップS1)。ここで、学習段階では、アクセスポイントAP_UNCOORDは、敵対アクセスポイントAP_ADVからなるので、収集手段1は、敵対アクセスポイントAP_ADVのMACアドレスAdd_AP_ADVを収集する。その結果、送信区間TRS_ADVは、敵対アクセスポイントAP_ADVの送信区間である。
ステップS1の後、収集手段1は、有線ケーブル6を介して協調アクセスポイント(アクセスポイントAP_1~AP_N-1)から協調アクセスポイント(アクセスポイントAP_1~AP_N-1)のMACアドレスAdd_AP_1~Add_AP_N-1およびフレームの送信スケジュールSCH_COORDを収集する(ステップS2)。
その後、収集手段1は、その収集したMACアドレスAdd_AP_N、送信区間TRS_CTL、伝送速度TRD_CTL、成功/失敗情報IF_SUCCESS/FAILURE、および送信スケジュールSCH_CTLをデータベース2の対応表TBL1-1に格納するとともに、MACアドレスAdd_AP_ADVおよび送信区間TRS_ADVをデータベース2の対応表TBL1-2に格納する(ステップS3)。
引き続いて、収集手段1は、MACアドレスAdd_AP_1~Add_AP_N-1およびフレームの送信スケジュールSCH_COORDをデータベース2の対応表TBL2-1に格納する(ステップS4)。
その後、制御手段3は、データベース2の対応表TBL1-1から送信区間TRS_CTLを読み出し、データベース2の対応表TBL1-2から送信区間TRS_ADVを読み出す。そして、制御手段3は、送信区間TRS_CTLおよび送信区間TRS_ADVに基づいて、上述した方法によって、直近Xスロットにおける制御対象のアクセスポイントAP_Nおよび敵対アクセスポイントAP_ADVによるフレームの送信有無の履歴Shistoryを生成する(ステップS5)。
引き続いて、制御手段3は、データベース2の対応表TBL1-1から伝送速度TRD_CTL、成功/失敗情報IF_SUCCESS/FAILUREおよび送信スケジュールSCH_CTLを読み出し、データベース2の対応表TBL2-1から送信スケジュールSCH_COORDを読み出す。また、制御手段3は、制御対象のアクセスポイントを示す信号S_CTL_AP(AP_N)を生成する。そして、制御手段3は、制御対象のアクセスポイントを示す信号S_CTL_AP(AP_N)、送信区間TRS_CTL、伝送速度TRD_CTL、成功/失敗情報IF_SUCCESS/FAILURE、送信スケジュールSCH_CTL,SCH_COORDおよび履歴Shistoryを学習器4,5へ出力する(ステップS6)。
学習器4,5は、制御手段3から制御対象のアクセスポイントを示す信号S_CTL_AP(AP_N)、送信区間TRS_CTL、伝送速度TRD_CTL、成功/失敗情報IF_SUCCESS/FAILURE、送信スケジュールSCH_CTL,SCH_COORDおよび履歴Shistoryを受ける。そして、学習器4,5は、制御対象のアクセスポイントを示す信号S_CTL_AP(AP_N)に基づいて、アクセスポイントAP_Nが制御対象のアクセスポイントであり、アクセスポイントAP_1~AP_N-1が協調APであることを検知する。そうすると、学習器4,5は、送信区間TRS_CTL、伝送速度TRD_CTL、成功/失敗情報IF_SUCCESS/FAILURE、送信スケジュールSCH_CTL,SCH_COORDおよび履歴Shistoryに基づいて敵対的強化学習を実行しながら、所定のタイミングで、それぞれ、QテーブルTBL-Q1,TBL-Q2を制御手段3へ出力する(ステップS7)。
制御手段3は、学習器4,5からそれぞれQテーブルTBL-Q1,TBL-Q2を受けると、QテーブルTBL-Q1および協調APであるアクセスポイントAP_1~AP_N-1のフレームの送信スケジュールSCH_COORDに基づいて制御対象のアクセスポイントAP_Nの行動apを制御し、QテーブルTBL-Q2に基づいて敵対アクセスポイントAP_ADVの行動aaを制御する(ステップS8)。これによって、制御装置10の動作が終了する。
ステップS8において、QテーブルTBL-Q1とアクセスポイントAP_1~AP_N-1の送信スケジュールSCH_COORDとに基づいて制御対象のアクセスポイントAP_Nの行動apを制御するのは、制御対象のアクセスポイントAP_NおよびアクセスポイントAP_1~AP_N-1は、フレーム送出情報を共有し、相互に協調的な制御を行うからである。
図22は、図21のステップS7の詳細な動作を説明するためのフローチャートである。図22を参照して、図21のステップS6の後、学習器4,5は、制御対象のアクセスポイントを示す信号S_CTL_AP(AP_N)、送信区間TRS_CTL、伝送速度TRD_CTL、成功/失敗情報IF_SUCCESS/FAILURE、送信スケジュールSCH_CTL,SCH_COORDおよび履歴Shistoryを制御手段3から受ける(ステップS71)。
そして、学習器4,5は、制御対象のアクセスポイントを示す信号S_CTL_AP(AP_N)に基づいて、アクセスポイントAP_1~AP_Nのうち、アクセスポイントAP_Nが制御対象のアクセスポイントであり、アクセスポイントAP_1~AP_N-1が協調アクセスポイントであることを検知する(ステップS72)。
その後、学習器4,5は、i=1を設定する(ステップS73)。ここで、iは、敵対的強化学習におけるタイムスロットの引数を表し、1≦i≦Nitcrを満たす整数である。
ステップS73の後、学習器4は、送信区間TRS_CTL、伝送速度TRD_CTL、成功/失敗情報IF_SUCCESS/FAILUREおよび履歴Shistoryに基づいて、敵対アクセスポイントAP_ADVの行動価値関数Qπ
a(s,a)を固定して、敵対アクセスポイントAP_ADVによる妨害が存在する通信環境において制御対象のアクセスポイントAP_Nによる無線通信の性能を維持する行動を学習する敵対的強化学習をN0個のタイムスロットにおいて実行する(ステップS74)。そして、学習器4は、ステップS74における敵対的強化学習の終了時点における制御対象のアクセスポイントAP_Nの行動価値関数Qπ
p(s,a)を学習器5へ出力する。
また、学習器4,5は、ステップS74における学習器4による敵対的強化学習の実行と並行して、送信スケジュールSCH_CTLに基づいてタイミングtgが制御対象のアクセスポイントAP_Nによるフレームの送信タイミングtg_TRになったことを検知すると(ステップS75)、それぞれ、QテーブルTBL-Q1,TBL-Q2を制御手段3へ出力する(ステップS76)。
ステップS75においては、学習器4,5は、制御対象のアクセスポイントAP_Nのフレームの送信スケジュールSCH_CTLに基づいて制御対象のアクセスポイントAP_Nがフレームを送信する次のタイムスロットSlot_Nextを検出し、タイミングtgが次のタイムスロットSlot_Nextの開始時になったことを検知したとき(例えば、図20のタイムスロットSlot_7の開始時になったことを検知したとき)、送信スケジュールSCH_CTLに基づいてタイミングtgが制御対象のアクセスポイントAP_Nによるフレームの送信タイミングtg_TRになったことを検知し、タイミングtgが次のタイムスロットSlot_Nextの開始時になったことを検知しないとき、送信スケジュールSCH_CTLに基づいてタイミングtgが制御対象のアクセスポイントAP_Nによるフレームの送信タイミングtg_TRになったことを検知しない。
また、ステップS76においては、学習器4,5は、それぞれ、送信タイミングtg_TRにおいて、敵対的強化学習(=Q学習)における最新のQテーブルTBL-Q1,TBL-Q2を制御手段3へ出力する。より具体的には、学習器4は、ステップS74のN0個のタイムスロットにおいて実行されている敵対的強化学習によって送信タイミングtg_TRの時点までに更新された最新のQテーブルTBL-Q1を制御手段3へ出力し、学習器5は、ステップS74のN0個のタイムスロットよりも1つ前のN1個のタイムスロットにおいて実行された敵対的強化学習によって最終的に更新されたQテーブルTBL-Q2を制御手段3へ出力する。
ステップS76の後、一連の動作は、ステップS74および図21のステップS8へ移行する。
そして、ステップS74の後、学習器5は、学習器4から受けた制御対象のアクセスポイントAP_Nの行動価値関数Qπ
p(s,a)の状態s(=sp)を検出し、その検出した状態s(=sp)において、制御対象のアクセスポイントAP_Nの行動価値関数Qπ
p(s,a)を固定して、制御対象のアクセスポイントAP_Nによる無線通信を妨害する行動を学習する敵対的強化学習をN1個のタイムスロットにおいて実行する(ステップS77)。そして、学習器5は、ステップS77における敵対的強化学習の終了時点における敵対アクセスポイントAP_ADVの行動価値関数Qπ
a(s,a)を学習器4へ出力する。
また、学習器4,5は、ステップS77における敵対的強化学習の実行と並行して、送信スケジュールSCH_CTLに基づいてタイミングtgが制御対象のアクセスポイントAP_Nによるフレームの送信タイミングtg_TRになったことを検知すると(ステップS78)、それぞれ、QテーブルTBL-Q1,TBL-Q2を制御手段3へ出力する(ステップS79)。
ステップS78において、学習器4,5は、ステップS75における方法と同じ方法によって、タイミングtgが送信タイミングtg_TRになったことを検知する。
また、ステップS79においては、学習器4,5は、それぞれ、送信タイミングtg_TRにおいて、敵対的強化学習(=Q学習)における最新のQテーブルTBL-Q1,TBL-Q2を制御手段3へ出力する。より具体的には、学習器4は、ステップS77のN1個のタイムスロットよりも1つ前のN0個のタイムスロットにおいて実行された敵対的強化学習によって最終的に更新されたQテーブルTBL-Q1を制御手段3へ出力し、学習器5は、ステップS77のN1個のタイムスロットにおいて実行されている敵対的強化学習によって送信タイミングtg_TRの時点までに更新された最新のQテーブルTBL-Q2を制御手段3へ出力する。
ステップS79の後、一連の動作は、ステップS77および図21のステップS8へ移行する。
そして、ステップS77の後、学習器4,5は、i=Nitcrであるか否かを判定する(ステップS80)。ステップS80において、i=Nitcrでないと判定されたとき、学習器4,5は、i=i+1を設定する(ステップS81)。その後、一連の動作は、ステップS74,S75へ移行し、ステップS80において、i=Nitcrであると判定されるまで、ステップS74~ステップS81が繰り返し実行される。
そして、ステップS80において、i=Nitcrであると判定されると、学習器4,5は、敵対的強化学習を終了するか否かを判定する(ステップS82)。この場合、学習器4,5は、Nitcrが規定値(予め決定された(N0+N1)の自然数倍からなる数値)に一致するとき、敵対的強化学習を終了すると判定し、Nitcrが規定値に一致しないとき、敵対的強化学習を終了しないと判定する。なお、規定値は、例えば、N0=N1=100であるとき、100000に設定される。
ステップS82において、敵対的強化学習を終了しないと判定されたとき、一連の動作は、ステップS73へ移行し、ステップS82において、敵対的強化学習を終了すると判定されるまで、ステップS73~ステップS82が繰り返し実行される。
そして、ステップS82において、敵対的強化学習を終了すると判定されると、学習器4,5は、敵対的強化学習を停止する(ステップS83)。
図22に示すフローチャートによれば、学習器4が、N0個のタイムスロットにおいて、制御対象のアクセスポイントAP_Nによる無線通信の性能を維持する行動を学習する敵対的強化学習(Q学習)を実行するステップS74と、学習器5が、N1個のタイムスロットにおいて、制御対象のアクセスポイントAP_Nによる無線通信を妨害する行動を学習する敵対的強化学習(Q学習)を実行するステップS77とが、i=Nitcrになるまで繰り返し交互に実行される(ステップS74,S77,S80,S81参照)。
そして、学習器4,5は、ステップS74またはステップS77に並行して、送信スケジュールSCH_CTLに基づいてタイミングtgが送信タイミングtg_TRになったことを検知すると、それぞれ、送信タイミングtg_TRになったときの最新のQテーブルTBL-Q1,TBL-Q2を制御手段3へ出力する(ステップS76,S79参照)。
なお、ステップS75,S76がステップS74と並行して実行される場合、タイミングtgがステップS74における敵対的強化学習の終了時点において送信タイミングtg_TRになるまでは、QテーブルTBL-Q1,TBL-Q2は、ステップS76において制御手段3へ出力される。また、ステップS78,S79がステップS77と並行して実行される場合、タイミングtgがステップS77における敵対的強化学習の終了時点において送信タイミングtg_TRになるまでは、QテーブルTBL-Q1,TBL-Q2は、ステップS79において制御手段3へ出力される。
また、図22に示すフローチャートによれば、ステップS76またはステップS79において、QテーブルTBL-Q1,TBL-Q2が制御手段3へ出力された後、図21のステップS8が実行されるので、学習器4,5は、制御手段3の動作と並行してステップS74の敵対的強化学習とステップS77の敵対的強化学習とを交互に繰り返し実行する。つまり、学習器4,5は、ステップS82において、学習を終了すると判定されるまでは、制御手段3の動作と並行してステップS74の敵対的強化学習とステップS77の敵対的強化学習とを交互に繰り返し実行する。
図23は、図22のステップS74の詳細な動作を説明するためのフローチャートである。
図23を参照して、図22のステップS73の後、学習器4は、ip=1を設定する(ステップS741)。ここで、ipは、Nitcr個のタイムスロットにおけるN0個のタイムスロットの引数を表し、1≦ip≦N0を満たす整数である。
ステップS741の後、学習器4は、履歴Shistoryに基づいて、ip番目のタイムスロットにおける協調アクセスポイント(アクセスポイントAP_1~AP_N-1)および履歴Shistoryの状態sp(=[n1,n2,・・・,nN-1,x1,x2,x3])を決定する(ステップS742)。
そして、学習器4は、状態sp(=[n1,n2,・・・,nN-1,x1,x2,x3])のうちの1つの状態において、所定の行動選択則(ソフトマックス行動選択則またはε-greedy行動則)に従って、Q学習におけるQ値が最大になるように、ip番目のタイムスロットにおける制御対象のアクセスポイントAP_Nの行動apを選択する(ステップS743)。
その後、学習器4は、固定した敵対アクセスポイントAP_ADVの行動価値関数Qπ
a(s,a)に基づいて敵対アクセスポイントAP_ADVの行動aaを検出する(ステップS744)。
引き続いて、学習器4は、成功/失敗情報IF_SUCCESS/FAILURE、送信区間TRS_CTL、伝送速度TRD_CTL、および敵対アクセスポイントAP_ADVの行動aaに基づいて、状態spにおいて、制御対象のアクセスポイントAP_Nが行動apを実行したときのip番目のタイムスロットにおける報酬rp(=r)を算出する(ステップS745)。この場合、学習器4は、制御対象のアクセスポイントAP_Nの行動apおよび敵対アクセスポイントAP_ADVの行動aaに基づいて式(7)によって報酬rp(=r)を算出する。
ステップS745の後、学習器4は、次のタイムスロット(=(ip+1)番目のタイムスロット)の状態s’において、制御対象のアクセスポイントAP_Nが取り得る全ての行動を取ったときの行動価値関数Qπ
p(s’,a)の最大値(=maxQπ
p(s’,a)(a∈Ap))を算出する(ステップS746)。
そうすると、学習器4は、報酬rp(=r)および行動価値関数Qπ
p(s’,a)の最大値(=maxQπ
p(s’,a)(a∈Ap))を用いて、状態spおよび行動apに対応する制御対象のアクセスポイントAP_Nの行動価値関数Qπ
p(s,a)を制御対象のアクセスポイントAP_Nの期待累積報酬Rが最大になるようにQ学習によって更新する(ステップS747)。即ち、学習器4は、Q学習に基づいて期待累積報酬Rが最大になるように制御対象のアクセスポイントAP_Nの行動価値関数Qπ
p(s,a)を式(10)によって更新する。
そして、ステップS747の後、学習器4は、ip=N0であるか否かを判定する(ステップS748)。
ステップS748において、ip=N0でないと判定されたとき、学習器4は、ip=ip+1を設定する(ステップS749)。その後、一連の動作は、ステップS742へ移行し、ステップS748において、ip=N0であると判定されるまで、ステップS742~ステップS749が繰り返し実行される。
そして、ステップS748において、ip=N0であると判定されると、学習器4は、制御対象のアクセスポイントAP_Nの最終的に更新された行動価値関数Qπ
p(s,a)を学習器5へ出力する(ステップS750)。
その後、学習器4は、i=N0を設定する(ステップS751)。そして、一連の動作は、図22のステップS77,S78へ移行する。
図23に示すフローチャートにおいて、ステップS742~ステップS747を[Nitcr/(N0+N1)]回繰り返し実行することは、敵対アクセスポイントAP_ADVの行動価値関数Qπ
a(s,a)を固定して(即ち、敵対アクセスポイントAP_ADVの妨害行動を固定して)、N0個のタイムスロットにおける学習器4による敵対的強化学習をNitcr個のタイムスロット内のN0個のタイムスロットごとに繰り返し実行して性能維持行動を更新することに相当する。学習器4が敵対アクセスポイントAP_ADVの行動価値関数Qπ
a(s,a)を固定して敵対的強化学習を実行するのは、敵対アクセスポイントAP_ADVによる妨害行動を克服する制御対象のアクセスポイントAP_Nの行動ap(=性能維持行動)を学習するためであるからである。
図24は、図22のステップS77の詳細な動作を説明するためのフローチャートである。
図24を参照して、図22のステップS74の後、学習器5は、制御対象のアクセスポイントAP_Nの最終的に更新された行動価値関数Qπ
p(s,a)を学習器4から受ける。
そして、学習器5は、ia=1を設定する(ステップS771)。ここで、iaは、Nitcr個のタイムスロットにおけるN1個のタイムスロットの引数を表し、1≦ia≦N1を満たす整数である。
ステップS771の後、学習器5は、制御対象のアクセスポイントAP_Nの行動価値関数Qπ
p(s,a)から状態spを検出し、その検出した状態spをia番目のタイムスロットにおける敵対的アクセスポイントAP_ADVの状態saとして決定する(ステップS772)。
そして、学習器5は、状態saにおいて、所定の行動選択則(ソフトマックス行動選択則またはε-greedy行動則)に従って、Q学習におけるQ値が最小になるように、ia番目のタイムスロットにおける敵対アクセスポイントAP_ADVの行動aaを選択する(ステップS773)。
その後、学習器5は、制御対象のアクセスポイントAP_Nの行動価値関数Qπ
p(s,a)に含まれる報酬rの符号を反転して、状態saにおいて、敵対アクセスポイントAP_ADVが行動aaを実行したときのia番目のタイムスロットにおける報酬ra(=-r)を算出する(ステップS774)。
引き続いて、学習器5は、次のタイムスロット(=(ia+1)番目のタイムスロット)の状態s’において、敵対アクセスポイントAP_ADVが取り得る全ての行動を取ったときの行動価値関数Qπ
a(s’,a)の最大値(=maxQπ
a(s’,a)(a∈Aa))を算出する(ステップS775)。
そうすると、学習器5は、報酬raおよび行動価値関数Qπ
a(s’,a)の最大値(=maxQπ
a(s’,a)(a∈Aa))を用いて、状態saおよび行動aaに対応する敵対アクセスポイントAP_ADVの行動価値関数Qπ
a(s,a)を制御対象のアクセスポイントAP_Nの期待累積報酬Rが最小になるようにQ学習によって更新する(ステップS776)。即ち、学習器5は、Q学習に基づいて期待累積報酬Rが最小になるように敵対アクセスポイントAP_ADVの行動価値関数Qπ
a(s,a)を式(11)によって更新する。
そして、ステップS776の後、学習器5は、ia=N1であるか否かを判定する(ステップS777)。
ステップS777において、ia=N1でないと判定されたとき、学習器5は、ia=ia+1を設定する(ステップS778)。その後、一連の動作は、ステップS772へ移行し、ステップS777において、ia=N1であると判定されるまで、ステップS772~ステップS778が繰り返し実行される。
そして、ステップS777において、ia=N1であると判定されると、学習器5は、敵対アクセスポイントAP_ADVの最終的に更新された行動価値関数Qπ
a(s,a)を学習器4へ出力する(ステップS779)。
その後、学習器5は、i=N0+N1を設定する(ステップS780)。そして、一連の動作は、図22のステップS80へ移行する。
図24に示すフローチャートにおいて、ステップS772~ステップS776を[Nitcr/(N0+N1)]回繰り返し実行することは、制御対象のアクセスポイントAP_Nの行動価値関数Qπ
p(s,a)を固定して(即ち、制御対象のアクセスポイントAP_Nの性能維持行動を固定して)、N1個のタイムスロットにおける学習器5による敵対的強化学習をNitcr個のタイムスロット内のN1個のタイムスロットごとに繰り返し実行して敵対アクセスポイントAP_ADVの妨害行動を更新することに相当する。学習器5が行動価値関数Qπ
p(s,a)を固定して敵対的強化学習を実行するのは、制御対象のアクセスポイントAP_Nの性能維持行動を妨害する敵対アクセスポイントAP_ADVの行動aa(=妨害行動)を学習するためであるからである。
なお、ステップS780において、i=N0+N1を設定するのは、図22のステップS74の詳細な動作を説明する図23のフローチャートのステップS751において、i=N0が設定されており、図24のステップS779に至った時点でステップS772~ステップS778がN1回実行されているので、図22のステップS74に示す敵対的強化学習およびステップS77に示す敵対的強化学習に用いられたスロット数iが(N0+N1)個になるからである。
そして、図22のステップS74(=図23に示すフローチャート)および図22のステップS77(=図24に示すフローチャート)がW(Wは、W=Nitcr/(N0+N1)を満たす自然数)回実行されると、i=Nitcrになる。従って、学習器4は、学習器5から引数iを受け、その受けた引数iを(N0+N1)で除算した除算結果がWに一致すれば、図22のステップS80において、i=Nitcrであると判定し、学習器5から受けた引数iを(N0+N1)で除算した除算結果がWに一致しなければ、図22のステップS80において、i=Nitcrでないと判定する。
図23に示すフローチャートにおいては、学習器4は、Q学習のQ値が最大になるように制御対象のアクセスポイントAP_Nの行動apを選択し(ステップS743参照)、敵対アクセスポイントAP_ADVの行動価値関数Qπ
a(s,a)に基づいて敵対アクセスポイントAP_ADVの行動aaを検出し(ステップS744参照)、敵対アクセスポイントAP_ADVの行動aaに基づいて報酬rp(=r)を算出し(ステップS745参照)、制御対象のアクセスポイントAP_Nの期待累積報酬Rが最大になるように制御対象のアクセスポイントAP_Nの行動価値関数Qπ
p(s,a)を更新するので(ステップS747)、図23に示すフローチャートに従って行動価値関数Qπ
p(s,a)を繰り返し更新することによって、敵対アクセスポイントAP_ADVによる妨害行動を克服する制御対象のアクセスポイントAP_Nの行動を学習できる。
また、図24に示すフローチャートにおいては、学習器5は、Q学習のQ値が最小になるように敵対アクセスポイントAP_ADVの行動aaを選択し(ステップS773参照)、制御対象のアクセスポイントAP_Nの行動価値関数Qπ
p(s,a)の状態spを敵対アクセスポイントAP_ADVについてのQ学習のQテーブルにおける状態saとして決定し(ステップS772参照)、制御対象のアクセスポイントAP_Nの報酬rの符号を反転して敵対アクセスポイントAP_ADVの報酬ra(=-r)を算出し(ステップS774参照)、制御対象のアクセスポイントAP_Nの期待累積報酬Rが最小になるように敵対アクセスポイントAP_ADVの行動価値関数Qπ
a(s,a)を更新するので(ステップS776)、図24に示すフローチャートに従って行動価値関数Qπ
a(s,a)を繰り返し更新することによって、制御対象のアクセスポイントAP_Nによる無線通信を妨害する敵対アクセスポイントAP_ADVの行動を学習できる。
そして、図23に示すフローチャートおよび図24に示すフローチャートは、i=Nitcrになるまで、交互に実行されるので(図22のステップS74,S77,S80,S81参照)、学習器4は、敵対アクセスポイントAP_ADVによる妨害行動を克服する制御対象のアクセスポイントAP_Nのより強い行動を学習し、学習器5は、制御対象のアクセスポイントAP_Nによる無線通信を妨害する敵対アクセスポイントAP_ADVのより強い行動を学習する。即ち、Nitcr個のタイムスロットにおいて、学習器4による敵対的強化学習と学習器5による敵対的強化学習とを交互に繰り返し実行することによって、学習器4は、敵対アクセスポイントAP_ADVによる妨害を克服する制御対象のアクセスポイントAP_Nの行動を取得する。従って、学習器4は、敵対アクセスポイントAP_ADVによる妨害が存在する通信環境において制御対象のアクセスポイントAP_Nによる無線通信の性能を維持する性能維持行動を取得できる。その結果、制御対象のアクセスポイントAP_Nは、敵対アクセスポイントAP_ADVが存在する通信環境において無線通信のスループットを向上できる。
図25は、敵対的強化学習と制御対象のアクセスポイントAP_Nおよび敵対アクセスポイントAP_ADVによる無線通信との関係を示す図である。
図25を参照して、タイムスロットSlot_7の開始時点において、学習器4がN0個のタイムスロットN0_1において上述した敵対的強化学習を実行しているとき、学習器4は、タイムスロットSlot_7の開始時点において、N0個のタイムスロットN0_1における敵対的強化学習の最新のQテーブルTBL-Q1を制御手段3へ出力し、学習器5は、N0個のタイムスロットN0_1よりも1つ前のN1個のタイムスロットN1_1における敵対的強化学習の最新のQテーブルTBL-Q2を制御手段3へ出力する。
また、タイムスロットSlot_7の開始時点において、学習器5がN1個のタイムスロットN1_2において、上述した敵対的強化学習を実行しているとき、学習器4は、N1個のタイムスロットN1_2よりも1つ前のN0個のタイムスロットN0_2における敵対的強化学習の最新のQテーブルTBL-Q1を制御手段3へ出力し、学習器5は、タイムスロットSlot_7の開始時点において、N1個のタイムスロットN1_2における敵対的強化学習の最新のQテーブルTBL-Q2を制御手段3へ出力する。
制御手段3は、タイムスロットSlot_7の開始時点において、それぞれ、学習器4,5からQテーブルTBL-Q1,TBL-Q2を受け、その受けたQテーブルTBL-Q1および協調APであるアクセスポイントAP_1,AP_2のタイムスロットSlot_7における送信スケジュールに基づいて、フレームを送信する行動を実行するように制御対象のアクセスポイントAP_Nを制御するとともに、QテーブルTBL-Q2に基づいて、フレームを送信しない行動を実行するように敵対アクセスポイントAP_ADVを制御する。そして、制御対象のアクセスポイントAP_Nは、タイムスロットSlot_7において、制御手段3による制御に従って、フレームを送信し、敵対アクセスポイントAP_ADVは、タイムスロットSlot_7において、制御手段3による制御に従って、フレームを送信しない。
各タイムスロットSlot_8,Slot_9,Slot_10の開始時点においても、上述した動作と同様な動作が実行される。
このように、制御手段3は、制御対象のアクセスポイントAP_Nおよび敵対アクセスポイントAP_ADVによる無線通信とは別に実行されている学習器4,5による敵対的強化学習の結果(QテーブルTBL-Q1,TBL-Q2)に基づいて制御対象のアクセスポイントAP_Nおよび敵対アクセスポイントAP_ADVを制御し、制御対象のアクセスポイントAP_Nおよび敵対アクセスポイントAP_ADVは、学習器4,5による敵対的強化学習とは別に、制御手段3による制御に従ってフレームを送信する行動、またはフレームを送信しない行動を実行する。
なお、この発明の実施の形態においては、制御装置10の動作は、ソフトウェアによって実現されてもよい。この場合、制御装置10は、CPU(Central Processing Unit)、ROM(Read Only memory)およびRAM(Random Access Memory)を備える。そして、ROMは、図21に示すフローチャート(図22から図24に示すフローチャートを含む)の各ステップからなるプログラムProg_Aを記憶する。
CPUは、ROMからプログラムProg_Aを読み出し、その読み出したプログラムProg_Aを実行して、制御対象のアクセスポイントAP_CTLおよび敵対アクセスポイントAP_ADVを制御する。
また、プログラムProg_Aは、CD,DVD等の記録媒体に記録されて流通してもよい。プログラムProg_Aを記録した記録媒体がコンピュータに装着されると、コンピュータは、記録媒体からプログラムProg_Aを読み出して実行し、制御対象のアクセスポイントAP_CTLおよび敵対アクセスポイントAP_ADVを制御する。
従って、プログラムProg_Aを記録した記録媒体は、コンピュータ読み取り可能な記録媒体である。
上述したように、学習段階においては、制御装置10は、協調外のアクセスポイントAP_UNCOORDとして敵対アクセスポイントAP_ADVを仮想的に想定し、上述した方法によって、制御対象のアクセスポイントAP_Nの性能維持行動を学習する。
そして、実際の運用段階においては、協調外のアクセスポイントAP_UNCOORDとして制御外のアクセスポイントAP_OUTを想定して、制御対象のアクセスポイントAP_Nが性能維持行動を実行して制御外のアクセスポイントAP_OUTによる妨害を克服して無線通信を行う。
図26は、図1に示す通信システム100の動作を説明するためのフローチャートである。
図26を参照して、通信システム100の動作が開始されると、学習段階に入り、制御装置10は、i=1を設定する(ステップS201)。
そして、制御対象のアクセスポイントAP_Nおよび敵対アクセスポイントAP_ADVは、協調アクセスポイント(アクセスポイントAP_1~AP_N-1)の通信の有無を観測する(ステップS202)。制御対象のアクセスポイントAP_Nは、協調アクセスポイント(アクセスポイントAP_1~AP_N-1)の通信有無の観測結果に基づいて協調アクセスポイント(アクセスポイントAP_1~AP_N-1)のフレームの送信区間TRS_COORDを生成して制御装置10へ送信する。
その後、制御装置10は、制御対象のアクセスポイントAP_Nおよび敵対アクセスポイントAP_ADVによる協調アクセスポイント(アクセスポイントAP_1~AP_N-1)の通信の有無の観測結果に基づいて、制御対象のアクセスポイントAP_Nおよび敵対アクセスポイントAP_ADVの状態を更新する(ステップS203)。
引き続いて、制御対象のアクセスポイントAP_Nおよび敵対アクセスポイントAP_ADVは、自己の通信の有無および伝送速度を決定する(ステップS204)。
そして、制御対象のアクセスポイントAP_Nは、端末装置TM_NからACKを受信したか否かによって通信の成否を観測する(ステップS205)。
そうすると、制御装置10は、制御対象のアクセスポイントAP_Nおよび敵対アクセスポイントAP_ADVの通信の成否および行動対に基づいて制御対象のアクセスポイントAP_Nの行動価値関数Qπ
p(s,a)および敵対アクセスポイントAP_ADVの行動価値関数Qπ
a(s,a)を更新する(ステップS206)。ここで、行動対は、制御対象のアクセスポイントAP_Nの行動apと敵対アクセスポイントAP_ADVの行動aaとの対である。
そして、ステップS206の後、制御装置10は、i=Nitcrであるか否かを判定する(ステップS207)。
ステップS207において、i=Nitcrでないと判定されたとき、制御装置10は、i=i+1を設定する(ステップS208)。その後、一連の動作は、ステップS202へ移行し、ステップS207において、i=Nitcrであると判定されるまで、ステップS202~ステップS208が繰り返し実行される。
そして、ステップS207において、i=Nitcrであると判定されると、一連の動作は、運用段階に移行する。そして、制御対象のアクセスポイントAP_Nは、運用段階に移行すると、i=1を設定する(ステップS209)。
その後、制御対象のアクセスポイントAP_Nは、協調アクセスポイント(アクセスポイントAP_1~AP_N-1)の通信の有無を観測する(ステップS210)。制御対象のアクセスポイントAP_Nは、協調アクセスポイント(アクセスポイントAP_1~AP_N-1)の通信有無の観測結果に基づいて協調アクセスポイント(アクセスポイントAP_1~AP_N-1)のフレームの送信区間TRS_COORDを生成して制御装置10へ送信する。
引き続いて、制御対象のアクセスポイントAP_Nは、協調アクセスポイント(アクセスポイントAP_1~AP_N-1)の通信の有無の観測結果に基づいて状態を更新する(ステップS211)。
そして、制御対象のアクセスポイントAP_Nおよび制御外のアクセスポイントAP_OUTは、自己の通信の有無および伝送速度を決定する(ステップS212)。
その後、制御対象のアクセスポイントAP_Nは、通信の成否を観測する(ステップS213)。
そうすると、制御対象のアクセスポイントAP_Nは、i=Nitcrであるか否かを判定する(ステップS214)。
ステップS214において、i=Nitcrでないと判定されたとき、制御対象のアクセスポイントAP_Nは、i=i+1を設定する(ステップS215)。その後、一連の動作は、ステップS210へ移行し、ステップS214において、i=Nitcrであると判定されるまで、ステップS210~ステップS215が繰り返し実行される。
そして、ステップS214において、i=Nitcrであると判定されると、一連の動作は、終了する。
なお、図26に示すフローチャートにおいては、ステップS209,S214,S215を削除し、ステップS207において、i=Nitcrであると判定されたとき、ステップS210~ステップS213が無限に繰り返し実行されるようにしてもよい。
図26に示すフローチャートによれば、学習段階(ステップS201~ステップS208)において、制御対象のアクセスポイントAP_Nの行動価値関数Qπ
p(s,a)および敵対アクセスポイントAP_ADVの行動価値関数Qπ
a(s,a)がNitcr個のタイムスロットにおいて繰り返し更新され、制御対象のアクセスポイントAP_Nの性能維持行動が取得される。
そして、運用段階(ステップS209~ステップS215)に入ると、敵対アクセスポイントAP_ADVに代えて制御外のアクセスポイントAP_OUTが導入され、制御対象のアクセスポイントAP_Nは、協調アクセスポイント(アクセスポイントAP_1~AP_N-1)の通信の有無を観測し、その観測結果に基づいて自己の状態を更新する(ステップS210,S211参照)。
その後、制御対象のアクセスポイントAP_Nおよび制御外のアクセスポイントAP_OUTは、自己の通信の有無および伝送速度を決定し(ステップS212参照)、制御対象のアクセスポイントAP_Nは、運用段階において、制御外のアクセスポイントAP_OUTの存在を認識せずに、学習段階で取得した性能維持行動によってフレームを送信したときの通信の成否を観測する(ステップS213参照)。
従って、制御対象のアクセスポイントAP_Nは、運用段階において、制御外のアクセスポイントAP_OUTの存在を認識せずに、制御外のアクセスポイントAP_OUTによる妨害が存在する通信環境において端末装置TM_Nへのフレームの送信に成功する確率を高くできる。その結果、運用段階において、制御対象のアクセスポイントAP_Nは、認識していない制御外のアクセスポイントAP_OUTが存在する通信環境において無線通信のスループットを向上できる。
上述した方法によって制御対象のアクセスポイントAP_Nを制御したときのシミュレーションについて説明する。
シミュレーションにおいては、以下の2つの方式について、協調外のアクセスポイントAP_UNCOORDと制御対象のアクセスポイントAP_CTLとの合計スループットの比較を行う。
(1)理想的な方式
この方式では、制御対象のアクセスポイントAP_CTLは、協調外のアクセスポイントAP_UNCOORDを含む全てのアクセスポイントのフレームの送信状態を得ることができると仮定する。この方式は、あくまで理想的な場合であり、この方式によって得られるスループットが上限値となる。
(2)敵対者無しの強化学習方式
この方式では、制御対象のアクセスポイントAP_CTLは、学習段階において敵対アクセスポイントAP_ADVと競争を行うことなく、単独で学習(Q学習)を行う。よって、運用段階において、制御対象のアクセスポイントAP_CTLは、協調外のアクセスポイントAP_UNCOORDとのフレーム衝突の影響を考えることなくフレームを送信する。その結果、協調外のアクセスポイントAP_UNCOORDのフレームの送信確率が高い場合には、頻繁にフレーム衝突が起こることが予想される。
シミュレーションの諸元を表1に示す。
シミュレーションにおいては、制御対象のアクセスポイントAP_CTLが選択できるMCSインデックスは、M={1,2,3}とする。ここで、“1”は、1Mbit/slotの伝送速度を表し、“2”は、2Mbit/slotの伝送速度を表し、“3”は、3Mbit/slotの伝送速度を表す。また、協調外のアクセスポイントAP_UNCOORDの伝送速度は、3Mbit/slotに固定されており、協調外のアクセスポイントAP_UNCOORDは、各タイムスロットごとにある決まった確率でフレームを送信する。
全てのアクセスポイントAPおよび端末装置TMの位置を固定とすることによって、制御対象のアクセスポイントAP_CTLの通信が他のアクセスポイントAPから受ける干渉の度合いは、各アクセスポイントAPごとに決まっている。
学習段階において、制御対象のアクセスポイントAP_CTLは、協調アクセスポイントAP_1~AP_N-1からの情報に基づいて、それぞれの干渉度合いに応じてフレーム衝突を避けることのできるMCSインデックスを学習している。制御対象のアクセスポイントAP_CTLと協調外のアクセスポイントAP_UNCOORDとは、互いに強く干渉し合うとし、伝送速度に関わらず通信が失敗する。また、この発明の実施の形態による学習段階において、制御対象のアクセスポイントAP_CTLと敵対アクセスポイントAP_ADVとは、100スロットごとに敵対的強化学習を交互に行う。
図27は、制御対象のアクセスポイントおよび協調外のアクセスポイントのスループットの和と、協調外のアクセスポイントによるフレームの送信確率との関係を示す図である。図27において、縦軸は、制御対象のアクセスポイントおよび協調外のアクセスポイントのスループットの和を表し、横軸は、協調外のアクセスポイントによるフレームの送信確率を表す。また、曲線k1は、理想的な方式における制御対象のアクセスポイントおよび協調外のアクセスポイントのスループットの和と、協調外のアクセスポイントによるフレームの送信確率との関係を示し、曲線k2は、この発明の実施の形態による方式における制御対象のアクセスポイントおよび協調外のアクセスポイントのスループットの和と、協調外のアクセスポイントによるフレームの送信確率との関係を示し、曲線k3は、敵対者無しの強化学習方式における制御対象のアクセスポイントおよび協調外のアクセスポイントのスループットの和と、協調外のアクセスポイントによるフレームの送信確率との関係を示す。
図28は、制御対象のアクセスポイントの送信確率と協調外のアクセスポイントによるフレームの送信確率との関係を示す図である。図28において、縦軸は、制御対象のアクセスポイントAP_CTLの送信確率を表し、横軸は、協調外のアクセスポイントによるフレームの送信確率を表す。また、曲線k4は、理想的な方式における制御対象のアクセスポイントAP_CTLの送信確率と、協調外のアクセスポイントによるフレームの送信確率との関係を示し、曲線k5は、この発明の実施の形態による方式における制御対象のアクセスポイントAP_CTLの送信確率と、協調外のアクセスポイントによるフレームの送信確率との関係を示し、曲線k6は、敵対者無しの強化学習方式における制御対象のアクセスポイントAP_CTLの送信確率と、協調外のアクセスポイントによるフレームの送信確率との関係を示す。
図27を参照して、協調外のアクセスポイントAP_UNCOORDによるフレームの送信確率が高いときの合計スループットに注目すると、敵対的強化学習を行った方式(この発明の実施の形態による方式(曲線k2参照))の方が敵対者無しで強化学習を行った方式(曲線k3参照)に比べて高くなっていることが分かる。
一方、協調外のアクセスポイントAP_UNCOORDによるフレームの送信確率が低いとき、敵対的強化学習を行った方式(曲線k2参照)の方が敵対者無しで強化学習を行った方式(曲線k3参照)よりも低くなっていることが分かる。
また、図27の曲線k2に注目すると、協調外のアクセスポイントAP_UNCOORDによるフレームの送信確率がどのような確率であったとしても、ある程度のスループットを維持していることが分かる。これは、図28に示されているように、制御対象のアクセスポイントAP_CTLが自身のフレーム送信確率を未知である協調外のアクセスポイントAP_UNCOORDのフレーム送信確率に適応して変化させているからだと考えられる(曲線k4,k5参照)。この意味では、この発明の実施の形態による方式を用いることで制御対象のアクセスポイントAP_CTLは、協調外のアクセスポイントAP_UNCOORDのフレーム送信確率の変化に対してロバストな方策を獲得できたと言える。対照的に、敵対者無しの強化学習を行った場合、協調外のアクセスポイントAP_UNCOORDのフレーム送信確率が高い場合に合計スループットが著しく低下してしまっているのが分かる(曲線k3参照)。
これは、協調外のアクセスポイントAP_UNCOORDとのフレーム衝突の影響を考えることなく制御対象のアクセスポイントAP_CTLが高確率でフレーム送信を行うため、頻繁にフレーム衝突が起こるからだと考えられる。
しかし、協調外のアクセスポイントAP_UNCOORDのフレーム送出確率が低いときでは、この発明の実施の形態による方式の方が敵対者無しの強化学習を行った場合に比べて合計スループットが低くなっている(曲線k2,k3参照)。これは、制御対象のアクセスポイントAP_CTLの学習不足が原因であると考えられる。学習段階において、敵対アクセスポイントAP_ADVは、妨害のために制御対象のアクセスポイントAP_CTLにとって厳しい状態になるような行動を取ろうと学習する。従って、制御対象のアクセスポイントAP_CTLの通信を妨害するために、フレームを送信しない行動を避けるようになる。その結果、制御対象のアクセスポイントAP_CTLは、協調外のアクセスポイントAP_UNCOORDのフレームが少ないという状態に対する学習が不足し、適切な行動を取り難くなっているからであると考えられる。この学習不足から制御対象のアクセスポイントAP_CTLは、過去にフレーム損失があまり起こっておらず、協調外のアクセスポイントAP_UNCOORDのフレーム送信確率が低い場合でも、自身のフレーム送信確率を上げられず、合計スループットが低くなったと考えられる。
一方、学習段階において敵対者無しの強化学習を行った場合、制御対象のアクセスポイントAP_CTLは、協調外のアクセスポイントAP_UNCOORDとの衝突によってフレーム損失が起こるという可能性を考慮せずに、最もデータが送れるような行動選択を行うようになる。これにより、図28に示されるように、協調外のアクセスポイントAP_UNCOORDの送信確率に関わらず、ほぼ、100%の確率で送信を行っていることが分かる(曲線k6参照)。よって、協調外のアクセスポイントAP_UNCOORDが、殆ど、通信を行わない場合には、この発明の実施の形態による方式よりも合計スループットが大きくなったと考えられる。
図28により、この発明の実施の形態による方式では、制御対象のアクセスポイントAP_CTLがフレーム送信確率を理想的な場合に沿うように変化させていることが分かる(曲線k4,k5参照)。
一方、敵対者無しの強化学習を用いた場合、制御対象のアクセスポイントAP_CTLのフレーム送信確率は、ほぼ、一定であることが分かる(曲線k6)。しかし、協調外のアクセスポイントAP_UNCOORDのフレーム送信確率が低い場合には、この発明の実施の形態による方式と理想的な方式の間には乖離が見られるようになる(曲線k4,k5参照)。これは、上述と同様に、制御対象のアクセスポイントAP_CTLが協調外のアクセスポイントAP_UNCOORDのフレーム送信確率が低い場合に対する学習が不足しているからだと考えられる。
図29は、図1に示す制御装置10の別の概略図である。この発明の実施の形態による制御装置は、図29に示す制御装置10Aであってもよい。
図29を参照して、制御装置10Aは、図2に示す制御装置10の制御手段3および学習器4をそれぞれ制御手段3Aおよび学習器4Aに変えたものであり、その他は、制御装置10と同じである。
制御手段3Aは、図27に示す曲線k2と曲線k3との交点における協調外のアクセスポイントAP_UNCOORDによるフレームの送信確率をしきい値TRP_thとして予め保持する。
また、制御手段3Aは、データベース2の対応表TBL1-1に格納された成功/失敗情報IF_SUCCESS/FAILUREに基づいて敵対アクセスポイントAP_ADVによるフレームの送信確率を算出する。より具体的には、制御手段3Aは、対応表TBL1-1に格納された複数の成功/失敗情報IF_SUCCESS/FAILUREを検出し、その検出した複数の成功/失敗情報IF_SUCCESS/FAILUREに基づいて、“0”からなる成功/失敗情報IF_SUCCESS/FAILUREを検出する。
そして、制御手段3Aは、“0”からなる成功/失敗情報IF_SUCCESS/FAILUREの個数を複数の成功/失敗情報IF_SUCCESS/FAILUREの総数で除算して敵対アクセスポイントAP_ADVによるフレームの送信確率TRP_ADVを算出する。成功/失敗情報IF_SUCCESS/FAILUREが“0”からなるとき、制御対象のアクセスポイントAP_Nによって送信されたフレームが敵対アクセスポイントAP_ADVによって送信されたフレームと衝突したと考えることができる。従って、“0”からなる成功/失敗情報IF_SUCCESS/FAILUREの個数を成功/失敗情報IF_SUCCESS/FAILUREの総数で除算することによって敵対アクセスポイントAP_ADVによるフレームの送信確率TRP_ADVを算出することができる。
制御手段3Aは、フレームの送信確率TRP_ADVを算出すると、その算出したフレームの送信確率TRP_ADVをしきい値TRP_thと比較する。そして、フレームの送信確率TRP_ADVがしきい値TRP_th以下であるとき、制御手段3Aは、敵対アクセスポイントAP_ADV無しの強化学習(Q学習)(=「敵対者無しの強化学習」)を実行するための指示信号INS1を生成して学習器4Aへ出力する。
また、制御手段3Aは、フレームの送信確率TRP_ADVがしきい値TRP_th以下であるとき、データベース2の対応表TBL1-1から制御対象のアクセスポイントAP_Nがフレームを送信したときの送信区間TRS_CTL、伝送速度TRD_CTL、成功/失敗情報IF_SUCCESS/FAILUREおよび送信スケジュールSCH_CTLを読み出すとともにデータベース2の対応表TBL2-1から送信スケジュールSCH_COORDを読み出し、その読み出した送信区間TRS_CTL、伝送速度TRD_CTL、成功/失敗情報IF_SUCCESS/FAILUREおよび送信スケジュールSCH_CTL,SCH_COORDを学習器4Aへ出力する。
一方、フレームの送信確率TRP_ADVがしきい値TRP_thよりも大きいとき、制御手段3Aは、上述した敵対的強化学習(Q学習)を実行するための指示信号INS2を生成して学習器4Aへ出力する。
そして、制御手段3Aは、学習器4Aから制御対象のアクセスポイントAP_Nについての強化学習または敵対的強化学習の結果を受け、その受けた結果に基づいて制御対象のアクセスポイントAP_Nを制御する。
制御手段3Aは、その他、制御手段3と同じ機能を果たす。
学習器4Aは、制御手段3Aから指示信号INS1を受けると、敵対アクセスポイントAP_ADV無しの強化学習を実行する。より具体的には、学習器4Aは、学習器5と行動価値関数Qπ
p(s,a),Qπ
a(s,a)のやり取りをせずに、単独で、敵対アクセスポイントAP_ADV無しの強化学習をQ学習によってN’itcr個のタイムスロットにおいて実行し、期待累積報酬Rが最大になるように制御対象のアクセスポイントAP_Nの行動価値関数Qπ
p(s,a)を繰り返し更新する。そして、学習器4Aは、送信スケジュールSCH_CTLに基づいてタイミングtgが制御対象のアクセスポイントAP_Nによるフレームの送信タイミングtg_TRになったことを検知すると、送信タイミングtg_TRになったときの強化学習(Q学習)の結果(=QテーブルTBL-Q3)を制御手段3Aへ出力する。
また、学習器4Aは、制御手段3Aから指示信号INS2を受けると、学習器5と共に、上述した敵対的強化学習(Q学習)を実行し、送信スケジュールSCH_CTLに基づいてタイミングtgが制御対象のアクセスポイントAP_Nによるフレームの送信タイミングtg_TRになったことを検知すると、送信タイミングtg_TRになったときの敵対的強化学習(Q学習)の結果(=QテーブルTBL-Q1)を制御手段3Aへ出力する。
学習器4Aは、その他、学習器4と同じ機能を果たす。
学習器4Aにおける敵対アクセスポイントAP_ADV無しの強化学習(Q学習)について説明する。
図30は、敵対アクセスポイントAP_ADV無しの強化学習におけるQテーブルの概念図である。
図30を参照して、制御対象のアクセスポイントAP_Nの行動価値関数Qπ
p(s,a)を敵対アクセスポイントAP_ADV無しの強化学習(Q学習)によって更新するときのQテーブルTBL-Q3は、協調APであるアクセスポイントAP_1,AP_2の状態と、制御対象のアクセスポイントAP_Nの行動とによって構成される。
協調APであるアクセスポイントAP_1,AP_2の状態を2ビットの数値[n1,n2]によって表せば、[-1,-1]~[1,1]の4個である。
一方、制御対象のアクセスポイントAP_Nの行動apは、図11において説明した通り、4個の行動からなる。
従って、QテーブルTBL-Q3は、4行×4列の行列によって表され、16個のQ値(=Q1,1~Q4,4)を含む。そして、16個のQ値(=Q1,1~Q4,4)の初期値は、“0”である。
図31から図33は、それぞれ、敵対アクセスポイントAP_ADV無しの強化学習におけるQテーブルの更新方法を説明するための第1から第3の概略図である。
図31を参照して、Q学習の初期状態においては、QテーブルTBL-Q3_1の全てのQ値(Q1,1~Q4,4)は、“0”である(図31の(a)参照)。
そして、学習器4Aは、Q学習において最大のQ値を得るためのアクセスポイントAP_1,AP_2の状態spを決定する。16個のQ値(=Q1,1~Q4,4)の全ての初期値が“0”であるので、学習器4Aは、例えば、アクセスポイントAP_1,AP_2の状態spを[-1,-1]に決定したものとする。
学習器4Aは、アクセスポイントAP_1,AP_2の状態spを決定すると、所定の行動選択則(ソフトマックス行動選択則またはε-greedy行動則)に従って制御対象のアクセスポイントAP_Nの行動apを選択する。この場合、Qテーブルの全てのQ値(Q1,1~Q4,4)が“0”であるので、学習器4Aは、ランダムに制御対象のアクセスポイントAP_Nの行動apを選択する。そして、学習器4Aは、例えば、制御対象のアクセスポイントAP_Nの行動apとして“1”(1Mbit/slotの伝送速度でフレームを送信する行動)を選択したものとする。
そうすると、学習器4Aは、制御手段3Aから受けた送信区間TRS_CTL、伝送速度TRD_CTLおよび成功/失敗情報IF_SUCCESS/FAILUREに基づいて制御対象のアクセスポイントAP_Nの報酬rを算出する。この場合、敵対アクセスポイントAP_ADVが存在しないので、学習器4Aは、伝送速度×IF_SUCCESS/FAILURE×[送信区間TRS_CTLの時間長]によって報酬rを算出する。より具体的には、学習器4Aは、成功/失敗情報IF_SUCCESS/FAILUREが“1”からなるとき、r=1Mbit/slot×[送信区間TRS_CTLの時間長]によって報酬rを算出し、成功/失敗情報IF_SUCCESS/FAILUREが“0”からなるとき、報酬rをr=0と算出する。
また、学習器4Aは、次のタイムスロットにおける状態s(=s’)において制御対象のアクセスポイントAP_Nが行動空間Apの全ての行動を取ったときの行動価値関数Qπ
p(s’,a)の最大値(=maxQπ
p(s’,a)(a∈Ap))を算出する。この場合、QテーブルTBL-Q3-1において、16個のQ値(=Q1,1~Q4,4)の全ての初期値が“0”であるので、行動価値関数Qπ
p(s’,a)の最大値(=maxQπ
p(s’,a)(a∈Ap))は、“0”である。
その後、学習器4Aは、算出した報酬rおよび行動価値関数Qπ
p(s’,a)の最大値(=maxQπ
p(s’,a)(a∈Ap))と、予め設定されたα,γと、行動価値関数Qπ
p(s,a)(=Q値)とを式(10)に代入して行動価値関数Qπ
p(s,a)を更新する。この場合、QテーブルTBL-Q3_1の全てのQ値が“0”であるので、行動価値関数Qπ
p(s,a)(=Q値)は、“0”からなる。その結果、式(10)の右辺は、0+α[r+γ×0-0]=αrとなるので、更新された行動価値関数Qπ
p(s,a)は、Q値(q1,2=αr)からなる。これによって、QテーブルTBL-Q3_1は、QテーブルTBL-Q3_2に更新される(図31の(b)参照)。
引き続いて、学習器4Aは、例えば、協調APのアクセスポイントAP_1,AP_2の状態spを[-1,1]に決定する。そして、学習器4Aは、最大のQ値を得るために、所定の行動選択則(ソフトマックス行動選択則またはε-greedy行動則)に従って、状態sp(=[-1,1])における制御対象のアクセスポイントAP_Nの行動apを選択する。この場合、学習器4Aは、例えば、制御対象のアクセスポイントAP_Nの行動apとして“-1”(フレームを送信しない行動)を選択したものとする。
そうすると、学習器4Aは、上述した方法によって制御対象のアクセスポイントAP_Nの報酬rを算出する。この場合、制御対象のアクセスポイントAP_Nは、“-1”(フレームを送信しない行動)を選択したので、報酬rは、“0”である。
また、学習器4Aは、次のタイムスロットにおける状態s(=s’)において制御対象のアクセスポイントAP_Nが行動空間Apの全ての行動を取ったときの行動価値関数Qπ
p(s’,a)の最大値(=maxQπ
p(s’,a)(a∈Ap))を算出する。この場合、次のタイムスロットにおける状態s(=s’)が状態[-1,-1]であるとき、行動価値関数Qπ
p(s’,a)の最大値(=maxQπ
p(s’,a)(a∈Ap))は、q1,2(=αr)からなり、次のタイムスロットにおける状態s(=s’)が状態[-1,-1]以外であるとき、状態[-1,-1]以外の状態に対応するQ値の全てが“0”であるので(図31の(b)に示すQテーブルTBL-Q3_2参照)、行動価値関数Qπ
p(s’,a)の最大値(=maxQπ
p(s’,a)(a∈Ap))は、“0”からなる(図31のQテーブルTBL-Q3_2参照)。従って、行動価値関数Qπ
p(s’,a)の最大値(=maxQπ
p(s’,a)(a∈Ap))は、q1,2(=αr)または“0”からなる。
学習器4Aは、行動価値関数Qπ
p(s’,a)の最大値(=maxQπ
p(s’,a)(a∈Ap))を算出すると、算出した報酬rおよび行動価値関数Qπ
p(s’,a)の最大値(=maxQπ
p(s’,a)(a∈Ap))と、予め設定されたα,γと、行動価値関数Qπ
p(s,a)(=Q値=q1,2)とを式(10)に代入して行動価値関数Qπ
p(s,a)を更新する。この場合、式(10)の右辺は、q1,2+α[r+γ×q1,2-q1,2]またはq1,2+α[r+γ×0-q1,2]=q1,2+α[r-q1,2]となるので、更新された行動価値関数Qπ
p(s,a)は、Q値(q3,1=q1,2+α[r+γ×q1,2-q1,2]またはq1,2+α[r-q1,2])からなる。これによって、QテーブルTBL-Q3_2は、QテーブルTBL-Q3_3に更新される(図32の(a)参照)。
なお、学習器4Aは、ε-greedy行動則によって制御対象のアクセスポイントAP_Nの行動apを選択した場合において、発生した乱数がε以下でないとき、制御対象のアクセスポイントAP_Nの行動apとしてQ値が最大である行動を選択する。この時点では、QテーブルTBL-Q3は、図31の(b)に示す状態になっているので、最大のQ値は、q1,2になる。従って、学習器4Aは、制御対象のアクセスポイントAP_Nの行動apとして“1”(1Mbit/slotの伝送速度でフレームを送信する行動)を選択する。
そして、学習器4Aは、制御対象のアクセスポイントAP_Nが行動“1”(1Mbit/slotの伝送速度でフレームを送信する行動)を実行したときの報酬rを上述した方法によって算出し、その算出した報酬rを用いて式(10)によってQ値(=q1,2)をQ値(=q’1,2)に更新する(図32の(b)参照)。これによって、QテーブルTBL-Q3-2は、QテーブルTBL-Q3-4に更新される。
以後、学習器4Aは、N’itcr個のタイムスロットの全てについて、上述した動作を繰り返し実行してQテーブルTBL-Q3のQ値を更新する。
そして、N’itcr個のタイムスロットの全てについてQテーブルTBL-Q3のQ値を更新したとき、QテーブルTBL-Q3は、例えば、図33に示すQテーブルTBL-Q3-5に更新されている。
学習器4Aは、N’itcr個のタイムスロットの全てについてQテーブルTBL-Q3のQ値を更新すると、制御対象のアクセスポイントAP_Nによるフレームの送信タイミングtg_TRにおいて、最終的に更新されたQテーブルTBL-Q3-5(図33参照)を制御手段3Aへ出力する。
そして、図31から図33において更新されたQ値は、実質的に報酬rを累積した値からなり、報酬rは、制御対象のアクセスポイントAP_Nの行動apに応じて決定される(式(7)参照)ので、最大のQ値が得られるときの制御対象のアクセスポイントAP_Nの行動apは、制御対象のアクセスポイントAP_Nがフレームを送信すするときのスループットを最大にする行動(「スループット最大行動」と言う。)からなる。
なお、学習器4Aが敵対アクセスポイントAP_ADV無しの強化学習を実行している間、学習器5は、敵対アクセスポイントAP_ADVの行動価値関数Qπ
a(s,a)を更新する敵対的強化学習を停止する。そして、学習器5は、制御対象のアクセスポイントAP_Nの行動価値関数Qπ
p(s,a)を学習器4Aから受けると、上述した方法によって、敵対アクセスポイントAP_ADVの行動価値関数Qπ
a(s,a)を更新する敵対的強化学習を実行する。
図34は、図29に示す制御装置10Aの動作を説明するためのフローチャートである。図34に示すフローチャートは、図21に示すフローチャートのステップS5~ステップS8をステップS9~ステップS13に変えたものであり、その他は、図21に示すフローチャートと同じである。
図34を参照して、制御装置10Aの動作が開始されると、上述したステップS1~ステップS4が順次実行される。
そして、ステップS4の後、制御手段3Aは、データベース2の対応表TBL1-1に格納された複数の成功/失敗情報IF_SUCCESS/FAILUREを読み出し、その読み出した複数の成功/失敗情報IF_SUCCESS/FAILUREに基づいて、上述した方法によって、敵対アクセスポイントAP_ADVによるフレームの送信確率TRP_ADVを算出する(ステップS9)。
その後、制御手段3Aは、フレームの送信確率TRP_ADVがしきい値TRP_th以下であるか否かを判定する(ステップS10)。
ステップS10において、フレームの送信確率TRP_ADVがしきい値TRP_th以下であると判定されたとき、制御手段3Aは、信号INS1および制御対象のアクセスポイントを示す信号S_CTL_AP(AP_N)を生成し、その生成した信号INS1および制御対象のアクセスポイントを示す信号S_CTL_AP(AP_N)を学習器4Aへ出力する。
学習器4Aは、制御手段3Aから信号INS1および制御対象のアクセスポイントを示す信号S_CTL_AP(AP_N)を受けると、制御対象のアクセスポイントを示す信号S_CTL_AP(AP_N)に基づいて、アクセスポイントAP_Nが制御対象のアクセスポイントであり、アクセスポイントAP_1~AP_N-1が協調APであることを検知する。そして、学習器4Aは、制御手段3Aから受けた信号INS1に基づいて、敵対アクセスポイントAP_ADV無しの強化学習を実行する(ステップS11)。
一方、ステップS10において、フレームの送信確率TRP_ADVがしきい値TRP_th以下でないと判定されたとき、制御手段3Aは、信号INS2を生成し、その生成した信号INS2を学習器4A,5へ出力する。
学習器4A,5は、制御手段3Aから信号INS2を受けると、その受けた信号INS2に基づいて、図21のステップS5~ステップS7を順次実行することによって敵対アクセスポイントAP_ADV有りの敵対的強化学習を実行する(ステップS12)。なお、ステップS12において実行されるステップS7の詳細な動作は、上述した図22から図24に示すフローチャートに従って実行される。
そして、制御手段3Aは、ステップS11またはステップS12の後、強化学習によって得られたQテーブルTBL-Q3または敵対的強化学習によって得られたQテーブルTBL-Q1と、協調APであるアクセスポイントAP_1~AP_N-1のフレームの送信スケジュールとに基づいて制御対象のアクセスポイントAP_Nの行動apを制御し、敵対的強化学習によって得られたQテーブルTBL-Q2に基づいて敵対アクセスポイントAP_ADVの行動aaを制御する(ステップS13)。これによって、制御装置10Aの動作が終了する。
なお、図34に示すフローチャートにおいては、ステップS11からステップS13へ移行した場合、制御手段3Aは、敵対アクセスポイントAP_ADV無しの強化学習によって得られたQテーブルTBL-Q3とアクセスポイントAP_1,AP_2のフレームの送信スケジュールとに基づいて制御対象のアクセスポイントAP_Nの行動apを制御する。
一方、ステップS12からステップS13へ移行した場合、制御手段3Aは、敵対アクセスポイントAP_ADV有りの敵対的強化学習によって得られたQテーブルTBL-Q1とアクセスポイントAP_1,AP_2のフレームの送信スケジュールとに基づいて制御対象のアクセスポイントAP_Nの行動apを制御し、敵対アクセスポイントAP_ADV有りの敵対的強化学習によって得られたQテーブルTBL-Q2に基づいて敵対アクセスポイントAP_ADVの行動aaを制御する。
また、ステップS13において、QテーブルTBL-Q1(またはQテーブルTBL-Q3)とアクセスポイントAP_1~AP_N-1のフレームの送信スケジュールとに基づいて制御対象のアクセスポイントAP_Nの行動apを制御するのは、制御対象のアクセスポイントAP_NおよびアクセスポイントAP_1~AP_N-1は、フレーム送出情報を共有し、相互に協調的な制御を行うからである。
図35は、図34のステップS11の詳細な動作を説明するためのフローチャートである。
図35を参照して、図34のステップS10において、フレームの送信確率TRP_ADVがしきい値TRP_th以下であると判定されたとき、学習器4Aは、信号INS1、制御対象のアクセスポイントを示す信号S_CTL_AP(AP_N)、送信区間TRS_CTL、伝送速度TRD_CTL、成功/失敗情報IF_SUCCESS/FAILURE、および送信スケジュールSCH_CTL,SCH_COORDを制御手段3Aから受ける(ステップS111)。
そして、学習器4Aは、信号INS1に基づいて、敵対アクセスポイントAP_ADV無しの強化学習(Q学習)を実行することを検知する(ステップS112)。
引き続いて、学習器4Aは、制御対象のアクセスポイントを示す信号S_CTL_AP(AP_N)に基づいて、アクセスポイントAP_1~AP_Nのうち、アクセスポイントAP_Nが制御対象のアクセスポイントであり、アクセスポイントAP_1~AP_N-1が協調アクセスポイントであることを検知する(ステップS113)。
そうすると、学習器4Aは、i=1を設定する(ステップS114)。そして、学習器4Aは、送信区間TRS_CTL、伝送速度TRD_CTL、成功/失敗情報IF_SUCCESS/FAILURE、および送信スケジュールSCH_CTL,SCH_COORDに基づいて強化学習(Q学習)をN0個のタイムスロットにおいて実行する(ステップS115)。
また、学習器4Aは、ステップS115における強化学習の実行と並行して、送信スケジュールSCH_CTLに基づいてタイミングtgが制御対象のアクセスポイントAP_Nによるフレームの送信タイミングtg_TRになったことを検知すると(ステップS116)、QテーブルTBL-Q3を制御手段3Aへ出力する(ステップS117)。
ステップS116においては、学習器4Aは、上述した図22のステップS75における方法と同じ方法によって、タイミングtgが送信タイミングtg_TRになったことを検知する。
また、ステップS117においては、学習器4Aは、送信タイミングtg_TRにおいて、強化学習(=Q学習)における最新のQテーブルTBL-Q3を制御手段3Aへ出力する。より具体的には、学習器4Aは、ステップS115において実行されている強化学習によって送信タイミングtg_TRの時点までに更新された最新のQテーブルTBL-Q3を制御手段3Aへ出力する。
ステップS117の後、一連の動作は、ステップS115および図34のステップS13へ移行する。
ステップS115の後、学習器4Aは、i=N’itcrであるか否かを判定する(ステップS118)。ここで、N’itcrは、N0の自然数倍の整数である。なお、N’itcrは、Nitcrと同じであってもよく、Nitcrと異なっていてもよい。
ステップS118において、i=N’itcrでないと判定されたとき、学習器4Aは、i=i+1を設定する(ステップS119)。その後、一連の動作は、ステップS115,S116へ移行し、ステップS118において、i=N’itcrであると判定されるまで、ステップS115~ステップS119が繰り返し実行される。
そして、ステップS118において、i=N’itcrであると判定されると、学習器4Aは、上述した図22のステップS82における方法と同じ方法によって、強化学習を終了するか否かを判定する(ステップS120)。
ステップS120において、強化学習を終了しないと判定されたとき、一連の動作は、ステップS114へ移行し、ステップS120において、強化学習を終了すると判定されるまで、ステップS114~ステップS120が繰り返し実行される。
そして、ステップS120において、強化学習を終了すると判定されると、学習器4Aは、強化学習を停止する(ステップS121)。
図35に示すフローチャートによれば、学習器4Aが、N0個のタイムスロットにおいて、制御対象のアクセスポイントAP_Nの行動を学習する強化学習(Q学習)を実行するステップS115が、i=N’itcrになるまで繰り返し実行される(ステップS115,S118,S119参照)。
そして、学習器4Aは、ステップS115に並行して、送信スケジュールSCH_CTLに基づいてタイミングtgが送信タイミングtg_TRになったことを検知すると、送信タイミングtg_TRにおける最新のQテーブルTBL-Q3を制御手段3Aへ出力する(ステップS116,S117参照)。
また、図35に示すフローチャートによれば、ステップS117において、QテーブルTBL-Q3が制御手段3Aへ出力された後、図34のステップS13が実行されるので、学習器4Aは、制御手段3Aの動作と並行してステップS115の強化学習を繰り返し実行する。つまり、学習器4Aは、ステップS120において、学習を終了すると判定されるまでは、制御手段3Aの動作と並行してステップS115の強化学習を繰り返し実行する。
図36は、図35のステップS115の詳細な動作を説明するためのフローチャートである。
図36を参照して、図35のステップS114の後、学習器4Aは、ip=1を設定し(ステップS1151)、ip番目のタイムスロットにおける協調APのアクセスポイントAP_1~AP_N-1の状態spを決定する(ステップS1152)。
引き続いて、学習器4Aは、所定の行動選択則(ソフトマックス行動選択則またはε-greedy行動則)に従って、Q値が最大になるようにip番目のタイムスロットにおける制御対象のアクセスポイントAP_Nの行動apを選択する(ステップS1153)。
そして、学習器4Aは、成功/失敗情報IF_SUCCESS/FAILURE、送信区間TRS_CTLおよび伝送速度TRD_CTLに基づいて、状態spにおいて、制御対象のアクセスポイントAP_Nが行動apを実行したときのip番目のタイムスロットにおける報酬rを上述した方法によって算出する(ステップS1154)。
その後、学習器4Aは、次のタイムスロット(=(ip+1)番目のタイムスロット)の状態s’において、制御対象のアクセスポイントAP_Nが取り得る全ての行動を取ったときの行動価値関数Qπ
p(s’,a)の最大値(=maxQπ
p(s’,a)(a∈Ap))を算出する(ステップS1155)。
そうすると、学習器4Aは、式(10)によって、報酬rおよび行動価値関数Qπ
p(s’,a)の最大値(=maxQπ
p(s’,a)(a∈Ap))を用いて、状態spおよび行動apに対応する制御対象のアクセスポイントAP_Nの行動価値関数Qπ
p(s,a)を制御対象のアクセスポイントAP_Nの期待累積報酬Rが最大になるように更新する(ステップS1156)。
その後、学習器4Aは、ip=N0であるか否かを判定する(ステップS1157)。
ステップS1157において、ip=N0でないと判定されたとき、学習器4Aは、ip=ip+1を設定する(ステップS1158)。その後、一連の動作は、ステップS1152へ移行し、ステップS1157において、ip=N0であると判定されるまで、ステップS1152~ステップS1158が繰り返し実行される。
そして、ステップS1157において、ip=N0であると判定されると、学習器4Aは、i=u×N0を設定する(ステップS1159)。ここで、uは、ステップS1157において、ip=N0であると判定された回数を示し、u=1,2,3,・・・,N’itcr/N0である。ステップS1159の後、一連の動作は、図35のステップS118へ移行する。
図36のステップS1152~ステップS1158がN0回実行されると、ip=N0となり、ステップS1157において、ip=N0であると判定され、ステップS1159において、i=u×N0が設定される。そして、図35のステップS118において、i=N’itcrであるか否かが判定される。上述したように、N’itcrは、N0の自然数倍の整数であり、u=1,2,3,・・・,N’itcr/N0であるので、ステップS1159におけるuがu=N’itcr/N0になると、i=N’itcrとなる。
従って、図35に示すフローチャートに整合して図36に示すフローチャートを実行できる。
制御装置10Aの動作が図34に示すフローチャート(図22から図24に示すフローチャートおよび図35,36に示すフローチャートを含む)に従って実行されることによって、敵対アクセスポイントAP_ADVによるフレームの送信確率TRP_ADVがしきい値TRP_th以下であるとき、敵対アクセスポイントAP_ADV無しの強化学習が実行され(図34のステップS11参照)、フレームの送信確率TRP_ADVがしきい値TRP_thよりも大きいとき、敵対アクセスポイントAP_ADV有りの敵対的強化学習が実行される(図34のステップS12参照)。
その結果、図27に示す制御対象のアクセスポイントAP_Nおよび協調外のアクセスポイントのスループットの和は、フレームの送信確率TRP_ADVがしきい値TRP_th以下であるとき(即ち、協調外のアクセスポイントの送信確率が曲線k2と曲線k3との交点に対応する送信確率以下であるとき)、協調外のアクセスポイントの送信確率に対して曲線k3に従って変化し(即ち、曲線k2に従って変化する場合よりも大きくなり)、フレームの送信確率TRP_ADVがしきい値TRP_thよりも大きいとき(即ち、協調外のアクセスポイントの送信確率が曲線k2と曲線k3との交点に対応する送信確率よりも大きいとき)、協調外のアクセスポイントの送信確率に対して曲線k2に従って変化する。
従って、敵対アクセスポイントAP_ADV有りの敵対的強化学習のみを実行した場合(曲線k2)よりも、協調外のアクセスポイントの全ての送信確率に対して制御対象のアクセスポイントAP_Nおよび協調外のアクセスポイントのスループットの和を大きくできる。
なお、制御装置10Aの動作は、ソフトウェアによって実現されてもよい。この場合、制御装置10Aは、CPU、ROMおよびRAMを備える。そして、ROMは、図34に示すフローチャート(図22から図24に示すフローチャートおよび図35,36に示すフローチャートを含む)の各ステップからなるプログラムProg_Bを記憶する。
CPUは、ROMからプログラムProg_Bを読み出し、その読み出したプログラムProg_Bを実行して、強化学習または敵対的強化学習を実行して制御対象のアクセスポイントAP_N、または制御対象のアクセスポイントAP_Nおよび敵対アクセスポイントAP_ADVを制御する。
また、プログラムProg_Bは、CD,DVD等の記録媒体に記録されて流通してもよい。プログラムProg_Bを記録した記録媒体がコンピュータに装着されると、コンピュータは、記録媒体からプログラムProg_Bを読み出して実行し、強化学習または敵対的強化学習を実行して制御対象のアクセスポイントAP_N、または制御対象のアクセスポイントAP_Nおよび敵対アクセスポイントAP_ADVを制御する。
従って、プログラムProg_Bを記録した記録媒体は、コンピュータ読み取り可能な記録媒体である。
また、通信システム100が制御装置10に代えて制御装置10Aを備える場合、通信システム100の動作は、フレームの送信確率TRP_ADVがしきい値TRP_thよりも大きいとき、図26に示すフローチャートに従って実行され、フレームの送信確率TRP_ADVがしきい値TRP_th以下であるとき、図26に示すフローチャートのステップS206を「制御対象のアクセスポイントAP_Nの通信の成否および行動に基づいて行動価値関数Qπ
p(s,a)(=Q値)を更新するステップ」に変えたフローチャートに従って実行される。
この発明の実施の形態においては、各アクセスポイントAP_1~AP_Nは、上述した制御装置10を備えていてもよい。図37は、図1に示す制御装置10を備えるアクセスポイントの概略図である。
図37を参照して、アクセスポイント20は、制御装置10と、アンテナ21と、通信手段22と、ホストシステム23とを備える。
制御装置10は、有線ケーブル6を介して、アクセスポイント20以外のアクセスポイントから送信スケジュールSCH_COORDを収集するとともに、ホストシステム23からアクセスポイント20の送信区間TRS_CTL、伝送速度TRD_CTL、成功/失敗情報IF_SUCCESS/FAILUREおよび送信スケジュールSCH_CTLを受けるとともに、協調外のアクセスポイントAP_UNCOORDの送信区間TRS_UNCOORDを受ける。
そして、制御装置10は、送信区間TRS_CTL、伝送速度TRD_CTL、成功/失敗情報IF_SUCCESS/FAILURE、送信スケジュールSCH_CTL,SCH_COORDおよび送信区間TRS_UNCOORDに基づいて,上述した方法によって敵対的強化学習を実行し、QテーブルTBL-Q1をホストシステム23へ出力する。
通信手段22は、フレームおよび通信条件(フレームを送信するタイムスロットおよび伝送速度)をホストシステム23から受け、その受けた通信条件でフレームをアンテナ21を介して端末装置へ送信する。そして、通信手段22は、端末装置からACKを受信し、その受信したACKをホストシステム23へ出力する。
また、通信手段22は、アンテナ21を介して端末装置からフレームを受信し、その受信したフレームをホストシステム23へ出力する。
ホストシステム23は、QテーブルTBL-Q1を制御装置10から受ける。そして、ホストシステム23は、QテーブルTBL-Q1に基づいてフレームを送信するか否かを決定し、フレームを送信するとき、フレームと、フレームを送信するタイムスロットおよび伝送速度とを通信手段22へ出力する。
ホストシステム23は、フレーム等を通信手段22へ出力した後、通信手段22からACKを受けると、フレームの送信に成功したと判定する。一方、ホストシステム23は、フレーム等を通信手段22へ出力した後、一定時間が経過しても、通信手段22からACKを受けないとき、フレームの送信に失敗したと判定する。そして、ホストシステム23は、成功/失敗情報IF_SUCCESS/FAILUREを生成して制御装置10へ出力する。
また、ホストシステム23は、フレームを通信手段22から受ける。
なお、アクセスポイント20は、制御装置10に代えて図29に示す制御装置10Aを備えていてもよい。
この場合、制御装置10Aは、敵対アクセスポイントAP_ADVによるフレームの送信確率TRP_ADVがしきい値TRP_th以下であるとき、上述した方法によって、敵対アクセスポイントAP_ADV無しの強化学習を実行してQテーブルTBL-Q3をホストシステム23へ出力する。
一方、フレームの送信確率TRP_ADVがしきい値TRP_thよりも大きいとき、制御装置10Aは、上述した方法によって敵対的強化学習を実行し、QテーブルTBL-Q1をホストシステム23へ出力する。
ホストシステム23は、QテーブルTBL-Q1またはQテーブルTBL-Q3を制御装置10Aから受け、その受けたQテーブルTBL-Q1またはQテーブルTBL-Q3に基づいてフレームを送信するか否かを決定し、フレームを送信するとき、フレームと、フレームを送信するタイムスロットおよび伝送速度とを通信手段22へ出力する。
この発明の実施の形態においては、サービスセットBSS_1~BSS_Nは、「複数のサービスセット」を構成し、サービスセットBSS_1~BSS_Nのうちの任意の1つのサービスセットは、「制御対象サービスセット」を構成し、サービスセットBSS_1~BSS_Nのうちの制御対象サービスセット以外の1個以上のサービスセットは、「協調サービスセット」を構成する。
また、この発明の実施の形態においては、制御対象サービスセットに含まれるアクセスポイントAPは、「制御対象基地局」を構成し、協調サービスセットに含まれるアクセスポイントAPは、「協調基地局」を構成し、敵対アクセスポイントAP_ADVは、「敵対基地局」を構成する。
更に、この発明の実施の形態においては、送信区間TRS_CTLは、「第1の送信区間」を構成し、送信区間TRS_ADVは、「第2の送信区間」を構成する。
更に、この発明の実施の形態においては、送信スケジュールSCH_CTLは、「第1の送信スケジュール」を構成し、送信スケジュールSCH_COORDは、「第2の送信スケジュール」を構成する。
更に、この発明の実施の形態においては、学習器4,4Aが実行する敵対的強化学習は、「第1の敵対的強化学習」を構成し、学習器5が実行する敵対的強化学習は、「第2の敵対的強化学習」を構成する。
更に、この発明の実施の形態においては、学習器4,4Aが行動価値関数Qπ
a(s,a)を固定して敵対的強化学習を実行することは、「敵対基地局による妨害行動を固定して第1の敵対的強化学習を実行する」ことに相当する。制御対象のアクセスポイントAP_Nが取得する報酬rは、敵対アクセスポイントAP_ADVの妨害行動aaにも応じて決定されるので(式(7)参照)、学習器4,4Aは、この妨害行動aaを固定して、制御対象のアクセスポイントAP_Nが更に多くの報酬rを得ることができる行動ap(即ち、妨害行動aaを克服できる行動ap)を敵対的強化学習によって学習するからである。
更に、この発明の実施の形態においては、学習器5が行動価値関数Qπ
p(s,a)を固定して敵対的強化学習を実行することは、「制御対象のアクセスポイントAP_Nの性能維持行動を固定して第2の敵対的強化学習を実行する」ことに相当する。制御対象のアクセスポイントAP_Nが取得する報酬rは、制御対象のアクセスポイントAP_Nの性能維持行動ap(=フレームの送信に成功する行動)に応じて決定されるので、学習器5は、この性能維持行動を固定して、敵対アクセスポイントAP_ADVが報酬rを少なくできる行動aa(即ち、制御対象のアクセスポイントAP_Nの行動apを妨害する妨害行動)を敵対的強化学習によって学習するからである。
更に、この発明の実施の形態においては、行動価値関数Qπ
p(s,a)は、「第1の行動価値関数」を構成し、行動価値関数Qπ
a(s,a)は、「第2の行動価値関数」を構成する。
更に、この発明の実施の形態においては、QテーブルTBL-Q1は、「第1の敵対的強化学習の結果」を構成し、QテーブルTBL-Q2は、「第2の敵対的強化学習の結果」を構成し、QテーブルTBL-Q3は、「強化学習の結果」を構成する。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した実施の形態の説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。