JPH0914987A - Method for searching route - Google Patents
Method for searching routeInfo
- Publication number
- JPH0914987A JPH0914987A JP18662295A JP18662295A JPH0914987A JP H0914987 A JPH0914987 A JP H0914987A JP 18662295 A JP18662295 A JP 18662295A JP 18662295 A JP18662295 A JP 18662295A JP H0914987 A JPH0914987 A JP H0914987A
- Authority
- JP
- Japan
- Prior art keywords
- node
- processing
- cost
- order list
- nodes
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Landscapes
- Navigation (AREA)
- Traffic Control Systems (AREA)
- Instructional Devices (AREA)
Abstract
Description
【0001】[0001]
【産業上の利用分野】本発明は例えばナビゲーションシ
ステムなどにおける処理として好適な経路探索方法に関
するものである。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a route search method suitable as a process in a navigation system or the like.
【0002】[0002]
【従来の技術】ナビゲーションシステムでは、或る地点
(スタートノード)から或る地点(ゴールノード)まで
の経路が複数存在する場合は、その中で最良の経路を探
索し、ユーザーに提示する動作が行なわれる。最良の経
路とは、例えば道路事情や距離、ユーザーの希望(例え
ば高速道路を使用するなど)等の条件から、最短時間も
しくは最小距離でゴールノードに到達できる経路(以
下、最短経路という)である。2. Description of the Related Art In a navigation system, when there are multiple routes from a certain point (start node) to a certain point (goal node), the best route among them is searched and presented to the user. Done. The best route is a route that can reach the goal node in the shortest time or in the shortest distance (hereinafter referred to as the shortest route) based on conditions such as road conditions, distance, and user's wishes (for example, when using a highway). .
【0003】このような最短経路を探索するための基本
となる考え方を図14で説明する。今、図14のように
ノード(地点)としてノードNd1〜Nd4が存在する
とし、ノードNd1がスタートノード、ノードNd4が
ゴールノードと設定されたとする。つまりノードNd1
からノードNd4に達する経路のうちで最短経路を探索
する処理を行なう。この場合、経路としてはノードNd
1→Nd2→Nd4と、ノードNd1→Nd3→Nd4
の2通りが考えられる。A basic idea for searching such a shortest route will be described with reference to FIG. Now, suppose that the nodes Nd1 to Nd4 exist as nodes (points) as shown in FIG. 14, and the node Nd1 is set as the start node and the node Nd4 is set as the goal node. That is, the node Nd1
To search the shortest route among the routes reaching from the node Nd4 to the node Nd4. In this case, the route is the node Nd.
1 → Nd2 → Nd4 and nodes Nd1 → Nd3 → Nd4
There are two possibilities.
【0004】処理としてはまずノードNd1から隣接す
るノードNd2、ノードNd3にそれぞれ道路を延ば
す。ノードNd2、ノードNd3はそれぞれ他の道路と
の交点とはなっていないため、次にノードNd2、ノー
ドNd3のそれぞれからノードNd4に道路を延ばす。
この状態でノードNd4は2つの経路の交点となる。そ
こで、ノードNd1→Nd2→Nd4と、ノードNd1
→Nd3→Nd4のそれぞれの距離を比較し、短い方を
ノードNd1からノードNd4までの経路として設定す
る。As a process, first, a road is extended from the node Nd1 to the adjacent nodes Nd2 and Nd3. Since the node Nd2 and the node Nd3 are not intersections with other roads, the road is extended from the node Nd2 and the node Nd3 to the node Nd4.
In this state, the node Nd4 becomes the intersection of the two routes. Therefore, node Nd1 → Nd2 → Nd4 and node Nd1
The respective distances of → Nd3 → Nd4 are compared, and the shorter one is set as the route from the node Nd1 to the node Nd4.
【0005】この図14は最も単純な例であるが、この
ように経路上で交点が得られた時点で距離の短い方を選
択していくという処理を行なっていくことで、採点経路
が探索できることになる。Although FIG. 14 is the simplest example, the scoring route is searched for by performing the process of selecting the shorter distance when the intersection is obtained on the route. You can do it.
【0006】ここで、このような経路探索を行なう場合
には、その処理時間は短いほど良いものであることはい
うまでもない。このため従来の探索方法としては、次に
どのノードの計算を行なうかということを配列を使用し
て把握するようにし、処理中においてなるべくデータ書
き換えが少なくなるように工夫している。ノードの計算
の優先順位は、進行負担値(以下、コストいう)という
概念を用いて設定する。このコストとは、或るノードと
ノードの間での進行について設定される値であり、例え
ば距離、道路事情、高速道路か否かなどの条件で設定さ
れる。つまりコストが小さい経路ほど好適な経路(距離
が短い経路又は短時間で進行できる経路)とされるもの
である。Needless to say, the shorter the processing time is, the better the route search is performed. For this reason, as a conventional search method, an array is used to keep track of which node is to be calculated next, so that data rewriting is reduced as much as possible during processing. The node calculation priority is set using the concept of a progress burden value (hereinafter referred to as cost). This cost is a value that is set for the progress between certain nodes, and is set under conditions such as distance, road conditions, and whether or not the road is a highway. That is, a route with a lower cost is a more suitable route (a route with a shorter distance or a route that can proceed in a shorter time).
【0007】以下、図15のモデルを用いて従来の経路
探索方法による経路探索処理を説明する。図15の場
合、ノードとしてノードNd1〜Nd6が存在してい
る。そして各ノード間のコストは図中( )で示される
値であるとする。例えばノードNd1とノードNd2の
間のコストは『13』とされている。The route search processing by the conventional route search method will be described below with reference to the model of FIG. In the case of FIG. 15, nodes Nd1 to Nd6 exist as nodes. The cost between each node is assumed to be the value indicated by () in the figure. For example, the cost between the node Nd1 and the node Nd2 is “13”.
【0008】経路探索に用いる配列としては、隣接ノー
ドテーブル、パステーブル、コストテーブル、オーダー
リストがある。隣接ノードテーブルとは各ノードについ
て隣接するノードが全て記述されたテーブルであり、つ
まり道路に対してデータ固定のテーブルである。例えば
図15のような道路を考えた場合、隣接ノードテーブル
は図16のように作成されていることになる。即ちノー
ドNd1に隣接するノードの情報として、ノードNd1
とノードNd2が対応され、またノードNd1とノード
Nd5が対応されている。同様にノードNd2に隣接す
るノードの情報として、ノードNd2とノードNd1、
ノードNd2とノードNd3、ノードNd2とノードN
d4が、それぞれ対応されたデータとなっている。他の
ノード(Nd3〜Nd6)についても図示するように同
様に隣接するノードが対応されている。Arrays used for route search include an adjacent node table, a path table, a cost table, and an order list. The adjacent node table is a table in which all adjacent nodes are described for each node, that is, a table whose data is fixed to the road. For example, when the road shown in FIG. 15 is considered, the adjacent node table is created as shown in FIG. That is, as information on the node adjacent to the node Nd1, the node Nd1
And node Nd2 correspond, and node Nd1 and node Nd5 correspond. Similarly, as information on the nodes adjacent to the node Nd2, the node Nd2 and the node Nd1,
Node Nd2 and node Nd3, node Nd2 and node N
d4 is the corresponding data. The other nodes (Nd3 to Nd6) are also associated with adjacent nodes as shown in the figure.
【0009】パステーブル、コストテーブル、オーダー
リストは、それぞれ経路探索処理上において設定されて
いく配列である。パステーブルは或るノードについてそ
のノードに至る1つ前のノードを示すデータであり、例
えばノードNd2からノードNd1へのルートの処理が
行なわれた場合、パステーブルpTB[Nd1]=Nd
2とされる。これによってノードNd1に達したとき
に、その起点となるノードはノードNd2であることが
示される。The path table, cost table, and order list are arrays that are set in the route search process. The path table is data indicating a node immediately before that node for a certain node. For example, when a route from the node Nd2 to the node Nd1 is processed, the path table pTB [Nd1] = Nd.
It is set to 2. This indicates that when the node Nd1 is reached, the starting node is the node Nd2.
【0010】コストテーブルは或るノードについて、ス
タートノードからのコストの累計が示されるデータとな
る。例えばノードNd1がスタートノードの場合にノー
ドNd1からノードNd2へのルートの処理が行なわれ
たとき、コストテーブルcTB[Nd2]=13とされ
る。オーダーリストとは、処理すべきノードの優先順序
を示すデータである。優先順序は各ノードでの累計コス
トを基準に設定される。例えばオーダーリストodL
[Nd3]=Nd4とされている場合、ノードNd3の
次に処理すべきノードがノードNd4として示されてい
ることになる。The cost table is data showing the total cost from the start node for a certain node. For example, when the process of the route from the node Nd1 to the node Nd2 is performed when the node Nd1 is the start node, the cost table cTB [Nd2] = 13 is set. The order list is data indicating the priority order of the nodes to be processed. The priority order is set based on the cumulative cost at each node. For example, order list odL
When [Nd3] = Nd4 is set, the node to be processed next to the node Nd3 is indicated as the node Nd4.
【0011】従来方法による経路探索処理は図17、図
18のフローチャートに示される。この処理によって実
行される経路探索処理を図15においてスタートノード
をノードNd2、ゴールノードをノードNd4として実
行した場合の例を、図19〜図32を参照しながら説明
する。なお、図19〜図32では各時点での配列や変数
の状態を示しているが、それぞれ図17、図18におけ
る対応するステップを右側に記している。The route search processing by the conventional method is shown in the flow charts of FIGS. An example of the route search process executed by this process when the start node is the node Nd2 and the goal node is the node Nd4 in FIG. 15 will be described with reference to FIGS. 19 to 32. 19 to 32 show the states of arrays and variables at each time point, the corresponding steps in FIGS. 17 and 18 are shown on the right side.
【0012】図17の経路探索処理が開始されると、初
期設定としてまずスタートノードを引数とする(F101)。
つまりユーザーがスタートノードをノードNd2、ゴー
ルノードをノードNd4と設定したことに応じて、ノー
ドNd2をスタートノードの値として処理に取り込む。
次に各配列、即ちパステーブルpTB、コストテーブル
cTB、オーダーリストodLをクリアする。また処理
上で変数として用いるコスト最小ノードCsMもクリア
する(F102)。このコスト最小ノードCsMとは、次に処
理すべきノード間の起点側のノードを示す値となる。When the route search process of FIG. 17 is started, the start node is first used as an argument for initialization (F101).
That is, when the user sets the start node as the node Nd2 and the goal node as the node Nd4, the node Nd2 is taken into the process as the value of the start node.
Next, each array, that is, the path table pTB, the cost table cTB, and the order list odL are cleared. Also, the minimum cost node CsM used as a variable in the processing is cleared (F102). This minimum cost node CsM is a value indicating the node on the starting point side between the nodes to be processed next.
【0013】そして現ノードcurNdとしてスタート
ノード、即ちノードNd2を代入する(F103)。現ノード
curNdとは処理対象となるノード間の起点側のノー
ドを示す変数となる。次に、処理対象となるノード間の
終点側のノードとして対象ノードnbNdを隣接ノード
テーブルを参照して設定する(F104)。ノードNd2の隣
接ノードとしては、図16の隣接ノードテーブルに先ず
ノードNd1が記録されているため、対象ノードnbN
dをノードNd1とする。Then, the start node, that is, the node Nd2 is substituted as the current node curNd (F103). The current node curNd is a variable indicating the node on the starting point side between the nodes to be processed. Next, the target node nbNd is set as a node on the end point side between the nodes to be processed by referring to the adjacent node table (F104). As the adjacent node of the node Nd2, since the node Nd1 is first recorded in the adjacent node table of FIG. 16, the target node nbN
Let d be a node Nd1.
【0014】この時点で、最初に処理を行なうノード間
(Nd2→Nd1)が設定されたことになる。この最初
のノード間の処理を処理1として、図19を参照して説
明する。この図19には、ここまでの処理により現ノー
ドcurNd=ノードNd2、対象ノードnbNd=ノ
ードNd1とされ、従って処理1としてノード間(Nd
2→Nd1)の処理が実行されることを示している。な
お、以降説明する処理2〜処理14も図20〜図32に
同様の形式で示すこととしている。At this point, the inter-nodes (Nd2 → Nd1) to be processed first are set. The process between the first nodes will be described as process 1 with reference to FIG. In FIG. 19, the current node curNd = node Nd2 and the target node nbNd = node Nd1 are set by the processing up to this point.
2 → Nd1) is executed. Note that Processes 2 to 14 described below are also shown in the same format in FIGS. 20 to 32.
【0015】ステップF104までで処理1としてのノード
間が設定されると、まず、ステップF105で逆ノード間が
処理済かを判別する。逆ノード間とは、この場合ノード
間(Nd1→Nd2)となる。つまり同一の経路を逆方
向に向かうノード間のことである。処理1では当然なが
らステップF105で否定結果が出るため、ステップF106に
進み、現ノードcurNd(=ノードNd2)から対象
ノードnbNd(=ノードNd1)までのコストを算出
する。図15からわかるようにこの場合コスト=13で
ある。When the inter-nodes as the process 1 are set up to step F104, it is first determined in step F105 whether the inter-nodes have been processed. In this case, between the opposite nodes is between the nodes (Nd1 → Nd2). In other words, it is between the nodes going in the same route in the opposite direction. In the process 1, of course, since a negative result is obtained in step F105, the process proceeds to step F106, and the cost from the current node curNd (= node Nd2) to the target node nbNd (= node Nd1) is calculated. As can be seen from FIG. 15, cost = 13 in this case.
【0016】そしてステップF107でスタートノードから
対象ノードnbNdまでの累計コストの値を算出し、累
計コストcurCTとして保持する。また、ステップF1
08で、交点ノードとしてのこれまでの累計コストを変数
itに代入する。交点ノードとは対象ノードnbNdと
ぶつかる他の経路のことであり、具体例は後述するが、
そのような経路が存在する場合は、そのときまでの対象
ノードのコストがコストテーブルcTB[nbNd]と
して記憶されている。従って、ステップF108では、コス
トテーブルcTB[nbNd]の値を変数itに代入す
る処理となる。Then, in step F107, the value of the total cost from the start node to the target node nbNd is calculated and held as the total cost curCT. Also, step F1
At 08, the cumulative cost so far as the intersection node is substituted into the variable it. The intersection node is another route that collides with the target node nbNd, and a specific example will be described later.
When such a route exists, the cost of the target node up to that time is stored in the cost table cTB [nbNd]. Therefore, in step F108, the value of the cost table cTB [nbNd] is substituted into the variable it.
【0017】処理1の時点では、図19に示すように累
計コストcurCt=13となり、また交点ノードにつ
いては以前に処理されておらず、従ってコストテーブル
cTB[nbNd]としての値は存在しないため、変数
it=空(説明上、空とは有効データ無しの状態をいう
こととする)となる。At the time of processing 1, as shown in FIG. 19, the cumulative cost curCt = 13, and the intersection node has not been processed before. Therefore, there is no value as the cost table cTB [nbNd]. The variable it = empty (for the sake of explanation, empty means a state without valid data).
【0018】ステップF109では、変数it=空である
か、もしくは変数itの値が累計コストcurCTの値
より大きいかのいづれかの条件が満たされているか否か
を判断する。処理1の時点では変数it=空であるの
で、ステップF110に進み、コストテーブルcTB及びパ
ステーブルpTBの設定を行なう。この処理は対象ノー
ドについてのコストテーブルcTBの値として累計コス
トcurCTを代入する。つまりコストテーブルcTB
[nbNd]=curCTとする。In step F109, it is determined whether or not the condition that the variable it = empty or the value of the variable it is larger than the value of the cumulative cost curCT is satisfied. At the time of processing 1, since the variable it = empty, the process proceeds to step F110, and the cost table cTB and the path table pTB are set. This process substitutes the cumulative cost curCT as the value of the cost table cTB for the target node. That is, the cost table cTB
Let [nbNd] = curCT.
【0019】また対象ノードについてのパステーブルp
TBの値として現ノードcurNdを代入する。つまり
パステーブルpTB[nbNd]=curNdとする。
この処理1の時点では図19に示すように、コストテー
ブルcTB[Nd1]=13、パステーブルpTB[N
d1]=Nd2というデータが設定されることになる。The path table p for the target node
The current node curNd is substituted as the value of TB. That is, the path table pTB [nbNd] = curNd.
At the time of this processing 1, as shown in FIG. 19, the cost table cTB [Nd1] = 13 and the path table pTB [N
The data of d1] = Nd2 is set.
【0020】次にステップF111で、変数itが累計コス
トcurCTより大きいか否かを判別する。ここで肯定
結果が出る場合とは、オーダーリストodLを書き換え
る必要の可能性がある場合であり、ステップF112に進
む。この場合の処理は後述する。処理1の時点ではステ
ップF111で否定結果が出るため、ステップF115に進み、
コスト最小ノードCsMという変数が空であるか否かを
判断する。そして処理1の時点ではコスト最小ノードC
sM=空であるため、ステップF116で対象ノードnbN
dをコスト最小ノードCsMに代入する。従って図19
のようにコスト最小ノードCsM=ノードNd1とな
る。Next, in step F111, it is determined whether or not the variable it is larger than the cumulative cost curCT. The case where a positive result is obtained here is a case where it is necessary to rewrite the order list odL, and the process proceeds to step F112. The processing in this case will be described later. At the time of processing 1, since a negative result is obtained in step F111, the process proceeds to step F115,
It is determined whether or not the variable called the minimum cost node CsM is empty. Then, at the time of processing 1, the node with the lowest cost C
sM = empty, so in step F116 the target node nbN
Substitute d into the minimum cost node CsM. Therefore, FIG.
Thus, the minimum cost node CsM = node Nd1.
【0021】ステップF118では、現ノードcurNdに
ついて全ての隣接ノードをそれぞれ対象ノードnbNd
として設定し、処理を実行したか否かの判断を行なう。
処理1の時点では現ノードcurNdがノードNd2で
あり、ノードNd2に隣接するノードNd1との間の処
理を終えたのみである。つまり、ノードNd2と隣接す
るノードNd3、ノードNd4については処理は終って
いない。従ってステップF118で否定結果が出、ステップ
F104に戻って次に処理を行なうノード間の設定を行な
う。この場合、現ノードcurNdは変更せずノードN
d2のままで、対象ノードnbNdを、図16の隣接ノ
ードテーブルを参照して、次の隣接ノードに設定する。
つまりNd2に隣接するノードとしては隣接ノードテー
ブル上で、ノードNd1の次にノードNd3が記録され
ているため、対象ノードnbNdをノードNd3とする
ことになる。At step F118, all the adjacent nodes of the current node curNd are set to the target node nbNd.
Then, it is determined whether or not the process is executed.
At the time of processing 1, the current node curNd is the node Nd2, and the processing with the node Nd1 adjacent to the node Nd2 is only completed. That is, the processing is not completed for the node Nd3 and the node Nd4 adjacent to the node Nd2. Therefore, a negative result is obtained in step F118, and
The process returns to F104 to set the node to be processed next. In this case, the current node curNd remains unchanged and the node N
The target node nbNd is set as the next adjacent node with reference to the adjacent node table in FIG.
That is, since the node Nd3 is recorded next to the node Nd1 on the adjacent node table as the node adjacent to Nd2, the target node nbNd is set as the node Nd3.
【0022】これにより、処理2としてのノード間(N
d2→Nd3)が設定されたことになる。つまりこの処
理2は、図20に示すように現ノードcurNd=ノー
ドNd2、対象ノードnbNd=ノードNd3とされて
いる間の処理となる。As a result, the node 2 (N
This means that d2 → Nd3) has been set. That is, this processing 2 is processing while the current node curNd = node Nd2 and the target node nbNd = node Nd3 as shown in FIG.
【0023】この処理2では、ステップF105→F106と進
み、ノード間(Nd2→Nd3)のコストが算出され、
ステップF107で対象ノードnbNd(ノードNd3)ま
での累計コストcurCTが算出される。またステップ
F108で変数itが設定される。この場合、図20に示す
ように累計コストcurCt=10となり、また交点ノ
ードについては以前に処理されておらず、従ってコスト
テーブルcTB[nbNd]としての値は存在しないた
め、変数it=空となる。In this process 2, the process proceeds from step F105 to F106, the cost between nodes (Nd2 → Nd3) is calculated,
In step F107, the cumulative cost curCT up to the target node nbNd (node Nd3) is calculated. Also step
The variable it is set in F108. In this case, the cumulative cost curCt = 10 as shown in FIG. 20, and since the intersection node has not been processed before, and therefore there is no value as the cost table cTB [nbNd], the variable it = empty. .
【0024】そして変数it=空であるためステップF1
09からF110に進み、コストテーブルcTB及びパステー
ブルpTBの設定を行なう。そして図20に示すよう
に、コストテーブルcTB[Nd3]=10、パステー
ブルpTB[Nd3]=Nd2というデータが追加設定
されることになる。Since the variable it = empty, step F1
The process advances from 09 to F110 to set the cost table cTB and the path table pTB. Then, as shown in FIG. 20, data of the cost table cTB [Nd3] = 10 and the path table pTB [Nd3] = Nd2 is additionally set.
【0025】次にステップF111では、この時点では変数
itが空であり否定結果が出るため、ステップF115に進
む。そしてこの時点ではコスト最小ノードCsM=Nd
1とされており、空ではないためステップF117に進む。
ステップF117では、コスト最小ノードCsMの設定及び
対象ノードnbNdのオーダーリストへの組み込み処理
が行なわれる。このステップF117の処理は図18に詳し
く示される。Next, at step F111, since the variable it is empty at this point and a negative result is obtained, the routine proceeds to step F115. At this point, the minimum cost node CsM = Nd
Since it is set to 1 and it is not empty, the process proceeds to step F117.
In step F117, the minimum cost node CsM is set and the target node nbNd is incorporated into the order list. The processing of step F117 is shown in detail in FIG.
【0026】まずステップF201としてインデックスレジ
スタixと、インデックスレジスタprevIxを設定
する。インデックスレジスタixとは、対象ノードnb
Nd(この場合ノードNd3)のオーダーリストへの組
み込み位置のためのインデックスとなる値であり、また
インデックスレジスタprevIxとは、その時点のオ
ーダーリスト上でインデックスレジスタixによって示
されるノードの1つ前とされているノードとなる。First, in step F201, the index register ix and the index register prevIx are set. The index register ix is the target node nb
Nd (in this case, node Nd3) is a value that serves as an index for the position to be incorporated in the order list, and the index register prevIx is the node immediately before the node indicated by the index register ix on the order list at that time. It is a node that has been.
【0027】オーダーリストodLとは、前述したよう
に処理すべきノードの優先順序を示すデータであり、そ
の優先順序は各ノードでの累計コストの低いものほど優
先順序が高いとして設定されるものである。従って、イ
ンデックスレジスタix,prevIxの算出は、その
時点で存在する累計コスト、即ち各コストテーブルcT
Bのデータと、コストテーブルcTB上で示される対象
ノードnbNdでの累計コストの値を逐一比較していく
ことで行なわれる。The order list odL is data indicating the priority order of the nodes to be processed as described above, and the priority order is set such that the lower the cumulative cost at each node, the higher the priority order. is there. Therefore, the index registers ix and prevIx are calculated by calculating the total cost existing at that time, that is, each cost table cT.
It is performed by comparing the data of B and the value of the cumulative cost at the target node nbNd shown on the cost table cTB one by one.
【0028】処理2の時点では対象ノードnbNdとな
るノードNd3以外で累計コストが算出されているノー
ドは、処理1において設定したノードNd1についての
みである。この場合、図20のようにインデックスレジ
スタix=ノードNd1、インデックスレジスタpre
vIx=空となる。そしてステップF202ではまずオーダ
ーリスト上でインデックスレジスタixで示されるデー
タ(オーダーリストodL[ix])が空であるか否か
を確認する。この時点ではオーダーリストodLとして
の有効データは存在しないため、ステップF203に進み、
対象ノードnbNdと、インデックスレジスタixで示
されるノードについてコストを比較する。つまりコスト
テーブルcTB[nbNd]の値と、コストテーブルc
TB[ix]の値を比較する。At the time of processing 2, the cumulative cost is calculated only for the node Nd1 set in the processing 1 other than the node Nd3 which is the target node nbNd. In this case, as shown in FIG. 20, index register ix = node Nd1, index register pre
vIx = empty. Then, in step F202, it is first confirmed whether or not the data (order list odL [ix]) indicated by the index register ix on the order list is empty. At this point, there is no valid data as the order list odL, so proceed to Step F203,
The cost is compared between the target node nbNd and the node indicated by the index register ix. That is, the value of the cost table cTB [nbNd] and the cost table c
Compare the values of TB [ix].
【0029】この時点でのコストテーブルcTB[nb
Nd]はコストテーブルcTB[Nd3]であり、図2
0に示されるようにその値(累計コスト)は『10』で
ある。またコストテーブルcTB[ix]はコストテー
ブルcTB[Nd1]であり、その値(累計コスト)は
『13』である。従って処理はステップF204に進み、次
にインデックスレジスタprevIxが空であるか否か
を確認する。そしてこの時点ではインデックスレジスタ
prevIxは空であるため、ステップF205でコスト最
小ノードCsMとして対象ノードnbNdを代入する。
従って図20のようにコスト最小ノードCsM=ノード
Nd3となる。The cost table cTB [nb at this point is
Nd] is the cost table cTB [Nd3], and FIG.
As shown in 0, the value (total cost) is “10”. The cost table cTB [ix] is the cost table cTB [Nd1], and its value (total cost) is "13". Therefore, the process proceeds to step F204, and then it is confirmed whether or not the index register prevIx is empty. Since the index register prevIx is empty at this point, the target node nbNd is substituted as the minimum cost node CsM in step F205.
Therefore, the minimum cost node CsM = node Nd3 as shown in FIG.
【0030】またステップF207で、対象ノードnbNd
についてのオーダーリストodL[nbNd]として、
インデックスレジスタixの値を代入したデータを設定
する。つまりオーダーリストodLとしての1つのデー
タとして、図20のように、オーダーリストodL[N
d3]=Nd1というデータが設定される。この状態の
オーダーリストにより、処理の優先順序としてNd3→
Nd1という順序が示される。In step F207, the target node nbNd
As the order list odL [nbNd] for
The data in which the value of the index register ix is substituted is set. That is, as one data as the order list odL, as shown in FIG. 20, the order list odL [N
Data of d3] = Nd1 is set. With the order list in this state, Nd3 →
The order Nd1 is shown.
【0031】以上のオーダーリスト処理を、簡単にいえ
ば、ノードNd1とノードNd3については、ノードN
d3の方がコストが低かったため、コストの低いノード
からの処理を優先するということを示すためにオーダー
リストodL[Nd3]=Nd1というデータが設定さ
れることになる。The order list processing described above is simply described as follows. For node Nd1 and node Nd3,
Since the cost of d3 is lower, the data of the order list odL [Nd3] = Nd1 is set to indicate that the process from the node with the lower cost is prioritized.
【0032】なお、ステップF202においてオーダーリス
トodL[ix]が空ではないと判断された場合は、ス
テップF209でインデックスレジスタprevIxが空で
あるか否かが判断され、空であればステップF210でコス
ト最小ノードCsMとして対象ノードnbNdが代入さ
れる。そしてステップF207で対象ノードnbNdについ
てのオーダーリストodL[nbNd]として、インデ
ックスレジスタixの値を代入したデータを設定する。When it is determined in step F202 that the order list odL [ix] is not empty, it is determined in step F209 whether the index register prevIx is empty. If it is empty, the cost is calculated in step F210. The target node nbNd is substituted as the minimum node CsM. Then, in step F207, data in which the value of the index register ix is substituted is set as the order list odL [nbNd] for the target node nbNd.
【0033】また、ステップF209で否定結果が出た場合
は、ステップF211でオーダーリストodL[prevI
x]として、対象ノードnbNdの値を代入したデータ
を設定し、ステップF207で対象ノードnbNdについて
のオーダーリストodL[nbNd]として、インデッ
クスレジスタixの値を代入したデータを設定すること
になる。If a negative result is obtained in step F209, the order list odL [prevI is obtained in step F211.
x] is set to data in which the value of the target node nbNd is substituted, and in step F207, data in which the value of the index register ix is substituted is set as the order list odL [nbNd] for the target node nbNd.
【0034】さらに、ステップF203で否定結果が得られ
たときは、ステップF208でオーダーリストodL[i
x]として、対象ノードnbNdの値を代入したデータ
が設定される。また、ステップF204で否定結果が得られ
た場合は、ステップF206で、オーダーリストodL[p
revIx]として、対象ノードnbNdの値を代入し
たデータを設定し、続いてステップF207でオーダーリス
トodL[nbNd]として、インデックスレジスタi
xの値を代入したデータを設定することになる。Further, if a negative result is obtained in step F203, the order list odL [i
x], data in which the value of the target node nbNd is substituted is set. If a negative result is obtained in step F204, the order list odL [p
revIx], data in which the value of the target node nbNd is substituted is set, and subsequently, in step F207, the order list odL [nbNd] is set as the index register i.
The data in which the value of x is substituted will be set.
【0035】この図18に示した処理により、処理2の
時点では図20のようにオーダーリストodL及びコス
ト最小ノードCsMが設定される。そして続いて図17
のステップF118に進み、現ノードcurNdについて全
ての隣接ノードをそれぞれ対象ノードnbNdとして設
定し、処理を実行したか否かの判断を行なう。By the processing shown in FIG. 18, at the time of processing 2, the order list odL and the minimum cost node CsM are set as shown in FIG. Then, as shown in FIG.
Of the current node curNd, each adjacent node is set as a target node nbNd, and it is determined whether or not the process is executed.
【0036】処理2の時点でもまだノードNd2と隣接
するノードNd4については処理は終っていないため、
ステップF104に戻って次に処理を行なうノード間の設定
を行なう。この場合、現ノードcurNdは変更せずノ
ードNd2のままで、対象ノードnbNdを、図16の
隣接ノードテーブルを参照して、次の隣接ノードである
ノードNd4とすることになる。これにより処理3とし
てのノード間(Nd2→Nd4)が設定される。つまり
この処理3は、図21に示すように現ノードcurNd
=ノードNd2、対象ノードnbNd=ノードNd4と
されている間の処理となる。At the time of the process 2, since the process for the node Nd4 adjacent to the node Nd2 is not completed yet,
Returning to step F104, the setting is performed between the nodes to be processed next. In this case, the current node curNd is not changed and remains the node Nd2, and the target node nbNd is referred to as the next adjacent node Nd4 by referring to the adjacent node table in FIG. As a result, the node 3 (Nd2 → Nd4) is set as the process 3. In other words, this processing 3 is performed by the current node curNd as shown in FIG.
= Node Nd2, target node nbNd = node Nd4.
【0037】この処理3では、ステップF105→F106と進
み、ノード間(Nd2→Nd4)のコストが算出され、
ステップF107で対象ノードnbNd(ノードNd4)ま
での累計コストcurCTが算出される。またステップ
F108で変数itが設定される。この場合、図21に示す
ように累計コストcurCt=14となり、また変数i
t=空となる。In this processing 3, the process proceeds from step F105 to F106, the cost between nodes (Nd2 → Nd4) is calculated,
In step F107, the cumulative cost curCT up to the target node nbNd (node Nd4) is calculated. Also step
The variable it is set in F108. In this case, the cumulative cost curCt = 14 as shown in FIG.
t = empty.
【0038】そして変数it=空であるためステップF1
09からF110に進み、コストテーブルcTB及びパステー
ブルpTBの設定を行なう。そして図21に示すよう
に、コストテーブルcTB[Nd4]=14、パステー
ブルpTB[Nd4]=Nd2というデータが追加設定
される。Since the variable it = empty, step F1
The process advances from 09 to F110 to set the cost table cTB and the path table pTB. Then, as shown in FIG. 21, data of the cost table cTB [Nd4] = 14 and the path table pTB [Nd4] = Nd2 is additionally set.
【0039】次にステップF111→F115→F117と進み、図
18の処理が行なわれる。この場合、図21のようにイ
ンデックスレジスタix=ノードNd1、インデックス
レジスタprevIx=Nd3となる。Next, the process proceeds to step F111->F115-> F117 to perform the processing of FIG. In this case, as shown in FIG. 21, index register ix = node Nd1 and index register prevIx = Nd3.
【0040】そして、その時点でのオーダーリストod
Lとしてのデータは図20(処理2)において設定され
たデータのみであるため、ステップF202において、オー
ダーリストodL[ix]、即ちオーダーリストodL
[Nd1]は存在せず、従って空と判断されることにな
る。そこでステップF203に進み、コストテーブルcTB
[nbNd]の値と、コストテーブルcTB[ix]の
値を比較する。Then, the order list od at that time
Since the data as L is only the data set in FIG. 20 (Processing 2), in step F202, the order list odL [ix], that is, the order list odL.
[Nd1] does not exist, so it is determined to be empty. Therefore, the process proceeds to step F203 and the cost table cTB
The value of [nbNd] is compared with the value of the cost table cTB [ix].
【0041】この時点でのコストテーブルcTB[nb
Nd]はコストテーブルcTB[Nd4]であり、図2
1に示されるようにその値(コスト)は『14』であ
る。またコストテーブルcTB[ix]はコストテーブ
ルcTB[Nd1]であり、その値(コスト)は『1
3』である。従ってステップF203では否定結果が出て、
処理はステップF208に進み、オーダーリストodL[i
x]として、対象ノードnbNdの値を代入したデータ
が設定される。つまり、オーダリストodL[Nd1]
=Nd4というデータが追加され、この状態のオーダー
リストにより、処理の優先順序としてNd3→Nd1→
Nd4という順序が示されることになる。The cost table cTB [nb at this point is
Nd] is the cost table cTB [Nd4], which is shown in FIG.
As shown in 1, the value (cost) is “14”. The cost table cTB [ix] is the cost table cTB [Nd1], and its value (cost) is "1.
3 ”. Therefore, a negative result appears in step F203,
The process proceeds to step F208, and the order list odL [i
x], data in which the value of the target node nbNd is substituted is set. That is, the order list odL [Nd1]
= Nd4 is added, and according to the order list in this state, the priority order of processing is Nd3 → Nd1 →
The order Nd4 will be indicated.
【0042】そして続いて図17のステップF118に進
み、現ノードcurNdについて全ての隣接ノードをそ
れぞれ対象ノードnbNdとして設定し、処理を実行し
たか否かの判断を行なう。処理3の時点においてはノー
ドNd2と隣接する全てのノードNd1,Nd3,Nd
4については処理は終ったことになるため、ステップF1
19に進み、その時点でコスト最小ノードCsMとされて
いるノードを現ノードcurNdとする。この時点では
コスト最小ノードCsM=Nd3(図20参照)となっ
ている。従って次の処理のための現ノードcurNdは
ノードNd3とされることになる。Then, the process proceeds to step F118 of FIG. 17, in which all adjacent nodes of the current node curNd are set as the target node nbNd, and it is determined whether or not the process has been executed. At the time of processing 3, all the nodes Nd1, Nd3, Nd adjacent to the node Nd2
Since the processing has been completed for step 4, step F1
Proceeding to 19, the node which is the minimum cost node CsM at that time is set as the current node curNd. At this point, the minimum cost node CsM = Nd3 (see FIG. 20). Therefore, the current node curNd for the next process is set to the node Nd3.
【0043】次にステップF120においてコスト最小ノー
ドCsMを、オーダーリストodL上で現在のコスト最
小ノードCsMの次の優先順位となっているノードに更
新する。つまりオーダーリストodL[CsM]の値を
コスト最小ノードCsMとする。この場合オーダーリス
トodL[CsM]はodL[Nd3]であり、その値
はノードNd1である(図21参照)。つまりコスト最
小ノードCsMはノードNd1に更新される。Next, in step F120, the minimum cost node CsM is updated to the node having the next highest priority on the order list odL after the current minimum cost node CsM. That is, the value of the order list odL [CsM] is set as the minimum cost node CsM. In this case, the order list odL [CsM] is odL [Nd3], and its value is the node Nd1 (see FIG. 21). That is, the minimum cost node CsM is updated to the node Nd1.
【0044】そしてステップF121では現ノードcurN
dが空であるか否かを判断し、空ではないためステップ
F104に戻って現ノードcurNdを起点とした場合の対
象ノードnbNdを設定する。現ノードcurNdはノ
ードNd3であるため、図16の隣接ノードテーブルか
ら先ず対象ノードnbNdはノードNd2とされる。こ
のように現ノードcurNd=ノードNd3、対象ノー
ドnbNd=ノードNd2とされることで、処理4とし
てのノード間(Nd3→Nd2)が設定されることにな
る。ここまでの現ノードcurNd、対象ノードnbN
dの設定値、及びコスト最小ノードCsMの更新値は、
図22において示される。Then, in step F121, the current node curN
Determine if d is empty, not step
Returning to F104, the target node nbNd when the current node curNd is set as the starting point is set. Since the current node curNd is the node Nd3, the target node nbNd is first set to the node Nd2 from the adjacent node table of FIG. By setting the current node curNd = node Nd3 and the target node nbNd = node Nd2 as described above, the inter-node (Nd3 → Nd2) is set as the process 4. Current node curNd so far, target node nbN
The set value of d and the updated value of the minimum cost node CsM are
It is shown in FIG.
【0045】ところが、この処理4では、ステップF105
で肯定結果が得られる。即ち処理4としてのノード間
(Nd3→Nd2)の逆ノード間となるノード間(Nd
2→Nd3)については処理2において実行済である。
従ってノード間(Nd3→Nd2)の処理は不要とな
り、処理パスとしてステップF118に進む。However, in this processing 4, step F105
Gives a positive result. That is, as the process 4, between nodes (Nd3 → Nd2) which is a reverse node between nodes (Nd3).
2 → Nd3) has already been executed in the process 2.
Therefore, the process between nodes (Nd3 → Nd2) is not necessary, and the process proceeds to step F118.
【0046】次の処理5としてはステップF118→F104と
進んで、図23のように現ノードcurNd=ノードN
d3、対象ノードnbNd=ノードNd6とされ、ノー
ド間(Nd3→Nd6)の処理が行なわれる。この場
合、処理はステップF105→F106→F107→F108→F109→F1
10→F111→F115→F117と進んでいく。そしてこの処理に
おいては、図23のように累計コストcurCt=29
となり、また変数it=空となる。なお、この場合の累
計コストcurCtとは、ノードNd2→Nd3間のコ
スト『10』と、ノードNd3→Nd6間のコスト『1
9』が累計されたものである。As the next processing 5, the process proceeds from step F118 to F104, and the current node curNd = node N as shown in FIG.
d3, target node nbNd = node Nd6, and processing between nodes (Nd3 → Nd6) is performed. In this case, the processing steps F105 → F106 → F107 → F108 → F109 → F1
10 → F111 → F115 → F117. Then, in this processing, as shown in FIG. 23, the cumulative cost curCt = 29
And the variable it = empty. The cumulative cost curCt in this case is the cost “10” between the nodes Nd2 and Nd3 and the cost “1 between the nodes Nd3 and Nd6.
9 ”is a cumulative total.
【0047】そしてコストテーブルcTB[Nd6]=
29、パステーブルpTB[Nd6]=Nd3というデ
ータが追加設定される。そしてオーダーリストの処理と
してステップF117では、インデックスレジスタix=ノ
ードNd4、インデックスレジスタprevIx=Nd
1となり、ステップF208においてオーダリストodL
[Nd4]=Nd6というデータが追加される。この状
態のオーダーリストにより、処理の優先順序としてNd
3→Nd1→Nd4→Nd6という順序が示されること
になる。The cost table cTB [Nd6] =
29, data of path table pTB [Nd6] = Nd3 is additionally set. Then, in step F117 as the processing of the order list, the index register ix = node Nd4 and the index register prevIx = Nd.
1 and becomes the order list odL in step F208.
Data of [Nd4] = Nd6 is added. With the order list in this state, Nd is set as the processing priority order.
The order of 3 → Nd1 → Nd4 → Nd6 is shown.
【0048】次の処理6としては、現ノードcurNd
=Nd3とした場合の全ての隣接ノードの処理が終了し
ているため、図24に示すようにステップF119で現ノー
ドcurNd=Nd1とされる。つまり、オーダーリス
ト上でノードNd3の次の優先順序となるノードNd1
が設定される。そしてステップF120でコスト最小ノード
CsM=ノードNd4とされる。またステップF104で対
象ノードnbNd=ノードNd2とされ、処理6として
のノード間(Nd1→Nd2)が設定される。ところ
が、逆ノード間となるノード間(Nd2→Nd1)につ
いては処理1において実行済であるため、ステップF105
で肯定結果が得られ、処理パスとしてステップF118に進
む。As the next processing 6, the current node curNd
= Nd3, all the adjacent nodes have been processed, so that the current node curNd = Nd1 is set in step F119 as shown in FIG. That is, the node Nd1 which has the next priority order of the node Nd3 on the order list
Is set. Then, in step F120, the minimum cost node CsM = node Nd4 is set. In step F104, the target node nbNd = node Nd2 is set, and the node 6 (Nd1 → Nd2) is set as the process 6. However, as for the inter-nodes (Nd2 → Nd1) which are the inter-nodes, the process 1 has already been executed, and thus step F105
An affirmative result is obtained at, and the process advances to step F118.
【0049】次の処理7としてはステップF118→F104と
進んで、図25のように現ノードcurNd=ノードN
d1、対象ノードnbNd=ノードNd5とされ、ノー
ド間(Nd1→Nd5)の処理が行なわれる。この場
合、処理はステップF105→F106→F107→F108→F109→F1
10→F111→F115→F117と進んでいく。そしてこの処理に
おいては、図25のように累計コストcurCt=31
となり、また変数it=空となる。この場合の累計コス
トcurCtとは、ノードNd2→Nd1間のコスト
『13』と、ノードNd1→Nd5間のコスト『18』
が累計されたものである。As the next processing 7, the process proceeds from step F118 to F104, and the current node curNd = node N as shown in FIG.
d1 and target node nbNd = node Nd5 are set, and processing between nodes (Nd1 → Nd5) is performed. In this case, the processing steps F105 → F106 → F107 → F108 → F109 → F1
10 → F111 → F115 → F117. Then, in this process, as shown in FIG. 25, the cumulative cost curCt = 31
And the variable it = empty. The cumulative cost curCt in this case is the cost “13” between the nodes Nd2 and Nd1 and the cost “18” between the nodes Nd1 and Nd5.
Is the cumulative total.
【0050】そしてコストテーブルcTB[Nd5]=
31、パステーブルpTB[Nd5]=Nd1というデ
ータが追加設定される。そしてオーダーリストの処理と
してステップF117では、インデックスレジスタix=ノ
ードNd6、インデックスレジスタprevIx=Nd
4となり、ステップF208においてオーダリストodL
[Nd6]=Nd5というデータが追加される。この状
態のオーダーリストにより、処理の優先順位としてNd
3→Nd1→Nd4→Nd6→Nd5という順序が示さ
れることになる。The cost table cTB [Nd5] =
31 and data of path table pTB [Nd5] = Nd1 is additionally set. Then, in step F117 as processing of the order list, index register ix = node Nd6, index register prevIx = Nd
4, and in step F208 the order list odL
Data of [Nd6] = Nd5 is added. According to the order list in this state, Nd is set as the processing priority.
The order of 3 → Nd1 → Nd4 → Nd6 → Nd5 is shown.
【0051】次の処理8としては、現ノードcurNd
=Nd1とした場合の全ての隣接ノードの処理が終了し
ているため、図26に示すようにステップF119で現ノー
ドcurNd=Nd4とされる。つまり、オーダーリス
ト上でノードNd1の次の優先順序となるノードNd4
が設定される。そしてステップF120でコスト最小ノード
CsM=ノードNd6と更新される。またステップF104
で対象ノードnbNd=ノードNd2とされ、処理8と
してのノード間(Nd4→Nd2)が設定される。As the next processing 8, the current node curNd
= Nd1 has been processed for all adjacent nodes, the current node curNd = Nd4 is set in step F119 as shown in FIG. That is, the node Nd4, which has the next priority order of the node Nd1 on the order list,
Is set. Then, in step F120, the minimum cost node CsM = node Nd6 is updated. Also step F104
Then, the target node nbNd = node Nd2 is set, and the inter-node (Nd4 → Nd2) is set as the process 8.
【0052】ところが、逆ノード間となるノード間(N
d2→Nd4)については処理3において実行済である
ため、ステップF105で肯定結果が得られ、処理パスとし
てステップF118に進む。However, between nodes (N
Since d2 → Nd4) has already been executed in process 3, a positive result is obtained in step F105, and the process advances to step F118.
【0053】次の処理9としてはステップF118→F104と
進んで、図27のように現ノードcurNd=ノードN
d4、対象ノードnbNd=ノードNd5とされ、ノー
ド間(Nd4→Nd5)の処理が行なわれる。この場
合、処理はステップF105→F106→F107→F108と進んでい
く。そしてこの処理においては、累計コストcurCt
は、ノードNd2→Nd4間のコスト『14』と、ノー
ドNd4→Nd5間のコスト『12』が累計された値と
して累計コストcurCt=26となる。As the next processing 9, the process proceeds from step F118 to F104, and the current node curNd = node N as shown in FIG.
The target node nbNd = node Nd5 is set as d4, and the processing between nodes (Nd4 → Nd5) is performed. In this case, the process proceeds in steps F105 → F106 → F107 → F108. Then, in this process, the cumulative cost curCt
Is a cumulative cost curCt = 26 as a value obtained by accumulating the cost “14” between the nodes Nd2 and Nd4 and the cost “12” between the nodes Nd4 and Nd5.
【0054】ここで、ステップF108では、変数it=3
1となる。つまり、この時点では処理7において生成さ
れたコストテーブル[Nd5]=31というデータが存
在しているため、その値が変数itに代入される。Here, in step F108, the variable it = 3
It becomes 1. That is, at this point, the cost table [Nd5] = 31 data generated in the process 7 exists, so that value is substituted for the variable it.
【0055】そしてステップF109では、変数it(=3
1)>累計コストcurCt(=26)という結果が得
られるためステップF110に進み、コストテーブルcTB
[Nd5]=26、パステーブルpTB[Nd5]=N
d4というデータが設定される。これによりそれまで存
在していたコストテーブルcTB[Nd5]=31、パ
ステーブルpTB[Nd5]=Nd1というデータは削
除されたことになる。つまり、コストテーブルcTB
[Nd5],パステーブルpTB[Nd5]は書き換え
られることになる。Then, in step F109, the variable it (= 3
1)> the total cost curCt (= 26) is obtained, so the process proceeds to step F110, and the cost table cTB
[Nd5] = 26, path table pTB [Nd5] = N
Data of d4 is set. As a result, the existing data of the cost table cTB [Nd5] = 31 and the path table pTB [Nd5] = Nd1 has been deleted. That is, the cost table cTB
[Nd5] and the path table pTB [Nd5] will be rewritten.
【0056】続いてステップF111では、変数it(=3
1)>累計コストcurCt(=26)という結果が得
られるためステップF112に進み、ステップF112では対象
ノードnbNd(=ノードNd5)とコスト最小ノード
CsM(=ノードNd6)は一致していないため、ステ
ップF114に進むことになる。このような場合は、上記の
ようにコストテーブルcTBが更新されたことに応じて
それまでのオーダーリストodLとしての優先順序を入
れ換える必要が生じた場合であり、まずステップF114に
おいて対象ノードnbNdをオーダーリストodLから
除く処理を行ない、その後ステップF117で適正なオーダ
ーリストを再構成することになる。Then, in step F111, the variable it (= 3
1)> The cumulative cost curCt (= 26) is obtained, so the process proceeds to step F112. At step F112, the target node nbNd (= node Nd5) does not match the minimum cost node CsM (= node Nd6). You will proceed to F114. In such a case, it is necessary to change the priority order as the order list odL up to that time in response to the cost table cTB being updated as described above. First, in step F114, the target node nbNd is ordered. The process of removing from the list odL is performed, and then an appropriate order list is reconstructed in step F117.
【0057】ステップF114では、オーダーリストodL
としてのデータを全て検索し、対象ノードnbNd(=
ノードNd5)が組み込まれている優先順序での位置を
探す。そして、対象ノードnbNdをオーダーリスト上
から削除する。この場合、オーダーリストodL[Nd
6]=0と更新することになる。At step F114, the order list odL
All the data as the target node nbNd (=
Find the position in the priority order in which node Nd5) is incorporated. Then, the target node nbNd is deleted from the order list. In this case, the order list odL [Nd
6] = 0 will be updated.
【0058】そしてステップF117に進むと、インデック
スレジスタix=ノードNd6、インデックスレジスタ
prevIx=Nd4となり、ステップF206でオーダリ
ストodL[Nd4]の値がノードNd5に書き換えら
れる。またステップF207でオーダリストodL[Nd
5]=Nd6というデータが追加される。この状態のオ
ーダーリストにより、処理の優先順序はNd3→Nd1
→Nd4→Nd5→Nd6に変更されたことになる。When proceeding to step F117, the index register ix = node Nd6 and the index register prevIx = Nd4 are set, and the value of the order list odL [Nd4] is rewritten to the node Nd5 in step F206. In step F207, the order list odL [Nd
5] = Nd6 is added. According to the order list in this state, the priority order of processing is Nd3 → Nd1.
It has been changed to → Nd4 → Nd5 → Nd6.
【0059】なお、ステップF112において肯定結果が得
られた場合は、ステップF113で、コスト最小ノ−ドCs
Mとして、対象ノ−ドnbNbについてのオ−ダ−リス
ト上での値、つまり対象ノ−ドの次の優先順位とされて
いるノ−ドが代入される。If a positive result is obtained in step F112, the minimum cost node Cs is obtained in step F113.
As M, the value on the order list for the target node nbNb, that is, the node having the next priority of the target node is substituted.
【0060】次の処理10としてはステップF118→F104
と進んで、図28のように現ノードcurNd=ノード
Nd4、対象ノードnbNd=ノードNd6とされ、ノ
ード間(Nd4→Nd6)の処理が行なわれる。この場
合、処理はステップF105→F106→F108と進んでいく。そ
してこの処理においては、累計コストcurCtは、ノ
ードNd2→Nd4間のコスト『14』と、ノードNd
4→Nd5間のコスト『11』が累計された値として累
計コストcurCt=25となる。As the next processing 10, step F118 → F104
Then, as shown in FIG. 28, the current node curNd = node Nd4 and the target node nbNd = node Nd6 are set, and the processing between nodes (Nd4 → Nd6) is performed. In this case, the process proceeds in steps F105 → F106 → F108. Then, in this processing, the cumulative cost curCt is the cost “14” between the node Nd2 and Nd4 and the node Nd.
The cumulative cost curCt = 25 is the cumulative value of the costs "11" between 4 and Nd5.
【0061】ここでステップF108では、変数it=29
となる。つまり、この時点では処理5において生成され
たコストテーブル[Nd6]=29というデータが存在
しているため、その値が変数itに代入される。Here, in step F108, the variable it = 29
Becomes That is, at this point, the cost table [Nd6] = 29 data generated in process 5 exists, so that value is substituted for the variable it.
【0062】そしてステップF109では、変数it(=2
9)>累計コストcurCt(=25)という結果が得
られるためステップF110に進み、コストテーブルcTB
[Nd6]=25、パステーブルpTB[Nd6]=N
d4というデータが設定される。これによりそれまで存
在していたコストテーブルcTB[Nd6]=29、パ
ステーブルpTB[Nd6]=Nd3というデータは削
除されたことになる。つまり、コストテーブルcTB
[Nd6],パステーブルpTB[Nd6]が書き換え
られたことになる。Then, in step F109, the variable it (= 2
9)> total cost curCt (= 25) is obtained, so the process proceeds to step F110, where cost table cTB
[Nd6] = 25, path table pTB [Nd6] = N
Data of d4 is set. As a result, the existing data of the cost table cTB [Nd6] = 29 and the path table pTB [Nd6] = Nd3 has been deleted. That is, the cost table cTB
[Nd6] and the path table pTB [Nd6] are rewritten.
【0063】続いてステップF111では、変数it(=2
9)>累計コストcurCt(=25)という結果が得
られるためステップF112に進み、この場合もステップF1
14に進んで対象ノードnbNdをオーダーリストodL
から除く処理を行なう。つまりオーダーリストodL
[Nd5]=0と更新することになる。Then, in step F111, the variable it (= 2
9)> total cost curCt (= 25) is obtained, so the process proceeds to step F112, and in this case also step F1
Proceed to 14 and set the target node nbNd to the order list odL
Perform processing to remove from. That is, order list odL
It will be updated to [Nd5] = 0.
【0064】そしてステップF117に進むと、インデック
スレジスタix=ノードNd5、インデックスレジスタ
prevIx=Nd4となり、ステップF206でオーダリ
ストodL[Nd4]の値がノードNd6に書き換えら
れる。またステップF207でオーダリストodL[Nd
6]=Nd5というデータが追加される。この状態のオ
ーダーリストにより、処理の優先順位はNd3→Nd1
→Nd4→Nd6→Nd5に再び変更されたことにな
る。Then, in step F117, the index register ix = node Nd5 and the index register prevIx = Nd4 are set, and the value of the order list odL [Nd4] is rewritten to the node Nd6 in step F206. In step F207, the order list odL [Nd
6] = Nd5 is added. According to the order list in this state, the processing priority is Nd3 → Nd1.
It means that it was changed again to → Nd4 → Nd6 → Nd5.
【0065】次の処理11としては、処理10までの時
点で現ノードcurNd=Nd4とした場合の全ての隣
接ノードの処理が終了しているため、図29に示すよう
にステップF119で現ノードcurNd=Nd6とされ
る。つまり、オーダーリスト上でノードNd4の次の優
先順序となるノードNd6が設定される。そしてステッ
プF120でコスト最小ノードCsM=ノードNd5とされ
る。またステップF104で対象ノードnbNd=ノードN
d2とされ、処理11としてのノード間(Nd6→Nd
3)が設定される。ところが、逆ノード間となるノード
間(Nd3→Nd6)については処理5において実行済
であるため、ステップF105で肯定結果が得られ、処理パ
スとしてステップF118に進む。As the next processing 11, since processing of all the adjacent nodes when the current node curNd = Nd4 has been completed up to the processing 10, as shown in FIG. 29, the current node curNd at step F119 is shown. = Nd6. That is, the node Nd6, which has the next priority order of the node Nd4 on the order list, is set. Then, in step F120, the minimum cost node CsM = node Nd5 is set. In step F104, the target node nbNd = node N
d2, and between the nodes as processing 11 (Nd6 → Nd
3) is set. However, the inter-nodes (Nd3 → Nd6), which are the reverse nodes, have already been executed in the process 5, and therefore a positive result is obtained in step F105, and the process proceeds to step F118.
【0066】さらに次の処理12としては、図30のよ
うに、ステップF104で対象ノードnbNd=ノードNd
4とされ、処理12としてのノード間(Nd6→Nd
4)が設定される。ところが、逆ノード間となるノード
間(Nd4→Nd6)については処理10において実行
済であるため、これも処理パスとしてステップF118に進
む。Further, as the next processing 12, as shown in FIG. 30, the target node nbNd = node Nd in step F104.
4 between the nodes as the process 12 (Nd6 → Nd
4) is set. However, the inter-nodes (Nd4 → Nd6), which are the reverse nodes, have already been executed in the process 10, so that this also proceeds to step F118 as a process path.
【0067】また次の処理13は、処理12までの時点
で現ノードcurNd=Nd6とした場合の全ての隣接
ノードの処理が終了しているため、図31に示すように
ステップF119で現ノードcurNd=Nd5とされる。
そしてステップF120では、オーダーリストodL[Nd
5]=0(図28参照)であるため、コスト最小ノード
CsM=0となる。またステップF104で対象ノードnb
Nd=ノードNd1とされ、処理13としてのノード間
(Nd5→Nd1)が設定される。ところが、これも逆
ノード間での処理が処理7として実行済であるため、処
理パスとしてステップF118に進む。Further, in the next process 13, since the processes of all the adjacent nodes when the current node curNd = Nd6 are set up to the process 12, the current node curNd is processed in step F119 as shown in FIG. = Nd5.
Then, in step F120, the order list odL [Nd
5] = 0 (see FIG. 28), the minimum cost node CsM = 0. In step F104, the target node nb
Nd = node Nd1 is set, and the node 13 (Nd5 → Nd1) is set as the process 13. However, since the processing between the reverse nodes has already been executed as the processing 7, the processing proceeds to step F118 as a processing path.
【0068】さらに次の処理14としては、図32のよ
うに、ステップF104で対象ノードnbNd=ノードNd
4とされ、処理14としてのノード間(Nd5→Nd
4)が設定される。ところが、これも逆ノード間での処
理が処理9において実行済であるため、これも処理パス
としてステップF118に進む。Further, as the next processing 14, as shown in FIG. 32, the target node nbNd = node Nd in step F104.
4 between the nodes as the process 14 (Nd5 → Nd
4) is set. However, since the processing between the reverse nodes has also been executed in the processing 9, this also proceeds to step F118 as a processing path.
【0069】そして現ノードcurNd=Nd5とした
場合の全ての隣接ノードの処理が終了しているため、ス
テップF119に進むが、このときはコスト最小ノードCs
M=0となっているため、現ノードcurNd=0とさ
れる。従ってステップF121において肯定結果が出、これ
によって経路探索としての処理が終了することになる。When the current node curNd = Nd5 has been processed, all the adjacent nodes have been processed, so the process proceeds to step F119. At this time, the minimum cost node Cs.
Since M = 0, the current node curNd = 0 is set. Therefore, an affirmative result is obtained in step F121, which completes the route search process.
【0070】この時点で最短経路はパステーブルpTL
とコストテーブルcTBに表われることになる。つま
り、ゴールノードはノードNd4であるところ、パステ
ーブルpTB[Nd4]=ノードNd2とあらわれてお
り、またコストテーブルcTB[Nd4]=14となっ
ている。そしてスタートノードはノードNd2であるた
め、この場合、ノードNd2→Nd4の経路が最短経路
として求められることになる。At this point, the shortest route is the path table pTL.
And the cost table cTB. That is, although the goal node is the node Nd4, the path table pTB [Nd4] = node Nd2 appears, and the cost table cTB [Nd4] = 14. Since the start node is the node Nd2, in this case, the route from the node Nd2 to Nd4 is obtained as the shortest route.
【0071】[0071]
【発明が解決しようとする課題】ところがこのような経
路探索方法には次のような問題がある。まず、配列とし
てオーダーリストodLを用いて、処理の優先順序を設
定し、処理の効率化を計っているが、処理途中で、算出
される各ノードの累計コストに応じてオーダーリストo
dLによる優先順序を更新していく必要がある。このオ
ーダーリストの更新のためには対象ノードnbNdをま
ずオーダーリストから除き、その後インデックスレジス
タix,prevIxを用いて適正な順序位置に組み込
まなければならない。However, such a route search method has the following problems. First, the order list odL is used as an array to set the processing priority order to improve the efficiency of the processing. However, during the processing, the order list o is calculated according to the cumulative cost of each node calculated.
It is necessary to update the priority order by dL. In order to update the order list, the target node nbNd must first be removed from the order list and then incorporated into the proper order position using the index registers ix and prevIx.
【0072】ここで、対象ノードnbNdをオーダーリ
ストから除く場合には、オーダーリストとしてのデータ
を順に検索していって、対象ノードnbNdの位置の前
後のデータを更新するという煩雑な計算が必要になる。
また、オーダーリストを順に検索してコストを比較し、
インデックスレジスタix,prevIxを算出し、さ
らに図18で説明したようにインデックスレジスタi
x,prevIxに基づいた場合わけを行なって、対象
ノードnbNdをオーダーリストに組み入れることにな
る。このような処理により、オーダーリストの更新のた
めの演算が複雑化し、これにともなって処理時間も長く
なってしまう。さらに、ソフトウエアとしての実際のプ
ログラム上でも、非常に見通しの悪いプログラムとなっ
てしまうという問題がある。Here, when the target node nbNd is excluded from the order list, it is necessary to perform a complicated calculation by sequentially searching the data as the order list and updating the data before and after the position of the target node nbNd. Become.
Also, search the order list in order to compare costs,
The index registers ix and prevIx are calculated, and the index register i is calculated as described in FIG.
A case based on x, prevIx is performed, and the target node nbNd is incorporated in the order list. By such processing, the calculation for updating the order list becomes complicated and the processing time becomes long accordingly. Further, there is a problem that the actual program as software becomes a program with a very bad view.
【0073】また、全てのノード間について処理を実行
してから、スタートノードとゴールノードに基づいて最
短経路を判断しているため、実際には不要な処理も行な
うものとなり、これも処理時間の長時間化を招いてい
る。Since the shortest path is determined based on the start node and the goal node after the processing is executed between all the nodes, unnecessary processing is also actually performed. Inviting a long time.
【0074】[0074]
【課題を解決するための手段】本発明はこのような問題
に鑑みて、より効率的な処理を行なうことで、処理時間
の短縮を計ることを目的とする。SUMMARY OF THE INVENTION In view of the above problems, the present invention aims to shorten the processing time by performing more efficient processing.
【0075】このため、スタートノードからゴールノー
ドまでの経路として、それぞれ異なるノードを経由して
いく複数の経路が存在する場合に、スタートノードから
ゴールノードまでの進行負担値(コスト)が最小となる
経路を探索する経路探索方法として、進行負担値の算出
を行なうノードを示す処理ノード変数に基づいて、経路
を構成する所定のノード間での進行負担値を算出する進
行負担値算出手順と、それまでに算出されている進行負
担値から、各ノードについて進行負担値算出処理の優先
順序を設定する優先ノード順序設定手順と、設定された
算出処理の優先順序に基づいて処理ノード変数を設定す
る処理ノード変数設定手順とを含むようにする。そし
て、優先ノード順序設定手順では、優先順序設定を行な
うための第1の演算手順と第2の演算手順が設定されて
おり、優先ノード順序内に組み込む対象となるノードに
ついて、そのノードでの進行負担値と、処理ノード変数
として指定されているノードの進行負担値の比較結果に
応じて、第1又は第2の演算手順が実行されるようにす
る。Therefore, when there are a plurality of routes passing through different nodes as routes from the start node to the goal node, the progress burden value (cost) from the start node to the goal node is minimized. As a route search method for searching for a route, a progress burden value calculation procedure for calculating a progress burden value between predetermined nodes forming a route based on a processing node variable indicating a node for calculating the progress burden value, and From the progress burden value calculated up to, the priority node order setting procedure for setting the priority order of the progress burden value calculation process for each node, and the process for setting the process node variable based on the set priority order of the calculation process And a node variable setting procedure. Then, in the priority node order setting procedure, the first operation procedure and the second operation procedure for setting the priority order are set, and for the node to be incorporated in the priority node order, the progress in that node The first or second calculation procedure is executed according to the comparison result of the burden value and the progress burden value of the node designated as the processing node variable.
【0076】また同様の経路探索方法として、進行負担
値の算出を行なうノードを示す処理ノード変数に基づい
て、経路を構成する所定のノード間での進行負担値を算
出する進行負担値算出手順と、それまでに算出されてい
る進行負担値から、各ノードについて進行負担値算出処
理の優先順序、及び逆優先順序を設定する優先ノード順
序設定手順と、設定された算出処理の優先順序に基づい
て処理ノード変数を設定する処理ノード変数設定手順と
を含むようにする。そして優先ノード順序設定手順にお
いて或るノードの優先順序を更新する場合は、まずそれ
までに設定されている逆優先順序を用いてそのノードを
優先順序内から削除し、その後、そのノードを優先順序
内で新たな順序位置に設定する処理が行なわれるように
する。As a similar route search method, a progress burden value calculation procedure for calculating progress burden values among predetermined nodes forming a route based on a processing node variable indicating a node for calculating the progress burden value. , Based on the priority order of the progress burden value calculation processing and the priority node order setting procedure for setting the reverse priority order for each node from the progress burden values calculated up to that time, and the priority order of the set calculation processing. And a processing node variable setting procedure for setting a processing node variable. Then, when updating the priority order of a certain node in the priority node order setting procedure, first, the node is deleted from the priority order using the reverse priority order that has been set so far, and then that node is set to the priority order. A process for setting a new order position is performed in the.
【0077】さらに同様の経路探索方法として、ゴール
ノードを一端としたノード間数を設定するノード間数設
定手順と、経路を構成する所定のノード間での進行負担
値を算出する進行負担値算出手順と、進行負担値算出手
順においてゴールノードを含むノード間が対象となった
処理数をカウントし、その処理数がノード間数に達した
ら、進行負担値算出手順として処理を終了させる終了判
断手順とを含むようにする。Further, as a similar route search method, a procedure for setting the number of nodes between nodes, with the goal node as one end, and a progress burden value calculation for calculating a progress burden value between predetermined nodes forming a route. In the procedure and the progress burden value calculation procedure, the number of processes targeted between the nodes including the goal node is counted, and when the number of processes reaches the number of nodes, the end judgment procedure for terminating the process as the progress burden value calculation procedure And include.
【0078】[0078]
【作用】優先ノード順序内に組み込む対象となるノード
について、そのノードでの進行負担値と、処理ノード変
数として指定されているノードの進行負担値を比較する
ようにすれば、優先ノード順序設定手順では2つの場合
分けに基づいた処理のみでよいことになる。また逆優先
順序を把握していることにより、或るノードを優先順序
内から削除する際に、そのノードの前後が把握できるた
め複雑な検索処理は不要となる。さらに、ゴールノード
が含まれるノードについて全ノード間の処理が終了した
時点で処理を終了するようにすれば、不要な処理を省略
できる。[Function] For the node to be incorporated in the priority node order, if the progress burden value at that node is compared with the progress burden value of the node specified as the processing node variable, the priority node order setting procedure is performed. Then, only the processing based on the two cases is required. Further, by grasping the reverse priority order, when a certain node is deleted from the priority order, the front and back of the node can be grasped, so that a complicated search process is unnecessary. Further, if the processing for all the nodes of the node including the goal node is completed, unnecessary processing can be omitted.
【0079】[0079]
【実施例】以下、本発明の実施例としての経路探索方法
について図1〜図13、及び図15、図16を用いて説
明する。DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS A route search method as an embodiment of the present invention will be described below with reference to FIGS. 1 to 13, 15 and 16.
【0080】本実施例の経路探索方法としての処理は図
1、図2、図3のフローチャートに示される。この処理
では、従来方法において説明した場合と同様に、隣接ノ
ードテーブル、パステーブル、コストテーブル、オーダ
ーリストという配列を用いるとともに、さらに逆オーダ
ーリストという配列を設定している。また変数として、
コスト最小ノードCsM、変数it、現ノードcurC
T、対象ノードnbNd、累計コストcurCTを用い
ることは従来方法と同様であるが、新たに、ゴールノー
ドからの道路数RNを設定し、処理の効率化を計ってい
る。また、インデックスレジスタit,prevIxと
いう2つのインデックスは用いず、インデックスレジス
タnixという1つのインデックスのみで処理が行なわ
れるようにしている。The processing as the route search method of this embodiment is shown in the flowcharts of FIGS. 1, 2 and 3. In this processing, as in the case of the conventional method, the array of the adjacent node table, the path table, the cost table, and the order list are used, and further, the array of the reverse order list is set. Also as a variable
Cost minimum node CsM, variable it, current node curC
The use of T, the target node nbNd, and the cumulative cost curCT is similar to the conventional method, but the number of roads RN from the goal node is newly set to improve the efficiency of processing. Further, the two indexes of the index registers it and prevIx are not used, and the processing is performed only with one index of the index register nix.
【0081】図1、図2、図3の処理による実施例の経
路探索処理を、図15のような道路においてスタートノ
ードをノードNd2、ゴールノードをノードNd4とし
て実行した場合の例を、図4〜図13を参照しながら説
明する。なお、図4〜図13では、前述した図19〜図
32と同様に各時点での配列や変数の状態を示してお
り、また、それぞれ図1、図2、図3における対応する
ステップを右側に記している。An example in which the route search process of the embodiment by the processes of FIGS. 1, 2 and 3 is executed on the road as shown in FIG. 15 with the start node as node Nd2 and the goal node as node Nd4 is shown in FIG. ~ It demonstrates, referring to FIG. Note that FIGS. 4 to 13 show the states of the arrays and variables at each time point as in FIGS. 19 to 32 described above, and the corresponding steps in FIGS. 1, 2, and 3 are shown on the right side. It is described in.
【0082】図1の経路探索処理が開始されると、初期
設定としてまずスタートノード、及びゴールノードを引
数とする。さらにゴールノードからの道路数RNを設定
する(F301)。つまりユーザーがスタートノードをノード
Nd2、ゴールノードをノードNd4と設定したことに
応じて、ノードNd2をスタートノードの値として、ま
たノードNd4をゴールノードの値として処理に取り込
む。そしてゴールノードNd4においては図15から分
かるように3つの道路が存在するが、これに応じて道路
数RN=3と設定する。When the route search process of FIG. 1 is started, a start node and a goal node are first used as arguments as initial settings. Further, the number of roads RN from the goal node is set (F301). That is, in response to the user setting the start node as the node Nd2 and the goal node as the node Nd4, the node Nd2 is taken as the value of the start node and the node Nd4 is taken as the value of the goal node in the processing. As shown in FIG. 15, there are three roads at the goal node Nd4, and the number of roads RN = 3 is set accordingly.
【0083】次にステップF302で、各配列、即ちパステ
ーブルpTB、コストテーブルcTB、オーダーリスト
odL、及び逆オーダーリストpodLをクリアする。
また処理上で変数として用いるコスト最小ノードCsM
もクリアする。このコスト最小ノードCsMとは、従来
方法において用いた場合と同様にオーダーリストodL
に基づいて更新され、次に処理すべきノード間の起点側
のノードを示す値となる。Next, in step F302, each array, that is, the path table pTB, the cost table cTB, the order list odL, and the reverse order list podL are cleared.
Also, the minimum cost node CsM used as a variable in processing
Also clear. The minimum cost node CsM is the order list odL as in the case of using the conventional method.
It is updated based on the above, and becomes a value indicating the node on the starting point side between the nodes to be processed next.
【0084】またこの実施例において用いられる逆オー
ダーリストpodLとは、オーダーリストodLの逆の
順序を示すデータとなる。つまり、オーダーリストod
Lによって例えばノードNd3→ノードNd1→ノード
Nd4というような優先順序が設定されている際には、
逆オーダーリストpodLによって、ノードNd4→ノ
ードNd1→ノードNd3という逆の順序が示されるこ
とになる。逆オーダーリストpodLのデータ形態とし
ては、例えばこのような場合は、podL[Nd4]=
Nd1としてノードNd4の前がノードNd1であるこ
とが示され、またpodL[Nd1]=Nd3としてノ
ードNd1の前がノードNd3であることが示される。The reverse order list podL used in this embodiment is data indicating the reverse order of the order list odL. That is, order list od
When a priority order such as node Nd3 → node Nd1 → node Nd4 is set by L,
The reverse order list podL indicates the reverse order of node Nd4 → node Nd1 → node Nd3. As a data form of the reverse order list podL, for example, in such a case, podL [Nd4] =
Nd1 indicates that the node Nd4 is in front of the node Nd1, and podL [Nd1] = Nd3 indicates that the node Nd1 is in front of the node Nd3.
【0085】次にステップF303において、現ノードcu
rNdとしてスタートノード、即ちノードNd2を代入
する。現ノードcurNdとは処理対象となるノード間
の起点側のノードを示す変数となる。次に、処理対象と
なるノード間の終点側のノードとして対象ノードnbN
dを隣接ノードテーブルを参照して設定する(F304)。ノ
ードNd2の隣接ノードとしては、図16で説明したよ
うに、隣接ノードテーブルに先ずノードNd1が記録さ
れているため、対象ノードnbNdをノードNd1とす
る。Next, in step F303, the current node cu
The start node, that is, the node Nd2 is substituted as rNd. The current node curNd is a variable indicating the node on the starting point side between the nodes to be processed. Next, the target node nbN is set as the end-side node between the nodes to be processed.
The d is set by referring to the adjacent node table (F304). As the adjacent node of the node Nd2, the node Nd1 is first recorded in the adjacent node table as described with reference to FIG. 16, so the target node nbNd is set to the node Nd1.
【0086】この時点で、最初に処理を行なうノード間
(Nd2→Nd1)が設定されたことになる。この最初
のノード間の処理を処理1とする。この処理1における
配列や変数の状態が図4に示される。この図4には、こ
こまでの処理により現ノードcurNd=ノードNd
2、対象ノードnbNd=ノードNd1とされ、従って
処理1としてノード間(Nd2→Nd1)の処理が実行
されることを示している。なお、以降説明する処理2〜
処理10も図5〜図13に同様の形式で示す。At this point, the node (Nd2.fwdarw.Nd1) to be processed first is set. The process between the first nodes is referred to as process 1. The states of the arrays and variables in this processing 1 are shown in FIG. In FIG. 4, the current node curNd = node Nd by the processing up to this point.
2, target node nbNd = node Nd1 is set. Therefore, as the processing 1, processing between nodes (Nd2 → Nd1) is executed. In addition, the processing 2 to be described below
Process 10 is also shown in a similar format in FIGS.
【0087】ステップF304で処理1としてのノード間が
設定されると、まず、ステップF305で逆ノード間が処理
済かを判別する。逆ノード間とは、この場合ノード間
(Nd1→Nd2)となる。つまり同一の経路を逆方向
に向かうノード間のことである。処理1の時点ではステ
ップF305で否定結果が出るためステップF306に進む。When the inter-nodes are set as the process 1 in step F304, first, in step F305, it is determined whether the inter-nodes have been processed. In this case, between the opposite nodes is between the nodes (Nd1 → Nd2). In other words, it is between the nodes going in the same route in the opposite direction. At the time of processing 1, since a negative result is obtained in step F305, the process proceeds to step F306.
【0088】ステップF306では今回の処理の対象となっ
ているノード、即ち現ノードcurNd(=ノードNd
2)と対象ノードnbNd(=ノードNd1)のいづれ
かがゴールノードといってしているか否かを判別する。
ゴールノードはノードNd4であるため処理1の時点で
はステップF306で否定結果が出、ステップF308に進む。In step F306, the node that is the target of this processing, that is, the current node curNd (= node Nd
It is determined whether either 2) or the target node nbNd (= node Nd1) is called a goal node.
Since the goal node is the node Nd4, a negative result is obtained in step F306 at the time of processing 1, and the process proceeds to step F308.
【0089】ステップF308では、現ノードcurNd
(=ノードNd2)から対象ノードnbNd(=ノード
Nd1)までのコストを算出する。図15に示したよう
にこの場合コスト=13である。そしてステップF309で
スタートノードから対象ノードnbNdまでの累計コス
トの値を算出し、累計コストcurCTとして保持す
る。また、ステップF310で、交点ノードとしてのこれま
での累計コストを変数itに代入する。交点ノードとは
対象ノードnbNdとぶつかる他の経路のことであり、
そのような経路が存在する場合は、そのときまでの対象
ノードのコストがコストテーブルcTB[nbNd]と
して記憶されている。従って、ステップF310では、コス
トテーブルcTB[nbNd]の値を変数itに代入す
る処理となる。At step F308, the current node curNd
The cost from (= node Nd2) to the target node nbNd (= node Nd1) is calculated. In this case, the cost is 13 as shown in FIG. Then, in step F309, the value of the cumulative cost from the start node to the target node nbNd is calculated and held as the cumulative cost curCT. Further, in step F310, the accumulated cost so far as the intersection node is substituted into the variable it. The intersection node is another path that collides with the target node nbNd,
When such a route exists, the cost of the target node up to that time is stored in the cost table cTB [nbNd]. Therefore, in step F310, the value of the cost table cTB [nbNd] is substituted into the variable it.
【0090】処理1の時点では、図4に示すように累計
コストcurCt=13となり、また交点ノードについ
ては以前に処理されておらず、従ってコストテーブルc
TB[nbNd]としての値は存在しないため、変数i
t=空となる。At the time of processing 1, the cumulative cost curCt = 13 as shown in FIG. 4, and the intersection node has not been processed before, and therefore the cost table c
Since there is no value as TB [nbNd], the variable i
t = empty.
【0091】次のステップF311では、変数it=空であ
るか、もしくは変数itの値が累計コストcurCTの
値より大きいかのいづれかの条件が満たされているか否
かを判断する。処理1の時点では変数it=空であるの
で、ステップF312に進み、コストテーブルcTB及びパ
ステーブルpTBの設定を行なう。この処理は対象ノー
ドについてのコストテーブルcTBの値として累計コス
トcurCTを代入する。つまりコストテーブルcTB
[nbNd]=curCTとする。In the next step F311, it is determined whether or not the condition that the variable it = empty or the value of the variable it is larger than the value of the cumulative cost curCT is satisfied. At the time of processing 1, since the variable it = empty, the process proceeds to step F312 and the cost table cTB and the path table pTB are set. This process substitutes the cumulative cost curCT as the value of the cost table cTB for the target node. That is, the cost table cTB
Let [nbNd] = curCT.
【0092】また対象ノードについてのパステーブルp
TBの値として現ノードcurNdを代入する。つまり
パステーブルpTB[nbNd]=curNdとする。
この処理1の時点では図4に示すように、コストテーブ
ルcTB[Nd1]=13、パステーブルpTB[Nd
1]=Nd2というデータが設定されることになる。The path table p for the target node
The current node curNd is substituted as the value of TB. That is, the path table pTB [nbNd] = curNd.
At the time of this process 1, as shown in FIG. 4, the cost table cTB [Nd1] = 13 and the path table pTB [Nd.
1] = Nd2 will be set.
【0093】次にステップF313で、変数itが累計コス
トcurCTより大きいか否かを判別する。ここで肯定
結果が出る場合とは、オーダーリストodLを書き換え
る必要の可能性がある場合であり、ステップF314に進
む。この場合の処理は後述する。処理1の時点ではステ
ップF313で否定結果が出るため、ステップF317に進み、
コスト最小ノードCsMという変数が空であるか否かを
判断する。そして処理1の時点ではコスト最小ノードC
sM=空であるため、ステップF318で対象ノードnbN
dをコスト最小ノードCsMに代入する。従って図4の
ようにコスト最小ノードCsM=ノードNd1となる。Then, in step F313, it is determined whether or not the variable it is larger than the cumulative cost curCT. The case where a positive result is obtained here is a case where it is necessary to rewrite the order list odL, and the process proceeds to step F314. The processing in this case will be described later. At the time of processing 1, since a negative result is obtained in step F313, the process proceeds to step F317,
It is determined whether or not the variable called the minimum cost node CsM is empty. Then, at the time of processing 1, the node with the lowest cost
Since sM = empty, in step F318 the target node nbN
Substitute d into the minimum cost node CsM. Therefore, the minimum cost node CsM = node Nd1 as shown in FIG.
【0094】つづいてステップF320では道路数RN=0
となっているか否かを判別する。この時点では道路数R
Nは初期設定のままであり、即ち道路数RN=3である
ためステップF321に進む。Subsequently, in step F320, the number of roads RN = 0
Is determined. At this point the number of roads R
Since N remains the initial setting, that is, the number of roads RN = 3, the process proceeds to step F321.
【0095】ステップF321では、現ノードcurNdに
ついて全ての隣接ノードをそれぞれ対象ノードnbNd
として設定し、処理を実行したか否かの判断を行なう。
処理1の時点では現ノードcurNdがノードNd2で
あり、ノードNd2に隣接するノードNd1との間の処
理を終えたのみである。つまり、ノードNd2と隣接す
るノードNd3、ノードNd4については処理は終って
いない。従ってステップF321で否定結果が出、ステップ
F304に戻って次に処理を行なうノード間の設定を行な
う。At step F321, all the adjacent nodes of the current node curNd are set to the target node nbNd.
Then, it is determined whether or not the process is executed.
At the time of processing 1, the current node curNd is the node Nd2, and the processing with the node Nd1 adjacent to the node Nd2 is only completed. That is, the processing is not completed for the node Nd3 and the node Nd4 adjacent to the node Nd2. Therefore, a negative result is obtained in step F321, and
The process returns to F304 to set the node to be processed next.
【0096】この場合、現ノードcurNdは変更せず
ノードNd2のままで、対象ノードnbNdを、図16
の隣接ノードテーブルを参照して、次の隣接ノードに設
定する。つまりNd2に隣接するノードとしては隣接ノ
ードテーブル上で、ノードNd1の次にノードNd3が
記録されているため、対象ノードnbNdをノードNd
3とすることになる。In this case, the current node curNd remains unchanged and the target node nbNd is set as shown in FIG.
The next adjacent node is set by referring to the adjacent node table of. That is, since the node Nd3 is recorded next to the node Nd1 on the adjacent node table as the node adjacent to Nd2, the target node nbNd is set as the node Nd.
It will be 3.
【0097】これにより、処理2としてのノード間(N
d2→Nd3)が設定されたことになる。つまりこの処
理2は、図5に示すように現ノードcurNd=ノード
Nd2、対象ノードnbNd=ノードNd3とされてい
る間の処理となる。As a result, the node 2 (N
This means that d2 → Nd3) has been set. That is, this processing 2 is processing while the current node curNd = node Nd2 and the target node nbNd = node Nd3 as shown in FIG.
【0098】この処理2では、ステップF305→F306と進
み、ノードNd2、ノードNd3はどちらもゴールノー
ドではないためステップF308に進む。そしてノード間
(Nd2→Nd3)のコストが算出され、ステップF309
で対象ノードnbNd(ノードNd3)までの累計コス
トcurCTが算出される。またステップF310で変数i
tが設定される。この場合、図5に示すように累計コス
トcurCt=10となり、また交点ノードについては
以前に処理されておらず、従ってコストテーブルcTB
[nbNd]としての値は存在しないため、変数it=
空となる。In this processing 2, the process proceeds from step F305 to F306, and since neither the node Nd2 nor the node Nd3 is the goal node, the process proceeds to step F308. Then, the cost between nodes (Nd2 → Nd3) is calculated, and step F309
Then, the cumulative cost curCT up to the target node nbNd (node Nd3) is calculated. In step F310, the variable i
t is set. In this case, the cumulative cost curCt = 10 as shown in FIG. 5, and the intersection node has not been processed before, so the cost table cTB
Since there is no value as [nbNd], the variable it =
Become empty.
【0099】そして変数it=空であるためステップF3
11からF312に進み、コストテーブルcTB及びパステー
ブルpTBの設定を行なう。この場合図5に示すよう
に、コストテーブルcTB[Nd3]=10、パステー
ブルpTB[Nd3]=Nd2というデータが追加設定
されることになる。Since the variable it = empty, step F3
The process proceeds from 11 to F312 to set the cost table cTB and the path table pTB. In this case, as shown in FIG. 5, data of the cost table cTB [Nd3] = 10 and the path table pTB [Nd3] = Nd2 is additionally set.
【0100】次にステップF313では、この時点では変数
itが空であり否定結果が出るため、ステップF317に進
む。そしてこの時点ではコスト最小ノードCsM=Nd
1とされており、空ではないためステップF319に進む。
ステップF319では、コスト最小ノードCsMの設定及び
対象ノードnbNdのオーダーリストへの組み込み処理
が行なわれる。このステップF319の処理は図2に詳しく
示される。Next, in step F313, since the variable it is empty at this time and a negative result is obtained, the process proceeds to step F317. At this point, the minimum cost node CsM = Nd
Since it is set to 1 and is not empty, the process proceeds to step F319.
In step F319, the minimum cost node CsM is set and the target node nbNd is incorporated into the order list. The processing of this step F319 is shown in detail in FIG.
【0101】まずステップF401として対象ノードnbN
dについての累計コスト、即ちコストテーブルcTB
[nbNd]の値と、コスト最小ノードCsMとされて
いるノードについての累計コスト、即ちコストテーブル
cTB[CsM]の値の比較が行なわれる。そして、こ
の比較結果に応じて、ステップF402〜F406の処理によっ
てオーダーリストのデータの生成が行なわれるか、もし
くはステップF407〜F411の処理によってオーダーリスト
のデータの生成が行なわれるか、が選択される。First, in step F401, the target node nbN
Cumulative cost for d, ie cost table cTB
The value of [nbNd] is compared with the cumulative cost of the node having the minimum cost node CsM, that is, the value of the cost table cTB [CsM]. Then, according to the comparison result, it is selected whether the processing of steps F402 to F406 is to generate the data of the order list or the processing of steps F407 to F411 is to generate the data of the order list. .
【0102】ステップF402〜F406の処理が行なわれるの
は、その時点での対象ノードnbNdとされるノード
が、その時点でコスト最小ノードCsMとされているノ
ードよりも、優先順位が高い状態でオーダーリストに組
み込まれなければならない場合である。The processing of steps F402 to F406 is performed when the node which is the target node nbNd at that time has a higher priority than the node which is the minimum cost node CsM at that time. This is the case when it has to be included in the list.
【0103】コスト最小ノードCsMとは、後述するス
テップF322において現ノードcurNdとして代入され
るノードであり、つまり現時点で処理優先度が最も高い
ノードである。従って、ステップF401で肯定結果が出る
場合、即ち現時点での対象ノードnbNdが、コスト最
小ノードCsMとされているノードより優先順位を高く
すべきと判断された場合は、オーダーリスト上でコスト
最小ノードCsMの直前の順位位置に対象ノードnbN
dとされているノードを組み込めば良い。The minimum cost node CsM is a node substituted as the current node curNd in step F322 described later, that is, the node having the highest processing priority at the present time. Therefore, if an affirmative result is obtained in step F401, that is, if it is determined that the current target node nbNd should have a higher priority than the node having the lowest cost node CsM, the lowest cost node on the order list is displayed. The target node nbN is placed at the position immediately before CsM.
It suffices to incorporate the node designated as d.
【0104】このためのステップF402〜F406の処理とし
ては、まずコスト最小ノードCsMについての逆オーダ
ーリストpodLで示されているノードについて、その
ノードに対応するオーダーリストodLの値として対象
ノードnbNdが代入される。つまり、オーダーリスト
odL[podL[CsM]]の値が対象ノードnbN
dとされる(F402)。As the processing of steps F402 to F406 for this purpose, first for the node indicated by the reverse order list podL for the minimum cost node CsM, the target node nbNd is substituted as the value of the order list odL corresponding to that node. To be done. That is, the value of the order list odL [podL [CsM]] is the target node nbN.
d (F402).
【0105】次に、対象ノードnbNdについての逆オ
ーダーリストpodLのデータとして、その時点でコス
ト最小ノードCsMについての逆オーダーリストpod
Lで示されているノードを代入する(F403)。つまり逆オ
ーダーリストpodL[CsM]の値が、逆オーダーリ
ストpodL[nbNd]の値として代入される。Next, as the data of the reverse order list podL for the target node nbNd, the reverse order list pod for the minimum cost node CsM at that time.
The node indicated by L is substituted (F403). That is, the value of the reverse order list podL [CsM] is substituted as the value of the reverse order list podL [nbNd].
【0106】さらに、対象ノードnbNdについてのオ
ーダーリストodLのデータとして、コスト最小ノード
CsMを代入する。つまりオーダーリストodL[nb
Nd]の値をコスト最小ノードCsMとする(F404)。こ
れはオーダーリストodL上でコスト最小ノードCsM
の直前の順位位置に対象ノードnbNdとされているノ
ードが位置づけられたことを意味する。Further, the minimum cost node CsM is substituted as the data of the order list odL for the target node nbNd. That is, the order list odL [nb
The value of Nd] is set as the minimum cost node CsM (F404). This is the minimum cost node CsM on the order list odL.
It means that the node designated as the target node nbNd is positioned at the position immediately before the position.
【0107】そして、これを逆オーダーリストとしてあ
らわすために、コスト最小ノードCsMについての逆オ
ーダーリストpodLの値として、対象ノードnbNd
を代入する(F405)。つまり逆オーダーリストpodL
[CsM]=対象ノードnbNdとされる。Then, in order to represent this as an inverse order list, the target node nbNd is set as the value of the inverse order list podL for the minimum cost node CsM.
Is substituted (F405). That is, the reverse order list podL
[CsM] = target node nbNd.
【0108】このようにオーダーリストodL及び逆オ
ーダーリストpodLを更新したら、ステップF406で、
コスト最小ノードCsMを対象ノードnbNdとされて
いるノードに更新する。つまり、オーダーリストによる
優先順序として対象ノードnbNdがその時点でコスト
最小ノードCsMとされているノードよりも優先される
ことになるため、対象ノードnbNdをコスト最小ノー
ドCsMとすることで、対象ノードnbNdをそれ以降
の処理において最優先のノードとすることになる。After updating the order list odL and the reverse order list podL in this way, in step F406,
The minimum cost node CsM is updated to the node designated as the target node nbNd. That is, since the target node nbNd is prioritized over the node that is the minimum cost node CsM at that time as the priority order according to the order list, by setting the target node nbNd as the minimum cost node CsM, the target node nbNd Will be the highest priority node in the subsequent processing.
【0109】一方、ステップF401において否定結果が
出、ステップF407〜F411の処理が行なわれるのは、その
時点での対象ノードnbNdとされるノードが、その時
点でコスト最小ノードCsMとされているノードより
も、優先順位が低い状態でオーダーリストに組み込まれ
なければならない場合である。On the other hand, a negative result is obtained in step F401, and the processing of steps F407 to F411 is performed because the node which is the target node nbNd at that time is the node having the minimum cost node CsM at that time. It has to be incorporated into the order list with a lower priority.
【0110】この場合、まずステップF407として、イン
デックスレジスタnixの算出を行なう。インデックス
レジスタnixとは、対象ノードnbNdのオーダーリ
ストへの組み込み位置のためのインデックスとなる値で
ある。オーダーリストodLとは処理すべきノードの優
先順序を示すデータであり、その優先順序は各ノードで
の累計コストの低いものほど優先順序が高いとして設定
されるものであるから、インデックスレジスタnixの
算出は、その時点で存在する累計コスト、即ちコストテ
ーブルcTBのデータと、コストテーブルcTB上で示
される対象ノードnbNdでの累計コストの値を逐一比
較していくことで行なわれる。つまりインデックスレジ
スタnixは、従来方法におけるインデックスレジスタ
ixと同様のインデックスとなる。In this case, first, in step F407, the index register nix is calculated. The index register nix is a value that serves as an index for the position where the target node nbNd is incorporated in the order list. The order list odL is data indicating the priority order of the nodes to be processed, and the priority order is set such that the lower the cumulative cost at each node is, the higher the priority order is. Therefore, calculation of the index register nix Is performed by comparing the accumulated cost existing at that time, that is, the data of the cost table cTB and the accumulated cost value of the target node nbNd indicated on the cost table cTB one by one. That is, the index register nix has the same index as the index register ix in the conventional method.
【0111】インデックスレジスタnixが算出された
ら、ステップF408で対象ノードnbNdについてのオー
ダーリストのデータとして、インデックスレジスタni
xで示されるノードについてのオーダーリストのデータ
を代入する。つまり、オーダーリストodL[nbN
d]の値として、オーダーリストodL[nix]の値
を代入する。これは、その時点でのオーダーリスト上
で、対象ノードnbNdを、インデックスレジスタni
xの次の優先順序となっているノードの前に組み入れる
ことを意味する。After the index register nix is calculated, the index register ni is set as the data of the order list for the target node nbNd in step F408.
Substitute the order list data for the node indicated by x. That is, the order list odL [nbN
The value of the order list odL [nix] is substituted as the value of d]. This is because the target node nbNd is index register ni on the order list at that time.
It means to be included before the node having the next priority order of x.
【0112】次にステップF409では、ステップF408で生
成したオーダーリストの逆となる逆オーダーリストpo
dLのデータを生成する。つまり、インデックスレジス
タnixとされたノードについてのオーダーリストによ
って示されるノードの、さらにその逆オーダーリストの
値として、対象ノードnbNdを代入する。即ち、逆オ
ーダーリストpodL[odL[nix]]の値が対象
ノードnbNdとされる。Next, in step F409, the reverse order list po which is the reverse of the order list generated in step F408.
Generate dL data. That is, the target node nbNd is substituted as the value of the node indicated by the order list for the node set as the index register nix and the reverse order list thereof. That is, the value of the reverse order list podL [odL [nix]] is set as the target node nbNd.
【0113】次のステップF410では、インデックスレジ
スタnixとされたノードについてのオーダーリストの
データとして、対象ノードnbNdを代入する。つま
り、オーダーリストodL[nix]=対象ノードnb
Ndとする。これは、その時点でのオーダーリスト上
で、対象ノードnbNdが、インデックスレジスタni
xで示されるノードの次の優先順序位置に組み入れるこ
とを意味する。At the next step F410, the target node nbNd is substituted as the data of the order list for the node set as the index register nix. That is, order list odL [nix] = target node nb
Nd. This is because the target node nbNd is index register ni on the order list at that time.
It means to be incorporated in the next priority position of the node indicated by x.
【0114】次にステップF411では、ステップF410で生
成したオーダーリストの逆となる逆オーダーリストpo
dLのデータを生成する。つまり、対象ノードnbNd
についての逆オーダーリストの値として、インデックス
レジスタnixで示されるノードを代入する。即ち、逆
オーダーリストpodL[nbNd]の値がインデック
スレジスタnixで示されるノードとされる。Next, in step F411, the reverse order list po which is the reverse of the order list generated in step F410.
Generate dL data. That is, the target node nbNd
Substitute the node indicated by the index register nix as the value of the reverse order list for. That is, the value of the reverse order list podL [nbNd] is set as the node indicated by the index register nix.
【0115】このようにステップF407〜F411の処理が行
なわれた場合は、上述のように、対象ノードnbNdが
コスト最小ノードCsMより後ろの優先順序位置におい
てオーダーリストに組み込まれたものであるため、その
時点のコスト最小ノードCsMとされているノードは、
処理が最優先となるノードであることはかわりない。従
ってコスト最小ノードCsMについては更新の必要はな
い。When the processing of steps F407 to F411 is performed in this way, the target node nbNd is incorporated in the order list at the priority order position after the minimum cost node CsM, as described above. The node that is the minimum cost node CsM at that time is
The processing remains the highest priority node. Therefore, it is not necessary to update the minimum cost node CsM.
【0116】この図2の処理をまとめると次のようにな
る。対象ノードnbNdのコストがコスト最小ノードC
sMのコストより低い場合は、コスト最小ノードCsM
の直前の優先順序位置に対象ノードnbNdが組み込ま
れる。The processing of FIG. 2 is summarized as follows. The cost of the target node nbNd is the minimum cost node C
If it is lower than the cost of sM, the lowest cost node CsM
The target node nbNd is incorporated in the priority order position immediately before.
【0117】例えば、ノードNd(x) →ノードNd(y)
→ノードNd(z) という優先順序が設定されており、ノ
ードNd(y) がコスト最小ノードCsMであったとす
る。即ち、ノードNd(x) に続いて処理すべき次のノー
ドNd(y) がコスト最小ノードCsMとしてしめされて
いるとする。このときに、その優先順序はステップF402
〜F405でノードNd(x) →(対象ノードnbNd)→ノ
ードNd(y) →ノードNd(z) というように更新され、
またこれに応じてステップF406で対象ノードnbNdが
コスト最小ノードCsMとされ、ノードNd(x) に続い
て処理すべき次のノードとされることになる。For example, node Nd (x) → node Nd (y)
→ It is assumed that the priority order of the node Nd (z) is set and the node Nd (y) is the minimum cost node CsM. That is, it is assumed that the next node Nd (y) to be processed subsequent to the node Nd (x) is designated as the minimum cost node CsM. At this time, the priority order is step F402.
~ F405 is updated as follows: node Nd (x) → (target node nbNd) → node Nd (y) → node Nd (z),
Further, accordingly, the target node nbNd is set as the minimum cost node CsM in step F406, and is set as the next node to be processed following the node Nd (x).
【0118】一方、対象ノードnbNdのコストがコス
ト最小ノードCsMのコストより高い場合は、コスト最
小ノードCsMより後ろにおいて、そのコストに応じた
優先順序位置に対象ノードnbNdが組み込まれる。例
えば、ノードNd(x) →ノードNd(y) →ノードNd
(z) という優先順序が設定されており、ノードNd(x)
がコスト最小ノードCsMであったとする。そしてイン
デックスレジスタnixがノードNd(y) とされたとす
る。すると、優先順序はステップF408〜F411でノードN
d(x) →ノードNd(y) →(対象ノードnbNd)→ノ
ードNd(z) というように更新されることになる。On the other hand, when the cost of the target node nbNd is higher than the cost of the minimum cost node CsM, the target node nbNd is incorporated in the priority order position corresponding to the cost after the minimum cost node CsM. For example, node Nd (x) → node Nd (y) → node Nd
The priority order (z) is set, and the node Nd (x)
Is the minimum cost node CsM. Then, it is assumed that the index register nix is set to the node Nd (y). Then, the priority order is node N in steps F408 to F411.
It is updated as follows: d (x) → node Nd (y) → (target node nbNd) → node Nd (z).
【0119】 この図2の処理を、図5に
示した処理2の時点について見てみると、対象ノードn
bNdについての累計コスト、即ちコストテーブルcT
B[Nd3]の値は『10』である。またコスト最小ノ
ードCsMについての累計コスト、即ちコストテーブル
cTB[Nd1]の値は『13』である。従ってステッ
プF401では肯定結果が出てステップF402に進むことにな
る。そしてステップF402では、その時点で逆オーダーリ
ストpodL[CsM]は存在しないため、オーダーリ
ストodL[0]=ノードNd3とされる。つまり、ノ
ードNd3が優先順序の先頭とされる。Looking at the processing of FIG. 2 at the time of processing 2 shown in FIG. 5, the target node n
Cumulative cost for bNd, ie cost table cT
The value of B [Nd3] is "10". The cumulative cost for the minimum cost node CsM, that is, the value of the cost table cTB [Nd1] is “13”. Therefore, in step F401, a positive result is obtained and the process proceeds to step F402. Then, in step F402, since the reverse order list podL [CsM] does not exist at that time, the order list odL [0] = node Nd3 is set. That is, the node Nd3 is the first in the priority order.
【0120】続いてステップF403で、『オーダーリスト
odL[0]=ノードNd3』の逆オーダーリストとし
て逆オーダーリストpodL[Nd3]=0というデー
タが生成される。Then, in step F403, data of the reverse order list podL [Nd3] = 0 is generated as the reverse order list of "order list odL [0] = node Nd3".
【0121】またステップF404でオーダーリストodL
[Nd3]=ノードNd1とうデータが生成され、さら
にステップF405で、『オーダーリストodL[Nd3]
=ノードNd1』の逆となる、逆オーダーリストodL
[Nd1]=ノードNd3というデータが生成される。
以上により、オーダーリスト及び逆オーダーリストは図
5のようになり、この状態のオーダーリストにより、処
理の優先順位としてNd3→Nd1という順序が示され
る。In step F404, the order list odL
[Nd3] = node Nd1 data is generated, and in step F405, “order list odL [Nd3]
= Reverse order list odL, which is the reverse of "node Nd1"
Data of [Nd1] = node Nd3 is generated.
As described above, the order list and the reverse order list are as shown in FIG. 5, and the order list in this state indicates the order of Nd3 → Nd1 as the processing priority.
【0122】そしてステップF406で、コスト最小ノード
CsMとして対象ノードnbNdが代入され、従って図
5のようにコスト最小ノードCsM=ノードNd3とな
る。Then, in step F406, the target node nbNd is substituted as the minimum cost node CsM, so that the minimum cost node CsM = node Nd3 as shown in FIG.
【0123】この図2に示した処理を終えると、続いて
図1のステップF320に進み、まず道路数RNを確認す
る。そしてステップF321に進み、現ノードcurNdに
ついて全ての隣接ノードをそれぞれ対象ノードnbNd
として設定し、処理を実行したか否かの判断を行なう。When the processing shown in FIG. 2 is finished, the program proceeds to step F320 of FIG. 1 to first confirm the number of roads RN. Then, the process proceeds to step F321, in which all the adjacent nodes of the current node curNd are set to the target node nbNd.
Then, it is determined whether or not the process is executed.
【0124】処理2の時点でもまだノードNd2と隣接
するノードNd4については処理は終っていないため、
ステップF304に戻って次に処理を行なうノード間の設定
を行なう。この場合、現ノードcurNdは変更せずノ
ードNd2のままで、対象ノードnbNdを、図16の
隣接ノードテーブルを参照して、次の隣接ノードである
ノードNd4とすることになる。これにより処理3とし
てのノード間(Nd2→Nd4)が設定される。つまり
この処理3は、図6に示すように現ノードcurNd=
ノードNd2、対象ノードnbNd=ノードNd4とさ
れている間の処理となる。At the time of processing 2, the processing has not been completed for the node Nd4 adjacent to the node Nd2.
Returning to step F304, the settings for the nodes to be processed next are set. In this case, the current node curNd is not changed and remains the node Nd2, and the target node nbNd is referred to as the next adjacent node Nd4 by referring to the adjacent node table in FIG. As a result, the node 3 (Nd2 → Nd4) is set as the process 3. That is, this process 3 is performed by the current node curNd =
The process is performed while the node Nd2 and the target node nbNd = node Nd4.
【0125】この処理3では、ステップF305からF306と
進んだ際に、対象ノードnbNd=ノードNd4である
ために肯定結果が出ることになる。このためステップF3
07に進み、道路数RNをデクリメントした後、ステップ
F308に進むことになる。従って道路数RN=2に更新さ
れる。In this process 3, when the process proceeds from step F305 to F306, a positive result is obtained because the target node nbNd = node Nd4. For this reason step F3
Go to 07, decrement road number RN, then step
You will proceed to F308. Therefore, the number of roads is updated to RN = 2.
【0126】ステップF308ではノード間(Nd2→Nd
4)のコストが算出され、ステップF309で対象ノードn
bNd(ノードNd4)までの累計コストcurCTが
算出される。またステップF310で変数itが設定され
る。この場合、図6に示すように累計コストcurCt
=14となり、また変数it=空となる。In step F308, between nodes (Nd2 → Nd
The cost of 4) is calculated, and the target node n is calculated in step F309.
The cumulative cost curCT up to bNd (node Nd4) is calculated. The variable it is set in step F310. In this case, as shown in FIG. 6, the cumulative cost curCt
= 14 and the variable it = empty.
【0127】そして変数it=空であるためステップF3
11からF312に進み、コストテーブルcTB及びパステー
ブルpTBの設定を行なう。そして図6に示すように、
コストテーブルcTB[Nd4]=14、パステーブル
pTB[Nd4]=Nd2というデータが追加設定され
る。Since the variable it = empty, step F3
The process proceeds from 11 to F312 to set the cost table cTB and the path table pTB. And as shown in FIG.
The cost table cTB [Nd4] = 14 and the path table pTB [Nd4] = Nd2 are additionally set.
【0128】次にステップF313→F317→F319と進み、図
2の処理が行なわれる。この場合、対象ノードnbNd
についての累計コスト、即ちコストテーブルcTB[N
d4]の値は『14』である。またコスト最小ノードC
sMについての累計コスト、即ちコストテーブルcTB
[Nd3]の値は『10』である。従ってステップF401
では否定結果が出てステップF407に進むことになる。そ
してステップF407では、図6のようにインデックスレジ
スタnix=ノードNd1となる。Next, the process proceeds to steps F313 → F317 → F319, and the processing shown in FIG. 2 is performed. In this case, the target node nbNd
For the total cost, that is, the cost table cTB [N
The value of d4] is “14”. Also, the minimum cost node C
Cumulative cost for sM, that is, cost table cTB
The value of [Nd3] is "10". Therefore step F401
Then, a negative result is output and the process proceeds to step F407. Then, in step F407, the index register nix = node Nd1 as shown in FIG.
【0129】続いてステップF408では、その時点でオー
ダーリストodL[Nd1]が存在しないため、オーダ
ーリストodL[Nd4]=0とされる。さらにステッ
プF409で、逆オーダーリストpodL[0]=Nd4と
いうデータが生成される。Subsequently, at step F408, since the order list odL [Nd1] does not exist at that time, the order list odL [Nd4] = 0 is set. Further, in step F409, data of the reverse order list podL [0] = Nd4 is generated.
【0130】またステップF410でオーダーリストodL
[Nd1]=ノードNd4とうデータが生成され、さら
にステップF411で、逆オーダーリストodL[Nd4]
=ノードNd1というデータが生成される。In step F410, the order list odL
[Nd1] = node Nd4 data is generated, and in step F411, reverse order list odL [Nd4].
= Data of node Nd1 is generated.
【0131】以上により、オーダーリスト及び逆オーダ
ーリストとしてのデータは図6のようになり、この状態
のオーダーリストにより、処理の優先順位としてNd3
→Nd1→Nd4という順序が示される。From the above, the data as the order list and the reverse order list are as shown in FIG. 6, and the order list in this state gives Nd3 as the processing priority.
The order of → Nd1 → Nd4 is shown.
【0132】続いて図1のステップF320→F321と進み、
現ノードcurNdについて全ての隣接ノードをそれぞ
れ対象ノードnbNdとして設定し、処理を実行したか
否かの判断を行なう。処理3の時点においてはノードN
d2と隣接する全てのノードNd1,Nd3,Nd4に
ついては処理は終ったことになるため、ステップF322に
進み、その時点でコスト最小ノードCsMとされている
ノードを現ノードcurNdとする。この時点ではコス
ト最小ノードCsM=Nd3(図5参照)となってい
る。従って次の処理のための現ノードcurNdはノー
ドNd3とされることになる。Then, the process proceeds from step F320 to F321 in FIG.
All the adjacent nodes of the current node curNd are set as the target node nbNd, and it is determined whether or not the process has been executed. Node N at the time of processing 3
Since the processing is completed for all the nodes Nd1, Nd3, Nd4 adjacent to d2, the process proceeds to step F322, and the node having the minimum cost node CsM at that time is set as the current node curNd. At this point, the minimum cost node CsM = Nd3 (see FIG. 5). Therefore, the current node curNd for the next process is set to the node Nd3.
【0133】次にステップF323においてコスト最小ノー
ドCsMを、オーダーリストodL上で現在のコスト最
小ノードCsMの次の優先順位となっているノードに更
新する。つまりオーダーリストodL[CsM]の値を
コスト最小ノードCsMとする。この場合オーダーリス
トodL[CsM]はodL[Nd3]であり、その値
はノードNd1である(図6参照)。つまりコスト最小
ノードCsMはノードNd1に更新される。Next, in step F323, the minimum cost node CsM is updated to the node having the next highest priority on the order list odL after the current minimum cost node CsM. That is, the value of the order list odL [CsM] is set as the minimum cost node CsM. In this case, the order list odL [CsM] is odL [Nd3] and its value is the node Nd1 (see FIG. 6). That is, the minimum cost node CsM is updated to the node Nd1.
【0134】そしてステップF324では現ノードcurN
dが空であるか否かを判断し、空ではないためステップ
F304に戻って現ノードcurNdを起点とした場合の対
象ノードnbNdを設定する。現ノードcurNdはノ
ードNd3であるため、図16の隣接ノードテーブルか
ら先ず対象ノードnbNdはノードNd2とされる。こ
のように現ノードcurNd=ノードNd3、対象ノー
ドnbNd=ノードNd2とされることで、処理4とし
てのノード間(Nd3→Nd2)が設定されることにな
る。ここまでの現ノードcurNd、対象ノードnbN
dの設定値、及びコスト最小ノードCsMの更新値は、
図7において示される。Then, in step F324, the current node curN
Determine if d is empty, not step
Returning to F304, the target node nbNd when the current node curNd is set as the starting point is set. Since the current node curNd is the node Nd3, the target node nbNd is first set to the node Nd2 from the adjacent node table of FIG. By setting the current node curNd = node Nd3 and the target node nbNd = node Nd2 as described above, the inter-node (Nd3 → Nd2) is set as the process 4. Current node curNd so far, target node nbN
The set value of d and the updated value of the minimum cost node CsM are
Shown in FIG.
【0135】ところが、この処理4では、ステップF305
で肯定結果が得られる。即ち処理4としてのノード間
(Nd3→Nd2)の逆ノード間となるノード間(Nd
2→Nd3)については処理2において実行済である。
従ってノード間(Nd3→Nd2)の処理は不要とな
り、処理パスとしてステップF320に進む。さらに、道路
数RNは『0』ではないため、ステップF321に進む。However, in this processing 4, step F305
Gives a positive result. That is, as the process 4, between nodes (Nd3 → Nd2) which is a reverse node between nodes (Nd3).
2 → Nd3) has already been executed in the process 2.
Therefore, the processing between nodes (Nd3 → Nd2) is not necessary, and the process proceeds to step F320. Further, since the number of roads RN is not "0", the process proceeds to step F321.
【0136】次の処理5としてはステップF321→F304と
進んで、図8のように現ノードcurNd=ノードNd
3、対象ノードnbNd=ノードNd6とされ、ノード
間(Nd3→Nd6)の処理が行なわれる。この場合、
処理はステップF305→F306→F308→F309→F310→F311→
F312→F313と進んでいく。そしてこの処理においては、
図8のように累計コストcurCt=29となり、また
変数it=空となる。なお、この場合の累計コストcu
rCtとは、ノードNd2→Nd3間のコスト『10』
と、ノードNd3→Nd6間のコスト『19』が累計さ
れたものである。As the next processing 5, the process proceeds from step F321 to F304, and the current node curNd = node Nd as shown in FIG.
3, target node nbNd = node Nd6, and processing between nodes (Nd3 → Nd6) is performed. in this case,
The process is steps F305 → F306 → F308 → F309 → F310 → F311 →
Go from F312 to F313. And in this process,
As shown in FIG. 8, the cumulative cost curCt = 29 and the variable it = empty. The cumulative cost cu in this case
rCt is the cost “10” between the node Nd2 and Nd3.
And the cost “19” between the nodes Nd3 → Nd6 is accumulated.
【0137】そしてコストテーブルcTB[Nd6]=
29、パステーブルpTB[Nd6]=Nd3というデ
ータが追加設定される。そしてオーダーリストの処理と
してステップF319では、図2のステップF401で否定結果
が出、ステップF407でインデックスレジスタnix=ノ
ードNd4とされ、ステップF408〜F411の処理が行なわ
れる。つまり、オーダリストodL[Nd6]=0、逆
オーダリストpodL[0]=Nd6、オーダリストo
dL[Nd4]=Nd6、逆オーダリストpodL[N
d6]=Nd4というデータが追加される。この状態の
オーダーリストにより、処理の優先順位としてNd3→
Nd1→Nd4→Nd6という順序が示されることにな
る。Then, the cost table cTB [Nd6] =
29, data of path table pTB [Nd6] = Nd3 is additionally set. Then, in step F319 as the processing of the order list, a negative result is obtained in step F401 of FIG. 2, the index register nix = node Nd4 is set in step F407, and the processing of steps F408 to F411 is performed. That is, the order list odL [Nd6] = 0, the reverse order list podL [0] = Nd6, the order list o
dL [Nd4] = Nd6, reverse order list podL [N
Data of d6] = Nd4 is added. According to the order list in this state, Nd3 →
The order of Nd1 → Nd4 → Nd6 is shown.
【0138】次の処理6としては、現ノードcurNd
=Nd3とした場合の全ての隣接ノードの処理が終了し
ているため、図9に示すようにステップF322で現ノード
curNd=Nd1とされる。つまり、オーダーリスト
上でノードNd3の次の優先順序とされているノードN
d1が次の処理として選択される。そしてステップF323
でコスト最小ノードCsM=ノードNd4とされる。As the next processing 6, the current node curNd
= Nd3, all the adjacent nodes have been processed, so that the current node curNd = Nd1 is set in step F322 as shown in FIG. That is, the node N that is the next priority order of the node Nd3 on the order list
d1 is selected as the next process. And step F323
Then, the minimum cost node CsM = node Nd4 is set.
【0139】またステップF304で対象ノードnbNd=
ノードNd2とされ、処理6としてのノード間(Nd1
→Nd2)が設定される。ところが逆ノード間となるノ
ード間(Nd2→Nd1)については処理1において実
行済であるため、ステップF305で肯定結果が得られ、処
理パスとしてステップF320に進み、さらに道路数RNは
『0』でないためステップF321に進む。In step F304, the target node nbNd =
The node Nd2 is defined as the node Nd2, and the node 6 (Nd1
→ Nd2) is set. However, for the nodes between the opposite nodes (Nd2 → Nd1), since the process 1 has already been executed, a positive result is obtained in step F305, the process proceeds to step F320, and the number of roads RN is not “0”. Therefore, the process proceeds to step F321.
【0140】次の処理7としてはステップF321→F304と
進んで、図10のように現ノードcurNd=ノードN
d1、対象ノードnbNd=ノードNd5とされ、ノー
ド間(Nd1→Nd5)の処理が行なわれる。この場
合、処理はステップF305→F306→F308→F309→F310→F3
11→F312→F313→F317→F319と進んでいく。そしてこの
処理においては、図10のように累計コストcurCt
=31となり、また変数it=空となる。この場合の累
計コストcurCtとは、ノードNd2→Nd1間のコ
スト『13』と、ノードNd1→Nd5間のコスト『1
8』が累計されたものである。As the next processing 7, the process proceeds from step F321 to F304, and the current node curNd = node N as shown in FIG.
d1 and target node nbNd = node Nd5 are set, and processing between nodes (Nd1 → Nd5) is performed. In this case, the process is steps F305 → F306 → F308 → F309 → F310 → F3
11 → F312 → F313 → F317 → F319. Then, in this process, as shown in FIG. 10, the accumulated cost curCt
= 31 and the variable it = empty. The cumulative cost curCt in this case is the cost “13” between the nodes Nd2 and Nd1 and the cost “1 between the nodes Nd1 and Nd5.
8 ”is a cumulative total.
【0141】そしてコストテーブルcTB[Nd5]=
31、パステーブルpTB[Nd5]=Nd1というデ
ータが追加設定される。続いてオーダーリストの処理と
してステップF319では、図2のステップF401で否定結果
が出、ステップF407でインデックスレジスタnix=ノ
ードNd6とされ、ステップF408〜F411の処理が行なわ
れる。そして、オーダリストodL[Nd5]=0、逆
オーダリストpodL[0]=Nd5、オーダリストo
dL[Nd6]=Nd5、逆オーダリストpodL[N
d5]=Nd5というデータが追加又は書換により設定
される。この状態のオーダーリストにより、処理の優先
順位としてNd3→Nd1→Nd4→Nd6→Nd5と
いう順序が示されることになる。Then, the cost table cTB [Nd5] =
31 and data of path table pTB [Nd5] = Nd1 is additionally set. Then, in step F319 as the processing of the order list, a negative result is obtained in step F401 of FIG. 2, the index register nix = node Nd6 is set in step F407, and the processing of steps F408 to F411 is performed. Then, the order list odL [Nd5] = 0, the reverse order list podL [0] = Nd5, the order list o
dL [Nd6] = Nd5, reverse order list podL [N
Data of d5] = Nd5 is set by addition or rewriting. The order list in this state indicates the order of processing priority as Nd3 → Nd1 → Nd4 → Nd6 → Nd5.
【0142】次の処理8としては、現ノードcurNd
=Nd1とした場合の全ての隣接ノードの処理が終了し
ているため、図11に示すようにステップF322で現ノー
ドcurNd=Nd4とされる。つまり、オーダーリス
ト上でノードNd1の次の優先順序となるノードNd4
が次の処理として選択される。そしてステップF323でコ
スト最小ノードCsM=ノードNd6と更新される。ま
たステップF304で対象ノードnbNd=ノードNd2と
され、処理8としてのノード間(Nd4→Nd2)が設
定される。As the next processing 8, the current node curNd
= Nd1 has been processed for all adjacent nodes, the current node curNd = Nd4 is set in step F322 as shown in FIG. That is, the node Nd4, which has the next priority order of the node Nd1 on the order list,
Is selected as the next process. Then, in step F323, the minimum cost node CsM = node Nd6 is updated. Further, in step F304, the target node nbNd = node Nd2 is set, and the inter-node (Nd4 → Nd2) is set as the process 8.
【0143】ところが、逆ノード間となるノード間(N
d2→Nd4)については処理3において実行済である
ため、ステップF305で肯定結果が得られ、処理パスとし
てステップF320→F321と進む。However, between nodes (N
Since d2 → Nd4) has already been executed in the process 3, a positive result is obtained in step F305, and the process advances from step F320 to F321.
【0144】次の処理9としてはステップF321→F304と
進んで、図12のように現ノードcurNd=ノードN
d4、対象ノードnbNd=ノードNd5とされ、ノー
ド間(Nd4→Nd5)の処理が行なわれる。この場
合、ゴールノードNd4が処理対象の一端となっている
ため、ステップF306→F307と進み、道路数RNがデクリ
メントされ、道路数RN=1となる。そしてステップF3
08→F309と進み、累計コストcurCtは、ノードNd
2→Nd4間のコスト『14』と、ノードNd4→Nd
5間のコスト『12』が累計された値として累計コスト
curCt=26となる。As the next processing 9, the process proceeds from step F321 to F304, and the current node curNd = node N as shown in FIG.
The target node nbNd = node Nd5 is set as d4, and the processing between nodes (Nd4 → Nd5) is performed. In this case, since the goal node Nd4 is one end of the processing target, the process proceeds from step F306 to F307, the road number RN is decremented, and the road number RN = 1. And step F3
The process proceeds from 08 to F309, and the cumulative cost curCt is the node Nd.
Cost "14" between 2 and Nd4 and node Nd4 → Nd
The cumulative cost curCt = 26 is a value obtained by accumulating the cost “12” between the five.
【0145】ここでステップF310では、変数it=31
となる。つまり、この時点では処理7において生成され
たコストテーブル[Nd5]=31というデータが存在
しているため、その値が変数itに代入される。Here, in step F310, the variable it = 31
Becomes That is, at this point, the cost table [Nd5] = 31 data generated in the process 7 exists, so that value is substituted for the variable it.
【0146】そしてステップF311では、変数it(=3
1)>累計コストcurCt(=26)という結果が得
られるためステップF312に進み、コストテーブルcTB
[Nd5]=26、パステーブルpTB[Nd5]=N
d4というデータが設定される。これによりそれまで存
在していたコストテーブルcTB[Nd5]=31、パ
ステーブルpTB[Nd5]=Nd1というデータは削
除されたことになる。つまり、コストテーブルcTB
[Nd5],パステーブルpTB[Nd5]は書き換え
られることになる。Then, in step F311, the variable it (= 3
1)> total cost curCt (= 26) is obtained, so the process proceeds to step F312 and the cost table cTB
[Nd5] = 26, path table pTB [Nd5] = N
Data of d4 is set. As a result, the existing data of the cost table cTB [Nd5] = 31 and the path table pTB [Nd5] = Nd1 has been deleted. That is, the cost table cTB
[Nd5] and the path table pTB [Nd5] will be rewritten.
【0147】続いてステップF313では、変数it(=3
1)>累計コストcurCt(=26)という結果が得
られるためステップF314に進み、ステップF314では対象
ノードnbNd(=ノードNd5)とコスト最小ノード
CsM(=ノードNd6)は一致していないため、ステ
ップF316に進むことになる。このような場合は、上記の
ようにコストテーブルcTBが更新されたことに応じて
それまでのオーダーリストodLとしての優先順序を入
れ換える必要が生じた場合であり、まずステップF316に
おいて対象ノードnbNdをオーダーリストodLから
除く処理を行ない、その後ステップF319で適正なオーダ
ーリストを再構成することになる。Subsequently, in step F313, the variable it (= 3
1)> The total cost curCt (= 26) is obtained, and therefore the process proceeds to step F314. At step F314, the target node nbNd (= node Nd5) and the minimum cost node CsM (= node Nd6) do not match. You will proceed to F316. In such a case, it is necessary to change the priority order as the order list odL up to that time in response to the cost table cTB being updated as described above. First, in step F316, the target node nbNd is ordered. The process of removing from the list odL is performed, and then an appropriate order list is reconstructed in step F319.
【0148】なお、ステップF314で肯定結果が出た場合
は、ステップF315において対象ノ−ドnbNdについて
オ−ダ−リスト上で示されるノ−ド、つまり対象ノ−ド
nbNdの次の優先順位となっているノ−ドが、コスト
最小ノ−ドCsMとされる。If an affirmative result is obtained in step F314, the node indicated on the order list for the target node nbNd, that is, the next priority of the target node nbNd, is determined in step F315. The node that has become the minimum cost node CsM.
【0149】ステップF316の処理は図3に示すようにな
る。この処理は対象ノードnbNd(=ノードNd5)
を優先順序上、即ちオーダーリスト上で削除するもので
あるが、この際に逆オーダーリストpodLを用いるこ
とで、図3のような非常に簡単な処理で実現される。ま
ずステップF501として、対象ノードnbNdについての
逆オーダーリストpodLに示されているノードについ
て、そのノードのオーダーリストの値を、対象ノードn
bNdについてのオーダーリストに示されていた値とす
る。即ちオーダーリストodL[podL[nbN
d]]の値として、オーダーリストodL[nbNd]
の値を代入する。これにより、オーダーリスト上で、ノ
ードnd(x) →対象ノードnbNd→ノードnd(y) と
いう優先順序が設定されていたときに、その優先順序が
ノードnd(x) →ノードnd(y) とされることになる。The process of step F316 is as shown in FIG. This process is performed on the target node nbNd (= node Nd5)
Is deleted on the priority order, that is, on the order list. By using the reverse order list podL at this time, it is realized by a very simple process as shown in FIG. First, in step F501, for the node indicated in the reverse order list podL for the target node nbNd, the value of the order list of that node is set to the target node n.
Let it be the value shown in the order list for bNd. That is, the order list odL [podL [nbN
d]] as the value of the order list odL [nbNd]
Substitute the value of. As a result, when the priority order of node nd (x) → target node nbNd → node nd (y) is set on the order list, the priority order is node nd (x) → node nd (y). Will be done.
【0150】またステップF501で生成されたオーダーリ
ストに対応してステップF502で逆オーダーリストを生成
する。これは対象ノードnbNdについてのオーダーリ
ストodLに示されているノードについて、そのノード
の逆オーダーリストの値を、対象ノードnbNdについ
ての逆オーダーリストに示されていた値とする。即ち逆
オーダーリストpodL[odL[nbNd]]の値と
して、逆オーダーリストpodL[nbNd]の値を代
入する。In addition, an inverse order list is created in step F502 corresponding to the order list created in step F501. This sets the value of the reverse order list of the node shown in the order list odL for the target node nbNd to the value shown in the reverse order list for the target node nbNd. That is, the value of the reverse order list podL [nbNd] is substituted as the value of the reverse order list podL [odL [nbNd]].
【0151】本実施例ではオーダーリストodLに加え
て逆オーダーリストpodLが設定されていることによ
り、或るノードについての優先順序における前後の両方
のノードが把握でき、従って或るノードを優先順序から
外す場合には、このように非常に簡単な処理を実行すれ
ば良いものとなる。In this embodiment, since the reverse order list podL is set in addition to the order list odL, both the nodes before and after in the priority order of a certain node can be grasped, so that the certain node can be changed from the priority order. If it is removed, it suffices to execute such a very simple process.
【0152】続いてステップF319に進むと、この場合、
対象ノードnbNdについての累計コスト、即ちコスト
テーブルcTB[Nd5]の値は『26』である。また
コスト最小ノードCsMについての累計コスト、即ちコ
ストテーブルcTB[Nd6]の値は『29』である。
従ってステップF401では肯定結果が出てステップF402に
進むことになる。Subsequently, proceeding to step F319, in this case,
The cumulative cost for the target node nbNd, that is, the value of the cost table cTB [Nd5] is “26”. The cumulative cost for the minimum cost node CsM, that is, the value of the cost table cTB [Nd6] is “29”.
Therefore, in step F401, a positive result is obtained and the process proceeds to step F402.
【0153】そしてステップF402〜F406の処理におい
て、オーダリストodL[Nd4]=Nd5、逆オーダ
リストpodL[Nd5]=Nd4、オーダリストod
L[Nd5]=Nd6、逆オーダリストpodL[Nd
6]=Nd5というデータが書換により設定される。ま
たコスト最小ノードCsMはノードNd5に更新され
る。以上により、オーダーリスト及び逆オーダーリスト
は図12のようになり、この状態のオーダーリストによ
り、処理の優先順序はNd3→Nd1→Nd4→Nd5
→Nd6というように変更されたことになる。In the processing of steps F402 to F406, the order list odL [Nd4] = Nd5, the reverse order list podL [Nd5] = Nd4, the order list od.
L [Nd5] = Nd6, reverse order list podL [Nd
6] = Nd5 data is set by rewriting. The minimum cost node CsM is updated to the node Nd5. As a result, the order list and the reverse order list are as shown in FIG. 12, and the priority order of processing is Nd3 → Nd1 → Nd4 → Nd5 according to the order list in this state.
→ It has been changed to Nd6.
【0154】次の処理10としてはステップF320→F321
→F304と進んで、図13のように現ノードcurNd=
ノードNd4、対象ノードnbNd=ノードNd6とさ
れ、ノード間(Nd4→Nd6)の処理が行なわれる。The next process 10 is step F320 → F321.
→ Proceed to F304, and as shown in FIG. 13, current node curNd =
Node Nd4 and target node nbNd = node Nd6 are set, and processing between nodes (Nd4 → Nd6) is performed.
【0155】この場合もゴールノードNd4が処理対象
の一端となっているため、ステップF306→F307と進み、
道路数RNがデクリメントされ、道路数RN=0とな
る。そしてステップF308→F309と進み、この処理におい
ては、累計コストcurCtは、ノードNd2→Nd4
間のコスト『14』と、ノードNd4→Nd5間のコス
ト『11』が累計された値として累計コストcurCt
=25となる。In this case also, since the goal node Nd4 is one end of the processing target, the process proceeds from step F306 to F307,
The road number RN is decremented, and the road number RN = 0. Then, the process proceeds from step F308 to F309, and in this process, the cumulative cost curCt is the node Nd2 → Nd4.
The cumulative cost curCt as a value obtained by accumulating the cost "14" between the nodes Nd4 and Nd5
= 25.
【0156】ここでステップF310では、変数it=29
となる。つまり、この時点では処理5において生成され
たコストテーブル[Nd6]=29というデータが存在
しているため、その値が変数itに代入される。Here, in step F310, the variable it = 29.
Becomes That is, at this point, the cost table [Nd6] = 29 data generated in process 5 exists, so that value is substituted for the variable it.
【0157】そしてステップF311では、変数it(=2
9)>累計コストcurCt(=25)という結果が得
られるためステップF312に進み、コストテーブルcTB
[Nd6]=25、パステーブルpTB[Nd6]=N
d4というデータが設定される。これによりそれまで存
在していたコストテーブルcTB[Nd6]=29、パ
ステーブルpTB[Nd6]=Nd3というデータは削
除されたことになる。つまり、コストテーブルcTB
[Nd6],パステーブルpTB[Nd6]が書き換え
られたことになる。Then, in step F311, the variable it (= 2
9)> total cost curCt (= 25) is obtained, so the process proceeds to step F312 and the cost table cTB
[Nd6] = 25, path table pTB [Nd6] = N
Data of d4 is set. As a result, the existing data of the cost table cTB [Nd6] = 29 and the path table pTB [Nd6] = Nd3 has been deleted. That is, the cost table cTB
[Nd6] and the path table pTB [Nd6] are rewritten.
【0158】続いてステップF313では、変数it(=2
9)>累計コストcurCt(=25)という結果が得
られるためステップF314に進み、この場合も対象ノード
nbNd(=ノードNd6)とコスト最小ノードCsM
(=ノードNd5)は一致しないため、ステップF316に
進んで、図3の処理で対象ノードnbNd(=ノードN
d6)をオーダーリストodLから除くことになる。こ
の場合、オーダーリストodL[Nd5]=0と更新し
(F501)、また逆オーダーリストpodL[0]=Nd5
と更新することで(F502)、ノードNd6がオーダーリス
トodLから除かれる。Then, in step F313, the variable it (= 2
9)> the result of cumulative cost curCt (= 25) is obtained, and therefore the process proceeds to step F314, and in this case also, the target node nbNd (= node Nd6) and the minimum cost node CsM are obtained.
Since (= node Nd5) does not match, the process proceeds to step F316, and the target node nbNd (= node Nd in the process of FIG. 3 is performed.
d6) will be removed from the order list odL. In this case, update the order list odL [Nd5] = 0
(F501), and reverse order list podL [0] = Nd5
By updating (F502), the node Nd6 is removed from the order list odL.
【0159】続いてステップF319に進むと、この場合、
対象ノードnbNdについての累計コスト、即ちコスト
テーブルcTB[Nd6]の値は『25』である。また
コスト最小ノードCsMについての累計コスト、即ちコ
ストテーブルcTB[Nd5]の値は『26』である。
従ってステップF401では肯定結果が出てステップF402に
進むことになる。Subsequently, proceeding to step F319, in this case,
The cumulative cost for the target node nbNd, that is, the value of the cost table cTB [Nd6] is “25”. The cumulative cost for the minimum cost node CsM, that is, the value of the cost table cTB [Nd5] is "26".
Therefore, in step F401, a positive result is obtained and the process proceeds to step F402.
【0160】そしてステップF402〜F406の処理におい
て、オーダリストodL[Nd4]=Nd6、逆オーダ
リストpodL[Nd6]=Nd4、オーダリストod
L[Nd6]=Nd5、逆オーダリストpodL[Nd
5]=Nd6というデータが書換により設定される。ま
たコスト最小ノードCsMはノードNd6に更新され
る。以上により、オーダーリスト及び逆オーダーリスト
は図13のようになり、この状態のオーダーリストによ
り、処理の優先順序はNd3→Nd1→Nd4→Nd6
→Nd5に再び変更されたことになる。In the processing of steps F402 to F406, the order list odL [Nd4] = Nd6, the reverse order list podL [Nd6] = Nd4, the order list od.
L [Nd6] = Nd5, reverse order list podL [Nd
5] = Nd6 data is set by rewriting. The minimum cost node CsM is updated to the node Nd6. As a result of the above, the order list and the reverse order list are as shown in FIG. 13. With the order list in this state, the priority order of processing is Nd3 → Nd1 → Nd4 → Nd6.
→ It has been changed to Nd5 again.
【0161】続いてステップF320に進むことになるが、
この時点で道路数RN=0となっている。従ってステッ
プF320で肯定結果が出、一連の経路探索処理が終了され
ることになる。ステップF320で道路数RN=0となって
いる場合とは、ゴールノードに関するノード間の処理は
全て終了した場合である。従って、それ以外のノード間
の処理は実際には不要な処理となり、ステップF320から
終了することで、無駄な処理を省略し、処理の迅速化を
計ることができる。Next, in step F320,
At this point, the number of roads RN = 0. Therefore, an affirmative result is obtained in step F320, and the series of route search processing ends. The case where the number of roads RN = 0 in step F320 is a case where all the processing between the nodes regarding the goal node is completed. Therefore, the processing between the other nodes is actually unnecessary processing, and by ending from step F320, it is possible to omit unnecessary processing and speed up the processing.
【0162】このように経路探索としての処理が終了し
た時点で、最短経路は図13の状態におけるパステーブ
ルpTBとコストテーブルcTBに表われることにな
る。つまり、ゴールノードはノードNd4であるとこ
ろ、パステーブルpTB[Nd4]=ノードNd2とあ
らわれており、またコストテーブルcTB[Nd4]=
14となっている。そしてスタートノードはノードNd
2であるため、この場合、ノードNd2→Nd4の経路
が最短経路として求められることになる。When the processing as the route search is thus completed, the shortest route appears in the path table pTB and the cost table cTB in the state of FIG. That is, although the goal node is the node Nd4, the path table pTB [Nd4] = node Nd2 appears, and the cost table cTB [Nd4] =
It is 14. And the start node is the node Nd
Therefore, in this case, the route of the node Nd2 → Nd4 is obtained as the shortest route.
【0163】本実施例の経路探索方法は以上のように実
行されるわけであるが、この実施例では最短経路の判定
までの処理の迅速化、効率化が計られるとともに、ソフ
トウエアとしての実際のプログラム上でも、見通しの良
いプログラムを実現できることになる。The route search method of this embodiment is executed as described above, but in this embodiment, the process up to the determination of the shortest route can be speeded up and the efficiency can be improved, and the route search method can be practically used as software. Even with this program, you can realize a program with good visibility.
【0164】即ち、ステップF316において或るノードを
オーダーリスト上から除く際には、逆オーダーリストを
用いることで、非常に簡単な処理で良いものとなり、従
来のようにオーダーリストとしてのデータを順に検索し
ていって、対象ノードnbNdの位置の前後のデータを
判別し、更新するという煩雑な計算が不要となる。これ
によって処理の迅速化、プログラムの簡略化が実現でき
る。That is, when a node is removed from the order list in step F316, a very simple process can be performed by using the reverse order list, and the data as the order list can be sequentially processed as in the conventional case. It is unnecessary to perform a complicated calculation of searching and determining the data before and after the position of the target node nbNd and updating the data. This makes it possible to speed up the process and simplify the program.
【0165】また、ステップF319でのオーダーリストの
更新処理については、最初にコスト最小ノードについて
の累計コストと対象ノードの累計コストを比較して場合
分けを行なうようにすることで、2系統の処理を構成す
れば良いものとなり、複雑な分岐処理は不要となるとと
もに、インデックスレジスタも1つでよいことになる。
これも処理の迅速化、プログラムの簡略化に貢献するこ
とになる。Regarding the update processing of the order list in step F319, the total cost of the minimum cost node and the total cost of the target node are first compared to perform case classification, so that the processing of two systems is performed. Is required, complicated branch processing is not required, and only one index register is required.
This also contributes to speeding up the processing and simplifying the program.
【0166】さらに、予めゴールノードからの道路数R
Nを設定しておき、ゴールノードまでの必要なノード間
処理が全て済んだ時点で処理を終了するようにしている
ため、無駄な処理が省略でき、処理時間の短縮化に非常
に効果的なものとなる。Furthermore, the number of roads R from the goal node is set in advance.
Since N is set and the processing is terminated when all the required inter-node processing up to the goal node is completed, wasteful processing can be omitted and it is very effective in shortening the processing time. Will be things.
【0167】なお、本発明の経路探索方法としては、実
施例の方法に限られず、要旨の範囲内で各種変更可能で
あることはいうまでもない。It is needless to say that the route search method of the present invention is not limited to the method of the embodiment, and various changes can be made within the scope of the invention.
【0168】[0168]
【発明の効果】以上説明したように本発明の経路探索方
法は、或るノードを優先ノード順序内に組み込む処理の
際に、そのノード(対象ノード)での進行負担値と、処
理ノード変数として指定されているノード(コスト最小
ノード)の進行負担値を比較することで2つの場合分け
に基づいた第1又は第2の処理で、組み込みが可能とし
ているため、処理の迅速化及びプログラムの簡略化が実
現できるという効果がある。As described above, according to the route search method of the present invention, in the process of incorporating a certain node in the priority node order, the progress burden value at the node (target node) and the processing node variable are used. The progress load value of the designated node (minimum cost node) is compared to enable the incorporation in the first or second process based on the two cases, so that the process can be speeded up and the program can be simplified. There is an effect that can be realized.
【0169】また、逆優先順序を設定することにより、
或るノードを優先順序内から削除する際に、そのノード
の前後が把握できるため複雑な検索処理は不要となり、
これも処理の迅速化、プログラムの簡略化という効果を
得ることができる。Further, by setting the reverse priority order,
When deleting a node from the priority order, you can grasp the front and back of that node, so complicated search processing becomes unnecessary,
This also has the effect of speeding up the process and simplifying the program.
【0170】さらに、ゴールノードが含まれるノードに
ついて全ノード間の処理が終了した時点で処理を終了す
るようにしているため、不要な処理を省略でき、処理の
迅速化に著しく有効なものとなる。Furthermore, since the processing is completed when the processing between all the nodes including the goal node is completed, unnecessary processing can be omitted, which is extremely effective for speeding up the processing. .
【図1】本発明の実施例の経路探索方法の処理を示すフ
ローチャートである。FIG. 1 is a flowchart showing a process of a route search method according to an embodiment of the present invention.
【図2】実施例の経路探索方法におけるオーダーリスト
更新処理のフローチャートである。FIG. 2 is a flowchart of order list update processing in the route search method of the embodiment.
【図3】実施例の経路探索方法におけるオーダーリスト
更新処理のフローチャートである。FIG. 3 is a flowchart of order list update processing in the route search method of the embodiment.
【図4】実施例の経路探索方法の処理1期間の説明図で
ある。FIG. 4 is an explanatory diagram of a process 1 period of the route search method according to the embodiment.
【図5】実施例の経路探索方法の処理2期間の説明図で
ある。FIG. 5 is an explanatory diagram of a process 2 period of the route search method according to the embodiment.
【図6】実施例の経路探索方法の処理3期間の説明図で
ある。FIG. 6 is an explanatory diagram of processing period 3 of the route search method according to the embodiment.
【図7】実施例の経路探索方法の処理4期間の説明図で
ある。FIG. 7 is an explanatory diagram of Process 4 period of the route search method according to the embodiment.
【図8】実施例の経路探索方法の処理5期間の説明図で
ある。FIG. 8 is an explanatory diagram of processing 5 periods of the route search method according to the embodiment.
【図9】実施例の経路探索方法の処理6期間の説明図で
ある。FIG. 9 is an explanatory diagram of processing 6 periods of the route search method according to the embodiment.
【図10】実施例の経路探索方法の処理7期間の説明図
である。FIG. 10 is an explanatory diagram of Process 7 period of the route search method according to the embodiment.
【図11】実施例の経路探索方法の処理8期間の説明図
である。FIG. 11 is an explanatory diagram of processing 8 periods of the route search method according to the embodiment.
【図12】実施例の経路探索方法の処理9期間の説明図
である。FIG. 12 is an explanatory diagram of processing 9 periods of the route search method according to the embodiment.
【図13】実施例の経路探索方法の処理10期間の説明
図である。FIG. 13 is an explanatory diagram of processing 10 periods of the route search method according to the embodiment.
【図14】経路探索処理の基本処理の説明図である。FIG. 14 is an explanatory diagram of a basic process of a route search process.
【図15】経路探索処理を行なう道路例の説明図であ
る。FIG. 15 is an explanatory diagram of an example of a road that performs a route search process.
【図16】実施例及び従来例で用いられる隣接ノードテ
ーブルの説明図である。FIG. 16 is an explanatory diagram of an adjacent node table used in the example and the conventional example.
【図17】従来の経路探索方法の処理を示すフローチャ
ートである。FIG. 17 is a flowchart showing processing of a conventional route search method.
【図18】従来の経路探索方法におけるオーダーリスト
更新処理のフローチャートである。FIG. 18 is a flowchart of an order list update process in the conventional route search method.
【図19】従来の経路探索方法の処理1期間の説明図で
ある。FIG. 19 is an explanatory diagram of Process 1 period of the conventional route search method.
【図20】従来の経路探索方法の処理2期間の説明図で
ある。FIG. 20 is an explanatory diagram of Process 2 period of the conventional route search method.
【図21】従来の経路探索方法の処理3期間の説明図で
ある。FIG. 21 is an explanatory diagram of Process 3 period of the conventional route search method.
【図22】従来の経路探索方法の処理4期間の説明図で
ある。FIG. 22 is an explanatory diagram of processing 4 periods of the conventional route search method.
【図23】従来の経路探索方法の処理5期間の説明図で
ある。FIG. 23 is an explanatory diagram of processing 5 periods of the conventional route search method.
【図24】従来の経路探索方法の処理6期間の説明図で
ある。FIG. 24 is an explanatory diagram of processing 6 periods of the conventional route search method.
【図25】従来の経路探索方法の処理7期間の説明図で
ある。FIG. 25 is an explanatory diagram of processing 7 periods of the conventional route search method.
【図26】従来の経路探索方法の処理8期間の説明図で
ある。FIG. 26 is an explanatory diagram of processing 8 periods of the conventional route search method.
【図27】従来の経路探索方法の処理9期間の説明図で
ある。FIG. 27 is an explanatory diagram of processing 9 periods of the conventional route search method.
【図28】従来の経路探索方法の処理10期間の説明図
である。FIG. 28 is an explanatory diagram of processing 10 periods of the conventional route search method.
【図29】従来の経路探索方法の処理11期間の説明図
である。FIG. 29 is an explanatory diagram of processing 11 periods of the conventional route search method.
【図30】従来の経路探索方法の処理12期間の説明図
である。FIG. 30 is an explanatory diagram of processing 12 periods of the conventional route search method.
【図31】従来の経路探索方法の処理13期間の説明図
である。FIG. 31 is an explanatory diagram of processing 13 periods of the conventional route search method.
【図32】従来の経路探索方法の処理14期間の説明図
である。FIG. 32 is an explanatory diagram of processing 14 periods of the conventional route search method.
Nd1〜Nd6 ノード CsM コスト最小ノード pTB パステーブル cTB コストテーブル odL オーダーリスト podL 逆オーダーリスト RN 道路数 nbNd 対象ノード curNd 現ノード curCT 累計コスト Nd1 to Nd6 nodes CsM cost minimum node pTB path table cTB cost table odL order list podL reverse order list RN road number nbNd target node curNd current node curCT accumulated cost
Claims (3)
経路として、それぞれ異なるノードを経由していく複数
の経路が存在する場合に、スタートノードからゴールノ
ードまでの進行負担値が最小となる経路を探索する経路
探索方法として、 進行負担値の算出を行なうノードを示す処理ノード変数
に基づいて、経路を構成する所定のノード間での進行負
担値を算出する進行負担値算出手順と、 それまでに算出されている進行負担値から、各ノードに
ついて前記進行負担値算出処理の優先順序を設定する優
先ノード順序設定手順と、 設定された算出処理の優先順序に基づいて前記処理ノー
ド変数を設定する処理ノード変数設定手順と、を含むと
ともに、 前記優先ノード順序設定手順では、優先順序設定を行な
うための第1の演算手順と第2の演算手順が設定されて
おり、優先ノード順序内に組み込む対象となるノードに
ついて、そのノードでの進行負担値と、前記処理ノード
変数として指定されているノードの進行負担値の比較結
果に応じて、第1又は第2の演算手順が実行されること
を特徴とする経路探索方法。1. When a plurality of routes passing through different nodes exist as routes from the start node to the goal node, a route having the smallest progress burden value from the start node to the goal node is searched for. As a route search method, a progress burden value calculation procedure that calculates the progress burden value between the predetermined nodes that make up the route based on the processing node variable that indicates the node that calculates the progress burden value, and The priority node order setting procedure for setting the priority order of the progress burden value calculation processing for each node from the progress burden value being set, and the processing node variable for setting the processing node variable based on the set priority order of the calculation processing. In addition to the setting procedure, the priority node order setting procedure includes a first calculation procedure and a second calculation procedure for setting the priority order. Arithmetic procedure is set, for the node to be incorporated in the priority node order, according to the result of comparison of the progress burden value at that node and the progress burden value of the node specified as the processing node variable, A route search method, wherein the first or second calculation procedure is executed.
経路として、それぞれ異なるノードを経由していく複数
の経路が存在する場合に、スタートノードからゴールノ
ードまでの進行負担値が最小となる経路を探索する経路
探索方法として、 進行負担値の算出を行なうノードを示す処理ノード変数
に基づいて、経路を構成する所定のノード間での進行負
担値を算出する進行負担値算出手順と、 それまでに算出されている進行負担値から、各ノードに
ついて前記進行負担値算出処理の優先順序、及び逆優先
順序を設定する優先ノード順序設定手順と、 設定された算出処理の優先順序に基づいて前記処理ノー
ド変数を設定する処理ノード変数設定手順と、を含むと
ともに、 前記優先ノード順序設定手順において或るノードの優先
順序を更新する場合は、まずそれまでに設定されている
逆優先順序を用いてそのノードを優先順序内から削除
し、その後、そのノードを優先順序内で新たな順序位置
に設定する処理が行なわれることを特徴とする経路探索
方法。2. When a plurality of routes passing through different nodes exist as routes from the start node to the goal node, a route having the smallest progress burden value from the start node to the goal node is searched for. As a route search method, a progress burden value calculation procedure that calculates the progress burden value between the predetermined nodes that make up the route based on the processing node variable that indicates the node that calculates the progress burden value, and Based on the progress burden value, the priority node order setting procedure for setting the priority order of the progress burden value calculation processing and the reverse priority order for each node, and the processing node variable based on the priority order of the set calculation processing. And a processing node variable setting procedure for setting, and updating the priority order of a certain node in the priority node order setting procedure. In this case, the reverse priority order that has been set so far is used to delete the node from the priority order, and then the node is set to a new order position in the priority order. And route search method.
経路として、それぞれ異なるノードを経由していく複数
の経路が存在する場合に、スタートノードからゴールノ
ードまでの進行負担値が最小となる経路を探索する経路
探索方法として、 ゴールノードを一端としたノード間数を設定するノード
間数設定手順と、 経路を構成する所定のノード間での進行負担値を算出す
る進行負担値算出手順と、 前記進行負担値算出手順においてゴールノードを含むノ
ード間が対象となった処理数をカウントし、その処理数
がノード間数に達したら、進行負担値算出手順として処
理を終了させる終了判断手順と、 を含むことを特徴とする経路探索方法。3. When a plurality of routes passing through different nodes exist as routes from the start node to the goal node, a route having the smallest progress burden value from the start node to the goal node is searched for. As a route search method, a number-of-nodes setting procedure that sets the number of nodes with the goal node as one end, a progress burden value calculation procedure that calculates the progress burden value between predetermined nodes that make up the route, and the progress burden In the value calculation procedure, the number of processes that are targeted between the nodes including the goal node is counted, and when the number of processes reaches the number of nodes, the termination judgment procedure that terminates the process as the progress burden value calculation procedure is included. A route search method characterized by.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP18662295A JPH0914987A (en) | 1995-06-30 | 1995-06-30 | Method for searching route |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP18662295A JPH0914987A (en) | 1995-06-30 | 1995-06-30 | Method for searching route |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0914987A true JPH0914987A (en) | 1997-01-17 |
Family
ID=16191809
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP18662295A Withdrawn JPH0914987A (en) | 1995-06-30 | 1995-06-30 | Method for searching route |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0914987A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113825978A (en) * | 2019-04-12 | 2021-12-21 | 赛峰电子与防务公司 | Method for defining a path |
-
1995
- 1995-06-30 JP JP18662295A patent/JPH0914987A/en not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113825978A (en) * | 2019-04-12 | 2021-12-21 | 赛峰电子与防务公司 | Method for defining a path |
CN113825978B (en) * | 2019-04-12 | 2022-08-26 | 赛峰电子与防务公司 | Method and device for defining path and storage device |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2782135B2 (en) | Vehicle travel guidance device | |
JP2673403B2 (en) | Route search device | |
US5272638A (en) | Systems and methods for planning the scheduling travel routes | |
KR101332158B1 (en) | Optimum route determination employing an estimation function | |
CN103309917B (en) | Path searching method and path search device | |
NL8702014A (en) | ROUTE DETERMINATION UNIT. | |
JPH1172340A (en) | Driving path guiding device for vehicle and map data storage medium thereof | |
JPH10171347A (en) | Map data base device | |
US6876921B2 (en) | Car navigation system | |
JP2569624B2 (en) | Navigator device | |
JPH0914987A (en) | Method for searching route | |
JPH0922418A (en) | Path searching method | |
JP3411467B2 (en) | Route selection method and system | |
JP4116681B2 (en) | Optimal route search method | |
JP2569630B2 (en) | Navigator device | |
JP2775199B2 (en) | Optical fiber winding | |
JPH1019587A (en) | Calculating method for reachable range on vector map within specified time | |
JP2007171211A (en) | Optimum path searching method | |
JPH01173297A (en) | System for retrieving path of navigation device | |
JP3666039B2 (en) | Digital map route simulation system | |
JP2801208B2 (en) | Method of storing a topological mathematical network in a memory, and method and device for finding 2-cells in the network | |
JPH10253376A (en) | Method and system for search of minimum-cost route | |
JP3244517B2 (en) | Route search method for vehicle-mounted navigation system and map data storage medium | |
JP2949887B2 (en) | Route search device | |
JP3368722B2 (en) | Travel guide device for vehicles |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20020903 |