"自装置の第1のポテンシャル変数、第2のポテンシャル変数、及び周波数変数を保存する変数管理手段と、自装置と通信リンクにより接続している隣接装置との距離を検出する距離検出手段と、自装置と隣接装置の方向を検出する受信方向検出手段と、通信リンクにより接続している隣接装置の第1のポテンシャル変数、第2のポテンシャル変数を受信し、前記第1のポテンシャル変数、前記第2のポテンシャル変数、前記受信方向検出手段により算出した受信方向及び前記距離検出手段により算出した距離を保存する隣接情報管理手段と、隣接装置からの第1のポテンシャル変数、第2のポテンシャル変数、受信方向及び距離、並びに、自装置の第1のポテンシャル変数、第2のポテンシャル変数及び周波数変数から、自装置の第1のポテンシャル変数を第1の所定の計算式により更新し、隣接装置からの第1のポテンシャル変数、受信方向及び距離、並びに、自装置の第1のポテンシャル変数から、自装置の第2のポテンシャル変数を第2の所定の計算式により更新するポテンシャル計算手段と、自装置の第1のポテンシャル変数、及び第2のポテンシャル変数を隣接装置に送信する情報広告手段と、自装置の第1のポテンシャル変数と、各隣接装置の第1のポテンシャル変数に基づき所定の機能の実行を行うか否かを判定する判定手段と、を備えており、前記判定手段は、自装置の第1のポテンシャル変数が、全隣接装置の第1のポテンシャル変数より大きいことを、前記所定の機能の実行を行う条件の1つとする、通信装置。起動した直後、自装置の第1のポテンシャル変数を0以上であり所定の最大値以下の乱数で、自装置の第2のポテンシャル変数を0で初期化する初期制御手段をさらに備えることを特徴とする請求項1に記載の通信装置。前記初期制御手段は、自装置のX軸方向との方位角を、該方位角と前記受信方向との差が0度、90度、180度、または270度に近づくように設定し、前記受信方向検出手段は、検出した受信方向と方位角との差を受信方向とすることを特徴とする請求項1また2に記載の通信装置。前記第1と第2の所定の計算式は、複数の前記通信装置から構成されるネットワークにおける各通信装置の第1のポテンシャル変数を、極大値と極小値が繰り返す様に分布させるものであり、前記極大値と極小値の繰り返し密度は、前記周波数変数により変化することを特徴とする請求項1から3のいずれか1項に記載の通信装置。A、B、ΔT及びdを正の定数とし、装置iの時刻tでの第1のポテンシャル変数をuxit、uyit、第2のポテンシャル変数をvxit、vyit、及び周波数変数をqitとし、装置iと装置n間の受信方向をθi,n、及び距離をΔdi,nとすると、自装置nの前記第1の所定の計算式は、であり、自装置nの前記第2の所定の計算式は、であることを特徴とする請求項1から4のいずれか1項に記載の通信装置。前記判定手段は、自装置の第1のポテンシャル変数を更新することによる値の変化を、所定の閾値により大小判定し、変化が小さいことを前記所定の機能の実行を行う条件の1つとすることを特徴とする請求項1から5のいずれか1項に記載の通信装置。前記周波数変数を、自装置の内部又は外部の監視対象の値により決定することを特徴とする請求項1から6のいずれか1項に記載の通信装置。前記周波数変数を更新するとき、自装置の第1のポテンシャル変数に0以上であり所定の最大値以下の乱数を、自装置の第2のポテンシャル変数に0を設定することを特徴とする請求項1から7のいずれか1項に記載の通信装置。それぞれが第1のポテンシャル変数、第2のポテンシャル変数及び周波数変数を管理する複数の通信装置を含むシステムにおいて、所定の機能を実行する通信装置を選択する方法であって、自装置と通信リンクにより接続している隣接装置との距離を検出する距離検出ステップと、自装置と隣接装置の方向を検出する受信方向検出ステップと、通信リンクにより接続している隣接装置の第1のポテンシャル変数、第2のポテンシャル変数を受信し、前記第1のポテンシャル変数、前記第2のポテンシャル変数、前記受信方向検出ステップにより算出した受信方向及び前記距離検出ステップにより算出した距離を保存する隣接情報管理ステップと、隣接装置からの第1のポテンシャル変数、第2のポテンシャル変数、受信方向及び距離、並びに、自装置の第1のポテンシャル変数、第2のポテンシャル変数及び周波数変数から、自装置の第1のポテンシャル変数を第1の所定の計算式により更新し、隣接装置からの第1のポテンシャル変数、受信方向及び距離、並びに、自装置の第1のポテンシャル変数から、自装置の第2のポテンシャル変数を第2の所定の計算式により更新するポテンシャル計算ステップと、自装置の第1のポテンシャル変数、及び第2のポテンシャル変数を隣接装置に送信する情報広告ステップと、自装置の第1のポテンシャル変数と、各隣接装置の第1のポテンシャル変数に基づき所定の機能の実行を行うか否かを判定する判定ステップと、を有し、前記判定ステップは、自装置の第1のポテンシャル変数が、全隣接装置の第1のポテンシャル変数より大きいことを、前記所定の機能の実行を行う条件の1つとする、方法。請求項1から8のいずれか1項に記載の通信装置としてコンピュータを機能させるプログラム。しかしながら、非特許文献1~3は全て、全てのノードの1ホップ内通信範囲内に必ず1台以上センシング機能がonになっているノードが存在するということを実現するものである。逆に言えば、これらは必ず1ホップ以内という条件がつく。また、Sinkノードになる/ならないを制御する提案はほとんどない。つまり、Sinkノードは最初に与えられるものであるということが暗に想定されているからである。したがって、本発明は、センシング機能のon/offやSinkノードになる/ならないという問題を、activeノードになる/ならない、という問題として一般化して考え、上述の問題点である1ホップ以内の条件を排除し、全てのノードのnホップ以内に必ず1台がactiveノードになることを自律分散的に実現するアクティブノード決定方法、該方法のための通信装置およびプログラムを提供することを目的とする。さらに、本発明は、単にactiveノードを選ぶだけではなく、周囲のノードが再近接のactiveノードまでの経路を知ることも可能にする。つまり、一番近いactiveノードに情報をマルチホップで送付するために、各ノードはそれぞれどの隣接ノードに情報を送ればよいかがわかる。上記目的を実現するため本発明による通信装置は、自装置の第1のポテンシャル変数、第2のポテンシャル変数、及び周波数変数を保存する変数管理手段と、自装置と通信リンクにより接続している隣接装置との距離を検出する距離検出手段と、自装置と隣接装置の方向を検出する受信方向検出手段と、通信リンクにより接続している隣接装置の第1のポテンシャル変数、第2のポテンシャル変数を受信し、前記第1のポテンシャル変数、前記第2のポテンシャル変数、前記受信方向検出手段により算出した受信方向及び前記距離検出手段により算出した距離を保存する隣接情報管理手段と、隣接装置からの第1のポテンシャル変数、第2のポテンシャル変数、受信方向及び距離、並びに、自装置の第1のポテンシャル変数、第2のポテンシャル変数及び周波数変数から、自装置の第1のポテンシャル変数を第1の所定の計算式により更新し、隣接装置からの第1のポテンシャル変数、受信方向及び距離、並びに、自装置の第1のポテンシャル変数から、自装置の第2のポテンシャル変数を第2の所定の計算式により更新するポテンシャル計算手段と、自装置の第1のポテンシャル変数、及び第2のポテンシャル変数を隣接装置に送信する情報広告手段と、自装置の第1のポテンシャル変数と、各隣接装置の第1のポテンシャル変数に基づき所定の機能の実行を行うか否かを判定する判定手段とを備えており、前記判定手段は、自装置の第1のポテンシャル変数が、全隣接装置の第1のポテンシャル変数より大きいことを、前記所定の機能の実行を行う条件の1つとする。また、起動した直後、自装置の第1のポテンシャル変数を0以上であり所定の最大値以下の乱数で、自装置の第2のポテンシャル変数を0で初期化する初期制御手段をさらに備えることも好ましい。また、前記初期制御手段は、自装置のX軸方向との方位角を、該方位角と前記受信方向との差が0度、90度、180度、または270度に近づくように設定し、前記受信方向検出手段は、検出した受信方向と方位角との差を受信方向とすることも好ましい。また、前記第1と第2の所定の計算式は、複数の前記通信装置から構成されるネットワークにおける各通信装置の第1のポテンシャル変数を、極大値と極小値が繰り返す様に分布させるものであり、前記極大値と極小値の繰り返し密度は、前記周波数変数により変化することも好ましい。また、A、B、ΔT及びdを正の定数とし、装置iの時刻tでの第1のポテンシャル変数をuxit、uyit、第2のポテンシャル変数をvxit、vyit、及び周波数変数をqitとし、装置iと装置n間の受信方向をθi,n、及び距離をΔdi,nとすると、自装置nの前記第1の所定の計算式は、であり、自装置nの前記第2の所定の計算式は、であることも好ましい。また、前記判定手段は、自装置の第1のポテンシャル変数を更新することによる値の変化を、所定の閾値により大小判定し、変化が小さいことを前記所定の機能の実行を行う条件の1つとするも好ましい。また、前記周波数変数を、自装置の内部又は外部の監視対象の値により決定することも好ましい。また、前記周波数変数を更新するとき、自装置の第1のポテンシャル変数に0以上であり所定の最大値以下の乱数を、自装置の第2のポテンシャル変数に0を設定することも好ましい。上記目的を実現するため本発明による方法は、それぞれが第1のポテンシャル変数、第2のポテンシャル変数及び周波数変数を管理する複数の通信装置を含むシステムにおいて、所定の機能を実行する通信装置を選択する方法であって、自装置と通信リンクにより接続している隣接装置との距離を検出する距離検出ステップと、自装置と隣接装置の方向を検出する受信方向検出ステップと、通信リンクにより接続している隣接装置の第1のポテンシャル変数、第2のポテンシャル変数を受信し、前記第1のポテンシャル変数、前記第2のポテンシャル変数、前記受信方向検出ステップにより算出した受信方向及び前記距離検出ステップにより算出した距離を保存する隣接情報管理ステップと、隣接装置からの第1のポテンシャル変数、第2のポテンシャル変数、受信方向及び距離、並びに、自装置の第1のポテンシャル変数、第2のポテンシャル変数及び周波数変数から、自装置の第1のポテンシャル変数を第1の所定の計算式により更新し、隣接装置からの第1のポテンシャル変数、受信方向及び距離、並びに、自装置の第1のポテンシャル変数から、自装置の第2のポテンシャル変数を第2の所定の計算式により更新するポテンシャル計算ステップと、自装置の第1のポテンシャル変数、及び第2のポテンシャル変数を隣接装置に送信する情報広告ステップと、自装置の第1のポテンシャル変数と、各隣接装置の第1のポテンシャル変数に基づき所定の機能の実行を行うか否かを判定する判定ステップとを有し、前記判定ステップは、自装置の第1のポテンシャル変数が、全隣接装置の第1のポテンシャル変数より大きいことを、前記所定の機能の実行を行う条件の1つとする。本発明のプログラムによれば、上記通信装置としてコンピュータを機能させることを特徴とする。本発明により、システム全体の状況を把握しているような中央集中的なサーバを必要とすることなく、さらに、各ノードがグローバルに一意な識別子を持っている必要はなく隣接ノードだけを区別できれば良い、ネットワーク内の各ノードが隣接ノードとのみ通信するだけで、自律分散的にactiveなノードをほぼ均一な密度で配置できる。また、ネットワークトポロジの変化に応じて自動的にサーバの位置を変化させることができる言い方を変えると、トポロジが変化したかしていないかを、各ノードは全く意識する必要はない。さらに、本発明は、周波数変数変数qに応じてactiveノードの密度を制御することができる。また、各ノードは一番近いactiveノードに至るための次ホップを容易に知ることができる。本発明を実施するための最良の実施形態について、以下では図面を用いて詳細に説明する。図1は、2次元平面上に配置されたセンサーネットワークを示す。センサーノードは対象となる領域全体に一様に配置されている。ここで一様とは、領域の各点が必ず1台以上のノードの通信範囲に含まれ、かつ各ノードが平均4台以上の隣接ノードをもつものとする。隣接ノードとは、あるノードから見て、通信リンクにより接続されているノードを意味するものとする。つまり、図1の縦線で塗り潰された四角形に対応するノードは、図1の斜線で塗り潰された四角形に対応するノードの隣接装置である。本発明では、ポテンシャルという概念を各ノードに導入する。ポテンシャルは物理世界で言う静電ポテンシャルや重力ポテンシャルと類似の概念であり、具体的には各ノードが保持するひとつの変数である。センサーノードは2次元平面に一様に配置されていることから、ネットワーク全体を2次元ユークリッド空間とみなす。各ノードが変数の値ポテンシャルの値を状況に応じて変化させることによって、波状の形状のポテンシャルの空間的な分布ポテンシャルの山や谷が形成される。そして、山の頂上になっているノードがactiveノードになる。また、他のノードはポテンシャルの坂を上る方向最急の方向に次ホップを選んでパケットを転送することで、最近接のactiveノードにパケットを送付することができる。本発明ではポテンシャルの空間分布の形状を正弦波をベースにした形状にすることにより、規則正しく山の部分を出現させ、等間隔にactiveノードが選ばれるようにする。図2に、本発明で発生させる正弦波をベースにしたポテンシャルの空間分布の例を示す。なお、図2では、x、y方向は2次元ユークリッド空間のx、y方向であり、z方向は各点すなわち各ノードにおけるポテンシャルの値を示している。数式で表すと式1のように表現できる。なお、ux,yは座標x,yのノードのポテンシャルの値であり、Cは振幅、qは周波数、θx、θyは位相である。なお、θx、θyは0~2πの乱数である。本発明は、式1のようなポテンシャルの空間分布を自律分散的に形成するための方法である。図3は、本発明のノードの内部構成を示す。本ノードは、受信方向検出部1、距離検出部2、変数管理部3、初期化制御部4、隣接情報管理部5、ポテンシャル計算部6、情報広告部7、active判定部8及びパケット受信部9を備えている。なお、本発明のノードは以下の情報を保持している。周波数変数変数q:activeノードの間隔を決めるための値である式1のqに対応する。この値は、システム設計者がノードにプリセットする。または、ノード上で動作している他のアプリケーションプロセス等から値をセットしても良い。ポテンシャル変数:4つの要素変数ux、vx、uy、vyからなる配列であるそれぞれの変数はスカラ量とする。本明細書中では、特に一方の要素だけを指し示す場合には変数uxやvxなどと呼び、全ての変数を指し示す場合にはポテンシャル変数と呼ぶ。ポテンシャルの空間的な分布とは、具体的にはuxuyの値のネットワーク上での分布を指す。X軸方位角変数変数φ:自ノードにとってのX軸方向X軸の正の方向と自ノードの0度方向との偏角の値である。基準距離変数d:全ノード共通に適当な小さな正数である。各ノードは事前にこの値を保持している。ノードが備えている距離検出部2の性能に基づいて決めてもよい例えば電波強度を利用した距離検出なら、電波強度と実距離の関係からdの値を算出する等。自ノードID:IPアドレスなど。隣接ノードを一意に識別するためのIDである。隣接ノードのノードID:これは、最も近いサーバへアクセスする際に、次ホップのノードを指定するために必要となる。受信方向検出部1は、パケット送信元ノードの方向を検出する。受信方向検出は既存の方式アンテナアレーや超音波を用いる方法を用いる。受信方向検出部1から得られる結果は次のようなものである。各ノードはそれぞれ基準となる方向0度方向を持っており、受信方向とはパケット送信元ノードの方向と0度方向のなす角度0~2πである。ただし、各ノードの0度方向が同一の方向を向いている保証はない。仮に、受信方向検出部1が絶対方向を検出可能であれば、例えば真北を0度方向と考えればよいこの場合は全ノードが同じ方向を0度方向と見なすことができる。距離検出部2は、パケット送信元ノードとの距離を検出する。距離検出も既存の方式パケット受信強度やラウンドトリップタイムを用いる方法を用いる。距離検出部2から得られる結果は次のようなものである。各ノードはある基準距離全ノードが事前に同じ値を知っているに対する相対距離の値を、パケット送信元ノードと次ノードの距離として取得する。もちろん相対距離の値と絶対距離が一致するように基準距離を選ぶことも可能であるが、本発明では特に制限しない。変数管理部3は、ノード自身のポテンシャル変数ux、uy、vx、vyおよび周波数変数qを保持する。初期化制御部4は、周波数変数qの変化を監視し、変化を検出した際に自ノードの変数ux、uyを乱数で、変数vx、vyを0で初期化する。また、自ノードのX軸方向0度方向からの偏角を決定する。隣接ノードからの広告の内容ノードIDと受信方向の紐付けを保持するための方位角初期化テーブルをもつ。隣接情報管理部5は、隣接ノードから広告されるポテンシャル変数の値、受信方向と距離を、ノードIDと紐付けて保持する。ポテンシャル計算部6は、ノードが持つポテンシャル変数の値を、隣接ノードのポテンシャル変数の値や自身の変数qおよびポテンシャル変数の値に応じて時々刻々変化させる更新する。情報広告部7は、自身のポテンシャル変数の値を隣接ノードに広告する。active判定部8は、隣接ノードの変数uxuyの値同士を比較し、ノードをactiveにするかどうかを判断する。何の機能をactiveにするかは本発明の範囲外であるパケット検出部9は、隣接ノードからパケットを受信する。受信したパケットから変数ux、uy、vx、vyを抽出して、隣接情報管理部5に渡す。また、距離検出および受信方向検出のため、受信したパケットを受信方向検出部1および距離検出部2に渡す。最初に、本発明のノードの初期化について説明する。ノードが起動した直後、各ノードは、ポテンシャル変数の初期化とX軸方位角変数の初期化を行う。ポテンシャル変数の初期化ノードが起動した直後は、初期化制御部4が変数ux、uyに乱数を、また変数vx、vyに0をセットする。初期化制御部4が発生する乱数は0以上RAND_MAX以下までの範囲とする。なお、RAND_MAXは適当な実数定数であり、設計時に設定しておく。X軸方位角変数の初期化ノードが起動した直後は、それぞれ何らかの方向を0度方向としている。本発明では、0度方向とは異なる方向をX軸方向とすることができる。その理由を以下に示す。受信したパケットの送信元ノード=隣接ノードの方向受信方向をθとする。なお前述の通り、θはその受信ノードの0度方向とのなす角である。本発明の方式では、θが45、135、225、315度からなるべく離れることが望ましいつまり、0、90、180、270度に近いほどよい。これはネットワークトポロジがきれいな格子状であるほど本方式がうまく動作するためであり、各ノードにとっては0度、90度などの方向から受信するということがきれいな格子状であることに相当する。各ノードには複数台の隣接ノードが存在するので、そのいずれの受信方向についてもθが45、135、225、315度からなるべく離れるようにする必要がある。これを満たすために、X軸方位角変数の初期化時に次のような処理を行う。1ノードは起動直後からINIT_DURATION秒間、適当な時間間隔ごとに広告をbroadcastする広告の内容は情報広告部7でポテンシャル変数を広告するためのものと同じでよい。この広告の目的は、隣接ノードに対して自身の存在を広告するためのものである。適当な時間間隔とは、INIT_ADV_INTERVALの値に対して、INIT_ADV_INTERVAL0.5秒~INIT_ADV_INTERVAL1.5秒までの間の乱数とする。2ノードは起動直後からINIT_DURATION秒間の間、隣接ノードから広告を受け取る。広告受信時には受信方向が得られるため、送信元ノードのIDと受信方向の角度の値を紐づけて、方位角初期化テーブルに登録する同じノードから受け取った場合はテーブルに上書きする。3INIT_DURATION秒後に、以下に示すX軸方位角決定手順を実施し変数φを確定する。確定した変数φの値を隣接情報管理部5に通知する。なお、センサーノードがきれいな格子状に配置され、ネットワークトポロジもきれいな格子状になっていて、各ノードの0度方向が必ずいずれかの隣接ノードの受信方向になるようにシステムがセットアップされている場合には、上記の手順を省きφ=0と設定することも可能である。X軸方位角決定手順方位角初期化テーブルに登録されている受信各情報がθ1、θ2~θnだとする。ノードは、これらの中から一つを選んでそれをX軸方位角変数φとする。選択のための擬似コードを以下に示す。なお、ここではθ1、θ2~θnの単位はラジアン0~2πであるものとする。擬似コード1:配列args[n]の初期化要素1~nまで2:fori=1;i≦n;i{3:args[i]=0;4:forj=1;j≦n;j{5:ifj==i{continue;}//スキップする。6:args[i]=args[i]sin22θj-θi;7:}8:}9:配列args[]から最小値を探すargs[x]が最小値だとする。複数候補がある場合は適当に選ぶ。10:最小値を取る要素xとなるようなθxをX軸方位角変数φとする。なお、6行目では、θj-θiの値がπ/4mπ/2つまり4590m度に近いものほどargsの値が大きくなるようにしているmは整数。次に、本発明のノードの処理について説明する。本発明では、時間の概念をステップに離散化して考え、適当なステップごとに何らかの処理を行う。つまり、各ノードは実時間のある単位時間例えば10msなどを1ステップとして時間を進めていくものとする。本明細書ではステップと時刻を同等の意味で用いる。また、1ステップの時間間隔をIcとする。なお、ノード間で時刻同期している必要はない。ある時刻t=Tを基点としてノードの処理の流れを以下に示す。なお、下記の手順0は時刻に関係なく行う処理である。0隣接情報管理部5は、隣接ノードが広告したポテンシャル変数の値を受信し、記録していく。ここで、隣接ノードのノードIDとそのノードまでの距離と受信方向およびポテンシャル変数の値を紐付けて管理記録する。なお、検出した受信方向をθとした場合、記録するのはX軸方位角を引いた値つまりθ-φとする。また、初期化制御部4は、周波数変数qの値の変化を監視する。変数qの値が変化したとき、初期化制御部4は変数ux、uyに乱数を、また変数vx、vyに0をセットする。1[時刻t=T]ポテンシャル計算部6は、隣接情報管理部5にあるすべてのノードに関する変数vx、vyの値および削除マークのついた変数ux、uyの値を取得する。さらに、変数管理部3から自ノードの変数ux、uy、vx、vyの値と変数qの値を取得する。それらの情報を用いて、自ノードの変数ux、uyの値を更新する更新の詳細は後述する。更新したux、uyの値を変数管理部3に渡す。また、更新前の情報を直前情報としてactive判定部8に渡す。2[時刻t=T]隣接情報管理部5は、管理しているすべてのノードに関する変数vx、vyの情報だけ削除する。また、削除マークのついた変数ux、uyの情報を削除する。3[時刻t=T]情報広告部7は、時刻t=TIaIaは広告間隔のとき、自身の変数ux、uyの値を変数管理部3から取得し周囲へ広告broadcastする。なお、Ia=Na2Icとし、変数ux、uyの計算Na回ごとに1回広告を行う。4[時刻t=TIs]active判定部8は、変数管理部3から自ノードの変数ux、uyの値を、隣接情報管理部5からすべてのノードに関する変数ux、uyの値を取得し、それを用いてactiveになるかどうかを判定する判定の詳細は後述する。なお、Is=Ns2Icとし、変数ux、uyの計算Ns回ごとに1回判定を行う。5時刻がIcつまり1ステップ分進む。6[時刻t=TIc]ポテンシャル計算部6は、隣接情報管理部5にあるすべてのノードに関する変数ux、uyの値を取得する。さらに、変数管理部3から自ノードの変数ux、uyを取得する。これらの値から、自ノードの変数vx、vyの値を更新する更新の詳細は後述する。更新した変数vx、vyの値は変数管理部3に渡す。7[時刻t=TIc]隣接情報管理部5は、管理しているすべてのノードに関する変数ux、uyに削除マークをつける。8[時刻t=TIc]情報広告部7は、時刻t=TIcIaIaは広告間隔のとき、自身の変数vx、vyの値を変数管理部3から取得し周囲へ広告broadcastする。なお、変数vx、vyの広告は、手順3で変数ux、uyの広告を行った直後のステップのみとするつまり、必ず変数ux、uyと変数vx、vyの広告が連続するステップで起こる。9時刻がIcつまり1ステップ分進む。101へ戻り処理を繰り返す。図4にNa=1、Ns=2の場合における、上記1~10の処理タイミングを示す。次に、ポテンシャル変数の計算方法を示す。上述のように、各ノードが持つ変数ux,uyおよびvx,vyは時々刻々変化する。本発明では、これらの変数の値を以下に示す式2~式5の差分方程式によって算出する。式2、式4は、時刻t2Icにおいて実施される計算、式3、式5は時刻tIcにおいて実施される計算を示している。なお、式2~式5は、ある時刻tにおいて、変数ux,uyが計算されていたということを前提としている。uxit、uyit、vxit、vyit、qitはそれぞれ、ノードiの時刻tにおける変数ux,uy,vx,vy,qの値を表す。uxntは時刻t-Ic~時刻tIcの間にノードiが隣接ノードから受信した変数uxの値であるuyntも同様。vxitIcはノードiが時刻tIcで算出した自ノードの変数vxの値であるvyitIcも同様。vxntは時刻t~時刻t2Icの間にノードiが隣接ノードから受信した変数vxの値であるvyntも同様。A,Bは正の定数で、ΔTは時間を離散化するための小さな値ΔT=Icとしてもよい、dは基準距離であり、これらはすべてのノードに共通であるΔTおよびΔdは、偏微分方程式を数値計算するために一般的に行われる離散化に必要な固定の値である。Δdi,nはノードiからノードnまでの距離距離検出部2で取得した距離を表す。A、B、Δd、ΔTの値のバランスによって、変数uの値のネットワーク内での空間分布つまりポテンシャルの空間分布が定常状態になるまでの時間が変わる。θi,nはノードiがノードnからパケットを受信したときの受信方向単位はラジアンとするである。上述の式2~式5は、2次元ユークリッド空間における以下の連立偏微分方程式式6を、時間1階空間2階の偏微分方程式と、空間2階の微分方程式の連立微分方程式に分割し、それらを時間および空間について離散化した式である。なお、uxx、y、tはuxit、uyx、y、tはuyit、qはqitにそれぞれ対応しており、定数A,Bは式2~式5のものと同じである。次に、手順4にて行うactive判定の処理について述べる。まず、active判定部8は、直前の自ノードの変数uxと変数uyの和の値を記憶しておくものとする。つまり、1で時刻T2Icにおいてuxit2Icおよびuyit2Icを算出したときに、時刻Tにおけるuxituyitを直前情報これを変数u、つまりuit=uxituyitとするとしてポテンシャル計算部6から取得する。active判定部8は判定に先立ち、変数uitの時間変化率gをチェックする。時間変化率gは以下に示す式7で求まる。得られた時間変化率gの絶対値が閾値Gthreshとする以下である場合にのみ以下の判定を行う。active判定部8は、変数管理部3から自ノードの変数ux,uyの値を、隣接情報管理部5からすべてのノードに関する変数ux,uyの値を取得する。以下では、変数u=uxuyとする。自ノードの変数uの値と、他のノードの変数uの値の値との比較を行い、すべての変数uの中で自ノードの変数uの値が最大であった場合、そのノードはactiveになる。最大ではなかった場合は非activeとなる。active、非activeの判定情報は、他のアプリケーションプロセスへ通知されるまたは他のアプリケーションプロセスから読み出される。そのアプリケーションプロセスはactive、非activeの判定に応じて動作を決定する。時間変化率gがGthreshよりも大きければ、active判定部8は非activeと判定する。active判定に時間変化率gの絶対値に閾値を設けるのは以下の理由による。本発明の手法は、時々刻々とポテンシャルの空間分布を変化させ、ある程度の時間が経過すると定常状態になり空間分布がほとんど変化しなくなる。ポテンシャルの空間分布が定常状態であるかどうかを判別するために時間変化率gの絶対値を閾値として用いる。閾値Gthreshは理想的には0であるが、現実的には0になることはなく、ある程度の値例えばRAND_MAX/2Ic0.0001にしておく必要がある。これが低すぎるとなかなかどのノードもactiveにならず、大きすぎると多数のノードで無駄に多くのノードがactiveになる可能性がある。次に、activeノードへの経路について説明する。本発明では、activeノードを頂上とする変数uつまりuxuyの山状の空間的な分布が生成される図1。従ってその周囲のノードは、変数uの山の傾きに沿って山を登る方向に移動すれば山の頂上、すなわちactiveノードに到達することができる。従って、もしあるノードが一番近いactiveノードにアクセスしたいときパケットを送りたいときには、そのノードは隣接ノード群の中から変数uの値が最大であるようなノードを選び、そのノードにパケットを送付すればよい送り先が次ホップである。パケットを受信したノードは同様に次ホップを選んで送付していけば、activeノードにパケットが到達する。なお、万一複数の隣接ノードの変数uの値が最大値となる同一の値を持っていた場合、それらのいずれを次ホップとしても良い。また、以上述べた実施形態は全て本発明を例示的に示すものであって限定的に示すものではなく、本発明は他の種々の変形態様および変更態様で実施することができる。従って本発明の範囲は特許請求の範囲およびその均等範囲によってのみ規定されるものである。"