Route search device, route search method, and route search program

WO2025187083A8PCT designated stage Publication Date: 2025-10-02NT T INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
PCT/JP2024/009191
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-03-08
Publication Date
2025-10-02

AI Technical Summary

Technical Problem

Existing methods struggle to efficiently select multiple low-cost routes in optical path networks when nodes to be passed through are specified as a node group, particularly in large-scale networks, leading to inefficiencies in selecting a predetermined number of routes in order of lowest cost.

Method used

A route search device that divides the search range into multiple sections based on specified node groups, sequentially searches for routes within each section, and records them in order of lowest cost, using a memory unit to store edge costs and a route search unit to calculate and record routes, ensuring desired numbers of low-cost routes pass through specified node groups.

Benefits of technology

Enables the selection of a desired number of low-cost routes that pass through any one node from a specified node group, improving efficiency in route selection in large-scale optical path networks.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure JP2024009191_02102025_PF_FP_ABST
    Figure JP2024009191_02102025_PF_FP_ABST
Patent Text Reader

Abstract

A route search device (1) comprises: a storage unit (4) in which cost information for edges is stored; a section division unit (31) which divides, into search sections having a node group as both ends, a search range that includes a plurality of sets of node groups designated so that one node is traversed; and a route search unit (32) which sequentially searches for routes for each search section to create a route for the entire search range. The route search unit (32) records a predetermined number of routes in descending order of cost for each terminal node when sequentially searching for routes for each search section.
Need to check novelty before this filing date? Find Prior Art

Description

Route search device, route search method, and route search program

[0001] The present invention relates to a route search device, a route search method, and a route search program.

[0002] An optical path network realizes communication using optical signals and is a backbone network for IP (Internet Protocol) communication networks, etc. An optical path network is composed of multiple nodes and edges (also called links) that connect the nodes.

[0003] In optical path networks, the cost required for communication varies depending on the edge, so it is necessary to select a transmission route that takes cost into consideration. A transmission route is the path of an optical signal from a start node to a finish node, and indicates the edges and nodes that the optical signal passes through between the start node and the finish node. Hereinafter, "transmission route" will also be simply referred to as "route." One method for designing a route is, for example, the Dijkstra method, which finds the route from the start node to the finish node with the lowest cost (hereinafter also referred to as the "shortest route").

[0004] In an optical path network, multiple routes may be required. As a method for designing multiple routes, a method using the k-SPF algorithm has been proposed, which can efficiently search for multiple routes (k routes) between two points, i.e., a start node and an end node (see Non-Patent Document 1). In this method, by storing multiple routes for each node passed from the start node to the end node in the route search process, it is possible to output multiple routes when the end node is reached.

[0005] There are various requirements for designing routes for multiple routes. For example, there are requirements such as selecting k routes in order of lowest cost to be used as candidates for the main route, and two routes that do not have route overlaps (overlapping nodes, edges, etc.) as a pair of the shortest active route and the backup redundant route. Furthermore, there are cases where a requirement is made that the route must pass through designated nodes in order to ensure high reliability. A method has been proposed for selecting pairs of active / backup routes that pass through such designated nodes, including the backup route, so as to be low cost (see Patent Document 1). Furthermore, a method has been proposed for selecting multiple pairs of active / backup routes by applying the k-SPF algorithm (see Non-Patent Document 2).

[0006] International Publication No. 2023 / 248322

[0007] Hiroshi Matsuura, “Multipath Routing Algorithm Applied to Cloud Data Center Services,” IEICE TRANS. COMMUN., VOL. E95-B, NO. 8 AUGUST 2012. Hiroshi Matsuura et al., “SRLG-Disjoint Optical Redundant Path Selection Using the k-SPF Algorithm,” IEICE Technical Report NS2022-164, 2023-01.

[0008] In designing a route, nodes to be passed through are sometimes specified as a set of multiple nodes (node ​​group), and a requirement is that the route must pass through any one of the nodes in the node group. For example, it is assumed that multiple nodes located on stable ground or housed in a building with an earthquake-resistant design, or multiple nodes that are considered to be highly reliable based on the performance or manufacturing year of equipment, etc. are specified as a node group. In the methods described in Patent Document 1 and Non-Patent Document 2, it was difficult to select a route when nodes to be passed through were specified as a node group.

[0009] For example, suppose you are searching for a route from device (node) A to device (node) Z via either node B1 or B2 in building (node ​​group) B, and then either node C1, C2, or C3 in building (node ​​group) C. The number of combination patterns is multiplied by the number of nodes contained in each node group, that is, there are 2 x 3 = 6 combination patterns as shown below. A → B1 → C1 → Z A → B1 → C2 → Z A → B1 → C3 → Z A → B2 → C1 → Z A → B2 → C2 → Z A → B2 → C3 → Z

[0010] For example, in the method of Non-Patent Document 2, k routes are found for each of the above patterns, and the k-SPF algorithm is run six times. In a large-scale network, if the number of specified node groups or the number of nodes included in each node group is large, the problem cannot be solved in polynomial time.

[0011] Furthermore, when selecting four routes from device A to building (node ​​group) B, for example, in order of lowest cost, the method of Non-Patent Document 2 selects two routes each from A → B1 and A → B2 in order of lowest cost. However, in reality, there is a possibility that three routes from A → B1 and one route from A → B2 will be selected. As such, with conventional methods, there are cases where it is not possible to select a predetermined number of routes in order of lowest cost for each node group.

[0012] The present invention was made in consideration of these points, and its objective is to select multiple low-cost routes when nodes to be passed through are specified as a node group in a route search device.

[0013] The route search device of the present invention is a route search device that outputs one or more routes in a network including a plurality of nodes connected by edges, wherein the route passes through any one node in each of a plurality of sets of node sets consisting of one or more nodes in a predetermined order, and comprises: a memory unit that stores the cost of each edge; a section division unit that sets a search section whose end nodes are any node in each of two node sets that are consecutive in the order of the plurality of sets of node sets; and a route search unit that selects a search section according to the order, sequentially searches for routes in the selected search section, calculates the cost of the route based on the cost of the edge, and records the number of routes set in the search section in order of lowest cost, wherein the route search unit searches for routes in the selected search section using the end nodes of each of the routes recorded in the route search in the previous search section as starting nodes, and records the routes added to the route.

[0014] According to the present invention, it is possible to select a desired number of low-cost routes that pass through any one node from a specified node group.

[0015] 1 is an explanatory diagram showing an example of the configuration of an optical path network to which a route search device according to an embodiment of the present invention is applied. FIG. 1 is a functional block diagram showing the configuration of a route search device according to an embodiment of the present invention. FIG. 1 is a hardware configuration diagram showing an example of a computer that realizes the functions of the route search device according to an embodiment of the present invention. FIG. 2 is a flowchart showing the flow of route search processing in a search section of the route search device according to an embodiment of the present invention. FIG. 3 is a flowchart showing the flow of route search processing in a search section of the route search device according to an embodiment of the present invention. FIG. 4 is a diagram showing an example of an optical path network that performs route search processing. FIG. 5 is a diagram explaining an initial state in an example of route search processing for a first search section. FIG. 6 is a diagram explaining an example of route search processing for the first search section. FIG. 7 is a diagram explaining an example of route search processing for the first search section. FIG. 8 is a diagram explaining an example of route search processing for the first search section. FIG. 9 is a diagram explaining an example of route search processing for the first search section. FIG. 10 is a diagram explaining an example of route search processing for the first search section. FIG. 11 is a diagram explaining an example of route search processing for the first search section. FIG. 12 is a diagram explaining an example of route search processing for the first search section. FIG. 1 is a diagram illustrating an example of a route search process for a second search section. FIG. 2 is a diagram illustrating an example of a route search process for a second search section. FIG. 3 is a diagram illustrating an example of a route search process for a second search section. FIG. 4 is a diagram illustrating an example of a route search process for a second search section. FIG. 5 is a diagram illustrating an example of a route search process for a second search section. FIG. 6 is a diagram illustrating an example of a route search process for a second search section. FIG. 7 is a diagram illustrating an example of a route search process for a second search section. FIG. 8 is a diagram illustrating an example of a route search process for a second search section. FIG. 9 is a diagram illustrating an initial state in an example of a route search process for a third search section. FIG. 10 is a diagram illustrating an example of a route search process for a third search section. FIG. 11 is a diagram illustrating an example of a route search process for a third search section.FIG. 1 is a diagram illustrating an example of a route search process for a third search section. FIG. 2 is a diagram illustrating an example of a route search process for a third search section. FIG. 3 is a diagram illustrating an example of a route search process for a third search section. FIG. 4 is a diagram illustrating an example of a route search process for a third search section. FIG. 5 is a diagram illustrating an example of a route search process for a third search section. FIG. 6 is a diagram illustrating an example of a route search process for a third search section. FIG. 7 is a diagram illustrating an example of a route search process for a third search section. FIG. 8 is a diagram illustrating an initial state in an example of a route search process relating to a modified example of the first search section. FIG. 9 is a diagram illustrating an example of a route search process relating to a modified example of the first search section. FIG. 10 is a diagram illustrating an example of a route search process relating to a modified example of the first search section. FIG. 11 is a diagram illustrating an example of a route search process relating to a modified example of the first search section. FIG. 12 is a diagram illustrating an example of a route search process relating to a modified example of the first search section. FIG. 13 is a diagram illustrating an example of a route search process relating to a modified example of the first search section.

[0016] Next, an embodiment of the present invention (hereinafter referred to as "the present embodiment") will be described with reference to the drawings. FIG. 1 is an explanatory diagram showing an example of the configuration of an optical path network (optical transmission network) to which a route search device 1 according to the present embodiment is applied. As shown in FIG. 1, the optical path network (denoted by the symbol "NW" in each drawing) is composed of a plurality of nodes V and edges E connecting the nodes V. In FIG. 1 and other drawings, the nodes V are represented by white circles (◯), and the edges E are represented by straight lines. FIG. 1 shows a mesh-type optical path network in which each node V is interconnected with adjacent nodes V (connected by edges E).

[0017] The node V is configured, for example, by a transmission device such as an optical cross connect (OXC) device. Each node V can be connected to other nodes and terminal devices (not shown), and can output and input optical signals from these nodes and terminal devices. The edge E is configured, for example, by a conduit (a physical communication path for passing optical fibers, etc.). A cost for transmitting an optical signal through the edge E is set for each edge E. The cost is determined, for example, according to the distance between the nodes V connected by the edge E.

[0018] The optical path network is provided with a management device 9 that manages the optical path network. A route search device 1 acquires information about the optical path network from the management device 9, and searches for and designs transmission routes (paths) in the optical path network. The management device 9 manages the transmission of optical signals performed in the optical path network based on the routes designed by the route search device 1.

