(57)【要約】【課題】ネットワーク全体が自律分散的に動作可能となるように、ネットワーク内におけるノードの役割を動的かつ自律分散的に制御する。【解決手段】ノードの場の値ｕ０を制御する方法は、ネットワーク内のノードの場の値ｕ０を制御する方法であって、場の値ｕ０の初期値を決定するステップと、場の値ｕ０を隣接ノードに広告し、ノードの環境から環境パラメータωを測定し、隣接ノードから、隣接ノードの場の値ｕｎを受信して記録し、環境パラメータωが一定範囲内にあるノードの場の値を、任意の分布と一致させるように、場の値ｕ０、隣接ノードの場の値ｕｎおよび環境パラメータωから新しい場の値ｕ０を計算し、以前の場の値ｕ０を削除し、新しい場の値ｕ０を記録することにより、場の値ｕ０を更新するステップと、を有する。【選択図】図３
2010044483.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク内のノードの場の値ｕ０を制御する方法であって、
前記場の値ｕ０の初期値を決定するステップと、
前記場の値ｕ０を隣接ノードに広告し、
前記ノードの環境から環境パラメータωを測定し、
前記隣接ノードから、該隣接ノードの場の値ｕｎを受信して記録し、
前記環境パラメータωが一定範囲内にあるノードの場の値を、任意の分布と一致させるように、前記場の値ｕ０、前記隣接ノードの場の値ｕｎおよび前記環境パラメータωから新しい場の値ｕ０を計算し、
以前の場の値ｕ０を削除し、前記新しい場の値ｕ０を記録することにより、
前記場の値ｕ０を更新するステップと、
を有することを特徴とするノードの場の値を制御する方法。
【請求項２】
前記分布は、前記環境パラメータωが一定範囲内であるノードに対して、該範囲の中央に近いノードほど、大きな値を与える分布であることを特徴とする請求項１に記載のノードの場の値を制御する方法。
【請求項３】
前記新しい場の値ｕ０の計算は、ａ、ｂ、ｃ、ｘが定数である微分方程式
【数１】
2010044483.tif 000005
を初期条件
ｕ（０）＝ｕ０およびｖ（０）＝０
のもとで解ｕ（ｔ）を求め、一定時間後のｕ（ｔ）の値を新しい場の値ｕ０とすることを特徴とする請求項２に記載のノードの場の値を制御する方法。
【請求項４】
前記場の値ｕ０の初期値は、一定の範囲内からランダムに決定されることを特徴とする請求項１から３のいずれか１項に記載のノードの場の値を制御する方法。
【請求項５】
ノードの場の値ｕ０を制御する場の値制御部と、環境パラメータωを測定する環境入力部とを備えているネットワーク内のノードにおいて、
前記場の値制御部が、前記ノードの場の値ｕ０の初期値を決定する手段と、
前記場の値制御部が、前記場の値ｕ０を隣接ノードに広告し、
前記環境入力部が、前記ノードの環境から前記環境パラメータωを測定し、
前記場の値制御部が、前記隣接ノードから、該隣接ノードの場の値ｕｎを受信して記録し、
前記場の値制御部が、前記環境パラメータωが一定範囲内にあるノードの場の値を、任意の分布と一致させるように、前記場の値ｕ０、前記隣接ノードから広告された場の値ｕｎおよび前記環境パラメータωから新しい場の値ｕ０を計算し、
前記場の値制御部が、以前の場の値ｕ０を削除し、前記新しい場の値ｕ０を記録することにより、
前記場の値ｕ０を更新する手段と、
を備えることを特徴とするノード。
【請求項６】
条件および該条件が満たされた場合の動作が記載された動作リストおよび該動作を制御する動作制御部をさらに有し、前記条件は、前記場の値ｕ０に基づくものであることを特徴とする請求項５に記載のノード。
【請求項７】
条件および該条件が満たされた場合の動作が記載された動作リストおよび該動作を制御する動作制御部をさらに有し、前記条件は、前記場の値ｕ０および前記隣接ノードの場の値に基づくものであることを特徴とする請求項５に記載のノード。
【請求項８】
ネットワーク内のコンピュータを、
前記コンピュータの場の値ｕ０の初期値を決定する手段と、
前記場の値ｕ０を隣接コンピュータに広告し、
前記コンピュータの環境から環境パラメータωを測定し、
前記隣接コンピュータから、該隣接コンピュータの場の値ｕｎを受信して記録し、
前記環境パラメータωが一定範囲内にあるコンピュータの場の値を、任意の分布と一致させるように、前記場の値ｕ０、前記隣接コンピュータの場の値ｕｎおよび前記環境パラメータωから新しい場の値ｕ０を計算し、
以前の場の値ｕ０を削除し、前記新しい場の値ｕ０を記録することにより、
前記場の値ｕ０を更新する手段と、
して機能させ、前記コンピュータの場の値ｕ０を制御することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、膨大なノード群で構成されるネットワークを制御する方法、該方法を実行するノードおよび制御プログラムに関する。より詳細には、大量のノードが動作することによってサービスが提供されるようなシステムにおいて、ネットワーク内におけるノードの役割を動的かつ自律分散的に制御する方法、該方法を実行するノードおよび制御プログラムに関する。
【背景技術】
【０００２】
大量のデバイスが動作することによってサービスが提供されるようなシステムの例としてセンサーネットワークが例示される。センサーネットワークでは、環境を測定するセンサーデバイスは、単一のデバイスだけで利用されるだけでなく、多数のデバイスを環境中に分散配置して、広い範囲にわたる環境情報を取得するという用途にも利用される。その際、多数のデバイスが必ずしもすべて同時に稼動するわけではなく、測定地域をカバーする必要十分な個数のデバイスのみが稼動するように制御する仕組みや、それらのデバイスが測定した情報を、データ処理を行うサーバに集めるために情報を適切なノードへと転送する仕組みなどが必要となる。
【０００３】
事実、この分野において、多数のデバイスをコントロールするための仕組みが盛んに検討されている。しかし、センサーデバイスのような小型で比較的低機能なもので構成される場合だけでなく、Ｐ２Ｐネットワークのように各ノードがＰＣのような高機能なもので構成される場合も考えられる。
【０００４】
従来のコンピュータネットワークでは、各ノードがどのような役割をするべきかということがあらかじめ決まっており、その制約条件の下でシステムが適切に動作できるように様々な制御手法が考案され実装されている。例えば、センサーネットワークの例をとると、多数のセンサーデバイス（以下、単にノードと呼ぶ）の中に、Ｓｉｎｋノードと呼ばれるノードが存在する。Ｓｉｎｋノードとは、周囲のノード群から情報を収集し、それを別のネットワーク上（例えばＩｎｔｅｒｎｅｔ）にあるサーバへ渡すゲートウェイの役割を果たす。環境中に多数のノードがばら撒かれている場合、これらが持っている情報を効率よくＳｉｎｋノードへと送り届ける必要があり、様々な手法が考案されている（非特許文献１および２）。
【０００５】
また、これとは少し異なる手法として、非特許文献３では地理的な領域に応じて保持する情報を変えるというものもある。多数のノードがばら撒かれた大地域を考える。ある場所のノードが取得した情報がＡという種別の情報だったとき、地域ａ（大地域内の一画）にその情報を送る（Ａとａのマッピングルールはあらかじめ決まっており、センサーノードがそれを知っている）。地域ａには多数のノードがいるため、そのいずれかが情報を保持する。次に、このネットワーク内から情報を取得する場合を考える。ここで情報Ａが要求されているとすると、要求者（ネットワークの外にいる場合もある）がこのセンサーネットワークに対して要求パケットを送信する。センサーノード群がＡを地域ａに変換し、その要求パケットを地域ａに転送する。そして、その中で該当する情報を持っているノードが、要求に対して応答し必要な情報を返信する。
【０００６】
【非特許文献１】"Directed Diffusion for WirelessSensor Networking," C. Intanagonwiwat, R. Govindan, D. Estrin, J.Heidemann, and F. Silva, IEEE/ACM Transactions on Networking, VOL. 11, NO. 1,pp2, 2003.
【非特許文献２】"GRAdient Broadcast: A Robust DataDelivery Protocol for Large Scale Sensor Networks," F. Ye, G. Zhong, S. Luand L. Zhang, ACM Wireless Networks, Volume 11, Number 3, pp. 285-298(14),2005.
【非特許文献３】"Data-Centric Storage in Sensornetswith GHT, A Geographic Hash Table," S. Ratnasamy, B. Karp, S. Shenker, D.Estrin, R. Govindan, L. Yin and F. Yu, ACM Mobile Networks and Applications,Volume 8 ,  Issue 4, pp. 427 - 442,2003.
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上述の２つの例に共通することは、ネットワーク制御のための役割があらかじめ決められているという点である。つまり、前者では誰がＳｉｎｋノードになるかは決まっており、後者ではどの種類の情報をどの地域で管理するかが決まっている。ただし後者の場合は、ノードそのものに役割が紐付いているわけではなく、地理的な場所（絶対的な場所）に役割が紐付いている。
【０００８】
しかしながら、このように、あらかじめ役割が決まっている場合、何らかの障害（多数のノードが故障した場合や不意に移動してしまった場合、通信の接続性が途絶えた場合など）が起こったときに、システムとしての動作を維持することが困難になる。例えばＳｉｎｋノードが故障した場合、何らかの方法で別のノードにＳｉｎｋノードの役割をさせるような手続きを実施する必要がある。しかし、システムを構成するノードの数が膨大になった場合、相手を特定して情報をやり取りし、動作を制御することは非常に困難になるという課題がある。
【０００９】
したがって、本発明は、膨大な数のノードで構成されるネットワークにおいて、ネットワーク全体が自律分散的に動作可能となるように、ネットワーク内におけるノードの役割を動的かつ自律分散的に制御する方法、該方法を実行するノードおよび制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を実現するため本発明によるノードの場の値ｕ０を制御する方法は、ネットワーク内のノードの場の値ｕ０を制御する方法であって、前記場の値ｕ０の初期値を決定するステップと、前記場の値ｕ０を隣接ノードに広告し、前記ノードの環境から環境パラメータωを測定し、前記隣接ノードから、該隣接ノードの場の値ｕｎを受信して記録し、前記環境パラメータωが一定範囲内にあるノードの場の値を、任意の分布と一致させるように、前記場の値ｕ０、前記隣接ノードの場の値ｕｎおよび前記環境パラメータωから新しい場の値ｕ０を計算し、以前の場の値ｕ０を削除し、前記新しい場の値ｕ０を記録することにより、前記場の値ｕ０を更新するステップとを有する。
【００１１】
また、前記分布は、前記環境パラメータωが一定範囲内であるノードに対して、該範囲の中央に近いノードほど、大きな値を与える分布であることも好ましい。
【００１２】
また、前記新しい場の値ｕ０の計算は、ａ、ｂ、ｃ、ｘが定数である微分方程式
【数１】
2010044483.tif 000003
を初期条件
ｕ（０）＝ｕ０およびｖ（０）＝０
のもとで解ｕ（ｔ）を求め、一定時間後のｕ（ｔ）の値を新しい場の値ｕ０とすることも好ましい。
【００１３】
また、前記場の値ｕ０の初期値は、一定の範囲内からランダムに決定されることも好ましい。
【００１４】
上記目的を実現するため本発明によるノードは、ノードの場の値ｕ０を制御する場の値制御部と、環境パラメータωを測定する環境入力部とを備えているネットワーク内のノードにおいて、前記場の値制御部が、前記ノードの場の値ｕ０の初期値を決定する手段と、前記場の値制御部が、前記場の値ｕ０を隣接ノードに広告し、前記環境入力部が、前記ノードの環境から前記環境パラメータωを測定し、前記場の値制御部が、前記隣接ノードから、該隣接ノードの場の値ｕｎを受信して記録し、前記場の値制御部が、前記環境パラメータωが一定範囲内にあるノードの場の値を、任意の分布と一致させるように、前記場の値ｕ０、前記隣接ノードから広告された場の値ｕｎおよび前記環境パラメータωから新しい場の値ｕ０を計算し、前記場の値制御部が、以前の場の値ｕ０を削除し、前記新しい場の値ｕ０を記録することにより、前記場の値ｕ０を更新する手段とを備える。
【００１５】
また、前記ノードは、条件および該条件が満たされた場合の動作が記載された動作リストおよび該動作を制御する動作制御部をさらに有し、前記条件は、前記場の値ｕ０に基づくものであることも好ましい。
【００１６】
また、前記ノードは、条件および該条件が満たされた場合の動作が記載された動作リストおよび該動作を制御する動作制御部をさらに有し、前記条件は、前記場の値ｕ０および前記隣接ノードの場の値に基づくものであることも好ましい。
【００１７】
上記目的を実現するため本発明によるプログラムは、ネットワーク内のコンピュータを、前記コンピュータの場の値ｕ０の初期値を決定する手段と、前記場の値ｕ０を隣接コンピュータに広告し、前記コンピュータの環境から環境パラメータωを測定し、前記隣接コンピュータから、該隣接コンピュータの場の値ｕｎを受信して記録し、前記環境パラメータωが一定範囲内にあるコンピュータの場の値を、任意の分布と一致させるように、前記場の値ｕ０、前記隣接コンピュータの場の値ｕｎおよび前記環境パラメータωから新しい場の値ｕ０を計算し、以前の場の値ｕ０を削除し、前記新しい場の値ｕ０を記録することにより、前記場の値ｕ０を更新する手段として機能させ、前記コンピュータの場の値ｕ０を制御する。
【発明の効果】
【００１８】
ネットワーク内の各ノードが隣接ノードとのみ通信するだけで、自律分散的に同じような状況下にあるノード群をグループ化することができる。この場合、各ノードには、ＩＰアドレスのような識別子は必要なく、ネットワークには、システム全体の状況を把握しているような中央集中的なサーバが必要ない。
【００１９】
ノード群が自律分散的にグループ化するため、何らかの障害が起こったとき、ノードの故障や環境の変化に追従して、グループが動的に変化する。つまり、グループを構成するノードが動的に変わる。
【００２０】
また、このように作成されたグループごとに１つ（一連の）のサービスを実施することが可能になる。
【発明を実施するための最良の形態】
【００２１】
本実施形態では、似たような状況下にあるノード群が自律的にグループを構成し、各グループがひとつのサービスを提供する。ひとつのサービスを提供するために、そのグループ内には複数の役割が含まれる。したがって、ネットワーク内に存在するノードは、自律的にグループを構成し、さらに自律的にグループ内で果たす役割を決定する。これによって、膨大な数のノードで構成されるネットワークにおいても、ネットワーク全体が自律分散的に動作可能となる。
【００２２】
具体的には、本実施形態では自律的に構成されたグループにおいて、それぞれのノードがグループの中心付近に位置しているのか、それとも端の方に存在しているのかを知ることができ、それを利用して、それぞれのノードは自分の位置に応じて動作を決める。ただし、各ノードは自分の位置を測位するＧＰＳのような手段は持たず、またあらかじめ決められたＩＰアドレスのような識別子も持たないため、相手を指定した通信はできない。
【００２３】
以下では、図面を用いて、本発明を実施するための最良の形態について詳述する。本実施形態では、多数のノードによって構成されたネットワークの例としてセンサーネットワークを用いて説明する。ノードは、センサーデバイスのような小型で比較的低機能なもの、Ｐ２ＰネットワークのＰＣのような高機能なもののどちらであっても構わない。
【００２４】
図１は、本実施形態におけるネットワークを示す。本ネットワークは、多数のノード１１で構成されたネットワークであり、あるエリアに存在するノード群が似たような状況下にある。ここで、「状況」とは、例えば各ノード１１が測定した温度や湿度、ノード１１の電池残量、保持している情報量や保持している情報の種別などを指す。したがって「似たような状況下」にあるノード群とは、似たような温度、湿度などの情報を持っているノード群を指す（図１では２種類の状況が存在する）。本実施形態では、ネットワーク内のノード１１間に隣接関係がある。隣接関係とはすなわち直接通信可能かどうかを示すものである。センサーネットワーク等の場合には無線で通信することが多い。この場合、各ノード１１が送出する無線が届く範囲内のノード１１としか直接通信ができないため、ネットワーク内のノード１１はこの範囲のノード１１と隣接関係を持つ。また、Ｐ２Ｐネットワークのような有線の場合、隣接関係は論理的な接続関係に置き換えられる。つまり、ノード１１同士がお互いを通信相手として認識し、直接相手を指定して情報の授受を行う場合に、隣接していると考える。図１では、通信リンク１２が設定されているノード間に隣接関係がある。
【００２５】
なお、これらのノード１１は、ＩＰアドレスのような識別子を持つ必要がなく、またＧＰＳなどの位置測位手段も持つ必要がない。
【００２６】
本実施形態では、ネットワーク内の各ノード１１は、自身の動作を決定するパラメータである「場の値」を保持している。
【００２７】
図２は、本実施形態で作り出される場の値の分布の一例を示す。この分布は、ネットワーク内の各ノードが隣接関係にあるノードの場の値を見ながら自身の場の値を変化させる後述のアルゴリズムによって、作り出される。それぞれのノードは前述のように隣接ノードとしか直接通信できないが、システム全体としてみると、同じような状況下にあるノード群がグループ化し、そしてそれぞれのグループごとに場の値の分布ができる。図２の分布は、グループの中央ほど場の値が大きい分布である。ここで、グループの中央とは、グループに属さないノードからの距離が最も大きいノードの位置である。なお、グループの中央のノードは、１つとは限らない。また、ここでの距離は、ノード間の物理的距離だけではなく、ノード間の通信リンクに基づく論理的な距離でもある。図２の場合、左側のグループに属するノード２１とノード２２を比べると、左側のグループに属さないノード２３からの距離は、ノード２１のほうが大きく、中央に近い。このため、ノード２１の場の値はノード２２の場の値より大きくなる。
【００２８】
一般に、「状況（例えば温度）」は変化する。また、ノードが故障したり移動してしまったりする場合もある。そのため、「同じ状況にあるノード群の中央付近」は一意に決めておくことはできない。しかし、本実施形態によれば、各ノードが動的に場の値を変化させることによって、常に図２に示すようなグループごとの場の値の分布を形成することが可能になる。
【００２９】
図３は、本実施形態のノードの基本構成を示す。ノード３１は、場の値制御部３２、動作制御部３３、および環境入力部３４から構成され、場の値、環境パラメータおよび、動作リストを内部に保持している。
【００３０】
場の値制御部３２は、自身の場の値と隣接ノード（隣接関係にあるノード）の場の値と環境パラメータとから場の値を更新する、隣接ノードの場の値を受信する、および自身の場の値を隣接ノードに広告する手段である。動作制御部３３は、動作リストに記載されている動作を実施する手段である。この動作リストには、場の値等に関する複数の条件およびこの条件が満たされた場合にノードが取りうる動作が記載される。環境入力部３４は、ノードの外部または内部環境から情報を入力し、この情報を数値化する手段である。それぞれ手段の詳細は後述される。
【００３１】
［場の値制御部、場の値、環境パラメータ］
以下にノード３１の場の値制御部３２が、環境パラメータ等に基づいて自身の場の値を決定する手順を示す。
（１）場の値制御部３２は、場の値収集期間（ＩＣとする）に隣接ノードが広告している場の値を受信し、記録していく（つまり、時刻Ｔ〜Ｔ＋ＩＣまでの間）。ただしここでは、誰が送った広告であるかを区別する必要はなく、単に値を記録するだけでよい。
（２）収集期間終了後（つまり、時刻Ｔ＋ＩＣに）、場の値制御部３２は、「自身の場の値」と「環境パラメータ」の値を取得する。
（３）場の値制御部３２は、時刻Ｔ＋Ｉａ（Ｉａは広告間隔）のとき「自身の場の値」を周囲へ広告する。なお、Ｉａ＝Ｎ＊ＩＣとし、場の値収集Ｎ回ごとに１回広告を行う。
（４）場の制御部３２は、時刻Ｔ＋ＩＣで（２）で取得した情報を元に、時間ＩＣ後の自身の場の値を下記の式を用いて計算する。
【００３２】
【数２】
2010044483.tif 000004
初期条件  ｕ（０）＝ｕ０およびｖ（０）＝０
ここで、ｔは時間、ｕ（ｔ）は求める場の値の関数、ｕｎは手順（１）で記録していた隣接ノードから広告された場の値、ｕ０は手順（２）で取得した自身の場の値、ωは手順（２）で取得した環境パラメータの値、ａ、ｂ、ｃ、ｘは定数である（ａｃｃｅｌはｕ、ｖの値によって変化する）。また、ｖは場の値ｕを計算する際に出る副産物であるため、特に何らかの入力があるわけではない。なお、ｄｕ（ｔ）／ｄｔの式中のΣは、保持しているすべての隣接ノードの場の値と自分の場の値の差を合計することを示している。もし期間中にひとつも隣接ノードから場の値を受け取らなかった場合、Σの部分は０とする。
（５）記録していた隣接ノードの場の値および自身の場の値を削除し、求めた関数ｕ（ｔ）のｔ＝Ｔ＋２ＩＣでの値ｕ（ｔ＝Ｔ＋２ＩＣ）を新しい自身の場の値とする。
（６）（１）へ戻って処理を繰り返す。
【００３３】
なお、各ノードの場の値の初期値は、適当な範囲内（例えば−１から１の間）のランダムな値とすればよい。環境パラメータωは、ノードが置かれた何らかの状況を環境入力部３４が収集し、それを数値化したものである。最も単純な例は、ノードが温度センサーだった場合に、測定した温度の値をそのままωとするものである。その他にも、ノードが保持する情報量や、ノードが使用可能な帯域、ノード上の空きバッファサイズ、ノードの電池残量のようなものが考えられる。
【００３４】
図４は、Ｎ＝２の場合での場の値制御部の処理の流れを示す。
【００３５】
図４に示すように、ある時刻Ｔにおいて、その時点における場の値ｕ０を隣接ノードに広告する。さらに、その時点における場の値ｕ０や環境パラメータωの値、それまで取得した隣接ノードの場の値ｕｎの値を用いて、上述の微分方程式を解き、解ｕＴ（ｔ）を求め、時刻Ｔ＋Ｉｃにおける場の値ｕＴ（Ｔ＋Ｉｃ）を算出する（ここでの添え字Ｔは、解ｕ（ｔ）が時刻Ｔにおいて求められたことを意味する）。次の時刻Ｔ＋Ｉｃでは、同様にして、再度微分方程式を解き、解ｕＴ＋Ｉｃ（ｔ）を求め、Ｔ＋２Ｉｃにおける場の値ｕＴ＋Ｉｃ（Ｔ＋２Ｉｃ）を算出する。次の時刻Ｔ＋２Ｉｃでは、場の値ｕＴ＋Ｉｃ（Ｔ＋２Ｉｃ）を隣接ノードに広告する。また、同様にしてＴ＋３Ｉｃにおける場の値をｕＴ＋２Ｉｃ（Ｔ＋３Ｉｃ）を算出する。この後も同じ動作が繰り返される。
【００３６】
なお、この微分方程式を解くには、ルンゲ・クッタ法やオイラー法などの数値計算手法を用いればよい。理想的にはＩｃの値は０に極めて近い数値、つまりＩｃの期間中に高々１個の広告を受け取る程度が好ましい。しかしＩｃを短くすることは、計算負荷の上昇につながるため、むやみに小さな値にすることは困難であるため、適度な値、例えば１０ミリ秒〜１００ミリ秒程度が適切である。この値は起こりうるωの値や隣接関係にあるノード数に依存する。目安としては、ネットワーク内で起こりうるωの最大値をωｍとした場合、「１／√（ωｍ）」の数分の一秒程度、または「Ｉａ／（最大隣接ノード数）」の数分の一秒程度のいずれか小さい方が適当と考えられる。また、手順（３）のＮの値も小さいほうがよい（理想的にはＮ＝１）。しかし、Ｎを減少させれば広告されるパケット量が増大するため、Ｉｃの値に応じて適度に調節する必要がある。例えばＩａ＝０．１〜１秒程度になるようにする。
【００３７】
上述の手順を実施すると、環境パラメータωが変化しなければ場の値がある値の範囲内で振動（ほぼ単振動）するようになる。その際の振動周波数はほぼωの平方根の値になる。その際、振動の振幅は、似たような環境パラメータを持つグループの中心ほど大きく、端ほど小さくなる。
【００３８】
図５は、ノードが１次元に配置された場合の場の値ｕの振幅の様子を示す。図５に示すように、ωの値が同じノード群がひとつのグループをなし、その振動の振幅について中央ほど大きく端ほど小さいという分布ができる。また、それぞれのグループにおける振動はほとんど同期する。なお、各ノードのωの値がどの程度の範囲であれば「似たような環境パラメータ」であるとみなせるかについては、上の式のａおよびｘの値に依存し、ａが大きく、ｘが小さいほど、「似たような環境パラメータ」とみなせるωの範囲が小さくなる。なお、図５はωの値が１０である部分の範囲を取り出した図であり、図の左側には図示されていないωの値が２０のノードが存在し、図の右側には図示されていないωの値が５のノードが存在する。
【００３９】
隣接ノードとの接続関係が大きくが変化したり、環境パラメータが変化した場合、各ノードの場の値の振動は一時的に乱れるが、少し時間がたつとまた単振動するようになる（単振動に収束する時間は上の式のａに依存する。ａが大きいほど収束は早くなる）。例えば環境パラメータとして測定した温度の値を用いる場合、環境の温度分布が変化すればそれに追従して各ノードの場の値ｕの値の振動が変化し、そして新たなエリアにおいて中心ほど振幅が大きく、端ほど振幅が小さくなるようなｕの値の振動の分布が再構築される。
【００４０】
［動作制御部、動作リスト］
以下にノード３１の動作制御部３３が、動作リストに基づいてノード３１の動作を決定することを示す。
【００４１】
ネットワーク内の各ノードは、自身の動作を決定する動作リストを持っている。動作リストの各エントリには、「条件」および「動作」が記述されており、ノードの動作制御部３３は、条件がマッチするエントリの動作を実施する。そして、この条件が場の値に関連するものとなる。なお、動作リストに含まれる条件には、場の値だけではなく別のパラメータも考慮することができる。動作リストの具体的な例を以下に示す。
【００４２】
［動作リスト］
・条件：自分が情報を保持しており、自分の場の値よりも大きな場の値を持つノードが隣接ノードに存在する。
→  動作：持っている情報をより大きな場の値を持つノードへ転送する。
・条件：自分が情報を保持しているが、周囲に自分の場の値よりも大きな場の値を持つノードが存在しない。
→  動作：情報を保持したまま何もしない（転送しない）。
・条件：自分が情報を保持していない。
→  動作：何もしない。
【００４３】
この動作リストの場合、図２の例では各グループの中央付近に情報が集まり、グループごとにグループの中央に情報を集めるという一連のサービスが実施される。
【００４４】
上述の「条件」は２種類に大別することができる。ひとつは自分の場の値（またはそれに関連する情報）を条件とするもの、もうひとつは隣接ノードの場の値と自身の場の値の関係を条件とするものである（例えば、隣接ノードの場の値と自身の場の値の差が正か負か、等）。前者で、場の値に関連する情報とは、場の値の瞬時値ではなく例えば振幅の最大値のような値のことである。後者の場合、隣接ノードの場の値を取得する必要がある。もちろん、後者の場合も場の値の瞬時値ではなく、場の値に関連する情報を考えることもできる。いずれにしても、動作制御部３３は動作リストの条件判定に必要な情報（値）を場の値制御部３２から取得する。本実施形態では、前者および後者の例をそれぞれ示す。
【００４５】
最初に、自分の場の値を条件とする場合の例を示す。
【００４６】
ノードは次のような能力を併せ持っており、環境中に多数ばら撒かれているものとする。
・温度を測定することができる（温度センサー）
・発光することができる（発光デバイス）
【００４７】
このようなデバイスノードが、前述のような手順で場の値ｕを変動させる。このとき、環境パラメータωは測定した温度の値を用いるものとする。動作リストには、ｕの値の最大振幅値に関する条件をもつエントリを記述しておく。なお、各ノードのｕの値の最大振幅値Ａは、Ａ＝√（ｕ２＋ｖ２／ω）で容易に求められる（場の値制御部３２がこのＡの値を動作制御部３３へ渡す）。したがって、計算過程の副産物であるｖおよびそのノードの環境パラメータωも動作リストの条件に含まれることになる（この場合でも、ｕの値に関連する情報であることには変わりはない）。具体的な動作リストは以下のようになる。
【００４８】
［動作リスト］
・条件：温度を測定しており、自分の最大振幅値Ａが閾値Ｔｈ以下である。
→  動作：発光する。
・条件：温度を測定していない、または自分の最大振幅値Ａが閾値Ｔｈより大きい。
→  動作：発光しない。
【００４９】
図６は、自分の場の値を条件とする場合でのノードの動作の一例を示す。このノード群では、２０℃、１０℃、および３０℃の３つのグループができている。このノード群に上記のような動作リストを用いることによって、同一の（または似たような）温度となっているエリアの境界付近だけが発光する。つまりデータを一切収集することなく、現地で温度境界を視認することができるようになる。なお、閾値Ｔｈは適当な定数である。
【００５０】
次に、自分の場の値と隣接ノードの場の値の関係を条件とする場合の例を示す。
【００５１】
ノードは、温度センサーであり、自身の電池残量を知ることができるものとする。環境パラメータωはノードの電池残量の値を用いるものとする。動作リストには、ｕの値の最大振幅値に関する条件をもつエントリおよび隣接ノードのｕｎの値と自身のｕの値の差に関する条件をもつエントリを記述しておく。最大振幅は上述と同様にして求めることができる。隣接ノードのｕｎの値と自身のｕの値の差については、前述の手順（１）において、広告を受信した際に記録をとっているのでそれを用いればよい。具体的な動作リストは以下のようになる。なお、ここで、Ｄｎ＝ｕｎ−ｕとする（ｎは０から受信した広告の数−１の値をとり、Ｄｎは広告されたそれぞれの隣接ノードのｕｎの値と自身のｕの値の差を考慮している）。
【００５２】
［動作リスト］
・条件１：自分が情報（温度データ）を保持しており、場の値収集期間Ｉｃの間に他のノードから場の値の広告を受け取った場合で、［ｕ＞０かつＤｎ＞０］または［ｕ≦０かつＤｎ＜０］となるｎがひとつでも存在する。
→  動作：持っている情報パケットをブロードキャストする。このとき、送信元の情報として自身のＡの値（最大振幅値）を付加しておく。
・条件２：自分が情報を保持しており、場の値収集期間Ｉｃの間に他のノードから場の値の広告を受け取った場合で、［ｕ＞０かつＤｎ＞０］または［ｕ≦０かつＤｎ＜０］となるｎがひとつも存在しない（つまりｕの値が付近で常に最大となっている）。
→  動作：情報を保持したまま何もしない（転送しない）
・条件３：自分が情報を保持しているが、場の値収集期間Ｉｃの間に他のノードから場の値の広告を受け取らなかった。
→  動作：情報を保持したまま何もしない（転送しない）
・条件４：情報パケットを受け取った場合で、送信元情報の最大振幅値Ａｎと自身の最大振幅値ＡがＡｎ＜Ａである。
→  動作：受信パケット内の情報を保持する。
・条件５：情報パケットを受け取った場合で、送信元情報の最大振幅値Ａｎと自身の最大振幅値ＡがＡｎ≧Ａである。
→  動作：受信パケットを破棄する。
【００５３】
この動作リストに基づいて各ノードが動作すると、システム全体の動作は次のようになる。
【００５４】
ノードが温度情報を測定すると、自身のｕの値と隣接ノードのｕｎの値の差をとり、条件１〜３のどれに当てはまるかを調べ、該当する動作を実施する。あるノードで条件１を満たすと温度情報をブロードキャストされる。このパケットを受信したノードは条件４または５に当てはまるかを調べ、４に当てはまるならそのパケットを受信し、保持する。温度情報を受信したノードは、「情報を保持している」状態なので、条件１〜３についてチェックする。このノードが条件１に当てはまれば、自身が持つ情報のすべて（または一度に送りきれなければ一部）をブロードキャストする。なお、このとき、他のノードから受信した情報だけでなく、自分が測定した情報も併せて送信する。
【００５５】
このような動作によって、似たような電池残量になっているノード群がグループをなし、そのグループの中央付近に温度データが自律的に集結する（条件１と４によってグループの中央付近へ情報が転送されるため）。
【００５６】
なお、情報はブロードキャストされるので、同一のデータを複数のノードが受信する可能性もあり、最終的に集まったデータは重複を多数含む可能性がある。この場合、各データに適当なＩＤをつけておけば、転送途中に同一ＩＤのデータを受信したノードは、ひとつだけを残して他を削除することができる。また、データを転送する場合、送信が完了したらすぐに持っていた情報を削除してもよいが、一定期間保持し続けることによって、データの転送の確実性を向上させることができる（何度も同じデータをブロードキャストさせることになるため）。
【００５７】
また、以上述べた実施形態は全て本発明を例示的に示すものであって限定的に示すものではなく、本発明は他の種々の変形態様および変更態様で実施することができる。従って本発明の範囲は特許請求の範囲およびその均等範囲によってのみ規定されるものである。
【図面の簡単な説明】
【００５８】
【図１】本実施形態におけるネットワークを示す。
【図２】本実施形態で作り出される場の値の分布の一例を示す。
【図３】本実施形態のノードの基本構成を示す。
【図４】Ｎ＝２の場合での場の値制御の処理の流れを示す。
【図５】ノードが１次元に配置された場合の場の値ｕの振幅の様子を示す。
【図６】自分の場の値を条件とする場合でのノードの動作の一例を示す。
【符号の説明】
【００５９】
１１、２１、２２、２３、３１  ノード
１２  通信リンク
３２  場の値制御部
３３  動作制御部
３４  環境入力部
【図１】
2010044483.tif 000006
【図２】
2010044483.tif 000007
【図３】
2010044483.tif 000008
【図４】
2010044483.tif 000009
【図５】
2010044483.tif 000010
【図６】
2010044483.tif 000011