(57)【要約】【課題】シミュレーション時にデッドロックが発生しているかを高速に検出できるようにする。【解決手段】本発明に係る実施形態は、複数の搬送路を表す複数の辺と、前記搬送路間を接続する複数の交差点を表す複数の頂点とを含む搬送路構成グラフと、前記搬送路構成グラフに複数の搬送車の位置と向きとを対応づけた搬送車状態とに基づき、前記複数の搬送車から搬送車又は結合された搬送車を選択し、選択した搬送車を前記搬送路構成グラフ上で前進させ、他の搬送車又は他の結合された搬送車に後方から結合させる処理を繰り返し行う、結合計算部と、前記複数の搬送車のすべてを結合できなかった場合、前記搬送車状態に対してデッドロックが発生していることを決定し、前記複数の搬送車のすべてを結合できた場合、前記デッドロックは発生していないことを決定するデッドロック判定部と、を備える。【選択図】図１
2020077110.tif 000002
【特許請求の範囲】
【請求項１】
搬送車が互いにすれ違うことができない複数の搬送路を表す複数の辺と、前記搬送路間を接続する複数の交差点を表す複数の頂点とを含む搬送路構成グラフと、前記搬送路構成グラフに複数の搬送車の位置と向きとを対応づけた搬送車状態とに基づき、前記複数の搬送車から搬送車又は結合された搬送車を選択し、選択した搬送車を前記搬送路構成グラフ上で前進させ、他の搬送車又は他の結合された搬送車に後方から結合させる処理を繰り返し行う、結合計算部と、
前記結合計算部で前記複数の搬送車のすべてを結合できなかった場合、前記搬送車状態に対して前記複数の搬送車のうち任意の搬送車が前記複数の交差点のうち任意の交差点に進めなくなるデッドロックが発生していることを決定し、前記複数の搬送車のすべてを結合できた場合、前記デッドロックは発生していないことを決定する、デッドロック判定部と、
を備えたデッドロック検出装置。
【請求項２】
前記複数の搬送路と、前記複数の交差点とを含む搬送エリアの構成情報と、前記搬送エリアに存在する複数の搬送車の位置と向きとを表す搬送車情報とを取得し、取得した前記構成情報及び前記搬送車情報に基づき、前記搬送路構成グラフと、前記搬送車状態とを生成する搬送車状態作成部
を備えた請求項１に記載のデッドロック検出装置。
【請求項３】
前記搬送路の両端のうち前記交差点に接続されていない方の一端に端点が配置され、
前記搬送路構成グラフの前記複数の頂点は、前記複数の交差点と前記少なくとも１つの端点とを表し、
前記デッドロックは、前記任意の搬送車が前記任意の交差点又は任意の端点に進めなくなることである
請求項１又は２に記載のデッドロック検出装置。
【請求項４】
前記搬送車状態作成部は、前記構成情報及び前記搬送車情報に基づき、同じ搬送路に向かい合う搬送車が存在すること、１つの交差点につながる全ての搬送路に、前記１つの交差点に向かう搬送車が存在すること、及び、前記端点につながる搬送路に２台以上の搬送車が存在することの少なくとも１つを定めたデッドロック条件が成立したかを検査し、
前記デッドロック判定部は、前記デッドロック条件が成立した場合は、前記デッドロックが発生していることを決定する
請求項２又は請求項２を引用する請求項３に記載のデッドロック検出装置。
【請求項５】
前記搬送路構成グラフに木構造が存在するかを検査し、前記木構造が存在する場合に前記搬送路構成グラフの木構造部分を抽出する木構造抽出部と、
前記木構造部分に前記搬送路構成グラフの前記木構造部分以外の本体部分から何台の搬送車を進入させても前記デッドロックが発生しないかを表す進入可能数を計算する進入可能数計算部と、
前記本体部分に存在する搬送車を前記進入可能数だけ前記木構造部分に移動させる搬送車移動部と、
を備えた請求項１〜４のいずれか一項に記載のデッドロック検出装置。
【請求項６】
前記デッドロック判定部は、前記木構造部分に搬送車が存在する場合に、前記木構造部分から出られない搬送車が存在するかを判断し、
前記デッドロック判定部は、前記木構造部分から出られない前記搬送車が存在すると判断された場合に、前記デッドロックが発生していることを決定する
請求項５に記載のデッドロック検出装置。
【請求項７】
前記搬送車移動部は、前記搬送路構成グラフの前記本体部分において前記搬送車が存在する辺のうち少なくとも１つの辺から搬送車が存在しなくなるように前記木構造部分に移動させる搬送車を選択する
請求項５又は６に記載のデッドロック検出装置。
【請求項８】
前記複数の辺のそれぞれに対して搬送車台数の上限値が設定されており、
前記結合計算部は、結合される前記搬送車の台数が前記辺の前記上限値以下との制約で前記処理を行い、
前記結合計算部は、前記複数の搬送車のすべてが結合できなかったときは、前記搬送路構成グラフに前記処理の結果として残っている搬送車が前記任意の交差点に進めなくなるかを状態探索によって決定し、
前記デッドロック判定部は、前記搬送車が前記任意の交差点に進めなくなると決定した場合は、前記デッドロックが発生していることを決定し、
前記搬送路構成グラフに残っている前記搬送車は、前記複数の搬送車のうち前記処理で結合されなかった搬送車及び前記結合された搬送車を含む
請求項１〜７のいずれか一項に記載のデッドロック検出装置。
【請求項９】
前記搬送車状態から遷移可能な複数の次搬送車状態を作成する次搬送車状態作成部と、
デッドロック危険度計算部を備え、
前記デッドロック判定部は、前記結合計算部を用いて前記次搬送車状態に前記デッドロックが発生している否かを判定し、
前記デッドロック危険度計算部は、前記複数の次搬送車状態のうち前記デッドロックが発生していると判断された個数と、前記複数の次搬送車状態の個数とに基づき、前記搬送車状態の第１デッドロック危険度を計算する
請求項１〜８のいずれか一項に記載のデッドロック検出装置。
【請求項１０】
前記搬送車状態において前記搬送車に次の頂点を通過させることを前記次の頂点で選択可能な辺の数だけ行うことで、前記辺の数だけ前記搬送車状態から遷移可能な複数の次搬送車状態を作成する次搬送車状態作成部と、
デッドロック危険度計算部を備え、
前記デッドロック判定部は、前記結合計算部を用いて前記次搬送車状態に前記デッドロックが発生している否かを判定し、
前記デッドロック危険度計算部は、前記複数の次搬送車状態のうち前記デッドロックが発生していると判断された個数と、前記複数の次搬送車状態の個数との比に基づき、前記搬送車の第２デッドロック危険度を計算する
請求項１〜９のいずれか一項に記載のデッドロック検出装置。
【請求項１１】
前記デッドロック危険度計算部は、前記搬送車が前記次の頂点で選択可能な辺のうち前記搬送車が通過すると前記デッドロックが発生する辺を特定し、前記搬送車が前記特定した辺に対応する搬送路を通過すると前記デッドロックが発生することを表す情報、もしくは、前記特定した辺以外の辺に対応する搬送路を通過すると前記デッドロックが発生しないことを表す情報を生成する
請求項１０に記載のデッドロック検出装置。
【請求項１２】
搬送車が互いにすれ違うことができない複数の搬送路と、前記搬送路間を接続する複数の交差点とを含む搬送エリアを移動する複数の搬送車のある時点の前記複数の搬送車の位置と向きとに基づき、前記複数の搬送車のうち任意の搬送車が前記複数の交差点のうち任意の交差点に移動できなくなるデッドロックが発生するデッドロック危険度を計算するデッドロック危険度計算部と、
前記デッドロック危険度を表示する表示部と、
を備えた情報処理装置。
【請求項１３】
搬送車が互いにすれ違うことができない複数の搬送路を表す複数の辺と、前記搬送路間を接続する複数の交差点を表す複数の頂点とを含む搬送路構成グラフと、前記搬送路構成グラフに前記複数の搬送車の位置と向きとを対応づけた搬送車状態とに基づき、前記複数の搬送車から搬送車又は結合された搬送車を選択し、選択した搬送車を前記搬送路構成グラフ上で前進させ、他の搬送車又は他の結合された搬送車に後方から結合させる処理を繰り返し行うステップと、
前記複数の搬送車のすべてを結合できなかった場合、前記搬送車状態に対して前記複数の搬送車のうち任意の搬送車が前記複数の交差点のうち任意の交差点に進めなくなるデッドロックが発生していることを決定し、前記複数の搬送車のすべてを結合できた場合、前記デッドロックは発生していないことを決定するステップと、
を備えたデッドロック検出方法。
【請求項１４】
搬送車が互いにすれ違うことができない複数の搬送路を表す複数の辺と、前記搬送路間を接続する複数の交差点を表す複数の頂点とを含む搬送路構成グラフと、前記搬送路構成グラフに前記複数の搬送車の位置と向きとを対応づけた搬送車状態とに基づき、前記複数の搬送車から搬送車又は結合された搬送車を選択し、選択した搬送車を前記搬送路構成グラフ上で前進させ、他の搬送車又は他の結合された搬送車に後方から結合させる処理を繰り返し行うステップと、
前記複数の搬送車のすべてを結合できなかった場合、前記搬送車状態に対して前記複数の搬送車のうち任意の搬送車が前記複数の交差点のうち任意の交差点に進めなくなるデッドロックが発生していることを決定し、前記複数の搬送車のすべてを結合できた場合、前記デッドロックは発生していないことを決定するステップと
をコンピュータに実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、デッドロック検出装置、情報処理装置、デッドロック検出方法及びコンピュータプログラムに関する。
【背景技術】
【０００２】
従来、倉庫や工場等内で荷物等を搬送する搬送車の運行計画を作成する方法が提案されている。各搬送車の現在の状態（搬送路上の搬送車の位置と向き）からシミュレーションを行うことにより、最適な運行となる将来の状態（搬送車の移動パターン）を探索することで、運行計画を作成する。時間をかければ、遠い未来まで多くの状態を探索することができるため、より最適な状態を見つけ、最適な運行計画を作成することができる。しかし、搬送車の数が多く、搬送路構成が複雑な場合、ある状態から遷移可能な状態の個数が非常に多く存在する。したがって、現実的な時間で全ての状態を探索するのは不可能である。
【０００３】
そこで、シミュレーション時間又は回数に上限を設ける方法がある。この方法では、十分な探索を行うことができなかったが故に、作成した運行計画をもとに各搬送車に運行の指示を出すと、デッドロックが発生してしまう可能性がある。デッドロックとは、任意の搬送車が任意の交差点又は端点に移動できない状態になることである。
【０００４】
デッドロックが発生することがないように、搬送路に閉塞区間を設けたり、搬送路を一方通行に設定したり、デッドロックの発生しないルールを設定したりする方法も存在するが、これらの方法では効率の良い（最適な）運行となる運行計画を作成できないことが多い。
【０００５】
一方、できるだけ将来におけるデッドロックの発生の可能性が少ない運行計画の作成が望まれる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第１９９４９４０号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明の実施形態は、運行計画作成時にデッドロックが発生しているかを高速に検出できるようにするデッドロック検出装置、運行計画の作成を支援可能な情報処理装置、デッドロック検出方法及びコンピュータプログラムを提供する。
【課題を解決するための手段】
【０００８】
本発明の実施形態としてのデッドロック検出装置は、結合計算部と、デッドロック判定部とを備える。前記結合計算部は、搬送車が互いにすれ違うことができない複数の搬送路を表す複数の辺と、前記搬送路間を接続する複数の交差点を表す複数の頂点とを含む搬送路構成グラフと、前記搬送路構成グラフに複数の搬送車の位置と向きとを対応づけた搬送車状態とに基づき、前記複数の搬送車から搬送車又は結合された搬送車を選択し、選択した搬送車を前記搬送路構成グラフ上で前進させ、他の搬送車又は他の結合された搬送車に後方から結合させる処理を繰り返し行う。前記デッドロック判定部は、前記結合計算部で前記複数の搬送車のすべてを結合できなかった場合、前記搬送車状態に対して前記複数の搬送車のうち任意の搬送車が前記複数の交差点のうち任意の交差点に進めなくなるデッドロックが発生していることを決定し、前記複数の搬送車のすべてを結合できた場合、前記デッドロックは発生していないことを決定する。
【図面の簡単な説明】
【０００９】
【図１】第１の実施形態に係るデッドロック検出装置と運行管理装置とを備えた運行管理システムのブロック図。
【図２】搬送路構成グラフと搬送車状態との一例を示す図。
【図３】搬送車状態の遷移の例を示す図。
【図４】明らかにデッドロックになっている例を示す図。
【図５】図２の搬送路構成グラフにおける木構造部分を示す図。
【図６】（Ａ）は木構造部分から外に出られない搬送車が存在する例を示し、（Ｂ−１）及び（Ｂ−２）は、木構造部分にあと何台の搬送車を進入させることができるかの具体例を示す図。
【図７】搬送車移動部の動作の具体例を示す図。
【図８】搬送車結合処理における搬送車結合処理の具体例を示す図。
【図９】搬送路構成グラフの本体部分を有向グラフに変換する例を示す図。
【図１０】搬送車移動部の動作のアルゴリズムの例を説明するための図。
【図１１】第１の実施形態に係るデッドロック検出装置の動作の一例を表すフローチャート。
【図１２】搬送路構成グラフの各辺に進行方向の制約を設定した例を示す図。
【図１３】第２の実施形態に係る搬送車結合処理の具体例を示す図。
【図１４】第２の実施形態に係る動作の一例のフローチャート。
【図１５】第３の実施形態に係るデッドロック検出装置と運行管理装置とを備えた運行管理システムのブロック図。
【図１６】デッドロック危険度計算部の処理の具体例を説明するための図。
【図１７】第３の実施形態に係るデッドロック危険度の計算の処理の一例のフローチャート。
【図１８】第１〜第３の実施形態のいずれかに係るデッドロック検出装置のハードウェアブロック図。
【発明を実施するための形態】
【００１０】
以下、図面を参照しながら、本発明の実施形態について説明する。
【００１１】
（第１の実施形態）
図１は、本実施形態に係るデッドロック検出装置１０１と、複数の搬送車の運行を制御する運行管理装置２０１とを備えた運行管理システムのブロック図である。デッドロック検出装置１０１と運行管理装置２０１は、無線又有線のネットワークを介して接続されていてもよいし、デッドロック検出装置１０１が運行管理装置２０１の内部に組み込まれていてもよい。
【００１２】
運行管理装置２０１は、図示しない搬送エリアを移動可能な複数の搬送車の運行を制御する。搬送エリアにおける各搬送車の速度を制御したり、各搬送車を任意の位置で停止させたりなど、各搬送車を自由に制御する。各搬送車に対する運行の制御は、有線通信又は有線通信を用いて行う。搬送エリアは複数の搬送路、交差点、端点（倉庫などが配置され、行き止まりとなる）等を含む。交差点では複数の搬送路が接続される。本実施形態では、搬送路に関して以下の条件を前提とする。
【００１３】
・ある搬送路を通って搬送車が交差点に到着した場合に、搬送車を任意の別の搬送路に進めさせることができるが、交差点に来た搬送路を引き返すことは許されないとする。
・搬送車が端点に来た場合は、端点に来た搬送車を端点で引き返させることができる（すなわち搬送車の向きが端点で反転する）。
・各搬送路の進行方向は一方向に限定されず、双方向の進行が可能である。
・同じ搬送路上では搬送車同士は互いにすれ違うことができないとする。
・全ての搬送路は、全ての搬送車が進入できるだけの十分な長さを有するものとする。本例で言えば、各搬送路は、７台の搬送車が同時に縦列に存在できる長さを有するものとする。
・搬送車は前進のみ可能であり、後進はできないものとする。ただし、前進及び後進の両方が可能である場合を排除しない。
・搬送車は搬送路上のみを走行するものとし、搬送路以外の領域は走行できないものとする。
【００１４】
運行管理装置２０１は、搬送エリアにおける各搬送車の効率の良い運行計画を作成する。すなわち、任意の搬送車が任意の搬送路の交差点及び端点に移動できなくなるデッドロックが発生しない、もしくは発生しにくい運行計画を短時間で作成する。運行管理装置２０１は、運行計画作成時に、デッドロック検出装置１０１を用いて、ある時点における各搬送車の状態（各搬送車の位置と向き）がデッドロックとなっていないかを判定したり、当該状態の次に遷移させるべき状態を特定したりする。
【００１５】
運行管理装置２０１は、制御部２１２と、記憶部２３１とを含む。記憶部２３１は、搬送エリアを構成する搬送路、交差点及び端点等に関する、搬送エリアの構成情報（搬送路構成情報）、及び搬送エリアに存在するある時点における搬送車の位置及び向きに関する情報（搬送車情報）を格納している。各搬送車には、一例として識別子によって区別される。制御部２１２は、搬送エリアにおける搬送車の運行の制御と、運行のシミュレーション等を行う。制御部２１２は、デッドロック判定結果取得部２２１を備える。制御部２１２は、シミュレーション時にある状態がデッドロックになっているかのデッドロック判定の要求をデッドロック検出装置１０１に行い、判定の結果をデッドロック判定結果取得部２２１が取得する。なお、デッドロック判定の要求をデッドロック検出装置１０１に明示的に行わない構成も可能である。制御部２１２は、ＣＰＵ、専用回路又はプロセッサ等の回路により構成される。例えばプログラムをＣＰＵに実行させることにより制御部２１２の機能が実現される。記憶部２３１は、一例として、メモリ、ハードディスク又はＳＳＤ等の記憶媒体により構成される。記憶部２３１が、運行管理装置２０１に外部接続されてもよいし、デッドロック検出装置１０１とネットワークを介して接続されてもよい。
【００１６】
デッドロック検出装置１０１は、演算部１１１と記憶部１３１とを備えた情報処理装置である。演算部１１１は、一例として、ＣＰＵ、専用回路又はプロセッサ等の回路により構成される。例えばプログラムをＣＰＵに実行させることにより演算部１１１の機能が実現される。
【００１７】
演算部１１１は、搬送車状態作成部１２１と、木構造抽出部１２２と、進入可能数計算部１２３と、搬送車移動部１２４と、結合計算部１２５と、デッドロック判定部１２６とを備える。
【００１８】
搬送車状態作成部１２１は、運行管理装置２０１の記憶部２３１から搬送路構成情報と、搬送車情報を取得する。搬送車状態作成部１２１は、取得した搬送路構成情報に基づき、搬送路構成グラフを作成する。搬送車状態作成部１２１は、運行管理装置２０１からデッドロック判定要求を受けたタイミングで、搬送路構成情報及び搬送車情報の取得を行ってもよいし、自装置から自発的に運行管理装置２０１にアクセスして、これらの情報を取得してもよい。
【００１９】
搬送路構成グラフは、搬送路を表す辺の集合と、交差点又は端点を表す頂点の集合と、これらの接続関係とにより構成されるグラフである。本例では、頂点の集合Ｖ＝｛ｖ１，．．．，ｖ８｝、辺の集合Ｅ＝｛ｅ１，．．．，ｅ９｝として、搬送路構成グラフをＧ＝｛Ｖ，Ｅ｝と表す。搬送車状態作成部１２１は、作成した搬送路構成グラフを記憶部１３１に格納する。
【００２０】
また、搬送車状態作成部１２１は、搬送路構成情報と搬送車情報に基づき、搬送路構成グラフにおいて各搬送車が存在する位置（辺及び辺上の位置）と、各搬送車の向きを特定する。そして、搬送路構成グラフ上で、これらの搬送車が存在する位置と、これらの搬送車の向きとを対応づけた搬送車状態を作成する。搬送車状態は、スナップショットのような各搬送車のある時点での状態（位置及び向き）を同時に表現したものである。搬送車状態作成部１２１は、作成した搬送車状態を表す情報（搬送車状態情報）を、記憶部１３１に格納する。搬送車の辺上の位置は、必ずしも座標で管理する必要はなく、同じ辺上に複数の搬送車が存在する場合は、これらの搬送車の相対位置が分かる情報でもよい。例えば左右に延びる搬送路上に２台の搬送車が存在する場合、どちらの搬送車が左側で、どちらの搬送車が右側かが分かる情報でもよい。
【００２１】
記憶部１３１は、搬送車状態作成部１２１によって作成された搬送路構成グラフと搬送車状態情報を格納する。記憶部１３１は、一例として、メモリ、ハードディスク又はＳＳＤ等の記憶媒体により構成される。記憶部１３１が、デッドロック検出装置１０１に外部接続されてもよいし、デッドロック検出装置１０１とネットワークを介して接続されてもよい。
【００２２】
図２は、搬送路構成グラフ及び搬送車状態の一例を示す。９本の搬送路（辺）ｅ１〜ｅ９と、８個の頂点ｖ１〜ｖ８とを含む搬送路構成グラフが示される。頂点ｖ１〜ｖ８は、搬送路の交差点又は端点に対応している。ｖ１〜ｖ５が交差点、ｖ６〜ｖ８が端点である。辺ｅ１、ｅ２、ｅ３、ｅ４、ｅ９には１台の搬送車が存在し、辺ｅ１には２台の搬送車が同じ方向を向いて存在する。
【００２３】
ある搬送車状態（対象となる搬送車状態）において、ある搬送車がある頂点を通過すると、次の搬送車状態に遷移する。
【００２４】
図３は、搬送車状態の遷移の例を示す。図３の状態Ｘ１（対象となる搬送車状態）は図２の状態と同じである。状態Ｘ１において、辺ｅ３にある搬送車が頂点ｖ３を通過し、辺ｅ４に移動すると状態Ｘ２となる。図３の状態Ｘ１において、辺ｅ５上に存在する搬送車が頂点ｖ６を通過し、辺ｅ６に移動すると状態Ｘ３となる。状態Ｘ１において、辺ｅ４に存在する搬送車が頂点ｖ４を通過し、辺ｅ６に移動すると状態Ｘ４となる。状態Ｘ２、Ｘ３はデッドロックになっており、状態Ｘ４はデッドロックになっていないことが示されているが、これらについての説明は後述する。
【００２５】
ここで、デッドロックに関して、ある状態が明らかにデッドロックになっている場合もあれば、現時点ではそのようなデッドロックになっていることは自明ではないが、状態遷移がさらに進むと自明になる場合もある。以下、ある状態が明らかにデッドロックになっている例を示す。
【００２６】
図４（Ａ）〜図４（Ｃ）は、明らかにデッドロックになっている例を示す。図４（Ａ）は、同じ辺上に互いに逆方向に進む搬送車が存在する場合である。これらの搬送車はいずれも進めなくなるため、この状態はデッドロックである。図４（Ｂ）は同じ端点ｖ６につながる辺上に同じ向きに進む複数の搬送車が存在する場合である。先に端点ｖ６に到着した搬送車が折り返すと、他方の搬送車と向き合うことになり、どちらも進めなくなる。このため、この状態はデッドロックである。図４（Ｃ）は交差点ｖ５につながる３つの辺のすべてから搬送車が交差点ｖ５に進む場合である。これらの搬送車は交差点ｖ５でいずれの方向にも方向転換できなくなるため、この状態はデッドロックである。図４（Ａ）〜図４（Ｃ）に示したデッドロックの例は明らかにデッドロックになっている場合であり、このようなデッドロックは簡単に検出できる。これらのデッドロックが発生する条件を所定のデッドロック条件として定義することで、明らかにデッドロックになっている場合についてはデッドロックを簡単又は高速に検出できる。
【００２７】
一方、前述した図３の状態Ｘ２、Ｘ３は、図４に示した明らかにデッドロックになっている場合には該当しないが、本実施形態では、これらの状態がデッドロックになっていることを高速に検出できる。関連技術では、図３の状態Ｘ２がデッドロックになっていることを検出するためには、状態Ｘ２から遷移可能な全ての状態を全探索（状態分岐）で調べ、最終的な分岐先の全ての状態のいずれもデッドロックであると判定できたときに、状態Ｘ２がデッドロックになっていることを決定するため、非常に計算に時間がかかる。状態Ｘ３についても同様である。本実施形態では、このようなデッドロック検出のために全探索を行う必要はく、状態Ｘ２、Ｘ３がデッドロックになっていることを、状態Ｘ２、Ｘ３のみから高速に判定できる。よって、状態Ｘ４のようにデッドロックでない状態から遷移可能な状態の最適運行のための探索にシミュレーション時間をとることができる。
【００２８】
木構造抽出部１２２は、記憶部１３１に格納された搬送路構成グラフにおいて木構造が存在するかを検査し、木構造が存在する場合は、搬送路構成グラフの木構造部分を抽出する。木構造部分は、搬送路構成グラフにおいてループが存在しない部分である。
【００２９】
図５は、図２の搬送路構成グラフにおける木構造部分を示す。２つの木構造部分ＴＰ１、ＴＰ２が存在する。木構造抽出部１２２は、木構造部分ＴＰ１、ＴＰ２を抽出する。木構造部分ＴＰ１は辺ｅ６、ｅ７、ｅ９と、頂点ｖ５、ｖ６、ｖ８を含む。木構造部分ＴＰ２は辺ｅ８と頂点ｖ７を含む。
【００３０】
進入可能数計算部１２３は、抽出された木構造部分ごとに、当該木構造部分から外に出られない搬送車が存在しないかを調べる。木構造部分から外に出られない搬送車がある場合、木構造部分はデッドロックになっているといえる。この場合、進入可能数計算部１２３は、その旨をデッドロック判定部１２６に通知する。通知を受けたデッドロック判定部１２６は、対象となる搬送車状態にデッドロックが発生していると判定する。それ以外の場合、すなわち木構造部分から全ての搬送車が外に出ることができる場合、木構造部分に関してはデッドロックは発止していないが、木構造部分以外の部分も含めた搬送路構成全体ではデッドロックが発生しているかはまだ分からない（後段の処理を経てデッドロックが発生しているかが判定される）。
【００３１】
図６（Ａ）に、木構造部分から外に出られない搬送車が存在する例を示す。辺ｅ６上に搬送車が存在し、搬送車が辺ｅ７に進入した場合、辺ｅ９上の搬送車は辺ｅ６を通って、木構造の外に出られる。しかしながら、辺ｅ７上の搬送車は２台になり、この状態は、図４（Ｂ）に示したデッドロックの状態に相当する。すなわち、２台の搬送車はいずれも木構造部分から外に出られなくなる。
【００３２】
進入可能数計算部１２３は、木構造部分から外に出られない搬送車が存在しないと判断した場合、当該木構造部分にあと何台の搬送車を進入させることができるかを計算する。すなわち、あと何台の搬送車を当該木構造部分に進入させても、木構造部分がデッドロックにならないかを計算する。
【００３３】
図６（Ｂ−１）及び図６（Ｂ−２）を用いて、木構造部分にあと何台の搬送車を進入させることができるかを計算する具体例を示す。図６（Ｂ−１）の例では、木構造部分におけるいずれの辺にも搬送車は存在せず、あと２台の搬送車を進入させることができる（すなわち、あと２台の搬送車を進入させてもデッドロックは発生しない）。図６（Ｂ−２）の例では、辺ｅ９上に１台の搬送車が存在しており、あと１台の搬送車を進入させることができる（すなわち、あと１台の搬送車を進入させてもデッドロックは発生しない）。
【００３４】
進入可能数計算部１２３が、当該木構造部分から外に出られない搬送車が存在するかを判断するアルゴリズム、及び木構造部分にあと何台の搬送車を進入させることができるかを計算するアルゴリズムの詳細については後述する。
【００３５】
搬送車移動部１２４は、各木構造部分について、進入可能数計算部１２３が計算した台数の搬送車を、搬送路構造のうち木構造部分以外の部分（本体部分）から、当該木構造部分に移動させる。この際、搬送路構成グラフ上の辺から搬送車が存在しなくなるような搬送車の選択が可能であれば、そのように搬送車を選択し、選択した搬送車を木構造部分に移動させる。
【００３６】
図７を用いて、搬送車移動部１２４の動作の具体例を示す。図の左の分図に、搬送路構成グラフにおける木構造部分ＴＰ１とその近傍のグラフ部分とが示される。木構造部分ＴＰ１の搬送車状態は、図６（Ｂ−２）と同じであり、あと１台の搬送車を木構造部分ＴＰ１に進入させることが可能である。
【００３７】
１台の搬送車を木構造部分ＴＰ１に進入させる１つの手法（第１の手法）は、図７の右上の分図に示すように、辺ｅ４上の搬送車を頂点ｖ４を介して辺ｅ６に移動させることである。もう一つの手法（第２の手法）は、図７の右下の分図に示すように、辺ｅ５上の２台の搬送車のうち、木構造部分ＴＰ１に近い側の搬送車を、辺ｅ６上に移動させることである。
【００３８】
第１の手法では、辺ｅ４上に搬送車ｓが存在しなくなる。第２の手法では、移動により搬送車が存在しなくなる辺はない。よって、この場合、第１の手法により辺ｅ６上の搬送車を木構造部分ＴＰ１の辺ｅ６に移動させる。なお、木構造部分ＴＰ１内に移動可能であれば、移動先の辺は、辺ｅ６である必要はない。例えば辺ｅ７まで移動させてもかまわない。
【００３９】
もし仮に木構造部分ＴＰ１の搬送車状態が図６（Ｂ−１）の状態であれば、あと２台の搬送車を木構造部分に進入させることができる。この場合、辺ｅ５上の２台を、木構造部分に進入させて、辺ｅ５上に搬送車が存在しなくなるようにしてもよい。あるいは、辺ｅ５上の一台と、辺ｅ４上の一台を木構造部分に進入させて、辺ｅ４上に搬送車が存在しなくなるようにしてもよい。
【００４０】
このように木構造部分にデッドロックが生じない最大数の搬送車を木構造部以外の部分（本体部分）から移動させることで、精度よく、後述するデッドロックになっているか否かの判定を、本体部分に存在する搬送車のみに基づいて行うことができる。これにより、当該判定を行う際に、木構造部分を考慮する必要がなくなり、当該判定を簡単又は高速に行うことができる。また、本体部分の辺上に搬送車が存在しなくなるように移動させる搬送車を選択することで、デッドロックになっているか否かの判定の精度を高めることができる。ただし、本実施形態において、本体部分から木構造部に搬送車を移動可能な場合であっても、搬送車を移動させずに、以降の処理を実施して、デッドロック判定を行うことも可能である。
【００４１】
結合計算部１２５は、搬送車移動部１２４により木構造部分に搬送車が移動させられた後、搬送路構成グラフの本体部分を対象として搬送車結合処理を行う。すなわち、搬送車が進入させられた各木構造部分を搬送路構成ブラフから除去し、除去後のグラフ部分（本体部分）と、除去後のグラフ部分（本体部分）に存在する搬送車とを対象として、以下に述べる搬送車結合処理を行う。
【００４２】
搬送車結合処理は、搬送路構成グラフの本体部分に存在する複数の搬送車から１台の搬送車を選択し、選択した搬送車を移動させ、同じ方向を向く別の搬送車に後ろから縦列に結合させる。１つの辺上で同方向に縦列に結合された複数の搬送車を１台の搬送車として扱う。例えば、搬送車１を搬送車２に後ろから縦列に結合させた場合、結合後の搬送車を１台の搬送車１＆２として定義する。これにより、搬送路構成グラフの本体部分に存在する搬送車の台数は１台減ることになる。結合された搬送車、あるいは別の搬送車を選択し、選択した搬送車を移動させ、同様にして別の搬送車の後ろから縦列に結合させる。以降、同様の処理を、搬送車が１台になるまで、もしくは搬送車同士の結合ができなくなるまで、繰り返し行う。搬送車同士の結合は、同じ方向を向いている搬送車同士でのみ行うことができ、互いに向かい合っている搬送車同士を結合させることはできない。
【００４３】
デッドロック判定部１２６は、結合計算部１２５の搬送車結合処理の結果、最終的に搬送車が１台となった場合、運行管理装置２０１から受け取った情報（搬送路構成情報及び搬送車情報）から特定される搬送車状態、すなわち対象となる搬送車状態はデッドロックになっていないと判定する。これは本体部分の全頂点の次数は２以上となっていることから保証される。逆に、搬送車数が２台以上になった場合、デッドロック判定部１２６は、当該搬送車状態はデッドロックになっていると判定する。
【００４４】
以下、結合計算部１２５が行う搬送車結合処理について詳細に説明する。
【００４５】
図８に、搬送車結合処理において搬送車を結合させる動作の具体例を示す。図８（１）が搬送路構成グラフの本体部分と、当該本体部分に存在する搬送車とを示す。各搬送車には便宜上、Ａ〜Ｄの参照符号を付してある。図８（１）において、辺ｅ５上に同じ向きの２台の搬送車Ｃ，Ｄが存在する。左側の搬送車Ｃを選択し、選択した搬送車Ｃを右側の搬送車Ｄに後ろから縦列に結合し、１台の搬送車Ｃ＆Ｄとする（図８（２））。次に図８（２）における辺ｅ１上の搬送車Ａを選択する。辺ｅ１上の搬送車Ａをｖ１⇒ｅ２⇒ｖ２⇒ｅ３と移動させる。この結果、辺ｅ３上には当該移動させられた搬送車Ａと、元々存在する搬送車Ｂとの２台が存在することとなり、それぞれ同じ方向を向く。当該移動させられた搬送車Ａを、元々存在する搬送車Ｂの後ろから縦列に結合し、１台の搬送車Ａ＆Ｂとする（図８（３））。図８（Ｃ）における辺ｅ３上の搬送車Ａ＆Ｂを、ｖ３⇒ｅ５と移動させることで、辺ｅ５上の搬送車Ｃ＆Ｄと同じ方向に縦列に結合し、１台の搬送車Ａ＆Ｂ＆Ｃ＆Ｄとする（図８（４））。搬送車の台数が１台となったため、デッドロック判定部１２６は、運行管理装置２０１から受け取った情報から特定される搬送車状態、すなわち対象となる搬送車状態は、デッドロックではないと判定する。
【００４６】
結合計算部１２５が搬送車結合処理を効率よく行う例を説明する。
【００４７】
搬送路構成グラフの本体部分を有向グラフに変換する。この際、辺の向きは、搬送車が存在する辺は搬送車の向きとし、搬送車が存在しない辺は両方向とする。
【００４８】
図９に、搬送路構成グラフの本体部分を有向グラフに変換する例を示す。図の左の分図に、搬送路構成グラフの本体部分と、当該本体部分に存在する搬送車とが示されている。辺ｅ２と辺ｅ４には搬送車が存在せず、辺ｅ１、辺ｅ３、辺ｅ５には搬送車が１台存在する。このようなグラフ部分を有向グラフに変換すると、図９の右側の分図のようになる。辺ｅ２と辺ｅ４には搬送車が存在しないため、辺ｅ２と辺ｅ４の方向は両方向である。辺ｅ１、辺ｅ３、辺ｅ５には搬送車が存在するため、辺ｅ１、辺ｅ３、辺ｅ５の向きは、搬送車の向きである。
【００４９】
搬送路構成グラフの本体部分において任意に１つの搬送車を選択し、選択した搬送車が結合可能な搬送車を特定する。例えば、辺ｅ１上の搬送車を選択する場合、辺ｅ１上の搬送車は頂点ｖ１に向かっていることから、頂点ｖ１から到達可能な他の頂点を有向グラフから探索する。有向グラフでは辺の向きにのみ進むことができる。
【００５０】
有向グラフにおける到達可能性問題は簡単な探索アルゴリズムで実現できる。図９の有向グラフの場合、頂点ｖ１からは、頂点ｖ２，ｖ３，ｖ４に到達できる。搬送車が頂点ｖ２に到達できるということは、当該搬送車が辺ｅ３上の同じ向きの搬送車と結合できることを意味する。搬送車が頂点ｖ３に到達できるということは、当該搬送車が辺ｅ５上の同じ向きの搬送車と結合できるということを意味する。すなわち、辺ｅ１上の搬送車を移動させた場合、当該搬送車は、他の全ての搬送車と結合できる。よって、搬送車の台数は１台になり、デッドロックは発生していない判定できる。
【００５１】
実際の処理においては、ある搬送車を他の搬送車に結合したときに、２台以上の搬送車が残っている場合、その時点で新たに有向グラフを作成し直す。図９の例では、辺ｅ１上の搬送車を辺ｅ３上に移動させて、辺ｅ３上の搬送車に結合した場合、この時点では、２台以上の搬送車が残っているため、新たに有向グラフを作成し直し、処理を続行する。この結果、例えば辺ｅ１上には搬送車が存在しないことから、辺ｅ１は両方向の辺に変換されることとなる（図示せず）。
【００５２】
ここでは最初に辺ｅ１上の搬送車を選択したため、１回の到達可能性問題を解くだけで、搬送車の台数を１台にすることができた（対象となる搬送車状態はデッドロックでないと判定できた）。しかしながら、最初に選択する搬送車によっては、処理の結果として２台以上の搬送車が残る。例えば、最初に辺ｅ３上の搬送車を選択した場合、当該搬送車を辺ｅ５上の搬送車に結合させると、結合後は、どの搬送車にも結合できないため、２台の搬送車が残る。この場合、別の搬送車（この例では辺ｅ１上の搬送車）を選択して、同様の処理（２回目の到達可能性問題を解く）を行う必要がある。最終的に搬送車の台数が最終的に１台になれば、デッドロックは発生していないと判定する。全ての搬送車を選択の対象としても、搬送車の台数が１台にならなければ、デッドロックが発生していると判定できる。
【００５３】
上述した搬送車結合処理では搬送車の結合として、２台の搬送車を結合して１台の搬送車に統合したが、結合させる処理は必ずしも１台の搬送車に統合することに限定されない。結合の他の例として、搬送車同士に縦列に連結させて、複数の搬送車を縦列に連結した連結体（例えば複数の車両が連結された列車のようなもの）とすることも結合の一形態である。この場合、全ての搬送車を縦列に連結できた場合は、デッドロックは発生していないと判定する。また、結合のさらに他の例として、２台の搬送車を結合させたときに、２台の搬送車のうちの一方を消去してもよい。この場合も、最終的に搬送車が１台になれば、デッドロックは発生していないと判定する。ここで述べた以外の方法で搬送車の結合を定義してもよい。
【００５４】
以下、進入可能数計算部１２３の動作アルゴリズムの一例について具体的に説明する。
【００５５】
上述のように、進入可能数計算部１２３は、木構造部分において、全ての搬送車が木構造の外に出られない状態（すなわちデッドロック）となっているかどうかの判定と、当該状態になっていない場合（木構造部分がデッドロックになっていない場合）に、あと何台の搬送車を木構造部分に進入させることができるか（あと何台の搬送車を木構造部分に移動させても木構造部分がデッドロックとならないか）の計算を行う。
【００５６】
図１０は本アルゴリズムを説明するための図である。図１０の分図（１）に、木構造部分が示される。この木構造部分は、これまで説明した木構造部分とは別の例である。白抜きの丸が交差点に対応する頂点ｖ２１〜ｖ２3、塗りつぶしの丸が端点に対応する頂点（葉頂点）ｖ１１〜ｖ１７である。紙面に沿って一番上の頂点ｖ２１が根頂点であり、根頂点は木構造部分以外の部分（本体部分）につながっている。各辺の両端に付いている数字については後述する。
【００５７】
［Ｓｔｅｐ１］
木構造部分において葉頂点（端点）につながる全ての辺の葉側に「１」を付ける。辺の葉側に付ける数字は、葉側の頂点に進入できる搬送車の台数に対応する。 
【００５８】
図１０の分図（１）では木構造の葉頂点ｖ１１〜ｖ１７につながる全ての辺ｅ１１〜ｅ１７の葉側に「１」を付けた状態が示されている。
【００５９】
［Ｓｔｅｐ２］
辺の葉側に数字（ｘとする）が設定されている全ての辺の根側の数字を次の条件で設定する。
（条件１）辺上に根側に向かう搬送車が存在する場合：「０」を設定する。
（条件２）辺上に葉側に向かう搬送車がｎ台存在する場合：「ｘ−ｎ」を設定する。
辺の根側に付ける数字は、その辺に根側から進入できる搬送車の台数に対応する。
【００６０】
図１０の分図（１）では、辺の葉側に数字が設定されている辺は辺ｅ１１〜ｅ１７であり、これらの辺の根側に、上記条件に基づいた数字が設定されている。辺ｅ１６には、根側に向かう搬送車が存在するため「０」を設定する。辺ｅ１１〜ｅ１５、ｅ１７には根側に向かう搬送車は存在せず、葉側に向かう搬送車は０台である。ｘ＝１であることから、ｘ−０を計算することにより、辺ｅ１１〜ｅ１５、ｅ１７の根側に「１」を設定する。
【００６１】
［Ｓｔｅｐ３］
頂点から葉方向に向かう全ての辺について根側に数字が設定（ｙ１, …, ｙｉ, …, ｙｊ）されている場合、その頂点の根方向に向かう辺の葉側に、これらの値の合計
2020077110.tif 000003
を設定する。Ｓｔｅｐ３を行うことにより辺の葉側に数字が新たに設定された場合、当該辺についてＳｔｅｐ２を実行する。
【００６２】
図１０の分図（１）では、頂点ｖ２２から葉方向に向かう全ての辺ｅ１１〜ｅ１３について根側にそれぞれ数字「１」が設定されているため、頂点ｖ２２の根方向に向かう辺ｅ２２の葉側に、これらの値の合計「３」を設定する。辺ｅ２２の葉側に「３」が設定されたため、Ｓｔｅｐ２を行う。このＳｔｅｐ２では、辺ｅ２２上に根側に向かう搬送車が存在するため、上記条件１により辺ｅ２２の根側に「０」を設定する。
【００６３】
また、頂点ｖ２３から葉方向に向かう全ての辺ｅ１４〜ｅ１５について根側にそれぞれ数字「１」が設定されているため、頂点ｖ２３の根方向に向かう辺ｅ２３の葉側に、これらの値の合計「２」を設定する。辺ｅ２３の葉側に「２」が設定されたためＳｔｅｐ２を行う。このＳｔｅｐ２では、辺ｅ２３上に根側に向かう搬送車が存在するため、上記条件１により辺ｅ２３の根側に「０」を設定する。
【００６４】
頂点ｖ２１から葉方向に向かう全ての辺ｅ１６、ｅ１７、ｅ２２、ｅ２３の根側にそれぞれ数字「０」「１」「０」「０」が設定されているため、頂点ｖ２１の根方向に向かう辺ｅ２４の葉側に、これらの値の合計「１」を設定する。辺ｅ２４の葉側に「１」が設定されたため、Ｓｔｅｐ２を行う。このＳｔｅｐ２では、辺ｅ２４上に根側に向かう搬送車が存在しないため、上記条件２により辺ｅ２４の根側に「１」を設定する。
【００６５】
以上、Ｓｔｅｐ３までの処理で、全ての辺の根側及び葉側に数字が設定される。図１０の分図（１）では、全ての辺の根側及び葉側に数字が設定されている。この時点で負の値が設定された辺がある場合、デッドロックと判定する。図の例では負の値が設定された辺は存在しない。
【００６６】
以後のステップでは、木構造部分に進入可能な搬送車数を計算する。
【００６７】
［Ｓｔｅｐ４］
搬送車が存在する全ての辺に対して、Ｚ＝（葉側の数字−根側の数字）／搬送車数を計算する。「−」は減算、「／」は除算を表す。Ｚは、例えば、その辺に搬送車が存在することでどれくらい、搬送路の使用に損失（無駄）が発生しているかを示す評価値（ペナルティ値）に相当する。一例として、評価値が高いほど損失（無駄）が大きいと判断できる。
【００６８】
図１０の分図（１）では、搬送車が存在する辺は辺ｅ１６、ｅ２２、ｅ２３である。辺ｅ１６に対して、Ｚ＝（１−０）／１＝１／１＝１となる。辺ｅ２２に対して、Ｚ＝（３−０）／２＝３／２＝１．５となる。辺ｅ２３に対して、Ｚ＝（２−０）／１＝２／１＝２となる。
【００６９】
［Ｓｔｅｐ５］
Ｚ＞１となっている辺の内、搬送車数が最も少ない辺を選択する。搬送車数が最も少ない辺が複数存在するときは、その中でＺが最大の辺を選択する。選択された辺をｅ＿ｓｅｌｅｃｔとする。選択対象となる辺が存在しない場合（例えばＺ＞１となっている辺が存在しない場合）、Ｓｔｅｐ７へ進む。
【００７０】
図１０の分図（１）では、Ｚ＞１となっている辺の内、搬送車数が最も少ない辺は、辺ｅ２３である。したがって、辺ｅ２３を選択する。選択した辺ｅ２３を、辺ｅ＿ｓｅｌｅｃｔとする。
【００７１】
［Ｓｔｅｐ６］
辺ｅ＿ｓｅｌｅｃｔ上の全ての搬送車（ｈとする）を、次の３つの条件をすべて満たす辺に移動させる。なお、辺ｅ＿ｓｅｌｅｃｔ上に複数の搬送車が存在する場合は、これらの搬送車の移動先の辺は同じである必要はない。
（条件α）搬送車ｈを移動した場合に、移動先の辺に対して計算したＺの値が１（Ｚ＝１）となる。
（条件β）搬送車ｈの移動方向と反対向きの別の搬送車が存在する辺には移動（進入）できない。
（条件γ）搬送車ｈが現在存在する辺の葉方向と異なる葉方向の別の辺（ｆとする）に移動できるのは、辺ｆの根側の数字が０より大きい場合のみである。
【００７２】
辺ｅ＿ｓｅｌｅｃｔ上の全ての搬送車の移動先の辺が見つかった場合、搬送車を移動先の辺に移動させ、Ｓｔｅｐ２に戻る（辺の数字を再設定する）。
【００７３】
辺ｅ＿ｓｅｌｅｃｔ上の全ての搬送車のうち１つでも条件を満たす移動先が存在しない搬送車が存在する場合、Ｓｔｅｐ５に戻り、辺を再選択する。但し、既に選択した辺は選択候補から外す。 
【００７４】
図１０の分図（１）では、辺ｅ＿ｓｅｌｅｃｔ（ここでは辺ｅ２３）上の搬送車の移動先の辺を探すと、上記３つの条件を満たす辺は辺ｅ１７のみである。よって、辺ｅ＿ｓｅｌｅｃｔ（ここでは辺ｅ２３）上の搬送車を、辺ｅ１７に移動させる。
【００７５】
図１０の分図（２）は、辺ｅ２３辺上の搬送車を、辺ｅ１７に移動させた状態を示している。
【００７６】
辺ｅ１７に移動させた後、Ｓｔｅｐ２に戻り、辺の数字が再設定される。すなわち、辺ｅ２３には、根側に向かう搬送車は存在せず、葉側に向かう搬送車の台数ｎは０である。ｘ＝２であることから、ｘ−ｎ＝２−０＝２の計算により、辺ｅ２３の根側に「２」を設定する。また、辺ｅ１７には、根側に向かう搬送車がせず、葉側に向かう搬送車の台数ｎは１である。ｘ＝１であることから、ｘ−ｎ＝１−１＝０の計算により、辺ｅ１７の根側に「０」を設定する。
【００７７】
Ｓｔｅｐ２に続くＳｔｅｐ３で、頂点ｖ２１から葉方向に向かう全ての辺の根側の数字「０」「０」「０」「２」を合計した「２」を計算し、計算した「２」を、頂点ｖ２１の根方向に向かう辺ｅ２４の葉側に設定する。辺ｅ２４の葉側に「２」が設定されたことによりＳｔｅｐ２を行い、これにより、辺ｅ２４の根側に「２」を設定する。
【００７８】
Ｓｔｅｐ３に続くＳｔｅｐ４で、辺ｅ１７に対して、Ｚを計算する。辺ｅ１７に対して、Ｚ＝（１−０）／１＝１／１＝１となる。なお、辺ｅ２３には搬送車は存在しなくなったため、Ｚを計算しない。
【００７９】
図１０の分図（２）には、辺ｅ１７、ｅ２３、ｅ２４について再設定された数字、及び辺ｅ７に対して計算されたＺの値が示されている。
【００８０】
Ｓｔｅｐ４に続くＳｔｅｐ５で、Ｚ＞１となっている辺の内、搬送車数が最も少ない辺を選択する。Ｚ＞１となっている辺の内、搬送車数が最も少ない辺は、Ｚ＝３／２となっている辺ｅ２２である。したがって、辺ｅ２２を選択する。選択した辺ｅ２２を、辺ｅ＿ｓｅｌｅｃｔとする。
【００８１】
Ｓｔｅｐ５に続くＳｔｅｐ６で、辺ｅ＿ｓｅｌｅｃｔ上の全ての搬送車（ｈとする）を、上述の３つの条件α、β、γをすべて満たす辺に移動させる。これらの条件を満たす辺はｅ２３である。よって辺ｅ＿ｓｅｌｅｃｔ（ここでは辺ｅ２２）上の全ての搬送車を辺ｅ３に移動させる。
【００８２】
図１０の分図（３）は、辺ｅ２２上の全ての搬送車を辺ｅ２３に移動させた状態を示している。
【００８３】
辺ｅ２３に移動させた後、Ｓｔｅｐ２に戻り、辺の数字が再設定される。すなわち、辺ｅ２２には、根側に向かう搬送車は存在せず、葉側に向かう搬送車の台数ｎは０である。ｘ＝３であることから、ｘ−ｎ＝３−０＝３の計算により、辺ｅ２２の根側に「３」を設定する。また、辺ｅ２３には、根側に向かう搬送車がせず、葉側に向かう搬送車の台数ｎは２である。ｘ＝２であることから、ｘ−ｎ＝２−２＝０の計算により、辺ｅ２３の根側に「０」を設定する。
【００８４】
Ｓｔｅｐ２に続くＳｔｅｐ３で、頂点ｖ２１から葉方向に向かう全ての辺の根側の数字「０」「０」「３」「０」を合計した「３」を計算し、計算した「３」を、頂点ｖ２１の根方向に向かう辺ｅ２４の葉側に設定する。辺ｅ２４の葉側に「３」が設定されたことによりＳｔｅｐ２を行い、これにより、辺ｅ２４の根側に「３」を設定する。
【００８５】
Ｓｔｅｐ３に続くＳｔｅｐ４で、辺ｅ２３に対して、Ｚを計算する。辺ｅ２３に対して、Ｚ＝（２−０）／２＝２／２＝１となる。なお、辺ｅ２２には搬送車は存在しなくなったため、Ｚを計算しない。
【００８６】
図１０の分図（３）には、辺ｅ２２、ｅ２３、ｅ２４について再設定された数字、及び辺ｅ２４に対して計算されたＺの値が示されている。
【００８７】
Ｓｔｅｐ４に続くＳｔｅｐ５では、Ｚ＞１となっている辺は存在しないため、選択対象となる辺が存在しないと判断し、Ｓｔｅｐ７に進む。
【００８８】
［Ｓｔｅｐ７］
本ステップでは、木構造部分以外の部分（本体部分）から木構造の根頂点に接続されている辺の本体部分側（入り口側）に設定された数値を、進入可能数として返す。
【００８９】
図１０の分図（３）において、木構造部分以外の部分（本体部分）から根頂点ｖ２１に接続されている辺ｅ２４の本体部分側に設定された数値は３である。よって「３」を進入可能数として決定する。
【００９０】
図１１は、本実施形態に係るデッドロック検出装置１０１の動作の一例を表すフローチャートである。
【００９１】
デッドロック検出装置１０１の搬送車状態作成部１２１は、運行管理装置２０１から搬送路構成情報と搬送車情報（搬送車の位置及び向きに関する情報）とを取得する（Ｓ１０１）。取得した搬送路構成情報と搬送車情報を記憶部１３１に格納する。
【００９２】
搬送車状態作成部１２１は、取得したこれらの情報に基づき、所定のデッドロック条件を満たすかを検査する（Ｓ１０２）。所定のデッドロック条件は、前述した図４に示したような、明らかにデッドロックの状態になる条件を定めたものである。所定のデッドロック条件を満たす場合（ＹＥＳ）、すなわち明らかなデッドロックの状態になっている場合、その旨をデッドロック判定部１２６に通知する。デッドロック判定部１２６は、デッドロックが発生している判定し（Ｓ１０６）、本フローチャートの処理を終了する。
【００９３】
搬送車状態作成部１２１は、所定のデッドロック条件が満たされない場合（ＮＯ）、ステップＳ１０１で取得した搬送路構成情報と搬送車情報に基づき、搬送路構成グラフを作成する（Ｓ１０３）。また、搬送路構成グラフと搬送車情報に基づき、搬送車状態（対象となる搬送車状態）を特定する（同Ｓ１０３）。搬送路構成グラフと、特定した搬送車状態を表す情報（搬送車状態情報）とを記憶部１３１に格納する。
【００９４】
木構造抽出部１２２が、記憶部１３１に格納された搬送路構成グラフにおける木構造部分を抽出する（Ｓ１０４）。
【００９５】
進入可能数計算部１２３が、抽出された木構造部分に、当該木構造部分から外に出られない搬送車が存在するかを検査する（Ｓ１０５）。木構造部分から外に出ることができない搬送車が存在する場合（ＹＥＳ）、デッドロック判定部１２６は、対象となる搬送車状態はデッドロックになっていると判定し（Ｓ１０６）、本処理を終了する。
【００９６】
進入可能数計算部１２３は、木構造部分から外に出られない搬送車は存在しないと判断した場合（ＮＯ）、木構造部分にあと何台の搬送車を進入させることができるかを表す進入可能数を計算する（Ｓ１０７）。すなわち、あと何台の搬送車まで木構造部分に進入させても、木構造部分がデッドロックにならないかを計算する。
【００９７】
搬送車移動部１２４は、進入可能数計算部１２３が計算した進入可能数の台数の搬送車を、搬送路構成グラフのうち木構造部分以外の部分から選択し、選択した搬送車を当該木構造部分に移動させる（Ｓ１０８）。この際、本体部分の辺から搬送車が存在しなくなるような搬送車の選択が可能であれば、そのように搬送車を選択し、選択した搬送車を木構造部分に移動させる。
【００９８】
結合計算部１２５は、搬送車移動部１２４により搬送車が移動させられた各木構造部分を搬送路構成ブラフから除去し、除去後の搬送路構成グラフ（本体部分）と、本外部分に存在する搬送車とを対象として、搬送車結合処理を行う（Ｓ１０９）。搬送車結合処理では、一例として、本体部分に存在する複数の搬送車の中から搬送車を選択し、選択した搬送車を移動させ、同じ方向を向く別の搬送車に後ろから縦列に結合させる。１つの辺上で同方向に縦列に結合された複数の搬送車は１台の搬送車として扱う。これにより本体部分に存在する搬送車の台数は１台減ることになる。結合後の搬送車又は別の搬送車を選択し、選択した搬送車を移動させ、同様にして他の搬送車の後ろに縦列に結合させる。以降、同様の処理を繰り返し行う。
【００９９】
デッドロック判定部１２６は、上記搬送車結合処理の結果、最終的に搬送車数が１台となった場合（Ｓ１１０のＹＥＳ）、対象となる搬送車状態はデッドロックではないと判定する（Ｓ１１１）。一方、搬送車数が２台以上になった場合（Ｓ１１０のＮＯ）、デッドロック判定部１２６は、対象となる搬送車状態はデッドロックである判定する（Ｓ１０６）。
【０１００】
以上、本実施形態によれば、搬送車結合処理により１台の搬送車になった場合は、デッドロックは発生していないと判定するため、デッドロックが発生しているかどうかを高速に判定できる。すなわち、搬送車状態にデッドロックが発生しているか否かを判定するために時間のかかる状態探索を行う必要はない。
【０１０１】
例えば、図３に示した状態Ｘ１が対象となる搬送車状態の場合に、関連技術では、状態Ｘ２、Ｘ３、Ｘ４等の状態及びこれらの状態から遷移（枝分かれ）する多数の状態を探索し、各状態Ｘ２、Ｘ３、Ｘ４から遷移する複数の状態のうち１つでもデッドロックでない状態が見つかれば、その状態（図３の例ではＸ４）はデッドロックでないと判定するが、これは非常に時間がかかる。
【０１０２】
これに対して、本実施形態では、このような状態探索を行うことなく、対象となる搬送車状態に対して搬送車結合処理等を行うことによりデッドロックの有無を判定するため、デッドロックの発生有無を高速に判定できる。また、状態Ｘ１の次以降の遷移先の状態（将来遷移する複数回分の状態）を時間軸に沿って次々に探す状況において、状態Ｘ２、Ｘ３についてはこれらの状態がデッドロックであると高速に判定できるため、その先の探索を行わなくてすみ、デッドロックでないと判定された状態Ｘ４の遷移先の状態を探すことに時間を用いることができる。よって、最適な搬送車運行を実現する運行計画を高速に作成できる。また、各搬送車のリアルタイムの運行管理及び制御を効率的に行うこともできる。
【０１０３】
なお、デッドロックを発生させない手法の１つとして、搬送路に進行方向を１方向に限定する制約を設定する方法が考えられる。図１２に、搬送路構成グラフの各搬送路（辺）に進行方向の制約を設定した例を示す。この例では頂点ｖ２に到着した搬送車は辺ｅ３にしか進めない。しかし、このように進行方向を限定すると、前を走っている搬送車のスピードが遅い場合などは、後ろの搬送車がスピードを抑える必要があり、結果的に搬送の効率が悪くなる。これに対して、本実施形態では、進行方向の制約を設定しなくても、辺ｅ２の２台の搬送車を、辺ｅ３と辺ｅ４にそれぞれ進入させてもデッドロックが発生しないと判断できる。このため、進行方向を限定する上記の方法に比べて、効率の良い搬送車の運行を実現できる。
【０１０４】
本実施形態では搬送車結合処理を行う前に木構造部分への搬送車の移動及び移動後の木構造部分の削除を行ったが、搬送路構成グラフの構造によっては最初から木構造が存在しない場合もある。その場合は、本実施形態の処理から木構造に関する処理を省略すればよい。すなわち、本実施形態は木構造が存在しない搬送路構成グラフに対しても適用可能である。
【０１０５】
（第２の実施形態）
第１の実施形態では搬送路（搬送路構成グラフにおける辺）に存在することができる搬送車数に上限がない場合を想定した。すなわち、全ての搬送車が同じ搬送路（辺）上に縦列に同時に存在することを許容していた。これに対して、第２の実施形態では、搬送路に同時に存在することができる搬送車数に上限値がある場合を扱う。本実施形態のブロック図は図１と同じであるが、デッドロック判定部１２６の機能が一部拡張されている。
【０１０６】
結合計算部１２５は、第１の実施形態で記載した搬送車結合処理を行う。その結果、１台の搬送車になった場合は、第１の実施形態と同様、デッドロック判定部１２６は、デッドロックは発生していないと判定する。一方、搬送車結合処理の結果、２台以上の搬送車が残った場合は、デッドロック判定部１２６は、以下に記載する第２の実施形態の処理を行うことにより、デッドロックが発生しているか否かを判定する。
【０１０７】
本実施形態では搬送路ごとに、進入可能（同時に存在可能）な搬送車数の上限値が設定されている。この上限値の情報は運行管理装置２０１から搬送路構成情報の一部として取得する。複数の搬送路のうち、最も上限値が低い搬送路の上限値をｕとする。このとき、結合計算部１２５が同一の搬送路において同方向及び縦列に結合できる搬送車数は最大でｕ台となる。
【０１０８】
図１３は、搬送路の搬送車数の上限値ｕ＝２のときの結合計算部１２５の処理を説明するための図である。分図（１）〜（３）は図８と同じである。第１の実施形態では分図（４）まで搬送車結合処理を進めたが、第２の実施形態ではｕ＝２のため、搬送路に３台以上の搬送車が同時に存在することができず、これ以上の結合処理を進めることができない。よって、最終的に２台の搬送車が残る。
【０１０９】
このように搬送路が同時に存在することができる搬送車数の上限値による制約の下で行った搬送車結合処理の結果、２台以上の搬送車が残った場合、デッドロック判定部１２６は、残った搬送車が任意の交差点又は端点に進むことができるかを、公知の方法（全探索又はシミュレーション等）によって判定する。任意の搬送車が任意の交差点又は端点に進めない場合は、デッドロックが発生していると判定し、それ以外の場合は、デッドロックは発生していないと判定する。通常、全探索又はシミュレーション等には計算時間がかかるが、本実施形態では、結合計算部１２５によって元の搬送車数よりも台数を減らされた状態で全探索又シミュレーションを行えばよいため、必要な計算時間を短くできる。
【０１１０】
図１３の例では、全探索又はシミュレーション等を行うことにより、搬送車Ｃ＆Ｄ、及び搬送車Ａ＆Ｂのいずれも任意の交差点又は端点に進むことができることが分かる。よってデッドロック判定部１２６は、デッドロックは発生していないと判定する。
【０１１１】
図１４に、第２の実施形態に係る動作の一例のフローチャートを示す。第１の実施形態のフローチャートとの違いは、ステップＳ１１２が追加されている点である。ステップＳ１２では、搬送車結合処理の結果として２台以上の搬送車が残った場合に、残った任意の搬送車について任意の頂点（交差点又は端点）に進めなくなるかを判断する。進めなくなる場合は（ＹＥＳ）、デッドロックが発生していると判定し（Ｓ１０６）、残った全ての搬送車が任意の頂点に進むことができる場合は（ＮＯ）、デッドロックが発生していないと判定する（Ｓ１１１）。
【０１１２】
以上、本実施形態によれば、各搬送路に同時に存在可能な搬送車数の上限がある場合でも、デッドロックが発生しているかどうかを高速に判定できる。
【０１１３】
（第３の実施形態）
図１５は、第３の実施形態に係るデッドロック検出装置１０１と、運行管理装置２０１とを備えた運行管理システムのブロック図である。第１の実施形態との違いとして、デッドロック危険度計算部１２７と、表示部１２８が追加されている。また、搬送車状態作成部１２１は、対象となる搬送車状態の次の遷移先の候補となる搬送車状態を作成する次搬送車状態作成部１２９を備える。
【０１１４】
デッドロック危険度計算部１２７は、デッドロック判定部１２６で対象となる搬送車状態にデッドロックが発生していないと判定された場合に、対象となる搬送車状態がその後の状態遷移によってどの程度デッドロックになりやすいかを表すデッドロック危険度（第１デッドロック危険度）を計算する。デッドロックになりやすいとは、デッドロックにならないための搬送車の移動パターンが少ない（制限されている）ことを意味する。また、対象となる搬送車状態において各搬送車が移動した場合にどの程度デッドロックになりやすいかを表すデッドロック危険度（第２デッドロック危険度）を搬送車ごとに計算する。
【０１１５】
次搬送車状態作成部１２９は、対象となる搬送車状態の次の遷移先の候補となる搬送車状態（次搬送車状態）を全て作成する。次搬送車状態は、対象となる搬送車状態において１台の搬送車が次の頂点（端点又は交差点）を１回通過した状態に相当する。したがって、各搬送車が次の頂点で通過可能（選択可能）な辺の個数だけ次の搬送車状態を特定する。全ての搬送車について特定した搬送車状態の集合が、対象となる搬送車状態の次搬送車状態の全てになる。全ての次搬送車状態のそれぞれについて第１又は第２の実施形態と同様にしてデッドロックの有無を判定し、デッドロックが発生している次搬送車状態の数を計算する。デッドロックが発生しているか否かは第１又は第２の実施形態と同様にして判定できる。
【０１１６】
デッドロック危険度計算部１２７は、全ての次搬送車状態のうち、デッドロックが発生している数と、全搬送車状態数との比によりデッドロック危険度（第１デッドロック危険度）を計算する。また、デッドロック危険度計算部１２７は、搬送車ごとに特定した次搬送車状態のうちデッドロックが発生している次搬送車状態の数と、搬送車ごとに特定した次搬送車状態の数との比により、搬送車ごとのデッドロック危険度（第２デッドロック危険度）を計算する。デッドロック危険度は比の値でもよいし、比の値をランク付けしたものでもよいし、その他の方法で表現したものでもよい。デッドロック危険度計算部１２７は、搬送車ごとに、上記選択可能な辺のうちどの辺（搬送路）を通過するとデッドロックが発生するかを特定し、搬送車が特定した辺に対応する搬送路を通過した場合にデッドロックが発生することを表す情報（デッドロック搬送路情報）を生成してもよい。もしくは、それ以外の辺に対応する搬送路を通過した場合にデッドロックが発生しないことを表す情報（非デッドロック搬送路情報）を生成してもよい。
【０１１７】
表示部１２８は、デッドロック危険度計算部１２７により計算された第１デッドロック危険度及び第２デッドロック危険度の少なくとも一方に関する情報を表示する。また、表示部１２８は、デッドロック搬送路情報及び非デッドロック搬送路情報の少なくとも一方を表示する。表示部１２８は、一例として、運行管理のオペレータの監視モニタとして用いられる。また、搬送車が人によって運転される場合、表示部１２８は、車載モニタとして用いられてもよい。デッドロック危険度に関する情報を色によって表示してもよい。例えばデッドロック危険度が取り得る値の範囲を３つに分割（例えば大、中、小の範囲に分割）し、計算されたデッドロック危険度の値が大の範囲に属するときは赤、中の範囲に属するときは黄色、小の範囲に属するときは青を表示してもよい。
【０１１８】
オペレータ又は運転者は表示部１２８を確認することで、対象となる搬送車状態のデッドロック危険度（第１デッドロック危険度）及び搬送車ごとのデッドロック危険度（第２デッドロック危険度）を把握できる。またオペレータ又は運転者は、表示部１２８を確認することで、デッドロックが発生しない移動パターン（次の交差点又は端点でどの方向に進めばデッドロックが発生しないか）を認識することができる。オペレータが搬送車に運行を指示する場合、これらの情報に基づき、より搬送車の移動の自由度が保たれた搬送車の運行を指示できるようになる。搬送車に運転者がいる場合に、運転者にデッドロックを回避するための交差点での進行方向を指示することができるようになる。表示部１２８例は、一例として、液晶表示装置、有機ＥＬ表示装置、ＣＲＴ表示装置、又はその他の種類の表示装置を含む。
【０１１９】
図１６はデッドロック危険度計算部１２７の処理の具体例を説明するための図である。図の中央に示される搬送車状態Ｔが、対象となる搬送車状態とする。搬送車状態Ｔでは、４台の搬送車が存在する。
【０１２０】
搬送車状態Ｔにおいて、搬送車Ａは次の頂点で２つの辺（搬送路）を選択できる。このため、搬送車Ａの次搬送車状態の集合をＳＡとすると、ＳＡは２つの次搬送車状態を含む。同様に搬送車Ｂ，Ｃ，Ｄも次の頂点で２つの辺を選択可能であるため、次搬送車状態の集合をそれぞれＳＢ，ＳＣ，ＳＤとすると、ＳＢ，ＳＣ，ＳＤはそれぞれ２つの次搬送車状態を含む。集合ＳＡ内の２つの次搬送車状態のうちの一方はデッドロックであり、他方はデッドロックでないと判定される。同様に、集合ＳＢ，ＳＣ，ＳＤ内の２つの搬送車状態についても同様に、一方はデッドロックであり、他方はデッドロックでないと判定される。デッドロック危険度計算部１２７は搬送車ごとにどの辺を通過するとデッドロックが発生し、どの辺を通過するとデッドロックが発生しないかを特定する。搬送車Ａ〜Ｄのそれぞれに対するデッドロック危険度（第２デッドロック危険度）は、以下の式（１）より計算される。
【０１２１】
搬送車ｈに対するデッドロック危険度＝（搬送車ｈの次搬送車状態の内、デッドロックとなる次搬送車状態の数）／（搬送車ｈの次搬送車状態の数）      ・・・（１）
【０１２２】
例えば、搬送車Ａの場合、ｈ＝Ａとする。搬送車Ａの次搬送車状態の数はＳＡの要素数２である。また、２つの次搬送車状態のうちデッドロックとなる搬送車状態の数は１である。よって、搬送車Ａに対するデッドロック危険度は１／２＝０．５である。搬送車Ｂ〜Ｄについても同様にしてそれぞれデッドロック危険度が０．５と計算される。
【０１２３】
また、搬送車状態Ｔのデッドロック危険度（第１デッドロック危険度）は、以下の式（２）により計算される。
【０１２４】
搬送車状態Ｔのデッドロック危険度＝（搬送車状態Ｔの次搬送車状態の内、デッドロックとなる次搬送車状態の数）／（搬送車状態Ｔの次搬送車状態の数）      ・・・（２）
【０１２５】
図１６の例ではｈ＝Ａ〜Ｄのため、搬送車状態Ｔの次搬送車状態の数は、Σ｜Ｓｈ｜＝｜ＳＡ｜+｜ＳＢ｜＋｜ＳＣ｜＋｜ＳＤ｜＝２+２+２+２＝８である。｜Ｓ｜はＳの要素数を表す。また、８個の次搬送車状態のうち、デッドロックとなる次搬送車状態の数は４である。よって、搬送車状態Ｔのデッドロック危険度は４／８＝０．５である。
【０１２６】
図１６の上側には、搬送車状態のデッドロック危険度（第１デッドロック危険度）、及び搬送車ごとのデッドロック危険度（第２デッドロック危険度）に関する情報を、監視モニタ又は車載モニタに表示した例が示されている。また、搬送車ごとに、どの辺（搬送路）を通過するとデッドロックになるかの情報が表示されている。図の「右道デッドロック」及び「左道デッドロック」がこの情報に相当する。「右道デッドロック」は搬送車が交差点で右側の搬送路を選択した場合にデッドロックになることを意味している。「左道デッドロック」は搬送車が交差点で左側の搬送路を選択した場合にデッドロックになることを意味している。これらの情報は、倉庫等で利用されるいわゆる搬送車の運行管理にとどまらず、鉄道の運行管理や車庫入れ、道路・駐車場・飛行場における車や航空機の交通整理をおこなう管理システムでも利用することができる。
【０１２７】
図１７は、第３の実施形態に係るデッドロック危険度の計算の処理の一例のフローチャートである。
【０１２８】
次搬送車状態作成部１２９が、対象となる搬送車状態において任意の搬送車
2020077110.tif 000004
を任意の交差点又は端点（すなわち次の頂点）を通過させた次搬送路状態の集合Sを生成する（Ｓ２０１）。搬送車hを移動させたことによる次搬送路状態の集合をShとすると、
【数１】
2020077110.tif 000005
となる。
【０１２９】
Shに含まれる次搬送車状態のうちデッドロックとなっている次搬送車状態数を格納する変数dhを作成し、dh=0で初期化する（Ｓ２０２）。
【０１３０】
任意の搬送車
2020077110.tif 000006
の任意の次搬送車状態
2020077110.tif 000007
について、以下を実行する。まず、次搬送車状態shがデッドロックになっているかを判定する（Ｓ２０４）。この処理は、第１又は第２の実施形態で対象となる次搬送車状態がデッドロックになっているかを判定したのと同様にして行う。デッドロックになっていると判定された場合は、変数dhに１を加算する。デッドロックになっていないと判定された場合は、次の次搬送車状態shを選択して同様の処理を行う（Ｓ２０３、Ｓ２０４、Ｓ２０５）。
【０１３１】
対象となる搬送車状態のデッドロック危険度（第１デッドロック危険度）を
【数２】
2020077110.tif 000008
により計算する（Ｓ２０６）。
式（３）は前述した式（２）に対応する。
【０１３２】
また、搬送車hに対するデッドロック危険度（第２デッドロック危険度）を
【数３】
2020077110.tif 000009
により計算する（同Ｓ２０６）。
式（４）は前述した式（１）に対応する。
【０１３３】
上述した実施形態では、搬送車状態及び次搬送車状態のデッドロック判定を行うために本実施形態に係るデッドロック検出処理（図１１）を用いたが、搬送車状態及び次搬送車状態に対して状態探索を行って、所定のデッドロック条件（図１１のＳ１０２）に基づきデッドロック判定を行ってもよい（すなわち、この場合、木構造抽出処理や搬送車結合処理等は行わない）。この場合も、デッドロック危険度計算部１２７は、上述した処理と同様にしてデッドロック危険度（第１デッドロック危険度又は第２デッドロック危険度又はこれらの両方）を計算し、表示部１２８に表示してもよい。また、デッドロック搬送路情報及び非デッドロック搬送路情報も上述した処理と同様に生成し、表示部１２８に表示してもよい。この場合、搬送路構成グラフを作成せずに、運行管理装置２０１から提供された搬送路構成情報と搬送車情報を用いて、各搬送車がどの搬送路のどの位置でどの方向を向いているかを表す搬送車状態を生成し、さらに搬送車状態の次搬送車状態を生成してもよい。そして、このように生成した搬送車状態及び次搬送車状態に基づき状態探索を行い、所定のデッドロック条件に基づき搬送車状態及び次搬送車状態のデッドロック判定を行ってもよい。
【０１３４】
図１８に、第１〜第３の実施形態のいずれかに係るデッドロック検出装置１０１のハードウェア構成の一例を示す。デッドロック検出装置１０１は、コンピュータ装置１５０により構成される。コンピュータ装置１５０は、ＣＰＵ１５１と、入力インタフェース１５２と、表示装置１５３と、通信装置１５４と、主記憶装置１５５と、外部記憶装置１５６とを備え、これらはバス１５７により相互に接続されている。
【０１３５】
ＣＰＵ（中央演算装置）１５１は、主記憶装置１５５上で、デッドロック検出装置１０１の上述の各機能構成を実現するコンピュータプログラムを実行する。ＣＰＵ１５１が、コンピュータプログラムを実行することにより、各機能構成は実現される。
【０１３６】
入力インタフェース１５２は、キーボード、マウス、及びタッチパネルなどの入力装置からの操作信号を、デッドロック検出装置１０１に入力するための回路である。
【０１３７】
表示装置１５３は、デッドロック検出装置１０１から出力されるデータ又は情報を表示する。表示装置１５３は、例えば、ＬＣＤ（液晶ディスプレイ）、ＣＲＴ（ブラウン管）、及びＰＤＰ（プラズマディスプレイ）であるが、これに限られない。コンピュータ装置１５０から出力されたデータ又は情報は、この表示装置１５３により表示することができる。
【０１３８】
通信装置１５４は、デッドロック検出装置１０１が外部装置と無線又は有線で通信するための回路である。通信装置１５４を介して外部装置から情報を入力することができる。外部装置から入力した情報を、ＤＢに格納することができる。デッドロック検出装置１０１のうち通信機能を担う部分は、通信装置１５４上に構築されることができる。
【０１３９】
主記憶装置１５５は、本実施形態の処理を実現するプログラム、及びプログラムの実行に必要なデータ、及びプログラムの実行により生成されたデータなどを記憶する。プログラムは、主記憶装置１５５上で展開され、実行される。主記憶装置１５５は、例えば、ＲＡＭ、ＤＲＡＭ、ＳＲＡＭであるが、これに限られない。各実施形態における各種ＤＢ及び記憶部は、主記憶装置１５５上に構築されてもよい。
【０１４０】
外部記憶装置１５６は、上記プログラム及びプログラムの実行に必要なデータ、及びプログラムの実行により生成されたデータなどを記憶する。これらのプログラムやデータは、本実施形態の処理の際に主記憶装置１５５に読み出される。外部記憶装置１５６は、例えば、ハードディスク、光ディスク、フラッシュメモリ、及び磁気テープであるが、これに限られない。各実施形態における記憶部は、外部記憶装置１５６上に構築されてもよい。
【０１４１】
なお、上述のプログラムは、コンピュータ装置１５０に予めインストールされていてもよいし、ＣＤ−ＲＯＭなどの記憶媒体に記憶されていてもよい。また、当該プログラムは、インターネット上にアップロードされていてもよい。
【０１４２】
なお、コンピュータ装置１５０は、プロセッサ１５１、入力インタフェース１５２、表示装置１５３、通信装置１５４、及び主記憶装置１５５を、それぞれ１つ又は複数備えてもよいし、プリンタやスキャナなどの周辺機器を接続されていてもよい。
【０１４３】
また、デッドロック検出装置１０１は、単一のコンピュータ装置１５０により構成されてもよいし、相互に接続された複数のコンピュータ装置１５０からなるシステムとして構成されてもよい。
【０１４４】
なお、本発明は上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記各実施形態に開示されている複数の構成要素を適宜組み合わせることによって種々の発明を形成できる。また例えば、各実施形態に示される全構成要素からいくつかの構成要素を削除した構成も考えられる。さらに、異なる実施形態に記載した構成要素を適宜組み合わせてもよい。
【符号の説明】
【０１４５】
１０１：デッドロック検出装置
１１１：演算部
１３１：記憶部
１２１：搬送車状態作成部
１２２：木構造抽出部
１２３：進入可能数計算部
１２４：搬送車移動部
１２５：結合計算部
１２６：デッドロック判定部
１２７：デッドロック危険度計算部
１２８：表示部
１２９：次搬送車状態作成部
２０１：運行管理装置
２１２：制御部
２３１：記憶部
【図１】
2020077110.tif 000010
【図２】
2020077110.tif 000011
【図３】
2020077110.tif 000012
【図４】
2020077110.tif 000013
【図５】
2020077110.tif 000014
【図６】
2020077110.tif 000015
【図７】
2020077110.tif 000016
【図８】
2020077110.tif 000017
【図９】
2020077110.tif 000018
【図１０】
2020077110.tif 000019
【図１１】
2020077110.tif 000020
【図１２】
2020077110.tif 000021
【図１３】
2020077110.tif 000022
【図１４】
2020077110.tif 000023
【図１５】
2020077110.tif 000024
【図１６】
2020077110.tif 000025
【図１７】
2020077110.tif 000026
【図１８】
2020077110.tif 000027