(57)【特許請求の範囲】
【請求項１】
コンピュータを備える制御装置であって、
前記コンピュータが、
各制御対象について現在の状況に関するデータである現在データを外部装置から取得する現在データ取得部と、
前記各制御対象を表すよう、前記現在データに基づくノードである現在ノードを生成してノード格納部に格納するとともに、前記制御対象間の関係性を表すよう前記現在ノード間を接続してトポロジーを構成する現在ノード管理部と、
前記各制御対象についての過去の状況に関するデータである過去データと、前記現在データとに基づく学習を利用することにより、前記各制御対象について予測される未来の状況に関するデータである予測データを算出する予測部と、
前記各制御対象に対応させて、前記予測データに基づくノードである補正ノードを生成して前記ノード格納部に格納するとともに、前記制御対象間の関係性に基づいて、前記現在ノードおよび前記補正ノード間をさらに接続して前記トポロジーを再構成する補正ノード管理部と、
前記各現在ノードについて、該ノードに接続されたノードであって、該ノードと異なる前記現在ノードと、該ノードと異なる前記現在ノードが表す制御対象に対応する前記補正ノードとを示す他のノードから得られる情報を利用して、該ノードが表す制御対象に対する次の制御値を算出する次制御値算出部と、
前記各現在ノードについて算出された前記次の制御値に基づいて、前記各制御対象を制御する制御部と、
を備え、
前記現在ノード管理部は、前記現在ノードに、前記現在データに基づく評価関数および現在の制御値を設定し、
前記補正ノード管理部は、前記補正ノードに、前記予測データに基づく評価関数および予測される制御値を設定し、
前記他のノードから得られる情報には、前記他のノードにおける前記評価関数および前記制御値に基づいた評価値が少なくとも含まれ、
前記次制御値算出部は、前記各現在ノードについて、前記他のノードから得られた前記評価値に基づいて、前記評価関数を用いた逆算により、前記次の制御値を算出する
制御装置。
【請求項２】
前記補正ノード管理部は、前記各現在ノードと、該現在ノードに接続された他の現在ノードが表す制御対象に対応する前記補正ノードとを接続することを特徴とする請求項１に記載の制御装置。
【請求項３】
前記予測部は、前記各制御対象について、未来の所定時点における状況に関して前記予測データを算出することを特徴とする請求項１または請求項２に記載の制御装置。
【請求項４】
前記制御部は、前記各現在ノードについて算出された前記次の制御値に基づいて制御対象を選択し、選択した制御対象に対して、前記次の制御値に基づく制御を行い、
前記予測部は、前記各制御対象について、該制御対象が前記制御部によって選択されて制御されたと仮定した場合の前記予測データを算出することを特徴とする請求項１から請求項３のいずれか１項に記載の制御装置。
【請求項５】
前記過去データを保存する過去データ保存部をさらに備えることを特徴とする請求項１から請求項４のいずれか１項に記載の制御装置。
【請求項６】
コンピュータが、
各制御対象について現在の状況に関するデータである現在データを外部装置から取得し、
前記各制御対象を表すよう、前記現在データに基づくノードである現在ノードを生成してノード格納部に格納するとともに、前記制御対象間の関係性を表すよう前記現在ノード間を接続してトポロジーを構成し、
前記各制御対象についての過去の状況に関するデータである過去データと、前記現在データとに基づく学習を利用することにより、前記各制御対象について予測される未来の状況に関するデータである予測データを算出し、
前記各制御対象に対応させて、前記予測データに基づくノードである補正ノードを生成して前記ノード格納部に格納するとともに、前記制御対象間の関係性に基づいて、前記現在ノードおよび前記補正ノード間をさらに接続して前記トポロジーを再構成し、
前記各現在ノードについて、該ノードに接続されたノードであって、該ノードと異なる前記現在ノードと、該ノードと異なる前記現在ノードが表す制御対象に対応する前記補正ノードとを示す他のノードから得られる情報を利用して、該ノードが表す制御対象に対する次の制御値を算出し、
前記各現在ノードについて算出された前記次の制御値に基づいて、前記各制御対象を制御し、
前記トポロジーを構成する処理において、前記現在ノードに、前記現在データに基づく評価関数および現在の制御値を設定し、
前記トポロジーを再構成する処理において、前記補正ノードに、前記予測データに基づく評価関数および予測される制御値を設定し、
前記他のノードから得られる情報には、前記他のノードにおける評価関数および制御値に基づいた評価値が少なくとも含まれ、
前記次の制御値を算出する処理において、前記各現在ノードについて、前記他のノードから得られた前記評価値に基づいて、前記評価関数を用いた逆算により、前記次の制御値を算出する
制御方法。
【請求項７】
各制御対象について現在の状況に関するデータである現在データを外部装置から取得する現在データ取得ステップと、
前記各制御対象を表すよう、前記現在データに基づくノードである現在ノードを生成してノード格納部に格納するとともに、前記制御対象間の関係性を表すよう前記現在ノード間を接続してトポロジーを構成する現在ノード管理ステップと、
前記各制御対象についての過去の状況に関するデータである過去データと、前記現在データとに基づく学習を利用することにより、前記各制御対象について予測される未来の状況に関するデータである予測データを算出する予測ステップと、
前記各制御対象に対応させて、前記予測データに基づくノードである補正ノードを生成して前記ノード格納部に格納するとともに、前記制御対象間の関係性に基づいて、前記現在ノードおよび前記補正ノード間をさらに接続して前記トポロジーを再構成する補正ノード管理ステップと、
前記各現在ノードについて、該ノードに接続されたノードであって、該ノードと異なる前記現在ノードと、該ノードと異なる前記現在ノードが表す制御対象に対応する前記補正ノードとを示す他のノードから得られる情報を利用して、該ノードが表す制御対象に対する次の制御値を算出する次制御値算出ステップと、
前記各現在ノードについて算出された前記次の制御値に基づいて、前記各制御対象を制御する制御ステップと、
をコンピュータ装置に実行させ、
前記コンピュータ装置に、
前記現在ノード管理ステップにおいて、前記現在ノードに、前記現在データに基づく評価関数および現在の前記制御値を設定させ、
前記補正ノード管理ステップにおいて、前記補正ノードに、前記予測データに基づく評価関数および予測される前記制御値を設定させ、
前記他のノードから得られる情報には、前記他のノードにおける評価関数および制御値に基づいた評価値が少なくとも含まれ、
前記次制御値算出ステップにおいて、前記各現在ノードについて、前記他のノードから得られた前記評価値に基づいて、前記評価関数を用いた逆算により、前記次の制御値を算出させる
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御対象を自律分散適応的に制御する技術に関する。
【背景技術】
【０００２】
近年、モノのインターネット（ＩｏＴ：Internet of Things）に関連する技術が発展してきている。ＩｏＴとは、様々なモノがインターネットに接続する機能を持ち、それらのモノ同士がリアルタイムに情報交換することで、実世界の把握や制御を行う仕組みである。クラウドやスマートフォンの急速な普及により、ＩｏＴを活用し、全ての機器やセンサーから実世界の情報を取得して新たな価値を作り出す環境が整い始めている。例えば、オンデマンドバスの車載ＧＰＳ（Global Positioning System）を用いて、リアルタイムに車両の位置を把握することができる。このオンデマンドバスの全車両の位置情報を用いて、乗り場にいる乗客に合わせて最適な配車を行うことが可能になる。
【０００３】
しかし、ゲリラ豪雨の時にオンデマンドバスの最適配車を制御することは、既存の技術では難しい。なぜなら、数理計画などの既存の技術では、実世界の対象（モノ・人など）を制御するためには、全体を制御するルールの作成・最適化計算・制御計画が必要となるからである。このような既存の技術では、短時間のうちに環境変動を反映させてこれらの複雑な計算を行うことが難しい。
【０００４】
この問題を解決するために、自律分散適応制御技術を利用することが考えられる。この技術は、複雑な制御ルールを作ることなく、環境変動に適応して個々の制御対象を制御し、全体的な最適状態をダイナミックに作りだす。この技術は、制御数学原理を応用して、制御対象間で情報交換を行うとともに、制御対象の個別制御を繰り返すことで、全体的な最適状態を得る。この技術を用いることにより、制御対象に関する現在の情報を用いて、様々な人・モノを制御することが可能となる（特許文献１〜３参照）。
【０００５】
自律分散適応制御技術の概要を図１５に示す。図１５において、実世界における制御対象は、計算機上に実現されたノードにマッピングされる。なお、図１５において、点線は、制御対象およびノードのマッピングを表している。また、制御対象間で様々なリソースを交換できる状況が、ノード間の接続（トポロジー）として表現される。なお、図１５において、実線の矢印は、ノード間の接続を表している。そして、各ノードは、マッピングされた制御対象に関する現時点での様々なデータを入力として取得する（ステップ１）。例えば、そのようなデータは、実世界に配置されたセンサーやカメラ、ＧＰＳなどの各種機器から取得される。そして、各ノードは、取得したデータに基づいて、隣接ノードと情報を交換することにより、マッピングされた制御対象に関する最適な状態を計算して次の制御値を算出する（ステップ２）。そして、各ノードは、制御対象に対して次の制御値を出力する（ステップ３）。このように、自律分散適応制御技術を用いることにより、実世界の人やモノを制御するシステムを実現することが可能である。
【０００６】
詳細には、自律分散適応制御技術では、図１６に示すように、各制御対象にマッピングされたノードに、評価関数が割り当てられる。評価関数は、制御に関するパラメータ（以下、制御値という）を横軸にとり、全体の最適状態に関連する指標を縦軸にとる関数である。なお、評価関数は、上または下に凸な関数であることが望ましいとされている。各ノードは、その制御対象について評価関数に基づき現時点の評価値を算出する。なお、評価関数が凸関数である場合、評価値としては、該当ノードの現時点の制御値における評価関数の微分値が適用される。そして、各ノードは、隣接ノードとの間で評価値を送受信する。そして、各ノードは、隣接ノードの評価値に基づいて自ノードおよび隣接ノード間で評価値を等しくするような次の制御値を求める。そして、各ノードは、算出した次の評価値を隣接ノード間で送受信し、隣接ノードの次の評価値に基づいてさらに次の制御値を求める計算を繰り返す。このように、自律分散適応制御技術では、ノード毎に、隣接ノードとの間で評価値を送受信して評価値を等しくする個別計算を繰り返すことにより、徐々に全体最適になることが保証されている。これは、全ての凸関数の評価値が等しくなるとき、指標の総和が最適化される数学の定理を利用している。
【０００７】
このような自律分散適応制御技術では、トポロジーを動的に変更することが可能である。トポロジーの動的変更は、ノードの接続を変えることで実現される。これにより、自律分散適応制御技術を用いて、実世界のリアルタイムな状況の変化をトポロジーに反映させ、その時点での最適な状態を常に計算することができる。
【０００８】
例えば、自律分散適応制御技術を適用したオンデマンドバスシステムについて説明する。この場合、各バスは、制御対象としてノードにマッピングされる。また、ノード間は、各バスの現在地情報等に基づき接続される。そして、各ノードには、現在の実世界の状況に基づく評価関数が割り当てられる。ここで、評価関数は、乗客数を制御値として横軸にとり、移動効率（乗客数×移動速度）を縦軸にとる上に凸な関数として設定される。そして、各ノードは、現在の乗客数や移動速度、現在置等のデータに基づいて、評価値を算出する。そして、各ノードは、隣接ノードとの評価値の送受信および個別計算を繰り返す。これにより、システムは、各ノードについて算出される次の制御値に基づいて、バス乗り場に移動させるバスを選択して制御することができる。そして、システムは、そのような制御を繰り返すことにより、全体の移動効率（バスの乗客数×移動速度）を最適化する。
【０００９】
このようなオンデマンドバスシステムの一例を図１７に示す。図１７に示すように、あるエリアにいる待機乗客（１０人）と、バスＡ〜Ｃとが存在すると仮定する。ここでは、バスＡ〜Ｃは、それぞれノードＡ〜Ｃにマッピングされている。また、ノードＡ〜Ｃは、自身に設定された評価関数および現時点のデータに基づいて、バスＡ：評価値３、バスＢ：評価値１、バスＣ：評価値２をそれぞれ算出したとする。ここで、各ノードは、隣接ノードの評価値を取得して自ノードおよび隣接ノード間の平均評価値を算出する。ここでは、ノードＡ〜Ｃ共に、平均評価値として２を算出する。そこで、ノードＡ〜Ｃは、それぞれの評価関数を用いて評価値が２となるような次の制御値（乗客数）を逆算により求める。この例では、制御値を増やすと評価値が減少する。したがって、現在の評価値が３であるノードＡは、評価値２に減少させるため次の制御値として現時点より増加した値を出力することになる。また、現在の評価値が１であるノードＢは、評価値２に増加させるため次の制御値として現時点より減少した値を出力することになる。また、現在の評価値が２であり既に平均評価値となっているノードＣは、次の制御値として現時点と同一の値を出力することになる。そこで、システムは、次の制御値が増加しているノードＡに対応するバスＡを選択してバス乗り場に移動させる制御を行う。これにより、全体の移動効率が最適状態に近づくことになる。この例のように、自律分散適応制御技術は、現時点での実世界データを各ノードの評価関数に反映し、ノード間で評価値を送受信した上で各ノードに個別計算を実行させて次の制御値を算出することで、全体の最適化を行うことができる。
【００１０】
このような自律分散適応制御技術は、現在の実世界データだけで最適制御を行うことができるが、以下の課題がある。
【００１１】
自律分散適応制御技術は、現在の実世界データのみを考慮し、予測可能な未来の事象を考慮しないため、適切な対応ができないことがある。例えば、上述のオンデマンドバスシステムは、乗り場に移動させるバスを選択する際に、選択するバスがその後乗り場まで移動する途中に発生する渋滞（未来の事象）を考慮しない。このように、自律分散適応制御技術は、未来の渋滞情報を用いないため、不適切なバスを選択する可能性がある。
【００１２】
また、自律分散適応制御技術は、隣接ノード間で評価値が同じ場合には、適切な対応ができない。これは、評価値を交換して各ノードで個別計算を行っても、現在の制御値と同じ次の制御値が算出されるからである。例えば、上述のオンデマンドバスシステムにおいて、各ノードの評価値が同一であったとする。この場合、各ノードは、評価値の交換と次の制御値の算出を行っても、現在の制御値と同一の値を算出することになる。つまり、どのバスについても、現在の乗客数が最適であると計算される。このため、システムは、バスＡ、Ｂ、Ｃのいずれの乗客数を増やしたほうが良いのか、あるいは、減らしたほうが良いのかを判断することができず、バス乗り場に移動させるバスを決めることができない。
【００１３】
上述の問題に対応するため、例えば、各バスについて、その位置情報に基づき制御値を補正することが考えられる。例えば、システムが、バス乗り場から一番近いバスに対応するノードの制御値を補正することにより、一番近いバスをバス乗り場に向かわせることもできる。しかしながら、この場合も、前述したように、選択したバスが移動している間に状況が変わり、渋滞に巻き込まれて効率が悪くなる可能性がある。
【００１４】
また、上述の問題に対応するため、過去履歴や現在の状況を用いて統計処理を行い、未来を予測した予測データに基づく評価関数を設定して制御することが考えられる。しかし、この場合、システムは、未来の予測データを用いて制御を行うため、現在の実世界データを考慮しない。このため、実世界における突発的な問題発生に対応することが難しくなる。例えば、過去履歴や現在状況に基づき未来の渋滞などを予測したデータをもちいてバスＡが選択されたとする。この場合に、バスＡが乗り場までの移動途中に事故に巻き込まれたとしても、システムは、その状況を現在の実世界データとして考慮することができない。このように、未来の予測データをもちいた制御は、実世界における突発的な環境変動に対応できない。
【００１５】
そこで、自律分散適応制御技術において、現在の実世界のデータを反映させた評価関数を、予測データを利用して補正することが考えられる。例えば、過去の乗客数や交通状況などを用いた予測データに基づいて、現在の状況に基づく評価関数を補正することにより、より適した制御対象の選択が可能となる。
【００１６】
しかしながら、予測データを利用して、現在の実世界データを反映させた各ノードの評価関数を補正する場合、次の問題が発生する。この場合、予測データに基づく補正をどれ位の割合で行うかを決定することが難しい。例えば、オンデマンドバスシステムの場合、各ノードの制御値（乗客数）を、予測データを利用して次式により補正することが考えられる。
【００１７】
乗客数＝補正係数α×現乗客数＋補正係数β×予測乗客数
このような補正式において、補正係数αやβは、制御対象のアプリケーションやソリューション、時間帯等の様々な要素に基づいて設定される必要がある。しかしながら、そのような要素に基づき最適な補正係数を指定することは難しい。また、このような補正係数は、アプリケーションやソリューション、時間帯等といった用途や状況に依存するものとなり、他の用途や状況において適用できない。また、補正係数自体を予測することも考えられるが、補正係数の算出をモデル化することは難しい。また、未来の予測データで評価関数を補正した場合、現時点での実世界データを反映した評価関数が上書きされてしまい、元に戻すことが難しい。
【００１８】
このように、未来の予測データを利用して、現在の状況を反映した評価関数を補正する場合は、補正係数や補正方法などを決定することが難しく、たとえ指定できたとしても特定の用途や状況に依存するために汎用性がないという問題がある。
【００１９】
このような自律分散適応制御技術における問題に関連する技術の一例が、特許文献４〜１０に記載されている。
【００２０】
特許文献４に記載された関連技術は、自律分散制御ノードからなる仮想ネットワークにおいてコンテンツの流通経路を最適化する。この関連技術は、隣接ノードリストと、隣接ノードに接続されている候補ノードリストとを保持している。そして、この関連技術は、接続中の各隣接ノードについて、接続確認用のデータが往復するのに要した往復時間を測定する。そして、この関連技術は、測定で得られた往復時間に基づいて、隣接ノードリストを並べ替え、対応する往復時間が長い方から所定数の隣接ノードとの接続を選択的に切断する。そして、この関連技術は、候補ノードリストから所定数の候補ノードを選択して、接続を切断したノードの代わりに接続する。
【００２１】
特許文献５に記載された関連技術は、過去の電力需要量の実績値や気象データに基づいて構築した予測モデルを用いて、予測対象日の電力需要量を予測する。具体的には、この関連技術は、予測対象日よりも前の一定期間に関する予測モデルの出力、電力需要量の実績値、気象データを用いて構築されたファジィ推論モデルにより、予測モデルの出力を補正する。
【００２２】
特許文献６に記載された関連技術は、センサネットワークを構成するセンサノードの消費電力を制御する。このセンサノードは、太陽電池により発電されバッテリーに充電された電力で駆動される。具体的には、この関連技術は、対象となるセンサノードと該センサノード周辺に配置されたセンサノードとにより取得した環境情報データに基づいて、センサノードが配置されている地点の今後の日照量を予測する。また、この関連技術は、センサノードを駆動するバッテリーの残電力量を取得する。そして、この関連技術は、予測した日照量と、取得した残電力量とに基づいてセンサノードの動作周期あるいはセンサノードが取得する環境情報データの数を設定することにより、センサノードの消費電力を制御する。
【００２３】
特許文献７に記載された技術は、プロセス制御において、複数のフィールドデバイスを用いた統合的な制御動作を行うために、パラメータ生成やモデル生成を行う。この関連技術は、プロセス制御を行う１つまたは複数の機能ブロックからリアルタイムにプロセス制御の生データを受け取り、受け取ったデータに基づいて予測モデル生成やパラメータ生成等の解析アルゴリズムを実行する。そして、この関連技術は、解析結果を各機能ブロックに返却する。
【００２４】
特許文献８に記載された技術は、大気汚染の制御システムにおいて汚染物質の排出を制御する。この関連技術は、汚染物質である二酸化硫黄の除去効果を保証するため、二酸化硫黄を吸収させた懸濁液の水素イオン指数（ｐＨ）を所定の範囲内に保つよう各種パラメータを制御する。
【００２５】
特許文献９に記載された技術は、プラントにおいて制御対象に対して所定の操作信号を与えることにより得られる計測信号の値が、運転目標値に収まっていくようにするのに必要な操作信号を生成する。このとき、この関連技術は、計測信号の値を予測するモデルから得られる予測結果が、モデル出力目標値に収斂するように、モデル入力を学習する。そして、この関連技術は、学習結果に基づいて、制御対象に与える操作信号を生成する。そして、この関連技術は、得られた計測信号を計測信号データベースに保存しておき、それらの平均と分散に基づいて、さらに操作信号を修正する。
【００２６】
特許文献１０に記載された関連技術は、制御対象を制御するための制御モジュールを進化型計算手法により進化させることで最適化する。この関連技術は、最適化処理中の各個体に対する評価値を、個体を使用する利用者の入力により取得する。
【先行技術文献】
【特許文献】
【００２７】
【特許文献１】国際公開第２０１２／１６０９７８号
【特許文献２】国際公開第２０１３／０３２０２６号
【特許文献３】国際公開第２０１３／１４６３９５号
【特許文献４】特開２００５−２１０４６１号公報
【特許文献５】特開平１１−１１９８０５号公報
【特許文献６】特開２０１２−８０６２２号公報
【特許文献７】米国特許第７７３８９７５号明細書
【特許文献８】国際公開第２００６／０２６０５９号
【特許文献９】国際公開第２００７／１１６５９２号
【特許文献１０】特開２０００−３３９００５号公報
【発明の概要】
【発明が解決しようとする課題】
【００２８】
しかしながら、特許文献４〜１０に記載された関連技術を用いても、特許文献１〜３に記載された自律分散適応制御技術における前述の問題を解決できない。
【００２９】
特許文献４に記載された関連技術は、自律分散制御ノードの中から、測定したラウンドトリップタイムで接続するノードを動的に変更するが、現時点でのデータ（ラウンドトリップタイム）を用いており、未来の予測データを考慮していない。そのため、この関連技術は、実世界での突発的な環境変動には対応できるが、未来の予測データを制御に反映させることができない。
【００３０】
特許文献５に記載された関連技術は、過去データから算出した予測モデルによる予測対象日の出力をファジイ推論モデルにより補正する。しかしながら、特許文献５には、補正により得られた未来の予測データを、現時点での実世界のデータと共にどのように用いて実世界の制御に利用するかについては記載されていない。
【００３１】
特許文献６に記載された関連技術は、制御対象のノードについて、現時点での実世界の環境情報データと、周辺ノードの環境情報データとから、今後の日照量を未来の予測データとして算出する。しかしながら、この関連技術は、日照量に関する未来の予測データに基づきノードの制御を行っており、現時点での環境情報データを制御に反映させていない。そのため、この関連技術は、未来の予測データを反映した制御は可能だが、実世界での突発的な環境変動に対応できない。
【００３２】
特許文献７に記載された関連技術は、現時点のデータに基づき各機能ブロックの予測モデル生成等を行うが、生成した予測モデルと現時点のデータとの両方を考慮して各機能ブロックの制御を行うことについては記載されていない。そのため、この関連技術は、未来の予測データを反映した制御は可能だが、実世界での突発的な環境変動に対応できない。
【００３３】
特許文献８に記載された関連技術は、現時点のデータに基づき大気汚染を制御することについては記載されているが、大気汚染に関する未来の予測データを考慮することについては記載されていない。そのため、この関連技術は、実世界での突発的な環境変動には対応できるが、未来の予測データを制御に反映させることができない。
【００３４】
特許文献９に記載された関連技術は、予測モデルに対する入力の学習により得られた操作信号を、計測信号の過去データの統計値に基づいて修正するが、未来の予測データを考慮することについては記載されていない。そのため、この関連技術は、実世界での突発的な環境変動には対応できるが、未来の予測データを制御に反映させることができない。
【００３５】
特許文献１０に記載された関連技術は、個体に対して現時点で得られるデータ（利用者により入力される評価値）を用いて進化型計算手法により制御モジュールを進化させるが、個体に関する未来の予測データを考慮することについては記載されていない。そのため、この関連技術は、実世界での突発的な環境変動には対応できるが、未来の予測データを制御に反映させることができない。
【００３６】
本発明は、上述の課題を解決するためになされたものである。すなわち、本発明は、各制御対象を制御して全体としての状態を最適化する際に、突発的な環境変動に対応しながら、予測される未来の事象をも反映させた制御を、特定の用途や状況に依存することなく可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【００３７】
本発明の制御装置は、各制御対象について現在の状況に関するデータ（現在データ）を取得する現在データ取得部と、前記各制御対象を表すよう、前記現在データに基づくノード（現在ノード）を生成してノード格納部に格納するとともに、前記制御対象間の関係性を表すよう前記現在ノード間を接続してトポロジーを構成する現在ノード管理部と、前記各制御対象について予測される未来の状況に関するデータ（予測データ）を算出する予測部と、前記各制御対象に対応させて、前記予測データに基づくノード（補正ノード）を生成して前記ノード格納部に格納するとともに、前記制御対象間の関係性に基づいて、前記現在ノードおよび前記補正ノード間をさらに接続して前記トポロジーを再構成する補正ノード管理部と、前記各現在ノードについて、該ノードに接続された他のノードから得られる情報を利用して、該ノードが表す制御対象に対する次の制御値を算出する次制御値算出部と、前記各現在ノードについて算出された前記次の制御値に基づいて、前記各制御対象を制御する制御部と、を備える。
【００３８】
また、本発明の制御方法は、各制御対象について現在の状況に関するデータ（現在データ）を取得し、前記各制御対象を表すよう、前記現在データに基づくノード（現在ノード）を生成してノード格納部に格納するとともに、前記制御対象間の関係性を表すよう前記現在ノード間を接続してトポロジーを構成し、前記各制御対象について予測される未来の状況に関するデータ（予測データ）を算出し、前記各制御対象に対応させて、前記予測データに基づくノード（補正ノード）を生成して前記ノード格納部に格納するとともに、前記制御対象間の関係性に基づいて、前記現在ノードおよび前記補正ノード間をさらに接続して前記トポロジーを再構成し、前記各現在ノードについて、該ノードに接続された他のノードから得られる情報を利用して、該ノードが表す制御対象に対する次の制御値を算出し、前記各現在ノードについて算出された前記次の制御値に基づいて、前記各制御対象を制御する。
【００３９】
また、本発明のプログラムは、各制御対象について現在の状況に関するデータ（現在データ）を取得する現在データ取得ステップと、前記各制御対象を表すよう、前記現在データに基づくノード（現在ノード）を生成してノード格納部に格納するとともに、前記制御対象間の関係性を表すよう前記現在ノード間を接続してトポロジーを構成する現在ノード管理ステップと、前記各制御対象について予測される未来の状況に関するデータ（予測データ）を算出する予測ステップと、前記各制御対象に対応させて、前記予測データに基づくノード（補正ノード）を生成して前記ノード格納部に格納するとともに、前記制御対象間の関係性に基づいて、前記現在ノードおよび前記補正ノード間をさらに接続して前記トポロジーを再構成する補正ノード管理ステップと、前記各現在ノードについて、該ノードに接続された他のノードから得られる情報を利用して、該ノードが表す制御対象に対する次の制御値を算出する次制御値算出ステップと、前記各現在ノードについて算出された前記次の制御値に基づいて、前記各制御対象を制御する制御ステップと、をコンピュータ装置に実行させる。
【発明の効果】
【００４０】
本発明は、各制御対象を制御して全体としての状態を最適化する際に、突発的な環境変動に対応しながら、予測される未来の事象をも反映させた制御を、特定の用途や状況に依存することなく可能とする技術を提供することができる。
【図面の簡単な説明】
【００４１】
【図１】本発明の第１の実施の形態としての制御装置の構成を示すブロック図である。
【図２】本発明の第１の実施の形態としての制御装置のハードウェア構成の一例を示す図である。
【図３】本発明の第１の実施の形態としての制御装置のノード設定動作を説明するフローチャートである。
【図４】本発明の第１の実施の形態としての制御装置の制御動作を説明するフローチャートである。
【図５】本発明の第２の実施の形態としての制御装置の構成を示すブロック図である。
【図６】本発明の第２の実施の形態としての制御装置のノード設定動作を説明するフローチャートである。
【図７】本発明の第２の実施の形態としての制御装置の制御動作を説明するフローチャートである。
【図８】本発明の第２の実施の形態の具体例において生成されるノードの構成例である。
【図９】本発明の第２の実施の形態の具体例が制御対象とするシステムを説明する模式図である。
【図１０】本発明の第２の実施の形態の具体例において生成されるノードに関する情報を示す図である。
【図１１】本発明の第２の実施の形態の具体例において現在ノードについて算出される次の制御値を示す図である。
【図１２】本発明の第２の実施の形態の具体例において生成されるノードを模式的に説明する図である。
【図１３】本発明の第２の実施の形態の具体例の効果と比較するため、補正ノードのみを接続した場合を説明する模式図である。
【図１４】本発明の第２の実施の形態の具体例の効果と比較するため、同一の制御対象に対応する現在ノードおよび補正ノード間を接続した場合を説明する模式図である。
【図１５】一般的な自律分散適応制御の概要を説明する図である。
【図１６】一般的な自律分散適応制御の詳細を説明する図である。
【図１７】一般的な自律分散適応制御を適用したオンデマンドバスシステムの概要を説明する図である。
【発明を実施するための形態】
【００４２】
以下、本発明の実施の形態について、図面を参照して詳細に説明する。
【００４３】
（第１の実施の形態）
本発明の第１の実施の形態としての制御装置１の機能ブロック構成を図１に示す。図１において、制御装置１は、現在データ取得部１１と、現在ノード管理部１２と、予測部１３と、補正ノード管理部１４と、次制御値算出部１５と、制御部１６と、ノード格納部１７とを備える。制御装置１は、各制御対象を制御して全体の状態を最適化する装置である。なお、図１には、３つの制御対象を示しているが、本実施の形態における制御装置が制御する制御対象の数を限定するものではない。
【００４４】
ここで、制御装置１は、図２に示すようなハードウェア要素によって構成可能である。図２において、制御装置１は、ＣＰＵ（Central Processing Unit）１００１、メモリ１００２、および、ネットワークインタフェース１００３を含む。メモリ１００２は、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）、補助記憶装置（ハードディスク等）等によって構成される。ネットワークインタフェース１００３は、インターネット、ＬＡＮ（Local Area Network）、公衆回線網、無線通信網またはこれらの組合せ等によって構成されるネットワークに接続するインタフェースである。この場合、現在データ取得部１１および制御部１６は、ネットワークインタフェース１００３と、メモリ１００２に格納されるコンピュータ・プログラムを読み込んで実行するＣＰＵ１００１とによって構成される。また、現在ノード管理部１２、予測部１３、補正ノード管理部１４および次制御値算出部１５は、メモリ１００２に格納されるコンピュータ・プログラムを読み込んで実行するＣＰＵ１００１によって構成される。また、ノード格納部１７は、メモリ１００２によって構成される。なお、制御装置１およびその各機能ブロックのハードウェア構成は、上述の構成に限定されない。
【００４５】
現在データ取得部１１は、各制御対象について現在の状況に関するデータ（現在データ）を取得する。例えば、制御対象に、制御対象の状況に関するデータを検出する検出装置と、検出したデータを送信する送信装置とが搭載されているとする。この場合、現在データ取得部１１は、制御対象に搭載されている送信装置から検出データを受信して、現在データとしてもよい。
【００４６】
現在ノード管理部１２は、各制御対象を表すよう、現在データに基づくノード（現在ノード）を生成する。例えば、現在ノード管理部１２は、現在ノードに、そのノードが表す制御対象の現在データに基づく評価関数および現時点の制御値を設定してもよい。ここで、評価関数は、制御対象に対する制御値と、制御対象に関わる効率を表す値との関係を表すものである。そのような評価関数としては、上または下に凸な関数が採用されることが望ましい。また、制御値は、制御対象の状況を制御するパラメータの値である。また、現在ノード管理部１２は、制御対象間の関係性を表すよう、現在ノード間を接続してトポロジーを構成する。このように生成された現在ノードは、ノード格納部１７に格納される。
【００４７】
ここで、現在ノード管理部１２は、各制御対象に対応させた現在ノードとして、自律分散適応制御を行うノードのインスタンスを生成してもよい。自律分散適応制御を行うノードは、対応する制御対象を表す情報と、評価関数と、接続される他のノードを表す情報と、そのノードが表す時点の制御値とを少なくとも保持する機能を持つ。また、自律分散適応制御を行うノードは、接続される他の各ノードとの間で、その評価関数および制御値に基づく情報を送受信する機能を持つ。また、自律分散適応制御を行うノードは、他の各ノードの評価関数および制御値に基づく情報を利用して、次の制御値を算出して保持する機能を持つ。さらに、本実施の形態では、自律分散適応制御を行うノードは、現在ノードであるか後述の補正ノードであるかを表すタイプ情報を保持する機能を持つものとする。
【００４８】
この場合、現在ノード管理部１２は、自律分散適応制御を行うノードのインスタンスに、現在ノードを表すタイプ情報と、対応する制御対象の識別情報と、評価関数と、現時点の制御値と、接続された他のノードの識別情報とを設定すればよい。
【００４９】
予測部１３は、各制御対象について予測される未来の状況に関するデータ（予測データ）を算出する。ここで、予測部１３は、各制御対象について、未来の所定時点における予測データを算出してもよい。なお、予測部１３には、制御対象の未来の状況を予測する公知の各種技術を採用可能である。
【００５０】
補正ノード管理部１４は、各制御対象に対応させて、予測データに基づく補正ノードを生成する。補正ノードは、現在ノードによる制御を補正するためのノードである。例えば、補正ノード管理部１４は、補正ノードに、そのノードが対応する制御対象の予測データに基づく評価関数および予測される制御値を設定してもよい。そして、補正ノード管理部１４は、制御対象間の関係性に基づいて、現在ノードおよび補正ノード間をさらに接続することにより、前述のトポロジーを再構成する。例えば、補正ノード管理部１４は、各現在ノードと、その現在ノードに接続された他の現在ノードが表す制御対象に対応する補正ノードとを接続してもよい。この場合、補正ノード管理部１４は、同一の制御対象に対応する現在ノードおよび補正ノード間を接続しないようにする。このように生成された補正ノードは、ノード格納部１７に格納される。
【００５１】
例えば、補正ノード管理部１４は、各制御対象に対応させた補正ノードとして、現在ノードと同様に、前述の自律分散適応制御を行うノードのインスタンスを生成してもよい。この場合、補正ノード管理部１４は、自律分散適応制御を行うノードのインスタンスに、補正ノードを表すタイプ情報と、対応する制御対象の識別情報と、予測データに基づく評価関数と、予測される制御値と、接続された他のノードの識別情報とを設定すればよい。また、補正ノード管理部１４は、補正ノードの接続先の現在ノードに、接続した補正ノードの識別情報を追加して設定すればよい。
【００５２】
次制御値算出部１５は、各現在ノードについて、該ノードに接続された他のノードから得られる情報を利用して、該ノードが表す制御対象に対する次の制御値を算出する。他のノードから得られる情報とは、例えば、接続された他のノードにおける評価関数および制御値に基づく情報であってもよい。なお、各現在ノードに接続された他のノードには、他の現在ノードおよび補正ノードが含まれる。
【００５３】
また、現在ノードおよび補正ノードが、前述の自律分散適応制御を行うノードとして生成されている場合、次制御値算出部１５は、各現在ノードに、該ノードが表す制御対象に対する次の制御値を算出するよう指示すればよい。そして、各現在ノードは、自ノードに接続された各ノードとの間で、それぞれの評価関数および制御値に基づく情報を送受信する。そして、各現在ノードは、自ノードに接続された他のノードから得られた評価関数および制御値に基づく情報を用いて、次の制御値を算出すればよい。
【００５４】
制御部１６は、各現在ノードについて算出された次の制御値に基づいて、各制御対象を制御する。
【００５５】
以上のように構成された制御装置１の動作について、図面を参照して説明する。
【００５６】
まず、制御装置１のノード設定動作を図３に示す。
【００５７】
図３では、まず、現在データ取得部１１は、各制御対象について現在データを取得する（ステップＳ１１）。
【００５８】
次に、現在ノード管理部１２は、各制御対象について、現在データに基づく現在ノードを生成する（ステップＳ１２）。生成された現在ノードは、ノード格納部１７に格納される。
【００５９】
次に、現在ノード管理部１２は、制御対象間の関係性を表すよう、現在ノード間を接続してトポロジーを構成する（ステップＳ１３）。構成されたトポロジーに関する情報は、ノード格納部１７の現在ノードに設定される。
【００６０】
次に、予測部１３は、各制御対象について予測される未来の予測データを算出する（ステップＳ１４）。
【００６１】
次に、補正ノード管理部１４は、各制御対象に対応させて、予測データに基づく補正ノードを生成する（ステップＳ１５）。生成された補正ノードは、ノード格納部１７に格納される。
【００６２】
次に、補正ノード管理部１４は、制御対象間の関係性に基づいて、現在ノードおよび補正ノード間をさらに接続することにより、トポロジーを再構成する（ステップＳ１６）。再構成されたトポロジーに関する情報は、ノード格納部１７の現在ノードおよび補正ノードに設定される。
【００６３】
以上で、制御装置１は、ノード設定動作を終了する。
【００６４】
次に、制御装置１の制御動作を図４に示す。
【００６５】
図４では、まず、次制御値算出部１５は、ノード格納部１７に格納された各現在ノードについて、そのノードに接続された他のノードから得られる情報を取得する（ステップＳ２１）。
【００６６】
次に、次制御値算出部１５は、各現在ノードについて、他のノードから取得した情報に基づいて次の制御値を算出する（ステップＳ２２）。
【００６７】
次に、制御部１６は、各現在ノードについて算出された次の制御値に基づいて、各制御対象を制御する（ステップＳ２３）。
【００６８】
なお、もし、現在ノードおよび補正ノードが自律分散適応制御を行うノードのインスタンスとして生成される場合、ステップＳ２１〜Ｓ２２の動作は、次制御値算出部１５が各現在ノードに対して次制御値を算出するよう指示することにより、各現在ノードが実行する。
【００６９】
以上で、制御装置１は動作を終了する。
【００７０】
次に、本発明の第１の実施の形態の効果について述べる。
【００７１】
本発明の第１の実施の形態としての制御装置は、各制御対象を制御して全体としての状態を最適化する際に、突発的な環境変動に対応しながら、予測される未来の事象をも反映させた制御を、特定の用途や状況に依存することなく可能とする。
【００７２】
その理由について説明する。本実施の形態では、現在データ取得部が、各制御対象について現在データを取得する。すると、現在ノード管理部が、各制御対象を表すよう、現在データに基づく現在ノードを生成してノード格納部に格納する。また、現在ノード管理部は、制御対象間の関係性を表すよう現在ノード間を接続してトポロジーを構成する。また、予測部が、各制御対象について予測される未来の予測データを算出する。すると、補正ノード管理部が、各制御対象に対応させて、予測データに基づく補正ノードを生成してノード格納部に格納する。また、補正ノード管理部は、制御対象間の関係性に基づいて、現在ノードおよび補正ノードをさらに接続してトポロジーを再構成する。このように構成されたトポロジーにおける各現在ノードについて、次制御値算出部が、該ノードに接続された他の各ノードから得られる情報を利用して、該ノードが表す制御対象に対する次の制御値を算出する。そして、制御部が、このようにして算出された各制御対象の次の制御値に基づいて、各制御対象を制御するからである。
【００７３】
このように、本実施の形態は、現在データを反映させた現在ノードから構成されたトポロジーに、未来の予測データを反映させた補正ノードを追加して、隣接ノード間で得られる情報を用いて各制御対象に対する次の制御値を算出して制御を行う。その結果、本実施の形態は、現在ノードを補正することなく用いることにより突発的な環境変動に対応しながら、補正ノードを用いることにより未来の事象にも対応した制御を行うことができる。
【００７４】
（第２の実施の形態）
次に、本発明の第２の実施の形態について図面を参照して詳細に説明する。なお、本実施の形態の説明において参照する各図面において、本発明の第１の実施の形態と同一の構成および同様に動作するステップには同一の符号を付して本実施の形態における詳細な説明を省略する。
【００７５】
まず、本発明の第２の実施の形態としての制御装置２の構成を図５に示す。図５において、制御装置２は、本発明の第１の実施の形態としての制御装置１に対して、予測部１３に替えて予測部２３と、制御部１６に替えて制御部２６とを備え、さらに過去データ保存部２８を備える点が異なる。
【００７６】
ここで、制御装置２およびその各機能ブロックは、図２を参照して説明した本発明の第１の実施の形態と同様のハードウェア要素によって構成可能である。また、この場合、過去データ保存部２８は、メモリ１００２によって構成される。ただし、制御装置２およびその各機能ブロックのハードウェア構成は、上述の構成に限定されない。
【００７７】
過去データ保存部２８は、各制御対象について過去の状況に関するデータ（過去データ）を保存している。例えば、過去データ保存部２８は、現在データ取得部１１によって取得される現在データを、日時情報等に対応付けて蓄積していってもよい。
【００７８】
制御部２６は、各現在ノードについて算出された次の制御値に基づいて制御対象を選択する。そして、制御部２６は、選択した制御対象に対して、次の制御値に基づく制御を行う。
【００７９】
予測部２３は、各制御対象について、過去データおよび現在データに基づき予測される未来の所定時点における予測データを算出する。予測部２３は、例えば、過去データおよび現在データに基づく統計的学習を用いて予測データを算出してもよい。また、予測部２３は、各制御対象について、その制御対象が制御部２６によって選択されて制御されたと仮定して、予測データを生成する。
【００８０】
以上のように構成された制御装置２の動作について、図面を参照して説明する。なお、過去データ保存部２８には、既に制御対象に関する過去データが保存されているものとする。
【００８１】
まず、制御装置２のノード設定動作を図６に示す。
【００８２】
図６において、まず、制御装置２は、ステップＳ１１〜Ｓ１３まで、本発明の第１の実施の形態と同様に動作することにより、現在データに基づく現在ノードを生成しトポロジーを構成する。
【００８３】
次に、予測部２３は、各制御対象について、その制御対象が制御部２６によって選択されて制御されたと仮定して、過去データおよび現在データに基づいて、未来の所定時点における予測データを生成する（ステップＳ３４）。
【００８４】
次に、制御装置２は、ステップＳ１５〜Ｓ１６まで、本発明の第１の実施の形態と同様に動作することにより、予測データに基づく補正ノードを生成しトポロジーを再構成する。
【００８５】
以上で、制御装置２は、ノード設定動作を終了する。
【００８６】
次に、制御装置２の制御動作を図７に示す。
【００８７】
図７において、まず、制御装置２は、ステップＳ２１〜Ｓ２２まで、本発明の第１の実施の形態と同様に動作して、各現在ノードについて次の制御値を算出する。
【００８８】
次に、制御部２６は、各現在ノードについて算出された次の制御値に基づいて制御対象を選択する。そして、制御部２６は、選択した制御対象に対して、次の制御値に基づく制御を行う（ステップＳ４３）。
【００８９】
以上で、制御装置２は、動作を終了する。
【００９０】
次に、本発明の第２の実施の形態を具体例で説明する。この具体例では、オンデマンドバスシステムにおける個々のバスを制御対象とする。また、この具体例では、制御装置２は、各バスについて算出した次の制御値に基づいて、このエリア内のバス乗り場に移動させるバスを選択し、選択したバスをバス乗り場に移動させるよう制御する。そして、制御装置２は、バス全体の移動効率を最適化するよう制御を行う。
【００９１】
この具体例では、制御装置２は、データセンタに設置されているものとする。制御装置２は、ネットワークを介して各バスおよびバス乗り場と通信可能に接続されている。
【００９２】
各バスは、現在データを検出する装置として、現在置情報を検出する位置検出装置、現在の乗客数を検出する人数検出装置、および、移動速度（または平均速度）を検出する速度検出装置を搭載している。位置検出装置は、例えば、ＧＰＳ（global positioning system）受信機等によって構成されていてもよい。また、人数検出装置は、ビームセンサまたはカメラ等によって構成されていてもよい。また、速度検出装置は、位置検出装置によって検出された現在地の履歴から速度を検出するよう構成されていてもよい。また、各バスは、検出した現在置、乗客数および移動速度等を、ネットワークを介して制御装置２に送信するとともに、制御装置２から制御情報を受信する装置を搭載している。
【００９３】
また、バス乗り場にも、待ち人数を検出する人数検出装置と、ネットワークを介して待ち人数を制御装置２に送信する装置が設置されている。
【００９４】
制御装置２の現在データ取得部１１は、各バスから、現在置、乗客数および移動速度等を表す情報を取得する。また、現在データ取得部１１は、各バス乗り場における待ち人数を表す情報を取得する。また、現在データ取得部１１は、オンデマンドシステムを構成する対象エリア毎に、渋滞や通行止め等の交通情報等も取得する。このように、現在データ取得部１１は、オンデマンドバスシステムに関わる現時点の様々な情報を現在データとして取得する。
【００９５】
過去データ保存部２８は、現在データ取得部１１によって取得された情報を時系列で保存している。例えば、過去データ保存部２８には、対象エリア毎の交通情報の履歴、各バスの乗客数や対応するノードに設定された評価関数の履歴、バス乗り場の待ち人数の履歴等が保存される。
【００９６】
現在ノード管理部１２は、各バスを表す現在ノードを生成する。ここでは、現在ノードは、図８に示すような自律分散適応制御ノード５０のインスタンスとして生成される。自律分散適応制御ノード５０は、タイプ情報保持部５１、評価関数保持部５２、隣接ノード保持部５３、情報交換部５４および計算部５５を含む。
【００９７】
タイプ情報保持部５１は、自律分散適応制御ノード５０のタイプ情報として「現在」または「予測」を保持する。ここでは、「現在」は、「現在ノード」であることを表し、「予測」は、「補正ノード」であることを表すものとする。
【００９８】
評価関数保持部５２は、自ノードに設定された評価関数を表す情報と、現在の制御値と、その制御値における評価値および移動効率と、後述の計算部５５によって計算される次の制御値とを保持する。
【００９９】
ここで、この具体例では、評価関数は、移動効率（乗客数×移動速度）を縦軸にとり、乗客数を制御値として横軸にとる関数であり、上に凸な関数であるものとする。また、評価値は、そのノードの現在の制御値における評価関数の微分値であるものとする。なお、評価値は、本発明における「評価関数および制御値に基づく情報」の実施の形態に相当する。
【０１００】
隣接ノード保持部５３は、トポロジーにおいて接続される他の自律分散適応制御ノード５０の識別情報（接続先のノードを表す識別情報）を保持する。以降、接続される他の自律分散適応制御ノード５０を、隣接ノードとも記載する。
【０１０１】
情報交換部５４は、隣接ノードから、その評価関数保持部５２に保持された評価値を取得する。また、情報交換部５４は、隣接ノードに対して、自ノードの評価関数保持部５２に保持された評価値を出力する。
【０１０２】
計算部５５は、隣接ノードから得られた評価値に基づいて、自ノードにおける次の制御値を算出する。例えば、計算部５５は、以下のようにして次の制御値を算出してもよい。計算部５５は、各隣接ノードから得られた評価値と、自ノードの評価値との平均（平均評価値）を算出する。そして、計算部５５は、自ノードの評価関数において、平均評価値となる制御値を、その評価関数を使った平均評価値からの逆算により求める。そして、計算部５５は、求めた制御値を次の制御値として評価関数保持部５２に保持する。
【０１０３】
現在ノード管理部１２は、各バスについて、現在ノードとして、図８に示した自律分散適応制御ノード５０のインスタンスを生成し、タイプ情報保持部５１に「現在」を設定する。また、現在ノード管理部１２は、各現在ノードの評価関数保持部５２に、そのノードが表すバスの現在データに基づく評価関数を設定する。また、現在ノード管理部１２は、各現在ノードに、そのノードが表すバスの現在データに基づいて、現時点の乗客数（制御値）と、その乗客数における移動効率および評価値とを設定する。また、現在ノード管理部１２は、各バスの位置情報に基づいて、現在ノード間を接続する。そして、現在ノード管理部１２は、各現在ノードの隣接ノード保持部５３に、接続先の現在ノードを表す識別情報を保持する。
【０１０４】
予測部２３は、各バスについて、そのバスが制御部２６により選択されてバス乗り場に移動するよう制御されたことを仮定する。そして、予測部２３は、各バスについて、過去データおよび現在データに基づいて、未来の所定時点における状況を予測データとして算出する。ここでは、予測部２３は、各バスについて、それぞれバス乗り場に移動するよう制御された場合の３０分後について、評価関数、制御値（乗客数）、移動効率、評価値を予測データとして算出する。また、予測部２３は、該当するエリアにおける渋滞などの交通情報を、過去データおよび現在情報に基づき予測し、予測データとして生成する。なお、予測部２３は、過去データおよび現在データに基づく統計的学習手法を用いて、予測データを算出するものとする。
【０１０５】
補正ノード管理部１４は、各バスついて、補正ノードとして、図８に示した自律分散適応制御ノード５０のインスタンスを生成し、タイプ情報保持部５１に「予測」を設定する。また、補正ノード管理部１４は、各補正ノードの評価関数保持部５２に、対応するバスに関する予測データに基づいて、予測時点（３０分後）における評価関数を設定する。また、補正ノード管理部１４は、各補正ノードの評価関数保持部５２に、予測時点における制御値（乗客数）を設定する。また、補正ノード管理部１４は、各補正ノードの評価関数保持部５２に、予測時点の乗客数（制御値）に対する評価値および移動効率を設定する。
【０１０６】
また、補正ノード管理部１４は、生成した補正ノードを現在ノードに接続してトポロジーを再構成する。具体的には、補正ノード管理部１４は、各現在ノードに、その現在ノードに隣接する現在ノードが表すバスに対応する補正ノードを接続する。なお、補正ノード管理部１４は、各現在ノードに、その現在ノードが表すバスに対応する補正ノードを接続しないようにする。そして、補正ノード管理部１４は、補正ノードの隣接ノード保持部５３に、接続した現在ノードを設定する。また、補正ノード管理部１４は、各現在ノードの隣接ノード保持部５３に、接続した補正ノードを追加する。
【０１０７】
次制御値算出部１５は、各現在ノードの情報交換部５４および計算部５５に、次の制御値を算出するよう指示する。これにより、各現在ノードの情報交換部５４は、隣接ノードとの間で評価関数保持部５２に保持された評価値を送受信する。隣接ノードには、他の現在ノードおよび補正ノードが含まれる。そして、計算部５５は、各隣接ノードの評価値に基づいて次の制御値を評価関数を使った逆算により算出し、評価関数保持部５２に保持する。
【０１０８】
制御部２６は、各現在ノードについて算出された次の制御値に基づいて、バス乗り場に移動させるバスを選択する。具体的には、制御部２６は、現時点の制御値（乗客数）に対して、次の制御値（乗客数）が増加しているノードに対応するバスを選択してもよい。また、該当する複数のバスがある場合、制御部２６は、バス乗り場の待ち人数により近い人数分、制御値が増加しているノードに対応するバスを選択してもよい。そして、制御部２６は、選択したバスに対して、バス乗り場に移動するよう指示する制御情報を送信する。
【０１０９】
以上のように構成された具体例の制御装置２の動作について説明する。ここでは、図９に示すように、あるエリア内を走行中の３台のバスＡ、Ｂ、Ｃを制御対象として説明する。また、このエリアにおけるバス乗り場の待ち人数は１０人であるとする。
【０１１０】
まず、現在データ取得部１１は、バスＡ、Ｂ、Ｃから、それぞれの現在地情報、乗客数、移動速度（平均速度）等を、現在データとして取得する。また、現在データ取得部１１は、該当エリアにおけるバス乗り場の待ち人数や、該当エリアの交通情報等も、現在データとして取得する（ステップＳ１１）。
【０１１１】
次に、現在ノード管理部１２は、バスＡ、Ｂ、Ｃを表す現在ノードとして、ノードＡ１、Ｂ１、Ｃ１を、自律分散適応制御ノード５０のインスタンスとしてそれぞれ生成する。そして、現在ノード管理部１２は、ノードＡ１、Ｂ１、Ｃ１について、タイプ情報「現在」と、現在データに基づく評価関数、制御値（乗客数）、移動効率とを設定する（ステップＳ１２）。
【０１１２】
次に、現在ノード管理部１２は、各バスの位置情報に基づいて、バス間の関係性を表すよう現在ノード間を接続してトポロジーを構成する。ここでは、ノードＡ１、Ｂ１、Ｃ１のそれぞれは、他の２台のバスを表すノードとそれぞれ接続されたものとする（ステップＳ１３）。
【０１１３】
次に、予測部２３は、各バスについて、そのバスが制御部２６によって選択されてバス乗り場に移動するよう制御されたと仮定して、３０分後の状況を表す予測データを、過去データおよび現在データに基づき統計的学習手法により算出する（ステップＳ３４）。
【０１１４】
次に、補正ノード管理部１４は、各バスに対応させた補正ノードとして、ノードＡ２、Ｂ２、Ｃ２を、自律分散適応制御ノード５０のインスタンスとしてそれぞれ生成する。そして、補正ノード管理部１４は、ノードＡ２、Ｂ２、Ｃ２について、タイプ情報「予測」と、予測データに基づく評価関数、制御値（乗客数）、移動効率とを設定する（ステップＳ１５）。
【０１１５】
次に、補正ノード管理部１４は、現在ノードに、その現在ノードに接続された他の現在ノードに対応する補正ノードをさらに接続することにより、トポロジーを再構成する（ステップＳ１６）。
【０１１６】
上述のノード設定動作により、ノード格納部１７には、ノードＡ１、Ａ２、Ｂ１、Ｂ２、Ｃ１、Ｃ２について、図１０に示す通りの情報が格納されたものとする。なお図１０において、ψ１０、１１、２０、２１、３０および３１は、それぞれの評価関数を表している。
【０１１７】
次に、次制御値算出部１５は、ノード格納部１７から、タイプ情報保持部５１が「現在」であるノードＡ１、Ｂ１、Ｃ１を抽出する。そして、次制御値算出部１５は、ノードＡ１、Ｂ１、Ｃ１に対して、そのノードが表すバスに対する次の制御値を算出するよう指示する
そして、ノードＡ１、Ｂ１、Ｃ１は、ステップＳ２１〜Ｓ２２をそれぞれ実行する。
【０１１８】
すなわち、ノードＡ１において、情報交換部５４は、隣接ノード保持部５３を参照して隣接するノードＢ１、Ｂ２、Ｃ１、Ｃ２を特定する。そして、情報交換部５４は、これらのノードＢ１、Ｂ２、Ｃ１、Ｃ２から、それぞれの評価関数保持部５２に保持された評価値３、１、３、２を取得する。
【０１１９】
そして、ノードＡ１において、計算部５５は、自ノードの評価値３および隣接ノードの評価値３、１、３、２の平均評価値として２．４を算出する。そこで、計算部５５は、自ノードの評価関数において評価値が２．４となる次の制御値を求める。この場合、評価値を３から２．４に減少させるため、現在の制御値（乗客数）１０より増加した制御値が求められる。ここでは、次の制御値として２０が算出され、評価関数保持部５２に保持されたとする。
【０１２０】
また、ノードＢ１において、情報交換部５４は、隣接ノード保持部５３を参照して隣接するノードＡ１、Ａ２、Ｃ１、Ｃ２を特定する。そして、情報交換部５４は、これらのノードＡ１、Ａ２、Ｃ１、Ｃ２から、それぞれの評価関数保持部５２に保持された評価値３、３、３、２を取得する。
【０１２１】
そして、ノードＢ１において、計算部５５は、自ノードの評価値３および隣接ノードの評価値３、３、３、２の平均評価値として２．８を算出する。そして、計算部５５は、自ノードの評価関数において評価値が２．８となる次の制御値を求める。この場合、評価値を３から２．８に減少させるため、現在の制御値（乗客数）１０より増加した制御値が求められる。ここでは、計算部５５は、次の制御値として１２が算出され、評価関数保持部５２に保持されたとする。
【０１２２】
また、ノードＣ１において、情報交換部５４は、隣接ノード保持部５３を参照して隣接するノードＡ１、Ａ２、Ｂ１、Ｂ２を特定する。そして、情報交換部５４は、これらのノードＡ１、Ａ２、Ｂ１、Ｂ２から、それぞれの評価関数保持部５２に保持された評価値３、３、３、１を取得する。
【０１２３】
そして、ノードＣ１において、計算部５５は、自ノードの評価値３および隣接ノードの評価値３、３、３、１の平均評価値として２．６を算出する。そして、計算部５５は、自ノードの評価関数において評価値が２．６となる次の制御値を求める。この場合、評価値を３から２．６に減少させるため、現在の制御値（乗客数）１０より増加した制御値が求められる。ここでは、次の制御値として１６が算出され、評価関数保持部５２に保持されたとする。
【０１２４】
ノードＡ１、Ｂ１、Ｃ１における上述のステップＳ２１〜Ｓ２２の動作により、ノード格納部１７において、ノードＡ１、Ｂ１、Ｃ１における評価関数保持部５２には、図１１に示すように次の制御値が格納された。また、このようなデータが評価関数保持部５２に保持されたノードＡ１、Ｂ１、Ｃ１を、模式的に図１２に示す。
【０１２５】
次に、制御部２６は、現在ノードであるノードＡ１、Ｂ１、Ｃ１について算出された次の制御値に基づいて、バスＡ、Ｂ、Ｃからいずれかを選択する。ここでは、前述したように、バス乗り場には１０人の待ち人数がある。また、図１２からわかるように、ノードＡ１、Ｂ１、Ｃ１において、現時点の制御値から次の制御値への増分は、それぞれ、１０、２、６である。したがって、この場合、制御部２６は、次の制御値への増分が待ち人数の１０人分に相当するノード１０に対応するバスＡを選択する。そして、制御部２６は、バスＡに対して、バス乗り場へ向かうことを指示する制御情報を送信する（ステップＳ４３）。
【０１２６】
以上で、具体例の説明を終了する。
【０１２７】
次に、本発明の第２の実施の形態の効果について述べる。
【０１２８】
本実施の形態としての制御装置は、各制御対象を選択制御しながら全体としての状態を最適化する際に、突発的な環境変動に対応しながら、さらに精度よく予測した未来の事象をも反映させた制御を、特定の用途や状況に依存することなく可能とする。
【０１２９】
その理由について説明する。本実施の形態は、本発明の第１の実施の形態と同様の構成に加えて、次の構成を備えるからである。すなわち、過去データ保存部が、各制御対象について過去データを保存している。また、予測部が、各制御対象について、その制御対象が制御部によって選択されて制御されると仮定した場合の未来の所定時点における状況を表す予測データを、過去データおよび現在データに基づいて算出する。そして、制御部が、各現在ノードについて算出された次の制御値に基づいて制御対象を選択し、選択した制御対象を次の制御値に基づいて制御するからである。
【０１３０】
また、本実施の形態は、本発明の第１の実施の形態と同様に、予測データから算出した仮想的な補正ノードを、現在ノードに加えてトポロジー構成に組み込む。これにより、本実施の形態は、現在データのみで制御する自律分散適応制御の既存の機構を大幅に変えずに、未来のデータを反映させて次の制御値を補正することができる。
【０１３１】
ここで、前述したように、未来の予測データのみによって制御した場合、現在の実世界の突発的な問題に対応が難しい。これに対して、本実施の形態は、予測データに対応する補正ノードだけでなく、現在の状態を表す現在ノードを補正することなく用いて、次の制御値の計算を行うので、現在の実世界における突発的な問題に対応可能となる。
【０１３２】
例えば、上述の具体例と同様のケースにおいて、図１３に示すように、予測データに基づく補正ノードであるノードＡ２、Ｂ２、Ｃ２のみによって自律分散適応制御の計算を行ったと仮定する。この場合、ノードＡ２は、隣接するノードＢ２、Ｃ２との間の平均評価値として２を算出する。そして、ノードＡ２は、現時点の評価値３から２に減少させるために、次の制御値として現時点より増加した値を算出する。一方、ノードＢ２においては、隣接するノードＡ２、Ｃ２との間の平均評価値が２と算出され、現時点の評価値１から増加させるためには、次の制御値（乗客数）として現時点より減少した値が算出される。また、ノードＣ２においては、隣接するノードＡ２、Ｂ２との間の平均評価値が２と算出され、現時点の評価値２から変化がないため、次の制御値（乗客数）として現時点と同一の値が算出される。したがって、予測データに基づくノードＡ２、Ｂ２、Ｃ２のみによって制御を行う場合、バス乗り場に移動させるバスとしてバスＡが選択される。しかしながら、この場合、直後にバスＡが突発的な交通状態の悪化により移動できなくなった場合には、対応が難しい。
【０１３３】
これに対して、本実施の形態の具体例は、前述の図１２に示したように各ノードを接続して各種データを保持し、バスＡを選択する。このとき、突発的な交通状態の悪化によりバスＡが移動できなくなったとする。この場合、本実施の形態の具体例は、この状況を現在ノードであるノードＡ１に反映させて評価関数を変更し、現在の制御値に対応する評価値を求める。そして、本実施の形態の具体例は、再度、現在ノードであるノードＡ１、Ｂ１、Ｃ１および補正ノードであるノードＡ２、Ｂ２、Ｃ２を用いて自律分散適応制御の計算を行えばよい。このように、本実施の形態の具体例は、補正ノードを用いて未来の予測データを考慮しながらも、現在ノードを組み入れていることで、突発的に発生した交通状況の悪化に対応して、迅速に最適なバスを選択することができる。
【０１３４】
また、本実施の形態は、自律分散適応制御において、現在のデータに対応するだけでは評価値がほぼ同等で、どの制御対象を制御してよいか判別が難しい場合に、予測データを反映させた補正ノードを組み込むことにより、より最適な制御対象を選択できる。
【０１３５】
例えば、上述の具体例と同様のケースにおいて、現在データに基づくノードＡ１、Ｂ１、Ｃ１のみによって自律分散適応制御の計算を行ったと仮定する。この場合、どの現在ノードも、それぞれの評価値が３であるため、平均評価値として３を算出することになる。そのため、ノードＡ１、Ｂ１、Ｃ１は、それぞれ次の制御値として、現在の制御値と同一の値を算出することになる。このように、現在データのみを用いる自律分散適応制御の場合、バスＡ、Ｂ、Ｃのうちいずれを選択して制御すればよいかがわからない場合がある。
【０１３６】
これに対して、本実施の形態の具体例は、現在ノードに加えて、未来の予測データに基づく補正ノードを用いて自律分散適応制御の計算を行う。これにより、図１２を用いて説明したように、未来の予測データを考慮に入れて、バスＡを選択することができる。
【０１３７】
また、本実施の形態は、自律分散適応制御のノードとして予測データを反映させた補正ノードを組み入れればよいため、補正手法や補正係数の割合などを指定する必要がない。このため、本実施の形態は、アプリケーションやソリューション等の特定の状況に依存することがなく、汎用的に、現在データを用いた制御を予測データによって補正することが可能となる。また、本実施の形態は、予測した評価値が現在の評価値とかけ離れている、または、現在の評価値に近すぎる、などの場合分けを考慮する必要がなく、汎用的に補正を行うことができる。
【０１３８】
また、本実施の形態は、予測データに基づく補正ノードを、自律分散適応制御のノードとして計算に組み込んでいるため、予測データによる補正をより高速によりシンプルに実現できる。
【０１３９】
また、本実施の形態は、同一の制御対象に対応する現在ノードおよび補正ノードを接続しない。このように、同一の制御対象に対応する現在ノードと補正ノードとを接続しないことにより、本実施の形態は、自律分散適応制御において望ましくない計算結果が算出されることを回避している。
【０１４０】
例えば、上述の具体例と同様のケースにおいて、図１４に示すように、現在ノードであるノードＡ１、Ｂ１、Ｃ１に対して、それぞれが表すバスに対応する補正ノードであるノードＡ２、Ｂ２、Ｃ２を直接接続したと仮定する。すると、各現在ノードは、自ノードが表すバスの未来の状況を、現時点での他のバスの状況とみなして計算を行ってしまう。そして、この場合、図１４に示すように、ノードＡ１、Ｂ１、Ｃ１について、それぞれ次の制御値として１０、１８、１３が算出される。その結果、図１４に示すように、バスＢは、移動効率の悪い未来の状況が予測されているにも関わらず、バス乗り場に向かわせるバスとして選択されてしまう。このような不適切な制御は、バスＢの現在データを反映させたノードＢ１と、バスＢの予測データを反映させたノードＢ２とを接続したために発生する。本実施の形態の具体例は、同一のバスを表す現在ノードと補正ノードとを接続せずに、各現在ノードに対して、接続される他の現在ノードが表すバスに対応する補正ノードを接続するため、上述のような望ましくない計算結果を算出することがない。
【０１４１】
また、本実施の形態は、現在データを反映させた現在ノードと、未来の予測データを反映させた補正ノードとを、別々に設定できる。このため、本実施の形態は、現在ノードの評価関数を変更することなく、補正を行うことができる。その結果、本実施の形態は、補正の解除に容易に対応可能である。また、本実施の形態は、現時点の現在データの変更を、未来の予測データを反映させた補正ノードとは独立して容易に行うことができる。また、本実施の形態は、未来の予測データの変更を、現在データを反映させた現在ノードとは独立して容易に行うことができる。
【０１４２】
なお、本実施の形態において、オンデマンドバスシステムにおける各バスを制御対象とする例を中心に説明したが、本実施の形態は、他の制御対象にも適用可能である。
【０１４３】
また、本実施の形態において、過去データおよび現在データに基づき予測データを算出する例について説明した。その他、本実施の形態において、予測部は、制御対象に関する未来の状況を表す予測データを、他の予測手法を用いて算出してもよい。もし、採用する予測手法に過去データが不要であれば、過去データ保存部は、省略可能である。
【０１４４】
また、本実施の形態において、過去データおよび現在データに基づき統計的学習手法を用いて予測データを算出する例について説明した。その他、本実施の形態において、予測部は、過去データおよび現在データに基づく他の手法を用いて予測データを算出してもよい。
【０１４５】
また、上述した各実施の形態において、評価関数が上または下に凸な関数であり、評価値が、評価関数の微分値である例を中心に説明したが、これらに限らない。評価関数は、現在の制御値に対する何らかの指標を表す関数であればよい。また、評価値は、現在の制御値および評価関数から算出される値であればよい。また、各実施の形態において、次制御値算出部は、各現在ノードについて、評価関数および制御値に基づく情報に限らず、隣接ノードから得られるその他の情報を用いて、次の制御値を算出してもよい。
【０１４６】
また、上述した各実施の形態において、現在ノードおよび補正ノードが、制御装置と同一のサーバ上に実現される例について説明した。この他、各ノードは、制御装置とは物理的に異なる装置上に実現されてもよい。また、各ノードは、対応する制御対象に搭載される装置上に実現されてもよい。
【０１４７】
また、本実施の形態において、制御装置を構成する各機能ブロックは、複数の装置に分散されて実現されてもよい。
【０１４８】
また、上述した本発明の各実施の形態において、制御装置の各機能ブロックが、記憶装置またはＲＯＭに記憶されたコンピュータ・プログラムを実行するＣＰＵによって実現される例を中心に説明した。これに限らず、各機能ブロックの一部、全部、または、それらの組み合わせが専用のハードウェアにより実現されていてもよい。
【０１４９】
また、上述した本発明の各実施の形態において、各フローチャートを参照して説明した制御装置の動作を、本発明のコンピュータ・プログラムとしてコンピュータ装置の記憶装置（記憶媒体）に格納しておいてもよい。そして、係るコンピュータ・プログラムを当該ＣＰＵが読み出して実行するようにしてもよい。そして、このような場合において、本発明は、係るコンピュータ・プログラムのコードあるいは記憶媒体によって構成される。
【０１５０】
また、上述した各実施の形態は、適宜組み合わせて実施されることが可能である。
【０１５１】
また、本発明は、上述した各実施の形態に限定されず、様々な態様で実施されることが可能である。
【符号の説明】
【０１５２】
１、２    制御装置
１１    現在データ取得部
１２    現在ノード管理部
１３、２３    予測部
１４    補正ノード管理部
１５    次制御値算出部
１６、２６    制御部
１７    ノード格納部
２８    過去データ保存部
５０    自律分散適応制御ノード
５１    タイプ情報保持部
５２    評価関数保持部
５３    隣接ノード保持部
５４    情報交換部
５５    計算部
１００１  ＣＰＵ
１００２  メモリ
１００３  ネットワークインタフェース
【図１】
0006638313.tif 000002
【図２】
0006638313.tif 000003
【図３】
0006638313.tif 000004
【図４】
0006638313.tif 000005
【図５】
0006638313.tif 000006
【図６】
0006638313.tif 000007
【図７】
0006638313.tif 000008
【図８】
0006638313.tif 000009
【図９】
0006638313.tif 000010
【図１０】
0006638313.tif 000011
【図１１】
0006638313.tif 000012
【図１２】
0006638313.tif 000013
【図１３】
0006638313.tif 000014
【図１４】
0006638313.tif 000015
【図１５】
0006638313.tif 000016
【図１６】
0006638313.tif 000017
【図１７】
0006638313.tif 000018