[0019] In a mesh optical path network, even if the start node and end node are the same, multiple different routes can be designed by passing through different nodes and edges. By designing redundant routes in this way, even if a fault occurs on the route through which an optical signal is being transmitted, the transmission of the optical signal can be continued by switching to another route.

[0020] In optical path networks, one or more specific nodes other than the start and end nodes may be specified, and a requirement may be to pass through all of these nodes.Furthermore, there are cases where a set of multiple nodes (node ​​group) is specified, and a requirement is that the route pass through any one of the nodes in each node group (details will be described later).

[0021] 2 is a functional block diagram showing the configuration of the route search device 1. As shown in FIG. 2, the route search device 1 includes an input / output unit 2, a control unit 3, and a storage unit 4. The input / output unit 2 is composed of an input / output I / F (Interface), a communication I / F, etc. The input / output unit 2 inputs and outputs data to and from the management device 9. The input / output unit 2 also accepts search conditions input by an operator of the route search device 1.

[0022] The search conditions may include, for example, the nodes to be passed through, including the start node and end node, the order in which they are passed through, and the number k of output paths (k is an integer equal to or greater than 1). Furthermore, each of these nodes to be passed through may be specified as a set of multiple nodes (node ​​group), and the priority of the nodes within the node group may also be specified. In this specification, each node to be passed through is referred to as a "node group" even if it is only a single node. That is, a node group consists of one or more nodes, and all nodes to be passed through, including both ends of the path (start node, end node), are node groups. Of the n sets of node groups included in the search conditions, the node in the node group that is first in the pass order is the start node, and the node in the node group that is nth in the pass order is the end node.

[0023] The priority of a node specifies which node in a node group is selected as the route that passes through it most often, regardless of the route cost. For example, in a node group consisting of three nodes, each node can be assigned a ratio such as "3:2:1" or "2:1:1", or a relative priority such as "high, medium, low" or "high, low, low".

[0024] The control unit 3 includes a section dividing unit 31 and a route searching unit 32 as processing units that execute the route searching method according to this embodiment. The section dividing unit 31 sets a search range based on the search conditions received by the input / output unit 2 and divides this search range into multiple search sections. The search range includes n sets of node groups and also includes nodes not included in the node groups. Specifically, all nodes selected in the route search, including candidates, are included in the search range. The search section has two node groups adjacent in route order as its end nodes and does not include other node groups. Furthermore, if a node group consists of multiple nodes, there will be multiple points at either end or both ends of the search section. Therefore, the section dividing unit 31 divides the search range into (n-1) search sections by dividing it by the second to (n-1)th node groups. For example, if a start node, an end node, and two node groups are specified, the section dividing unit 31 sets a first search section with the start node and the next node group passed through as both end nodes, a second search section with the first node group and the third node group passed through as both end nodes, and a third search section with the first node group and the end node as both end nodes. Also, a node that is not included in any node group may be included in multiple search sections.

[0025] The route search unit 32 selects a search section in the order in which the nodes are passed through, sequentially searches for routes in the selected search section, and calculates the cost of the route based on the cost of each edge E. Then, it records a set number of routes (recorded number) for each search section in the final list 422 stored in the storage unit 4 in ascending order of cost. If the terminal node group of a search section consists of multiple nodes (terminal nodes), it records the set number of routes for each terminal node (the total number of recorded routes for each terminal node is the number of recorded routes for the search section). When searching for routes in the second or subsequent search sections, the route search unit 32 creates a route for the entire search range by searching from the final node of the route recorded in the final list 422 in the search for the previous search section and adding the route. Details of the processing by the section division unit 31 and the route search unit 32 will be described later along with flowcharts and specific examples.

[0026] The storage unit 4 is composed of a ROM (Read Only Memory), a RAM, an HDD (Hard Disk Drive), etc., and stores information necessary for the processing of the section dividing unit 31 and the route searching unit 32, and also temporarily stores the processing results of each unit. The storage unit 4 includes, for example, a network information DB (Data Base) 41 and a route information DB 42.

[0027] The network information DB 41 stores information about the optical path network input from the management device 9. The network information DB 41 stores, for example, information about the network topology representing the connection relationship between nodes V and edges E, and attribute information about nodes V and edges E. The attribute information about edges E includes, for example, the distance of edges E connecting nodes and the cost set for each edge E. Furthermore, the attribute information about nodes V includes whether the node V must be included in the route (is a designated node), and if it is a designated node, the route order and the node group to which it belongs. The node V designated as a designated node is set by the administrator of the management device 9 based on, for example, the performance and manufacturing year of the equipment constituting the node V, the stability of the ground where the node V is installed, the risk of flooding, the earthquake resistance of the building where the node V is installed, and other factors that may affect the node V in the event of a disaster. Furthermore, nodes V installed in the same building or of the same model are set as interchangeable and belong to the same node group.

[0028] The route information DB 42 stores a route list 421 and a final list 422. The route list 421 and the final list 422 record routes created by the search processing of the route search unit 32. The route list 421 is provided corresponding to each node V that constitutes the optical path network. Details of the route list 421 and the final list 422 will be described later together with details of the processing of the route search unit 32.

[0029] The route search device 1 according to this embodiment is realized by, for example, a computer 900 as shown in Fig. 3. Fig. 3 is a hardware configuration diagram showing an example of the computer 900 that realizes the functions of the route search device 1 according to this embodiment. The computer 900 has a CPU (Central Processing Unit) 901, a ROM (Read Only Memory) 902, a RAM 903, an HDD (Hard Disk Drive) 904, an input / output I / F (Interface) 905, a communication I / F 906, and a media I / F 907.

[0030] The CPU 901 operates based on a program (route search program) stored in the ROM 902 or HDD 904, and performs control by the control unit 3 of the route search device 1 shown in Fig. 2. The ROM 902 stores a boot program executed by the CPU 901 when the computer 900 is started up, programs related to the hardware of the computer 900, and the like.

[0031] The CPU 901 controls an input device 910 such as a mouse or keyboard, and an output device 911 such as a display, via an input / output I / F 905. The CPU 901 acquires data from the input device 910 via the input / output I / F 905, and outputs generated data to the output device 911. Note that a GPU (Graphics Processing Unit) or the like may be used as a processor together with the CPU 901.

[0032] The HDD 904 stores programs executed by the CPU 901 and data used by the programs. The communication I / F 906 receives data from other devices such as the management device 9 (see FIG. 1 ) via a communication network (e.g., NW (Network) 920) and outputs the data to the CPU 901, and also transmits data generated by the CPU 901 to other devices via the communication network.

[0033] The media I / F 907 reads a program or data stored in the recording medium 912 and outputs it to the CPU 901 via the RAM 903. The CPU 901 loads a program related to a target process from the recording medium 912 onto the RAM 903 via the media I / F 907, and executes the loaded program. The recording medium 912 is an optical recording medium such as a DVD (Digital Versatile Disc) or a PD (Phase Change Rewritable Disc), a magneto-optical recording medium such as an MO (Magneto Optical Disc), a magnetic recording medium, a conductive memory tape medium, a semiconductor memory, or the like.

[0034] For example, when the computer 900 functions as the route search device 1 according to this embodiment, the CPU 901 of the computer 900 executes a program loaded onto the RAM 903 to realize the functions of the route search device 1. Furthermore, the HDD 904 stores data stored in the RAM 903. The CPU 901 reads and executes a program related to a target process from a recording medium 912. Alternatively, the CPU 901 may read a program related to a target process from another device via a communication network (NW 920). While FIG. 1 illustrates an example in which the route search device 1 is provided independently of the management device 9, the route search device 1 may also be configured as one of the functions of the management device 9. In this case, the computer 900 may function as the management device 9.

[0035] The processing flow of the route search device 1 will be described below with reference to specific examples. FIG. 4 is a flowchart showing the processing flow of the route search device 1. FIGS. 5A and 5B are flowcharts showing the flow of route search processing in a search section. FIG. 6 is a diagram showing an example of an optical path network in which search processing is performed. In FIG. 6, in order to distinguish between multiple nodes V, individual symbols (S, V1 to V9, D) are assigned to each node V within the white circles representing the nodes. Furthermore, in FIG. 6, edges E connecting nodes are assigned numbers representing the costs set for the edges E. Also, as mentioned above, even if only one node is specified for each of the start node, end node, and intermediate nodes, they may all be referred to as a "node group."

[0036] As shown in FIG. 4, the route search device 1 determines whether search conditions have been input by the operator via the input / output unit 2 (FIG. 2) (step S11). If search conditions have not been input (step S11: No), the device waits until they are input. On the other hand, if search conditions have been input (step S11: Yes), the device stores, as search conditions, n sets of node groups VGi (n≧2, 0≦i≦n−1) and their route order, the nodes constituting each node group VGi and their priorities, and a basic search number k (step S12). Here, the i in the node group VGi represents the route order, i.e., VG0 is the node group serving as the start node, VG(n−1) is the node group serving as the end node, and VG1, VG2, ..., VG(n−2) are node groups serving as route nodes. The basic search number k is the default (initialized) number of routes per terminal node, including the end node, searched for in the route search process for each search section.

[0037] The section dividing unit 31 (FIG. 2) then sets a route search range in accordance with the search conditions (step S21) and divides it into (n-1) search sections (step S22). The section dividing unit 31 references information about the network topology of the optical path network stored in the network information DB 41 (FIG. 2) and sets a search range that includes all of the n node groups VGi. The section dividing unit 31 then divides the set search range to set search sections whose endpoints are the start node, end node, and intermediate nodes.

[0038] In the example of FIG. 6, four sets of node groups VGi are specified (n=4, i=0, 1, 2, 3) as follows: the first node group, i.e., the starting node, is VG0, and the order of passing through, the configuration (belonging nodes and the number of nodes m i ), and priorities between nodes are set. Node group VG0 (starting node): Node S (m0 = 1) Node group VG1 (passing node): Nodes V4, V5 (m1 = 2), V4:V5 = 1:1 Node group VG2 (passing node): Nodes V6, V7 (m2 = 2), V6:V7 = 1:2 Node group VG3 (ending node): Node D (m3 = 1)

[0039] The maximum number of recorded routes of nodes other than the node group VGi is set to the basic search number k (here, k=2).

[0040] The section dividing unit 31 sets a search range of "node group VG0 (start node) → node group VG1 → node group VG2 → ... → node group VG(n-1) (end node)" according to these search conditions. Then, the search range is divided into (n-1) search sections with each node group as an end point. In the example of FIG. 6, the search range is divided into the following three search sections with the start node S, the route nodes V4 / V5, the route nodes V6 / V7, and the end node D as end points. First search section: start point: start node S, end point: nodes V4 / V5 Second search section: start point: nodes V4 / V5, end point: nodes V6 / V7 Third search section: start point: nodes V6 / V7, end point: end node D

