実施形態1.
以下、本発明の実施形態を図面を参照して説明する。
図1は、本実施形態の領域管理システム10を含む移動体運航システム100の概略構成図である。図1に示すように、本実施形態の領域管理システム10は、配下に、それぞれが自身に割り当てられた占有領域内において移動体の運航管理を行う運航管理システム20が複数属していることを前提とする。その上で、領域管理システム10は、運航管理システム20からの領域申請に従って領域を割り当てるだけでなく、全体最適化のために、少なくとももつれの検出およびその改善のための情報提供を行う。
なお、運航管理システム20への領域割当や、運航管理システム20への領域割当状況を示す領域情報および各々の運航管理システム20から報告される各移動体の運航計画を示す運航情報の管理等は別途行われるものとし、本実施形態ではこれらに関する情報が適宜参照可能であるとする。
移動体運航システム100において、領域は、各々の運航管理システム20に排他的に割り当てられるものとする。割り当て後の領域内における移動体の運航管理は、割当先の運航管理システム20に委譲される。割当先の運航管理システム20以外は、交渉して領域そのものを得ない限り、該領域を移動体の運航に使用することはできない。このような制約を運航管理システム20の各々に課すことにより、異なる運航管理システム20間での移動体のコンフリクトを回避する。
図2は、本実施形態の領域管理システム10の構成例を示すブロック図である。図2に示す領域管理システム10は、もつれ検出部11と、改善情報出力部12とを備える。
もつれ検出部11は、複数の運航管理システム20の各々に対して占有領域を割り当てた結果、非効率となっている領域割当を「もつれ」として検出する。もつれ検出部11は、運航情報と領域情報とに基づいて、もつれを検出する。
ここで、「占有領域」は、いずれかのユーザが使用中または使用予定の領域であって、ユーザからの申請等により、その時間帯に対して当該ユーザに割り当てられる領域である。本実施形態では、自身に割り当てられた占有領域内において移動体の運航管理を行う運航管理システム20またはその事業者を「ユーザ」と呼ぶ。
図3に示すように、領域管理システム10の管理対象領域は、「利用可能領域」と「利用不可領域」とに大別される。また、「利用可能領域」は、さらに「占有領域」と「非占有領域」とに大別される。ここで、「利用可能領域」は、移動体の運航に利用できる領域である。「利用不可領域」は、建物や天候等の物理条件や緊急時の対応等で一般の移動体が運航に利用できない領域である。換言すると、「利用不可領域」は「利用可能領域」以外の領域である。また、「非占有領域」は、「利用可能領域」のうちいずれのユーザにも占有されていない領域である。「非占有領域」は、いずれかのユーザが予約すればその時間帯において該ユーザの「占有領域」となる。
領域情報は、例えば、取得可能な運航計画にかかる時間帯における管理対象領域の占有状況を示す情報を含む。領域情報は、例えば、所定の時間帯ごとの占有領域の割当状況(予約を含む)を示す情報であってもよい。
また、運航情報は、移動体の運航の出発位置と、到着位置と、出発時刻と、出発位置から到着位置までの運航経路の所定の評価指標またはそれを算出可能な情報とを含む。ここで「所定の評価指標」は、本システムにおける改善したいものに対応する。一例として、到着時刻、経路長、移動距離、移動所要時間、消費エネルギ、経路上の各点における障害物との距離およびそれらの組み合わせなどが挙げられる。なお、運航情報のデータ形式は予め定められているものとする。
本実施形態において、「もつれ」を、より具体的に「2以上のユーザを指定したときに、指定されたユーザに対する領域割当を変更することにより、これらユーザの全てで、現在登録されている移動体の運航計画に対して運航経路の改善が見込まれる状態」と定義してもよい。領域割当の変更は、例えば、占有領域の少なくとも一部を解放または他のユーザと交換することである。また、運航経路の改善は、具体的には、到着時刻、経路長、移動距離、移動所要時間、消費エネルギ、経路上の各点における障害物との距離およびそれらの組み合わせなどによって示される運航コストの改善であってもよい。
なお、「もつれ」の定義は、上記に限定されない。例えば、一部のユーザまたは一部の移動体にとって改善がない場合や不利益になる場合であっても、領域割当の変更により、現在登録されている移動体の運航計画に対して、移動体全体または選択されたユーザ全体で運航経路の改善が見込まれる場合は、該状態を「もつれ」として検出してもよい。
より単純に、「もつれ」を「ある指定された2以上のユーザの移動体の現在の運航計画に対して、該ユーザの占有領域の変更に伴う各移動体の運航経路の改善度および/または該改善度に基づくユーザの運航改善度が所定の条件を満たす状態」とすることも可能である。この場合、「所定の条件」の例として、「指定されたユーザについて、移動体の運航経路の改善度に基づくユーザ単位の運航改善度が全てプラスである」、「移動体全体での運航経路の改善度(合計)がプラスである」、「指定されたユーザ全体での運航改善度(合計)がプラスであって、かつ全ての移動体の運航経路の改善度が0以上である」等が挙げられる。ここで、「移動体の運航経路の改善度」および「ユーザの運航改善度」はマイナス値で悪化状態、ゼロで現状維持、プラス値で改善状態を表すものとする。
移動体の運航経路の改善度は、例えば、運航計画における移動コストと占有領域の変更後の移動コストの差であってもよい。また、ユーザの運航改善度は、該ユーザが管理する移動体の運航経路の改善度の合計や重み付け和であってもよい。
また、もつれ検出部11は、もつれが検出された場合には、該もつれを解消するための各移動体の運航経路を示す1つ以上の改善案と、各改善案による運航改善度とを併せて検出する。
改善情報出力部12は、もつれ検出部11による検出結果に基づいて、現在の運航計画を改善するための情報(以下、改善情報という)を出力する。改善情報の例としては、改善案の情報や、各移動体の最適経路の情報が挙げられる。また、この他にも、改善情報出力部12は、改善情報として、交換対象の領域の情報とその交換に伴うユーザの運航改善度とを出力してもよい。さらに、改善情報出力部12は、改善案に対して、交渉の成立のしやすさ(例えば、ユーザの中で最小の運航改善度)や全体最適度合い(全ユーザの運航改善度の合計)、公平さ(ユーザ間の運航改善度の差(分散))などを評価し、ランキング形式等で出力することも可能である。また、改善情報出力部12は、もつれ検出に用いたユーザ(選択ユーザ)のうちの一部のユーザに対してのみ、上記情報を出力することも可能である。もつれに関わるユーザに向けてこれらの情報を出力することで、ユーザに領域交渉の有意性を示唆することができる。
なお、図示省略しているが、領域管理システム10は、領域情報および運航情報を保持する情報保持部や、領域情報および運航情報を受信するデータ受信部を備えていてもよい。
図4はもつれの発生例を示す説明図である。本例の前提として、各ユーザは、自身が管理する移動体について出発地と目的地(到着地)の情報を所持している。また、領域は悪天候などで利用不可になることがある。図4(a)〜図4(d)は、このような前提の下、もつれが生じた例を示す。
図4(a)は、ある時刻における管理領域の状態を示す。図4(a)には、一部領域が利用不可であること、および、ユーザAが管理する移動体である移動体M1と、ユーザBが管理する移動体である移動体M2の出発地(Start)と目的地(Goal)とが示されている。なお、図4(a)の時刻において、利用可能領域はいずれのユーザにも割り当てられていないものとする。
まずユーザAが、移動体M1のその時点での最短経路にかかる領域を申請する。図4(b)は、ユーザAによる領域申請後の領域の割当状況を示す。
しばらくした後、天候が回復して利用不可領域が利用可能領域になったとする。図4(c)は、天候回復後の領域の状態を示す。
次いで、ユーザBが、移動体M2のその時点での最短経路にかかる領域を申請する。図4(d)は、ユーザBによる領域申請後の領域の割当状況を示す。図4(d)の状態は、もつれが発生している状態である。
図5は、もつれの判定例を示す説明図である。図5(a)は、図4(d)の状態をそのまま示している。この状態に対して、図5(b)に示すように、ユーザAとユーザBの領域割当を変更すると、両ユーザの移動体の移動距離をともに短くできる。このような場合、図5(a)の状態は、もつれが生じていると判定されるとともに、図5(b)の状態は、該もつれの改善案とされる。
このように、各ユーザが限られた情報の中で自身の利益を追求するだけでは、互いに損する状況になることがある。そこで、もつれが検知された場合に、図5(b)に示すようなもつれを解消した状態を改善案としてユーザに提示するなどの情報提供を行うことにより、ユーザに領域交換を促す。
次に、本実施形態の領域管理システム10の動作を説明する。図6は、本実施形態の領域管理システム10の動作の一例を示すフローチャートである。図6に示す例では、まず、もつれ検出部11が、ユーザを2以上選択する(ステップS101)。
次に、もつれ検出部11は、選択したユーザの占有領域を解放したときの非占有領域を使って、該ユーザが管理する移動体の各運航について経路を探索する(ステップS102)。
次に、もつれ検出部11は、現在の運航計画と探索結果とに基づいて、各移動体の運航経路の改善度を算出する(ステップS103)。
次に、もつれ検出部11は、各移動体の運航経路の改善度が所定の条件を満たすか否かを判定する(ステップS104)。所定の条件を満たしている場合(ステップS104のYes)、もつれ検出部11は、もつれが発生していると判定する(もつれ検出)。このとき、もつれ検出部11は、もつれの検出ともに、1つ以上の改善案と、各改善案による運航改善度とを併せて検出する(ステップS105)。
次に、改善情報出力部12は、もつれ検出部11の検出結果に基づいて改善情報を出力する(ステップS106)。
一方、各移動体の運航経路の改善度が所定の条件を満たしていない場合(ステップS104のNo)、もつれ検出部11は、領域割当によるもつれが発生していないと判定し、そのまま終了する。なお、このとき、もつれ検出部11が、もつれが発生していない旨を出力してもよい。
次に、具体例を示しながらもつれの検出方法をより詳しく説明する。図7は、領域変更に伴う経路長の改善度を用いたもつれの検出例を示す説明図である。図中において、siは移動体M1の出発位置、giは移動体M2の到着位置を表す。今、ユーザAが管理する移動体M1と、ユーザBが管理する移動体M2と、ユーザCが管理する移動体M3のそれぞれの運航経路が図7(a)の運航計画に示す状態であったとする。運航計画における移動体M1の経路長は10、移動体M2の経路長は7、移動体M3の経路長は10である。
このような運航計画に対して、もつれ検出部11が、ユーザAとユーザBとを選択したとする(図7(b))。図7(b)には、ユーザAおよびユーザBの占有領域を解放したときの領域の状態が示されている。なお、白塗りの領域は非占有領域である。もつれ検出部11は、移動体M1および移動体M2の運航計画に基づき、非占有領域を使用してそれぞれの運航経路を探索する(図7(c))。ここでは、移動体M1について経路長が4の経路が発見され、移動体M2について経路長が3の経路が発見される。もつれ検出部11は、移動体M1および移動体M2について、領域解放前後の経路長を比較し、いずれも短くなっていることからもつれを検出する。
次に、もつれ判定アルゴリズムの具体例をいつくか提示する。以下では、移動体の例としてドローンを例示するが、移動体はドローンに限定されない。
図8および図9は、本例の領域のイメージ図である。図8に示すように、本例では、移動体の運航に用いる領域として3次元の空間を想定する。その上で、該3次元の空間を所定の管理単位に分割したものを、「領域」(「空域」)の1単位として定義する。各空域は、ユーザに排他的に割り当てられる。
また、図9に示すように、空域は時間毎に割り当てられ、各ユーザは自身に割り当てられた空域の中から、ドローンが現在位置する空域に対して隣接する空域を広げてルートを形成する。以下では、説明を簡単にするため、移動体の運航経路として2次元に拡がる空域を例示するが、該経路が3次元に拡がる空域にも適用可能であることは当業者であれば容易に想像されるであろう。なお、移動体が2次元的に移動する車等であれば、移動体の運航に用いる領域として2次元の空間を想定し、該2次元の空間を所定の管理単位に分割したものを「領域」の1単位として定義することも可能である。
また、図10は、領域の占有状態と移動体の移動の例を示す説明図である。図10(a)は本例の移動にかかる空域の2次元配置を示す説明図である。図10(a)には、領域a1〜領域a4という4つの空域が示されている。なお、本図に示すように、領域a1と領域a2と領域a4が、図中+X方向に直線上に繋がっており、その迂回路として領域a2の+Y方向に領域a3が隣接している。
また、図10(b)は各領域の割当状況を示す表であり、図10(c)は当該領域配置における移動体の移動例を示す説明図である。図10(c)において、空域内の丸印はドローンを表し、中の数字はドローンの識別子を表す。なお、丸印の1は、ユーザAが管理するドローン(移動体M1)であり、丸印の2はユーザBが管理するドローン(移動体M2)である。図10(b)および図10(c)に示すように、1つの空域に異なるユーザが管理するドローンは侵入できない。また、空域を跨ぐ時刻を厳密に制御できないことを考慮して、1つ前の時刻でドローンが存在して現在時刻で該ドローンが他の空域に移動している場合も、その空域(1つ前の時刻でドローンが存在した空域)に他のユーザのドローンは入れないものとする。なお、図10では、各ドローンが単位時間あたりに1つの空域を進む例を示しているが、ドローンの移動速度は本例に限定されない。
図10(c)に示すように、時刻t=0において、移動体M1が領域a1、移動体M2が領域a4にいたとする。このとき、領域a1はユーザAの占有領域であり、領域a4はユーザBの占有領域である。なお、移動体M1の目的位置は領域a1であり、移動体M2の目的位置は領域a4である。
時刻t=1で、ユーザAは、領域a2を自身の占有領域とした上で移動体M1を領域a2に進める。ユーザBは、領域a2がユーザAの占有領域となっているため、移動体M2を領域a2に進めることができず、領域a4に留めておく。
時刻t=2で、ユーザAは、領域a4がユーザBの占有領域となっているため、領域a3を自身の占有領域とした上で移動体M1を領域a3に迂回させる。ユーザBは、領域a2がまだユーザAの占有領域となっているため、移動体M2を領域a4に留めておく。
時刻t=3で、ユーザAは、領域a4がまだユーザBの占有領域となっているため、移動体M1を領域a3に留めておく。ユーザBは、領域a2が解放されたため、領域a2を自身の占有領域とした上で移動体M2を領域a2に移動させる。
時刻t=4で、ユーザAは、領域a4が解放されたが領域a2がユーザBの占有領域となっているため、移動体M1を領域a3に留めておく。ユーザBは、領域a1を自身の占有領域とした上で移動体M2を領域a1に移動させる(到着)。
時刻t=5で、ユーザAは、領域a2が解放されたため、領域a2を自身の占有領域とした上で移動体M1を領域a2に移動させる。また、時刻t=6で、ユーザAは、領域a4を自身の占有領域とした上で移動体M1を領域a4に移動させる(到着)。
このように、ある空域がいずれかのユーザに占有されているとき、他のユーザは当該空域は使用できないため、そのような空域を避けて移動する。なお、迂回経路の設定等は、その移動体を管理する運航管理システム20が行えばよい。
次に、図11〜図20を参照して、もつれ判定アルゴリズムの具体例を説明する。図11は、もつれ判定アルゴリズムにおける空域の表現例を示す説明図である。図11に示すように、以下に示す例では、空域(3次元)をグラフで表現する。より具体的には、各空間の座標をグラフの点に対応させ、単位時間あたりにドローンが移動可能な空間座標の繋がりを辺に対応させる。その上で、各空域を、座標の集合として表現する。なお、空の空間構造を表現するグラフおよび各空域は以下の式(1)のように表される。ここで、Vは点の集合、Eは辺の集合、mは空域の数である。ここで各空域は、上述した領域の管理単位に相当する。
図12は、グラフ表現された空域群に対する移動体の移動ルールを示す説明図である。図12に示すように、各移動体は、空域間を移動するときに移動前と移動後の両空間の占有を必要とする。また、1つの空域に対して、異なるユーザの移動体が1つの単位時間内に同時に存在することはできない。また、1つ前の時刻で移動体が存在して限時刻では移動している場合も、その領域には入れない。
次に、もつれ判定アルゴリズムの第1例を説明する。第1例は、ダイクストラ法を異なるユーザに管理される複数の移動体向けに適用したものである。
第1例のもつれ判定アルゴリズムは、判定対象とされた各ドローンについて、出発点と到着点のペア(si,gi)と現在の運航計画により示される出発時刻Ts iと到着時刻Tg iとを入力する。ここで、nは判定対象とされたドローンの数である。判定対象のドローンは、例えば、もつれ検出対象とされた時間帯において、選択されたユーザが管理するドローンである。また、出発点s、到着点g、出発時刻Ts、到着時刻Tgの右肩のi(i=1,...,n)は、ドローンの識別子を表す。また、出力は、もつれの有無およびもつれが存在する場合、代替ルートの情報(各ドローンのパス情報)である。なお、空域の単位や割当状況などの空域情報は随時参照可能とする。
第1例のもつれ判定アルゴリズムは、判定対象とされた各ドローンについて、選択したユーザの空域を解放したときに取り得るルートの組み合わせを列挙していき、現状よりも良いルートがないかを探索し、探索結果を基にもつれを判定する。このとき、判定対象とされた各ドローンの現在の運航計画の中で一番最初の出発時刻から一番最後の到着時刻までを探索時間範囲とする。
以下、もつれ判定アルゴリズムの詳細を説明する前に、該もつれ判定アルゴリズムに用いる遷移可能状態の抽出アルゴリズムについて説明する。本アルゴリズムでは、ドローンの移動可能な状態として、以下を想定する。まず出発時刻を過ぎてまだ出発していないドローンに対しては、ドローンの位置を出発点とするか出発を見送る。このとき、出発していないドローンの位置としては、出発していない状態を表す特別な座標を付与するなどして、グラフ上にはいないものとする。また、到着点にいるドローンに対しては、到着済み状態を表す特別な座標を付与するなどして、グラフ上にはいないものとする。
また、各ドローンの位置をdiで表し、出発前はs0、到着後はg0にいるとする。また各時刻における各ドローンの状態を、ドローンの位置と時刻とを用いて、w=(d1,...,dn,t)で表す。以下では、簡単のため、各ドローンは、選択されたユーザの占有領域の解放後の非占有領域内を、1つの時刻の経過で隣接する点から点すなわち辺で繋がった点から点に移動可能とする。
以下、より具体的な処理フローを説明する。遷移可能状態の抽出アルゴリズムでは、時刻tの状態が与えられた場合に、時刻t+1において遷移可能な状態を抽出する。
まず、時刻tのwにおいて到着点にいるドローンがあれば、時刻t+1の状態における当該ドローンの位置をg0とする。次いで、その状態に対して、d1が各隣接位置(ただし、非占有領域に限る)に移動する場合と、移動しない場合とを列挙する。このとき、出発時刻を過ぎていて出発していない場合は、出発する場合と出発しない場合とを列挙する。次いで、1つ前で列挙したすべての状態に対して、さらにd2について各隣接位置(ただし、非占有領域に限る)に移動する場合と、移動しない場合とを列挙する。このとき、出発時刻を過ぎていて出発していない場合は、出発する場合と出発しない場合とを列挙する。
以降、同様の処理を、d3,...,dnまで繰り返す。最後に、dnについて列挙した全ての状態から、占有条件により遷移不可能な状態を削除し、残った状態を時刻t+1における遷移可能な状態として出力する。
図13に、遷移可能状態の抽出アルゴリズムの疑似コードを示す。図13に示す遷移可能状態の抽出アルゴリズムは、時刻tの状態wを入力し、状態wから遷移可能な時刻t+1の全ての状態を出力する。まず、Step.1で、遷移可能状態候補を示すStの1つとして、St(0)にwを代入する。その上で、各i=1,...,nについて、di=giならば、St(0).sti=g0とする。また、St(0).stn+1=t+1とする。
ここで、stiはStのi番目の要素を表す。また、St(0)は、全ての移動体が時刻t+1においてtの位置のままか到着済みを表すg0の状態となる。また、Stの右肩の()内の数字は、当該Stのラベルを表す。該ラベルは、次Step以降において遷移先の導出対象とした移動体の識別子iに対応する。Step.1は到着済みの処理をした上で、全ての移動体が現状維持となる状態を遷移可能状態候補として生成する処理である。
Step.2では、候補集合ST[]にSt(0)を追加する。
Step.3では、STの要素から、e(St)が最小となるStを選ぶ。ここで、e()はラベルを返す関数である。このとき選択されたStのラベルをiとし、i=e(St)>nならばStep.6に進む。なお、Step.3はSTの要素のうちiの小さいものから順に選ぶ処理である。例えば、ST[]の唯一の要素がSt(0)であれば、e(St)=0が返された結果、St(0)が選択される。
Step.4では、遷移先の導出対象を示すiをi+1に更新するとともに、選択したStのラベルe(St)=iとする。これにより、選択したStにおいてdiも現状位置または出発しない状態の候補がSt(i)としてST[]に保持される。さらに、時刻tにおける状態wのdiがVの要素ならば、辺(di,di’)がEの要素であることを満たすdi’の各々について、選択したStを基にして、新たなSt(i)を生成する。具体的には、まずSt’に選択したStを代入し、かつSt’.sti=di’としたものを新たなSt(i)として、ST[]に追加する。なお、Step.3で選択されたStが複数ある場合は、各Stに対して、遷移先di’を反映した新たなSt(i)を生成する。例えば、Stが2つ選択され、遷移可能な位置di’が2つ列挙された場合、4つのSt(i)が生成される。一方、時刻tにおける状態wのdi=s0かつt+1≧Ts iならば、選択したStを基にして、遷移先di’=siとする新たなSt(i)を生成する。具体的には、まずSt’に選択したStを代入し、その上で、St’.sti=siとしたものをSt(i)として、ST[]に追加する。
Step.5では、Step.3に処理を戻す。以降、i>nになるまでStep.3〜4の処理を繰り返す。
Step.6では、ST[]の要素で、e(St)がnであるStを全て選択する。選択したStのうち、条件(a)を満たすものすべてを時刻t+1において遷移可能状態として出力する。
条件(a):
各i=1,...,n、各j=1,...,mについて、選択したSt.stiがajの要素すなわち領域aj内の点ならば、iを除く全てのk=1,...,nに対して、St(0).stkがajの要素でなく、かつSt.stkがajの要素でない。
なお、条件(a)は、領域が他のドローンと重なっているものを削除するための条件(領域の排他条件)である。ここでは、各iすなわちドローン単位で領域の排他条件を適用しているが、ユーザが同じドローンについては上記排他条件の適用外とすることも可能である。その場合、上記のkを、k=1,...,n(ただし、iおよびiと同じユーザの移動体lを除く)とすればよい。このように、1つのユーザが複数のドローンの運航を管理する場合、ユーザ単位で領域の排他制御を行うことも可能である。
図14は、領域の排他条件が適用された例を示す説明図である。今、一直線上に並ぶ5つのポイントp1〜p5があったとする。p1は領域a1に属し、p2およびp3は領域a2に属し、p4およびp5は領域a3に属す。今、状態w={p1,p4,t}とする。すなわち、時刻tにおいて、ユーザAが管理する移動体M1がp1に位置し、ユーザBが管理する移動体M2がp4に位置している。この状態wに対して、t+1への遷移可能状態を考える。なお、領域a1〜a3は、全ての判定対象時刻において解放されているものとみなす。
まず、St(0)={p1,p4,t+1}が生成される。次いで、移動体M1の遷移可能状態が反映されたSt(1)として、移動体M1が隣接点に移動するパターンの状態{p2,p4,t+1},移動体M1が移動しないパターンの状態{p1,p4,t+1}が生成される。次いで、移動体M2の遷移可能状態が反映されたSt(2)として、上記2つのSt(1)に対して、それぞれ移動体M2が隣接点に移動するパターンの状態と、移動体M2が移動しないパターンの状態とが生成される。生成される状態St(2)は{p2,p3,t+1},{p2,p5,t+1},{p2,p4,t+1},{p1,p3,t+1},{p1,p5,t+1},{p1,p4,t+1}である。この結果に対して、条件(a)を適用すると、{p2,p3,t+1}が除外される。最終的に出力される状態は、St(2)のうち{p2,p3,t+1}を除外した4つの状態である。
次に、第1例のもつれ判定アルゴリズムの詳細を説明する。まず、判定対象とされた各ドローンは出発前とし、tを最も早い出発時刻の1つ前の時刻とする。次いで、tから遷移可能なt+1の状態を列挙する。当該状態の列挙は既に説明した遷移可能状態の抽出アルゴリズムを用いればよい。
次いで、列挙した全ての状態に対して、さらに次の時刻で遷移可能な状態を列挙する。ここでは、tを1ずつ大きくしていき、最も遅い到着時刻になるまで各tについて遷移可能な状態を列挙する。
最も遅い到着時刻まで遷移可能な状態の列挙を終えると、列挙された状態のうち、tが最大で、かつ全てのドローンが到着済みの状態全てを対象に、該状態から時刻tを逆に辿って各ドローンのルートの組み合わせを示すパスセットを導出する。ここでは、対象とされた状態のそれぞれに対して、パスセットが1つ導出される。
導出されたパスセットの中に、各ユーザにとってドローンの到着時刻が早くなるルートの組み合わせがあれば、もつれが存在するとして、該パスセットを出力する。そのようなものがなければ、もつれは存在しないとしてその旨を出力する。
図15に、第1例のもつれ判定アルゴリズムの疑似コードを示す。本例のもつれ判定アルゴリズムは、出発点と到着点のペア(si,gi)と現在の運航計画により示される出発時刻Ts iと到着時刻Tg iとを入力し、もつれの有無およびもつれがある場合にはもつれ解消後のパスセットPSの情報を出力する。
まず、Step.1で、展開前の状態(その状態から次の状態へのパスを導出していない状態)の集合をS、展開順を記録する木をWとする。時刻tを、判定対象とされたドローンのうち1番早い出発時刻の1つ前の時刻に合わせ、各ドローンの位置diを、出発前s0とした状態w(t)を生成する。ここでwの右肩の()内の数字は当該状態が対応する時刻を表す。w(t)をSとWの唯一の要素とする。
Step.2では、Sの要素からtが最小のwを選択する。以下、選択されたwが対応する時刻をtとする。このとき、tが最も遅い到着時刻以上ならば、Step.5に進む。そうでないならば、選択したw(t)をSから削除する。
Step.3では、選択した状態w(t)の各々について、次の時刻において遷移可能な状態w(t+1)を全て列挙する。そして、列挙したw(t+1)をSとWに追加する。このとき、Wには、w(t+1)の各々について遷移前の状態w(t)の情報を付与して追加する。具体的には、木構造において枝(w(t),w(t+1))を付与する。これにより、後から遷移前の状態を辿れるようにする。
Step.4では、Step.2に処理を戻す。以降、tが最も遅い到着時刻を超えるまでStep.2〜3の処理を繰り返す。
Step.5では、Wの要素から、tが最大かつ全てのドローンの位置が到着済み(全てのiについてdi=g0)の状態w(tMAX)を取り出し、取り出したw(tMAX)の各々に対して、枝を遡って時刻が1番早い出発時刻の1つ前の時刻になるまでのパスセットPSを生成する。Step.5では、Wにおいて枝を遡り、時刻が1つ前の状態を繋げることで、パスセットPSを生成すればよい。ここで、wの右肩のtMAXおよびtMINは、それぞれWの要素であるwの最大時刻および最小時刻を表す。パスセットPSは、判定対象とされた全てのドローンの各時刻における位置を含む。パスセットPSにより、各ドローンのパスの組み合わせが示される。
Step.6では、形成したパスセットPSの中で、全てのドローンにおいて、di=giとなる最初の時刻である到着時刻が、入力された到着時間Tg iよりも早いパスセットPSをすべて出力する。そのようなパスセットPSが存在しなければ、もつれが発生していないとして、その旨を示す情報を出力する。
次に、図16〜図18を参照して、パス探索およびもつれの判定例を示す。図16は、運航計画における移動体M1および移動体M2のパスの例を示す説明図である。本例では、簡単のため、各移動体が1つの領域間を単位時間あたりに移動可能な場合を考える。すなわち、ポイントと領域とが1対1に対応している場合を考える。移動体M1はユーザAによって管理され、移動体M2はユーザBによって管理されている。また、図16(a)に示すように、領域は、4×5の20マスのブロックに分割されており、そのうちの中央6マスは利用不可領域である。また、利用可能領域の各領域に対して、図16(b)に示すように、識別用にポイント番号(p1〜p14のいずれか)が割り振られている。また、移動体M1の出発位置s1はポイントp1、到着位置g1はポイントp11に設定され、移動体M2の出発位置s2はポイントp8、到着位置g2はポイントp4に設定されている。また、図16(c)には、運航計画時の領域の割当状況が示されている。運航計画によれば、移動体M1の開始時刻Ts 1と到着時刻Tg 1は(Ts 1,Tg 1)=(0,10)、移動体M1の開始時刻Ts 1と到着時刻Tg 1は(Ts 2,Tg 2)=(0,10)である。
以下、このような状態から時刻t=0〜10の時間帯におけるポイントp1〜p14の領域を解放したときの、上記もつれ判定アルゴリズムの判定結果の例を示す。
図17に、判定対象とされた移動体のうち最も早い出発時刻の1つ前の時刻t=−1から最も遅い到着時刻t=10までの間の遷移可能な状態を時間が小さいものから順に列挙した場合の一部を示す。
第1例のもつれ判定アルゴリズムでは、このようにして列挙された状態の中から、時刻が最大(本例ではtMAX=10)でかつ判定対象とされた全ての移動体が到着済みの状態を取り出し、時刻が最小(tMIN=−1)となるまで時刻の逆順に枝を辿ることで、パスセットPS(w(10),...,w(−1))を形成する。なお、図17において、t=10で上から2段目の状態は、領域解放前の各移動体のルートと同じルートを示しているが、全ての移動体が到着済みとなっていないため、当該状態w(tMAX)を基にしたパスセットPSは形成されない。
なお、もつれの定義によりパスセットPSが形成される条件は異なる。例えば、領域解放前のパスと同じ到着時刻となるパスを一部含んでいても、ユーザ単位で到着時間の合計がプラスになる場合も許容する場合等は、上記の限りではない。このような場合、例えば、許容される最大遅延時間まで探索時間範囲を拡張して遷移可能な状態を列挙し、全ての移動体が到着済みの状態に対し、パスセットPSを形成した上で、もつれの定義に従い、出力するパスセットPSを取捨選択すればよい。
図18は、パスセットの一例を示す説明図である。図18に示す例は、図17においてt=10で上から1段目の状態を基に形成されたパスセットPSの例である。当該パスセットPSによれば、領域の割当を変更することにより、ユーザAおよびユーザBともに、到着時刻が短縮されることがわかる。図18(a)には、該パスセットPSに含まれる各移動体のルートが示されている。また、図18(c)には、該パスセットPSにおける領域割当の例が示されている。ここでは、4<10=Tg 1、4<10=Tg 2となっており、互いのユーザにとってWIN−WINなルートになっている。なお、本例のパスセットPSと各移動体のルートの関係は、図18(d)に示す通りである。すなわち、パスセットPSの要素である各時刻の状態w(t)におけるi番目の要素diを時刻の順に繋げたものが、i番目の移動体のルートとされる。なお、出力されるパスの組は1つに限定されず、条件を満たすパスの組を対象に、運航改善度を評価し、上位n個のパスセットPSを出力するといった制御も可能である。
次に、第2例のもつれ判定アルゴリズムについて説明する。第2例は、A*(Aスター)をベースにしたアルゴリズムである。
本例のもつれ判定アルゴリズムも、判定対象とされた各ドローンについて、出発点と到着点のペア(si,gi)と現在の運航計画により示される出発時刻Ts iと到着時刻Tg iとを入力する。また、出力は、もつれの有無およびもつれが存在する場合、代替ルートの情報(パスセット)とする。
ダイクストラ法をベースにした第1例のもつれ判定アルゴリズムでは、現状の時刻が小さいものから順に次の状態を考えたが、A*をベースにした第2例のもつれ判定アルゴリズムは、予測される到着時間が小さいものから次の状態を考える。予測される到着時刻が実際の到着時間に近ければ、より早く到着しそうなものだけを考えればよいため、処理時間の削減が見込まれる。なお、理論的には、予測される到着時刻が実際の到着時刻よりも低く見積もられていればよい。ここで、「予測される到着時刻=現在の時刻+現在の状態から到着までの予測時間」とする。
到着までの予測時間の取得方法としては、他の移動体の動きを考慮せず、A*法を用いて最短経路を導出して得る方法や、現在地と到着点の直線距離から算出する方法などが挙げれる。なお、実際の到着時間よりも小さく見積もられる方法であれば、特に限定されない。
以下、第2例のもつれ判定アルゴリズムの具体的な処理フローを例示する。
Step.0で、まず初期状態として、各ドローンの位置を出発前とし、時刻tを最も早い出発時刻の1つ前の時刻とする状態を定義し、状態の展開木Wに追加する。
Step.1では、Wにおいて次の遷移可能な状態が列挙されていない状態の中から、全てのドローンの到着までの予測時間が最小のものを選ぶ。そして、該状態を基に次の時刻で遷移可能な状態を列挙する。このとき、予測される到着時刻のうち最小の時刻である最小予測到着時刻が、入力された最も遅い到着時刻よりも大きいならば、もつれが発生していないとして、その旨を示す情報を出力して終了する。
Step.2では、Wにおいて全てのドローンが到着済みの状態があればそれを選択する。そして、該状態から時刻tを逆に辿って各ドローンのルートの組み合わせを示すパスセットPSを導出する。ここでは、選択された状態1つに対して、パスセットが1つ導出される。
Step.3では、導出されたパスセットの中に、所定の条件を満たすものがあれば、もつれが存在するとして、該パスセットを出力して終了する。そのようなものがなければ、Step.1に戻る。
図19は、第2例のもつれ判定アルゴリズムのパス探索例を示す説明図である。図19に示すように、次の状態を列挙する処理の中で、予測される到着時刻が最小の状態について、次の状態を列挙する。
また、図20は、第2例のもつれ判定アルゴリズムの判定例を示す説明図である。図20に示すように、各時刻における遷移可能な状態を全て列挙しなくても、全ての移動体が到着済みでかつ所定の条件を満たすパスセットが導出されれば、その時点でもつれを検出することができる。これにより、全ての状態を通るパスセットが形成されなくても、途中で条件を満たすパスセットが見つかった時点で処理を終了することができる。
なお、もつれ判定アルゴリズムは上記の例に限定されない。例えば、一部のユーザについて改善がないもしくは不利益を許すパスセットを、もつれ解消後のパスセットとして出力することも可能である。
また、運航計画に複数の経由点が指定されている場合には、それらを制約条件として入れて遷移先の状態を導出することも可能である。
また、遷移先の状態を導出する際、各移動体に対して速さの概念を追加することも可能である。この場合、移動可能な位置を、スピートに応じて変更すればよい。例えば、移動体のスピードが1なら、辺を一度跨いだ先(隣接点)までを移動可能とすればよい。また、スピードが2なら、辺を二度跨いだ先(隣接点の隣接点)までを移動可能とすればよい。また、スピードが3なら、辺を三度跨いだ先(隣接点の隣接点の隣接点)までを移動可能とすればよい。なお、いずれの場合も移動体は移動可能な範囲内であれば途中で止まってもよいものとする。
また、ユーザの選択方法としては、最初から全てのユーザを対象にする方法や、任意のユーザの組み合わせをランダムに選択する方法などが挙げられる。また、もつれが存在する可能性の高いユーザを別のアルゴリズムを用いて判定し、それらユーザを選択することも可能である。
別のアルゴリズムの例としては、運航計画が示された移動体について、すべて非占有領域と仮定した場合の最短経路を探索し、最短の予想到着時刻と運航計画における到着時刻との差を評価する方法が挙げられる。例えば、探索結果に基づいて、最短の予想到着時刻と運航計画における到着時刻との差が所定数以上または大きい順にn個の移動体をリストアップし、それら移動体を管理するユーザを対象にしてもよい。
また、例えば、あるユーザについて、すべて非占有領域と仮定した場合の各移動体の最短経路を探索した結果の最短経路を基に、該経路上の空域を占有している他のユーザをリストアップする処理を、他のユーザについても同様に行い、その結果を利用する方法が挙げられる。最短経路上の空域を占有している他のユーザのリストアップ処理を相互に繰り返し行って、最終的にリストアップされた全てのユーザを対象にしてもよい。
また、第2例では、条件を満たすパスセットが導出された時点で該パスセットを出力して処理を終了していたが、A*ベースのアルゴリズムにおいても、改善案とされる複数のパスセットや、最適経路のパスセットを出力することも可能である。この場合、例えば、許容される最大遅延時間となるまで次の状態を列挙する処理を継続すればよい。
このように、本実施形態のもつれ検出部11を利用すれば、もつれがあると判定した場合に、一部の領域の割当変更により改善されるパスセット(改善案)の情報と、該パスセットにおける各移動体の運航経路の改善度またはユーザの運航改善度とを含む情報を得ることができる。ここで、該パスセットは、例えば、最適なものすべてといった複数出力が可能である。なお、ここでの最適性はパレート最適であってもよい。
例えば、2ユーザを対象にもつれを判定した結果、もつれとともに、(第1のユーザの運航改善度,第2のユーザの運航改善度)=(4,4),(3,5),(6,3),(3,3)の解(パスセット)を得たとする。その場合、改善情報出力部12は、(4,4),(3,5),(6,3)の解を改善情報として出力してもよい。
また、改善情報をランキング形式等で出力する場合、改善情報出力部12は、何かしらの基準に基づいて各解に対して評価を行い、各解にランクを付ければよい。例えば、全体最適を基準にする場合、移動体全体またはユーザ全体で改善度の合計を計算し、評価してもよい。また、例えば、交渉のしやすさを基準にする場合、対象ユーザの最小の運航改善度を計算し、評価してもよい。また、例えば、公平性を基準にする場合、ユーザ間の運航改善度の差や分散などを計算し、評価してもよい。
次に、本発明の実施形態にかかるコンピュータの構成例を示す。図21は、本発明の実施形態にかかるコンピュータの構成例を示す概略ブロック図である。コンピュータ1000は、CPU1001と、主記憶装置1002と、補助記憶装置1003と、インタフェース1004と、ディスプレイ装置1005と、入力デバイス1006とを備える。
上述した運航管制システムは、例えば、コンピュータ1000に実装されてもよい。その場合、各構成要素の動作は、プログラムの形式で補助記憶装置1003に記憶されていてもよい。CPU1001は、プログラムを補助記憶装置1003から読み出して主記憶装置1002に展開し、そのプログラムに従って上記の実施形態における所定の処理を実施する。
補助記憶装置1003は、一時的でない有形の媒体の一例である。一時的でない有形の媒体の他の例として、インタフェース1004を介して接続される磁気ディスク、光磁気ディスク、CD−ROM、DVD−ROM、半導体メモリ等が挙げられる。また、このプログラムが通信回線によってコンピュータ1000に配信される場合、配信を受けたコンピュータは1000がそのプログラムを主記憶装置1002に展開し、上記の実施形態における所定の処理を実行してもよい。
また、プログラムは、各実施形態における所定の処理の一部を実現するためのものであってもよい。さらに、プログラムは、補助記憶装置1003に既に記憶されている他のプログラムとの組み合わせで上記の実施形態における所定の処理を実現する差分プログラムであってもよい。
インタフェース1004は、他の装置との間で情報の送受信を行う。また、ディスプレイ装置1005は、ユーザに情報を提示する。また、入力デバイス1006は、ユーザからの情報の入力を受け付ける。
また、実施形態における処理内容によっては、コンピュータ1000の一部の要素は省略可能である。例えば、ユーザから直接情報の入力を受け付けないのであれば、入力デバイス1006は省略可能であるし、ユーザに直接情報を提示しないのであれば、ディスプレイ装置1005は省略可能である。
また、本システムの各構成要素の一部または全部は、汎用または専用の回路(Circuitry)、プロセッサ等やこれらの組み合わせによって実施される。これらは単一のチップによって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。また、本システムの各構成要素の一部又は全部は、上述した回路等とプログラムとの組み合わせによって実現されてもよい。
各構成要素の一部又は全部が複数の情報処理装置や回路等により実現される場合には、複数の情報処理装置や回路等は、集中配置されてもよいし、分散配置されてもよい。例えば、情報処理装置や回路等は、クライアントアンドサーバシステム、クラウドコンピューティングシステム等、各々が通信ネットワークを介して接続される形態として実現されてもよい。
次に、本発明の領域管理システムの概要を説明する。図22は、本発明の領域管理システムの概要を示すブロック図である。図22に示す領域管理システム500は、もつれ検出手段501と、情報出力手段502とを備えている。
もつれ検出手段501(例えば、もつれ検出部11)は、自身に割り当てられた占有領域内において移動体の運航管理を行うユーザへの占有領域の割当状況を示す領域情報と、ユーザによる各移動体の運航計画を示す運航情報であって、各移動体の出発位置、出発時刻、到着位置および当該運航計画における運航経路を評価する情報を含む運航情報とに基づいて、少なくとも選択された2以上のユーザである選択ユーザの移動体の各々の運航計画に対して、選択ユーザの占有領域の少なくとも一部を変更した場合の運航経路の改善度である経路改善度を算出して、もつれを検出する。
情報出力手段502(例えば、改善情報出力部12)は、もつれ検出手段501による検出結果に基づいて、選択ユーザの少なくとも一部に情報を出力する。
上記構成によれば、分散型の運航管理システムにおいて、非効率な領域割当の改善に寄与できる。
以上、本実施形態および実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。