(57)【要約】【課題】センサーツリー上のノードのエネルギー使用量を削減する。【解決手段】複数のノードで構成されたセンサーツリーにおいて、下位のノードからのセンサーレポートをパケットに格納して上位のノードに送信する際の経路を選択する経路選択装置は、前記センサーツリーの中で配下に子ノードを保持する第１のノードを選択し、当該第１のノードを頂点とするサブツリーの配下の第２のノードを、当該サブツリーに属さない第３のノードの配下に移動したときに、前記センサーツリーにおいて送受信されるパケット総数が減る場合、前記センサーツリーにおいて前記第２のノードを前記第３のノードの配下に移動するノード移動部を有する。【選択図】図５
2019140497.tif 000002
【特許請求の範囲】
【請求項１】
複数のセンサーノードを含む複数のノードで構成されたセンサーツリーにおいて、下位のノードからのセンサーレポートをパケットに格納して上位のノードに送信する際の経路を選択する経路選択装置であって、
前記センサーツリーの中で配下に子ノードを保持する第１のノードを選択し、当該第１のノードを頂点とするサブツリーの配下の第２のノードを、当該サブツリーに属さない第３のノードの配下に移動したときに、前記センサーツリーにおいて送受信されるパケット総数が減る場合、前記センサーツリーにおいて前記第２のノードを前記第３のノードの配下に移動するノード移動部
を有する経路選択装置。
【請求項２】
前記ノード移動部は、ノードが作成するセンサーレポート数と当該ノードが転送する下位ノードの合計センサーレポート数との和を、センサーレポートをパケットに集約するデータ集約レートで割った剰余が１以上のノードを対象として、前記第１のノードを選択する。請求項１に記載の経路選択装置。
【請求項３】
前記ノード移動部は、前記第１のノードを頂点とするサブツリーの配下のすべてのノードに対して、ノードが移動したときのパケット総数の変化を求め、パケット総数が最も減少するノードを移動する、請求項１又は２に記載の経路選択装置。
【請求項４】
前記ノード移動部は、前記センサーツリーにおいてノードの移動を繰り返し行う場合、ノードがサブツリーの頂点として選択される回数に上限を設定する、請求項１乃至３のうちいずれか１項に記載の経路選択装置。
【請求項５】
前記ノード移動部は、前記センサーツリーにおいてノードの移動を繰り返し行う場合、ノードが移動する回数に上限を設定する、請求項１乃至４のうちいずれか１項に記載の経路選択装置。
【請求項６】
複数のセンサーノードを含む複数のノードで構成されたセンサーツリーにおいて、下位のノードからのセンサーレポートをパケットに格納して上位のノードに送信する際の経路を選択する経路選択装置における経路選択方法であって、
前記センサーツリーの中で配下に子ノードを保持する第１のノードを選択し、当該第１のノードを頂点とするサブツリーの配下の第２のノードを、当該サブツリーに属さない第３のノードの配下に移動したときに、前記センサーツリーにおいて送受信されるパケット総数が減る場合、前記センサーツリーにおいて前記第２のノードを前記第３のノードの配下に移動するステップ
を有する経路選択方法。
【請求項７】
請求項１乃至５のうちいずれか１項に記載の経路選択装置の各部としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のセンサーノードを含む複数のノードで構成されたセンサーツリーにおける経路選択装置、経路選択方法及びプログラムに関する。
【背景技術】
【０００２】
特定の場所にセンサーを配置し、対象地の湿度、温度、気体濃度等をセンサーノードによって計測し、そのセンサーレポートをデータ収集ツリーで収集し、ルートセンサーノードからベースステーションに通知することによって分析を行う、あるいはガスメータ、電気メータなどの情報を定期的にデータ収集ツリーで収集する、ことを可能にする技術として、ＲＰＬ（Routing Protocol for Low-power and Lossy Networks）プロトコルが標準化されている（例えば、非特許文献１参照）。データ収集ツリーは、ツリー状に構成されたセンサーノードと、センサーノード間に位置してセンサーレポートを中継する役割を果たすリレーノードとの集合であり、センサーツリーとも呼ばれる。
【０００３】
データ収集ツリー上の各センサーノードは収集サイクル毎に当該センサーからの必要数のセンサーレポートを、ツリー上で当該ノードのすべての下位センサーノードからのセンサーレポートと一緒にパケットにまとめてツリーの上位センサーノードに送信する。１パケットに格納できるセンサーレポート数には上限（データ集約レート：S）があるため、各センサーノード／リレーノードが送信するパケット数は、当該センサーノード／リレーノードが送信する必要があるセンサーレポート数とSから導かれる。
【０００４】
またセンサーノード／リレーノードi（ノードi）の１データ収集サイクルにおけるエネルギー使用量：E(i)を以下の式１によって表すことができる。
E(i)=ETx×TN(i)+ERx×RN(i)      （式１）
式１において、ETxは１センサーパケットの送信に必要とされるエネルギー量、ERxは１センサーパケットの受信に必要とされるエネルギー量、TN(i)はノードiが１データ収集サイクルに必要な送信パケット数、RN(i)はノードiが１データ収集サイクルに必要な受信パケット数である。ノードi自身が作成する１データ収集サイクルのセンサーレポート数をd(i)、ノードiが転送するツリー上で下位のノードすべてのセンサーレポート数の合計をd(below_i)とするとTN(i)は以下の式２及び式３で表される。
TN(i)=(d(below_i)+d(i))/S,  ((d(below_i)+d(i))%S=0の場合)      （式２）
TN(i)=(d(below_i)+d(i))/S+1,  ((d(below_i)+d(i))%S≠0の場合)      （式３）
式２及び３において、"/"は割り算の商を示し、"%"は割り算の剰余を示す。式２及び式３から剰余が０以外のときには送受信されるパケットに空きがあることが分かる。そのため、各リンクにおけるパケットの空きを少なくすることもパケット数削減に有効な手段であると考えられる。
【０００５】
ツリーT全体の１データ収集サイクルにおけるエネルギー使用量合計：Etreeは、すべてのツリーノードの１データ収集サイクルのエネルギー使用量を足し合わせたものなので、以下の式４によって表すことができる。
Etree=Σi∈TE(i)      （式４）
特に屋内に設置されるセンサーでは、各センサーが使用する電力はACアダプターから供給されるが、その場合センサーに提供される電力総和をなるべく少なくすることが電力削減の目的で必要となる。そのため式４で表されるEtreeを最小にする方式が検討されている（非特許文献２参照）。非特許文献２では２つの問題に対処している。一つはMECAT（Minimum Energy Cost Aggregation Tree）問題であり、この問題はセンサーレポートを発生せずツリー上の下位センサーノードのセンサーレポートだけを転送する目的で使われるリレーノードが存在しないWSN（Wireless Sensor Network）を対象とするツリーノード（ツリー上のノード）が利用するエネルギー総和の最小化問題である。もう一つはMECAT-RN（MECAT with Relay Node）問題であり、この問題はWSNにおいてリレーノードを含めてのすべてのツリーノードが使用するエネルギー総和の最小化問題である。
【０００６】
上記の式１で、ETxとERxは固定値であるため、リレーノードが存在しないWSN及びリレーノードを含むWSNともに、ツリー上のすべてのリンク（ツリーノードがセンサーレポート転送のために使う隣接関係）上で送受信されるパケット数総和を最小にすることがMECAT問題及びMECAT-RN問題と同値である。つまりMECAT問題及びMECAT-RN問題は次式５と同値であり、ETxとERxは固定値なので、式６と同値である。
【０００７】
【数１】
2019140497.tif 000003
【０００８】
【数２】
2019140497.tif 000004
式５及び式６においてGは当該WSNを示し、T(G)は、G上のツリー集合を示す。また、eはツリー上のリンクを示し、z(e)はe上で１データ収集サイクルで送信されるセンサーレポート数を示すので、もしe上の送信ノードをiとした場合はz(e)=d(below_i)+d(i)が成り立つ。
【０００９】
図１にデータ収集ツリー上のリンクのパケット数の例を示す。ここで、データ集約レートSは５としている。またノード０はルートノードを示し、Nで始まる○のノードはセンサーノード、▲のノードはリレーノードを示している。各ノード内の括弧内の数字は当該ノードから発生するセンサーレポート数：d(i)を示し、その横の下線の数字はd(below_i)を示している。ノード間の実線→はツリー上のリンクを示し→の方向はパケットの送信方向を示している。ツリー上のリンク横の数字は１データ収集サイクルにおいて当該リンク上で送信されるパケット数を示している。
【先行技術文献】
【非特許文献】
【００１０】
【非特許文献１】T. Winter, et al., "RPL: IPv6 Routing Protocol for Low-power and Lossy Networks", RFC6550, IETF, March 2012.
【非特許文献２】Tung-Wei Kuo, Kate Ching-Ju Lin, and Ming-Jer Tsai, "On the Construction of Data Aggregation Tree with Minimum Energy Cost in Wireless Sensor Networks: NP-Completeness and Approximation Algorithms", IEEE Transactions on Computers, vol. 65, issue 10, pp. 3109-3121, 2016.
【非特許文献３】S. Khuller, B. Raghavachari, and N. Young, "Balancing minimum spanning trees and shortest-path trees", Algorithmica, vol. 14, pp. 305-321, 1995.
【発明の概要】
【発明が解決しようとする課題】
【００１１】
非特許文献２は、ランダムに作成した最短経路ツリーがMECAT問題には有効であり、最短経路ツリーでは最適解（すべてのツリーノードが利用する総エネルギー消費の最小値）の２倍以内のセンサーの総エネルギー消費で抑えられていることを証明している。ここで、最短経路ツリーとはツリー上の各センサーノードがルートノードから最小ホップ数を取るツリーのことである。例えば、図２において（１）は、WSN上でのノード間の隣接関係を点線で示している。ここで隣接関係とは、通信（接続）が可能な関係をいい、例えば、一方のノードが、他方のノードからの電波信号（例えば、ＲＳＳＩ（Received Signal Strength Indicator））の到達範囲内に有る関係をいう。なお、各ノードの横の括弧内数字は当該ノードが１データ収集サイクルで報告するセンサーレポート数である。このWSN上で作成されたセンサーツリー例が（２）〜（４）で示されている。
【００１２】
（２）は最短経路ツリーの一例であり、ツリー上のノードの上下関係（リンク）は実線→で示されており、この上下関係を用いて、センサーレポートがツリーに沿ってルートノードであるノード０まで伝達される。（２）に示すようにツリー上のすべてのノードはノード０までの最小ホップ経路上にある。（３）も最短経路ツリー例であり、（２）以外にも最短経路ツリーは複数存在することがわかる。（４）は最短経路ツリーではないツリー例を示している。この例では、ノード５からノード０までのツリー上のホップ数が３であるが、最小ホップ数は２であるので、最短経路ツリーではない。
【００１３】
非特許文献２では、各ノードが報告するセンサーレポート数に関わらず、最短経路ツリーの場合は式６で示されるセンサーツリーの総エネルギーが最適解（最小エネルギー）の２倍以内に抑えられることを証明している。
【００１４】
また、非特許文献２ではMECAT-RN問題についてはLAST（Light Approximate Shortest-path Tree）アルゴリズム（非特許文献３参照）を適用することが有効であることを示している。LASTアルゴリズムにはパラメータ：α,βがあり、(α,β)-LASTで作成されたツリーでは、ツリー上の各ノードでルートノードからの距離がルートノードからの最短経路のα倍以内、ツリー全体のコスト（ツリーリンクコストの総和）がMST（minimum spanning tree）のツリーコストのβ倍以内であることが保証される。非特許文献２ではリレーノードを含むWSN上で、(3,2)-LASTを適用して作成したツリーは最適解（最小エネルギーツリー）の７倍以内の総エネルギー量に抑えられることを証明している。
【００１５】
図３及び図４に(3,2)-LASTのMECAT-RN問題への適用例を示す。図３（１）は、リレーノード（RN：▲）を含むWSNを示す。リレーノードは、隣接関係のないセンサーノード間を中継する役割を果たし、リレーノード自体はセンサーレポートをルートノード０に送信しないことが特徴である。まず（２）でリレーノードを含まないセンサーノード間の論理リンクを作成する。論理リンクはリレーノードを除いたセンサーノード間の繋がりを示している。この際、各論理リンクコストはセンサーノード間のリレーノードを含めた最小ホップ数である。（２）で論理リンクコストは各論理リンクの横に記されている数字であるが、数字が記されていないリンクはすべてリンクコスト＝３である。（３）及び（４）は(3,2)-LASTアルゴリズムの適用であり、まず（３）で（２）のネットワークでMSTを作成する。MSTはすべてのノード（センサーノード０〜５）にまたがるツリーを構成する論理リンクコスト和が最小のツリーであり、Primのアルゴリズム等が用いられる。
【００１６】
(3,2)-LASTの特徴である（４）では、MST上の各ノードでの最短経路コストの比較が行われ、もしMST上の経路＞（３×ルートノードからの最短経路）の条件を満たす場合はルートノードからの最短経路にMST経路が置き換えられる。この例ではMST上のノード５とノード２までの経路が最短経路に置き換えられていることがわかる。（５）では（４）での(3,2)-LASTアルゴリズムの結果作成されたツリーをリレーノードを含めて展開した結果を示している。もし（５）の結果でノード０からの経路が、あるノードに対して複数存在する場合は、その内の最短経路を選択するが、図３の例では各ノードで経路が一意に定まる。
【００１７】
図４では、リレーノードに分解した結果で一つのノードに対して複数の経路が出る場合の対処法を示す。この例でも同様に、（２）でリレーノードを含まないセンサーノード間の論理リンクを作成する。（２）で論理リンクコストは各論理リンクの横に記されている数字であるが、数字が記されていないリンクはすべてリンクコスト＝２である。（３）で（２）で設定した論理リンクを基にMSTを作成する。この例ではMST上の経路＞（３×ルートノードからの最短経路）の条件を満たすノードが存在しないので、（３）の結果をそのままリレーノードを含めて（４）で展開している。しかし、ノード１〜４は、ルートノード０までの経路が２つあることが判る。その場合は、ノード１から順に最短経路を選択する。ノード１からの最短経路はリレーノード（ｒ１）を介するノードなのでノード１とノードｒ２の間のリンクは削除される。その結果、各ノードからノード０までの経路が一意に定まり（５）の最終ツリーが生成される。
【００１８】
従来方式では、MECAT問題では最適解の２倍以内、MECAT-RN問題では最適解の７倍以内のエネルギー使用量が上限になることが非特許文献２で証明されているが、逆に最大使用エネルギーがMECAT問題では最大で２倍に増え、MECAT-RN問題では最大で７倍に増えることが懸念される。これらの最適解からの使用エネルギーの増分を減らす方式は提案されていない。
【００１９】
また従来方式では、MECAT問題及びMECAT-RN問題共に、各センサーノードが送信するセンサーレポート数：(d(below_i)+d(i))に応じてツリーの構成を変えることをしていない。
【００２０】
本発明は、上記の点に鑑みてなされたものであって、センサーツリーのノードを移動してセンサーツリーの構成を変えることにより、センサーツリー上のノードのエネルギー使用量を削減することを目的とする。
【課題を解決するための手段】
【００２１】
本発明の一形態に係る経路選択装置は、
複数のセンサーノードを含む複数のノードで構成されたセンサーツリーにおいて、下位のノードからのセンサーレポートをパケットに格納して上位のノードに送信する際の経路を選択する経路選択装置であって、
前記センサーツリーの中で配下に子ノードを保持する第１のノードを選択し、当該第１のノードを頂点とするサブツリーの配下の第２のノードを、当該サブツリーに属さない第３のノードの配下に移動したときに、前記センサーツリーにおいて送受信されるパケット総数が減る場合、前記センサーツリーにおいて前記第２のノードを前記第３のノードの配下に移動するノード移動部
を有することを特徴とする。
【００２２】
また、本発明の一形態に係る経路選択方法は、
複数のセンサーノードを含む複数のノードで構成されたセンサーツリーにおいて、下位のノードからのセンサーレポートをパケットに格納して上位のノードに送信する際の経路を選択する経路選択装置における経路選択方法であって、
前記センサーツリーの中で配下に子ノードを保持する第１のノードを選択し、当該第１のノードを頂点とするサブツリーの配下の第２のノードを、当該サブツリーに属さない第３のノードの配下に移動したときに、前記センサーツリーにおいて送受信されるパケット総数が減る場合、前記センサーツリーにおいて前記第２のノードを前記第３のノードの配下に移動するステップ
を有することを特徴とする。
【００２３】
また、本発明の一形態に係るプログラムは、
上記の経路選択装置の各部としてコンピュータを機能させることを特徴とする。
【発明の効果】
【００２４】
本発明によれば、センサーツリーのノードを移動してセンサーツリーの構成を変えることにより、センサーツリー上のノードのエネルギー使用量を削減することが可能になる。
【図面の簡単な説明】
【００２５】
【図１】データ収集ツリー上のリンクのパケット数の例を示す図である。
【図２】従来方式においてMECAT問題に適用される最短経路ツリーを説明するための図である。
【図３】従来方式における(3,2)-LASTアルゴリズムのMECAT-RN問題への適用例（その１）を示す図である。
【図４】従来方式における(3,2)-LASTアルゴリズムのMECAT-RN問題への適用例（その２）を示す図である。
【図５】本発明の実施の形態における経路選択装置の機能構成例を示す図である。
【図６】本発明の実施の形態における経路選択装置の動作を示すフローチャートである。
【図７】MECAT問題に適用したときのノード移動例である。
【図８】MECAT-RN問題に適用したときのノード移動例である。
【図９】本発明の実施の形態によるエネルギー使用量の削減効果を示す図である。
【図１０】本発明の実施の形態による処理負荷の評価結果を示す図である。
【図１１】頂点選択回数及び移動回数に上限を設定したときの評価結果を示す図である。
【図１２】本発明の実施の形態における経路選択装置のハードウェア構成例を示す図である。
【発明を実施するための形態】
【００２６】
以下、図面に基づいて本発明の実施の形態を説明する。図５は、本発明の実施の形態における経路選択装置１００の機能構成例を示している。
【００２７】
本実施の形態では、複数のノード（センサーノード／リレーノード）で構成されたセンサーツリーにおいて、下位のノードからのセンサーレポートをパケットに格納して上位のノードに送信するデータ収集サイクルを繰り返すネットワーク利用形態について説明する。本実施の形態は、リレーノードが存在しないWSNにも適用可能であり、リレーノードを含むWSNにも適用可能である。
【００２８】
上記のように、リレーノードが存在しないWSNを対象としたMECAT問題では、エネルギー使用量が最適解の２倍まで増える可能性があり、リレーノードを含むWSNを対象としたMECAT-RN問題では、エネルギー使用量が７倍まで増える可能性がある。一方、図１の例でもわかるように各ノードのレポートサイズには違いがあり、より大きなレポートサイズを持つノードはなるべくルートノードまでのツリー上のリンク数をより少なくした方がエネルギーの節約になる。また、(d(below_i)+d(i))%Sの剰余が０以外のときは送受信されるパケットに空きがあるので、各パケットに収容できるセンサーレポート数Sがなるべく埋まるようにした方がエネルギーの節約になる。経路選択装置１００は、このような観点でセンサーツリーのノードを移動し、エネルギー使用量を削減できる経路を選択する。
【００２９】
図５に示すように、経路選択装置１００は、ノード情報取得部１１０と、ルーティング要求部１２０と、ルート決定部１３０と、WSN格納部１４０と、ツリー格納部１５０とで構成される。また、ルート決定部１３０は、WSN認識部１３１と、初期ツリー作成部１３２と、センサーレポート数計算部１３３と、ノード移動部１３４とを含む。この例では経路選択装置１００はルートノード（０）に含まれるが、経路選択装置１００は必ずしもルートノードに含まれる必要はなく、例えば、いずれかのセンサーノード／ルートに含まれてもよく、ベースステーション等のルートノードに接続された装置に含まれてもよい。
【００３０】
ノード情報取得部１１０は、ルートノードに隣接しているノードの情報を取得し、それらのノードに隣接しているノードの情報を取得する。同様にしてノードの情報の取得を繰り返し、その結果、ルートノードの所属しているWSNに所属するすべてのノードの隣接関係を取得することができる。
【００３１】
ルート決定部１３０内のWSN認識部１３１は、ノードの隣接関係からWSNの構成を認識することができ、その結果としてWSN構成をWSN格納部１４０に格納する。
【００３２】
初期ツリー作成部１３２は、初期ツリーを作成する。初期ツリーを作成するために、MECAT問題では最短経路ツリー、MECAT-RN問題では(3,2)-LASTアルゴリズムを使うことが１例として考えられる。このようにして作成された初期ツリーはツリー格納部１５０に格納される。
【００３３】
センサーレポート数計算部１３３は、各ノードiが転送する下位ノードの合計センサーレポート数d(below_i)を求める。
【００３４】
ノード移動部１３４は、図６を参照して説明するように、センサーツリーにおいて送受信されるパケット総数が減るように、センサーツリーのノードを移動する。パケット総数は、ノードiが作成するセンサーレポート数d(i)と、ノードiが転送する下位ノードの合計センサーレポート数d(below_i)と、センサーレポートをパケットに格納するときのデータ集約レートSから求められる。初期ツリー上のノードを移動することによりパケット総数が減り、その結果、初期ツリーよりもツリー上のノードの総エネルギー消費量を抑えたツリーが作成できた場合、ノード移動部１３４は、ノードを移動した後のツリーをツリー格納部１５０に格納する。
【００３５】
最終的に生成されたツリー構成は、ルーティング要求部１２０から各ノードに対してルーティングの設定を行うことで、実際のWSN上でツリーに反映される。
【００３６】
次に図６のフローチャートを説明する。図６は本発明の実施の形態における経路選択装置１００の動作を示すフローチャートである。
【００３７】
ステップS101は、最初は初期ツリー作成部１３２が初期ツリーを作成するプロセスである。例えば、MECAT問題であれば最短経路ツリー、MECAT-RN問題であれば(3,2)-LAST等の既存の方式で初期ツリーが作成される。その後は、一つのノードがあるサブツリーから他のサブツリーに移動することが以下のステップS105で決まった場合は、そのノードが移動した後のツリーをノード移動部１３４が作成するプロセスである。センサーレポート数計算部１３３は、初期ツリーに対して、各ノードiが作成するレポート数d(i)と、各ノードiが転送する下位ノードの合計センサーレポート数d(below_i)を設定する。また、ノード移動後のツリーに対して、各ノードiが転送する下位ノードの合計センサーレポート数d(below_i)に変化があった場合に再設定を行う。
【００３８】
以下のステップS102〜ステップS105はノード移動部１３４が実行するプロセスである。
【００３９】
ステップS102はステップS101で生成されたツリーの中で移動対象サブツリーの頂点ノードを決定する。このときの条件としては、頂点ノードがツリーのリーフノードではなく、少なくとも１つの子ノードを持つことである。また、ステップS101でのツリー生成後、ステップS102〜S105のループでまだ選択されていないノードを選択する。
【００４０】
ステップS103はステップS102でサブツリーの頂点ノードが選択できたかどうか判断する。もし選択できない場合（No）は、その時点までで作成されているツリーが最終出力ツリーとなり、処理が終了する。もしサブツリーの頂点ノードが選択できた場合はステップS104の処理に移る。
【００４１】
ステップS104では当該サブツリーの頂点ノードの配下のノード（頂点ノードは含まない）で、移動によってツリー上で送受信されるパケット総数が減るノードが存在するかどうか判断する。このときの条件としては、移動先のノードが当該サブツリーに属さないことである。
【００４２】
ステップS105では、ステップS104で移動によるパケット削減効果があると判断されたノードが存在する場合（Yes）は、ステップS101の処理に移り移動先のノードへの移動を行い、移動後のツリーを作成する。もし当該サブツリー配下で移動によるパケット削減効果がないと判断された場合（No）はステップS102に移り他のサブツリーの頂点ノードを探すことになる。
【００４３】
＜MECAT問題への適用例＞
図７に本実施の形態をMECAT問題に適用したときのノード移動例を示す。この例では、図７（１）のように最短経路ツリーがすでに形成されている。図７において各ツリーノードの横に記されている（a,b）に関して、aはノードi自身が作成する１データ収集サイクルのセンサーレポート数：d(i)の値であり、bはノードiが転送する下位ノードすべてのセンサーレポート数の合計：d(below_i)である。また、各リンク横に記されている数字は当該リンクで送信されるパケット数を示しており、データ集約レートSは５である。
【００４４】
この例ではノード５を頂点とするサブツリーの配下のノード（ノード７〜ノード１０）の中でノード７を移動する例を示している。ノード７は、リンク（７−５）以外に４つの隣接関係を持つノードがある（ノード３、ノード４、ノード８、ノード９）。ただし、ノード８、ノード９は移動先の対象外となる。理由はノード８、ノード９がノード５を頂点とするサブツリーに属しており、移動してもノード５の配下のノードが送信するセンサーレポート数の合計：d(below_5)に変化がないからである。そのため、ノード７をノード３の配下に移動した場合とノード４の配下に移動した場合のツリー上のパケット総数を比較し、パケット総数がより少なくなるノードの配下への移動を行う。
【００４５】
まず、ノード７をノード３の配下に移動した場合はリンク（５−２）、リンク（２−０）のそれぞれで、パケット数が１ずつ減ることがわかる。これはノード５がノード２に送信するパケット数が、式２及び式３の式に基づき、２から１に減り、ノード２がノード０に送信するパケット数が３から２に減るためである。またノード７がノード３の配下に移動した場合はノード３がノード１に送信するパケット数が１増加し２になり、ノード１がノード０に送信するパケット数には２のまま変化がない。そのため、パケット総数の減少は１である。
【００４６】
反面ノード７をノード４の配下に移動した結果は図７（２）に示されている。リンク（５−２）、リンク（２−０）はノード３の配下に移動した場合と同様にパケット数が１ずつ減っていることがわかる。しかし、リンク（３−１）、リンク（１−０）共に送信パケット数にノード７の移動前後で変化がないことがわかる。そのため、この移動によるパケット総数の減少は２になり、ノード３の配下に移動した場合の減少数：１よりも減少数が大きく、ノード７はノード４の配下に移動することになる。このように、あるノードが複数の隣接ノードを持つ場合で、いずれの隣接ノードに移動してもパケット総数が減る場合は、より大きくパケット総数が減る隣接ノードの配下に移動する。図７の移動例で示されるように、パケット総数の減少数の判断はノード５と移動先の親（ノード４）が共通に持つ最も近い祖先（ノード０）までの経路のみを調べればよいことになる。つまり、（５−２−０）、（４−１−０）の２つの経路のみがこの移動によってパケット数が変わる区間なのである。この例ではたまたまルートノード０が共通祖先になっているが、最も近い共通祖先はルートノード以外の場合もある。
【００４７】
一度このようにノードを移動した場合は、次は図７（２）のツリー上であるサブツリーの頂点ノードを選択して、そのサブツリーでパケット総数が減る移動がある場合は再度移動を行い、移動によるパケット総数の減少が存在しないツリーができるまで繰り返す。ただし、（５−２−０）、（４−１−０）の経路上のノードのように、移動によりd(below_i)の値が変わったノードについては図７（２）に示すように、移動の度にその値を新しい値に更新する。
【００４８】
＜変形例＞
なお、図７（１）のノード５のように、サブツリーの頂点ノードとして選択されるノードiは(d(below_i)+d(i))%S≠0のように(d(below_i)+d(i))をデータ集約レートSで割った剰余が０より大きいノードとしてもよい（すなわち、剰余が１以上である）。この理由は、通常当該剰余が０の場合はパケットの収容率が高いため、配下のノードを移動しても効果が少ないためである。また、このような条件を作ることにより、移動対象ノード数が減るため処理時間を短くできる可能性がある。つまり図６のステップS102〜S105のルーチン数を減らすことが可能である。
【００４９】
また、選択されたノード配下のすべてのノードに対して、ノードが移動したときのパケット総数の変化を求めて、パケット総数が最も減少するノードの移動を実行してもよい。図７の例ではノード７の移動だけを調べているが、ノード５の配下のサブツリーには７から１０までのノードがあるので、すべてのノードの移動可能性を調べ、もし移動した場合のパケット減少数が３以上になる場合は、ノード７ではなく他のノードを移動することとする。この手法はツリーの大きな構成変更をしばしばもたらし、その変更により、最終的に作成されるツリー上で送受信されるパケット総数が大きく減る可能性がある。ただし、図６のステップS104の処理負荷が大きくなる可能性もある。
【００５０】
また、図７におけるノード５のようなノードがサブツリーの頂点として選択される回数に上限を設定してもよい。例えば当該上限を５回とした場合はすでにノード５が５回選択された場合、ノード５はサブツリーの頂点ノードとして選択されない。この手段により特定のノードがサブツリーの頂点として過度に選択されることを防ぐとともに、処理時間を削減する効果がある。つまり、図６のステップS102〜S105のルーチン数を減らすことが可能である。
【００５１】
また、各ノードの移動回数に上限を設定してもよい。例えば、当該上限回数を５回として、すでにノード７が５回移動している場合、ノード７は移動の対象外となる。この手段により特定のノードに移動が集中することを避け、処理時間を削減できる効果がある。つまり、図６のステップS104の処理負荷を軽減できる効果がある。
【００５２】
＜MECAT-RN問題への適用例＞
図８に本実施の形態をMECAT-RN問題に適用したときのノード移動例を示す。この例では、図８（１）のように(3,2)-LASTアルゴリズムによって、すでにリレーノードを含めたツリーが構成されている。図８において、R1〜R5はリレーノードを示し、他のノード０〜５はセンサーノードを示している。実線はツリーノード間の隣接関係を示し、センサーレポートはこの実線に沿って下位ノードから上位ノードに転送され、最終的にルートノード０に送付される。点線はツリーに使用されていないノード間の隣接関係を示す。またリンクの横の数字はそのリンク上で送信されるパケット数を示しており、データ集約レートSは５である。
【００５３】
図８（１）では、ノード１がサブツリーの頂点ノードとして選択され、当該サブツリーでノード１の配下のノード（ノードR2、ノード３、ノードR3、ノード４）の中で最も移動した場合のツリー上のパケット総数の減少数が大きいものが移動される。この場合、ノード１の配下のノードの中で当該サブツリー以外のノードに対して隣接関係を持つノードはノード３、ノードR3、ノード４の３つある。ノード３をノードR5の配下に移動した場合はリンク（１−R1）とリンク（R1−０）でパケット数が１ずつ減少するが、リンク（R5−２）、リンク（２−R4）、リンク（R4−０）でパケット数が１ずつ増加するのでパケット総数は１増加する結果となり、移動対象とならない。ここで、注意するべきところは、ノード３をノードR5の配下に移動する場合はノード３の帰属がノードR2からノードR5に変わるだけなので、ノードR3とノード４もノードR5の配下のサブツリーに移動することになることである。
【００５４】
ノードR3をノードR5の配下に移動した場合はリンク（１−R1）とリンク（R1−０）でパケット数が１ずつ減少し、パケット数が増えるリンクはないことがわかる。しかし、ノード４をノードR5の配下に移動した場合はさらなる減少が得られることが判る。つまり、リンク（１−R1）とリンク（R1−０）でパケット数が１ずつ減少する上にリンク(R3−３)でもパケット数が１から０に減少するので、合計３のパケット総数の減少が得られる。そのため結果的に図８（２）に示すようにノード４はノードR5の配下に移動される。
【００５５】
ただし、MECAT-RN問題に特有の部分は図８（２）のノードR3のようにリレーノードの配下にセンサーノードが結果的に無くなった場合はリレーノードを削除する必要があることである。つまり、リレーノードはセンサーノードのセンサーレポートを中継するために存在するので、センサーレポートを中継しなくなった時点で不要となるからである。
【００５６】
なお、WSNにリレーノードが加わった場合のMECAT-RN問題に対しても、MECAT問題に関して説明した上記のすべての変形例を適用できる。
【００５７】
＜本発明の実施の形態の効果＞
上記のように、MECAT問題及びMECAT-RN問題でそれぞれ最短経路ツリー、(3,2)-LAST等の既存の方式で初期ツリーを作成した後に、本実施の形態に従ってノードを移動することにより、よりセンサーツリーのノードが使う総エネルギー量を減らすことができる。
【００５８】
また、移動後のパケットの増減を各ノードのセンサーレポート数：d(i)、(d(below_i)+d(i))%Sの剰余数に応じて正確に評価した後に移動するので、これらの要素を考慮してツリー構成を決めることができる。
【００５９】
図９〜図１２に本実施の形態によるエネルギー量削減効果及び処理負荷のシミュレーション結果を示す。
【００６０】
コンピュータシミュレーション環境で400m×400mの平面に1000台のセンサーノードを異なる２台のセンサー間の最短距離間隔を10mとしてランダムに配置した後、センサー信号の送信距離を30ｍとして送信距離内のセンサーノード間に隣接関係を作成した。結果として１センサーノードあたり平均約13.4ノードの隣接関係が作成された。この環境で、幅優先探索（breath first search）で最短経路ツリー（初期ツリー）を作成した後、その初期ツリーに対して本実施の形態を適用した結果を示す。
【００６１】
評価条件として１センサーの送信エネルギーは100nJ/bit、受信エネルギーは50nJ/bit、1パケットサイズは16byteとして、各センサーのセンサーレポート数は1〜5の一様乱数を与えた。図９（ａ）に１データ収集サイクルあたりの最短経路ツリーの消費エネルギーと、本実施の形態に従ってノードを移動した後（方式１、方式２）のツリーの消費エネルギーの違いを示す。図９（ｂ）は各データ集約レート（S）に対して最短経路ツリーのエネルギー使用量＝１で正規化した値を示している。両方のグラフとも横軸はデータ集約レート（S）を示している。方式１及び方式２のパラメータとして、(d(below_i)+d(i))%Sの剰余が１以上の頂点ノードの配下のサブツリーのみを移動対象としている。また方式１及び方式２共に、サブツリーの頂点ノードとして選択される上限は１０であり、ノードの移動回数の上限は１０である。ただし、方式１はサブツリーの配下で最もパケット減少数が大きくなるノードを移動するのではなく、１つでもパケット減少効果があるノードがサブツリー配下で見つかった場合はそのノードを移動している。方式２は、選択されたサブツリーの配下で最もパケット減少数が大きくなるノードの移動を行っている。
【００６２】
図９（ａ）より、データ集約レートが小さい値のときに、各ツリーのエネルギー使用量が大きくなるが、明らかに方式２のツリーは他の２つのツリーよりも大幅にエネルギーが削減されていることがわかる。図９（ｂ）より、方式１に比較して方式２はすべてのSで大幅に最短経路ツリーのエネルギーを減少するが、特にSが小さいときの減少率が高いことがわかる。実際、方式１では１〜６％のエネルギー減少率を最短経路ツリーとの比較で得られるが、方式２では１１〜３８％の減少率が得られる。これらのことから、サブツリーの配下で最もパケット減少数が大きくなるノードを移動する効果が非常に高いことがわかる。
【００６３】
図１０に本実施の形態による処理負荷の評価結果を示す。図１０（ａ）はツリーの生成時間を示している。このWSNのようにノード数が1000で平均隣接ノード数が13.4くらいのネットワークでは最短経路ツリー作成に２秒くらい要する。そのツリー作成時間も含めて方式１では約３秒、方式２では４〜４．５秒のツリー作成時間がかかる。ツリー作成は通常リアルタイム性は求められず、頻度は多くないので、この２秒程度のオーバヘッドは大きな問題にはならないと考えられる。
【００６４】
図１０（ｂ）から方式２の移動回数が方式１の移動回数より大幅に大きいことがわかる。この結果から、サブツリー配下で最もパケット減少数が大きくなるノードを移動することがツリー構成に大幅な変化を与え、移動の回数も増やすことがわかる。また図１０（ａ）と比較すれば、移動1000回分の負荷は約１秒程度であることがわかり、１移動の負荷はわずかであることが判る。
【００６５】
図１１に、ノードがサブツリーの頂点としてノード選択される回数に上限を設定し、ノードの移動回数に上限を設定したときの評価結果を示す。これらの上限値を同時に２〜１４まで２間隔で変化させて、方式１及び方式２の使用エネルギー量を計算した結果を図１１（ａ）に示し、ツリー生成時間の推移を図１１（ｂ）に示す。評価条件としてデータ集約レートS=3としている。図１１（ａ）より、これら２つの上限値を６以上にした場合、使用エネルギー減少度に大差がないことがわかる。つまり、これらの上限値は６くらいで最大限の効果が得られることがわかる。また図１１（ｂ）より図１０（ａ）で示した値（方式２の４〜４．５秒のツリー生成時間）より、上限値が６の場合は４秒以下で方式２はツリー生成ができることがわかり、これらの上限値を６前後にすることで負荷も下がり、エネルギー減少度も維持することができる場合があることもわかる。
【００６６】
＜ハードウェア構成例＞
図１２に、本発明の実施の形態における経路選択装置１００のハードウェア構成例を示す。経路選択装置１００は、ＣＰＵ（Central Processing Unit）２０１等のプロセッサ、ＲＡＭ（Random Access Memory）やＲＯＭ（Read Only Memory）等のメモリ装置２０２、ハードディスク等の記憶装置２０３等から構成されたコンピュータでもよい。例えば、経路選択装置１００の機能および処理は、記憶装置２０３又はメモリ装置２０２に格納されているデータやプログラムをＣＰＵ２０１が実行することによって実現される。また、経路選択装置１００に必要な情報は、入出力インタフェース装置２０４から入力され、経路選択装置１００において求められた結果は、入出力インタフェース装置２０４から出力されてもよい。
【００６７】
＜補足＞
説明の便宜上、本発明の実施の形態に係る経路選択装置は機能的なブロック図を用いて説明しているが、本発明の実施の形態に係る経路選択装置は、ハードウェア、ソフトウェア又はそれらの組み合わせで実現されてもよい。例えば、本発明の実施の形態は、コンピュータに対して本発明の実施の形態に係る経路選択装置の機能を実現させるプログラム、コンピュータに対して本発明の実施の形態に係る方法の各手順を実行させるプログラム等により、実現されてもよい。また、各機能部が必要に応じて組み合わせて使用されてもよい。また、本発明の実施の形態に係る方法は、実施の形態に示す順序と異なる順序で実施されてもよい。
【００６８】
以上、センサーツリー上のノードのエネルギー使用量を削減するための手法について説明したが、本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々の変更・応用が可能である。
【符号の説明】
【００６９】
１００  経路選択装置
１１０  ノード情報取得部
１２０  ルーティング要求部
１３０  ルート決定部
１３１  WSN認識部
１３２  初期ツリー作成部
１３３  センサーレポート数計算部
１３４  ノード移動部
１４０  WSN格納部
１５０  ツリー格納部
２０１  ＣＰＵ
２０２  メモリ装置
２０３  記憶装置
２０４  入出力インタフェース装置
【図１】
2019140497.tif 000005
【図２】
2019140497.tif 000006
【図３】
2019140497.tif 000007
【図４】
2019140497.tif 000008
【図５】
2019140497.tif 000009
【図６】
2019140497.tif 000010
【図７】
2019140497.tif 000011
【図８】
2019140497.tif 000012
【図９】
2019140497.tif 000013
【図１０】
2019140497.tif 000014
【図１１】
2019140497.tif 000015
【図１２】
2019140497.tif 000016