本発明の実施の形態について図面を参照しながら詳細に説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰返さない。
図1は、この発明の実施の形態による通信システムの概略図である。図1を参照して、この発明の実施の形態による通信システム100は、移動体1~15と、AP20と、LTE(Long Time Evolution)基地局30と、ネットワーク40と、制御装置50と、情報サーバ60とを備える。
移動体1~15の各々は、自律的に移動するものであればよく、例えば、電動車いす等のモビリティであってもよく、エンターテインメントロボットおよび運搬ロボット等であってもよい。
移動体1~15の各々は、クラスタヘッド、クラスタメンバおよび予備クラスタメンバのいずれかになる移動体である。そして、クラスタヘッドである移動体およびクラスタメンバである移動体は、後述する方法によって、クラスタを構成する。また、予備クラスタメンバは、将来的にクラスタメンバになる可能性を有する。クラスタヘッドは、クラスタヘッドおよびクラスタメンバのデータをAP20(またはLTE基地局30)を介して情報サーバ60からダウンロードし、クラスタメンバのデータをクラスタメンバへ送信する。
また、クラスタを構成しない移動体(移動体1~15のうちのいずれか)は、自己のデータをAP20(またはLTE基地局30)を介して情報サーバ60からダウンロードする。
AP20は、移動体1~15と制御装置50または情報サーバ60との間の通信を仲介する。LTE基地局30は、移動体1~15と制御装置50または情報サーバ60との間の通信を仲介する。
制御装置50は、後述する方法によって、クラスタヘッドCHの候補である候補クラスタヘッドCH_CAD(移動体1~15のうちの一部の移動体)からクラスタヘッドを選択し、その選択したクラスタヘッドがクラスタを構成するように制御する。
情報サーバ60は、移動体1~15がそれぞれダウンロードするデータD1~D15を保持する。データD1~D15の各々は、例えば、地図データである。そして、データD1~D15は、同一のデータ容量DCを有する。
図2は、図1に示す制御装置50の概略図である。図2を参照して、制御装置50は、通信手段501と、制御手段502と、選択手段503と、演算手段504と、予約手段505と、探索手段506と、データベース507とを備える。
通信手段501は、AP20(またはLTE基地局30)およびネットワーク40を介して移動体1~15からHelloパケットを受信し、その受信したHelloパケットを制御手段502へ出力する。
また、通信手段501は、制御情報IF_CTLを制御手段502から受け、その受けた制御情報IF_CTLを、クラスタヘッドとして選択された移動体(移動体1~15のいずれか)にネットワーク40およびAP20(またはLTE基地局30)を介して送信する。
制御手段502は、Helloパケットを通信手段501から受け、その受けたHelloパケットから、Helloパケットの送信元の移動体の識別子Addi(i=1~n、nは、移動体1~15の総数)、識別子Addj、識別子Addk、受信信号強度RSSI1、受信信号強度RSSI2および接続数N_CN_iを検出する。ここで、受信信号強度RSSI1は、基地局(AP20またはLTE基地局30)と候補クラスタヘッドCH_CADとの間の受信信号強度であり、受信信号強度RSSI2は、候補クラスタヘッドCH_CADと候補クラスタメンバCM_CADまたは予備クラスタメンバCM_PREとの間の受信信号強度であり、接続数N_CN_iは、各候補クラスタヘッドCH_CADが自己と無線リンクで接続される候補クラスタメンバCM_CADの個数である。また、予備クラスタメンバCM_PREは、将来的にクラスタメンバCMになる可能性のある移動体である。更に、識別子Addjは、候補クラスタメンバCM_CADの識別子であり、識別子Addkは、予備クラスタメンバCM_PREの識別子である。そして、j,kは、j+k≦n-(候補クラスタヘッドCH_CADの個数)を満たす1以上の整数である。図1に示す場合、移動体1~15の総数nは、15個である。そして、例えば、候補クラスタヘッドCH_CADの個数が2個である場合、移動体1~15から候補クラスタヘッドCH_CADを除いた移動体の個数は、15-2=13個である。13個の移動体のうち、j個の移動体が候補クラスタメンバCM_CADであり、k個の移動体が予備クラスタメンバCM_PREである。例えば、j=6のとき、kは、7以下になる。これは、k個の移動体の全てが予備クラスタメンバCM_PREになるとは限らないので、j+kが(n-(候補クラスタヘッドCH_CADの個数))以下(j+k≦n-(候補クラスタヘッドCH_CADの個数))としている。
制御手段502は、識別子Addi、識別子Addj、識別子Addk、受信信号強度RSSI1、受信信号強度RSSI2および接続数N_CN_iを検出すると、識別子Addi、識別子Addj、識別子Addk、受信信号強度RSSI1、受信信号強度RSSI2および接続数N_CN_iを相互に対応付けてデータベース507に格納する。
制御手段502は、タイマーを内蔵しており、タイマーを参照して、1つの移動体がクラスタヘッドCHとしてクラスタ内に収容可能なクラスタメンバCMの個数N_husと、将来的にクラスタメンバCMになる可能性のある予備クラスタメンバCM_PREの個数N_PREとの総和(=N_hus+N_PRE)を、候補クラスタヘッドCH_CADとAP20(またはLTE基地局30)との無線通信に必要な無線リソース量で除算した収容効率EFF_husを複数の候補クラスタヘッドCH_CADについて演算するように定期的に演算手段504を制御する。なお、収容効率EFF_husは、1つの移動体がクラスタヘッドCHとしてクラスタ内にクラスタメンバCMを収容するときの収容効率である。
制御手段502は、最大の収容効率EFF_hus_maxと、クラスタヘッドCHとして選択された候補クラスタヘッドCH_CAD_Sの識別子Addi_CH_Sと、最大の収容効率EFF_hus_maxが得られるときのチャネルCHN_maxと、候補クラスタヘッドCH_CAD_Sに収容される複数の候補クラスタメンバCM_CADの複数の識別子Addj_CM_Sと、将来的に候補クラスタヘッドCH_CAD_Sに収容されるクラスタメンバCMになる可能性のある予備クラスタメンバCM_PREの少なくとも1つの識別子Addk_CM_PREと、予約無線リソース量COR_r(rは、1以上の整数)を選択手段503から受けると、識別子Addi_CH_Sを有する候補クラスタヘッドCH_CAD_SがクラスタヘッドCHとして選択されたことを示す選択情報IF_CHを生成する。そして、制御手段502は、選択情報IF_CHと、チャネルCHN_maxと、複数の識別子Addj_CM_Sと、少なくとも1つの識別子Addk_CM_PREと、予約無線リソース量COR_rとを含む制御情報IF_CTLを生成し、その生成した制御情報IF_CTLと識別子Addi_CH_Sとを通信手段501へ出力し、制御情報IF_CTLを識別子Addi_CH_Sの移動体へ送信するように通信手段501を制御する。
ここで、1つの予約無線リソース量COR_rは、無線リソース量COR_Neighborと無線リソース量COR_Potentialとの和からなる。無線リソース量COR_Neighborは、1つの候補クラスタヘッドCH_CADと、1つの候補クラスタヘッドCH_CADに対応する複数の候補クラスタメンバCM_CADとの無線通信に使用可能な無線リソース量である。無線リソース量COR_Potentialは、1つの候補クラスタヘッドCH_CADと、1つの候補クラスタヘッドCH_CADに対応する少なくとも1つの予備クラスタメンバCM_PREとの無線通信に使用可能な無線リソース量である。
選択手段503は、複数の収容効率EFF_husと、複数の収容効率EFF_husにそれぞれ対応する複数の候補クラスタヘッドCH_CADの複数の識別子Addi_CHと、複数の収容効率EFF_husにそれぞれ対応する複数の候補クラスタメンバCM_CADの複数の識別子Addj_CMと、複数の収容効率EFF_husにそれぞれ対応する少なくとも1つの予備クラスタメンバCM_PREの少なくとも1つの識別子Addk_CM_PREと、複数の収容効率EFF_husにそれぞれ対応する複数のチャネルCHN_maxと、複数の収容効率EFF_husにそれぞれ対応する複数の予約無線リソース量COR_rとを演算手段504から受ける。
選択手段503は、複数の収容効率EFF_hus、複数の収容効率EFF_husにそれぞれ対応する複数の候補クラスタヘッドCH_CADの複数の識別子Addi_CH、複数の収容効率EFF_husにそれぞれ対応する複数の候補クラスタメンバCM_CADの複数の識別子Addj_CM、複数の収容効率EFF_husにそれぞれ対応する少なくとも1つの予備クラスタメンバCM_PREの少なくとも1つの識別子Addk_CM_PRE、複数の収容効率EFF_husにそれぞれ対応する複数のチャネルCHN_max、および複数の収容効率EFF_husにそれぞれ対応する複数の予約無線リソース量COR_rを演算手段504から受けると、その受けた複数の収容効率EFF_husから最大の収容効率EFF_husを選択する。そして、選択手段503は、最大の収容効率EFF_husと、最大の収容効率EFF_husに対応する識別子Addi_CH_Sと、最大の収容効率EFF_husに対応する複数の識別子Addj_CM_Sと、最大の収容効率EFF_husに対応する少なくとも1つの識別子Addk_CM_PREと、最大の収容効率EFF_husに対応するチャネルCHN_maxと、最大の収容効率EFF_husに対応する予約無線リソース量COR_rとを制御手段502へ出力する。
また、選択手段503は、最大の収容効率EFF_husに対応する識別子Addi_CH_Sと、最大の収容効率EFF_husに対応する複数の識別子Addj_CM_Sと、最大の収容効率EFF_husに対応する少なくとも1つの識別子Addk_CM_PREと、最大の収容効率EFF_husに対応するチャネルCHN_maxと、最大の収容効率EFF_husに対応する予約無線リソース量COR_rとを予約手段505へ出力する。
演算手段504は、制御手段502からの制御に従って、後述する方法によって、収容効率EFF_husおよび予約無線リソース量COR_rを複数の候補クラスタヘッドCH_CADについて演算する。そして、演算手段504は、複数の収容効率EFF_husと、複数の収容効率EFF_husにそれぞれ対応する複数の候補クラスタヘッドCH_CADの複数の識別子Addi_CHと、複数の収容効率EFF_husにそれぞれ対応する複数の候補クラスタメンバCM_CADの複数の識別子Addj_CMと、複数の収容効率EFF_husにそれぞれ対応する少なくとも1つの予備クラスタメンバCM_PREの少なくとも1つの識別子Addk_CM_PREと、複数の収容効率EFF_husにそれぞれ対応する複数のチャネルCHN_maxと、複数の収容効率EFF_husにそれぞれ対応する複数の予約無線リソース量COR_rとを選択手段503へ出力する。
予約手段505は、最大の収容効率EFF_husに対応する識別子Addi_CH_Sと、最大の収容効率EFF_husに対応する複数の識別子Addj_CM_Sと、最大の収容効率EFF_husに対応する少なくとも1つの識別子Addk_CM_PREと、最大の収容効率EFF_husに対応するチャネルCHN_maxと、最大の収容効率EFF_husに対応する予約無線リソース量COR_rとを選択手段503から受け、その受けた識別子Addi_CH_S、複数の識別子Addj_CM_S、少なくとも1つの識別子Addk_CM_PRE、チャネルCHN_max、および予約無線リソース量COR_rを相互に対応付けてデータベース507に格納し、予約無線リソース量COR_rを予約する。
探索手段506は、複数のチャネルCHN1~CHNq(qは、2以上の整数)の各々について、利用可能な無線リソース量(=空いている無線リソース量)を探索し、その探索した利用可能な無線リソース量をチャネルCHNqに対応付けてデータベース507に格納する。この場合、探索手段505は、1つのチャネルの観測時間に対する空いている時間の総和の比を利用可能な無線リソース量として探索する。なお、探索手段506は、この利用可能な無線リソース量の探索を定期的に行い、その探索結果をデータベース507に格納する。
データベース507は、受信信号強度と通信レートとの対応表、チャネルと利用可能な無線リソース量との対応表、移動体の識別子と移動体の受信信号強度と移動体の接続数との対応表、および識別子Addi_CH_Sと、複数の識別子Addj_CM_Sと、少なくとも1つの識別子Addk_CM_PREと、チャネルCHN_maxと、予約無線リソース量COR_rとの対応表を格納する。
図3は、受信信号強度と通信レートとの対応関係を示す対応表の概略図である。図3を参照して、対応表TBL1は、受信信号強度と通信レートとを含む。受信信号強度および通信レートは、相互に対応付けられる。
-82[dBm]未満の受信信号強度は、6[Mbps]の通信レートに対応付けられ、-82[dBm]以上-81[dBm]未満の受信信号強度は、9[Mbps]の通信レートに対応付けられ、-81[dBm]以上-79[dBm]未満の受信信号強度は、12[Mbps]の通信レートに対応付けられ、-79[dBm]以上-77[dBm]未満の受信信号強度は、18[Mbps]の通信レートに対応付けられる。また、-77[dBm]以上-74[dBm]未満の受信信号強度は、24[Mbps]の通信レートに対応付けられ、-74[dBm]以上-70[dBm]未満の受信信号強度は、36[Mbps]の通信レートに対応付けられ、-70[dBm]以上-66[dBm]未満の受信信号強度は、48[Mbps]の通信レートに対応付けられ、-66[dBm]以上の受信信号強度は、54[Mbps]の通信レートに対応付けられる。
なお、一般的に、対応表TBL1における受信信号強度と通信レートとの対応関係は、無線システム毎に異なるので、例えば、LTEと無線LAN(Local Area Network)では、それぞれ、異なる対応表を用いてもよい。
図4は、チャネルと利用可能な無線リソース量A_CORとの対応関係を示す対応表の概略図である。
図4を参照して、対応表TBL2は、チャネルと、利用可能な無線リソース量A_CORとを含む。チャネルおよび無線リソース量A_CORは、相互に対応付けられる。チャネルCHN1~CHNqは、それぞれ、0.9,0.8,0.6,・・・,0.5の無線リソース量A_CORに対応付けられる。そして、チャネルCHN1~CHNqは、例えば、利用可能な無線リソース量A_CORの大きい順に対応表TBL2に格納される。
図5は、移動体1~15の識別子、受信信号強度および接続数の対応関係を示す対応表の概略図である。
図5を参照して、対応表TBL3は、識別子i、識別子j、識別子k、受信信号強度1、受信信号強度2および接続数を含む。識別子i、識別子j、識別子k、受信信号強度1、受信信号強度2および接続数は、相互に対応付けられる。
識別子iは、Helloパケットを制御装置50へ送信した移動体の識別子からなり、識別子jは、識別子iを有する移動体における受信信号強度RSSIBCがしきい値RSSI_th1以上である移動体の識別子からなり、識別子kは、識別子iを有する移動体における受信信号強度RSSIBCがしきい値RSSI_th1よりも小さい移動体の識別子からなる。
識別子iは、識別子Addi_1~Addi_nからなる。識別子jは、識別子Addj_1(1)~Addj_1(J1),Addj_2(1)~Addj_2(J2),・・・,Addj_n(1)~Addj_n(Jn)からなる。ここで、Addj_1(J1)の添え字“j_1(J1)”の“1”は、識別子Addi_1の添え字“i_1”の“1”に対応していることを表し、添え字“j_1(J1)”の“J1”は、全体で2以上の整数を表す。Addj_2(J2)の添え字“j_2(J2)”、・・・、およびAddj_n(Jn)の添え字“j_n(Jn)”についても同様である。なお、“J1”~“Jn”は、それぞれ、接続数N_CN_1~N_CN_nに等しい。
そして、識別子Addj_1(1)~Addj_1(J1)は、識別子Addi_1に対応付けられ、識別子Addj_2(1)~Addj_2(J2)は、識別子Addi_2に対応付けられ、以下、同様にして、識別子Addj_n(1)~Addj_n(Jn)は、識別子Addi_nに対応付けられる。
識別子kは、識別子Addk_1(1)~Addk_1(K1),Addk_2(1)~Addk_2(K2),・・・,Addk_n(1)~Addk_n(Kn)からなる。ここで、Addk_1(K1)の添え字“k_1(K1)”の“1”は、識別子Addi_1の添え字“i_1”の“1”に対応していることを表し、添え字“k_1(K1)”の“K1”は、全体で1以上の整数を表す。Addk_2(K2)の添え字“k_2(K2)”、・・・、およびAddk_n(Kn)の添え字“k_n(Kn)”についても同様である。
そして、識別子Addk_1(1)~Addk_1(K1)は、識別子Addi_1に対応付けられ、識別子Addk_2(1)~Addk_2(K2)は、識別子Addi_2に対応付けられ、以下、同様にして、識別子Addk_n(1)~Addk_n(Kn)は、識別子Addi_nに対応付けられる。
受信信号強度1は、AP20(またはLTE基地局30)と識別子Addi_1~Addi_nを有する移動体との間の受信信号強度RSSIAP-i_1~RSSIAP-i_nからなる。そして、受信信号強度RSSIAP-i_1~RSSIAP-i_nは、それぞれ、識別子Addi_1~Addi_nに対応付けられる。
受信信号強度2は、移動体miと移動体mj,mkとの間の受信信号強度RSSImi-mj,RSSImi-mkからなる。即ち、受信信号強度2は、[RSSIi_1-j_1(1)~RSSIi_1-j_1(J1)/RSSIi_1-k_1(1)~RSSIi_1-k_1(K1)],[RSSIi_2-j_2(1)~RSSIi_2-j_2(J2)/RSSIi_2-k_2(1)~RSSIi_2-k_2(K2)],・・・,[RSSIi_n-j_2(1)~RSSIi_n-j_n(Jn)/RSSIi_n-k_n(1)~RSSIi_n-k_n(Kn)]からなる。
ここで、受信信号強度RSSIi_1-j_1(1)~RSSIi_1-j_1(J1)は、それぞれ、識別子Addj_1(1)~Addj_1(J1)を有する移動体から送信されたビーコンBeaconの識別子Addi_1を有する移動体における受信信号強度であり、受信信号強度RSSIi_1-k_1(1)~RSSIi_1-k_1(K1)は、それぞれ、識別子Addk_1(1)~Addk_1(K1)を有する移動体から送信されたビーコンBeaconの識別子Addi_1を有する移動体における受信信号強度である。受信信号強度RSSIi_2-j_2(1)~RSSIi_2-j_2(J2)、受信信号強度RSSIi_2-k_2(1)~RSSIi_2-k_2(K2)、受信信号強度RSSIi_n-j_2(1)~RSSIi_n-j_n(Jn)および受信信号強度RSSIi_n-k_n(1)~RSSIi_n-k_n(Kn)についても同様である。
そして、[RSSIi_1-j_1(1)~RSSIi_1-j_1(J1)/RSSIi_1-k_1(1)~RSSIi_1-k_1(K1)]の受信信号強度2は、識別子Addi_1に対応付けられ、[RSSIi_2-j_2(1)~RSSIi_2-j_2(J2)/RSSIi_2-k_2(1)~RSSIi_2-k_2(K2)]の受信信号強度2は、識別子Addi_2に対応付けられ、以下、同様にして、[RSSIi_n-j_n(1)~RSSIi_n-j_n(Jn)/RSSIi_n-k_n(1)~RSSIi_n-k_n(Kn)]の受信信号強度2は、識別子Addi_nに対応付けられる。
接続数は、N_CN_1~N_CN_nからなり、接続数N_CN_1~N_CN_nは、それぞれ、識別子Addi_1~Addi_nに対応付けられる。
なお、移動体1~15の各々は、Helloパケットを定期的に制御装置50へ送信するので、対応表TBL3は、[Addi_n/Addj_n(1)~Addj_n(Jn)/Addk_n(1)~Addk_n(Kn)/RSSIAP-i_n/RSSIi_n-j_n(1)~RSSIi_n-j_n(Jn)/RSSIi_n-k_n(1)~RSSIi_n-k_n(Kn)/N_CN_n]の対応関係を時間に対応付けて格納している。
図6は、時間と、候補クラスタヘッドと、候補クラスタメンバと、予備クラスタメンバと、チャネルと、予約無線リソース量との対応表の概略図である。
図6を参照して、対応表TBL4は、時間と、候補クラスタヘッドと、候補クラスタメンバと、予備クラスタメンバと、チャネルと、予約無線リソース量とを含む。時間、候補クラスタヘッド、候補クラスタメンバ、予備クラスタメンバ、チャネル、および予約無線リソース量は、相互に対応付けられる。
識別子Add1_CH_S~Addu_CH_Sをそれぞれ有するu個の候補クラスタヘッドCH_CADは、時間t1に対応付けられる。
識別子Add11_CM_S~識別子Add1j_CM_Sをそれぞれ有する(1j)個の候補クラスタメンバCM_CAD、識別子Add11_CM_PRE~識別子Add1k_CM_PREをそれぞれ有する(1k)個の予備クラスタメンバCM_PRE、チャネルCHN_max_1および予約無線リソース量COR_1は、識別子Add1_CH_Sを有する候補クラスタヘッドCH_CADに対応付けられる。
識別子Add21_CM_S~識別子Add2j_CM_Sをそれぞれ有する(2j)個の候補クラスタメンバCM_CAD、識別子Add21_CM_PRE~識別子Add2k_CM_PREをそれぞれ有する(2k)個の予備クラスタメンバCM_PRE、チャネルCHN_max_2および予約無線リソース量COR_2は、識別子Add2_CH_Sを有する候補クラスタヘッドCH_CADに対応付けられる。
以下、同様にして、識別子Addu1_CM_S~識別子Adduj_CM_Sをそれぞれ有する(uj)個の候補クラスタメンバCM_CAD、識別子Addu1_CM_PRE~識別子Adduk_CM_PREをそれぞれ有する(uk)個の予備クラスタメンバCM_PRE、チャネルCHN_max_uおよび予約無線リソース量COR_uは、識別子Addu_CH_Sを有する候補クラスタヘッドCH_CADに対応付けられる。
識別子Add1’CH_S~Addu’CH_Sをそれぞれ有するu’個の候補クラスタヘッドCH_CADは、時間t2に対応付けられる。
識別子Add11’_CM_S~識別子Add1j’_CM_Sをそれぞれ有する(1j’)個の候補クラスタメンバCM_CAD、識別子Add11’_CM_PRE~識別子Add1k’_CM_PREをそれぞれ有する(1k’)個の予備クラスタメンバCM_PRE、チャネルCHN_max_1’および予約無線リソース量COR_1’は、識別子Add1’_CH_Sを有する候補クラスタヘッドCH_CADに対応付けられる。
識別子Add21’_CM_S~識別子Add2j’_CM_Sをそれぞれ有する(2j’)個の候補クラスタメンバCM_CAD、識別子Add21’_CM_PRE~識別子Add2k’_CM_PREをそれぞれ有する(2k’)個の予備クラスタメンバCM_PRE、チャネルCHN_max_2’および予約無線リソース量COR_2’は、識別子Add2’_CH_Sを有する候補クラスタヘッドCH_CADに対応付けられる。
以下、同様にして、識別子Addu1’_CM_S~識別子Adduj’_CM_Sをそれぞれ有する(uj’)個の候補クラスタメンバCM_CAD、識別子Addu1’_CM_PRE~識別子Adduk’_CM_PREをそれぞれ有する(uk’)個の予備クラスタメンバCM_PRE、チャネルCHN_max_u’および予約無線リソース量COR_u’は、識別子Addu’_CH_Sを有する候補クラスタヘッドCH_CADに対応付けられる。
そして、以下、同様にして、時間t、候補クラスタヘッドCH_CAD、候補クラスタメンバCM_CAD、予備クラスタメンバCM_PRE、チャネルCHN_maxおよび予約無線リソースCOR_rが相互に対応付けられて対応表TBL4に格納される。
なお、1j、2j、uj、1k、2k、uk、1j’、2j’、uj’、1k’、2k’、uk’の各々は、全体で1つの正の整数を表し、uおよびu’の各々は、正の整数である。
図7は、この発明の実施の形態におけるデータ容量を説明するための概略図である。図7を参照して、候補クラスタヘッドCH_CADの位置を中心とし、中心から半径r(例えば、10m)の円CIR1は、候補クラスタヘッドCH_CADのデータを表すものとする。
そして、位置が円CIR1の内部および円CIR1の円周上にあるクラスタメンバCMを候補クラスタヘッドCH_CADに近接する近接移動体とする。この発明の実施の形態においては、クラスタは、クラスタヘッドCHと、クラスタヘッドCHの近接移動体とによって構成される。
クラスタメンバCMの位置が円CIR1の円周上に存在するとき、そのクラスタメンバCMのデータは、円CIR2によって表される。また、クラスタメンバCMの位置が円CIR1の内部に存在するとき、そのクラスタメンバCMのデータは、円CIR3によって表される。
ここで、候補クラスタヘッドCH_CADの位置を中心とし、半径2r(=20m)の円CIR_totalを想定すると、クラスタメンバCMのデータを表す円は、必ず、円CIR_totalによって表される領域内に存在する。クラスタメンバCMの位置は、円CIR1によって表される領域内に存在するからである。
1つのデータのデータ容量DCは、円CIR1の面積によって表されるので、円CIR_totalによって表されるデータのデータ容量は、(4πr2/πr2)×DC=4DCである。
クラスタヘッドCH(=クラスタヘッドCHとして選択された候補クラスタヘッドCH_CAD)は、自己のデータとクラスタメンバCMのデータとを情報サーバ60からダウンロードする。この場合、クラスタヘッドCH(=クラスタヘッドCHとして選択された候補クラスタヘッドCH_CAD)は、円CIR_totalによって表されるデータ容量4DCのデータを情報サーバ60からダウンロードする。
なお、この発明の実施の形態においては、円CIR_totalは、円CIR1の半径rの2倍に限らず、一般的には、円CIR1の半径rの整数倍であればよい。
図8は、候補クラスタヘッド、候補クラスタメンバおよび予備クラスタメンバの関係を説明するための図である。
図8を参照して、候補クラスタヘッドCH_CAD(○)は、円CIR1の中心に配置され、候補クラスタメンバCM_CAD(●)は、円CIR1の内部または円周上に配置される。そして、予備クラスタメンバCM_PRE(ハッチングされた〇)は、円CIR1の外側であり、かつ、円CIR1の同心円である円CIR1-1の内部または円周上に配置される。
円CIR1の円周は、候補クラスタヘッドCH_CADにおける受信信号強度RSSI2がしきい値RSSI_th1になる位置である。しきい値RSSI_th1は、例えば、-60dBmである。従って、候補クラスタメンバCM_CAD(●)から送信されたビーコンBeaconの候補クラスタヘッドCH_CADにおける受信信号強度RSSI2_CMは、しきい値RSSI_th1以上になる。
円CIR1-1の円周は、候補クラスタヘッドCH_CADにおける受信信号強度RSSI2がしきい値RSSI_th2になる位置である。しきい値RSSI_th2は、例えば、-70dBm(<RSSI_th1)である。従って、予備クラスタメンバCM_PRE(ハッチングされた〇)から送信されたビーコンBeaconの候補クラスタヘッドCH_CADにおける受信信号強度RSSI2_PREは、しきい値RSSI_th1よりも小さく、かつ、しきい値RSSI_th2以上になる。
その結果、制御装置50の制御手段502は、データベース507に格納された対応表TBL3を参照して、しきい値RSSI_th1以上である受信信号強度2を有する移動体を候補クラスタメンバCM_CADとして抽出でき、しきい値RSSI_th1よりも小さく、かつ、しきい値RSSI_th2以上である受信信号強度2を有する移動体を予備クラスタメンバCM_PREとして抽出できる。
図9は、クラスタヘッドを選択する方法を説明するための図である。図9を参照して、制御手段502は、データベース507に格納された対応表TBL3を参照して、接続数N_CN_iに基づいて、閾値以上の接続数N_CN_i’を有する移動体2,13を候補クラスタヘッドCH_CADとして抽出する。
そして、制御手段502は、対応表TBL3を参照して、候補クラスタヘッドCH_CAD(移動体2または移動体13)における受信信号強度RSSI2がしきい値RSSI_th1以上である移動体3,4,8,9,14を候補クラスタメンバCM_CADとして抽出する。また、制御手段502は、対応表TBL3を参照して、候補クラスタヘッドCH_CAD(移動体2または移動体13)における受信信号強度RSSI2がしきい値RSSI_th1よりも小さく、かつ、しきい値RSSI_th2以上である移動体1,5,10を予備クラスタメンバCM_PREとして抽出する。
更に、制御手段502は、対応表TBL2を参照して、利用可能な無線リソース量A_CORが最大であるチャネルCHN(A_COR_max)を選択する。
そして、制御手段502は、候補クラスタヘッドCH_CAD(=移動体2,13)の識別子Add2,Add13と、候補クラスタメンバCM_CAD(=移動体3,4,8,9,14)の識別子Add3,Add4,Add8,Add9,Add14と、予備クラスタメンバCM_PRE(=移動体1,5,10)の識別子Add1,Add5,Add10と、選択したチャネルCHN(A_COR_max)と、データ容量DCと、データのダウンロード周期長Tdとを演算手段504へ出力する。この場合、制御手段502は、選択したチャネルCHN(A_COR_max)の利用可能な無線リソース量A_CORを最大無線リソース量として用いて収容効率EFF_husを計算するように演算手段504を制御する。なお、制御手段502は、実際に収容効率EFF_husを計算する際に、他の候補クラスタヘッドCH_CADを候補クラスタメンバCMに含めてもよい。
演算手段504は、候補クラスタヘッドCH_CAD(=移動体2,13)の識別子Add2,Add13と、候補クラスタメンバCM_CAD(=移動体3,4,8,9,14)の識別子Add3,Add4,Add8,Add9,Add14と、予備クラスタメンバCM_PRE(=移動体1,5,10)の識別子Add1,Add5,Add10と、チャネルCHN_maxと、データ容量DCと、データのダウンロード周期長Tdとを制御手段502から受ける。
そして、演算手段504は、対応表TBL2を参照して、利用可能な無線リソース量が最大であるチャネルCHN1(=チャネルCHN(A_COR_max))に対応する無線リソース量(=0.9)を選択し、その選択した無線リソース量(=0.9)をA_COR_initialに設定する。
また、演算手段504は、対応表TBL3を参照して、移動体2と、移動体1,3,4,5,8,9,10,14との間の受信信号強度RSSI2-1,RSSI2-3,RSSI2-4,RSSI2-5,RSSI2-8,RSSI2-9,RSSI2-10,RSSI2-14を検出し、その後、対応表TBL1を参照して、その検出した受信信号強度RSSI2-1,RSSI2-3,RSSI2-4,RSSI2-5,RSSI2-8,RSSI2-9,RSSI2-10,RSSI2-14にそれぞれ対応する通信レートR1,R3,R4,R5,R8,R9,R10,R14を検出する。そして、演算手段504は、通信レートR1,R3,R4,R5,R8,R9,R10,R14を、それぞれ、移動体2と移動体1,3,4,5,8,9,10,14との間の通信レートRCH_CAD(2)-CM_CAD(1),RCH_CAD(2)-CM_CAD(3),RCH_CAD(2)-CM_CAD(4),RCH_CAD(2)-CM_CAD(5),RCH_CAD(2)-CM_CAD(8),RCH_CAD(2)-CM_CAD(9),RCH_CAD(2)-CM_CAD(10),RCH_CAD(2)-CM_CAD(14)に設定する。
その後、演算手段504は、1つのデータのデータ容量DC、通信レートRCH_CAD(2)-CM_CAD(3)およびデータをダウンロードする周期長Tdを次式に代入して候補クラスタヘッドCH_CAD(移動体2)と候補クラスタメンバCM_CAD(移動体3)との間の無線リソース量COR(3)を算出する。
式(1)の右辺の分母は、通信レートRCH_CAD(2)-CM_CAD(3)に周期長Tdを乗算したものであり、[bit]の単位を有する。また、データDCも[bit]の単位を有するので、式(1)の無線リソース量COR(j)は、無次元の単位である。
そして、演算手段504は、無線リソース量COR(3)を次式のCOR(j)に代入して全体の無線リソース量CM_COR_totalを演算する。
なお、全体の無線リソース量CM_COR_totalを最初に演算するとき、式(2)の右辺のCM_COR_totalは、“0”に設定されている。
引き続いて、演算手段504は、演算した全体の無線リソース量CM_COR_totalを次式に代入して利用可能な無線リソース量A_CORを演算する。
式(3)のA_COR_initialは、上述したように、対応表TBL2の利用可能な無線リソース量からなるので、無次元の単位である。そして、全体の無線リソース量CM_COR_totalは、無線リソース量COT(j)を加算したものであり、無線リソース量COR(j)は、上述したように、無次元の単位である。従って、利用可能な無線リソース量A_CORは、無次元の単位である。
そうすると、演算手段504は、利用可能な無線リソース量A_CORが零よりも大きいか否かを判定する。そして、利用可能な無線リソース量A_CORが零よりも大きいと判定されたとき、演算手段504は、候補クラスタメンバCM_CADの収容個数N_husを“1”だけインクリメントする。
その後、演算手段504は、データ容量DC、移動体2と移動体4との間の通信レートRCH_CAD(2)-CM_CAD(4)、および周期長Tdを式(1)に代入して候補クラスタヘッドCH_CAD(移動体2)と候補クラスタメンバCM_CAD(移動体4)との間の無線リソース量COR(4)を算出する。
そして、演算手段504は、無線リソース量COR(4)を式(2)に代入して全体の無線リソース量CM_COR_totalを演算する。この場合、全体の無線リソース量CM_COR_totalは、無線リソース量COR(3)と無線リソース量COR(4)との総和になっている。
引き続いて、演算手段504は、演算した全体の無線リソース量CM_COR_totalを式(3)に代入して利用可能な無線リソース量A_CORを演算する。
そうすると、演算手段504は、利用可能な無線リソース量A_CORが零よりも大きいか否かを判定し、利用可能な無線リソース量A_CORが零よりも大きいと判定されたとき、収容個数N_husを“1”だけインクリメントする。
その後、演算手段504は、移動体8,9,14について、上述した演算を繰り返し実行し、収容個数N_husを“1”づつインクリメントする。
そして、演算手段504は、候補クラスタメンバCM_CAD(=移動体3,4,8,9,14)の全てについて上述した式(1)~(3)による演算を行った段階で利用可能な無線リソース量A_CORが零よりも大きいと判定したとき、利用可能な無線リソース量A_CORが零以下であると判定されるまで、予備クラスタメンバCM_PRE(=移動体1,5,10)について、上述した式(1)~(3)による演算を繰り返し実行する。
この場合、予備クラスタメンバCM_PRE(=移動体1,5,10)の全てについて、上述した式(1)~(3)による演算を繰り返し実行するまで、利用可能な無線リソース量A_CORが零よりも大きいと判定されることもあれば、予備クラスタメンバCM_PRE(=移動体1,5,10)のうちの一部の移動体(移動体1,5,10の個数よりも少ない個数の移動体)について、上述した式(1)~(3)による演算を繰り返し実行した段階で、利用可能な無線リソース量A_CORが零以下であると判定されることもある。
なお、演算手段504は、候補クラスタメンバCM_CAD(=移動体3,4,8,9,14)の全てについて上述した式(1)~(3)による演算を行った段階で利用可能な無線リソース量A_CORが零以下であると判定されたとき、予備クラスタメンバCM_PRE(=移動体1,5,10)について、上述した式(1)~(3)による演算を実行しない。
演算手段504は、利用可能な無線リソース量A_CORが零よりも大きくなくなるまで(即ち、利用可能な無線リソース量A_CORが零以下になるまで)、上記の動作を繰り返し実行する。そして、演算手段504は、利用可能な無線リソース量A_CORが零よりも大きくなくなったとき(即ち、利用可能な無線リソース量A_CORが零以下になったとき)のN_husのカウント値を候補クラスタヘッドCH_CAD(移動体2)が収容可能な収容個数とする。この収容個数N_husは、候補クラスタメンバCM_CADの収容個数N_hus(CM)と予備クラスタメンバCM_PREの収容個数N_hus(PRE)との和からなる。
演算手段504は、候補クラスタヘッドCH_CAD(移動体2)が収容可能な収容個数N_husを演算すると、対応表TBL3を参照して、AP20(またはLTE基地局30)と候補クラスタヘッドCH_CAD(移動体2)との間の受信信号強度RSSIAP-m_2を検出し、対応表TBL1を参照して、受信信号強度RSSIAP-m_2に対応する通信レートRAP-2を検出する。そして、演算手段504は、通信レートRAP-2をAP20(またはLTE基地局30)と候補クラスタヘッドCH_CAD(移動体2)との間の通信レートRAP-CH_CAD(2)に設定する。
そうすると、演算手段504は、情報サーバ60からダウンロードするデータのデータ容量4DCを通信レートRAP-CH_CAD(2)で除算してAP20(またはLTE基地局30)と候補クラスタヘッドCH_CAD(移動体2)との間の無線リソース量CORAP-CH_CAD(2)を演算する。そして、演算手段504は、収容個数N_husを無線リソース量CORAP-CH_CAD(2)で除算して候補クラスタヘッドCH_CAD(移動体2)の収容効率EFF_hus(2)を演算する。
演算手段504は、上述した動作を繰り返し実行し、候補クラスタヘッドCH_CAD(移動体13)の収容効率EFF_hus(13)を演算する。
その後、演算手段504は、収容効率EFF_hus(2)が得られるときの予約無線リソース量COR_r(2)を演算する。より具体的には、演算手段504は、候補クラスタヘッドCH_CAD(=移動体2)と候補クラスタメンバCM_CAD(=移動体3)との間の通信レートRCH_CAD(2)-CM_CAD(3)、データ容量DCおよび周期長Tdを式(1)に代入して無線リソース量COR(3)を演算し、候補クラスタヘッドCH_CAD(=移動体2)と候補クラスタメンバCM_CAD(=移動体4)との間の通信レートRCH_CAD(2)-CM_CAD(4)、データ容量DCおよび周期長Tdを式(1)に代入して無線リソース量COR(4)を演算し、候補クラスタヘッドCH_CAD(=移動体2)と候補クラスタメンバCM_CAD(=移動体8)との間の通信レートRCH_CAD(2)-CM_CAD(8)、データ容量DCおよび周期長Tdを式(1)に代入して無線リソース量COR(8)を演算し、候補クラスタヘッドCH_CAD(=移動体2)と候補クラスタメンバCM_CAD(=移動体9)との間の通信レートRCH_CAD(2)-CM_CAD(9)、データ容量DCおよび周期長Tdを式(1)に代入して無線リソース量COR(9)を演算し、候補クラスタヘッドCH_CAD(=移動体2)と候補クラスタメンバCM_CAD(=移動体14)との間の通信レートRCH_CAD(2)-CM_CAD(14)、データ容量DCおよび周期長Tdを式(1)に代入して無線リソース量COR(14)を演算する。
そして、演算手段504は、無線リソース量COR(3),COR(4),COR(8),COR(9),COR(14)の総和を演算して候補クラスタヘッドCH_CAD(=移動体2)と候補クラスタメンバCM_CAD(=移動体3,4,8,9,14)との無線通信に必要な無線リソース量COR_Neighborを演算する。
また、演算手段504は、無線リソース量COR_Neighborの演算と同様にして、候補クラスタヘッドCH_CAD(=移動体2)と予備クラスタメンバCM_PRE(=移動体1,5,10)との間の無線通信に必要な無線リソース量COR_Potentialを演算する。
そうすると、演算手段504は、無線リソース量COR_Neighborと無線リソース量COR_Potentialとの和を演算して予約無線リソース量COR_r(2)を演算する。
また、演算手段504は、予約無線リソース量COR_r(2)の演算と同様にして、候補クラスタヘッドCH_CADが移動体13であるときの予約無線リソース量COR_r(13)を演算する。
そして、演算手段504は、収容効率EFF_hus(2)と、収容効率EFF_hus(2)が得られるときの候補クラスタヘッドCH_CADの識別子Add2と、収容効率EFF_hus(2)が得られるときのチャネルCHN_EFF_hus(2)と、収容効率EFF_hus(2)が得られるときの候補クラスタメンバCM_CADの複数の識別子Addj_CM(2)と、収容効率EFF_hus(2)が得られるときの予備クラスタメンバCM_PREの識別子Addk_CM_PRE(2)と、収容効率EFF_hus(2)が得られるときの予約無線リソース量COR_r(2)とを相互に対応付けて選択手段503へ出力するとともに、収容効率EFF_hus(13)と、収容効率EFF_hus(13)が得られるときの候補クラスタヘッドCH_CADの識別子Add13と、収容効率EFF_hus(13)が得られるときのチャネルCHN_EFF_hus(13)と、収容効率EFF_hus(13)が得られるときの候補クラスタメンバCM_CADの複数の識別子Addj_CM(13)と、収容効率EFF_hus(13)が得られるときの予備クラスタメンバCM_PREの識別子Addk_CM_PRE(13)と、収容効率EFF_hus(13)が得られるときの予約無線リソース量COR_r(13)とを相互に対応付けて選択手段503へ出力する。
選択手段503は、相互に対応付けられた収容効率EFF_hus(2)、識別子Add2、チャネルCHN_EFF_hus(2)、複数の識別子Addj_CM(2)、識別子Addk_CM_PRE(2)および予約無線リソース量COR_r(2)を演算手段504から受けるとともに、相互に対応付けられた収容効率EFF_hus(13)、識別子Add2、チャネルCHN_EFF_hus(13)、複数の識別子Addj_CM(13)、識別子Addk_CM_PRE(13)および予約無線リソース量COR_r(13)を演算手段504から受ける。
そして、選択手段503は、収容効率EFF_hus(2),EFF_hus(13)のうち、最大の収容効率EFF_hus_maxを選択し、その選択した最大の収容効率EFF_hus_maxと、最大の収容効率EFF_hus_maxが得られる候補クラスタヘッドCH_CAD_Sの識別子Addi_CH_Sと、最大の収容効率EFF_hus_maxが得られるときのチャネルCHN_maxと、最大の収容効率EFF_hus_maxが得られるときの複数の候補クラスタメンバCM_CADの複数の識別子Addj_CM_Sと、最大の収容効率EFF_hus_maxが得られるときの少なくとも1つの予備クラスタメンバCM_PREの識別子Addk_CM_PREと、最大の収容効率EFF_hus_maxが得られるときの予約無線リソース量COR_rとを制御手段502へ出力する。
また、選択手段503は、最大の収容効率EFF_hus_maxが得られる候補クラスタヘッドCH_CAD_Sの識別子Addi_CH_Sと、最大の収容効率EFF_hus_maxが得られるときのチャネルCHN_maxと、最大の収容効率EFF_hus_maxが得られるときの複数の候補クラスタメンバCM_CADの複数の識別子Addj_CM_Sと、最大の収容効率EFF_hus_maxが得られるときの少なくとも1つの予備クラスタメンバCM_PREの識別子Addk_CM_PREと、最大の収容効率EFF_hus_maxが得られるときの予約無線リソース量COR_rとを予約手段505へ出力する。
予約手段505は、最大の収容効率EFF_hus_maxが得られる候補クラスタヘッドCH_CAD_Sの識別子Addi_CH_Sと、最大の収容効率EFF_hus_maxが得られるときのチャネルCHN_maxと、最大の収容効率EFF_hus_maxが得られるときの複数の候補クラスタメンバCM_CADの複数の識別子Addj_CM_Sと、最大の収容効率EFF_hus_maxが得られるときの少なくとも1つの予備クラスタメンバCM_PREの識別子Addk_CM_PREと、最大の収容効率EFF_hus_maxが得られるときの予約無線リソース量COR_rとを選択手段503から受ける。そして、予約手段505は、その受けた最大の収容効率EFF_hus_maxが得られる候補クラスタヘッドCH_CAD_Sの識別子Addi_CH_Sと、最大の収容効率EFF_hus_maxが得られるときのチャネルCHN_maxと、最大の収容効率EFF_hus_maxが得られるときの複数の候補クラスタメンバCM_CADの複数の識別子Addj_CM_Sと、最大の収容効率EFF_hus_maxが得られるときの少なくとも1つの予備クラスタメンバCM_PREの識別子Addk_CM_PREと、最大の収容効率EFF_hus_maxが得られるときの予約無線リソース量COR_rと、時間tとを相互に対応付けて対応表TBL4に格納し、予約無線リソース量COR_rを予約する。
制御手段502は、最大の収容効率EFF_hus_maxと、最大の収容効率EFF_hus_maxが得られる候補クラスタヘッドCH_CAD_Sの識別子Addi_CH_Sと、最大の収容効率EFF_hus_maxが得られるときのチャネルCHN_maxと、最大の収容効率EFF_hus_maxが得られるときの複数の候補クラスタメンバCM_CADの複数の識別子Addj_CM_Sと、最大の収容効率EFF_hus_maxが得られるときの少なくとも1つの予備クラスタメンバCM_PREの識別子Addk_CM_PREと、最大の収容効率EFF_hus_maxが得られるときの予約無線リソース量COR_rとを選択手段503から受ける。
そして、制御手段502は、識別子Addi_CH_Sを有する移動体をクラスタヘッドCHとし、上述した制御情報IF_CTLを生成し、その生成した制御情報IF_CTLを、識別子Addi_CH_Sを有する移動体へ通信手段501を介して送信する。この場合、制御情報IF_CTLは、例えば、移動体2へ送信されたとする。
移動体2は、制御情報IF_CTLを受信し、その受信した制御情報IF_CTLに基づいて、クラスタヘッド宣言DEC_CHを生成して複数の識別子Addj_CM_Sをそれぞれ有する移動体へ送信する。この場合、移動体2は、クラスタヘッド宣言DEC_CHを移動体3,4,8,9,14へ送信したものとする。
移動体3,4,8,9,14は、移動体2からクラスタヘッド宣言DEC_CHを受信して移動体2がクラスタヘッドCHであることを認識する。そして、移動体3,4,8,9,14の各々は、クラスタメンバCMであることを示すクラスタメンバ情報IF_CMを生成して他の移動体(移動体3,4,8,9,14のうちの他の移動体)へ送信する。クラスタメンバ情報IF_CMを受信した移動体は、移動体3,4,8,9,14がクラスタメンバCMであることを認識する。これによって、クラスタヘッド(=移動体2)とクラスタメンバ(=移動体3,4,8,9,14)とからなるクラスタが構成される。
図10は、無線リソースのリリースを説明するための図である。図10を参照して、前回のクラスタ制御時である時間t1において、予約無線リソース量COR_r_t1のうち、無線リソース量COR_use_t1がクラスタにおいて使用され、無線リソース量COR_r(PRE)_t1が予備クラスタメンバCM_PREのために予約された。
また、現在のクラスタ制御時である時間t2において、予約無線リソース量COR_r_t2のうち、無線リソース量COR_use_t2がクラスタにおいて使用され、無線リソース量COR_r(PRE)_t2が予備クラスタメンバCM_PREのために予約された。
無線リソース量差Dは、D1,D2,D3のいずれかからなる。D1は、時間t1における使用無線リソース量COR_use_t1と時間t2における使用無線リソース量COR_use_t2との差である。また、D2は、時間t1における予約無線リソース量COR_r_t1と時間t2における使用無線リソース量COR_use_t2との差である。更に、D3は、時間t1における予約無線リソース量COR_r_t1と時間t2における予約無線リソース量COR_r_t2との差である。
予約手段505は、時間t2において予約無線リソース量COR_r_t2を予約した後、定期的に、無線リソース量差Dを演算し、その演算した無線リソース量差Dがしきい値D_thよりも大きいとき、予備クラスタメンバCM_PREのために予約された予約無線リソース量COR_r(PRE)_t2の一部をリリースする。しきい値D_thは、例えば、時間t1における予約無線リソース量COR_r_t1の40%である。
リリースする無線リソース量COR_releaseは、例えば、α×D(αは、0<α<1を満たす実数)である。
また、リリースする無線リソース量COR_releaseは、予備クラスタメンバCM_PREにおける通信レートの最小値RCM_PRE_minに基づいて決定された無線リソース量からなる。より具体的には、リリースする無線リソース量COR_releaseは、次のように決定される。通信レートの最小値RCM_PRE_minを有する予備クラスタメンバCM_PREと候補クラスタヘッドCH_CADとの間の無線通信に必要な無線リソース量COR(PRE_min)は、DC/(RCM_PRE_min×Td)となる。そして、例えば、予備クラスタメンバCM_PREの個数がuk’であるとき、(uk’)個の予備クラスタメンバCM_PREと候補クラスタヘッドCH_CADとの間の無線通信に必要な無線リソース量COR(PRE_uk’)は、((uk’)×DC)/(RCM_PRE_min_1×Td)となる。従って、リリースする無線リソース量COR_releaseは、次式によって決定される。
式(1)から明らかなように、候補クラスタヘッドCH_CADと予備クラスタメンバCM_PREとの間の無線通信に必要な無線リソース量は、通信レートに反比例するので、リリースする無線リソース量COR_releaseを式(4)に示す方法によって決定する場合、通信レートの最小値RCM_PRE_minが第1の値RCM_PRE_min_1であるとき、リリースする無線リソース量COR_releaseは、第1の値COR_release_1になり、通信レートの最小値RCM_PRE_minが第1の値RCM_PRE_min_1よりも大きい第2の値RCM_PRE_min_2であるとき、リリースする無線リソース量COR_releaseは、第1の値COR_release_1よりも大きい第2の値COR_release_2になる。
なお、予備クラスタメンバCM_PREの個数uk’が1個である場合、その1個の予備クラスタメンバCM_PREの通信レートが最小値RCM_PRE_minになり、予備クラスタメンバCM_PREの個数uk’が2個であり、かつ、2個の予備クラスタメンバCM_PREの2個の通信レートが同じである場合、その2個の通信レートのうちの任意の通信レートが最小値RCM_PRE_minになる。予備クラスタメンバCM_PREの個数uk’が3個以上である場合も同様である。
また、式(4)の右辺の((uk’)×DC)/(RCM_PRE_min×Td)がCOR_r(PRE)_t2以上である場合、((uk’)×DC)/(RCM_PRE_min×Td)がCOR_r(PRE)_t2よりも小さくなるように、候補クラスタヘッドCH_CADに近い順に(uk’-β)個の予備クラスタメンバCM_PREを選択し、その選択した(uk’-β)個の予備クラスタメンバCM_PREに基づいて、式(4)によって、リリースする無線リソース量COR_releaseを決定する。この場合、βは、1≦β<uk’を満たす整数である。また、(uk’-β)個の予備クラスタメンバCM_PREは、予備クラスタメンバCM_PREから送信されたビーコンBeaconの候補クラスタヘッドCH_CADにおける受信信号強度RSSIBCの大きい順に選択される。受信信号強度RSSIBCが大きい方が、予備クラスタメンバCM_PREの位置が候補クラスタヘッドCH_CADに近いからである。
リリースする無線リソース量COR_releaseを通信レートに基づいて決定する場合、予備クラスタメンバCM_PREの通信レートの最大値RCM_PRE_maxまたは中間値RCM_PRE_middleを用いて、(uk’)個の予備クラスタメンバCM_PREのうちのγ(γは、1≦γ<uk’を満たす整数)個の予備クラスタメンバCM_PREが居なくなった場合の(uk’-γ)個の予備クラスタメンバCM_PREと候補クラスタヘッドCH_CADとの間の無線通信に必要な無線リソース量を見積もり、その見積もった無線リソース量を無線リソース量COR_releaseとして決定してもよい。この場合、γ個の予備クラスタメンバCM_PREは、例えば、(uk’)個の予備クラスタメンバCM_PREから任意に選択される。
このように、リリースする無線リソース量COR_releaseは、予備クラスタメンバCM_PREの通信レートに基づいて決定される。
更に、リリースする無線リソース量COR_releaseは、候補クラスタヘッドCH_CADから遠ざかる予備クラスタメンバCM_PREの個数に基づいて決定された無線リソース量からなる。この場合、リリースする無線リソース量COR_releaseは、候補クラスタヘッドCH_CADから遠ざかる予備クラスタメンバCM_PREの個数が第1の個数であるとき、予約無線リソース量COR_r(PRE)_t2のうちの第1の無線リソース量に決定され、候補クラスタヘッドCH_CADから遠ざかる予備クラスタメンバCM_PREの個数が第1の個数よりも少ない第2の個数であるとき、予約無線リソース量COR_r(PRE)_t2のうちの第1の無線リソース量よりも小さい第2の無線リソース量に決定される。
このように、予約無線リソース量COR_r(PRE)_t2のうちの一部をリリースすることによって、対象としているクラスタ以外の他のクラスタに属する移動体がリリースされた無線リソースを使用することができ、他のクラスタにおけるクラスタメンバCMの収容効率を向上できる。また、無線リソースを有効に活用できる。
図11は、収容個数N_husの好ましい演算方法を説明するための図である。なお、図11においては、移動体1,3,4,5,7,8,10を候補クラスタメンバCM_CADとして収容個数N_husの好ましい演算方法を説明する。
図11の(a)を参照して、候補クラスタヘッドCH_CADである移動体2と、候補クラスタメンバCM_CADである移動体1,3,4,5,7,8,10との間の無線リソース量COR(1),COR(3),COR(4),COR(5),COR(7),COR(8),COR(10)は、それぞれ、0.3,0.5,0.2,0.7,0.4,0.6,0.1であるとする。また、式(3)におけるA_COR_initialは、0.9であるとする。
この場合、移動体1、移動体3、移動体4、移動体5、移動体7、移動体8および10の順番に無線リソース量COR(1),COR(3),COR(4),COR(5),COR(7),COR(8),COR(10)を式(2)に代入して全体の無線リソース量CM_COR_totalを演算し、その演算した全体の無線リソース量CM_COR_totalを式(3)に代入して利用可能な無線リソース量A_CORを算出すると、移動体1の無線リソース量(=0.3)、移動体3の無線リソース量(=0.5)および移動体4の無線リソース量(0.2)を式(2)によって加算した時点で、全体の無線リソース量CM_COR_totalが“1.0”となり、A_COR_initial(=0.9)よりも大きくなる。つまり、移動体1の無線リソース量(=0.3)、移動体3の無線リソース量(=0.5)および移動体4の無線リソース量(0.2)を加算した時点で、式(3)によって演算される利用可能な無線リソース量A_CORが負(-0.1)になり、収容個数N_husは、“2”になる。
一方、図11の(b)に示すように、無線リソース量COR(k)を昇順に配列した場合、移動体10の無線リソース量(=0.1)、移動体4の無線リソース量(=0.2)、移動体1の無線リソース量(=0.3)および移動体7の無線リソース量(0.4)を加算した時点で、全体の無線リソース量CM_COR_totalが“1.0”になり、利用可能な無線リソース量A_CORが負(-0.1)になる。その結果、収容個数N_husは、“3”になる。
このように、無線リソース量COR(k)を昇順に配列して収容個数N_husをカウントする方が収容個数N_husを増加させることができる。従って、この発明の実施の形態においては、演算手段504は、好ましくは、無線リソース量COR(j)を昇順に配列して収容個数N_husをカウントする。
図12は、図1に示す移動体1の概略図である。図12を参照して、移動体1は、通信手段110と、クラスタ構成手段120と、データ取得手段130とを備える。
通信手段110は、無線モジュール111,112を含む。無線モジュール111は、AP20(またはLTE基地局30)を介して制御装置50または情報サーバ60と通信を行う広域の無線モジュールである。無線モジュール112は、クラスタ内で無線通信を行う近域の無線モジュールである。
無線モジュール111は、AP20(またはLTE基地局30)を介して制御装置50から制御情報IF_CTLを受信し、その受信した制御情報IF_CTLをクラスタ構成手段120へ出力する。
また、無線モジュール111は、AP20(またはLTE基地局30)からパケットを受信すると、パケットを受信したときの受信信号強度RSSIPKTを検出し、その検出した受信信号強度RSSIPKTをクラスタ構成手段120へ出力する。
更に、無線モジュール111は、移動体1の識別子Add1、識別子Addj、識別子Addk、受信信号強度RSSIm1-mj_1、受信信号強度RSSIAP-m_1および接続数N_CN_1を含むHelloパケットをクラスタ構成手段120から受け、その受けたHelloパケットをAP20(またはLTE基地局30)を介して制御装置50へ送信する。ここで、識別子Addjおよび識別子Addkは、ビーコンBeaconを移動体1へ送信した移動体の識別子であり、受信信号強度RSSIAP-m_1は、移動体1の無線モジュール111がAP20(またはLTE基地局30)からパケットを受信したときの受信信号強度であり、受信信号強度RSSIm1-mj_1は、移動体1の無線モジュール112が他の移動体からビーコンBeaconを受信したときの受信信号強度であり、接続数N_CN_1は、移動体1と無線リンクを有する移動体の個数である。
更に、無線モジュール111は、移動体1がクラスタヘッドCHであるとき、AP20(またはLTE基地局30)からデータを受信し、その受信したデータをデータ取得手段130へ出力する。
更に、無線モジュール111は、移動体1がクラスタを構成していない移動体であるとき、AP20(またはLTE基地局30)からデータを受信し、その受信したデータをデータ取得手段130へ出力する。
無線モジュール112は、移動体1がクラスタを構成する前、他の移動体からビーコンBeaconを受信し、ビーコンBeaconを受信したときの受信信号強度RSSIBCを検出する。そして、無線モジュール112は、ビーコンBeaconおよび受信信号強度RSSIBCをクラスタ構成手段120へ出力する。
また、無線モジュール112は、移動体1の識別子を含むビーコンをクラスタ構成手段120から受けると、その受けたビーコンを他の移動体へ送信する。
更に、無線モジュール112は、移動体1がクラスタを構成するとき、チャネルCHN_maxをクラスタ構成手段120から受ける。そして、無線モジュール112は、クラスタヘッド宣言DEC_CHをクラスタ構成手段120から受けると、その受けたクラスタヘッド宣言DEC_CHをチャネルCHN_maxで他の移動体へ送信する。
更に、無線モジュール112は、クラスタヘッド宣言DEC_CHをチャネルCHN_maxで他の移動体から受信すると、その受信したクラスタヘッド宣言DEC_CHをクラスタ構成手段120へ出力する。無線モジュール112は、クラスタメンバ情報IF_CMをチャネルCHN_maxで他の移動体から受信すると、その受信したクラスタメンバ情報IF_CMをクラスタ構成手段120へ出力する。無線モジュール112は、クラスタメンバ情報IF_CM(移動体1がクラスタメンバであることを示す情報)をクラスタ構成手段120から受けると、その受けたクラスタメンバ情報IF_CMをチャネルCHN_maxで他の移動体へ送信する。
更に、無線モジュール112は、移動体1のデータ以外のデータをデータ取得手段130から受けると、その受けたデータをチャネルCHN_maxで他の移動体へ送信する。
更に、無線モジュール112は、移動体1がクラスタメンバCMであるとき、移動体1のデータをチャネルCHN_maxでクラスタヘッドCHの移動体から受信し、その受信したデータをデータ取得手段130へ出力する。
クラスタ構成手段120は、無線モジュール112からビーコンBeaconおよび受信信号強度RSSIBC(=図5の対応表TBL3に含まれる受信信号強度RSSIm1-mj_1)を受ける。そして、クラスタ構成手段120は、受信信号強度RSSIBCがしきい値RSSI_th1以上であるか否かを判定し、受信信号強度RSSIBCが閾値RSSI_th1よりも小さいとき、受信信号強度RSSIBCを有するビーコンBeaconに含まれる識別子を検出し、その検出した識別子を識別子Addkとして保持する。
一方、クラスタ構成手段120は、受信信号強度RSSIBCがしきい値RSSI_th1以上であるとき、その受けたビーコンBeaconに含まれる識別子を検出し、その検出した識別子を識別子Addjとして保持する。
このように、クラスタ構成手段120は、受信信号強度RSSIBCがしきい値RSSI_th1よりも小さいとき、ビーコンBeaconを送信した移動体の識別子を識別子Addkに分類し、受信信号強度RSSIBCがしきい値RSSI_th1以上であるとき、ビーコンBeaconを送信した移動体の識別子を識別子Addjに分類する。
クラスタ構成手段120は、この処理を無線モジュール112から受けた全てのビーコンBeaconについて行い、しきい値RSSI_th1以上の受信信号強度RSSIBCを有するビーコンの個数をカウントして接続数N_CN_1を得る。
また、クラスタ構成手段120は、無線モジュール111から受信信号強度RSSIPKT(=図5の対応表TBL3に含まれる受信信号強度RSSIAP-m_1)を受ける。
そうすると、クラスタ構成手段120は、移動体1の識別子Add1、識別子Addj、識別子Addk、受信信号強度RSSIm1-mj_1、受信信号強度RSSIAP-m_1および接続数N_CN_1を含むHelloパケット=[Add1/Addj/Addk/RSSIm1-mj_1/RSSIAP-m_1/N_CN_1]を生成し、その生成したHelloパケット=[Add1/Addj/Addk/RSSIm1-mj_1/RSSIAP-m_1/N_CN_1]を無線モジュール111へ出力する。
クラスタ構成手段120は、制御情報IF_CTLを無線モジュール111から受けると、制御情報IF_CTLから選択情報IF_CH、チャネルCHN_max、複数の識別子Addj_CM_Sおよび少なくとも1つの識別子Addk_CM_PREを検出する。そして、クラスタ構成手段120は、チャネルCHN_maxを無線モジュール112へ出力する。
また、クラスタ構成手段120は、選択情報IF_CHに基づいて、クラスタヘッド宣言DEC_CHを生成し、その生成したクラスタヘッド宣言DEC_CHを無線モジュール112を介して複数の識別子Addj_CM_Sをそれぞれ有する複数の移動体へ送信する。そして、クラスタ構成手段120は、選択情報IF_CHをデータ取得手段130へ出力する。
更に、クラスタ構成手段120は、少なくとも1つの識別子Addk_CM_PREを保持する。そして、クラスタ構成手段120は、移動体1がクラスタヘッドCHとしてクラスタを構成した後に、ビーコンBeaconおよび受信信号強度RSSIBC(=図5の対応表TBL3に含まれる受信信号強度RSSImi-mj_i)を無線モジュール112から受けると、受信信号強度RSSIBCがしきい値RSSI_th1以上であるか否かを判定し、受信信号強度RSSIBCがしきい値RSSI_th1よりも小さいとき、受信信号強度RSSIBCを有するビーコンBeaconを破棄する。
一方、クラスタ構成手段120は、受信信号強度RSSIBCがしきい値RSSI_th1以上であるとき、その受けたビーコンBeaconに含まれる識別子Add”kを検出し、その検出した識別子Add”kが、保持した識別子Addk_CM_PREに一致するか否かを判定する。そして、クラスタ構成手段120は、識別子Add”kが識別子Addk_CM_PREに一致すると判定したとき、識別子Add”kを有する移動体がクラスタメンバCMとしてクラスタ内に入ってきたことを認識し、接続数N_CN_1を“1”だけ増加する。そして、クラスタ構成手段120は、識別子Add”kを識別子Addjに分類し、移動体1の識別子Add1、識別子Addj、識別子Addk、受信信号強度RSSIm1-mj_1、受信信号強度RSSIAP-m_1および接続数N_CN_1を含むHelloパケット=[Add1/Addj/Addk/RSSIm1-mj_1/RSSIAP-m_1/N_CN_1]を生成し、その生成したHelloパケット[Add1/Addj/Addk/RSSIm1-mj_1/RSSIAP-m_1/N_CN_1]を無線モジュール111へ出力する。
更に、クラスタ構成手段120は、他の移動体から受信したクラスタヘッド宣言DEC_CHを無線モジュール112から受けると、クラスタメンバ情報IF_CMを生成してデータ取得手段130および無線モジュール112へ出力する。
データ取得手段130は、クラスタ構成手段120から受けた選択情報IF_CHに基づいて移動体1がクラスタヘッドCHであることを認識する。そして、データ取得手段130は、クラスタヘッドCHおよびクラスタメンバCMのデータの取得要求を無線モジュール111を介して情報サーバ60へ送信する。
また、データ取得手段130は、クラスタ構成手段120から受けたクラスタメンバ情報IF_CMに基づいて移動体1がクラスタメンバCMであることを認識する。そして、データ取得手段130は、移動体1のデータの取得要求を無線モジュール112を介してクラスタヘッドCHの移動体へ送信する。
データ取得手段130は、無線モジュール111からクラスタヘッドCHおよびクラスタメンバCMのデータを受けると、移動体1のデータを取り出して移動体1のデータを取得する。そして、データ取得手段130は、他の移動体のデータを無線モジュール112へ出力する。
なお、図1に示す移動体2~15の各々は、図12に示す移動体1の構成と同じ構成からなる。
図13は、図1に示す通信システム100の動作を説明するためのフローチャートである。
図13を参照して、通信システム100の動作が開始されると、制御装置50は、内蔵したタイマーによって周期Tが到来したか否かを判定する(ステップS1)。そして、制御装置50は、周期Tが到来したと判定したとき、収容効率EFF_husが最大である候補クラスタヘッドCH_CADを選択し、その選択した候補クラスタヘッドCH_CADがクラスタを構成するように制御する(ステップS2)。
移動体1~15のうち、選択された候補クラスタヘッドCH_CADは、制御装置50からの制御に従ってクラスタを構成する(ステップS3)。
そして、クラスタヘッドCHは、無線モジュール(広域)111によって、AP20(またはLTE基地局30)およびネットワーク40を介して情報サーバ60へアクセスし、情報サーバ60から自己のデータおよびクラスタメンバCMのデータをダウンロードする(ステップS4)。即ち、クラスタヘッドCHは、無線モジュール(広域)111によってデータを情報サーバ60からダウンロードする。
その後、クラスタヘッドCHは、ダウンロードしたデータから自己のデータを取得するとともに、無線モジュール(近域)112によって、クラスタメンバCMのデータをチャネルCHN_maxでクラスタメンバCMへ送信する(ステップS5)。即ち、クラスタヘッドCHは、無線モジュール(近域)112によってデータをクラスタメンバCMへ送信する。
このように、クラスタヘッドCHおよびクラスタメンバCMは、無線モジュール(広域)111と無線モジュール(近域)112とを用いた階層型ネットワークによってデータを取得する。
そして、ステップS5の後、一連の動作は、ステップS1へ移行し、上述したステップS1~ステップS5が繰り返し実行される。その結果、クラスタヘッドCHの選択、選択されたクラスタヘッドCHによるクラスタの構成、および情報サーバ60からのデータのダウンロードが周期的に行われる。
図14は、図13のステップS2の詳細な動作を説明するためのフローチャートである。図14を参照して、図13のステップS1において、周期Tが到来したと判定されたとき、制御装置50の演算手段504は、候補クラスタヘッドCH_CADの収容効率EFF_husを演算し(ステップS21)、その演算した収容効率EFF_husを選択手段503へ出力する。
また、算出手段504は、収容効率を算出した候補クラスタヘッドCH_CADと、収容効率を算出した候補クラスタヘッドCH_CADに対応する候補クラスタメンバCM_CADおよび予備クラスタメンバCM_PREとの無線通信に必要な無線リソース量COR_totalを算出し(ステップS22)、その算出した無線リソース量COR_totalを予約手段505へ出力する。
選択手段503は、収容効率EFF_husを演算手段504から受け、その受けた収容効率EFF_husをランク付けする(ステップS23)。そして、選択手段503は、収容効率が最大である候補クラスタヘッドCH_CADを選択し(ステップS24)、その選択した候補クラスタヘッドCH_CADを制御手段502へ出力する。
制御手段502は、選択された候補クラスタヘッドCH_CAD_Sを選択手段503から受け、その受けた候補クラスタヘッドCH_CAD_Sがクラスタを構成するように候補クラスタヘッドCH_CAD_Sを制御する(ステップS25)。
そして、制御手段502は、クラスタ化の対象となる候補クラスタヘッドCH_CAD、候補クラスタメンバCM_CADおよび予備クラスタメンバCM_PREの集合を更新する(ステップS26)。この場合、制御手段502は、クラスタ化の対象となる候補クラスタヘッドCH_CAD、候補クラスタメンバCM_CADおよび予備クラスタメンバCM_PREを対応表TBL4に格納することによってクラスタ化の対象となる候補クラスタヘッドCH_CAD、候補クラスタメンバCM_CADおよび予備クラスタメンバCM_PREの集合を更新する。
その後、予約手段505は、ステップS22において算出された無線リソース量COR_totalを演算手段504から受け、その受けた無線リソース量COR_totalを予約無線リソース量COR_rとしてデータベース507の対応表TBL4に格納して予約無線リソース量COR_rを予約する(ステップS27)。
そして、予約手段505は、予約した予約無線リソース量COR_rのうち、クラスタ内で使用されている無線リソース量以外の無線リソース量COR_Potential(=候補クラスタヘッドCH_CADと予備クラスタメンバCM_PREとの無線通信に必要な無線リソース量)の一部をリリースする(ステップS28)。
そうすると、制御手段502は、候補クラスタヘッドCH_CADの選択を終了したか否かを判定する(ステップS29)。制御手段502は、移動体1~15の全てがクラスタ化されたとき、または利用可能な無線リソース量A_CORが零以下になったとき、候補クラスタヘッドCH_CADの選択を終了すると判定し、移動体1~15の全てがクラスタ化されていないとき、または利用可能な無線リソース量A_CORが零よりも大きいとき、候補クラスタヘッドCH_CADの選択を終了しないと判定する。
ステップS29において、候補クラスタヘッドCH_CADの選択を終了しないと判定されたとき、一連の動作は、ステップS21へ移行し、ステップS29において、候補クラスタヘッドCH_CADの選択を終了すると判定されるまで、ステップS21~ステップS29が繰り返し実行される。そして、ステップS29において、候補クラスタヘッドCH_CADの選択を終了すると判定されると、一連の動作は、図13のステップS3へ移行する。
図15は、図14のステップS21の詳細な動作を説明するためのフローチャートである。なお、図15に示すフローチャートは、利用可能な無線リソース量が最大であるチャネルを選択した場合における図14のステップS21の詳細な動作を説明するためのフローチャートである。
図15を参照して、図14のステップS1において、周期Tが到来したと判定されたとき、制御装置50の演算手段504は、h=1を設定する(ステップS211)。なお、h=1~Hであり、Hは、候補クラスタヘッドCH_CADの総数である。
ステップS211の後、演算手段504は、データ容量DC、データのダウンロード周期長Td、候補クラスタヘッドCH_CAD(h)に近接する候補クラスタメンバCM_CAD(j)の個数N_CN、予備クラスタメンバCM_PRE(k)の個数N_PRE、候補クラスタヘッドCH_CADと候補クラスタメンバCM_CADとの間の通信レートRCH_CAD-CM_CAD、候補クラスタヘッドCH_CADと予備クラスタメンバCM_PREとの間の通信レートRCH_CAD-CM_PREおよびチャネルCHNを受け付ける(ステップS212)。
この場合、演算手段504は、候補クラスタヘッドCH_CADの識別子Addiと、候補クラスタメンバCM_CADの識別子Addjと、予備クラスタメンバCM_PREの識別子Addkと、選択されたチャネルCHN(A_COR_max)と、データ容量DCと、データのダウンロード周期長Tdとを制御手段502から受ける。そして、演算手段504は、候補クラスタヘッドCH_CADの識別子Addiの個数をカウントして候補クラスタヘッドCH_CADの総数Hを検出する。また、演算手段504は、候補クラスタメンバCM_CADの識別子Addjの個数をカウントして候補クラスタメンバCM_CADの個数N_CNを受け付ける。更に、演算手段504は、予備クラスタメンバCM_PREの識別子Addkの個数をカウントして予備クラスタメンバCM_PREの個数N_PREを受け付ける。更に、演算手段504は、対応表TBL3および対応表TBL1を順次参照して、候補クラスタヘッドCH_CADの識別子Addiと候補クラスタメンバCM_CADの識別子Addjとに基づいて、上述した方法によって、候補クラスタヘッドCH_CADと候補クラスタメンバCM_CADとの間の通信レートRCH_CAD-CM_CADを検出することによって通信レートRCH_CAD-CM_CADを受け付ける。更に、演算手段504は、対応表TBL3および対応表TBL1を順次参照して、候補クラスタヘッドCH_CADの識別子Addiと予備クラスタメンバCM_PREの識別子Addkとに基づいて、上述した方法によって、候補クラスタヘッドCH_CADと予備クラスタメンバCM_PREとの間の通信レートRCH_CAD-CM_PREを検出することによって通信レートRCH_CAD-CM_PREを受け付ける。
そして、演算手段504は、対応表TBL2を参照して、チャネルCHNに対応する利用可能な最大の無線リソース量を検出し、その検出した利用可能な最大の無線リソース量をA_COR_initialに設定する。即ち、演算手段504は、チャネルCHNに対応する利用可能な最大の無線リソース量を検出するとともに、A_COR_initial=利用可能な最大の無線リソース量を設定する(ステップS213)。
その後、演算手段504は、データ容量DC、ダウンロード周期長Td、個数N_CN、および通信レートRCH_CAD-CM_CADに基づいて候補クラスタメンバCM_CAD(j)の収容個数N_hus(CM)を演算する(ステップS214)。なお、j=1~N_CNである。
引き続いて、演算手段504は、データ容量DC、ダウンロード周期長Td、個数N_PRE、および通信レートRCH_CAD-CM_PREに基づいて予備クラスタメンバCM_PRE(k)の収容個数N_hus(PRE)を演算する(ステップS215)。なお、k=1~N_PREである。
そうすると、演算手段504は、基地局(AP20またはLTE基地局30)と候補クラスタヘッドCH_CAD(h)との間の無線リソース量で収容個数(N_hus(CM)+N_hus(PRE))を除算して収容効率EFF_hus(h)を演算する(ステップS216)。
その後、演算手段504は、h=Hであるか否かを判定する(ステップS217)。ステップS217において、h=Hでないと判定されたとき、演算手段504は、h=h+1を設定する(ステップS218)。そして、一連の動作は、ステップS212へ移行し、ステップS217において、h=Hであると判定されるまで、ステップS212~ステップS218が繰り返し実行される。そして、ステップS217において、h=Hであると判定されると、一連の動作は、図14のステップS22へ移行する。
このように、図14のステップS21の詳細な動作においては、1つ以上の候補クラスタヘッドCH_CADについて1つ以上の収容効率EFF_husが演算される。そして、図14のステップS23において、1つ以上の収容効率EFF_husがランク付けされ、ステップS24において、収容効率が最大である候補クラスタヘッドが選択される。
なお、図15のステップS213においては、予約無線リソース量以上である最小の空いている無線リソース量を最大無線リソース量として設定してもよい。
また、図14のステップS21(即ち、図15に示すフローチャート)において1個の収容効率EFF_husのみが演算される場合、その1個の収容効率EFF_husを有する候補クラスタヘッドCH_CADが、収容効率が最大である候補クラスタヘッドとして選択される。
図16は、図15のステップS214の詳細な動作を説明するためのフローチャートである。
図16を参照して、図15のステップS213の後、演算手段504は、収容個数N_hus(j)=0を設定し(ステップS2141)、全体の無線リソース量CM_COR_total=0を設定し(ステップS2142)、j=1を設定する(ステップS2143)。
ステップS2143の後、演算手段504は、データ容量DC、ダウンロード周期長Td、通信レートRCH_CAD-CM_CAD(k)に基づいて候補クラスタヘッドCH_CADと候補クラスタメンバCM_CAD(j)との無線通信に必要な無線リソース量COR(j)=DC/(RCH_CAD-CM_CAD(k)・Td)を演算する(ステップS2144)。
そして、演算手段504は、全体の無線リソース量CM_COR_totalにステップS2144で演算した無線リソース量COR(j)を加算し、その加算結果を全体の無線リソース量CM_COR_totalとする(ステップS2145)。
その後、演算手段504は、利用可能な無線リソース量A_COR(CM)を式(3)によって演算する(ステップS2146)。
そうすると、演算手段504は、利用可能な無線リソース量A_COR(CM)が零(=0)よりも大きいか否かを判定する(ステップS2147)。
ステップS2147において、利用可能な無線リソース量A_COR(CM)が零(=0)よりも大きいと判定されたとき、演算手段504は、収容個数N_hus(j)を“1”だけインクリメントする(ステップS2148)。そして、演算手段504は、j=N_CNであるか否かを判定する(ステップS2149)。
ステップS2149において、j=N_CNでないと判定されたとき、演算手段504は、j=j+1を設定する(ステップS2150)。その後、一連の動作は、ステップS2144へ移行し、ステップS2149において、j=N_CNであると判定されるまで、ステップS2144~ステップS2150が繰り返し実行される。
そして、ステップS2149において、j=N_CNであると判定されるまでステップS2144~ステップS2150が繰り返し実行されているときに、ステップS2147において、利用可能な無線リソース量A_COR(CM)が零(=0)よりも大きくないと判定されたとき、演算手段504は、N_hus(j)の最終値(即ち、ステップS2147において、利用可能な無線リソース量A_COR(CM)が零(=0)よりも大きくないと判定されたときのN_hus(j)の値)を候補クラスタメンバCM_CADの収容個数N_hus(CM)に設定する(ステップS2151)。
一方、ステップS2149において、k=N_CNであると判定されるまでステップS2144~ステップS2150が繰り返し実行されているときに、ステップS2149において、j=N_CNであると判定されたとき、演算手段504は、個数N_CNを候補クラスタメンバCM_CADの収容個数N_hus(CM)に設定する(ステップS2152)。
そして、ステップS2151またはステップS2152の後、一連の動作は、図15のステップS215へ移行する。
図17は、図15のステップS215の詳細な動作を説明するためのフローチャートである。
図17を参照して、図15のステップS214(即ち、図16のステップS2151またはステップS2152)の後、演算手段504は、収容個数N_hus(CM)がN_CNよりも小さいか否かを判定する(ステップS2153)。
ステップS2153は、図16のステップS2151またはステップS2152に続いて実行されるので、収容個数N_hus(CM)は、個数N_CNよりも小さい個数に設定されているか(ステップS2151)、個数N_CNに設定されているか(ステップS2152)のいずれかである。
従って、収容個数N_hus(CM)がN_CNよりも小さいか否かを判定することによって、ステップS2153がステップS2151,S2152のいずれに続いて実行されるかを判定できる。即ち、収容個数N_hus(CM)が個数N_CNよりも小さいと判定されたとき、ステップS2153がS2151に続いて実行されることになり、収容個数N_hus(CM)が個数N_CNよりも小さくないと判定されたとき、ステップS2153がS2152に続いて実行されることになる。収容個数N_hus(CM)が個数N_CNよりも大きいことはあり得ないので、収容個数N_hus(CM)が個数N_CNよりも小さくないことは、N_hus(CM)=N_CNであることを意味する。
ステップS2153において、収容個数N_hus(CM)がN_CNよりも小さいと判定されたとき、演算手段504は、予備クラスタメンバCM_PREの収容個数N_hus(PRE)を零(0)に設定する(ステップS2154)。
図16のステップS2151は、jが個数N_CNよりも小さいときに、ステップS2147において、利用可能な無線リソース量A_CORが零(=0)よりも大きくないと判定されたときに実行されるので、ステップS2151において設定された収容個数N_hus(CM)は、個数N_CNよりも小さい。その結果、ステップS2153において、収容個数N_hus(CM)がN_CNよりも小さいと判定されたとき、ステップS2153が図16のステップS2151に続いて実行されることになり、利用可能な無線リソース量A_CORが零(=0)よりも大きくない(即ち、利用可能な無線リソース量A_CORが零(=0)以下である)。従って、ステップS2153において、収容個数N_hus(CM)がN_CNよりも小さいと判定されたとき、利用可能な無線リソース量A_CORが無いので、ステップS2154において、予備クラスタメンバCM_PREの収容個数N_hus(PRE)を零(0)に設定することにした。
一方、ステップS2153において、収容個数N_hus(CM)がN_CNよりも小さくないと判定されたとき、演算手段504は、N_hus(k)=0を設定し(ステップS2155)、k=1を設定する(ステップS2156)。
そして、演算手段504は、データ容量DC、ダウンロード周期長Td、通信レートRCH_CAD-CM_PRE(p)に基づいて候補クラスタヘッドCH_CADと予備クラスタメンバCM_PRE(k)との無線通信に必要な無線リソース量COR(k)=DC/(RCH_CAD-CM_PRE(p)・Td)を演算する(ステップS2157)
その後、演算手段504は、全体の無線リソース量CM_COR_totalにステップS2157で演算した無線リソース量COR(k)を加算し、その加算結果を全体の無線リソース量CM_COR_totalとする(ステップS2158)。
引き続いて、演算手段504は、A_COR(PRE)=A_COR(CM)-CM_COR_totalによって利用可能な無線リソース量A_COR(PRE)を演算する(ステップS2159)。この場合、A_COR(CM)は、図16のステップS2152が実行されたときの利用可能な無線リソース量A_COR(CM)からなる。
ステップS2159の後、演算手段504は、利用可能な無線リソース量A_COR(PRE)が零(=0)よりも大きいか否かを判定する(ステップS2160)。
ステップS2160において、利用可能な無線リソース量A_COR(PRE)が零(=0)よりも大きいと判定されたとき、演算手段504は、収容個数N_hus(k)を“1”だけインクリメントする(ステップS2161)。そして、演算手段504は、k=N_PREであるか否かを判定する(ステップS2162)。
ステップS2162において、k=N_PREでないと判定されたとき、演算手段504は、k=k+1を設定する(ステップS2163)。その後、一連の動作は、ステップS2157へ移行し、ステップS2162において、k=N_PREであると判定されるまで、ステップS2157~ステップS2163が繰り返し実行される。
そして、ステップS2162において、k=N_PREであると判定されるまでステップS2157~ステップS2163が繰り返し実行されているときに、ステップS2160において、利用可能な無線リソース量A_COR(PRE)が零(=0)よりも大きくないと判定されたとき、演算手段504は、N_hus(k)の最終値(即ち、ステップS2160において、利用可能な無線リソース量A_COR(PRE)が零(=0)よりも大きくないと判定されたときのN_hus(k)の値)を予備クラスタメンバCM_PREの収容個数N_hus(PRE)に設定する(ステップS2164)。
一方、ステップS2162において、k=N_PREであると判定されるまでステップS2157~ステップS2163が繰り返し実行されているときに、ステップS2162において、k=N_PREであると判定されたとき、演算手段504は、個数N_PREを予備クラスタメンバCM_PREの収容個数N_hus(PRE)に設定する(ステップS2165)。
そして、ステップS2154、ステップS2164およびステップS2165のいずれかの後、演算手段504は、収容個数N_hus(PRE)を予約手段505へ出力する(ステップ2166)。そうすると、ステップ2166の後、一連の動作は、図15のステップS216へ移行する。
なお、ステップS2153において、収容個数N_hus(CM)がN_CNよりも小さくないと判定されたとき、ステップS2155~ステップS2165によって収容個数N_hus(PRE)を演算するのは、次の理由による。ステップS2153において、収容個数N_hus(CM)がN_CNよりも小さくないと判定されたとき、ステップS2153は、図16のステップS2152に続いて実行されることになり、図16のステップS2152は、図16のステップS2147において、利用可能な無線リソース量A_COR(CM)が零(=0)よりも大きいと判定されたときに実行されるので、ステップS2155~ステップS2165を最初に実行する際には、利用可能な無線リソース量が零(=0)よりも大きく、予備クラスタメンバCM_PREを収容できる可能性が有るからである。
また、ステップS2153において、収容個数N_hus(CM)がN_CNよりも小さいと判定されたとき、ステップS2154において、収容個数N_hus(PRE)を零(=0)に設定するのは、次の理由による。
ステップS2153において、収容個数N_hus(CM)がN_CNよりも小さいと判定されることは、ステップS2153が図16のステップS2151に続いて実行されることを意味する。そして、図16のステップS2151は、jが候補クラスタメンバCM_CADの総数N_CNに到達していないときに、ステップS2147において、利用可能な無線リソース量A_COR(CM)が零(=0)よりも大きくないと判定されたとき(即ち、利用可能な無線リソース量A_COR(CM)が零(=0)以下であると判定されたとき)に実行される。その結果、図16のステップS2151から図17のステップS2153へ移行したときには、利用可能な無線リソース量A_COR(CM)が零(=0)以下になっており、予備クラスタメンバCM_PREを収容可能な無線リソース量が残っていないからである。
一連の動作が図17のステップS2164またはステップS2165から図15のステップS216へ移行した場合、図14のステップS22において、候補クラスタヘッドCH_CADと候補クラスタメンバCM_CADとの無線通信に必要な無線リソース量COR_Neighborと、候補クラスタヘッドCH_CADと予備クラスタメンバCM_PREとの無線通信に必要な無線リソース量COR_Potentialとの両方が演算され、無線リソース量COR_Neighborと無線リソース量COR_Potentialとの和が無線リソース量COR_totalとして算出される。その結果、図14のステップS27において、無線リソース量COR_Neighborと無線リソース量COR_Potentialとの和からなる無線リソース量COR_totalが予約無線リソース量COR_rとして予約される。
一方、一連の動作が図17のステップS2154から図15のステップS216へ移行した場合、図14のステップS22において、候補クラスタヘッドCH_CADと候補クラスタメンバCM_CADとの無線通信に必要な無線リソース量COR_Neighborのみが演算され、無線リソース量COR_Neighborが無線リソース量COR_totalとして算出される。その結果、図14のステップS27において、無線リソース量COR_Neighborからなる無線リソース量COR_totalが予約無線リソース量COR_rとして予約される。従って、候補クラスタヘッドCH_CADと予備クラスタメンバCM_PREとの無線通信に必要な無線リソース量COR_Potentialが予約されない。そうすると、ステップS28において、無線リソースがリリースされない。
このように、図14に示すフローチャート(図15から図17に示すフローチャートを含む)に従って図13のステップS2の動作が実行される場合、無線リソース量COR_Neighborと無線リソース量COR_Potentialとの和が予約無線リソース量COR_rとして予約される場合と、無線リソース量COR_Neighborのみが予約無線リソース量COR_rとして予約される場合とが存在する。
そして、無線リソース量COR_Neighborのみが予約無線リソース量COR_rとして予約された場合、新たな移動体がクラスタメンバCMとしてクラスタへ参入した場合、この新たな移動体との無線通信に必要な無線リソース量が予約されていないので、クラスタを再構成する必要がある。
しかし、この発明の実施の形態においては、無線リソース量COR_Neighborと無線リソース量COR_Potentialとの和が予約無線リソース量COR_rとして予約される場合もあるので、従来のように、予備クラスタメンバCM_PREの概念が無く、無線リソース量COR_Potentialを全く予約しない場合よりもクラスタを再構成する回数を低減できるので、一時的に通信が遮断されることを抑制でき、複数の移動体のトポロジーが変化しても、耐性を有するクラスタを構成することができる。
図16に示すフローチャートによって図15のステップS214が実行され、図17に示すフローチャートによって、図15のステップS215が実行される場合、演算手段504は、候補クラスタメンバCM_CADが取得するデータのデータ容量を候補クラスタヘッドCH_CADと候補クラスタメンバCM_CADとの通信レートRCH_CAD-CM_CADで除算して無線リソース量COR(k)を演算する演算処理PRCS1を少なくとも1つの候補クラスタメンバCM_CADについて実行し、予備クラスタメンバCM_PREが取得するデータのデータ容量を候補クラスタヘッドCH_CADと予備クラスタメンバCM_PREとの通信レートRCH_CAD-CM_PREで除算して無線リソース量COR(p)を演算する演算処理PRCS2を少なくとも1つの予備クラスタメンバCM_PREについて実行し、少なくとも1つの候補クラスタメンバCM_CADについて演算された少なくとも1つの無線リソース量COR(j)に基づいて、総和CM_COR_totalが最大無線リソース量A_COR_initialよりも小さくなる無線リソース量COR(j)の個数を収容個数N_hus(CM)として演算し、最大無線リソース量A_COR_initialから少なくとも1つの無線リソース量COR(j)の総和CM_COR_total(図16のステップS2145におけるCM_COR_total)を減算した減算結果A_COR(CM)が少なくとも1つの予備クラスタメンバCM_PREについて演算された少なくとも1つの無線リソース量COR(k)のうちのいずれか1つの無線リソース量COR(k)よりも大きいとき、少なくとも1つの無線リソース量COR(k)に基づいて、総和CM_COR_totalが減算結果A_COR(CM)よりも小さくなる無線リソース量COR(k)の個数を予備収容個数N_hus(PRE)として演算し、減算結果A_COR(CM)が少なくとも1つの無線リソース量COR(k)の各々よりも小さいとき、予備収容個数N_hus(PRE)の演算を停止する。
この場合、図16のステップS2144~S2150を繰り返し実行することは、「演算処理PRCS1を少なくとも1つの候補クラスタメンバCM_CADについて実行する」ことに相当する。
また、図17のステップS2157~S2163を繰り返し実行することは、「演算処理PRCS2を少なくとも1つの予備クラスタメンバCM_PREについて実行する」ことに相当する。
更に、図16のステップS2147,S2148を繰り返し実行することは、「少なくとも1つの候補クラスタメンバCM_CADについて演算された少なくとも1つの無線リソース量COR(j)に基づいて、総和CM_COR_totalが最大無線リソース量A_COR_initialよりも小さくなる無線リソース量COR(j)の個数を収容個数N_hus(CM)として演算する」ことに相当する。
更に、図17のステップS2159におけるA_COR(CM)は、最大無線リソース量A_COR_initialから、A_COR(CM)が零(=0)よりも大きくなるN_hus(k)個の無線リソース量COR(j)の総和を減算した減算結果に等しいので、図17のステップS2160,S2161を繰り返し実行することは、「最大無線リソース量A_COR_initialから少なくとも1つの無線リソース量COR(j)の総和CM_COR_totalを減算した減算結果A_COR(CM)が少なくとも1つの予備クラスタメンバCM_PREについて演算された少なくとも1つの無線リソース量COR(k)のうちのいずれか1つの無線リソース量COR(k)よりも大きいとき、少なくとも1つの無線リソース量COR(k)に基づいて、総和CM_COR_totalが減算結果A_COR(CM)よりも小さくなる無線リソース量COR(k)の個数を予備収容個数N_hus(PRE)として演算する」ことに相当する。
更に、図17のステップS2153において、N_hus(CM)がN_CMよりも小さいと判定されることは、ステップS2153が図16のステップS2151に続いて実行されることを意味し、ステップS2151が実行されることは、ステップS2147において減算結果A_COR(CM)が零(=0)よりも大きくないと判定されたときのN_hus(j)個の無線リソース量COR(j)の総和が最大無線リソース量A_COR_initial以上になっていることを意味するので、図17のステップS2154を実行することは、「減算結果A_COR(CM)が少なくとも1つの無線リソース量COR(k)の各々よりも小さいとき、予備収容個数N_hus(PRE)の演算を停止する」ことに相当する。
そして、演算手段504は、減算結果A_COR(CM)が少なくとも1つの予備クラスタメンバCM_PREについて演算された少なくとも1つの無線リソース量COR(k)のうちのいずれか1つの無線リソース量COR(k)よりも大きいとき、受信信号強度2が時間の経過とともに低下している予備クラスタメンバCM_PREの無線リソース量COR(k)を除外して予備収容個数N_hus(PRE)を演算してもよい。
受信信号強度2が時間の経過とともに低下している予備クラスタメンバCM_PREは、候補クラスタヘッドCH_CADから遠ざかっているので、将来、候補クラスタヘッドCH_CADが構成するクラスタ内に入っている可能性が低い。従って、候補クラスタヘッドCH_CADから遠ざかっている予備クラスタメンバCM_PREを除外して予備収容個数N_hus(PRE)を演算することにしたものである。
図18は、図15のステップS215の別の詳細な動作を説明するためのフローチャートである。図18に示すフローチャートは、図17に示すフローチャートのステップS2153とステップS2155との間にステップS2167,S2168を追加し、ステップS2157を削除したものであり、その他は、図17に示すフローチャートと同じである。
図18を参照して、図15のステップS214(即ち、図16のステップS2151またはステップS2152)の後、上述したステップS2153が実行され、ステップS2153において、収容個数N_hus(CM)が個数N_CNよりも小さくないと判定されたとき、演算手段504は、候補クラスタヘッドCH_CADとN_PRE個の予備クラスタメンバCM_PREとの無線通信に必要なN_PRE個の無線リソース量COR(PRE_1)~COR(PRE_N_PRE)を演算する(ステップS2167)。
そして、演算手段504は、N_PRE個の無線リソース量COR(PRE_1)~COR(PRE_N_PRE)を昇順に配列する(ステップS2168)。
その後、上述したステップS2155,S2156,S2158~S2166が順次実行される。
図18に示すフローチャートのステップS2158~ステップS2163が繰り返し実行される場合、ステップS2158,S2159に示す演算は、無線リソース量COR(PRE_1)~COR(PRE_N_PRE)の小さい順に実行される。
その結果、ステップS2160において、利用可能な無線リソース量A_COR(PRE)が零(=0)よりも大きくないと判定されるまでに、より多くの個数の無線リソース量COR(k)が加算される。従って、最終的な収容個数N_hus(p)を大きくできる。
図18に示すフローチャートについてのその他の説明は、上述した図17に示すフローチャートについての説明と同じである。
図19は、図14のステップS28の詳細な動作を説明するためのフローチャートである。
図19を参照して、図14のステップS27の後、予約手段505は、演算手段504から受けた収容個数N_hus(PRE)が零(=0)であるか否かを判定する(ステップS281)。
ステップS281において、収容個数N_hus(PRE)が零(=0)でないと判定されたとき、予約手段505は、対応表TBL4を参照して、前回の制御時における予約無線リソース量COR_r(t-1)と、今回の制御時における予約無線リソース量COR_r(t)とを検出し、その検出した予約無線リソース量COR_r(t-1)および予約無線リソース量COR_r(t)に基づいて、上述した方法によって、無線リソース量差D(=D1~D3のいずれか)を算出する(ステップS282)。
そして、予約手段505は、無線リソース量差Dがしきい値Dthよりも大きいか否かを判定する(ステップS283)。
ステップS283において、無線リソース量差Dがしきい値Dthよりも大きいと判定されたとき、予約手段505は、候補クラスタヘッドCH_CADと予備クラスタメンバCM_PREとの無線通信に必要な無線リソース量COR_Potentialの一部をリリースする(ステップS284)。
その後、予約手段505は、リリースした無線リソース量を予約無線リソース量COR_r(t)から減算した残りの無線リソース量を対応表TBL4に格納して予約無線リソース量COR_r(t)を予約無線リソース量COR_r(t+1)(<予約無線リソース量COR_r(t))に更新する(ステップS285)。
一方、ステップS281において、収容個数N_hus(PRE)が零(=0)であると判定されたとき、またはステップS283において、無線リソース量差Dがしきい値Dthよりも大きくないと判定されたとき、予約手段505は、候補クラスタヘッドCH_CADと予備クラスタメンバCM_PREとの無線通信に必要な無線リソース量COR_Potentialの一部のリリースを中止する(ステップS286)。そして、ステップS285またはステップS286の後、一連の動作は、図14のステップS29へ移行する。
図20は、図13のステップS3の詳細な動作を説明するためのフローチャートである。
図20を参照して、図13のステップS2の後、クラスタヘッドCHとして選択された候補クラスタヘッドCH_CAD_Sが、制御情報IF_CTLを制御装置50から受信する(ステップS31)。
そして、候補クラスタヘッドCH_CAD_Sが、制御情報IF_CTLから選択情報IF_CH、チャネルCHN_max、複数の識別子Addj(=候補クラスタヘッドCH_CAD_Sがクラスタヘッドとして選択されたときの複数の候補クラスタメンバCM_CADの複数の識別子)、および少なくとも1つの識別子Addkを検出する(ステップS32)。
その後、候補クラスタヘッドCH_CAD_Sが、その検出した少なくとも1つの識別子Addkを保持する(ステップS33)。
引き続いて、候補クラスタヘッドCH_CAD_Sが、選択情報IF_CHに基づいてクラスタヘッド宣言DEC_CHを生成し(ステップS34)、その生成したクラスタヘッド宣言DEC_CHをチャネルCHN_maxで候補クラスタメンバCM_CAD_S(=候補クラスタヘッドCH_CAD_Sがクラスタヘッドとして選択されたときの複数の候補クラスタメンバCM_CAD)へ送信する(ステップS35)。
引き続いて、候補クラスタメンバCM_CAD_S(=候補クラスタヘッドCH_CAD_Sがクラスタヘッドとして選択されたときの複数の候補クラスタメンバCM_CAD)が、クラスタヘッド宣言DEC_CHをチャネルCHN_maxで受信する(ステップS36)。
そして、候補クラスタメンバCM_CAD_S(=候補クラスタヘッドCH_CAD_Sがクラスタヘッドとして選択されたときの複数の候補クラスタメンバCM_CAD)が、クラスタメンバ情報IF_CMを生成し、その生成したクラスタメンバ情報IF_CMをチャネルCHN_maxで候補クラスタヘッドCH_CAD_Sへ送信する(ステップS37)。
そうすると、候補クラスタヘッドCH_CAD_Sが、クラスタメンバ情報IF_CMをチャネルCHN_maxで受信する(ステップS38)。これによって、クラスタが構成され、一連の動作は、図13のステップS4へ移行する。
図21は、図13のステップS4の詳細な動作を説明するためのフローチャートである。
図21を参照して、図13のステップS3の後、クラスタメンバCMが、データの取得要求をチャネルCHN_maxでクラスタヘッドCHへ送信する(ステップS41)。
そして、クラスタヘッドCHが、データの取得要求をチャネルCHN_maxで受信する(ステップS42)。
そうすると、クラスタヘッドCHが、基地局(AP20またはLTE基地局30)を介して情報サーバ60へアクセスし、情報サーバ60からクラスタヘッドCHおよびクラスタメンバCMのデータをダウンロードする(ステップS43)。その後、一連の動作は、図10のステップS5へ移行する。
上記においては、利用可能な無線リソース量A_CORが最大であるチャネルを選択すると説明したが、この発明の実施の形態においては、これに限らず、予約無線リソースCOR_r以上の利用可能な無線リソース量A_CORを有し、かつ、最小の利用可能な無線リソース量A_COR_minを有するチャネルCHN(A_COR_min)を選択してもよい。
この場合、制御手段502は、データ容量DCと、データをダウンロードする周期長Tdと、候補クラスタヘッドCH_CAD(=移動体2,13)の識別子Add2,Add13と、候補クラスタメンバCM_CAD(=移動体3,4,8,9,14)の識別子Add3,Add4,Add8,Add9,Add14と、予備クラスタメンバCM_PRE(=移動体1,5,10)の識別子Add1,Add5,Add10とを演算手段504へ出力し、候補クラスタヘッドCH_CAD(=移動体2,13)と、候補クラスタメンバCM_CAD(=移動体3,4,8,9,14)および予備クラスタメンバCM_PRE(=移動体1,5,10)との無線通信に必要な無線リソース量COR_totalを算出するように演算手段504を制御する。
演算手段504は、データ容量DCと、データをダウンロードする周期長Tdと、候補クラスタヘッドCH_CAD(=移動体2,13)の識別子Add2,Add13と、候補クラスタメンバCM_CAD(=移動体3,4,8,9,14)の識別子Add3,Add4,Add8,Add9,Add14と、予備クラスタメンバCM_PRE(=移動体1,5,10)の識別子Add1,Add5,Add10とを制御手段502から受ける。
そして、演算手段504は、対応表TBL3を参照して、移動体2と、移動体1,3,4,5,8,9,10,14との間の受信信号強度RSSI2-1,RSSI2-3,RSSI2-5,RSSI2-8,RSSI2-9,RSSI2-10,RSSI2-14を検出し、その後、対応表TBL1を参照して、その検出した受信信号強度RSSI2-1,RSSI2-3,RSSI2-5,RSSI2-8,RSSI2-9,RSSI2-10,RSSI2-14にそれぞれ対応する通信レートR1,R3,R4,R5,R8,R9,R10,R14を検出する。そして、演算手段504は、通信レートR1,R3,R4,R5,R8,R9,R10,R14を、それぞれ、移動体2と移動体1,3,4,5,8,9,10,14との間の通信レートRCH_CAD(2)-CM_CAD(1),RCH_CAD(2)-CM_CAD(3),RCH_CAD(2)-CM_CAD(4),RCH_CAD(2)-CM_CAD(5),RCH_CAD(2)-CM_CAD(8),RCH_CAD(2)-CM_CAD(9),RCH_CAD(2)-CM_CAD(10),RCH_CAD(2)-CM_CAD(14)に設定する。
その後、演算手段504は、1つのデータのデータ容量DC、通信レートRCH_CAD(2)-CM_CAD(3)およびデータをダウンロードする周期長Tdを式(1)に代入して候補クラスタヘッドCH_CAD(移動体2)と候補クラスタメンバCM_CAD(移動体3)との無線通信に必要な無線リソース量COR(3)を算出する。同様にして、演算手段504は、候補クラスタヘッドCH_CAD(移動体2)と、候補クラスタメンバCM_CAD(=移動体4,8,9,14)との無線通信に必要な無線リソース量COR(4),COR(8),COR(9),COR(14)を算出する。
その後、演算手段504は、同様にして、候補クラスタヘッドCH_CAD(移動体2)と予備クラスタメンバCM_PRE(=移動体1,5,10)との無線通信に必要な無線リソース量COR(1),COR(5),COR(10)を算出する。
そうすると、演算手段504は、候補クラスタヘッドCH_CAD(=移動体2)について、無線リソース量COR(3),COR(4),COR(8),COR(9),COR(14)と無線リソース量COR(1),COR(5),COR(10)との総和からなる予約無線リソース量COR_total(2)を演算する。
また、演算手段504は、候補クラスタヘッドCH_CADが移動体13である場合について、移動体13と移動体1,3,4,5,8,9,10,14との間の通信レートRCH_CAD(13)-CM_CAD(1),RCH_CAD(13)-CM_CAD(3),RCH_CAD(13)-CM_CAD(4),RCH_CAD(13)-CM_CAD(5),RCH_CAD(13)-CM_CAD(8),RCH_CAD(13)-CM_CAD(9),RCH_CAD(13)-CM_CAD(10),RCH_CAD(13)-CM_CAD(14)を用いて、同様にして、予約無線リソース量COR_total(13)を演算する。
その後、演算手段504は、予約無線リソース量COR_total(2)および予約無線リソース量COR_total(13)を選択手段503を介して制御手段502へ出力する。
制御手段502は、選択手段503を介して、予約無線リソース量COR_total(2)および予約無線リソース量COR_total(13)を演算手段504から受ける。そして、制御手段502は、対応表TBL2を参照して、予約無線リソース量COR_total(2)に基づいて、利用可能な無線リソース量A_CORが予約無線リソース量COR_total(2)以上であり、かつ、利用可能な無線リソース量A_CORが最小であるチャネルCHN(A_COR_min)_(2)を選択し、移動体2を候補クラスタヘッドCH_CADとするクラスタのチャネルをチャネルCHN(A_COR_min)_(2)に設定する。
また、制御手段502は、同様にして、予約無線リソース量COR_total(13)に基づいて、チャネルCHN(A_COR_min)_(13)を選択し、移動体13を候補クラスタヘッドCH_CADとするクラスタのチャネルをチャネルCHN(A_COR_min)_(13)に設定する。
そうすると、制御手段502は、移動体2を候補クラスタヘッドCH_CADとするクラスタのチャネルとしてチャネルCHN(A_COR_min)_(2)を演算手段504へ出力し、移動体13を候補クラスタヘッドCH_CADとするクラスタのチャネルとしてチャネルCHN(A_COR_min)_(13)を演算手段504へ出力する。
演算手段504は、チャネルCHN(A_COR_min)_(2)およびチャネルCHN(A_COR_min)_(13)を受ける。そして、演算手段504は、識別子Add3,Add4,Add8,Add9,Add14の個数を候補クラスタメンバCM_CAD(=移動体3,4,8,9,14)の個数N_CNとしてカウントし、識別子Add1,Add5,Add10の個数を予備クラスタメンバCM_PRE(=移動体1,5,10)の個数N_PREとしてカウントする。
その後、演算手段504は、個数N_CNと個数N_PREとの和を候補クラスタヘッドCH_CADが収容可能な収容個数N_husとして演算する。そうすると、演算手段504は、AP20(またはLTE基地局30)との間の無線リソース量で収容個数N_husを除算して収容効率EFF_husを演算する。
演算手段504は、同様にして、候補クラスタヘッドCH_CADの全てについて収容効率EFF_husを演算する。
予約無線リソースCOR_r以上の利用可能な無線リソース量A_CORを有し、かつ、最小の利用可能な無線リソース量A_COR_minを有するチャネルCHN(A_COR_min)が用いられる場合も、通信システム100の動作は、図13に示すフローチャートに従って実行され、図13のステップS2の詳細な動作は、図14に示すフローチャートに従って実行される。
図22は、図14のステップS21の別の詳細な動作を説明するためのフローチャートである。図22に示すフローチャートは、図15に示すフローチャートのステップS212~ステップS215をステップS212A~ステップS214Aに変えたものであり、その他は、図15に示すフローチャートと同じである。
なお、図22に示すフローチャートは、チャネルCHN(A_COR_min)が用いられる場合における図14のステップS21の詳細な動作を説明するためのフローチャートである。
図22を参照して、図13のステップS1において、周期Tが到来したと判定されたとき、上述したステップS211が実行される。
そして、ステップS211の後、演算手段504は、候補クラスタヘッドCH_CADに近接する候補クラスタメンバCM_CADの識別子Addjと予備クラスタメンバCM_PREの識別子Addkとを制御手段502から受け、識別子Addjの個数と識別子Addkの個数とをカウントすることによって候補クラスタメンバCM_CADの個数N_CNおよび予備クラスタメンバCM_PREの個数N_PREを受け付ける(ステップS212A)。この場合、演算手段504は、識別子Addjの個数を候補クラスタメンバCM_CADの個数N_CNとして受け付け、識別子Addkの個数を予備クラスタメンバCM_PREの個数N_PREとして受け付ける。
その後、演算手段504は、個数N_CNを候補クラスタメンバCM_CADの収容個数N_hus(CM)に設定し(ステップS213A)、個数N_PREを予備クラスタメンバCM_PREの収容個数N_hus(PRE)に設定する(ステップS214A)。
ステップS214Aの後、上述したステップS216が実行され、ステップS217において、h=Hであると判定されるまで、ステップS212A,213A,214A,S216,S217,S218が繰り返し実行される。そして、ステップS217において、h=Hであると判定されると、一連の動作は、図14のステップS22へ移行する。
従って、予約無線リソースCOR_r以上の利用可能な無線リソース量A_CORを有し、かつ、最小の利用可能な無線リソース量A_COR_minを有するチャネルCHN(A_COR_min)が用いられる場合、通信システム100の動作は、図13に示すフローチャート(図14に示すフローチャート(図22に示すフローチャートを含む)、図19に示すフローチャート、図20に示すフローチャート、および図21に示すフローチャートを含む)に従って実行される。
図23は、新たなクラスタメンバがクラスタ内に入ったときの動作を説明するためのフローチャートである。
図23を参照して、クラスタヘッドCHおよびクラスタメンバCMは、クラスタ内で通信を実行する(ステップS51)。
そして、予備クラスタメンバCM_PREがクラスタ内に移動し、ビーコンBeaconを送信する(ステップS52)。
クラスタヘッドCHは、予備クラスタメンバCM_PREからビーコンBeaconを受信し、ビーコンBeaconを受信したときの受信信号強度RSSIBCを検出する(ステップS53)。
そして、クラスタヘッドCHは、受信信号強度RSSIBCがしきい値RSSI_th1以上であるか否かを判定する(ステップS54)。
ステップS54において、受信信号強度RSSIBCがしきい値RSSI_th1以上であると判定されたとき、クラスタヘッドCHは、ビーコンBeaconから識別子Add”kを検出し(ステップS55)、その検出した識別子Add”kが、保持している識別子Addkに一致するか否かを判定する(ステップS56)。
ステップS56において、識別子Add”kが識別子Addkに一致すると判定されたとき、クラスタヘッドCHは、クラスタヘッド宣言を生成して送信し(ステップS57)、予備クラスタメンバCM_PREは、クラスタヘッドCHからクラスタヘッド宣言を受信する(ステップS58)。そして、予備クラスタメンバCM_PREは、クラスタヘッド宣言に基づいてクラスタヘッドCHを認識し、クラスタメンバ情報IF_CMをクラスタヘッドCHへ送信する(ステップS59)。
クラスタヘッドCHは、クラスタメンバ情報IF_CMを受信し(ステップS60)、予備クラスタメンバCM_PREをクラスタメンバCMとして認識する(ステップS61)。そうすると、クラスタヘッドCHは、自己と、従来のクラスタメンバCMと、新たにクラスタメンバCMになった予備クラスタメンバCM_PREとからクラスタが構成されたことを認識し、クラスタ内で無線通信を実行する(ステップS62)。
そして、ステップS54において、受信信号強度RSSIBCがしきい値RSSI_th1以上でないと判定されたとき、またはステップS56において、識別子Add”kが識別子Addkに一致しないと判定されたとき、またはステップS62の後、一連の動作は、終了する。
このように、新たなクラスタメンバがクラスタ内に入ってきた場合、クラスタを再構成することなく、新たなクラスタメンバも含めてクラスタ内で無線通信が行われる。
その結果、新たなクラスタメンバがクラスタ内に入ってきた場合、クラスタヘッドCHは、クラスタを再構成する必要が無いので、クラスタにおける通信が遮断されることなく、クラスタ内における通信を継続できる。
この発明の実施の形態においては、制御装置50の動作は、ソフトウェアによって実現されてもよい。この場合、制御装置50は、CPU(Central Processing Unit)、ROM(Read Only Memory)およびRAM(Random Access Memory)を備える。そして、ROMは、図14に示すフローチャート(図15に示すフローチャート(図16および図17に示すフローチャート、または図16および図18に示すフローチャートを含む)を含む)の各ステップからなるプログラムProg_A、または図14に示すフローチャート(図22に示すフローチャートを含む)の各ステップからなるプログラムProg_Bを記憶する。
CPUは、ROMからプログラムProg_AまたはプログラムProg_Bを読み出し、その読み出したプログラムProg_AまたはプログラムProg_Bを実行して、収容効率EFF_husが最大になるように候補クラスタヘッドCH_CADからクラスタヘッドCHを選択し、その選択したクラスタヘッドCHがクラスタを構成するように制御する。RAMは、無線リソース量COR(j),COR(k)、全体の無線リソース量CM_COR_total、最大の無線リソース量A_COR_initial、収容個数N_hus,N_hus(CM),N_hus(PRE)および収容効率EFF_husを一時的に記憶する。
また、プログラムProg_AまたはプログラムProg_Bは、CD,DVD等の記録媒体に記録されて流通してもよい。プログラムProg_AまたはプログラムProg_Bを記録した記録媒体がコンピュータに装着されると、コンピュータは、記録媒体からプログラムProg_AまたはプログラムProg_Bを読み出して実行し、収容効率EFF_husが最大になるように候補クラスタヘッドCH_CADからクラスタヘッドCHを選択し、その選択したクラスタヘッドCHがクラスタを構成するように制御する。
従って、プログラムProg_AまたはプログラムProg_Bを記録した記録媒体は、コンピュータ読み取り可能な記録媒体である。
なお、この発明の実施の形態においては、以下に説明する方法によって、候補クラスタヘッドCH_CADのデータと、候補クラスタメンバCM_CADのデータとの総データ容量D_totalを算出してもよい。
図24は、総データ容量D_totalを求める方法を説明するための図である。図24を参照して、データD_CH,D_CMの各々を示す円の半径をrとし、データD_CHの中心を点Aとし、データD_CH,D_CMの交点を点B,Cとする。角∠BACをθとする。円弧BC、辺ABおよび辺ACによって形成される扇型の面積SFSは、次式によって表される。
そして、点Aから線分BCへ下ろした垂線の長さhは、次式によって表される。
線分BCと点Aからの垂線との交点を点Dとすると、線分CDの長さは、rsin(θ/2)によって表されるので、点A,点Cおよび点Dを頂点とする三角形の面積STG1は、次式によって表される。
そうすると、点A、点Bおよび点Cを頂点とする三角形の面積STGは、次式によって表される。
その結果、線分BCおよび円弧BCによって囲まれた部分の面積SARCは、SFS-STGに等しいので、次式によって表される。
よって、データD_CHとデータD_CMとの重複部分の面積SDUPは、2×SARCであるので、次式によって表される。
データD_CH,D_CMの各々のデータ容量は、DCであるので、データD_CHとデータD_CMとの重複部分のデータ容量DDUPは、次式によって表される。
2つのデータD_CH,D_CMをまとめて情報サーバ60からダウンロードするときのトータルのデータ容量D_totalは、2つのデータD_CH,D_CMのデータ容量の和2×DCからデータD_CHとデータD_CMとの重複部分のデータ容量DDUPを差し引いたものである。従って、総データ容量D_totalは、次式によって表される。
図7に示すように、クラスタヘッドCHのデータ(円CIR1によって表される)は、クラスタメンバCMのデータ(円CIR2または円CIR3によって表される)と一部が重複する。従って、クラスタヘッドCHのデータとクラスタメンバCMのデータとの総数をm(mは、2以上の整数)個とすると、m個のデータの総データ容量D_total(m)は、次式によって表される。
クラスタヘッドCHのデータとm-1個のクラスタメンバCMのm-1個のデータとの重複部分は、m-1個であり、1つのDDUP(p)は、1つの重複部分のデータ容量を表すので、m×DCからm-1個の重複部分のデータ容量の総和を減算することによって、総データ容量D_total(m)が得られる。
クラスタヘッドCHの位置およびクラスタメンバCMの位置からクラスタヘッドCHとクラスタメンバCMとの距離(=2h)を算出し、距離(=2h)からhを算出し、hおよび半径r(=既知(例えば、10m))から余弦定理(cos(θ/2)=h/r)を用いて角度θを算出できるので、総データ容量D_total(m)を算出できる。そして、2つのデータD_CH,D_CMの重複部分が大きくなれば、式(13)のDDUP(p)が大きくなるので、総データ容量D_total(m)は、小さくなる。一方、2つのデータD_CH,D_CMの重複部分が小さくなれば、式(13)のDDUP(p)が小さくなるので、総データ容量D_total(m)は、大きくなる。
図25は、総データ容量D_totalを求める別の方法を説明するための図である。図25を参照して、2つのデータD_CH,D_CMの配置領域にメッシュを設け、2つのデータD_CH,D_CMが配置されたメッシュ(斜線で表されるメッシュ)の総面積を求める。そして、D_total=DC×(総面積)/πr2によって総データ容量D_totalを求めてもよい。
この場合、2つのデータD_CH,D_CMの重複部分が大きくなれば、総面積が小さくなるので、総データ容量D_totalは、小さくなる。一方、2つのデータD_CH,D_CMの重複部分が小さくなれば、総面積が大きくなるので、総データ容量D_totalは、大きくなる。従って、図25に示す方法によってm個のデータの総データ容量D_total(m)を算出してもよい。
図24または図25に示す方法によって算出された総データ容量D_total(m)は、図15のステップS216における「AP-CH_CAD(h)間の無線リソース量」を算出するために用いられる。そして、「AP-CH_CAD(h)間の無線リソース量」は、総データ容量D_total(m)をAP-CH_CAD(h)間の通信レートRAP-CH_CADで除算することによって算出される。
なお、この発明の実施の形態においては、移動体iの識別子Addi、識別子Addj、識別子Addk、受信信号強度RSSImi-mj_i、受信信号強度RSSIAP-m_iおよび接続数N_CN_iに加えて、移動体iの位置を示す位置情報[xi,yi]を含むHelloパケット=[Addi/[xi,yi]/Addj/Addk/RSSImi-mj_i/RSSIAP-m_i/N_CN_i]を生成し、その生成したHelloパケット=[Addi/[xi,yi]/Addj/Addk/RSSImi-mj_i/RSSIAP-m_i/N_CN_i]をAP20(またはLTE基地局30)を介して制御装置50へ送信するようにしてもよい。
この場合、移動体iは、例えば、GPS(Global Positioning System)を用いて位置情報[xi,yi]を検出する。制御手段502は、移動体iの識別子Addi、識別子Addj、識別子Addk、位置情報[xi,yi]、受信信号強度RSSImi-mj_i、受信信号強度RSSIAP-m_iおよび接続数N_CN_iをHelloパケットから検出し、その検出した移動体iの識別子Addi、識別子Addj、識別子Addk、位置情報[xi,yi]、受信信号強度RSSImi-mj_i、受信信号強度RSSIAP-m_iおよび接続数N_CN_iを相互に対応付けて対応表TBL3に格納する。そして、制御手段502は、移動体iの識別子Addi、識別子Addj、識別子Addkおよび位置情報[xi,yi]に基づいて、移動体1~15のトポロジーを把握し、その把握したトポロジーを追加して、上述した方法によって、候補クラスタヘッドCH_CAD、候補クラスタメンバCM_CADおよび予備クラスタメンバCM_PREを抽出する。
また、演算手段504は、位置情報[xi,yi]の時間経過によって、候補クラスタヘッドCH_CADから遠ざかっている予備クラスタメンバCM_PREを検出し、その検出した予備クラスタメンバCM_PREを除外して予備収容個数N_hus(PRE)を演算する。
従って、この発明の実施の形態においては、予備クラスタメンバCM_PREの位置情報[xi,yi]に基づいて候補クラスタヘッドCH_CADから遠ざかっている予備クラスタメンバCM_PREを検出することは、受信信号強度2の時間経過によって、候補クラスタヘッドCH_CADから遠ざかっている予備クラスタメンバCM_PREを検出することと同義である。
上述した実施の形態によれば、この発明の実施の形態による制御装置は、複数の移動体からクラスタヘッドを選択し、その選択したクラスタヘッドがクラスタを構成するようにクラスタヘッドを定期的に制御する制御装置であって、
クラスタヘッドの候補である候補クラスタヘッドにおける受信信号強度が第1のしきい値以上であり、かつ、候補クラスタヘッドに収容されるクラスタメンバの個数である収容個数と、受信信号強度が第1のしきい値よりも小さく、かつ、第1のしきい値よりも小さい第2のしきい値以上であり、かつ、クラスタメンバとして候補クラスタヘッドに収容される可能性のある予備クラスタメンバの個数である予備収容個数とを演算し、候補クラスタヘッドが基地局との無線通信に使用可能な第1の無線リソース量で収容個数と予備収容個数との総和を除算して候補クラスタヘッドにおけるクラスタメンバの収容効率を演算するとともに候補クラスタヘッドとクラスタメンバとの無線通信に使用可能な第2の無線リソース量と候補クラスタヘッドと予備クラスタメンバの無線通信に使用可能な第3の無線リソース量とを演算する第1の演算処理を複数の前記候補クラスタヘッドについて実行する演算手段と、
複数の候補クラスタヘッドについて演算された複数の収容効率から最大の収容効率を検出し、その検出した最大の収容効率を有する候補クラスタヘッドをクラスタヘッドとして選択する選択手段と、
選択手段によって選択された候補クラスタヘッドとクラスタメンバとの無線通信に使用可能な無線リソース量である第2の無線リソース量と、選択手段によって選択された候補クラスタヘッドと予備クラスタメンバとの無線通信に使用可能な無線リソース量である第3の無線リソース量との和を予約無線リソース量として予約する予約手段と、
クラスタを構成するように、選択手段によって選択された候補クラスタヘッドを制御する制御手段とを備えていればよい。
また、この発明の実施の形態による通信システムは、この発明の実施の形態による制御装置と、クラスタを構成する複数の移動体と、複数の移動体がダウンロードするデータを保持する情報サーバとを備え、
複数の移動体は、
候補クラスタヘッドからなり、制御装置による制御に従ってクラスタを構成するクラスタヘッドと、クラスタヘッドと無線通信を行うクラスタメンバとを含み、
クラスタヘッドは、クラスタヘッドおよびクラスタメンバのデータを情報サーバからダウンロードし、クラスタメンバのデータをクラスタメンバへ送信すればよい。
更に、この発明の実施の形態によるプログラムは、複数の移動体からクラスタヘッドを選択し、その選択したクラスタヘッドがクラスタを構成するようにクラスタヘッドの定期的な制御をコンピュータに実行させるためのプログラムであって、
演算手段が、クラスタヘッドの候補である候補クラスタヘッドにおける受信信号強度が第1のしきい値以上であり、かつ、候補クラスタヘッドに収容されるクラスタメンバの個数である収容個数と、受信信号強度が第1のしきい値よりも小さく、かつ、第1のしきい値よりも小さい第2のしきい値以上であり、かつ、クラスタメンバとして候補クラスタヘッドに収容される可能性のある予備クラスタメンバの個数である予備収容個数とを演算し、候補クラスタヘッドが基地局との無線通信に使用可能な第1の無線リソース量で収容個数と予備収容個数との総和を除算して候補クラスタヘッドにおけるクラスタメンバの収容効率を演算するとともに候補クラスタヘッドとクラスタメンバとの無線通信に使用可能な第2の無線リソース量と候補クラスタヘッドと予備クラスタメンバの無線通信に使用可能な第3の無線リソース量とを演算する第1の演算処理を複数の前記候補クラスタヘッドについて実行する第1のステップと、
選択手段が、複数の候補クラスタヘッドについて演算された複数の収容効率から最大の収容効率を検出し、その検出した最大の収容効率を有する候補クラスタヘッドをクラスタヘッドとして選択する第2のステップと、
予約手段が、第2のステップにおいて選択された候補クラスタヘッドとクラスタメンバとの無線通信に使用可能な無線リソース量である第2の無線リソース量と、第2のステップにおいて選択された候補クラスタヘッドと予備クラスタメンバとの無線通信に使用可能な無線リソース量である第3の無線リソース量との和を予約無線リソース量として予約する第3のステップと、
制御手段が、クラスタを構成するように、第2のステップにおいて選択された候補クラスタヘッドを制御する第4のステップとをコンピュータに実行させればよい。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した実施の形態の説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。