[0041] The route search unit 32 stores the number g of recorded routes in each search section i. i , and the maximum number of recorded routes per terminal node r imax and the maximum number of recorded routes of nodes other than the node group VGi is set to k (step S3).

[0042] Next, the route search unit 32 sets the search order i to 1 (step S4), and selects the first search section, which is the search section with the search order 1 (step S5).

[0043] The route search unit 32 starts a route search process for the selected search section (step S6). When performing a route search, the route search unit 32 searches for a route based on the search logics (1) to (6) below, and records the route in the route list 421 together with the cost of the route. A route list 421 is provided for each node, and routes with the node as the final node at that time are recorded. When a new route is searched and a node is added, the recorded route is deleted from the route list 421. Furthermore, among routes with the end node in the i-th search section as the final node, the route list 421 is sorted in ascending order of cost for each end node, with the highest r imax Books, total g iThe routes are recorded in the final list 422. (1) The route with the lowest cost (shortest route) is obtained from all the routes recorded in the route list 421. (2) The routes obtained in (1) whose final node is a terminal node are recorded in the final list 422 and deleted from the route list 421. (3) If the final node of the route obtained in (1) is not a terminal node, the final node is set as the selected node, the route is deleted from the route list 421, and the nodes adjacent to the selected node are set as the nodes to be searched. However, the following nodes are excluded from the search targets: - Nodes included in the route - Nodes included in a node group other than the terminal node group of the search section - The maximum number of recorded nodes r is removed from the route list 421 as the shortest route imax (4) The node set as the node to be searched in (3) is added to the route acquired in (1) to create a candidate route, and the candidate route is recorded in the route list 421 corresponding to the final node (node ​​to be searched) together with the cost of the candidate route. (5) The number of routes recorded in each route list 421 is up to r, which is the maximum number of routes recorded per terminal node, including the routes deleted in (2) and (3). imax (6) If the route list 421 corresponding to the final node of the candidate route has already recorded the maximum number of routes, a candidate route with a cost less than the route with the highest cost (longest route) in the route list 421 is recorded, and the longest route is deleted.

[0044] The flow of processing by the route search unit 32 to search for a route based on this predetermined search logic will be described with reference to the flowcharts shown in FIGS. 5A and 5B and to FIGS.

[0045] <Route Search Processing for First Search Section> FIGS. 7 to 17 are diagrams illustrating an example of the route search processing for the first search section. In the route search processing for the first search section, the route search unit 32 performs the search processing by referring to information about the network topology stored in the network information DB 41 and the costs set for each edge E. Furthermore, the route search unit 32 performs the route search processing while recording the routes and the costs of the routes in the route list 421 and final list 422 of the route information DB 42. In the following description, the route list 421 provided for each node will be expressed in the format of "PList (node ​​name)." For example, the route list 421 that records the route with node V1 as the final node will be expressed as PList (V1). Furthermore, the list name of the route recorded in the final list 422 will be "R."

[0046] In the first search section, the number of records g1 is the maximum number of records r 1max Since there is no priority between the terminal nodes V4 and V5 of the first search section (priority "1:1"), the following setting is made in step S3 of FIG. 4: Path terminating at node V4: r 1max =k=2 Path terminating at node V5: r 1max = k = 2 Number of recorded routes in the first search section: g1 = 2 + 2 = 4 Maximum number of recorded routes of nodes other than node group VG1: k = 2

[0047] 5A, the route search unit 32 refers to the final list 422 of the route information DB 42, and acquires a route if it is recorded therein (step S601: Yes). In the search process for the first search section, which is the first search section, no route is recorded in the final list 422 (step S601: No), so the process proceeds to step S602.

[0048] The route search unit 32 creates a route for each node in the start node group VG0 of the search section, and records the route in the route list 421 (step S602). In the example of FIG. 7, the route for only the start node S is recorded in the route list PList(S) of the start node S, and the cost is set to 0. The route search unit 32 records the route in the format of "route:cost", for example. The route search unit 32 initializes the counter l(Vx) of each node (step S604). In the example of FIG. 7, for nodes V4 and V5 belonging to the end node group VG1, l(V4) = l(V5) = r 1max = 2. Also, the maximum number of recorded nodes other than the node group VG1 is set to l(Vx) = k = 2. In FIG. 7 and subsequent drawings, a counter l(Vx) for each final node Vx is written in the format "[l(Vx)]" on the right side of the route list 421. However, for route lists of nodes that are not search targets, no counter is written and the column is left blank. Note that counter l(Vx) is a value obtained by subtracting the number of routes deleted from the route list as shortest routes from the maximum number of recorded routes for each node, and as described above, it is decremented by 1 each time a shortest route is deleted by the route search unit 32. In other words, counter l(Vx) is the remaining number of routes that have node Vx as the final node that can be recorded in the route list 421.

[0049] In step S605, the route search unit 32 acquires the shortest route from all the route lists 421. Then, the final node Ve of the acquired route is designated as the selected node, and this route is deleted from the route list 421 (step S606). The counter l(Ve) of the final node Ve of the deleted route is decremented by 1 (step S607). In the example of FIG. 7, since only one route with only the start node S is recorded in the route list PList(S), this route is acquired, and as shown in FIG. 8, the start node S is designated as the selected node. Then, the acquired route is deleted from the route list PList(S), and the counter l(S) of the node S is decremented by 1 (step S607). In FIG. 8 and subsequent drawings, a thick gray arrow is attached to the edge E of the route recorded in the route list 421. In step S608, the route search unit 32 starts a route search process from the acquired route.

[0050] As shown in FIG. 5B , the process proceeds to step S6081, where the route search unit 32 acquires a node adjacent to the selected node that is eligible for the route as the node to be searched (referred to as node Va). An eligible node refers to a node that is not an ineligible node (e.g., a node included in a node group other than the terminal node group of the search section). If node Va can be acquired, i.e., if an adjacent node Va exists (S6082: Yes), the process proceeds to step S6083. The route search unit 32 then checks the counter l(Va) of node Va. If l(Va)=0 (S6083: No), the process terminates the route search process for node Va and proceeds to step S6081. At this point, the counter l(Va) of node Va is l(Va)≧1 as determined in step S604 (step S6083: Yes), so the process proceeds to step S6084. The route search unit 32 then adds node Va to the acquired route to create a candidate route, and calculates the cost of the candidate route by adding the cost of edge E that passes through the route from the selected node Ve to node Va (step S6084). In step S6085, the route search unit 32 compares the number of routes recorded in the route list PList(Va) corresponding to node Va in the route list 421 with the counter l(Va) of node Va. At this point, the number of routes is 0, and since l(Va)≧1 as described above (step S6085:<l(Va)), the process proceeds to step S6088. The route search unit 32 then records the candidate route in the route list PList(Va) (step S6088), and proceeds to step S6081.

[0051] On the other hand, if the route list PList(Va) contains routes equal to or greater than the counter l(Va) (step S6085: ≧ l(Va)), the process proceeds to step S6086. The route search unit 32 compares the cost of the candidate route with the cost of the longest route in the route list PList(Va). If the cost of the candidate route is lower (step S6086: Yes), the route search unit 32 deletes the longest route from the route list PList(Va) (step S6087) and records the candidate route (step S6088). On the other hand, if the cost of the candidate route is equal to or greater than the cost of the longest route (step S6086: No), the process does not record the candidate route. The process then proceeds to step S6081, where a new node to be searched is acquired and the same process is performed (steps S6082 to S6088). If there are no more adjacent nodes to be searched (if they cannot be acquired) (step S6082: No), the process of step S608 ends and the process proceeds to step S609.

[0052] Here, the comparison of the number of routes recorded in the route list PList(Va) of the route having the node Va as the terminal node (route list number) with the counter l(Va) of this node Va in step S6085 will be described. The number of routes that can be recorded in the route list 421 (route list space) is calculated by dividing the number of routes deleted from the route list 421 as the shortest route by the maximum recorded number r. imax Therefore, if the counter l(Va) exceeds the number of items in the route list (l(Va)>(number of items in the route list)), even if a candidate route is added to the route list 421, the number of routes that have been searched and have the node Va as the final node, including the route that has been deleted as the shortest route, will not exceed the maximum recorded number r imax Therefore, even if a new candidate route is recorded in the route list 421, the maximum number of recorded routes r imax On the other hand, if l(Va)=(number of routes in the route list), when the candidate route is added to the route list 421, the number of routes found is within the maximum number of routes recorded r imaxIn such a case, only if the cost of the candidate route is lower than the cost of the longest route in the route list 421, the longest route is replaced with the candidate route, and the route with the lower cost is recorded.

[0053] In the example of Figure 8, the nodes adjacent to the start node S, which is the selected node, are nodes V1, V2, V3, and V5. Node V1 is eligible for search (steps S6081 and S6082 in Figure 5B: Yes), and its counter l(V1) is 2 (step S6083: Yes), so node V1 is added and a candidate route "S → V1: 4" is created (step S6084). Furthermore, since the number of routes in route list 421 is 0 (Figure 7) (step S6085: < l(Va)), the process proceeds to step S6088, where "S → V1: 4" is recorded in PList(V1). The same process is performed for nodes V2, V3, and V5, and "S→V2:3" is recorded in PList(V2), "S→V3:2" is recorded in PList(V3), and "S→V5:3" is recorded in PList(V5).

[0054] In step S609, the route search unit 32 refers to all route lists 421 recorded in the route information DB 42 to acquire the shortest route. The route search unit 32 determines whether the final node of the acquired route is the terminal node of the search section (step S610). In the example of FIG. 8, "S → V3:2" recorded in PList(V3) is the shortest route. Since the final node of this route is node V3, which is neither terminal node V4 nor V5 (step S610: No), the route search unit 32 proceeds to step S606.

[0055] (Second Time) As shown in FIG. 5A, the route search unit 32 proceeds to step S606 and performs a search process similar to the first search process (steps S606 to S610). As in the first time, the route search unit 32 selects the final node of the acquired route, deletes the acquired route from the route list 421 (step S606), and decrements the counter l(Ve) of the final node Ve by one (step S607). As shown in FIG. 9, the route search unit 32 selects node V3, which is the final node of the route "S → V3:2," and deletes the route "S → V3:2" from PList(V3). Then, the counter l(V3) of node V3 is decremented by one to become 1. Note that in the diagram, when a route is deleted in the route list 421, the route is crossed out and is left blank in subsequent diagrams.

