近年、モノのインターネット(IoT:Internet of Things)に関連する技術が発展してきている。IoTとは、様々なモノがインターネットに接続する機能を持ち、それらのモノ同士がリアルタイムに情報交換することで、実世界の把握や制御を行う仕組みである。クラウドやスマートフォンの急速な普及により、IoTを活用し、全ての機器やセンサーから実世界の情報を取得して新たな価値を作り出す環境が整い始めている。例えば、オンデマンドバスの車載GPS(Global Positioning System)を用いて、リアルタイムに車両の位置を把握することができる。このオンデマンドバスの全車両の位置情報を用いて、乗り場にいる乗客に合わせて最適な配車を行うことが可能になる。
しかし、ゲリラ豪雨の時にオンデマンドバスの最適配車を制御することは、既存の技術では難しい。なぜなら、数理計画などの既存の技術では、実世界の対象(モノ・人など)を制御するためには、全体を制御するルールの作成・最適化計算・制御計画が必要となるからである。このような既存の技術では、短時間のうちに環境変動を反映させてこれらの複雑な計算を行うことが難しい。
この問題を解決するために、自律分散適応制御技術を利用することが考えられる。この技術は、複雑な制御ルールを作ることなく、環境変動に適応して個々の制御対象を制御し、全体的な最適状態をダイナミックに作りだす。この技術は、制御数学原理を応用して、制御対象間で情報交換を行うとともに、制御対象の個別制御を繰り返すことで、全体的な最適状態を得る。この技術を用いることにより、制御対象に関する現在の情報を用いて、様々な人・モノを制御することが可能となる(特許文献1〜3参照)。
自律分散適応制御技術の概要を図15に示す。図15において、実世界における制御対象は、計算機上に実現されたノードにマッピングされる。なお、図15において、点線は、制御対象およびノードのマッピングを表している。また、制御対象間で様々なリソースを交換できる状況が、ノード間の接続(トポロジー)として表現される。なお、図15において、実線の矢印は、ノード間の接続を表している。そして、各ノードは、マッピングされた制御対象に関する現時点での様々なデータを入力として取得する(ステップ1)。例えば、そのようなデータは、実世界に配置されたセンサーやカメラ、GPSなどの各種機器から取得される。そして、各ノードは、取得したデータに基づいて、隣接ノードと情報を交換することにより、マッピングされた制御対象に関する最適な状態を計算して次の制御値を算出する(ステップ2)。そして、各ノードは、制御対象に対して次の制御値を出力する(ステップ3)。このように、自律分散適応制御技術を用いることにより、実世界の人やモノを制御するシステムを実現することが可能である。
詳細には、自律分散適応制御技術では、図16に示すように、各制御対象にマッピングされたノードに、評価関数が割り当てられる。評価関数は、制御に関するパラメータ(以下、制御値という)を横軸にとり、全体の最適状態に関連する指標を縦軸にとる関数である。なお、評価関数は、上または下に凸な関数であることが望ましいとされている。各ノードは、その制御対象について評価関数に基づき現時点の評価値を算出する。なお、評価関数が凸関数である場合、評価値としては、該当ノードの現時点の制御値における評価関数の微分値が適用される。そして、各ノードは、隣接ノードとの間で評価値を送受信する。そして、各ノードは、隣接ノードの評価値に基づいて自ノードおよび隣接ノード間で評価値を等しくするような次の制御値を求める。そして、各ノードは、算出した次の評価値を隣接ノード間で送受信し、隣接ノードの次の評価値に基づいてさらに次の制御値を求める計算を繰り返す。このように、自律分散適応制御技術では、ノード毎に、隣接ノードとの間で評価値を送受信して評価値を等しくする個別計算を繰り返すことにより、徐々に全体最適になることが保証されている。これは、全ての凸関数の評価値が等しくなるとき、指標の総和が最適化される数学の定理を利用している。
このような自律分散適応制御技術では、トポロジーを動的に変更することが可能である。トポロジーの動的変更は、ノードの接続を変えることで実現される。これにより、自律分散適応制御技術を用いて、実世界のリアルタイムな状況の変化をトポロジーに反映させ、その時点での最適な状態を常に計算することができる。
例えば、自律分散適応制御技術を適用したオンデマンドバスシステムについて説明する。この場合、各バスは、制御対象としてノードにマッピングされる。また、ノード間は、各バスの現在地情報等に基づき接続される。そして、各ノードには、現在の実世界の状況に基づく評価関数が割り当てられる。ここで、評価関数は、乗客数を制御値として横軸にとり、移動効率(乗客数×移動速度)を縦軸にとる上に凸な関数として設定される。そして、各ノードは、現在の乗客数や移動速度、現在置等のデータに基づいて、評価値を算出する。そして、各ノードは、隣接ノードとの評価値の送受信および個別計算を繰り返す。これにより、システムは、各ノードについて算出される次の制御値に基づいて、バス乗り場に移動させるバスを選択して制御することができる。そして、システムは、そのような制御を繰り返すことにより、全体の移動効率(バスの乗客数×移動速度)を最適化する。
このようなオンデマンドバスシステムの一例を図17に示す。図17に示すように、あるエリアにいる待機乗客(10人)と、バスA〜Cとが存在すると仮定する。ここでは、バスA〜Cは、それぞれノードA〜Cにマッピングされている。また、ノードA〜Cは、自身に設定された評価関数および現時点のデータに基づいて、バスA:評価値3、バスB:評価値1、バスC:評価値2をそれぞれ算出したとする。ここで、各ノードは、隣接ノードの評価値を取得して自ノードおよび隣接ノード間の平均評価値を算出する。ここでは、ノードA〜C共に、平均評価値として2を算出する。そこで、ノードA〜Cは、それぞれの評価関数を用いて評価値が2となるような次の制御値(乗客数)を逆算により求める。この例では、制御値を増やすと評価値が減少する。したがって、現在の評価値が3であるノードAは、評価値2に減少させるため次の制御値として現時点より増加した値を出力することになる。また、現在の評価値が1であるノードBは、評価値2に増加させるため次の制御値として現時点より減少した値を出力することになる。また、現在の評価値が2であり既に平均評価値となっているノードCは、次の制御値として現時点と同一の値を出力することになる。そこで、システムは、次の制御値が増加しているノードAに対応するバスAを選択してバス乗り場に移動させる制御を行う。これにより、全体の移動効率が最適状態に近づくことになる。この例のように、自律分散適応制御技術は、現時点での実世界データを各ノードの評価関数に反映し、ノード間で評価値を送受信した上で各ノードに個別計算を実行させて次の制御値を算出することで、全体の最適化を行うことができる。
このような自律分散適応制御技術は、現在の実世界データだけで最適制御を行うことができるが、以下の課題がある。
自律分散適応制御技術は、現在の実世界データのみを考慮し、予測可能な未来の事象を考慮しないため、適切な対応ができないことがある。例えば、上述のオンデマンドバスシステムは、乗り場に移動させるバスを選択する際に、選択するバスがその後乗り場まで移動する途中に発生する渋滞(未来の事象)を考慮しない。このように、自律分散適応制御技術は、未来の渋滞情報を用いないため、不適切なバスを選択する可能性がある。
また、自律分散適応制御技術は、隣接ノード間で評価値が同じ場合には、適切な対応ができない。これは、評価値を交換して各ノードで個別計算を行っても、現在の制御値と同じ次の制御値が算出されるからである。例えば、上述のオンデマンドバスシステムにおいて、各ノードの評価値が同一であったとする。この場合、各ノードは、評価値の交換と次の制御値の算出を行っても、現在の制御値と同一の値を算出することになる。つまり、どのバスについても、現在の乗客数が最適であると計算される。このため、システムは、バスA、B、Cのいずれの乗客数を増やしたほうが良いのか、あるいは、減らしたほうが良いのかを判断することができず、バス乗り場に移動させるバスを決めることができない。
上述の問題に対応するため、例えば、各バスについて、その位置情報に基づき制御値を補正することが考えられる。例えば、システムが、バス乗り場から一番近いバスに対応するノードの制御値を補正することにより、一番近いバスをバス乗り場に向かわせることもできる。しかしながら、この場合も、前述したように、選択したバスが移動している間に状況が変わり、渋滞に巻き込まれて効率が悪くなる可能性がある。
また、上述の問題に対応するため、過去履歴や現在の状況を用いて統計処理を行い、未来を予測した予測データに基づく評価関数を設定して制御することが考えられる。しかし、この場合、システムは、未来の予測データを用いて制御を行うため、現在の実世界データを考慮しない。このため、実世界における突発的な問題発生に対応することが難しくなる。例えば、過去履歴や現在状況に基づき未来の渋滞などを予測したデータをもちいてバスAが選択されたとする。この場合に、バスAが乗り場までの移動途中に事故に巻き込まれたとしても、システムは、その状況を現在の実世界データとして考慮することができない。このように、未来の予測データをもちいた制御は、実世界における突発的な環境変動に対応できない。
そこで、自律分散適応制御技術において、現在の実世界のデータを反映させた評価関数を、予測データを利用して補正することが考えられる。例えば、過去の乗客数や交通状況などを用いた予測データに基づいて、現在の状況に基づく評価関数を補正することにより、より適した制御対象の選択が可能となる。
しかしながら、予測データを利用して、現在の実世界データを反映させた各ノードの評価関数を補正する場合、次の問題が発生する。この場合、予測データに基づく補正をどれ位の割合で行うかを決定することが難しい。例えば、オンデマンドバスシステムの場合、各ノードの制御値(乗客数)を、予測データを利用して次式により補正することが考えられる。
乗客数=補正係数α×現乗客数+補正係数β×予測乗客数
このような補正式において、補正係数αやβは、制御対象のアプリケーションやソリューション、時間帯等の様々な要素に基づいて設定される必要がある。しかしながら、そのような要素に基づき最適な補正係数を指定することは難しい。また、このような補正係数は、アプリケーションやソリューション、時間帯等といった用途や状況に依存するものとなり、他の用途や状況において適用できない。また、補正係数自体を予測することも考えられるが、補正係数の算出をモデル化することは難しい。また、未来の予測データで評価関数を補正した場合、現時点での実世界データを反映した評価関数が上書きされてしまい、元に戻すことが難しい。
このように、未来の予測データを利用して、現在の状況を反映した評価関数を補正する場合は、補正係数や補正方法などを決定することが難しく、たとえ指定できたとしても特定の用途や状況に依存するために汎用性がないという問題がある。
このような自律分散適応制御技術における問題に関連する技術の一例が、特許文献4〜10に記載されている。
特許文献4に記載された関連技術は、自律分散制御ノードからなる仮想ネットワークにおいてコンテンツの流通経路を最適化する。この関連技術は、隣接ノードリストと、隣接ノードに接続されている候補ノードリストとを保持している。そして、この関連技術は、接続中の各隣接ノードについて、接続確認用のデータが往復するのに要した往復時間を測定する。そして、この関連技術は、測定で得られた往復時間に基づいて、隣接ノードリストを並べ替え、対応する往復時間が長い方から所定数の隣接ノードとの接続を選択的に切断する。そして、この関連技術は、候補ノードリストから所定数の候補ノードを選択して、接続を切断したノードの代わりに接続する。
特許文献5に記載された関連技術は、過去の電力需要量の実績値や気象データに基づいて構築した予測モデルを用いて、予測対象日の電力需要量を予測する。具体的には、この関連技術は、予測対象日よりも前の一定期間に関する予測モデルの出力、電力需要量の実績値、気象データを用いて構築されたファジィ推論モデルにより、予測モデルの出力を補正する。
特許文献6に記載された関連技術は、センサネットワークを構成するセンサノードの消費電力を制御する。このセンサノードは、太陽電池により発電されバッテリーに充電された電力で駆動される。具体的には、この関連技術は、対象となるセンサノードと該センサノード周辺に配置されたセンサノードとにより取得した環境情報データに基づいて、センサノードが配置されている地点の今後の日照量を予測する。また、この関連技術は、センサノードを駆動するバッテリーの残電力量を取得する。そして、この関連技術は、予測した日照量と、取得した残電力量とに基づいてセンサノードの動作周期あるいはセンサノードが取得する環境情報データの数を設定することにより、センサノードの消費電力を制御する。
特許文献7に記載された技術は、プロセス制御において、複数のフィールドデバイスを用いた統合的な制御動作を行うために、パラメータ生成やモデル生成を行う。この関連技術は、プロセス制御を行う1つまたは複数の機能ブロックからリアルタイムにプロセス制御の生データを受け取り、受け取ったデータに基づいて予測モデル生成やパラメータ生成等の解析アルゴリズムを実行する。そして、この関連技術は、解析結果を各機能ブロックに返却する。
特許文献8に記載された技術は、大気汚染の制御システムにおいて汚染物質の排出を制御する。この関連技術は、汚染物質である二酸化硫黄の除去効果を保証するため、二酸化硫黄を吸収させた懸濁液の水素イオン指数(pH)を所定の範囲内に保つよう各種パラメータを制御する。
特許文献9に記載された技術は、プラントにおいて制御対象に対して所定の操作信号を与えることにより得られる計測信号の値が、運転目標値に収まっていくようにするのに必要な操作信号を生成する。このとき、この関連技術は、計測信号の値を予測するモデルから得られる予測結果が、モデル出力目標値に収斂するように、モデル入力を学習する。そして、この関連技術は、学習結果に基づいて、制御対象に与える操作信号を生成する。そして、この関連技術は、得られた計測信号を計測信号データベースに保存しておき、それらの平均と分散に基づいて、さらに操作信号を修正する。
特許文献10に記載された関連技術は、制御対象を制御するための制御モジュールを進化型計算手法により進化させることで最適化する。この関連技術は、最適化処理中の各個体に対する評価値を、個体を使用する利用者の入力により取得する。
以下、本発明の実施の形態について、図面を参照して詳細に説明する。
(第1の実施の形態)
本発明の第1の実施の形態としての制御装置1の機能ブロック構成を図1に示す。図1において、制御装置1は、現在データ取得部11と、現在ノード管理部12と、予測部13と、補正ノード管理部14と、次制御値算出部15と、制御部16と、ノード格納部17とを備える。制御装置1は、各制御対象を制御して全体の状態を最適化する装置である。なお、図1には、3つの制御対象を示しているが、本実施の形態における制御装置が制御する制御対象の数を限定するものではない。
ここで、制御装置1は、図2に示すようなハードウェア要素によって構成可能である。図2において、制御装置1は、CPU(Central Processing Unit)1001、メモリ1002、および、ネットワークインタフェース1003を含む。メモリ1002は、RAM(Random Access Memory)、ROM(Read Only Memory)、補助記憶装置(ハードディスク等)等によって構成される。ネットワークインタフェース1003は、インターネット、LAN(Local Area Network)、公衆回線網、無線通信網またはこれらの組合せ等によって構成されるネットワークに接続するインタフェースである。この場合、現在データ取得部11および制御部16は、ネットワークインタフェース1003と、メモリ1002に格納されるコンピュータ・プログラムを読み込んで実行するCPU1001とによって構成される。また、現在ノード管理部12、予測部13、補正ノード管理部14および次制御値算出部15は、メモリ1002に格納されるコンピュータ・プログラムを読み込んで実行するCPU1001によって構成される。また、ノード格納部17は、メモリ1002によって構成される。なお、制御装置1およびその各機能ブロックのハードウェア構成は、上述の構成に限定されない。
現在データ取得部11は、各制御対象について現在の状況に関するデータ(現在データ)を取得する。例えば、制御対象に、制御対象の状況に関するデータを検出する検出装置と、検出したデータを送信する送信装置とが搭載されているとする。この場合、現在データ取得部11は、制御対象に搭載されている送信装置から検出データを受信して、現在データとしてもよい。
現在ノード管理部12は、各制御対象を表すよう、現在データに基づくノード(現在ノード)を生成する。例えば、現在ノード管理部12は、現在ノードに、そのノードが表す制御対象の現在データに基づく評価関数および現時点の制御値を設定してもよい。ここで、評価関数は、制御対象に対する制御値と、制御対象に関わる効率を表す値との関係を表すものである。そのような評価関数としては、上または下に凸な関数が採用されることが望ましい。また、制御値は、制御対象の状況を制御するパラメータの値である。また、現在ノード管理部12は、制御対象間の関係性を表すよう、現在ノード間を接続してトポロジーを構成する。このように生成された現在ノードは、ノード格納部17に格納される。
ここで、現在ノード管理部12は、各制御対象に対応させた現在ノードとして、自律分散適応制御を行うノードのインスタンスを生成してもよい。自律分散適応制御を行うノードは、対応する制御対象を表す情報と、評価関数と、接続される他のノードを表す情報と、そのノードが表す時点の制御値とを少なくとも保持する機能を持つ。また、自律分散適応制御を行うノードは、接続される他の各ノードとの間で、その評価関数および制御値に基づく情報を送受信する機能を持つ。また、自律分散適応制御を行うノードは、他の各ノードの評価関数および制御値に基づく情報を利用して、次の制御値を算出して保持する機能を持つ。さらに、本実施の形態では、自律分散適応制御を行うノードは、現在ノードであるか後述の補正ノードであるかを表すタイプ情報を保持する機能を持つものとする。
この場合、現在ノード管理部12は、自律分散適応制御を行うノードのインスタンスに、現在ノードを表すタイプ情報と、対応する制御対象の識別情報と、評価関数と、現時点の制御値と、接続された他のノードの識別情報とを設定すればよい。
予測部13は、各制御対象について予測される未来の状況に関するデータ(予測データ)を算出する。ここで、予測部13は、各制御対象について、未来の所定時点における予測データを算出してもよい。なお、予測部13には、制御対象の未来の状況を予測する公知の各種技術を採用可能である。
補正ノード管理部14は、各制御対象に対応させて、予測データに基づく補正ノードを生成する。補正ノードは、現在ノードによる制御を補正するためのノードである。例えば、補正ノード管理部14は、補正ノードに、そのノードが対応する制御対象の予測データに基づく評価関数および予測される制御値を設定してもよい。そして、補正ノード管理部14は、制御対象間の関係性に基づいて、現在ノードおよび補正ノード間をさらに接続することにより、前述のトポロジーを再構成する。例えば、補正ノード管理部14は、各現在ノードと、その現在ノードに接続された他の現在ノードが表す制御対象に対応する補正ノードとを接続してもよい。この場合、補正ノード管理部14は、同一の制御対象に対応する現在ノードおよび補正ノード間を接続しないようにする。このように生成された補正ノードは、ノード格納部17に格納される。
例えば、補正ノード管理部14は、各制御対象に対応させた補正ノードとして、現在ノードと同様に、前述の自律分散適応制御を行うノードのインスタンスを生成してもよい。この場合、補正ノード管理部14は、自律分散適応制御を行うノードのインスタンスに、補正ノードを表すタイプ情報と、対応する制御対象の識別情報と、予測データに基づく評価関数と、予測される制御値と、接続された他のノードの識別情報とを設定すればよい。また、補正ノード管理部14は、補正ノードの接続先の現在ノードに、接続した補正ノードの識別情報を追加して設定すればよい。
次制御値算出部15は、各現在ノードについて、該ノードに接続された他のノードから得られる情報を利用して、該ノードが表す制御対象に対する次の制御値を算出する。他のノードから得られる情報とは、例えば、接続された他のノードにおける評価関数および制御値に基づく情報であってもよい。なお、各現在ノードに接続された他のノードには、他の現在ノードおよび補正ノードが含まれる。
また、現在ノードおよび補正ノードが、前述の自律分散適応制御を行うノードとして生成されている場合、次制御値算出部15は、各現在ノードに、該ノードが表す制御対象に対する次の制御値を算出するよう指示すればよい。そして、各現在ノードは、自ノードに接続された各ノードとの間で、それぞれの評価関数および制御値に基づく情報を送受信する。そして、各現在ノードは、自ノードに接続された他のノードから得られた評価関数および制御値に基づく情報を用いて、次の制御値を算出すればよい。
制御部16は、各現在ノードについて算出された次の制御値に基づいて、各制御対象を制御する。
以上のように構成された制御装置1の動作について、図面を参照して説明する。
まず、制御装置1のノード設定動作を図3に示す。
図3では、まず、現在データ取得部11は、各制御対象について現在データを取得する(ステップS11)。
次に、現在ノード管理部12は、各制御対象について、現在データに基づく現在ノードを生成する(ステップS12)。生成された現在ノードは、ノード格納部17に格納される。
次に、現在ノード管理部12は、制御対象間の関係性を表すよう、現在ノード間を接続してトポロジーを構成する(ステップS13)。構成されたトポロジーに関する情報は、ノード格納部17の現在ノードに設定される。
次に、予測部13は、各制御対象について予測される未来の予測データを算出する(ステップS14)。
次に、補正ノード管理部14は、各制御対象に対応させて、予測データに基づく補正ノードを生成する(ステップS15)。生成された補正ノードは、ノード格納部17に格納される。
次に、補正ノード管理部14は、制御対象間の関係性に基づいて、現在ノードおよび補正ノード間をさらに接続することにより、トポロジーを再構成する(ステップS16)。再構成されたトポロジーに関する情報は、ノード格納部17の現在ノードおよび補正ノードに設定される。
以上で、制御装置1は、ノード設定動作を終了する。
次に、制御装置1の制御動作を図4に示す。
図4では、まず、次制御値算出部15は、ノード格納部17に格納された各現在ノードについて、そのノードに接続された他のノードから得られる情報を取得する(ステップS21)。
次に、次制御値算出部15は、各現在ノードについて、他のノードから取得した情報に基づいて次の制御値を算出する(ステップS22)。
次に、制御部16は、各現在ノードについて算出された次の制御値に基づいて、各制御対象を制御する(ステップS23)。
なお、もし、現在ノードおよび補正ノードが自律分散適応制御を行うノードのインスタンスとして生成される場合、ステップS21〜S22の動作は、次制御値算出部15が各現在ノードに対して次制御値を算出するよう指示することにより、各現在ノードが実行する。
以上で、制御装置1は動作を終了する。
次に、本発明の第1の実施の形態の効果について述べる。
本発明の第1の実施の形態としての制御装置は、各制御対象を制御して全体としての状態を最適化する際に、突発的な環境変動に対応しながら、予測される未来の事象をも反映させた制御を、特定の用途や状況に依存することなく可能とする。
その理由について説明する。本実施の形態では、現在データ取得部が、各制御対象について現在データを取得する。すると、現在ノード管理部が、各制御対象を表すよう、現在データに基づく現在ノードを生成してノード格納部に格納する。また、現在ノード管理部は、制御対象間の関係性を表すよう現在ノード間を接続してトポロジーを構成する。また、予測部が、各制御対象について予測される未来の予測データを算出する。すると、補正ノード管理部が、各制御対象に対応させて、予測データに基づく補正ノードを生成してノード格納部に格納する。また、補正ノード管理部は、制御対象間の関係性に基づいて、現在ノードおよび補正ノードをさらに接続してトポロジーを再構成する。このように構成されたトポロジーにおける各現在ノードについて、次制御値算出部が、該ノードに接続された他の各ノードから得られる情報を利用して、該ノードが表す制御対象に対する次の制御値を算出する。そして、制御部が、このようにして算出された各制御対象の次の制御値に基づいて、各制御対象を制御するからである。
このように、本実施の形態は、現在データを反映させた現在ノードから構成されたトポロジーに、未来の予測データを反映させた補正ノードを追加して、隣接ノード間で得られる情報を用いて各制御対象に対する次の制御値を算出して制御を行う。その結果、本実施の形態は、現在ノードを補正することなく用いることにより突発的な環境変動に対応しながら、補正ノードを用いることにより未来の事象にも対応した制御を行うことができる。
(第2の実施の形態)
次に、本発明の第2の実施の形態について図面を参照して詳細に説明する。なお、本実施の形態の説明において参照する各図面において、本発明の第1の実施の形態と同一の構成および同様に動作するステップには同一の符号を付して本実施の形態における詳細な説明を省略する。
まず、本発明の第2の実施の形態としての制御装置2の構成を図5に示す。図5において、制御装置2は、本発明の第1の実施の形態としての制御装置1に対して、予測部13に替えて予測部23と、制御部16に替えて制御部26とを備え、さらに過去データ保存部28を備える点が異なる。
ここで、制御装置2およびその各機能ブロックは、図2を参照して説明した本発明の第1の実施の形態と同様のハードウェア要素によって構成可能である。また、この場合、過去データ保存部28は、メモリ1002によって構成される。ただし、制御装置2およびその各機能ブロックのハードウェア構成は、上述の構成に限定されない。
過去データ保存部28は、各制御対象について過去の状況に関するデータ(過去データ)を保存している。例えば、過去データ保存部28は、現在データ取得部11によって取得される現在データを、日時情報等に対応付けて蓄積していってもよい。
制御部26は、各現在ノードについて算出された次の制御値に基づいて制御対象を選択する。そして、制御部26は、選択した制御対象に対して、次の制御値に基づく制御を行う。
予測部23は、各制御対象について、過去データおよび現在データに基づき予測される未来の所定時点における予測データを算出する。予測部23は、例えば、過去データおよび現在データに基づく統計的学習を用いて予測データを算出してもよい。また、予測部23は、各制御対象について、その制御対象が制御部26によって選択されて制御されたと仮定して、予測データを生成する。
以上のように構成された制御装置2の動作について、図面を参照して説明する。なお、過去データ保存部28には、既に制御対象に関する過去データが保存されているものとする。
まず、制御装置2のノード設定動作を図6に示す。
図6において、まず、制御装置2は、ステップS11〜S13まで、本発明の第1の実施の形態と同様に動作することにより、現在データに基づく現在ノードを生成しトポロジーを構成する。
次に、予測部23は、各制御対象について、その制御対象が制御部26によって選択されて制御されたと仮定して、過去データおよび現在データに基づいて、未来の所定時点における予測データを生成する(ステップS34)。
次に、制御装置2は、ステップS15〜S16まで、本発明の第1の実施の形態と同様に動作することにより、予測データに基づく補正ノードを生成しトポロジーを再構成する。
以上で、制御装置2は、ノード設定動作を終了する。
次に、制御装置2の制御動作を図7に示す。
図7において、まず、制御装置2は、ステップS21〜S22まで、本発明の第1の実施の形態と同様に動作して、各現在ノードについて次の制御値を算出する。
次に、制御部26は、各現在ノードについて算出された次の制御値に基づいて制御対象を選択する。そして、制御部26は、選択した制御対象に対して、次の制御値に基づく制御を行う(ステップS43)。
以上で、制御装置2は、動作を終了する。
次に、本発明の第2の実施の形態を具体例で説明する。この具体例では、オンデマンドバスシステムにおける個々のバスを制御対象とする。また、この具体例では、制御装置2は、各バスについて算出した次の制御値に基づいて、このエリア内のバス乗り場に移動させるバスを選択し、選択したバスをバス乗り場に移動させるよう制御する。そして、制御装置2は、バス全体の移動効率を最適化するよう制御を行う。
この具体例では、制御装置2は、データセンタに設置されているものとする。制御装置2は、ネットワークを介して各バスおよびバス乗り場と通信可能に接続されている。
各バスは、現在データを検出する装置として、現在置情報を検出する位置検出装置、現在の乗客数を検出する人数検出装置、および、移動速度(または平均速度)を検出する速度検出装置を搭載している。位置検出装置は、例えば、GPS(global positioning system)受信機等によって構成されていてもよい。また、人数検出装置は、ビームセンサまたはカメラ等によって構成されていてもよい。また、速度検出装置は、位置検出装置によって検出された現在地の履歴から速度を検出するよう構成されていてもよい。また、各バスは、検出した現在置、乗客数および移動速度等を、ネットワークを介して制御装置2に送信するとともに、制御装置2から制御情報を受信する装置を搭載している。
また、バス乗り場にも、待ち人数を検出する人数検出装置と、ネットワークを介して待ち人数を制御装置2に送信する装置が設置されている。
制御装置2の現在データ取得部11は、各バスから、現在置、乗客数および移動速度等を表す情報を取得する。また、現在データ取得部11は、各バス乗り場における待ち人数を表す情報を取得する。また、現在データ取得部11は、オンデマンドシステムを構成する対象エリア毎に、渋滞や通行止め等の交通情報等も取得する。このように、現在データ取得部11は、オンデマンドバスシステムに関わる現時点の様々な情報を現在データとして取得する。
過去データ保存部28は、現在データ取得部11によって取得された情報を時系列で保存している。例えば、過去データ保存部28には、対象エリア毎の交通情報の履歴、各バスの乗客数や対応するノードに設定された評価関数の履歴、バス乗り場の待ち人数の履歴等が保存される。
現在ノード管理部12は、各バスを表す現在ノードを生成する。ここでは、現在ノードは、図8に示すような自律分散適応制御ノード50のインスタンスとして生成される。自律分散適応制御ノード50は、タイプ情報保持部51、評価関数保持部52、隣接ノード保持部53、情報交換部54および計算部55を含む。
タイプ情報保持部51は、自律分散適応制御ノード50のタイプ情報として「現在」または「予測」を保持する。ここでは、「現在」は、「現在ノード」であることを表し、「予測」は、「補正ノード」であることを表すものとする。
評価関数保持部52は、自ノードに設定された評価関数を表す情報と、現在の制御値と、その制御値における評価値および移動効率と、後述の計算部55によって計算される次の制御値とを保持する。
ここで、この具体例では、評価関数は、移動効率(乗客数×移動速度)を縦軸にとり、乗客数を制御値として横軸にとる関数であり、上に凸な関数であるものとする。また、評価値は、そのノードの現在の制御値における評価関数の微分値であるものとする。なお、評価値は、本発明における「評価関数および制御値に基づく情報」の実施の形態に相当する。
隣接ノード保持部53は、トポロジーにおいて接続される他の自律分散適応制御ノード50の識別情報(接続先のノードを表す識別情報)を保持する。以降、接続される他の自律分散適応制御ノード50を、隣接ノードとも記載する。
情報交換部54は、隣接ノードから、その評価関数保持部52に保持された評価値を取得する。また、情報交換部54は、隣接ノードに対して、自ノードの評価関数保持部52に保持された評価値を出力する。
計算部55は、隣接ノードから得られた評価値に基づいて、自ノードにおける次の制御値を算出する。例えば、計算部55は、以下のようにして次の制御値を算出してもよい。計算部55は、各隣接ノードから得られた評価値と、自ノードの評価値との平均(平均評価値)を算出する。そして、計算部55は、自ノードの評価関数において、平均評価値となる制御値を、その評価関数を使った平均評価値からの逆算により求める。そして、計算部55は、求めた制御値を次の制御値として評価関数保持部52に保持する。
現在ノード管理部12は、各バスについて、現在ノードとして、図8に示した自律分散適応制御ノード50のインスタンスを生成し、タイプ情報保持部51に「現在」を設定する。また、現在ノード管理部12は、各現在ノードの評価関数保持部52に、そのノードが表すバスの現在データに基づく評価関数を設定する。また、現在ノード管理部12は、各現在ノードに、そのノードが表すバスの現在データに基づいて、現時点の乗客数(制御値)と、その乗客数における移動効率および評価値とを設定する。また、現在ノード管理部12は、各バスの位置情報に基づいて、現在ノード間を接続する。そして、現在ノード管理部12は、各現在ノードの隣接ノード保持部53に、接続先の現在ノードを表す識別情報を保持する。
予測部23は、各バスについて、そのバスが制御部26により選択されてバス乗り場に移動するよう制御されたことを仮定する。そして、予測部23は、各バスについて、過去データおよび現在データに基づいて、未来の所定時点における状況を予測データとして算出する。ここでは、予測部23は、各バスについて、それぞれバス乗り場に移動するよう制御された場合の30分後について、評価関数、制御値(乗客数)、移動効率、評価値を予測データとして算出する。また、予測部23は、該当するエリアにおける渋滞などの交通情報を、過去データおよび現在情報に基づき予測し、予測データとして生成する。なお、予測部23は、過去データおよび現在データに基づく統計的学習手法を用いて、予測データを算出するものとする。
補正ノード管理部14は、各バスついて、補正ノードとして、図8に示した自律分散適応制御ノード50のインスタンスを生成し、タイプ情報保持部51に「予測」を設定する。また、補正ノード管理部14は、各補正ノードの評価関数保持部52に、対応するバスに関する予測データに基づいて、予測時点(30分後)における評価関数を設定する。また、補正ノード管理部14は、各補正ノードの評価関数保持部52に、予測時点における制御値(乗客数)を設定する。また、補正ノード管理部14は、各補正ノードの評価関数保持部52に、予測時点の乗客数(制御値)に対する評価値および移動効率を設定する。
また、補正ノード管理部14は、生成した補正ノードを現在ノードに接続してトポロジーを再構成する。具体的には、補正ノード管理部14は、各現在ノードに、その現在ノードに隣接する現在ノードが表すバスに対応する補正ノードを接続する。なお、補正ノード管理部14は、各現在ノードに、その現在ノードが表すバスに対応する補正ノードを接続しないようにする。そして、補正ノード管理部14は、補正ノードの隣接ノード保持部53に、接続した現在ノードを設定する。また、補正ノード管理部14は、各現在ノードの隣接ノード保持部53に、接続した補正ノードを追加する。
次制御値算出部15は、各現在ノードの情報交換部54および計算部55に、次の制御値を算出するよう指示する。これにより、各現在ノードの情報交換部54は、隣接ノードとの間で評価関数保持部52に保持された評価値を送受信する。隣接ノードには、他の現在ノードおよび補正ノードが含まれる。そして、計算部55は、各隣接ノードの評価値に基づいて次の制御値を評価関数を使った逆算により算出し、評価関数保持部52に保持する。
制御部26は、各現在ノードについて算出された次の制御値に基づいて、バス乗り場に移動させるバスを選択する。具体的には、制御部26は、現時点の制御値(乗客数)に対して、次の制御値(乗客数)が増加しているノードに対応するバスを選択してもよい。また、該当する複数のバスがある場合、制御部26は、バス乗り場の待ち人数により近い人数分、制御値が増加しているノードに対応するバスを選択してもよい。そして、制御部26は、選択したバスに対して、バス乗り場に移動するよう指示する制御情報を送信する。
以上のように構成された具体例の制御装置2の動作について説明する。ここでは、図9に示すように、あるエリア内を走行中の3台のバスA、B、Cを制御対象として説明する。また、このエリアにおけるバス乗り場の待ち人数は10人であるとする。
まず、現在データ取得部11は、バスA、B、Cから、それぞれの現在地情報、乗客数、移動速度(平均速度)等を、現在データとして取得する。また、現在データ取得部11は、該当エリアにおけるバス乗り場の待ち人数や、該当エリアの交通情報等も、現在データとして取得する(ステップS11)。
次に、現在ノード管理部12は、バスA、B、Cを表す現在ノードとして、ノードA1、B1、C1を、自律分散適応制御ノード50のインスタンスとしてそれぞれ生成する。そして、現在ノード管理部12は、ノードA1、B1、C1について、タイプ情報「現在」と、現在データに基づく評価関数、制御値(乗客数)、移動効率とを設定する(ステップS12)。
次に、現在ノード管理部12は、各バスの位置情報に基づいて、バス間の関係性を表すよう現在ノード間を接続してトポロジーを構成する。ここでは、ノードA1、B1、C1のそれぞれは、他の2台のバスを表すノードとそれぞれ接続されたものとする(ステップS13)。
次に、予測部23は、各バスについて、そのバスが制御部26によって選択されてバス乗り場に移動するよう制御されたと仮定して、30分後の状況を表す予測データを、過去データおよび現在データに基づき統計的学習手法により算出する(ステップS34)。
次に、補正ノード管理部14は、各バスに対応させた補正ノードとして、ノードA2、B2、C2を、自律分散適応制御ノード50のインスタンスとしてそれぞれ生成する。そして、補正ノード管理部14は、ノードA2、B2、C2について、タイプ情報「予測」と、予測データに基づく評価関数、制御値(乗客数)、移動効率とを設定する(ステップS15)。
次に、補正ノード管理部14は、現在ノードに、その現在ノードに接続された他の現在ノードに対応する補正ノードをさらに接続することにより、トポロジーを再構成する(ステップS16)。
上述のノード設定動作により、ノード格納部17には、ノードA1、A2、B1、B2、C1、C2について、図10に示す通りの情報が格納されたものとする。なお図10において、ψ10、11、20、21、30および31は、それぞれの評価関数を表している。
次に、次制御値算出部15は、ノード格納部17から、タイプ情報保持部51が「現在」であるノードA1、B1、C1を抽出する。そして、次制御値算出部15は、ノードA1、B1、C1に対して、そのノードが表すバスに対する次の制御値を算出するよう指示する
そして、ノードA1、B1、C1は、ステップS21〜S22をそれぞれ実行する。
すなわち、ノードA1において、情報交換部54は、隣接ノード保持部53を参照して隣接するノードB1、B2、C1、C2を特定する。そして、情報交換部54は、これらのノードB1、B2、C1、C2から、それぞれの評価関数保持部52に保持された評価値3、1、3、2を取得する。
そして、ノードA1において、計算部55は、自ノードの評価値3および隣接ノードの評価値3、1、3、2の平均評価値として2.4を算出する。そこで、計算部55は、自ノードの評価関数において評価値が2.4となる次の制御値を求める。この場合、評価値を3から2.4に減少させるため、現在の制御値(乗客数)10より増加した制御値が求められる。ここでは、次の制御値として20が算出され、評価関数保持部52に保持されたとする。
また、ノードB1において、情報交換部54は、隣接ノード保持部53を参照して隣接するノードA1、A2、C1、C2を特定する。そして、情報交換部54は、これらのノードA1、A2、C1、C2から、それぞれの評価関数保持部52に保持された評価値3、3、3、2を取得する。
そして、ノードB1において、計算部55は、自ノードの評価値3および隣接ノードの評価値3、3、3、2の平均評価値として2.8を算出する。そして、計算部55は、自ノードの評価関数において評価値が2.8となる次の制御値を求める。この場合、評価値を3から2.8に減少させるため、現在の制御値(乗客数)10より増加した制御値が求められる。ここでは、計算部55は、次の制御値として12が算出され、評価関数保持部52に保持されたとする。
また、ノードC1において、情報交換部54は、隣接ノード保持部53を参照して隣接するノードA1、A2、B1、B2を特定する。そして、情報交換部54は、これらのノードA1、A2、B1、B2から、それぞれの評価関数保持部52に保持された評価値3、3、3、1を取得する。
そして、ノードC1において、計算部55は、自ノードの評価値3および隣接ノードの評価値3、3、3、1の平均評価値として2.6を算出する。そして、計算部55は、自ノードの評価関数において評価値が2.6となる次の制御値を求める。この場合、評価値を3から2.6に減少させるため、現在の制御値(乗客数)10より増加した制御値が求められる。ここでは、次の制御値として16が算出され、評価関数保持部52に保持されたとする。
ノードA1、B1、C1における上述のステップS21〜S22の動作により、ノード格納部17において、ノードA1、B1、C1における評価関数保持部52には、図11に示すように次の制御値が格納された。また、このようなデータが評価関数保持部52に保持されたノードA1、B1、C1を、模式的に図12に示す。
次に、制御部26は、現在ノードであるノードA1、B1、C1について算出された次の制御値に基づいて、バスA、B、Cからいずれかを選択する。ここでは、前述したように、バス乗り場には10人の待ち人数がある。また、図12からわかるように、ノードA1、B1、C1において、現時点の制御値から次の制御値への増分は、それぞれ、10、2、6である。したがって、この場合、制御部26は、次の制御値への増分が待ち人数の10人分に相当するノード10に対応するバスAを選択する。そして、制御部26は、バスAに対して、バス乗り場へ向かうことを指示する制御情報を送信する(ステップS43)。
以上で、具体例の説明を終了する。
次に、本発明の第2の実施の形態の効果について述べる。
本実施の形態としての制御装置は、各制御対象を選択制御しながら全体としての状態を最適化する際に、突発的な環境変動に対応しながら、さらに精度よく予測した未来の事象をも反映させた制御を、特定の用途や状況に依存することなく可能とする。
その理由について説明する。本実施の形態は、本発明の第1の実施の形態と同様の構成に加えて、次の構成を備えるからである。すなわち、過去データ保存部が、各制御対象について過去データを保存している。また、予測部が、各制御対象について、その制御対象が制御部によって選択されて制御されると仮定した場合の未来の所定時点における状況を表す予測データを、過去データおよび現在データに基づいて算出する。そして、制御部が、各現在ノードについて算出された次の制御値に基づいて制御対象を選択し、選択した制御対象を次の制御値に基づいて制御するからである。
また、本実施の形態は、本発明の第1の実施の形態と同様に、予測データから算出した仮想的な補正ノードを、現在ノードに加えてトポロジー構成に組み込む。これにより、本実施の形態は、現在データのみで制御する自律分散適応制御の既存の機構を大幅に変えずに、未来のデータを反映させて次の制御値を補正することができる。
ここで、前述したように、未来の予測データのみによって制御した場合、現在の実世界の突発的な問題に対応が難しい。これに対して、本実施の形態は、予測データに対応する補正ノードだけでなく、現在の状態を表す現在ノードを補正することなく用いて、次の制御値の計算を行うので、現在の実世界における突発的な問題に対応可能となる。
例えば、上述の具体例と同様のケースにおいて、図13に示すように、予測データに基づく補正ノードであるノードA2、B2、C2のみによって自律分散適応制御の計算を行ったと仮定する。この場合、ノードA2は、隣接するノードB2、C2との間の平均評価値として2を算出する。そして、ノードA2は、現時点の評価値3から2に減少させるために、次の制御値として現時点より増加した値を算出する。一方、ノードB2においては、隣接するノードA2、C2との間の平均評価値が2と算出され、現時点の評価値1から増加させるためには、次の制御値(乗客数)として現時点より減少した値が算出される。また、ノードC2においては、隣接するノードA2、B2との間の平均評価値が2と算出され、現時点の評価値2から変化がないため、次の制御値(乗客数)として現時点と同一の値が算出される。したがって、予測データに基づくノードA2、B2、C2のみによって制御を行う場合、バス乗り場に移動させるバスとしてバスAが選択される。しかしながら、この場合、直後にバスAが突発的な交通状態の悪化により移動できなくなった場合には、対応が難しい。
これに対して、本実施の形態の具体例は、前述の図12に示したように各ノードを接続して各種データを保持し、バスAを選択する。このとき、突発的な交通状態の悪化によりバスAが移動できなくなったとする。この場合、本実施の形態の具体例は、この状況を現在ノードであるノードA1に反映させて評価関数を変更し、現在の制御値に対応する評価値を求める。そして、本実施の形態の具体例は、再度、現在ノードであるノードA1、B1、C1および補正ノードであるノードA2、B2、C2を用いて自律分散適応制御の計算を行えばよい。このように、本実施の形態の具体例は、補正ノードを用いて未来の予測データを考慮しながらも、現在ノードを組み入れていることで、突発的に発生した交通状況の悪化に対応して、迅速に最適なバスを選択することができる。
また、本実施の形態は、自律分散適応制御において、現在のデータに対応するだけでは評価値がほぼ同等で、どの制御対象を制御してよいか判別が難しい場合に、予測データを反映させた補正ノードを組み込むことにより、より最適な制御対象を選択できる。
例えば、上述の具体例と同様のケースにおいて、現在データに基づくノードA1、B1、C1のみによって自律分散適応制御の計算を行ったと仮定する。この場合、どの現在ノードも、それぞれの評価値が3であるため、平均評価値として3を算出することになる。そのため、ノードA1、B1、C1は、それぞれ次の制御値として、現在の制御値と同一の値を算出することになる。このように、現在データのみを用いる自律分散適応制御の場合、バスA、B、Cのうちいずれを選択して制御すればよいかがわからない場合がある。
これに対して、本実施の形態の具体例は、現在ノードに加えて、未来の予測データに基づく補正ノードを用いて自律分散適応制御の計算を行う。これにより、図12を用いて説明したように、未来の予測データを考慮に入れて、バスAを選択することができる。
また、本実施の形態は、自律分散適応制御のノードとして予測データを反映させた補正ノードを組み入れればよいため、補正手法や補正係数の割合などを指定する必要がない。このため、本実施の形態は、アプリケーションやソリューション等の特定の状況に依存することがなく、汎用的に、現在データを用いた制御を予測データによって補正することが可能となる。また、本実施の形態は、予測した評価値が現在の評価値とかけ離れている、または、現在の評価値に近すぎる、などの場合分けを考慮する必要がなく、汎用的に補正を行うことができる。
また、本実施の形態は、予測データに基づく補正ノードを、自律分散適応制御のノードとして計算に組み込んでいるため、予測データによる補正をより高速によりシンプルに実現できる。
また、本実施の形態は、同一の制御対象に対応する現在ノードおよび補正ノードを接続しない。このように、同一の制御対象に対応する現在ノードと補正ノードとを接続しないことにより、本実施の形態は、自律分散適応制御において望ましくない計算結果が算出されることを回避している。
例えば、上述の具体例と同様のケースにおいて、図14に示すように、現在ノードであるノードA1、B1、C1に対して、それぞれが表すバスに対応する補正ノードであるノードA2、B2、C2を直接接続したと仮定する。すると、各現在ノードは、自ノードが表すバスの未来の状況を、現時点での他のバスの状況とみなして計算を行ってしまう。そして、この場合、図14に示すように、ノードA1、B1、C1について、それぞれ次の制御値として10、18、13が算出される。その結果、図14に示すように、バスBは、移動効率の悪い未来の状況が予測されているにも関わらず、バス乗り場に向かわせるバスとして選択されてしまう。このような不適切な制御は、バスBの現在データを反映させたノードB1と、バスBの予測データを反映させたノードB2とを接続したために発生する。本実施の形態の具体例は、同一のバスを表す現在ノードと補正ノードとを接続せずに、各現在ノードに対して、接続される他の現在ノードが表すバスに対応する補正ノードを接続するため、上述のような望ましくない計算結果を算出することがない。
また、本実施の形態は、現在データを反映させた現在ノードと、未来の予測データを反映させた補正ノードとを、別々に設定できる。このため、本実施の形態は、現在ノードの評価関数を変更することなく、補正を行うことができる。その結果、本実施の形態は、補正の解除に容易に対応可能である。また、本実施の形態は、現時点の現在データの変更を、未来の予測データを反映させた補正ノードとは独立して容易に行うことができる。また、本実施の形態は、未来の予測データの変更を、現在データを反映させた現在ノードとは独立して容易に行うことができる。
なお、本実施の形態において、オンデマンドバスシステムにおける各バスを制御対象とする例を中心に説明したが、本実施の形態は、他の制御対象にも適用可能である。
また、本実施の形態において、過去データおよび現在データに基づき予測データを算出する例について説明した。その他、本実施の形態において、予測部は、制御対象に関する未来の状況を表す予測データを、他の予測手法を用いて算出してもよい。もし、採用する予測手法に過去データが不要であれば、過去データ保存部は、省略可能である。
また、本実施の形態において、過去データおよび現在データに基づき統計的学習手法を用いて予測データを算出する例について説明した。その他、本実施の形態において、予測部は、過去データおよび現在データに基づく他の手法を用いて予測データを算出してもよい。
また、上述した各実施の形態において、評価関数が上または下に凸な関数であり、評価値が、評価関数の微分値である例を中心に説明したが、これらに限らない。評価関数は、現在の制御値に対する何らかの指標を表す関数であればよい。また、評価値は、現在の制御値および評価関数から算出される値であればよい。また、各実施の形態において、次制御値算出部は、各現在ノードについて、評価関数および制御値に基づく情報に限らず、隣接ノードから得られるその他の情報を用いて、次の制御値を算出してもよい。
また、上述した各実施の形態において、現在ノードおよび補正ノードが、制御装置と同一のサーバ上に実現される例について説明した。この他、各ノードは、制御装置とは物理的に異なる装置上に実現されてもよい。また、各ノードは、対応する制御対象に搭載される装置上に実現されてもよい。
また、本実施の形態において、制御装置を構成する各機能ブロックは、複数の装置に分散されて実現されてもよい。
また、上述した本発明の各実施の形態において、制御装置の各機能ブロックが、記憶装置またはROMに記憶されたコンピュータ・プログラムを実行するCPUによって実現される例を中心に説明した。これに限らず、各機能ブロックの一部、全部、または、それらの組み合わせが専用のハードウェアにより実現されていてもよい。
また、上述した本発明の各実施の形態において、各フローチャートを参照して説明した制御装置の動作を、本発明のコンピュータ・プログラムとしてコンピュータ装置の記憶装置(記憶媒体)に格納しておいてもよい。そして、係るコンピュータ・プログラムを当該CPUが読み出して実行するようにしてもよい。そして、このような場合において、本発明は、係るコンピュータ・プログラムのコードあるいは記憶媒体によって構成される。
また、上述した各実施の形態は、適宜組み合わせて実施されることが可能である。
また、本発明は、上述した各実施の形態に限定されず、様々な態様で実施されることが可能である。