(57)【要約】【課題】最短経路ツリーのネットワークの寿命を長期化する。【解決手段】複数のセンサーノードで構成されたセンサーツリーにおいて経路を選択する経路選択装置は、前記センサーツリーの各ノードのセンサー負荷を求め、自センサーノードとルートセンサーノードとの間のセンサー経路負荷を求めるセンサー負荷・経路負荷設定部と、前記センサーツリーの中で最もセンサー負荷が高いセンサーノードである最大センサー負荷ノードを選択し、当該最大センサー負荷ノード配下のセンサーノードを、他のサブツリー配下に移動するセンサーノード移動部とを有し、前記センサーノード移動部は、前記最大センサー負荷ノード配下のセンサーノードの移動後に当該センサーノードの移動先の親センサーノードのセンサー経路負荷が前記最大センサー負荷ノードのセンサー負荷より小さい場合に、移動できると判断する。【選択図】図５
2018023013.tif 000002
【特許請求の範囲】
【請求項１】
複数のセンサーノードで構成されたセンサーツリーにおいて、下位のセンサーノードからの受信データを上位のセンサーノードに送信する際の経路を選択する経路選択装置であって、
前記センサーツリーの各ノードのセンサー負荷を求め、自センサーノードとルートセンサーノードとの間の経路上に存在するセンサーノードのセンサー負荷の最大値であるセンサー経路負荷を求めるセンサー負荷・経路負荷設定部と、
前記センサーツリーの中で最もセンサー負荷が高いセンサーノードである最大センサー負荷ノードを選択し、当該最大センサー負荷ノード配下のセンサーノードを、当該最大センサー負荷ノードを頂点とするサブツリー以外のサブツリー配下に移動するセンサーノード移動部と、
を有し、
前記センサーノード移動部は、前記最大センサー負荷ノード配下のセンサーノードの移動後に当該センサーノードの移動先の親センサーノードのセンサー経路負荷が前記最大センサー負荷ノードのセンサー負荷より小さい場合に、移動できると判断する経路選択装置。
【請求項２】
前記センサーノード移動部は、
前記最大センサー負荷ノードを頂点とするサブツリーと、前記最大センサー負荷ノード配下のセンサーノードの移動先の親センサーノードとを含む共通サブツリーの頂点を求め、
前記最大センサー負荷ノード配下のセンサーノードの移動後における当該共通サブツリーの頂点と前記移動先の親センサーノードとの間の経路上に存在するセンサーノードのセンサー負荷が、前記最大センサー負荷ノードのセンサー負荷より小さい場合に、移動できると判断する、請求項１に記載の経路選択装置。
【請求項３】
前記センサーノード移動部は、
前記最大センサー負荷ノード配下のセンサーノードの移動後に当該センサーノードの移動先の親センサーノードのセンサー経路負荷が前記最大センサー負荷ノードのセンサー負荷以上となっても、前記最大センサー負荷ノードのセンサー負荷を超える負荷が一定のバッファ値以内である場合、前記最大センサー負荷ノード配下のセンサーノードと前記移動先の親センサーノードとをイレギュラー移動候補集合に設定し、
前記最大センサー負荷ノード配下のセンサーノードで移動可能なセンサーノードが存在しない場合、前記イレギュラー移動候補集合内で、前記最大センサー負荷ノード配下のセンサーノードの移動後にセンサー経路負荷が最小となる移動先の親センサーノードを選択し、当該選択された親センサーノードに移動する、請求項１又は２に記載の経路選択装置。
【請求項４】
前記センサーノード移動部は、
センサーノードに対してイレギュラー移動回数の属性を設定し、
前記イレギュラー移動候補集合から選択されて移動したセンサーノードに対して、イレギュラー移動回数に１を加え、当該イレギュラー移動回数が上限に達したセンサーノードを、前記イレギュラー移動候補集合に設定しない、請求項３に記載の経路選択装置。
【請求項５】
前記センサーノード移動部は、
前記最大センサー負荷ノード配下のセンサーノードを、イレギュラー移動回数の少ない順にソートし、イレギュラー移動回数の少ないノードを優先的に移動する、請求項４に記載の経路選択装置。
【請求項６】
複数のセンサーノードで構成されたセンサーツリーにおいて、下位のセンサーノードからの受信データを上位のセンサーノードに送信する際の経路を選択する経路選択装置における経路選択方法であって、
前記センサーツリーの各ノードのセンサー負荷を求め、自センサーノードとルートセンサーノードとの間の経路上に存在するセンサーノードのセンサー負荷の最大値であるセンサー経路負荷を求めるステップと、
前記センサーツリーの中で最もセンサー負荷が高いセンサーノードである最大センサー負荷ノードを選択し、当該最大センサー負荷ノード配下のセンサーノードを、当該最大センサー負荷ノードを頂点とするサブツリー以外のサブツリー配下に移動するステップと、
を有し、
前記移動するステップにおいて、前記最大センサー負荷ノード配下のセンサーノードの移動後に当該センサーノードの移動先の親センサーノードのセンサー経路負荷が前記最大センサー負荷ノードのセンサー負荷より小さい場合に、移動できると判断する経路選択方法。
【請求項７】
複数のセンサーノードで構成されたセンサーツリーにおいて、下位のセンサーノードからの受信データを上位のセンサーノードに送信する際の経路を選択する経路選択装置として、コンピュータを機能させるためのプログラムであって、当該コンピュータを、
前記センサーツリーの各ノードのセンサー負荷を求め、自センサーノードとルートセンサーノードとの間の経路上に存在するセンサーノードのセンサー負荷の最大値であるセンサー経路負荷を求めるセンサー負荷・経路負荷設定手段、及び
前記センサーツリーの中で最もセンサー負荷が高いセンサーノードである最大センサー負荷ノードを選択し、当該最大センサー負荷ノード配下のセンサーノードを、当該最大センサー負荷ノードを頂点とするサブツリー以外のサブツリー配下に移動するセンサーノード移動手段、
として機能させ、
前記センサーノード移動手段は、前記最大センサー負荷ノード配下のセンサーノードの移動後に当該センサーノードの移動先の親センサーノードのセンサー経路負荷が前記最大センサー負荷ノードのセンサー負荷より小さい場合に、移動できると判断するプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のセンサーノードで構成されたセンサーツリーにおける経路選択装置、経路選択方法及びプログラムに関する。
【背景技術】
【０００２】
特定の場所／地域にセンサーを配置し、対象地の湿度、温度、気体濃度等をセンサーによって計測し、その計測データをデータ収集ツリーで収集し、ルートセンサーノードからベースステーションに通知することによって対象地の分析を行う、あるいはガスメータ、電気メータなどの情報を定期的にデータ収集ツリーで収集する、ことを可能にする技術として、ＲＰＬ（Routing Protocol for Low-power and Lossy Networks）プロトコルが標準化されている（例えば、非特許文献１参照）。データ収集ツリーは、ツリー状に構成されたセンサーノードの集合であり、センサーツリーとも呼ばれる。
【０００３】
センサーは、電池稼働のものが多く、各センサーの電池寿命内でのデータ収集ツリーの収集サイクル数を最大限にするような、ツリー寿命の長いツリー経路選択装置／方法が求められる。また、ツリーの各リーフセンサーノードからルートセンサーノードまでのホップ数が大きい場合は、データ到達率が低くなるため、ルートセンサーノードまでのホップ数が最短の経路のみで構成されるツリー（最短経路ツリー）を利用する場合もあり、その最短経路ツリーの寿命を長くすることが求められる。なお、センサーツリーの寿命とは、ツリー生成から当該ツリーを構成するいずれか一つのセンサーノードのエネルギーが無くなるまでの期間をいう。
【０００４】
センサーツリー上で湿度、温度等の平均値／最高値／最小値を取得する場合は、センサーツリーでデータをルートセンサーノードに通知する途中で経由する各センサーノードでこれらの値を計算して計算結果のみを上位ノードに送信することができるので、１センサーパケットで自計測データを含めた集約結果データを上位ノードに送信することができる（データ集約ツリー）。しかし、データ集約できず、一つ一つのセンサーの計測データを集約せずに別々のパケットでルートセンサーノードに送信する場合もあり、その場合は自ノードを含めたツリー上の下位ノード数のパケットを上位ノードに送信する必要がある（データ非集約ツリー）。
【０００５】
またセンサーノードｉ（ノードｉ）のセンサー負荷：Ｌ（ｉ）を以下の式１、ノードｉのセンサー経路負荷：ＰＬ（ｉ）を以下の式２によって定義し、ＰＬ値の大きいセンサーノード（ノード）をＰＬ値の小さいノード配下に移動する処理を繰り返すことにより、データ非集約ツリー上で最大センサー負荷を持つノードのＬの値を最小にする手法が検討されており（例えば、非特許文献２参照）、この課題はセンサーツリー寿命を最大にする課題と同値である。
Ｌ（ｉ）＝（ＥＴｘ×ＴＮ（ｉ）  ＋  ＥＲｘ×ＲＮ（ｉ））／Ｅｉｎｉ（ｉ）      （式１）
ＰＬ（ｉ）＝ｍａｘ｛Ｌ（ｊ）|ｊ∈ｐａｔｈ（ｉ，ｒ）｝                    （式２）
但し、式１において、ＥＴｘは１センサーパケットの送信に必要とされるエネルギー量、ＥＲｘは１センサーパケットの受信に必要とされるエネルギー量、Ｅｉｎｉ（ｉ）は、ノードｉの初期エネルギー量、ＴＮ（ｉ）はノードｉが１データ収集サイクルに必要な送信パケット数、ＲＮ（ｉ）はノードｉが１データ収集サイクルに必要な受信パケット数である。式２において、ｒはルートセンサーノードを示す。つまりノードｉのＰＬ値は、自ノードとルートセンサーノード間のパスｐａｔｈ（ｉ，ｒ）上のすべてのノードのセンサー負荷値中の最大値を示す。なお、ルートセンサーノードはエネルギーが恒久的に提供されることを想定しており、ルートセンサーノードのセンサー負荷＝０であり、ルートセンサーノードのＬ値がＰＬ値として選ばれることはない。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】T. Winter, et al., "RPL: IPv6 Routing Protocol for Low-power and Lossy Networks", RFC6550, IETF, March 2012.
【非特許文献２】S. K. A. Imon, et al., "RaSMaLai: A Randomized Switching Algorithm for Maximizing Lifetime in Tree-based Wireless Sensor Networks", IEEE Infocom, 2013.
【発明の概要】
【発明が解決しようとする課題】
【０００７】
非特許文献２は、ランダムに作成した最短経路ツリーの中で最もセンサー負荷（Ｌ）の高いノード配下のノードすべてを対象として順番に選択していき、選択されたノードに隣接しているノードが自ＰＬ値よりも小さい場合は、（１／２）ｍの確率で自身と隣接関係のある隣接ノード配下にツリー上で移動する手法（ＲａＳＭａＬａｉ）である。ここでｍは当該ノードがツリー上で移動した回数に１を足し合わせた値である。この処理が終わった後は再度ツリー中で最大Ｌを持つノード配下で同様の移動を行い、この処理をツリー上のすべてのノードの中での、最大Ｌから最小Ｌを引いた値が設定値より小さくなるか、最大Ｌ値を持つノードとして、あるノードが設定回数選ばれるまで続ける処理を行う。また、ここで隣接関係とは、通信（接続）が可能な関係をいい、例えば、一方が、他方からの電波信号（例えば、ＲＳＳＩ（Received Signal Strength Indicator））の到達範囲内に有る関係をいう。
【０００８】
このようにＲａＳＭａＬａｉは何回かノードの移動処理を繰り返すことにより、ツリー上での最大Ｌを持つノードのセンサー負荷を小さくすることができるようになり、数ある手法の中で現在ではデータ非集約ツリー寿命を最も長くできることが知られている。しかしながら、最大Ｌを持つセンサー配下に多数のノードが存在する場合は多くのノードが一度に移動して移動先のサブツリーの負荷が大きくなりすぎる逆効果問題がある。また逆効果問題が繰り返されるとアルゴリズムが収束するまでの時間がかかるため、処理時間が大きくなる問題がある。また、最大Ｌ配下ノードの移動回数が多くなった場合は移動する確率が０に近くなるため、移動するべき状況でも移動できない問題があり、結果として最適ツリーに近づけない場合がある問題がある。
【０００９】
図１に従来方式であるＲａＳＭａＬａｉのフローチャートを示す。ＳＴＥＰ１は最短経路ツリーをランダムに作成するプロセスであり、例えばルートノード（レベル０）のすべての隣接している浮遊センサー（ツリーに接続していないセンサー）をルートノード配下にレベル１ノードとして接続した後に、レベル１ノードのすべての隣接浮遊センサーをレベル２ノードとしてランダムに選択されたレベル１ノードの配下に接続し、この処理をセンサーネットワーク上のすべての浮遊センサーがツリー接続されるまで繰り返すことにより作成することができる。なお、レベルとは当該ノードの最短経路ツリー上でのルートノードまでのホップ数を示している。また、各ノードｉの移動確率ＰｉはＰｉ＝１／２として設定される。
【００１０】
ＳＴＥＰ２では、各ノードのＬとＰＬの値を設定する。ツリー上の子孫数から各ノードの送受信するパケット数が求まるので式１からＬの値は求めることが可能である。ＰＬは自身とルートセンサーノード間のパス上のセンサー負荷（Ｌ）の最大値なので、ツリーをたどることにより求めることができる。その後に、ツリー上の最大負荷センサーＮｍａｘと最小負荷センサーＮｍｉｎを得る。
【００１１】
ＳＴＥＰ３とＳＴＥＰ４はアルゴリズム終了条件である。あるノードがａ回より多くＮｍａｘとして選択された場合は終了（ＳＴＥＰ３）であり、ＬｍａｘとＬｍｉｎの差が事前に設定された値ｂ以下の場合（ＳＴＥＰ４）は終了になる。なお、Ｌｍａｘはツリー上の最大負荷センサーＮｍａｘの負荷（Ｌ）であり、Ｌｍｉｎは最小負荷センサーＮｍｉｎの負荷である。
【００１２】
ＳＴＥＰ５はＮｍａｘ配下の孫、ひ孫も含めたすべてのノードｉに対してＰｉの確率で隣接するノード配下に移動する処理を行う。一度移動したノードは移動確率が少なくなり（１／２）ｍとなる。ここでｍは当該ノードの（移動回数＋１）である。なお、移動先の親候補が複数ある場合はランダムに一つの親を選択する。もし、ノードｉ配下にノードがある場合に、ｉが新しい親配下に移動した場合は、ｉの配下ノードもｉと同時に新しい親配下に移動するが、ｉ配下のノードの移動確率は変わらず、ノードｉの移動確率のみが１／２倍になる。ＳＴＥＰ５の終了の後はＳＴＥＰ２に戻り、ＳＴＥＰ５の移動の結果できた新しいツリーでＬ，ＰＬの更新を行うことになる。ＲａＳＭａＬａｉはＳＴＥＰ３／４でアルゴリズム終了判断がなされるまで続けられる。
【００１３】
図２にＲａＳＭａＬａｉを利用した時の準理想的なノード移動例を示す。なおこの例では、ツリーはデータ非集約ツリーであり、センサーパケットの集約はツリー経路上で行われない。最初の条件として、ノード５を除いた初期エネルギー量Ｅｉｎｉ＝１、ノード５の初期エネルギー量は０．５とする。また、１センサーパケットの送信に必要とされるエネルギー量ＥＴｘ＝１、１センサーパケットの受信に必要とされるエネルギー量ＥＲｘ＝１としている。括弧内の数字は（Ｌ，ＰＬ）である。図において点線は隣接関係を示し、実線はツリーの親子関係を示す。また、図１のＳＴＥＰ４のパラメータであるｂの値はｂ=０．５とする。
図２（１）は図１のＳＴＥＰ１で最初にランダムに作成された最短経路ツリーである。（１）で示されるように、ノード５のＬ値が最もツリー上で大きいので５の配下のノードを隣接ノードに移動する。この場合ノード７が隣接ノードとしてノード４を持ち、ｂ=０．５の場合、ＰＬ（７）−ＰＬ（４）＞０．５を満たすので、ノード７をノード４に移動を確率（１／２）で行う。この例では結果として移動が行われたことを想定している。ノード９と１０はノード７の配下なので、必然的にノード４配下のサブツリーに移動することになる。ノード４は移動したので、その移動確率が（１／４）になるが、他のノード（ノード９、１０）の移動確率は１／２のままである。
【００１４】
この第１回目のＳＴＥＰ５の結果として生成されたツリーは、再度ＳＴＥＰ２のツリーノードの（Ｌ，ＰＬ）値のアップデートが行われ、図２（２）に示すようにノード１が最もＬ値が大きいことになる。そのため、ノード１の配下のノードすべてを対象としてＳＴＥＰ５の移動が行われることになる。この例ではたまたま、ノード１０のみがノード７の配下からノード８の配下に移動している。その場合は図２（３）に示すように最大Ｌ値が１０のツリーが構成されることになり、ツリー寿命をある程度長くできる（準理想的ツリー）構成ができあがる。
【００１５】
しかしながら、ＲａＳＭａＬａｉの場合、図３の例で示すような逆効果問題が起きることを想定しなければならない。図３はＲａＳＭａＬａｉの逆効果問題を説明するための図である。図３（１）は図２（２）の再掲である。図３（１）のツリーに図１のＳＴＥＰ５の処理を行った際に図３（２）になる確率は１／２である。つまり図３（１）の場合、最大Ｌ値を持つノードがノード１なのでノード１配下のすべてのノードに対して移動の試みが行われるが、ノード４はノード２を隣接ノードに持ち、ｂ=０．５の場合、ＰＬ（４）−ＰＬ（２）＞０．５を満たすので、移動先の対象となる。１／２の確率でノード４がノード２配下に移動した図が図３（２）であり、ツリー上の最大Ｌ値が１１から１５に上がってしまっていることがわかる。もしノード３も１／２の確率でノード２配下に移動した場合はツリー上の最大Ｌ値は１７まで上がってしまう。このように移動することによって大幅にツリー上の最大センサー負荷ノードのＬ値が大きくなってしまうことは、移動が逆効果になっていることになる。このように最大負荷センサーＬ値が大幅に大きくなってしまった場合は、対象Ｌ値を下げるための移動回数が多くなり、処理時間の増加が懸念される。
【００１６】
さらに大きな問題は、もしこのような逆効果問題がアルゴリズム終了の直前に起きた場合である。図１に示すようにアルゴリズムの終了条件として、各ノードがＮｍａｘとして選択される回数は定数ａ以下であるとされている（ＳＴＥＰ３）。もしａに近い回数Ｎｍａｘに選ばれているノード配下に逆効果問題の例で示したように、多くのノードが接続された場合は、これらのノードを他のサブツリーに移動する前にアルゴリズムが終わってしまう可能性がある。つまり、定数ａ近くまでＮｍａｘに選ばれているノード配下ノードの移動確率は（１／２）ｍとなるがｍが大きくなっている可能性があり、移動する可能性が低いのである。図３の例では、図３（１）の状態にＲａＳＭａＬａｉのアルゴリズムの終盤になったとして、たまたまノード４が（１／２）ｍの確率でノード２の配下に移動してしまったとする。そうするとノード４は（１／２）ｍ＋１の確率でしか他のサブツリーに移動しない上にノード２はａに近い回数Ｎｍａｘに選ばれているので、ＳＴＥＰ５の処理の回数も限られているのでノード２配下のノードを移動しきれずアルゴリズムが終了してしまう可能性が高くなるのである。
【００１７】
本発明は、上記の点に鑑みてなされたものであって、最短経路ツリーのネットワークの寿命を長期化することを目的とする。
【課題を解決するための手段】
【００１８】
本発明の一形態に係る経路選択装置は、
複数のセンサーノードで構成されたセンサーツリーにおいて、下位のセンサーノードからの受信データを上位のセンサーノードに送信する際の経路を選択する経路選択装置であって、
前記センサーツリーの各ノードのセンサー負荷を求め、自センサーノードとルートセンサーノードとの間の経路上に存在するセンサーノードのセンサー負荷の最大値であるセンサー経路負荷を求めるセンサー負荷・経路負荷設定部と、
前記センサーツリーの中で最もセンサー負荷が高いセンサーノードである最大センサー負荷ノードを選択し、当該最大センサー負荷ノード配下のセンサーノードを、当該最大センサー負荷ノードを頂点とするサブツリー以外のサブツリー配下に移動するセンサーノード移動部と、
を有し、
前記センサーノード移動部は、前記最大センサー負荷ノード配下のセンサーノードの移動後に当該センサーノードの移動先の親センサーノードのセンサー経路負荷が前記最大センサー負荷ノードのセンサー負荷より小さい場合に、移動できると判断することを特徴とする。
【００１９】
また、本発明の一形態に係る経路選択方法は、
複数のセンサーノードで構成されたセンサーツリーにおいて、下位のセンサーノードからの受信データを上位のセンサーノードに送信する際の経路を選択する経路選択装置における経路選択方法であって、
前記センサーツリーの各ノードのセンサー負荷を求め、自センサーノードとルートセンサーノードとの間の経路上に存在するセンサーノードのセンサー負荷の最大値であるセンサー経路負荷を求めるステップと、
前記センサーツリーの中で最もセンサー負荷が高いセンサーノードである最大センサー負荷ノードを選択し、当該最大センサー負荷ノード配下のセンサーノードを、当該最大センサー負荷ノードを頂点とするサブツリー以外のサブツリー配下に移動するステップと、
を有し、
前記移動するステップにおいて、前記最大センサー負荷ノード配下のセンサーノードの移動後に当該センサーノードの移動先の親センサーノードのセンサー経路負荷が前記最大センサー負荷ノードのセンサー負荷より小さい場合に、移動できると判断することを特徴とする。
【００２０】
また、本発明の一形態に係るプログラムは、
複数のセンサーノードで構成されたセンサーツリーにおいて、下位のセンサーノードからの受信データを上位のセンサーノードに送信する際の経路を選択する経路選択装置として、コンピュータを機能させるためのプログラムであって、当該コンピュータを、
前記センサーツリーの各ノードのセンサー負荷を求め、自センサーノードとルートセンサーノードとの間の経路上に存在するセンサーノードのセンサー負荷の最大値であるセンサー経路負荷を求めるセンサー負荷・経路負荷設定手段、及び
前記センサーツリーの中で最もセンサー負荷が高いセンサーノードである最大センサー負荷ノードを選択し、当該最大センサー負荷ノード配下のセンサーノードを、当該最大センサー負荷ノードを頂点とするサブツリー以外のサブツリー配下に移動するセンサーノード移動手段、
として機能させ、
前記センサーノード移動手段は、前記最大センサー負荷ノード配下のセンサーノードの移動後に当該センサーノードの移動先の親センサーノードのセンサー経路負荷が前記最大センサー負荷ノードのセンサー負荷より小さい場合に、移動できると判断することを特徴とする。
【発明の効果】
【００２１】
本発明によれば、最短経路ツリーのネットワークの寿命を長期化することが可能になる。
【図面の簡単な説明】
【００２２】
【図１】従来方式（ＲａＳＭａＬａｉ）のフローチャートを示す図である。
【図２】ＲａＳＭａＬａｉの準理想的なノード移動例を示す図である。
【図３】ＲａＳＭａＬａｉの逆効果問題を説明するための図である。
【図４】本発明の実施の形態における経路選択装置の機能構成例を示す図である。
【図５】本発明の実施の形態における経路選択装置の動作を示すフローチャートである。
【図６】本発明の実施の形態におけるノード移動例を示す図である。
【図７】本発明の実施の形態におけるイレギュラー移動の効果例を示す図である。
【図８】本発明の実施の形態における経路選択装置のハードウェア構成例を示す図である。
【発明を実施するための形態】
【００２３】
以下、図面に基づいて本発明の実施の形態を説明する。図４は、本発明の実施の形態における経路選択装置１００の機能構成例を示している。
【００２４】
本実施の形態では、センサーツリーを構成する各センサーノードが下位のセンサーノードからデータを受信し、当該センサーノードのデータと共に受信したデータを上位のセンサーノードに送信するサイクルを繰り返すネットワーク利用形態について説明する。このような複数のセンサーノードで構成されたセンサーツリーにおいて、経路選択装置１００は、下位のノードからの受信データを上位のノードに送信する際の経路を選択することにより、センサーツリー上のあるセンサーノードのエネルギーが枯渇するまでのデータ収集サイクル数で定義されるセンサーツリー寿命を最大にすることを目的とする。
【００２５】
本実施の形態では、ノード０をルートセンサーノードとする複数ノードからなるデータ収集ツリーの経路が生成される。ツリー上の各ノードが、ルートセンサーノードまでツリーに沿ってデータを転送するデータ収集サイクルを繰り返し、ルートセンサーノードが、収集したデータをベースステーションに定期的に送信する。
【００２６】
初期状態では、ルートセンサーノード０のみがツリーセンサーノードあり、他のセンサーは、ツリーに帰属しないセンサーを意味する浮遊センサーであるとする。また、図４に示すように、ルートセンサーノードは、各センサーのツリー上の経路を選択する経路選択装置１００を含む。すなわち、すべてのツリー構成はルートセンサーノードが決める構成としている。なお、経路選択装置１００は、必ずしもルートセンサーノードに含まれる必要はなく、例えば、ベースステーション等のルートセンサーノードに接続された装置に含まれてもよい。
【００２７】
以下、経路選択装置１００が実行する処理手順について説明する。図４に示すように、経路選択装置１００は、隣接センサー情報取得部１１０と、ルーティング要求部１２０と、ルート決定部１３０と、センサーリスト格納部１５０と、ツリー格納部１６０とで構成される。また、ルート決定部１３０は、初期最短経路ツリー作成部１３１と、（Ｌ，ＰＬ）設定部１３２と、ノード移動部１３３とを含む。
【００２８】
まず、隣接センサー情報取得部１１０は、ルートセンサーノードの隣接浮遊センサー情報を探索する。これらのセンサーはルートセンサーノードからの最短ホップ数が１なのでLevel１に属するセンサーであるとされる。これらのセンサーはセンサーリスト格納部１５０のLevel１センサーとして保持される。次にLevel１に属するセンサーは隣接センサー情報取得部１１０を通して、まだ取得されていないLevel１に隣接するセンサー情報を取得できるが、これらはLevel２に属するセンサーとして取得され、センサーリスト格納部１５０に保管される。このようにすべての浮遊センサー情報をセンサーリスト格納部１５０にLevel毎に格納することが可能となる。
【００２９】
これらのセンサーリスト内のセンサーはルート決定部１３０の初期最短経路ツリー作成部１３１で利用され、ここではランダムな最短経路ツリーが、レベル値が１離れ、且つ隣接関係にあるセンサー同士を任意にツリー上でつなげることにより作成され、作成された結果はツリー格納部１６０に格納される。（Ｌ，ＰＬ）設定部１３２はツリー構成から各ノードの負荷（Ｌ）と、自ノードとルートノードとの間の経路上に存在するノードの負荷の最大値である経路負荷（ＰＬ）を求めることが可能であり、その結果をツリー格納部１６０に格納する。ノード移動部１３３は以下の図５のフローチャートを参照して説明するアルゴリズムを実行するが、ＳＴＥＰ１０６あるいはＳＴＥＰ１１２で移動が必要と判断されてＳＴＥＰ１０７あるいはＳＴＥＰ１１３でノードが移動する度に、（Ｌ，ＰＬ）設定部１３２をＳＴＥＰ１０２で呼び出し、（Ｌ，ＰＬ）値が変化したサブツリーに対してのみ（Ｌ，ＰＬ）値の更新を行う。
【００３０】
最後に図５のアルゴリズムが終了した時点でツリートポロジーが決定するので、ルーティング要求部１２０を通して各ノードに対してルーティングの設定を行い、実際のセンサーネットワークに対してツリーを作成するように要求する。
【００３１】
次に図５のフローチャートを説明する。図５は本発明の実施の形態における経路選択装置１００の動作を示すフローチャートである。
【００３２】
ＳＴＥＰ１０１では初期最短経路ツリー作成部１３１で新規に作成された最短経路ツリー上のすべてのノードの"イレギュラー移動回数"属性＝０に設定する。ＳＴＥＰ１０２では、ツリー上のすべてのノードの（Ｌ，ＰＬ）値の更新を行った後にＮｍａｘとＮｍｉｎを求め、ＳＴＥＰ１０３で、これらのＬ値の差（Ｌｍａｘ−Ｌｍｉｎ）が規定の値ｂ以下かどうか判断する。ここで最初のＳＴＥＰ１０２では、ランダムに生成された最短経路ツリー上のすべてのノードに対して（Ｌ，ＰＬ）を設定する必要があるが、ＳＴＥＰ１０７あるいはＳＴＥＰ１１３後のノード移動後のＳＴＥＰ１０２では当該移動ノードが移動前に属していたサブツリーと移動後に属しているサブツリーを両方含む最小のサブツリー配下のみが（Ｌ，ＰＬ）更新の対象となる。ＳＴＥＰ１０３がＹｅｓの場合はアルゴリズム終了である。Ｎｏの場合はＳＴＥＰ４へ進む。
【００３３】
ＳＴＥＰ１０４では、センサーツリーの中で最もセンサー負荷が高いセンサーノードであるＮｍａｘを選択し、Ｎｍａｘ配下をすべてイレギュラー移動回数の少ない順にソートして、イレギュラー移動回数の少ないノードを優先的に移動させてイレギュラー移動回数が多いものはなるべく移動しないようにする。ＳＴＥＰ１０５ではソートされた順にＮｍａｘ配下のノードｉを選択し、ノードｉの隣接ノードの中からノードｉの親候補を選択する。この際、自レベル（ルートノードからの最短ホップ数）よりも小さいレベルの親候補配下に自身を接続させれば常に最短経路ツリーを保持することができる。これら選ばれたノードｉのすべての親候補の中から、ノードｉが移動後、移動先の親候補のＰＬ値（移動先ＰＬ）が最も小さくなる親候補を選ぶ。この移動先ＰＬについて図６（１）を用いて説明する。図６は本発明の実施の形態におけるノード移動例を示す図である。この例では、Ｎｍａｘであるノード５配下のノード７〜１０が移動対象である。ノード７の隣接ノードとしてノード４があるが、この場合Ｎｍａｘであるノード５と親候補であるノード４との共通サブツリーの頂点はノード０であるので、ノード４からノード０までのツリー上区間がノード７移動によって負荷増加影響を受ける区間であり、この区間上のノードがノード７移動後に保持するＰＬ中の最大値が移動先ＰＬとして定義される。従って、ノード７がノード４に移動するときの移動先ＰＬは、ノード７移動後における移動先ノード４から共通サブツリーの頂点であるノード０までの経路上に存在するノード４−１−０の負荷の最大値である１１となる。
【００３４】
ＳＴＥＰ１０６で、Ｎｍａｘ配下のノードｉの移動後に移動先ＰＬがＮｍａｘの負荷（Ｌｍａｘ）より小さい場合は、ＳＴＥＰ１０７で移動を行う。その結果、ＳＴＥＰ１０５において選択されたＮｍａｘ配下のノードｉは、Ｎｍａｘを頂点とするサブツリー以外のサブツリー配下のノードに移動が行われる。図６の例では移動先ＰＬがＬｍａｘより小さいので、図６（２）に示すようにノード７がノード４配下に移動させられる。ＳＴＥＰ１０８では、移動先ＰＬがＬｍａｘ以上の場合は（Ｌｍａｘ＋ｂｕｆｆｅｒ）より小さく、且つノードｉのイレギュラー移動回数が規定値ｃより小さいかどうか判断する。なお、ｂｕｆｆｅｒはあらかじめ決められた正数値である。
【００３５】
もしＳＴＥＰ１０８がＮｏの場合は、直接ＳＴＥＰ１１０に進むが、ＳＴＥＰ１０８がＹｅｓの場合はＳＴＥＰ１０９に進み、ノードｉとｉの移動先の親候補をイレギュラー移動候補集合にペアで格納する。ＳＴＥＰ１１０ではＮｍａｘ配下にまだＳＴＥＰ１０５の選択が行われていないノードが存在するかどうかを判断する。存在する場合はＳＴＥＰ１０５に戻り当該ノードをノードｉとして選択する。ＳＴＥＰ１１０がＮｏの場合、すなわち、Ｎｍａｘ配下に移動可能なノードが存在しない場合はＳＴＥＰ１１１に進み、イレギュラー移動候補集合の中から移動を試みる。ＳＴＥＰ１１１では、イレギュラー移動候補集合内で最小の移動先ＰＬ値を持つノードと親候補ペアを選択し、当該ノードを当該親候補配下に移動する。その際に当該移動ノードの"イレギュラー移動回数"属性に１を加えて、ＳＴＥＰ１０２に戻る。
【００３６】
図６は本発明の実施の形態におけるノード移動例を示す図である。図６（１）では最大センサー負荷ノードであるノード５配下のノード７が図５のＳＴＥＰ１０５で選択された場合を示している。その場合、移動先ＰＬ（４−１−０パス上の最大ＰＬ値＝ノード４のＰＬ値）がノード５の負荷であるＬｍａｘより小さいため、ノード７はノード４配下に移動する。
【００３７】
図６（２）では最大センサー負荷ノードであるノード１の配下のノード４がノード２配下には移動されることはない。理由はノード２配下に移動した場合の移動先ＰＬ（ノード２のＰＬ値）がノード１の負荷であるＬｍａｘよりも大きくなるからである。また、ノード７を移動する場合の移動先ＰＬ（ノード５のＰＬ値）がノード１の負荷より大きくなるため、ノード７も移動されない。結果としてノード３とノード１０のどちらかが移動されることになるが、ノード１０がノード８配下に移動された場合は図２（３）と同じ結果である。図６ではノード３が移動した結果を（３）で示しており、ツリー上ノードの最大Ｌ値＝９となり、これは図２の準最適解（最大Ｌ値＝１０）を上回る最適解となる。このように、提案方式では図３に示すようなＲａＳＭａＬａｉの逆効果問題が起こらずに、図２のような準最適解か図６に示すような最適解を導くことが可能になる。
【００３８】
図７に本発明の実施の形態におけるイレギュラー移動の効果例を示す。ここで、ノード１〜１３の中でノード５とノード１１は０．５の初期エネルギーを持ち、ノード２は２の初期エネルギーを持つが他のノードはすべて初期エネルギー＝１としている。図７（１）ではノード５が最大センサー負荷ノードとなっているが、配下のノード８は他のサブツリーへの隣接ノードを持たないので、移動できない。ノード１０は図５のＳＴＥＰ１０６の判断ではノード１２に移動できない。理由はノード１０の移動先ＰＬ（ノード１２のＰＬ値＝１０）が最大センサー負荷ノード５のＬ値（Ｌｍａｘ）と同じであり、小さくならないからである。しかしながらＳＴＥＰ１０８でｂｕｆｆｅｒ＝１とすると、移動先ＰＬ値はＳＴＥＰ１０８を満たす（ＹＥＳ）ことになるのでノード１０は移動先親候補であるノード１２とペアでイレギュラー移動候補集合に登録される。結果的に、ノード５配下にはノード８とノード１０しかないので、イレギュラー移動候補集合には、他のペアは入らない。ＳＴＥＰ１１１では当該ぺア：（ノード１０，ノード１２）が選択され、図７（２）のようにノード１０がノード１２の配下に接続される。
【００３９】
図７（２）に示されるように、ツリー上の最大Ｌ値は１０であり、まったく図７（１）から変わっていないので、一見この移動の効果がないようだが、必ずしもそうではない。図７（２）では最大センサー負荷ノードはノード１１であるので、ノード１１配下で移動が模索される。ノード１２はノード１１の配下であり、その移動先の親候補であるノード１３の移動先ＰＬ値（ノード１３のＰＬ値）は７．５となり、ノード１１のＬ値である１０よりも小さいため移動される。移動結果は図７（３）に示されるが、ツリー上のノードの最大Ｌ値はノード１の９となり図７（２）の１０から下げられていることがわかる。
【００４０】
このようにある程度ｂｕｆｆｅｒ値をとって移動効果が１つの移動で得られなくても、複数のサブツリーを経由した後に効果がでる場合があるために図５のＳＴＥＰ１０８からＳＴＥＰ１１１までのイレギュラー移動の処理は必要となる。イレギュラー移動により図３で示すような逆効果問題が生じる可能性があるが、この問題はｂｕｆｆｅｒの値を調整することにより回避できる。例えば図３（１）と図３（２）では、Ｌｍａｘと移動先ＰＬ間の差が４であり、ｂｕｆｆｅｒを３以下に設定しておけばこのような大きな逆効果問題は避けられる。また、本実施の形態では、ノードの移動は図５のＳＴＥＰ１０５で示すように１ノードに限られるので、図３（１）から図３（３）のように一度に２つのノード配下が移動することはありえない。これらのことから逆効果問題は必要最小限に抑えられる。
【００４１】
また、一つのノードが無限にイレギュラー移動を繰り返すと２つの異なるサブツリー間での当該ノードの無限往復が起きる可能性があるので一つのノードのイレギュラー移動回数はｃ回以内と定めｃ回イレギュラー移動したノードはＳＴＥＰ１０８でイレギュラー移動候補集合に入れない判断がとられている。ＳＴＥＰ１０４でイレギュラー移動回数が大きいものをソートした後で他のノードよりＳＴＥＰ１０５でなるべく後に選ばせているのは、イレギュラー移動したものが選ばれやすくすると、イレギュラー移動したものが、すぐに移動元に移動してしまい、サブツリー間で移動の繰り返しが起きてしまうのを防ぐためである。例えば図７（１）から図７（２）のようにイレギュラー移動してきたノード１０がＳＴＥＰ１０５で早く選ばれてしまうと、再度ノード８の配下に接続してしまう可能性が高くなる。また各ノードは限られた回数（≦ｃ）以内しかイレギュラー移動できないので、各ノードの移動できる寿命を最大化する目的もある。 
＜本発明の実施の形態の効果＞
本発明の実施の形態における経路選択装置は、あるノードをサブツリー間で移動することによって、移動先のサブツリー上でセンサー負荷が最大センサー負荷よりも小さくなることを確認した後に移動するので、イレギュラー移動をしない場合はＲａＳＭａＬａｉで起きたような逆効果問題はおきない。そのため、ＲａＳＭａＬａｉよりもアルゴリズムの収束までの移動回数が少なくなる可能性が高く、ＲａＳＭａＬａｉで起きる可能性がある、アルゴリズム収束直前での逆効果問題発生によるツリー上の最大センサー負荷ノードのＬ値の増大を回復できない問題も起きない。
【００４２】
またツリー上の（Ｌ，ＰＬ）の値を更新する際も最大センサー負荷ノードとノード移動先の親ノードを含む共通サブツリーに属するノードの値のみを更新すればよいので、値の更新の時間は、ＲａＳＭａＬａｉのようにツリー上すべてのノードの（Ｌ，ＰＬ）値を更新する必要がある場合に比較して短くなる。この例を図７（２）を用いて説明する。ここではノード１０がノード８配下からノード１２配下に移動している。ここで図７（１）での最大負荷センサーノードはノード５であり、ノード５と移動先親であるノード１２を配下に持つ最小のサブツリーはノード２を頂点にするサブツリーである。この場合、当該サブツリー以外のノードの（Ｌ，ＰＬ）値には変化がないので、ノード２配下のサブツリーのみの（Ｌ，ＰＬ）値のみを更新すればよいことになる。ＲａＳＭａＬａｉでは常にノード０配下のツリーに属するすべてのノードの（Ｌ，ＰＬ）値を更新する必要がある。
【００４３】
また、イレギュラー移動候補を用いることにより、複数のサブツリーを経由することによってはじめてツリー全体での最大センサー負荷ノードのＬ値を低くすることが可能な場合にそのサブツリー間の経由を実現することができるようになる。
【００４４】
＜ハードウェア構成例＞
図８に、本発明の実施の形態における経路選択装置１００のハードウェア構成例を示す。経路選択装置１００は、ＣＰＵ（Central Processing Unit）２０１等のプロセッサ、ＲＡＭ（Random Access Memory）やＲＯＭ（Read Only Memory）等のメモリ装置２０２、ハードディスク等の記憶装置２０３等から構成されたコンピュータでもよい。例えば、各装置の機能および処理は、記憶装置２０３又はメモリ装置２０２に格納されているデータやプログラムをＣＰＵ２０１が実行することによって実現される。また、各装置に必要な情報は、入出力インタフェース装置２０４から入力され、各装置において求められた結果は、入出力インタフェース装置２０４から出力されてもよい。
【００４５】
＜補足＞
説明の便宜上、本発明の実施の形態に係る経路選択装置は機能的なブロック図を用いて説明しているが、本発明の実施の形態に係る経路選択装置は、ハードウェア、ソフトウェア又はそれらの組み合わせで実現されてもよい。例えば、本発明の実施の形態は、コンピュータに対して本発明の実施の形態に係る経路選択装置の機能を実現させるプログラム、コンピュータに対して本発明の実施の形態に係る方法の各手順を実行させるプログラム等により、実現されてもよい。また、各機能部が必要に応じて組み合わせて使用されてもよい。また、本発明の実施の形態に係る方法は、実施の形態に示す順序と異なる順序で実施されてもよい。
【００４６】
以上、最短経路ツリーのネットワークの寿命を長期化するための手法について説明したが、本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々の変更・応用が可能である。
【符号の説明】
【００４７】
１００  経路選択装置
１１０  隣接センサー情報取得部
１２０  ルーティング要求部
１３０  ルート決定部
１３１  初期最短経路ツリー作成部
１３２  （Ｌ，ＰＬ）設定部
１３３  ノード移動部
１５０  センサーリスト格納部
１６０  ツリー格納部
２０１  ＣＰＵ
２０２  メモリ装置
２０３  記憶装置
２０４  入出力インタフェース装置
【図１】
2018023013.tif 000003
【図２】
2018023013.tif 000004
【図３】
2018023013.tif 000005
【図４】
2018023013.tif 000006
【図５】
2018023013.tif 000007
【図６】
2018023013.tif 000008
【図７】
2018023013.tif 000009
【図８】
2018023013.tif 000010