[0056] In step S608, as shown in FIG. 9, the nodes adjacent to node V3, which is the selected node, are nodes V2, V4, and V5, all of which are search targets (steps S6081 and S6082 in FIG. 5B: Yes). Then, for each of nodes V2, V4, and V5, the counters are all 2, as in the first iteration (step S6083: Yes), so candidate routes are created (step S6084). Since the number of routes in the corresponding route list 421 is 0 or 1 (FIG. 8) (step S6085: < l(Va)), the process proceeds to step S6088. Therefore, "S → V3 → V2: 3" is recorded in PList(V2), "S → V3 → V4: 5" is recorded in PList(V4), and "S → V3 → V5: 4" is recorded in PList(V5).

[0057] Proceeding to step S609, the route search unit 32 refers to all route lists 421 recorded in the route information DB 42 to acquire the shortest route. In the example of FIG. 9, the shortest routes are "S → V2," "S → V3 → V2," and "S → V5," each with a cost of 3. If there are multiple shortest routes, the route search unit 32 preferentially acquires the route from the route list 421 for the terminal node. Therefore, "S → V5" is acquired first. Then, it is determined whether the final node of the acquired route is the terminal node of the search section (step S610).

[0058] Since the final node of the acquired "S → V5:3" is the terminal node V5 (step S610: Yes), the route search unit 32 proceeds to step S611. Then, as shown in FIG. 10, the route search unit 32 records "S → V5:3" in the final list 422 and deletes it from PList(V5) (step S611). Then, the counter l(V5) of the terminal node V5 is decremented by 1 to set it to 1 (step S612). One route, "S → V5:3", is recorded in the final list 422, that is, the number of recorded routes g i (=4) Since it has not been recorded (step S613: <g i ), the route search process for the first search section continues, and the process proceeds to step S609.

[0059] 11, when multiple routes with the same cost are recorded as the shortest route in the route list 421, the route with the terminal node as the final node is preferentially acquired, and for other routes with different final nodes, for example, "the route with the smaller node number recorded in the route list 421" can be selected. Also, for routes with the same final node, the priority condition can be, for example, "the route recorded first in the route list 421" using the first in first out rule.

[0060] (Third Time) Next, the route search unit 32 acquires "S → V2:3" as the shortest route (step S609). Since the final node is neither the terminal node V4 nor the terminal node V5 (step S610: No), the process proceeds to step S606. Here, as shown in FIG. 11 , node V2, which is the final node of "S → V2:3," is selected, "S → V2:3" is deleted from PList(V2) (step S606), and counter l(V2) is decremented by 1 to set it to 1 (step S607). Then, a route from the route "S → V2" is searched (step S608). The nodes adjacent to the selected node V2 are nodes V3 and V4, both of which are search targets (steps S6081 and S6082 in FIG. 5B: Yes). Since the counters for nodes V3 and V4 are 1 or 2 (step S6083: Yes), they are added to create a candidate route (step S6084). Since the number of routes in the route list 421 corresponding to nodes V3 and V4, respectively, is 0 and 1 (FIG. 10) (step S6085: < l(Va)), the process proceeds to step S6086, where "S → V2 → V3: 4" is recorded in PList(V3) and "S → V2 → V4: 7" is recorded in PList(V4).

[0061] (Fourth Time) In step S609, the route search unit 32 acquires "S → V3 → V2:3" as the shortest route. Since the final node is neither the terminal node V4 nor the terminal node V5 (step S610: No), the process proceeds to step S606. As shown in FIG. 12, node V2, which is the final node of "S → V3 → V2:3," is selected, "S → V3 → V2:3" is deleted from PList(V2) (step S606), counter l(V2) is decremented by 1 to set it to 0 (step S607), and the process proceeds to step S608. The node adjacent to the selected node V2 is node V4, which is the search target (steps S6081 and S6082 in FIG. 5B: Yes). Since counter l(V4) is 2 (step S6083: Yes), a candidate route "S → V3 → V2 → V4:7" is created (step S6084). Here, two routes, "S → V3 → V4:5" and "S → V2 → V4:7," are recorded in the route list PList(V4) ( FIG. 11 ), and the number of routes is the same as the counter l(V4) (step S6085: ≧ l(Va)), so the process proceeds to step S6086. The route search unit 32 compares the cost of the candidate route "S → V3 → V2 → V4:7" with the cost of the longest route in the route list PList(V4). Since the longest route "S → V2 → V4:7" has the same cost as the candidate route (step S6086: No), the process proceeds to step S6081 without recording this candidate route. Here, since there are no more nodes to be searched (S6082: No), the process ends in step S608 and proceeds to step S609. For candidate routes that are not recorded in the route list 421 due to their high cost, a gray dashed arrow is added to the edge E of the route ( FIG. 12 ). If the cost of the candidate route is less than the cost of the longest route in the route list 421 (step S6086: Yes), as described below, one of the longest routes is deleted from the route list 421 (step S6087), and the candidate route is recorded (step S6088). In this way, candidate routes with a cost greater than or equal to the longest route in the route list 421 are not recorded so that the number of routes recorded in the route list 421 for each final node, including nodes other than the terminal node, does not exceed the upper limit of the number of routes. Therefore, if the cost of a candidate route is lower than the longest route, the longest route is replaced with the candidate route.In step S6087, if there are multiple longest routes in the route list 421, for example, the last route recorded is deleted.

[0062] In this way, if the final node of the acquired shortest route is not the terminal node in the search section, the route search unit 32 sets this final node as the selected node for the next search process, and further expands the search range from the selected node to adjacent nodes, thereby enabling route search at reduced cost. Furthermore, the search proceeds while sequentially recording the routes created by the search in the route list 421 of the corresponding node, and if the number of routes recorded for each final node in the route list 421 exceeds a predetermined number, the route search is performed efficiently by comparing the cost with that of the previously recorded route and recording the route with the lower cost.

[0063] Proceeding to step S609, the route search unit 32 acquires the shortest route by referring to all route lists 421 recorded in the route information DB 42. In the example of Fig. 12, the shortest routes are "S → V1," "S → V2 → V3," and "S → V3 → V5," each with a cost of 4. As in the second iteration (Fig. 11), the route search unit 32 acquires "S → V3 → V5," whose final node is the terminal node of the search section (step S609), and determines whether the final node is the terminal node of the search section (step S610).

[0064] In the example of FIG. 12, the final node of "S → V3 → V5:4" acquired as the shortest route is the terminal node V5 (step S610: Yes), so the route search unit 32 proceeds to step S611. Then, as shown in FIG. 13, the route search unit 32 records "S → V3 → V5:4" in the final list 422 and deletes it from PList(V5) (step S611). Then, the counter l(V5) of the terminal node V5 is decremented by 1 to set it to 0 (step S612). Two routes are recorded in the final list 422, that is, the number of recorded routes g i (=4) Since it has not been recorded (step S613: <g i ), the route search process for the first search section continues, and the process proceeds to step S609.

[0065] (Fifth Time) Next, the route search unit 32 acquires "S → V1:4" as the shortest route (step S609). Since the final node is neither the terminal node V4 nor V5 (step S610: No), the process proceeds to step S606. As shown in FIG. 14 , node V1, which is the final node of "S → V1:4," is selected, "S → V1:4" is deleted from PList(V1) (step S606), and counter l(V1) is decremented by 1 (step S607). The nodes adjacent to the selected node V1 are nodes V4 and V6. Node V6 is included in node group VG2 other than the terminal node group VG1 of the first search section, so it is excluded from the search target. Such candidate routes that are excluded from the search target and therefore not recorded in the route list 421 are indicated by a gray dotted arrow at the edge E of the route. On the other hand, node V4 is the search target (steps S6081 and S6082 in FIG. 5B: Yes), and its counter l(V4) is 2 (step S6083: Yes), so a candidate route "S → V1 → V4: 7" is created (step S6084). Here, as in the fourth iteration (FIG. 12), two routes are recorded in the route list PList(V4) for node V4 (FIG. 13), and the number of routes is the same as counter l(V4) (S6085: ≧ l(Va)), so the process proceeds to step S6086. The route search unit 32 compares the cost of the candidate route "S → V1 → V4: 7" with the cost of the longest route in the route list PList(V4). Since the costs of both are the same (step S6086: No), this candidate route is not recorded.

[0066] (Sixth Time) In step S609, the route search unit 32 acquires "S → V2 → V3:4" as the shortest route. Since the final node is neither the terminal node V4 nor the terminal node V5 (step S610: No), the process proceeds to step S606. As shown in FIG. 15, node V3, which is the final node of "S → V2 → V3:4," is selected, "S → V2 → V3:4" is deleted from PList(V3) (step S606), and counter l(V3) is decremented by 1 to set it to 0 (step S607). The nodes adjacent to the selected node V3 are nodes V4 and V5, both of which are search targets (steps S6081 and S6082 in FIG. 5B: Yes). Since counter l(V4) of node V4 is 2 (step S6083: Yes), a candidate route "S → V2 → V3 → V4:7" is created (step S6084). As described above, two routes are recorded in PList(V4), which is the same number as counter l(V4) (S6085: ≧ l(Va)), so the process proceeds to step S6086. The route search unit 32 compares the cost of the candidate route "S → V2 → V3 → V4: 7" with the cost of the longest route in the route list PList(V4). Since the costs are the same (step S6086: No), this candidate route is not recorded. On the other hand, since counter l(V5) of node V5 is 0 (step S6083: No), it is excluded from the search target. The fact that the counter of the terminal node is 0 means that the route including that terminal node has already reached its maximum recorded number r imax is recorded in the final list 422, there is no need to search for a new route.

[0067] Proceeding to step S609, the route search unit 32 refers to all route lists 421 and acquires the shortest route "S → V3 → V4:5". In the example of Fig. 16, "S → V3 → V4:5" recorded in PList(V4) has the terminal node V4 as its final node (step S610: Yes), so it is recorded in the final list 422 and deleted from PList(V4) (step S611). Then, the counter l(V4) of the terminal node V4 is decremented by 1 to set it to 1 (step S612). Three routes are recorded in the final list 422, that is, the number of recorded routes g i (=4) Since it has not been recorded (step S613: <gi ), the route search process for the first search section continues, and the process proceeds to step S609.

[0068] The route search unit 32 refers to all route lists 421 and acquires the shortest route "S → V2 → V4:7" (step S609). As shown in Fig. 17, "S → V2 → V4:7" has the terminal node V4 as its final node (step S610: Yes), so it is recorded in the final list 422 and deleted from PList(V4) (step S611). Then, the counter l(V4) of the terminal node V4 is decremented by 1 to set it to 0 (step S612).

