(57)【要約】  本開示は、２つのノード間の到達可能なパスを決定するための方法、装置、及びシステムに関する。本開示の方法によれば、まず、複数の点及び複数の点を結ぶ辺を含むグラフの隣接行列を確立し（１０１）、次に、この隣接行列に基づいて、始点から目的地に到達できる到達可能なパスを探索する。特に、探索中に、既に探索されたパスに基づいて、探索の終了条件を設定し、探索中に終了条件が満たされたことに応答して、対応する探索を終了する（１０３）。本方法によって、繰り返しの走査を大幅に低減し、２つのノード間の到達可能なパスの探索に要する時間を明らかに短縮し、到達可能なパスの探索の効率を顕著に向上させることができる。【選択図】図１
2021519461.tif 000002
【特許請求の範囲】
【請求項１】
２つのノード間の到達可能なパスを決定するための方法であって、
複数の点及び複数の点を結ぶ辺を含むグラフの隣接行列を確立することと、
前記隣接行列に基づいて、始点から目的地に到達できる到達可能なパスを探索することと、
を有し、
前記探索中に、既に探索されたパスに基づいて探索の終了条件を設定し、かつ、前記探索中に前記終了条件が満たされたことに応答して、対応する探索を終了する方法。
【請求項２】
前記探索を実行する前に、前記隣接行列を縮減して探索空間を縮小し、前記縮減された隣接行列に基づいて探索を実行することを、さらに有する請求項１に記載の方法。
【請求項３】
前記隣接行列を縮減することは、
前記隣接行列により前記グラフの到達可能な行列を決定することと、
前記到達可能な行列及び前記目的地に応じて前記隣接行列を縮減することと、
を有する請求項２に記載の方法。
【請求項４】
前記隣接行列により前記グラフの到達可能な行列を決定することは、
前記隣接行列により、前記グラフの２次からＮ−１次までの隣接行列を決定することと、
前記隣接行列と前記２次からＮ−１次の隣接行列を加算して、前記グラフの到達可能な行列を決定することと、
を有し、
ここで、Ｎは、前記グラフのノードの数である請求項３に記載の方法。
【請求項５】
前記到達可能な行列及び前記目的地に応じて前記隣接行列を縮減することは、
前記目的地に到達できない前記到達可能な行列内のノードを決定することと、
前記隣接行列から前記目的地に到達できないノードを削除して、縮減された隣接行列を生成することと、
を有する請求項３又は４に記載の方法。
【請求項６】
既に探索されたパスに基づいて探索の終了条件を設定することは、
探索を監視することと、
前記探索中、あるノードから前記目的地までのすべてのパスが既に走査された場合に、当該ノードを探索の前記終了条件の一つとして設定することと、
を有する請求項１〜４のいずれか１項に記載の方法。
【請求項７】
前記探索中に前記終了条件が満たされたことに応答して、対応する探索を終了することは、
隣接ノードの探索が行われるノードが前記目的地でない場合に、対応する探索を終了し、当該ノードに対応する以前の探索結果を当該ノードの探索結果とすることを有する、請求項１〜４のいずれか１項に記載の方法。
【請求項８】
前記探索中に前記終了条件が満たされたことに応答して、対応する探索を終了することは、
隣接ノードの探索が行われるノードが前記目的地である場合に、対応する探索を終了し、探索により既に見つかった前記始点から前記目的地までの到達可能なパスを出力し、上位ノードの探索に戻ることを有する、請求項１〜４のいずれか１項に記載の方法。
【請求項９】
始点から目的地に到達可能である到達可能なパスの探索が、深さ優先走査に基づくものである、請求項１〜４のいずれか１項に記載の方法。
【請求項１０】
２つのノード間の到達可能なパスを決定するための装置であって、
複数の点及び複数の点を結ぶ辺を含むグラフの隣接行列を確立するように構成されている隣接行列確立モジュールと、
前記隣接行列に基づいて、始点から目的地に到達可能である到達可能なパスを探索するように構成されているパス探索モジュールと、
前記探索中に、既に探索されたパスに基づいて探索の終了条件を設定するように構成されている条件設定モジュールと、
前記探索中に、前記終了条件が満たされたことに応答して、対応する探索を終了するように構成されている探索終了モジュールと、
を備える装置。
【請求項１１】
前記探索の前に前記隣接行列を縮減して探索空間を縮小し、前記縮減された隣接行列に基づいて探索が実行されるように構成されている行列縮減モジュールを、更に備える請求項１０に記載の装置。
【請求項１２】
前記行列縮減モジュールは、
前記隣接行列により前記グラフの到達可能な行列を決定し、前記到達可能な行列及び前記目的地に応じて前記隣接行列を縮減するように、更に構成されている請求項１１に記載の装置。
【請求項１３】
前記行列縮減モジュールは、
前記隣接行列により、前記グラフの２次からＮ−１次の隣接行列を決定し、
前記隣接行列と前記２次からＮ−１次の隣接行列を加算して、前記グラフの到達可能な行列を決定するように、更に構成されており、
ここで、Ｎは、前記グラフのノードの数である請求項１２に記載の装置。
【請求項１４】
前記行列縮減モジュールは、
前記目的地に到達できない前記到達可能な行列内のノードを決定し、
前記隣接行列から前記目的地に到達できないノードを削除して、縮減された隣接行列を生成するように、更に構成されている請求項１２又は１３に記載の装置。
【請求項１５】
前記条件設定モジュールは、
探索を監視し、
探索中、あるノードから前記目的地までのすべてのパスが既に走査された場合に、当該ノードを探索の前記終了条件の一つとして設定するように、更に構成されている請求項１０〜１３のいずれか１項に記載の装置。
【請求項１６】
前記探索終了モジュールは、
隣接ノードの探索が実行されるノードが前記目的地でない場合に、対応する探索を終了し、当該ノードに対応する以前の探索結果を当該ノードの探索結果とするように構成されている、
請求項１０〜１３のいずれか１項に記載の装置。
【請求項１７】
前記探索終了モジュールは、
隣接ノードの探索が行われるノードが前記目的地である場合に、対応する探索を終了し、探索により既に見つかった前記始点から前記目的地までの到達可能なパスを出力し、上位ノードの探索に戻るように構成されている、
請求項１０〜１３のいずれか１項に記載の装置。
【請求項１８】
前記パス探索モジュールは、深さ優先走査に基づいて探索するように、さらに構成されている、
請求項１０〜１３のいずれか１項に記載の装置。
【請求項１９】
２つのノード間の到達可能なパスを決定するためのシステムであって、
プロセッサと、
前記プロセッサによって実行されると、前記プロセッサに、請求項１〜９のいずれか１項に記載の方法を実行させるコンピュータプログラムコードが格納されたメモリと、
を備えるシステム。
【請求項２０】
プロセッサによって実行されると、前記プロセッサに請求項１〜９のいずれか１項に記載の方法を実行させるコンピュータプログラムコードが格納されたコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、データマイニングの技術分野に関し、より詳細には、２つのノード間の到達可能なパスを決定するための方法、装置、及びシステムに関する。
【背景技術】
【０００２】
ビッグデータ時代には、様々なデータ取得手段によって大量のデータが取得されることができる。これらのデータに対してデータ分析やマイニングを行うことで、多くの有用な情報を得ることが可能である。実生活では、多くのアプリケーションシナリオは、ネットワーク構造によって表されることができる。例えば、複雑な道路ネットワークでは、ドットは、交差点を表すために使用され、線は、２つの交差点間の道路部を表すために使用され、これによって、多くのドットと線が交通ネットワーク構造図を形成するために使用されることができる。同様に、ソーシャルネットワークにおける人や社会的関係もネットワーク構造図で表されることができる。
【０００３】
現在の既存技術では、２つのノード間の最短パスの探索や決定に着目する研究が多いが、２つのノード間のすべての到達可能なパスの探索や決定のためのソリューションに着目する研究は現在ほとんどない。しかし、このような情報は、実際に必要とされ、実用性がある。例えば、交通ネットワークでは、始点から目的地までのすべての可能なパスを決定するという要求があり、ソーシャルネットワークでは、二人のすべての可能な知り合い関係を見つけるという要求もありえる。
【０００４】
多数のノードと辺を含むネットワーク構造の場合、既知の技術を利用して２つのノード間のすべての到達可能なパスを探索することは効率的ではなく、膨大な時間がかかり、アプリケーションのニーズを満すことができない。そのため、従来技術において、より効率的なソリューションによって、２つのノード間の到達可能なパスの探索を実現することが求められている。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
これに鑑みて、本開示は、従来技術における問題を少なくとも部分的に解消又は緩和するために、２つのノード間の到達可能なパスを決定するための方法、装置、及びシステムを提供する。
【課題を解決するための手段】
【０００６】
本開示の第１の態様によれば、２つのノード間の到達可能なパスを決定するための方法が提供される。この方法では、まず、複数の点及び複数の点を結ぶ辺を含むグラフの隣接行列を確立し、次に、隣接行列に基づいて、始点から目的地に到達できる到達可能なパスの探索を行う。特に、探索中に、既に探索されたパスに基づいて探索の終了条件を設定し、探索中に終了条件が満たされたことに応答して、対応する探索を終了する。
【０００７】
本開示の第２の態様によれば、２つのノード間の到達可能なパスを決定するための装置が提供される。この装置は、隣接行列確立モジュール、パス探索モジュール、条件設定モジュール、及び探索終了モジュールを備えてもよい。隣接行列確立モジュールは、複数の点及び複数の点を結ぶ辺を含むグラフの隣接行列を確立するように構成されてもよい。パス探索モジュールは、隣接行列に基づいて、始点から目的地に到達できる到達可能なパスを探索するように構成されてもよい。条件設定モジュールは、探索中に、既に探索されたパスに基づいて、探索の終了条件を設定するように構成されてもよい。探索終了モジュールは、探索中に終了条件が満たされたことに応答して、対応する探索を終了するように構成されてもよい。
【０００８】
本開示の第３の態様によれば、２つのノード間の到達可能なパスを決定するためのシステムが提供される。システムは、プロセッサと、メモリと、を備える。メモリには、プロセッサによって実行されると、プロセッサに、本開示の第１の態様に記載の方法のステップを実行させる少なくとも１つ又は複数のコンピュータプログラムコードが格納された。
【０００９】
本開示の第４の態様によれば、プロセッサによって実行されると、プロセッサに本開示の第１の態様に記載の方法のステップを実行させるコンピュータプログラムコードが格納されたコンピュータ読み取り可能な記憶媒体が提供される。
【００１０】
本開示の第５の態様によれば、コンピュータデバイスにロードされると、コンピュータデバイスに本開示の第１の態様に記載の方法のステップを実行させるコンピュータプログラムコードが格納されたコンピュータプログラム製品が提供される。
【００１１】
本開示の実施形態では、既に探索されたパスを監視することで探索の終了条件を設定することによって、繰り返しの走査を大幅に低減することができる。さらに、好ましい実施形態では、探索を開始する前にプルーニング処理を行ってもよい。このように、２つのノード間の到達可能なパスの探索に要する時間をさらに短縮し、到達可能なパスの探索効率を顕著に向上させることができる。
【図面の簡単な説明】
【００１２】
添付図面を参照しながらなされた実施形態の下記詳細な説明を通じて、本開示の上記特徴および他の特徴がより明らかになる。本開示の図面において、同一の参照符号は同一又は類似の要素を表す。
【００１３】
【図１】本開示の実施形態にかかる２つのノード間の到達可能なパスを決定するための方法のフローチャートを模式的に示す。
【００１４】
【図２Ａ】本開示の実施形態にかかる例示的なネットワーク構造の概略図を模式的に示す。
【図２Ｂ】本開示の実施形態にかかる例示的なネットワーク構造に対応する隣接行列の概略図を模式的に示す。
【００１５】
【図３Ａ】本開示の実施形態にかかる隣接行列を表す行列Ｐの概略図を模式的に示す。
【図３Ｂ】本開示の実施形態にかかる到達可能な行列の概略図を模式的に示す。
【００１６】
【図４Ａ】プルーニング前のネットワーク構造及び隣接行列の概略図を模式的に示す。
【図４Ｂ】プルーニング後のネットワーク構造及び隣接行列の概略図を模式的に示す。
【００１７】
【図５】本開示の実施形態にかかる２つのノード間の到達可能なパスを決定するための特定の例示的な実施のフローチャートを模式的に示す。
【００１８】
【図６Ａ】従来技術にかかる深さ走査に基づく探索プロセスの概略図を模式的に示す。
【図６Ｂ】本開示にかかる深さ走査に基づく探索プロセスの概略図を模式的に示す。
【００１９】
【図７】本開示の実施形態にかかる２つのノード間の到達可能なパスを決定するための装置のブロック図を模式的に示す。
【００２０】
【図８】本開示の実施形態にかかる２つのノード間の到達可能なパスを決定するためのシステムの概略図を模式的に示す。
【発明を実施するための形態】
【００２１】
以下、図面を参照して本開示の例示的な各実施形態を詳細に説明する。これらの図面及び説明は、例とする好ましい実施形態にのみ関することに留意されたい。本明細書に開示される構造及び方法の代替的な実施形態は、以下の説明に基づいて容易に想到でき、これらの代替的な実施形態は、本開示によって保護が請求される原理から逸脱することなく利用することができることに留意されたい。
【００２２】
これらの例示的な実施形態は、当業者が本開示をよりよく理解し、さらに実施することを可能にするためにのみ記載され、いかなる方式でも本開示の範囲を限定することを意図していないことを理解されたい。その上、図面では、説明の目的のために、選択可能なステップ、モジュール等が破線ブロックで図示される。
【００２３】
本明細書で使用されるとき、「含む」、「有する」などの用語は、「含む／有するがこれらに限定されない」ことを意味するオープンな用語として読まれる。「に基づいて」という用語は、「少なくとも部分的に基づいて」として読まれる。「一実施形態」という用語は、「少なくとも一実施形態」として読まれる。「別の実施形態」という用語は、「少なくとも１つの他の実施形態」として読まれる。他の用語についての定義は、後述する。
【００２４】
上述したように、多数のノード及び辺を含むネットワーク構造の場合、既知の技術を利用して２つのノード間のすべての到達可能なパスを探索することは効率ではなく、膨大な時間がかかるため、アプリケーションのニーズを満すことができない。以下では、例示の目的のために、従来技術における２つのノード間の到達可能なパスを探索するためのソリューションを簡単に説明する。
【００２５】
中国特許出願公開ＣＮ１０５５４７３０８において、デジタル道路ネットワーク地図と深さ優先走査に基づくナビゲーション方法が提案されている。この方法によれば、まず、デジタル道路ネットワーク地図を構築し、次に、デジタル道路ネットワーク地図に基づいて、深さ優先走査を用いて、出発地から目的地までのナビゲーションパスを計画する。具体的には、該特許公開公報で提案されている技術的ソリューションによれば、まず、有向グラフを構築し、そのグラフの隣接行列を確立する。そして、1つの頂点について、その隣接ノード、即ち、その頂点から到達可能なノードを探索する。その隣接ノードが見つかると、新たに見つかった隣接ノードに対して隣接ノードの探索を継続する。但し、新たに見つかった隣接ノードが目的地ノードである場合や、隣接ノードが見つからない場合は、上位ノードへの探索（上位ノードがある場合）に戻る。新たに見つかった隣接ノードについて隣接ノードを探索する場合には、新たに見つかった隣接ノードを新たな頂点とし、この新たな頂点についての隣接ノードの探索を継続する。該探索プロセスは、深さ方向に継続して実行されるが、目的地に到達する場合は、探索パスを戻し、その頂点の新たな隣接ノードを探索するか、新たな隣接ノードの見つかりに失敗した場合は、上位ノードの探索サイクルに戻り探索を継続する。
【００２６】
したがって、従来技術における２つのノード間の到達可能なパスを探索するソリューションでは、ネットワーク構造全体を何度も走査する必要がある。また、ネットワーク内のノードの数や辺の数が多い場合に、さらに状況が悪化する。よって、探索効率が低下し、アプリケーションのニーズを満たすことができない。
【００２７】
そこで、本開示の実施形態では、上記問題を少なくとも部分的に緩和するために、２つのノード間の到達可能なパスを決定するための方法、装置、及びシステムが提供される。本開示の実施形態によれば、２つのノード間の到達可能なパスを決定するためのソリューションが提案される。このソリューションによれば、探索プロセスにおいて、既に探索された到達可能なパスを記録し、これに基づいて探索の終了条件を設定することにより、繰り返しの走査を低減することができる。また、元のネットワーク構造をプルーニングして、探索空間を縮小してもよい。このようにして、探索作業の負荷が大幅に低減され、探索効率が顕著に向上し、実際のアプリケーションのニーズを満たすことができる。本開示のソリューションは、道路ネットワーク探索、電力網ノード探索、ソーシャルネットワーク探索、因果関係ネットワーク探索などの様々な分野に広く適用することができる。
【００２８】
以下、図１〜図８を参照して、本開示にかかる２つのノード間の到達可能なパスを決定するための方法、装置、及びシステムを説明する。しかしながら、これらの説明は、例示の目的に過ぎず、本開示は、これらの実施及び図面における詳細に限定されないことを理解されたい。
【００２９】
図１は、本開示の実施形態にかかる２つのノード間の到達可能なパスを決定するための方法のフローチャートを模式的に示す。図１に示すように、まず、ステップ１０１において、複数のノード及び複数のノードを結ぶ辺を含むグラフの隣接行列を確立する。
【００３０】
上述したように、実生活では、多くのアプリケーションシナリオは、ネットワーク構造によって表されることができる。例えば、複雑な道路ネットワークでは、ドットは、交差点を表すために使用され、線は、２つの交差点間の道路部を表すために使用され、これによって、多くのドットと線が交通ネットワーク構造図を形成するために使用されることができる。同様に、ソーシャルネットワークにおける人や社会的関係も、ネットワーク構造図で表されることができる。このようにして、複数のノードと、複数のノードを結ぶ辺とを含むグラフを、特定のアプリケーションに応じて形成することができる。
【００３１】
このようなグラフについて、ノードと辺の接続関係に応じて、グラフの隣接行列を構築してもよい。通常、隣接行列はＮ×Ｎの行列であり、Ｎはグラフのノードの数に等しい。該隣接行列のｉ行目及びｊ列目について、対応する値は、ノードｉからノードｊまでの直接パスがあるかどうかを示すノードｉからノードｊまでの重みを表す。ノードｉからノードｊまでの直接パスがある場合には、重みは０より大きい値であり、ノードｉからノードｊまでの直接パスがない場合には、重みは０である。本開示では、説明の便宜上、ノードｉからノードｊまでの直接パスがある場合には、重みを直接１に設定する。しかし、実際の応用では、他の要因を考慮して、重みを、０でない他の適切な値に設定することもできることを理解されたい。
【００３２】
例示の目的のために、図２Ａ及び図２Ｂは、本開示の実施形態にかかる例示的なネットワーク構造及び対応する隣接行列の概略図を模式的に示す。
【００３３】
図２Ａに示すように、７つのノードを有するネットワークが示され、ここで、ノード１からノード２及びノード３までの直接パスがあり、ノード２からノード５及びノード６までの直接パスがあり、ノード３からノード２及びノード４までの直接パスがあり、ノード５からノード４までの直接パスがあり、ノード６からノード７までの直接パスがあり、ノード７からノード５までの直接パスがある。
【００３４】
それに対応して、上述した方式では、図２Ａのグラフ構造において、ノードｉからノードｊまでの直接パスがある場合に、重みを直接１に設定し、ノードｉからノードｊまでの直接パスがない場合に、重みを直接０に設定する。このようにして、図２Ｂに示す隣接行列を得ることができる。
【００３５】
図２Ｂに示すように、例えば、隣接行列の１行目では、ノード１について、辺がなくノード１自身しかないので、その重みを０に設定し、ノード２及びノード３について、ノード１からノード２及びノード３までの直接パスがあるので、それぞれの重みを１に設定する。ノード４、５、６、７について、図２Ａに示すグラフにノード１からこれらのノードまでの直接パスがないので、それぞれの重みを０に設定する。このように、１行目について、［０１１００００］が得られる。同様に、２行目、３行目、４行目、５行目、６行目、７行目について、それぞれ、［００００１１０］、［０１０１０００］、［０００００００］、［０００１０００］、［００００００１］、［００００１００］が得られる。このようにして、特定のアプリケーションについてグラフの隣接行列を決定することができる。
【００３６】
次に、図１に戻して、ステップ１０２において、隣接行列に基づいて、始点から終了ノードまでの到達可能なパスの探索を行う。特に、探索プロセスでは、探索されたパスに基づいて探索の終了条件が設定され、探索中に終了条件が満たされたことに応答して、対応する探索が終了される。
【００３７】
したがって、目的地を終了条件として探索を終了する従来技術とは異なり、本開示では、探索プロセスの監視を行い、探索プロセスにおいて既に探索された到達可能なパスを記録し、これに基づいて探索の終了条件を設定することで、繰り返しの走査を低減することができる。具体的には、本開示では、従来技術のように目的地を１回の探索の終了条件とすることに加えて、あるノードに関して、このノードから目的地への全てのパスが既に走査されている場合に、このノードを終了条件の１つとする。なお、あるノードに関して、このノードから目的地への全てのパスが既に走査されている場合、次の探索がこのノードに到達すると、探索プロセスと結果が同じになり、即ち、走査を繰り返すことになる。該ノードを終了条件と設定することで、探索が再び該ノードに到達した場合に、該ノード以降の繰り返し探索を省略し、以前の走査結果をそのまま再利用することができる。さらに、探索プロセスの進行に伴って、終了条件が更新され続ける。このようにして、繰り返しの走査処理を減らし、探索効率を向上させ、到達可能なパスの探索に要する時間を短縮することもできる。
【００３８】
これに対応して、探索プロセスにおいて、終了条件を判定する際に、目的地以外のノードを終了条件とする判定を追加してもよい。隣接ノードが探索されるノードが目的地である場合には、対応する探索を終了し、そのノードに対応する以前の探索結果をそのノードについての探索結果とすることができる。一方、隣接ノードが探索されるノードが目的地でない場合には、その後の探索を終了し、そのノードに対応する以前の探索結果をそのノードについての探索結果とすることができる。このようにして、探索作業の負荷を大幅に軽減し、探索効率を顕著に向上させることができる。
【００３９】
また、探索効率をさらに向上させるために、本開示では、図１のステップ１０３に示すように、探索空間を縮小するために、探索を行う前に、まず隣接行列を縮減することが選択的に提案されている。例えば、目的地に到達できないノードは、プルーニング処理によって隣接行列から削除されてもよい。
【００４０】
プルーニングのための方法は様々ある。しかし、本開示の実施形態では、隣接行列によりグラフの到達可能な行列を決定し、到達可能な行列と決定された目的地に応じて隣接行列を縮減してもよい。例えば、より具体的には、隣接行列を行列Ｐで表して、行列Ｐの２次〜Ｎ−１次の隣接行列を算出してもよい。ここで、Ｎはグラフのノードの数である。そして、行列Ｐと２次〜Ｎ−１次の隣接行列とを加算して、グラフの到達可能な行列を決定してもよい。そして、そのうち目的地に到達できないノードを到達可能な行列により決定し、目的地に到達できないノードを隣接行列から削除することにより、隣接行列を縮減し、探索空間を縮小することができる。
【００４１】
説明の目的のために、以下、図３Ａ〜図４を参照してプルーニングプロセスを説明する。しかしながら、これは、例示の目的に過ぎず、他の適切なプルーニングアルゴリズムも本開示に使用され得ることに留意されたい。
【００４２】
図３Ａは、図２Ｂにおける隣接行列に対応する行列であって、図２Ｂの隣接行列を数学的な行列の形で表す行列Ｐを示す。そして、行列Ｐに基づいて、到達可能な行列Ａを算出することができる。到達可能な行列Ａは、例えば、以下の数式で表されてもよい。
Ａ＝Ｐ＋Ｐ２＋Ｐ３＋Ｐ４＋Ｐ５＋Ｐ６（数式１）
ただし、ＰｋはＰのＫ次行列を表し、Ｋ＝１，２，．．．Ｎ−１である。ＰのＫ次行列は、Ｋ個のＰの乗算を表す。図３Ｂは、図３Ａの行列Ｐについて、上述の数式に従って算出された到達可能な行列Ａを示す。
【００４３】
到達可能な行列Ａにおいて、Ａｉｊに対応する値は、ノードｉからノードｊに到達できるかどうかを示す。Ａｉｊ＝０であれば、ノードｉからノードｊに到達できないことを示し、そうでなければ、ノードｉからノードｊに到達できることを示す。図３Ｂに示す到達可能な行列Ａから分かるように、ノード１からノード７までの到達可能なパスを探索する場合、Ａ４７とＡ５７がともに０であり、ノード４とノード５から目的地７に到達できないことを示す。到達可能な行列から得られた情報に基づいて、隣接行列をプルーニングし、隣接行列からノード４とノード５を削除することができる。
【００４４】
図４Ａ及び図４Ｂは、それぞれ、プルーニング前のネットワーク構造及び隣接行列の概略図と、プルーニング後のネットワーク構造及び隣接行列の概略図を模式的に示す。図４Ａは、プルーニング前の、７つのノードを含むネットワーク構造全体と、対応する隣接行列を示す。図３Ｂにおける到達可能な行列に基づいて、ノード４及びノード５からノード７に到達できないと判定されたら、ネットワーク構造及び隣接行列がプルーニングされる。ネットワーク構造について、ノード４とノード５がネットワーク構造から取り出される。これにより、プルーニング後のネットワーク構造にはノード４とノード５が含まないことになる。隣接行列について、図４Ｂに示すように、ノード４及びノード５に対応する４〜５行目及び４〜５列目が隣接行列から削除されるため、プルーニング又は縮小後の隣接行列には、ノード４及びノード５に関する行及び列が含まないことになる。
【００４５】
このようにして、後続の探索プロセスは、縮小された隣接行列に基づいて実行されることができる。したがって、プルーニングを行わない場合と比較して、探索空間が顕著に縮小されるので、探索量がさらに減少されることができる。
【００４６】
当業者が、本開示で提案されたソリューションをより深く理解できるために、以下、図５を参照して、本開示の実施形態にかかる２つのノード間の到達可能なパスを決定するための特定の例示的な実施を説明する。
【００４７】
図５を参照して、まず、頂点と辺とからなるトポロジグラフについて、そのグラフの隣接行列を確立する（ステップ５０１）。具体的には、図２Ａ及び図２Ｂを参照して説明したように、Ｎ×Ｎ（ここで、Ｎはグラフにおけるノードの数に等しい）の行列を確立する。隣接行列のｉ行目及びｊ列目について、ノードｉからノードｊまでの直接パスの有無に応じてそれぞれの重みを設定する。ノードｉからノードｊまでの直接パスがある場合には、重みを０より大きい値、例えば、1に設定し、ノードｉからノードｊまでの直接パスがない場合には、重みを０に設定する。このようにして、図２Ｂに示すようなトポロジグラフの隣接行列を形成することができる。
【００４８】
次に、ステップ５０２において、探索対象を決定し、即ち、どのノードからどのノードまでの到達可能なパスを探索するかを決定する。言い換えれば、探索の開始ノード（即ち、始点）ｓｔａｒｔと終了ノード（即ち、目的地）ｅｎｄを決定する。一方、始点が目的地と異なることを確保する条件をさらに設定してもよい。これは、同一の場合、探索する必要がないからである。
【００４９】
次に、ステップ５０３において、隣接行列に基づいて、到達可能な行列を算出することができる。具体的には、図３Ａ及び図３Ｂに示すように、まず、隣接行列を行列Ｐで表し、その行列ＰのＫ次隣接行列を算出する。ここで、Ｋ＝１，．．．Ｎ−１である。そして、図３Ｂに示すように、行列ＰのＫ次隣接行列に基づいて、上記数式１に従って、到達可能な行列Ａを算出する。
【００５０】
次のステップ５０４において、到達可能な行列に基づいて、隣接行列のプルーニング又は縮小を行うことができる。上述したように、図３Ｂに示す到達可能な行列に基づいて、目的地に到達できないノードを決定する。例えば、目的地がノード７である場合には、到達可能な行列Ａの７列目に基づいて、ノード４とノード５のみから目的地７に到達できないと判定することができる。このような判定に基づいて、ノード４及びノード５に関する行及び列を、対応して隣接行列から削除することができる。
【００５１】
次に、ステップ５０５において、探索の前に、パラメータの初期化設定を行う。ここで、３つのセットが提供され、１つ目のセットは、既に訪問されたノードが格納されている訪問済みノードセットｖｉｓｉｔｅｄであり、２つ目のセットは、探索により見つかったパスが格納されているパスセットｐａｔｈであり、３つ目のセットは、終了条件となるノードが格納されている終了条件セットｔｅｒｍｉｎａｌである。さらに、隣接ノードの探索が行われている頂点を示す頂点変数ｖｅｒｔｅｘがある。初期化設定に際し、セットｖｉｓｉｔｅｄは、これから始点についての探索が行われるので、始点のみを含む｛ｓｔａｒｔ｝ように設定され、ノードｖｅｒｔｅｘも、これからノードｓｔａｒｔに対して隣接ノードが探索されるので、ｓｔａｒｔと設定され、セットｐａｔｈは｛ｓｔａｒｔ｝のみを含むように設定され、セットｔｅｒｍｉｎａｌは、目的地のみを含むように設定される。即ち、目的地のみが終了条件となる。これは、最初の際、探索がまだ開始されておらず、追加の終了条件を追加することができないからである。
【００５２】
次に、ステップ５０６において、ｖｅｒｔｅｘの隣接ノードｖを探索する。最初の探索では、ｖｅｒｔｅｘを始点として設定するため、始点について探索を行う。次に、ステップ５０７において、該ｖｅｒｔｅｘの隣接ノードｖがあるかどうかを判定する。
【００５３】
ステップ５０７において、該ｖｅｒｔｅｘの隣接ノードｖがあると判定した場合、ステップ５０９において、該隣接ノードｖが終了条件セットｔｅｒｍｉｎａｌ内のノードであるか否かの判断をさらに行う。ＮＯの場合は、該隣接ノードｖがセットｖｉｓｉｔｅｄ内にあるかどうかの判断をさらに行い、ＹＥＳの場合は、ステップ５１３においてｖｅｒｔｅｘの次の隣接ノードｖを探索し、その後、処理はステップ５０７に戻り、次のサイクルを継続する。
【００５４】
一方、ステップ５０７において、該ｖｅｒｔｅｘにはいかなる隣接ノードｖもないと判定した場合、ステップ５０８においてｖｅｒｔｅｘをセットｔｅｒｍｉｎａｌに追加し、現在のサイクルの探索を終了し、フローは上位サイクルに戻る。上位サイクルがない場合は、全ての探索を終了する。ステップ５０９において、見つかったｖｅｒｔｅｘの隣接ノードｖが終了条件セット内のノードであると判定した場合、それ以上該隣接ノードｖの隣接ノードの探索は行われず、代わりにステップ５１０において該隣接ノードｖに対応する探索済みパスを出力し、フローはステップ５１３に移行してｖｅｒｔｅｘの次のノードの探索を開始する。ステップ５１１において、見つかった隣接ノードｖが訪問済みノードセットｖｉｓｉｔｅｄに含まれないと判断した場合、ステップ５１２において、見つかった隣接ノードｖを新たな頂点ｖｅｒｔｅｘとして設定し、該隣接ノードｖをセットｖｉｓｉｔｅｄとパスセットｐａｔｈに追加し、その後、新たなｖｅｒｔｅｘの隣接ノードを探索する。
【００５５】
図５に示す特定の実施からわかるように、上記探索プロセスにおいて、探索により頂点の隣接ノードが見つかったら、該隣接ノードについて深さ方向において探索を継続し、該隣接ノードに対する全ての探索が終了するまで、該頂点の他の隣接ノードを探索しない。したがって、このような探索は、深さ優先探索に基づくものである。しかしながら、本発明のソリューションは、幅優先走査など他の方式の探索にも適用することができることを理解されたい。さらに、フローチャートで示された実施は、本開示で提案されたソリューションの一例に過ぎない。実際の実施において、様々な変更が加えられることができる。
【００５６】
本発明のソリューションと従来技術におけるソリューションとの相違を説明するために、図６Ａ及び図６Ｂは、従来技術にかかる深さ走査に基づく探索プロセスの概略図、及び本開示にかかる深さ走査に基づく探索プロセスの概略図をさらに示す。
【００５７】
図６Ａに示すように、従来技術によれば、ノード１からノード７までの到達可能なパスを決定する場合には、まずノード１から探索を行い、探索によりノード１の隣接ノード２が見つかったら、該ノード２の隣接ノードの探索を続け、探索によりノード２の隣接ノード５が見つかったら、ノード５の隣接ノードの探索を続け、そして、探索によりノード５の隣接ノード４が見つかったら、隣接ノード４の隣接ノードの探索を行う。すると、ノード４には隣接ノードがなく、該ノード４が目的地でもないことが判明する。このとき、探索によりパス１、即ち、１→１  ２→１  ２  ５→１  ２  ５  ４が見つかるが、それはノード１からノード７までの到達可能なパスではない。その後、フローは、ノード４の上位ノード、即ち、ノード５に戻り、さらにノード５の他の隣接ノードを探索し、すると、他の隣接ノードが存在しないことが判明するため、引き続きノード５の上位ノード、即ち、ノード２に戻る。そして、ノード２の他の隣接ノードを探索する。このとき、探索により、ノード２には他の隣接ノード６があることが判明した場合に、隣接ノード６を新たな頂点とし、引き続きノード６の隣接ノードを探索する。このとき、探索によりノード６の隣接ノード７が見つかる。このノード７は目的地である。したがって、このとき、見つかったパス２は１→１  ２→１  ２  ６→１  ２  ６  ７となり、ノード１からノード７までの到達可能なパスとなる。同様に、ノード７の上位ノード、即ちノード６に戻り、引き続きノード６の隣接ノードを探索する。いかなる隣接ノードが存在しないことが判明した場合には、上位ノード、即ちノード２に戻り、引き続きノード２の他の隣接ノードを探索する。ノード２の隣接ノードを探索することで、ノード５とノード６以外の他の隣接ノードが存在しないことが判明する。このとき、引き続き上位ノード、即ちノード１に戻り、ノード１についてノード２以外の他の隣接ノードを探索する。
【００５８】
ノード１の隣接ノードのさらなる探索により、ノード１には別の隣接ノード３もあることが判明する。ノード２と同様に、ノード３の隣接ノードの探索を行う。このとき、パス３、即ち１→１  ３→１  ３  ２→１  ３  ２  ５→１  ３  ２  ５  ４、パス４、即ち１→１  ３→１  ３  ２→１  ３  ２  ６→１  ３  ２  ６  ７、及びパス５、即ち１→１  ３→１  ３  ４の３つのパスを走査する。３つのパスのうち、パス４（即ち、１  ３  ２  ６  ７）のみが、ノード１からノード７までの到達可能なパスである。
【００５９】
図６Ａの探索プロセスから分かるように、従来技術の場合、パス１とパス３では２  ５  ４に対する繰り返し走査が存在し、パス２とパス４では２  ６  ７に対する走査が存在する。また、パス１、パス３、パス５は、いずれも到達可能なパスが見つからない無効な走査である。そのため、探索に時間がかかり、探索効率が低下する。
【００６０】
図６Ｂは、本開示にかかる深さ走査に基づく探索プロセスの概略図である。図６Ｂにおいて、トポロジグラフは、本開示の提案に従って到達可能な行列を用いてプルーニングされているので、減縮された到達可能な行列にはノード１、２、３、６、及び７のみが残されている。この場合、ノード１からノード７までの到達可能なパスを決定する場合では、まず、ノード１から探索を行い、ノード１の隣接ノード２が見つかったら、引き続き該ノード２の隣接ノードを探索し、ノード２の隣接ノード６が見つかったら、引き続きノード６の隣接ノードを探索し、そして、探索によりノード６の隣接ノード７が見つかった。該ノード７は目的地なので、探索を終了する。パス１、即ち、１→１  ２→１  ２  ６→１  ２  ６  ７が得られ、パス１はノード１からノード７までの到達可能なパスとなる。次に、ノード７から順に上位ノードに戻り、ノード６、２の他の隣接ノードを探索し、その結果他の隣接ノードがないことが判明した。ノード６とノード２の探索が完了した後、ノード６とノード２をともに終了条件セットに入れてもよい。最後に、ノード２にはいかなる他の隣接ノードがないことが判明した後、探索は、ノード２から上位ノード、即ちノード１に戻る。そして、ノード１の次の隣接ノードを探索すると、ノード３が見つかり、その後、引き続きノード３の次の隣接ノードを探索すると、ノード２が見つかった。すると、ノード２が既に終了条件セットに入っていることが分かる。そのため、探索を終了し、ノード２の探索結果として、以前走査した到達可能なパス「２  ６  ７」を返信し、最終的には、到達可能なパス、即ち、１→１  ３→１  ３  ２→１  ３  ２  ６  ７が得られる。探索は、引き続き、上位に戻り、ノード３の他の隣接ノードｖを探索し、その結果、いかなる他の隣接ノードが存在しないことが判明した。このとき、ノード３を終了条件セットに追加し、探索はさらにノード１のレベルに戻り、ノード１の他のノードを探索することができる。この場合、いかなる他の隣接ノードが存在しないことが判明した。したがって、ノード１からノード７までの到達可能なパスの探索は終了する。
【００６１】
図６Ａ及び図６Ｂに示す探索プロセスから分かるように、本開示にかかる２つのノード間の到達可能なパスを決定するソリューションでは、ネットワーク及び隣接行列が予めプルーニングされているため、図６Ｂの探索プロセスでは、無効なパスの探索がない。同時に、探索プロセスに基づいて追加の終了条件が設定されているため、第２のパス１  ３  ２  ６  ７の探索がノード２に到達すると検索を終了し、以前の探索のパス２  ６  ７をそのまま再利用する。したがって、従来技術の探索プロセスと比較して、このような簡単なネットワークであっても、繰り返し走査を低減し、２つのノード間の到達可能なパスの探索に要する時間を顕著に短縮し、到達可能なパスの探索効率を顕著に向上させることができる。したがって、他のより複雑なアプリケーションでは、繰り返し走査の低減、探索時間の短縮、探索効率の向上の効果がさらに著しくなる。
【００６２】
図７は、本開示の実施形態にかかる２つのノード間の到達可能なパスを決定するための装置７００のブロック図を模式的に示す。図７に示すように、装置７００は、隣接行列確立モジュール７０１、パス探索モジュール７０２、条件設定モジュール７０３、及び探索終了モジュール７０４を備えてもよい。隣接行列確立モジュール７０１は、複数の点と、複数の点を結ぶ辺とを含むグラフの隣接行列を確立するように構成されてもよい。パス探索モジュール７０２は、隣接行列に基づいて、始点から目的地に到達可能である到達可能なパスを探索するように構成されてもよい。条件設定モジュール７０３は、探索中に、既に探索されたパスに基づいて、探索の終了条件を設定するように構成されてもよい。探索終了モジュール７０４は、探索中に終了条件が満たされたことに応答して、対応する探索を終了するように構成されてもよい。
【００６３】
本開示にかかる実施形態では、例示的な装置７００は、探索の前に隣接行列を縮減して探索空間を縮小するように構成される行列縮減モジュール７０５をさらに備えてもよい。この場合、探索プロセスは、縮減された隣接行列に基づいて行われる。
【００６４】
本開示にかかる別の実施形態では、行列縮減モジュール７０５は、隣接行列によりグラフの到達可能な行列を決定し、到達可能な行列及び目的地に応じて隣接行列を縮減するように、さらに構成されてもよい。
【００６５】
本開示にかかる別の実施形態では、行列縮減モジュール７０５は、隣接行列によりグラフの２次からＮ−１（ここで、Ｎはグラフのノードの数である）次の隣接行列を決定し、隣接行列と２次からＮ−１次の隣接行列とを加算してグラフの到達可能な行列を決定するように、さらに構成されてもよい。
【００６６】
本開示にかかるさらに別の実施形態では、行列縮減モジュール７０５は、目的地に到達できない到達可能な行列内のノードを決定し、目的地に到達できないノードを隣接行列から削除して、縮減された隣接行列を生成するように、さらに構成されてもよい。
【００６７】
本開示にかかる別の実施形態では、条件設定モジュール７０３は、探索プロセスを監視し、探索プロセスにおいてあるノードから目的地までのすべてのパスがすでに走査された場合に、ノードを探索の終了条件の１つとして設定するように、さらに構成されてもよい。
【００６８】
本開示にかかる実施形態では、探索終了モジュール７０４は、隣接ノードの探索が実行されるノードが目的地ではない場合に、対応する探索を終了し、該ノードに対応する以前の探索結果を該ノードの探索結果とするように、構成されてもよい。
【００６９】
本開示にかかる別の実施形態では、探索終了モジュール７０４は、隣接ノードの探索が実行されるノードが目的地である場合に、対応する探索を終了し、探索により既に見つかった始点から目的地までの到達可能なパスを出力し、上位ノードの探索に戻るように、構成されてもよい。
【００７０】
本開示にかかる別の実施形態では、パス探索モジュール７０２は、深さ優先走査に基づいて探索するようにさらに構成される。
【００７１】
なお、図７を参照して上記で説明した装置７００の各モジュールは、図１〜図６を参照して説明した方法に対応する動作を実行するように構成されてもよいことに留意されたい。したがって、ここで、装置７００の各モジュールの具体的な動作についての詳細な説明を繰り返しない。これらのモジュールの特定の動作の詳細については、図１〜図６を参照しながらなされた、対応する方法の各ステップに対する記述を参照することができる。
【００７２】
図８は、本開示の一実施形態にかかる２つのノード間の到達可能なパスを決定するためのシステムの概略図を模式的に示す。以下、図８を参照して、２つのノード間の到達可能なパスを決定するためのシステムを説明する。
【００７３】
図８に示すコンピュータシステムは、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）８０１、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）８０２、ＲＯＭ（Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）８０３、システムバス８０４、ハードディスクコントローラ８０５、キーボードコントローラ８０６、シリアルインターフェースコントローラ８０７、パラレルインターフェースコントローラ８０８、ディスプレイコントローラ８０９、ハードディスク８１０、キーボード８１１、シリアル周辺機器８１２、パラレル周辺機器８１３、及びディスプレイ８１４を備える。これらのコンポーネントのうち、システムバス８０４には、ＣＰＵ８０１、ＲＡＭ８０２、ＲＯＭ８０３、ハードディスクコントローラ８０５、キーボードコントローラ８０６、シリアルインターフェースコントローラ８０７、パラレルインターフェースコントローラ８０８、及びディスプレイコントローラ８０９が接続されている。ハードディスク８１０はハードディスクコントローラ８０５に接続され、キーボード８１１はキーボードコントローラ８０６に接続され、シリアル周辺機器８１２はシリアルインターフェースコントローラ８０７に接続され、パラレル周辺機器８１３はパラレルインターフェースコントローラ８０８に接続され、ディスプレイ８１４はディスプレイコントローラ８０９に接続されている。
【００７４】
メモリには、コンピュータによって実行されると、ＣＰＵに、本開示の実施形態、例えば、図１から図６を参照して上記で説明された実施形態で提案された方法のステップを実行させる１つ又は複数のコードが記憶されることができる。
【００７５】
図８の構造ブロック図は、例示の目的で示されるに過ぎず、本発明を何ら限定するものではないことを理解されたい。いくつかのケースでは、必要に応じて、いくつかのデバイスを追加又は削減することができる。
【００７６】
本開示で提供されるソリューションは、製薬、製造、市場分析、渋滞予測、天気予測、空気品質予測など様々な用途に適用して、有利な効果を得ることができることを理解されたい。
【００７７】
さらに、本発明の実施形態は、ソフトウェア、ハードウェア、又はソフトウェアとハードウェアの組み合わせによって実現されることができる。ハードウェア部分は、専用ロジックによって実施され、ソフトウェア部分は、メモリに格納され、マイクロプロセッサ又は専用ハードウェアなど適切な命令実行システムによって実行され得る。
【００７８】
上記方法及び装置は、コンピュータ実行可能な命令を用いて実現され得ること、及び／又はプロセッサ制御コード、例えば、ディスク、ＣＤ又はＤＶＤ−ＲＯＭのキャリア媒体、ＲＯＭ（ファームウェア）のプログラマブルメモリ、光又は電子信号のデータキャリア上に提供されるコードで実行され得ることは、当業者であれば理解できる。
【００７９】
本発明の装置及びその実装のコンポーネントは、例えば、超大規模集積回路又はゲートアレイ、半導体（ロジックチップ、トランジスタなど）、又はプログラマブルハードウェアデバイス（フィールドプログラマブルゲートアレイ、プログラマブルロジックデバイスなど）のハードウェア回路によって実装されることができ、また、プロセッサによって実行される様々なソフトウェア、又はファームウェアなどの上記ハードウェア回路とソフトウェアとの組み合わせによって実装されることができる。
【００８０】
本発明は、現在考えられている実施形態を参照して説明してきたが、本明細書に開示されている実施形態に限定されないことを理解されたい。その代わりに、本発明は、添付の特許請求の範囲の精神及び範囲内に含まれる様々な変更及び同等の配置を含むことを意図している。添付の特許請求の範囲は、そのようなすべての変更及び同等の構造・機能を含むように、最も広い解釈に従う。
【図１】
2021519461.tif 000003
【図２Ａ】
2021519461.tif 000004
【図２Ｂ】
2021519461.tif 000005
【図３Ａ】
2021519461.tif 000006
【図３Ｂ】
2021519461.tif 000007
【図４Ａ】
2021519461.tif 000008
【図４Ｂ】
2021519461.tif 000009
【図５】
2021519461.tif 000010
【図６Ａ】
2021519461.tif 000011
【図６Ｂ】
2021519461.tif 000012
【図７】
2021519461.tif 000013
【図８】
2021519461.tif 000014
【国際調査報告】
2021519461.tif 000015
2021519461.tif 000016
2021519461.tif 000017
2021519461.tif 000018