[0069] Four routes are recorded in the final list 422, that is, the number of recorded routes is g i (=4) When the actual recording is completed (step S613: ≧g i ), delete all routes recorded in the route list 421 (step S614), and complete the route search process for that search section. In the example of FIG. 17, since there are no routes recorded in the route list 421, the route search process for the first search section is completed as is. Furthermore, the number of routes recorded in the final list 422 becomes four, with two routes each having nodes V4 and V5 as terminal nodes. When the route search unit 32 records two routes having node V5 as the terminal node, which is the maximum number of routes recorded, in the final list 422, the counter 1(V5) becomes 0 (S6083: No), and node V5 is excluded from the search target, and two routes each having nodes V4 and V5 as terminal nodes are recorded in the final list 422.

[0070] 4, if the search order i is less than n-1 (step S7: No), the route search unit 32 increments the search order i (step S8) and selects the next search section (step S5). In the example of FIG. 6, the second search section is set as follows (step S3). Then, route search processing for the second search section is started (step S6).

[0071] In the second search section, the priority of the terminal nodes V6 and V7 is set to 1:2. Here, the maximum number of records r of the node V7 with the highest priority is 2max is set to two, which is the same as the basic search number k, and the maximum record number r of the node V6 with low priority is set to2max In this way, when priorities are set for multiple end nodes in the end node group, the maximum number of recorded routes for each end node r is set according to the priority. imax The route terminating at node V6 is set as follows: 2max (V6)=1 Path terminating at node V7: r 2max (V7) = 2 Number of recorded routes in the second search section: g2 = 1 + 2 = 3 Maximum number of recorded routes of nodes other than the node group VG2: k = 2

[0072] <Route Search Process for Second Search Section> Following the route search process for the first search section, the route search unit 32 performs route search process for the second search section. Figures 18 to 29 are diagrams illustrating an example of the route search process for the second search section.

[0073] 5A, the route search unit 32 refers to the final list 422 of the route information DB 42, and if a route is recorded (step S601: Yes), acquires it, records it in the route list 421 corresponding to its terminal node, and deletes the route from the final list 422 (step S603). As shown in FIG. 17, since the route has been recorded in the final list 422 by the search process of the first search section (step S601: Yes), the process proceeds to step S603.

[0074] As shown in Fig. 18, the route search unit 32 acquires all routes recorded in the final list 422, records them in the route list 421 corresponding to the terminal node, and deletes the route from the final list 422 (step S603). Then, the process proceeds to step S604. After that, the process is executed in the same manner as the route search process for the first search section. The route search unit 32 initializes the counter l(Vx) of each node (step S604). In the example of Fig. 18, the maximum number of recorded routes r for nodes V6 and V7 is 1. 2max (V6), r 2max In this case, the maximum number of records r of node V7, which is the maximum value, is different. 2max (V7) is the maximum number of recorded routes for each terminal node in the second search section (r 2max =r 2max (V7)). Therefore, the counter l(V7) of node V7 is r2max (V7)=2, counter l of node V6 (V6)=r 2max (V6) = 1. Also, the counter l(Vx) = k = 2 for each node other than nodes V6 and V7. Note that for the route list of nodes that are not search targets, no counter is entered and the column is left blank.

[0075] In the example of Fig. 18, the shortest route is the route "S → V5:3" recorded in the route list PList(V5), so the route search unit 32 acquires this route (step S605). Then, as shown in Fig. 19, the node V5 is selected, and the acquired route is deleted from the route list PList(V5) (step S606). Then, the counter l(V5) is decremented by 1 (step S607).

[0076] In step S608, the route search unit 32 starts a route search process from the acquired route. The nodes adjacent to the selected node V5 are nodes V3, V7, and V8, all of which are search targets (step S6081 and step S6082 in FIG. 5B: Yes). Since the respective counters are all 2 (step S6083: Yes), the process proceeds to step S6084. Since the number of routes in the route list 421 is all 0 ( FIG. 18 ) (step S6085: < l(Va)), the process proceeds to step S6088, where the route search unit 32 records "S → V5 → V3: 5" in PList(V3), records "S → V5 → V7: 6" in the route list PList(V7), and records "S → V5 → V8: 8" in the route list PList(V8).

[0077] Proceeding to step S609, the route search unit 32 refers to all route lists 421 recorded in the route information DB 42 and obtains the route "S → V3 → V5:4" as the shortest route, and since the final node is neither the terminal node V6 nor V7 of the search section (step S610: No), proceeds to step S606.

[0078] (Second Time) As shown in Figure 20, the route search unit 32 selects node V5, which is the final node of the acquired route "S → V3 → V5:4", deletes the route "S → V3 → V5:4" from the route list PList(V5) (step S606), and decrements counter l(V5) by 1 (step S607). The nodes adjacent to the selected node V5 are nodes V7 and V8, both of which are search targets (steps S6081 and S6082 in Figure 5B: Yes). Then, since the respective counters are both 2 (step S6083: Yes), the process proceeds to step S6084. Since the number of routes in the route list 421 corresponding to each of nodes V7 and V8 is both 1 (Figure 19) (step S6085: < l(Va)), the process proceeds to step S6088, and the route search unit 32 records the route "S → V3 → V5 → V7:7" in PList(V7) and the route "S → V3 → V5 → V8:9" in the route list PList(V8).

[0079] Proceeding to step S609, the route search unit 32 acquires the shortest route by referring to all route lists 421 recorded in the route information DB 42. In the example of Fig. 20, the shortest routes are "S → V5 → V3" and "S → V3 → V4," each of which has a cost of 5. The route search unit 32 first acquires "S → V5 → V3" (step S609), and since its final node is neither the terminal node V6 nor V7 of the search section (step S610: No), the process proceeds to step S606.

[0080] (Third Time) As shown in FIG. 21 , the path search unit 32 selects node V3, which is the final node of the path "S → V5 → V3:5," deletes the path "S → V5 → V3:5" from PList(V3) (step S606), and decrements counter l(V3) by 1 to set it to 1 (step S607). The nodes adjacent to the selected node V3 are nodes V2 and V4. Node V4 is included in the starting node group VG1 of the second search section, i.e., it is included in a node group other than the ending node group VG2 of the second search section, and is therefore excluded from the search target. Meanwhile, node V2 is a search target (steps S6081 and S6082 in FIG. 5B: Yes). Since counter l(V2) is 2 (step S6083: Yes), the process proceeds to step S6084. Furthermore, since the number of routes in the route list 421 is 0 (FIG. 20) (step S6085: < l(Va)), the process proceeds to step S6088, and the route search unit 32 records "S → V5 → V3 → V2: 6" in PList(V2).

[0081] (Fourth Time) In step S609, the route search unit 32 acquires "S → V3 → V4:5" as the shortest route. Since its final node is neither the terminal node V6 nor V7 of the search section (step S610: No), the process proceeds to step S606. As shown in FIG. 22, the route search unit 32 selects node V4, which is the final node of the acquired route "S → V3 → V4:5," deletes the route "S → V3 → V4:5" from PList(V5) (step S606), and decrements counter l(V4) by 1 (step S607). The nodes adjacent to the selected node V4 are nodes V1, V2, V6, and V7, all of which are search targets (steps S6081 and S6082 in FIG. 5B: Yes). Since the respective counters are 2 or 1 (step S6083: Yes), the process proceeds to step S6084. For nodes V1 and V6, the number of routes in the route list 421 is 0 (FIG. 21) (step S6085:<l(Va)), so the process proceeds to step S6088, where the route search unit 32 records "S → V3 → V4 → V1:8" in PList(V1) and records "S → V3 → V4 → V6:9" in PList(V6). For node V2, the counter l(V2) is 2 and the number of routes in PList(V2) is 1 (FIG. 21) (step S6085:<l(Va)), so the process proceeds to step S6088, where the route search unit 32 records "S → V3 → V4 → V2:9" in PList(V2). On the other hand, for node V7, counter l(V7) is 2 and the number of routes in PList(V7) is 2 (FIG. 21) (step S6085: ≧ l(Va)), so proceed to step S6086. The cost of the candidate route "S → V3 → V4 → V7:9" is compared with the cost of the longest route in PList(V7). The cost of the longest route is 7, which is higher than the cost of the candidate route (step S6086: No), so this candidate route is not recorded.

[0082] Proceeding to step S609, the route search unit 32 refers to all the route lists 421 to acquire the shortest route. In the example of FIG. 22, there are two shortest routes, "S → V5 → V3 → V2" and "S → V5 → V7," each with a cost of 6. As shown in FIG. 23, the route search unit 32 acquires "S → V5 → V7," the final node of which is the terminal node of the search section (step S609). Since this terminal node is the terminal node V7 of the second search section (step S610: Yes), the process proceeds to step S611. As shown in FIG. 23, the route search unit 32 records "S → V5 → V7:6" in the final list 422, deletes it from the route list PList(V7) (step S611), and decrements the counter l(V7) by 1 to set it to 1 (step S612). One route is recorded in the final list 422, that is, the number of recorded routes g i (=3) Since it has not been recorded (step S613: <g i ), the route search process for the second search section continues, and the process proceeds to step S609.

[0083] (Fifth Time) Next, the route search unit 32 acquires "S → V5 → V3 → V2:6" as the shortest route (step S609). Since the final node is neither the terminal node V4 nor V5 (step S610: No), the process proceeds to step S606. As shown in FIG. 24 , the route search unit 32 selects node V2, which is the final node of the acquired "S → V5 → V3 → V2:6," deletes it from PList(V2) (step S606), and decrements counter l(V2) by 1 (step S607). The node adjacent to the selected node V2 is node V4. However, node V4 is included in the starting node group VG1 of the second search section, i.e., it is included in a node group other than the terminal node group VG2 of the second search section, and therefore is excluded from the search targets (steps S6081 and S6082 of FIG. 5B: No).

[0084] Proceeding to step S609, the route search unit 32 refers to all the route lists 421 to acquire the shortest route. In the example of FIG. 24, the shortest routes are "S → V2 → V4" and "S → V3 → V5 → V7", both of which have a cost of 7. The route search unit 32 first acquires "S → V3 → V5 → V7:7", the final node of which is the terminal node of the search section (step S609). As shown in FIG. 25, since this final node is the terminal node V7 of the second search section (step S610: Yes), the route search unit 32 proceeds to step S611. The route search unit 32 records "S → V3 → V5 → V7:7" in the final list 422 and deletes it from PList(V7) (step S611). Then, counter l(V7) is decremented by 1 to set it to 0 (step S612). Two routes are recorded in the final list 422, i.e., the number of recorded routes g i (=3) Since it has not been recorded (step S613: <g i ), the route search process for the second search section continues, and the process proceeds to step S609.

[0085] (Sixth Time) Next, the route search unit 32 acquires "S → V2 → V4:7" as the shortest route (step S609). Since the final node is neither the terminal node V6 nor the terminal node V7 (step S610: No), the process proceeds to step S606. As shown in FIG. 26, the route search unit 32 selects node V4, which is the final node of the acquired "S → V2 → V4:7," deletes it from PList(V4) (step S606), and decrements counter 1(V4) by 1 (step S607). The nodes adjacent to the selected node V4 are nodes V1, V3, V6, and V7, all of which are search targets (steps S6081 and S6082 in FIG. 5B: Yes). However, since counter 1(V7) for node V7 is 0 (step S6083: No), node V7 is excluded from the search targets. On the other hand, since the counters of nodes V1, V3, and V6 are 2 or 1 (step S6083: Yes), the process proceeds to step S6084. Since node V1's counter l(V1) is 2 and the number of paths in PList(V1) is 1 (FIG. 25) (step S6085: < l(Va)), the process proceeds to step S6088 and records "S → V2 → V4 → V1: 10" in PList(V1). Since node V3's counter l(V3) is 1 and the number of paths in PList(V3) is 0 (FIG. 25) (step S6085: < l(Va)), the process proceeds to step S6088 and records "S → V2 → V4 → V3: 10" in PList(V3). On the other hand, for node V6, counter l(V6) is 1 and the number of routes in PList(V6) is 1 (FIG. 25) (step S6085: ≧ l(Va)), so proceed to step S6086. The candidate route "S → V2 → V4 → V6: 11" has a higher cost than "S → V3 → V4 → V6: 9" in PList(V6) (step S6086: No), so it is not recorded.

[0086] Proceeding to step S609, the route search unit 32 refers to all route lists 421 to obtain the shortest route. In the example of Fig. 26, the shortest routes are "S → V3 → V4 → V1" and "S → V5 → V8", each of which has a cost of 8. The route search unit 32 first obtains "S → V3 → V4 → V1" (step S609). Then, since the final node is neither the terminal node V6 nor V7 (step S610: No), the process proceeds to step S606.

[0087] (7th Time) As shown in FIG. 27, the path search unit 32 selects node V1, which is the final node of the shortest path "S → V3 → V4 → V1:8," deletes it from PList(V1) (step S606), and decrements counter l(V1) by 1 to set it to 1 (step S607). The node adjacent to the selected node V1 is node V6, which is the search target (steps S6081 and S6082 in FIG. 5B: Yes). Then, since counter l(V6) is 1 (step S6083: Yes), the process proceeds to step S6084. As described above, the number of paths in PList(V6) is 1 (FIG. 26) (step S6085: ≧ l(Va)), the process proceeds to step S6086. Since the cost of the candidate route "S → V3 → V4 → V1 → V6: 13" is greater than or equal to the cost of the route (longest route) "S → V3 → V4 → V6: 9" in PList (V6) (step S6086: No), it is not recorded.

[0088] (8th Time) Proceeding to step S609, the route search unit 32 acquires "S → V5 → V8:8" as the shortest route. Since the final node is neither the terminal node V6 nor V7 (step S610: No), the process proceeds to step S606. As shown in FIG. 28 , the route search unit 32 selects node V8, which is the final node of the acquired "S → V5 → V8:8," deletes it from PList(V8) (step S606), and decrements counter l(V8) by 1 (step S607). The nodes adjacent to the selected node V8 are nodes V7, V9, and D. Node D is included in the terminal node group VG3 of the third search section, i.e., it is included in a node group other than the terminal node group VG2 of the second search section, and is therefore excluded from the search targets. On the other hand, nodes V7 and V9 are included in the search targets (steps S6081 and S6082 of FIG. 5B: Yes). However, as described above, since the counter l(V7) of node V7 is 0 (step S6083: No), node V7 is excluded from the search targets. On the other hand, since the counter l(V9) of node V9 is 2 (step S6083: Yes) and the number of routes in PList(V9) is 0 ( FIG. 27 ) (step S6085: < l(Va)), the process proceeds to step S6088, and the route search unit 32 records the candidate route "S → V5 → V8 → V9: 11" in PList(V9).

[0089] Proceeding to step S609, the route search unit 32 references all route lists 421 to obtain the shortest route. In the example of FIG. 28 , the shortest routes are "S → V3 → V4 → V2," "S → V3 → V4 → V6," and "S → V3 → V5 → V8," all of which have a cost of 9. The route search unit 32 first obtains "S → V3 → V4 → V6:9," the final node of which is the terminal node of the search section (step S609). Since this terminal node is the terminal node V6 of the second search section (step S610: Yes), the route search unit 32 records "S → V3 → V4 → V6:9" in the final list 422 and deletes it from PList(V6) (step S611), as shown in FIG. 29 . Then, the counter l(V6) of the terminal node V6 is decremented by 1 to set it to 0 (step S612).

[0090] The final list 422 contains the recorded number of routes g. i(=3) Since the recording has been completed (step S613: ≧g i ), and deletes all routes recorded in the route list 421 (step S614), completing the route search process for the second search section. In the example of FIG. 29 , routes are recorded in PList(V1), PList(V2), PList(V3), PList(V8), and PList(V9), so the route search unit 32 deletes them. Furthermore, the route search unit 32 records three routes in the final list 422: one route with node V6 as the terminal node, and two routes with node V7 as the terminal node. Even if the maximum number of recorded routes differs for each terminal node, when the final list 422 records two routes with node V7 as the terminal node, which is the maximum number of recorded routes, counter 1(V7) becomes 0, and node V is excluded from the search targets, and the routes with nodes V6 and V7 as terminal nodes are recorded in the final list 422 at their respective maximum recorded numbers.

[0091] 4, if the search order i is less than n-1 (step S7: No), the route search unit 32 increments the search order i (step S8) and selects the next search section (step S5). In the example of FIG. 6, in step S3, the only terminal node in the third search section is node D, and the maximum number of recorded routes for the terminal node is r 3max = k = 2. The number of recorded routes g3 is g3 = r 3max = 2. The maximum number of recorded routes of nodes other than the node group VG3 is set to k = 2. Then, the route search process for the third search section is started (step S6).

[0092] <Route Search Processing for Third Search Section> Following the route search processing for the first and second search sections, the route search unit 32 performs route search processing for the third search section. Figures 30 to 39 are diagrams illustrating an example of the route search processing for the third search section.

[0093] (First Time) As in the route search process for the second search section, as shown in FIG. 5A, the route search unit 32 refers to the final list 422 of the route information DB 42, and since a route is recorded (step S601: Yes), it acquires this route and records it in the route list 421 corresponding to its terminal node as shown in FIG. 30, and deletes the route from the final list 422 (step S603). Then, the process proceeds to step S604. Thereafter, the process is executed in the same manner as the route search process for the first and second search sections. The route search unit 32 initializes the counter l(Vx) for each node (step S604). In the example of FIG. 30, l(D) = r 3max = 2. Also, the counter l(Vx) = k = 2 for each node other than node D. Note that for the route list of nodes that are not search targets, no counter is entered and the column is left blank.

[0094] In the example of Fig. 30, the shortest route is "S → V5 → V7:6" recorded in the route list PList(V7), so the route search unit 32 acquires this (step S605). Then, as shown in Fig. 31, the node V7 is selected, and the acquired route is deleted from the route list PList(V7) (step S606). Then, the counter l(V7) is decremented by 1 (step S607).

[0095] Proceeding to step S608, the route search unit 32 begins route search processing from the acquired route. The nodes adjacent to the selected node V7 are nodes V4, V8, V9, and D. Node V4 is included in node group VG1, i.e., it is included in a node group other than the terminal node group VG3 (end node D) of the third search section, and is therefore excluded from the search targets. Meanwhile, nodes V8, V9, and D are search targets (steps S6081 and S6082 in FIG. 5B: Yes), and their respective counters are all 2 (step S6083: Yes), so proceed to step S6084. The route lists corresponding to nodes V8, V9, and D all have the number of routes set to 0 ( FIG. 30 ) (step S6085: < l(Va)), so proceed to step S6088. The route search unit 32 records "S → V5 → V7 → V8:8" in PList (V8), records "S → V5 → V7 → V9:8" in PList (V9), and records "S → V5 → V7 → D:11" in PList (D) (step S6088).

[0096] Proceeding to step S609, the route search unit 32 refers to all route lists 421 recorded in the route information DB 42 and obtains "S → V3 → V5 → V7:7" as the shortest route, and since the final node is not the end node D, which is the terminal node of the third search section (step S610: No), proceeds to step S606.

[0097] (Second Time) As shown in FIG. 32, the path search unit 32 selects node V7, which is the final node of the acquired path "S → V3 → V5 → V7:7," and deletes the path "S → V3 → V5 → V7:7" from PList(V7) (step S606). Then, it decrements counter l(V7) by 1 (step S607). The nodes adjacent to the selected node V7 are nodes V4, V8, V9, and D. As described above, node V4 is included in node group VG1, i.e., a node group other than the terminal node group VG3 (end node D) of the third search section, and therefore is excluded from the search targets. Meanwhile, nodes V8, V9, and D are search targets (steps S6081 and S6082 in FIG. 5B: Yes), and since their respective counters are all 2 (step S6083: Yes), the process proceeds to step S6084. Then, since the route lists 421 corresponding to the nodes V8, V9, and D all have one route (Figure 31) (step S6085: < l(Va)), the process proceeds to step S6088, and the route search unit 32 records "S → V3 → V5 → V7 → V8:9" in PList(V8), records "S → V3 → V5 → V7 → V9:9" in PList(V9), and records "S → V3 → V5 → V7 → D:12" in the route list PList(D).

[0098] Proceeding to step S609, the route search unit 32 acquires the shortest route by referring to all route lists 421 recorded in the route information DB 42. In the example of Fig. 32, the shortest routes are "S → V5 → V7 → V8" and "S → V5 → V7 → V9", each of which has a cost of 8. The route search unit 32 first acquires "S → V5 → V7 → V8" (step S609), and since the final node of the route is not the end node D (step S610: No), proceeds to step S606.

[0099] 33, the path search unit 32 selects node V8, which is the final node of the acquired path "S → V5 → V7 → V8:8," deletes the path "S → V5 → V7 → V8:8" from PList(V8) (step S606), and decrements counter l(V8) by 1 to set it to 1 (step S607). The nodes adjacent to the selected node V8 are nodes V9 and D, both of which are search targets (steps S6081 and S6082 in FIG. 5B: Yes). Then, since the counters of nodes V9 and D are both 2 (step S6083: Yes), the process proceeds to step S6084. Since the number of routes in the route list PList(V9) is 2 ( FIG. 32 ), which is the same as the counter l(V9) (step S6085: ≧ l(Va)), the route search unit 32 proceeds to step S6086 and compares the cost of the candidate route "S → V5 → V7 → V8 → V9: 11" with the cost of the longest route in the route list PList(V9). Since the candidate route has a higher cost (step S6086: No), the route search unit 32 does not record the candidate route. Furthermore, since the number of routes in the route list PList(D) is 2 ( FIG. 32 ), which is the same as the counter l(D) (step S6085: ≧ l(Va)), the route search unit 32 proceeds to step S6086 and compares the cost of the candidate route "S → V5 → V7 → V8 → D: 13" with the longest route in the route list PList(D). Since the candidate route has a higher cost (step S6086: No), the route search unit 32 does not record the candidate route.

[0100] (Fourth Time) In step S609, the route search unit 32 acquires "S → V5 → V7 → V9:8" as the shortest route. Since the final node is not the end node D (terminal node group VG3) (step S610: No), the process proceeds to step S606. As shown in FIG. 34, the route search unit 32 selects node V9, which is the final node of the acquired route "S → V5 → V7 → V9:8," deletes the route "S → V5 → V7 → V9:8" from PList(V9) (step S606), and decrements counter l(V9) by 1 (step S607). The nodes adjacent to the selected node V9 are nodes V8 and D, both of which are search targets (steps S6081 and S6082 in FIG. 5B: Yes). Since the counters of nodes V8 and D are 1 or 2 (step S6083: Yes), the process proceeds to step S6084. Since the number of routes in the route list PList(V8) is 1 ( FIG. 33 ), which is the same as the counter l(V8) (step S6085: ≧ l(Va)), the route search unit 32 proceeds to step S6086 and compares the cost of the candidate route "S → V5 → V7 → V9 → V8: 11" with the cost of the longest route in the route list PList(V8). Since the candidate route has a higher cost (step S6086: No), this candidate route is not recorded. Furthermore, since the number of routes in the route list PList(D) is 2 ( FIG. 33 ), which is the same as the counter l(D) (step S6085: ≧ l(Va)), the route search unit 32 proceeds to step S6086 and compares the cost of the candidate route "S → V5 → V7 → V9 → D: 10" with the cost of the longest route in PList(D). The cost of the longest route "S → V3 → V5 → V7 → D: 12" is 12, which is lower than the cost of the candidate route (step S6086: Yes), so the route search unit 32 proceeds to step S6087, deletes the longest route "S → V3 → V5 → V7 → D: 12" from PList(D), and records the candidate route "S → V5 → V7 → V9 → D: 10" in the route list PList(D) (step S6088). As a result, two routes, the same number as the maximum number of routes to record, are recorded in the route list PList(D) in order of lowest cost.

[0101] Proceeding to step S609, the route search unit 32 acquires the shortest route by referring to all route lists 421 recorded in the route information DB 42. In the example of Fig. 34, the shortest routes are "S → V3 → V4 → V6," "S → V3 → V5 → V7 → V8," and "S → V3 → V5 → V7 → V9," all of which have a cost of 9. The route search unit 32 first acquires "S → V3 → V4 → V6" (step S609), and because its final node is not the end node D (terminal node group VG3) (step S610: No), proceeds to step S606.

[0102] 35, the route search unit 32 selects node V6, which is the final node of the acquired route "S → V3 → V4 → V6:9," deletes the route "S → V3 → V4 → V6:9" from the route list PList(V6) (step S606), and decrements counter l(V6) by 1 (step S607). The nodes adjacent to the selected node V6 are nodes V1 and D, both of which are search targets (steps S6081 and S6082 in FIG. 5B: Yes). Then, since the counters of nodes V1 and D are both 2 (step S6083: Yes), the process proceeds to step S6084. Since the number of routes in the route list PList(V1) is 0 (FIG. 34) (step S6085: < l(Va)), the process proceeds to step S6088, where the route search unit 32 records "S → V3 → V4 → V6 → V1: 14" in PList(V1). Furthermore, since the number of routes in the route list PList(D) is 2 (FIG. 34), which is the same as the counter l(D) (step S6085: ≧ l(Va)), the route search unit 32 proceeds to step S6086, where the cost of the candidate route "S → V3 → V4 → V6 → D: 11" is compared with the cost of the longest route in the route list PList(D). Since the cost of the candidate route is equal to or greater than the longest route (step S6086: No), the route search unit 32 does not record the candidate route.

[0103] (Sixth Time) In step S609, the route search unit 32 acquires "S → V3 → V5 → V7 → V8:9" as the shortest route. Since the final node is not the end node D (terminal node group VG3) (step S610: No), the process proceeds to step S606. As shown in FIG. 36, the route search unit 32 selects node V8, which is the final node of the acquired route "S → V3 → V5 → V7 → V8:9," deletes the route "S → V3 → V5 → V7 → V8:9" from the route list PList(V8) (step S606), and decrements counter l(V8) by 1 to set it to 0 (step S607). The nodes adjacent to the selected node V8 are nodes V9 and D, both of which are search targets (steps S6081 and S6082 in FIG. 5B: Yes). Since each counter is 1 or 2 (step S6083: Yes), the process proceeds to step S6084. Since the number of routes in the route list PList(V9) is 1 (FIG. 35), which is the same as counter l(V9) (step S6085: ≧ l(Va)), the route search unit 32 proceeds to step S6086 and compares the cost of the candidate route "S → V3 → V5 → V7 → V8 → V9: 12" with the longest route in PList(V9). Since the candidate route has a higher cost (step S6086: No), this candidate route is not recorded. Furthermore, since the number of routes in the route list PList(D) is 2 (FIG. 35), which is the same as the counter l(D) (step S6085: ≧ l(Va)), the route search unit 32 proceeds to step S6086 and compares the cost of the candidate route "S → V3 → V5 → V7 → V8 → D: 14" with the cost of the longest route in the route list PList(D). Since the cost of the candidate route is equal to or greater than the longest route (step S6086: No), it is not recorded.

[0104] (Seventh Time) In step S609, the route search unit 32 acquires "S → V3 → V5 → V7 → V9:9" as the shortest route. Since the final node is not the end node D (terminal node group VG3) (step S610: No), the process proceeds to step S606. As shown in FIG. 37 , the route search unit 32 selects node V9, which is the final node of the acquired route "S → V3 → V5 → V7 → V9:9," deletes the route "S → V3 → V5 → V7 → V9:9" from the route list PList(V9) (step S606), and decrements counter l(V9) by 1 to set it to 0 (step S607). The nodes adjacent to the selected node V9 are nodes V8 and D, both of which are search targets (steps S6081 and S6082 in FIG. 5B: Yes). However, since the counter l(V8) for node V8 is 0 (step S6083: No), it is excluded from the search targets. On the other hand, since the counter l(D) for node D is 2 (step S6083: Yes), the process proceeds to step S6084. As in the sixth iteration, the number of routes in the route list PList(D) is 2 ( FIG. 36 ), which is the same as the counter l(D) (step S6085: ≧ l(Va)), so the route search unit 32 proceeds to step S6086 and compares the cost of the candidate route "S → V3 → V5 → V7 → V9 → D: 11" with the cost of the longest route in the route list PList(D). Since the cost of the candidate route is equal to or greater than the cost of the longest route in PList(D) (step S6086: No), the route search unit 32 does not record the candidate route.

[0105] Proceeding to step S609, the route search unit 32 refers to all route lists 421 recorded in the route information DB 42, acquires "S → V5 → V7 → V9 → D: 10" as the shortest route, and since its final node is the end node D (terminal node group VG3) (step S610: Yes), it records it in the final list 422 as shown in FIG. 38, deletes it from PList(D) (step S611), and decrements the counter l(D) by 1 to set it to 1 (step S612). One route is recorded in the final list 422, that is, the number of recorded routes g i (=2) Since it has not been recorded (step S613: <g i ), the route search process for the third search section continues, and the process proceeds to step S609.

[0106] The route search unit 32 refers to all route lists 421 recorded in the route information DB 42 and obtains "S → V5 → V7 → D:11" as the shortest route (step S609). Since the final node is the end node D (terminal node group VG3) (step S610: Yes), it records it in the final list 422 as shown in FIG. 39, deletes it from PList(D) (step S611), and decrements counter l(D) by 1 to set it to 0 (step S612).

[0107] The final list 422 includes the number g of recorded routes in the third search section. i (=2) Since the recording has been completed (step S613: ≧g i ), and deletes all routes recorded in the route list 421 (step S614), completing the route search process for the third search section.

[0108] Returning to Figure 4, since the search order i has reached n-1 (step S7: Yes), the route search unit 32 outputs the two routes "S → V5 → V7 → V9 → D:10" and "S → V5 → V7 → D:11" recorded in the final list 422 (step S9), and all processing is completed.

[0109] 40 to 50 are diagrams illustrating a modification of the route search process for the first search section. In the above embodiment, the terminal node group VGi is made up of a plurality of nodes (m i ≧2) The maximum number of records for each node in the search section, r imax The sum of these is the number of recorded routes for each search section g i Therefore, the number of recorded routes for each terminal node is r imax As a result, the routes recorded in the final list 422 are not necessarily in ascending order of cost. i Therefore, the number of recorded routes for each search section is g i and the maximum number of records per terminal node r imax By changing the search conditions for g, the route with the lowest cost is found. i Set it to record.

[0110] The search condition of recording routes in ascending order of cost regardless of the terminal node is, for example, the final list 422, in which the number of recorded routes in the search section that have the same terminal node as the terminal node among the multiple terminal nodes of the terminal node group is g i In order to set such a search condition, the maximum number of recorded paths r for each node in the terminal node group VGi is set to 1. imax The sum of these is the number of records in the search section g i The maximum number of records in the search section g i (r imax ≦g i ) The maximum number of records per terminal node is r imax o g i If the maximum number of records per terminal node is set to r imax o g i If the setting is made, there is a possibility that some of the terminal nodes will not be recorded as a route for the search section.

[0111] According to the search conditions of this modification, g i , r imax For example, the number of recorded routes for each search section g is set as follows: i :g i = k × m i The maximum number of records per terminal node of the route per search section r imax : If the priority of the nodes is equal, r imax = k + 1 (note that it is not limited to k + 1, and may be k + 2). If there is a priority among nodes, r imax = g i For the nodes with second and subsequent priorities, r imax Assign.

[0112] In the example of Figure 40, for the first search section, as in the above embodiment, there is no priority between nodes V4 and V5 of the terminal node group VG1 (priority "1:1"), so the following settings are made: Number of recorded routes in the first search section: g1 = k × m1 = 4 Maximum number of recorded routes per terminal node: r 1max = 3 Maximum number of recorded routes of nodes other than node group VG1: k = 2

[0113] 40 corresponds to FIG. 7 of the embodiment. However, the cost of edge E connecting node V3 and node V5 is set to 6. As shown in FIGS. 40 to 44, the first to third route search processes (steps S601 to S610) in the first search section are the same as those in the embodiment shown in FIGS. 7 to 11, and one route "S → V5: 3" is recorded in the final list 422. However, in step S604, in the example of FIG. 40, the maximum number of recorded routes r between node V4 and node V5 is set to 6. 1max = 3, so the counter l(V4) of node V4 = r 1max (V4)=3, counter l of node V5 (V5)=r 1max (V5) = 3. Also, the counter l(Vx) = k = 2 for each node other than the terminal node group. Also, as shown in Figure 42, the cost of the route "S → V3 → V5:8" recorded in PList(V5) in step S6088 of the second route search process is different.

[0114] As shown in Fig. 45, in the fourth route search process, node V2 is selected as the final node of the shortest route "S → V3 → V2:3" (step S606). The node adjacent to the selected node V2 is node V4. In addition, in the second and third route search processes, two routes "S → V3 → V4:5" and "S → V2 → V4:7" are recorded in PList(V4) (Fig. 44). Here, in this modified example, the maximum number of recorded routes per terminal node r 1max is 3, that is, the initial value of counter l (V4) is 3, and remains at the initial value at the time of this route search process. Therefore, since the number of routes in PList (V4) is less than counter l (V4) (step S6085: < l (Va)), the process proceeds to step S6088, and "S → V3 → V2 → V4: 7" is recorded.

[0115] As shown in FIG. 46, in the fifth iteration of the route search process, as in the previous embodiment ( FIG. 14 ), node V1 is selected, which is the final node of the shortest route "S → V1:4" (step S606). The nodes adjacent to the selected node V1 are nodes V4 and V6, and as described in the previous embodiment, node V4 is the target of the search. The third route is recorded in PList(V4) in the fourth iteration of the route search process ( FIG. 45 ). Therefore, since the number of routes is the same as counter l(V4) (step S6085:≧l(Va)), the route search unit 32 proceeds to step S6086. Since the cost of the candidate route "S → V1 → V4:7" is equal to or greater than the cost of the longest route in PList(V4) (step S6086: No), the candidate route is not recorded.

[0116] As shown in FIG. 47, in the sixth iteration of the route search process, as in the previous embodiment ( FIG. 15 ), node V3 is selected as the final node of the shortest route "S → V2 → V3:4" (step S606). The search targets are nodes V4 and V5. As in the fifth iteration, the number of routes in PList(V4) is 3, which is the same as counter l(V4) (step S6085: ≧ l(Va)), so the process proceeds to step S6086. Since the cost of the candidate route "S → V2 → V3 → V4:7" is equal to or greater than the cost of the longest route in PList(V4) (step S6086: No), the candidate route is not recorded. Furthermore, in the previous embodiment ( FIG. 15 ), node V5 was excluded from the search targets because counter l(V5) was 0, whereas in this modified example, it is 2 (step S6083: Yes). Then, since the number of routes in PList(V5) is 1 (FIG. 46) (step S6085:<l(Va)), the process proceeds to step S6088, and the candidate route "S→V2→V3→V5:10" is recorded.

[0117] Proceeding to step S609, the route search unit 32 refers to all route lists 421 and acquires the shortest route "S → V3 → V4:5". Since the final node of "S → V3 → V4:5" is the terminal node V4 (step S610: Yes), it is recorded in the final list 422 as shown in FIG. 48 and deleted from PList(V4) (step S611). Then, the counter l(V4) is decremented by 1 to set it to 2 (S612). Two routes are recorded in the final list 422, that is, the number of recorded routes g i Since it is not recorded (step S613: i ), and continue route search processing for the first search section.

[0118] Proceeding to step S609, the route search unit 32 refers to all route lists 421 to acquire the shortest route. In the example of FIG. 49, the shortest routes "S → V2 → V4: 7" and "S → V3 → V2 → V4: 7", which have a cost of 7, exist in the same PList (V7). Therefore, as shown in FIG. 49, the previously recorded "S → V2 → V4: 7" is acquired. Since the final node of the acquired route is the terminal node V4 (step S610: Yes), it is recorded in the final list 422 and deleted from PList (V4) (step S611). Then, counter l (V4) is decremented by 1 to set it to 2 (S612). As shown in FIG. 49, three routes are recorded in the final list 422, that is, the number of recorded routes g i Since it is not recorded (step S613: i ), and continue route search processing for the first search section.

[0119] Proceeding to step S609, the route search unit 32 acquires "S → V3 → V2 → V4: 7" as the shortest route. Since the final node of the acquired route is the terminal node V4 (step S610: Yes), it is recorded in the final list 422 as shown in FIG. 50 and deleted from PList(V4) (step S611). Then, the counter l(V4) is decremented by 1 to set it to 0 (S612). Four routes are recorded in the final list 422, that is, the number of recorded routes g i (=4) Since the recording has been completed (step S613: i), and deletes all routes recorded in the route list 421 (step S614), completing the route search process for the first search section.

[0120] In this modification, three routes whose final node is the terminal node V4 and one route whose final node is the terminal node V5 are recorded in the final list 422. In this way, the number of recorded routes g1 in the first search section is k × m1 = 4 in both the above embodiment and this modification. 1max By setting k to 3, which is larger than k (= 2), a bias in the number of recorded routes occurs between the terminal nodes due to the route cost. Also, in this modification, a total of six routes are recorded in the route list 421, three of which have terminal nodes V4 and V5 as their final nodes. In other words, six routes are recorded in the route list 421 as candidates, and four are selected in order of lowest cost. Therefore, it is possible to reliably select routes with lower costs.

[0121] <Effects> The following describes the effects of the route search device 1 and the like according to the present invention. The route search device 1 according to the present invention is a device that outputs one or more routes, the route passing through any one node V in each of a plurality of sets of node sets each consisting of one or more nodes V in a predetermined order, and includes: a storage unit 4 that stores the cost of each edge E; a section dividing unit 31 that sets a search section whose end nodes are any nodes in each of two node sets that are consecutive in the order of the plurality of sets of node sets; and a route search unit 32 that selects a search section according to the order, sequentially searches for routes in the selected search section, calculates the costs of the routes based on the costs of the edges, and records the number of routes set in the search section in ascending order of cost, and is characterized in that the route search unit 32 searches for routes in the selected search section using the end nodes of each of the routes recorded in the route search in the previous search section as start nodes, and records the routes added to the route.

[0122] With this configuration, the route search device 1 can efficiently perform a route search and select and output a route with low cost. Specifically, the section division unit 31 divides the search range into search sections, each of which has two consecutive node sets in the order of the nodes to be passed through as its end nodes, and the route search unit 32 sequentially searches for routes in each search section and records a predetermined number of routes. This makes it possible to efficiently perform a route search even if the nodes to be passed through are specified by a node set, and also makes it easy to select the specified number of routes in order of lowest cost.

[0123] The route search device 1 further assumes that when searching for a route in a selected search section, the route search unit 32 does not select an edge that connects to a node included in a node set other than the node set at the end of the search section.

[0124] With this configuration, the route search device 1 can perform route searches more efficiently without selecting nodes that are not suitable for the route when searching for a route for each search section.

[0125] The route search device 1 further configures the route search unit 32 to search for routes terminating at each node included in the node set up to the recorded number of routes in a search section in which the terminal node set includes multiple nodes, until the recorded number of routes is recorded.

[0126] With this configuration, the route search device 1 can more easily output a route with a low cost regardless of the terminal node.

[0127] The route search device 1 further configures the route search unit 32 to record, in a search section that ends at a node set including multiple nodes with specified priorities, a number of routes that end at the node, for each node included in the node set, set in accordance with the priority.

[0128] With this configuration, the route search device 1 can output the number of routes according to the priority of each terminal node.

[0129] The route search device 1 further ensures that the sum of the maximum recorded numbers, which indicate the maximum number of routes that can be recorded and are set by the route search unit 32 at each node included in the node set at the end of the search section, is greater than the number of recorded routes in the search section.

[0130] With this configuration, the route search device 1 can more efficiently search for and output low-cost routes.

[0131] The present invention is not limited to the above-described embodiments, and many modifications can be made by a person having ordinary skill in the art within the technical concept of the present invention.

[0132] REFERENCE SIGNS LIST 1 Route search device 2 Input / output unit 3 Control unit 4 Storage unit 31 Section division unit 32 Route search unit 41 Network information DB 42 Route information DB 421 Route list 422 Final list 9 Management device E Edge V Node V1 to V9 Node VG0, VG1, VG2, VG3 Node group (node ​​set) S Start node D End node NW Optical path network

Claims

1. A route search device that outputs one or more routes in a network that includes multiple nodes connected by edges, wherein the route passes through one node in each of multiple sets of node sets, each set consisting of one or more nodes, in a predetermined order, and comprises: a memory unit that stores the cost of each edge; a section division unit that sets a search section whose end nodes are either nodes in each of two node sets that are consecutive in the order of the multiple sets of node sets; and a route search unit that selects a search section according to the order, sequentially searches for routes in the selected search section, calculates the cost of the route based on the cost of the edges, and records the number of routes set in the search section in order of lowest cost, wherein the route search unit searches for routes in the selected search section using the end nodes of each of the routes recorded in the route search in the previous search section as start nodes, and records the routes added to the route.

2. The route search device according to claim 1, wherein the route search unit, when searching for a route in a selected search section, does not select edges that connect to nodes included in a node set other than the node set at the end of the search section.

3. The route search device according to claim 2, wherein the route search unit searches for routes terminating at each node included in the node set, up to the recorded number of routes, in a search section where the terminal node set includes multiple nodes, until the recorded number of routes is recorded.

4. The route search device according to claim 3, wherein the route search unit records, for each node included in a node set that includes multiple nodes with designated priorities, a number of routes that terminate at that node, set in accordance with the priority.

5. The route search device according to claim 3, wherein the route search unit is configured so that the sum of the maximum recordable number of routes, which is set for each node included in the node set at the end of the search section and indicates the maximum number of routes that can be recorded, is greater than the number of records for the search section.

6. A route search method in a network including a plurality of nodes connected by edges, in which a route search device having a memory unit for storing the cost of each edge outputs one or more routes, wherein the route passes through any one node in each of a plurality of sets of node sets consisting of one or more nodes in a predetermined order, and the route search method executes a section division process for setting a search section whose end nodes are any node in each of two node sets that are consecutive in the order of the plurality of sets of node sets, and a route search process for selecting a search section according to the order, sequentially searching for routes in the selected search section, calculating the cost of the route based on the cost of the edges, and recording the number of routes set in the search section in order of lowest cost, wherein in the route search process, routes in the selected search section are searched for using the end nodes of each of the routes recorded in the route search in the previous search section as start nodes, and recording the routes added to the route.

7. A route search program for causing a computer to function as the route search device according to any one of claims 1 to 5.